LEMUR Packages: ompl_lemur or_lemur pr_bgl prpy_lemur
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Friends Groups Pages
Public Member Functions | Public Attributes | List of all members
pr_bgl::overlay_manager< GCore, GOver, OverVertexMap, OverEdgeMap > Class Template Reference

Class which maintains an overlay graph. More...

#include <overlay_manager.h>

Public Member Functions

 overlay_manager (GCore &gcore, GOver &gover, OverVertexMap over_vertex_map, OverEdgeMap over_edge_map)
 
void apply ()
 
void unapply ()
 

Public Attributes

GCore & gcore
 
GOver & gover
 
OverVertexMap over_vertex_map
 
OverEdgeMap over_edge_map
 
bool is_applied
 
std::vector< typename
boost::graph_traits< GOver >
::vertex_descriptor > 
applied_vertices
 
std::vector< typename
boost::graph_traits< GOver >
::edge_descriptor > 
applied_edges
 

Detailed Description

template<class GCore, class GOver, class OverVertexMap, class OverEdgeMap>
class pr_bgl::overlay_manager< GCore, GOver, OverVertexMap, OverEdgeMap >

Class which maintains an overlay graph.

The overlay_manager class maintains a graph overlay. In other words, given a core graph and an overlay graph, the manager can temporarily "apply" the overlay onto the core graph, copying the appropriate vertices and edges from the overlay to the core graph. It then remembers the applied vertices and edges, so that they can be "unapplied" later (removed from the core graph in reverse order). It is conjectured that this operation is safe on a core implemented as an adjacency list without invalidating vertex descriptors on the core graph (see mailing list [0]).

[0] http://lists.boost.org/boost-users/2015/08/84850.php

ok, so we want to maintain a second graph with persistent vertex descriptors (e.g. using linked lists) doesnt handle properties (you do this all yourself) eventually, should i have it auto-copy them somehow? applied_vertices does not include anchor vertices!


The documentation for this class was generated from the following file: