GranOO  3.0
A robust and versatile workbench to build 3D dynamic simulations based on the Discrete Element Method
Public Member Functions | Static Public Member Functions | Public Attributes | Static Public Attributes | Private Member Functions | Friends | List of all members
GranOO3::Geom::Quaternion Class Reference

#include <Quaternion.hpp>

Public Member Functions

 Quaternion ()
 
 Quaternion (const Vector &axis, double angle)
 
 Quaternion (const Vector &v)
 
 Quaternion (double vx, double vy, double vz, double s)
 
 Quaternion (const Quaternion &q)
 
 Quaternion (const Quaternion &q, const Frame &from, const Frame &to)
 
 Quaternion (const Vector &from, const Vector &to)
 
 ~Quaternion ()
 
void set_axis_angle (const Vector &axis, double angle)
 
void set_angle (double angle)
 
void set_vec_from_to (const Vector &from, const Vector &to)
 
Vector get_axis () const
 
double get_angle () const
 
void get_axis_angle (Vector &axis, double &angle) const
 
void to_euler_angle (EulerAngle &) const
 
EulerAngle to_euler_angle () const
 
Quaternionoperator= (const EulerAngle &)
 
void set_value (double q0, double q1, double q2, double q3)
 
double & x ()
 
const double & x () const
 
double & y ()
 
const double & y () const
 
double & z ()
 
const double & z () const
 
double & r ()
 
const double & r () const
 
void set_x (const double &)
 
void set_y (const double &)
 
void set_z (const double &)
 
void set_r (const double &)
 
double get_x () const
 
double get_y () const
 
double get_z () const
 
double get_r () const
 
template<typename Axis >
double & val ()
 
template<typename Axis >
const double & val () const
 
const double & operator() (unsigned int i) const
 
double & operator() (unsigned int i)
 
Quaternionoperator= (const Quaternion &Q)
 
void operator*= (const Quaternion &Q)
 
void operator*= (const Vector &v)
 
void operator*= (const double &d)
 
void operator+= (const Quaternion &Q)
 
void operator-= (const Quaternion &Q)
 
Vector rotate (const Vector &v_in) const
 
Vector inverse_rotate (const Vector &v_in) const
 
void rotate (const Vector &v_in, Vector &v_out) const
 
void inverse_rotate (const Vector &v_in, Vector &v_out) const
 
bool is_nan () const
 
void clear ()
 
void clear_unit ()
 
Quaternion conjugate () const
 
Tensor to_rotation_matrix () const
 
Vector to_vector () const
 
double norm () const
 
double squared_norm () const
 
double normalize ()
 
Quaternion normalized () const
 
bool is_unit () const
 
std::string info () const
 
void add_glob (const std::string &id)
 

Static Public Member Functions

static Quaternionglob (const std::string &id)
 
static std::string class_ID ()
 
static Quaternionnew_object (const TiXmlElement *el)
 

Public Attributes

Eigen::Matrix< double, 4, 1 > coord
 

Static Public Attributes

static const Quaternionglobal = global::quaternion
 
static const Quaternionnull = null::quaternion
 
static const int N = 4
 

Private Member Functions

void equalize (const Quaternion &)
 
template<class Archive >
void serialize (Archive &ar, const unsigned int)
 

Friends

class boost::serialization::access
 
std::ostream & operator<< (std::ostream &, const Quaternion &)
 
Quaternion slerp (const Quaternion &, const Quaternion &, const double &ratio)
 
Quaternion operator* (const Quaternion &, const Vector &)
 
Quaternion operator* (const Vector &, const Quaternion &)
 
Quaternion operator* (const Quaternion &, const Quaternion &)
 
Quaternion operator* (const Quaternion &, const double &)
 
Quaternion operator* (const double &, const Quaternion &)
 
Quaternion operator+ (const Quaternion &, const Quaternion &)
 
Quaternion operator- (const Quaternion &, const Quaternion &)
 
bool operator== (const Quaternion &, const Quaternion &)
 

Constructor & Destructor Documentation

◆ Quaternion() [1/7]

GranOO3::Geom::Quaternion::Quaternion ( )

◆ Quaternion() [2/7]

GranOO3::Geom::Quaternion::Quaternion ( const Vector axis,
double  angle 
)

◆ Quaternion() [3/7]

GranOO3::Geom::Quaternion::Quaternion ( const Vector v)
explicit

◆ Quaternion() [4/7]

GranOO3::Geom::Quaternion::Quaternion ( double  vx,
double  vy,
double  vz,
double  s 
)

◆ Quaternion() [5/7]

GranOO3::Geom::Quaternion::Quaternion ( const Quaternion q)

◆ Quaternion() [6/7]

GranOO3::Geom::Quaternion::Quaternion ( const Quaternion q,
const Frame from,
const Frame to 
)

◆ Quaternion() [7/7]

GranOO3::Geom::Quaternion::Quaternion ( const Vector from,
const Vector to 
)

◆ ~Quaternion()

GranOO3::Geom::Quaternion::~Quaternion ( )

Member Function Documentation

◆ add_glob()

void GranOO3::Geom::Quaternion::add_glob ( const std::string &  id)

◆ class_ID()

static std::string GranOO3::Geom::Quaternion::class_ID ( )
inlinestatic

◆ clear()

void GranOO3::Geom::Quaternion::clear ( )

◆ clear_unit()

void GranOO3::Geom::Quaternion::clear_unit ( )

◆ conjugate()

Quaternion GranOO3::Geom::Quaternion::conjugate ( ) const

◆ equalize()

void GranOO3::Geom::Quaternion::equalize ( const Quaternion )
private

◆ get_angle()

double GranOO3::Geom::Quaternion::get_angle ( ) const

◆ get_axis()

Vector GranOO3::Geom::Quaternion::get_axis ( ) const

◆ get_axis_angle()

void GranOO3::Geom::Quaternion::get_axis_angle ( Vector axis,
double &  angle 
) const

◆ get_r()

double GranOO3::Geom::Quaternion::get_r ( ) const

◆ get_x()

double GranOO3::Geom::Quaternion::get_x ( ) const

◆ get_y()

double GranOO3::Geom::Quaternion::get_y ( ) const

◆ get_z()

double GranOO3::Geom::Quaternion::get_z ( ) const

◆ glob()

Quaternion & GranOO3::Geom::Quaternion::glob ( const std::string &  id)
static

◆ info()

std::string GranOO3::Geom::Quaternion::info ( ) const

◆ inverse_rotate() [1/2]

Vector GranOO3::Geom::Quaternion::inverse_rotate ( const Vector v_in) const

◆ inverse_rotate() [2/2]

void GranOO3::Geom::Quaternion::inverse_rotate ( const Vector v_in,
Vector v_out 
) const

◆ is_nan()

bool GranOO3::Geom::Quaternion::is_nan ( ) const

◆ is_unit()

bool GranOO3::Geom::Quaternion::is_unit ( ) const

◆ new_object()

Quaternion * GranOO3::Geom::Quaternion::new_object ( const TiXmlElement *  el)
static

◆ norm()

double GranOO3::Geom::Quaternion::norm ( ) const

◆ normalize()

double GranOO3::Geom::Quaternion::normalize ( )

◆ normalized()

Quaternion GranOO3::Geom::Quaternion::normalized ( ) const

◆ operator()() [1/2]

double& GranOO3::Geom::Quaternion::operator() ( unsigned int  i)

◆ operator()() [2/2]

const double& GranOO3::Geom::Quaternion::operator() ( unsigned int  i) const

◆ operator*=() [1/3]

void GranOO3::Geom::Quaternion::operator*= ( const double &  d)

◆ operator*=() [2/3]

void GranOO3::Geom::Quaternion::operator*= ( const Quaternion Q)

◆ operator*=() [3/3]

void GranOO3::Geom::Quaternion::operator*= ( const Vector v)

◆ operator+=()

void GranOO3::Geom::Quaternion::operator+= ( const Quaternion Q)

◆ operator-=()

void GranOO3::Geom::Quaternion::operator-= ( const Quaternion Q)

◆ operator=() [1/2]

Quaternion & GranOO3::Geom::Quaternion::operator= ( const EulerAngle e)

◆ operator=() [2/2]

Quaternion& GranOO3::Geom::Quaternion::operator= ( const Quaternion Q)

◆ r() [1/2]

double& GranOO3::Geom::Quaternion::r ( )

◆ r() [2/2]

const double& GranOO3::Geom::Quaternion::r ( ) const

◆ rotate() [1/2]

Vector GranOO3::Geom::Quaternion::rotate ( const Vector v_in) const

◆ rotate() [2/2]

void GranOO3::Geom::Quaternion::rotate ( const Vector v_in,
Vector v_out 
) const

◆ serialize()

template<class Archive >
void GranOO3::Geom::Quaternion::serialize ( Archive &  ar,
const unsigned int   
)
private

◆ set_angle()

void GranOO3::Geom::Quaternion::set_angle ( double  angle)

◆ set_axis_angle()

void GranOO3::Geom::Quaternion::set_axis_angle ( const Vector axis,
double  angle 
)

◆ set_r()

void GranOO3::Geom::Quaternion::set_r ( const double &  )

◆ set_value()

void GranOO3::Geom::Quaternion::set_value ( double  q0,
double  q1,
double  q2,
double  q3 
)

◆ set_vec_from_to()

void GranOO3::Geom::Quaternion::set_vec_from_to ( const Vector from,
const Vector to 
)

◆ set_x()

void GranOO3::Geom::Quaternion::set_x ( const double &  )

◆ set_y()

void GranOO3::Geom::Quaternion::set_y ( const double &  )

◆ set_z()

void GranOO3::Geom::Quaternion::set_z ( const double &  )

◆ squared_norm()

double GranOO3::Geom::Quaternion::squared_norm ( ) const

◆ to_euler_angle() [1/2]

EulerAngle GranOO3::Geom::Quaternion::to_euler_angle ( ) const

◆ to_euler_angle() [2/2]

void GranOO3::Geom::Quaternion::to_euler_angle ( EulerAngle e) const

◆ to_rotation_matrix()

Tensor GranOO3::Geom::Quaternion::to_rotation_matrix ( ) const

◆ to_vector()

Vector GranOO3::Geom::Quaternion::to_vector ( ) const

◆ val() [1/2]

template<typename Axis >
double& GranOO3::Geom::Quaternion::val ( )

◆ val() [2/2]

template<typename Axis >
const double& GranOO3::Geom::Quaternion::val ( ) const

◆ x() [1/2]

double& GranOO3::Geom::Quaternion::x ( )

◆ x() [2/2]

const double& GranOO3::Geom::Quaternion::x ( ) const

◆ y() [1/2]

double& GranOO3::Geom::Quaternion::y ( )

◆ y() [2/2]

const double& GranOO3::Geom::Quaternion::y ( ) const

◆ z() [1/2]

double& GranOO3::Geom::Quaternion::z ( )

◆ z() [2/2]

const double& GranOO3::Geom::Quaternion::z ( ) const

Friends And Related Function Documentation

◆ boost::serialization::access

friend class boost::serialization::access
friend

◆ operator* [1/5]

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

◆ operator* [2/5]

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

◆ operator* [3/5]

Quaternion operator* ( const Quaternion ,
const Quaternion  
)
friend

◆ operator* [4/5]

Quaternion operator* ( const Quaternion ,
const Vector  
)
friend

◆ operator* [5/5]

Quaternion operator* ( const Vector ,
const Quaternion  
)
friend

◆ operator+

Quaternion operator+ ( const Quaternion ,
const Quaternion  
)
friend

◆ operator-

Quaternion operator- ( const Quaternion ,
const Quaternion  
)
friend

◆ operator<<

std::ostream& operator<< ( std::ostream &  ,
const Quaternion  
)
friend

◆ operator==

bool operator== ( const Quaternion ,
const Quaternion  
)
friend

◆ slerp

Quaternion slerp ( const Quaternion ,
const Quaternion ,
const double &  ratio 
)
friend

Member Data Documentation

◆ coord

Eigen::Matrix<double, 4, 1> GranOO3::Geom::Quaternion::coord

◆ global

const Quaternion & GranOO3::Geom::Quaternion::global = global::quaternion
static

◆ N

const int GranOO3::Geom::Quaternion::N = 4
static

◆ null

const Quaternion & GranOO3::Geom::Quaternion::null = null::quaternion
static

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