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 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 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 OscillatingMirrorBeamDeflector.

◆ setScanFreq_Hz()

void AbstractBeamDeflector::setScanFreq_Hz ( double  scanFreq_hz)
virtual

Set the scanning frequency.

Parameters
scanFreq_hzNew scanning frequency (hertz)

Reimplemented in OscillatingMirrorBeamDeflector.


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