lemon/bits/edge_set_extender.h
changeset 617 4137ef9aacc6
parent 559 c5fd2d996909
child 685 a27356ceb5bd
child 886 ece1f8a3052d
     1.1 --- a/lemon/bits/edge_set_extender.h	Fri Apr 24 10:15:33 2009 +0200
     1.2 +++ b/lemon/bits/edge_set_extender.h	Fri Apr 24 11:54:48 2009 +0200
     1.3 @@ -34,9 +34,10 @@
     1.4    // \brief Extender for the ArcSets
     1.5    template <typename Base>
     1.6    class ArcSetExtender : public Base {
     1.7 +    typedef Base Parent;
     1.8 +
     1.9    public:
    1.10  
    1.11 -    typedef Base Parent;
    1.12      typedef ArcSetExtender Digraph;
    1.13  
    1.14      // Base extensions
    1.15 @@ -218,10 +219,9 @@
    1.16      template <typename _Value>
    1.17      class ArcMap 
    1.18        : public MapExtender<DefaultMap<Digraph, Arc, _Value> > {
    1.19 -    public:
    1.20 -      typedef ArcSetExtender Digraph;
    1.21        typedef MapExtender<DefaultMap<Digraph, Arc, _Value> > Parent;
    1.22  
    1.23 +    public:
    1.24        explicit ArcMap(const Digraph& _g) 
    1.25  	: Parent(_g) {}
    1.26        ArcMap(const Digraph& _g, const _Value& _v) 
    1.27 @@ -274,17 +274,16 @@
    1.28    // \brief Extender for the EdgeSets
    1.29    template <typename Base>
    1.30    class EdgeSetExtender : public Base {
    1.31 +    typedef Base Parent;
    1.32  
    1.33    public:
    1.34  
    1.35 -    typedef Base Parent;
    1.36 -    typedef EdgeSetExtender Digraph;
    1.37 +    typedef EdgeSetExtender Graph;
    1.38  
    1.39      typedef typename Parent::Node Node;
    1.40      typedef typename Parent::Arc Arc;
    1.41      typedef typename Parent::Edge Edge;
    1.42  
    1.43 -
    1.44      int maxId(Node) const {
    1.45        return Parent::maxNodeId();
    1.46      }
    1.47 @@ -350,22 +349,22 @@
    1.48  
    1.49  
    1.50      class NodeIt : public Node { 
    1.51 -      const Digraph* digraph;
    1.52 +      const Graph* graph;
    1.53      public:
    1.54  
    1.55        NodeIt() {}
    1.56  
    1.57        NodeIt(Invalid i) : Node(i) { }
    1.58  
    1.59 -      explicit NodeIt(const Digraph& _graph) : digraph(&_graph) {
    1.60 +      explicit NodeIt(const Graph& _graph) : graph(&_graph) {
    1.61  	_graph.first(static_cast<Node&>(*this));
    1.62        }
    1.63  
    1.64 -      NodeIt(const Digraph& _graph, const Node& node) 
    1.65 -	: Node(node), digraph(&_graph) {}
    1.66 +      NodeIt(const Graph& _graph, const Node& node) 
    1.67 +	: Node(node), graph(&_graph) {}
    1.68  
    1.69        NodeIt& operator++() { 
    1.70 -	digraph->next(*this);
    1.71 +	graph->next(*this);
    1.72  	return *this; 
    1.73        }
    1.74  
    1.75 @@ -373,22 +372,22 @@
    1.76  
    1.77  
    1.78      class ArcIt : public Arc { 
    1.79 -      const Digraph* digraph;
    1.80 +      const Graph* graph;
    1.81      public:
    1.82  
    1.83        ArcIt() { }
    1.84  
    1.85        ArcIt(Invalid i) : Arc(i) { }
    1.86  
    1.87 -      explicit ArcIt(const Digraph& _graph) : digraph(&_graph) {
    1.88 +      explicit ArcIt(const Graph& _graph) : graph(&_graph) {
    1.89  	_graph.first(static_cast<Arc&>(*this));
    1.90        }
    1.91  
    1.92 -      ArcIt(const Digraph& _graph, const Arc& e) : 
    1.93 -	Arc(e), digraph(&_graph) { }
    1.94 +      ArcIt(const Graph& _graph, const Arc& e) : 
    1.95 +	Arc(e), graph(&_graph) { }
    1.96  
    1.97        ArcIt& operator++() { 
    1.98 -	digraph->next(*this);
    1.99 +	graph->next(*this);
   1.100  	return *this; 
   1.101        }
   1.102  
   1.103 @@ -396,23 +395,23 @@
   1.104  
   1.105  
   1.106      class OutArcIt : public Arc { 
   1.107 -      const Digraph* digraph;
   1.108 +      const Graph* graph;
   1.109      public:
   1.110  
   1.111        OutArcIt() { }
   1.112  
   1.113        OutArcIt(Invalid i) : Arc(i) { }
   1.114  
   1.115 -      OutArcIt(const Digraph& _graph, const Node& node) 
   1.116 -	: digraph(&_graph) {
   1.117 +      OutArcIt(const Graph& _graph, const Node& node) 
   1.118 +	: graph(&_graph) {
   1.119  	_graph.firstOut(*this, node);
   1.120        }
   1.121  
   1.122 -      OutArcIt(const Digraph& _graph, const Arc& arc) 
   1.123 -	: Arc(arc), digraph(&_graph) {}
   1.124 +      OutArcIt(const Graph& _graph, const Arc& arc) 
   1.125 +	: Arc(arc), graph(&_graph) {}
   1.126  
   1.127        OutArcIt& operator++() { 
   1.128 -	digraph->nextOut(*this);
   1.129 +	graph->nextOut(*this);
   1.130  	return *this; 
   1.131        }
   1.132  
   1.133 @@ -420,23 +419,23 @@
   1.134  
   1.135  
   1.136      class InArcIt : public Arc { 
   1.137 -      const Digraph* digraph;
   1.138 +      const Graph* graph;
   1.139      public:
   1.140  
   1.141        InArcIt() { }
   1.142  
   1.143        InArcIt(Invalid i) : Arc(i) { }
   1.144  
   1.145 -      InArcIt(const Digraph& _graph, const Node& node) 
   1.146 -	: digraph(&_graph) {
   1.147 +      InArcIt(const Graph& _graph, const Node& node) 
   1.148 +	: graph(&_graph) {
   1.149  	_graph.firstIn(*this, node);
   1.150        }
   1.151  
   1.152 -      InArcIt(const Digraph& _graph, const Arc& arc) : 
   1.153 -	Arc(arc), digraph(&_graph) {}
   1.154 +      InArcIt(const Graph& _graph, const Arc& arc) : 
   1.155 +	Arc(arc), graph(&_graph) {}
   1.156  
   1.157        InArcIt& operator++() { 
   1.158 -	digraph->nextIn(*this);
   1.159 +	graph->nextIn(*this);
   1.160  	return *this; 
   1.161        }
   1.162  
   1.163 @@ -444,22 +443,22 @@
   1.164  
   1.165  
   1.166      class EdgeIt : public Parent::Edge { 
   1.167 -      const Digraph* digraph;
   1.168 +      const Graph* graph;
   1.169      public:
   1.170  
   1.171        EdgeIt() { }
   1.172  
   1.173        EdgeIt(Invalid i) : Edge(i) { }
   1.174  
   1.175 -      explicit EdgeIt(const Digraph& _graph) : digraph(&_graph) {
   1.176 +      explicit EdgeIt(const Graph& _graph) : graph(&_graph) {
   1.177  	_graph.first(static_cast<Edge&>(*this));
   1.178        }
   1.179  
   1.180 -      EdgeIt(const Digraph& _graph, const Edge& e) : 
   1.181 -	Edge(e), digraph(&_graph) { }
   1.182 +      EdgeIt(const Graph& _graph, const Edge& e) : 
   1.183 +	Edge(e), graph(&_graph) { }
   1.184  
   1.185        EdgeIt& operator++() { 
   1.186 -	digraph->next(*this);
   1.187 +	graph->next(*this);
   1.188  	return *this; 
   1.189        }
   1.190  
   1.191 @@ -467,7 +466,7 @@
   1.192  
   1.193      class IncEdgeIt : public Parent::Edge {
   1.194        friend class EdgeSetExtender;
   1.195 -      const Digraph* digraph;
   1.196 +      const Graph* graph;
   1.197        bool direction;
   1.198      public:
   1.199  
   1.200 @@ -475,17 +474,17 @@
   1.201  
   1.202        IncEdgeIt(Invalid i) : Edge(i), direction(false) { }
   1.203  
   1.204 -      IncEdgeIt(const Digraph& _graph, const Node &n) : digraph(&_graph) {
   1.205 +      IncEdgeIt(const Graph& _graph, const Node &n) : graph(&_graph) {
   1.206  	_graph.firstInc(*this, direction, n);
   1.207        }
   1.208  
   1.209 -      IncEdgeIt(const Digraph& _graph, const Edge &ue, const Node &n)
   1.210 -	: digraph(&_graph), Edge(ue) {
   1.211 +      IncEdgeIt(const Graph& _graph, const Edge &ue, const Node &n)
   1.212 +	: graph(&_graph), Edge(ue) {
   1.213  	direction = (_graph.source(ue) == n);
   1.214        }
   1.215  
   1.216        IncEdgeIt& operator++() {
   1.217 -	digraph->nextInc(*this, direction);
   1.218 +	graph->nextInc(*this, direction);
   1.219  	return *this; 
   1.220        }
   1.221      };
   1.222 @@ -534,14 +533,13 @@
   1.223  
   1.224      template <typename _Value>
   1.225      class ArcMap 
   1.226 -      : public MapExtender<DefaultMap<Digraph, Arc, _Value> > {
   1.227 +      : public MapExtender<DefaultMap<Graph, Arc, _Value> > {
   1.228 +      typedef MapExtender<DefaultMap<Graph, Arc, _Value> > Parent;
   1.229 +
   1.230      public:
   1.231 -      typedef EdgeSetExtender Digraph;
   1.232 -      typedef MapExtender<DefaultMap<Digraph, Arc, _Value> > Parent;
   1.233 -
   1.234 -      ArcMap(const Digraph& _g) 
   1.235 +      ArcMap(const Graph& _g) 
   1.236  	: Parent(_g) {}
   1.237 -      ArcMap(const Digraph& _g, const _Value& _v) 
   1.238 +      ArcMap(const Graph& _g, const _Value& _v) 
   1.239  	: Parent(_g, _v) {}
   1.240  
   1.241        ArcMap& operator=(const ArcMap& cmap) {
   1.242 @@ -559,15 +557,14 @@
   1.243  
   1.244      template <typename _Value>
   1.245      class EdgeMap 
   1.246 -      : public MapExtender<DefaultMap<Digraph, Edge, _Value> > {
   1.247 +      : public MapExtender<DefaultMap<Graph, Edge, _Value> > {
   1.248 +      typedef MapExtender<DefaultMap<Graph, Edge, _Value> > Parent;
   1.249 +
   1.250      public:
   1.251 -      typedef EdgeSetExtender Digraph;
   1.252 -      typedef MapExtender<DefaultMap<Digraph, Edge, _Value> > Parent;
   1.253 -
   1.254 -      EdgeMap(const Digraph& _g) 
   1.255 +      EdgeMap(const Graph& _g) 
   1.256  	: Parent(_g) {}
   1.257  
   1.258 -      EdgeMap(const Digraph& _g, const _Value& _v) 
   1.259 +      EdgeMap(const Graph& _g, const _Value& _v) 
   1.260  	: Parent(_g, _v) {}
   1.261  
   1.262        EdgeMap& operator=(const EdgeMap& cmap) {