Diligent Engine
Loading...
Searching...
No Matches
Diligent::IRadientSkeletonPoseWriter Struct Referenceabstract

#include <RadientSkinning.h>

Inheritance diagram for Diligent::IRadientSkeletonPoseWriter:
Diligent.IObject

Public Member Functions

virtual RADIENT_STATUS DILIGENT_CALL_TYPE SetJointLocalTransforms (Uint32 FirstJoint, Uint32 JointCount, const RadientTransform *pTransforms)=0
virtual RADIENT_STATUS DILIGENT_CALL_TYPE ResetToRestPose ()=0
virtual RADIENT_STATUS DILIGENT_CALL_TYPE Commit (Bool UpdateGlobalTransforms)=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

Detailed Description

Reusable writer for a complete skeleton pose.

A writer owns a private transform set initialized from the pose when the writer is created. SetJointLocalTransforms() modifies that private set, and Commit() copies the complete set into the pose. Global-transform propagation may be performed immediately or deferred. A pose and all writers created from it are not thread-safe and must not be accessed concurrently.

Member Function Documentation

◆ Commit()

virtual RADIENT_STATUS DILIGENT_CALL_TYPE Diligent::IRadientSkeletonPoseWriter::Commit ( Bool UpdateGlobalTransforms)
pure virtual

Applies the writer's complete pose. If UpdateGlobalTransforms is true, the committed local transforms are immediately propagated through the skeleton hierarchy. Otherwise, the application must subsequently call IRadientSkeletonPose::UpdateGlobalTransforms(). Returns RADIENT_STATUS_NO_CHANGE when there are no pending changes. The writer remains reusable.

◆ ResetToRestPose()

virtual RADIENT_STATUS DILIGENT_CALL_TYPE Diligent::IRadientSkeletonPoseWriter::ResetToRestPose ( )
pure virtual

Replaces the writer's complete private transform set with the skeleton's rest pose. Returns RADIENT_STATUS_NO_CHANGE when it already matches.

◆ SetJointLocalTransforms()

virtual RADIENT_STATUS DILIGENT_CALL_TYPE Diligent::IRadientSkeletonPoseWriter::SetJointLocalTransforms ( Uint32 FirstJoint,
Uint32 JointCount,
const RadientTransform * pTransforms )
pure virtual

Replaces JointCount local transforms beginning at FirstJoint. Input data is copied immediately without validation or normalization. The caller is responsible for providing valid transforms with normalized rotations. Returns RADIENT_STATUS_NO_CHANGE when JointCount is zero.