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 
9 namespace pyhelios{
10 
20 public:
21  // *** ATTRIBUTES *** //
22  // ******************** //
23  std::vector<Trajectory> allTrajectories;
24 
25  // *** CONSTRUCTION / DESTRUCTION *** //
26  // ************************************ //
27  PyTrajectoryVectorWrapper(std::vector<Trajectory> &allTrajectories) :
28  allTrajectories(allTrajectories) {}
29  virtual ~PyTrajectoryVectorWrapper() {}
30 
31  // *** GETTERS and SETTERS *** //
32  // ***************************** //
33  PyTrajectoryWrapper * get(size_t index){
34  return new PyTrajectoryWrapper(
35  allTrajectories[
36  PyHeliosUtils::handlePythonIndex(index, allTrajectories.size())
37  ]
38  );
39  }
40  void erase(size_t index){
41  allTrajectories.erase(
42  allTrajectories.begin() +
43  PyHeliosUtils::handlePythonIndex(index, allTrajectories.size())
44  );
45  }
46  size_t length() {return allTrajectories.size();}
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
Python wrapper for helios trajectory.
Definition: PyTrajectoryVectorWrapper.h:19
Wrapper for Trajectory class.
Definition: PyTrajectoryWrapper.h:19