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)

Inheritance Hierarchy
SystemObject
  SystemValueType
    Microsoft.DirectXQuaternion

Namespace: Microsoft.DirectX
Assembly: Demo3D.Common (in Demo3D.Common.dll) Version: 19.00.00
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(Double, Double, Double, Double) 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 propertyConjugatedQuaternion conjugation
Public propertyStatic memberIdentity The "Identity" Quaternion representing no rotation.
Public propertyInvertedQuaternion inversion
Public propertyNormalizedQuaternion normalization - make its length be 1
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 methodConjugateQuaternion 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 methodInvertQuaternion 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 methodNegateQuaternion in-place negation.
Public methodNormalizeQuaternion normalization - make its length be 1
Public methodStatic memberNormalize(Quaternion)Quaternion normalization - make its length be 1
Public methodStatic memberRotationAxis 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 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 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, Quaternion)Quaternion addition
Public operatorStatic memberEquality(Quaternion, Quaternion)Quaternion exact equality - see EQ(Quaternion, Quaternion) for alternative
Public operatorStatic memberInequality(Quaternion, Quaternion)Quaternion exact inequality - see EQ(Quaternion, Quaternion) for alternative
Public operatorStatic memberMultiply(Quaternion, Quaternion)Quaternion multiplication
Public operatorStatic memberSubtraction(Quaternion, Quaternion)Quaternion subtraction
Public operatorStatic memberUnaryNegation(Quaternion)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