![]() |
VMTK
|
#include <vmath.h>
Public Member Functions | |
Quaternion () | |
Quaternion (const Quaternion< T > &q) | |
template<class FromT > | |
Quaternion (const Quaternion< FromT > &q) | |
Quaternion (T w_, const Vector3< T > &v_) | |
Quaternion (T w_, T x, T y, T z) | |
Quaternion< T > & | operator= (const Quaternion< T > &rhs) |
template<class FromT > | |
Quaternion< T > & | operator= (const Quaternion< FromT > &rhs) |
Quaternion< T > | operator+ (const Quaternion< T > &rhs) const |
Quaternion< T > | operator* (const Quaternion< T > &rhs) const |
Quaternion< T > | operator* (T rhs) const |
Quaternion< T > | operator- (const Quaternion< T > &rhs) const |
Quaternion< T > & | operator+= (const Quaternion< T > &rhs) |
Quaternion< T > & | operator-= (const Quaternion< T > &rhs) |
Quaternion< T > & | operator*= (const Quaternion< T > &rhs) |
Quaternion< T > & | operator*= (T rhs) |
bool | operator== (const Quaternion< T > &rhs) const |
bool | operator!= (const Quaternion< T > &rhs) const |
Quaternion< T > | operator- () const |
Quaternion< T > | operator~ () const |
T | length () const |
T | lengthSq () const |
void | normalize () |
Matrix3< T > | rotMatrix () |
Matrix4< T > | transform () const |
Quaternion< T > | lerp (T fact, const Quaternion< T > &rhs) const |
std::string | toString () const |
Quaternion< T > | slerp (T r, const Quaternion< T > &q2) const |
Static Public Member Functions | |
static Quaternion< T > | fromEulerAngles (T x, T y, T z) |
static Quaternion< T > | fromAxisRot (Vector3< T > axis, float angleDeg) |
static Quaternion< T > | fromMatrix (const Matrix4< T > &m) |
static Quaternion< T > | fromMatrix (const Matrix3< T > &m) |
Public Attributes | |
T | w |
Vector3< T > | v |
Friends | |
std::ostream & | operator<< (std::ostream &oss, const Quaternion< T > &q) |
Quaternion class implementing some quaternion algebra operations. Quaternion is kind of complex number it consists of its real part (w) and its complex part v. This complex part has three elements, so we can express it as xi + yj + zk . Note that coordinates of (x,y,z) are hold inside v field.
|
inline |
Quaternion constructor, sets quaternion to (0 + 0i + 0j + 0k).
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
Creates quaternion for eulers angles.
x | Rotation around x axis (in degrees). |
y | Rotation around y axis (in degrees). |
z | Rotation around z axis (in degrees). |
|
inlinestatic |
Creates quaternion from transform matrix.
m | Transform matrix used to compute quaternion. |
|
inlinestatic |
Creates quaternion from rotation matrix.
m | Rotation matrix used to compute quaternion. |
|
inline |
|
inline |
|
inline |
Linear interpolation of two quaternions
fact | Factor of interpolation. For translation from position of this vector to quaternion rhs, values of factor goes from 0.0 to 1.0. |
rhs | Second Quaternion for interpolation |
Definition at line 3713 of file vmath.h.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
Computes spherical interpolation between quaternions (this, q2) using coefficient of interpolation r (in [0, 1]).
r | The ratio of interpolation form this (r = 0) to q2 (r = 1). |
q2 | Second quaternion for interpolation. |
Definition at line 3862 of file vmath.h.
|
inline |
|
inline |
Converts quaternion into transformation matrix.
Definition at line 3664 of file vmath.h.
|
friend |
Vector3<T> VMATH_NAMESPACE::Quaternion< T >::v |
T VMATH_NAMESPACE::Quaternion< T >::w |