# 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.

Conversation saved
HOOPSY BETA

### Hello! I'm HOOPSY

Your multilingual generative AI assistant for documentation. Ask me anything about HOOPS Visualize 3DF in your own language, or choose a sample question below to start a conversation:

What is HOOPS Visualize 3DF?
What are the latest release notes for HOOPS Visualize 3DF?
How do I start evaluating HOOPS Visualize 3DF?
How do I write my first sample application?
How can I get assistance?

HOOPSY may store conversations according to OpenAI's policy. Responses may not always be accurate.

HOOPSY is thinking...