37 #ifndef OMPL_GEOMETRIC_PLANNERS_PRM_PRM_
38 #define OMPL_GEOMETRIC_PLANNERS_PRM_PRM_
40 #include "ompl/geometric/planners/PlannerIncludes.h"
41 #include "ompl/datastructures/NearestNeighbors.h"
42 #include <boost/graph/graph_traits.hpp>
43 #include <boost/graph/adjacency_list.hpp>
44 #include <boost/pending/disjoint_sets.hpp>
45 #include <boost/function.hpp>
81 typedef boost::vertex_property_tag kind;
85 typedef boost::vertex_property_tag kind;
89 typedef boost::vertex_property_tag kind;
107 typedef boost::adjacency_list <
108 boost::vecS, boost::vecS, boost::undirectedS,
112 boost::property < boost::vertex_predecessor_t,
unsigned long int,
113 boost::property < boost::vertex_rank_t, unsigned long int > > > > >,
114 boost::property < boost::edge_weight_t, double,
115 boost::property < boost::edge_index_t, unsigned int> >
118 typedef boost::graph_traits<Graph>::vertex_descriptor Vertex;
119 typedef boost::graph_traits<Graph>::edge_descriptor Edge;
121 typedef boost::shared_ptr< NearestNeighbors<Vertex> > RoadmapNeighbors;
129 typedef boost::function<std::vector<Vertex>&(
const Vertex)>
229 virtual void clear(
void);
232 template<
template<
typename T>
class NN>
235 nn_.reset(
new NN<Vertex>());
242 virtual void setup(
void);
244 const Graph& getRoadmap(
void)
const
258 return boost::num_vertices(
g_);
261 const RoadmapNeighbors& getNearestNeighbors(
void)
324 boost::property_map<
Graph,
328 boost::property_map<
Graph,
338 boost::disjoint_sets<
339 boost::property_map<Graph, boost::vertex_rank_t>::type,
340 boost::property_map<Graph, boost::vertex_predecessor_t>::type >