C++ API reference
This is the generated reference for core C++ APIs of Helios++.
-
class Scanner : public Asset
- #include <Scanner.h>
Class representing a scanner asset.
Subclassed by MultiScanner, ScannerWrap, SingleScanner
Public Functions
-
Scanner(...)
-
virtual ~Scanner()
-
void applySettings(...)
-
inline bool checkMaxTimeElapsed(double currentGpsTime_ns, double startGpsTime_ns) const
-
Scanner(std::string const id, std::list<int> const &pulseFreqs, bool const writeWaveform = false, bool const writePulse = false, bool const calcEchowidth = false, bool const fullWaveNoise = false, bool const platformNoiseDisabled = false)
Scanner constructor.
See also
See also
See also
See also
See also
- Parameters:
pulseFreqs – List of supported pulse frequencies (hertz)
-
Scanner(Scanner &scanner)
Copy constructor for the Scanner.
- Parameters:
scanner – The scanner to be copied
-
virtual std::shared_ptr<Scanner> clone() = 0
Make a clone of this scanner.
- Returns:
Shared pointer pointing to the clone of this scanner
-
virtual void prepareSimulation(bool const legacyEnergyModel = 0) = 0
Prepare the scanner to deal with the simulation.
-
void initializeSequentialGenerators()
Initialize randomness generators and noise sources that are necessary for sequential pulse computations.
Build the scanning pulse process to be used by the scanner during simulation.
See also
Simulation::parallelizationStrategy
See also
Simulation::taskDropper
See also
Simulation::threadPool
- Parameters:
dropper – Simulation’s task dropper
pool – Simulation’s thread pool
- Returns:
Built scanning pulse process
Apply scanner settings.
See also
ScannerSettings
- Parameters:
settings – Scanner settings to be applied
idx – The index of the scanning device to which scanner settings must be applied
Non index version of the Scanner::applySettings(std::shared_ptr<ScannerSettings>) method.
-
virtual std::shared_ptr<ScannerSettings> retrieveCurrentSettings(size_t const idx)
Retrieve current scanner settings and build a new ScannerSettings object with them.
- Parameters:
idx – The index of the scanning device which scanning settings must be retrieved
- Returns:
Newly created ScannerSettings object with current scanner settings
-
inline std::shared_ptr<ScannerSettings> retrieveCurrentSettings()
Non index version of the Scanner::retrieveCurrentSettings(size_t const) method.
-
virtual void applySettingsFWF(FWFSettings settings, size_t const idx)
Apply full wave form settings.
See also
FWFSettings
- Parameters:
settings – Full wave form settings to be applied
idx – The index of the scanning device which Full WaveForm settings must be updated
-
inline void applySettingsFWF(FWFSettings settings)
Non index version of the Scanner::applySettingsFWF(FWFSettings, size_t const) method.
-
virtual void doSimStep(unsigned int legIndex, double const currentGpsTime, Scene &scene) = 0
Perform computations for current simulation step.
- Parameters:
legIndex – Index of current leg
currentGpsTime – GPS time of current pulse
-
std::string toString()
Build a string representation of the scanner.
- Returns:
String representing the scanner
-
virtual void calcRaysNumber(size_t const idx) = 0
Compute the number of rays depending on beam sample quality for the scanning device.
-
inline void calcRaysNumber()
Non index version of the Scanner::calcRaysNumber(size_t const) method.
-
virtual void prepareDiscretization(size_t const idx) = 0
Prepare wave discretization.
See also
Scanner::numTimeBins
See also
Scanner::time_wave
See also
Scanner::peakIntensityIndex
-
inline void prepareDiscretization()
Non index version of the Scanner::prepareDiscretization method.
-
double calcFootprintRadius(double const distance, size_t const idx)
Compute the footprint radius \(f_{r}\).
\[ f_{r} = \sqrt{\frac{f_{a}}{\pi}} \]See also
Scanner::calcFootprintArea
- Parameters:
distance – Distance \(d\)
- Returns:
Footprint radius \(f_{r}\)
-
virtual double calcAtmosphericAttenuation(size_t const idx) const = 0
See also
ScanningDevice::calcAtmosphericAttenuation
-
inline double calcAtmosphericAttenuation() const
Non index version of Scanner::calcAtmosphericAttenuation.
See also
Scanner::calcAtmosphericAttenuation(size_t const)
-
virtual Rotation calcAbsoluteBeamAttitude(size_t const idx) = 0
Compute the absolute beam attitude considering the mount relative attitude and the deflector relative attitude.
See also
ScannerHead::getMountRelativeAttitude
See also
AbstractBeamDeflector::getEmitterRelativeAttitude
-
inline Rotation calcAbsoluteBeamAttitude()
Non index version of the Scanner::calcAbsoluteBeamAttitude function.
-
virtual bool checkMaxNOR(int const nor, size_t const idx) = 0
Check if given number of return (nor) is inside expected boundaries. If scanner maxNOR is 0 or nor is less than maxNOR, then the check is passed (true is returned). Otherwise, it is not passed (false is returned).
See also
ScanningDevice::maxNOR
- Parameters:
nor – Current number of return
- Returns:
True if the check is passed, false otherwise
-
inline bool checkMaxNOR(int const nor)
Non index version of Scanner::checkMaxNOR(int const, size_t const) method.
-
virtual void computeSubrays(std::function<void(Rotation const &subrayRotation, int const subrayRadiusStep, NoiseSource<double> &intersectionHandlingNoiseSource, std::map<double, double> &reflections, vector<RaySceneIntersection> &intersects)> handleSubray, NoiseSource<double> &intersectionHandlingNoiseSource, std::map<double, double> &reflections, vector<RaySceneIntersection> &intersects, size_t const idx) = 0
Perform ray casting to find intersections.
See also
FullWaveformPulseRunnable::computeSubrays
See also
FullWaveformPulseRunnable::handleSubray
See also
ScanningDevice::computeSubrays
- Parameters:
handleSubray – [in] The function where computed subrays must be delegated to
reflections – [out] Where reflections must be stored when a hit is registered
intersects – [out] Where intersections must be stored when a hit is registered
idx – [in] The index of the scanning device
-
virtual 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) = 0
Initialize full waveform While the vector is not strictly initialized in this function, necessary variables are computed here.
See also
FullWaveformPulseRunnable::initializeFullWaveform
See also
FullWaveformPulseRunnable::digestIntersections
See also
ScanningDevice::initializeFullWaveform
- Parameters:
nsPerBin – [out] The size of each bin in nano seconds
distanceThreshold – [out] Limit distance threshold
peakIntensityIndex – [out] Index of intensity peak
numFullwaveBins – [out] How many bins are necessary to discretize the full waveform
idx – [in] The index of the scanning device
- Returns:
True if it is possible to initialize the full waveform, false otherwise.
-
virtual double calcIntensity(double const incidenceAngle, double const targetRange, Material const &mat, int const subrayRadiusStep, size_t const idx) const = 0
Handle to which scanning device request the intensity computation.
See also
ScanningDevice::calcIntensity
- Parameters:
idx – The index of the scanning device that must compute the intensity
-
virtual double calcIntensity(double const targetRange, double const sigma, int const subrayRadiusStep, size_t const idx) const = 0
Handle to which scanning device request the intensity computation.
See also
ScanningDevice::calcIntensity
- Parameters:
idx – The index of the scanning device that must compute the intensity
-
void handleSimStepNoise(glm::dvec3 &absoluteBeamOrigin, Rotation &absoluteBeamAttitude)
Handle position and attitude noise.
- Parameters:
absoluteBeamOrigin – Beam origin (position) to add noise to if requested
absoluteBeamAttitude – Beam attitude to add noise to if requested
-
inline virtual void onLegComplete()
Exposes ScanningPulseProcess:onLegComplete method of the scanning pulse process defining this scanner.
-
inline void flushPendingPulseTasks()
Flush pending pulse tasks in scanning pulse process, if any.
-
inline void onSimulationFinished()
Exposes ScanningPulseProcess::onSimulationFinished method of the scanning pulse process defining this scanner.
-
void handleTrajectoryOutput(double const currentGpsTime, Scene &scene)
Handle trajectory output whatever it is to output file or all trajectories vector.
See also
- Parameters:
currentGpsTime – Current GPS time (nanoseconds)
-
void trackOutputPath(std::string const &path)
Track given output path in a thread safe way.
See also
- Parameters:
path – Output path to be tracked
-
inline void setMaxDuration(double v)
Getter, setter and checker for maxDuration_s.
See also
Scanner::maxDuration_s
-
inline double getMaxDuration() const
-
inline bool hasMaxDuration() const
-
virtual ScanningDevice &getScanningDevice(size_t const idx) = 0
Obtain the requested scanning device.
See also
ScanningDevice::getScanningDevice
- Parameters:
idx – The index of the scanning device to be obtained.
-
virtual int getCurrentPulseNumber(size_t const idx) const = 0
Obtain the current pulse number of the scanning device.
See also
ScanningDevice::state_currentPulseNumber
- Parameters:
idx – The index of the scanning device which pulse number must be obtained
- Returns:
The current pulse number of the scanning device
-
inline int getCurrentPulseNumber() const
Non index version of the Scanner::getCurrentPulseNumber method.
See also
Scanner::getCurrentPulseNumber(size_t const)
-
virtual int getNumRays(size_t const idx) const = 0
Obtain the number of rays of the scanning device.
See also
ScanningDevice::numRays
- Parameters:
idx – The index of the scanning device which number of rays must be obtained
- Returns:
Number of rays of the scanning device
-
inline int getNumRays() const
Non index version of the Scanner::getNumRays(size_t const) method.
See also
Scanner::getNumRays(size_t const)
-
virtual void setNumRays(int const numRays, size_t const idx) = 0
Set the number of rays of the scanning device.
See also
ScanningDevice::numRays
- Parameters:
numRays – New number of rays for the scanning device
idx – The index of the scanning device which number of rays must be set
-
inline void setNumRays(int const numRays)
Non index version of the Scanner::setNumRays(int const, size_t const) method.
-
inline int getPulseFreq_Hz() const
Obtain the pulse frequency.
See also
- Returns:
Pulse frequency (hertz)
-
void setPulseFreq_Hz(int const pulseFreq_Hz)
Set the pulse frequency.
See also
- Parameters:
pulseFreq_Hz – New pulse frequency (hertz)
-
virtual double getPulseLength_ns(size_t const idx) const = 0
Get the pulse length.
See also
ScanningDevice::cfg_device_pulseLength_ns
- Parameters:
idx – The index of the scanning device which pulse length must be obtained (by default 0, it is the first one)
- Returns:
Pulse length (nanoseconds)
-
inline double getPulseLength_ns() const
No index argument version of the Scanner::getPulseLength_ns method.
See also
Scanner::getPulseLength_ns(size_t const)
-
virtual void setPulseLength_ns(double const pulseLength_ns, size_t const idx) = 0
Set the pulse length.
See also
ScanningDevice::cfg_device_pulseLength_ns
- Parameters:
pulseLength_ns – New pulse length (nanoseconds)
idx – The index of the scanning device which pulse length must be set (by default 1, it is the first one)
-
inline void setPulseLength_ns(double const pulseLength_ns)
No index argument version of the Scanner::setPulseLength_ns method.
-
virtual bool lastPulseWasHit(size_t const idx) const = 0
Check if last pulse was hit (true) or not (false) for the scanning device.
See also
ScanningDevice::state_lastPulseWasHit
See also
ScanningDevice::lastPulseWasHit
- Parameters:
idx – The index of the scanning device which last pulse must be checked.
- Returns:
True if the last pulse of the scanning device was hit, false otherwise.
-
inline bool lastPulseWasHit() const
Non index version of the Scanner::lastPulseWasHit method.
See also
Scanner::lastPulseWasHit method
-
virtual void setLastPulseWasHit(bool const lastPulseWasHit, size_t const idx) = 0
Specify if last pulse was hit (true) or not (false)
See also
Scanner::state_lastPulseWasHit
- Parameters:
lastPulseWasHit – New last pulse hit specification
-
inline void setLastPulseWasHit(bool const lastPulseWasHit)
Non index version of the Scanner::setLastPulseWasHit method.
-
virtual double getBeamDivergence(size_t const idx) const = 0
Obtain beam divergence.
See also
ScanningDevice::beamDivergence_rad
- Parameters:
idx – The index of the scanning device which beam divergence must be obtained (by default 0, it is the first one)
- Returns:
Beam divergence (radians)
-
inline double getBeamDivergence() const
No index argument version of the Scanner::getBeamDivergence method.
See also
Scanner::getBeamDivergence(size_t const)
-
virtual void setBeamDivergence(double const beamDivergence, size_t const idx) = 0
Set beam divergence.
See also
ScanningDevice::beamDivergence_rad
- Parameters:
beamDivergence – New beam divergence (radians)
idx – The index of the scanning device which beam divergence must be set (by default 0, it is the first one)
-
inline void setBeamDivergence(double const beamDivergence)
No index argument version of the Scanner::setBeamDivergence method.
-
virtual double getAveragePower(size_t const idx) const = 0
Obtain average power.
See also
ScanningDevice::averagePower_w
- Parameters:
idx – The index of the scanning device which average power must be obtained (by default 0, it is the first one)
- Returns:
Average power (watts)
-
inline double getAveragePower() const
No index argument version of the Scanner::getAveragePower method.
See also
Scanner::getAveragePower(size_t const)
-
virtual void setAveragePower(double const averagePower, size_t const idx) = 0
Set average power.
See also
ScanningDevice::averagePower_w
- Parameters:
averagePower – New average power (watts)
idx – The index of the scanning device which average power must be set (by default 0, it is the first one)
-
inline void setAveragePower(double const averagePower)
No index argument version of the Scanner::setAveragePower method.
-
virtual double getBeamQuality(size_t const idx) const = 0
Get beam quality.
See also
ScanningDevice::beamQuality
- Parameters:
idx – The index of the scanning device which beam quality must be obtained (by default 0, it is the first one)
- Returns:
Beam quality
-
inline double getBeamQuality() const
No index argument version of the Scanner::getBeamQuality method.
See also
Scanner::getBeamQuality(size_t const)
-
virtual void setBeamQuality(double const beamQuality, size_t const idx) = 0
Set beam quality.
See also
ScanningDevice::beamQuality
- Parameters:
beamQuality – New beam quality
idx – The index of the scanning device which beam quality must be obtained (by default 0, it is the first one)
-
inline void setBeamQuality(double const beamQuality)
No index argument version of the Scanner::setBeamQuality method.
-
virtual double getEfficiency(size_t const idx) const = 0
Obtain device efficiency.
See also
ScanningDevice::efficiency
- Parameters:
idx – The index of the scanning device which efficiency must be obtained (by default 0, it is the first one)
- Returns:
Device efficiency
-
inline double getEfficiency() const
No index argument version of the Scanner::getEfficiency method.
See also
Scanner::getEfficiency(size_t const)
-
virtual void setEfficiency(double const efficiency, size_t const idx = 0) = 0
Set device efficiency.
See also
ScanningDevice::efficiency
- Parameters:
efficiency – New device efficiency
idx – The index of the scanning device which efficiency must be set (by default 0, it is the first one)
-
inline void setEfficiency(double const efficiency)
No index argument version of the Scanner::setEfficiency method.
-
virtual double getReceiverDiameter(size_t const idx) const = 0
Get receiver diameter.
See also
ScanningDevice::receiverDiameter_m
- Parameters:
idx – The index of the scanning device which efficiency must be obtained (by default 0, it is the first one)
- Returns:
Receiver diameter
-
inline double getReceiverDiameter() const
No index argument version of the Scanner::getReceiverDiameter.
See also
Scanner::getReceiverDiameter(size_t const)
-
virtual void setReceiverDiameter(double const receiverDiameter, size_t const idx) = 0
Set receiver diameter.
See also
ScanningDevice::receiverDiameter_m
- Parameters:
receiverDiameter – New receiver diameter
idx – The index of the scanning device which efficiency must be set (by default 0, it is the first one)
-
inline void setReceiverDiameter(double const receiverDiameter)
No index argument version of the Scanner::setReceiverDiameter method.
-
virtual double getVisibility(size_t const idx) const = 0
Get device visibility.
See also
ScanningDevice::visibility_km
- Parameters:
idx – The index of the scanning device which visibility must be obtained (by default 0, it is the first one)
- Returns:
Device visibility (kilometers)
-
inline double getVisibility() const
No index argument version of the Scanner::getVisibility method.
See also
Scanner::getVisibility(size_t const)
-
virtual void setVisibility(double const visibility, size_t const idx) = 0
Set device visibility.
See also
ScanningDevice::visibility_km
- Parameters:
visibility – New device visibility (kilometers)
idx – The index of the scanning device which visibility must be set (by default 0, it is the first one)
-
inline void setVisibility(double const visibility)
No index argument version of the Scanner::setVisibility method.
-
virtual double getWavelength(size_t const idx) const = 0
Obtain wave length.
See also
ScanningDevice::wavelength_m
- Parameters:
idx – The index of the scanning device which wavelength must be obtained (by default 0, it is the first one)
- Returns:
Wave length (meters)
-
inline double getWavelength() const
No index argument version of the Scanner::getWavelength method.
See also
Scanner::getWavelength(size_t const)
-
virtual void setWavelength(double const wavelength, size_t const idx) = 0
Set wave length.
See also
ScanningDevice::wavelength_m
- Parameters:
wavelength – New wave length (meters)
idx – The index of the scanning device which wavelength must be set (by default 0, it is the first one)
-
inline void setWavelength(double const wavelength)
No index argument version of the Scanner::setWavelength method.
-
virtual double getAtmosphericExtinction(size_t const idx) const = 0
Obtain atmospheric extinction.
See also
ScanningDevice::atmosphericExtinction
- Parameters:
idx – The index of the scanning device which atmospheric extinction must be obtained (by default 0, it is the first one)
- Returns:
Atmospheric extinction
-
inline double getAtmosphericExtinction() const
No index argument version of the Scanner::getAtmosphericExtinction method.
- Returns:
Scanner::getAtmosphericExtinction(size_t const)
-
virtual void setAtmosphericExtinction(double const atmosphericExtinction, size_t const idx) = 0
Set atmospheric extinction.
See also
ScanningDevice::atmosphericExtinction
- Parameters:
atmosphericExtinction – New atmospheric extinction
idx – The index of the scanning device which atmospheric extinction must be set (by default 0, it is the first one)
-
inline void setAtmosphericExtinction(double const atmosphericExtinction)
No index argument version of the Scanner::setAtmosphericExtinction method.
-
virtual double getBeamWaistRadius(size_t const idx) const = 0
Obtain beam waist radius.
See also
ScanningDevice::beamWaistRadius
- Parameters:
idx – The index of the scanning device which beam waist radius must be obtained (by default 0, it is the first one)
- Returns:
Beam waist radius
-
inline double getBeamWaistRadius() const
No index argument version of the Scanner::getBeamWaistRadius method.
See also
Scanner::getBeamWaistRadius(size_t const)
-
virtual void setBeamWaistRadius(double const beamWaistRadius, size_t const idx) = 0
Set beam waist radius.
See also
ScanningDevice::beamWaistRadius
- Parameters:
beamWaistRadius – New beam waist radius
idx – The index of the scanning device which beam waist radius must be set (by default 0, it is the first one)
-
inline void setBeamWaistRadius(double const beamWaistRadius)
No index argument version of the Scanner::setBeamWaistRadius method.
-
virtual glm::dvec3 getHeadRelativeEmitterPosition(size_t const idx = 0) const = 0
Obtain the head’s relative emitter position.
See also
ScanningDevice::headRelativeEmitterPosition
- Parameters:
idx – The index of the scanning device which head’s relative emitter position must be obtained (by default 0, it is the first one)
- Returns:
The head’s relative emitter position
-
virtual void setHeadRelativeEmitterPosition(glm::dvec3 const &pos, size_t const idx = 0) = 0
Set the head’s relative emitter position.
See also
ScanningDevice::headRelativeEmitterPosition
- Parameters:
pos – The new position for the head’s relative emitter
idx – The index of the scanning device which head’s relative emitter position must be set (by default 0, it is the first one)
-
virtual glm::dvec3 &getHeadRelativeEmitterPositionByRef(size_t const idx = 0) = 0
Obtain the head’s relative emitter position by reference (can be written)
See also
ScanningDevice::headRelativeEmitterPosition
- Parameters:
idx – The index of the scanning device which head’s relative emitter position must be obtained (by default 0, it is the first one)
- Returns:
The head’s relative emitter position by reference
-
virtual Rotation getHeadRelativeEmitterAttitude(size_t const idx = 0) const = 0
Obtain the head’s relative emitter attitude.
See also
ScanningDevice::headRelativeEmitterAttitude
- Parameters:
idx – The index of the scanning device which head’s relative emitter attitude must be obtained (by default 0, it is the first one)
- Returns:
The head’s relative emitter attitude
-
virtual void setHeadRelativeEmitterAttitude(Rotation const &attitude, size_t const idx = 0) = 0
Set the head’s relative emitter attitude.
- Parameters:
attitude – The new attitude for the head’s relative emitter
idx – The index of the scanning device which head’s relative emitter attitude must be set (by default 0, it is the first one)
-
virtual Rotation &getHeadRelativeEmitterAttitudeByRef(size_t const idx = 0) = 0
Obtain the head’s relative emitter attitude by reference (can be written)
See also
ScanningDevice::headRelativeEmitterAttitude
- Parameters:
idx – The index of the scanning device which head’s relative emitter attitude must be obtained (by default 0, it is the first one)
- Returns:
The head’s relative emitter attitude by reference
-
virtual double getBt2(size_t const idx) const = 0
Obtain \(B_{t2}\).
See also
ScanningDevice::cached_Bt2
- Parameters:
idx – The index of the scanning device which cached Bt2 (square of beam divergence) must be obtained (by default 0, it is the first one)
- Returns:
\(B_{t2}\)
-
inline double getBt2() const
No index argument version of the Scanner::getBt2 method.
See also
Scanner::getBt2(size_t const)
-
virtual void setBt2(double const bt2, size_t const idx) = 0
Set \(B_{t2}\).
See also
ScanningDevice::cached_Bt2
- Parameters:
bt2 – New \(B_{t2}\)
idx – The index of the scanning device which cached Bt2 (square of beam divergence) must be set (by default 0, it is the first one)
-
inline void setBt2(double const bt2)
No index argument version of the Scanner::setBt2 method @ScannersetBt2(double const, size_t const)
-
virtual double getDr2(size_t const idx) const = 0
Obtain \(D_{r2}\).
See also
ScanningDevice::cached_Dr2
- Parameters:
idx – The index of the scanning device which cached Dr2 (square of receiver diameter) must be obtained (by default 0, it is the first one)
- Returns:
\(D_{r2}\)
-
inline double getDr2() const
No index argument version of the Scanner::getDr2 method.
See also
Scanner::getDr2(size_t const)
-
virtual void setDr2(double const dr2, size_t const idx) = 0
Set \(D_{r2}\).
See also
ScanningDevice::cached_Dr2
- Parameters:
dr2 – New \(D_{t2}\)
idx – The index of the scanning device which cached Dr2 (square of receiver diameter) must be obtained (by default 0, it is the first one)
-
inline void setDr2(double const dr2)
No index argument version of the Scanner::setDr2 method @ScannersetDr2(double const, size_t const)
-
inline bool isActive() const
Check if scanner is active (true) or not (false)
See also
- Returns:
True if scanner is active, false otherwise
-
inline void setActive(bool const active)
Set scanner active status. True to make it active, false to make it inactive.
See also
- Parameters:
active – New scanner active status
-
inline bool isWriteWaveform() const
Check if scanner is configured to write wave form (true) or not (false)
See also
- Returns:
True if scanner is configured to write wave form, false otherwise
-
inline void setWriteWaveform(bool const writeWaveform)
Set scanner write wave form configuration.
See also
- Parameters:
writeWaveform – True to make scanner write wave form, false otherwise
-
inline bool isWritePulse() const
Check if scanner is configured to write pulses (true) or not (false)
See also
- Returns:
True if scanner is configured to write pulses, false otherwise
-
inline void setWritePulse(bool const writePulse)
Set scanner write pulse configuration.
See also
- Parameters:
writePulse – True to make scanner write pulse, false otherwise
-
inline bool isCalcEchowidth() const
Check if scanner is configured to compute echo width (true) or not (false)
See also
- Returns:
True if scanner is configured to compute echo width, false otherwise
-
inline void setCalcEchowidth(bool const calcEchowidth)
Set scanner echo width configuration.
See also
- Parameters:
calcEchowidth – True to make scanner compute echo width, false otherwise
-
inline bool isFullWaveNoise() const
Check if scanner is configured to add noise to full wave (true) or not (false)
See also
- Returns:
True if scanner is configured to add noise to full wave, false otherwise
-
inline void setFullWaveNoise(bool const fullWaveNoise)
Set scanner full wave noise policy.
See also
- Parameters:
fullWaveNoise – True to make scanner add noise to the full wave, false otherwise
-
inline bool isPlatformNoiseDisabled()
Check if platform noise is disabled (true) or not (false)
See also
- Returns:
True if platform noise is disabled, false otherwise
-
inline void setPlatformNoiseDisabled(bool const platformNoiseDisabled)
Set platform noise disabled flag.
See also
- Parameters:
platformNoiseDisabled – True to disable platform noise, false to enable it
-
inline bool isFixedIncidenceAngle() const
Check if incidence angle is fixed (true) or not (false)
See also
- Returns:
True if incidence angle is fixed, false otherwise
-
inline void setFixedIncidenceAngle(bool const fixedIncidenceAngle)
Set fixed incidence angle flag.
See also
- Parameters:
fixedIncidenceAngle – True to enable fixed incidence angle, false to disable it
-
inline std::string getScannerId() const
Obtain the identifier of the scanner.
See also
-
inline void setScannerId(std::string const &id)
Set the identifier of the scanner.
See also
- Parameters:
id – The new identifier for the scanner
-
virtual void setDeviceIndex(size_t const newIdx, size_t const oldIdx) = 0
Set the device index (newIdx) of the device at given index (oldIdx).
NOTE this function is not safe. It usage must be avoided unless you really know what you are doing.
- Parameters:
newIdx – New index for the device
oldIdx – Old index of the device to be updated
-
virtual std::string getDeviceId(size_t const idx) const = 0
Obtain scanner device identifier.
See also
ScanningDevice::id
- Returns:
Scanner device identifier
-
inline std::string getDeviceId() const
No index argument version of the Scanner::getDeviceId method.
See also
Scanner::getDeviceId(size_t const)
-
virtual void setDeviceId(std::string const deviceId, size_t const idx) = 0
Set the scanner device identifier.
See also
ScanningDevice::id
- Parameters:
deviceId – New scanner device identifier
-
inline void setDeviceId(std::string const deviceId)
No index argument version of the Scanner::setDeviceId method.
-
virtual size_t getNumDevices() const = 0
Obtain the number of scanning devices composing the scanner.
-
virtual std::shared_ptr<ScannerHead> getScannerHead(size_t const idx) = 0
Obtain the scanner head of the scanning device.
See also
ScannerHead
- Parameters:
idx – The index of the scanning device which scanner head must be obtained
- Returns:
The scanner head of the scanning device
-
inline std::shared_ptr<ScannerHead> getScannerHead()
Non index version of the Scanner::getScannerHead(size_t const) method.
Set the scanner head of the scanning device.
- Parameters:
scannerHead – The scanner head to be assigned to the scanning device
idx – The index of the scanning device which scanner head must be set
Non index version of the Scanner::setScannerHead method.
See also
Scanner::setScannerHead(shared_ptr<ScannerHead>, size_t const)
-
virtual std::shared_ptr<AbstractBeamDeflector> getBeamDeflector(size_t const idx) = 0
Obtain the beam deflector of the scanning device.
See also
AbstractBeamDeflector
- Parameters:
idx – The index of the scanning device which beam deflector must be obtained
- Returns:
The beam deflector of the scanning device
-
inline std::shared_ptr<AbstractBeamDeflector> getBeamDeflector()
Non index version of the Scanner::getBeamDeflector(size_t const) method.
Set the beam deflector of the scanning device.
- Parameters:
deflector – New beam deflector for the scanning device
idx – The index of the scanning device which beam deflector must be set
Non index version of the Scanner::setBeamDeflector method.
See also
-
virtual std::shared_ptr<AbstractDetector> getDetector(size_t const idx) = 0
Obtain the abstract detector of the scanning device.
See also
AbstractDetector
- Parameters:
idx – The index of the scanning device which abstract detector must be obtained
- Returns:
The abstract detector of the scanning device
-
inline std::shared_ptr<AbstractDetector> getDetector()
Non index version of the Scanner::getDetector(size_t const) method.
See also
Set the abstract detector of the scanning device.
See also
AbstractDetector
- Parameters:
idx – The index of the scanning device which abstract detector must be set
Non index version of the Scanner::setDetector method.
See also
Scanner::setDetector(shared_ptr<AbstractDetector>, size_t const)
Set the detector of each scanning device to the given one.
- Parameters:
detector – The new detector for each scanning device
-
virtual FWFSettings &getFWFSettings(size_t const idx) = 0
Obtain the Full WaveForm settings of the scanning device.
See also
FWFSettings
- Parameters:
idx – The index of the scanning device which full waveform settings must be obtained
- Returns:
The full waveform settings of the scanning device
-
inline FWFSettings &getFWFSettings()
Non index version of the Scanner::getFWFSettings(size_t const)
-
virtual void setFWFSettings(FWFSettings const &fwfSettings, size_t const idx) = 0
Set the Full WaveForm settings of the scanning device.
See also
FWFSettings
- Parameters:
idx – The index of the scanning device which full waveform settings must be set
-
inline void setFWFSettings(FWFSettings const &fwfSettings)
Non index version of the Scanner::setFWFSettings(FWFSettings &, size_t const) method.
-
virtual std::list<int> &getSupportedPulseFreqs_Hz(size_t const idx) = 0
Obtain the list of supported pulse frequencies of the scanning device.
- Parameters:
idx – The index of the scanning device which supported pulse frequencies must be obtained
- Returns:
The list of supported pulse frequencies of the scanning device
-
inline std::list<int> &getSupportedPulseFreqs_Hz()
Non index version of the Scanner::getSupportedPulseFreqs_Hz(size_t const) method.
See also
-
virtual void setSupportedPulseFreqs_Hz(std::list<int> &pulseFreqs_Hz, size_t const idx) = 0
Set the list of supported pulse frequencies (in Hertz) for the scanning device.
- Parameters:
pulseFreqs_Hz – Supported pulse frequencies for the scanning device
idx – The index of the scanning device which supported pulse frequencies must be set
-
inline void setSupportedPulseFreqs_Hz(std::list<int> &pulseFreqs_Hz)
Non index version of the Scanner::setSupportedPulseFreqs_Hz(std::list<int> &, size_t const)
-
virtual int getMaxNOR(size_t const idx) const = 0
Obtain the maximum number of returns per pulse for the scanning device (0 means no maximum at all).
- Parameters:
idx – The index of the scanning device which max NOR must be obtained
- Returns:
The maximum number of returns per pulse for the scanning device
-
inline int getMaxNOR() const
Non index version of Scanner::getMaxNOR(size_t const)
See also
Scanner::getMaxNOR(size_t const)
-
virtual void setMaxNOR(int const maxNOR, size_t const idx) = 0
Set the maximum number of returns per pulse for the scanning device (0 means no maximum at all).
See also
ScanningDevice::maxNOR
- Parameters:
maxNOR – New max NOR for the scanning device
idx – Index of the scanning device which max NOR must be set
-
inline void setMaxNOR(int const maxNOR)
Non index version of Scanner::setMaxNOR(int const, size_t const)
-
virtual int getNumTimeBins(size_t const idx) const = 0
Obtain the number of bins defining the size of the time discretization for the scanning device.
- Parameters:
idx – Index of the scanning device which number of time bins must be obtained
- Returns:
The number of time bins for the scanning device
-
inline int getNumTimeBins() const
Non index version of the Scanner::getNumTimeBins(size_t const) method.
See also
Scanner::getNumTimeBins(size_t const)
-
virtual void setNumTimeBins(int const numTimeBins, size_t const idx) = 0
Set the number of bins defining the size of the time discretization for the scanning device.
- Parameters:
numTimeBins – The number of time bins for the scanning device
idx – The index of the scanning device which number of time bins must be set
-
inline void setNumTimeBins(int const numTimeBins)
Non index version of the Scanner::setNumTimeBins(int const, size_t const) method.
-
virtual int getPeakIntensityIndex(size_t const idx) const = 0
Obtain the index of the bin containing the intensity peak for the scanning device.
- Parameters:
idx – The index of the scanning device which peak intensity index must be obtained
- Returns:
The peak intensity index of the scanning device
-
inline int getPeakIntensityIndex() const
Non index version of the Scanner::getPeakIntensityIndex(size_t const) method.
See also
Scanner::getPeakIntensityIndex(size_t const)
-
virtual void setPeakIntensityIndex(int const pii, size_t const idx) = 0
Set the index of the bin containing the intensity peak for the scanning device.
- Parameters:
pii – The new peak intensity index for the scanning device
idx – The index of the scanning device which peak intensity index must be set
-
inline void setPeakIntensityIndex(int const pii)
Non index version of the Scanner::setPeakIntensityIndex(int const, size_t const) method.
-
virtual std::vector<double> &getTimeWave(size_t const idx) = 0
Obtain the time discretization vector of the scanning device.
- Parameters:
idx – The index of the scanning device which time discretization vector must be obtained
- Returns:
The time discretization vector of the scanning device
-
inline std::vector<double> &getTimeWave()
Non index version of the Scanner::getTimeWave(size_t const) method.
See also
-
virtual void setTimeWave(std::vector<double> &timewave, size_t const idx) = 0
Set the time discretization vector of the scanning device.
- Parameters:
timewave – The new time discretization vector for the scanning device
idx – The index of scanning device which time discretization vector must be updated
-
inline void setTimeWave(std::vector<double> &timewave)
Non index version of the Scanner::setTimeWave(std::vector<double> &, size_t const) method.
-
virtual void setTimeWave(std::vector<double> &&timewave, size_t const idx) = 0
Rvalue version of the Scanner::setTimeWave(std::vector<double> &, size_t const) method.
-
inline void setTimeWave(std::vector<double> &&timewave)
Non index version of the Scanner::setTimeWave(std::vector<double> &&, size_t const) method.
-
virtual double getReceivedEnergyMin(size_t const idx) const = 0
Obtain the minimum received energy threshold of the scanning device.
- Parameters:
idx – The index of the scanning device which minimum received energy threshold must be obtained.
- Returns:
The minimum received energy threshold of the scanning device.
-
inline double getReceivedEnergyMin() const
Non index version of the Scanner::getReceivedEnergyMin(size_t const) method.
See also
Scanner::getReceivedEnergyMin(size_t const)
-
virtual void setReceivedEnergyMin(double const receivedEnergyMin_W, size_t const idx) = 0
Set the minimum threshold for the received energy of the scanning device.
- Parameters:
receivedEnergyMin_W – The new minimum threshold for the received energy of the scanning device.
idx – The index of the scanning device which time discretization vector must be updated.
-
inline void setReceivedEnergyMin(double const receivedEnergyMin_W)
Non index version of the Scanner::setReceivedEnergyMin(double const, size_t const) method.
Public Members
-
std::unique_ptr<ScanningPulseProcess> spp = nullptr
The scanning pulse process used by the scanner.
See also
ScanningPulseProcess
-
std::shared_ptr<Platform> platform
Platform carrying the scanner.
See also
Platform
-
std::shared_ptr<std::vector<std::string>> allOutputPaths = nullptr
Historical vector of all output paths where scanner measurements were written.
It can be nullptr when no historical tracking of all output paths is requested
-
std::shared_ptr<std::vector<Measurement>> allMeasurements = nullptr
Historical vector of all measurements performed by the scanner.
It can be nullptr when no historical tracking of all measurements is requested
-
std::shared_ptr<std::vector<Trajectory>> allTrajectories = nullptr
Historical vector of all trajectory points recorded by the scanner.
It can be nullptr when no historical tracking of trajectory is requested
-
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.
See also
See also
Scanner::alTrajectories
-
double trajectoryTimeInterval_ns = 0.0
Time interval between record of trajectory points. When it is exactly 0, then no trajectory points will be recorded.
NOTICE that it is given in nanoseconds, while the trajectoryTimeInterval in the ScannerSettings class is given in seconds, as the user argument itself
See also
ScannerSettings::trajectoryTimeInterval
-
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.
Protected Functions
Protected Attributes
-
std::string id = "SCANNER-ID"
The scanner’s identifier.
-
bool writeWaveform = false
Flag specifying if write waveform (true) or not (false)
-
bool writePulse = false
Flag specifying if write pulse (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)
When a scanner is not active, it is not sensing
-
double maxDuration_s = 0.0
-
Scanner(...)