Open
Graph Drawing
Framework

 v.2012.05
 

MMEdgeInsertionModule.h
Go to the documentation of this file.
00001 /*
00002  * $Revision: 2299 $
00003  * 
00004  * last checkin:
00005  *   $Author: gutwenger $ 
00006  *   $Date: 2012-05-07 15:57:08 +0200 (Mon, 07 May 2012) $ 
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     // destruction
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 } // end namespace ogdf
00126 
00127 #endif