Alphabetical Class Index  Class Hierarchy   File Members   Compound Members   File List  

HBhvInterpolatorQuatSquad Class Reference

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 HBhvInterpolatorCreateInstance (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:
animationAnimation that this interpolator belongs to
nameName 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:
keyframeThe reference keyframe for this interpolation.
fractionThe fraction value from the specified keyframe to the next keyframe. The value is from 0 to 1.
resReturns 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.

Parameters:
ainstThe 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:
qThe quaternion to use for new keyframe.
lThe 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:
qThe quaternion to use for new keyframe.
lThe 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:
keyframeThe reference keyframe for this interpolation.
fractionThe 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:
posNew 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:
posNew 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:
qThe quaternion to use for the replace keyframe
lThe 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:
qThe quaternion to use for the replace keyframe
lThe 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: