All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
larcorealg/larcorealg/GeoAlgo/GeoObjCollection.h
Go to the documentation of this file.
1 /**
2  * \file GeoObjCollection.h
3  *
4  * \ingroup GeoAlgo
5  *
6  * \brief Class def header for a class GeoObjCollection
7  *
8  * @author kazuhiro
9  */
10 
11 /** \addtogroup GeoAlgo
12 
13  @{*/
14 #ifndef BASICTOOL_GEOOBJCOLLECTION_H
15 #define BASICTOOL_GEOOBJCOLLECTION_H
16 
24 
25 #include <stddef.h>
26 #include <map>
27 #include <string>
28 #include <vector>
29 
30 namespace geoalgo {
31 
32  /**
33  \class GeoObjCollection
34  */
36 
37  public:
38 
39  void Clear();
40 
41  void Add(const Point_t& pt, std::string label="", std::string c="");
42 
43  void Add(const AABox_t& box, std::string label="", std::string c="");
44 
45  void Add(const LineSegment_t& seg, std::string label="", std::string c="");
46 
47  void Add(const HalfLine_t& seg, std::string label="", std::string c="");
48 
49  void Add(const Trajectory_t& trj, std::string label="", std::string c="");
50 
51  void Add(const Cone_t& cone, std::string label="", std::string c="");
52 
53  void Add(const Sphere_t& sphere, std::string label="", std::string c="");
54 
55  const std::vector< geoalgo::Point_t >& Point() const { return _pt_v; }
56  const std::vector< std::string >& PointColor() const { return _pt_col; }
57 
58  const std::vector< geoalgo::AABox_t >& AABox() const { return _box_v; }
59  const std::vector< std::string >& AABoxColor() const { return _box_col; }
60 
61  const std::vector< geoalgo::LineSegment_t >& LineSegment() const { return _seg_v; }
62  const std::vector< std::string >& LineSegmentColor() const { return _seg_col; }
63 
64  const std::vector< geoalgo::HalfLine_t >& HalfLine() const { return _lin_v; }
65  const std::vector< std::string >& HalfLineColor() const { return _lin_col; }
66 
67  const std::vector< geoalgo::Trajectory_t >& Trajectory() const { return _trj_v; }
68  const std::vector< std::string >& TrajectoryColor() const { return _trj_col; }
69 
70  const std::vector< geoalgo::Cone_t >& Cone() const { return _cone_v; }
71  const std::vector< std::string >& ConeColor() const { return _cone_col; }
72 
73  const std::vector< geoalgo::Sphere_t >& Sphere() const { return _sphere_v; }
74  const std::vector< std::string >& SphereColor() const { return _sphere_col; }
75 
76  const std::map<geoalgo::Point_t,std::string>& Labels() const { return _labels;}
77 
78  protected:
79 
80  const Point_t& _Point_(size_t i) const
81  { return _pt_v[i]; }
82 
83  const AABox_t& _AABox_(size_t i) const
84  { return _box_v[i]; }
85 
86  const LineSegment_t& _LineSegment_(size_t i) const
87  { return _seg_v[i]; }
88 
89  const Trajectory_t& _Trajectory_(size_t i) const
90  { return _trj_v[i]; }
91 
92  const Cone_t& _Cone_(size_t i) const
93  { return _cone_v[i]; }
94 
95  const Sphere_t& _Sphere_(size_t i) const
96  { return _sphere_v[i]; }
97 
98  void _AddLabel_(const Point_t& pt,
99  std::string label);
100 
101  std::vector< geoalgo::Point_t > _pt_v;
102  std::vector< std::string > _pt_col;
103  std::vector< geoalgo::AABox_t > _box_v;
104  std::vector< std::string > _box_col;
105  std::vector< geoalgo::LineSegment_t > _seg_v;
106  std::vector< std::string > _seg_col;
107  std::vector< geoalgo::HalfLine_t > _lin_v;
108  std::vector< std::string > _lin_col;
109  std::vector< geoalgo::Trajectory_t > _trj_v;
110  std::vector< std::string > _trj_col;
111  std::vector< geoalgo::Cone_t > _cone_v;
112  std::vector< std::string > _cone_col;
113  std::vector< geoalgo::Sphere > _sphere_v;
114  std::vector< std::string > _sphere_col;
115  std::map<geoalgo::Point_t,std::string > _labels;
116 
117  };
118 
119 }
120 #endif
121 /** @} */ // end of doxygen group
const std::vector< geoalgo::LineSegment_t > & LineSegment() const
void _AddLabel_(const Point_t &pt, std::string label)
const std::vector< geoalgo::Point_t > & Point() const
Representation of a simple 3D line segment Defines a finite 3D straight line by having the start and ...
const std::vector< geoalgo::Sphere_t > & Sphere() const
Representation of a 3D rectangular box which sides are aligned w/ coordinate axis. A representation of an Axis-Aligned-Boundary-Box, a simple &amp; popular representation of 3D boundary box for collision detection. The concept was taken from the reference, Real-Time-Collision-Detection (RTCD), and in particular Ch. 4.2 (page 77): .
const std::vector< std::string > & ConeColor() const
void Add(const Point_t &pt, std::string label="", std::string c="")
const std::vector< std::string > & HalfLineColor() const
const std::vector< geoalgo::HalfLine_t > & HalfLine() const
const Trajectory_t & _Trajectory_(size_t i) const
std::map< geoalgo::Point_t, std::string > _labels
const LineSegment_t & _LineSegment_(size_t i) const
Representation of a 3D semi-infinite line. Defines a 3D cone with the following properties: Start po...
const std::vector< geoalgo::Trajectory_t > & Trajectory() const
const std::vector< std::string > & TrajectoryColor() const
const std::map< geoalgo::Point_t, std::string > & Labels() const
const std::vector< std::string > & LineSegmentColor() const
const std::vector< std::string > & SphereColor() const
const std::vector< std::string > & PointColor() const
Representation of a 3D semi-infinite line. Defines a semi-infinite 3D line by having a start point (P...
const std::vector< std::string > & AABoxColor() const
const std::vector< geoalgo::Cone_t > & Cone() const
const std::vector< geoalgo::AABox_t > & AABox() const