Helios++
Helios software for LiDAR simulations
LinearVoidStepLoop.h
1 #pragma once
2 
3 #include <VoidStepLoop.h>
4 
13 template <typename ... StepInput>
14 class LinearVoidStepLoop : public VoidStepLoop<StepInput ...>{
15 using StepLoop<StepInput ...>::currentStep;
16 using StepLoop<StepInput ...>::handleStep;
17 public:
18  // *** CONSTRUCTION / DESTRUCTION *** //
19  // ************************************ //
25  std::function<void(StepInput ...)> f
26  ) :
27  VoidStepLoop<StepInput ...>(0, f)
28  {}
29  virtual ~LinearVoidStepLoop() = default;
30 
31  // *** LOOP METHODS *** //
32  // ********************** //
39  bool doStep(StepInput ... input) override{
40  handleStep(input ...);
41  nextStep();
42  return true;
43  }
48  void nextStep() override{++currentStep;}
49 };
Class extending VoidStepLoop to support a continous linear step loop without cyclic behavior.
Definition: LinearVoidStepLoop.h:14
void nextStep() override
Advances to current loop iteration without cyclic behavior.
Definition: LinearVoidStepLoop.h:48
LinearVoidStepLoop(std::function< void(StepInput ...)> f)
Linear void step loop constructor receiving interval and computation region function.
Definition: LinearVoidStepLoop.h:24
bool doStep(StepInput ... input) override
Handle current loop iteration and advances to next one without cyclic behavior.
Definition: LinearVoidStepLoop.h:39
Abstract class providing the basics to handle loops inside simulation time, which is discrete because...
Definition: StepLoop.h:22
int currentStep
Stores the current step.
Definition: StepLoop.h:50
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