Struct Quaternion
Quaternion, used to describe a rotation.
Assembly: ABB.Robotics.Math.dll
Syntax
Constructors
Quaternion(Matrix4)
Creates a quaternion from the rotation part of a 4x4 matrix.
Declaration
public Quaternion(Matrix4 m)
Parameters
Type |
Name |
Description |
Matrix4 |
m |
Matrix (assumed to be pure rotation/translation)
|
Quaternion(ref Matrix4)
Declaration
olete("Use Quaternion(Matrix4) instead")]
[CLSCompliant(false)]
public Quaternion(ref Matrix4 m)
Parameters
Type |
Name |
Description |
Matrix4 |
m |
Matrix (assumed to be pure rotation/translation)
|
Quaternion(Vector3)
Creates a quaternion from euler angles.
Declaration
public Quaternion(Vector3 eulerZYX)
Parameters
Type |
Name |
Description |
Vector3 |
eulerZYX |
Orientation in Euler angles (zyx order).
|
Quaternion(Vector3, Double)
Creates a quaternion from rotation axis and angle.
Declaration
public Quaternion(Vector3 axis, double angle)
Parameters
Type |
Name |
Description |
Vector3 |
axis |
Normalized rotation axis
|
Double |
angle |
Rotation angle (radians)
|
Exceptions
Quaternion(Double, Vector3)
Creates a quaternion from scalar and vector.
Declaration
public Quaternion(double w, Vector3 vec)
Parameters
Type |
Name |
Description |
Double |
w |
Scalar part
|
Vector3 |
vec |
Vector part
|
Quaternion(Double, Double, Double)
Creates a quaternion from Euler angles (zyx order).
Declaration
public Quaternion(double xr, double yr, double zr)
Parameters
Type |
Name |
Description |
Double |
xr |
Rotation around the x axis (radians)
|
Double |
yr |
Rotation around the y axis (radians)
|
Double |
zr |
Rotation around the z axis (radians)
|
Quaternion(Double, Double, Double, Double)
Creates a quaternion from four doubles.
Declaration
public Quaternion(double q1, double q2, double q3, double q4)
Parameters
Quaternion(Double[])
Creates a quaternion from an array of doubles.
Declaration
public Quaternion(double[] vec)
Parameters
Type |
Name |
Description |
Double[] |
vec |
|
Fields
Identity
Identity quaternion [1,0,0,0]
Declaration
public static readonly Quaternion Identity
Field Value
q1
Declaration
Field Value
q2
Declaration
Field Value
q3
Declaration
Field Value
q4
Declaration
Field Value
Properties
AxisAngle
Gets/sets the rotation as normalized rotation axis and angle
(represesented by a Vector4 [axis, angle]).
Declaration
public Vector4 AxisAngle { get; set; }
Property Value
Exceptions
EulerXYZ
Gets/sets the rotation as Euler angles (xyz order).
Equivalent to RPY (?).
Declaration
public Vector3 EulerXYZ { get; set; }
Property Value
EulerZYX
Gets/sets the rotation as Euler angles (zyx order).
Note: the vector contains the angles as [rx,ry,rz]
Declaration
public Vector3 EulerZYX { get; set; }
Property Value
Item[Int32]
Declaration
public double this[int index] { get; set; }
Parameters
Type |
Name |
Description |
Int32 |
index |
|
Property Value
Matrix
Gets/sets the rotation as a 3x3 matrix
Declaration
public Matrix3 Matrix { get; set; }
Property Value
Scalar
Gets/sets the scalar part.
Declaration
public double Scalar { get; set; }
Property Value
Vector
Gets/sets the vector part.
Declaration
public Vector3 Vector { get; set; }
Property Value
Methods
Add(Quaternion)
Element-wise addition method.
Declaration
public Quaternion Add(Quaternion rhs)
Parameters
Returns
AlmostEquals(Quaternion)
Comparison method for quaternions with tolerance (EPS)
Declaration
public bool AlmostEquals(Quaternion b)
Parameters
Returns
Conjugate()
Returns the conjugate [q1,-q2,-q3,-q4] of the quaternion.
Declaration
public Quaternion Conjugate()
Returns
Divide(Double)
Quaternion-scalar division method.
Declaration
public Quaternion Divide(double rhs)
Parameters
Type |
Name |
Description |
Double |
rhs |
|
Returns
Dot(Quaternion)
Declaration
public double Dot(Quaternion rhs)
Parameters
Returns
Equals(Object)
Declaration
public override bool Equals(object obj)
Parameters
Type |
Name |
Description |
Object |
obj |
|
Returns
Overrides
GetHashCode()
Declaration
public override int GetHashCode()
Returns
Overrides
Interpolate(Quaternion, Double)
Spherical linear interpolation.
Declaration
public Quaternion Interpolate(Quaternion quat, double slerp)
Parameters
Type |
Name |
Description |
Quaternion |
quat |
Second quaternion
|
Double |
slerp |
Interpolation parameter
|
Returns
Type |
Description |
Quaternion |
Interpolated quaternion
|
Inverse()
Returns the inverse (conjugate*1/norm) of the quaternion.
Declaration
public Quaternion Inverse()
Returns
Invert()
Declaration
Magnitude()
Returns the magnitude of the quaternion.
Declaration
public double Magnitude()
Returns
Multiply(Quaternion)
Quaternion-Quaternion multiplication method.
Declaration
public Quaternion Multiply(Quaternion rhs)
Parameters
Returns
Multiply(Double)
Quaternion-scalar multiplication method.
Declaration
public Quaternion Multiply(double rhs)
Parameters
Type |
Name |
Description |
Double |
rhs |
|
Returns
Norm()
Returns the norm of the quaternion.
Declaration
Returns
Normalize()
Normalizes the quaternion.
Declaration
Subtract(Quaternion)
Element-wise subtraction method.
Declaration
public Quaternion Subtract(Quaternion rhs)
Parameters
Returns
ToString()
Returns a string in the format
[q1 q2 q3 q4]
Declaration
public override string ToString()
Returns
Overrides
Returns a string in the format
[q1 q2 q3 q4]
Declaration
public string ToString(IFormatProvider formatProvider)
Parameters
Returns
ToString(Int32, String)
Returns a string in the format q1 q2 q3 q4 with a specified number of decimals
and separator between the elements.
Declaration
public string ToString(int numDecimals, string separator)
Parameters
Type |
Name |
Description |
Int32 |
numDecimals |
|
String |
separator |
|
Returns
Returns a string in the format q1 q2 q3 q4 with a specified number of decimals
and separator between the elements.
Declaration
public string ToString(int numDecimals, string separator, IFormatProvider formatProvider)
Parameters
Returns
Operators
Addition(Quaternion, Quaternion)
Element-wise addition operator.
Declaration
public static Quaternion operator +(Quaternion lhs, Quaternion rhs)
Parameters
Returns
Division(Quaternion, Double)
Quaternion-scalar division operator.
Declaration
public static Quaternion operator /(Quaternion lhs, double rhs)
Parameters
Returns
Equality(Quaternion, Quaternion)
Declaration
public static bool operator ==(Quaternion lhs, Quaternion rhs)
Parameters
Returns
Inequality(Quaternion, Quaternion)
Declaration
public static bool operator !=(Quaternion lhs, Quaternion rhs)
Parameters
Returns
Multiply(Quaternion, Quaternion)
Quaternion-Quaternion multiplication operator.
Declaration
public static Quaternion operator *(Quaternion lhs, Quaternion rhs)
Parameters
Returns
Multiply(Quaternion, Double)
Quaternion-scalar multiplication operator.
Declaration
public static Quaternion operator *(Quaternion lhs, double rhs)
Parameters
Returns
Multiply(Double, Quaternion)
Scalar-Quaternion multiplication operator.
Declaration
public static Quaternion operator *(double lhs, Quaternion rhs)
Parameters
Returns
Subtraction(Quaternion, Quaternion)
Element-wise subtraction operator.
Declaration
public static Quaternion operator -(Quaternion lhs, Quaternion rhs)
Parameters
Returns
UnaryNegation(Quaternion)
Declaration
public static Quaternion operator -(Quaternion rhs)
Parameters
Returns