#include <so2.h>
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 |
SO2 & | operator *= (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 |
Two-dimensional rotation matrices are members of the Special Orthogonal Lie group SO2. This group can be parameterised with one number (the rotation angle).
Default constructor. Initialises the matrix to the identity (no rotation).
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.
void TooN::SO2< Precision >::coerce | ( | ) |
Modifies the matrix to make sure it is a valid rotation matrix.
static SO2 TooN::SO2< Precision >::exp | ( | const Precision & | d | ) | [static] |
Exponentiate an angle in the Lie algebra to generate a new SO2.
Precision TooN::SO2< Precision >::ln | ( | ) | const |
extracts the rotation angle from the SO2
Returns the inverse of this matrix (=the transpose, so this is a fast operation).
SO2& TooN::SO2< Precision >::operator *= | ( | const SO2< Precision > & | rhs | ) |
Self right-multiply by another rotation matrix.
SO2 TooN::SO2< Precision >::operator * | ( | const SO2< Precision > & | rhs | ) | const |
Right-multiply by another rotation matrix.
const Matrix<2,2,Precision>& TooN::SO2< Precision >::get_matrix | ( | ) | const |
Returns the SO2 as a Matrix<2>.
static Matrix<2,2,Precision> TooN::SO2< Precision >::generator | ( | ) | [static] |
returns generator matrix
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.
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.
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.
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.
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.