ESyS-Particle  2.3.4
Quaternion Class Reference

#include <Quaternion.h>

Inheritance diagram for Quaternion:
Collaboration diagram for Quaternion:

Public Types

typedef std::pair< double, Vec3AngleAxisPair
 

Public Member Functions

QUATERNION_INLINE Quaternion ()
 
QUATERNION_INLINE Quaternion (double, const Vec3 &)
 
QUATERNION_INLINE Quaternion (const Quaternion &)
 
QUATERNION_INLINE ~Quaternion ()
 
QUATERNION_INLINE Quaternionoperator= (const Quaternion &)
 
QUATERNION_INLINE std::ostream & output (std::ostream &) const
 
QUATERNION_INLINE std::istream & input (std::istream &ci)
 
QUATERNION_INLINE bool operator== (const Quaternion &) const
 
QUATERNION_INLINE bool operator!= (const Quaternion &) const
 
QUATERNION_INLINE Quaternion operator+ (const Quaternion &) const
 
QUATERNION_INLINE Quaternion operator- (const Quaternion &) const
 
QUATERNION_INLINE Quaternion operator- () const
 
QUATERNION_INLINE Quaternion operator* (double) const
 
QUATERNION_INLINE Quaternion operator* (const Quaternion &) const
 
QUATERNION_INLINE Quaternion operator/ (const Quaternion &) const
 
QUATERNION_INLINE Quaternionoperator+= (const Quaternion &)
 
QUATERNION_INLINE Quaternionoperator-= (const Quaternion &)
 
QUATERNION_INLINE Quaternionoperator*= (double)
 
QUATERNION_INLINE Quaternionoperator*= (const Quaternion &)
 
QUATERNION_INLINE Quaternionoperator/= (const Quaternion &)
 
QUATERNION_INLINE Quaternion inverse () const
 
QUATERNION_INLINE void normalize ()
 
QUATERNION_INLINE double length () const
 
QUATERNION_INLINE Matrix3 to_matrix () const
 
QUATERNION_INLINE Vec3 return_vec () const
 
QUATERNION_INLINE double return_sca () const
 
QUATERNION_INLINE void set_vector (const Vec3 &v)
 
QUATERNION_INLINE void set_scalar (double d)
 
QUATERNION_INLINE Vec3 asAngleAxis () const
 
QUATERNION_INLINE AngleAxisPair asAngleAxisPair () const
 

Private Attributes

Vec3 vector
 
double scalar
 

Friends

QUATERNION_INLINE friend Quaternion operator* (double, const Quaternion &)
 

Member Typedef Documentation

◆ AngleAxisPair

typedef std::pair<double,Vec3> Quaternion::AngleAxisPair

Pair representing angle of rotation about an axis.

Constructor & Destructor Documentation

◆ Quaternion() [1/3]

QUATERNION_INLINE Quaternion::Quaternion ( )

Referenced by inverse(), operator*(), operator+(), and operator-().

Here is the caller graph for this function:

◆ Quaternion() [2/3]

QUATERNION_INLINE Quaternion::Quaternion ( double  d,
const Vec3 v 
)

◆ Quaternion() [3/3]

QUATERNION_INLINE Quaternion::Quaternion ( const Quaternion q)

◆ ~Quaternion()

QUATERNION_INLINE Quaternion::~Quaternion ( )
inline

Member Function Documentation

◆ asAngleAxis()

QUATERNION_INLINE Vec3 Quaternion::asAngleAxis ( ) const

Returns the angle and axis of rotation associated with this quaternion as 3x1 vector. The magnitude of the vector is the angle of rotation in radians.

References Vec3::norm(), scalar, and vector.

Referenced by esys::lsm::QuaternionPy::asAngleAxis().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ asAngleAxisPair()

QUATERNION_INLINE Quaternion::AngleAxisPair Quaternion::asAngleAxisPair ( ) const

Returns the angle and axis of rotation associated with this quaternion as std::pair<radians,3x1 vector>. Axis has non-unit magnitude.

References scalar, and vector.

Referenced by esys::lsm::QuaternionPy::asAngleAxisPair().

Here is the caller graph for this function:

◆ input()

QUATERNION_INLINE std::istream & Quaternion::input ( std::istream &  ci)

References scalar, and vector.

Referenced by operator>>().

Here is the caller graph for this function:

◆ inverse()

QUATERNION_INLINE Quaternion Quaternion::inverse ( ) const

References Quaternion(), scalar, and vector.

Referenced by CRotBondedInteraction::calcForces(), operator/(), and operator/=().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ length()

QUATERNION_INLINE double Quaternion::length ( ) const

References Vec3::norm(), scalar, and vector.

Referenced by normalize().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ normalize()

QUATERNION_INLINE void Quaternion::normalize ( )

References esys::lsm::bpu::len(), length(), scalar, and vector.

Referenced by esys::lsm::exportQuaternion().

Here is the call graph for this function:
Here is the caller graph for this function:

◆ operator!=()

QUATERNION_INLINE bool Quaternion::operator!= ( const Quaternion q) const

◆ operator*() [1/2]

QUATERNION_INLINE Quaternion Quaternion::operator* ( const Quaternion q2) const

References cross(), dot(), Quaternion(), scalar, and vector.

Here is the call graph for this function:

◆ operator*() [2/2]

QUATERNION_INLINE Quaternion Quaternion::operator* ( double  c) const

References Quaternion(), scalar, and vector.

Here is the call graph for this function:

◆ operator*=() [1/2]

QUATERNION_INLINE Quaternion & Quaternion::operator*= ( const Quaternion q)

References cross(), dot(), scalar, and vector.

Here is the call graph for this function:

◆ operator*=() [2/2]

QUATERNION_INLINE Quaternion & Quaternion::operator*= ( double  c)

References scalar, and vector.

◆ operator+()

QUATERNION_INLINE Quaternion Quaternion::operator+ ( const Quaternion q2) const

References Quaternion(), scalar, and vector.

Here is the call graph for this function:

◆ operator+=()

QUATERNION_INLINE Quaternion & Quaternion::operator+= ( const Quaternion q)

References scalar, and vector.

◆ operator-() [1/2]

QUATERNION_INLINE Quaternion Quaternion::operator- ( ) const

References Quaternion(), scalar, and vector.

Here is the call graph for this function:

◆ operator-() [2/2]

QUATERNION_INLINE Quaternion Quaternion::operator- ( const Quaternion q2) const

References Quaternion(), scalar, and vector.

Here is the call graph for this function:

◆ operator-=()

QUATERNION_INLINE Quaternion & Quaternion::operator-= ( const Quaternion q)

References scalar, and vector.

◆ operator/()

QUATERNION_INLINE Quaternion Quaternion::operator/ ( const Quaternion q2) const

References inverse().

Here is the call graph for this function:

◆ operator/=()

QUATERNION_INLINE Quaternion & Quaternion::operator/= ( const Quaternion q)

References cross(), dot(), inverse(), scalar, and vector.

Here is the call graph for this function:

◆ operator=()

QUATERNION_INLINE Quaternion & Quaternion::operator= ( const Quaternion q)

References scalar, and vector.

◆ operator==()

QUATERNION_INLINE bool Quaternion::operator== ( const Quaternion q) const

References return_sca(), and return_vec().

Here is the call graph for this function:

◆ output()

QUATERNION_INLINE std::ostream & Quaternion::output ( std::ostream &  co) const

References scalar, and vector.

Referenced by operator<<().

Here is the caller graph for this function:

◆ return_sca()

◆ return_vec()

◆ set_scalar()

QUATERNION_INLINE void Quaternion::set_scalar ( double  d)
inline

References scalar.

Referenced by esys::lsm::QuaternionPy::setItem().

Here is the caller graph for this function:

◆ set_vector()

QUATERNION_INLINE void Quaternion::set_vector ( const Vec3 v)
inline

References vector.

Referenced by esys::lsm::QuaternionPy::setItem().

Here is the caller graph for this function:

◆ to_matrix()

Friends And Related Function Documentation

◆ operator*

QUATERNION_INLINE friend Quaternion operator* ( double  c,
const Quaternion q 
)
friend

Member Data Documentation

◆ scalar

◆ vector


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