Helios++
Helios software for LiDAR simulations
PyTrajectoryVectorWrapper.h
1 #pragma once
2 
3 #ifdef PYTHON_BINDING
4 
5 #include <PyTrajectoryWrapper.h>
6 #include <PyHeliosUtils.h>
7 #include <vector>
8 
18 public:
19  // *** ATTRIBUTES *** //
20  // ******************** //
21  std::vector<Trajectory> allTrajectories;
22 
23  // *** CONSTRUCTION / DESTRUCTION *** //
24  // ************************************ //
25  PyTrajectoryVectorWrapper(std::vector<Trajectory> &allTrajectories) :
26  allTrajectories(allTrajectories) {}
27  virtual ~PyTrajectoryVectorWrapper() {}
28 
29  // *** GETTERS and SETTERS *** //
30  // ***************************** //
31  PyTrajectoryWrapper * get(size_t index){
32  return new PyTrajectoryWrapper(
33  allTrajectories[
34  PyHeliosUtils::handlePythonIndex(index, allTrajectories.size())
35  ]
36  );
37  }
38  void erase(size_t index){
39  allTrajectories.erase(
40  allTrajectories.begin() +
41  PyHeliosUtils::handlePythonIndex(index, allTrajectories.size())
42  );
43  }
44  size_t length() {return allTrajectories.size();}
45 };
46 
47 #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:14
Python wrapper for helios trajectory.
Definition: PyTrajectoryVectorWrapper.h:17
Wrapper for Trajectory class.
Definition: PyTrajectoryWrapper.h:17