FOX/ObjCryst++
1.10.X (development)
|
A quaternion class, used to represent the orientation of the molecule. More...
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 | 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 () const |
Re-normalize the quaternion to unity. More... | |
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 | |
static 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) More... | |
REAL | mQ1 |
REAL | mQ2 |
REAL | mQ3 |
bool | mIsUniQuaternion |
A quaternion class, used to represent the orientation of the molecule.
It may or may not be a unit quaternion.
Definition at line 448 of file Molecule.h.
void ObjCryst::Quaternion::Normalize | ( | ) | const |
Re-normalize the quaternion to unity.
This should not be useful, except on individual component input, or after long calculations. And even if wrong, the rotation is independent of the norm of the quaternion.
This is markerd const because we use only unit quaternions
Definition at line 1472 of file Molecule.cpp.
|
mutableprivate |
The components of the quaternion z=(q0,v) with v=(q1,q2,q3)
These are mutable so that the quaternion can be normalized in a const method.
Definition at line 486 of file Molecule.h.