TooN: SO2< Precision > Class Template Reference

TooN 2.0.0-beta8

- Main Page
- Related Pages
- Modules
- Namespaces
- Classes
- Files

- Class List
- Class Hierarchy
- Class Members

Classes | Public Member Functions | Static Public Member Functions | Friends | Related Functions
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 >
SO2 & | operator= (const Matrix< R, C, P, A > &rhs)
void | coerce ()
Precision | ln () const
SO2 | inverse () const
template<typename P >
SO2 & | operator*= (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().