template<typename From, typename To>
class lemon::GraphCopy< From, To >
Class to copy a graph to another graph (duplicate a graph). The simplest way of using it is through the graphCopy()
function.
This class not only make a copy of a graph, but it can create references and cross references between the nodes, edges and arcs of the two graphs, and it can copy maps for using with the newly created graph.
To make a copy from a graph, first an instance of GraphCopy should be created, then the data belongs to the graph should assigned to copy. In the end, the run()
member should be called.
The next code copies a graph with several data:
GraphCopy<OrigGraph, NewGraph> cg(orig_graph, new_graph);
OrigGraph::NodeMap<NewGraph::Node> nr(orig_graph);
cg.nodeRef(nr);
NewGraph::EdgeMap<OrigGraph::Edge> ecr(new_graph);
cg.edgeCrossRef(ecr);
OrigGraph::EdgeMap<double> oemap(orig_graph);
NewGraph::EdgeMap<double> nemap(new_graph);
cg.edgeMap(oemap, nemap);
OrigGraph::Node on;
NewGraph::Node nn;
cg.node(on, nn);
cg.run();
|
| GraphCopy (const From &from, To &to) |
| Constructor of GraphCopy.
|
|
| ~GraphCopy () |
|
template<typename NodeRef > |
GraphCopy & | nodeRef (NodeRef &map) |
| Copy the node references into the given map.
|
|
template<typename NodeCrossRef > |
GraphCopy & | nodeCrossRef (NodeCrossRef &map) |
| Copy the node cross references into the given map.
|
|
template<typename FromMap , typename ToMap > |
GraphCopy & | nodeMap (const FromMap &map, ToMap &tmap) |
| Make a copy of the given node map.
|
|
GraphCopy & | node (const Node &node, TNode &tnode) |
| Make a copy of the given node.
|
|
template<typename ArcRef > |
GraphCopy & | arcRef (ArcRef &map) |
| Copy the arc references into the given map.
|
|
template<typename ArcCrossRef > |
GraphCopy & | arcCrossRef (ArcCrossRef &map) |
| Copy the arc cross references into the given map.
|
|
template<typename FromMap , typename ToMap > |
GraphCopy & | arcMap (const FromMap &map, ToMap &tmap) |
| Make a copy of the given arc map.
|
|
GraphCopy & | arc (const Arc &arc, TArc &tarc) |
| Make a copy of the given arc.
|
|
template<typename EdgeRef > |
GraphCopy & | edgeRef (EdgeRef &map) |
| Copy the edge references into the given map.
|
|
template<typename EdgeCrossRef > |
GraphCopy & | edgeCrossRef (EdgeCrossRef &map) |
| Copy the edge cross references into the given map.
|
|
template<typename FromMap , typename ToMap > |
GraphCopy & | edgeMap (const FromMap &map, ToMap &tmap) |
| Make a copy of the given edge map.
|
|
GraphCopy & | edge (const Edge &edge, TEdge &tedge) |
| Make a copy of the given edge.
|
|
void | run () |
| Execute copying.
|
|