fbxsdk/scene/animation/fbxanimevalstate.h Source File

fbxanimevalstate.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_SCENE_ANIMATION_EVALUATION_STATE_H_
14 #define _FBXSDK_SCENE_ANIMATION_EVALUATION_STATE_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
21 
22 #include <fbxsdk/fbxsdk_nsbegin.h>
23 
24 class FbxTransform;
25 class FbxNodeEvalState;
27 
32 
42 {
43 public:
46  FbxTime GetTime() const;
47 
49  void Reset();
50 
54  void Begin(const FbxTime& pTime);
55 
58  void Flush(FbxNode* pNode);
59 
62  void Flush(FbxProperty& pProperty);
63 
67  FbxNodeEvalState* GetNodeEvalState(FbxNode* pNode);
68 
72  FbxPropertyEvalState* GetPropertyEvalState(FbxProperty& pProperty);
73 
78  FbxAnimCurveNode* GetPropertyCurveNode(FbxProperty& pProperty, FbxAnimLayer* pAnimLayer);
79 
80 /*****************************************************************************************************************************
81 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
82 *****************************************************************************************************************************/
83 #ifndef DOXYGEN_SHOULD_SKIP_THIS
85  virtual ~FbxAnimEvalState();
86 
87 private:
88  FbxTime mTime;
89  FbxNodeEvalStateMap mNodeMap;
90  FbxPropertyEvalStateMap mPropertyMap;
91  FbxPropertyCurveNodeMap mPropertyCurveNodeMap;
92 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
93 };
94 
97 {
98 public:
99  FbxEvalState() : mUpToDate(false){}
100  bool mUpToDate;
101 };
102 
105 {
106 public:
107  FbxNodeEvalState(FbxNode* pNode);
108 
114 
119 };
120 
123 {
124 public:
125  FbxPropertyEvalState(FbxProperty& pProperty);
126  virtual ~FbxPropertyEvalState();
127 
128  template <class T> inline T Get() const { T lValue; mValue->Get(&lValue, FbxTypeOf(lValue)); return lValue; }
129  template <class T> inline bool Set(const T& pValue){ return mValue->Set(&pValue, FbxTypeOf(pValue)); }
130 
132 };
133 
134 #include <fbxsdk/fbxsdk_nsend.h>
135 
136 #endif /* _FBXSDK_SCENE_ANIMATION_EVALUATION_STATE_H_ */
The animation layer is a collection of animation curve nodes.
Definition: fbxanimlayer.h:30
This class hold results from animation evaluations.
FBX SDK environment definition.
This class hold results for node evaluation.
This class is an composite of animation curves and is called as animation curve node.
FbxVector4 mLT
Used to hold result value of LclTranslation property from node evaluation.
FbxAMatrix mGX
Used to hold result global transform matrix from node evaluation.
FbxAMatrix mLX
Used to hold result local transform matrix from node evaluation.
Handle transform behaviors such as pivots, limits and offets, etc.
bool mUpToDate
If true, the evaluation state element is up-to-date for the current evaluation time.
FbxMap< FbxAnimLayer *, FbxAnimCurveNode * > FbxAnimLayerCurveNodeMap
This class implements an efficient map based on key comparison, which stores key-value pairs...
Definition: fbxmap.h:68
Class to encapsulate time units.
Definition: fbxtime.h:44
FbxMap< FbxNode *, FbxNodeEvalState * > FbxNodeEvalStateMap
Represents an element in the scene graph.
Definition: fbxnode.h:72
EFbxType FbxTypeOf(const FbxChar &)
This class hold results for property evaluation.
FbxVector4 mLR
Used to hold result value of LclRotation property from node evaluation.
FbxPropertyValue * mValue
Class to hold user properties.
Definition: fbxproperty.h:37
A four double mathematic vector class.
Definition: fbxvector4.h:25
FBX SDK affine matrix class.
FbxVector4 mLS
Used to hold result value of LclScaling property from node evaluation.
FbxMap< FbxProperty, FbxAnimLayerCurveNodeMap * > FbxPropertyCurveNodeMap
#define FBXSDK_DLL
Definition: fbxarch.h:173
FbxTransform * mTransform
mTransform is used to hold the corresponding FbxTransform of the node.
bool Set(const T &pValue)
FbxMap< FbxProperty, FbxPropertyEvalState * > FbxPropertyEvalStateMap
This class serves as the base class for an evaluation state element.