Helios++
Helios software for LiDAR simulations
FullWaveform.h
1 #pragma once
2 
3 #include <glm/glm.hpp>
4 
5 #include <vector>
6 
12 class FullWaveform {
13 public:
14  // *** ATTRIBUTES *** //
15  // ******************** //
20  std::vector<double> fullwave;
28  double minTime;
32  double maxTime;
36  glm::dvec3 beamOrigin;
40  glm::dvec3 beamDir;
44  double gpsTime;
45 
46  // *** CONSTRUCTION / DESTRUCTION *** //
47  // ************************************ //
51  FullWaveform() = default;
56  std::vector<double> const &fullwave,
57  int const fullwaveIndex,
58  double const minTime,
59  double const maxTime,
60  glm::dvec3 const &beamOrigin,
61  glm::dvec3 const &beamDir,
62  double const gpsTime
63  ) :
71  {}
72  FullWaveform(FullWaveform const &fw){
73  fullwave = fw.fullwave;
75  minTime = fw.minTime;
76  maxTime = fw.maxTime;
78  beamDir = fw.beamDir;
79  gpsTime = fw.gpsTime;
80  }
81  virtual ~FullWaveform() = default;
82 
83  // *** OPERATORS *** //
84  // ******************* //
85  friend std::ostream & operator << (std::ostream &out, FullWaveform &fw){
86  out << fw.fullwaveIndex << ", " << fw.minTime << ", " << fw.maxTime
87  << ", " << fw.beamOrigin.x << ", " << fw.beamOrigin.y << ", "
88  << fw.beamOrigin.z << ", " << fw.beamDir.x << ", " << fw.beamDir.y
89  << ", " << fw.beamDir.z << ", "
90  << fw.gpsTime;
91  for(double const &fwi : fw.fullwave) out << ", " << fwi;
92  return out;
93  }
94 };
Class representing a full waveform.
Definition: FullWaveform.h:12
std::vector< double > fullwave
The full wave vector containing the values of the full waveform itself.
Definition: FullWaveform.h:20
glm::dvec3 beamDir
The director vector of the beam.
Definition: FullWaveform.h:40
double maxTime
Maximum hit time (nanoseconds)
Definition: FullWaveform.h:32
double gpsTime
The GPS time associated to the full wave (nanoseconds)
Definition: FullWaveform.h:44
FullWaveform()=default
Default full waveform constructor.
int fullwaveIndex
The index for the full wave.
Definition: FullWaveform.h:24
FullWaveform(std::vector< double > const &fullwave, int const fullwaveIndex, double const minTime, double const maxTime, glm::dvec3 const &beamOrigin, glm::dvec3 const &beamDir, double const gpsTime)
Built full waveform directly from given attributes.
Definition: FullWaveform.h:55
double minTime
Minimum hit time (nanoseconds)
Definition: FullWaveform.h:28
glm::dvec3 beamOrigin
The coordinates of the beam origin.
Definition: FullWaveform.h:36