fbxanimevalstate.h

Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2012 Autodesk, Inc.
00004    All rights reserved.
00005  
00006    Use of this software is subject to the terms of the Autodesk license agreement
00007    provided at the time of installation or download, or which otherwise accompanies
00008    this software in either electronic or hard copy form.
00009  
00010 ****************************************************************************************/
00011 
00013 #ifndef _FBXSDK_SCENE_ANIMATION_EVALUATION_STATE_H_
00014 #define _FBXSDK_SCENE_ANIMATION_EVALUATION_STATE_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/scene/geometry/fbxnode.h>
00019 
00020 #include <fbxsdk/fbxsdk_nsbegin.h>
00021 
00022 class FbxTransform;
00023 class FbxNodeEvalState;
00024 
00025 struct FbxAnimEvalState_internal;
00026 
00035 class FBXSDK_DLL FbxAnimEvalState
00036 {
00037 public:
00040     FbxAnimEvalState();
00041 
00045     FbxTime GetTime() const;
00046 
00049     void Reset();
00050 
00055     void Invalidate(FbxTime pTime);
00056 
00060     void InvalidateNode(FbxNode* pNode);
00061 
00065     void InvalidateProperty(FbxProperty& pProperty);
00066 
00073     FbxNodeEvalState* GetNodeTransform(FbxNode* pNode, int& pDirectIndex, bool& pNeedEval);
00074 
00087     void SetNodeEvaluated(int pDirectIndex);
00088 
00098     FbxAnimCurveNode* GetPropertyValue(FbxProperty& pProperty, int& pDirectIndex, bool& pNeedEval, FbxScene* pScene);
00099 
00110     void SetPropertyEvaluated(int pDirectIndex);
00111 
00113 //
00114 //  WARNING!
00115 //
00116 //    Anything beyond these lines may not be documented accurately and is 
00117 //     subject to change without notice.
00118 //
00120 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00121     virtual ~FbxAnimEvalState();
00122 
00123 private:
00124     FbxAnimEvalState_internal* mData;
00125 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS 
00126 };
00127 
00129 //
00130 //  WARNING!
00131 //
00132 //    Anything beyond these lines may not be documented accurately and is 
00133 //     subject to change without notice.
00134 //
00136 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00137 
00141 class FBXSDK_DLL FbxNodeEvalState
00142 {
00143 public:
00144     FbxNodeEvalState(FbxNode* pNode);
00145 
00148     FbxVector4 mLT;
00149 
00152     FbxVector4 mLR;
00153 
00156     FbxVector4 mLS;
00157 
00161     FbxAMatrix mLX;
00162 
00166     FbxAMatrix mGX;
00167 
00172     FbxTransform* mTransform;
00173 
00174     int                 mParentIndex, mTargetIndex, mTargetUpIndex;
00175     FbxAnimCurveNode*   mCurveNode[3];
00176     FbxAnimLayer*       mLayer;
00177 };
00178 
00179 #endif // #ifndef DOXYGEN_SHOULD_SKIP_THIS 
00180 
00181 #include <fbxsdk/fbxsdk_nsend.h>
00182 
00183 #endif /* _FBXSDK_SCENE_ANIMATION_EVALUATION_STATE_H_ */