This class implements the Boyer-Myrvold algorithm for planar embedding of an undirected simple graph. The planar embedding is an ordering of the outgoing edges of the nodes, which is a possible configuration to draw the graph in the plane. If there is not such ordering then the graph contains a K5 (full graph with 5 nodes) or a K3,3 (complete bipartite graph on 3 Red and 3 Blue nodes) subdivision.
The current implementation calculates either an embedding or a Kuratowski subdivision. The running time of the algorithm is O(n).
#include <lemon/planarity.h>
| Public Types | |
| typedef Graph::template ArcMap < Arc > | EmbeddingMap | 
| The map type for storing the embedding.  More... | |
| Public Member Functions | |
| PlanarEmbedding (const Graph &graph) | |
| Constructor.  More... | |
| bool | run (bool kuratowski=true) | 
| Run the algorithm.  More... | |
| Arc | next (const Arc &arc) const | 
| Give back the successor of an arc.  More... | |
| const EmbeddingMap & | embeddingMap () const | 
| Give back the calculated embedding map.  More... | |
| bool | kuratowski (const Edge &edge) const | 
| Give back trueif the given edge is in the Kuratowski subdivision.  More... | |
| typedef Graph::template ArcMap<Arc> EmbeddingMap | 
The map type for storing the embedding.
| 
 | inline | 
Constructor.
| 
 | inline | 
This function runs the algorithm.
| kuratowski | If this parameter is set to false, then the algorithm does not compute a Kuratowski subdivision. | 
true if the graph is planar. | 
 | inline | 
This function gives back the successor of an arc. It makes possible to query the cyclic order of the outgoing arcs from a node.
| 
 | inline | 
This function gives back the calculated embedding map, which contains the successor of each arc in the cyclic order of the outgoing arcs of its source node.
| 
 | inline | 
This function gives back true if the given edge is in the found Kuratowski subdivision. 
run() function must be called with true parameter before using this function.  1.8.5
 1.8.5