The current implementation calculates an embedding or an Kuratowski subdivision if the graph is not planar. The running time of the algorithm is . #include <lemon/planarity.h>
Public Types | |
typedef UGraph::template EdgeMap< Edge > | EmbeddingMap |
The map for store of embedding. | |
Public Member Functions | |
PlanarEmbedding (const UGraph &ugraph) | |
Constructor. | |
bool | run (bool kuratowski=true) |
Runs the algorithm. | |
Edge | next (const Edge &edge) const |
Gives back the successor of an edge. | |
const EmbeddingMap & | embedding () const |
Gives back the calculated embedding map. | |
bool | kuratowski (const UEdge &uedge) |
Gives back true when the undirected edge is in the kuratowski subdivision. |
PlanarEmbedding | ( | const UGraph & | ugraph | ) | [inline] |
The graph should be simple, i.e. parallel and loop edge free.
bool run | ( | bool | kuratowski = true |
) | [inline] |
Runs the algorithm.
kuratowski | If the parameter is false, then the algorithm does not calculate the isolate Kuratowski subdivisions. |
Edge next | ( | const Edge & | edge | ) | const [inline] |
Gives back the successor of an edge. This function makes possible to query the cyclic order of the outgoing edges from a node.
const EmbeddingMap& embedding | ( | ) | const [inline] |
The returned map contains the successor of each edge in the graph.
bool kuratowski | ( | const UEdge & | uedge | ) | [inline] |
Gives back true when the undirected edge is in the kuratowski subdivision