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/Logger.h>
35#include <ogdf/basic/Module.h>
38
39namespace ogdf {
40
42
46public:
49
52
55
57 virtual EdgeInsertionModule* clone() const = 0;
58
60
67 return doCall(pr, origEdges, nullptr, nullptr, nullptr);
68 }
69
71
80 return doCall(pr, origEdges, &costOrig, nullptr, nullptr);
81 }
82
84
94 const EdgeArray<uint32_t>& edgeSubGraphs) {
95 return doCall(pr, origEdges, &costOrig, nullptr, &edgeSubGraphs);
96 }
97
99
109 const Array<edge>& origEdges) {
110 return doCall(pr, origEdges, nullptr, &forbiddenOrig, nullptr);
111 }
112
114
127 return doCall(pr, origEdges, &costOrig, &forbiddenOrig, nullptr);
128 }
129
131
145 const EdgeArray<uint32_t>& edgeSubGraphs) {
146 return doCall(pr, origEdges, &costOrig, &forbiddenOrig, &edgeSubGraphs);
147 }
148
150
163 const EdgeArray<int>* pCostOrig = nullptr,
164 const EdgeArray<bool>* pForbiddenOrig = nullptr,
165 const EdgeArray<uint32_t>* pEdgeSubGraphs = nullptr) {
166 return doCall(pr, origEdges, pCostOrig, pForbiddenOrig, pEdgeSubGraphs);
167 }
168
169
170protected:
172
185
186
188};
189
190}
Contains logging functionality.
Declares base class for all module types.
Declaration of class PlanRepLight.
Declares base class for modules with timeout functionality.
The parameterized class Array implements dynamic arrays of type E.
Definition Array.h:214
Dynamic arrays indexed with edges.
Definition EdgeArray.h:125
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:47
ReturnType
The return type of a module.
Definition Module.h:50
Light-weight version of a planarized representation, associated with a PlanRep.
class for timeout funtionality.
Definition Timeouter.h:46
#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.