TooN 2.1
|
Represent a two-dimensional Euclidean transformation (a rotation and a translation). More...
#include <se2.h>
Public Member Functions | |
SE2 () | |
template<class A > | |
SE2 (const SO2< Precision > &R, const Vector< 2, Precision, A > &T) | |
template<int S, class P , class A > | |
SE2 (const Vector< S, P, A > &v) | |
SO2< Precision > & | get_rotation () |
const SO2< Precision > & | get_rotation () const |
Vector< 2, Precision > & | get_translation () |
const Vector< 2, Precision > & | get_translation () const |
Vector< 3, Precision > | ln () const |
SE2 | inverse () const |
template<typename P > | |
SE2< typename Internal::MultiplyType < Precision, P >::type > | operator* (const SE2< P > &rhs) const |
template<typename P > | |
SE2 & | operator*= (const SE2< P > &rhs) |
template<typename Accessor > | |
Vector< 3, Precision > | adjoint (const Vector< 3, Precision, Accessor > &vect) const |
template<typename Accessor > | |
Matrix< 3, 3, Precision > | adjoint (const Matrix< 3, 3, Precision, Accessor > &M) const |
template<int S, typename PV , typename Accessor > | |
SE2< Precision > | exp (const Vector< S, PV, Accessor > &mu) |
Static Public Member Functions | |
template<int S, typename P , typename A > | |
static SE2 | exp (const Vector< S, P, A > &vect) |
static Vector< 3, Precision > | ln (const SE2 &se2) |
static Matrix< 3, 3, Precision > | generator (int i) |
Related Functions | |
(Note that these are not member functions.) | |
template<class Precision > | |
std::ostream & | operator<< (std::ostream &os, const SE2< Precision > &rhs) |
template<int S, typename P , typename PV , typename A > | |
Vector< 3, typename Internal::MultiplyType< P, PV > ::type > | operator* (const SE2< P > &lhs, const Vector< S, PV, A > &rhs) |
template<typename P , typename PV , typename A > | |
Vector< 2, typename Internal::MultiplyType< P, PV > ::type > | operator* (const SE2< P > &lhs, const Vector< 2, PV, A > &rhs) |
template<int S, typename P , typename PV , typename A > | |
Vector< 3, typename Internal::MultiplyType< PV, P > ::type > | operator* (const Vector< S, PV, A > &lhs, const SE2< P > &rhs) |
template<int R, int Cols, typename PM , typename A , typename P > | |
Matrix< 3, Cols, typename Internal::MultiplyType< P, PM > ::type > | operator* (const SE2< P > &lhs, const Matrix< R, Cols, PM, A > &rhs) |
template<int Rows, int C, typename PM , typename A , typename P > | |
Matrix< Rows, 3, typename Internal::MultiplyType< PM, P > ::type > | operator* (const Matrix< Rows, C, PM, A > &lhs, const SE2< P > &rhs) |
Represent a two-dimensional Euclidean transformation (a rotation and a translation).
This can be represented by a matrix operating on a homogeneous co-ordinate, so that a vector is transformed to a new location by
This transformation is a member of the Special Euclidean Lie group SE2. These can be parameterised with three numbers (in the space of the Lie Algebra). In this class, the first two parameters are a translation vector while the third is the amount of rotation in the plane as for SO2.
const SO2<Precision>& get_rotation | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
const Vector<2, Precision>& get_translation | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Take the logarithm of the matrix, generating the corresponding vector in the Lie Algebra.
See the Detailed Description for details of this vector.
Vector<3, Precision> ln | ( | ) | const |
This is an overloaded member function, provided for convenience. It differs from the above function only in what argument(s) it accepts.
Referenced by SE2< P >::ln().
SE2<typename Internal::MultiplyType<Precision,P>::type> operator* | ( | const SE2< P > & | rhs | ) | const |
Right-multiply by another SE2 (concatenate the two transformations)
rhs | The multipier |
Self right-multiply by another SE2 (concatenate the two transformations)
rhs | The multipier |
static Matrix<3,3, Precision> generator | ( | int | i | ) | [static] |
returns the generators for the Lie group.
These are a set of matrices that form a basis for the vector space of the Lie algebra.
std::ostream & operator<< | ( | std::ostream & | os, |
const SE2< Precision > & | rhs | ||
) | [related] |
Write an SE2 to a stream.
Vector< 3, typename Internal::MultiplyType< P, PV >::type > operator* | ( | const SE2< P > & | lhs, |
const Vector< S, PV, A > & | rhs | ||
) | [related] |
Right-multiply with a Vector<3>
Vector< 2, typename Internal::MultiplyType< P, PV >::type > operator* | ( | const SE2< P > & | lhs, |
const Vector< 2, PV, A > & | rhs | ||
) | [related] |
Right-multiply with a Vector<2> (special case, extended to be a homogeneous vector)
References SE2< Precision >::get_rotation(), and SE2< Precision >::get_translation().
Vector< 3, typename Internal::MultiplyType< PV, P >::type > operator* | ( | const Vector< S, PV, A > & | lhs, |
const SE2< P > & | rhs | ||
) | [related] |
Left-multiply with a Vector<3>
Matrix< 3, Cols, typename Internal::MultiplyType< P, PM >::type > operator* | ( | const SE2< P > & | lhs, |
const Matrix< R, Cols, PM, A > & | rhs | ||
) | [related] |
Right-multiply with a Matrix<3>
Matrix< Rows, 3, typename Internal::MultiplyType< PM, P >::type > operator* | ( | const Matrix< Rows, C, PM, A > & | lhs, |
const SE2< P > & | rhs | ||
) | [related] |
Left-multiply with a Matrix<3>