![]() |
Basic type: complex number with scalar real part and vector imaginary part. More...
Public Member Functions | |
| GfQuaternion () | |
| The default constructor leaves the quaternion undefined. More... | |
| GfQuaternion (int realVal) | |
| This constructor initializes the real part to the argument and the imaginary parts to zero. More... | |
| GfQuaternion (double real, const GfVec3d &imaginary) | |
| This constructor initializes the real and imaginary parts. More... | |
| void | SetReal (double real) |
| Sets the real part of the quaternion. More... | |
| void | SetImaginary (const GfVec3d &imaginary) |
| Sets the imaginary part of the quaternion. More... | |
| double | GetReal () const |
| Returns the real part of the quaternion. More... | |
| const GfVec3d & | GetImaginary () const |
| Returns the imaginary part of the quaternion. More... | |
| GF_API double | GetLength () const |
| Returns geometric length of this quaternion. More... | |
| GF_API GfQuaternion | GetNormalized (double eps=GF_MIN_VECTOR_LENGTH) const |
| Returns a normalized (unit-length) version of this quaternion. More... | |
| GF_API double | Normalize (double eps=GF_MIN_VECTOR_LENGTH) |
| Normalizes this quaternion in place to unit length, returning the length before normalization. More... | |
| GF_API GfQuaternion | GetInverse () const |
| Returns the inverse of this quaternion. More... | |
| bool | operator== (const GfQuaternion &q) const |
| Component-wise quaternion equality test. More... | |
| bool | operator!= (const GfQuaternion &q) const |
| Component-wise quaternion inequality test. More... | |
| GF_API GfQuaternion & | operator*= (const GfQuaternion &q) |
Post-multiplies quaternion q into this quaternion. More... | |
| GF_API GfQuaternion & | operator*= (double s) |
Scales this quaternion by s. More... | |
| GfQuaternion & | operator/= (double s) |
Scales this quaternion by 1 / s. More... | |
| GfQuaternion & | operator+= (const GfQuaternion &q) |
| Component-wise unary sum operator. More... | |
| GfQuaternion & | operator-= (const GfQuaternion &q) |
| Component-wise unary difference operator. More... | |
Static Public Member Functions | |
| static GfQuaternion | GetIdentity () |
| Returns the identity quaternion, which has a real part of 1 and an imaginary part of (0,0,0). More... | |
Friends | |
| size_t | hash_value (const GfQuaternion &q) |
| Hash. More... | |
| GfQuaternion | operator+ (const GfQuaternion &q1, const GfQuaternion &q2) |
| Component-wise binary sum operator. More... | |
| GfQuaternion | operator- (const GfQuaternion &q1, const GfQuaternion &q2) |
| Component-wise binary difference operator. More... | |
| GfQuaternion | operator* (const GfQuaternion &q1, const GfQuaternion &q2) |
Returns the product of quaternions q1 and q2. More... | |
| GfQuaternion | operator* (const GfQuaternion &q, double s) |
Returns the product of quaternion q and scalar s. More... | |
| GfQuaternion | operator* (double s, const GfQuaternion &q) |
Returns the product of quaternion q and scalar s. More... | |
| GfQuaternion | operator/ (const GfQuaternion &q, double s) |
Returns the product of quaternion q and scalar 1 / s. More... | |
| GF_API friend GfQuaternion | GfSlerp (double alpha, const GfQuaternion &q0, const GfQuaternion &q1) |
Spherically interpolate between q0 and q1. More... | |
| GF_API GfQuaternion | GfSlerp (const GfQuaternion &q0, const GfQuaternion &q1, double alpha) |
Basic type: complex number with scalar real part and vector imaginary part.
This class represents a generalized complex number that has a scalar real part and a vector of three imaginary values. Quaternions are used by the GfRotation class to represent arbitrary-axis rotations.
Definition at line 50 of file quaternion.h.
|
inline |
The default constructor leaves the quaternion undefined.
Definition at line 55 of file quaternion.h.
|
inlineexplicit |
This constructor initializes the real part to the argument and the imaginary parts to zero.
Since quaternions typically need to be normalized, the only reasonable values for realVal are -1, 0, or 1. Other values are legal but are likely to be meaningless.
Definition at line 64 of file quaternion.h.
|
inline |
This constructor initializes the real and imaginary parts.
Definition at line 70 of file quaternion.h.
|
inlinestatic |
Returns the identity quaternion, which has a real part of 1 and an imaginary part of (0,0,0).
Definition at line 96 of file quaternion.h.
|
inline |
Returns the imaginary part of the quaternion.
Definition at line 90 of file quaternion.h.
| GF_API GfQuaternion GetInverse | ( | ) | const |
Returns the inverse of this quaternion.
| GF_API double GetLength | ( | ) | const |
Returns geometric length of this quaternion.
| GF_API GfQuaternion GetNormalized | ( | double | eps = GF_MIN_VECTOR_LENGTH | ) | const |
Returns a normalized (unit-length) version of this quaternion.
direction as this. If the length of this quaternion is smaller than eps, this returns the identity quaternion.
|
inline |
Returns the real part of the quaternion.
Definition at line 85 of file quaternion.h.
| GF_API double Normalize | ( | double | eps = GF_MIN_VECTOR_LENGTH | ) |
Normalizes this quaternion in place to unit length, returning the length before normalization.
If the length of this quaternion is smaller than eps, this sets the quaternion to identity.
|
inline |
Component-wise quaternion inequality test.
The real and imaginary parts must match exactly for quaternions to be considered equal.
Definition at line 137 of file quaternion.h.
| GF_API GfQuaternion& operator*= | ( | const GfQuaternion & | q | ) |
Post-multiplies quaternion q into this quaternion.
| GF_API GfQuaternion& operator*= | ( | double | s | ) |
Scales this quaternion by s.
|
inline |
Component-wise unary sum operator.
Definition at line 155 of file quaternion.h.
|
inline |
Component-wise unary difference operator.
Definition at line 162 of file quaternion.h.
|
inline |
Scales this quaternion by 1 / s.
Definition at line 150 of file quaternion.h.
|
inline |
Component-wise quaternion equality test.
The real and imaginary parts must match exactly for quaternions to be considered equal.
Definition at line 130 of file quaternion.h.
|
inline |
Sets the imaginary part of the quaternion.
Definition at line 80 of file quaternion.h.
|
inline |
Sets the real part of the quaternion.
Definition at line 75 of file quaternion.h.
|
friend |
Spherically interpolate between q0 and q1.
If the interpolant alpha is zero, then the result is q0, while alpha of one yields q1.
|
friend |
Hash.
Definition at line 121 of file quaternion.h.
|
friend |
Returns the product of quaternions q1 and q2.
Definition at line 183 of file quaternion.h.
|
friend |
Returns the product of quaternion q and scalar s.
Definition at line 190 of file quaternion.h.
|
friend |
Returns the product of quaternion q and scalar s.
Definition at line 196 of file quaternion.h.
|
friend |
Component-wise binary sum operator.
Definition at line 169 of file quaternion.h.
|
friend |
Component-wise binary difference operator.
Definition at line 176 of file quaternion.h.
|
friend |
Returns the product of quaternion q and scalar 1 / s.
Definition at line 202 of file quaternion.h.