Helios++
Helios software for LiDAR simulations
SimulatedPulse Class Reference

Class representing a simulated laser pulse. More...

#include <SimulatedPulse.h>

Inheritance diagram for SimulatedPulse:
Collaboration diagram for SimulatedPulse:

Public Member Functions

 SimulatedPulse (glm::dvec3 const &origin, Rotation const &attitude, double const time_ns, unsigned int legIndex, int const pulseNumber, size_t const deviceIndex)
 Simulated laser pulse constructor. More...
 
unsigned int getLegIndex () const
 Obtain the leg index of the pulse. More...
 
void setLegIndex (unsigned int const legIndex)
 Set the leg index of the pulse. More...
 
int getPulseNumber () const
 Obtain the pulse number wrt emitter scanning device. More...
 
void setPulseNumber (int const pulseNumber)
 Set the pulse number wrt emitter scanning device. More...
 
size_t getDeviceIndex () const
 Obtain the device index of the emitter scanning device. More...
 
void setDeviceIndex (size_t const deviceIndex)
 Set the device index of the emitter scanning device. More...
 
- Public Member Functions inherited from TimedPulse
 TimedPulse (glm::dvec3 const &origin, Rotation const &attitude, double const time_ns)
 Time laser pulse constructor. More...
 
double getTime () const
 Obtain the start time of the pulse (in nanoseconds) More...
 
void setTime (double const time_ns)
 Set the start time of the pulse. More...
 
- Public Member Functions inherited from Pulse
 Pulse (glm::dvec3 const &origin, Rotation const &attitude)
 Laser pulse constructor. More...
 
glm::dvec3 getOrigin () const
 Obtain the origin of the pulse. More...
 
glm::dvec3 & getOriginRef ()
 Obtain the origin of the pulse by reference. More...
 
void setOrigin (glm::dvec3 const &origin)
 Set the origin of the pulse. More...
 
Rotation getAttitude () const
 Obtain the attitude of the ray. More...
 
RotationgetAttitudeRef ()
 Obtain the attitude of the ray by reference. More...
 
void setAttitude (Rotation const &attitude)
 Set the attitude of the ray. More...
 
glm::dvec3 computeDirection ()
 Compute the director vector of the ray/beam. More...
 

Protected Attributes

unsigned int legIndex
 The index of the simulation leg generating the pulse. More...
 
int pulseNumber
 The number of the pulse, counting from the perspective of the concrete scanning device which generated the pulse.
 
size_t deviceIndex
 The index of the scanning device inside the scanner context generating the pulse. More...
 
- Protected Attributes inherited from TimedPulse
double time_ns
 The start time of the pulse (in nanoseconds). Typically in real world applications it is the GPS time.
 
- Protected Attributes inherited from Pulse
glm::dvec3 origin
 The origin of the pulse, typically named as the point \(o\).
 
Rotation attitude
 The attitude of the ray.
 

Detailed Description

Class representing a simulated laser pulse.

Author
Alberto M. Esmoris Pena @verison 1.0

Constructor & Destructor Documentation

◆ SimulatedPulse()

SimulatedPulse::SimulatedPulse ( glm::dvec3 const &  origin,
Rotation const &  attitude,
double const  time_ns,
unsigned int  legIndex,
int const  pulseNumber,
size_t const  deviceIndex 
)
inline

Member Function Documentation

◆ getDeviceIndex()

size_t SimulatedPulse::getDeviceIndex ( ) const
inline

Obtain the device index of the emitter scanning device.

Returns
The device index of the emitter scanning device
See also
SimulatedPulse::deviceIndex

◆ getLegIndex()

unsigned int SimulatedPulse::getLegIndex ( ) const
inline

Obtain the leg index of the pulse.

Returns
The leg index of the pulse
See also
SimulatedPulse::legIndex

◆ getPulseNumber()

int SimulatedPulse::getPulseNumber ( ) const
inline

Obtain the pulse number wrt emitter scanning device.

Returns
The pulse number wrt emitter scanning device
See also
SimulatedPulse::pulseNumber

◆ setDeviceIndex()

void SimulatedPulse::setDeviceIndex ( size_t const  deviceIndex)
inline

Set the device index of the emitter scanning device.

Parameters
deviceIndexThe new device index of the emitter scanning device
See also
SimulatedPulse::deviceIndex

◆ setLegIndex()

void SimulatedPulse::setLegIndex ( unsigned int const  legIndex)
inline

Set the leg index of the pulse.

Parameters
legIndexThe new leg index for the pulse
See also
SimulatedPulse::legIndex

◆ setPulseNumber()

void SimulatedPulse::setPulseNumber ( int const  pulseNumber)
inline

Set the pulse number wrt emitter scanning device.

Parameters
pulseNumberThe new pulse number wrt emitter scanning device
See also
SimulatedPulse::pulseNumber

Member Data Documentation

◆ deviceIndex

size_t SimulatedPulse::deviceIndex
protected

The index of the scanning device inside the scanner context generating the pulse.

See also
Scanner
SingleScanner
MultiScanner
ScanningDevice

◆ legIndex

unsigned int SimulatedPulse::legIndex
protected

The index of the simulation leg generating the pulse.

Which leg the FullWaveformPulseRunnable belongs to.

While this attribute is not strictly necessary for the FullWaveformPulseRunnable to do its job, it really helps with tracing and debugging concurrency issues.

For instance, to track what is going on with end of leg FullWaveformPulseRunnable threads while a new leg is being started.

This attribute could be safely removed without degenerating class mechanics. So, if in the future it is not wanted any more, feel free to remove it.


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