#include <rtcQuaternion.h>
Public Member Functions | |
T | angle () const |
Accessors. | |
T | angle (const Quaternion< T > &q) const |
Vec< T, 3 > | axis () const |
void | conjugate () |
Quaternion< T > | conjugated () const |
SMat3< T > | drot_dqj (const int j) const |
Quaternion derivatives and matrices. | |
void | invert () |
Quaternion< T > | inverted () const |
Quaternion< T > | operator* (const Quaternion< T > &q) const |
Quaternion operations. | |
void | operator*= (const Quaternion< T > &q) |
Quaternion () | |
Constructor. | |
Quaternion (const T w, const T x, const T y, const T z) | |
Quaternion (const Vec< T, 4 > &v) | |
Quaternion (const Vec< T, 3 > &n, const T theta) | |
Quaternion (const EulerAngles< T > &e) | |
Quaternion (const Rotation< T > &r) | |
SMat4< T > | quatMat () |
SMat4< T > | quatMatBar () |
SMat4< T > | quatMatBarT () |
SMat4< T > | quatMatT () |
void | rotate (Vec< T, 3 > &v) const |
Quaternion rotations. | |
Vec< T, 3 > | rotated (const Vec< T, 3 > &v) const |
void | set (const Vec< T, 3 > &n, const T theta) |
Mutators. | |
void | set (const EulerAngles< T > &e) |
void | set (const Rotation< T > &r) |
Quaternion< T > | slerp (const Quaternion< T > &q, const T &t) const |
Return the quaternion which is the result of Spherical Linear Interpolation between this and the other quaternion. | |
T | w () const |
Static Public Member Functions | |
static SMat3< T > | d2rot_dqkdqj (int k, int j) |
static SMat4< T > | dquatMat_dqj (const int j) |
The Quaternion Class
Defines quaternion class that derives from Vec<T,3> and knows how to construct itself from several other common rotation representations, such as rotation matrices, axis angles, and euler angles.
Definition at line 53 of file rtcQuaternion.h.
rtc::Quaternion< T >::Quaternion | ( | ) | [inline] |
Constructor.
Ctor that intializes to a zero-rotation unit quaternion.
Definition at line 118 of file rtcQuaternion.h.
rtc::Quaternion< T >::Quaternion | ( | const T | w, |
const T | _x, | ||
const T | y, | ||
const T | z | ||
) | [inline] |
Ctor that initializes vector entries directly.
Definition at line 125 of file rtcQuaternion.h.
rtc::Quaternion< T >::Quaternion | ( | const Vec< T, 4 > & | v | ) | [inline] |
Ctor that initializes from a Vec<T,4>.
Definition at line 132 of file rtcQuaternion.h.
rtc::Quaternion< T >::Quaternion | ( | const Vec< T, 3 > & | n, |
const T | theta | ||
) | [inline] |
Ctor that builds a unit quaternion from an axis and an angle of rotation.
n | the axis of rotation |
theta | the angle of rotation |
Definition at line 139 of file rtcQuaternion.h.
rtc::Quaternion< T >::Quaternion | ( | const EulerAngles< T > & | e | ) | [inline] |
Ctor that builds a unit quaternion from a set of EulerAngles.
e | is a set of EulerAngles |
Definition at line 147 of file rtcQuaternion.h.
rtc::Quaternion< T >::Quaternion | ( | const Rotation< T > & | r | ) | [inline] |
Ctor that builds a unit quaternion from a rotation matrix. Precondition: r must have unit norm for the quaternion to have unit length
r | is a rotation matrix |
Definition at line 156 of file rtcQuaternion.h.
T rtc::Quaternion< T >::angle | ( | ) | const [inline] |
T rtc::Quaternion< T >::angle | ( | const Quaternion< T > & | q | ) | const [inline] |
Angle between this quaternion and the other
Definition at line 334 of file rtcQuaternion.h.
Vec< T, 3 > rtc::Quaternion< T >::axis | ( | ) | const [inline] |
Gets the axis of rotation.
Definition at line 268 of file rtcQuaternion.h.
void rtc::Quaternion< T >::conjugate | ( | ) | [inline] |
Quaternion conjugate. conjugates this quaternion
Definition at line 309 of file rtcQuaternion.h.
Quaternion< T > rtc::Quaternion< T >::conjugated | ( | ) | const [inline] |
Quaternion conjugate. returns the conjuate quaternion
Definition at line 301 of file rtcQuaternion.h.
SMat3< T > rtc::Quaternion< T >::d2rot_dqkdqj | ( | int | k, |
int | j | ||
) | [inline, static] |
Compute the rotation matrix second derivative. returns the second derivative, dR(q) / dq_j dq_k
Definition at line 376 of file rtcQuaternion.h.
SMat4< T > rtc::Quaternion< T >::dquatMat_dqj | ( | const int | j | ) | [inline, static] |
Returns the derivate: dQ(q) / dq_j.
Definition at line 439 of file rtcQuaternion.h.
SMat3< T > rtc::Quaternion< T >::drot_dqj | ( | const int | j | ) | const [inline] |
Quaternion derivatives and matrices.
Compute the rotation matrix derivative. returns the derivative: dR(q) dq_j
Definition at line 354 of file rtcQuaternion.h.
void rtc::Quaternion< T >::invert | ( | ) | [inline] |
Quaternion inverse. inverts this quaternion
Definition at line 326 of file rtcQuaternion.h.
Quaternion< T > rtc::Quaternion< T >::inverted | ( | ) | const [inline] |
Quaternion inverse. returns the inverse quaternion
Definition at line 317 of file rtcQuaternion.h.
Quaternion< T > rtc::Quaternion< T >::operator* | ( | const Quaternion< T > & | q | ) | const [inline] |
void rtc::Quaternion< T >::operator*= | ( | const Quaternion< T > & | q | ) | [inline] |
Quaternion multiplication assignment operator.
Definition at line 290 of file rtcQuaternion.h.
SMat4< T > rtc::Quaternion< T >::quatMat | ( | ) | [inline] |
Return the quaternion matrix. returns the matrix such that q1*q2 = q1.quatMat()*q2
Definition at line 399 of file rtcQuaternion.h.
SMat4< T > rtc::Quaternion< T >::quatMatBar | ( | ) | [inline] |
Returns the conjugate quaternion matrix.
Definition at line 419 of file rtcQuaternion.h.
SMat4< T > rtc::Quaternion< T >::quatMatBarT | ( | ) | [inline] |
Returns the transpose of the conjugate quaternion matrix.
Definition at line 429 of file rtcQuaternion.h.
SMat4< T > rtc::Quaternion< T >::quatMatT | ( | ) | [inline] |
Returns the transpose of the quaternion matrix.
Definition at line 409 of file rtcQuaternion.h.
void rtc::Quaternion< T >::rotate | ( | Vec< T, 3 > & | v | ) | const [inline] |
Vec< T, 3 > rtc::Quaternion< T >::rotated | ( | const Vec< T, 3 > & | v | ) | const [inline] |
Returns a rotated version of the passed vector.
Definition at line 464 of file rtcQuaternion.h.
void rtc::Quaternion< T >::set | ( | const Vec< T, 3 > & | n, |
const T | theta | ||
) | [inline] |
Mutators.
Set the quaternion according to the passed axis and angle.
n | the axis of rotation |
theta | the angle of rotation |
Definition at line 167 of file rtcQuaternion.h.
void rtc::Quaternion< T >::set | ( | const EulerAngles< T > & | e | ) | [inline] |
Set the quaternion according to the passed EulerAngles.
e | is a set of EulerAngles |
Definition at line 178 of file rtcQuaternion.h.
void rtc::Quaternion< T >::set | ( | const Rotation< T > & | r | ) | [inline] |
Set the quaternion according to the passed axis and angle. Precondition: r must have unit norm for the quaternion to have unit length
r | is a rotation matrix |
Definition at line 193 of file rtcQuaternion.h.
Quaternion< T > rtc::Quaternion< T >::slerp | ( | const Quaternion< T > & | q, |
const T & | t | ||
) | const |
Return the quaternion which is the result of Spherical Linear Interpolation between this and the other quaternion.
q | The other quaternion to interpolate with |
t | The ratio between this and q to interpolate. If t = 0 the result is this, if t=1 the result is q. Slerp interpolates assuming constant velocity. |
Definition at line 223 of file rtcQuaternion.h.
T rtc::Quaternion< T >::w | ( | ) | const [inline] |
Get the angle of rotation.
Definition at line 254 of file rtcQuaternion.h.