Concrete implementation of abstract pulse runnable to compute full waveform pulses.
More...
|
| 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...
|
|
| 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...
|
|
|
void | initialize () override |
| Initialize pending attributes of the full waveform pulse runnable before doing further computations. This implies calling the AbstractPulseRunnable::initialize method. More...
|
|
void | computeSubrays (vector< double > const &tMinMax, NoiseSource< double > &intersectionHandlingNoiseSource, std::map< double, double > &reflections, vector< RaySceneIntersection > &intersects) |
| Perform ray casting to find intersections. More...
|
|
void | handleSubray (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) |
| Handle sub-rays along the circle. More...
|
|
void | digestIntersections (std::vector< std::vector< double >> &apMatrix, RandomnessGenerator< double > &randGen, RandomnessGenerator< double > &randGen2, glm::dvec3 &beamDir, std::map< double, double > &reflections, vector< RaySceneIntersection > &intersects) |
| Digest intersections found through ray casting. More...
|
|
void | findMaxMinHitDistances (std::map< double, double > &reflections, double &minHitDist_m, double &maxHitDist_m) |
| Find min and max hit distances in meters. More...
|
|
bool | initializeFullWaveform (double const minHitDist_m, double const maxHitDist_m, double &minHitTime_ns, double &maxHitTime_ns, double &nsPerBin, double &distanceThreshold, int &peakIntensityIndex, int &numFullwaveBins) |
| Initialize full waveform While the vector is not strictly initialized in this function, necessary variables are computed here. More...
|
|
void | populateFullWaveform (std::map< double, double > const &reflections, std::vector< double > &fullwave, double const distanceThreshold, double const minHitTime_ns, double const nsPerBin, int const peakIntensityIndex) |
| Populate a previously initialized full waveform vector. More...
|
|
void | digestFullWaveform (std::vector< Measurement > &pointsMeasurement, int &numReturns, std::vector< std::vector< double >> &apMatrix, std::vector< double > const &fullwave, vector< RaySceneIntersection > const &intersects, glm::dvec3 const &beamDir, double const nsPerBin, int const numFullwaveBins, int const peakIntensityIndex, double const minHitTime_ns) |
| Digest a previously populated full waveform vector, generating measurements. More...
|
|
void | exportOutput (std::vector< double > &fullwave, int const numReturns, std::vector< Measurement > &pointsMeasurement, glm::dvec3 const &beamDir, double const minHitTime_ns, double const maxHitTime_ns, RandomnessGenerator< double > &randGen, RandomnessGenerator< double > &randGen2) |
| Export measurements and full waveform data. More...
|
|
virtual shared_ptr< RaySceneIntersection > | findIntersection (vector< double > const &tMinMax, glm::dvec3 const &o, glm::dvec3 const &v) const |
| Find the intersection between the scene and given ray, if any. More...
|
|
bool | detectPeak (int const i, int const win_size, vector< double > const &fullwave) |
| Detect full waveform peaks.
|
|
void | captureFullWave (std::vector< double > &fullwave, int const fullwaveIndex, double const min_time, double const max_time, glm::dvec3 const &beamOrigin, glm::dvec3 const &beamDir, double const gpstime, bool const fullWaveNoise, RandomnessGenerator< double > &rg2) |
| Capture full wave. More...
|
|
Concrete implementation of abstract pulse runnable to compute full waveform pulses.
- See also
- AbstractPulseRunnable