Helios++
Helios software for LiDAR simulations
PolygonMirrorBeamDeflector Class Reference

Class representing a polygon mirror beam deflector. More...

#include <PolygonMirrorBeamDeflector.h>

Inheritance diagram for PolygonMirrorBeamDeflector:
Collaboration diagram for PolygonMirrorBeamDeflector:

Public Member Functions

 PolygonMirrorBeamDeflector (double _scanFreqMax_Hz, double _scanFreqMin_Hz, double _scanAngleMax_rad, double _scanAngleEffectiveMax_rad)
 Constructor for polygon mirror beam deflector. More...
 
std::shared_ptr< AbstractBeamDeflectorclone () override
 
void _clone (std::shared_ptr< AbstractBeamDeflector > abd) override
 
void applySettings (std::shared_ptr< ScannerSettings >) override
 
void doSimStep () override
 
bool lastPulseLeftDevice () override
 
double getScanAngleEffectiveMax_rad () const
 Obtain the maximum effective scan angle in radians. More...
 
- Public Member Functions inherited from AbstractBeamDeflector
 AbstractBeamDeflector (double scanAngleMax_rad, double scanFreqMax_Hz, double scanFreqMin_Hz)
 Base constructor for beam deflectors. 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.
 
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...
 

Protected Attributes

double cfg_device_scanAngleEffective_rad = 0
 Effective scan angle (radians)
 
double cfg_device_scanAngleEffectiveMax_rad = 0
 Maximum effective scan angle (radians)
 

Additional Inherited Members

- Public Attributes inherited from AbstractBeamDeflector
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

Class representing a polygon mirror beam deflector.

Constructor & Destructor Documentation

◆ PolygonMirrorBeamDeflector()

PolygonMirrorBeamDeflector::PolygonMirrorBeamDeflector ( double  _scanFreqMax_Hz,
double  _scanFreqMin_Hz,
double  _scanAngleMax_rad,
double  _scanAngleEffectiveMax_rad 
)
inline

Constructor for polygon mirror beam deflector.

See also
PolygonMirrorBeamDeflector::cfg_device_scanAngleEffectiveMax_rad
AbstractBeamDeflector::AbstractBeamDeflector( double, double, double)

Member Function Documentation

◆ applySettings()

void PolygonMirrorBeamDeflector::applySettings ( std::shared_ptr< ScannerSettings settings)
overridevirtual

◆ doSimStep()

void PolygonMirrorBeamDeflector::doSimStep ( )
overridevirtual

◆ getScanAngleEffectiveMax_rad()

double PolygonMirrorBeamDeflector::getScanAngleEffectiveMax_rad ( ) const
inline

Obtain the maximum effective scan angle in radians.

See also
PolygonMirrorBeamDeflector::cfg_device_scanAngleEffectiveMax_rad

◆ lastPulseLeftDevice()

bool PolygonMirrorBeamDeflector::lastPulseLeftDevice ( )
overridevirtual

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