Methods_T_Rhino_Geometry_Quaternion - mcneel/rhinocommon-api-docs GitHub Wiki

Quaternion Methods

The Quaternion type exposes the following members.

Methods

 

Name Description
Public methodStatic member 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.

Public methodStatic member Distance Returns the distance or norm of the difference between two quaternions.
Public method DistanceTo Computes the distance or norm of the difference between this and another quaternion.
Public method EpsilonEquals Check that all values in other are within epsilon of the values in this
Public method Equals(Object) Determines whether an object is a quaternion and has the same value of this quaternion. (Overrides ValueType.Equals(Object).)
Public method Equals(Quaternion) Determines whether this quaternion has the same value of another quaternion.
Public method GetHashCode Gets a non-unique but repeatable hashing code for this quaternion. (Overrides ValueType.GetHashCode().)
Public method 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).
Public method GetRotation(Double, Vector3d) Returns the rotation defined by the quaternion.
Public method GetType Gets the Type of the current instance. (Inherited from Object.)
Public method Invert Modifies this quaternion to become (a/L2, -b/L2, -c/L2, -d/L2),

where L2 = length squared = (aa + bb + cc + dd).

This is the multiplicative inverse, i.e., (a,b,c,d)(a/L2, -b/L2, -c/L2, -d/L2) = (1,0,0,0).

Public method 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.
Public methodStatic member Product The quaternion product of p and q. This is the same value as pq.
Public method 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.
Public methodStatic member 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.
Public methodStatic member Rotation(Plane, Plane) Returns the unit quaternion that represents the the rotation that maps plane0.xaxis to plane1.xaxis, plane0.yaxis to plane1.yaxis, and plane0.zaxis to plane1.zaxis.
Public method Set Sets all coefficients of the quaternion.
Public method 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.
Public method 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.
Public method ToString Returns the fully qualified type name of this instance. (Inherited from ValueType.)
Public method Unitize Scales the quaternion's coordinates so that aa + bb + cc + dd = 1.
  Back to Top

See Also

Reference

Quaternion Structure
Rhino.Geometry Namespace

⚠️ **GitHub.com Fallback** ⚠️