fbxsdk/scene/animation/fbxanimevalstate.h Source File
 
 
 
fbxsdk/scene/animation/fbxanimevalstate.h
Go to the documentation of this file.
00001 /****************************************************************************************
00002  
00003    Copyright (C) 2013 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 
00112 /*****************************************************************************************************************************
00113 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00114 *****************************************************************************************************************************/
00115 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00116     virtual ~FbxAnimEvalState();
00117 
00118 private:
00119     FbxAnimEvalState_internal* mData;
00120 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00121 };
00122 
00126 class FBXSDK_DLL FbxNodeEvalState
00127 {
00128 public:
00129         FbxNodeEvalState(FbxNode* pNode);
00130 
00133         FbxVector4 mLT;
00134 
00137         FbxVector4 mLR;
00138 
00141         FbxVector4 mLS;
00142 
00146         FbxAMatrix mLX;
00147 
00151         FbxAMatrix mGX;
00152 
00157         FbxTransform* mTransform;
00158 
00159 /*****************************************************************************************************************************
00160 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00161 *****************************************************************************************************************************/
00162 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00163         int                                     mParentIndex, mTargetIndex, mTargetUpIndex;
00164         FbxAnimCurveNode*       mCurveNode[3];
00165         FbxAnimLayer*           mLayer;
00166 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00167 };
00168 
00169 #include <fbxsdk/fbxsdk_nsend.h>
00170 
00171 #endif /* _FBXSDK_SCENE_ANIMATION_EVALUATION_STATE_H_ */