Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HBhvInterpolator Class Reference

The HBhvInterpolator class is the abstract base class for all interpolator types. More...

#include <HBhvInterpolator.h>

Inheritance diagram for HBhvInterpolator:

HBhvInterpolatorAttSwitch HBhvInterpolatorAxisRotate HBhvInterpolatorColor HBhvInterpolatorColorMorph HBhvInterpolatorInstanceCreate HBhvInterpolatorMatrix HBhvInterpolatorPosition HBhvInterpolatorQuatSquad HBhvInterpolatorScale HBhvInterpolatorSegMove HBhvInterpolatorSegSwitch HBhvInterpolatorVertexMorph

List of all members.

Public Member Functions

void Append (HKeyframe *piece)
void Copy (int pos, int adpos, bool replace)
virtual HBhvInterpolatorCreateInstance (HBhvAnimation *animationinst)=0
void Duplicate (int pos, bool replace, bool next)
virtual void Evaluate (int keyframe, float fraction, bool &hasPos, HPoint &pos, bool &hasQuat, HQuat &quat, bool &hasScale, HPoint &scale)
HBhvAnimationGetAnimation ()
HKeyframe ** GetArray ()
virtual int GetArrayLength ()
virtual HKeyframeGetAt (int pos)
const char * GetName ()
void GetRotationFromMatrix (HQuat &rotation)
void GetTranslationFromMatrix (HPoint &translation)
virtual const char * GetType ()=0
 HBhvInterpolator (HBhvAnimation *animation=0, const char *name=0)
void Insert (HKeyframe *piece, int pos=0)
virtual void Interpolate (int keyframe, float fraction)
void Remove (int pos)
void Replace (HKeyframe *c, int pos)
virtual void Reset ()
virtual void Serialize (HUtilityXMLGenerator *xmlgen)
void SetAnimation (HBhvAnimation *animation)
void SetInstancedInterpolator (HBhvInterpolator *interpolator)

Protected Member Functions

void AddPositionToMatrix (HPoint &trans)
void AddRotationToMatrix (float rot[16])
void AddScaleToMatrix (HPoint &scale)
void SetTarget ()

Protected Attributes

char m_Name [BHV_MAX_NAME_LENGTH]
HBhvAnimationm_pAnimation
VArray< HKeyframe * > m_pArray
HBhvInterpolatorm_pInterpolatorInstance
HC_KEY m_pTarget


Detailed Description

The HBhvInterpolator class is the abstract base class for all interpolator types.

HBhvInterpolator keeps an array of keyframes as well as methods to access members of that array. The various interpolator types then implement the required functions that actually perform the interpolation.


Constructor & Destructor Documentation

HBhvInterpolator::HBhvInterpolator ( HBhvAnimation animation = 0,
const char *  name = 0 
)

Constructs an HBhvInterpolator object.

Parameters:
animation The animation that this interpolator belongs to.
name The name of this interpolator.


Member Function Documentation

void HBhvInterpolator::AddPositionToMatrix ( HPoint trans  )  [protected]

Adds a translational component to the modelling matrix.

Parameters:
trans The translational component.

void HBhvInterpolator::AddRotationToMatrix ( float  rot[16]  )  [protected]

Adds a rotational component to the modelling matrix.

Parameters:
rot The rotation matrix.

void HBhvInterpolator::AddScaleToMatrix ( HPoint scale  )  [protected]

Adds a scaling component to modelling matrix.

Parameters:
scale The scale component.

void HBhvInterpolator::Append ( HKeyframe piece  )  [inline]

This method appends the given keyframe to the end of array.

Parameters:
piece The keyframe you want to append.

void HBhvInterpolator::Copy ( int  pos,
int  adpos,
bool  replace 
)

This method copies a given keyframe and inserts the copy at a new location.

Parameters:
pos The position of the item to copy.
adpos The target position.
replace Pass true to replace item at the target position and false to insert after the target position.

virtual HBhvInterpolator* HBhvInterpolator::CreateInstance ( HBhvAnimation animationinst  )  [pure virtual]

In special cases, you may want an interpolator that references this interpolator without changing it. Use this method to create the new interpolator passing a pointer to the animation that you want it to be associated with.

Parameters:
animationinst The animation instance that this interpolator is associated with.
Returns:
The newly created interpolator that references this interpolator.

Implemented in HBhvInterpolatorPosition, HBhvInterpolatorTrail, HBhvInterpolatorAxisRotate, HBhvInterpolatorColor, HBhvInterpolatorScale, HBhvInterpolatorQuatSquad, HBhvInterpolatorAttSwitch, HBhvInterpolatorVertexMorph, HBhvInterpolatorColorMorph, HBhvInterpolatorSegSwitch, HBhvInterpolatorInstanceCreate, HBhvInterpolatorSegMove, and HBhvInterpolatorMatrix.

void HBhvInterpolator::Duplicate ( int  pos,
bool  replace,
bool  next 
)

Duplicates a keyframe and inserts it at the position indicated the replace and next parameters.

Parameters:
pos The position of the keyframe to duplicate.
replace Pass true if you want to replace the item at pos with the duplicate and false to insert the duplicate item after the pos item.
next Pass true duplicate the item at given pos and false to duplicate the item before the given pos.

HBhvAnimation* HBhvInterpolator::GetAnimation (  )  [inline]

Returns:
A pointer to the animation associated with this interpolator.

HKeyframe** HBhvInterpolator::GetArray (  )  [inline]

Returns:
The keyframe array. Note this is for read-only purposes. If you want to modify the keyframe array, use the methods provided in this class to do so.

virtual int HBhvInterpolator::GetArrayLength (  )  [inline, virtual]

Returns:
The number of entries in the keyframe array.

virtual HKeyframe* HBhvInterpolator::GetAt ( int  pos  )  [inline, virtual]

Returns the keyframe that exists at the given position.

Parameters:
pos The array position to retrieve.
Returns:
The keyframe at the given position.

const char* HBhvInterpolator::GetName (  )  [inline]

Returns:
The name of the interpolator.

References HBhvAnimation::m_Name.

void HBhvInterpolator::GetRotationFromMatrix ( HQuat rotation  ) 

Calculates the rotation components from modelling matrix of the target segment.

Parameters:
rotation Returns the x/y/z rotation.

void HBhvInterpolator::GetTranslationFromMatrix ( HPoint translation  ) 

Calculates the translation components from modelling matrix of the target segment.

Parameters:
translation Returns the x/y/z translation.

void HBhvInterpolator::Insert ( HKeyframe piece,
int  pos = 0 
) [inline]

Inserts a keyframe at the given position.

Parameters:
piece The keyframe to insert
pos The array position to insert item after.

virtual void HBhvInterpolator::Interpolate ( int  keyframe,
float  fraction 
) [inline, virtual]

Performs interpolation on the animation target given a keyframe and a fraction.

Parameters:
keyframe Reference keyframe for this interpolation.
fraction Fraction value from the specified keyframe to the next keyframe. This value is from 0 to 1.

Reimplemented in HBhvInterpolatorPosition, HBhvInterpolatorTrail, HBhvInterpolatorAxisRotate, HBhvInterpolatorColor, HBhvInterpolatorScale, HBhvInterpolatorQuatSquad, HBhvInterpolatorAttSwitch, HBhvInterpolatorVertexMorph, HBhvInterpolatorColorMorph, HBhvInterpolatorSegSwitch, HBhvInterpolatorInstanceCreate, HBhvInterpolatorSegMove, and HBhvInterpolatorMatrix.

void HBhvInterpolator::Remove ( int  pos  )  [inline]

This method removes a keyframe at the given position.

Parameters:
pos The array position indicating where to remove the keyframe.

void HBhvInterpolator::Replace ( HKeyframe c,
int  pos 
) [inline]

This method replaces an array item at a given position.

Parameters:
c The replacement keyframe.
pos The array position for the replacement keyframe.

virtual void HBhvInterpolator::Reset (  )  [inline, virtual]

void HBhvInterpolator::SetAnimation ( HBhvAnimation animation  )  [inline]

Associates an animation with this interpolater.

void HBhvInterpolator::SetInstancedInterpolator ( HBhvInterpolator interpolator  ) 

In special cases, if you want to reference another interpolator without changing it, use this method to indicate the interpolator that you want this interpolator to refer to.

Parameters:
interpolator Interpolator to reference.

void HBhvInterpolator::SetTarget (  )  [protected]

Sets the target as the one associated with this interpolator's animation instance.


Member Data Documentation

char HBhvInterpolator::m_Name[BHV_MAX_NAME_LENGTH] [protected]

The name of the interpolator object.

A pointer to the animation that this interpolator belongs to.

VArray< HKeyframe *> HBhvInterpolator::m_pArray [protected]

The keyframe array.

A pointer to instanced interpolator.

HC_KEY HBhvInterpolator::m_pTarget [protected]

The key of interpolator target.


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