Quaternion class used to perform rotations in 3D space. More...
#include <OpenFOAM/quaternion.H>
Quaternion class used to perform rotations in 3D space.
Definition at line 61 of file quaternion.H.
Public Member Functions | |
quaternion () | |
Construct null. | |
quaternion (const scalar w, const vector &v) | |
Construct given scalar and vector parts. | |
quaternion (const vector &d, const scalar theta) | |
Construct a rotation quaternion given the direction d. | |
quaternion (const scalar w) | |
Construct given scalar part, the vector part = vector::zero. | |
quaternion (const vector &v) | |
Construct a pure quaternion given the vector part, scalar part = 0. | |
quaternion (const scalar angleX, const scalar angleY, const scalar angleZ) | |
Construct a quaternion given the three Euler angles. | |
quaternion (Istream &) | |
Construct from Istream. | |
scalar | w () const |
Scalar part of the quaternion ( = cos(theta/2) for rotation) | |
const vector & | v () const |
Vector part of the quaternion ( = axis of rotation) | |
tensor | R () const |
The rotation tensor corresponding the quaternion. | |
scalar & | w () |
Scalar part of the quaternion ( = cos(theta/2) for rotation) | |
vector & | v () |
Vector part of the quaternion ( = axis of rotation) | |
void | normalize () |
vector | transform (const vector &v) const |
Rotate the given vector. | |
vector | invTransform (const vector &v) const |
Rotate the given vector anti-clockwise. | |
quaternion | transform (const quaternion &q) const |
Rotate the given quaternion (and normalize) | |
quaternion | invTransform (const quaternion &q) const |
Rotate the given quaternion anti-clockwise (and normalize) | |
void | operator= (const quaternion &) |
void | operator+= (const quaternion &) |
void | operator-= (const quaternion &) |
void | operator*= (const quaternion &) |
void | operator/= (const quaternion &) |
void | operator= (const scalar) |
void | operator= (const vector &) |
void | operator*= (const scalar) |
void | operator/= (const scalar) |
Static Public Attributes | |
static const char *const | typeName = "quaternion" |
static const quaternion | zero |
static const quaternion | I |
Friends | |
Istream & | operator>> (Istream &is, quaternion &) |
Ostream & | operator<< (Ostream &os, const quaternion &C) |
|
inline |
Construct null.
Definition at line 28 of file quaternionI.H.
|
inline |
Construct given scalar and vector parts.
Definition at line 31 of file quaternionI.H.
|
inline |
Construct a rotation quaternion given the direction d.
and angle theta
Definition at line 37 of file quaternionI.H.
References quaternion::normalize().
|
inlineexplicit |
Construct given scalar part, the vector part = vector::zero.
Definition at line 45 of file quaternionI.H.
|
inlineexplicit |
Construct a pure quaternion given the vector part, scalar part = 0.
Definition at line 51 of file quaternionI.H.
|
inline |
Construct a quaternion given the three Euler angles.
Definition at line 58 of file quaternionI.H.
quaternion | ( | Istream & | is | ) |
Construct from Istream.
Definition at line 38 of file quaternion.C.
|
inline |
Scalar part of the quaternion ( = cos(theta/2) for rotation)
Definition at line 72 of file quaternionI.H.
Referenced by Foam::conjugate(), Foam::inv(), Foam::magSqr(), Foam::name(), Foam::operator&(), Foam::operator*(), quaternion::operator*=(), Foam::operator+(), Foam::operator-(), Foam::operator/(), Foam::operator<<(), Foam::operator==(), and Foam::operator>>().
|
inline |
Vector part of the quaternion ( = axis of rotation)
Definition at line 78 of file quaternionI.H.
Referenced by Foam::conjugate(), Foam::inv(), Foam::magSqr(), Foam::name(), Foam::operator&(), Foam::operator*(), quaternion::operator*=(), Foam::operator+(), Foam::operator-(), Foam::operator/(), Foam::operator<<(), Foam::operator==(), and Foam::operator>>().
|
inline |
The rotation tensor corresponding the quaternion.
Definition at line 226 of file quaternionI.H.
References Foam::sqr(), and y.
Referenced by Foam::transform().
|
inline |
Scalar part of the quaternion ( = cos(theta/2) for rotation)
Definition at line 84 of file quaternionI.H.
|
inline |
Vector part of the quaternion ( = axis of rotation)
Definition at line 90 of file quaternionI.H.
|
inline |
Definition at line 96 of file quaternionI.H.
References Foam::mag().
Referenced by quaternion::quaternion().
|
inline |
Rotate the given vector.
Definition at line 108 of file quaternionI.H.
References Foam::conjugate().
Referenced by Foam::operator*().
|
inline |
Rotate the given vector anti-clockwise.
Definition at line 114 of file quaternionI.H.
References Foam::conjugate().
Referenced by Foam::inv().
|
inline |
Rotate the given quaternion (and normalize)
Definition at line 120 of file quaternionI.H.
References Foam::normalize().
|
inline |
Rotate the given quaternion anti-clockwise (and normalize)
Definition at line 127 of file quaternionI.H.
References Foam::conjugate(), and Foam::normalize().
|
inline |
Definition at line 137 of file quaternionI.H.
|
inline |
Definition at line 143 of file quaternionI.H.
|
inline |
Definition at line 149 of file quaternionI.H.
|
inline |
Definition at line 155 of file quaternionI.H.
References quaternion::v(), and quaternion::w().
|
inline |
Definition at line 162 of file quaternionI.H.
References Foam::inv().
|
inline |
Definition at line 168 of file quaternionI.H.
|
inline |
Definition at line 174 of file quaternionI.H.
|
inline |
Definition at line 180 of file quaternionI.H.
|
inline |
Definition at line 186 of file quaternionI.H.
|
friend |
|
friend |
|
static |
Definition at line 80 of file quaternion.H.
|
static |
Definition at line 82 of file quaternion.H.
|
static |
Definition at line 83 of file quaternion.H.