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 00048 #ifdef _MSC_VER 00049 #pragma once 00050 #endif 00051 00052 00053 #ifndef OGDF_INCNODEINSERTER_H 00054 #define OGDF_INCNODEINSERTER_H 00055 00056 00057 #include <ogdf/planarity/PlanRepInc.h> 00058 #include <ogdf/basic/UMLGraph.h> 00059 #include <ogdf/basic/GraphAttributes.h> 00060 #include <ogdf/basic/GraphObserver.h> 00061 00062 namespace ogdf { 00063 00064 00065 //=============================================== 00066 //main function(s): 00067 // 00068 // insertcopyNode insert a node into a face 00069 // 00070 //=============================================== 00071 00072 00073 class OGDF_EXPORT IncNodeInserter 00074 { 00075 public: 00076 //creates inserter on PG 00077 IncNodeInserter(PlanRepInc &PG) : m_planRep(&PG ){}; 00078 00079 //insert copy in m_planRep for original node v 00080 virtual void insertCopyNode(node v, CombinatorialEmbedding &E, 00081 Graph::NodeType vTyp) = 0; 00082 00083 protected: 00084 //returns a face to insert a copy of v and a list of 00085 //adjacency entries corresponding to the insertion adjEntries 00086 //for the adjacent edges 00087 virtual face getInsertionFace(node v, CombinatorialEmbedding &E) = 0; 00088 00089 PlanRepInc* m_planRep; //the PlanRep that is changed 00090 }; //incnodeinserter 00091 00092 } //end namespace ogdf 00093 00094 #endif