fbxsdk/scene/animation/fbxanimevalclassic.h Source File
 
 
 
fbxsdk/scene/animation/fbxanimevalclassic.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_EVALUATOR_CLASSIC_H_
00014 #define _FBXSDK_SCENE_ANIMATION_EVALUATOR_CLASSIC_H_
00015 
00016 #include <fbxsdk/fbxsdk_def.h>
00017 
00018 #include <fbxsdk/core/fbxobject.h>
00019 #include <fbxsdk/scene/animation/fbxanimevaluator.h>
00020 #include <fbxsdk/scene/animation/fbxanimlayer.h>
00021 
00022 #include <fbxsdk/fbxsdk_nsbegin.h>
00023 
00032 class FBXSDK_DLL FbxAnimEvalClassic : public FbxAnimEvaluator
00033 {
00034     FBXSDK_OBJECT_DECLARE(FbxAnimEvalClassic, FbxAnimEvaluator);
00035         
00036         enum EBlendType {eSimple, eRotation, eScaling};
00037 
00048         void ComputeTRSLocal(FbxNodeEvalState* pResult, FbxNode* pNode, FbxTime pTime, FbxAnimStack* pStack);
00049         
00063         void ComputeGlobalTransform(FbxNodeEvalState* pResult, FbxNode* pNode, FbxTime pTime, FbxAnimStack* pStack, FbxNode::EPivotSet pPivotSet, bool pApplyTarget);
00064         
00078         void ComputeLocalTransform(FbxNodeEvalState* pResult, FbxNode* pNode, FbxTime pTime, FbxAnimStack* pStack, FbxNode::EPivotSet pPivotSet, bool pApplyTarget);
00079         
00085         bool HasAnimationCurveNode(FbxProperty& pProperty, FbxAnimLayer* pAnimLayer);
00086 
00100         void ComputeTRSAnimationLayer(FbxNodeEvalState* pResult, FbxNode* pNode, FbxVector4& pLT, FbxVector4& pLR, FbxVector4& pLS, FbxTime pTime, FbxAnimLayer* pLayer, bool pBlend);
00101         
00112         void BlendPropertyEvalWithLayer(double* pResult, int pResultSize, FbxProperty& pProperty, FbxNodeEvalState* pEvalState, FbxTime pTime, FbxAnimLayer* pLayer, EBlendType pType);
00113         
00124         void BlendSimple(double* pResult, int pResultSize, double* pApply, int pApplySize, double pWeight, FbxAnimLayer::EBlendMode pBlendMode);
00125         
00138         void BlendRotation(double* pResult, int pResultSize, double* pApply, int pApplySize, double pWeight, FbxAnimLayer::EBlendMode pBlendMode, FbxAnimLayer::ERotationAccumulationMode pRotAccuMode, int pRotationOrder);
00139         
00151         void BlendScaling(double* pResult, int pResultSize, double* pApply, int pApplySize, double pWeight, FbxAnimLayer::EBlendMode pBlendMode, FbxAnimLayer::EScaleAccumulationMode pScaleAccuMode);
00152 
00153 /*****************************************************************************************************************************
00154 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
00155 *****************************************************************************************************************************/
00156 #ifndef DOXYGEN_SHOULD_SKIP_THIS
00157 protected:
00158         virtual void Construct(const FbxAnimEvalClassic* pFrom);
00159         virtual void Destruct(bool pRecursive);
00160 
00161         virtual void EvaluateNodeTransform(FbxNodeEvalState* pResult, FbxNode* pNode, FbxTime pTime, FbxAnimStack* pStack, FbxNode::EPivotSet pPivotSet, bool pApplyTarget);
00162     virtual void EvaluatePropertyValue(FbxAnimCurveNode* pResult, FbxProperty& pProperty, FbxTime pTime, FbxAnimStack* pStack);
00163 
00164 private:
00165         double* mPropertyValues;
00166         int             mPropertySize;
00167 
00168         double* mCurveNodeEvalValues;
00169         int             mCurveNodeEvalSize;
00170 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
00171 };
00172 
00173 #include <fbxsdk/fbxsdk_nsend.h>
00174 
00175 #endif /* _FBXSDK_SCENE_ANIMATION_EVALUATOR_CLASSIC_H_ */