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) {