Ticket #10708: add_vertex.patch

File add_vertex.patch, 2.2 KB (added by Alexey Chernov <4ernov@…>, 8 years ago)
  • subgraph.hpp.

    old new  
    144144        typename subgraph<Graph>::children_iterator i,i_end;
    145145        boost::tie(i,i_end) = x.children();
    146146        for(; i != i_end; ++i)
    147         {         
     147        {
    148148         subgraph<Graph> child = this->create_subgraph();
    149149         child = *i;
    150          vertex_iterator vi,vi_end;   
     150         vertex_iterator vi,vi_end;
    151151         boost::tie(vi,vi_end) = vertices(*i);
    152          for (;vi!=vi_end;++vi) 
     152         for (;vi!=vi_end;++vi)
    153153         {
    154154          add_vertex(*vi,child);
    155155         }
     
    721721namespace detail {
    722722    template <typename G>
    723723    typename subgraph<G>::vertex_descriptor
    724     add_vertex_recur_up(subgraph<G>& g)
     724    add_vertex_recur_up(const typename G::vertex_property_type& p,
     725                        subgraph<G>& g)
    725726    {
    726727        typename subgraph<G>::vertex_descriptor u_local, u_global;
    727728        if (g.is_root()) {
    728             u_global = add_vertex(g.m_graph);
     729            u_global = add_vertex(p, g.m_graph);
    729730            g.m_global_vertex.push_back(u_global);
    730731        } else {
    731             u_global = add_vertex_recur_up(*g.m_parent);
     732            u_global = add_vertex_recur_up(p, *g.m_parent);
    732733            u_local = add_vertex(g.m_graph);
    733734            g.m_global_vertex.push_back(u_global);
    734735            g.m_local_vertex[u_global] = u_local;
     
    747748        g.m_global_vertex.push_back(u_global);
    748749        u_local = u_global;
    749750    } else {
    750         u_global = detail::add_vertex_recur_up(g.parent());
     751        u_global = detail::add_vertex_recur_up(typename G::vertex_property_type(), g.parent());
    751752        u_local = add_vertex(g.m_graph);
    752753        g.m_global_vertex.push_back(u_global);
    753754        g.m_local_vertex[u_global] = u_local;
     
    755756    return u_local;
    756757}
    757758
     759template <typename G>
     760typename subgraph<G>::vertex_descriptor
     761add_vertex(const typename G::vertex_property_type& p, subgraph<G>& g)
     762{
     763    typename subgraph<G>::vertex_descriptor  u_local, u_global;
     764
     765    u_global = detail::add_vertex_recur_up(p, g);
     766    u_local = g.global_to_local(u_global);
     767
     768    return u_local;
     769}
     770
    758771
    759772#if 0
    760773// TODO: Under Construction