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_MM_EDGE_INSERTION_MODULE_H
00048 #define OGDF_MM_EDGE_INSERTION_MODULE_H
00049
00050
00051 #include <ogdf/planarity/PlanRepExpansion.h>
00052 #include <ogdf/basic/Module.h>
00053
00054
00055 namespace ogdf {
00056
00062 class OGDF_EXPORT MMEdgeInsertionModule : public Module {
00063 public:
00065 enum RemoveReinsertType {
00066 rrNone,
00067 rrInserted,
00068 rrMostCrossed,
00069 rrAll,
00070 rrIncremental
00071 };
00072
00074 MMEdgeInsertionModule() { }
00075
00076
00077 virtual ~MMEdgeInsertionModule() { }
00078
00087 ReturnType call(PlanRepExpansion &PG, const List<edge> &origEdges) {
00088 return doCall(PG, origEdges, 0);
00089 }
00090
00101 ReturnType call(PlanRepExpansion &PG,
00102 const List<edge> &origEdges,
00103 const EdgeArray<bool> &forbiddenEdgeOrig)
00104 {
00105 return doCall(PG, origEdges, &forbiddenEdgeOrig);
00106 }
00107
00108 protected:
00118 virtual ReturnType doCall(PlanRepExpansion &PG,
00119 const List<edge> &origEdges, const EdgeArray<bool> *forbiddenEdgeOrig) = 0;
00120
00121
00122 OGDF_MALLOC_NEW_DELETE
00123 };
00124
00125 }
00126
00127 #endif