#include <RadientAnimation.h>
Public Attributes | |
| const RadientAnimationDestinationDesc * | pDestinations = nullptr |
| Uint32 | DestinationCount = 0 |
| Number of elements in pDestinations. | |
Description used to compile an animation binding.
Creation copies both descriptor-array levels and asks every destination to resolve every channel contributed by its mapped targets. A destination may bind only the subset of schema properties that it exposes. Unsupported properties are omitted while compiling the binding and incur no evaluation cost. Each nonempty child binding retains its destination; the outer binding retains the children. Unmapped clip targets are ignored. A zero-destination or completely unbound binding is valid and evaluates to RADIENT_STATUS_NO_CHANGE.
Each pDestination must occur in exactly one destination descriptor. Exact duplicate mappings and overlapping accepted writes to the same resolved property range are invalid. Unsupported requests do not participate in overlap checks. A clip target may appear in multiple mappings to support fanout. Different targets may map to one element when their accepted property ranges do not overlap. Aliasing through two different destination interface pointers cannot be detected and is the caller's responsibility; evaluation applies destination descriptors in order.
Evaluation is a sparse overwrite: destination state outside the clip's channel ranges is preserved. Blending, additive animation, base-pose restoration, and root-motion extraction are outside the binding contract and are handled by the caller or a future player/mixer.
Example (C++): a 1,000-joint skeleton uses one destination descriptor, one retained pose destination, and a compact mapping array. Evaluation brackets the complete pose with one BeginUpdate()/EndUpdate() pair, not one virtual call per joint or transform component. ClipTargetForJoint is importer-produced data that maps the clip's authored node identities to skeleton joint indices.
For a scene-node transform, the corresponding core fields are:
SceneDestination replaces PoseDestination in the complete binding example above. Release pSceneDestination after CreateBinding() returns, just like pPoseDestination.
Root animation is the same mapping with the root joint or root entity; root-motion extraction and redirection remain caller or future player/mixer policies.
| const RadientAnimationDestinationDesc* Diligent::RadientAnimationBindingDesc::pDestinations = nullptr |
Array of DestinationCount aggregate destinations. It must be null exactly when DestinationCount is zero. CreateBinding() copies the array.