Helios++
Helios software for LiDAR simulations
|
Class defining the scanning pulse process interface. More...
#include <ScanningPulseProcess.h>
Public Member Functions | |
ScanningPulseProcess (std::shared_ptr< Scanner > scanner) | |
Default constructor for scanning pulse process. | |
virtual void | handlePulseComputation (SimulatedPulse const &sp)=0 |
Handle pulse computation whatever it is single thread based or thread pool based. More... | |
virtual void | onLegComplete () |
Handle behavior of scanning pulse process once current leg has been completed. It is useful mainly when scanning pulses are computed in a parallel way, so pending tasks can be adequately handled. More... | |
virtual void | onSimulationFinished () |
Handle behavior of scanning pulse process once simulation has finished. More... | |
std::shared_ptr< Scanner > | getScanner () const |
Obtain the scanner. More... | |
bool | isWriteWaveform () const |
Obtain the scanner's write waveform flag. More... | |
bool | isCalcEchowidth () const |
Obtain the scanner's calc echowidth flag. More... | |
std::shared_ptr< std::vector< Measurement > > & | getAllMeasurements () const |
Obtain the scanner's all measurements vector. More... | |
std::shared_ptr< std::mutex > & | getAllMeasurementsMutex () const |
Obtain the scanner's all measurements mutex. More... | |
std::shared_ptr< std::vector< Measurement > > & | getCycleMeasurements () const |
Obtain the scanner's cycle measurements vector. More... | |
std::shared_ptr< std::mutex > & | getCycleMeasurementsMutex () const |
Obtain the scanner's cycle measurements mutex. More... | |
Protected Attributes | |
PulseTaskFactory | ptf |
The pulse task factory to build pulse tasks. More... | |
std::shared_ptr< Scanner > | scanner |
The scanner emitting the pulses. More... | |
Class defining the scanning pulse process interface.
std::shared_ptr< std::vector< Measurement > > & ScanningPulseProcess::getAllMeasurements | ( | ) | const |
Obtain the scanner's all measurements vector.
std::shared_ptr< std::mutex > & ScanningPulseProcess::getAllMeasurementsMutex | ( | ) | const |
Obtain the scanner's all measurements mutex.
std::shared_ptr< std::vector< Measurement > > & ScanningPulseProcess::getCycleMeasurements | ( | ) | const |
Obtain the scanner's cycle measurements vector.
std::shared_ptr< std::mutex > & ScanningPulseProcess::getCycleMeasurementsMutex | ( | ) | const |
Obtain the scanner's cycle measurements mutex.
std::shared_ptr< Scanner > ScanningPulseProcess::getScanner | ( | ) | const |
|
pure virtual |
Handle pulse computation whatever it is single thread based or thread pool based.
Implemented in WarehouseScanningPulseProcess, and BuddingScanningPulseProcess.
bool ScanningPulseProcess::isCalcEchowidth | ( | ) | const |
Obtain the scanner's calc echowidth flag.
bool ScanningPulseProcess::isWriteWaveform | ( | ) | const |
Obtain the scanner's write waveform flag.
|
inlinevirtual |
Handle behavior of scanning pulse process once current leg has been completed. It is useful mainly when scanning pulses are computed in a parallel way, so pending tasks can be adequately handled.
Default implementation does nothing. Therefore, any concrete class providing an implementation of the ScanningPulseProcess interface must override this method if it needs to handle anything at on leg complete.
Reimplemented in WarehouseScanningPulseProcess, and BuddingScanningPulseProcess.
|
inlinevirtual |
Handle behavior of scanning pulse process once simulation has finished.
Default implementation does nothing. Therefore, any concrete class providing an implementation of the ScanningPulseProcess interface must override this method if it needs to handle anything at on simulation finished.
Reimplemented in WarehouseScanningPulseProcess, and BuddingScanningPulseProcess.
|
protected |
The pulse task factory to build pulse tasks.
|
protected |
The scanner emitting the pulses.