Helios++
Helios software for LiDAR simulations
PyMeasurementWrapper.h
1 #pragma once
2 
3 #ifdef PYTHON_BINDING
4 
5 #include <string>
6 #include <Measurement.h>
7 #include <PythonDVec3.h>
8 
9 namespace pyhelios{
10 
19 public:
20  // *** ATTRIBUTES *** //
21  // ******************** //
22  Measurement &m;
23 
24  // *** CONSTRUCTION / DESTRUCTION *** //
25  // ************************************ //
26  PyMeasurementWrapper(Measurement &m) : m(m) {}
27  virtual ~PyMeasurementWrapper() {}
28 
29  // *** GETTERS and SETTERS *** //
30  // ***************************** //
31  std::string getHitObjectId() {return m.hitObjectId;}
32  void setHitObjectId(std::string const hitObjectId)
33  {m.hitObjectId = hitObjectId;}
34  PythonDVec3 *getPosition() {return new PythonDVec3(m.position);}
35  void setPosition(double x, double y, double z)
36  {m.position = glm::dvec3(x, y, z);}
37  PythonDVec3 *getBeamDirection() {return new PythonDVec3(m.beamDirection);}
38  void setBeamDirection(double x, double y, double z)
39  {m.beamDirection = glm::dvec3(x, y, z);}
40  PythonDVec3 *getBeamOrigin() {return new PythonDVec3(m.beamOrigin);}
41  void setBeamOrigin(double x, double y, double z)
42  {m.beamOrigin = glm::dvec3(x, y, z);}
43  double getDistance() {return m.distance;}
44  void setDistance(double distance) {m.distance = distance;}
45  double getIntensity() {return m.intensity;}
46  void setIntensity(double intensity) {m.intensity = intensity;}
47  double getEchoWidth() {return m.echo_width;}
48  void setEchoWidth(double echoWidth) {m.echo_width = echoWidth;}
49  int getReturnNumber() {return m.returnNumber;}
50  void setReturnNumber(int returnNumber) {m.returnNumber = returnNumber;}
51  int getPulseReturnNumber() {return m.pulseReturnNumber;}
52  void setPulseReturnNumber(double pulseReturnNumber)
53  {m.pulseReturnNumber = pulseReturnNumber;}
54  int getFullwaveIndex() {return m.fullwaveIndex;}
55  void setFullwaveIndex(int fullwaveIndex) {m.fullwaveIndex = fullwaveIndex;}
56  int getClassification() {return m.classification;}
57  void setClassification(int classification)
58  {m.classification = classification;}
59  long getGpsTime() {return m.gpsTime;}
60  void setGpsTime(long gpsTime) {m.gpsTime = gpsTime;}
61 };
62 
63 }
64 
65 #endif
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
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
Wrapper for Measurement class.
Definition: PyMeasurementWrapper.h:18
Wrapper to communicate glm::dvec3 with python.
Definition: PythonDVec3.h:16