Helios++
Helios software for LiDAR simulations
SimulationStepLoop.h
1 #pragma once
2 
3 #include <LinearVoidStepLoop.h>
4 #include <DiscreteTime.h>
5 
16 protected:
17  // *** ATTRIBUTES *** //
18  // ******************** //
23 
24 public:
25  // *** CONSTRUCTION / DESTRUCTION *** //
26  // ************************************ //
31  SimulationStepLoop(std::function<void(void)> f) :
33  dt(1)
34  {}
35  virtual ~SimulationStepLoop() = default;
36 
37  // *** GETTERs and SETTERs *** //
38  // ***************************** //
42  inline std::size_t getFrequency() const {return dt.getFrequency();}
46  inline void setFrequency(std::size_t const frequency)
47  {dt.setFrequency(frequency);}
51  inline double getPeriod() const {return dt.getPeriod();}
55  inline double getPeriodScale() const {return dt.getPeriodScale();}
59  inline void setPeriodScale(double const periodScale)
60  {dt.setPeriodScale(periodScale);}
67  inline double getCurrentTime() const
68  {return dt.toContinuous(getCurrentStep());}
69 
70 };
Class to handle discrete time. It supports transforming from continuous time to discrete time and als...
Definition: DiscreteTime.h:16
Class extending VoidStepLoop to support a continous linear step loop without cyclic behavior.
Definition: LinearVoidStepLoop.h:14
Class extending LinearVoidStepLoop to support main simulation loop.
Definition: SimulationStepLoop.h:15
DiscreteTime dt
The discrete time object to handle simulation frequency and time.
Definition: SimulationStepLoop.h:22
SimulationStepLoop(std::function< void(void)> f)
Main constructor for simulation step loop.
Definition: SimulationStepLoop.h:31
std::size_t getFrequency() const
Definition: SimulationStepLoop.h:42
double getPeriodScale() const
Definition: SimulationStepLoop.h:55
void setPeriodScale(double const periodScale)
Definition: SimulationStepLoop.h:59
double getPeriod() const
Definition: SimulationStepLoop.h:51
void setFrequency(std::size_t const frequency)
Definition: SimulationStepLoop.h:46
double getCurrentTime() const
Obtain the virtual time (simulation time) that elapsed to reach current step.
Definition: SimulationStepLoop.h:67
virtual int getCurrentStep() const
Obtain the current step of the step loop.
Definition: StepLoop.h:121
std::function< void(StepInput ...)> f
The function to be invoked when computation region function has been reached.
Definition: VoidStepLoop.h:23