SuperDex Physics C++ API
Loading...
Searching...
No Matches
superdex::SoftSkinnedActorParams Struct Reference

Parameters to create soft-skinned actors with a shared articulated skeleton. More...

#include <mochi_structs.h>

Public Attributes

bool enableCollidingLinks = false
 Enable internal skeleton links as colliding actors.
bool hasGravity = false
 Enable gravity evaluation of soft actors on posed/skinned positions.
bool hasInertia = false
 Enable inertia evaluation of soft actors on posed/skinned positions.
bool hasStress = false
 Enable elasticity evaluation of soft actors on posed/skinned positions.
ArticulatedActorParams skeletonParams
 Parameters for the articulated skeleton.
DynamicArray< DynamicStringsoftAttachLinks
 Optional local names of the rigid links where soft actors are attached.
DynamicArray< SoftActorParamssoftParams
 Parameters for the soft deformable actors.

Detailed Description

Parameters to create soft-skinned actors with a shared articulated skeleton.

Soft-skinned actors combine deformable soft bodies with an articulated skeleton, allowing realistic tissue simulation that follows skeletal motion.

See also
Scene::CreateSoftSkinnedActor

Definition at line 259 of file mochi_structs.h.

Member Data Documentation

◆ enableCollidingLinks

bool superdex::SoftSkinnedActorParams::enableCollidingLinks = false

Enable internal skeleton links as colliding actors.

Note
If false, only the soft actors or the skin mesh act as colliding actors.

Definition at line 263 of file mochi_structs.h.

◆ hasGravity

bool superdex::SoftSkinnedActorParams::hasGravity = false

Enable gravity evaluation of soft actors on posed/skinned positions.

Note
Each SoftActorParams entry must have its hasGravity set to false.
See also
Scene::SetGravity

Definition at line 264 of file mochi_structs.h.

◆ hasInertia

bool superdex::SoftSkinnedActorParams::hasInertia = false

Enable inertia evaluation of soft actors on posed/skinned positions.

Note
If true, each SoftActorParams entry must have its hasInertia set to false.
If true, inertia is applied in the posed (post-skinning) configuration. This is the physically correct behavior.
If false, inertia is applied in the unposed configuration for each SoftActorParams entry that has its hasInertia set to true. This is an approximation but may improve performance.

Definition at line 265 of file mochi_structs.h.

◆ hasStress

bool superdex::SoftSkinnedActorParams::hasStress = false

Enable elasticity evaluation of soft actors on posed/skinned positions.

Note
If true, each SoftActorParams entry must have its hasStress set to false.
If true, stress forces are applied in the posed (post-skinning) configuration. This is the physically correct behavior.
If false, stress forces are applied in the unposed configuration for each SoftActorParams entry that has its hasStress set to true. This is an approximation but may improve performance.

Definition at line 266 of file mochi_structs.h.

◆ skeletonParams

ArticulatedActorParams superdex::SoftSkinnedActorParams::skeletonParams

Parameters for the articulated skeleton.

Note
If a skin shape is provided, the skin mesh acts as the colliding surface, not the individual soft actor surfaces. The skin shape must include blending data to define how the skinned surfaces of the soft actors are blended with the overarching skin. Each soft actor must be linked to its corresponding blending data via its effective nested soft local name after default-name assignment.
See also
ArticulatedActorParams, ArticulatedSkinParams

Definition at line 260 of file mochi_structs.h.

◆ softAttachLinks

DynamicArray<DynamicString> superdex::SoftSkinnedActorParams::softAttachLinks

Optional local names of the rigid links where soft actors are attached.

Note
If empty, soft actor shapes must include skinning data.
If provided, must be 1-to-1 with softParams. Each entry must be non-empty and must match a skeleton link local name.
Contact is automatically disabled between soft actors and their attachment links.

Definition at line 262 of file mochi_structs.h.

◆ softParams

DynamicArray<SoftActorParams> superdex::SoftSkinnedActorParams::softParams

Parameters for the soft deformable actors.

Note
If a skin shape is provided, the skin mesh acts as the colliding surface, not the individual soft actor surfaces.
If a skin shape is provided, dynamic hyper-reduction is not allowed on the soft actors.
If a SoftActorParams entry has its hasInertia set to true, inertia is applied in the unposed configuration of that actor (prior to skinning) and this struct's hasInertia must be false.
If a SoftActorParams entry has its hasStress set to true, elasticity is applied in the unposed configuration of that actor (prior to skinning) and this struct's hasStress must be false.
Each SoftActorParams entry must have its hasGravity set to false (use this struct's hasGravity instead).
Each soft actor must have some DoFs constrained. This can be implemented (a) by constraining nodes in the SoftActorParams shape for FOM actors, or (b) by constraining the ROM subspace for ROM actors.
Each soft actor must have at least one energy term enabled: either this struct's hasGravity, hasInertia or hasStress (applied to every entry), or that entry's own SoftActorParams::hasInertia or SoftActorParams::hasStress.
Each entry's SoftActorParams::name is a nested soft local name. Explicit non-empty names must be unique across skeleton link local names and other nested soft local names, and must not contain forward slash, backslash, or embedded NUL characters.
Empty names are assigned deterministically after reserving all skeleton link names and all explicit nested soft names: an empty entry at index i uses soft_i if available; otherwise it uses the first available soft_N found by scanning upward from N = 0.
Each entry's SoftActorParams::worldFromLocal must be identity. Each soft actor's shape must be defined directly in the reference frame of the articulated actor. The soft-skinned actor's placement in scene world is provided by ArticulatedActorParams::worldFromRoot from skeletonParams.
See also
hasGravity, hasInertia, hasStress

Definition at line 261 of file mochi_structs.h.


The documentation for this struct was generated from the following files: