Helios++
Helios software for LiDAR simulations
|
Factory to make the adequate pulse task depending on the simulation. More...
#include <PulseTaskFactory.h>
Public Member Functions | |
PulseTaskFactory (Scene &scene) | |
Constructor for the PulseTaskFactory. More... | |
shared_ptr< PulseTask > | build (ScanningPulseProcess const &spp, SimulatedPulse const &sp) const |
The main build method of the factory. It is the method that must be called to automatically build the adequate type of PulseTask. More... | |
Scene & | getScene () const |
Obtain the scene associated to the pulse task factory. More... | |
void | setScene (Scene &scene) |
Set the scene associated to the pulse task factory. More... | |
Protected Member Functions | |
shared_ptr< PulseTask > | buildFullWaveformPulseRunnable (ScanningPulseProcess const &spp, SimulatedPulse const &sp) const |
Build a FullWaveformPulseRunnable from given arguments. More... | |
shared_ptr< PulseTask > | buildDynFullWaveformPulseRunnable (ScanningPulseProcess const &spp, SimulatedPulse const &sp) const |
Build a DynFullWaveformPulseRunnable from given arguments. More... | |
virtual void | configureBuildMethod () |
Automatically set the _build function depending on current factory state. More... | |
Protected Attributes | |
Scene & | scene |
Reference to the scene to be scanned. | |
std::function< shared_ptr< PulseTask > ScanningPulseProcess const &, SimulatedPulse const &)> | _build |
The build function to be used. More... | |
Factory to make the adequate pulse task depending on the simulation.
PulseTaskFactory::PulseTaskFactory | ( | Scene & | scene | ) |
Constructor for the PulseTaskFactory.
|
inline |
|
protected |
Build a DynFullWaveformPulseRunnable from given arguments.
|
protected |
Build a FullWaveformPulseRunnable from given arguments.
|
protectedvirtual |
Automatically set the _build function depending on current factory state.
|
inline |
Obtain the scene associated to the pulse task factory.
|
inline |
Set the scene associated to the pulse task factory.
scene | Scene associated to the pulse task factory |
|
protected |
The build function to be used.
It depends on the simulation. For instance, if there are dynamic moving objects, it will build a DynFullWaveformPulseRunnable. But if there is no dynamic object at all, then a FullWaveformPulseRunnable will be built.