Helios++
Helios software for LiDAR simulations
rigidmotion::RigidMotionFactory Class Referenceabstract

Class that must be extended by any class which provides factory methods for rigid motions. Notice all rigid motions should be instantiated through corresponding factories. More...

#include <RigidMotionFactory.h>

Inheritance diagram for rigidmotion::RigidMotionFactory:

Public Member Functions

 RigidMotionFactory ()=default
 RigidMotionFactory default constructor.
 
virtual RigidMotion makeIdentity () const =0
 Build the identity rigid motion. More...
 
virtual RigidMotion makeTranslation (arma::colvec const shift) const =0
 Build the translation rigid motion. More...
 

Private Member Functions

template<class Archive >
void serialize (Archive &ar, const unsigned int version)
 Serialize a rigid motion factory to a stream of bytes. More...
 

Friends

class boost::serialization::access
 

Detailed Description

Class that must be extended by any class which provides factory methods for rigid motions. Notice all rigid motions should be instantiated through corresponding factories.

Author
Alberto M. Esmoris Pena
Version
1.0
See also
rigidmotion::RigidMotionR2Factory
rigidmotion::RigidMotionR3Factory

Member Function Documentation

◆ makeIdentity()

virtual RigidMotion rigidmotion::RigidMotionFactory::makeIdentity ( ) const
pure virtual

Build the identity rigid motion.

The identity rigid motion \(f\) satisfies \(f(x)=x\). Using affine application notation it is \(X = C + AX\) which is satisfied if \(C=\vec{0}\) and \(A=I\) where \(I\) is the identity matrix.

Returns
Identity rigid motion

Implemented in rigidmotion::RigidMotionR3Factory, and rigidmotion::RigidMotionR2Factory.

◆ makeTranslation()

virtual RigidMotion rigidmotion::RigidMotionFactory::makeTranslation ( arma::colvec const  shift) const
pure virtual

Build the translation rigid motion.

The translation rigid motion \(f\) satisfies \(f(x) = x + \vec{s}\) where \(\vec{s}\) is the translation vector (shift). Using affine application notation it is \(Y = \vec{s} + IX\) where \(I\) is the identity matrix.

Parameters
shiftShift vector defining the translation
Returns
Translation rigid motion

◆ serialize()

template<class Archive >
void rigidmotion::RigidMotionFactory::serialize ( Archive &  ar,
const unsigned int  version 
)
inlineprivate

Serialize a rigid motion factory to a stream of bytes.

Template Parameters
ArchiveType of rendering
Parameters
arSpecific rendering for the stream of bytes
versionVersion number for the rigid motion factory

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