Helios++
Helios software for LiDAR simulations
Pulse.h
1 #pragma once
2 
3 #include <Rotation.h>
4 #include <maths/Directions.h>
5 
6 #include <glm/glm.hpp>
7 
13 class Pulse {
14 protected:
15  // *** ATTRIBUTES *** //
16  // ******************** //
20  glm::dvec3 origin;
25 
26 public:
27  // *** CONSTRUCTION / DESTRUCTION *** //
28  // ************************************ //
34  Pulse(glm::dvec3 const &origin, Rotation const &attitude) :
35  origin(origin),
37  {}
38  virtual ~Pulse() = default;
39 
40  // *** GETTERs and SETTERs *** //
41  // ***************************** //
47  inline glm::dvec3 getOrigin() const {return origin;}
53  inline glm::dvec3 & getOriginRef() {return origin;}
59  inline void setOrigin(glm::dvec3 const & origin) {this->origin = origin;}
65  inline Rotation getAttitude() const {return attitude;}
70  inline Rotation & getAttitudeRef() {return attitude;}
75  inline void setAttitude(Rotation const & attitude)
76  {this->attitude = attitude;}
77 
78 
79  // *** M E T H O D S *** //
80  // ************************* //
85  inline glm::dvec3 computeDirection()
87 
88 };
static const glm::dvec3 forward
y : forward-backward direction
Definition: Directions.h:22
Class representing a laser pulse.
Definition: Pulse.h:13
Rotation & getAttitudeRef()
Obtain the attitude of the ray by reference.
Definition: Pulse.h:70
void setOrigin(glm::dvec3 const &origin)
Set the origin of the pulse.
Definition: Pulse.h:59
glm::dvec3 computeDirection()
Compute the director vector of the ray/beam.
Definition: Pulse.h:85
glm::dvec3 & getOriginRef()
Obtain the origin of the pulse by reference.
Definition: Pulse.h:53
glm::dvec3 getOrigin() const
Obtain the origin of the pulse.
Definition: Pulse.h:47
glm::dvec3 origin
The origin of the pulse, typically named as the point .
Definition: Pulse.h:20
void setAttitude(Rotation const &attitude)
Set the attitude of the ray.
Definition: Pulse.h:75
Rotation attitude
The attitude of the ray.
Definition: Pulse.h:24
Rotation getAttitude() const
Obtain the attitude of the ray.
Definition: Pulse.h:65
Pulse(glm::dvec3 const &origin, Rotation const &attitude)
Laser pulse constructor.
Definition: Pulse.h:34
Definition: Rotation.h:80
glm::dvec3 applyTo(glm::dvec3 u)
Definition: Rotation.cpp:250