next up previous contents index
Next: Planarization with Planar Subgraph Up: Planarization Previous: Planarization   Contents   Index


Planarization Modules ( PlanarizerModule )

Baseclasses


\begin{picture}(6.5,2.5)
\thicklines
\put(0,1.5){\framebox (5.5,1){\bf AGDModu...
...ector(0,-1){1}}\put(1,0){\framebox (6,1){\bf PlanarizerModule}}
\end{picture}

Definition

The class PlanarizerModule is the base class for planarization modules. A planarization module transforms a graph G into a planar graph PG by replacing edge crossings with dummy nodes, and computes a combinatorial embedding of PG.

Input and Output Parameters

input parameter: graph in_graph=1
output parameter: planarized graph out_planarized_graph=1

The integer constants in_graph and out_planarized_layout 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 Planarization Algorithms

An implementation of a planarization module must override the protected method do_call(G,PG), which gets as input a graph G = (V, E) and produces as output a planar graph PG = (V $ \cup$ Vd, E'). It replaces a set of edges Er $ \subset$ E by chains of edges leading over dummy nodes $ \in$ Vd. Each dummy node is a node of degree 4, and the output graph PG represents a planar map.

In particular, an edge e = (v, w) $ \in$ Er is replaced with a chain e1 = (v1, v2),..., ek = (vk, vk + 1), where v1 = v, vk + 1 = w, and vi $ \in$ Vd for all 2 < = i < = k. The corresponding chain of edges is stored in PG, i.e., PG.chain(original(e)) = e1,..., ek. Furthermore, tho following must hold:

The implementation must also embed the output graph, i.e., the combinatorial embedding must be given by the clockwise ordering of the edges in all adjacency lists.

#include < AGD/PlanarizerModule.h >

Initialization

PlanarizerModule P initializes a planarization module.

Operations

Standard Interface

bool P.check(const GraphCopy& G, AgdKey& p)
    returns true if G satisfies the precondition of P. Otherwise, false is returned and p contains a property that is not satisfied.

void P.call(const leda_graph& G, PlaneGraphCopy& PG)
    calls the planarization module for graph PG. Stores the planarization in PG, i.e., for every edge e $ \in$ G the ordered list of corresponding edges chain(e) in PG.


Protected Overridables to Implement Functionality

void P.do_call(const leda_graph& G, PlaneGraphCopy& PG)
    implements the planarization algorithm for graph G. Stores the planarization in PG, i.e., for every edge e $ \in$ Er the ordered list of corresponding edges chain(e) in PG.


next up previous contents index
Next: Planarization with Planar Subgraph Up: Planarization Previous: Planarization   Contents   Index

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