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_ */