#include <HBhvInterpolator.h>
Public Member Functions | |
virtual void | CalculatePos (int keyframe, float fraction, HPoint &res) |
virtual HBhvInterpolator * | CreateInstance (HBhvAnimation *ainst) |
virtual void | Evaluate (int keyframe, float fraction, bool &hasPos, HPoint &pos, bool &hasQuat, HQuat &quat, bool &hasScale, HPoint &scale) |
const char * | GetType () |
HBhvInterpolatorPosition (HBhvAnimation *animation=0, const char *name=0) | |
void | InsertCurve (HPoint pos, int l=0) |
void | InsertDiscrete (HPoint pos, int l=0) |
void | InsertLinear (HPoint pos, int l=0) |
virtual void | Interpolate (int keyframe, float fraction) |
void | ReplaceCurve (HPoint pos, int l) |
void | ReplaceLinear (HPoint pos, int l) |
virtual void | Reset () |
virtual void | Serialize (HUtilityXMLGenerator *xmlgen) |
Static Public Member Functions | |
static void * | XMLCallback (HUtilityXMLTag *xt, bool open, void *m_pExtraData) |
Protected Member Functions | |
virtual void | CalculateAllTangents () |
virtual void | InterpolateCamera (HPoint &pos, bool simulate=false) |
virtual void | InterpolateCamera2 (HPoint &pos, bool simulate=false) |
HBhvInterpolatorPosition allows for either linear or spline based movement. This class can be used for camera interpolation as well other targets.
HBhvInterpolatorPosition::HBhvInterpolatorPosition | ( | HBhvAnimation * | animation = 0 , |
|
const char * | name = 0 | |||
) |
Constructs an HBhvInterpolatorPosition object.
animation | The animation that this interpolator belongs to. | |
name | The name of the interpolator. |
virtual void HBhvInterpolatorPosition::CalculateAllTangents | ( | ) | [protected, virtual] |
This is a helper method that calculates the tangents for all the entries in the keyframe array. You can call this method before doing an interpolation.
virtual void HBhvInterpolatorPosition::CalculatePos | ( | int | keyframe, | |
float | fraction, | |||
HPoint & | res | |||
) | [virtual] |
Calculates the interpolated positional value given a keyframe and fraction to the next keyframe.
keyframe | The reference keyframe for this interpolation. | |
fraction | The fractional value from the specified keyframe to the next keyframe. This value is from 0 to 1. | |
res | The result of the interpolation. |
virtual HBhvInterpolator* HBhvInterpolatorPosition::CreateInstance | ( | HBhvAnimation * | ainst | ) | [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.
ainst | The animation instance that this interpolator is associated with. |
Implements HBhvInterpolator.
Reimplemented in HBhvInterpolatorTrail.
const char* HBhvInterpolatorPosition::GetType | ( | ) | [virtual] |
Implements HBhvInterpolator.
Reimplemented in HBhvInterpolatorTrail.
void HBhvInterpolatorPosition::InsertCurve | ( | HPoint | pos, | |
int | l = 0 | |||
) | [inline] |
This method creates a new non-linear positional keyframe with the passed pos value and then inserts it after the passed position l into the keyframe array.
pos | The position value for the keyframe to be insert. | |
l | The array position to insert item after. |
References HKeyframeChannel::m_cp.
void HBhvInterpolatorPosition::InsertDiscrete | ( | HPoint | pos, | |
int | l = 0 | |||
) | [inline] |
This method creates a new discrete positional keyframe with the passed pos value and then inserts it after the passed position l into the keyframe array.
pos | The position value for the new keyframe to be inserted. | |
l | The array position to insert item after. |
References HKeyframeChannel::m_cp.
void HBhvInterpolatorPosition::InsertLinear | ( | HPoint | pos, | |
int | l = 0 | |||
) | [inline] |
This method creates a new linear positional keyframe with the passed pos value and then inserts it after the passed position l into the keyframe array.
pos | The position value for the keyframe to be inserted. | |
l | The position in the array to insert the item after. |
References HKeyframeChannel::m_cp.
virtual void HBhvInterpolatorPosition::Interpolate | ( | int | keyframe, | |
float | fraction | |||
) | [virtual] |
Performs an interpolation on this interpolator's animation target.
keyframe | The reference keyframe for this interpolation. | |
fraction | The fraction value from the specified keyframe to the next keyframe. The value is from 0 to 1. |
Reimplemented from HBhvInterpolator.
Reimplemented in HBhvInterpolatorTrail.
virtual void HBhvInterpolatorPosition::InterpolateCamera | ( | HPoint & | pos, | |
bool | simulate = false | |||
) | [protected, virtual] |
Calculates the interpolated camera orientation and position for camera types that are position driven.
pos | New Camera Position Reference |
virtual void HBhvInterpolatorPosition::InterpolateCamera2 | ( | HPoint & | pos, | |
bool | simulate = false | |||
) | [protected, virtual] |
Calculates the interpolated camera orientation for camera types that are target driven.
pos | New Camera Position Reference |
void HBhvInterpolatorPosition::ReplaceCurve | ( | HPoint | pos, | |
int | l | |||
) | [inline] |
Replaces the item at the given position in the keyframe array with a new non-linear positional keyframe that was created with the passed pos value.
pos | The position value for the new replacement keyframe. | |
l | The array position to replace. |
References HKeyframeChannel::m_cp.
void HBhvInterpolatorPosition::ReplaceLinear | ( | HPoint | pos, | |
int | l | |||
) | [inline] |
Replaces the item at the given position in the keyframe array with a new linear positional keyframe that was created with the passed pos value.
pos | The position value for the new replacement keyframe. | |
l | The array position to replace. |
References HKeyframeChannel::m_cp.
virtual void HBhvInterpolatorPosition::Reset | ( | ) | [virtual] |
Resets the interpolator instance.
Reimplemented from HBhvInterpolator.
Reimplemented in HBhvInterpolatorTrail.
virtual void HBhvInterpolatorPosition::Serialize | ( | HUtilityXMLGenerator * | xmlgen | ) | [virtual] |
Writes XML data to a buffer using the passed XML generator.
Reimplemented from HBhvInterpolator.
Reimplemented in HBhvInterpolatorTrail.
static void* HBhvInterpolatorPosition::XMLCallback | ( | HUtilityXMLTag * | xt, | |
bool | open, | |||
void * | m_pExtraData | |||
) | [static] |
This is XML read callback which parses XML data and then populates the member variables with the associated values.
Reimplemented in HBhvInterpolatorTrail.