Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
BoothLueker.h
Go to the documentation of this file.
1
33#pragma once
34
35#include <ogdf/basic/Graph.h>
36#include <ogdf/basic/List.h>
37#include <ogdf/basic/SList.h>
38#include <ogdf/basic/basic.h>
40
41namespace ogdf {
42
44
53public:
55
57
59 virtual bool isPlanarDestructive(Graph& G) override;
60
62 virtual bool isPlanar(const Graph& G) override;
63
65 virtual bool planarEmbed(Graph& G) override { return preparation(G, true); }
66
68
72 virtual bool planarEmbedPlanarGraph(Graph& G) override { return preparation(G, true); }
73
74private:
76 bool preparation(Graph& G, bool embed);
77
83 bool doTest(Graph& G, NodeArray<int>& numbering);
84
90 bool doEmbed(Graph& G, NodeArray<int>& numbering, EdgeArray<edge>& backTableEdges,
91 EdgeArray<edge>& forwardTableEdges);
92
93 // Used by doEmbed. Computes an entire embedding from an
94 // upward embedding.
95 void entireEmbed(Graph& G, NodeArray<SListPure<adjEntry>>& entireEmbedding,
97
99
100
101 //private Members for handling parallel edges
105};
106
107}
Includes declaration of graph class.
Declaration of doubly linked lists and iterators.
Declaration of PlanarityModule.
Declaration of singly linked lists and iterators.
Basic declarations, included by all source files.
Booth-Lueker planarity test.
Definition BoothLueker.h:52
bool doEmbed(Graph &G, NodeArray< int > &numbering, EdgeArray< edge > &backTableEdges, EdgeArray< edge > &forwardTableEdges)
Performs a planarity test on a biconnected component of G and embedds it planar.
void entireEmbed(Graph &G, NodeArray< SListPure< adjEntry > > &entireEmbedding, NodeArray< SListIterator< adjEntry > > &adjMarker, NodeArray< bool > &mark, node v)
virtual bool isPlanar(const Graph &G) override
Returns true, if G is planar, false otherwise.
void prepareParallelEdges(Graph &G)
virtual bool planarEmbedPlanarGraph(Graph &G) override
Returns true, if G is planar, false otherwise. If true, G contains a planar embedding.
Definition BoothLueker.h:72
bool doTest(Graph &G, NodeArray< int > &numbering)
Performs a planarity test on a biconnected component of G.
virtual bool isPlanarDestructive(Graph &G) override
Returns true, if G is planar, false otherwise.
virtual bool planarEmbed(Graph &G) override
Returns true, if G is planar, false otherwise. If true, G contains a planar embedding.
Definition BoothLueker.h:65
bool preparation(Graph &G, bool embed)
Prepares the planarity test and the planar embedding.
EdgeArray< ListPure< edge > > m_parallelEdges
EdgeArray< bool > m_isParallel
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Class for the representation of nodes.
Definition Graph_d.h:241
Module for planarity testing and planar embeddings.
Encapsulates a pointer to an ogdf::SList element.
Definition SList.h:104
Singly linked lists.
Definition SList.h:191
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition Graph_d.h:717
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition Graph_d.h:659
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
The namespace for all OGDF objects.