D3DXQuaternionSquad

Interpolates between quaternions, using spherical quadrangle interpolation.

D3DXQUATERNION * D3DXQuaternionSquad(
  D3DXQUATERNION * pOut,
  CONST D3DXQUATERNION * pQ1,
  CONST D3DXQUATERNION * pA,
  CONST D3DXQUATERNION * pB,
  CONST D3DXQUATERNION * pC,
  FLOAT t
);

Parameters

pOut
[in, out] Pointer to the D3DXQUATERNION structure that is the result of the operation.
pQ1
[in] Pointer to a source D3DXQUATERNION structure.
pA
[in] Pointer to a source D3DXQUATERNION structure.
pB
[in] Pointer to a source D3DXQUATERNION structure.
pC
[in] Pointer to a source D3DXQUATERNION structure.
t
[in] Parameter that indicates how far to interpolate between the quaternions.

Return Values

Pointer to a D3DXQUATERNION structure that is the result of the spherical quadrangle interpolation.

Remarks

This function uses the following sequence of spherical linear interpolation operations:

Slerp(Slerp(pQ1, pC, t), Slerp(pA, pB, t), 2t(1 - t))

The return value for this function is the same value returned in the pOut parameter. In this way, the D3DXQuaternionSquad function can be used as a parameter for another function.

For an example of interpolating between quaternions, see SkinnedMesh Sample.

Use D3DXQuaternionNormalize for any quaternion input that is not already normalized.

Requirements

Header: Declared in D3dx9math.h.

See Also

D3DXQuaternionExp, D3DXQuaternionLn, D3DXQuaternionSquadSetup