- Main Page
- Classes
- Files
- Directories

- File List
- File Members

# fbxanimevaluator.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_H_
    00014 #define _FBXSDK_SCENE_ANIMATION_EVALUATOR_H_
    00015
    00016 #include <fbxsdk/fbxsdk_def.h>
    00017
    00018 #include <fbxsdk/core/fbxobject.h>
    00019 #include <fbxsdk/scene/animation/fbxanimevalstate.h>
    00020 #include <fbxsdk/scene/animation/fbxanimstack.h>
    00021
    00022 #include <fbxsdk/fbxsdk_nsbegin.h>
    00023
    00024 struct FbxAnimEvaluator_internal;
    00025
    00070 class FBXSDK_DLL FbxAnimEvaluator : public FbxObject
    00071 {
    00072     FBXSDK_ABSTRACT_OBJECT_DECLARE(FbxAnimEvaluator, FbxObject);
    00073
    00074 public:
    00082     void SetContext(FbxAnimStack* pAnimStack);
    00083
    00089     FbxAnimStack* GetContext();
    00090
    00099     FbxAMatrix& GetNodeGlobalTransform(FbxNode* pNode, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00100
    00112     FbxAMatrix& GetNodeLocalTransform(FbxNode* pNode, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00113
    00123     FbxVector4& GetNodeLocalTranslation(FbxNode* pNode, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00124
    00134     FbxVector4& GetNodeLocalRotation(FbxNode* pNode, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00135
    00145     FbxVector4& GetNodeLocalScaling(FbxNode* pNode, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00146
    00153     FbxAnimCurveNode& GetPropertyValue(FbxProperty& pProperty, FbxTime pTime, bool pForceEval=false);
    00154
    00160     FbxTime ValidateTime(FbxTime pTime);
    00161
    00175     FbxAMatrix& GetNodeGlobalTransformFast(FbxNode* pNode, int& pDirectIndex, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00176
    00194     FbxAMatrix& GetNodeLocalTransformFast(FbxNode* pNode, int& pDirectIndex, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00195
    00209     FbxVector4& GetNodeLocalTranslationFast(FbxNode* pNode, int& pDirectIndex, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00210
    00225     FbxVector4& GetNodeLocalRotationFast(FbxNode* pNode, int& pDirectIndex, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00226
    00241     FbxVector4& GetNodeLocalScalingFast(FbxNode* pNode, int& pDirectIndex, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00242
    00253     FbxAnimCurveNode& GetPropertyValueFast(FbxProperty& pProperty, int& pDirectIndex, FbxTime pTime=FBXSDK_TIME_INFINITE, bool pForceEval=false);
    00254
    00258     void ResetEvaluationState();
    00259
    00263     void InvalidateNode(FbxNode* pNode);
    00264
    00268     void InvalidateProperty(FbxProperty& pProperty);
    00269
    00284     void ComputeLocalTRSFromGlobal(FbxVector4& pRetLT, FbxVector4& pRetLR, FbxVector4& pRetLS, FbxNode* pNode, int& pDirectIndex, FbxAMatrix& pGX, FbxTime pTime=FBXSDK_TIME_INFINITE, FbxNode::EPivotSet pPivotSet=FbxNode::eSourcePivot, bool pApplyTarget=false, bool pForceEval=false);
    00285
    00286 /*****************************************************************************************************************************
    00287 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
    00288 *****************************************************************************************************************************/
    00289 #ifndef DOXYGEN_SHOULD_SKIP_THIS
    00290 protected:
    00291     virtual void Construct(const FbxAnimEvaluator* pFrom);
    00292     virtual void Destruct(bool pRecursive);
    00293
    00294     virtual void EvaluateNodeTransform(FbxNodeEvalState* pResult, FbxNode* pNode, FbxTime pTime, FbxAnimStack* pStack, FbxNode::EPivotSet pPivotSet, bool pApplyTarget) = 0;
    00295     virtual void EvaluatePropertyValue(FbxAnimCurveNode* pResult, FbxProperty& pProperty, FbxTime pTime, FbxAnimStack* pStack) = 0;
    00296
    00297     FbxAnimEvalState*   GetEvalState(FbxTime pTime);
    00298     FbxNodeEvalState*   GetNodeEvalState(FbxNode* pNode, int& pDirectIndex, FbxTime pTime, FbxNode::EPivotSet pPivotSet, bool pApplyTarget, bool pForceEval);
    00299
    00300 private:
    00301     FbxAnimEvalState*   mEvalState;
    00302     FbxAnimStack*       mAnimStack;
    00303 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
    00304 };
    00305
    00306 #include <fbxsdk/fbxsdk_nsend.h>
    00307
    00308 #endif /* _FBXSDK_SCENE_ANIMATION_EVALUATOR_H_ */