Open
Graph Drawing
Framework

 v. 2023.09 (Elderberry)
 

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>
36 #include <ogdf/basic/Timeouter.h>
38 
39 namespace ogdf {
40 
42 
46 public:
49 
52 
54  virtual ~EdgeInsertionModule() { }
55 
57  virtual EdgeInsertionModule* clone() const = 0;
58 
60 
66  ReturnType call(PlanRepLight& pr, const Array<edge>& origEdges) {
67  return doCall(pr, origEdges, nullptr, nullptr, nullptr);
68  }
69 
71 
79  ReturnType call(PlanRepLight& pr, const EdgeArray<int>& costOrig, const Array<edge>& origEdges) {
80  return doCall(pr, origEdges, &costOrig, nullptr, nullptr);
81  }
82 
84 
93  ReturnType call(PlanRepLight& pr, const EdgeArray<int>& costOrig, const Array<edge>& origEdges,
94  const EdgeArray<uint32_t>& edgeSubGraphs) {
95  return doCall(pr, origEdges, &costOrig, nullptr, &edgeSubGraphs);
96  }
97 
99 
108  ReturnType call(PlanRepLight& pr, const EdgeArray<bool>& forbiddenOrig,
109  const Array<edge>& origEdges) {
110  return doCall(pr, origEdges, nullptr, &forbiddenOrig, nullptr);
111  }
112 
114 
126  const EdgeArray<bool>& forbiddenOrig, const Array<edge>& origEdges) {
127  return doCall(pr, origEdges, &costOrig, &forbiddenOrig, nullptr);
128  }
129 
131 
144  const EdgeArray<bool>& forbiddenOrig, const Array<edge>& origEdges,
145  const EdgeArray<uint32_t>& edgeSubGraphs) {
146  return doCall(pr, origEdges, &costOrig, &forbiddenOrig, &edgeSubGraphs);
147  }
148 
150 
162  ReturnType callEx(PlanRepLight& pr, const Array<edge>& origEdges,
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 
170 protected:
172 
182  virtual ReturnType doCall(PlanRepLight& pr, const Array<edge>& origEdges,
183  const EdgeArray<int>* pCostOrig, const EdgeArray<bool>* pForbiddenOrig,
184  const EdgeArray<uint32_t>* pEdgeSubGraphs) = 0;
185 
186 
188 };
189 
190 }
ogdf
The namespace for all OGDF objects.
Definition: AugmentationModule.h:36
ogdf::EdgeInsertionModule::call
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.
Definition: EdgeInsertionModule.h:125
ogdf::EdgeInsertionModule::call
ReturnType call(PlanRepLight &pr, const EdgeArray< int > &costOrig, const Array< edge > &origEdges)
Inserts all edges in origEdges with given costs into pr.
Definition: EdgeInsertionModule.h:79
ogdf::PlanRepLight
Light-weight version of a planarized representation, associated with a PlanRep.
Definition: PlanRepLight.h:43
ogdf::EdgeInsertionModule
Interface for edge insertion algorithms.
Definition: EdgeInsertionModule.h:45
ogdf::EdgeInsertionModule::call
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.
Definition: EdgeInsertionModule.h:93
Timeouter.h
Declares base class for modules with timeout functionality.
Logger.h
Contains logging functionality.
ogdf::EdgeInsertionModule::call
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...
Definition: EdgeInsertionModule.h:143
OGDF_MALLOC_NEW_DELETE
#define OGDF_MALLOC_NEW_DELETE
Makes the class use malloc for memory allocation.
Definition: memory.h:91
ogdf::EdgeInsertionModule::call
ReturnType call(PlanRepLight &pr, const Array< edge > &origEdges)
Inserts all edges in origEdges into pr.
Definition: EdgeInsertionModule.h:66
ogdf::Module
Base class for modules.
Definition: Module.h:47
ogdf::Array
The parameterized class Array implements dynamic arrays of type E.
Definition: Array.h:214
ogdf::EdgeInsertionModule::callEx
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...
Definition: EdgeInsertionModule.h:162
PlanRepLight.h
Declaration of class PlanRepLight.
ogdf::EdgeInsertionModule::EdgeInsertionModule
EdgeInsertionModule()
Initializes an edge insertion module (default constructor).
Definition: EdgeInsertionModule.h:48
ogdf::EdgeInsertionModule::EdgeInsertionModule
EdgeInsertionModule(const EdgeInsertionModule &eim)
Initializes an edge insertion module (copy constructor).
Definition: EdgeInsertionModule.h:51
ogdf::EdgeInsertionModule::~EdgeInsertionModule
virtual ~EdgeInsertionModule()
Destructor.
Definition: EdgeInsertionModule.h:54
ogdf::EdgeInsertionModule::call
ReturnType call(PlanRepLight &pr, const EdgeArray< bool > &forbiddenOrig, const Array< edge > &origEdges)
Inserts all edges in origEdges with given forbidden edges into pr.
Definition: EdgeInsertionModule.h:108
OGDF_EXPORT
#define OGDF_EXPORT
Specifies that a function or class is exported by the OGDF DLL.
Definition: config.h:101
ogdf::Timeouter
class for timeout funtionality.
Definition: Timeouter.h:46
Module.h
Declares base class for all module types.
ogdf::Module::ReturnType
ReturnType
The return type of a module.
Definition: Module.h:50
ogdf::internal::EdgeArrayBase2
RegisteredArray for edges of a graph, specialized for EdgeArray<edge>.
Definition: Graph_d.h:709