Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

PlanarAugmentationFix.h
Go to the documentation of this file.
1 
32 #pragma once
33 
34 #include <ogdf/basic/Graph.h>
35 #include <ogdf/basic/GraphCopy.h>
36 #include <ogdf/basic/List.h>
37 #include <ogdf/basic/basic.h>
40 
41 namespace ogdf {
42 class CombinatorialEmbedding;
43 class DynamicBCTree;
44 
51 public:
54 
57 
58 protected:
65  virtual void doCall(Graph& g, List<edge>& list) override;
66 
67 private:
69  CombinatorialEmbedding* m_pEmbedding = nullptr;
70 
72  CombinatorialEmbedding* m_pActEmbedding = nullptr;
73 
75  Graph* m_pGraph = nullptr;
76 
78  List<edge>* m_pResult = nullptr;
79 
81  DynamicBCTree* m_pBCTree = nullptr;
82 
85 
88 
91 
94 
97 
100 
103 
105  void augment(adjEntry adjOuterFace);
106 
108  void modifyBCRoot(node oldRoot, node newRoot);
109 
111  void changeBCRoot(node oldRoot, node newRoot);
112 
114  void reduceChain(node pendant);
115 
117  PALabel::StopCause followPath(node v, node& last);
118 
120  bool findMatching(node& pendant1, node& pendant2, adjEntry& v1, adjEntry& v2);
121 
123  void findMatchingRev(node& pendant1, node& pendant2, adjEntry& v1, adjEntry& v2);
124 
126  pa_label newLabel(node cutvertex, node parent, node pendant, PALabel::StopCause whyStop);
127 
129  void addPendant(node pendant, pa_label& label);
130 
132  ListIterator<pa_label> insertLabel(pa_label label);
133 
135  void connectPendants(node pendant1, node pendant2, adjEntry adjV1, adjEntry adjV2);
136 
138  void connectSingleLabel();
139 
141  void deletePendant(node pendant);
142 
144  void deleteLabel(pa_label& label);
145 
147  void removeLabel(pa_label& label);
148 };
149 
150 }
ogdf
The namespace for all OGDF objects.
Definition: multilevelmixer.cpp:39
Graph.h
Includes declaration of graph class.
ogdf::PlanarAugmentationFix::PlanarAugmentationFix
PlanarAugmentationFix()
Creates an instance of planar augmentation with fixed embedding.
Definition: PlanarAugmentationFix.h:53
ogdf::PlanarAugmentationFix::m_actBCRoot
node m_actBCRoot
The actual root of the bc-tree.
Definition: PlanarAugmentationFix.h:102
ogdf::PlanarAugmentationFix::m_isLabel
NodeArray< ListIterator< pa_label > > m_isLabel
Array that contains iterators to the list of labels if a node is a parent of a label.
Definition: PlanarAugmentationFix.h:93
ogdf::GraphCopy
Copies of graphs supporting edge splitting.
Definition: GraphCopy.h:391
ogdf::PlanarAugmentationFix::m_graphCopy
GraphCopy m_graphCopy
The actual partial graph.
Definition: PlanarAugmentationFix.h:84
ogdf::PlanarAugmentationFix::m_labels
List< pa_label > m_labels
The list of all labels.
Definition: PlanarAugmentationFix.h:90
ogdf::PlanarAugmentationFix::m_belongsToIt
NodeArray< ListIterator< node > > m_belongsToIt
Array that contains the iterator of the label a node belongs to.
Definition: PlanarAugmentationFix.h:99
ogdf::AdjElement
Class for adjacency list elements.
Definition: Graph_d.h:142
ogdf::PALabel
auxiliary class for the planar augmentation algorithm
Definition: PALabel.h:47
AugmentationModule.h
Declaration of interface for graph augmentation algorithms.
GraphCopy.h
Declaration of graph copy classes.
ogdf::List< edge >
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::AugmentationModule
The base class for graph augmentation algorithms.
Definition: AugmentationModule.h:56
PALabel.h
Declares auxiliary structure of planar augmentation algorithms.
ogdf::PALabel::StopCause
StopCause
Definition: PALabel.h:52
ogdf::PlanarAugmentationFix
The algorithm for biconnectivity augmentation with fixed combinatorial embedding.
Definition: PlanarAugmentationFix.h:50
ogdf::PlanarAugmentationFix::m_eCopy
EdgeArray< edge > m_eCopy
Edge-array required for construction of the graph copy.
Definition: PlanarAugmentationFix.h:87
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::CombinatorialEmbedding
Combinatorial embeddings of planar graphs with modification functionality.
Definition: CombinatorialEmbedding.h:406
List.h
Declaration of doubly linked lists and iterators.
ogdf::ListIteratorBase
Encapsulates a pointer to a list element.
Definition: List.h:51
ogdf::PlanarAugmentationFix::~PlanarAugmentationFix
~PlanarAugmentationFix()
Destruction.
Definition: PlanarAugmentationFix.h:56
ogdf::NodeElement
Class for the representation of nodes.
Definition: Graph_d.h:240
ogdf::DynamicBCTree
Dynamic BC-trees.
Definition: DynamicBCTree.h:56
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:716
ogdf::PlanarAugmentationFix::m_belongsTo
NodeArray< pa_label > m_belongsTo
Array that contains the label a node belongs to.
Definition: PlanarAugmentationFix.h:96