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