HBhvInterpolatorQuatSquad

Functions

HBhvInterpolatorQuatSquad

char const *

GetType

HBhvInterpolator *

CreateInstance

void

Insert

void

InsertLinear

void

Replace

void

ReplaceLinear

void

AdjustQuaternions

void

Serialize

void

Interpolate

void

Evaluate

void

CalculateQuat

void *

XMLCallback

Detailed Description

class HBhvInterpolatorQuatSquad : public HBhvInterpolator

The HBhvInterpolatorQuatSquad class controls quaternion based rotation. This class can be used for camera interpolation as well other targets.

Public Functions

HBhvInterpolatorQuatSquad(HBhvAnimation *animation = 0, char const *name = 0)

Constructs an HBhvInterpolatorQuatSquad object.

Parameters
  • animation – Animation that this interpolator belongs to

  • name – Name of Interpolator

virtual char const *GetType()
Returns

The type of the interpolator which is ‘QuatRot’.

virtual HBhvInterpolator *CreateInstance(HBhvAnimation *ainst)

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.

inline void Insert(HQuat q, int l = 0)

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.

inline void InsertLinear(HQuat q, int l = 0)

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.

inline void Replace(HQuat q, int l)

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.

inline void ReplaceLinear(HQuat q, int l)

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.

void AdjustQuaternions()

Recalculates the quaternion array to ensure shortest rotation path.

virtual void Serialize(HUtilityXMLGenerator *xmlgen)

Writes XML data to a buffer using the passed XML generator.

virtual void Interpolate(int keyframe, float fraction)

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.

virtual void Evaluate(int keyframe, float fraction, bool &hasPos, HPoint &pos, bool &hasQuat, HQuat &quat, bool &hasScale, HPoint &scale)
virtual void CalculateQuat(int keyframe, float fraction, HQuat &res)

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.

Public Static Functions

static void *XMLCallback(HUtilityXMLTag *xt, bool open, void *m_pExtraData)

This is XML read callback which parses XML data and then populates the member variables with the associated values.