Helios++
Helios software for LiDAR simulations
RigidMotionFactory.h
1 #pragma once
2 
3 #include <maths/rigidmotion/RigidMotion.h>
4 
5 namespace rigidmotion{
6 
19 private:
20  // *** SERIALIZATION *** //
21  // *********************** //
22  friend class boost::serialization::access;
29  template <class Archive>
30  void serialize(Archive &ar, const unsigned int version) {}
31 public:
32  // *** CONSTRUCTION / DESTRUCTION *** //
33  // ************************************ //
37  RigidMotionFactory() = default;
38  virtual ~RigidMotionFactory() = default;
39 
40  // *** RIGID MOTION FACTORY METHODS *** //
41  // ************************************** //
51  virtual RigidMotion makeIdentity() const = 0;
63  virtual RigidMotion makeTranslation(arma::colvec const shift) const = 0;
64 };
65 
66 }
Class that must be extended by any class which provides factory methods for rigid motions....
Definition: RigidMotionFactory.h:18
virtual RigidMotion makeIdentity() const =0
Build the identity rigid motion.
RigidMotionFactory()=default
RigidMotionFactory default constructor.
virtual RigidMotion makeTranslation(arma::colvec const shift) const =0
Build the translation rigid motion.
void serialize(Archive &ar, const unsigned int version)
Serialize a rigid motion factory to a stream of bytes.
Definition: RigidMotionFactory.h:30
Interface that must be implemented by any class which represents a specific rigid motions.
Definition: RigidMotion.h:49