Open
Graph Drawing
Framework

 v.2010.10
 

IncNodeInserter.h

Go to the documentation of this file.
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