SLAMflex SE  0.1.0
SLAMflex provides detection and tracking of dominant planes for smartphone devices. This plane can then be used to show AR content relative to the plane orientation. The detection of plane is performed in the field of view of the smartphone camera. In subsequent frames it is tracked. The interface returns the plane position and orientation.
Classes | Public Member Functions | Static Public Member Functions | Private Member Functions | Private Attributes | Friends | Related Functions | List of all members
TooN::SO2< Precision > Class Template Reference

#include <so2.h>

Classes

struct  Invert
 

Public Member Functions

 SO2 ()
 Default constructor. Initialises the matrix to the identity (no rotation) More...
 
 SO2 (const Matrix< 2, 2, Precision > &rhs)
 Construct from a rotation matrix. More...
 
 SO2 (const Precision l)
 Construct from an angle. More...
 
template<int R, int C, typename P , typename A >
SO2operator= (const Matrix< R, C, P, A > &rhs)
 
void coerce ()
 Modifies the matrix to make sure it is a valid rotation matrix. More...
 
Precision ln () const
 extracts the rotation angle from the SO2 More...
 
SO2 inverse () const
 Returns the inverse of this matrix (=the transpose, so this is a fast operation) More...
 
template<typename P >
SO2operator*= (const SO2< P > &rhs)
 Self right-multiply by another rotation matrix. More...
 
template<typename P >
SO2< typename Internal::MultiplyType< Precision, P >::type > operator* (const SO2< P > &rhs) const
 Right-multiply by another rotation matrix. More...
 
const Matrix< 2, 2, Precision > & get_matrix () const
 Returns the SO2 as a Matrix<2> More...
 

Static Public Member Functions

static SO2 exp (const Precision &d)
 Exponentiate an angle in the Lie algebra to generate a new SO2. More...
 
static Matrix< 2, 2, Precision > generator ()
 returns generator matrix More...
 

Private Member Functions

 SO2 (const SO2 &so2, const Invert &)
 
template<typename PA , typename PB >
 SO2 (const SO2< PA > &a, const SO2< PB > &b)
 

Private Attributes

Matrix< 2, 2, Precision > my_matrix
 

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)
 

Detailed Description

template<typename Precision = double>
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).

Definition at line 39 of file so2.h.

Constructor & Destructor Documentation

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( )
inline

Default constructor. Initialises the matrix to the identity (no rotation)

Definition at line 56 of file so2.h.

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( const Matrix< 2, 2, Precision > &  rhs)
inline

Construct from a rotation matrix.

Definition at line 59 of file so2.h.

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( const Precision  l)
inline

Construct from an angle.

Definition at line 65 of file so2.h.

template<typename Precision = double>
TooN::SO2< Precision >::SO2 ( const SO2< Precision > &  so2,
const Invert  
)
inlineprivate

Definition at line 124 of file so2.h.

template<typename Precision = double>
template<typename PA , typename PB >
TooN::SO2< Precision >::SO2 ( const SO2< PA > &  a,
const SO2< PB > &  b 
)
inlineprivate

Definition at line 126 of file so2.h.

Member Function Documentation

template<typename Precision = double>
void TooN::SO2< Precision >::coerce ( )
inline

Modifies the matrix to make sure it is a valid rotation matrix.

Definition at line 77 of file so2.h.

template<typename Precision = double>
static SO2 TooN::SO2< Precision >::exp ( const Precision &  d)
inlinestatic

Exponentiate an angle in the Lie algebra to generate a new SO2.

Definition at line 84 of file so2.h.

template<typename Precision = double>
static Matrix<2,2,Precision> TooN::SO2< Precision >::generator ( )
inlinestatic

returns generator matrix

Definition at line 115 of file so2.h.

template<typename Precision = double>
const Matrix<2,2,Precision>& TooN::SO2< Precision >::get_matrix ( ) const
inline

Returns the SO2 as a Matrix<2>

Definition at line 112 of file so2.h.

template<typename Precision = double>
SO2 TooN::SO2< Precision >::inverse ( ) const
inline

Returns the inverse of this matrix (=the transpose, so this is a fast operation)

Definition at line 96 of file so2.h.

template<typename Precision = double>
Precision TooN::SO2< Precision >::ln ( ) const
inline

extracts the rotation angle from the SO2

Definition at line 93 of file so2.h.

template<typename Precision = double>
template<typename P >
SO2<typename Internal::MultiplyType<Precision, P>::type> TooN::SO2< Precision >::operator* ( const SO2< P > &  rhs) const
inline

Right-multiply by another rotation matrix.

Definition at line 107 of file so2.h.

template<typename Precision = double>
template<typename P >
SO2& TooN::SO2< Precision >::operator*= ( const SO2< P > &  rhs)
inline

Self right-multiply by another rotation matrix.

Definition at line 100 of file so2.h.

template<typename Precision = double>
template<int R, int C, typename P , typename A >
SO2& TooN::SO2< Precision >::operator= ( const Matrix< R, C, P, A > &  rhs)
inline

Assigment operator from a general matrix. This also calls coerce() to make sure that the matrix is a valid rotation matrix.

Definition at line 70 of file so2.h.

Friends And Related Function Documentation

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 
)
related

Right-multiply by a Vector

Definition at line 149 of file so2.h.

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 
)
related

Left-multiply by a Vector

Definition at line 156 of file so2.h.

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 
)
related

Right-multiply by a Matrix

Definition at line 163 of file so2.h.

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 
)
related

Left-multiply by a Matrix

Definition at line 170 of file so2.h.

template<typename Precision >
SE2< Precision > operator* ( const SO2< Precision > &  lhs,
const SE2< Precision > &  rhs 
)
related

Multiply a SO2 with and SE2

Definition at line 366 of file se2.h.

template<typename Precision >
std::ostream & operator<< ( std::ostream &  os,
const SO2< Precision > &  rhs 
)
related

Write an SO2 to a stream

Definition at line 134 of file so2.h.

template<typename Precision = double>
std::istream& operator>> ( std::istream &  ,
SO2< Precision > &   
)
friend
template<typename Precision = double>
std::istream& operator>> ( std::istream &  ,
SE2< Precision > &   
)
friend
template<typename Precision >
std::istream & operator>> ( std::istream &  is,
SO2< Precision > &  rhs 
)
related

Read from SO2 to a stream

Definition at line 141 of file so2.h.

Member Data Documentation

template<typename Precision = double>
Matrix<2,2,Precision> TooN::SO2< Precision >::my_matrix
private

Definition at line 128 of file so2.h.


The documentation for this class was generated from the following files: