3 #include <boost/asio/thread_pool.hpp> 4 #include <boost/asio/post.hpp> 5 #include <boost/filesystem.hpp> 6 namespace fs = boost::filesystem;
9 #include "ScannerSettings.h" 11 #include "Measurement.h" 12 #include "MeasurementsBuffer.h" 13 #include "SimpleSyncFileWriter.h" 14 #include "LasSyncFileWriter.h" 15 #include "ZipSyncFileWriter.h" 31 std::shared_ptr<MeasurementsBuffer>
mBuffer;
35 std::shared_ptr<SyncFileWriter>
sfw;
72 "%.3f %.3f %.3f %.4f %.4f %d %d %d %s %d";
88 std::shared_ptr<Scanner> scanner,
92 this->lasOutput =
false;
93 this->zipOutput =
false;
94 this->lasScale = 0.0001;
95 this->cfg_device_accuracy_m = accuracy_m;
96 this->cfg_device_rangeMin_m = rangeMin_m;
97 this->scanner = std::move(scanner);
100 virtual std::shared_ptr<AbstractDetector> clone() = 0;
101 virtual void _clone(std::shared_ptr<AbstractDetector> ad);
135 glm::dvec3 absoluteBeamOrigin,
137 int state_currentPulseNumber,
void writeMeasurements(std::list< Measurement *> &m)
Write a list of measurements.
Definition: AbstractDetector.cpp:67
double cfg_device_accuracy_m
Detector accuracy in meters.
Definition: AbstractDetector.h:40
virtual void shutdown()
Shutdown the detector when simulation has finished.
Definition: AbstractDetector.cpp:58
bool lasOutput
Flag specifying if detector output must be written in LAS format (true) or not (false) ...
Definition: AbstractDetector.h:52
Definition: Rotation.h:80
std::string outputFileLineFormatString
Format string for output file line.
Definition: AbstractDetector.h:71
double lasScale
Scale factor specification to be used when LAS output format specified.
Definition: AbstractDetector.h:63
Base abstract class for detectors.
Definition: AbstractDetector.h:20
Class representing a thread pool to deal with multi threading tasks.
Definition: ThreadPool.h:14
Class representing a measurement.
Definition: Measurement.h:12
virtual void simulatePulse(thread_pool &pool, glm::dvec3 absoluteBeamOrigin, Rotation absoluteBeamAttitude, int state_currentPulseNumber, long currentGpsTime)=0
Compute pulse simulation.
virtual void applySettings(std::shared_ptr< ScannerSettings > &settings)
Apply scanner settings to the detector.
Definition: AbstractDetector.h:123
std::shared_ptr< SyncFileWriter > sfw
Synchronous file writer.
Definition: AbstractDetector.h:35
AbstractDetector(std::shared_ptr< Scanner > scanner, double accuracy_m, double rangeMin_m)
Base constructor for abstract detector.
Definition: AbstractDetector.h:87
std::shared_ptr< Scanner > scanner
Scanner which the detector belongs to.
Definition: AbstractDetector.h:27
fs::path outputFilePath
Path to output file.
Definition: AbstractDetector.h:77
void setOutputFilePath(std::string path)
Set path to output file.
Definition: AbstractDetector.cpp:31
void writeMeasurement(Measurement &m)
Write a measurement.
Definition: AbstractDetector.cpp:62
double cfg_device_rangeMin_m
Minimum range for detector in meters.
Definition: AbstractDetector.h:44
std::shared_ptr< MeasurementsBuffer > mBuffer
Buffer to store measurements.
Definition: AbstractDetector.h:31
bool zipOutput
Flag specifying if detector output must be zipped (true) or not (false)
Definition: AbstractDetector.h:57