Helios++
Helios software for LiDAR simulations
|
#include <ScannerHead.h>
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... | |
Rotation & | getMountRelativeAttitudeByReference () |
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. | |
Class representing a scanner head
|
inline |
Scanner head constructor.
void ScannerHead::applySettings | ( | std::shared_ptr< ScannerSettings > | settings | ) |
Apply scanner settings to the scanner head.
settings | Scanner settings to be applied |
void ScannerHead::doSimStep | ( | double | pulseFreq_Hz | ) |
Perform computations for current simulation step.
pulseFreq_Hz | Pulse frequency (hertz) |
Rotation ScannerHead::getMountRelativeAttitude | ( | ) |
Obtain the relative mount attitude.
|
inline |
|
inline |
Get the current rotation angle.
|
inline |
Get rotation per second.
|
inline |
Get the maximum rotation per second.
|
inline |
Get rotation range.
|
inline |
Get rotation start angle.
|
inline |
Get rotation stop angle.
bool ScannerHead::rotateCompleted | ( | ) |
Check if rotation has been completed.
Rotation is considered to be completed when the rotation stop angle has been reached
void ScannerHead::setCurrentRotateAngle_rad | ( | double | angle_rad | ) |
Set the current rotation angle.
angle_rad | New current rotation angle (radians) |
void ScannerHead::setRotatePerSec_rad | ( | double | rotateSpeed_rad | ) |
Set rotation per second.
rotateSpeed_rad | New rotation per second (radians) |
|
inline |
Set the maximum rotation per second.
rotatePerSecMax | New maximum rotation per second (radians) |
|
inline |
Set rotation range.
rotateRange | New rotation range |
|
inline |
Set rotation start angle.
rotateStart | New rotation start angle (radians) |
|
inline |
Set rotation stop angle.
rotateStop | New rotation stop angle (radians) |