#include <so2.h>
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 |
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 & | operator>> (std::istream &, SO2 &) |
std::istream & | operator>> (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) |
Two-dimensional rotation matrices are members of the Special Orthogonal Lie group SO2. This group can be parameterised with one number (the rotation angle).
SO2 | ( | ) |
Default constructor. Initialises the matrix to the identity (no rotation).
Referenced by SO2< P >::inverse(), and SO2< P >::operator*().
SO2 | ( | const Precision | l | ) |
Construct from an angle.
Assigment operator from a general matrix.
This also calls coerce() to make sure that the matrix is a valid rotation matrix.
void coerce | ( | ) |
Modifies the matrix to make sure it is a valid rotation matrix.
Referenced by SO2< P >::operator=(), and SO2< Precision >::operator>>().
static SO2 exp | ( | const Precision & | d | ) | [static] |
Precision ln | ( | ) | const |
extracts the rotation angle from the SO2
SO2 inverse | ( | ) | const |
Returns the inverse of this matrix (=the transpose, so this is a fast operation).
const Matrix<2,2,Precision>& get_matrix | ( | ) | const |
static Matrix<2,2,Precision> generator | ( | ) | [static] |
returns generator matrix
std::istream & operator>> | ( | std::istream & | is, | |
SE2< Precision > & | rhs | |||
) | [friend] |
Read an SE2 from a stream.
References SE2< Precision >::get_rotation(), and SE2< Precision >::get_translation().
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] |