TooN 2.1
Classes | Public Member Functions | Static Public Member Functions | Friends | Related Functions
SO2< Precision > Class Template Reference

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
template<typename P >
SO2operator*= (const SO2< P > &rhs)
template<typename P >
SO2< typename
Internal::MultiplyType
< Precision, P >::type > 
operator* (const SO2< P > &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 > &)
std::istream & operator>> (std::istream &, SIM2< 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 = DefaultPrecision>
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).


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.


Friends And Related Function Documentation

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

Read an SE2 from a stream.

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

Read an SIM2 from a stream.

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