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

#include <so2.h>

List of all members.

Classes

struct  Invert

Public Member Functions

void coerce ()
 Modifies the matrix to make sure it is a valid rotation matrix.
const Matrix< 2, 2, Precision > & get_matrix () const
 Returns the SO2 as a Matrix<2>
SO2 inverse () const
 Returns the inverse of this matrix (=the transpose, so this is a fast operation).
Precision ln () const
 extracts the rotation angle from the SO2
SO2 operator* (const SO2 &rhs) const
 Right-multiply by another rotation matrix.
SO2operator*= (const SO2 &rhs)
 Self right-multiply by another rotation matrix.
template<int R, int C, typename P , typename A >
SO2operator= (const Matrix< R, C, P, A > &rhs)
 SO2 (const Precision l)
 Construct from an angle.
 SO2 (const Matrix< 2, 2, Precision > &rhs)
 Construct from a rotation matrix.
 SO2 ()
 Default constructor. Initialises the matrix to the identity (no rotation).

Static Public Member Functions

static SO2 exp (const Precision &d)
 Exponentiate an angle in the Lie algebra to generate a new SO2.
static Matrix< 2, 2, Precision > generator ()
 returns generator matrix

Private Member Functions

 SO2 (const SO2 &a, const SO2 &b)
 SO2 (const SO2 &so2, const Invert &)

Private Attributes

Matrix< 2, 2, Precision > my_matrix

Friends

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

Related Functions

(Note that these are not member functions.)



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)
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 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 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<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)

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).

Definition at line 50 of file so2.h.


Constructor & Destructor Documentation

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

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

Definition at line 56 of file so2.h.

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( const Matrix< 2, 2, Precision > &  rhs  )  [inline]

Construct from a rotation matrix.

Definition at line 59 of file so2.h.

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( const Precision  l  )  [inline]

Construct from an angle.

Definition at line 62 of file so2.h.

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( const SO2< Precision > &  so2,
const Invert  
) [inline, private]

Definition at line 117 of file so2.h.

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( const SO2< Precision > &  a,
const SO2< Precision > &  b 
) [inline, private]

Definition at line 118 of file so2.h.


Member Function Documentation

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

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

Definition at line 74 of file so2.h.

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

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

Definition at line 81 of file so2.h.

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

returns generator matrix

Definition at line 108 of file so2.h.

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

Returns the SO2 as a Matrix<2>

Definition at line 105 of file so2.h.

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

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

Definition at line 93 of file so2.h.

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

extracts the rotation angle from the SO2

Definition at line 90 of file so2.h.

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

Right-multiply by another rotation matrix.

Definition at line 102 of file so2.h.

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

Self right-multiply by another rotation matrix.

Definition at line 96 of file so2.h.

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

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

Definition at line 67 of file so2.h.


Friends And Related Function Documentation

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

Definition at line 162 of file so2.h.

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

Definition at line 155 of file so2.h.

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

Definition at line 148 of file so2.h.

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

Definition at line 141 of file so2.h.

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

Multiply a SO2 with and SE2

Definition at line 371 of file se2.h.

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

Write an SO2 to a stream

Definition at line 126 of file so2.h.

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

Read an SE2 from a stream

Definition at line 150 of file se2.h.

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

Read from SO2 to a stream

Definition at line 133 of file so2.h.


Member Data Documentation

template<typename Precision = double>
Matrix<2,2,Precision> TooN::SO2< Precision >::my_matrix [private]

Definition at line 120 of file so2.h.


The documentation for this class was generated from the following files:
 All Classes Namespaces Files Functions Variables Typedefs Friends Defines


libtoon
Author(s): Florian Weisshardt
autogenerated on Fri Jan 11 10:09:50 2013