ObjCryst++  1.5CVS
Public Member Functions | Static Public Member Functions | Private Attributes
ObjCryst::Quaternion Class Reference

A quaternion class, used to represent the orientation of the molecule. More...

List of all members.

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.
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)
REAL mQ1
REAL mQ2
REAL mQ3
bool mIsUniQuaternion

Detailed Description

A quaternion class, used to represent the orientation of the molecule.

It may or may not be a unit quaternion.


Member Function Documentation

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


Member Data Documentation

REAL ObjCryst::Quaternion::mQ0
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.


The documentation for this class was generated from the following file: