Esempio n. 1
0
inline
typename graph_traits<Graph>::vertex_descriptor
  create_root( Graph& g) {
  if(num_vertices(g) > 0)
    remove_branch(get_root_vertex(g), g);
  return add_vertex(g);
};
Esempio n. 2
0
inline
typename graph_traits<Graph>::vertex_descriptor
  create_root( typename Graph::vertex_bundled&& vp, 
	       Graph& g) {
  if(num_vertices(g) > 0)
    remove_branch(get_root_vertex(g), g);
  return add_vertex(std::move(vp),g);
};
Esempio n. 3
0
  typename boost::graph_traits<Graph>::vertex_descriptor rrt_get_or_create_root(Graph& g, const Topology& space, RRTVisitor vis, RandomSampler get_sample, PositionMap position) {
    
    typedef typename boost::property_traits<PositionMap>::value_type PositionValue;
    typedef typename boost::graph_traits<Graph>::vertex_descriptor Vertex;
    typedef typename Graph::vertex_bundled VertexProp;
    
    if(num_vertices(g) == 0) {
      PositionValue p = get_sample(space);
      while(!vis.is_position_free(p))
        p = get_sample(space);
      VertexProp up;
      put(position, up, p);
#ifndef BOOST_NO_CXX11_RVALUE_REFERENCES
      Vertex u = create_root(std::move(up),g);
#else
      Vertex u = create_root(up,g);
#endif
      vis.vertex_added(u, g);
      return u;
    } else {
      return get_root_vertex(g);
    };
  };