The HBhvInterpolator class is the abstract base class for all interpolator types.
More...
#include <HBhvInterpolator.h>
|
void | Append (HKeyframe *piece) |
|
void | Copy (int pos, int adpos, bool replace) |
|
virtual HBhvInterpolator * | CreateInstance (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) |
|
HBhvAnimation * | GetAnimation () |
|
HKeyframe ** | GetArray () |
|
virtual int | GetArrayLength () |
|
virtual HKeyframe * | GetAt (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) |
|
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.
◆ HBhvInterpolator()
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. |
◆ AddPositionToMatrix()
void HBhvInterpolator::AddPositionToMatrix |
( |
HPoint & |
trans | ) |
|
|
protected |
Adds a translational component to the modelling matrix.
- Parameters
-
trans | The translational component. |
◆ AddRotationToMatrix()
void HBhvInterpolator::AddRotationToMatrix |
( |
float |
rot[16] | ) |
|
|
protected |
Adds a rotational component to the modelling matrix.
- Parameters
-
◆ AddScaleToMatrix()
void HBhvInterpolator::AddScaleToMatrix |
( |
HPoint & |
scale | ) |
|
|
protected |
Adds a scaling component to modelling matrix.
- Parameters
-
scale | The scale component. |
◆ Append()
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. |
◆ Copy()
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. |
◆ CreateInstance()
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 HBhvInterpolatorMatrix, HBhvInterpolatorSegMove, HBhvInterpolatorInstanceCreate, HBhvInterpolatorSegSwitch, HBhvInterpolatorColorMorph, HBhvInterpolatorVertexMorph, HBhvInterpolatorAttSwitch, HBhvInterpolatorQuatSquad, HBhvInterpolatorScale, HBhvInterpolatorColor, HBhvInterpolatorAxisRotate, HBhvInterpolatorTrail, and HBhvInterpolatorPosition.
◆ Duplicate()
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. |
◆ GetAnimation()
- Returns
- A pointer to the animation associated with this interpolator.
◆ GetArray()
- 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.
◆ GetArrayLength()
virtual int HBhvInterpolator::GetArrayLength |
( |
| ) |
|
|
inlinevirtual |
- Returns
- The number of entries in the keyframe array.
◆ GetAt()
virtual HKeyframe* HBhvInterpolator::GetAt |
( |
int |
pos | ) |
|
|
inlinevirtual |
Returns the keyframe that exists at the given position.
- Parameters
-
pos | The array position to retrieve. |
- Returns
- The keyframe at the given position.
◆ GetName()
const char* HBhvInterpolator::GetName |
( |
| ) |
|
|
inline |
◆ GetRotationFromMatrix()
void HBhvInterpolator::GetRotationFromMatrix |
( |
HQuat & |
rotation | ) |
|
Calculates the rotation components from modelling matrix of the target segment.
- Parameters
-
rotation | Returns the x/y/z rotation. |
◆ GetTranslationFromMatrix()
void HBhvInterpolator::GetTranslationFromMatrix |
( |
HPoint & |
translation | ) |
|
Calculates the translation components from modelling matrix of the target segment.
- Parameters
-
translation | Returns the x/y/z translation. |
◆ GetType()
virtual const char* HBhvInterpolator::GetType |
( |
| ) |
|
|
pure virtual |
- Returns
- Type of this interpolator.
Implemented in HBhvInterpolatorMatrix, HBhvInterpolatorSegMove, HBhvInterpolatorInstanceCreate, HBhvInterpolatorSegSwitch, HBhvInterpolatorColorMorph, HBhvInterpolatorVertexMorph, HBhvInterpolatorAttSwitch, HBhvInterpolatorQuatSquad, HBhvInterpolatorScale, HBhvInterpolatorColor, HBhvInterpolatorAxisRotate, HBhvInterpolatorTrail, and HBhvInterpolatorPosition.
◆ Insert()
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. |
◆ Interpolate()
virtual void HBhvInterpolator::Interpolate |
( |
int |
keyframe, |
|
|
float |
fraction |
|
) |
| |
|
inlinevirtual |
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 HBhvInterpolatorMatrix, HBhvInterpolatorSegMove, HBhvInterpolatorInstanceCreate, HBhvInterpolatorSegSwitch, HBhvInterpolatorColorMorph, HBhvInterpolatorVertexMorph, HBhvInterpolatorAttSwitch, HBhvInterpolatorQuatSquad, HBhvInterpolatorScale, HBhvInterpolatorColor, HBhvInterpolatorAxisRotate, HBhvInterpolatorTrail, and HBhvInterpolatorPosition.
◆ Remove()
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. |
◆ Replace()
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. |
◆ Reset()
virtual void HBhvInterpolator::Reset |
( |
| ) |
|
|
inlinevirtual |
◆ Serialize()
virtual void HBhvInterpolator::Serialize |
( |
HUtilityXMLGenerator * |
xmlgen | ) |
|
|
inlinevirtual |
Writes XML data to a buffer.
Reimplemented in HBhvInterpolatorMatrix, HBhvInterpolatorSegMove, HBhvInterpolatorInstanceCreate, HBhvInterpolatorSegSwitch, HBhvInterpolatorColorMorph, HBhvInterpolatorVertexMorph, HBhvInterpolatorAttSwitch, HBhvInterpolatorQuatSquad, HBhvInterpolatorScale, HBhvInterpolatorColor, HBhvInterpolatorAxisRotate, HBhvInterpolatorTrail, and HBhvInterpolatorPosition.
◆ SetAnimation()
Associates an animation with this interpolater.
◆ SetInstancedInterpolator()
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. |
◆ SetTarget()
void HBhvInterpolator::SetTarget |
( |
| ) |
|
|
protected |
Sets the target as the one associated with this interpolator's animation instance.
◆ m_Name
The name of the interpolator object.
◆ m_pAnimation
A pointer to the animation that this interpolator belongs to.
◆ m_pArray
VArray< HKeyframe *> HBhvInterpolator::m_pArray |
|
protected |
◆ m_pInterpolatorInstance
A pointer to instanced interpolator.
◆ m_pTarget
HC_KEY HBhvInterpolator::m_pTarget |
|
protected |
The key of interpolator target.
The documentation for this class was generated from the following file: