Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes

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 79 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.

Static Public Member Functions

static bool  GetContinuousOffset (FbxRotationOrder &pOrder, FbxVector4 &pOffset, FbxVector4 &pNew, FbxVector4 &pOld)

Protected Member Functions

void  GetKFCurvesFromAnimCurve (FbxAnimCurve **pSrc, int pSrcCount, KFCurve **pDst, int &pDstCount)
virtual void  UpdateProgressInformation (FbxTime, FbxTime)
void  FillError (const char *pErrorStringArray[], int pErrorCount)

Protected Attributes

FbxTime  mStart
FbxTime  mStop
FbxError  mError

Member functions

virtual const char *  GetName () const
  Get the name of the filter.
FbxTime GetStartTime ()
  Get the start time for the application of the filter.
void  SetStartTime (FbxTime &pTime)
  Set the start time for the application of the filter.
FbxTime GetStopTime ()
  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)
  Check if any curve on the animation stack needs an application of the filter.
virtual bool  NeedApply (FbxObject *pObj, FbxAnimStack *pAnimStack)
  Check if all the animated properties of the object need an application of the filter.
virtual bool  NeedApply (FbxAnimCurveNode &pCurveNode)
  Check if the animation curve node needs an application of the filter.
virtual bool  NeedApply (FbxAnimCurve **pCurve, int pCount)
  Check if the given animation curve need an application of the filter.
virtual bool  NeedApply (FbxAnimCurve &pCurve)
  Check if an animation curve need an application of the filter.
virtual bool  Apply (FbxAnimStack *pAnimStack)
  Apply filter to all the curves stored in the animation stack.
virtual bool  Apply (FbxObject *pObj, FbxAnimStack *pAnimStack)
  Apply filter to all the animated properties of the object.
virtual bool  Apply (FbxAnimCurveNode &pCurveNode)
  Apply filter on all the curves of an animation curve node.
virtual bool  Apply (FbxAnimCurve **pCurve, int pCount)
  Apply filter on an array of animation curves.
virtual bool  Apply (FbxAnimCurve &pCurve)=0
  Apply filter on an animation curve.
virtual void  Reset ()
  Reset the filter to its default parameters.
FbxError GetError ()
  Retrieve error object.
int  GetLastErrorID ()
  Get last error ID.
const char *  GetLastErrorString () const
  Get last error string.

Constructor & Destructor Documentation

Constructor.

virtual ~FbxAnimCurveFilter ( ) [inline, virtual]

Destructor.

Definition at line 86 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 101 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:
pTime The time to be set.

Definition at line 107 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 113 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:
pTime The time to be set.

Definition at line 119 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:
pCurve Curve 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:
pCurve Curve on which we want to retrieve the stop key.
Returns:
Index of the stop key.
virtual bool NeedApply ( FbxAnimStack pAnimStack ) [virtual]

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

Parameters:
pAnimStack Animation stack where to retrieve the animation curves
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 
) [virtual]

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

Parameters:
pObj Object containing the properties to test.
pAnimStack Animation stack where to retrieve the animation curves
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 ) [virtual]

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

Parameters:
pCurveNode Curve node to test.
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 
) [virtual]

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

Parameters:
pCurve Array of curves to test if they need the and application of the filter.
pCount Number of curves in array.
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 ) [virtual]

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

Parameters:
pCurve Curve to test if it needs application of filter.
Returns:
true if the animation curve needs an application of the filter.

Reimplemented in FbxAnimCurveFilterGimbleKiller, FbxAnimCurveFilterKeySync, FbxAnimCurveFilterUnroll, and FbxAnimCurveFilterMatrixConverter.

virtual bool Apply ( FbxAnimStack pAnimStack ) [virtual]

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

Parameters:
pAnimStack Animation stack where to retrieve the animation curves
Returns:
true if the curve filtering operation was successful, false otherwise.

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

virtual bool Apply ( FbxObject pObj,
FbxAnimStack pAnimStack 
) [virtual]

Apply filter to all the animated properties of the object.

Parameters:
pObj Object containing the animated properties to which the filter is applied.
pAnimStack Animation stack where to retrieve the animation curves
Returns:
true if the curve filtering operation was successful, false otherwise.

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

virtual bool Apply ( FbxAnimCurveNode pCurveNode ) [virtual]

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

Parameters:
pCurveNode Curve node to which the filter is applied.
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, FbxAnimCurveFilterTSS, and FbxAnimCurveFilterUnroll.

virtual bool Apply ( FbxAnimCurve **  pCurve,
int  pCount 
) [virtual]

Apply filter on an array of animation curves.

Parameters:
pCurve Array of curves to which the filter is applied.
pCount Number of curves in the array.
Returns:
true if the curve filtering operation was successful, false otherwise.

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

virtual bool Apply ( FbxAnimCurve pCurve ) [pure virtual]
virtual void Reset ( ) [inline, virtual]
FbxError* GetError ( ) [inline]

Retrieve error object.

Returns:
Error object.

Definition at line 214 of file fbxanimcurvefilters.h.

{ return &mError; }
int GetLastErrorID ( ) [inline]

Get last error ID.

Returns:
Last error ID.

Definition at line 219 of file fbxanimcurvefilters.h.

{ return mError.GetLastErrorID(); }
const char* GetLastErrorString ( ) const [inline]

Get last error string.

Returns:
Last error string.

Definition at line 224 of file fbxanimcurvefilters.h.

{ return mError.GetLastErrorString(); }
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 243 of file fbxanimcurvefilters.h.

{};
void FillError ( const char *  pErrorStringArray[],
int  pErrorCount 
) [inline, protected]

Definition at line 245 of file fbxanimcurvefilters.h.

    {
        mError.Reset(pErrorStringArray, pErrorCount);
    };

Member Data Documentation

FbxTime mStart [protected]
FbxTime mStop [protected]
FbxError mError [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