Helios++
Helios software for LiDAR simulations
FullWaveformPulseDetector Class Reference

Concrete implementation of abstract detector to compute full waveform pulses. More...

#include <FullWaveformPulseDetector.h>

Inheritance diagram for FullWaveformPulseDetector:
Collaboration diagram for FullWaveformPulseDetector:

Public Member Functions

 FullWaveformPulseDetector (std::shared_ptr< Scanner > scanner, double accuracy_m, double range_min)
 Base constructor for full waveform pulse detector. More...
 
std::shared_ptr< AbstractDetectorclone () override
 
void _clone (std::shared_ptr< AbstractDetector > ad) override
 
void shutdown () override
 
void writeFullWave (std::vector< double > &fullwave, int fullwave_index, double min_time, double max_time, glm::dvec3 &beamOrigin, glm::dvec3 &beamDir, long gpstime)
 
void applySettings (std::shared_ptr< ScannerSettings > &settings) override
 
void simulatePulse (thread_pool &pool, glm::dvec3 absoluteBeamOrigin, Rotation absoluteBeamAttitude, int state_currentPulseNumber, long currentGpsTime) override
 
void setOutputFilePath (std::string path, std::string fname="fullwave.txt", bool computeWaveform=true)
 Set the path to output file. More...
 
- Public Member Functions inherited from AbstractDetector
 AbstractDetector (std::shared_ptr< Scanner > scanner, double accuracy_m, double rangeMin_m)
 Base constructor for abstract detector. More...
 
void writeMeasurement (Measurement &m)
 Write a measurement. More...
 
void writeMeasurements (std::list< Measurement *> &m)
 Write a list of measurements. More...
 
void setOutputFilePath (std::string path)
 Set path to output file. More...
 

Private Attributes

std::shared_ptr< SyncFileWriterfw_sfw
 Synchronous file writer used to handle output. More...
 

Additional Inherited Members

- Public Attributes inherited from AbstractDetector
std::shared_ptr< Scannerscanner
 Scanner which the detector belongs to.
 
std::shared_ptr< MeasurementsBuffermBuffer
 Buffer to store measurements.
 
std::shared_ptr< SyncFileWritersfw
 Synchronous file writer.
 
double cfg_device_accuracy_m = 0
 Detector accuracy in meters.
 
double cfg_device_rangeMin_m = 0
 Minimum range for detector in meters.
 
bool lasOutput
 Flag specifying if detector output must be written in LAS format (true) or not (false) More...
 
bool zipOutput
 Flag specifying if detector output must be zipped (true) or not (false)
 
double lasScale
 Scale factor specification to be used when LAS output format specified. More...
 
std::string outputFileLineFormatString
 Format string for output file line. More...
 
fs::path outputFilePath
 Path to output file.
 

Detailed Description

Concrete implementation of abstract detector to compute full waveform pulses.

See also
AbstractDetector

Constructor & Destructor Documentation

◆ FullWaveformPulseDetector()

FullWaveformPulseDetector::FullWaveformPulseDetector ( std::shared_ptr< Scanner scanner,
double  accuracy_m,
double  range_min 
)
inline

Base constructor for full waveform pulse detector.

See also
AbstractDetector::AbstractDetector(std::shared_ptr<Scanner>, double, double)

Member Function Documentation

◆ applySettings()

void FullWaveformPulseDetector::applySettings ( std::shared_ptr< ScannerSettings > &  settings)
overridevirtual

◆ setOutputFilePath()

void FullWaveformPulseDetector::setOutputFilePath ( std::string  path,
std::string  fname = "fullwave.txt",
bool  computeWaveform = true 
)

Set the path to output file.

Parameters
pathPath to output file
fnameName of output file
computeWaveformFlag to specify if waveform must be computed (true) or not (false)

◆ shutdown()

void FullWaveformPulseDetector::shutdown ( )
overridevirtual
See also
AbstractDetector::shutdown

Reimplemented from AbstractDetector.

◆ simulatePulse()

void FullWaveformPulseDetector::simulatePulse ( thread_pool pool,
glm::dvec3  absoluteBeamOrigin,
Rotation  absoluteBeamAttitude,
int  state_currentPulseNumber,
long  currentGpsTime 
)
overridevirtual

Member Data Documentation

◆ fw_sfw

std::shared_ptr<SyncFileWriter> FullWaveformPulseDetector::fw_sfw
private

Synchronous file writer used to handle output.

See also
SyncFileWriter

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