Public Member Functions

KFbxAnimCurveFilterUnroll Class Reference

Search for all occurrences

Detailed Description

Unroll filter.

Filter to apply continuous rotation values to animation curves. Due to EULER rotation properties, when a rotation angle cross over the 180 degree value, it becomes -179. This filter tries to keep a continuous rotation effectively producing increasing values to actually become 181 degrees, etc...

Remarks:
The current implementation of this filter expects to process 3 curves.
By default, this filter does not affect the tangent values of the modified keys. This means that, for CUBIC interpolation curves containing keys with USER or BREAK tangents, the unrolled curves will correctly match the original rotation exactly on the curve keys but not in-between them. The filter can be configured to automatically convert the USER and BREAK tangents to AUTO tangents by setting the ForceAutoTangents flag. Using the AUTO tangents mode can result in a more consistent interpolation between the curve keys.

Definition at line 934 of file kfbxanimcurvefilters.h.

#include <kfbxanimcurvefilters.h>

Inheritance diagram for KFbxAnimCurveFilterUnroll:
Inheritance graph
[legend]

List of all members.

Public Member Functions

  KFbxAnimCurveFilterUnroll ()
  Constructor.
virtual  ~KFbxAnimCurveFilterUnroll ()
  Destructor.
virtual const char *  GetName () const
  Get the name of the filter.
virtual bool  NeedApply (KFbxAnimStack *pAnimStack)
  This filter expects to works with 3 interdependent curves.
virtual bool  NeedApply (KFbxObject *pObj, KFbxAnimStack *pAnimStack)
  This filter expects to works with 3 interdependent curves.
virtual bool  NeedApply (KFbxAnimCurveNode &pCurveNode)
  Check if the animation curve node needs an application of the filter.
virtual bool  NeedApply (KFbxAnimCurve **pCurve, int pCount)
  Check if the given animation curve need an application of the filter.
virtual bool  NeedApply (KFbxAnimCurve &pCurve)
  This filter expects to works with interdependent curves.
virtual bool  Apply (KFbxAnimStack *pAnimStack)
  This filter expects to works with 3 interdependent curves.
virtual bool  Apply (KFbxObject *pObj, KFbxAnimStack *pAnimStack)
  This filter expects to works with 3 interdependent curves.
virtual bool  Apply (KFbxAnimCurveNode &pCurveNode)
  Apply filter on all the curves of an animation curve node.
virtual bool  Apply (KFbxAnimCurve **pCurve, int pCount)
  Apply filter on the given animation curve.
virtual bool  Apply (KFbxAnimCurve &pCurve)
  This filter expects to works with interdependent curves.
virtual void  Reset ()
  Reset the filter to its default parameters.
double  GetQualityTolerance () const
  Get quality tolerance.
void  SetQualityTolerance (double pQualityTolerance)
  Set quality tolerance.
bool  GetTestForPath () const
  Get if the test path is enabled.
void  SetTestForPath (bool pTestForPath)
  Set if the test path is enabled.
bool  GetForceAutoTangents () const
  Get the current state of the ForceAutoTangents flag.
void  SetForceAutoTangents (bool pForceAutoTangents)
  Set the new state of the ForceAutoTangents flag.
void  SetRotationOrder (int pOrder)

Constructor & Destructor Documentation

Constructor.

virtual ~KFbxAnimCurveFilterUnroll ( ) [inline, virtual]

Destructor.

Definition at line 941 of file kfbxanimcurvefilters.h.

{};

Member Function Documentation

virtual const char* GetName ( ) const [virtual]

Get the name of the filter.

Returns:
Pointer to name.

Reimplemented from KFbxAnimCurveFilter.

virtual bool NeedApply ( KFbxAnimStack pAnimStack ) [inline, virtual]

This filter expects to works with 3 interdependent curves.

Passing the animation stack makes no sense since this object would not know which curves to handle.

Parameters:
pAnimStack Animation stack
Returns:
false.

Reimplemented from KFbxAnimCurveFilter.

Definition at line 953 of file kfbxanimcurvefilters.h.

{ return false; };
virtual bool NeedApply ( KFbxObject pObj,
KFbxAnimStack pAnimStack 
) [inline, virtual]

This filter expects to works with 3 interdependent curves.

Collecting all the animation curves from the properties defined in pObj could not guarantee that we are manipulating 3 interdependent curves.

Parameters:
pObj Object containing the properties to test.
pAnimStack Animation stack where to retrieve the animation curves
Returns:
false

Reimplemented from KFbxAnimCurveFilter.

Definition at line 961 of file kfbxanimcurvefilters.h.

{ return false; }
virtual bool NeedApply ( KFbxAnimCurveNode 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 checks that th pCurveNode is representing a Rotation (either EULER or Quaternion). Depending on the type, it will validated that the correct number of animation curves are defined. If all the conditions are not met, the method will return false.

Reimplemented from KFbxAnimCurveFilter.

virtual bool NeedApply ( KFbxAnimCurve **  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.
Remarks:
Because this method only receives an array of interdependent curves, this filter assumes that they are all coming from an EULER rotation anim curve node. Therefore, it expects pCount to be equal to 3.

Reimplemented from KFbxAnimCurveFilter.

virtual bool NeedApply ( KFbxAnimCurve pCurve ) [inline, virtual]

This filter expects to works with interdependent curves.

Receiving one single curve is useless.

Returns:
false

Reimplemented from KFbxAnimCurveFilter.

Definition at line 986 of file kfbxanimcurvefilters.h.

{ return false; };
virtual bool Apply ( KFbxAnimStack pAnimStack ) [inline, virtual]

This filter expects to works with 3 interdependent curves.

Passing the animation stack makes no sense since this object would not know which curves to handle.

Parameters:
pAnimStack Animation stack
Returns:
false.

Reimplemented from KFbxAnimCurveFilter.

Definition at line 993 of file kfbxanimcurvefilters.h.

{ return false; };
virtual bool Apply ( KFbxObject pObj,
KFbxAnimStack pAnimStack 
) [inline, virtual]

This filter expects to works with 3 interdependent curves.

Collecting all the animation curves from the properties defined in pObj could not guarantee that we are manipulating 3 interdependent curves.

Parameters:
pObj Object containing the properties to test.
pAnimStack Animation stack where to retrieve the animation curves
Returns:
false

Reimplemented from KFbxAnimCurveFilter.

Definition at line 1001 of file kfbxanimcurvefilters.h.

{ return false; }
virtual bool Apply ( KFbxAnimCurveNode 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 filter expects a Rotation curve node with three curves.

Reimplemented from KFbxAnimCurveFilter.

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

Apply filter on the given animation curve.

Parameters:
pCurve Array of curve to which the filter is applied.
pCount Number of curves in array.
Returns:
true if the curve filtering operation was successful, false otherwise.
Remarks:
Because this method only receives an array of interdependent curves, this filter assumes that they are all coming from an EULER rotation anim curve node. Therefore, it expects pCount to be equal to 3.

Reimplemented from KFbxAnimCurveFilter.

virtual bool Apply ( KFbxAnimCurve pCurve ) [inline, virtual]

This filter expects to works with interdependent curves.

Receiving one single curve is useless.

Returns:
false

Implements KFbxAnimCurveFilter.

Definition at line 1023 of file kfbxanimcurvefilters.h.

{ return false; }
virtual void Reset ( ) [virtual]

Reset the filter to its default parameters.

Reimplemented from KFbxAnimCurveFilter.

double GetQualityTolerance ( ) const

Get quality tolerance.

Returns:
The Quality Tolerance
void SetQualityTolerance ( double  pQualityTolerance )

Set quality tolerance.

Parameters:
pQualityTolerance Value to be set.
bool GetTestForPath ( ) const

Get if the test path is enabled.

Returns:
true if test for path is enabled.
void SetTestForPath ( bool  pTestForPath )

Set if the test path is enabled.

Parameters:
pTestForPath Value to set if test for path is to be enabled.
bool GetForceAutoTangents ( ) const

Get the current state of the ForceAutoTangents flag.

Returns:
true if forcing auto tangents is enabled.
Remarks:
This flag is considered only on curves using the CUBIC interpolation and keys with the USER or BREAK tangents. For any other type of interpolations or tangents, this flag is ignored.
void SetForceAutoTangents ( bool  pForceAutoTangents )

Set the new state of the ForceAutoTangents flag.

Parameters:
pForceAutoTangents New value of the flag.
Remarks:
This flag is considered only on curves using the CUBIC interpolation and keys with the USER or BREAK tangents. For any other type of interpolations or tangents, this flag is ignored.
void SetRotationOrder ( int  pOrder )

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

KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll
KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll KFbxAnimCurveFilterUnroll