#include <RadientSkinning.h>
Public Member Functions | |
| virtual IRadientSkeletonAsset *DILIGENT_CALL_TYPE | GetSkeleton () const =0 |
| Returns a borrowed pointer to the skeleton retained by the pose. | |
| virtual Uint64 DILIGENT_CALL_TYPE | GetVersion () const =0 |
| virtual RADIENT_STATUS DILIGENT_CALL_TYPE | GetJointLocalTransforms (Uint32 FirstJoint, Uint32 JointCount, RadientTransform *pTransforms) const =0 |
| Copies JointCount local transforms beginning at FirstJoint. | |
| virtual RADIENT_STATUS DILIGENT_CALL_TYPE | GetJointGlobalMatrices (Uint32 FirstJoint, Uint32 JointCount, RadientMatrix4x4 *pMatrices) const =0 |
| virtual RADIENT_STATUS DILIGENT_CALL_TYPE | ComputeSkinningMatrices (IRadientSkinAsset *pSkin, RadientMatrix4x4 *pMatrices, Bool TransposeMatrices=False, Bool UpdateGlobalMatrices=True)=0 |
| virtual RADIENT_STATUS DILIGENT_CALL_TYPE | UpdateGlobalTransforms ()=0 |
| virtual RADIENT_STATUS DILIGENT_CALL_TYPE | CreateWriter (IRadientSkeletonPoseWriter **ppWriter)=0 |
| Public Member Functions inherited from Diligent.IObject | |
| virtual void DILIGENT_CALL_TYPE | QueryInterface (const INTERFACE_ID &IID, IObject **ppInterface)=0 |
| Queries the specific interface. | |
| template<typename DerivedType, typename = typename std::enable_if<std::is_base_of<IObject, DerivedType>::value>::type> | |
| void | QueryInterface (const INTERFACE_ID &IID, DerivedType **ppInterface) |
| virtual ReferenceCounterValueType DILIGENT_CALL_TYPE | AddRef ()=0 |
| Increments the number of strong references by 1. | |
| virtual ReferenceCounterValueType DILIGENT_CALL_TYPE | Release ()=0 |
| virtual IReferenceCounters *DILIGENT_CALL_TYPE | GetReferenceCounters () const =0 |
Mutable local and global transforms for one skeleton.
The pose retains its skeleton. A pose and all writers created from it are not thread-safe and must not be accessed concurrently.
Radient-created poses expose the generic animation destination interface described by RadientAnimation.h. Applying an animation binding sparsely preserves all unmentioned joints and transform components. Direct animation property updates are copied without value validation or normalization; the caller is responsible for finite translations and scales and normalized rotations.
|
pure virtual |
Computes the skinning matrices for pSkin and writes pSkin->GetDesc().JointCount elements to pMatrices. Each output matrix combines the skin joint's inverse-bind matrix with the corresponding skeleton-space pose matrix and therefore transforms mesh bind-space vertices into skeleton space. pSkin must reference this pose's skeleton.
If TransposeMatrices is true, every matrix is transposed before it is written to pMatrices.
If UpdateGlobalMatrices is true, dirty global matrices are updated before computing the result. Otherwise, the method returns RADIENT_STATUS_PENDING while global matrices are dirty. The output is not modified unless the method returns RADIENT_STATUS_OK.
|
pure virtual |
Creates a reusable writer initialized from the current pose. On success, ppWriter receives a strong reference.
|
pure virtual |
Copies JointCount skeleton-space matrices beginning at FirstJoint. Returns RADIENT_STATUS_PENDING when committed local transforms have not yet been propagated through the skeleton hierarchy.
|
pure virtual |
Returns the monotonically increasing version of the global transforms. Deferred local-transform commits do not advance the version until UpdateGlobalTransforms() is called.
|
pure virtual |
Propagates committed local transforms through the skeleton hierarchy and advances the pose version. Returns RADIENT_STATUS_NO_CHANGE when the global transforms are already current.