#include <HBhvInterpolator.h>
Public Member Functions | |
void | AdjustQuaternions () |
virtual void | CalculateQuat (int keyframe, float fraction, HQuat &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 () |
HBhvInterpolatorQuatSquad (HBhvAnimation *animation=0, const char *name=0) | |
void | Insert (HQuat q, int l=0) |
void | InsertLinear (HQuat q, int l=0) |
virtual void | Interpolate (int keyframe, float fraction) |
void | Replace (HQuat q, int l) |
void | ReplaceLinear (HQuat q, int l) |
virtual void | Serialize (HUtilityXMLGenerator *xmlgen) |
Static Public Member Functions | |
static void * | XMLCallback (HUtilityXMLTag *xt, bool open, void *m_pExtraData) |
Protected Member Functions | |
virtual void | InterpolateCamera (HQuat &quat, bool simulate=false) |
virtual void | InterpolateCamera2 (HQuat &quat, bool simulate=false) |
HBhvInterpolatorQuatSquad::HBhvInterpolatorQuatSquad | ( | HBhvAnimation * | animation = 0 , |
|
const char * | name = 0 | |||
) |
Constructs an HBhvInterpolatorQuatSquad object.
animation | Animation that this interpolator belongs to | |
name | Name of Interpolator |
void HBhvInterpolatorQuatSquad::AdjustQuaternions | ( | ) |
Recalculates the quaternion array to ensure shortest rotation path.
virtual void HBhvInterpolatorQuatSquad::CalculateQuat | ( | int | keyframe, | |
float | fraction, | |||
HQuat & | res | |||
) | [virtual] |
Calculates the quaternion interpolation given a reference keyframe and a fraction.
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. | |
res | Returns the result of the calculation. |
virtual HBhvInterpolator* HBhvInterpolatorQuatSquad::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.
const char* HBhvInterpolatorQuatSquad::GetType | ( | ) | [virtual] |
void HBhvInterpolatorQuatSquad::Insert | ( | HQuat | q, | |
int | l = 0 | |||
) | [inline] |
This method creates a new quaternion rotation keyframe with the passed q value and then inserts it after the passed position l into the keyframe array.
q | The quaternion to use for new keyframe. | |
l | The array position to insert item after. |
References HKeyframeQuatSquad::m_quat.
void HBhvInterpolatorQuatSquad::InsertLinear | ( | HQuat | q, | |
int | l = 0 | |||
) | [inline] |
This method creates a new linear quaternion rotation keyframe with the passed q value and then inserts it after the passed position l into the keyframe array.
q | The quaternion to use for new keyframe. | |
l | The array position to insert item after. |
References HKeyframeRotation::m_bLinear, and HKeyframeQuatSquad::m_quat.
virtual void HBhvInterpolatorQuatSquad::Interpolate | ( | int | keyframe, | |
float | fraction | |||
) | [virtual] |
Performs an interpolation on the 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.
virtual void HBhvInterpolatorQuatSquad::InterpolateCamera | ( | HQuat & | quat, | |
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 HBhvInterpolatorQuatSquad::InterpolateCamera2 | ( | HQuat & | quat, | |
bool | simulate = false | |||
) | [protected, virtual] |
Calculates the interpolated camera orientation for camera types that are target driven.
pos | New Camera Position Reference |
void HBhvInterpolatorQuatSquad::Replace | ( | HQuat | q, | |
int | l | |||
) | [inline] |
Replaces the item at the given position in the keyframe array with a new quaternion rotation keyframe that was created with the passed q value.
q | The quaternion to use for the replace keyframe | |
l | The array position to replace. |
References HKeyframeQuatSquad::m_quat.
void HBhvInterpolatorQuatSquad::ReplaceLinear | ( | HQuat | q, | |
int | l | |||
) | [inline] |
Replaces the item at the given position in the keyframe array with a new linear quaternion rotation keyframe that was created with the passed q value.
q | The quaternion to use for the replace keyframe | |
l | The array position to replace. |
References HKeyframeRotation::m_bLinear, and HKeyframeQuatSquad::m_quat.
virtual void HBhvInterpolatorQuatSquad::Serialize | ( | HUtilityXMLGenerator * | xmlgen | ) | [virtual] |
Writes XML data to a buffer using the passed XML generator.
Reimplemented from HBhvInterpolator.
static void* HBhvInterpolatorQuatSquad::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.