lemon/bits/edge_set_extender.h
changeset 1131 4add05447ca0
parent 1092 dceba191c00d
     1.1 --- a/lemon/bits/edge_set_extender.h	Sun Jan 05 22:24:56 2014 +0100
     1.2 +++ b/lemon/bits/edge_set_extender.h	Tue Apr 14 08:39:40 2015 +0200
     1.3 @@ -113,6 +113,9 @@
     1.4  
     1.5      };
     1.6  
     1.7 +    LemonRangeWrapper1<NodeIt, Digraph> nodes() const {
     1.8 +      return LemonRangeWrapper1<NodeIt, Digraph>(*this);
     1.9 +    }
    1.10  
    1.11      class ArcIt : public Arc {
    1.12        const Digraph* digraph;
    1.13 @@ -136,6 +139,9 @@
    1.14  
    1.15      };
    1.16  
    1.17 +    LemonRangeWrapper1<ArcIt, Digraph> arcs() const {
    1.18 +      return LemonRangeWrapper1<ArcIt, Digraph>(*this);
    1.19 +    }
    1.20  
    1.21      class OutArcIt : public Arc {
    1.22        const Digraph* digraph;
    1.23 @@ -160,6 +166,9 @@
    1.24  
    1.25      };
    1.26  
    1.27 +    LemonRangeWrapper2<OutArcIt, Digraph, Node> outArcs(const Node& u) const {
    1.28 +      return LemonRangeWrapper2<OutArcIt, Digraph, Node>(*this, u);
    1.29 +    }
    1.30  
    1.31      class InArcIt : public Arc {
    1.32        const Digraph* digraph;
    1.33 @@ -184,6 +193,10 @@
    1.34  
    1.35      };
    1.36  
    1.37 +    LemonRangeWrapper2<InArcIt, Digraph, Node> inArcs(const Node& u) const {
    1.38 +      return LemonRangeWrapper2<InArcIt, Digraph, Node>(*this, u);
    1.39 +    }
    1.40 +
    1.41      // \brief Base node of the iterator
    1.42      //
    1.43      // Returns the base node (ie. the source in this case) of the iterator
    1.44 @@ -372,6 +385,9 @@
    1.45  
    1.46      };
    1.47  
    1.48 +    LemonRangeWrapper1<NodeIt, Graph> nodes() const {
    1.49 +      return LemonRangeWrapper1<NodeIt, Graph>(*this);
    1.50 +    }
    1.51  
    1.52      class ArcIt : public Arc {
    1.53        const Graph* graph;
    1.54 @@ -395,6 +411,9 @@
    1.55  
    1.56      };
    1.57  
    1.58 +    LemonRangeWrapper1<ArcIt, Graph> arcs() const {
    1.59 +      return LemonRangeWrapper1<ArcIt, Graph>(*this);
    1.60 +    }
    1.61  
    1.62      class OutArcIt : public Arc {
    1.63        const Graph* graph;
    1.64 @@ -419,6 +438,9 @@
    1.65  
    1.66      };
    1.67  
    1.68 +    LemonRangeWrapper2<OutArcIt, Graph, Node> outArcs(const Node& u) const {
    1.69 +      return LemonRangeWrapper2<OutArcIt, Graph, Node>(*this, u);
    1.70 +    }
    1.71  
    1.72      class InArcIt : public Arc {
    1.73        const Graph* graph;
    1.74 @@ -443,6 +465,9 @@
    1.75  
    1.76      };
    1.77  
    1.78 +    LemonRangeWrapper2<InArcIt, Graph, Node> inArcs(const Node& u) const {
    1.79 +      return LemonRangeWrapper2<InArcIt, Graph, Node>(*this, u);
    1.80 +    }
    1.81  
    1.82      class EdgeIt : public Parent::Edge {
    1.83        const Graph* graph;
    1.84 @@ -466,6 +491,10 @@
    1.85  
    1.86      };
    1.87  
    1.88 +    LemonRangeWrapper1<EdgeIt, Graph> edges() const {
    1.89 +      return LemonRangeWrapper1<EdgeIt, Graph>(*this);
    1.90 +    }
    1.91 +
    1.92      class IncEdgeIt : public Parent::Edge {
    1.93        friend class EdgeSetExtender;
    1.94        const Graph* graph;
    1.95 @@ -491,6 +520,10 @@
    1.96        }
    1.97      };
    1.98  
    1.99 +    LemonRangeWrapper2<IncEdgeIt, Graph, Node> incEdges(const Node& u) const {
   1.100 +      return LemonRangeWrapper2<IncEdgeIt, Graph, Node>(*this, u);
   1.101 +    }
   1.102 +
   1.103      // \brief Base node of the iterator
   1.104      //
   1.105      // Returns the base node (ie. the source in this case) of the iterator