OPAL (Object Oriented Parallel Accelerator Library) 2022.1
OPAL
Public Member Functions | List of all members
Quaternion Class Reference

#include <Quaternion.h>

Inheritance diagram for Quaternion:
Inheritance graph
[legend]
Collaboration diagram for Quaternion:
Collaboration graph
[legend]

Public Member Functions

 Quaternion ()
 
 Quaternion (const Quaternion &)
 
 Quaternion (const double &, const double &, const double &, const double &)
 
 Quaternion (const Vector_t &)
 
 Quaternion (const double &, const Vector_t &)
 
 Quaternion (const Tenzor< double, 3 > &)
 
Quaternion operator* (const double &) const
 
Quaternion operator* (const Quaternion &) const
 
Quaternionoperator= (const Quaternion &)=default
 
Quaternionoperator*= (const Quaternion &)
 
Quaternion operator/ (const double &) const
 
double Norm () const
 
double length () const
 
Quaternionnormalize ()
 
bool isUnit () const
 
bool isPure () const
 
bool isPureUnit () const
 
Quaternion inverse () const
 
Quaternion conjugate () const
 
double real () const
 
Vector_t imag () const
 
Vector_t rotate (const Vector_t &) const
 
Tenzor< double, 3 > getRotationMatrix () const
 
- Public Member Functions inherited from Vektor< double, 4 >
 Vektor ()
 
 Vektor (const Vektor< double, D > &rhs)
 
 Vektor (const Vektor< T1, D1 > &rhs)
 
 Vektor (const double &x00)
 
 Vektor (const double &x00, const double &x01)
 
 Vektor (const double &x00, const double &x01, const double &x02)
 
 Vektor (const double &x00, const double &x01, const double &x02, const double &x03)
 
 ~Vektor ()
 
const Vektor< double, D > & operator= (const Vektor< double, D > &rhs)
 
const Vektor< double, D > & operator= (const Vektor< T1, D > &rhs)
 
const Vektor< double, D > & operator= (const double &rhs)
 
Vektor< double, D > & operator+= (const Vektor< T1, D > &rhs)
 
Vektor< double, D > & operator+= (const double &rhs)
 
Vektor< double, D > & operator-= (const Vektor< T1, D > &rhs)
 
Vektor< double, D > & operator-= (const double &rhs)
 
Vektor< double, D > & operator*= (const Vektor< T1, D > &rhs)
 
Vektor< double, D > & operator*= (const double &rhs)
 
Vektor< double, D > & operator/= (const Vektor< T1, D > &rhs)
 
Vektor< double, D > & operator/= (const double &rhs)
 
Element_toperator[] (unsigned int i)
 
Element_t operator[] (unsigned int i) const
 
Element_toperator() (unsigned int i)
 
Element_t operator() (unsigned int i) const
 
bool operator== (const Vektor< double, D > &that) const
 
bool operator!= (const Vektor< double, D > &that) const
 
MessageputMessage (Message &m) const
 
MessagegetMessage (Message &m)
 

Additional Inherited Members

- Public Types inherited from Vektor< double, 4 >
enum  
 
enum  
 
typedef double Element_t
 

Detailed Description

Definition at line 10 of file Quaternion.h.

Constructor & Destructor Documentation

◆ Quaternion() [1/6]

Quaternion::Quaternion ( )
inline

Definition at line 50 of file Quaternion.h.

Referenced by operator*=().

◆ Quaternion() [2/6]

Quaternion::Quaternion ( const Quaternion quat)
inline

Definition at line 55 of file Quaternion.h.

◆ Quaternion() [3/6]

Quaternion::Quaternion ( const double &  x0,
const double &  x1,
const double &  x2,
const double &  x3 
)
inline

Definition at line 60 of file Quaternion.h.

◆ Quaternion() [4/6]

Quaternion::Quaternion ( const Vector_t vec)
inline

Definition at line 65 of file Quaternion.h.

◆ Quaternion() [5/6]

Quaternion::Quaternion ( const double &  realPart,
const Vector_t vec 
)
inline

Definition at line 70 of file Quaternion.h.

◆ Quaternion() [6/6]

Quaternion::Quaternion ( const Tenzor< double, 3 > &  M)

Definition at line 22 of file Quaternion.cpp.

References abs(), copysign(), max(), and sqrt().

Here is the call graph for this function:

Member Function Documentation

◆ conjugate()

Quaternion Quaternion::conjugate ( ) const
inline

◆ getRotationMatrix()

Tenzor< double, 3 > Quaternion::getRotationMatrix ( ) const

Definition at line 135 of file Quaternion.cpp.

References normalize().

Referenced by CoordinateSystemTrafo::operator*=().

Here is the call graph for this function:

◆ imag()

Vector_t Quaternion::imag ( ) const
inline

Definition at line 119 of file Quaternion.h.

Referenced by conjugate(), operator*(), operator*=(), and operator/().

◆ inverse()

Quaternion Quaternion::inverse ( ) const

Definition at line 115 of file Quaternion.cpp.

References conjugate(), and normalize().

Here is the call graph for this function:

◆ isPure()

bool Quaternion::isPure ( ) const
inline

Definition at line 93 of file Quaternion.h.

References abs(), and Physics::e.

Referenced by isPureUnit().

Here is the call graph for this function:

◆ isPureUnit()

bool Quaternion::isPureUnit ( ) const
inline

Definition at line 99 of file Quaternion.h.

References isPure(), and isUnit().

Here is the call graph for this function:

◆ isUnit()

bool Quaternion::isUnit ( ) const
inline

Definition at line 87 of file Quaternion.h.

References abs(), Physics::e, and Norm().

Referenced by isPureUnit(), and rotate().

Here is the call graph for this function:

◆ length()

double Quaternion::length ( ) const
inline

Definition at line 81 of file Quaternion.h.

References Norm(), and sqrt().

Referenced by normalize().

Here is the call graph for this function:

◆ Norm()

double Quaternion::Norm ( ) const
inline

Definition at line 75 of file Quaternion.h.

References dot().

Referenced by isUnit(), length(), normalize(), and rotate().

Here is the call graph for this function:

◆ normalize()

Quaternion & Quaternion::normalize ( )

Definition at line 102 of file Quaternion.cpp.

References Physics::e, length(), and Norm().

Referenced by getRotationMatrix(), inverse(), and CoordinateSystemTrafo::operator*=().

Here is the call graph for this function:

◆ operator*() [1/2]

Quaternion Quaternion::operator* ( const double &  d) const

Definition at line 71 of file Quaternion.cpp.

References imag(), and real().

Here is the call graph for this function:

◆ operator*() [2/2]

Quaternion Quaternion::operator* ( const Quaternion other) const

Definition at line 78 of file Quaternion.cpp.

◆ operator*=()

Quaternion & Quaternion::operator*= ( const Quaternion other)

Definition at line 84 of file Quaternion.cpp.

References cross(), dot(), imag(), and Quaternion().

Here is the call graph for this function:

◆ operator/()

Quaternion Quaternion::operator/ ( const double &  d) const

Definition at line 95 of file Quaternion.cpp.

References imag(), and real().

Here is the call graph for this function:

◆ operator=()

Quaternion & Quaternion::operator= ( const Quaternion )
default

◆ real()

double Quaternion::real ( ) const
inline

Definition at line 113 of file Quaternion.h.

Referenced by conjugate(), operator*(), and operator/().

◆ rotate()

Vector_t Quaternion::rotate ( const Vector_t vec) const

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