Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
UpwardPlanarizerModule.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/Module.h>
36
37namespace ogdf {
38
44public:
46 UpwardPlanarizerModule() : m_useCost(false), m_useForbid(false) { }
47
48 // destruction
50
70 const EdgeArray<bool>* forbid = nullptr) {
71 m_useCost = (cost != nullptr);
72 m_useForbid = (forbid != nullptr);
73
74 if (!useCost()) {
75 cost = new EdgeArray<int>(UPR.original(), 1);
76 }
77 if (!useForbid()) {
78 forbid = new EdgeArray<bool>(UPR.original(), 0);
79 }
80
81
82 ReturnType R = doCall(UPR, *cost, *forbid);
83
84 if (!useCost()) {
85 delete cost;
86 }
87 if (!useForbid()) {
88 delete forbid;
89 }
90 return R;
91 }
92
95 const EdgeArray<bool>* forbid = nullptr) {
96 return call(UPR, cost, forbid);
97 }
98
100 bool useCost() const { return m_useCost; }
101
103 bool useForbid() const { return m_useForbid; }
104
105protected:
124 const EdgeArray<bool>& forbid) = 0;
125
127
128private:
131};
132
133}
Declares base class for all module types.
Declaration of a base class for planar representations of graphs and cluster graphs.
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
Base class for modules.
Definition Module.h:47
ReturnType
The return type of a module.
Definition Module.h:50
Upward planarized representations (of a connected component) of a graph.
Interface for upward planarization algorithms.
ReturnType call(UpwardPlanRep &UPR, const EdgeArray< int > *cost=nullptr, const EdgeArray< bool > *forbid=nullptr)
Computes a upward planarized representation (UPR) of the input graph G.
ReturnType operator()(UpwardPlanRep &UPR, const EdgeArray< int > *cost=nullptr, const EdgeArray< bool > *forbid=nullptr)
Computes a upward planarized representation of the input graph (shorthand for call)
bool m_useForbid
True iff forbidden edges are given.
bool useForbid() const
Returns true iff forbidden edges are given.
bool m_useCost
True iff edge costs are given.
UpwardPlanarizerModule()
Initializes an upward planarizer module.
virtual ReturnType doCall(UpwardPlanRep &UPR, const EdgeArray< int > &cost, const EdgeArray< bool > &forbid)=0
Computes an upward planarized representation of the input graph.
bool useCost() const
Returns true iff edge costs are given.
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition config.h:101
#define OGDF_MALLOC_NEW_DELETE
Makes the class use malloc for memory allocation.
Definition memory.h:91
static MultilevelBuilder * getDoubleFactoredZeroAdjustedMerger()
The namespace for all OGDF objects.