Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

Loading...
Searching...
No Matches
EdgeInsertionModule.h
Go to the documentation of this file.
1
32#pragma once
33
34#include <ogdf/basic/Array.h>
35#include <ogdf/basic/Graph.h>
36#include <ogdf/basic/Module.h>
38#include <ogdf/basic/basic.h>
39#include <ogdf/basic/memory.h>
40
41#include <cstdint>
42
43namespace ogdf {
44class PlanRepLight;
45
47
51public:
54
57
60
62 virtual EdgeInsertionModule* clone() const = 0;
63
65
71 ReturnType call(PlanRepLight& pr, const Array<edge>& origEdges) {
72 return doCall(pr, origEdges, nullptr, nullptr, nullptr);
73 }
74
76
84 ReturnType call(PlanRepLight& pr, const EdgeArray<int>& costOrig, const Array<edge>& origEdges) {
85 return doCall(pr, origEdges, &costOrig, nullptr, nullptr);
86 }
87
89
98 ReturnType call(PlanRepLight& pr, const EdgeArray<int>& costOrig, const Array<edge>& origEdges,
99 const EdgeArray<uint32_t>& edgeSubGraphs) {
100 return doCall(pr, origEdges, &costOrig, nullptr, &edgeSubGraphs);
101 }
102
104
113 ReturnType call(PlanRepLight& pr, const EdgeArray<bool>& forbiddenOrig,
114 const Array<edge>& origEdges) {
115 return doCall(pr, origEdges, nullptr, &forbiddenOrig, nullptr);
116 }
117
119
131 const EdgeArray<bool>& forbiddenOrig, const Array<edge>& origEdges) {
132 return doCall(pr, origEdges, &costOrig, &forbiddenOrig, nullptr);
133 }
134
136
149 const EdgeArray<bool>& forbiddenOrig, const Array<edge>& origEdges,
150 const EdgeArray<uint32_t>& edgeSubGraphs) {
151 return doCall(pr, origEdges, &costOrig, &forbiddenOrig, &edgeSubGraphs);
152 }
153
155
168 const EdgeArray<int>* pCostOrig = nullptr,
169 const EdgeArray<bool>* pForbiddenOrig = nullptr,
170 const EdgeArray<uint32_t>* pEdgeSubGraphs = nullptr) {
171 return doCall(pr, origEdges, pCostOrig, pForbiddenOrig, pEdgeSubGraphs);
172 }
173
174
175protected:
177
187 virtual ReturnType doCall(PlanRepLight& pr, const Array<edge>& origEdges,
188 const EdgeArray<int>* pCostOrig, const EdgeArray<bool>* pForbiddenOrig,
189 const EdgeArray<uint32_t>* pEdgeSubGraphs) = 0;
190
191
193};
194
195}
Declaration and implementation of Array class and Array algorithms.
Includes declaration of graph class.
Declares base class for all module types.
Declares base class for modules with timeout functionality.
Basic declarations, included by all source files.
The parameterized class Array implements dynamic arrays of type E.
Definition Array.h:219
Interface for edge insertion algorithms.
EdgeInsertionModule(const EdgeInsertionModule &eim)
Initializes an edge insertion module (copy constructor).
ReturnType call(PlanRepLight &pr, const EdgeArray< int > &costOrig, const EdgeArray< bool > &forbiddenOrig, const Array< edge > &origEdges, const EdgeArray< uint32_t > &edgeSubGraphs)
Inserts all edges in origEdges with given costs, forbidden edges, and subgraphs (for simultaneous dra...
ReturnType callEx(PlanRepLight &pr, const Array< edge > &origEdges, const EdgeArray< int > *pCostOrig=nullptr, const EdgeArray< bool > *pForbiddenOrig=nullptr, const EdgeArray< uint32_t > *pEdgeSubGraphs=nullptr)
Inserts all edges in origEdges into pr, optionally costs, forbidden edges, and subgraphs (for simulta...
ReturnType call(PlanRepLight &pr, const EdgeArray< int > &costOrig, const Array< edge > &origEdges, const EdgeArray< uint32_t > &edgeSubGraphs)
Inserts all edges in origEdges with given costs and subgraphs (for simultaneous drawing) into pr.
ReturnType call(PlanRepLight &pr, const Array< edge > &origEdges)
Inserts all edges in origEdges into pr.
virtual ReturnType doCall(PlanRepLight &pr, const Array< edge > &origEdges, const EdgeArray< int > *pCostOrig, const EdgeArray< bool > *pForbiddenOrig, const EdgeArray< uint32_t > *pEdgeSubGraphs)=0
Actual algorithm call that has to be implemented by derived classes.
virtual EdgeInsertionModule * clone() const =0
Returns a new instance of the edge insertion module with the same option settings.
EdgeInsertionModule()
Initializes an edge insertion module (default constructor).
ReturnType call(PlanRepLight &pr, const EdgeArray< int > &costOrig, const EdgeArray< bool > &forbiddenOrig, const Array< edge > &origEdges)
Inserts all edges in origEdges with given costs and forbidden edges into pr.
ReturnType call(PlanRepLight &pr, const EdgeArray< bool > &forbiddenOrig, const Array< edge > &origEdges)
Inserts all edges in origEdges with given forbidden edges into pr.
virtual ~EdgeInsertionModule()
Destructor.
ReturnType call(PlanRepLight &pr, const EdgeArray< int > &costOrig, const Array< edge > &origEdges)
Inserts all edges in origEdges with given costs into pr.
Base class for modules.
Definition Module.h:49
ReturnType
The return type of a module.
Definition Module.h:52
Light-weight version of a planarized representation, associated with a PlanRep.
class for timeout funtionality.
Definition Timeouter.h:46
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.