4 #include <unordered_map>
7 #include <ScannerSettings.h>
8 #include <Measurement.h>
9 #include <util/PointcloudYielder.h>
10 #include <util/FullWaveformYielder.h>
11 #include <adt/exprtree/UnivarExprTreeNode.h>
13 namespace helios {
namespace filems {
class FMSFacade; }}
27 std::shared_ptr<Scanner>
scanner =
nullptr;
33 std::shared_ptr<FMSFacade>
fms =
nullptr;
45 std::shared_ptr<FullWaveformYielder>
fwfYielder =
nullptr;
60 std::shared_ptr<UnivarExprTreeNode<double>> errorDistanceExpr=
nullptr;
71 std::shared_ptr<Scanner>
scanner,
74 double rangeMax_m=std::numeric_limits<double>::max(),
77 this->cfg_device_accuracy_m = accuracy_m;
78 this->cfg_device_rangeMin_m = rangeMin_m;
79 this->cfg_device_rangeMax_m = rangeMax_m;
80 this->scanner = std::move(
scanner);
81 this->errorDistanceExpr = errorDistanceExpr;
84 virtual std::shared_ptr<AbstractDetector> clone() = 0;
85 virtual void _clone(std::shared_ptr<AbstractDetector> ad);
97 virtual void applySettings(std::shared_ptr<ScannerSettings> & settings) {};
131 inline std::shared_ptr<FMSFacade>
getFMS()
const {
return fms;}
138 void setFMS(std::shared_ptr<FMSFacade>
fms);
Base abstract class for detectors.
Definition: AbstractDetector.h:20
AbstractDetector(std::shared_ptr< Scanner > scanner, double accuracy_m, double rangeMin_m, double rangeMax_m=std::numeric_limits< double >::max(), std::shared_ptr< UnivarExprTreeNode< double >> errorDistanceExpr=nullptr)
Base constructor for abstract detector.
Definition: AbstractDetector.h:70
virtual void onLegComplete()
Handle detector behavior when leg has been completed.
Definition: AbstractDetector.cpp:25
std::shared_ptr< FMSFacade > fms
Main facade to file management system.
Definition: AbstractDetector.h:33
double cfg_device_rangeMin_m
Minimum range for detector in meters.
Definition: AbstractDetector.h:54
std::shared_ptr< Scanner > scanner
Scanner which the detector belongs to.
Definition: AbstractDetector.h:27
virtual void shutdown()
Shutdown the detector when simulation has finished.
Definition: AbstractDetector.cpp:20
bool isDistanceNotInRange(double const distance)
Check whether the given distance is inside detected range or not.
Definition: AbstractDetector.h:120
virtual void applySettings(std::shared_ptr< ScannerSettings > &settings)
Apply scanner settings to the detector.
Definition: AbstractDetector.h:97
bool isDistanceInRange(double const distance)
Check whether the given distance is inside detected range or not.
Definition: AbstractDetector.h:110
std::shared_ptr< PointcloudYielder > pcloudYielder
The point cloud yielder which handles point cloud building from measurements.
Definition: AbstractDetector.h:40
std::shared_ptr< FullWaveformYielder > fwfYielder
The full waveform yielder which handles full waveform building from full waveform data.
Definition: AbstractDetector.h:45
void setFMS(std::shared_ptr< FMSFacade > fms)
Set the main facade to file management system that will be used by the detector.
Definition: AbstractDetector.cpp:32
std::shared_ptr< FMSFacade > getFMS() const
Obtain the main facade to file management system.
Definition: AbstractDetector.h:131
double cfg_device_rangeMax_m
Maximum range for detector in meters.
Definition: AbstractDetector.h:58
double cfg_device_accuracy_m
Detector accuracy in meters.
Definition: AbstractDetector.h:50
Class implementing a Univariate Expression Tree Node.
Definition: UnivarExprTreeNode.h:27
The main facade for file management system.
Definition: FMSFacade.h:19