fbxsdk/scene/animation/fbxanimevalclassic.h Source File

fbxanimevalclassic.h
Go to the documentation of this file.
1 /****************************************************************************************
2 
3  Copyright (C) 2015 Autodesk, Inc.
4  All rights reserved.
5 
6  Use of this software is subject to the terms of the Autodesk license agreement
7  provided at the time of installation or download, or which otherwise accompanies
8  this software in either electronic or hard copy form.
9 
10 ****************************************************************************************/
11 
13 #ifndef _FBXSDK_SCENE_ANIMATION_EVALUATOR_CLASSIC_H_
14 #define _FBXSDK_SCENE_ANIMATION_EVALUATOR_CLASSIC_H_
15 
16 #include <fbxsdk/fbxsdk_def.h>
17 
18 #include <fbxsdk/core/fbxobject.h>
21 
22 #include <fbxsdk/fbxsdk_nsbegin.h>
23 
33 {
35 
36  enum EBlendType {eSimple, eRotation, eScaling};
37 
48  void ComputeTRSLocal(FbxNodeEvalState* pResult, FbxNode* pNode, const FbxTime& pTime, FbxAnimStack* pStack);
49 
63  void ComputeGlobalTransform(FbxNodeEvalState* pResult, FbxNode* pNode, const FbxTime& pTime, FbxAnimStack* pStack, FbxNode::EPivotSet pPivotSet, bool pApplyTarget);
64 
78  void ComputeLocalTransform(FbxNodeEvalState* pResult, FbxNode* pNode, const FbxTime& pTime, FbxAnimStack* pStack, FbxNode::EPivotSet pPivotSet, bool pApplyTarget);
79 
85  bool HasAnimationCurveNode(FbxProperty& pProperty, FbxAnimLayer* pAnimLayer);
86 
100  void ComputeTRSAnimationLayer(FbxNodeEvalState* pResult, FbxNode* pNode, FbxVector4& pLT, FbxVector4& pLR, FbxVector4& pLS, const FbxTime& pTime, FbxAnimLayer* pLayer, bool pBlend);
101 
112  void BlendPropertyEvalWithLayer(double* pResult, int pResultSize, FbxProperty& pProperty, FbxNodeEvalState* pEvalState, const FbxTime& pTime, FbxAnimLayer* pLayer, EBlendType pType);
113 
124  void BlendSimple(double* pResult, int pResultSize, double* pApply, int pApplySize, double pWeight, FbxAnimLayer::EBlendMode pBlendMode);
125 
138  void BlendRotation(double* pResult, int pResultSize, double* pApply, int pApplySize, double pWeight, FbxAnimLayer::EBlendMode pBlendMode, FbxAnimLayer::ERotationAccumulationMode pRotAccuMode, int pRotationOrder);
139 
151  void BlendScaling(double* pResult, int pResultSize, double* pApply, int pApplySize, double pWeight, FbxAnimLayer::EBlendMode pBlendMode, FbxAnimLayer::EScaleAccumulationMode pScaleAccuMode);
152 
153 /*****************************************************************************************************************************
154 ** WARNING! Anything beyond these lines is for internal use, may not be documented and is subject to change without notice! **
155 *****************************************************************************************************************************/
156 #ifndef DOXYGEN_SHOULD_SKIP_THIS
157 protected:
158  virtual void Construct(const FbxObject* pFrom);
159  virtual void Destruct(bool pRecursive);
160 
161  virtual void EvaluateNodeTransform(FbxNodeEvalState* pResult, FbxNode* pNode, const FbxTime& pTime, FbxNode::EPivotSet pPivotSet, bool pApplyTarget);
162  virtual void EvaluatePropertyValue(FbxPropertyEvalState* pResult, FbxProperty& pProperty, const FbxTime& pTime);
163 
164 private:
165  double* mPropertyValues;
166  int mPropertySize;
167 
168  double* mCurveNodeEvalValues;
169  int mCurveNodeEvalSize;
170 #endif /* !DOXYGEN_SHOULD_SKIP_THIS *****************************************************************************************/
171 };
172 
173 #include <fbxsdk/fbxsdk_nsend.h>
174 
175 #endif /* _FBXSDK_SCENE_ANIMATION_EVALUATOR_CLASSIC_H_ */
The animation layer is a collection of animation curve nodes.
Definition: fbxanimlayer.h:30
#define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject.
Definition: fbxobject.h:61
An evaluator implementation that behaves like the original FBX SDK (2010 and previous) evaluation sys...
FBX SDK environment definition.
This class hold results for node evaluation.
The Animation stack is a collection of animation layers.
Definition: fbxanimstack.h:37
EPivotSet
Pivot context identifier.
Definition: fbxnode.h:653
EScaleAccumulationMode
Scale accumulation mode of animation layer.
Definition: fbxanimlayer.h:161
Class to encapsulate time units.
Definition: fbxtime.h:44
The base class of most FBX objects.
Definition: fbxobject.h:157
Represents an element in the scene graph.
Definition: fbxnode.h:72
This class hold results for property evaluation.
virtual void Construct(const FbxObject *pFrom)
Optional constructor override, automatically called by default constructor.
The principal interface for animation evaluators.
ERotationAccumulationMode
Rotation accumulation mode of animation layer.
Definition: fbxanimlayer.h:153
Class to hold user properties.
Definition: fbxproperty.h:37
A four double mathematic vector class.
Definition: fbxvector4.h:25
#define FBXSDK_DLL
Definition: fbxarch.h:173
EBlendMode
Blend mode type between animation layers.
Definition: fbxanimlayer.h:138
virtual void Destruct(bool pRecursive)
Optional destructor override, automatically called by default destructor.