Helios++
Helios software for LiDAR simulations
DynMotionEngine.h
1 #pragma once
2 
3 #include <rigidmotion/RigidMotionEngine.h>
4 #include <rigidmotion/RigidMotionR3Factory.h>
5 #include <DynObject.h>
6 #include <DynMotion.h>
7 
8 using namespace arma;
11 
24 private:
25  // *** SERIALIZATION *** //
26  // *********************** //
27  friend class boost::serialization::access;
34  template <typename Archive>
35  void serialize(Archive &ar, const unsigned int version){
36  ar &rme;
37  ar &rm3f;
38  }
39 
40 protected:
41  // *** ATTRIBUTES *** //
42  // ******************** //
55 
56 public:
57  // *** CONSTRUCTION / DESTRUCTION *** //
58  // ************************************ //
63  DynMotionEngine() = default;
68  DynMotionEngine(RigidMotionEngine const &rme) : rme(rme) {}
69  virtual ~DynMotionEngine() = default;
70 
71  // *** DYNAMIC MOTION ENGINE METHODS *** //
72  // *************************************** //
107  arma::mat apply(DynMotion const &f, arma::mat const &X, DynObject &dynObj);
156  DynMotion compose(
157  DynMotion const &f,
158  DynMotion const &g,
159  DynObject const &dynObj
160  );
161 
162 protected:
172  DynMotion _compose(
173  DynMotion const &f,
174  DynMotion const &g,
175  DynObject const &dynObj
176  );
177 };
Adapter which wraps a rigid motion engine to make it fit the dynamic Helios context.
Definition: DynMotionEngine.h:23
DynMotionEngine(RigidMotionEngine const &rme)
Construct a dynamic motion engine from given rigid motion engine.
Definition: DynMotionEngine.h:68
void serialize(Archive &ar, const unsigned int version)
Serialize a dynamic motion engine to a stream of bytes.
Definition: DynMotionEngine.h:35
RigidMotionR3Factory rm3f
The factory for rigid motions in of the dynamic motion engine.
Definition: DynMotionEngine.h:54
DynMotionEngine()=default
Default constructor for dynamic motion engine. It uses a default rigid motion engine.
RigidMotionEngine rme
The rigid motion engine which is the core of the dynamic motion engine.
Definition: DynMotionEngine.h:48
Class which wraps the RigidMotion class to implement extra features such as the self mode control mec...
Definition: DynMotion.h:26
Dynamic object base implementation.
Definition: DynObject.h:23
Class to handle operations with rigid motions.
Definition: RigidMotionEngine.h:19
Class providing building methods for rigid motions in .
Definition: RigidMotionR3Factory.h:22