13 #ifndef _FBXSDK_SCENE_ANIMATION_CURVE_NODE_H_
14 #define _FBXSDK_SCENE_ANIMATION_CURVE_NODE_H_
23 #define FBXSDK_CURVENODE_TRANSFORM "Transform"
24 #define FBXSDK_CURVENODE_TRANSLATION "T"
25 #define FBXSDK_CURVENODE_ROTATION "R"
26 #define FBXSDK_CURVENODE_SCALING "S"
27 #define FBXSDK_CURVENODE_COMPONENT_X "X"
28 #define FBXSDK_CURVENODE_COMPONENT_Y "Y"
29 #define FBXSDK_CURVENODE_COMPONENT_Z "Z"
30 #define FBXSDK_CURVENODE_COLOR "Color"
31 #define FBXSDK_CURVENODE_COLOR_RED FBXSDK_CURVENODE_COMPONENT_X
32 #define FBXSDK_CURVENODE_COLOR_GREEN FBXSDK_CURVENODE_COMPONENT_Y
33 #define FBXSDK_CURVENODE_COLOR_BLUE FBXSDK_CURVENODE_COMPONENT_Z
73 bool IsAnimated(
bool pRecurse=
false)
const;
84 bool GetAnimationInterval(
FbxTimeSpan& pTimeInterval)
const;
91 bool IsComposite()
const;
116 unsigned int GetChannelsCount()
const;
122 int GetChannelIndex(
const char* pChannelName)
const;
128 FbxString GetChannelName(
int pChannelId)
const;
135 void ResetChannels();
143 template <
class T>
bool AddChannel(
const char* pChnlName, T
const &pValue)
145 if (!pChnlName || strlen(pChnlName)==0)
return false;
152 mChannels.BeginCreateOrFindProperty();
156 mChannels.EndCreateOrFindProperty();
217 bool DisconnectFromChannel(
FbxAnimCurve* pCurve,
unsigned int pChnlId);
226 bool ConnectToChannel(
FbxAnimCurve* pCurve,
const char* pChnl,
bool pInFront =
false);
236 bool ConnectToChannel(
FbxAnimCurve* pCurve,
unsigned int pChnlId,
bool pInFront =
false);
247 FbxAnimCurve* CreateCurve(
const char* pCurveNodeName,
const char* pChannel);
258 FbxAnimCurve* CreateCurve(
const char* pCurveNodeName,
unsigned int pChannelId = 0);
273 int GetCurveCount(
unsigned int pChannelId,
const char* pCurveNodeName =
NULL);
287 FbxAnimCurve* GetCurve(
unsigned int pChannelId,
unsigned int pId = 0,
const char* pCurveNodeName =
NULL);
294 #ifndef DOXYGEN_SHOULD_SKIP_THIS
297 void Evaluate(
double* pData,
FbxTime pTime);
299 KFCurveNode* GetKFCurveNode(
bool pNoCreate=
false);
300 void ReleaseKFCurveNode();
301 void SyncChannelsWithKFCurve();
303 inline bool UseQuaternionInterpolation() {
return mQuaternionInterpolation != 0;};
304 bool SetQuaternionInterpolation(
unsigned short pVal);
305 unsigned short GetQuaternionInterpolation() {
return mQuaternionInterpolation; };
308 static const char* CurveNodeNameFrom(
const char* pName);
312 virtual void Destruct(
bool pRecursive);
314 virtual bool ConnectNotify(
const FbxConnectEvent& pEvent);
322 friend void CollectAnimFromCurveNode(
void **lSrc,
void *fcn,
unsigned int nbCrvs,
FbxAnimCurveNode *cn,
FbxMultiMap* pNickToAnimCurveTimeWarpsSet,
FbxMultiMap& pNickToKFCurveNodeWarpSet);
324 unsigned char mNonRemovableChannels;
327 KFCurveNode* mFCurveNode;
329 int mKFCurveNodeLayerType;
330 unsigned short mQuaternionInterpolation;
332 int mDirectIndexesSize;
336 void ResetKFCurveNode();
337 void SyncKFCurveValue(
FbxAnimCurve* pCurve,
double pVal);
338 void ReleaseOwnershipOfKFCurve(
int pIndex);
340 template <
class T>
FbxAnimCurve* CreateCurveGeneral(
const char* pCurveNodeName, T pChannel);
349 #endif // FBXFILESDK_KFBXPLUGINS_KFBXANIMCURVENODE_H
#define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject.
T Get() const
Gets the value of the property.
FBX SDK environment definition.
The Animation stack is a collection of animation layers.
This class is an composite of animation curves and is called as animation curve node.
virtual FbxObject & Copy(const FbxObject &pObject)
Copy an object content into this object.
Utility class to manipulate strings.
T GetChannelValue(const char *pChnlName, T pInitVal)
Get the default value of the channel.
const FbxDataType & FbxGetDataTypeFromEnum(const EFbxType pType)
Retrieve data type from type enumeration index.
bool AddChannel(const char *pChnlName, T const &pValue)
Adds the specified channel property.
static FbxProperty Create(const FbxProperty &pCompoundProperty, const FbxDataType &pDataType, const char *pName, const char *pLabel="", bool pCheckForDup=true, bool *pWasFound=((void *) 0))
Creates a runtime property on the specified property.
bool IsValid() const
Judges the property's validity.
void SetChannelValue(unsigned int pChnlId, T pValue)
Set the default value of the channel.
Class to encapsulate time units.
The base class of most FBX objects.
This class contains the description of a 3D scene.
EFbxType FbxTypeOf(const FbxChar &)
virtual void Construct(const FbxObject *pFrom)
Optional constructor override, automatically called by default constructor.
Class to hold user properties.
bool Set(const T &pValue)
Sets the value of the property.
void GetAllAnimCurves(FbxAnimStack *pAnimStack, FbxArray< FbxAnimCurve * > &pCurves)
An animation curve, defined by a collection of keys (FbxAnimCurveKey), and indicating how a value cha...
void SetChannelValue(const char *pChnlName, T pValue)
Set the default value of the channel.
Class to encapsulate time intervals.
virtual void Destruct(bool pRecursive)
Optional destructor override, automatically called by default destructor.
Class to manipulate a map that can contain multiple times the same key.
virtual void ConstructProperties(bool pForceSet)
Optional property constructor override, automatically called by default constructor.
T GetChannelValue(unsigned int pChnlId, T pInitVal)
Get the default value of the channel.
Class for array of basic elements such as pointers and basic types.