MRPT logo

mrpt::math::CQuaternion< T > Class Template Reference

General functions for quaternion. More...

#include <mrpt/math/CQuaternion.h>

Inheritance diagram for mrpt::math::CQuaternion< T >:

mrpt::math::CVectorTemplate< T >

List of all members.

Public Member Functions

 CQuaternion ()
 Default constructor: construct a (0,0,0,0) quaternion representing no rotation.
 CQuaternion (const T &r, const T &x, const T &y, const T &z)
 Construct a quaternion from its parameters 'r', 'x', 'y', 'z', with q = r + ix + jy + kz.
 CQuaternion (const CQuaternion &qin)
 Construct a quaternion as copy of an input quaternion.
 CQuaternion (const CVectorTemplate< T > &in)
 Construct a quaternion from a 3D input vector (Rodrigues rotation 3-vector).
r () const
 Return r coordinate of the quaternion.
x () const
 Return x coordinate of the quaternion.
y () const
 Return y coordinate of the quaternion.
z () const
 Return z coordinate of the quaternion.
void r (const T &r)
 Set r coordinate of the quaternion.
void x (const T &x)
 Set x coordinate of the quaternion.
void y (const T &y)
 Set y coordinate of the quaternion.
void z (const T &z)
 Set z coordinate of the quaternion.
void q_conv (const CVectorTemplate< T > &in)
 Set this quaternion to the rotation described by a 3D Rodrigues rotation vector.
void q_prod (const CQuaternion &qin1, const CQuaternion &qin2)
 Calculate the cross product of two quaternion, this = qin1 x qin2 The result is an other quaternion.
void q_normalise ()
 Normalised quaternion.
void q_normJac (CMatrixTemplateNumeric< T > &J) const
 Calculate the normalized 4x4 Jacobian of a quaternion.
void q_rotation_matrix (CMatrixTemplateNumeric< T > &M) const
 Calculate the 3x3 rotation matrix associated to this quaternion.
CQuaternion q_conj () const
 Return the conjugate quaternion.
void rpy (T &r, T &p, T &y) const
 Return the roll, pitch and yaw angle associated to quaternion.
CQuaternion operator* (const T &factor)


Detailed Description

template<class T>
class mrpt::math::CQuaternion< T >

General functions for quaternion.

This quaternion class represents a 3D rotation as a complex vector with 3 imaginary parts x, y, z and 1 real part r. Where q = r + ix + jy + kz.

For more information about quaternions, see:

Definition at line 48 of file CQuaternion.h.


Constructor & Destructor Documentation

template<class T >
mrpt::math::CQuaternion< T >::CQuaternion (  )  [inline]

Default constructor: construct a (0,0,0,0) quaternion representing no rotation.

Definition at line 57 of file CQuaternion.h.

template<class T >
mrpt::math::CQuaternion< T >::CQuaternion ( const T &  r,
const T &  x,
const T &  y,
const T &  z 
) [inline]

Construct a quaternion from its parameters 'r', 'x', 'y', 'z', with q = r + ix + jy + kz.

Definition at line 62 of file CQuaternion.h.

template<class T >
mrpt::math::CQuaternion< T >::CQuaternion ( const CQuaternion< T > &  qin  )  [inline]

Construct a quaternion as copy of an input quaternion.

Definition at line 72 of file CQuaternion.h.

template<class T >
mrpt::math::CQuaternion< T >::CQuaternion ( const CVectorTemplate< T > &  in  )  [inline]

Construct a quaternion from a 3D input vector (Rodrigues rotation 3-vector).

Definition at line 77 of file CQuaternion.h.

References THROW_EXCEPTION, mrpt::math::CQuaternion< T >::x(), mrpt::math::CQuaternion< T >::y(), and mrpt::math::CQuaternion< T >::z().


Member Function Documentation

template<class T >
CQuaternion mrpt::math::CQuaternion< T >::operator* ( const T &  factor  )  [inline]

Definition at line 231 of file CQuaternion.h.

template<class T >
CQuaternion mrpt::math::CQuaternion< T >::q_conj (  )  const [inline]

Return the conjugate quaternion.

Definition at line 206 of file CQuaternion.h.

template<class T >
void mrpt::math::CQuaternion< T >::q_conv ( const CVectorTemplate< T > &  in  )  [inline]

Set this quaternion to the rotation described by a 3D Rodrigues rotation vector.

Definition at line 119 of file CQuaternion.h.

References ASSERT_, mrpt::math::CQuaternion< T >::x(), mrpt::math::CQuaternion< T >::y(), and mrpt::math::CQuaternion< T >::z().

template<class T >
void mrpt::math::CQuaternion< T >::q_normalise (  )  [inline]

Normalised quaternion.

Definition at line 161 of file CQuaternion.h.

References mrpt::utils::square().

Referenced by mrpt::math::CQuaternion< T >::q_prod().

template<class T >
void mrpt::math::CQuaternion< T >::q_normJac ( CMatrixTemplateNumeric< T > &  J  )  const [inline]

Calculate the normalized 4x4 Jacobian of a quaternion.

Definition at line 171 of file CQuaternion.h.

References mrpt::math::CMatrixTemplateNumeric< T >::setSize().

template<class T >
void mrpt::math::CQuaternion< T >::q_prod ( const CQuaternion< T > &  qin1,
const CQuaternion< T > &  qin2 
) [inline]

Calculate the cross product of two quaternion, this = qin1 x qin2 The result is an other quaternion.

Definition at line 137 of file CQuaternion.h.

References mrpt::math::CQuaternion< T >::q_normalise(), mrpt::math::CQuaternion< T >::r(), mrpt::math::CQuaternion< T >::x(), mrpt::math::CQuaternion< T >::y(), and mrpt::math::CQuaternion< T >::z().

template<class T >
void mrpt::math::CQuaternion< T >::q_rotation_matrix ( CMatrixTemplateNumeric< T > &  M  )  const [inline]

Calculate the 3x3 rotation matrix associated to this quaternion.

Definition at line 190 of file CQuaternion.h.

References mrpt::math::CMatrixTemplateNumeric< T >::setSize().

template<class T >
void mrpt::math::CQuaternion< T >::r ( const T &  r  )  [inline]

Set r coordinate of the quaternion.

Definition at line 112 of file CQuaternion.h.

template<class T >
T mrpt::math::CQuaternion< T >::r (  )  const [inline]

Return r coordinate of the quaternion.

Definition at line 108 of file CQuaternion.h.

Referenced by mrpt::math::CQuaternion< T >::q_prod().

template<class T >
void mrpt::math::CQuaternion< T >::rpy ( T &  r,
T &  p,
T &  y 
) const [inline]

Return the roll, pitch and yaw angle associated to quaternion.

Definition at line 218 of file CQuaternion.h.

template<class T >
void mrpt::math::CQuaternion< T >::x ( const T &  x  )  [inline]

Set x coordinate of the quaternion.

Definition at line 113 of file CQuaternion.h.

template<class T >
T mrpt::math::CQuaternion< T >::x (  )  const [inline]

Return x coordinate of the quaternion.

Definition at line 109 of file CQuaternion.h.

Referenced by mrpt::math::CQuaternion< T >::CQuaternion(), mrpt::math::CQuaternion< T >::q_conv(), and mrpt::math::CQuaternion< T >::q_prod().

template<class T >
void mrpt::math::CQuaternion< T >::y ( const T &  y  )  [inline]

Set y coordinate of the quaternion.

Definition at line 114 of file CQuaternion.h.

template<class T >
T mrpt::math::CQuaternion< T >::y (  )  const [inline]

Return y coordinate of the quaternion.

Definition at line 110 of file CQuaternion.h.

Referenced by mrpt::math::CQuaternion< T >::CQuaternion(), mrpt::math::CQuaternion< T >::q_conv(), and mrpt::math::CQuaternion< T >::q_prod().

template<class T >
void mrpt::math::CQuaternion< T >::z ( const T &  z  )  [inline]

Set z coordinate of the quaternion.

Definition at line 115 of file CQuaternion.h.

template<class T >
T mrpt::math::CQuaternion< T >::z (  )  const [inline]

Return z coordinate of the quaternion.

Definition at line 111 of file CQuaternion.h.

Referenced by mrpt::math::CQuaternion< T >::CQuaternion(), mrpt::math::CQuaternion< T >::q_conv(), and mrpt::math::CQuaternion< T >::q_prod().




Page generated by Doxygen 1.5.7.1 for MRPT 0.7.1 SVN: at Mon Aug 17 23:10:56 EDT 2009