Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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 
41 namespace ogdf {
42 
44 
53 public:
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 
74 private:
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 
98  void prepareParallelEdges(Graph& G);
99 
100 
101  //private Members for handling parallel edges
105 };
106 
107 }
ogdf
The namespace for all OGDF objects.
Definition: multilevelmixer.cpp:39
Graph.h
Includes declaration of graph class.
ogdf::BoothLueker::m_parallelCount
int m_parallelCount
Definition: BoothLueker.h:104
ogdf::BoothLueker::BoothLueker
BoothLueker()
Definition: BoothLueker.h:54
ogdf::BoothLueker
Booth-Lueker planarity test.
Definition: BoothLueker.h:52
ogdf::SListIteratorBase
Encapsulates a pointer to an ogdf::SList element.
Definition: SList.h:50
ogdf::BoothLueker::~BoothLueker
~BoothLueker()
Definition: BoothLueker.h:56
ogdf::BoothLueker::m_parallelEdges
EdgeArray< ListPure< edge > > m_parallelEdges
Definition: BoothLueker.h:102
ogdf::isPlanar
bool isPlanar(const Graph &G)
Returns true, if G is planar, false otherwise.
Definition: extended_graph_alg.h:284
ogdf::BoothLueker::planarEmbed
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
PlanarityModule.h
Declaration of PlanarityModule.
SList.h
Declaration of singly linked lists and iterators.
ogdf::BoothLueker::m_isParallel
EdgeArray< bool > m_isParallel
Definition: BoothLueker.h:103
ogdf::SListPure
Singly linked lists.
Definition: SList.h:52
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:658
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:869
ogdf::BoothLueker::planarEmbedPlanarGraph
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
basic.h
Basic declarations, included by all source files.
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::PlanarityModule
Module for planarity testing and planar embeddings.
Definition: PlanarityModule.h:47
List.h
Declaration of doubly linked lists and iterators.
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:240
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:716