00001 /* 00002 * $Revision: 2027 $ 00003 * 00004 * last checkin: 00005 * $Author: gutwenger $ 00006 * $Date: 2010-09-01 11:55:17 +0200 (Wed, 01 Sep 2010) $ 00007 ***************************************************************/ 00008 00058 #ifdef _MSC_VER 00059 #pragma once 00060 #endif 00061 00062 00063 #ifndef OGDF_INCNODEINSERTER_H 00064 #define OGDF_INCNODEINSERTER_H 00065 00066 00067 #include <ogdf/planarity/PlanRepInc.h> 00068 #include <ogdf/basic/UMLGraph.h> 00069 #include <ogdf/basic/GraphAttributes.h> 00070 #include <ogdf/basic/GraphObserver.h> 00071 00072 namespace ogdf { 00073 00074 00075 //=============================================== 00076 //main function(s): 00077 // 00078 // insertcopyNode insert a node into a face 00079 // 00080 //=============================================== 00081 00082 00083 class OGDF_EXPORT IncNodeInserter 00084 { 00085 public: 00086 //creates inserter on PG 00087 IncNodeInserter(PlanRepInc &PG) : m_planRep(&PG ){}; 00088 00089 //insert copy in m_planRep for original node v 00090 virtual void insertCopyNode(node v, CombinatorialEmbedding &E, 00091 Graph::NodeType vTyp) = 0; 00092 00093 protected: 00094 //returns a face to insert a copy of v and a list of 00095 //adjacency entries corresponding to the insertion adjEntries 00096 //for the adjacent edges 00097 virtual face getInsertionFace(node v, CombinatorialEmbedding &E) = 0; 00098 00099 PlanRepInc* m_planRep; //the PlanRep that is changed 00100 }; //incnodeinserter 00101 00102 } //end namespace ogdf 00103 00104 #endif