Helios++
Helios software for LiDAR simulations
Measurement.h
1 #pragma once
2 
3 #include <string>
4 
5 #include <glm/glm.hpp>
6 #include <ostream>
7 #include "PrintUtils.h"
8 
12 class Measurement {
13 
14 public:
15  // *** ATTRIBUTES *** //
16  // ******************** //
20  std::string hitObjectId;
24  glm::dvec3 position = glm::dvec3(0, 0, 0);
28  glm::dvec3 beamDirection = glm::dvec3(0, 0, 0);
32  glm::dvec3 beamOrigin = glm::dvec3(0, 0, 0);
36  double distance = 0;
40  double intensity = 0;
44  double echo_width = 0;
48  int returnNumber = 0;
56  int fullwaveIndex = 0;
60  int classification = 0;
64  long gpsTime;
65 
66  // *** CONSTRUCTION / DESTRUCTION *** //
67  // ************************************ //
71  Measurement() = default;
72  Measurement(const Measurement &m){
73  hitObjectId = m.hitObjectId;
74  position = glm::dvec3(m.position);
75  beamDirection = glm::dvec3(m.beamDirection);
76  beamOrigin = glm::dvec3(m.beamOrigin);
77  distance = m.distance;
78  intensity = m.intensity;
79  echo_width = m.echo_width;
80  returnNumber = m.returnNumber;
81  pulseReturnNumber = m.pulseReturnNumber;
82  fullwaveIndex = m.fullwaveIndex;
83  classification = m.classification;
84  gpsTime = m.gpsTime;
85  }
86 
87  // *** O P E R A T O R S *** //
88  // *************************** //
89  friend std::ostream & operator << (std::ostream &out, Measurement & m){
90  out << m.hitObjectId << "," << m.position << "," << m.beamDirection
91  << "," << m.beamOrigin << "," << m.distance << ","
92  << m.intensity << "," << m.echo_width << ","
93  << m.returnNumber << "," << m.pulseReturnNumber << ","
94  << m.fullwaveIndex << "," << m.classification << ","
95  << m.gpsTime;
96  return out;
97  }
98 };
glm::dvec3 beamDirection
Beam director vector.
Definition: Measurement.h:28
std::string hitObjectId
ID of hit object.
Definition: Measurement.h:20
long gpsTime
Measurement GPS time.
Definition: Measurement.h:64
Measurement()=default
Default measurement constructor.
int fullwaveIndex
Full wave index.
Definition: Measurement.h:56
Class representing a measurement.
Definition: Measurement.h:12
int pulseReturnNumber
Pulse return number.
Definition: Measurement.h:52
glm::dvec3 position
Definition: Measurement.h:24
int classification
Point class.
Definition: Measurement.h:60
double intensity
Point intensity.
Definition: Measurement.h:40
double echo_width
Echo width.
Definition: Measurement.h:44
int returnNumber
Measurement return number.
Definition: Measurement.h:48
double distance
Intersection distance.
Definition: Measurement.h:36
glm::dvec3 beamOrigin
Beam origin.
Definition: Measurement.h:32