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 | Static Public Attributes | Private Member Functions | Private Attributes | Static Private Attributes | Friends | List of all members
TooN::SL< N, Precision > Class Template Reference

#include <sl.h>

Classes

struct  Invert
 

Public Member Functions

 SL ()
 default constructor, creates identity element More...
 
template<int S, typename P , typename B >
 SL (const Vector< S, P, B > &v)
 exp constructor, creates element through exponentiation of Lie algebra vector. see SL::exp. More...
 
template<int R, int C, typename P , typename A >
 SL (const Matrix< R, C, P, A > &M)
 copy constructor from a matrix, coerces matrix to be of determinant = 1 More...
 
const Matrix< N, N, Precision > & get_matrix () const
 returns the represented matrix More...
 
SL inverse () const
 returns the inverse using LU More...
 
SL operator* (const SL &rhs) const
 multiplies to SLs together by multiplying the underlying matrices More...
 
SL operator*= (const SL &rhs)
 right multiplies this SL with another one More...
 
template<int S, typename P , typename B >
SL< N, Precision > exp (const Vector< S, P, B > &v)
 

Static Public Member Functions

template<int S, typename P , typename B >
static SL exp (const Vector< S, P, B > &)
 
static Matrix< N, N, Precision > generator (int)
 

Static Public Attributes

static const int size = N
 size of the matrices represented by SL<N> More...
 
static const int dim = N*N - 1
 dimension of the vector space represented by SL<N> More...
 

Private Member Functions

 SL (const SL &from, struct Invert)
 
 SL (const SL &a, const SL &b)
 
void coerce ()
 

Private Attributes

Matrix< N, N, Precision > my_matrix
 } More...
 

Static Private Attributes

static const int COUNT_DIAG = N - 1
 
static const int COUNT_SYMM = (dim - COUNT_DIAG)/2
 
static const int COUNT_ASYMM = COUNT_SYMM
 
static const int DIAG_LIMIT = COUNT_DIAG
 
static const int SYMM_LIMIT = COUNT_SYMM + DIAG_LIMIT
 

Friends

std::istream & operator>> (std::istream &, SL &)
 

Detailed Description

template<int N, typename Precision = double>
class TooN::SL< N, Precision >

represents an element from the group SL(n), the NxN matrices M with det(M) = 1. This can be used to conveniently estimate homographies on n-1 dimentional spaces. The implementation uses the matrix exponential function exp for exponentiation from an element in the Lie algebra and LU to compute an inverse.

The Lie algebra are the NxN matrices M with trace(M) = 0. The N*N-1 generators used to represent this vector space are the following:

Definition at line 42 of file sl.h.

Constructor & Destructor Documentation

template<int N, typename Precision = double>
TooN::SL< N, Precision >::SL ( )
inline

default constructor, creates identity element

Definition at line 66 of file sl.h.

template<int N, typename Precision = double>
template<int S, typename P , typename B >
TooN::SL< N, Precision >::SL ( const Vector< S, P, B > &  v)
inline

exp constructor, creates element through exponentiation of Lie algebra vector. see SL::exp.

Definition at line 70 of file sl.h.

template<int N, typename Precision = double>
template<int R, int C, typename P , typename A >
TooN::SL< N, Precision >::SL ( const Matrix< R, C, P, A > &  M)
inline

copy constructor from a matrix, coerces matrix to be of determinant = 1

Definition at line 74 of file sl.h.

template<int N, typename Precision = double>
TooN::SL< N, Precision >::SL ( const SL< N, Precision > &  from,
struct Invert   
)
inlineprivate

Definition at line 98 of file sl.h.

template<int N, typename Precision = double>
TooN::SL< N, Precision >::SL ( const SL< N, Precision > &  a,
const SL< N, Precision > &  b 
)
inlineprivate

Definition at line 102 of file sl.h.

Member Function Documentation

template<int N, typename Precision = double>
void TooN::SL< N, Precision >::coerce ( )
inlineprivate

Definition at line 104 of file sl.h.

template<int N, typename Precision = double>
template<int S, typename P , typename B >
static SL TooN::SL< N, Precision >::exp ( const Vector< S, P, B > &  )
inlinestatic

exponentiates a vector in the Lie algebra to compute the corresponding element

template<int N, typename Precision = double>
template<int S, typename P , typename B >
SL<N, Precision> TooN::SL< N, Precision >::exp ( const Vector< S, P, B > &  v)
inline

Definition at line 127 of file sl.h.

template<int N, typename Precision >
Matrix< N, N, Precision > TooN::SL< N, Precision >::generator ( int  i)
inlinestatic

returns one generator of the group. see SL for a detailed description of the generators used.

  • i number of the generator between 0 and SL::dim -1 inclusive

Definition at line 138 of file sl.h.

template<int N, typename Precision = double>
const Matrix<N,N,Precision>& TooN::SL< N, Precision >::get_matrix ( ) const
inline

returns the represented matrix

Definition at line 77 of file sl.h.

template<int N, typename Precision = double>
SL TooN::SL< N, Precision >::inverse ( ) const
inline

returns the inverse using LU

Definition at line 79 of file sl.h.

template<int N, typename Precision = double>
SL TooN::SL< N, Precision >::operator* ( const SL< N, Precision > &  rhs) const
inline

multiplies to SLs together by multiplying the underlying matrices

Definition at line 82 of file sl.h.

template<int N, typename Precision = double>
SL TooN::SL< N, Precision >::operator*= ( const SL< N, Precision > &  rhs)
inline

right multiplies this SL with another one

Definition at line 84 of file sl.h.

Friends And Related Function Documentation

template<int N, typename Precision = double>
std::istream& operator>> ( std::istream &  ,
SL< N, Precision > &   
)
friend

Member Data Documentation

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::COUNT_ASYMM = COUNT_SYMM
staticprivate

Definition at line 117 of file sl.h.

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::COUNT_DIAG = N - 1
staticprivate

these constants indicate which parts of the parameter vector map to which generators {

Definition at line 115 of file sl.h.

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::COUNT_SYMM = (dim - COUNT_DIAG)/2
staticprivate

Definition at line 116 of file sl.h.

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::DIAG_LIMIT = COUNT_DIAG
staticprivate

Definition at line 118 of file sl.h.

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::dim = N*N - 1
static

dimension of the vector space represented by SL<N>

Definition at line 63 of file sl.h.

template<int N, typename Precision = double>
Matrix<N,N,Precision> TooN::SL< N, Precision >::my_matrix
private

}

Definition at line 122 of file sl.h.

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::size = N
static

size of the matrices represented by SL<N>

Definition at line 62 of file sl.h.

template<int N, typename Precision = double>
const int TooN::SL< N, Precision >::SYMM_LIMIT = COUNT_SYMM + DIAG_LIMIT
staticprivate

Definition at line 119 of file sl.h.


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