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/Graph.h>
35#include <ogdf/basic/Module.h>
36#include <ogdf/basic/basic.h>
37#include <ogdf/basic/memory.h>
39
40namespace ogdf {
41
47public:
49 UpwardPlanarizerModule() : m_useCost(false), m_useForbid(false) { }
50
51 // destruction
53
72 ReturnType call(UpwardPlanRep& UPR, const EdgeArray<int>* cost = nullptr,
73 const EdgeArray<bool>* forbid = nullptr) {
74 m_useCost = (cost != nullptr);
75 m_useForbid = (forbid != nullptr);
76
77 if (!useCost()) {
78 cost = new EdgeArray<int>(UPR.original(), 1);
79 }
80 if (!useForbid()) {
81 forbid = new EdgeArray<bool>(UPR.original(), 0);
82 }
83
84
85 ReturnType R = doCall(UPR, *cost, *forbid);
86
87 if (!useCost()) {
88 delete cost;
89 }
90 if (!useForbid()) {
91 delete forbid;
92 }
93 return R;
94 }
95
98 const EdgeArray<bool>* forbid = nullptr) {
99 return call(UPR, cost, forbid);
100 }
101
103 bool useCost() const { return m_useCost; }
104
106 bool useForbid() const { return m_useForbid; }
107
108protected:
127 const EdgeArray<bool>& forbid) = 0;
128
130
131private:
134};
135
136}
Includes declaration of graph class.
Declares base class for all module types.
Declaration of a base class for planar representations of graphs and cluster graphs.
Basic declarations, included by all source files.
const Graph & original() const
Returns a reference to the original graph.
Definition GraphCopy.h:104
Base class for modules.
Definition Module.h:49
ReturnType
The return type of a module.
Definition Module.h:52
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.
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
#define OGDF_MALLOC_NEW_DELETE
Makes the class use malloc for memory allocation.
Definition memory.h:92
Declaration of memory manager for allocating small pieces of memory.
The namespace for all OGDF objects.