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/EdgeArray.h>
36 #include <ogdf/basic/NodeArray.h>
37 #include <ogdf/basic/SList.h>
39 
40 namespace ogdf {
41 
43 
52 public:
54 
56 
58  virtual bool isPlanarDestructive(Graph& G) override;
59 
61  virtual bool isPlanar(const Graph& G) override;
62 
64  virtual bool planarEmbed(Graph& G) override { return preparation(G, true); }
65 
67 
71  virtual bool planarEmbedPlanarGraph(Graph& G) override { return preparation(G, true); }
72 
73 private:
75  bool preparation(Graph& G, bool embed);
76 
82  bool doTest(Graph& G, NodeArray<int>& numbering);
83 
89  bool doEmbed(Graph& G, NodeArray<int>& numbering, EdgeArray<edge>& backTableEdges,
90  EdgeArray<edge>& forwardTableEdges);
91 
92  // Used by doEmbed. Computes an entire embedding from an
93  // upward embedding.
94  void entireEmbed(Graph& G, NodeArray<SListPure<adjEntry>>& entireEmbedding,
96 
97  void prepareParallelEdges(Graph& G);
98 
99 
100  //private Members for handling parallel edges
104 };
105 
106 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::BoothLueker::m_parallelCount
int m_parallelCount
Definition: BoothLueker.h:103
ogdf::BoothLueker::BoothLueker
BoothLueker()
Definition: BoothLueker.h:53
ogdf::BoothLueker
Booth-Lueker planarity test.
Definition: BoothLueker.h:51
ogdf::SListIteratorBase
Encapsulates a pointer to an ogdf::SList element.
Definition: SList.h:41
ogdf::BoothLueker::~BoothLueker
~BoothLueker()
Definition: BoothLueker.h:55
ogdf::BoothLueker::m_parallelEdges
EdgeArray< ListPure< edge > > m_parallelEdges
Definition: BoothLueker.h:101
ogdf::isPlanar
bool isPlanar(const Graph &G)
Returns true, if G is planar, false otherwise.
Definition: extended_graph_alg.h:274
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:64
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:102
EdgeArray.h
Declaration and implementation of EdgeArray class.
ogdf::SListPure
Singly linked lists.
Definition: SList.h:39
ogdf::internal::GraphRegisteredArray
RegisteredArray for nodes, edges and adjEntries of a graph.
Definition: Graph_d.h:651
ogdf::Graph
Data type for general directed graphs (adjacency list representation).
Definition: Graph_d.h:862
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:71
NodeArray.h
Declaration and implementation of NodeArray class.
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:48
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:233
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709