The HBhvInterpolatorQuatSquad class controls quaternion based rotation. This class can be used for camera interpolation as well other targets.
More...
#include <HBhvInterpolator.h>
List of all members.
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) |
Detailed Description
The HBhvInterpolatorQuatSquad class controls quaternion based rotation. This class can be used for camera interpolation as well other targets.
Constructor & Destructor Documentation
HBhvInterpolatorQuatSquad::HBhvInterpolatorQuatSquad |
( |
HBhvAnimation * |
animation = 0 , |
|
|
const char * |
name = 0 |
|
) |
| |
Constructs an HBhvInterpolatorQuatSquad object.
- Parameters:
-
animation | Animation that this interpolator belongs to |
name | Name of Interpolator |
Member Function Documentation
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.
- Parameters:
-
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. |
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:
-
ainst | The animation instance that this interpolator is associated with. |
- Returns:
- The newly created interpolator that references this interpolator.
Implements HBhvInterpolator.
const char* HBhvInterpolatorQuatSquad::GetType |
( |
| ) |
[virtual] |
- Returns:
- The type of the interpolator which is 'QuatRot'.
Implements HBhvInterpolator.
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.
- Parameters:
-
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.
- Parameters:
-
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.
- Parameters:
-
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.
- Parameters:
-
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.
- Parameters:
-
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.
- Parameters:
-
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.
- Parameters:
-
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.
The documentation for this class was generated from the following file: