Parasol Planning Library (PPL)
MPBaseObject.h
Go to the documentation of this file.
1 #ifndef PMPL_MP_BASE_OBJECT_H_
2 #define PMPL_MP_BASE_OBJECT_H_
5 using namespace std;
6 
12 
13 #include "MPProblem/MPProblem.h"
14 #include "MPProblem/MPTask.h"
15 #include "Utilities/IOUtils.h"
16 #include "Utilities/MethodSet.h"
17 #include "Utilities/XMLNode.h"
18 
19 #include "MPLibrary/MPSolution.h"
20 
21 #include <iostream>
22 #include <string>
23 
24 template <typename Vertex, typename Edge> class GenericStateGraph;
25 class Environment;
26 class MPTask;
27 class StatClass;
28 class MPLibrary;
29 
46 class MPBaseObject {
47 
48  public:
49 
52 
58 
62 
67  MPBaseObject(const std::string& _label = "", const std::string& _name = "",
68  bool _debug = false);
69 
72  MPBaseObject(XMLNode& _node);
73 
74  virtual ~MPBaseObject();
75 
79 
82  virtual void Print(std::ostream& _os) const;
83 
87 
98  virtual void Initialize() {}
99 
103 
105  const std::string& GetName() const;
106 
108  const std::string& GetLabel() const;
109 
111  std::string GetNameAndLabel() const;
112 
114  void SetLabel(const std::string&);
115 
119 
121  void SetMPLibrary(MPLibrary*) noexcept;
122 
124  MPLibrary* GetMPLibrary() const noexcept;
125 
127  bool IsRunning() const noexcept;
128 
132 
134  MPProblem* GetMPProblem() const noexcept;
135 
137  Environment* GetEnvironment() const noexcept;
138 
140  MPTask* GetTask() const noexcept;
141 
143  GroupTask* GetGroupTask() const noexcept;
144 
148 
149  MPSolutionType* GetMPSolution() const noexcept;
150 
152  RoadmapType* GetRoadmap(Robot* const _r = nullptr) const noexcept;
153 
155  GroupRoadmapType* GetGroupRoadmap(RobotGroup* const _g = nullptr) const
156  noexcept;
157 
159  RoadmapType* GetBlockRoadmap(Robot* const _r = nullptr) const noexcept;
160 
161  // /// Get the current best path.
162  Path* GetPath(Robot* const _r = nullptr) const noexcept;
163 
165  GroupPath* GetGroupPath(RobotGroup* const _g = nullptr) const noexcept;
166 
168  StatClass* GetStatClass() const noexcept;
169 
171  LocalObstacleMap* GetLocalObstacleMap() const noexcept;
172 
174 
175  protected:
176 
178  void SetName(const std::string& _s) {m_name = _s;}
179 
181  const std::string& GetBaseFilename() const;
182 
183  bool m_debug;
184 
185  private:
186 
187  std::string m_name;
188  std::string m_label;
189  MPLibrary* m_library{nullptr};
190 
191  template<typename U> friend class MethodSet;
192 };
193 
194 #endif
Definition: Weight.h:36
Definition: Environment.h:137
Definition: GenericStateGraph.h:67
Definition: GroupCfg.h:39
Definition: GroupLocalPlan.h:24
Definition: GroupPath.h:23
Definition: GroupRoadmap.h:25
Definition: GroupTask.h:44
Definition: LocalObstacleMap.h:27
Definition: MPBaseObject.h:46
GroupRoadmap< GroupCfgType, GroupWeightType > GroupRoadmapType
Definition: MPBaseObject.h:57
GenericStateGraph< Cfg, WeightType > RoadmapType
Definition: MPBaseObject.h:54
GroupLocalPlan< RoadmapType > GroupWeightType
Definition: MPBaseObject.h:56
virtual void Initialize()
Definition: MPBaseObject.h:98
DefaultWeight< Cfg > WeightType
Definition: MPBaseObject.h:53
bool m_debug
Print debug info?
Definition: MPBaseObject.h:183
GroupCfg< RoadmapType > GroupCfgType
Definition: MPBaseObject.h:55
Definition: MPLibrary.h:47
Definition: MPProblem.h:34
Definition: MPSolution.h:34
Definition: MPTask.h:46
Definition: MethodSet.h:58
Definition: Path.h:23
A group of one or more robots.
Definition: RobotGroup.h:17
Definition: Robot.h:31
Definition: MetricUtils.h:29
Definition: XMLNode.h:27