Performs a Hermite spline interpolation, using the specified vectors.
XMVECTOR XMVectorHermite(
XMVECTOR Position0,
XMVECTOR Tangent0,
XMVECTOR Position1,
GXMVECTOR Tangent1,
float t
)
Position0
Type: XMVECTOR
First position to interpolate from.
Tangent0
Type: XMVECTOR
Tangent vector for the first position.
Position1
Type: XMVECTOR
Second position to interpolate from.
Tangent1
Type: GXMVECTOR
Tangent vector for the second position.
t
Type: float
Interpolation control factor.
Type: XMVECTOR
Returns a vector containing the interpolation.
The following pseudocode demonstrates the operation of the function:
XMVECTOR Result;
float t2 = t * t;
float t3 = t2* t;
float P0 = 2.0f * t3 - 3.0f * t2 + 1.0f;
float T0 = t3 - 2.0f * t2 + t;
float P1 = -2.0f * t3 + 3.0f * t2;
float T1 = t3 - t2;
Result.x = P0 * Position0.x + T0 * Tangent0.x + P1 * Position1.x + T1 * Tangent1.x;
Result.y = P0 * Position0.y + T0 * Tangent0.y + P1 * Position1.y + T1 * Tangent1.y;
Result.z = P0 * Position0.z + T0 * Tangent0.z + P1 * Position1.z + T1 * Tangent1.z;
Result.w = P0 * Position0.w + T0 * Tangent0.w + P1 * Position1.w + T1 * Tangent1.w;
return Result;
Header: Declared in directxmath.h.