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 static const char* CurveNodeNameFrom(
const char* pName);
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; };
307 KFCurveNode* GetKFCurveNode(
bool pNoCreate=
false);
312 void Evaluate(
double* pData,
FbxTime pTime);
316 virtual void Destruct(
bool pRecursive);
318 virtual bool ConnectNotify(
const FbxConnectEvent& pEvent);
326 friend void CollectAnimFromCurveNode(
void **lSrc,
void *fcn,
unsigned int nbCrvs,
FbxAnimCurveNode *cn,
FbxMultiMap* pNickToAnimCurveTimeWarpsSet,
FbxMultiMap& pNickToKFCurveNodeWarpSet);
328 unsigned char mNonRemovableChannels;
331 KFCurveNode* mFCurveNode;
333 int mKFCurveNodeLayerType;
334 unsigned short mQuaternionInterpolation;
336 int mDirectIndexesSize;
340 void ResetKFCurveNode();
341 void SyncKFCurveValue(
FbxAnimCurve* pCurve,
double pVal);
342 void ReleaseOwnershipOfKFCurve(
int pIndex);
344 template <
class T>
FbxAnimCurve* CreateCurveGeneral(
const char* pCurveNodeName, T pChannel);
353 #endif // FBXFILESDK_KFBXPLUGINS_KFBXANIMCURVENODE_H #define FBXSDK_OBJECT_DECLARE(Class, Parent)
Macro used to declare a new class derived from FbxObject.
An evaluator implementation that behaves like the original FBX SDK (2010 and previous) evaluation sys...
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.
Matrix conversion filter.
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.
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.
void GetAllAnimCurves(FbxAnimStack *pAnimStack, FbxArray< FbxAnimCurve *> &pCurves)
T Get() const
Gets the value of the property.
Class to hold user properties.
bool Set(const T &pValue)
Sets the value of the property.
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.
bool IsValid() const
Judges the property's validity.
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.