Quaternion Methods |
The Quaternion type exposes the following members.
Name | Description | |
---|---|---|
![]() ![]() | CreateFromRotationZYX |
Constructs a quaternion defined by Tait-Byran angles, also loosely known as Euler angles.
|
![]() ![]() | CreateFromRotationZYZ |
Constructs a quaternion defined by Euler angles.
|
![]() ![]() | CrossProduct |
Computes the vector cross product of p and q = (0,x,y,z),
where (x,y,z) = CrossProduct(p.Vector,q.Vector). This is not the same as the quaternion product p*q. |
![]() ![]() | Distance |
Returns the distance or norm of the difference between two quaternions.
|
![]() | DistanceTo |
Computes the distance or norm of the difference between this and another quaternion.
|
![]() | EpsilonEquals |
Check that all values in other are within epsilon of the values in this
|
![]() | Equals(Object) |
Determines whether an object is a quaternion and has the same value of this quaternion.
(Overrides ValueTypeEquals(Object).) |
![]() | Equals(Quaternion) |
Determines whether this quaternion has the same value of another quaternion.
|
![]() | GetEulerZYZ |
Find the Euler angles for a rotation transformation.
|
![]() | GetHashCode |
Gets a non-unique but repeatable hashing code for this quaternion.
(Overrides ValueTypeGetHashCode.) |
![]() | GetRotation(Plane) |
Returns the frame created by applying the quaternion's rotation
to the canonical world frame (1,0,0),(0,1,0),(0,0,1).
|
![]() | GetRotation(Transform) |
Returns a transformation matrix that performs the rotation defined by the quaternion.
The transformation returned by this method has the property that xform * V = q.Rotate(V).
If the quaternion is not unitized, the rotation of its unitized form is returned.
|
![]() | GetRotation(Double, Vector3d) |
Returns the rotation defined by the quaternion.
|
![]() | GetType | Gets the Type of the current instance. (Inherited from Object.) |
![]() | GetYawPitchRoll |
Find sthe Tait-Byran angles, also loosely called Euler angles, for this quaternion.
|
![]() | Invert |
Modifies this quaternion to become
(a/L2, -b/L2, -c/L2, -d/L2), where L2 = length squared = (a*a + b*b + c*c + d*d). This is the multiplicative inverse, i.e., (a,b,c,d)*(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0). |
![]() ![]() | Lerp |
Interpolates between two quaternions, using linear interpolation.
|
![]() | MatrixForm |
Returns 4x4 real valued matrix form of the quaternion
a b c d
-b a -d c
-c d a -b
-d -c b a
which has the same arithmetic properties as the quaternion.
|
![]() ![]() | Product |
The quaternion product of p and q. This is the same value as p*q.
|
![]() | Rotate |
Rotates a 3d vector. This operation is also called conjugation,
because the result is the same as
(q.Conjugate()*(0,x,y,x)*q/q.LengthSquared).Vector.
|
![]() ![]() | RotateTowards |
Returns the quaternion obtained by rotating a towards b, limiting the rotation by MaxRadians.
|
![]() ![]() | Rotation(Double, Vector3d) |
Returns the unit quaternion
cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z
where (x,y,z) is the unit vector parallel to axis. This is the
unit quaternion that represents the rotation of angle about axis.
|
![]() ![]() | Rotation(Plane, Plane) |
Returns the unit quaternion that represents the rotation that maps
plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis, and
plane0.zaxis to plane1.zaxis.
|
![]() | Set |
Sets all coefficients of the quaternion.
|
![]() | SetRotation(Double, Vector3d) |
Sets the quaternion to cos(angle/2), sin(angle/2)*x, sin(angle/2)*y, sin(angle/2)*z
where (x,y,z) is the unit vector parallel to axis. This is the unit quaternion
that represents the rotation of angle about axis.
|
![]() | SetRotation(Plane, Plane) |
Sets the quaternion to the unit quaternion which rotates
plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis,
and plane0.zaxis to plane1.zaxis.
|
![]() ![]() | Slerp |
Interpolates between two quaternions, using spherical linear interpolation.
|
![]() | ToString |
Returns a string representation of this Quaternion.
(Overrides ValueTypeToString.) |
![]() | Unitize |
Scales the quaternion's coordinates so that a*a + b*b + c*c + d*d = 1.
|