Class XMQuaternion
The quaternion functions provided by DirectXMath.
Inherited Members
Namespace: JeremyAnsel.DirectX.DXMath
Assembly: JeremyAnsel.DirectX.DXMath.dll
Syntax
public static class XMQuaternion
Properties
| Edit this page View SourceIdentity
Gets the identity quaternion.
Declaration
public static XMVector Identity { get; }
Property Value
| Type | Description |
|---|---|
| XMVector |
Methods
| Edit this page View SourceBaryCentric(XMVector, XMVector, XMVector, float, float)
Returns a point in barycentric coordinates, using the specified quaternions.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "f", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "g", Justification = "Reviewed")]
public static XMVector BaryCentric(XMVector q0, XMVector q1, XMVector q2, float f, float g)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q0 | The first quaternion in the triangle. |
| XMVector | q1 | The second quaternion in the triangle. |
| XMVector | q2 | The third quaternion in the triangle. |
| float | f | The first weighting factor. |
| float | g | The second weighting factor. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns a quaternion in barycentric coordinates. |
BaryCentricV(XMVector, XMVector, XMVector, XMVector, XMVector)
Returns a point in barycentric coordinates, using the specified quaternions.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "f", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "g", Justification = "Reviewed")]
public static XMVector BaryCentricV(XMVector q0, XMVector q1, XMVector q2, XMVector f, XMVector g)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q0 | The first quaternion in the triangle. |
| XMVector | q1 | The second quaternion in the triangle. |
| XMVector | q2 | The third quaternion in the triangle. |
| XMVector | f | The first weighting factor. All components of this vector must be the same. |
| XMVector | g | The second weighting factor. All components of this vector must be the same. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns a quaternion in barycentric coordinates. |
Conjugate(XMVector)
Computes the conjugate of a quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector Conjugate(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to conjugate. |
Returns
| Type | Description |
|---|---|
| XMVector | The conjugate of the quaternion. |
Dot(XMVector, XMVector)
Computes the dot product of two quaternions.
Declaration
public static XMVector Dot(XMVector q1, XMVector q2)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q1 | The first quaternion. |
| XMVector | q2 | The second quaternion. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns a vector. The dot product between Q1 and Q2 is replicated into each component. |
Equal(XMVector, XMVector)
Tests whether two quaternions are equal.
Declaration
public static bool Equal(XMVector q1, XMVector q2)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q1 | The first quaternion to test. |
| XMVector | q2 | The second quaternion to test. |
Returns
| Type | Description |
|---|---|
| bool | Returns true if the quaternions are equal and false otherwise. |
Exp(XMVector)
Computes the exponential of a given pure quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector Exp(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | Pure quaternion for which to compute the exponential. The w-component of the input quaternion is ignored in the calculation. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the exponential of Q. |
Inverse(XMVector)
Computes the inverse of a quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector Inverse(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to invert. |
Returns
| Type | Description |
|---|---|
| XMVector | The inverse of Q. |
IsIdentity(XMVector)
Tests whether a specific quaternion is the identity quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static bool IsIdentity(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to test. |
Returns
| Type | Description |
|---|---|
| bool | Returns true if Q is the identity quaternion, or false otherwise. |
IsInfinite(XMVector)
Test whether any component of a quaternion is either positive or negative infinity.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static bool IsInfinite(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to test. |
Returns
| Type | Description |
|---|---|
| bool | Returns true if any component of Q is positive or negative infinity,and false otherwise. |
IsNaN(XMVector)
Test whether any component of a quaternion is a NaN.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static bool IsNaN(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to test. |
Returns
| Type | Description |
|---|---|
| bool | Returns true if any component of Q is a NaN, and false otherwise. |
Length(XMVector)
Computes the magnitude of a quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector Length(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to measure. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns a vector. The magnitude of Q is replicated into each component. |
LengthSquare(XMVector)
Computes the square of the magnitude of a quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector LengthSquare(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to measure. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns a vector. The square of the magnitude is replicated into each component. |
Ln(XMVector)
Computes the natural logarithm of a given unit quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1709:IdentifiersShouldBeCasedCorrectly", MessageId = "Ln", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector Ln(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | Unit quaternion for which to calculate the natural logarithm. If Q is not a unit quaternion, the returned value is undefined. |
Returns
| Type | Description |
|---|---|
| XMVector | The natural logarithm of Q. |
Multiply(XMVector, XMVector)
Computes the product of two quaternions.
Declaration
public static XMVector Multiply(XMVector q1, XMVector q2)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q1 | The first quaternion. |
| XMVector | q2 | The second quaternion. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the product of the two quaternions. |
Normalize(XMVector)
Normalizes a quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector Normalize(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion. |
Returns
| Type | Description |
|---|---|
| XMVector | The normalized form of the quaternion. |
NormalizeEst(XMVector)
Estimates the normalized version of a quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector NormalizeEst(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion. |
Returns
| Type | Description |
|---|---|
| XMVector | The estimate of the normalized version of a quaternion. |
NotEqual(XMVector, XMVector)
Tests whether two quaternions are not equal.
Declaration
public static bool NotEqual(XMVector q1, XMVector q2)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q1 | The first quaternion to test. |
| XMVector | q2 | The second quaternion to test. |
Returns
| Type | Description |
|---|---|
| bool | Returns true if the quaternions are unequal and false otherwise. |
ReciprocalLength(XMVector)
Computes the reciprocal of the magnitude of a quaternion.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static XMVector ReciprocalLength(XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q | The quaternion to measure. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the reciprocal of the magnitude of Q. |
RotationAxis(XMVector, float)
Computes a rotation quaternion about an axis.
Declaration
public static XMVector RotationAxis(XMVector axis, float angle)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | axis | 3D vector describing the axis of rotation. |
| float | angle | Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the rotation quaternion. |
RotationMatrix(XMMatrix)
Computes a rotation quaternion from a rotation matrix.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "m", Justification = "Reviewed")]
public static XMVector RotationMatrix(XMMatrix m)
Parameters
| Type | Name | Description |
|---|---|---|
| XMMatrix | m | The rotation matrix. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the rotation quaternion. |
RotationNormal(XMVector, float)
Computes the rotation quaternion about a normal vector.
Declaration
public static XMVector RotationNormal(XMVector normalAxis, float angle)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | normalAxis | Normal vector describing the axis of rotation. |
| float | angle | Angle of rotation in radians. Angles are measured clockwise when looking along the rotation axis toward the origin. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the rotation quaternion. |
RotationRollPitchYaw(float, float, float)
Computes a rotation quaternion based on the pitch, yaw, and roll (Euler angles).
Declaration
public static XMVector RotationRollPitchYaw(float pitch, float yaw, float roll)
Parameters
| Type | Name | Description |
|---|---|---|
| float | pitch | Angle of rotation around the x-axis, in radians. |
| float | yaw | Angle of rotation around the y-axis, in radians. |
| float | roll | Angle of rotation around the z-axis, in radians. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the rotation quaternion. |
RotationRollPitchYawFromVector(XMVector)
Computes a rotation quaternion based on a vector containing the Euler angles (pitch, yaw, and roll).
Declaration
public static XMVector RotationRollPitchYawFromVector(XMVector angles)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | angles | A 3D vector containing the Euler angles in the order pitch, yaw, roll. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the rotation quaternion. |
Slerp(XMVector, XMVector, float)
Interpolates between two unit quaternions, using spherical linear interpolation.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "t", Justification = "Reviewed")]
public static XMVector Slerp(XMVector q0, XMVector q1, float t)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q0 | An unit quaternion to interpolate from. |
| XMVector | q1 | An unit quaternion to interpolate to. |
| float | t | The interpolation control factor. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the interpolated quaternion. If Q0 and Q1 are not unit quaternions, the resulting interpolation is undefined. |
SlerpV(XMVector, XMVector, XMVector)
Interpolates between two unit quaternions, using spherical linear interpolation.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "t", Justification = "Reviewed")]
public static XMVector SlerpV(XMVector q0, XMVector q1, XMVector t)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q0 | An unit quaternion to interpolate from. |
| XMVector | q1 | An unit quaternion to interpolate to. |
| XMVector | t | The interpolation control factor. All components of this vector must be the same. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the interpolated quaternion. If Q0 and Q1 are not unit quaternions, the resulting interpolation is undefined. |
Squad(XMVector, XMVector, XMVector, XMVector, float)
Interpolates between four unit quaternions, using spherical quadrangle interpolation.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "t", Justification = "Reviewed")]
public static XMVector Squad(XMVector q0, XMVector q1, XMVector q2, XMVector q3, float t)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q0 | The first unit quaternion. |
| XMVector | q1 | The second unit quaternion. |
| XMVector | q2 | The third unit quaternion. |
| XMVector | q3 | The fourth unit quaternion. |
| float | t | The interpolation control factor. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the interpolated quaternion. If Q0, Q1, Q2, and Q3 are not all unit quaternions, the returned quaternion is undefined. |
SquadSetup(out XMVector, out XMVector, out XMVector, XMVector, XMVector, XMVector, XMVector)
Provides addresses of setup control points for spherical quadrangle interpolation.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "a", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "b", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "c", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "0#", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "1#", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "2#", Justification = "Reviewed")]
public static void SquadSetup(out XMVector a, out XMVector b, out XMVector c, XMVector q0, XMVector q1, XMVector q2, XMVector q3)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | a | The first setup quaternion. |
| XMVector | b | The second setup quaternion. |
| XMVector | c | The third setup quaternion. |
| XMVector | q0 | The first quaternion. |
| XMVector | q1 | The second quaternion. |
| XMVector | q2 | The third quaternion. |
| XMVector | q3 | The fourth quaternion. |
SquadV(XMVector, XMVector, XMVector, XMVector, XMVector)
Interpolates between four unit quaternions, using spherical quadrangle interpolation.
Declaration
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "t", Justification = "Reviewed")]
public static XMVector SquadV(XMVector q0, XMVector q1, XMVector q2, XMVector q3, XMVector t)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | q0 | The first unit quaternion. |
| XMVector | q1 | The second unit quaternion. |
| XMVector | q2 | The third unit quaternion. |
| XMVector | q3 | The fourth unit quaternion. |
| XMVector | t | The interpolation control factor. All components of this vector must be the same. |
Returns
| Type | Description |
|---|---|
| XMVector | Returns the interpolated quaternion. If Q0, Q1, Q2, and Q3 are not unit quaternions, the resulting interpolation is undefined. |
ToAxisAngle(out XMVector, out float, XMVector)
Computes an axis and angle of rotation about that axis for a given quaternion.
Declaration
[SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "0#", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Design", "CA1021:AvoidOutParameters", MessageId = "1#", Justification = "Reviewed")]
[SuppressMessage("Microsoft.Naming", "CA1704:IdentifiersShouldBeSpelledCorrectly", MessageId = "q", Justification = "Reviewed")]
public static void ToAxisAngle(out XMVector axis, out float angle, XMVector q)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | axis | A 3D vector describing the axis of rotation for the quaternion Q. |
| float | angle | The radian angle of rotation for the quaternion Q. |
| XMVector | q | The quaternion to measure. |
ToEuler(XMVector)
Computes rotation about y-axis (y), then x-axis (x), then z-axis (z).
Declaration
public static XMVector ToEuler(XMVector quaternion)
Parameters
| Type | Name | Description |
|---|---|---|
| XMVector | quaternion | A quaternion. |
Returns
| Type | Description |
|---|---|
| XMVector | The Euler angles. |