Parasol Planning Library (PPL)
ClearanceQuery.h
Go to the documentation of this file.
1 #ifndef PMPL_CLEARANCE_QUERY_H
2 #define PMPL_CLEARANCE_QUERY_H
3 
4 #include "QueryMethod.h"
5 
6 
15 class ClearanceQuery : virtual public QueryMethod {
16 
17  public:
18 
21 
23  typedef typename RoadmapType::VID VID;
24  typedef typename RoadmapType::EdgeID EdgeID;
25  typedef std::unordered_set<size_t> VIDSet;
26  typedef typename RoadmapType::adj_edge_iterator EI;
27 
31 
33  ClearanceQuery(XMLNode& _node);
34  virtual ~ClearanceQuery() = default;
35 
39 
40  virtual void Print(std::ostream& _os) const override;
41 
42  virtual void Initialize() override;
43 
44  protected:
45 
48 
51  virtual void Reset(RoadmapType* const _r) override;
52 
54  virtual double StaticPathWeight(
55  typename RoadmapType::adj_edge_iterator& _ei,
56  const double _sourceDistance, const double _targetDistance) const
57  override;
58 
60 
61  std::string m_intermediateEdgeVCLabel; // EdgeIntermediate Validity Checker (for weighted clearance)
62 
63  private:
65  void CacheEdge(VID _u, VID _v, double _value) const;
66 
67  std::map<std::pair<VID, VID>, double>* m_cachedEdges; // map that acts as the "cache"; filled in CacheEdge()
68 };
69 
70 #endif
Definition: ClearanceQuery.h:15
virtual ~ClearanceQuery()=default
virtual void Initialize() override
Definition: ClearanceQuery.cpp:37
std::unordered_set< size_t > VIDSet
Definition: ClearanceQuery.h:25
RoadmapType::VID VID
Definition: ClearanceQuery.h:23
RoadmapType::adj_edge_iterator EI
Definition: ClearanceQuery.h:26
std::string m_intermediateEdgeVCLabel
Definition: ClearanceQuery.h:61
virtual void Reset(RoadmapType *const _r) override
Definition: ClearanceQuery.cpp:45
virtual void Print(std::ostream &_os) const override
Definition: ClearanceQuery.cpp:29
ClearanceQuery()
Definition: ClearanceQuery.cpp:11
MPBaseObject::RoadmapType RoadmapType
Definition: ClearanceQuery.h:22
RoadmapType::EdgeID EdgeID
Definition: ClearanceQuery.h:24
virtual double StaticPathWeight(typename RoadmapType::adj_edge_iterator &_ei, const double _sourceDistance, const double _targetDistance) const override
Set the path weights as minimum 1/clearance.
Definition: ClearanceQuery.cpp:54
Definition: GenericStateGraph.h:67
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
EID::edge_id_type EdgeID
Definition: GenericStateGraph.h:85
Definition: QueryMethod.h:31
Definition: XMLNode.h:27