Helios++
Helios software for LiDAR simulations
AbstractBeamDeflector Class Referenceabstract

Base abstract class for beam deflectors. More...

#include <AbstractBeamDeflector.h>

Inheritance diagram for AbstractBeamDeflector:
Collaboration diagram for AbstractBeamDeflector:

Public Member Functions

 AbstractBeamDeflector (double scanAngleMax_rad, double scanFreqMax_Hz, double scanFreqMin_Hz)
 Base constructor for beam deflectors. More...
 
virtual std::shared_ptr< AbstractBeamDeflectorclone ()=0
 
virtual void _clone (std::shared_ptr< AbstractBeamDeflector > abd)
 
virtual void applySettings (std::shared_ptr< ScannerSettings > settings)
 Apply given scanner settings to beam deflector. More...
 
virtual bool lastPulseLeftDevice ()
 Check if last pulse left device (true) or not (false) More...
 
virtual void restartDeflector ()
 Restart the deflector. This method is meant to be invoked whenever the deflector needs to be restarted. Which generally occurs when the previous leg was inactive.
 
virtual void doSimStep ()=0
 Perform computations for current simulation step.
 
Rotation getEmitterRelativeAttitude ()
 Get the relative emitter attitude. More...
 
RotationgetEmitterRelativeAttitudeByReference ()
 Get the relative emitter attitude by referencce. More...
 
virtual void setScanAngle_rad (double scanAngle_rad)
 Set the scan angle. More...
 
virtual void setScanFreq_Hz (double scanFreq_hz)
 Set the scanning frequency. More...
 

Public Attributes

double cfg_device_scanFreqMax_Hz = 0
 Minimum scanning frequency (hertz)
 
double cfg_device_scanFreqMin_Hz = 0
 Maximum scanning frequency (hertz)
 
double cfg_device_scanAngleMax_rad = 0
 Maximum scanning angle (radians)
 
double cfg_setting_scanFreq_Hz = 0
 Scanning frequency (hertz)
 
double cfg_setting_scanAngle_rad = 0
 Scanning angle (radians)
 
double cfg_setting_verticalAngleMin_rad = 0
 Minimum vertical scanning angle (radians)
 
double cfg_setting_verticalAngleMax_rad = 0
 Maximum vertical scanning angle (radians)
 
double state_currentBeamAngle_rad = 0
 Current beam angle (radians)
 
double state_angleDiff_rad = 0
 Angle differential (radians)
 
double cached_angleBetweenPulses_rad
 Angle between pulses (radians)
 
Rotation cached_emitterRelativeAttitude = Rotation(glm::dvec3(1, 0, 0), 0)
 Relative emitter attitude.
 

Detailed Description

Base abstract class for beam deflectors.

Constructor & Destructor Documentation

◆ AbstractBeamDeflector()

AbstractBeamDeflector::AbstractBeamDeflector ( double  scanAngleMax_rad,
double  scanFreqMax_Hz,
double  scanFreqMin_Hz 
)
inline

Base constructor for beam deflectors.

See also
AbstractBeamDeflector::scanAngleMax_rad
AbstractBeamDeflector::scanFreqMax_Hz
AbstractBeamDeflector::scanFreqMin_Hz

Member Function Documentation

◆ applySettings()

void AbstractBeamDeflector::applySettings ( std::shared_ptr< ScannerSettings settings)
virtual

Apply given scanner settings to beam deflector.

Parameters
settingsScanner settings
See also
ScannerSettings

Reimplemented in PolygonMirrorBeamDeflector, RisleyBeamDeflector, OscillatingMirrorBeamDeflector, FiberArrayBeamDeflector, and ConicBeamDeflector.

◆ getEmitterRelativeAttitude()

Rotation AbstractBeamDeflector::getEmitterRelativeAttitude ( )

Get the relative emitter attitude.

Returns
Relative emitter attitude

◆ getEmitterRelativeAttitudeByReference()

Rotation& AbstractBeamDeflector::getEmitterRelativeAttitudeByReference ( )
inline

Get the relative emitter attitude by referencce.

Returns
Reference to relative emitter attitude

◆ lastPulseLeftDevice()

bool AbstractBeamDeflector::lastPulseLeftDevice ( )
virtual

Check if last pulse left device (true) or not (false)

Returns
True if last pulse left device, false otherwise

Reimplemented in PolygonMirrorBeamDeflector.

◆ setScanAngle_rad()

void AbstractBeamDeflector::setScanAngle_rad ( double  scanAngle_rad)
virtual

Set the scan angle.

Parameters
scanAngle_radNew scan angle (radians)

Reimplemented in RisleyBeamDeflector, and OscillatingMirrorBeamDeflector.

◆ setScanFreq_Hz()

void AbstractBeamDeflector::setScanFreq_Hz ( double  scanFreq_hz)
virtual

Set the scanning frequency.

Parameters
scanFreq_hzNew scanning frequency (hertz)

Reimplemented in RisleyBeamDeflector, and OscillatingMirrorBeamDeflector.


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