|
Public Member Functions |
| Quaternion () |
| Default constructor, yields q=(1,0,0,0).
|
| Quaternion (const REAL q0, const REAL q1, const REAL q2, const REAL q3, bool unit=true) |
| Creates a unit quaternion from its components (normalized automatically).
|
| ~Quaternion () |
Quaternion | GetConjugate () const |
| Get the conjugate of this quaternion (== the inverse if unit quaternion).
|
Quaternion | operator * (const Quaternion &q) const |
| Quaternion multiplication.
|
void | operator *= (const Quaternion &q) |
void | XMLOutput (ostream &os, int indent=0) const |
void | XMLInput (istream &is, const XMLCrystTag &tag) |
void | RotateVector (REAL &v1, REAL &v2, REAL &v3) const |
| Rotate vector v=(v1,v2,v3). The rotated components are directly written.
|
void | Normalize () |
| Re-normalize the quaternion to unity.
|
REAL | GetNorm () const |
const REAL & | Q0 () const |
const REAL & | Q1 () const |
const REAL & | Q2 () const |
const REAL & | Q3 () const |
REAL & | Q0 () |
REAL & | Q1 () |
REAL & | Q2 () |
REAL & | Q3 () |
Static Public Member Functions |
Quaternion | RotationQuaternion (const REAL ang, const REAL v1, const REAL v2, const REAL v3) |
| Create a rotation quaternion around a given vector for a given angle.
|
Private Attributes |
REAL | mQ0 |
| The components of the quaternion z=(q0,v) with v=(q1,q2,q3).
|
REAL | mQ1 |
| The components of the quaternion z=(q0,v) with v=(q1,q2,q3).
|
REAL | mQ2 |
| The components of the quaternion z=(q0,v) with v=(q1,q2,q3).
|
REAL | mQ3 |
| The components of the quaternion z=(q0,v) with v=(q1,q2,q3).
|
bool | mIsUniQuaternion |
It may or may not be a unit quaternion.