Parasol Planning Library (PPL)
GroupQuery.h
Go to the documentation of this file.
1 #ifndef PMPL_GROUP_QUERY_H_
2 #define PMPL_GROUP_QUERY_H_
3 
4 #include "QueryMethod.h"
5 
6 #include "Utilities/SSSP.h"
7 
20 class GroupQuery final : public MapEvaluatorMethod {
21 
22  public:
23 
26 
30  typedef typename GroupRoadmapType::VID VID;
31  typedef std::unordered_set<VID> VIDSet;
32 
36 
37  GroupQuery();
38  GroupQuery(XMLNode& _node);
39  virtual ~GroupQuery() = default;
40 
44 
45  virtual void Initialize() override;
46 
50 
51  virtual bool operator()() override;
52 
56 
57  std::vector<VID> GeneratePath(const VID _start, const VIDSet& _end);
58 
60 
62 
63  protected:
64 
67 
68  void Reset(GroupRoadmapType* const _r);
69 
70  bool PerformSubQuery(const VID _start, const VIDSet& _goal);
71 
73  const double _sourceDistance, const double _targetDistance) const;
74 
76  const double _sourceDistance, const double _targetDistance) const;
77 
78  //bool SameFormations(std::unordered_set<Formation*> _set1, std::unordered_set<Formation*> _set2);
79 
83 
85 
86  size_t m_goalIndex{0};
87 
89 
90  std::string m_vcLabel;
91 
93 
94 };
95 
96 #endif
std::function< double(typename GraphType::adj_edge_iterator &, const double, const double)> SSSPPathWeightFunction
Definition: SSSP.h:94
STAPLGraph::vertex_descriptor VID
Definition: GenericStateGraph.h:83
Definition: GroupCfg.h:39
Definition: GroupLocalPlan.h:24
Definition: GroupQuery.h:20
virtual void Initialize() override
Definition: GroupQuery.cpp:27
MPBaseObject::GroupRoadmapType GroupRoadmapType
Definition: GroupQuery.h:28
virtual void SetPathWeightFunction(SSSPPathWeightFunction< GroupRoadmapType > _f)
Definition: GroupQuery.cpp:204
MPBaseObject::GroupCfgType GroupCfgType
Definition: GroupQuery.h:27
size_t m_goalIndex
Index of next unreached goal.
Definition: GroupQuery.h:86
GroupRoadmapType * m_roadmap
Definition: GroupQuery.h:84
std::unordered_set< VID > VIDSet
Definition: GroupQuery.h:31
void Reset(GroupRoadmapType *const _r)
Definition: GroupQuery.cpp:212
std::vector< VID > GeneratePath(const VID _start, const VIDSet &_end)
Definition: GroupQuery.cpp:132
bool PerformSubQuery(const VID _start, const VIDSet &_goal)
Definition: GroupQuery.cpp:228
SSSPPathWeightFunction< GroupRoadmapType > m_weightFunction
Definition: GroupQuery.h:88
std::string m_vcLabel
Definition: GroupQuery.h:90
double DynamicPathWeight(typename GroupRoadmapType::adj_edge_iterator &_ei, const double _sourceDistance, const double _targetDistance) const
Definition: GroupQuery.cpp:262
GroupQuery()
Definition: GroupQuery.cpp:10
GroupRoadmapType::VID VID
Definition: GroupQuery.h:30
virtual ~GroupQuery()=default
double StaticPathWeight(typename GroupRoadmapType::adj_edge_iterator &_ei, const double _sourceDistance, const double _targetDistance) const
Definition: GroupQuery.cpp:252
MPBaseObject::GroupWeightType WeightType
Definition: GroupQuery.h:29
virtual bool operator()() override
Definition: GroupQuery.cpp:38
Definition: GroupRoadmap.h:25
BaseType::adj_edge_iterator adj_edge_iterator
Definition: GroupRoadmap.h:40
Definition: MapEvaluatorMethod.h:16
Definition: XMLNode.h:27