Show / Hide Table of Contents

Class QuaternionD

Defines a four-dimensional vector (x,y,z,w), which is used to efficiently rotate an object about the (x, y, z) vector by the angle theta, where w = cos(theta/2). Uses double precision floating point numbers for calculation and storage

Inheritance
System.Object
QuaternionD
Namespace: VRageMath
Assembly: VRage.Math.dll
Syntax
public sealed class QuaternionD : ValueType

Constructors

QuaternionD(Double, Double, Double, Double)

Initializes a new instance of QuaternionD.

Declaration
public QuaternionD(double x, double y, double z, double w)
Parameters
Type Name Description
System.Double x

The x-value of the quaternion.

System.Double y

The y-value of the quaternion.

System.Double z

The z-value of the quaternion.

System.Double w

The w-value of the quaternion.

QuaternionD(Vector3D, Double)

Initializes a new instance of QuaternionD.

Declaration
public QuaternionD(Vector3D vectorPart, double scalarPart)
Parameters
Type Name Description
Vector3D vectorPart

The vector component of the quaternion.

System.Double scalarPart

The rotation component of the quaternion.

Fields

Identity

Declaration
public static QuaternionD Identity
Field Value
Type Description
QuaternionD

W

Specifies the rotation component of the quaternion.

Declaration
public double W
Field Value
Type Description
System.Double

X

Specifies the x-value of the vector component of the quaternion.

Declaration
public double X
Field Value
Type Description
System.Double

Y

Specifies the y-value of the vector component of the quaternion.

Declaration
public double Y
Field Value
Type Description
System.Double

Z

Specifies the z-value of the vector component of the quaternion.

Declaration
public double Z
Field Value
Type Description
System.Double

Methods

Add(QuaternionD, QuaternionD)

Adds two Quaternions.

Declaration
public static QuaternionD Add(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

QuaternionD to add.

QuaternionD quaternion2

QuaternionD to add.

Returns
Type Description
QuaternionD

Add(ref QuaternionD, ref QuaternionD, out QuaternionD)

Adds two Quaternions.

Declaration
public static void Add(ref QuaternionD quaternion1, ref QuaternionD quaternion2, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion1

QuaternionD to add.

QuaternionD quaternion2

QuaternionD to add.

QuaternionD result

[OutAttribute] Result of adding the Quaternions.

Concatenate(QuaternionD, QuaternionD)

Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation.

Declaration
public static QuaternionD Concatenate(QuaternionD value1, QuaternionD value2)
Parameters
Type Name Description
QuaternionD value1

The first QuaternionD rotation in the series.

QuaternionD value2

The second QuaternionD rotation in the series.

Returns
Type Description
QuaternionD

Concatenate(ref QuaternionD, ref QuaternionD, out QuaternionD)

Concatenates two Quaternions; the result represents the value1 rotation followed by the value2 rotation.

Declaration
public static void Concatenate(ref QuaternionD value1, ref QuaternionD value2, out QuaternionD result)
Parameters
Type Name Description
QuaternionD value1

The first QuaternionD rotation in the series.

QuaternionD value2

The second QuaternionD rotation in the series.

QuaternionD result

[OutAttribute] The QuaternionD rotation representing the concatenation of value1 followed by value2.

Conjugate()

Transforms this QuaternionD into its conjugate.

Declaration
public void Conjugate()

Conjugate(QuaternionD)

Returns the conjugate of a specified QuaternionD.

Declaration
public static QuaternionD Conjugate(QuaternionD value)
Parameters
Type Name Description
QuaternionD value

The QuaternionD of which to return the conjugate.

Returns
Type Description
QuaternionD

Conjugate(ref QuaternionD, out QuaternionD)

Returns the conjugate of a specified QuaternionD.

Declaration
public static void Conjugate(ref QuaternionD value, out QuaternionD result)
Parameters
Type Name Description
QuaternionD value

The QuaternionD of which to return the conjugate.

QuaternionD result

[OutAttribute] An existing QuaternionD filled in to be the conjugate of the specified one.

CreateFromAxisAngle(Vector3D, Double)

Creates a QuaternionD from a vector and an angle to rotate about the vector.

Declaration
public static QuaternionD CreateFromAxisAngle(Vector3D axis, double angle)
Parameters
Type Name Description
Vector3D axis

The vector to rotate around.

System.Double angle

The angle to rotate around the vector.

Returns
Type Description
QuaternionD

CreateFromAxisAngle(ref Vector3D, Double, out QuaternionD)

Creates a QuaternionD from a vector and an angle to rotate about the vector.

Declaration
public static void CreateFromAxisAngle(ref Vector3D axis, double angle, out QuaternionD result)
Parameters
Type Name Description
Vector3D axis

The vector to rotate around.

System.Double angle

The angle to rotate around the vector.

QuaternionD result

[OutAttribute] The created QuaternionD.

CreateFromForwardUp(Vector3D, Vector3D)

Works for normalized vectors only

Declaration
public static QuaternionD CreateFromForwardUp(Vector3D forward, Vector3D up)
Parameters
Type Name Description
Vector3D forward
Vector3D up
Returns
Type Description
QuaternionD

CreateFromRotationMatrix(MatrixD)

Creates a QuaternionD from a rotation MatrixD.

Declaration
public static QuaternionD CreateFromRotationMatrix(MatrixD matrix)
Parameters
Type Name Description
MatrixD matrix

The rotation MatrixD to create the QuaternionD from.

Returns
Type Description
QuaternionD

CreateFromRotationMatrix(ref MatrixD, out QuaternionD)

Creates a QuaternionD from a rotation MatrixD.

Declaration
public static void CreateFromRotationMatrix(ref MatrixD matrix, out QuaternionD result)
Parameters
Type Name Description
MatrixD matrix

The rotation MatrixD to create the QuaternionD from.

QuaternionD result

[OutAttribute] The created QuaternionD.

CreateFromTwoVectors(Vector3D, Vector3D)

Declaration
public static QuaternionD CreateFromTwoVectors(Vector3D firstVector, Vector3D secondVector)
Parameters
Type Name Description
Vector3D firstVector
Vector3D secondVector
Returns
Type Description
QuaternionD

CreateFromTwoVectors(ref Vector3D, ref Vector3D, out QuaternionD)

Declaration
public static void CreateFromTwoVectors(ref Vector3D firstVector, ref Vector3D secondVector, out QuaternionD result)
Parameters
Type Name Description
Vector3D firstVector
Vector3D secondVector
QuaternionD result

CreateFromYawPitchRoll(Double, Double, Double)

Creates a new QuaternionD from specified yaw, pitch, and roll angles.

Declaration
public static QuaternionD CreateFromYawPitchRoll(double yaw, double pitch, double roll)
Parameters
Type Name Description
System.Double yaw

The yaw angle, in radians, around the y-axis.

System.Double pitch

The pitch angle, in radians, around the x-axis.

System.Double roll

The roll angle, in radians, around the z-axis.

Returns
Type Description
QuaternionD

CreateFromYawPitchRoll(Double, Double, Double, out QuaternionD)

Creates a new QuaternionD from specified yaw, pitch, and roll angles.

Declaration
public static void CreateFromYawPitchRoll(double yaw, double pitch, double roll, out QuaternionD result)
Parameters
Type Name Description
System.Double yaw

The yaw angle, in radians, around the y-axis.

System.Double pitch

The pitch angle, in radians, around the x-axis.

System.Double roll

The roll angle, in radians, around the z-axis.

QuaternionD result

[OutAttribute] An existing QuaternionD filled in to express the specified yaw, pitch, and roll angles.

Divide(QuaternionD, QuaternionD)

Divides a QuaternionD by another QuaternionD.

Declaration
public static QuaternionD Divide(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source QuaternionD.

QuaternionD quaternion2

The divisor.

Returns
Type Description
QuaternionD

Divide(ref QuaternionD, ref QuaternionD, out QuaternionD)

Divides a QuaternionD by another QuaternionD.

Declaration
public static void Divide(ref QuaternionD quaternion1, ref QuaternionD quaternion2, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion1

Source QuaternionD.

QuaternionD quaternion2

The divisor.

QuaternionD result

[OutAttribute] Result of the division.

Dot(QuaternionD, QuaternionD)

Calculates the dot product of two Quaternions.

Declaration
public static double Dot(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source QuaternionD.

QuaternionD quaternion2

Source QuaternionD.

Returns
Type Description
System.Double

Dot(ref QuaternionD, ref QuaternionD, out Double)

Calculates the dot product of two Quaternions.

Declaration
public static void Dot(ref QuaternionD quaternion1, ref QuaternionD quaternion2, out double result)
Parameters
Type Name Description
QuaternionD quaternion1

Source QuaternionD.

QuaternionD quaternion2

Source QuaternionD.

System.Double result

[OutAttribute] Dot product of the Quaternions.

Equals(Object)

Returns a value that indicates whether the current instance is equal to a specified object.

Declaration
public override bool Equals(object obj)
Parameters
Type Name Description
System.Object obj

Object to make the comparison with.

Returns
Type Description
System.Boolean

Equals(QuaternionD)

Determines whether the specified Object is equal to the QuaternionD.

Declaration
public bool Equals(QuaternionD other)
Parameters
Type Name Description
QuaternionD other

The QuaternionD to compare with the current QuaternionD.

Returns
Type Description
System.Boolean

FromVector4(Vector4D)

Declaration
public static QuaternionD FromVector4(Vector4D v)
Parameters
Type Name Description
Vector4D v
Returns
Type Description
QuaternionD

GetAxisAngle(out Vector3D, out Double)

Declaration
public void GetAxisAngle(out Vector3D axis, out double angle)
Parameters
Type Name Description
Vector3D axis
System.Double angle

GetHashCode()

Get the hash code of this object.

Declaration
public override int GetHashCode()
Returns
Type Description
System.Int32

Inverse(QuaternionD)

Returns the inverse of a QuaternionD.

Declaration
public static QuaternionD Inverse(QuaternionD quaternion)
Parameters
Type Name Description
QuaternionD quaternion

Source QuaternionD.

Returns
Type Description
QuaternionD

Inverse(ref QuaternionD, out QuaternionD)

Returns the inverse of a QuaternionD.

Declaration
public static void Inverse(ref QuaternionD quaternion, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion

Source QuaternionD.

QuaternionD result

[OutAttribute] The inverse of the QuaternionD.

IsZero(QuaternionD)

Declaration
public static bool IsZero(QuaternionD value)
Parameters
Type Name Description
QuaternionD value
Returns
Type Description
System.Boolean

IsZero(QuaternionD, Double)

Declaration
public static bool IsZero(QuaternionD value, double epsilon)
Parameters
Type Name Description
QuaternionD value
System.Double epsilon
Returns
Type Description
System.Boolean

Length()

Calculates the length of a QuaternionD.

Declaration
public double Length()
Returns
Type Description
System.Double

LengthSquared()

Calculates the length squared of a QuaternionD.

Declaration
public double LengthSquared()
Returns
Type Description
System.Double

Lerp(QuaternionD, QuaternionD, Double)

Linearly interpolates between two quaternions.

Declaration
public static QuaternionD Lerp(QuaternionD quaternion1, QuaternionD quaternion2, double amount)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

System.Double amount

Value indicating how far to interpolate between the quaternions.

Returns
Type Description
QuaternionD

Lerp(ref QuaternionD, ref QuaternionD, Double, out QuaternionD)

Linearly interpolates between two quaternions.

Declaration
public static void Lerp(ref QuaternionD quaternion1, ref QuaternionD quaternion2, double amount, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

System.Double amount

Value indicating how far to interpolate between the quaternions.

QuaternionD result

[OutAttribute] The resulting quaternion.

Multiply(QuaternionD, Double)

Multiplies a quaternion by a scalar value.

Declaration
public static QuaternionD Multiply(QuaternionD quaternion1, double scaleFactor)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

System.Double scaleFactor

Scalar value.

Returns
Type Description
QuaternionD

Multiply(QuaternionD, QuaternionD)

Multiplies two quaternions.

Declaration
public static QuaternionD Multiply(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

The quaternion on the left of the multiplication.

QuaternionD quaternion2

The quaternion on the right of the multiplication.

Returns
Type Description
QuaternionD

Multiply(ref QuaternionD, Double, out QuaternionD)

Multiplies a quaternion by a scalar value.

Declaration
public static void Multiply(ref QuaternionD quaternion1, double scaleFactor, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

System.Double scaleFactor

Scalar value.

QuaternionD result

[OutAttribute] The result of the multiplication.

Multiply(ref QuaternionD, ref QuaternionD, out QuaternionD)

Multiplies two quaternions.

Declaration
public static void Multiply(ref QuaternionD quaternion1, ref QuaternionD quaternion2, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion1

The quaternion on the left of the multiplication.

QuaternionD quaternion2

The quaternion on the right of the multiplication.

QuaternionD result

[OutAttribute] The result of the multiplication.

Negate(QuaternionD)

Flips the sign of each component of the quaternion.

Declaration
public static QuaternionD Negate(QuaternionD quaternion)
Parameters
Type Name Description
QuaternionD quaternion

Source quaternion.

Returns
Type Description
QuaternionD

Negate(ref QuaternionD, out QuaternionD)

Flips the sign of each component of the quaternion.

Declaration
public static void Negate(ref QuaternionD quaternion, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion

Source quaternion.

QuaternionD result

[OutAttribute] Negated quaternion.

Normalize()

Divides each component of the quaternion by the length of the quaternion.

Declaration
public void Normalize()

Normalize(QuaternionD)

Divides each component of the quaternion by the length of the quaternion.

Declaration
public static QuaternionD Normalize(QuaternionD quaternion)
Parameters
Type Name Description
QuaternionD quaternion

Source quaternion.

Returns
Type Description
QuaternionD

Normalize(ref QuaternionD, out QuaternionD)

Divides each component of the quaternion by the length of the quaternion.

Declaration
public static void Normalize(ref QuaternionD quaternion, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion

Source quaternion.

QuaternionD result

[OutAttribute] Normalized quaternion.

Slerp(QuaternionD, QuaternionD, Double)

Interpolates between two quaternions, using spherical linear interpolation.

Declaration
public static QuaternionD Slerp(QuaternionD quaternion1, QuaternionD quaternion2, double amount)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

System.Double amount

Value that indicates how far to interpolate between the quaternions.

Returns
Type Description
QuaternionD

Slerp(ref QuaternionD, ref QuaternionD, Double, out QuaternionD)

Interpolates between two quaternions, using spherical linear interpolation.

Declaration
public static void Slerp(ref QuaternionD quaternion1, ref QuaternionD quaternion2, double amount, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

System.Double amount

Value that indicates how far to interpolate between the quaternions.

QuaternionD result

[OutAttribute] Result of the interpolation.

Subtract(QuaternionD, QuaternionD)

Subtracts a quaternion from another quaternion.

Declaration
public static QuaternionD Subtract(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

Returns
Type Description
QuaternionD

Subtract(ref QuaternionD, ref QuaternionD, out QuaternionD)

Subtracts a quaternion from another quaternion.

Declaration
public static void Subtract(ref QuaternionD quaternion1, ref QuaternionD quaternion2, out QuaternionD result)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

QuaternionD result

[OutAttribute] Result of the subtraction.

ToString()

Retireves a string representation of the current object.

Declaration
public override string ToString()
Returns
Type Description
System.String

ToVector4()

Declaration
public Vector4D ToVector4()
Returns
Type Description
Vector4D

Operators

Addition(QuaternionD, QuaternionD)

Adds two Quaternions.

Declaration
public static QuaternionD operator +(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

QuaternionD to add.

QuaternionD quaternion2

QuaternionD to add.

Returns
Type Description
QuaternionD

Division(QuaternionD, QuaternionD)

Divides a QuaternionD by another QuaternionD.

Declaration
public static QuaternionD operator /(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source QuaternionD.

QuaternionD quaternion2

The divisor.

Returns
Type Description
QuaternionD

Equality(QuaternionD, QuaternionD)

Compares two Quaternions for equality.

Declaration
public static bool operator ==(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source QuaternionD.

QuaternionD quaternion2

Source QuaternionD.

Returns
Type Description
System.Boolean

Inequality(QuaternionD, QuaternionD)

Compare two Quaternions for inequality.

Declaration
public static bool operator !=(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source QuaternionD.

QuaternionD quaternion2

Source QuaternionD.

Returns
Type Description
System.Boolean

Multiply(QuaternionD, Double)

Multiplies a quaternion by a scalar value.

Declaration
public static QuaternionD operator *(QuaternionD quaternion1, double scaleFactor)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

System.Double scaleFactor

Scalar value.

Returns
Type Description
QuaternionD

Multiply(QuaternionD, QuaternionD)

Multiplies two quaternions.

Declaration
public static QuaternionD operator *(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

Returns
Type Description
QuaternionD

Multiply(QuaternionD, Vector3D)

Multiplies a vector by a quaternion. Resulting a vector rotated by quaternion.

Declaration
public static Vector3D operator *(QuaternionD quaternion, Vector3D vector)
Parameters
Type Name Description
QuaternionD quaternion

Source quaternion.

Vector3D vector

Vector to be rotated.

Returns
Type Description
Vector3D

Subtraction(QuaternionD, QuaternionD)

Subtracts a quaternion from another quaternion.

Declaration
public static QuaternionD operator -(QuaternionD quaternion1, QuaternionD quaternion2)
Parameters
Type Name Description
QuaternionD quaternion1

Source quaternion.

QuaternionD quaternion2

Source quaternion.

Returns
Type Description
QuaternionD

UnaryNegation(QuaternionD)

Flips the sign of each component of the quaternion.

Declaration
public static QuaternionD operator -(QuaternionD quaternion)
Parameters
Type Name Description
QuaternionD quaternion

Source quaternion.

Returns
Type Description
QuaternionD
☀
☾
In This Article
Back to top
Generated by DocFX
☀
☾