Loading [MathJax]/extensions/tex2jax.js

Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Modules Pages
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.