Jafar
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Public Types | Public Member Functions | Static Public Member Functions | Protected Member Functions | Protected Attributes | Static Private Member Functions | Friends
jafar::geom::T3D Class Reference

A generic 3D transformation, support for uncertain transformation. More...


Detailed Description

A generic 3D transformation, support for uncertain transformation.

Definition at line 22 of file t3d.hpp.

#include <t3d.hpp>

Inheritance diagram for jafar::geom::T3D:
Inheritance graph
[legend]

List of all members.

Public Types

enum  Type { EULER, QUATERNION, ROTATION_VECTOR, IDENTITY }
enum  Standard { CALIFE_TO_JAFAR, JAFAR_TO_CALIFE }

Public Member Functions

T3Doperator= (const T3D &t)
 Assign t to the current object.
void assign (T3D const &t)
 Assign t to the current object.
virtual Type type () const =0
std::size_t size () const
jblas::vec const & getX () const
jblas::vecgetX ()
jblas::sym_mat const & getXCov () const
jblas::sym_matgetXCov ()
jblas::vec getXStdDev ()
 Returns the square root of the diagonal of XCov.
const jblas::mat44getM () const
jblas::mat33 getR () const
jblas::vec3 getT () const
bool hasCov () const
bool is2D () const
bool isMuptodate () const
bool isIdentity () const
void clear ()
 clear x and xCov (to zero)
void set (const jblas::vec &x_)
 set the value of the T3D to x_
void set (const jblas::mat &M_)
 set the value of the T3D to the matrix M_
void set (const jblas::mat &R_, const jblas::vec &t_)
 set the value of the T3D to the rotation matrix R_ and translation t_
void set (const jblas::vec &x_, const jblas::vec &xStdDev_)
 set the value of the T3D to x_ with standard deviation xStdDev__
void set (const jblas::vec &x_, const jblas::sym_mat &xCov_)
 set the value of the T3D to x_ with covariance xCov_
void set2D (bool is2D=true)
 set the 2D flag
void rearrange (const Standard &standard=JAFAR_TO_CALIFE)
 inverts order of rotation subvector and translation subvector : either you know what you're doing and use it or not so DON'T use it cause any t3d operation will give you false result created it since I was bothered with all the inversions and those stuff in my code and here seems to be the right place for it.

Static Public Member Functions

static void inv (T3D const &t, T3D &t_inv)
 Compute inverse transformation of t_ , result is stored in t_inv.
static void inv (T3D const &t, T3D &t_inv, jblas::mat &J)
 Compute inverse transformation of t_ , result is stored in t_inv.
static void compose (T3D const &t1, T3D const &t2, T3D &t3)
 Compose t1_ and t2_, the result is stored in t3_.
static void composeIncr (T3D &t1, T3D const &t2)
 Compose t1_ and t2_, the result is stored in t1_.
static void compose (T3D const &t1, T3D const &t2, T3D &t3, jblas::mat &J1, jblas::mat &J2)
 Compose t1_ and t2_, the result is stored in t3_, and also save the jacobian in J1 and J2.
static void convert (T3D const &t1, T3D &t2)
 Convert t1_ to t2 format, result is stored in t2.
template<class T3D_res >
static T3D_res compose (T3D const &t1, T3D const &t2)
template<class T3D_res >
static T3D_res inv (T3D const &t)
static T3Dcreate (Type type)
 Factory method, returns a t3d from its type.
static T3Dclone (T3D const &t)
 Factory method, clone t.

Protected Member Functions

 T3D (std::size_t size, bool hasCov_)
 T3D (std::size_t size, const jblas::vec &x_, bool hasCov_)
 T3D (std::size_t size, const jblas::vec &x_, const jblas::vec &xStdDev_)
 T3D (std::size_t size, const jblas::vec &x_, const jblas::sym_mat &xCov_)
 T3D (const jblas::mat &M_)
 T3D (const T3D &t_)
virtual void updateM () const =0
 update the homogeneous matrix from x.
virtual void updateX ()=0
 update x from the homogeneous matrix.
void loadKeyValueFile (jafar::kernel::KeyValueFile const &keyValueFile)
 Implement this method calling repeatedly KeyValueFile::getItem() method.
void saveKeyValueFile (jafar::kernel::KeyValueFile &keyValueFile)
 Implement this method calling repeatedly KeyValueFile::setItem() method.
void writeLogHeader (jafar::kernel::DataLogger &log) const
 Implements this method calling repeatidly log methods.
void writeLogData (jafar::kernel::DataLogger &log) const
 Implements this method calling repeatidly log methods.

Protected Attributes

jblas::vec x
 vector representing the t3d.
jblas::sym_mat xCov
 covariance of x
jblas::mat44 M
 homogeneous matrix of the t3d.
bool p_hasCov
bool p_is2D
bool p_isMuptodate

Static Private Member Functions

static void invImpl (T3D const &t, T3D &t_inv)

Friends

std::ostream & operator<< (std::ostream &s, const T3D &t3d)
 t3d output stream function

Member Enumeration Documentation

Enumerator:
EULER 

jafar::geom::T3DEuler

QUATERNION 

jafar::geom::T3DQuaternion

ROTATION_VECTOR 

jafar::geom::T3DRotationVector

IDENTITY 

jafar::geom::T3DIdentity

Definition at line 26 of file t3d.hpp.


Member Function Documentation

void jafar::geom::T3D::assign ( T3D const &  t)

Assign t to the current object.

T3D t can be of any type.

static void jafar::geom::T3D::compose ( T3D const &  t1,
T3D const &  t2,
T3D t3 
) [static]

Compose t1_ and t2_, the result is stored in t3_.

Warning:
t3_ must be a different object than t1_ and t2_.
static void jafar::geom::T3D::compose ( T3D const &  t1,
T3D const &  t2,
T3D t3,
jblas::mat J1,
jblas::mat J2 
) [static]

Compose t1_ and t2_, the result is stored in t3_, and also save the jacobian in J1 and J2.

This compose function don't set the covariance of t3_.

Warning:
t3_ must be a different object than t1_ and t2_.
static void jafar::geom::T3D::inv ( T3D const &  t,
T3D t_inv 
) [static]

Compute inverse transformation of t_ , result is stored in t_inv.

Warning:
t_ and t_inv must be two different objects
static void jafar::geom::T3D::inv ( T3D const &  t,
T3D t_inv,
jblas::mat J 
) [static]

Compute inverse transformation of t_ , result is stored in t_inv.

Warning:
t_ and t_inv must be two different objects
T3D& jafar::geom::T3D::operator= ( const T3D t)

Assign t to the current object.

If t3d can be of different type, use assign().

void jafar::geom::T3D::rearrange ( const Standard &  standard = JAFAR_TO_CALIFE)

inverts order of rotation subvector and translation subvector : either you know what you're doing and use it or not so DON'T use it cause any t3d operation will give you false result created it since I was bothered with all the inversions and those stuff in my code and here seems to be the right place for it.

virtual Type jafar::geom::T3D::type ( ) const [pure virtual]
void jafar::geom::T3D::writeLogData ( jafar::kernel::DataLogger log) const [protected, virtual]

Implements this method calling repeatidly log methods.

You should use writeData() or writeDataVector().

Implements jafar::kernel::DataLoggable.

void jafar::geom::T3D::writeLogHeader ( jafar::kernel::DataLogger log) const [protected, virtual]

Implements this method calling repeatidly log methods.

You should use writeComment(), writeLegend() or writeLegendTokens().

Implements jafar::kernel::DataLoggable.


The documentation for this class was generated from the following file:
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines

Generated on Wed Oct 15 2014 00:37:37 for Jafar by doxygen 1.7.6.1
LAAS-CNRS