Click or drag to resize

Quaternion Structure

Defines a four dimensional mathematical Quaternion.

A default constructed one is Zero.

You are unlikely to ever directly construct one, you'd use one of the static methods returning a Quaternion, e.g. RotationAxis(Vector3, Double)

Namespace:  Microsoft.DirectX
Assembly:  Demo3D.Common (in Demo3D.Common.dll) Version: 15.0.2.11458
Syntax
C#
[SerializableAttribute]
public struct Quaternion : IEquatable<Quaternion>

The Quaternion type exposes the following members.

Constructors
  NameDescription
Public methodQuaternion(Quaternion)
Initializes a new instance of the Quaternion struct.
Public methodQuaternion(Vector2)
Initializes a new instance of the Quaternion struct.
Public methodQuaternion(Vector3)
Initializes a new instance of the Quaternion struct.
Public methodQuaternion(Vector3, Double)
Initializes a new instance of the Quaternion struct.
Public methodQuaternion(Vector3, Single)
Initializes a new instance of the Quaternion struct.
Public methodQuaternion(Double, Double, Double, Double)
Initializes a new instance of the Quaternion struct.
Public methodQuaternion(Single, Single, Single, Single)
Initializes a new instance of the Quaternion struct.
Top
Properties
  NameDescription
Public propertyAngle
Extract the rotation angle from Quaternion
Public propertyAngleD
Extract the rotation angle from Quaternion
Public propertyAxis
Extract the rotation axis from Quaternion
Public propertyConjugated
Quaternion conjugation
Public propertyStatic memberIdentity
The "Identity" Quaternion representing no rotation.
Public propertyInverted
Quaternion inversion
Public propertyNormalized
Quaternion normalization - make its length be 1
Public propertyXD
Gets or sets the X component of the Quaternion as a Double.
Public propertyStatic memberZero
A Quaternion with all of its components set to zero.
Top
Methods
  NameDescription
Public methodAdd(Quaternion)
Quaternion addition
Public methodStatic memberAdd(Quaternion, Quaternion)
Quaternion addition
Public methodConjugate
Quaternion conjugation
Public methodStatic memberConjugate(Quaternion)
Quaternion conjugation
Public methodDot(Quaternion)
Dot product of two Quaternions
Public methodStatic memberDot(Quaternion, Quaternion)
Dot product of two Quaternions
Public methodDotD(Quaternion)
Dot product of two Quaternions
Public methodStatic memberDotD(Quaternion, Quaternion)
Dot product of two Quaternions
Public methodEquals(Object)
Quaternion exact equality - see EQ(Quaternion, Quaternion) for alternative
(Overrides ValueTypeEquals(Object).)
Public methodEquals(Quaternion)
Quaternion exact equality - see EQ(Quaternion, Quaternion) for alternative
Public methodGetHashCode
Returns the hash code for the current Quaternion.
(Overrides ValueTypeGetHashCode.)
Public methodInvert
Quaternion inversion
Public methodStatic memberInvert(Quaternion)
Quaternion inversion
Public methodLength
Length of Quaternion
Public methodStatic memberLength(Quaternion)
Length of Quaternion
Public methodLengthD
Length of Quaternion
Public methodStatic memberLengthD(Quaternion)
Length of Quaternion
Public methodLengthSq
Length squared of Quaternion
Public methodStatic memberLengthSq(Quaternion)
Length squared of Quaternion
Public methodLengthSqD
Length squared of Quaternion
Public methodStatic memberLengthSqD(Quaternion)
Length squared of Quaternion
Public methodMultiply(Quaternion)
Quaternion multiplication
Public methodStatic memberMultiply(Quaternion, Quaternion)
Quaternion multiplication
Public methodNegate
Quaternion in-place negation.
Public methodNormalize
Quaternion normalization - make its length be 1
Public methodStatic memberNormalize(Quaternion)
Quaternion normalization - make its length be 1
Public methodStatic memberRotationAxis(Vector3, Double)
Form a rotation Quaternion rotating about given axis
Public methodStatic memberRotationAxis(Vector3, Single)
Form a rotation Quaternion rotating about given axis
Public methodStatic memberRotationAxisDegrees
Form a rotation Quaternion rotating about given axis
Public methodStatic memberRotationMatrix
Create a rotation Quaternion from a rotation Matrix
Public methodStatic memberRotationX
Form a rotation Quaternion rotating about the X-Axis
Public methodStatic memberRotationXDegrees
Form a rotation Quaternion rotating about the X-Axis
Public methodStatic memberRotationY
Form a rotation Quaternion rotating about the Y-Axis
Public methodStatic memberRotationYawPitchRoll(Double, Double, Double)
Form a rotation Quaternion from Yaw (Y-Axis rotation), Pitch (X-Axis rotation) and Roll (Z-Axis rotation)
Public methodStatic memberRotationYawPitchRoll(Single, Single, Single)
Form a rotation Quaternion from Yaw (Y-Axis rotation), Pitch (X-Axis rotation) and Roll (Z-Axis rotation)
Public methodStatic memberRotationYawPitchRollDegrees
Form a rotation Quaternion from Yaw (Y-Axis rotation), Pitch (X-Axis rotation) and Roll (Z-Axis rotation)
Public methodStatic memberRotationYDegrees
Form a rotation Quaternion rotating about the Y-Axis
Public methodStatic memberRotationZ
Form a rotation Quaternion rotating about the Z-Axis
Public methodStatic memberRotationZDegrees
Form a rotation Quaternion rotating about the Z-Axis
Public methodSlerp(Quaternion, Double)
Spherical interpolation between this Quaternion and another Quaternion

This is most commonly used to find an intermediate rotation between between a start and an end rotation. When t = 0 returns this. When t = 1 returns b. When t = 0.5 returns a rotation "midway" between this and b.

Public methodStatic memberSlerp(Quaternion, Quaternion, Double)
Spherical interpolation between two Quaternions

This is most commonly used to find an intermediate rotation between between a start and an end rotation. When t = 0 returns a. When t = 1 returns b. When t = 0.5 returns a rotation "midway" between a and b.

Public methodStatic memberSlerp(Quaternion, Quaternion, Single)
Spherical interpolation between two Quaternions

This is most commonly used to find an intermediate rotation between a start and an end rotation. When t = 0 returns a. When t = 1 returns b. When t = 0.5 returns a rotation "midway" between a and b.

Public methodSubtract(Quaternion)
Quaternion subtraction
Public methodStatic memberSubtract(Quaternion, Quaternion)
Quaternion subtraction
Public methodStatic memberToAxisAngle(Quaternion, Vector3, Double)
Extract axis and angle from Quaternion
Public methodStatic memberToAxisAngle(Quaternion, Vector3, Single)
Extract axis and angle from Quaternion
Public methodToString
Returns a string that represents the current Quaternion.
(Overrides ValueTypeToString.)
Public methodTransformNormal(Vector2)
Transform Vector2 normal by this Quaternion
Public methodTransformNormal(Vector3)
Transform Vector3 normal by this Quaternion
Top
Operators
  NameDescription
Public operatorStatic memberAddition
Quaternion addition
Public operatorStatic memberEquality
Quaternion exact equality - see EQ(Quaternion, Quaternion) for alternative
Public operatorStatic memberInequality
Quaternion exact inequality - see EQ(Quaternion, Quaternion) for alternative
Public operatorStatic memberMultiply
Quaternion multiplication
Public operatorStatic memberSubtraction
Quaternion subtraction
Public operatorStatic memberUnaryNegation
Quaternion unary negation
Top
Fields
  NameDescription
Public fieldStatic memberRotationX0
Equivalent to Identity
Public fieldStatic memberRotationX180
Precomputed rotation Quaternion of 180 degrees (or -180 degrees) about the X-Axis
Public fieldStatic memberRotationX270
Precomputed rotation Quaternion of 270 degrees (or -90 degrees) about the X-Axis
Public fieldStatic memberRotationX360
Equivalent to -Identity
Public fieldStatic memberRotationX90
Precomputed rotation Quaternion of 90 degrees (or -270 degrees) about the X-Axis
Public fieldStatic memberRotationY0
Equivalent to Identity
Public fieldStatic memberRotationY180
Precomputed rotation Quaternion of 180 degrees (or -180 degrees) about the Y-Axis
Public fieldStatic memberRotationY270
Precomputed rotation Quaternion of 270 degrees (or -90 degrees) about the Y-Axis
Public fieldStatic memberRotationY360
Equivalent to -Identity
Public fieldStatic memberRotationY90
Precomputed rotation Quaternion of 90 degrees (or -270 degrees) about the Y-Axis
Public fieldStatic memberRotationZ0
Equivalent to Identity
Public fieldStatic memberRotationZ180
Precomputed rotation Quaternion of 180 degrees (or -180 degrees) about the Z-Axis
Public fieldStatic memberRotationZ270
Precomputed rotation Quaternion of 270 degrees (or -90 degrees) about the Z-Axis
Public fieldStatic memberRotationZ360
Equivalent to -Identity
Public fieldStatic memberRotationZ90
Precomputed rotation Quaternion of 90 degrees (or -270 degrees) about the Z-Axis
Top
See Also