Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
PlanarizerStarReinsertion.h
Go to the documentation of this file.
1
32#pragma once
33
35#include <ogdf/basic/Graph.h>
36#include <ogdf/basic/basic.h>
39
40#include <cstdint>
41#include <memory>
42
43namespace ogdf::embedder {
44class CrossingStructure;
45} // namespace ogdf::embedder
46
47namespace ogdf {
48class GraphCopy;
49class PlanRep;
50
51using embedder::CrossingStructure;
52
54
108private:
110 std::unique_ptr<CrossingMinimizationModule> m_planarization;
111
113
115
117
118 int64_t m_stopTime;
119
137 bool reinsertStar(GraphCopy& currentPlanarization, DynamicDualGraph& dualGraph,
138 node nodeToReinsert, CrossingStructure& bestCS, const EdgeArray<int>* pCostOrig,
139 const EdgeArray<bool>* pForbiddenOrig, const EdgeArray<uint32_t>* pEdgeSubGraphs);
140
142
156 ReturnType mainLoop(const PlanRep& pr, CrossingStructure& bestCS, const EdgeArray<int>* pCostOrig,
157 const EdgeArray<bool>* pForbiddenOrig, const EdgeArray<uint32_t>* pEdgeSubGraphs);
158
159protected:
161
165 virtual ReturnType doCall(PlanRep& pr, int cc, const EdgeArray<int>* pCostOrig,
166 const EdgeArray<bool>* pForbiddenOrig, const EdgeArray<uint32_t>* pEdgeSubGraphs,
167 int& crossingNumber) override;
168
169public:
172
175
177 virtual CrossingMinimizationModule* clone() const override;
178
181
183 void setPlanarization(CrossingMinimizationModule* pPlanarizationModule) {
184 m_planarization.reset(pPlanarizationModule);
185 }
186
189
191 bool setTimeout() { return m_setTimeout; }
192
194 void setTimeout(bool b) { m_setTimeout = b; }
195
197 int maxIterations() { return m_maxIterations; }
198
200
211 void maxIterations(int maxIterations) { m_maxIterations = maxIterations; }
212
214};
215
216}
Declaration of CrossingMinimization Module, an interface for crossing minimization algorithms.
Includes declaration of dual graph class.
Includes declaration of graph class.
Declaration of class StarInserter.
Basic declarations, included by all source files.
Base class for crossing minimization algorithms.
A dual graph including its combinatorial embedding of an embedded graph.
Definition DualGraph.h:61
Copies of graphs supporting edge splitting.
Definition GraphCopy.h:390
ReturnType
The return type of a module.
Definition Module.h:52
Class for the representation of nodes.
Definition Graph_d.h:241
Planarized representations (of a connected component) of a graph.
Definition PlanRep.h:68
The star (re-)insertion approach for crossing minimization.
std::unique_ptr< CrossingMinimizationModule > m_planarization
The initial planarization algorithm.
int m_maxIterations
The maximum number of iterations.
bool reinsertStar(GraphCopy &currentPlanarization, DynamicDualGraph &dualGraph, node nodeToReinsert, CrossingStructure &bestCS, const EdgeArray< int > *pCostOrig, const EdgeArray< bool > *pForbiddenOrig, const EdgeArray< uint32_t > *pEdgeSubGraphs)
Reinserts the star nodeToReinsert in currentPlanarization.
int maxIterations()
Returns the number of maxIterations.
ReturnType mainLoop(const PlanRep &pr, CrossingStructure &bestCS, const EdgeArray< int > *pCostOrig, const EdgeArray< bool > *pForbiddenOrig, const EdgeArray< uint32_t > *pEdgeSubGraphs)
Reinserts a specific set of stars until a termination criterion is met.
void maxIterations(int maxIterations)
Sets the maximum number of iterations.
virtual ReturnType doCall(PlanRep &pr, int cc, const EdgeArray< int > *pCostOrig, const EdgeArray< bool > *pForbiddenOrig, const EdgeArray< uint32_t > *pEdgeSubGraphs, int &crossingNumber) override
Implements the algorithm call.
void setTimeout(bool b)
Sets the option setTimeout to b.
int64_t m_stopTime
When the algorithm should stop.
virtual CrossingMinimizationModule * clone() const override
Returns a new PlanarizerStarReinsertion with the same option settings.
PlanarizerStarReinsertion(const PlanarizerStarReinsertion &planarizer)
Creates a PlanarizerStarReinsertion with the same settings as planarizer.
void setPlanarization(CrossingMinimizationModule *pPlanarizationModule)
Sets the module option for the computation of the inital planarization.
PlanarizerStarReinsertion()
Creates a PlanarizerStarReinsertion with default settings.
bool m_setTimeout
Helper to insert stars.
PlanarizerStarReinsertion & operator=(const PlanarizerStarReinsertion &planarizer)
Assignment operator, copies option settings only.
bool setTimeout()
Returns the current setting of options setTimeout.
Inserts a star (a vertex and its incident edges) optimally into an embedding.
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition Graph_d.h:717
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF dynamic library (shared object / DLL),...
Definition config.h:117
The namespace for all OGDF objects.