Public Member Functions

FbxAnimCurveFilter Class Reference

This reference page is linked to from the following overview topics: FBX SDK 2013.


Search for all occurrences

Detailed Description

Base class for animation curve filters.

Animation curves can be modified through filters. The filters act on the curve keys and values. They can move, add or remove keys, modify key values and key tangents, depending on the desired action of the filter. Some simple examples are:

Filters can act on a single animation curve (FbxAnimCurve), but some filters need to work on many animation curves at the same time. For this reason, the input to a filter can be an animation stack (FbxAnimStack), an object (FbxObject) with animated properties, an animation curve node (FbxAnimCurveNode), or an array of animation curves (FbxAnimCurve). For example, an unroll filter acts on 3 Euler rotation curves (X, Y and Z) at the same time.

A filter has a start time (that can be as low as TC_MINFINITY) and a stop time (that can be as high as TC_INFINITY). The filter is only applied to the parts of the animation curves that are between the start and stop time.

The following are two code samples about how to use filter. Code sample to use sync filter:

    FbxAnimCurve* lWorkCurves[3]; //Put some keys in the lWorkCurves and they sync them up.
    FbxAnimCurveFilterKeySync lSyncFilter;
    FbxTime pStart, pStop; //Given start and stop time.
    lSyncFilter.SetStartTime( pStart );
    lSyncFilter.SetStopTime ( pStop  );
    if( lSyncFilter.NeedApply( lWorkCurves, 3 ) )
    {
        lSyncFilter.Apply( lWorkCurves, 3 );
    }

Code sample to use unroll filter:

    FbxAnimCurveNode* pCurveNode; //An Euler rotation animation curve node.
    FbxAnimCurveFilterUnroll lUnrollFilter;
    lUnrollFilter.SetForceAutoTangents(true);
    lUnrollFilter.Apply(*pCurveNode);

Definition at line 74 of file fbxanimcurvefilters.h.

#include <fbxanimcurvefilters.h>

Inheritance diagram for FbxAnimCurveFilter:
Inheritance graph
[legend]

List of all members.

Public Member Functions

 FbxAnimCurveFilter ()
 Constructor.
virtual ~FbxAnimCurveFilter ()
 Destructor.

Member functions

FbxTime mStart
FbxTime mStop
virtual const char * GetName () const
 Get the name of the filter.
FbxTimeGetStartTime ()
 Get the start time for the application of the filter.
void SetStartTime (FbxTime &pTime)
 Set the start time for the application of the filter.
FbxTimeGetStopTime ()
 Get the stop time for the application of the filter.
void SetStopTime (FbxTime &pTime)
 Set the stop time for the application of the filter.
int GetStartKey (FbxAnimCurve &pCurve) const
 Get the index of start key on the given curve.
int GetStopKey (FbxAnimCurve &pCurve) const
 Get the index of stop key on the given curve.
virtual bool NeedApply (FbxAnimStack *pAnimStack, FbxStatus *pStatus=NULL)
 Check if any curve on the animation stack needs an application of the filter.
virtual bool NeedApply (FbxObject *pObj, FbxAnimStack *pAnimStack, FbxStatus *pStatus=NULL)
 Check if all the animated properties of the object need an application of the filter.
virtual bool NeedApply (FbxAnimCurveNode &pCurveNode, FbxStatus *pStatus=NULL)
 Check if the animation curve node needs an application of the filter.
virtual bool NeedApply (FbxAnimCurve **pCurve, int pCount, FbxStatus *pStatus=NULL)
 Check if the given animation curve need an application of the filter.
virtual bool NeedApply (FbxAnimCurve &pCurve, FbxStatus *pStatus=NULL)
 Check if an animation curve need an application of the filter.
virtual bool Apply (FbxAnimStack *pAnimStack, FbxStatus *pStatus=NULL)
 Apply filter to all the curves stored in the animation stack.
virtual bool Apply (FbxObject *pObj, FbxAnimStack *pAnimStack, FbxStatus *pStatus=NULL)
 Apply filter to all the animated properties of the object.
virtual bool Apply (FbxAnimCurveNode &pCurveNode, FbxStatus *pStatus=NULL)
 Apply filter on all the curves of an animation curve node.
virtual bool Apply (FbxAnimCurve **pCurve, int pCount, FbxStatus *pStatus=NULL)
 Apply filter on an array of animation curves.
virtual bool Apply (FbxAnimCurve &pCurve, FbxStatus *pStatus=NULL)=0
 Apply filter on an animation curve.
virtual void Reset ()
 Reset the filter to its default parameters.
static bool GetContinuousOffset (FbxRotationOrder &pOrder, FbxVector4 &pOffset, FbxVector4 &pNew, FbxVector4 &pOld)
void GetKFCurvesFromAnimCurve (FbxAnimCurve **pSrc, int pSrcCount, KFCurve **pDst, int &pDstCount)
virtual void UpdateProgressInformation (FbxTime, FbxTime)

Constructor & Destructor Documentation

Constructor.

virtual ~FbxAnimCurveFilter ( ) [inline, virtual]

Destructor.

Definition at line 81 of file fbxanimcurvefilters.h.

{};

Member Function Documentation

virtual const char* GetName ( ) const [inline, virtual]
FbxTime& GetStartTime ( ) [inline]

Get the start time for the application of the filter.

The part of the animation curves before the start time will remain untouched.

Returns:
The time expressed as FbxTime.

Definition at line 96 of file fbxanimcurvefilters.h.

{return mStart;}
void SetStartTime ( FbxTime pTime) [inline]

Set the start time for the application of the filter.

The part of the animation curves before the start time will remain untouched.

Parameters:
pTimeThe time to be set.

Definition at line 102 of file fbxanimcurvefilters.h.

{ mStart = pTime; }
FbxTime& GetStopTime ( ) [inline]

Get the stop time for the application of the filter.

The part of the animation curves after the stop time will remain untouched.

Returns:
The time expressed as FbxTime.

Definition at line 108 of file fbxanimcurvefilters.h.

{return mStop;}
void SetStopTime ( FbxTime pTime) [inline]

Set the stop time for the application of the filter.

The part of the animation curves after the stop time will remain untouched.

Parameters:
pTimeThe time to be set.

Definition at line 114 of file fbxanimcurvefilters.h.

{ mStop = pTime; }
int GetStartKey ( FbxAnimCurve pCurve) const

Get the index of start key on the given curve.

This is the index of the first key after (or on) the filter's start time.

Parameters:
pCurveCurve on which we want to retrieve the start key.
Returns:
Index of the start key.
int GetStopKey ( FbxAnimCurve pCurve) const

Get the index of stop key on the given curve.

This is the index of the last key before (or on) the filter's stop time.

Parameters:
pCurveCurve on which we want to retrieve the stop key.
Returns:
Index of the stop key.
virtual bool NeedApply ( FbxAnimStack pAnimStack,
FbxStatus pStatus = NULL 
) [virtual]

Check if any curve on the animation stack needs an application of the filter.

Parameters:
pAnimStackAnimation stack where to retrieve the animation curves
pStatusThe FbxStatus object to hold error codes.
Returns:
true if at least one animated property needs an application of the filter.

Reimplemented in FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool NeedApply ( FbxObject pObj,
FbxAnimStack pAnimStack,
FbxStatus pStatus = NULL 
) [virtual]

Check if all the animated properties of the object need an application of the filter.

Parameters:
pObjObject containing the properties to test.
pAnimStackAnimation stack where to retrieve the animation curves
pStatusThe FbxStatus object to hold error codes.
Returns:
true if at least one animated property needs an application of the filter.

Reimplemented in FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool NeedApply ( FbxAnimCurveNode pCurveNode,
FbxStatus pStatus = NULL 
) [virtual]

Check if the animation curve node needs an application of the filter.

Parameters:
pCurveNodeCurve node to test.
pStatusThe FbxStatus object to hold error codes.
Returns:
true if the animation curve node needs an application of the filter.
Remarks:
This method collects all the FbxAnimCurve objects connected to the curve node and calls NeedApply(FbxAnimCurve**, int)

Reimplemented in FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeySync, and FbxAnimCurveFilterUnroll.

virtual bool NeedApply ( FbxAnimCurve **  pCurve,
int  pCount,
FbxStatus pStatus = NULL 
) [virtual]

Check if the given animation curve need an application of the filter.

Parameters:
pCurveArray of curves to test if they need the and application of the filter.
pCountNumber of curves in array.
pStatusThe FbxStatus object to hold error codes.
Returns:
true if at least one animation curve in the array needs an application of the filter.

Reimplemented in FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool NeedApply ( FbxAnimCurve pCurve,
FbxStatus pStatus = NULL 
) [virtual]

Check if an animation curve need an application of the filter.

Parameters:
pCurveCurve to test if it needs application of filter.
pStatusThe FbxStatus object to hold error codes.
Returns:
true if the animation curve needs an application of the filter.

Reimplemented in FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool Apply ( FbxAnimStack pAnimStack,
FbxStatus pStatus = NULL 
) [virtual]

Apply filter to all the curves stored in the animation stack.

Parameters:
pAnimStackAnimation stack where to retrieve the animation curves
pStatusThe FbxStatus object to hold error codes.
Returns:
true if the curve filtering operation was successful, false otherwise.

Reimplemented in FbxAnimCurveFilterConstantKeyReducer, FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeyReducer, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterResample, FbxAnimCurveFilterScale, FbxAnimCurveFilterScaleByCurve, FbxAnimCurveFilterTSS, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool Apply ( FbxObject pObj,
FbxAnimStack pAnimStack,
FbxStatus pStatus = NULL 
) [virtual]

Apply filter to all the animated properties of the object.

Parameters:
pObjObject containing the animated properties to which the filter is applied.
pAnimStackAnimation stack where to retrieve the animation curves
pStatusThe FbxStatus object to hold error codes.
Returns:
true if the curve filtering operation was successful, false otherwise.

Reimplemented in FbxAnimCurveFilterConstantKeyReducer, FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeyReducer, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterResample, FbxAnimCurveFilterScale, FbxAnimCurveFilterScaleByCurve, FbxAnimCurveFilterTSS, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool Apply ( FbxAnimCurveNode pCurveNode,
FbxStatus pStatus = NULL 
) [virtual]

Apply filter on all the curves of an animation curve node.

Parameters:
pCurveNodeCurve node to which the filter is applied.
pStatusThe FbxStatus object to hold error codes.
Returns:
true if the curve filtering operation was successful, false otherwise.
Remarks:
This method collects all the FbxAnimCurve objects connected to the curve node and calls Apply(FbxAnimCurve**, int)

Reimplemented in FbxAnimCurveFilterConstantKeyReducer, FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeyReducer, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterResample, FbxAnimCurveFilterScale, FbxAnimCurveFilterScaleByCurve, FbxAnimCurveFilterTSS, and FbxAnimCurveFilterUnroll.

virtual bool Apply ( FbxAnimCurve **  pCurve,
int  pCount,
FbxStatus pStatus = NULL 
) [virtual]

Apply filter on an array of animation curves.

Parameters:
pCurveArray of curves to which the filter is applied.
pCountNumber of curves in the array.
pStatusThe FbxStatus object to hold error codes.
Returns:
true if the curve filtering operation was successful, false otherwise.

Reimplemented in FbxAnimCurveFilterConstantKeyReducer, FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeyReducer, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterResample, FbxAnimCurveFilterScale, FbxAnimCurveFilterScaleByCurve, FbxAnimCurveFilterTSS, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool Apply ( FbxAnimCurve pCurve,
FbxStatus pStatus = NULL 
) [pure virtual]

Apply filter on an animation curve.

Parameters:
pCurveCurve to which the filter is applied.
pStatusThe FbxStatus object to hold error codes.
Returns:
true if the curve filtering operation was successful, false otherwise.

Implemented in FbxAnimCurveFilterConstantKeyReducer, FbxAnimCurveFilterScaleCompensate, FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeyReducer, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterResample, FbxAnimCurveFilterScale, FbxAnimCurveFilterScaleByCurve, FbxAnimCurveFilterTSS, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual void Reset ( ) [inline, virtual]
static bool GetContinuousOffset ( FbxRotationOrder pOrder,
FbxVector4 pOffset,
FbxVector4 pNew,
FbxVector4 pOld 
) [static]
void GetKFCurvesFromAnimCurve ( FbxAnimCurve **  pSrc,
int  pSrcCount,
KFCurve **  pDst,
int &  pDstCount 
) [protected]
virtual void UpdateProgressInformation ( FbxTime  ,
FbxTime   
) [inline, protected, virtual]

Definition at line 226 of file fbxanimcurvefilters.h.

{};

Member Data Documentation

FbxTime mStart [protected]
FbxTime mStop [protected]

The documentation for this class was generated from the following file:

FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter
FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter FbxAnimCurveFilter