Helios++
Helios software for LiDAR simulations
ScanningPulseProcess Class Referenceabstract

Class defining the scanning pulse process interface. More...

#include <ScanningPulseProcess.h>

Inheritance diagram for ScanningPulseProcess:
Collaboration diagram for ScanningPulseProcess:

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< ScannergetScanner () 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< Scannerscanner
 The scanner emitting the pulses. More...
 

Detailed Description

Class defining the scanning pulse process interface.

Author
Alberto M. Esmoris Pena
Version
1.0

Member Function Documentation

◆ getAllMeasurements()

std::shared_ptr< std::vector< Measurement > > & ScanningPulseProcess::getAllMeasurements ( ) const

Obtain the scanner's all measurements vector.

Returns
Scanner's all measurements vector
See also
ScanningPulseProcess::allMeasurements

◆ getAllMeasurementsMutex()

std::shared_ptr< std::mutex > & ScanningPulseProcess::getAllMeasurementsMutex ( ) const

Obtain the scanner's all measurements mutex.

Returns
Scanner's all measurements mutex
See also
ScanningPulseProcess::allMeasurementsMutex

◆ getCycleMeasurements()

std::shared_ptr< std::vector< Measurement > > & ScanningPulseProcess::getCycleMeasurements ( ) const

Obtain the scanner's cycle measurements vector.

Returns
Scanner's cycle measurements vector
See also
ScanningPulseProcess::cycleMeasurements

◆ getCycleMeasurementsMutex()

std::shared_ptr< std::mutex > & ScanningPulseProcess::getCycleMeasurementsMutex ( ) const

Obtain the scanner's cycle measurements mutex.

Returns
Scanner's cycle measurements mutex
See also
ScanningPulseProcess::cycleMeasurementsMutex

◆ getScanner()

std::shared_ptr< Scanner > ScanningPulseProcess::getScanner ( ) const

Obtain the scanner.

Returns
The scanner
See also
ScanningPulseProcess::scanner

◆ handlePulseComputation()

virtual void ScanningPulseProcess::handlePulseComputation ( SimulatedPulse const &  sp)
pure virtual

Handle pulse computation whatever it is single thread based or thread pool based.

See also
SimulatedPulse

Implemented in WarehouseScanningPulseProcess, and BuddingScanningPulseProcess.

◆ isCalcEchowidth()

bool ScanningPulseProcess::isCalcEchowidth ( ) const

Obtain the scanner's calc echowidth flag.

Returns
Scanner's calc echowidth flag
See also
ScanningPulseProcess::calcEchowidth

◆ isWriteWaveform()

bool ScanningPulseProcess::isWriteWaveform ( ) const

Obtain the scanner's write waveform flag.

Returns
Scanner's write waveform flag
See also
ScanningPulseProcess::writeWaveform

◆ onLegComplete()

virtual void ScanningPulseProcess::onLegComplete ( )
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.

◆ onSimulationFinished()

virtual void ScanningPulseProcess::onSimulationFinished ( )
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.

Member Data Documentation

◆ ptf

PulseTaskFactory ScanningPulseProcess::ptf
protected

The pulse task factory to build pulse tasks.

See also
PulseTaskFactory

◆ scanner

std::shared_ptr<Scanner> ScanningPulseProcess::scanner
protected

The scanner emitting the pulses.

See also
Scanner

The documentation for this class was generated from the following files: