Parasol Planning Library (PPL)
PathModifierMethod.h
Go to the documentation of this file.
1 #ifndef PATH_MODIFIER_METHOD_H_
2 #define PATH_MODIFIER_METHOD_H_
3 
5 #include "Utilities/MPUtils.h"
7 
16 
17  public:
18 
21 
23  typedef typename RoadmapType::VID VID;
24 
28 
29  PathModifierMethod() = default;
30 
32 
33  virtual ~PathModifierMethod() = default;
34 
38 
39  virtual void Print(ostream& _os) const override;
40 
44 
56  virtual void Modify(vector<Cfg>& _path,
57  vector<Cfg>& _newPath);
60 
61  virtual void Modify(RoadmapType* _graph, vector<Cfg>& _path,
62  vector<Cfg>& _newPath);
63 
64  protected:
65 
71  virtual bool ModifyImpl(RoadmapType* _graph, vector<Cfg>& _path,
72  vector<Cfg>& _newPath) = 0;
73 
78  void AddToPath(vector<Cfg>& _path, LPOutput* _lpOutput,
79  Cfg& _end);
80 
85  vector<VID> GetPathVIDs(vector<Cfg>& _path, RoadmapType* _graph);
86 
88  void RemoveBranches(const string& _dmLabel, vector<Cfg>& _path,
89  vector<Cfg>& _newPath);
90 
91  private:
92 
95  void OutputPath(vector<Cfg>& _path);
96 
100 
101  string m_pathFile;
102 
104 };
105 
106 #endif
Definition: Cfg.h:38
Definition: GenericStateGraph.h:67
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
Definition: MPBaseObject.h:46
Base algorithm abstraction for PathModifiers.
Definition: PathModifierMethod.h:15
virtual ~PathModifierMethod()=default
MPBaseObject::RoadmapType RoadmapType
Definition: PathModifierMethod.h:22
void AddToPath(vector< Cfg > &_path, LPOutput *_lpOutput, Cfg &_end)
Definition: PathModifierMethod.cpp:40
RoadmapType::VID VID
Definition: PathModifierMethod.h:23
vector< VID > GetPathVIDs(vector< Cfg > &_path, RoadmapType *_graph)
Definition: PathModifierMethod.cpp:50
virtual void Print(ostream &_os) const override
Definition: PathModifierMethod.cpp:17
PathModifierMethod()=default
virtual bool ModifyImpl(RoadmapType *_graph, vector< Cfg > &_path, vector< Cfg > &_newPath)=0
void RemoveBranches(const string &_dmLabel, vector< Cfg > &_path, vector< Cfg > &_newPath)
@TODO Figure out what this does and document it.
Definition: PathModifierMethod.cpp:63
virtual void Modify(vector< Cfg > &_path, vector< Cfg > &_newPath)
Definition: PathModifierMethod.cpp:26
Definition: XMLNode.h:27
Definition: LPOutput.h:24