Helios++
Helios software for LiDAR simulations
PyMeasurementVectorWrapper.h
1 #pragma once
2 
3 #ifdef PYTHON_BINDING
4 
5 #include <PyMeasurementWrapper.h>
6 #include <PyHeliosUtils.h>
7 #include <vector>
8 
9 namespace pyhelios{
10 
21 public:
22  // *** ATTRIBUTES *** //
23  // ******************** //
24  std::vector<Measurement> allMeasurements;
25 
26  // *** CONSTRUCTION / DESTRUCTION *** //
27  // ************************************ //
28  PyMeasurementVectorWrapper(std::vector<Measurement> &allMeasurements) :
29  allMeasurements(allMeasurements) {}
30  virtual ~PyMeasurementVectorWrapper() {}
31 
32  // *** GETTERS and SETTERS *** //
33  // ***************************** //
34  PyMeasurementWrapper * get(long index){
35  return new PyMeasurementWrapper(allMeasurements[
36  PyHeliosUtils::handlePythonIndex(index, allMeasurements.size())
37  ]);
38  }
39  void erase(long index){
40  allMeasurements.erase(
41  allMeasurements.begin() +
42  PyHeliosUtils::handlePythonIndex(index, allMeasurements.size())
43  );
44  }
45  size_t length() {return allMeasurements.size();}
46 
47 };
48 
49 }
50 
51 #endif
static size_t handlePythonIndex(long _index, size_t n)
Translate received index from python, where negative values have a special meaning (i....
Definition: PyHeliosUtils.h:16
Wrapper for std::vector<Measurement> class.
Definition: PyMeasurementVectorWrapper.h:20
Wrapper for Measurement class.
Definition: PyMeasurementWrapper.h:18