Public Member Functions |
| | DtQuat () |
| | constructors
|
| | DtQuat (double x, double y, double z, double w) |
| | DtQuat (const DtVector &i, double real) |
| | DtQuat (double theta_z, double theta_y, double theta_x) |
| | from 3 euler angles
|
| | DtQuat (const DtVector &angles) |
| | from 3 euler angles
|
| void | set (double x, double y, double z, double w) |
| | Set the quat.
|
| DtQuat & | operator= (const DtQuat &q) |
| | basic operations
|
| DtQuat | operator+ (const DtQuat &q) const |
| DtQuat | operator- (const DtQuat &q) const |
| DtQuat | operator* (const DtQuat &q) const |
| DtQuat | operator/ (const DtQuat &q) const |
| DtQuat | operator* (double scale) const |
| DtQuat | operator/ (double scale) const |
| DtQuat | operator- () const |
| const DtQuat & | operator+= (const DtQuat &q) |
| const DtQuat & | operator-= (const DtQuat &q) |
| const DtQuat & | operator*= (const DtQuat &q) |
| const DtQuat & | operator*= (double scale) |
| const DtQuat & | operator/= (double scale) |
| double | length () const |
| | gets the length of this quaternion
|
| double | length_squared () const |
| | gets the squared length of this quaternion
|
| void | normalize () |
| | normalizes this quaternion
|
| DtQuat | normalized () const |
| | returns the normalized version of this quaternion
|
| void | conjugate () |
| | computes the conjugate of this quaternion
|
| void | invert () |
| | inverts this quaternion
|
| DtQuat | log () const |
| | returns the logarithm of a quaternion = v*a where q = [cos(a),v*sin(a)]
|
| DtQuat | exp () const |
| | returns e^quaternion = exp(v*a) = [cos(a),vsin(a)]
|
| void | getMatrix4 (double matrix[16]) const |
| | casting to a 4x4 isomorphic matrix for right multiplication with vector
|
| void | getMatrix3 (double matrix[9]) const |
| | Get a 3x3 rotation matrix.
|
| void | to_axis_angle (DtVector &axis, double &angle) const |
| | returns the axis and angle of this unit quaternion
|
| DtVector | rotate (const DtVector &v) const |
| | rotates v by this quaternion (quaternion must be unit)
|
| DtVector | euler_angles () const |
| | returns the euler angles from a rotation quaternion
|
Static Public Member Functions |
| static double | dot (const DtQuat &q1, const DtQuat &q2) |
| | computes the dot product of 2 quaternions
|
| static DtQuat | lerp (const DtQuat &q1, const DtQuat &q2, double t) |
| | linear quaternion interpolation
|
| static DtQuat | slerp (const DtQuat &q1, const DtQuat &q2, double t) |
| | spherical linear interpolation
|
| static DtQuat | slerpNoInvert (const DtQuat &q1, const DtQuat &q2, double t) |
| | This version of slerp, used by squad, does not check for theta > 90.
|
| static DtQuat | squad (const DtQuat &q1, const DtQuat &q2, const DtQuat &a, const DtQuat &b, double t) |
| | spherical cubic interpolation
|
| static DtQuat | bezier (const DtQuat &q1, const DtQuat &q2, const DtQuat &a, const DtQuat &b, double t) |
| | Shoemake-Bezier interpolation using De Castlejau algorithm.
|
| static DtQuat | spline (const DtQuat &qnm1, const DtQuat &qn, const DtQuat &qnp1) |
| | Given 3 quaternions, qn-1,qn and qn+1, calculate a control point to be used in spline interpolation.
|
| static DtQuat | from_axis_angle (const DtVector &axis, double angle) |
| | converts from a normalized axis - angle pair rotation to a quaternion
|
A utility Quaternion class.