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 |