Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
PlanarizerChordlessCycle.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
42namespace ogdf {
43class GraphCopy;
44class PlanRep;
45template<class E>
46class List;
47
62protected:
64
67 virtual ReturnType doCall(PlanRep& pr, int cc, const EdgeArray<int>* pCostOrig,
68 const EdgeArray<bool>* pForbiddenOrig, const EdgeArray<uint32_t>* pEdgeSubGraphs,
69 int& crossingNumber) override;
70
71public:
74
77
79 virtual CrossingMinimizationModule* clone() const override;
80
83
84private:
90 bool findChordlessCycle(const Graph& G, List<node>& cycle);
91
104 void transferToPlanRep(PlanRep& pr, const GraphCopy& graphCopy, const GraphCopy& copyCopy);
105
119 void addToGraphCopy(GraphCopy& graphCopy, GraphCopy& copyCopy, DynamicDualGraph& dual,
120 node vOrig, const EdgeArray<int>* pCostOrig, EdgeArray<int>* pCostCopy);
121
124};
125
126}
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
Data type for general directed graphs (adjacency list representation).
Definition Graph_d.h:866
Doubly linked lists (maintaining the length of the list).
Definition List.h:1451
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
Starts with a chordless cycle of the graph and then inserts each original node that is adjacent to al...
PlanarizerChordlessCycle(const PlanarizerChordlessCycle &planarizer)
Creates a PlanarizerChordlessCycle with the same settings as planarizer.
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.
virtual CrossingMinimizationModule * clone() const override
Returns a new PlanarizerChordlessCycle with the same option settings.
PlanarizerChordlessCycle & operator=(const PlanarizerChordlessCycle &planarizer)
Assignment operator, copies option settings only.
PlanarizerChordlessCycle()
Creates a PlanarizerChordlessCycle with default settings.
void transferToPlanRep(PlanRep &pr, const GraphCopy &graphCopy, const GraphCopy &copyCopy)
Creates crossings in pr that resemble the crossings in copyCopy.
void addToGraphCopy(GraphCopy &graphCopy, GraphCopy &copyCopy, DynamicDualGraph &dual, node vOrig, const EdgeArray< int > *pCostOrig, EdgeArray< int > *pCostCopy)
Creates a copy of vOrig in graphCopy and optimally inserts a copy of this copy in the planarization c...
bool findChordlessCycle(const Graph &G, List< node > &cycle)
StarInserter m_inserter
The StarInserter used to insert new nodes into the planarization.
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.