Helios++
Helios software for LiDAR simulations
VoidStepLoop.h
1 #pragma once
2 
3 #include <StepLoop.h>
4 
5 #include <functional>
6 
14 template <typename ... StepInput>
15 class VoidStepLoop : public StepLoop<StepInput ...>{
16 protected:
17  // *** ATTRIBUTES *** //
18  // ******************** //
23  std::function<void(StepInput ...)> f;
24 
25 public:
26  // *** CONSTRUCTION / DESTRUCTION *** //
27  // ************************************ //
33  int const stepInterval,
34  std::function<void(StepInput ...)> f
35  ) :
36  StepLoop<StepInput ...>(stepInterval),
37  f(f)
38  {}
39  virtual ~VoidStepLoop() = default;
40 
41  // *** LOOP METHODS *** //
42  // ********************** //
48  void handleStep(StepInput ... input) override {f(input ...);}
49 };
Abstract class providing the basics to handle loops inside simulation time, which is discrete because...
Definition: StepLoop.h:22
int stepInterval
Specify how many simulation steps must elapse so the step loop enters its computation region.
Definition: StepLoop.h:36
Class extending StepLoop to support functions with no return.
Definition: VoidStepLoop.h:15
std::function< void(StepInput ...)> f
The function to be invoked when computation region function has been reached.
Definition: VoidStepLoop.h:23
void handleStep(StepInput ... input) override
Implementation of StepLoop::handleStep for computation regions with void return.
Definition: VoidStepLoop.h:48
VoidStepLoop(int const stepInterval, std::function< void(StepInput ...)> f)
Void step loop constructor receiving interval and computation region function.
Definition: VoidStepLoop.h:32