00001 //----------------------------------------------------------------------------- 00002 // Author: Jim Holmström 00003 // Date: 2002-02-13 00004 //----------------------------------------------------------------------------- 00005 00006 #ifndef __IGNGCONTAINER_H 00007 #define __IGNGCONTAINER_H 00008 00009 #include "NodeContainer.hpp" 00010 #include "EdgeContainer.hpp" 00011 00012 class GNGNodeFactory; 00013 00019 class IGNGContainer 00020 { 00021 public: 00026 virtual void SetNodeFactory(GNGNodeFactory * f) = 0; 00027 00032 virtual EdgeContainer & GetEdges() = 0; 00033 00038 virtual NodeContainer & GetNodes() = 0; 00039 00044 virtual void DeleteEdge(EdgeContainer::iterator & i) = 0; 00045 00050 virtual void DeleteEdge(GNGEdge * e) = 0; 00051 00058 virtual GNGEdge * CreateEdge(GNGNode * n1, GNGNode * n2) = 0; 00059 00064 virtual GNGNode * CreateNode() = 0; 00065 00070 virtual void DeleteNode(NodeContainer::iterator & i) = 0; 00071 }; 00072 00073 00074 #endif