diff -r a2dfee683243 -r 8abf74160dc4 lemon/bits/erasable_graph_extender.h --- a/lemon/bits/erasable_graph_extender.h Wed Nov 30 17:49:01 2005 +0000 +++ b/lemon/bits/erasable_graph_extender.h Thu Dec 01 15:08:46 2005 +0000 @@ -46,6 +46,22 @@ }; template + class ErasableEdgeSetExtender : public _Base { + public: + + typedef ErasableEdgeSetExtender Graph; + typedef _Base Parent; + + typedef typename Parent::Edge Edge; + + void erase(const Edge& edge) { + Parent::getNotifier(Edge()).erase(edge); + Parent::erase(edge); + } + + }; + + template class ErasableUndirGraphExtender : public _Base { public: @@ -79,6 +95,28 @@ }; + template + class ErasableUndirEdgeSetExtender : public _Base { + public: + + typedef ErasableUndirEdgeSetExtender Graph; + typedef _Base Parent; + + typedef typename Parent::Node Node; + typedef typename Parent::UndirEdge UndirEdge; + typedef typename Parent::Edge Edge; + + void erase(const UndirEdge& uedge) { + std::vector edges; + edges.push_back(Parent::direct(uedge,true)); + edges.push_back(Parent::direct(uedge,false)); + Parent::getNotifier(Edge()).erase(edges); + Parent::getNotifier(UndirEdge()).erase(uedge); + Parent::erase(uedge); + } + + }; + } #endif