Helios++
Helios software for LiDAR simulations
Trajectory.h
1 #pragma once
2 
3 #include <glm/glm.hpp>
4 
5 #include <ostream>
6 
10 class Trajectory{
11 public:
12  // *** ATTRIBUTES *** //
13  // ******************** //
18  double gpsTime = 0;
22  glm::dvec3 position = glm::dvec3(0, 0, 0);
26  double roll = 0;
30  double pitch = 0;
34  double yaw = 0;
35 
36  // *** CONSTRUCTION / DESTRUCTION *** //
37  // ************************************ //
41  Trajectory() = default;
51  double gpsTime,
52  glm::dvec3 position,
53  double roll,
54  double pitch,
55  double yaw
56  ) :
59  roll(roll),
60  pitch(pitch),
61  yaw(yaw)
62  {}
63  Trajectory(const Trajectory &t){
64  gpsTime = t.gpsTime;
65  position = glm::dvec3(t.position);
66  roll = t.roll;
67  pitch = t.pitch;
68  yaw = t.yaw;
69  }
70 
71  // *** O P E R A T O R S *** //
72  // *************************** //
73  friend std::ostream & operator << (std::ostream &out, Trajectory &t){
74  out << t.gpsTime << "," << t.position.x << "," << t.position.y << ","
75  << t.position.z << "," << t.roll << ","
76  << t.pitch << "," << t.yaw;
77  return out;
78  }
79 };
Class representing a concrete trajectory definition.
Definition: Trajectory.h:10
double pitch
Pitch angle in radians.
Definition: Trajectory.h:30
double gpsTime
GPS time in nanoseconds identifying the moment at which trajectory is registered.
Definition: Trajectory.h:18
double roll
Roll angle in radians.
Definition: Trajectory.h:26
glm::dvec3 position
Trajectory position/coordinates.
Definition: Trajectory.h:22
double yaw
Yaw angle in radians.
Definition: Trajectory.h:34
Trajectory(double gpsTime, glm::dvec3 position, double roll, double pitch, double yaw)
Trajectory constructor.
Definition: Trajectory.h:50
Trajectory()=default
Default trajectory constructor.