Helios++
Helios software for LiDAR simulations
ScannerHead Class Reference

#include <ScannerHead.h>

Collaboration diagram for ScannerHead:

Public Member Functions

 ScannerHead (glm::dvec3 headRotationAxis, double headRotatePerSecMax_rad)
 Scanner head constructor. More...
 
void applySettings (std::shared_ptr< ScannerSettings > settings)
 Apply scanner settings to the scanner head. More...
 
void doSimStep (double pulseFreq_Hz)
 Perform computations for current simulation step. More...
 
bool rotateCompleted ()
 Check if rotation has been completed. More...
 
Rotation getMountRelativeAttitude ()
 Obtain the relative mount attitude. More...
 
RotationgetMountRelativeAttitudeByReference ()
 
double getRotatePerSecMax ()
 Get the maximum rotation per second. More...
 
void setRotatePerSecMax (double rotatePerSecMax)
 Set the maximum rotation per second. More...
 
double getRotateCurrent ()
 Get the current rotation angle. More...
 
void setCurrentRotateAngle_rad (double angle_rad)
 Set the current rotation angle. More...
 
double getRotatePerSec_rad ()
 Get rotation per second. More...
 
void setRotatePerSec_rad (double rotateSpeed_rad)
 Set rotation per second. More...
 
double getRotateStop ()
 Get rotation stop angle. More...
 
void setRotateStop (double rotateStop)
 Set rotation stop angle. More...
 
double getRotateStart ()
 Get rotation start angle. More...
 
void setRotateStart (double rotateStart)
 Set rotation start angle. More...
 
double getRotateRange ()
 Get rotation range. More...
 
void setRotateRange (double rotateRange)
 Set rotation range. More...
 

Public Attributes

glm::dvec3 cfg_device_rotateAxis = glm::dvec3(1, 0, 0)
 Rotation axis.
 

Private Attributes

double cfg_device_rotatePerSecMax_rad = 0
 Maximum rotation per second (radians)
 
double cfg_setting_rotatePerSec_rad = 0
 Rotation per second (radians)
 
double cfg_setting_rotateStop_rad = 0
 Rotation stop angle (radians)
 
double cfg_setting_rotateStart_rad = 0
 Rotation start angle (radians)
 
double cfg_setting_rotateRange_rad = 0
 Difference between rotation stop and start angles (radians)
 
double state_currentRotateAngle_rad = 0
 Current rotation angle (radians)
 
Rotation cached_mountRelativeAttitude = Rotation(glm::dvec3(0, 1, 0), 0)
 Relative scanner head mount attitude.
 

Detailed Description

Author
Alberto M. Esmoris Pena
Version
1.0

Class representing a scanner head

Constructor & Destructor Documentation

◆ ScannerHead()

ScannerHead::ScannerHead ( glm::dvec3  headRotationAxis,
double  headRotatePerSecMax_rad 
)
inline

Member Function Documentation

◆ applySettings()

void ScannerHead::applySettings ( std::shared_ptr< ScannerSettings settings)

Apply scanner settings to the scanner head.

Parameters
settingsScanner settings to be applied

◆ doSimStep()

void ScannerHead::doSimStep ( double  pulseFreq_Hz)

Perform computations for current simulation step.

Parameters
pulseFreq_HzPulse frequency (hertz)

◆ getMountRelativeAttitude()

Rotation ScannerHead::getMountRelativeAttitude ( )

Obtain the relative mount attitude.

Returns
Relative mount attitude
See also
ScannerHead::cached_mountRelativeAttitude

◆ getMountRelativeAttitudeByReference()

Rotation& ScannerHead::getMountRelativeAttitudeByReference ( )
inline
See also
Obtain the relative mount attitude by reference
Returns
Reference to the relative mount attitude
See also
ScannerHead::cached_mountRelativeAttitude

◆ getRotateCurrent()

double ScannerHead::getRotateCurrent ( )
inline

Get the current rotation angle.

Returns
Current rotation angle (radians)
See also
ScannerHead::state_currentRotateAngle_rad

◆ getRotatePerSec_rad()

double ScannerHead::getRotatePerSec_rad ( )
inline

Get rotation per second.

Returns
Rotation per second (radians)
See also
ScannerHead::cfg_setting_rotatePerSec_rad

◆ getRotatePerSecMax()

double ScannerHead::getRotatePerSecMax ( )
inline

Get the maximum rotation per second.

Returns
Maximum rotation per second (radians)
See also
ScannerHead::cfg_device_rotatePerSecMax_rad

◆ getRotateRange()

double ScannerHead::getRotateRange ( )
inline

Get rotation range.

Returns
Rotation range (radians)
See also
ScannerHead::cfg_setting_rotateRange_rad

◆ getRotateStart()

double ScannerHead::getRotateStart ( )
inline

Get rotation start angle.

Returns
Rotation start angle (radians)
See also
ScannerHead::cfg_setting_rotateStart_rad

◆ getRotateStop()

double ScannerHead::getRotateStop ( )
inline

Get rotation stop angle.

Returns
Rotation stop angle (radians)
See also
ScannerHead::cfg_setting_rotateStop_rad

◆ rotateCompleted()

bool ScannerHead::rotateCompleted ( )

Check if rotation has been completed.

Rotation is considered to be completed when the rotation stop angle has been reached

Returns
True of rotation has been completed, false otherwise
See also
ScannerHead::cfg_setting_rotateStop_rad

◆ setCurrentRotateAngle_rad()

void ScannerHead::setCurrentRotateAngle_rad ( double  angle_rad)

Set the current rotation angle.

Parameters
angle_radNew current rotation angle (radians)
See also
ScannerHead::state_currentRotateAngle_rad

◆ setRotatePerSec_rad()

void ScannerHead::setRotatePerSec_rad ( double  rotateSpeed_rad)

Set rotation per second.

Parameters
rotateSpeed_radNew rotation per second (radians)
See also
ScannerHead::rotateSpeed_rad

◆ setRotatePerSecMax()

void ScannerHead::setRotatePerSecMax ( double  rotatePerSecMax)
inline

Set the maximum rotation per second.

Parameters
rotatePerSecMaxNew maximum rotation per second (radians)
See also
ScannerHead::cfg_device_rotatePerSecMax_rad

◆ setRotateRange()

void ScannerHead::setRotateRange ( double  rotateRange)
inline

Set rotation range.

Parameters
rotateRangeNew rotation range
See also
ScannerHead::cfg_setting_rotateRange_rad

◆ setRotateStart()

void ScannerHead::setRotateStart ( double  rotateStart)
inline

Set rotation start angle.

Parameters
rotateStartNew rotation start angle (radians)
See also
ScannerHead::cfg_setting_rotateStart_rad

◆ setRotateStop()

void ScannerHead::setRotateStop ( double  rotateStop)
inline

Set rotation stop angle.

Parameters
rotateStopNew rotation stop angle (radians)
See also
ScannerHead::cfg_setting_rotateStop_rad

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