FBX C++ API Reference
All Classes Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Pages
FbxAnimEvaluator Class Reference

#include <fbxanimevaluator.h>

Class Description

The principal interface for animation evaluators.

The animation evaluator is used to compute node transforms and property values at specific times during an animation. Evaluators simplify the process of computing transform matrices by taking into account all of the parameters, such as pre- and post-rotations. This class is abstract so that SDK users can implement their own evaluator if needed. The default evaluator used by the FBX SDK is a FbxAnimEvalClassic. The default evaluator can be queried with the function FbxScene::GetEvaluator(), and can be changed using FbxScene::SetEvaluator().

When working with scene nodes, the evaluator will always return an affine transform matrix that contains the translation, rotation and scale of that node.

When working with object properties, the evaluator will always return a structure that can contain as many components as the property can have. For example, an RGB color property would return a structure containing 3 channels. The class FbxAnimCurveNode is used as a data container to store those values, because it can handle as many channels as needed, even if the property is not a real curve node .

Below is a typical usage of the evaluator class to retrieve the global transform matrix of each node in a scene:

//Here we assume the user already imported a scene...
for( int i = 0, c = MyScene->GetMemberCount(FbxNode::ClassId); i < c; ++i )
{
FbxNode* CurrentNode = MyScene->GetMember(FbxNode::ClassId, i);
FbxAMatrix& NodeGlobalTransform = MyScene->GetEvaluator()->GetNodeGlobalTransform(CurrentNode);
}
//There is an equivalent call to retrieve a node's global transform, which is exactly the same as calling Scene->GetEvaluator() :
FbxAMatrix& NodeGlobalTransform = CurrentNode->EvaluateGlobalTransform();

Another typical usage of the evaluator class, but this time to retrieve the value of an animated color property on a material:

//Assuming the user imported a scene with objects and materials...
FbxColor Color = MyMaterial->GetDiffuseColor()->EvaluateValue();
Note
Note that all the methods to retrieve global/local matrices as well as property values returns references. This is important for performance purposes, to prevent an extra memory copy.
See also
FbxScene, FbxAnimEvalClassic, FbxAnimCurveNode

Definition at line 61 of file fbxanimevaluator.h.

+ Inheritance diagram for FbxAnimEvaluator:

Public Types

typedef FbxObject ParentClass
 
- Public Types inherited from FbxObject
typedef FbxEmitter ParentClass
 
enum  EObjectFlag {
  eNone = 0, eInitialized = 1 << 0, eSystem = 1 << 1, eSavable = 1 << 2,
  eSelected = 1 << 3, eHidden = 1 << 4, eContentLoaded = 1 << 5, eDontLocalize = 1 << 6,
  eCopyCalledByClone = 1 << 16
}
 Flags available to control objects. More...
 
enum  ECloneType { eDeepClone, eReferenceClone }
 Types of clones that can be created for FbxObject. More...
 

Public Member Functions

virtual FbxClassId GetClassId () const
 
FbxAMatrixGetNodeGlobalTransform (FbxNode *pNode, const FbxTime &pTime=FbxTime((0x7fffffffffffffffLL)), FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
 Returns a node's global transformation matrix at the specified time. More...
 
FbxAMatrixGetNodeLocalTransform (FbxNode *pNode, const FbxTime &pTime=FbxTime((0x7fffffffffffffffLL)), FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
 Returns a node's local transformation matrix at the specified time. More...
 
FbxVector4GetNodeLocalTranslation (FbxNode *pNode, const FbxTime &pTime=FbxTime((0x7fffffffffffffffLL)), FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
 Returns the value of a node's LclTranslation property at the specified time. More...
 
FbxVector4GetNodeLocalRotation (FbxNode *pNode, const FbxTime &pTime=FbxTime((0x7fffffffffffffffLL)), FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
 Returns the value of a node's LclRotation property at the specified time. More...
 
FbxVector4GetNodeLocalScaling (FbxNode *pNode, const FbxTime &pTime=FbxTime((0x7fffffffffffffffLL)), FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
 Returns the value of a node's LclScaling property at the specified time. More...
 
template<class T >
GetPropertyValue (FbxProperty &pProperty, const FbxTime &pTime, bool pForceEval=false)
 Get a property's value at the specified time using the template type provided. More...
 
FbxPropertyValueGetPropertyValue (FbxProperty &pProperty, const FbxTime &pTime, bool pForceEval=false)
 Get a property's value at the specified time. More...
 
FbxAnimCurveNodeGetPropertyCurveNode (FbxProperty &pProperty, FbxAnimLayer *pAnimLayer)
 Get a property curve node from the evaluation state for quick access. More...
 
FbxTime ValidateTime (const FbxTime &pTime)
 Validate if the given time value is within animation stack time span range. More...
 
void Reset ()
 Completely reset the evaluation state cache by deleting all entries. More...
 
void Flush (FbxNode *pNode)
 Clears the specified node evaluation state cache, so the next time the evaluation is called for this node it get refreshed. More...
 
void Flush (FbxProperty &pProperty)
 Clears the specified property evaluation state cache, so the next time the evaluation is called for this property it get refreshed. More...
 
void ComputeLocalTRSFromGlobal (FbxVector4 &pRetLT, FbxVector4 &pRetLR, FbxVector4 &pRetLS, FbxNode *pNode, FbxAMatrix &pGX, const FbxTime &pTime=FbxTime((0x7fffffffffffffffLL)), FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false)
 Compute node local TRS from global transform. More...
 
- Public Member Functions inherited from FbxObject
virtual void Compact ()
 Compact the memory used by this object. More...
 
template<class T >
bool Is () const
 Templated test if this class is a hierarchical children of the specified class type. More...
 
FbxManagerGetFbxManager () const
 Retrieve the FbxManager this object belongs to. More...
 
FbxDocumentGetDocument () const
 Returns a const pointer to the document that contains this object. More...
 
FbxDocumentGetRootDocument () const
 Returns a const pointer to the root document that contains this object. More...
 
FbxSceneGetScene () const
 Returns a const pointer to the scene that contains this object. More...
 
void Destroy (bool pRecursive=false)
 Unregister and delete this object from memory. More...
 
void ResetProperties ()
 Reset all the properties of this object to their default values. More...
 
virtual bool GetSelected ()
 Returns if this object is currently in a selected state. More...
 
virtual void SetSelected (bool pSelected)
 Sets whether this object is currently selected. More...
 
void SetUserDataPtr (const FbxUInt64 &pUserID, void *pUserData)
 Sets the data pointer for an user data record whose ID is pUserID. More...
 
void * GetUserDataPtr (const FbxUInt64 &pUserID) const
 Returns the data pointer of an user data record whose ID is pUserID. More...
 
void SetUserDataPtr (void *pUserData)
 Sets the data pointer for the user data record whose ID is the object ID. More...
 
void * GetUserDataPtr () const
 Returns the data pointer of the user data record whose ID is the object ID. More...
 
bool ConnectSrcObject (FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
 Connects this object to a source object. More...
 
bool IsConnectedSrcObject (const FbxObject *pObject) const
 Judges whether this object connects with the source object. More...
 
bool DisconnectSrcObject (FbxObject *pObject)
 Disconnects this object from a source object. More...
 
bool DisconnectAllSrcObject ()
 Disconnects this object from all source objects. More...
 
bool DisconnectAllSrcObject (const FbxCriteria &pCriteria)
 Disconnects this object from all source objects that satisfy a given criteria. More...
 
int GetSrcObjectCount () const
 Returns the number of source objects with which this object connects. More...
 
int GetSrcObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of source objects that satisfy the given criteria with which this object connects. More...
 
FbxObjectGetSrcObject (int pIndex=0) const
 Returns the source object with which this object connects at the specified index. More...
 
FbxObjectGetSrcObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the source object that satisfies the criteria at the specified index with which this object connects. More...
 
FbxObjectFindSrcObject (const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name, starting at the specified index. More...
 
FbxObjectFindSrcObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name which satisfies the given criteria, starting at the specified index. More...
 
template<class T >
bool DisconnectAllSrcObject ()
 Disconnects this object from all source objects of the specified class type. More...
 
template<class T >
bool DisconnectAllSrcObject (const FbxCriteria &pCriteria)
 Disconnects this object from all source objects that are of the specified class type and that satisfy the given criteria. More...
 
template<class T >
int GetSrcObjectCount () const
 Returns the number of source objects of a specific class type with which this object connects. More...
 
template<class T >
int GetSrcObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of source objects with which this object connects that are the specified class type and that satisfy the given criteria. More...
 
template<class T >
T * GetSrcObject (int pIndex=0) const
 Returns the source object of the specified class type at the specified index. More...
 
template<class T >
T * GetSrcObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the source object that is the specified class type and that satisfies the given criteria at the specified index. More...
 
template<class T >
T * FindSrcObject (const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name that is the specified class type, starting at the specified index. More...
 
template<class T >
T * FindSrcObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the source object with the specified name that is the specified class type and that satisfies the given criteria, starting at the specified index. More...
 
bool ConnectDstObject (FbxObject *pObject, FbxConnection::EType pType=FbxConnection::eNone)
 Connects this object to one destination object. More...
 
bool IsConnectedDstObject (const FbxObject *pObject) const
 Judges whether this object connects with the destination object. More...
 
bool DisconnectDstObject (FbxObject *pObject)
 Disconnects this object from the destination object. More...
 
bool DisconnectAllDstObject ()
 Disconnects this object from all destination objects. More...
 
bool DisconnectAllDstObject (const FbxCriteria &pCriteria)
 Disconnects this object from all destination objects that satisfy given criteria. More...
 
int GetDstObjectCount () const
 Returns the number of destination objects with which this object connects. More...
 
int GetDstObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of destination objects with which this object connects that satisfy the given criteria. More...
 
FbxObjectGetDstObject (int pIndex=0) const
 Returns the destination object at the specified index with which this object connects. More...
 
FbxObjectGetDstObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the destination object with which this object connects that satisfies the given criteria at the specified index. More...
 
FbxObjectFindDstObject (const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name, starting at the specified index. More...
 
FbxObjectFindDstObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name which satisfies the given criteria, starting at the specified index. More...
 
template<class T >
bool DisconnectAllDstObject ()
 Disconnects this object from all destination objects of the specified class type. More...
 
template<class T >
bool DisconnectAllDstObject (const FbxCriteria &pCriteria)
 Disconnects this object from all destination objects that are the specified class type and that satisfy the given criteria. More...
 
template<class T >
int GetDstObjectCount () const
 Returns the number of destination objects of the specified class type with which this object connects. More...
 
template<class T >
int GetDstObjectCount (const FbxCriteria &pCriteria) const
 Returns the number of destination objects with which this object connects that are the specified class type and that satisfy the given criteria. More...
 
template<class T >
T * GetDstObject (int pIndex=0) const
 Returns the destination object with which this object connects that is the specified class type at the specified index. More...
 
template<class T >
T * GetDstObject (const FbxCriteria &pCriteria, int pIndex=0) const
 Returns the destination object with which this object connects that is the specified class type and that satisfies the given criteria at the specified index. More...
 
template<class T >
T * FindDstObject (const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name which is of the specified class type, starting at the specified index. More...
 
template<class T >
T * FindDstObject (const FbxCriteria &pCriteria, const char *pName, int pStartIndex=0) const
 Searches the destination object with the specified name that is the specified class type and that satisfies the given criteria, starting at the specified index. More...
 
FbxProperty GetFirstProperty () const
 Returns the first property of this object. More...
 
FbxProperty GetNextProperty (const FbxProperty &pProperty) const
 Returns the next property of this object that follows the specified property. More...
 
FbxProperty FindProperty (const char *pName, bool pCaseSensitive=true) const
 Searches a property by name. More...
 
FbxProperty FindProperty (const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
 Searches a property by name and data type. More...
 
FbxProperty FindPropertyHierarchical (const char *pName, bool pCaseSensitive=true) const
 Searches a property by full name. More...
 
FbxProperty FindPropertyHierarchical (const char *pName, const FbxDataType &pDataType, bool pCaseSensitive=true) const
 Searches a property by full name and data type. More...
 
FbxProperty GetClassRootProperty ()
 Returns the class root property. More...
 
bool ConnectSrcProperty (const FbxProperty &pProperty)
 Connects this object to a source property. More...
 
bool IsConnectedSrcProperty (const FbxProperty &pProperty)
 Determines whether this object connects with the specified source property. More...
 
bool DisconnectSrcProperty (const FbxProperty &pProperty)
 Disconnects this object from the specified source property. More...
 
int GetSrcPropertyCount () const
 Returns the number of source properties with which this object connects. More...
 
FbxProperty GetSrcProperty (int pIndex=0) const
 Returns the source property at the specified index with which this object connects. More...
 
FbxProperty FindSrcProperty (const char *pName, int pStartIndex=0) const
 Searches a source property with which this object connects that has a specific name, starting at the specified index. More...
 
bool ConnectDstProperty (const FbxProperty &pProperty)
 Connects this object to a destination property. More...
 
bool IsConnectedDstProperty (const FbxProperty &pProperty)
 Determines if this object connects with the specified destination property. More...
 
bool DisconnectDstProperty (const FbxProperty &pProperty)
 Disconnects this object from the specified destination property. More...
 
int GetDstPropertyCount () const
 Returns the number of destination properties with which this object connects. More...
 
FbxProperty GetDstProperty (int pIndex=0) const
 Returns the destination property at the specified index with which this object connects. More...
 
FbxProperty FindDstProperty (const char *pName, int pStartIndex=0) const
 Searches a destination property with which this object connects that has a specific name, starting at the specified index. More...
 
int ContentUnload ()
 Unloads this object's content using the offload peripheral that is currently set in the document then flushes it from memory. More...
 
int ContentLoad ()
 Loads this object's content using the offload peripheral that is currently set in the document. More...
 
bool ContentIsLoaded () const
 Judges if this object's content is loaded. More...
 
void ContentDecrementLockCount ()
 Decreases the content lock count of an object. More...
 
void ContentIncrementLockCount ()
 Increases the content lock count of an object. More...
 
bool ContentIsLocked () const
 Judges if this object's content is locked. More...
 
virtual bool ContentWriteTo (FbxStream &pStream) const
 Writes the content of the object to the given stream. More...
 
virtual bool ContentReadFrom (const FbxStream &pStream)
 Reads the content of the object from the given stream. More...
 
void EmitMessage (FbxMessage *pMessage) const
 Emits a message in all available message emitters in the document or SDK manager. More...
 
virtual const char * Localize (const char *pID, const char *pDefault=((void *) 0)) const
 Localization helper function, it calls the implementation of FBX SDK manager. More...
 
FbxLibraryGetParentLibrary () const
 Returns a handle on the parent library of this object. More...
 
bool AddImplementation (FbxImplementation *pImplementation)
 Adds an implementation. More...
 
bool RemoveImplementation (FbxImplementation *pImplementation)
 Removes an implementation. More...
 
bool HasDefaultImplementation (void) const
 Determines if this shading node has a default implementation. More...
 
FbxImplementationGetDefaultImplementation (void) const
 Returns the default implementation of this shading node. More...
 
bool SetDefaultImplementation (FbxImplementation *pImplementation)
 Sets the default implementation of this shading node. More...
 
int GetImplementationCount (const FbxImplementationFilter *pCriteria=((void *) 0)) const
 Returns the number of implementations that satisfy a given criteria. More...
 
FbxImplementationGetImplementation (int pIndex, const FbxImplementationFilter *pCriteria=((void *) 0)) const
 Returns the implementation at the specified index that satisfies the given criteria. More...
 
virtual FbxString GetUrl () const
 Returns the URL of this object. More...
 
virtual bool SetUrl (char *pUrl)
 Sets the URL of this object. More...
 
void SetRuntimeClassId (const FbxClassId &pClassId)
 Set the run-time ClassId for this class. More...
 
FbxClassId GetRuntimeClassId () const
 Retrieve the run-time ClassId for this object. More...
 
bool IsRuntime (const FbxClassId &pClassId) const
 Test if this class is a hierarchical children of the specified class type. More...
 
bool IsRuntimePlug () const
 Find out if the ClassId was registered during run-time rather than at compile time. More...
 
void SetObjectFlags (EObjectFlag pFlags, bool pValue)
 Set the state of object flags. More...
 
bool GetObjectFlags (EObjectFlag pFlags) const
 Get the state of object flags. More...
 
void SetAllObjectFlags (FbxUInt pFlags)
 Override all object flags at once. More...
 
FbxUInt GetAllObjectFlags () const
 Get all object flags at once. More...
 
virtual FbxObjectCopy (const FbxObject &pObject)
 Copy an object content into this object. More...
 
virtual FbxObjectClone (FbxObject::ECloneType pCloneType=eDeepClone, FbxObject *pContainer=((void *) 0), void *pSet=((void *) 0)) const
 Creates a clone of this object. More...
 
bool IsAReferenceTo () const
 Checks if this object is a reference clone of another object. More...
 
FbxObjectGetReferenceTo () const
 If this object is a reference clone, returns the original object (from which the clone originates). More...
 
bool IsReferencedBy () const
 Checks if any objects are reference cloned from this object. More...
 
int GetReferencedByCount () const
 Returns the number of objects that are reference clones of this object. More...
 
FbxObjectGetReferencedBy (int pIndex) const
 Returns a reference clone of this object at the specified index. More...
 
void SetName (const char *pName)
 Sets the name of this object. More...
 
const char * GetName () const
 Returns the full name of this object. More...
 
FbxString GetNameWithoutNameSpacePrefix () const
 Returns the name of the object without the namespace qualifier. More...
 
FbxString GetNameWithNameSpacePrefix () const
 Returns the name of the object with the namespace qualifier. More...
 
void SetInitialName (const char *pName)
 Sets the initial name of the object. More...
 
const char * GetInitialName () const
 Returns the initial name of the object. More...
 
FbxString GetNameSpaceOnly ()
 Returns the namespace of the object. More...
 
void SetNameSpace (FbxString pNameSpace)
 Sets the namespace of the object. More...
 
FbxArray< FbxString * > GetNameSpaceArray (char identifier)
 Returns an array of all the namespaces for this object. More...
 
FbxString GetNameOnly () const
 Returns only the name (no namespace or prefix) of the object. More...
 
FbxString GetNameSpacePrefix () const
 Returns the namespace qualifier. More...
 
const FbxUInt64GetUniqueID () const
 Returns the unique ID of this object. More...
 
- Public Member Functions inherited from FbxEmitter
void AddListener (FbxEventHandler &pHandler)
 Add the specified event handler to current emitter list. More...
 
void RemoveListener (FbxEventHandler &pHandler)
 Remove the specified event handler from current emitter list. More...
 
template<typename EventType >
void Emit (const EventType &pEvent) const
 Emit an event with the specified the event type. More...
 

Static Public Member Functions

static FbxAnimEvaluatorCreate (FbxManager *pManager, const char *pName)
 
- Static Public Member Functions inherited from FbxObject
static FbxObjectCreate (FbxManager *pManager, const char *pName)
 
static FbxObjectCreate (FbxObject *pContainer, const char *pName)
 
static FbxString RemovePrefix (char *pName)
 Removes the prefix of pName. More...
 
static FbxString StripPrefix (FbxString &lName)
 Strips the prefix of pName. More...
 
static FbxString StripPrefix (const char *pName)
 Strips the prefix of pName. More...
 

Static Public Attributes

static FbxClassId ClassId
 
- Static Public Attributes inherited from FbxObject
static FbxClassId ClassId
 

Protected Member Functions

virtual ~ FbxAnimEvaluator ()
 
 FbxAnimEvaluator (FbxManager &pManager, const char *pName)
 
- Protected Member Functions inherited from FbxObject
virtual ~ FbxObject ()
 
virtual void Construct (const FbxObject *pFrom)
 Optional constructor override, automatically called by default constructor. More...
 
virtual void ConstructProperties (bool pForceSet)
 Optional property constructor override, automatically called by default constructor. More...
 
virtual void Destruct (bool pRecursive)
 Optional destructor override, automatically called by default destructor. More...
 
virtual void ContentClear ()
 Clears this object's content from memory. More...
 
virtual FbxPeripheralGetPeripheral ()
 Retrieves the peripheral of that object. More...
 

Static Protected Attributes

static FbxObjectCreateProc Allocate
 

Friends

class fbxsdk ::FbxManager
 

Additional Inherited Members

- Public Attributes inherited from FbxObject
FbxProperty RootProperty
 The root property that holds all children property for this object. More...
 
- Static Protected Member Functions inherited from FbxObject
static FbxObjectAllocate (FbxManager *pManager, const char *pName, const FbxObject *pFrom)
 

Member Typedef Documentation

◆ ParentClass

Definition at line 63 of file fbxanimevaluator.h.

Constructor & Destructor Documentation

◆ ~ FbxAnimEvaluator()

virtual ~ FbxAnimEvaluator ( )
inlineprotectedvirtual

Definition at line 63 of file fbxanimevaluator.h.

65 :

◆ FbxAnimEvaluator()

FbxAnimEvaluator ( FbxManager pManager,
const char *  pName 
)
inlineprotected

Definition at line 63 of file fbxanimevaluator.h.

65 :

Member Function Documentation

◆ GetClassId()

virtual FbxClassId GetClassId ( ) const
inlinevirtual

Reimplemented from FbxObject.

Reimplemented in FbxAnimEvalClassic.

Definition at line 63 of file fbxanimevaluator.h.

65 :

◆ Create()

static FbxAnimEvaluator* Create ( FbxManager pManager,
const char *  pName 
)
static

◆ GetNodeGlobalTransform()

FbxAMatrix& GetNodeGlobalTransform ( FbxNode pNode,
const FbxTime pTime = FbxTime((0x7fffffffffffffffLL)),
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns a node's global transformation matrix at the specified time.

The node's translation, rotation and scaling limits are taken into consideration.

Parameters
pNodeThe node to evaluate.
pTimeThe time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSetThe pivot set to take into account
pApplyTargetApplies the necessary transform to align into the target node
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns
The resulting global transform of the specified node at the specified time.

◆ GetNodeLocalTransform()

FbxAMatrix& GetNodeLocalTransform ( FbxNode pNode,
const FbxTime pTime = FbxTime((0x7fffffffffffffffLL)),
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns a node's local transformation matrix at the specified time.

The node's translation, rotation and scaling limits are taken into consideration.

Parameters
pNodeThe node to evaluate.
pTimeThe time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSetThe pivot set to take into account
pApplyTargetApplies the necessary transform to align into the target node
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns
The resulting local transform of the specified node for the specified time.
Remarks
The local transform matrix is calculated in this way: ParentGlobal.Inverse * Global, all transforms such as pre/post rotation are taken into consideration. This will return a different value than LclTranslation, LclRotation and LclScaling at the specified time. To evaluate these properties separately without taking pre/post rotation, pivots and offsets into consideration, please use GetNodeLocalTranslation(), GetNodeLocalRotation() and GetNodeLocalScaling().

◆ GetNodeLocalTranslation()

FbxVector4& GetNodeLocalTranslation ( FbxNode pNode,
const FbxTime pTime = FbxTime((0x7fffffffffffffffLL)),
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns the value of a node's LclTranslation property at the specified time.

No pivot, offsets, or any other transform is taken into consideration. The translation limit is applied.

Parameters
pNodeThe transform node to evaluate.
pTimeThe time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSetThe pivot set to take into account
pApplyTargetApplies the necessary transform to align into the target node
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns
The resulting value of LclTranslation property of the specified node at the specified time.

◆ GetNodeLocalRotation()

FbxVector4& GetNodeLocalRotation ( FbxNode pNode,
const FbxTime pTime = FbxTime((0x7fffffffffffffffLL)),
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns the value of a node's LclRotation property at the specified time.

No pre/post rotation, rotation pivot, rotation offset or any other transform is taken into consideration. The rotation limit is applied.

Parameters
pNodeThe transform node to evaluate.
pTimeThe time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSetThe pivot set to take into account
pApplyTargetApplies the necessary transform to align into the target node
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns
The resulting value of LclRotation property of the specified node at the specified time.

◆ GetNodeLocalScaling()

FbxVector4& GetNodeLocalScaling ( FbxNode pNode,
const FbxTime pTime = FbxTime((0x7fffffffffffffffLL)),
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Returns the value of a node's LclScaling property at the specified time.

No scaling pivot, scaling offset or any other transform is taken into consideration. The scaling limit is applied.

Parameters
pNodeThe transform node to evaluate.
pTimeThe time used for evaluate. If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSetThe pivot set to take into account
pApplyTargetApplies the necessary transform to align into the target node
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns
The resulting value of LclScaling property of the specified node at the specified time.

◆ GetPropertyValue() [1/2]

T GetPropertyValue ( FbxProperty pProperty,
const FbxTime pTime,
bool  pForceEval = false 
)
inline

Get a property's value at the specified time using the template type provided.

Parameters
pPropertyThe property to evaluate.
pTimeThe time used for evaluate.
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns
The property value at the specified time converted to the template type provided, if possible.
Remarks
If the property type versus the template cannot be converted, the result is unknown.

Definition at line 126 of file fbxanimevaluator.h.

126 { return GetPropertyEvalState(pProperty, pTime, pForceEval)->Get<T>(); }

◆ GetPropertyValue() [2/2]

FbxPropertyValue& GetPropertyValue ( FbxProperty pProperty,
const FbxTime pTime,
bool  pForceEval = false 
)

Get a property's value at the specified time.

Parameters
pPropertyThe property to evaluate.
pTimeThe time used for evaluate.
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.
Returns
The property value at the specified time. Use FbxPropertyValue::Get() to retrieve the value into a pointer location of your choice.

◆ GetPropertyCurveNode()

FbxAnimCurveNode* GetPropertyCurveNode ( FbxProperty pProperty,
FbxAnimLayer pAnimLayer 
)

Get a property curve node from the evaluation state for quick access.

Parameters
pPropertyThe property to search for its animation curve node.
pAnimLayerThe animation layer on which the animation curve node must be searched.
Remarks
This function uses a map to store animation curve node search results. If animation curve nodes are replaced, the evaluation state must be reset.

◆ ValidateTime()

FbxTime ValidateTime ( const FbxTime pTime)

Validate if the given time value is within animation stack time span range.

Parameters
pTimeThe time value to validate.
Returns
The new validated time, clamped by the animation stack time span range.
Remarks
If no animation stack are found, time zero is returned. This function is not used by the evaluator itself.

◆ Reset()

void Reset ( )

Completely reset the evaluation state cache by deleting all entries.

This reset automatically happens when changing the current context.

◆ Flush() [1/2]

void Flush ( FbxNode pNode)

Clears the specified node evaluation state cache, so the next time the evaluation is called for this node it get refreshed.

Parameters
pNodeThe node that needs to be re-evaluated in next evaluation.

◆ Flush() [2/2]

void Flush ( FbxProperty pProperty)

Clears the specified property evaluation state cache, so the next time the evaluation is called for this property it get refreshed.

Parameters
pPropertyThe property that needs to be re-evaluated in next evaluation.

◆ ComputeLocalTRSFromGlobal()

void ComputeLocalTRSFromGlobal ( FbxVector4 pRetLT,
FbxVector4 pRetLR,
FbxVector4 pRetLS,
FbxNode pNode,
FbxAMatrix pGX,
const FbxTime pTime = FbxTime((0x7fffffffffffffffLL)),
FbxNode::EPivotSet  pPivotSet = FbxNode::eSourcePivot,
bool  pApplyTarget = false,
bool  pForceEval = false 
)

Compute node local TRS from global transform.

Doesn't change cached state for current time.

Parameters
[out]pRetLTComputed local translation.
[out]pRetLRComputed local rotation.
[out]pRetLSComputed local scaling.
pNodeThe transform node to evaluate.
pGXGlobal transformation state.
pTimeThe time used for evaluate.If FBXSDK_TIME_INFINITE is used, this returns the default value, without animation curves evaluation.
pPivotSetThe pivot set to take into account.
pApplyTargetApplies the necessary transform to align into the target node.
pForceEvalForce the evaluator to refresh the evaluation state cache even if its already up-to-date.

Friends And Related Function Documentation

◆ fbxsdk ::FbxManager

friend class fbxsdk ::FbxManager
friend

Definition at line 63 of file fbxanimevaluator.h.

Member Data Documentation

◆ ClassId

FbxClassId ClassId
static

Definition at line 63 of file fbxanimevaluator.h.

◆ Allocate

FbxObjectCreateProc Allocate
staticprotected

Definition at line 63 of file fbxanimevaluator.h.


The documentation for this class was generated from the following file: