FOX/ObjCryst++  1.10.X (development)
ObjCryst::Quaternion Class Reference

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
 

Detailed Description

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.

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

Definition at line 1472 of file Molecule.cpp.

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.

Definition at line 486 of file Molecule.h.


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