Helios++
Helios software for LiDAR simulations
DynFullWaveformPulseRunnable.h
1 #pragma once
2 
3 #include <FullWaveformPulseRunnable.h>
4 #include <KDGroveRaycaster.h>
5 
14 protected:
15  // *** ATTRIBUTES *** //
16  // ******************** //
20  std::shared_ptr<KDGroveRaycaster> raycaster;
21 
22 public:
23  // *** CONSTRUCTION / DESTRUCTION *** //
24  // ************************************ //
33  std::shared_ptr<KDGroveRaycaster> raycaster,
34  std::shared_ptr<Scanner> scanner,
35  SimulatedPulse const &pulse
36  ) :
39  {}
40  virtual ~DynFullWaveformPulseRunnable() = default;
41 
42  // *** ASSISTANCE METHODS *** //
43  // **************************** //
49  shared_ptr<RaySceneIntersection> findIntersection(
50  vector<double> const &tMinMax,
51  glm::dvec3 const &o,
52  glm::dvec3 const &v
53  ) const override;
54 };
std::shared_ptr< Scanner > scanner
Scanner used to simulate the pulse.
Definition: AbstractPulseRunnable.h:25
SimulatedPulse pulse
The definition of the pulse to be simulated.
Definition: AbstractPulseRunnable.h:33
Derived class extending FullWaveFormPulseRunnable to handle dynamic moving objects.
Definition: DynFullWaveformPulseRunnable.h:13
DynFullWaveformPulseRunnable(std::shared_ptr< KDGroveRaycaster > raycaster, std::shared_ptr< Scanner > scanner, SimulatedPulse const &pulse)
Base constructor for dynamic full waveform pulse runnable.
Definition: DynFullWaveformPulseRunnable.h:32
std::shared_ptr< KDGroveRaycaster > raycaster
The temporal KDGrove raycaster to compute pulse simulation.
Definition: DynFullWaveformPulseRunnable.h:20
shared_ptr< RaySceneIntersection > findIntersection(vector< double > const &tMinMax, glm::dvec3 const &o, glm::dvec3 const &v) const override
Find intersections considering there are dynamic moving objects involved.
Definition: DynFullWaveformPulseRunnable.cpp:6
Concrete implementation of abstract pulse runnable to compute full waveform pulses.
Definition: FullWaveformPulseRunnable.h:22
Class representing a simulated laser pulse.
Definition: SimulatedPulse.h:10