- Main Page
- Classes
- Files
- Directories

- File List
- File Members

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