Structure containing metadata for a terrestrial scan. More...
#include <LiDAR.h>
Public Member Functions | |
| ScanMetadata () | |
| Default LiDAR scan data structure. | |
| ScanMetadata (const helios::vec3 &origin, uint Ntheta, float thetaMin, float thetaMax, uint Nphi, float phiMin, float phiMax, float exitDiameter, float beamDivergence, const std::vector< std::string > &columnFormat) | |
| Create a LiDAR scan data structure. | |
| helios::SphericalCoord | rc2direction (uint row, uint column) const |
| Convert the (row,column) of hit point in a scan to a direction vector. | |
| helios::int2 | direction2rc (const helios::SphericalCoord &direction) const |
| Convert the scan ray direction into (row,column) table index. | |
Data Fields | |
| std::string | data_file |
| File containing hit point data. | |
| uint | Ntheta |
| Number of zenithal angles in scan (rows) | |
| float | thetaMin |
| Minimum zenithal angle of scan in radians. | |
| float | thetaMax |
| Maximum zenithal angle of scan in radians. | |
| uint | Nphi |
| Number of azimuthal angles in scan (columns) | |
| float | phiMin |
| Minimum azimuthal angle of scan in radians. | |
| float | phiMax |
| Maximum azimuthal angle of scan in radians. | |
| helios::vec3 | origin |
| (x,y,z) coordinate of scanner location | |
| float | exitDiameter |
| Diameter of laser pulse at exit from the scanner. | |
| float | beamDivergence |
| Divergence angle of the laser beam in radians. | |
| std::vector< std::string > | columnFormat |
| Vector of strings specifying the columns of the scan ASCII file for input/output. | |
Structure containing metadata for a terrestrial scan.
A scan is initialized by providing 1) the origin of the scan (see origin), 2) the number of zenithal scan directions (see Ntheta), 3) the range of zenithal scan angles (see thetaMin, thetaMax), 4) the number of azimuthal scan directions (see Nphi), 5) the range of azimuthal scan angles (see phiMin, phiMax). This creates a grid of Ntheta x Nphi scan points which are all initialized as misses. Points are set as hits using the addHitPoint() function. There are various functions to query the scan data.
| ScanMetadata::ScanMetadata | ( | ) |
| ScanMetadata::ScanMetadata | ( | const helios::vec3 & | origin, |
| uint | Ntheta, | ||
| float | thetaMin, | ||
| float | thetaMax, | ||
| uint | Nphi, | ||
| float | phiMin, | ||
| float | phiMax, | ||
| float | exitDiameter, | ||
| float | beamDivergence, | ||
| const std::vector< std::string > & | columnFormat | ||
| ) |
Create a LiDAR scan data structure.
| [in] | origin | (x,y,z) position of the scanner |
| [in] | Ntheta | Number of scan points in the theta (zenithal) direction |
| [in] | thetaMin | Minimum scan angle in the theta (zenithal) direction in radians |
| [in] | thetaMax | Maximum scan angle in the theta (zenithal) direction in radians |
| [in] | Nphi | Number of scan points in the phi (azimuthal) direction |
| [in] | phiMin | Minimum scan angle in the phi (azimuthal) direction in radians |
| [in] | phiMax | Maximum scan angle in the phi (azimuthal) direction in radians |
| helios::int2 ScanMetadata::direction2rc | ( | const helios::SphericalCoord & | direction | ) | const |
| helios::SphericalCoord ScanMetadata::rc2direction | ( | uint | row, |
| uint | column | ||
| ) | const |
Convert the (row,column) of hit point in a scan to a direction vector.
| [in] | row | Index of hit point in the theta (zenithal) direction. |
| [in] | column | Index of hit point in the phi (azimuthal) direction. |
| float ScanMetadata::beamDivergence |
| std::vector<std::string> ScanMetadata::columnFormat |
| std::string ScanMetadata::data_file |
| float ScanMetadata::exitDiameter |
| uint ScanMetadata::Nphi |
| uint ScanMetadata::Ntheta |
| helios::vec3 ScanMetadata::origin |
| float ScanMetadata::phiMax |
| float ScanMetadata::phiMin |
| float ScanMetadata::thetaMax |
| float ScanMetadata::thetaMin |