OPAL (Object Oriented Parallel Accelerator Library) 2024.2
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 matrix_t &)
 
Quaternion operator* (const double &) const
 
Quaternion operator* (const Quaternion &) const
 
Quaternion & operator= (const Quaternion &)=default
 
Quaternion & operator*= (const Quaternion &)
 
Quaternion operator/ (const double &) const
 
double Norm () const
 
double length () const
 
Quaternion & normalize ()
 
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
 
matrix_t 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 (std::initializer_list< double > init)
 
 ~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_t & operator[] (unsigned int i)
 
Element_t operator[] (unsigned int i) const
 
Element_t & operator() (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
 
Message & putMessage (Message &m) const
 
Message & getMessage (Message &m)
 

Additional Inherited Members

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

Detailed Description

Definition at line 8 of file Quaternion.h.

Constructor & Destructor Documentation

◆ Quaternion() [1/6]

Quaternion::Quaternion ( )
inline

Definition at line 48 of file Quaternion.h.

Referenced by operator*=().

◆ Quaternion() [2/6]

Quaternion::Quaternion ( const Quaternion &  quat)
inline

Definition at line 53 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 58 of file Quaternion.h.

◆ Quaternion() [4/6]

Quaternion::Quaternion ( const Vector_t &  vec)
inline

Definition at line 63 of file Quaternion.h.

◆ Quaternion() [5/6]

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

Definition at line 68 of file Quaternion.h.

◆ Quaternion() [6/6]

Quaternion::Quaternion ( const matrix_t &  M)

Definition at line 22 of file Quaternion.cpp.

Member Function Documentation

◆ conjugate()

Quaternion Quaternion::conjugate ( ) const
inline

◆ getRotationMatrix()

matrix_t 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 117 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 91 of file Quaternion.h.

Referenced by isPureUnit().

◆ isPureUnit()

bool Quaternion::isPureUnit ( ) const
inline

Definition at line 97 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 85 of file Quaternion.h.

References Norm().

Referenced by isPureUnit(), and rotate().

Here is the call graph for this function:

◆ length()

double Quaternion::length ( ) const
inline

Definition at line 79 of file Quaternion.h.

References Norm().

Referenced by normalize().

Here is the call graph for this function:

◆ Norm()

double Quaternion::Norm ( ) const
inline

Definition at line 73 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 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 111 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: