00001 #ifndef __DEFAULTCONTAINER_H 00002 #define __DEFAULTCONTAINER_H 00003 00004 #include "../GNGCore/IGNGContainer.hpp" 00005 #include "../GNGCore/GNGNode.hpp" 00006 00007 class DefaultGNGContainer : public IGNGContainer 00008 { 00009 public: 00010 virtual ~DefaultGNGContainer(); 00011 00012 virtual void SetNodeFactory(GNGNodeFactory * f) { m_nodeFactory = f; } 00013 00014 virtual EdgeContainer & GetEdges(); 00015 virtual NodeContainer & GetNodes(); 00016 00021 virtual void DeleteEdge(EdgeContainer::iterator & i); 00022 00027 virtual void DeleteEdge(GNGEdge * e); 00028 00036 virtual GNGEdge * CreateEdge(GNGNode * n1, GNGNode * n2); 00037 00043 virtual GNGNode * CreateNode(); 00044 00049 virtual void DeleteNode(NodeContainer::iterator & i); 00050 00051 protected: 00052 EdgeContainer m_edges; 00053 NodeContainer m_nodes; 00054 GNGNodeFactory * m_nodeFactory; 00055 }; 00056 00057 00058 #endif 00059