Helios++
Helios software for LiDAR simulations
Measurement.h
1 #pragma once
2 
3 #include <string>
4 #include <ostream>
5 
6 #include <glm/glm.hpp>
7 
8 #include <util/PrintUtils.h>
9 
13 class Measurement {
14 
15 public:
16  // *** ATTRIBUTES *** //
17  // ******************** //
21  std::string devId;
25  size_t devIdx;
29  std::string hitObjectId;
33  glm::dvec3 position = glm::dvec3(0, 0, 0);
37  glm::dvec3 beamDirection = glm::dvec3(0, 0, 0);
41  glm::dvec3 beamOrigin = glm::dvec3(0, 0, 0);
45  double distance = 0;
49  double intensity = 0;
53  double echo_width = 0;
57  int returnNumber = 0;
65  int fullwaveIndex = 0;
69  int classification = 0;
73  double gpsTime;
74 
75 
76  // *** CONSTRUCTION / DESTRUCTION *** //
77  // ************************************ //
81  Measurement() = default;
82  Measurement(const Measurement &m){
83  devId = m.devId;
84  devIdx = m.devIdx;
86  position = glm::dvec3(m.position);
87  beamDirection = glm::dvec3(m.beamDirection);
88  beamOrigin = glm::dvec3(m.beamOrigin);
89  distance = m.distance;
90  intensity = m.intensity;
96  gpsTime = m.gpsTime;
97  }
98  virtual ~Measurement() = default;
99 
100  // *** O P E R A T O R S *** //
101  // *************************** //
102  friend std::ostream & operator << (std::ostream &out, Measurement & m){
103  out << m.hitObjectId << "," << m.position << "," << m.beamDirection
104  << "," << m.beamOrigin << "," << m.distance << ","
105  << m.intensity << "," << m.echo_width << ","
106  << m.returnNumber << "," << m.pulseReturnNumber << ","
107  << m.fullwaveIndex << "," << m.classification << ","
108  << m.gpsTime;
109  return out;
110  }
111 };
Class representing a measurement.
Definition: Measurement.h:13
glm::dvec3 beamDirection
Beam director vector.
Definition: Measurement.h:37
int pulseReturnNumber
Pulse return number.
Definition: Measurement.h:61
std::string hitObjectId
ID of hit object.
Definition: Measurement.h:29
Measurement()=default
Default measurement constructor.
size_t devIdx
The index of the scanning device which generated the measurement.
Definition: Measurement.h:25
double distance
Intersection distance.
Definition: Measurement.h:45
int fullwaveIndex
Full wave index.
Definition: Measurement.h:65
glm::dvec3 beamOrigin
Beam origin.
Definition: Measurement.h:41
double gpsTime
Measurement GPS time.
Definition: Measurement.h:73
double intensity
Point intensity.
Definition: Measurement.h:49
double echo_width
Echo width.
Definition: Measurement.h:53
int returnNumber
Measurement return number.
Definition: Measurement.h:57
int classification
Point class.
Definition: Measurement.h:69
glm::dvec3 position
Definition: Measurement.h:33
std::string devId
Identifier of the device which generated the measurement.
Definition: Measurement.h:21