Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00043 #ifdef _MSC_VER
00044 #pragma once
00045 #endif
00046
00047 #ifndef OGDF_PLANAR_SUBGRAPH_MODULE_H
00048 #define OGDF_PLANAR_SUBGRAPH_MODULE_H
00049
00050
00051
00052 #include <ogdf/planarity/PlanRepUML.h>
00053 #include <ogdf/basic/Module.h>
00054 #include <ogdf/basic/Logger.h>
00055 #include <ogdf/basic/Timeouter.h>
00056
00057
00058 namespace ogdf {
00059
00065 class OGDF_EXPORT PlanarSubgraphModule : public Module, public Timeouter {
00066 public:
00068 PlanarSubgraphModule() { }
00069
00070
00071 virtual ~PlanarSubgraphModule() { }
00072
00080 ReturnType call(const Graph &G,
00081 const List<edge> &preferedEdges,
00082 List<edge> &delEdges,
00083 bool preferedImplyPlanar = false)
00084 {
00085 return doCall(G,preferedEdges,delEdges,0,preferedImplyPlanar);
00086 }
00087
00088
00095 ReturnType call(const Graph &G, const EdgeArray<int> &cost, List<edge> &delEdges) {
00096 List<edge> preferedEdges;
00097 return doCall(G,preferedEdges,delEdges, &cost);
00098 }
00099
00105 ReturnType call(const Graph &G, List<edge> &delEdges) {
00106 List<edge> preferedEdges;
00107 return doCall(G,preferedEdges,delEdges);
00108 }
00109
00110
00112 ReturnType operator()(const Graph &G,
00113 const List<edge> &preferedEdges,
00114 List<edge> &delEdges,
00115 bool preferedImplyPlanar = false)
00116 {
00117 return call(G,preferedEdges,delEdges,preferedImplyPlanar);
00118 }
00119
00121 ReturnType operator()(const Graph &G, List<edge> &delEdges) {
00122 return call(G,delEdges);
00123 }
00124
00125
00133 ReturnType callAndDelete(GraphCopy &GC,
00134 const List<edge> &preferedEdges,
00135 List<edge> &delOrigEdges,
00136 bool preferedImplyPlanar = false);
00137
00143 ReturnType callAndDelete(GraphCopy &GC, List<edge> &delOrigEdges) {
00144 List<edge> preferedEdges;
00145 return callAndDelete(GC,preferedEdges,delOrigEdges);
00146 }
00147
00148 protected:
00149
00150
00151
00152
00165 virtual ReturnType doCall(const Graph &G,
00166 const List<edge> &preferedEdges,
00167 List<edge> &delEdges,
00168 const EdgeArray<int> *pCost = 0,
00169 bool preferedImplyPlanar = false) = 0;
00170
00171
00172
00173 OGDF_MALLOC_NEW_DELETE
00174 };
00175
00176 }
00177
00178 #endif