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
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 |