next up previous contents index
Next: Shortest Path Edge Inserter Up: Edge Re-Insertion Previous: Edge Re-Insertion   Contents   Index


Edge Insertion Modules ( EdgeInsertionModule )

Baseclasses


\begin{picture}(6.5,2.5)
\thicklines
\put(0,1.5){\framebox (5.5,1){\bf AGDModu...
...or(0,-1){1}}\put(0,0){\framebox (7,1){\bf EdgeInsertionModule}}
\end{picture}

Definition

The class EdgeInsertionModule is the base class for edge insertion modules. An edge insertion module gets as input a planarized graph PG, which is a copy of a graph G, and a list of edges e1,..., ek $ \in$ G. It inserts e1,..., ek into PG by replacing edge crossings with dummy nodes.

Edge insertion modules are used for computing a planarization with a planar subgraph. The edges that are not in the planar subgraph are reinserted by means of an edge insertion module (see Section Planarization with Planar Subgraph).

Input and Output Parameters

input parameters: planar map in_planar_map=1
  edge list in_edge_list=2
output parameter: planarized graph out_planarized_graph=1

The integer constants in_planar_map, in_edge_list and out_planarized_graph denote the positions in the input and output parameter lists. The values can be used to reference the desired parameter when setting the pre- and postcondition.

Implementation of Edge Insertion Modules

An implementation of an edge insertion module must override the protected method do_call(PG, list<edge>& e_insert), which gets as input a planarized graph PG, and a list of edges e$ \_$insert = e1,..., ek, which must be inserted.

The planarized graph PG is a copy of G, and e1,..., ek $ \in$ G. For each edge ei, the implementation inserts a chain of edges starting at copy(source(ei)) and ending at copy(target(ei)) that leads over dummy nodes. The dummy nodes are new nodes resulting from splitting an edge, which will represent edge crossings in a drawing of the graph.

The class PlaneGraphCopy stores these chains and provides methods (split, new_edge_chain) for reinserting edges.

#include < AGD/EdgeInsertionModule.h >

Initialization

EdgeInsertionModule I initializes an edge insertion module.

Operations

Standard Interface

bool I.check(const PlaneGraphCopy& G, leda_list<leda_edge>& e_insert, AgdKey& p)
    returns true if G satisfies the precondition of I. Otherwise, false is returned and p contains a property that is not satisfied.

void I.call(PlaneGraphCopy& PG, leda_list<leda_edge>& e_insert)
    calls the edge insertion module for plane graph copy PG.


Protected Overridables to Implement Functionality

void I.do_call(PlaneGraphCopy& G, leda_list<leda_edge>& e_insert)
    implements the edge insertion module for plane graph copy PG, and list of edges e_insert.


next up previous contents index
Next: Shortest Path Edge Inserter Up: Edge Re-Insertion Previous: Edge Re-Insertion   Contents   Index

© Copyright 1998-2001, Algorithmic Solutions Software GmbH. All rights reserved.
2001-08-13