# CSLBaseFCurve Class Reference

Base class of all FCurves. More...

`#include <BaseFCurve.h>`

Inheritance diagram for CSLBaseFCurve:

List of all members.

## Public Types
typedef CSLArrayProxy< CSLConstantKey, SI_Float, 2 > | CSLConstantKeyArray
typedef CSLArrayProxy< CSLLinearKey, SI_Float, 2 > | CSLLinearKeyArray
typedef CSLArrayProxy< CSLHermiteKey, SI_Float, 4 > | CSLHermiteKeyArray
typedef CSLArrayProxy< CSLBezierKey, SI_Float, 6 > | CSLBezierKeyArray
typedef CSLArrayProxy< CSLCubicKey, SI_Float, 6 > | CSLCubicKeyArray
## Public Member Functions
virtual | ~CSLBaseFCurve ()
| Destructor.
CSLConstantKeyArray * | GetConstantKeyList ()
CSLCubicKeyArray * | GetCubicKeyList ()
CSLHermiteKeyArray * | GetHermiteKeyList ()
CSLBezierKeyArray * | GetBezierKeyList ()
CSLLinearKeyArray * | GetLinearKeyList ()
CSLConstantKey * | GetConstantKeyListPtr ()
CSLCubicKey * | GetCubicKeyListPtr ()
CSLHermiteKey * | GetHermiteKeyListPtr ()
CSLBezierKey * | GetBezierKeyListPtr ()
CSLLinearKey * | GetLinearKeyListPtr ()
CSLTemplate::EFCurveInterpolationType | GetInterpolationType ()
SI_Int | GetKeyValueCount ()
SI_Int | GetKeyCount ()
SI_Error | Evaluate (SI_Float in_fTime)
SI_Float | GetLastEvaluation ()
SI_Float | GetValueAtNextFrame (SI_Float in_fFloat)
SI_Float | GetValueAtPrevFrame (SI_Float in_fFloat)
SI_Int | FindKeyAtOrBefore (SI_Float in_fFloat)
CSLAnimatableType * | GetParameter ()
CSLAnimatableType * | ConnectParameter (CSLAnimatableType *in_pNewParameter)
virtual SI_Error | Synchronize ()
## Protected Member Functions
| CSLBaseFCurve (CSLScene *in_pScene, CSLModel *in_pModel, CdotXSITemplate *in_pTemplate, EFCurveInterpolationType in_InterpolationType)

## Detailed Description

Base class of all FCurves.

A function curve is a graph representing the animation of parameters (CSLAnimatableType). When you edit an FCurve, you change the animation. You can create an FCurve with the CSLTemplate::CreateFCurve and CSLTemplate::CreateParameterFCurve.

Note:
  You can create FCurves for all CSLTemplate-derived classes with CSLAnimatableType parameters.

See also:
  CSLAnimatableType

  CSLTemplate

## Member Typedef Documentation

typedef CSLArrayProxy<CSLConstantKey, SI_Float, 2> CSLConstantKeyArray

Proxy class that allows modifying constant fcurve keys like an array.

typedef CSLArrayProxy<CSLLinearKey, SI_Float, 2> CSLLinearKeyArray

Proxy class that allows modifying linear fcurve keys like an array.

typedef CSLArrayProxy<CSLHermiteKey, SI_Float, 4> CSLHermiteKeyArray

Proxy class that allows modifying hermite fcurve keys like an array.

typedef CSLArrayProxy<CSLBezierKey, SI_Float, 6> CSLBezierKeyArray

Proxy class that allows modifying bezier fcurve keys like an array.

typedef CSLArrayProxy<CSLCubicKey, SI_Float, 6> CSLCubicKeyArray

Proxy class that allows modifying cubic fcurve keys like an array.

## Constructor & Destructor Documentation

CSLBaseFCurve | ( | CSLScene * | in_pScene,
|  | CSLModel * | in_pModel,
|  | CdotXSITemplate * | in_pTemplate,
|  | EFCurveInterpolationType | in_InterpolationType |
| ) |  |  | `[protected]`

Constructor

Parameters:

  | in_pScene | Pointer to the scene containing the BaseFCurve
  | in_pModel | Pointer to the model containing the BaseFCurve
  | in_pTemplate | Pointer to the CdotXSITemplate containing the BaseFCurve
  | in_InterpolationType | The type of interpolation to be used in the BaseFCurve

## Member Function Documentation

CSLConstantKeyArray* GetConstantKeyList | ( |  | ) |

Returns an array of constant fcurve keys.

Return values:

  | CSLConstantKeyArray* | Array of constant fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLCubicKeyArray* GetCubicKeyList | ( |  | ) |

Returns an array of cubic fcurve keys.

Return values:

  | CSLCubicKeyArray* | Array of cubic fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLHermiteKeyArray* GetHermiteKeyList | ( |  | ) |

Returns an array of hermite fcurve keys.

Return values:

  | CSLHermiteKeyArray* | Array of hermite fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLBezierKeyArray* GetBezierKeyList | ( |  | ) |

Returns an array of bezier fcurve keys.

Return values:

  | CSLBezierKeyArray* | Array of bezier fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLLinearKeyArray* GetLinearKeyList | ( |  | ) |

Returns an array of linear fcurve keys.

Return values:

  | CSLLinearKeyArray* | Array of linear fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLConstantKey* GetConstantKeyListPtr | ( |  | ) |

Returns an array of constant fcurve keys.

Return values:

  | CSLConstantKeyArray* | Array of constant fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLCubicKey* GetCubicKeyListPtr | ( |  | ) |

Returns an array of cubic fcurve keys.

Return values:

  | CSLCubicKeyArray* | Array of cubic fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLHermiteKey* GetHermiteKeyListPtr | ( |  | ) |

Returns an array of hermite fcurve keys.

Return values:

  | CSLHermiteKeyArray* | Array of hermite fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLBezierKey* GetBezierKeyListPtr | ( |  | ) |

Returns an array of bezier fcurve keys.

Return values:

  | CSLBezierKeyArray* | Array of bezier fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLLinearKey* GetLinearKeyListPtr | ( |  | ) |

Returns an array of linear fcurve keys.

Return values:

  | CSLLinearKeyArray* | Array of linear fcurve keys.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

CSLTemplate::EFCurveInterpolationType GetInterpolationType | ( |  | ) |

Returns the interpolation type of the fcurve.

Return values:

  | EFCurveInterpolationType | Type of fcurve interpolation.
  | NULL | Invalid interpolation type.

See also:
  CSLBaseFCurve::GetInterpolationType

SI_Int GetKeyValueCount | ( |  | ) |

Returns the number of elements required to represent a key.

Returns:
  SI_Int Number of key values.

SI_Int GetKeyCount | ( |  | ) |

Returns the number of keys in the fcurve.

Returns:
  SI_Int Number of keys.

See also:
  CSLBaseKey

SI_Error Evaluate | ( | SI_Float | in_fTime | ) | `[virtual]`

Evalutes the FCurve at a given time

Parameters:

  | in_fTime | The time

Return values:

  | SI_SUCCESS |

See also:
  CSLBaseKey

Reimplemented from CSLTemplate.

SI_Float GetLastEvaluation | ( |  | ) | `[inline]`

Returns the value of the last evaluation

Returns:
  SI_Float Value of the last evaluation

See also:
  CSLBaseFCurve::Evaluate

SI_Float GetValueAtNextFrame | ( | SI_Float | in_fFloat | ) |

Returns the value of the curve at the time specified or at the next key

Parameters:

  | in_fFloat | The time

Returns:
  SI_Float The value

SI_Float GetValueAtPrevFrame | ( | SI_Float | in_fFloat | ) |

Returns the value of the curve at the time specified or at the previous key

Parameters:

  | in_fFloat | The time

Returns:
  SI_Float The value

SI_Int FindKeyAtOrBefore | ( | SI_Float | in_fFloat | ) |

Returns the key index located on or before the time passed in

Parameters:

  | in_fFloat | The time

Returns:
  SI_Int Key index

See also:
  CSLBaseKey

CSLAnimatableType* GetParameter | ( |  | ) |

Returns the parameter connected to this fcurve.

Returns:
  CSLAnimatableType* Pointer to a parameter proxy.

CSLAnimatableType* ConnectParameter | ( | CSLAnimatableType * | in_pNewParameter | ) |

Connects a previously allocated parameter

Parameters:

  | in_pNewParameter | Parameter to connect

Return values:

  | CSLAnimatableType* | The connected parameter (`in_pNewParameter`)
  | NULL | A parameter was already connected.

virtual SI_Error Synchronize | ( |  | ) | `[virtual]`

Synchronize will ensure that the animated parameter is up to date.

Returns:
  SI_Error Error code

Reimplemented from CSLTemplate.

Reimplemented in CSLActionFCurve, CSLCOLLADAActionFCurve, CSLCOLLADAFCurve, and CSLFCurve.

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

- BaseFCurve.h