#include <so2.h>
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. | |
SO2 & | operator*= (const SO2 &rhs) |
Self right-multiply by another rotation matrix. | |
template<int R, int C, typename P , typename A > | |
SO2 & | operator= (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) |
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.
void TooN::SO2< Precision >::coerce | ( | ) | [inline] |
Precision TooN::SO2< Precision >::ln | ( | ) | const [inline] |
Matrix< R, 2, typename Internal::MultiplyType< P1, P2 >::type > operator* | ( | const Matrix< R, C, P1, Accessor > & | lhs, | |
const SO2< P2 > & | rhs | |||
) | [related] |
Matrix< 2, C, typename Internal::MultiplyType< P1, P2 >::type > operator* | ( | const SO2< P1 > & | lhs, | |
const Matrix< R, C, P2, Accessor > & | rhs | |||
) | [related] |
Vector< 2, typename Internal::MultiplyType< PV, P1 >::type > operator* | ( | const Vector< D, PV, Accessor > & | lhs, | |
const SO2< P1 > & | rhs | |||
) | [related] |
Vector< 2, typename Internal::MultiplyType< P1, PV >::type > operator* | ( | const SO2< P1 > & | lhs, | |
const Vector< D, PV, Accessor > & | rhs | |||
) | [related] |
std::ostream & operator<< | ( | std::ostream & | os, | |
const SO2< Precision > & | rhs | |||
) | [related] |
std::istream & operator>> | ( | std::istream & | is, | |
SE2< Precision > & | rhs | |||
) | [friend] |
std::istream & operator>> | ( | std::istream & | is, | |
SO2< Precision > & | rhs | |||
) | [friend] |