This reference page is linked to from the following overview topics: Animation Classes and their Interrelationships, Animating a Node, Migrating to the New Data Structures for Animation, List of Python Fbx classes, Extracting the Animation Data from a FBX File, Evaluating the Animation in a Scene, Animation Data Structures.
#include <fbxanimcurvenode.h>
This class is an composite of animation curves and is called as animation curve node.
Animation curve node is used as the connection point for animation curves and other animation curve nodes associated to a property. FbxAnimCurveNode can be connected to other FbxAnimCurveNode, in this case, the destination animation curve node may be considered as "composite", IsComposite(). remarks When created, the FbxAnimCurveNode has no valid channels unless it is created using the function CreateTypedCurveNode(). This function will add all the required channels to correctly match the number of values of the property. For instance, when CreateTypedCurveNode(pNode.LclTranslation, pScene) is called, the resulting FbxAnimCurveNode will automatically have 3 channels corresponding to the X,Y and Z components of the LclTranslation property. You can add and remove channels dynamically but can never remove the channels that have been added by the call to CreateTypedCurveNode().
However, the FBX SDK animation system's default implementation is to consider only the first curve connected to the channel. Therefore, if the caller connects multiple animation curves to the same channel, then it becomes the caller's responsibility to handle and manipulate these extra curves in a meaningful manner.
Animation/main.cxx, ImportScene/DisplayAnimation.cxx, Instances/main.cxx, UI_Examples/CubeCreator/SDK_Utility.cxx, and UserProperties/main.cxx.
Definition at line 55 of file fbxanimcurvenode.h.
Utility functions. |
|
| bool | IsAnimated (bool pRecurse=false) const |
| Check if the animation curve node contains
any animation key. |
|
| bool | GetAnimationInterval (FbxTimeSpan &pTimeInterval) const |
| Find out start and end time of the
animation. |
|
| bool | IsComposite () const |
| Test this object to see if it is a composite
FbxAnimCurveNode or a "leaf". |
|
| FbxAnimCurveNode * | Find (const char *pName) |
| Recursively look for the
FbxAnimCurveNode matching the passed named argument. |
|
| unsigned int | GetChannelsCount () const |
| Get the total number of property channels
defined in this animation curve node. |
|
| int | GetChannelIndex (const char *pChannelName) const |
| Get the index of the named channel. |
|
| FbxString | GetChannelName (int pChannelId) const |
| Get the name of the channel. |
|
| void | ResetChannels () |
| Empties the property channels of this
animation curve node. |
|
| template<class T > | |
| bool | AddChannel (const char *pChnlName, T const &pValue) |
| Adds the specified channel property.
|
|
| template<class T > | |
| void | SetChannelValue (const char *pChnlName, T pValue) |
| Set the default value of the channel.
|
|
| template<class T > | |
| void | SetChannelValue (unsigned int pChnlId, T pValue) |
| Set the default value of the channel.
|
|
| template<class T > | |
| T | GetChannelValue (const char *pChnlName, T pInitVal) |
| Get the default value of the channel.
|
|
| template<class T > | |
| T | GetChannelValue (unsigned int pChnlId, T pInitVal) |
| Get the default value of the channel.
|
|
| static FbxAnimCurveNode * | CreateTypedCurveNode (FbxProperty &pProperty, FbxScene *pScene) |
| Create a
FbxAnimCurveNode compatible with the specified property data
type. |
|
FbxAnimCurve management. |
|
| bool | DisconnectFromChannel (FbxAnimCurve *pCurve, unsigned int pChnlId) |
| Disconnect the animation curve from the
channel. |
|
| bool | ConnectToChannel (FbxAnimCurve *pCurve, const char *pChnl, bool pInFront=false) |
| Connects the given animation curve to the
specified channel. |
|
| bool | ConnectToChannel (FbxAnimCurve *pCurve, unsigned int pChnlId, bool pInFront=false) |
| Connects the given animation curve to the
specified channel. |
|
| FbxAnimCurve * | CreateCurve (const char *pCurveNodeName, const char *pChannel) |
| Creates a new curve and connects it to the
specified channel of the animation curve node named pCurveNodeName.
|
|
| FbxAnimCurve * | CreateCurve (const char *pCurveNodeName, unsigned int pChannelId=0) |
| Creates a new curve and connects it to the
specified channel of the animation curve node named pCurveNodeName.
|
|
| int | GetCurveCount (unsigned int pChannelId, const char *pCurveNodeName=NULL) |
| Get the number of
FbxAnimCurve connected to the specified channel. |
|
| FbxAnimCurve * | GetCurve (unsigned int pChannelId, unsigned int pId=0, const char *pCurveNodeName=NULL) |
| Get the
FbxAnimCurve of the specified channel. |
|
| bool IsAnimated | ( | bool | pRecurse = false |
) | const |
Check if the animation curve node contains any animation key.
| pRecurse | true to descend to the children if the animation
curve node is composite. |
true if at least one animation curve that contains
one or more animation keys is found, false
otherwise.| bool GetAnimationInterval | ( | FbxTimeSpan & | pTimeInterval | ) | const |
Find out start and end time of the animation.
This function retrieves the including time span for all animation curves of this animation curve node.
| pTimeInterval | Reference to receive start time and end time. |
true on success, false
otherwise.false is also returned if this animation curve
node has no animation.| bool IsComposite | ( | ) | const |
Test this object to see if it is a composite FbxAnimCurveNode or a "leaf".
A composite FbxAnimCurveNode is a FbxAnimCurveNode whose all source connections are FbxAnimCurveNode and its property channels is totally empty. It is just a container to take other FbxAnimCurveNode.
true if this object is a composite,
false otherwise.| FbxAnimCurveNode* Find | ( | const char * | pName | ) |
Recursively look for the FbxAnimCurveNode matching the passed named argument.
| pName | Name of the FbxAnimCurveNode we are looking for. |
| static FbxAnimCurveNode* CreateTypedCurveNode | ( | FbxProperty & | pProperty, |
| FbxScene * | pScene | ||
| ) | [static] |
Create a FbxAnimCurveNode compatible with the specified property data type.
| pProperty | The property that needs a FbxAnimCurveNode. |
| pScene | The scene the created FbxAnimCurveNode will belong to. |
| unsigned int GetChannelsCount | ( | ) | const |
Get the total number of property channels defined in this animation curve node.
For composite animation curve nodes, since they do not contain any channels, this function will always return 0.
| int GetChannelIndex | ( | const char * | pChannelName | ) | const |
Get the index of the named channel.
| pChannelName | Name of the channel for which we want the index. |
| FbxString GetChannelName | ( | int | pChannelId | ) | const |
Get the name of the channel.
| pChannelId | Index of the channel for which we want the name. |
| void ResetChannels | ( | ) |
Empties the property channels of this animation curve node.
| bool AddChannel | ( | const char * | pChnlName, |
| T const & | pValue | ||
| ) | [inline] |
Adds the specified channel property.
| pChnlName | Channel name. |
| pValue | Default value of the channel. |
true if successful, false
otherwise.Definition at line 143 of file fbxanimcurvenode.h.
{
if (!pChnlName || strlen(pChnlName)==0) return false;
FbxProperty c = GetChannel(pChnlName);
if (c.IsValid())
{
return false;
}
mChannels.BeginCreateOrFindProperty();
FbxDataType dt = FbxGetDataTypeFromEnum(FbxTypeOf(pValue));
c = FbxProperty::Create(mChannels, dt, pChnlName);
c.Set(pValue);
mChannels.EndCreateOrFindProperty();
return true;
}
| void SetChannelValue | ( | const char * | pChnlName, |
| T | pValue | ||
| ) | [inline] |
Set the default value of the channel.
| pChnlName | Channel name. |
| pValue | New default value of this channel. |
Definition at line 164 of file fbxanimcurvenode.h.
{
FbxProperty c = GetChannel(pChnlName);
if( c.IsValid() ) c.Set(pValue);
}
| void SetChannelValue | ( | unsigned int | pChnlId, |
| T | pValue | ||
| ) | [inline] |
Set the default value of the channel.
| pChnlId | Channel index. |
| pValue | New default value of this channel. |
Definition at line 174 of file fbxanimcurvenode.h.
{
FbxProperty c = GetChannel(pChnlId);
if( c.IsValid() ) c.Set(pValue);
}
| T GetChannelValue | ( | const char * | pChnlName, |
| T | pInitVal | ||
| ) | [inline] |
Get the default value of the channel.
| pChnlName | Channel name. |
| pInitVal | Value returned if the specified channel is invalid. |
Definition at line 185 of file fbxanimcurvenode.h.
{
T v = pInitVal;
FbxProperty c = GetChannel(pChnlName);
if( c.IsValid() ) v = c.Get<T>();
return v;
}
| T GetChannelValue | ( | unsigned int | pChnlId, |
| T | pInitVal | ||
| ) | [inline] |
Get the default value of the channel.
| pChnlId | Channel index. |
| pInitVal | Value returned if the specified channel is invalid. |
Definition at line 198 of file fbxanimcurvenode.h.
{
T v = pInitVal;
FbxProperty c = GetChannel(pChnlId);
if( c.IsValid() ) v = c.Get<T>();
return v;
}
| bool DisconnectFromChannel | ( | FbxAnimCurve * | pCurve, |
| unsigned int | pChnlId | ||
| ) |
Disconnect the animation curve from the channel.
| pCurve | The curve to disconnect from the channel. |
| pChnlId | The channel index. |
true if the disconnection was made,
false if an error occurred.| bool ConnectToChannel | ( | FbxAnimCurve * | pCurve, |
| const char * | pChnl, | ||
| bool | pInFront =
false |
||
| ) |
Connects the given animation curve to the specified channel.
| pCurve | The curve to connect to the channel. |
| pChnl | The name of the channel the curve is to be connected to. |
| pInFront | When true, all the current connections are moved
after this one, making this one the first. By default, the
connection is the last one. |
true if the connection was made,
false if an error occurred.| bool ConnectToChannel | ( | FbxAnimCurve * | pCurve, |
| unsigned int | pChnlId, | ||
| bool | pInFront =
false |
||
| ) |
Connects the given animation curve to the specified channel.
| pCurve | The curve to connect to the channel. |
| pChnlId | Index of the channel the curve is to be connected to. |
| pInFront | When true, all the current connections are moved
after this one. making this one the first. By default, the
connection is the last one. |
true if the connection was made,
false if an error occurred.| FbxAnimCurve* CreateCurve | ( | const char * | pCurveNodeName, |
| const char * | pChannel | ||
| ) |
Creates a new curve and connects it to the specified channel of the animation curve node named pCurveNodeName.
If this animation curve node is composite, this function will try to search all children animation curve nodes recursively for the one named pCurveNodeName.
| pCurveNodeName | Name of the FbxAnimCurveNode we are looking for. |
| pChannel | Channel identifier. |
| FbxAnimCurve* CreateCurve | ( | const char * | pCurveNodeName, |
| unsigned int | pChannelId =
0 |
||
| ) |
Creates a new curve and connects it to the specified channel of the animation curve node named pCurveNodeName.
If this animation curve node is composite, this function will try to search all children animation curve nodes recursively for the one named pCurveNodeName.
| pCurveNodeName | Name of the FbxAnimCurveNode we are looking for. |
| pChannelId | Channel index. |
| int GetCurveCount | ( | unsigned int | pChannelId, |
| const char * | pCurveNodeName =
NULL |
||
| ) |
Get the number of FbxAnimCurve connected to the specified channel.
If this animation curve node is composite, this function will try to search all children animation curve nodes recursively for the one named pCurveNodeName.
| pChannelId | Channel index. |
| pCurveNodeName | Name of the FbxAnimCurveNode we are looking for. |
| FbxAnimCurve* GetCurve | ( | unsigned int | pChannelId, |
| unsigned int | pId = 0, |
||
| const char * | pCurveNodeName =
NULL |
||
| ) |
Get the FbxAnimCurve of the specified channel.
If this animation curve node is composite, this function will try to search all children animation curve nodes recursively for the one named pCurveNodeName.
| pChannelId | Channel index. |
| pId | The index of the desired anim curve (in case there is more than one). |
| pCurveNodeName | Name of the FbxAnimCurveNode we are looking for (if this object is a composite). |