SO2< Precision > Class Template Reference
[Transformation matrices]

Class to represent a two-dimensional rotation matrix. More...

#include <so2.h>

List of all members.

Classes

struct  Invert

Public Member Functions

 SO2 ()
 SO2 (const Matrix< 2, 2, Precision > &rhs)
 SO2 (const Precision l)
template<int R, int C, typename P , typename A >
SO2operator= (const Matrix< R, C, P, A > &rhs)
void coerce ()
Precision ln () const
SO2 inverse () const
SO2operator*= (const SO2 &rhs)
SO2 operator* (const SO2 &rhs) const
const Matrix< 2, 2, Precision > & get_matrix () const

Static Public Member Functions

static SO2 exp (const Precision &d)
static Matrix< 2, 2, Precision > generator ()

Friends

std::istream & operator>> (std::istream &, SO2 &)
std::istream & operator>> (std::istream &, SE2< Precision > &)

Related Functions

(Note that these are not member functions.)

template<typename Precision >
SE2< Precision > operator* (const SO2< Precision > &lhs, const SE2< Precision > &rhs)
template<typename Precision >
std::ostream & operator<< (std::ostream &os, const SO2< Precision > &rhs)
template<typename Precision >
std::istream & operator>> (std::istream &is, SO2< Precision > &rhs)
template<int D, typename P1 , typename PV , typename Accessor >
Vector< 2, typename
Internal::MultiplyType< P1, PV >
::type > 
operator* (const SO2< P1 > &lhs, const Vector< D, PV, Accessor > &rhs)
template<int D, typename P1 , typename PV , typename Accessor >
Vector< 2, typename
Internal::MultiplyType< PV, P1 >
::type > 
operator* (const Vector< D, PV, Accessor > &lhs, const SO2< P1 > &rhs)
template<int R, int C, typename P1 , typename P2 , typename Accessor >
Matrix< 2, C, typename
Internal::MultiplyType< P1, P2 >
::type > 
operator* (const SO2< P1 > &lhs, const Matrix< R, C, P2, Accessor > &rhs)
template<int R, int C, typename P1 , typename P2 , typename Accessor >
Matrix< R, 2, typename
Internal::MultiplyType< P1, P2 >
::type > 
operator* (const Matrix< R, C, P1, Accessor > &lhs, const SO2< P2 > &rhs)


Detailed Description

template<typename Precision = double>
class TooN::SO2< Precision >

Class to represent a two-dimensional rotation matrix.

Two-dimensional rotation matrices are members of the Special Orthogonal Lie group SO2. This group can be parameterised with one number (the rotation angle).


Constructor & Destructor Documentation

SO2 (  ) 

Default constructor. Initialises the matrix to the identity (no rotation).

Referenced by SO2< P >::inverse(), and SO2< P >::operator*().

SO2 ( const Matrix< 2, 2, Precision > &  rhs  ) 

Construct from a rotation matrix.

SO2 ( const Precision  l  ) 

Construct from an angle.


Member Function Documentation

SO2& operator= ( const Matrix< R, C, P, A > &  rhs  ) 

Assigment operator from a general matrix.

This also calls coerce() to make sure that the matrix is a valid rotation matrix.

void coerce (  ) 

Modifies the matrix to make sure it is a valid rotation matrix.

Referenced by SO2< P >::operator=(), and SO2< Precision >::operator>>().

static SO2 exp ( const Precision &  d  )  [static]

Exponentiate an angle in the Lie algebra to generate a new SO2.

Referenced by SO2< P >::SO2().

Precision ln (  )  const

extracts the rotation angle from the SO2

SO2 inverse (  )  const

Returns the inverse of this matrix (=the transpose, so this is a fast operation).

SO2& operator*= ( const SO2< Precision > &  rhs  ) 

Self right-multiply by another rotation matrix.

SO2 operator* ( const SO2< Precision > &  rhs  )  const

Right-multiply by another rotation matrix.

const Matrix<2,2,Precision>& get_matrix (  )  const

Returns the SO2 as a Matrix<2>.

Referenced by SO2< Precision >::operator*().

static Matrix<2,2,Precision> generator (  )  [static]

returns generator matrix


Friends And Related Function Documentation

std::istream & operator>> ( std::istream &  is,
SE2< Precision > &  rhs 
) [friend]

Read an SE2 from a stream.

SE2< Precision > operator* ( const SO2< Precision > &  lhs,
const SE2< Precision > &  rhs 
) [related]

std::ostream & operator<< ( std::ostream &  os,
const SO2< Precision > &  rhs 
) [related]

Write an SO2 to a stream.

std::istream & operator>> ( std::istream &  is,
SO2< Precision > &  rhs 
) [related]

Read from SO2 to a stream.

References SO2< Precision >::coerce().

Vector< 2, typename Internal::MultiplyType< P1, PV >::type > operator* ( const SO2< P1 > &  lhs,
const Vector< D, PV, Accessor > &  rhs 
) [related]

Right-multiply by a Vector.

References SO2< Precision >::get_matrix().

Vector< 2, typename Internal::MultiplyType< PV, P1 >::type > operator* ( const Vector< D, PV, Accessor > &  lhs,
const SO2< P1 > &  rhs 
) [related]

Left-multiply by a Vector.

References SO2< Precision >::get_matrix().

Matrix< 2, C, typename Internal::MultiplyType< P1, P2 >::type > operator* ( const SO2< P1 > &  lhs,
const Matrix< R, C, P2, Accessor > &  rhs 
) [related]

Right-multiply by a Matrix.

References SO2< Precision >::get_matrix().

Matrix< R, 2, typename Internal::MultiplyType< P1, P2 >::type > operator* ( const Matrix< R, C, P1, Accessor > &  lhs,
const SO2< P2 > &  rhs 
) [related]

Left-multiply by a Matrix.

References SO2< Precision >::get_matrix().


Generated on Tue Oct 27 16:08:51 2009 for TooN by  doxygen 1.5.9