FbxAnimEvalState Class Reference
 
 
 
FbxAnimEvalState Class Reference

#include <fbxanimevalstate.h>


Class Description

This class hold results from animation evaluations.

To clear an evaluation state for re-use, it is possible to invalidate or to reset it. For the same scene with the same objects, invalidating an evaluation state is the quickest way to clear an evaluation state object for re-use because it only zeroes all the entries. A reset will delete all the entries. Unless the scene changes, for performance purposes it is recommended to invalidate evaluation states instead of resetting them.

See also:
FbxAnimEvaluator

Definition at line 35 of file fbxanimevalstate.h.

List of all members.

Public Member Functions

  FbxAnimEvalState ()
  Constructor.
FbxTime  GetTime () const
  Get the time associated with this evaluation state.
void  Reset ()
  Reset an evaluation state by deleting the cache it contains.
void  Invalidate (FbxTime pTime)
  Invalidate an evaluation state by zeroing the cache it contains, and changing its associated time.
void  InvalidateNode (FbxNode *pNode)
  Invalidate a node evaluation state.
void  InvalidateProperty (FbxProperty &pProperty)
  Invalidate a property evaluation state.
FbxNodeEvalState GetNodeTransform (FbxNode *pNode, int &pDirectIndex, bool &pNeedEval)
  Get node transform evaluation result from the evaluation state.
void  SetNodeEvaluated (int pDirectIndex)
  Set the evaluation state of a node to "evaluated".
FbxAnimCurveNode GetPropertyValue (FbxProperty &pProperty, int &pDirectIndex, bool &pNeedEval, FbxScene *pScene)
  Get a property evaluation result from the evaluation state.
void  SetPropertyEvaluated (int pDirectIndex)
  Set the evaluation state of a property to "evaluated".

Constructor & Destructor Documentation

Constructor.


Member Function Documentation

FbxTime GetTime ( ) const

Get the time associated with this evaluation state.

Returns:
The time associated with this evaluation state.
void Reset ( )

Reset an evaluation state by deleting the cache it contains.

This will remove all entries in the cache.

void Invalidate ( FbxTime  pTime )

Invalidate an evaluation state by zeroing the cache it contains, and changing its associated time.

All node and property entries will remain in the list, but will become in an not-evaluated state.

Parameters:
pTime The time at which the evaluation state should be set after the invalidation.
void InvalidateNode ( FbxNode pNode )

Invalidate a node evaluation state.

Parameters:
pNode The node that needs to be re-evaluated in next evaluation.
void InvalidateProperty ( FbxProperty pProperty )

Invalidate a property evaluation state.

Parameters:
pProperty The property that needs to be re-evaluated in next evaluation.
FbxNodeEvalState* GetNodeTransform ( FbxNode pNode,
int &  pDirectIndex,
bool &  pNeedEval 
)

Get node transform evaluation result from the evaluation state.

Parameters:
pNode The node for which the value was stored.
pDirectIndex Index to retrieve the information in the evaluation state node list, to speed up performance. (Use -1 if index is unknown).
pNeedEval The function will set this parameter to true if the value in the state needs a re-evaluation.
Returns:
The global or local matrix transform for the specified node.
void SetNodeEvaluated ( int  pDirectIndex )

Set the evaluation state of a node to "evaluated".

Each node in this evaluation state can become "evaluated", which means this evaluation state contains information about this node. Please remember that an evaluation state contains a time, so evaluated nodes must match that time. Calling this method will set the flag to true for this node, as if it was already being evaluated.

Parameters:
pDirectIndex The index of the node in the evaluation state node list. You may call GetNodeTransform to retrieve this index.
Remarks:
Not all nodes get evaluated at the same time, it is only true for nodes that were evaluated by the evaluator. So in most cases, an evaluation state contains both evaluated and not-evaluated nodes. Sometimes, if you do not want a node to get evaluated, you can set it as "evaluated". A good example is if you create a camera manipulator, you probably do not want the system to replace the camera on every redraw, so you can set it as evaluated and then it won't get re-evaluated.
FbxAnimCurveNode* GetPropertyValue ( FbxProperty pProperty,
int &  pDirectIndex,
bool &  pNeedEval,
FbxScene pScene 
)

Get a property evaluation result from the evaluation state.

Parameters:
pProperty The property for which the value was stored.
pDirectIndex Index to retrieve the information in the evaluation state property list, to speed up performance. (Use -1 if index is unknown).
pNeedEval The function will set this parameter to true if the value in the state needs a re-evaluation.
pScene The FBX scene used for evaluation.
Returns:
The result value that was stored.
Remarks:
This function is not well suited for real-time applications, since it performs a find in the array. But it is reliable and simple to use.
void SetPropertyEvaluated ( int  pDirectIndex )

Set the evaluation state of a property to "evaluated".

Each property in this evaluation state can become "evaluated", which means this evaluation state contains information about this property. Please remember that an evaluation state contains a time, so evaluated properties must match that time. Calling this method will set the flag to true for this property, as if it was already being evaluated.

Parameters:
pDirectIndex The index of the property in the evaluation state property list. You may call GetPropertyValue to retrieve this index.
Remarks:
Not all properties get evaluated at the same time, it is only true for properties that were evaluated by the evaluator. So in most cases, an evaluation state contains both evaluated and not-evaluated properties. Sometimes, if you do not want a property to get evaluated, you can set it as "evaluated".

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