Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
FUPSSimple.h
Go to the documentation of this file.
1
32#pragma once
33
35
36namespace ogdf {
37
38
40public:
42 FUPSSimple() : m_nRuns(0) { }
43
44 // destructor
46
47 // options
48
50 void runs(int nRuns) { m_nRuns = nRuns; }
51
53 int runs() const { return m_nRuns; }
54
57 adjEntry adjFound = nullptr;
58 for (adjEntry adj : v->adjEntries) {
59 if (Gamma.rightFace(adj) == f) {
60 adjFound = adj;
61 break;
62 }
63 }
64
65 OGDF_ASSERT(Gamma.rightFace(adjFound) == f);
66
67 return adjFound;
68 }
69
70protected:
80 virtual Module::ReturnType doCall(UpwardPlanRep& UPR, List<edge>& delEdges) override;
81
82
83private:
84 int m_nRuns;
85
87
89 /*
90 * @param GC The Copy of the input graph G.
91 * @param &delEdges The deleted edges (edges of G).
92 * @param random compute a random span tree
93 * @multisource true, if the original graph got multisources. In this case, the incident edges of
94 * the source are allways included in the span tree
95 */
96 void getSpanTree(GraphCopy& GC, List<edge>& delEdges, bool random);
97
98 /*
99 * Function use by geSpannTree to compute the spannig tree.
100 */
102 bool random);
103
104 // construct a merge graph with repsect to gamma and its test acyclicity
112};
113
114}
Declaration of Feasible Upward Planar Subgraph (FUPS) Module, an interface for subgraph computation.
Class for adjacency list elements.
Definition Graph_d.h:79
Combinatorial embeddings of planar graphs with modification functionality.
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
Class for the representation of edges.
Definition Graph_d.h:300
Interface for feasible upward planar subgraph algorithms.
Definition FUPSModule.h:43
virtual Module::ReturnType doCall(UpwardPlanRep &UPR, List< edge > &delEdges) override
Computes a feasible upward planar subgraph of the input graph.
bool constructMergeGraph(GraphCopy &M, adjEntry adj_orig, const List< edge > &del_orig)
void computeFUPS(UpwardPlanRep &UPR, List< edge > &delEdges)
adjEntry getAdjEntry(const CombinatorialEmbedding &Gamma, node v, face f)
return a adjEntry of node v which right face is f. Be Carefully! The adjEntry is not always unique.
Definition FUPSSimple.h:56
void dfs_visit(const Graph &G, edge e, NodeArray< bool > &visited, EdgeArray< bool > &treeEdges, bool random)
int runs() const
Returns the current number of randomized runs.
Definition FUPSSimple.h:53
FUPSSimple()
Creates an instance of feasible subgraph algorithm.
Definition FUPSSimple.h:42
void runs(int nRuns)
Sets the number of randomized runs to nRuns.
Definition FUPSSimple.h:50
void getSpanTree(GraphCopy &GC, List< edge > &delEdges, bool random)
Compute a (random) span tree of the input sT-Graph.
int m_nRuns
The number of runs for randomization.
Definition FUPSSimple.h:84
Faces in a combinatorial embedding.
Copies of graphs supporting edge splitting.
Definition GraphCopy.h:254
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:521
Doubly linked lists (maintaining the length of the list).
Definition List.h:1435
ReturnType
The return type of a module.
Definition Module.h:50
Dynamic arrays indexed with nodes.
Definition NodeArray.h:125
Class for the representation of nodes.
Definition Graph_d.h:177
internal::GraphObjectContainer< AdjElement > adjEntries
The container containing all entries in the adjacency list of this node.
Definition Graph_d.h:208
Upward planarized representations (of a connected component) of a graph.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition config.h:101
#define OGDF_ASSERT(expr)
Assert condition expr. See doc/build.md for more information.
Definition basic.h:41
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.