Helios++
Helios software for LiDAR simulations
DynFullWaveformPulseRunnable Class Reference

Derived class extending FullWaveFormPulseRunnable to handle dynamic moving objects. More...

#include <DynFullWaveformPulseRunnable.h>

Inheritance diagram for DynFullWaveformPulseRunnable:
Collaboration diagram for DynFullWaveformPulseRunnable:

Public Member Functions

 DynFullWaveformPulseRunnable (std::shared_ptr< KDGroveRaycaster > raycaster, std::shared_ptr< Scanner > scanner, SimulatedPulse const &pulse)
 Base constructor for dynamic full waveform pulse runnable. More...
 
shared_ptr< RaySceneIntersectionfindIntersection (vector< double > const &tMinMax, glm::dvec3 const &o, glm::dvec3 const &v) const override
 Find intersections considering there are dynamic moving objects involved. More...
 
- Public Member Functions inherited from FullWaveformPulseRunnable
 FullWaveformPulseRunnable (std::shared_ptr< Scanner > scanner, SimulatedPulse const &pulse)
 Base constructor for full waveform pulse runnable. More...
 
void operator() () override
 Full waveform pulse runnable void functor. It is necessary due to compatibility reasons. More...
 
void operator() (std::vector< std::vector< double >> &apMatrix, RandomnessGenerator< double > &randGen, RandomnessGenerator< double > &randGen2, NoiseSource< double > &intersectionHandlingNoiseSource) override
 Full waveform pulse runnable functor. More...
 
- Public Member Functions inherited from AbstractPulseRunnable
 AbstractPulseRunnable (std::shared_ptr< Scanner > const scanner, SimulatedPulse const &pulse)
 Base constructor for pulse runnables. More...
 
void capturePoint (Measurement &m, RandomnessGenerator< double > &rg, std::vector< Measurement > *allMeasurements, std::mutex *allMeasurementsMutex, std::vector< Measurement > *cycleMeasurements, std::mutex *cycleMeasurementsMutex)
 Capture point if proceed and write it. More...
 
void applyMeasurementErrorDirectly (RandomnessGenerator< double > &rg, double &distance, glm::dvec3 &beamOrigin, glm::dvec3 &beamDirection)
 Apply error to received measurement. More...
 
void applyMeasurementErrorFromExpr (RandomnessGenerator< double > &rg, double &distance, glm::dvec3 &beamOrigin, glm::dvec3 &beamDirection)
 Apply error to received measurement. More...
 

Protected Attributes

std::shared_ptr< KDGroveRaycasterraycaster
 The temporal KDGrove raycaster to compute pulse simulation.
 

Additional Inherited Members

- Public Attributes inherited from AbstractPulseRunnable
std::shared_ptr< Scannerscanner = nullptr
 Scanner used to simulate the pulse.
 
std::shared_ptr< AbstractDetectordetector = nullptr
 Detector used to simulate pulse.
 
SimulatedPulse pulse
 The definition of the pulse to be simulated.
 
Scenescene
 Reference to the scene that is being scanned.
 
std::function< void(RandomnessGenerator< double > &rg, double &distance, glm::dvec3 &beamOrigin, glm::dvec3 &beamDirection)> applyMeasurementError
 Function to apply error to received measurement. More...
 
- Static Public Attributes inherited from FullWaveformPulseRunnable
static const double eps = 0.001
 Decimal precision constant for FullWaveformPulseRunnable computations.
 

Detailed Description

Derived class extending FullWaveFormPulseRunnable to handle dynamic moving objects.

Author
Alberto M. Esmoris Pena
Version
1.0
See also
FullWaveformPulseRunnable

Constructor & Destructor Documentation

◆ DynFullWaveformPulseRunnable()

DynFullWaveformPulseRunnable::DynFullWaveformPulseRunnable ( std::shared_ptr< KDGroveRaycaster raycaster,
std::shared_ptr< Scanner scanner,
SimulatedPulse const &  pulse 
)
inline

Base constructor for dynamic full waveform pulse runnable.

Parameters
raycasterThe temporal KDGrove for the dynamic full waveform pulse runnable
See also
FullWaveformPulseRunnable::FullWaveformPulseRunnable
DynFullWaveformPulseRunnable::raycaster

Member Function Documentation

◆ findIntersection()

shared_ptr< RaySceneIntersection > DynFullWaveformPulseRunnable::findIntersection ( vector< double > const &  tMinMax,
glm::dvec3 const &  o,
glm::dvec3 const &  v 
) const
overridevirtual

Find intersections considering there are dynamic moving objects involved.

See also
FullWaveformPulserunnable::findIntersection

Reimplemented from FullWaveformPulseRunnable.


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