TooN::SO2< Precision > Class Template Reference
[Transformation matrices]

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

#include <so2.h>

List of all members.

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 & o (std::istream &, SO2 &)
std::istream & o (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)

Classes

struct  Invert


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

template<typename Precision = double>
TooN::SO2< Precision >::SO2 (  ) 

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


Member Function Documentation

template<typename Precision = double>
template<int R, int C, typename P, typename A>
SO2& TooN::SO2< Precision >::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.

template<typename Precision = double>
void TooN::SO2< Precision >::coerce (  ) 

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

template<typename Precision = double>
static SO2 TooN::SO2< Precision >::exp ( const Precision &  d  )  [static]

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

template<typename Precision = double>
Precision TooN::SO2< Precision >::ln (  )  const

extracts the rotation angle from the SO2

template<typename Precision = double>
SO2 TooN::SO2< Precision >::inverse (  )  const

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

template<typename Precision = double>
SO2& TooN::SO2< Precision >::operator *= ( const SO2< Precision > &  rhs  ) 

Self right-multiply by another rotation matrix.

template<typename Precision = double>
SO2 TooN::SO2< Precision >::operator * ( const SO2< Precision > &  rhs  )  const

Right-multiply by another rotation matrix.

template<typename Precision = double>
const Matrix<2,2,Precision>& TooN::SO2< Precision >::get_matrix (  )  const

Returns the SO2 as a Matrix<2>.

template<typename Precision = double>
static Matrix<2,2,Precision> TooN::SO2< Precision >::generator (  )  [static]

returns generator matrix


Friends And Related Function Documentation

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

Multiply a SO2 with and SE2.

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

Write an SO2 to a stream.

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

Read from SO2 to a stream.

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 
) [related]

Right-multiply by a Vector.

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 
) [related]

Left-multiply by a Vector.

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 
) [related]

Right-multiply by a Matrix.

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 
) [related]

Left-multiply by a Matrix.


Generated on Thu May 7 20:28:41 2009 for TooN by  doxygen 1.5.3