BALL::TQuaternion< T > Class Template Reference
[Quaternion]

#include <BALL/MATHS/quaternion.h>

Inheritance diagram for BALL::TQuaternion< T >:
Inheritance graph
[legend]

List of all members.

Public Member Functions

Constructors and Destructors

 TQuaternion ()
 TQuaternion (const TQuaternion &q)
 TQuaternion (const boost::math::quaternion< T > &q)
 TQuaternion (const T &w, const T &i, const T &j, const T &k)
 TQuaternion (const TVector3< T > &axis, const T &angle)
 ~TQuaternion ()
void clear ()
Assignment

void set (const TQuaternion &q)
void set (const boost::math::quaternion< T > &q)
BALL_DEPRECATED void set (const TVector3< T > &axis, const T &angle)
void set (const T &w, const T &i, const T &j, const T &k)
TQuaternionoperator= (const TQuaternion &q)
TQuaternionoperator= (const boost::math::quaternion< T > &q)
void setIdentity ()
TQuaternion< T > & normalize ()
void swap (TQuaternion &q)
void fromAxisAngle (const TVector3< T > &axis, const T &angle)
void fromEulerAngles (const T &yaw, const T &pitch, const T &roll)
void toAxisAngle (TVector3< T > &axis, T &angle)
void toEulerAngles (T &yaw, T &pitch, T &roll)
void get (TQuaternion &q) const
getAngle () const
TVector3< T > getAxis ()
TMatrix4x4< T > & getRotationMatrix (TMatrix4x4< T > &m) const
TQuaternion getInverse () const
TQuaternion getConjugate () const
Accessors

T & w ()
const T & w () const
T & i ()
const T & i () const
T & j ()
const T & j () const
T & k ()
const T & k () const
Debugging and Diagnostics

void dump (std::ostream &s=std::cout, Size depth=0) const

Detailed Description

template<typename T>
class BALL::TQuaternion< T >

Generic Quaternion Class.

Representing a rotation in three dimensional space.

Definition at line 30 of file quaternion.h.


Constructor & Destructor Documentation

template<typename T >
BALL::TQuaternion< T >::TQuaternion (  )  [inline]

Default constructor. This method creates a new TQuaternion object. The quaternion is set to an identity quaternion.

Definition at line 268 of file quaternion.h.

template<typename T >
BALL::TQuaternion< T >::TQuaternion ( const TQuaternion< T > &  q  )  [inline]

Copy constructor. Create a new TQuaternion object from another.

Parameters:
TQuaternion the TQuaternion object to be copied

Definition at line 275 of file quaternion.h.

template<typename T>
BALL::TQuaternion< T >::TQuaternion ( const boost::math::quaternion< T > &  q  )  [inline]

Detailed constructor. Create a new TQuaternion object from a boost::math::quaternion.

Parameters:
boost::math::quaternion<T> 

Definition at line 281 of file quaternion.h.

template<typename T>
BALL::TQuaternion< T >::TQuaternion ( const T &  w,
const T &  i,
const T &  j,
const T &  k 
) [inline]

Detailed constructor. Create a new TQuaternion object from four values of type T.

Parameters:
w assigned to the angular component w
i assigned to the vector component i
j assigned to the vector component j
k assigned to the vector component k

Definition at line 287 of file quaternion.h.

template<typename T>
BALL::TQuaternion< T >::TQuaternion ( const TVector3< T > &  axis,
const T &  angle 
) [inline]

Detailed constructor. Create a new TQuaternion object from a variable of type TVector3 and an angle.

Parameters:
axis assigned to the axis
angle assigned to the angle

Definition at line 293 of file quaternion.h.

template<typename T >
BALL::TQuaternion< T >::~TQuaternion (  )  [inline]

Destructor. Destructs the TQuaternion object. As there are no dynamic data structures, nothing happens.

Definition at line 300 of file quaternion.h.


Member Function Documentation

template<typename T >
void BALL::TQuaternion< T >::clear (  )  [inline]

Clear method. The values are set to the identity quaternion.

Definition at line 305 of file quaternion.h.

template<typename T >
void BALL::TQuaternion< T >::dump ( std::ostream &  s = std::cout,
Size  depth = 0 
) const [inline]

Internal state dump. Dump the current internal state of {*this} to the output ostream s with dumping depth depth .

Parameters:
s - output stream where to output the internal state of {*this}
depth - the dumping depth

Definition at line 650 of file quaternion.h.

template<typename T>
void BALL::TQuaternion< T >::fromAxisAngle ( const TVector3< T > &  axis,
const T &  angle 
) [inline]

Assign the TQuaternion from an rotation axis and an angle.

Parameters:
axis the rotation axis
angle the rotation angle

Definition at line 401 of file quaternion.h.

template<typename T>
void BALL::TQuaternion< T >::fromEulerAngles ( const T &  yaw,
const T &  pitch,
const T &  roll 
) [inline]

Assign the TQuaternion from Euler angles. Assume the following rotation order:. q' = roll( pitch( yaw(q) ) ).

Parameters:
yaw the rotation about the yaw axis z-axis()
pitch the rotation about the pitch axis (y-axis)
roll the nrotation about the roll axis (x-axis)

Definition at line 423 of file quaternion.h.

template<typename T >
BALL_INLINE void BALL::TQuaternion< T >::get ( TQuaternion< T > &  q  )  const [inline]

Assign to another TQuaternion. Assigns the components to another TQuaternion.

Parameters:
q the TQuaternion to be assigned to

Definition at line 504 of file quaternion.h.

template<typename T >
T BALL::TQuaternion< T >::getAngle (  )  const [inline]

Get the positive angle rotation.

Returns:
T the angle value

Definition at line 510 of file quaternion.h.

template<typename T >
TVector3< T > BALL::TQuaternion< T >::getAxis (  )  [inline]

Get the normalized direction vector of the rotation axis.

Returns:
TVector3 the axis

Definition at line 524 of file quaternion.h.

template<typename T >
BALL_INLINE TQuaternion< T > BALL::TQuaternion< T >::getConjugate (  )  const [inline]

Return the conjugate TQuaternion. (The axis components are negated.)

Returns:
TQuaternion the conjugate TQuaternion

Definition at line 577 of file quaternion.h.

template<typename T >
BALL_INLINE TQuaternion< T > BALL::TQuaternion< T >::getInverse (  )  const [inline]

Get the inverse TQuaternion.

Returns:
TQuaternion the inverse TQuaternion

Definition at line 569 of file quaternion.h.

template<typename T>
TMatrix4x4< T > & BALL::TQuaternion< T >::getRotationMatrix ( TMatrix4x4< T > &  m  )  const [inline]

Get the rotation matrix.

Parameters:
m the matrix to compute from
Returns:
TMatrix4x4 the rotation matrix

Definition at line 538 of file quaternion.h.

template<typename T >
const T & BALL::TQuaternion< T >::i (  )  const [inline]

Get the constant axis component i.

Returns:
get a const reference to the axis component i

Definition at line 595 of file quaternion.h.

template<typename T >
T & BALL::TQuaternion< T >::i (  )  [inline]

Get the axis component i.

Returns:
get a reference to the axis component i

Definition at line 601 of file quaternion.h.

template<typename T >
const T & BALL::TQuaternion< T >::j (  )  const [inline]

Get the constant axis component j.

Returns:
get a const reference to the axis component j

Definition at line 607 of file quaternion.h.

template<typename T >
T & BALL::TQuaternion< T >::j (  )  [inline]

Get the axis component j.

Returns:
get a reference to the axis component j

Definition at line 613 of file quaternion.h.

template<typename T >
const T & BALL::TQuaternion< T >::k (  )  const [inline]

Get the constant axis component k.

Returns:
get a const reference to the axis component k

Definition at line 619 of file quaternion.h.

template<typename T >
T & BALL::TQuaternion< T >::k (  )  [inline]

Get the axis component k.

Returns:
get a reference to the axis component k

Definition at line 625 of file quaternion.h.

template<typename T >
BALL_INLINE TQuaternion< T > & BALL::TQuaternion< T >::normalize (  )  [inline]

Normalize the quaternion. The quaternion is scaled with its norm:

Returns:
TQuaternion&, a reference to the normalized quaternion

Definition at line 366 of file quaternion.h.

template<typename T>
BALL_INLINE TQuaternion< T > & BALL::TQuaternion< T >::operator= ( const boost::math::quaternion< T > &  q  )  [inline]

Assignment operator Assign the TQuaternion components from a boost::math::quaternion.

Definition at line 342 of file quaternion.h.

template<typename T >
BALL_INLINE TQuaternion< T > & BALL::TQuaternion< T >::operator= ( const TQuaternion< T > &  q  )  [inline]

Assignment operator. Assign the TQuaternion components form another TQuaternion.

Definition at line 350 of file quaternion.h.

template<typename T>
BALL_INLINE void BALL::TQuaternion< T >::set ( const T &  w,
const T &  i,
const T &  j,
const T &  k 
) [inline]

Assign the TQuaternion components.

Parameters:
w assigned to the angular component w
i assigned to the vector component i
j assigned to the vector component j
k assigned to the vector component k

Definition at line 331 of file quaternion.h.

template<typename T>
BALL_INLINE void BALL::TQuaternion< T >::set ( const TVector3< T > &  axis,
const T &  angle 
) [inline]

Assign the TQuaternion components.

Parameters:
axis the new axis component
angle the new angle component
Deprecated:
use TQuaternion::fromAxisAngle() instead

Definition at line 324 of file quaternion.h.

template<typename T>
void BALL::TQuaternion< T >::set ( const boost::math::quaternion< T > &  q  )  [inline]

Definition at line 317 of file quaternion.h.

template<typename T >
void BALL::TQuaternion< T >::set ( const TQuaternion< T > &  q  )  [inline]

Definition at line 311 of file quaternion.h.

template<typename T >
BALL_INLINE void BALL::TQuaternion< T >::setIdentity (  )  [inline]

Set to an identity matrix. angular component w = 1; axis components i,j,k are set to 0;

Definition at line 358 of file quaternion.h.

template<typename T >
void BALL::TQuaternion< T >::swap ( TQuaternion< T > &  q  )  [inline]

Swap the contents of two TQuaternion.

Parameters:
q the TQuaternion to swap contents with

Definition at line 381 of file quaternion.h.

template<typename T>
void BALL::TQuaternion< T >::toAxisAngle ( TVector3< T > &  axis,
T &  angle 
) [inline]

Assign the TQuaternion to an axis and an angle. the rotation axis is normalized.

Parameters:
axis the rotation axis
angle the rotation angle

Definition at line 447 of file quaternion.h.

template<typename T>
void BALL::TQuaternion< T >::toEulerAngles ( T &  yaw,
T &  pitch,
T &  roll 
) [inline]

Assign the TQuaternion to Euler angles. Assume the following rotation order:. q' = roll( pitch( yaw(q) ) ).

Parameters:
yaw the rotation about the yaw axis z-axis()
pitch the rotation about the pitch axis (y-axis)
roll the nrotation about the roll axis (x-axis)

Definition at line 467 of file quaternion.h.

template<typename T >
const T & BALL::TQuaternion< T >::w (  )  const [inline]

Get the constant angular component w.

Returns:
get a const reference to the angular component w

Definition at line 583 of file quaternion.h.

template<typename T >
T & BALL::TQuaternion< T >::w (  )  [inline]

Get the angular component w.

Returns:
get a reference to the angular component w

Definition at line 589 of file quaternion.h.

Generated by  doxygen 1.6.3