Public Member Functions | Protected Member Functions

FbxAnimCurveBase Class Reference

Search for all occurrences

Detailed Description

This is the base class for implementing animation curves.

It is a pure virtual class that defines the general interface to animation key management and manipulation.

See also:
FbxAnimCurve for fully implemented class.

Definition at line 70 of file fbxanimcurvebase.h.

#include <fbxanimcurvebase.h>

Inheritance diagram for FbxAnimCurveBase:
Inheritance graph
[legend]

List of all members.

Public Member Functions

virtual FbxObjectCopy (const FbxObject &pObject)
 Copy an object content into this object.
virtual bool Store (FbxIO *pFileObject, bool pLegacyVersion=false)=0
virtual bool Retrieve (FbxIO *pFileObject)=0

Protected Member Functions

virtual void Construct (const FbxAnimCurveBase *pFrom)

Key management.

virtual void KeyClear ()=0
 Remove all the keys and free buffer memory.
virtual int KeyGetCount () const =0
 Get the number of keys.
virtual int KeyAdd (FbxTime pTime, FbxAnimCurveKeyBase &pKey, int *pLast=NULL)=0
 Add a key at given time.
virtual bool KeySet (int pIndex, FbxAnimCurveKeyBase &pKey)=0
 Set key at given index.
virtual bool KeyRemove (int pIndex)=0
 Remove key at given index.
virtual bool KeyRemove (int pStartIndex, int pEndIndex)=0
 Remove all the keys in the given range.

Key Time Manipulation

virtual FbxTime KeyGetTime (int) const
 Get key time.
virtual void KeySetTime (int pKeyIndex, FbxTime pTime)=0
 Set key time.

Extrapolation

Extrapolation defines the function curve value before and after the keys.Pre-extrapolation defines the function curve value before first key. Post-extrapolation defines the function curve value after last key.
  • CONSTANT means a constant value matching the first/last key.
  • REPETITION means the entire function curve is looped.
  • MIRROR_REPETITION means the entire function curve is looped once backward, once forward and so on.
  • KEEP_SLOPE means a linear function with a slope matching the first/last key.

enum  EExtrapolationType { eConstant = 1, eRepetition = 2, eMirrorRepetition = 3, eKeepSlope = 4 }
void SetPreExtrapolation (EExtrapolationType pExtrapolation)
 Set pre-extrapolation mode.
EExtrapolationType GetPreExtrapolation () const
 Get pre-extrapolation mode.
void SetPreExtrapolationCount (unsigned long pCount)
 Set pre-extrapolation count.
unsigned long GetPreExtrapolationCount () const
 Get pre-extrapolation count.
void SetPostExtrapolation (EExtrapolationType pExtrapolation)
 Set post-extrapolation mode.
EExtrapolationType GetPostExtrapolation () const
 Get post-extrapolation mode.
void SetPostExtrapolationCount (unsigned long pCount)
 Set post-extrapolation count.
unsigned long GetPostExtrapolationCount () const
 Get post-extrapolation count.

Evaluation and Analysis

virtual float Evaluate (FbxTime pTime, int *pLast=NULL)=0
 Evaluate curve value at a given time.
virtual float EvaluateIndex (double pIndex)=0
 Evaluate curve value at the given key index.

Utility functions.

virtual bool GetTimeInterval (FbxTimeSpan &pTimeInterval)
 Find out start and end time of the animation curve.

Member Enumeration Documentation

Enumerator:
eConstant 
eRepetition 
eMirrorRepetition 
eKeepSlope 

Definition at line 151 of file fbxanimcurvebase.h.


Member Function Documentation

virtual void KeyClear ( ) [pure virtual]

Remove all the keys and free buffer memory.

Implemented in FbxAnimCurve.

virtual int KeyGetCount ( ) const [pure virtual]

Get the number of keys.

Implemented in FbxAnimCurve.

virtual int KeyAdd ( FbxTime  pTime,
FbxAnimCurveKeyBase pKey,
int *  pLast = NULL 
) [pure virtual]

Add a key at given time.

Parameters:
pTimeTime to add the key.
pKeyKey to add.
pLastIndex of the last processed key to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Index of the key at given time, no matter if it was added or already present.

Implemented in FbxAnimCurve.

virtual bool KeySet ( int  pIndex,
FbxAnimCurveKeyBase pKey 
) [pure virtual]

Set key at given index.

Parameters:
pIndexIndex of where the key should be set.
pKeyThe key to set.
Returns:
true if key time is superior to previous key and inferior to next key, false otherwise.
Remarks:
Result is undetermined if function curve has no key or index is out of bounds.

Implemented in FbxAnimCurve.

virtual bool KeyRemove ( int  pIndex) [pure virtual]

Remove key at given index.

Parameters:
pIndexIndex of key to remove.
Returns:
true on success, false otherwise.

Implemented in FbxAnimCurve.

virtual bool KeyRemove ( int  pStartIndex,
int  pEndIndex 
) [pure virtual]

Remove all the keys in the given range.

Parameters:
pStartIndexIndex of the first key to remove (inclusive).
pEndIndexIndex of the last key to remove (inclusive).
Returns:
true on success, false otherwise.

Implemented in FbxAnimCurve.

virtual FbxTime KeyGetTime ( int  ) const [inline, virtual]

Get key time.

Parameters:
pKeyIndexKey index.
Returns:
Key time (time at which this key is occurring).

Reimplemented in FbxAnimCurve.

Definition at line 130 of file fbxanimcurvebase.h.

virtual void KeySetTime ( int  pKeyIndex,
FbxTime  pTime 
) [pure virtual]

Set key time.

Parameters:
pKeyIndexKey index.
pTimeKey time (time at which this key is occurring).

Implemented in FbxAnimCurve.

void SetPreExtrapolation ( EExtrapolationType  pExtrapolation) [inline]

Set pre-extrapolation mode.

Parameters:
pExtrapolationThe pre-extrapolation mode to set.

Definition at line 162 of file fbxanimcurvebase.h.

{ mPreExtrapolation = pExtrapolation; }
EExtrapolationType GetPreExtrapolation ( ) const [inline]

Get pre-extrapolation mode.

Returns:
The current pre-extrapolation mode.

Definition at line 167 of file fbxanimcurvebase.h.

{ return mPreExtrapolation; }
void SetPreExtrapolationCount ( unsigned long  pCount) [inline]

Set pre-extrapolation count.

Parameters:
pCountNumber of repetitions if pre-extrapolation mode is REPETITION or MIRROR_REPETITION.

Definition at line 173 of file fbxanimcurvebase.h.

{ mPreExtrapolationCount = pCount; }
unsigned long GetPreExtrapolationCount ( ) const [inline]

Get pre-extrapolation count.

Returns:
Number of repetitions if pre-extrapolation mode is REPETITION or MIRROR_REPETITION.

Definition at line 179 of file fbxanimcurvebase.h.

{ return mPreExtrapolationCount; }
void SetPostExtrapolation ( EExtrapolationType  pExtrapolation) [inline]

Set post-extrapolation mode.

Parameters:
pExtrapolationThe post-extrapolation mode to set.

Definition at line 184 of file fbxanimcurvebase.h.

{ mPostExtrapolation = pExtrapolation; }
EExtrapolationType GetPostExtrapolation ( ) const [inline]

Get post-extrapolation mode.

Returns:
The current post-extrapolation mode.

Definition at line 189 of file fbxanimcurvebase.h.

{ return mPostExtrapolation; }
void SetPostExtrapolationCount ( unsigned long  pCount) [inline]

Set post-extrapolation count.

Parameters:
pCountNumber of repetitions if post-extrapolation mode is REPETITION or MIRROR_REPETITION.

Definition at line 195 of file fbxanimcurvebase.h.

{ mPostExtrapolationCount = pCount; }
unsigned long GetPostExtrapolationCount ( ) const [inline]

Get post-extrapolation count.

Returns:
Number of repetitions if post-extrapolation mode is REPETITION or MIRROR_REPETITION.

Definition at line 201 of file fbxanimcurvebase.h.

{ return mPostExtrapolationCount; }
virtual float Evaluate ( FbxTime  pTime,
int *  pLast = NULL 
) [pure virtual]

Evaluate curve value at a given time.

Parameters:
pTimeTime of evaluation.
pLastIndex of the last processed key to speed up search. If this function is called in a loop, initialize this value to 0 and let it be updated by each call.
Returns:
Evaluated curve value.
Remarks:
This function take extrapolation into account.

Implemented in FbxAnimCurve.

virtual float EvaluateIndex ( double  pIndex) [pure virtual]

Evaluate curve value at the given key index.

Parameters:
pIndexAny value from 0 to KeyGetCount() - 1. If this index falls between keys, the curve value will be interpolated based on the surrounding keys.
Returns:
Evaluated curve value.

Implemented in FbxAnimCurve.

virtual bool GetTimeInterval ( FbxTimeSpan pTimeInterval) [virtual]

Find out start and end time of the animation curve.

This function retrieves the Curve's time span.

Parameters:
pTimeIntervalReference to receive start time and end time.
Returns:
true on success, false otherwise.

Reimplemented in FbxAnimCurve.

virtual FbxObject& Copy ( const FbxObject pObject) [virtual]

Copy an object content into this object.

Parameters:
pObjectThe source object to copy data from.
Returns:
Returns the destination object being modified by the source.
Remarks:
This function replace the assignment operator (operator=). It will copy all property values and the name. Connections are NOT copied.

Reimplemented from FbxObject.

virtual bool Store ( FbxIO pFileObject,
bool  pLegacyVersion = false 
) [pure virtual]
virtual bool Retrieve ( FbxIO pFileObject) [pure virtual]
virtual void Construct ( const FbxAnimCurveBase pFrom) [protected, virtual]

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

FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase
FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase FbxAnimCurveBase