Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

BoyerMyrvoldInit.h
Go to the documentation of this file.
1 
33 #pragma once
34 
35 #include <ogdf/basic/List.h>
37 
38 #include <limits>
39 #include <random>
40 
41 namespace ogdf {
42 namespace boyer_myrvold {
43 
45 
50 public:
52  explicit BoyerMyrvoldInit(BoyerMyrvoldPlanar* pBM);
53 
56 
58  void computeDFS();
59 
61  void computeLowPoints();
62 
64  void computeDFSChildLists();
65 
66  // avoid automatic creation of assignment operator
69 
70 private:
73 
75  const int& m_embeddingGrade;
76  const double& m_randomness;
78  std::minstd_rand m_rand;
79 
81 
84 
87 
90 
92 
94  NodeArray<adjEntry> (&m_link)[2];
95 
98 
100 
103 
106 
109 
112 
114 
117 
119 
122 
124  void createVirtualVertex(const adjEntry father);
125 };
126 
127 }
128 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_rand
std::minstd_rand m_rand
Definition: BoyerMyrvoldInit.h:78
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_embeddingGrade
const int & m_embeddingGrade
Some parameters... see BoyerMyrvold.h for further instructions.
Definition: BoyerMyrvoldInit.h:75
BoyerMyrvoldPlanar.h
Declaration of the class BoyerMyrvoldPlanar.
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_leastAncestor
NodeArray< int > & m_leastAncestor
The DFI of the least ancestor node over all backedges.
Definition: BoyerMyrvoldInit.h:102
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_realVertex
NodeArray< node > & m_realVertex
Link to non-virtual vertex of a virtual Vertex.
Definition: BoyerMyrvoldInit.h:83
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_dfi
NodeArray< int > & m_dfi
The one and only DFI-Array.
Definition: BoyerMyrvoldInit.h:86
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_randomness
const double & m_randomness
Definition: BoyerMyrvoldInit.h:76
ogdf::boyer_myrvold::BoyerMyrvoldInit::computeDFSChildLists
void computeDFSChildLists()
Computes the list of separated DFS children for all nodes.
ogdf::boyer_myrvold::BoyerMyrvoldInit::BoyerMyrvoldInit
BoyerMyrvoldInit(BoyerMyrvoldPlanar *pBM)
Constructor, the parameter BoyerMyrvoldPlanar is needed.
ogdf::boyer_myrvold::BoyerMyrvoldInit::computeDFS
void computeDFS()
Creates the DFSTree.
ogdf::boyer_myrvold::BoyerMyrvoldInit::operator=
BoyerMyrvoldInit & operator=(const BoyerMyrvoldInit &)
Assignment operator is undefined!
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_separatedDFSChildList
NodeArray< ListPure< node > > & m_separatedDFSChildList
A list to all separated DFS-children of node.
Definition: BoyerMyrvoldInit.h:116
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:135
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_pNodeInParent
NodeArray< ListIterator< node > > & m_pNodeInParent
Pointer to node contained in the DFSChildList of his parent, if exists.
Definition: BoyerMyrvoldInit.h:121
ogdf::Array< node >
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_nodeFromDFI
Array< node > & m_nodeFromDFI
Returns appropriate node from given DFI.
Definition: BoyerMyrvoldInit.h:89
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::boyer_myrvold::BoyerMyrvoldInit::m_edgeCosts
const EdgeArray< int > * m_edgeCosts
Definition: BoyerMyrvoldInit.h:77
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_lowPoint
NodeArray< int > & m_lowPoint
The lowpoint of each node.
Definition: BoyerMyrvoldInit.h:108
ogdf::boyer_myrvold::BoyerMyrvoldInit::createVirtualVertex
void createVirtualVertex(const adjEntry father)
Creates and links a virtual vertex of the node belonging to father.
ogdf::BoyerMyrvoldPlanar
This class implements the extended BoyerMyrvold planarity embedding algorithm.
Definition: BoyerMyrvoldPlanar.h:62
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_edgeType
EdgeArray< BoyerMyrvoldEdgeType > & m_edgeType
Contains the type of each edge.
Definition: BoyerMyrvoldInit.h:105
List.h
Declaration of doubly linked lists and iterators.
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_g
Graph & m_g
The input graph.
Definition: BoyerMyrvoldInit.h:72
ogdf::boyer_myrvold::BoyerMyrvoldInit
This class is used in the Boyer-Myrvold planarity test for preprocessing purposes.
Definition: BoyerMyrvoldInit.h:49
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_highestSubtreeDFI
NodeArray< int > & m_highestSubtreeDFI
The highest DFI in a subtree with node as root.
Definition: BoyerMyrvoldInit.h:111
ogdf::boyer_myrvold::BoyerMyrvoldInit::~BoyerMyrvoldInit
~BoyerMyrvoldInit()
Destructor.
Definition: BoyerMyrvoldInit.h:55
ogdf::boyer_myrvold::BoyerMyrvoldInit::computeLowPoints
void computeLowPoints()
Computes lowpoint, highestSubtreeDFI and links virtual to nonvirtual vertices.
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709
ogdf::boyer_myrvold::BoyerMyrvoldInit::m_adjParent
NodeArray< adjEntry > & m_adjParent
The adjEntry which goes from DFS-parent to current vertex.
Definition: BoyerMyrvoldInit.h:97