Helios++
Helios software for LiDAR simulations
MultiScanner Class Reference

Class representing a multi scanner. It is, a scanner that can emit more than one pulse per time instant. More...

#include <MultiScanner.h>

Inheritance diagram for MultiScanner:
Collaboration diagram for MultiScanner:

Public Member Functions

 MultiScanner (std::vector< ScanningDevice > &&scanDevs, std::string const id, std::list< int > const &pulseFreqs, bool const writeWaveform=false, bool const calcEchowidth=false, bool const fullWaveNoise=false, bool const platformNoiseDisabled=false)
 
 MultiScanner (std::string const id, std::list< int > const &pulseFreqs, bool const writeWaveform=false, bool const calcEchowdith=false, bool const fullWaveNoise=false, bool const platformNoiseDisabled=false)
 MultiScanner default constructor. More...
 
 MultiScanner (MultiScanner &scanner)
 Copy constructor for the MultiScanner. More...
 
std::shared_ptr< Scannerclone () override
 
void _clone (Scanner &sc) const override
 
void onLegComplete () override
 Extend Scanner::onLegComplete behavior by handling onLegComplete events for the case of a multiple detectors. More...
 
void applySettings (std::shared_ptr< ScannerSettings > settings, size_t const idx) override
 
void doSimStep (unsigned int legIndex, double const currentGpsTime) override
 
void calcRaysNumber (size_t const idx) override
 
void prepareDiscretization (size_t const idx) override
 
double calcFootprintArea (double const distance, size_t const idx) const override
 
double calcTargetArea (double const distance, size_t const idx) const override
 
Rotation calcAbsoluteBeamAttitude (size_t const idx) override
 
double calcAtmosphericAttenuation (size_t const idx) const override
 
bool checkMaxNOR (int const nor, size_t const idx) override
 
void computeSubrays (std::function< void(vector< double > const &_tMinMax, int const circleStep, double const circleStep_rad, Rotation &r1, double const divergenceAngle, NoiseSource< double > &intersectionHandlingNoiseSource, std::map< double, double > &reflections, vector< RaySceneIntersection > &intersects)> handleSubray, vector< double > const &tMinMax, NoiseSource< double > &intersectionHandlingNoiseSource, std::map< double, double > &reflections, vector< RaySceneIntersection > &intersects, size_t const idx) override
 
bool initializeFullWaveform (double const minHitDist_m, double const maxHitDist_m, double &minHitTime_ns, double &maxHitTime_ns, double &nsPerBin, double &distanceThreshold, int &peakIntensityIndex, int &numFullwaveBins, size_t const idx) override
 
double calcIntensity (double const incidenceAngle, double const targetRange, double const targetReflectivity, double const targetSpecularity, double const targetSpecularExponent, double const targetArea, double const radius, size_t const idx) const override
 
double calcIntensity (double const targetRange, double const radius, double const sigma, size_t const idx) const override
 
void setDeviceIndex (size_t const newIdx, size_t const oldIdx) override
 
std::string getDeviceId (size_t const idx) const override
 
void setDeviceId (std::string const deviceId, size_t const idx) override
 
size_t getNumDevices () const override
 
double getPulseLength_ns (size_t const idx) const override
 
void setPulseLength_ns (double const pulseLength_ns, size_t const idx) override
 
double getBeamDivergence (size_t const idx) const override
 
void setBeamDivergence (double const beamDivergence, size_t const idx) override
 
double getAveragePower (size_t const idx) const override
 
void setAveragePower (double const averagePower, size_t const idx) override
 
double getBeamQuality (size_t const idx) const override
 
void setBeamQuality (double const beamQuality, size_t const idx) override
 
double getEfficiency (size_t const idx) const override
 
void setEfficiency (double const efficiency, size_t const idx) override
 
double getReceiverDiameter (size_t const idx) const override
 
void setReceiverDiameter (double const receiverDiameter, size_t const idx) override
 
double getVisibility (size_t const idx) const override
 
void setVisibility (double const visibility, size_t const idx) override
 
double getWavelength (size_t const idx) const override
 
void setWavelength (double const wavelength, size_t const idx) override
 
double getAtmosphericExtinction (size_t const idx) const override
 
void setAtmosphericExtinction (double const atmosphericExtinction, size_t const idx) override
 
double getBeamWaistRadius (size_t const idx) const override
 
void setBeamWaistRadius (double const beamWaistRadius, size_t const idx) override
 
glm::dvec3 getHeadRelativeEmitterPosition (size_t const idx) const override
 
void setHeadRelativeEmitterPosition (glm::dvec3 const &pos, size_t const idx) override
 
glm::dvec3 & getHeadRelativeEmitterPositionByRef (size_t const idx=0) override
 
Rotation getHeadRelativeEmitterAttitude (size_t const idx) const override
 
void setHeadRelativeEmitterAttitude (Rotation const &attitude, size_t const idx) override
 
RotationgetHeadRelativeEmitterAttitudeByRef (size_t const idx=0) override
 
double getBt2 (size_t const idx) const override
 
void setBt2 (double const bt2, size_t const idx) override
 
double getDr2 (size_t const idx) const override
 
void setDr2 (double const dr2, size_t const idx) override
 
int getCurrentPulseNumber (size_t const idx) const override
 
int getNumRays (size_t const idx) const override
 
void setNumRays (int const numRays, size_t const idx)
 
bool lastPulseWasHit (size_t const idx) const override
 
void setLastPulseWasHit (bool const lastPulseWasHit, size_t const idx) override
 
std::shared_ptr< ScannerHeadgetScannerHead (size_t const idx) override
 
void setScannerHead (std::shared_ptr< ScannerHead > scannerHead, size_t const idx) override
 
std::shared_ptr< AbstractBeamDeflectorgetBeamDeflector (size_t const idx) override
 
void setBeamDeflector (std::shared_ptr< AbstractBeamDeflector > beamDeflector, size_t const idx) override
 
std::shared_ptr< AbstractDetectorgetDetector (size_t const idx) override
 
void setDetector (std::shared_ptr< AbstractDetector > detector, size_t const idx) override
 
FWFSettingsgetFWFSettings (size_t const idx)
 
void setFWFSettings (FWFSettings const &fwfSettings, size_t const idx) override
 
std::list< int > & getSupportedPulseFreqs_Hz (size_t const idx) override
 
void setSupportedPulseFreqs_Hz (std::list< int > &pulseFreqs_Hz, size_t const idx)
 
int getMaxNOR (size_t const idx) const override
 
void setMaxNOR (int const maxNOR, size_t const idx) override
 
int getNumTimeBins (size_t const idx) const
 
void setNumTimeBins (int const numTimeBins, size_t const idx)
 
int getPeakIntensityIndex (size_t const idx) const override
 
void setPeakIntensityIndex (int const pii, size_t const idx) override
 
std::vector< double > & getTimeWave (size_t const idx) override
 
void setTimeWave (std::vector< double > &timewave, size_t const idx)
 
void setTimeWave (std::vector< double > &&timewave, size_t const idx) override
 
- Public Member Functions inherited from Scanner
 Scanner (std::string const id, std::list< int > const &pulseFreqs, bool const writeWaveform=false, bool const calcEchowidth=false, bool const fullWaveNoise=false, bool const platformNoiseDisabled=false)
 Scanner constructor. More...
 
 Scanner (Scanner &scanner)
 Copy constructor for the Scanner. More...
 
void initializeSequentialGenerators ()
 Initialize randomness generators and noise sources that are necessary for sequential pulse computations.
 
void buildScanningPulseProcess (int const parallelizationStrategy, PulseTaskDropper &dropper, std::shared_ptr< PulseThreadPoolInterface > pool)
 Build the scanning pulse process to be used by the scanner during simulation. More...
 
void applySettings (std::shared_ptr< ScannerSettings > settings)
 Non index version of the Scanner::applySettings(std::shared_ptr<ScannerSettings>) method. More...
 
virtual std::shared_ptr< ScannerSettingsretrieveCurrentSettings (size_t const idx)
 Retrieve current scanner settings and build a new ScannerSettings object with them. More...
 
std::shared_ptr< ScannerSettingsretrieveCurrentSettings ()
 Non index version of the Scanner::retrieveCurrentSettings(size_t const) method. More...
 
virtual void applySettingsFWF (FWFSettings settings, size_t const idx)
 Apply full wave form settings. More...
 
void applySettingsFWF (FWFSettings settings)
 Non index version of the Scanner::applySettingsFWF(FWFSettings, size_t const) method. More...
 
std::string toString ()
 Build a string representation of the scanner. More...
 
void calcRaysNumber ()
 Non index version of the Scanner::calcRaysNumber(size_t const) method. More...
 
void prepareDiscretization ()
 Non index version of the Scanner::prepareDiscretization method. More...
 
double calcFootprintArea (double const distance) const
 Non index version of the Scanner::calcFootprintArea(double const, size_t const) method. More...
 
double calcFootprintRadius (double const distance, size_t const idx)
 Compute the footprint radius \(f_{r}\). More...
 
double calcFootprintRadius (double const distance)
 Non index version of the Scanner::calcFootprintRadius(double const, size_t const) method. More...
 
double calcTargetArea (double const distance) const
 Non index version of the Scanner::calcTargetArea(double const, size_t const) method. More...
 
double calcAtmosphericAttenuation () const
 Non index version of Scanner::calcAtmosphericAttenuation. More...
 
Rotation calcAbsoluteBeamAttitude ()
 Non index version of the Scanner::calcAbsoluteBeamAttitude function. More...
 
bool checkMaxNOR (int const nor)
 Non index version of Scanner::checkMaxNOR(int const, size_t const) method. More...
 
void handleSimStepNoise (glm::dvec3 &absoluteBeamOrigin, Rotation &absoluteBeamAttitude)
 Handle position and attitude noise. More...
 
void onSimulationFinished ()
 Exposes ScanningPulseProcess::onSimulationFinished method of the scanning pulse process defining this scanner.
 
void handleTrajectoryOutput (double const currentGpsTime)
 Handle trajectory output whatever it is to output file, to all trajectories vector or to cycle trajectories vector. More...
 
void trackOutputPath (std::string const &path)
 Track given output path in a thread safe way. More...
 
int getCurrentPulseNumber () const
 Non index version of the Scanner::getCurrentPulseNumber method. More...
 
int getNumRays () const
 Non index version of the Scanner::getNumRays(size_t const) method. More...
 
void setNumRays (int const numRays)
 Non index version of the Scanner::setNumRays(int const, size_t const) method. More...
 
int getPulseFreq_Hz () const
 Obtain the pulse frequency. More...
 
void setPulseFreq_Hz (int const pulseFreq_Hz)
 Set the pulse frequency. More...
 
double getPulseLength_ns () const
 No index argument version of the Scanner::getPulseLength_ns method. More...
 
void setPulseLength_ns (double const pulseLength_ns)
 No index argument version of the Scanner::setPulseLength_ns method. More...
 
bool lastPulseWasHit () const
 Non index version of the Scanner::lastPulseWasHit method. More...
 
void setLastPulseWasHit (bool const lastPulseWasHit)
 Non index version of the Scanner::setLastPulseWasHit method. More...
 
double getBeamDivergence () const
 No index argument version of the Scanner::getBeamDivergence method. More...
 
void setBeamDivergence (double const beamDivergence)
 No index argument version of the Scanner::setBeamDivergence method. More...
 
double getAveragePower () const
 No index argument version of the Scanner::getAveragePower method. More...
 
void setAveragePower (double const averagePower)
 No index argument version of the Scanner::setAveragePower method. More...
 
double getBeamQuality () const
 No index argument version of the Scanner::getBeamQuality method. More...
 
void setBeamQuality (double const beamQuality)
 No index argument version of the Scanner::setBeamQuality method. More...
 
double getEfficiency () const
 No index argument version of the Scanner::getEfficiency method. More...
 
void setEfficiency (double const efficiency)
 No index argument version of the Scanner::setEfficiency method. More...
 
double getReceiverDiameter () const
 No index argument version of the Scanner::getReceiverDiameter. More...
 
void setReceiverDiameter (double const receiverDiameter)
 No index argument version of the Scanner::setReceiverDiameter method. More...
 
double getVisibility () const
 No index argument version of the Scanner::getVisibility method. More...
 
void setVisibility (double const visibility)
 No index argument version of the Scanner::setVisibility method. More...
 
double getWavelength () const
 No index argument version of the Scanner::getWavelength method. More...
 
void setWavelength (double const wavelength)
 No index argument version of the Scanner::setWavelength method. More...
 
double getAtmosphericExtinction () const
 No index argument version of the Scanner::getAtmosphericExtinction method. More...
 
void setAtmosphericExtinction (double const atmosphericExtinction)
 No index argument version of the Scanner::setAtmosphericExtinction method. More...
 
double getBeamWaistRadius () const
 No index argument version of the Scanner::getBeamWaistRadius method. More...
 
void setBeamWaistRadius (double const beamWaistRadius)
 No index argument version of the Scanner::setBeamWaistRadius method. More...
 
double getBt2 () const
 No index argument version of the Scanner::getBt2 method. More...
 
void setBt2 (double const bt2)
 No index argument version of the Scanner::setBt2 method @Scanner::setBt2(double const, size_t const)
 
double getDr2 () const
 No index argument version of the Scanner::getDr2 method. More...
 
void setDr2 (double const dr2)
 No index argument version of the Scanner::setDr2 method @Scanner::setDr2(double const, size_t const)
 
bool isActive () const
 Check if scanner is active (true) or not (false) More...
 
void setActive (bool const active)
 Set scanner active status. True to make it active, false to make it inactive. More...
 
bool isWriteWaveform () const
 Check if scanner is configured to write wave form (true) or not (false) More...
 
void setWriteWaveform (bool const writeWaveform)
 Set scanner write wave form configuration. More...
 
bool isCalcEchowidth () const
 Check if scanner is configured to compute echo width (true) or not (false) More...
 
void setCalcEchowidth (bool const calcEchowidth)
 Set scanner echo width configuration. More...
 
bool isFullWaveNoise () const
 Check if scanner is configured to add noise to full wave (true) or not (false) More...
 
void setFullWaveNoise (bool const fullWaveNoise)
 Set scanner full wave noise policy. More...
 
bool isPlatformNoiseDisabled ()
 Check if platform noise is disabled (true) or not (false) More...
 
void setPlatformNoiseDisabled (bool const platformNoiseDisabled)
 Set platform noise disabled flag. More...
 
bool isFixedIncidenceAngle () const
 Check if incidence angle is fixed (true) or not (false) More...
 
void setFixedIncidenceAngle (bool const fixedIncidenceAngle)
 Set fixed incidence angle flag. More...
 
std::string getScannerId () const
 Obtain the identifier of the scanner. More...
 
void setScannerId (std::string const &id)
 Set the identifier of the scanner. More...
 
std::string getDeviceId () const
 No index argument version of the Scanner::getDeviceId method. More...
 
void setDeviceId (std::string const deviceId)
 No index argument version of the Scanner::setDeviceId method. More...
 
std::shared_ptr< ScannerHeadgetScannerHead ()
 Non index version of the Scanner::getScannerHead(size_t const) method. More...
 
void setScannerHead (std::shared_ptr< ScannerHead > scannerHead)
 Non index version of the Scanner::setScannerHead method. More...
 
std::shared_ptr< AbstractBeamDeflectorgetBeamDeflector ()
 Non index version of the Scanner::getBeamDeflector(size_t const) method. More...
 
void setBeamDeflector (std::shared_ptr< AbstractBeamDeflector > deflector)
 Non index version of the Scanner::setBeamDeflector method. More...
 
std::shared_ptr< AbstractDetectorgetDetector ()
 Non index version of the Scanner::getDetector(size_t const) method. More...
 
void setDetector (std::shared_ptr< AbstractDetector > detector)
 Non index version of the Scanner::setDetector method. More...
 
void setAllDetectors (std::shared_ptr< AbstractDetector > detector)
 Set the detector of each scanning device to the given one. More...
 
FWFSettingsgetFWFSettings ()
 Non index version of the Scanner::getFWFSettings(size_t const) More...
 
void setFWFSettings (FWFSettings const &fwfSettings)
 Non index version of the Scanner::setFWFSettings(FWFSettings &, size_t const) method. More...
 
std::list< int > & getSupportedPulseFreqs_Hz ()
 Non index version of the Scanner::getSupportedPulseFreqs_Hz(size_t const) method. More...
 
void setSupportedPulseFreqs_Hz (std::list< int > &pulseFreqs_Hz)
 Non index version of the Scanner::setSupportedPulseFreqs_Hz(std::list<int> &, size_t const) More...
 
int getMaxNOR () const
 Non index version of Scanner::getMaxNOR(size_t const) More...
 
void setMaxNOR (int const maxNOR)
 Non index version of Scanner::setMaxNOR(int const, size_t const) More...
 
int getNumTimeBins () const
 Non index version of the Scanner::getNumTimeBins(size_t const) method. More...
 
void setNumTimeBins (int const numTimeBins)
 Non index version of the Scanner::setNumTimeBins(int const, size_t const) method. More...
 
int getPeakIntensityIndex () const
 Non index version of the Scanner::getPeakIntensityIndex(size_t const) method. More...
 
void setPeakIntensityIndex (int const pii)
 Non index version of the Scanner::setPeakIntensityIndex(int const, size_t const) method. More...
 
std::vector< double > & getTimeWave ()
 Non index version of the Scanner::getTimeWave(size_t const) method. More...
 
void setTimeWave (std::vector< double > &timewave)
 Non index version of the Scanner::setTimeWave(std::vector<double> &, size_t const) method. More...
 
void setTimeWave (std::vector< double > &&timewave)
 Non index version of the Scanner::setTimeWave(std::vector<double> &&, size_t const) method. More...
 
- Public Member Functions inherited from Asset
std::string getLocationString ()
 Obtain asset location string. More...
 
virtual bool isEgg () const
 Check whether the asset is an EggAsset or not. More...
 

Protected Attributes

std::vector< ScanningDevicescanDevs
 The scanning devices composing the MultiScanner.
 
- Protected Attributes inherited from Scanner
std::string id = "SCANNER-ID"
 The scanner's identifier.
 
bool writeWaveform = false
 Flag specifying if write waveform (true) or not (false)
 
bool calcEchowidth = false
 Flag specifying if calculate echo width (true) or not (false)
 
bool fullWaveNoise = false
 Flag specifying if compute full wave noise (true) or not (false)
 
bool platformNoiseDisabled = false
 Flag specifying if disable platform noise (true) or not (false)
 
bool fixedIncidenceAngle = false
 Flag specifying if use fixed incidence angle (true) or not (false)
 
int cfg_setting_pulseFreq_Hz = 0
 Pulse frequency (hertz)
 
bool state_isActive = true
 Flag specifying if scanner is active (true) or not (false) More...
 
std::unique_ptr< ScanningPulseProcessspp = nullptr
 The scanning pulse process used by the scanner. More...
 

Additional Inherited Members

- Public Attributes inherited from Scanner
std::shared_ptr< FMSFacadefms
 Main facade to file management system.
 
std::shared_ptr< Platformplatform
 Platform carrying the scanner. More...
 
std::shared_ptr< std::vector< std::string > > allOutputPaths = nullptr
 Historical vector of all output paths where scanner measurements were written. More...
 
std::shared_ptr< std::vector< Measurement > > allMeasurements = nullptr
 Historical vector of all measurements performed by the scanner. More...
 
std::shared_ptr< std::vector< Trajectory > > allTrajectories = nullptr
 Historical vector of all trajectory points recorded by the scanner. More...
 
std::shared_ptr< std::mutex > allMeasurementsMutex = nullptr
 Mutex to handle concurrent access to historical vector of all measurements and historical vector of all trajectory points. More...
 
std::shared_ptr< std::vector< Measurement > > cycleMeasurements = nullptr
 Vector of measurements performed by the scanner at current cycle. More...
 
std::shared_ptr< std::vector< Trajectory > > cycleTrajectories = nullptr
 Vector of trajectory points recorded by the scanner. More...
 
std::shared_ptr< std::mutex > cycleMeasurementsMutex = nullptr
 Mutex to handle concurrent access to vector of measurements and vector of trajectory points by cycle. More...
 
double trajectoryTimeInterval_ns = 0.0
 Time interval between record of trajectory points. When it is exactly 0, then no trajectory points will be recorded. More...
 
double lastTrajectoryTime
 GPS time (nanoseconds) corresponding to last recorded trajectory point.
 
std::shared_ptr< RandomnessGenerator< double > > randGen1 = nullptr
 First randomness generator for single thread mode.
 
std::shared_ptr< RandomnessGenerator< double > > randGen2 = nullptr
 Second randomness generator for single thread mode.
 
std::shared_ptr< UniformNoiseSource< double > > intersectionHandlingNoiseSource = nullptr
 Uniform noise source for single thread mode.
 
- Public Attributes inherited from Asset
std::string id = ""
 Asset identifier.
 
std::string name = "Unnamed Asset"
 Asset name.
 
std::string sourceFilePath = ""
 Path to asset file.
 

Detailed Description

Class representing a multi scanner. It is, a scanner that can emit more than one pulse per time instant.

Author
Alberto M. Esmoris Pena
Version
1.0

Constructor & Destructor Documentation

◆ MultiScanner() [1/3]

MultiScanner::MultiScanner ( std::vector< ScanningDevice > &&  scanDevs,
std::string const  id,
std::list< int > const &  pulseFreqs,
bool const  writeWaveform = false,
bool const  calcEchowidth = false,
bool const  fullWaveNoise = false,
bool const  platformNoiseDisabled = false 
)
inline

@biref MultiScanner constructor from given scanning devices

Parameters
scanDevsThe scanning devices composing the MultiScanner
See also
Scanner::Scanner

◆ MultiScanner() [2/3]

MultiScanner::MultiScanner ( std::string const  id,
std::list< int > const &  pulseFreqs,
bool const  writeWaveform = false,
bool const  calcEchowdith = false,
bool const  fullWaveNoise = false,
bool const  platformNoiseDisabled = false 
)
inline

MultiScanner default constructor.

See also
Scanner::Scanner

◆ MultiScanner() [3/3]

MultiScanner::MultiScanner ( MultiScanner scanner)

Copy constructor for the MultiScanner.

Parameters
scannerThe scanner to be copied

Member Function Documentation

◆ _clone()

void MultiScanner::_clone ( Scanner sc) const
overridevirtual
See also
Scanner::_clone

Reimplemented from Scanner.

◆ applySettings()

void MultiScanner::applySettings ( std::shared_ptr< ScannerSettings settings,
size_t const  idx 
)
overridevirtual
See also
Scanner::applySettings

Implements Scanner.

◆ calcAbsoluteBeamAttitude()

Rotation MultiScanner::calcAbsoluteBeamAttitude ( size_t const  idx)
overridevirtual

◆ calcAtmosphericAttenuation()

double MultiScanner::calcAtmosphericAttenuation ( size_t const  idx) const
inlineoverridevirtual

◆ calcFootprintArea()

double MultiScanner::calcFootprintArea ( double const  distance,
size_t const  idx 
) const
overridevirtual
See also
Scanner::calcFootprintArea

Implements Scanner.

◆ calcIntensity() [1/2]

double MultiScanner::calcIntensity ( double const  incidenceAngle,
double const  targetRange,
double const  targetReflectivity,
double const  targetSpecularity,
double const  targetSpecularExponent,
double const  targetArea,
double const  radius,
size_t const  idx 
) const
overridevirtual
See also
Scanner::calcIntensity

Implements Scanner.

◆ calcIntensity() [2/2]

double MultiScanner::calcIntensity ( double const  targetRange,
double const  radius,
double const  sigma,
size_t const  idx 
) const
overridevirtual
See also
Scanner::calcIntensity

Implements Scanner.

◆ calcRaysNumber()

void MultiScanner::calcRaysNumber ( size_t const  idx)
inlineoverridevirtual

◆ calcTargetArea()

double MultiScanner::calcTargetArea ( double const  distance,
size_t const  idx 
) const
overridevirtual
See also
Scanner::calcTargetArea

Implements Scanner.

◆ checkMaxNOR()

bool MultiScanner::checkMaxNOR ( int const  nor,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::checkMaxNOR

Implements Scanner.

◆ clone()

std::shared_ptr< Scanner > MultiScanner::clone ( )
overridevirtual
See also
Scanner::clone

Implements Scanner.

◆ computeSubrays()

void MultiScanner::computeSubrays ( std::function< void(vector< double > const &_tMinMax, int const circleStep, double const circleStep_rad, Rotation &r1, double const divergenceAngle, NoiseSource< double > &intersectionHandlingNoiseSource, std::map< double, double > &reflections, vector< RaySceneIntersection > &intersects)>  handleSubray,
vector< double > const &  tMinMax,
NoiseSource< double > &  intersectionHandlingNoiseSource,
std::map< double, double > &  reflections,
vector< RaySceneIntersection > &  intersects,
size_t const  idx 
)
overridevirtual
See also
Scanner::computeSubrays

Implements Scanner.

◆ doSimStep()

void MultiScanner::doSimStep ( unsigned int  legIndex,
double const  currentGpsTime 
)
overridevirtual

◆ getAtmosphericExtinction()

double MultiScanner::getAtmosphericExtinction ( size_t const  idx) const
inlineoverridevirtual

◆ getAveragePower()

double MultiScanner::getAveragePower ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getAveragePower

Implements Scanner.

◆ getBeamDeflector()

std::shared_ptr<AbstractBeamDeflector> MultiScanner::getBeamDeflector ( size_t const  idx)
inlineoverridevirtual

◆ getBeamDivergence()

double MultiScanner::getBeamDivergence ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getBeamDivergence

Implements Scanner.

◆ getBeamQuality()

double MultiScanner::getBeamQuality ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getBeamQuality

Implements Scanner.

◆ getBeamWaistRadius()

double MultiScanner::getBeamWaistRadius ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getBeamWaistRadius

Implements Scanner.

◆ getBt2()

double MultiScanner::getBt2 ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getBt2

Implements Scanner.

◆ getCurrentPulseNumber()

int MultiScanner::getCurrentPulseNumber ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getCurrentPulseNumber(size_t const)

Implements Scanner.

◆ getDetector()

std::shared_ptr<AbstractDetector> MultiScanner::getDetector ( size_t const  idx)
inlineoverridevirtual

◆ getDeviceId()

std::string MultiScanner::getDeviceId ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getDeviceId

Implements Scanner.

◆ getDr2()

double MultiScanner::getDr2 ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getDr2

Implements Scanner.

◆ getEfficiency()

double MultiScanner::getEfficiency ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getEfficiency

Implements Scanner.

◆ getFWFSettings()

FWFSettings& MultiScanner::getFWFSettings ( size_t const  idx)
inlinevirtual
See also
Scanner::getFWFSettings

Implements Scanner.

◆ getHeadRelativeEmitterAttitude()

Rotation MultiScanner::getHeadRelativeEmitterAttitude ( size_t const  idx) const
inlineoverridevirtual

◆ getHeadRelativeEmitterAttitudeByRef()

Rotation& MultiScanner::getHeadRelativeEmitterAttitudeByRef ( size_t const  idx = 0)
inlineoverridevirtual

◆ getHeadRelativeEmitterPosition()

glm::dvec3 MultiScanner::getHeadRelativeEmitterPosition ( size_t const  idx) const
inlineoverridevirtual

◆ getHeadRelativeEmitterPositionByRef()

glm::dvec3& MultiScanner::getHeadRelativeEmitterPositionByRef ( size_t const  idx = 0)
inlineoverridevirtual

◆ getMaxNOR()

int MultiScanner::getMaxNOR ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getMaxNOR(size_t const)

Implements Scanner.

◆ getNumDevices()

size_t MultiScanner::getNumDevices ( ) const
inlineoverridevirtual
See also
Scanner::getNumDevices

Implements Scanner.

◆ getNumRays()

int MultiScanner::getNumRays ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getNumRays

Implements Scanner.

◆ getNumTimeBins()

int MultiScanner::getNumTimeBins ( size_t const  idx) const
inlinevirtual
See also
Scanner::getNumTimeBins(size_t const)

Implements Scanner.

◆ getPeakIntensityIndex()

int MultiScanner::getPeakIntensityIndex ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getPeakIntensityIndex(size_t const)

Implements Scanner.

◆ getPulseLength_ns()

double MultiScanner::getPulseLength_ns ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getPulseLength_ns

Implements Scanner.

◆ getReceiverDiameter()

double MultiScanner::getReceiverDiameter ( size_t const  idx) const
inlineoverridevirtual

◆ getScannerHead()

std::shared_ptr<ScannerHead> MultiScanner::getScannerHead ( size_t const  idx)
inlineoverridevirtual

◆ getSupportedPulseFreqs_Hz()

std::list<int>& MultiScanner::getSupportedPulseFreqs_Hz ( size_t const  idx)
inlineoverridevirtual

◆ getTimeWave()

std::vector<double>& MultiScanner::getTimeWave ( size_t const  idx)
inlineoverridevirtual

◆ getVisibility()

double MultiScanner::getVisibility ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getVisibility

Implements Scanner.

◆ getWavelength()

double MultiScanner::getWavelength ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::getWavelength

Implements Scanner.

◆ initializeFullWaveform()

bool MultiScanner::initializeFullWaveform ( double const  minHitDist_m,
double const  maxHitDist_m,
double &  minHitTime_ns,
double &  maxHitTime_ns,
double &  nsPerBin,
double &  distanceThreshold,
int &  peakIntensityIndex,
int &  numFullwaveBins,
size_t const  idx 
)
overridevirtual

◆ lastPulseWasHit()

bool MultiScanner::lastPulseWasHit ( size_t const  idx) const
inlineoverridevirtual
See also
Scanner::lastPulseWasHit(size_t const)

Implements Scanner.

◆ onLegComplete()

void MultiScanner::onLegComplete ( )
overridevirtual

Extend Scanner::onLegComplete behavior by handling onLegComplete events for the case of a multiple detectors.

See also
Scanner::onLegComplete

Reimplemented from Scanner.

◆ prepareDiscretization()

void MultiScanner::prepareDiscretization ( size_t const  idx)
overridevirtual

◆ setAtmosphericExtinction()

void MultiScanner::setAtmosphericExtinction ( double const  atmosphericExtinction,
size_t const  idx 
)
inlineoverridevirtual

◆ setAveragePower()

void MultiScanner::setAveragePower ( double const  averagePower,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setAveragePower

Implements Scanner.

◆ setBeamDeflector()

void MultiScanner::setBeamDeflector ( std::shared_ptr< AbstractBeamDeflector beamDeflector,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setBeamDeflector

Implements Scanner.

◆ setBeamDivergence()

void MultiScanner::setBeamDivergence ( double const  beamDivergence,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setBeamDivergence

Implements Scanner.

◆ setBeamQuality()

void MultiScanner::setBeamQuality ( double const  beamQuality,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setBeamQuality

Implements Scanner.

◆ setBeamWaistRadius()

void MultiScanner::setBeamWaistRadius ( double const  beamWaistRadius,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setBeamWaistRadius

Implements Scanner.

◆ setBt2()

void MultiScanner::setBt2 ( double const  bt2,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setBt2

Implements Scanner.

◆ setDetector()

void MultiScanner::setDetector ( std::shared_ptr< AbstractDetector detector,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setDetector(shared_ptr<AbstractDetector>, size_t const)

Implements Scanner.

◆ setDeviceId()

void MultiScanner::setDeviceId ( std::string const  deviceId,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setDeviceId

Implements Scanner.

◆ setDeviceIndex()

void MultiScanner::setDeviceIndex ( size_t const  newIdx,
size_t const  oldIdx 
)
inlineoverridevirtual
See also
Scanner::setDeviceIndex

Implements Scanner.

◆ setDr2()

void MultiScanner::setDr2 ( double const  dr2,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setDr2

Implements Scanner.

◆ setEfficiency()

void MultiScanner::setEfficiency ( double const  efficiency,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setEfficiency

Implements Scanner.

◆ setFWFSettings()

void MultiScanner::setFWFSettings ( FWFSettings const &  fwfSettings,
size_t const  idx 
)
inlineoverridevirtual

◆ setHeadRelativeEmitterAttitude()

void MultiScanner::setHeadRelativeEmitterAttitude ( Rotation const &  attitude,
size_t const  idx 
)
inlineoverridevirtual

◆ setHeadRelativeEmitterPosition()

void MultiScanner::setHeadRelativeEmitterPosition ( glm::dvec3 const &  pos,
size_t const  idx 
)
inlineoverridevirtual

◆ setLastPulseWasHit()

void MultiScanner::setLastPulseWasHit ( bool const  lastPulseWasHit,
size_t const  idx 
)
inlineoverridevirtual

◆ setMaxNOR()

void MultiScanner::setMaxNOR ( int const  maxNOR,
size_t const  idx 
)
inlineoverridevirtual

◆ setNumRays()

void MultiScanner::setNumRays ( int const  numRays,
size_t const  idx 
)
inlinevirtual
See also
Scanner::setNumRays

Implements Scanner.

◆ setNumTimeBins()

void MultiScanner::setNumTimeBins ( int const  numTimeBins,
size_t const  idx 
)
inlinevirtual

◆ setPeakIntensityIndex()

void MultiScanner::setPeakIntensityIndex ( int const  pii,
size_t const  idx 
)
inlineoverridevirtual

◆ setPulseLength_ns()

void MultiScanner::setPulseLength_ns ( double const  pulseLength_ns,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setPulseLength_ns

Implements Scanner.

◆ setReceiverDiameter()

void MultiScanner::setReceiverDiameter ( double const  receiverDiameter,
size_t const  idx 
)
inlineoverridevirtual

◆ setScannerHead()

void MultiScanner::setScannerHead ( std::shared_ptr< ScannerHead scannerHead,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setScannerHead(shared_ptr<ScannerHead>, size_t const)

Implements Scanner.

◆ setSupportedPulseFreqs_Hz()

void MultiScanner::setSupportedPulseFreqs_Hz ( std::list< int > &  pulseFreqs_Hz,
size_t const  idx 
)
inlinevirtual

◆ setTimeWave() [1/2]

void MultiScanner::setTimeWave ( std::vector< double > &&  timewave,
size_t const  idx 
)
inlineoverridevirtual

◆ setTimeWave() [2/2]

void MultiScanner::setTimeWave ( std::vector< double > &  timewave,
size_t const  idx 
)
inlinevirtual

◆ setVisibility()

void MultiScanner::setVisibility ( double const  visibility,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setVisibility

Implements Scanner.

◆ setWavelength()

void MultiScanner::setWavelength ( double const  wavelength,
size_t const  idx 
)
inlineoverridevirtual
See also
Scanner::setWavelength

Implements Scanner.


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