Quaternion class used to perform rotations in 3D space. More...
Public Types | |
enum | eulerOrder : unsigned char { XZX, XYX, YXY, YZY, ZYZ, ZXZ, XZY, XYZ, YXZ, YZX, ZYX, ZXY } |
typedef scalar | cmptType |
typedef scalar | magType |
Public Member Functions | |
quaternion ()=default | |
quaternion (const quaternion &)=default | |
quaternion & | operator= (const quaternion &)=default |
quaternion (const Foam::zero) | |
quaternion (const scalar w, const vector &v) | |
quaternion (const vector &d, const scalar theta) | |
quaternion (const vector &d, const scalar cosTheta, const bool normalized) | |
quaternion (const scalar w) | |
quaternion (const vector &v) | |
quaternion (const eulerOrder order, const vector &angles) | |
quaternion (const tensor &rotationTensor) | |
quaternion (Istream &is) | |
scalar | w () const |
const vector & | v () const |
tensor | R () const |
vector | eulerAngles (const eulerOrder order) const |
quaternion | normalized () const |
scalar & | w () |
vector & | v () |
void | normalize () |
vector | transform (const vector &v) const |
vector | invTransform (const vector &v) const |
quaternion | transform (const quaternion &q) const |
quaternion | invTransform (const quaternion &q) const |
void | operator+= (const quaternion &q) |
void | operator-= (const quaternion &q) |
void | operator*= (const quaternion &q) |
void | operator/= (const quaternion &q) |
void | operator= (const scalar s) |
void | operator= (const vector &v) |
void | operator*= (const scalar s) |
void | operator/= (const scalar s) |
Static Public Member Functions | |
static quaternion | unit (const vector &v) |
Static Public Attributes | |
static const Enum< eulerOrder > | eulerOrderNames |
static constexpr direction | rank = 1 |
static constexpr const char *const | typeName = "quaternion" |
static const quaternion | zero |
static const quaternion | I |
Quaternion class used to perform rotations in 3D space.
Definition at line 52 of file quaternion.H.
typedef scalar cmptType |
Definition at line 92 of file quaternion.H.
typedef scalar magType |
Definition at line 95 of file quaternion.H.
enum eulerOrder : unsigned char |
Enumerator | |
---|---|
XZX | |
XYX | |
YXY | |
YZY | |
ZYZ | |
ZXZ | |
XZY | |
XYZ | |
YXZ | |
YZX | |
ZYX | |
ZXY |
Definition at line 98 of file quaternion.H.
|
default |
|
default |
|
inline |
Definition at line 24 of file quaternionI.H.
|
inline |
Definition at line 31 of file quaternionI.H.
|
inline |
Definition at line 38 of file quaternionI.H.
|
inline |
Definition at line 46 of file quaternionI.H.
References Foam::mag(), and Foam::sqrt().
|
inlineexplicit |
Definition at line 66 of file quaternionI.H.
|
inlineexplicit |
Definition at line 73 of file quaternionI.H.
|
inline |
Definition at line 87 of file quaternionI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, quaternion::quaternion(), Vector< Cmpt >::x(), Vector< Cmpt >::y(), and Vector< Cmpt >::z().
Referenced by quaternion::quaternion().
|
inlineexplicit |
Definition at line 200 of file quaternionI.H.
References Foam::rotationTensor(), s, Foam::sqrt(), Tensor::xx(), Tensor::xy(), Tensor::xz(), Tensor::yx(), Tensor::yy(), Tensor::yz(), Tensor::zx(), Tensor::zy(), and Tensor::zz().
|
explicit |
Definition at line 54 of file quaternion.C.
|
default |
|
inlinestatic |
Definition at line 80 of file quaternionI.H.
References Foam::magSqr(), and Foam::sqrt().
Referenced by joint::unitQuaternion().
|
inline |
Definition at line 278 of file quaternionI.H.
Referenced by Foam::conjugate(), Foam::exp(), Foam::inv(), Foam::magSqr(), Foam::name(), Foam::operator&(), Foam::operator*(), quaternion::operator*=(), Foam::operator+(), Foam::operator-(), Foam::operator/(), Foam::operator<<(), Foam::operator==(), Foam::operator>>(), and Foam::pow().
|
inline |
Definition at line 284 of file quaternionI.H.
Referenced by Foam::conjugate(), Foam::exp(), Foam::inv(), Foam::magSqr(), Foam::name(), Foam::operator&(), Foam::operator*(), quaternion::operator*=(), Foam::operator+(), Foam::operator-(), Foam::operator/(), Foam::operator<<(), Foam::operator==(), Foam::operator>>(), Foam::pow(), and joint::unitQuaternion().
|
inline |
Definition at line 347 of file quaternionI.H.
References Foam::sqr(), w2, x, and y.
Referenced by axisAngle::rotation(), Foam::transform(), and triad::triad().
|
inline |
Definition at line 397 of file quaternionI.H.
References Foam::abort(), Foam::FatalError, FatalErrorInFunction, Foam::sqr(), w2, x, y, and Foam::Zero.
Referenced by sixDoFRigidBodyState::write().
|
inline |
Definition at line 302 of file quaternionI.H.
References Foam::mag().
|
inline |
|
inline |
|
inline |
Definition at line 308 of file quaternionI.H.
References Foam::mag().
Referenced by Foam::average().
|
inline |
Definition at line 320 of file quaternionI.H.
References Foam::conjugate().
Referenced by searchableExtrudedCircle::findParametricNearest(), polyline::operator()(), Foam::operator*(), Foam::operator/(), and septernion::operator/=().
|
inline |
Definition at line 326 of file quaternionI.H.
References Foam::conjugate().
Referenced by Foam::operator*(), and septernion::operator*=().
|
inline |
Definition at line 332 of file quaternionI.H.
References Foam::normalize().
|
inline |
Definition at line 339 of file quaternionI.H.
References Foam::conjugate(), and Foam::normalize().
|
inline |
Definition at line 577 of file quaternionI.H.
|
inline |
Definition at line 583 of file quaternionI.H.
|
inline |
Definition at line 589 of file quaternionI.H.
References quaternion::v(), quaternion::w(), and w0.
|
inline |
Definition at line 596 of file quaternionI.H.
References Foam::inv().
|
inline |
Definition at line 602 of file quaternionI.H.
References s.
|
inline |
Definition at line 608 of file quaternionI.H.
|
inline |
Definition at line 614 of file quaternionI.H.
References s.
|
inline |
Definition at line 620 of file quaternionI.H.
References s.
|
static |
Definition at line 108 of file quaternion.H.
Referenced by lumpedPointMovement::readDict(), lumpedPointState::writeDict(), and euler::writeEntry().
|
staticconstexpr |
Definition at line 114 of file quaternion.H.
|
staticconstexpr |
Definition at line 119 of file quaternion.H.
|
static |
Definition at line 121 of file quaternion.H.
|
static |
Definition at line 122 of file quaternion.H.
Referenced by septernion::operator=().
Copyright © 2011-2018 OpenFOAM | OPENFOAM® is a registered trademark of OpenCFD Ltd.