LArOpenCV  1
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups
Point2DArray.h
Go to the documentation of this file.
1 #ifndef __LARCV_CORE_POINT2DARRAY_H__
2 #define __LARCV_CORE_POINT2DARRAY_H__
3 
18 #include <vector>
19 #include "LArCVTypes.h"
20 namespace larcv {
21 
22  namespace convert {
23  class NDArrayConverter;
24  }
25 
31  class Point2DArray {
32  friend class ::larcv::convert::NDArrayConverter;
33 
34  public:
37 
38  void resize (const size_t i) { _data.resize(i*2); }
39  void reserve (const size_t i) { _data.reserve(i*2); }
40  void push_back (const double x, const double y)
41  { _data.push_back(x); _data.push_back(y); }
42  void set (const size_t i, const double x, const double y)
43  { _data[i] = x; _data[_data.size()/2+i] = y; }
44 
45  size_t size () const { return _data.size() / 2; }
46  double x (const size_t i) const { return _data[i]; }
47  double y (const size_t i) const { return _data[_data.size()/2+i]; }
48  Point2D point (const size_t i) const
49  { return Point2D(_data[i], _data[_data.size()/2+i]); }
50 
51  const std::vector<double>& raw_data() { return _data; }
52 
53  private:
54 
55  std::vector<double> _data;
56 
57  };
58 
59 }
60 
61 #endif
62  // end of doxygen group