1.1 --- a/lemon/graph_adaptor.h Wed Mar 01 09:40:16 2006 +0000
1.2 +++ b/lemon/graph_adaptor.h Wed Mar 01 10:04:47 2006 +0000
1.3 @@ -1350,372 +1350,371 @@
1.4
1.5 };
1.6
1.7 - template <typename _Graph>
1.8 - class SplitGraphAdaptorBase
1.9 - : public GraphAdaptorBase<_Graph> {
1.10 - public:
1.11 - typedef GraphAdaptorBase<_Graph> Parent;
1.12 +// template <typename _Graph>
1.13 +// class SplitGraphAdaptorBase
1.14 +// : public GraphAdaptorBase<_Graph> {
1.15 +// public:
1.16 +// typedef GraphAdaptorBase<_Graph> Parent;
1.17
1.18 - class Node;
1.19 - class Edge;
1.20 - template <typename T> class NodeMap;
1.21 - template <typename T> class EdgeMap;
1.22 +// class Node;
1.23 +// class Edge;
1.24 +// template <typename T> class NodeMap;
1.25 +// template <typename T> class EdgeMap;
1.26
1.27
1.28 - class Node : public Parent::Node {
1.29 - friend class SplitGraphAdaptorBase;
1.30 - template <typename T> friend class NodeMap;
1.31 - typedef typename Parent::Node NodeParent;
1.32 - private:
1.33 +// class Node : public Parent::Node {
1.34 +// friend class SplitGraphAdaptorBase;
1.35 +// template <typename T> friend class NodeMap;
1.36 +// typedef typename Parent::Node NodeParent;
1.37 +// private:
1.38
1.39 - bool entry;
1.40 - Node(typename Parent::Node _node, bool _entry)
1.41 - : Parent::Node(_node), entry(_entry) {}
1.42 +// bool entry;
1.43 +// Node(typename Parent::Node _node, bool _entry)
1.44 +// : Parent::Node(_node), entry(_entry) {}
1.45
1.46 - public:
1.47 - Node() {}
1.48 - Node(Invalid) : NodeParent(INVALID), entry(true) {}
1.49 +// public:
1.50 +// Node() {}
1.51 +// Node(Invalid) : NodeParent(INVALID), entry(true) {}
1.52
1.53 - bool operator==(const Node& node) const {
1.54 - return NodeParent::operator==(node) && entry == node.entry;
1.55 - }
1.56 +// bool operator==(const Node& node) const {
1.57 +// return NodeParent::operator==(node) && entry == node.entry;
1.58 +// }
1.59
1.60 - bool operator!=(const Node& node) const {
1.61 - return !(*this == node);
1.62 - }
1.63 +// bool operator!=(const Node& node) const {
1.64 +// return !(*this == node);
1.65 +// }
1.66
1.67 - bool operator<(const Node& node) const {
1.68 - return NodeParent::operator<(node) ||
1.69 - (NodeParent::operator==(node) && entry < node.entry);
1.70 - }
1.71 - };
1.72 +// bool operator<(const Node& node) const {
1.73 +// return NodeParent::operator<(node) ||
1.74 +// (NodeParent::operator==(node) && entry < node.entry);
1.75 +// }
1.76 +// };
1.77
1.78 - /// \todo May we want VARIANT/union type
1.79 - class Edge : public Parent::Edge {
1.80 - friend class SplitGraphAdaptorBase;
1.81 - template <typename T> friend class EdgeMap;
1.82 - private:
1.83 - typedef typename Parent::Edge EdgeParent;
1.84 - typedef typename Parent::Node NodeParent;
1.85 - NodeParent bind;
1.86 +// /// \todo May we want VARIANT/union type
1.87 +// class Edge : public Parent::Edge {
1.88 +// friend class SplitGraphAdaptorBase;
1.89 +// template <typename T> friend class EdgeMap;
1.90 +// private:
1.91 +// typedef typename Parent::Edge EdgeParent;
1.92 +// typedef typename Parent::Node NodeParent;
1.93 +// NodeParent bind;
1.94
1.95 - Edge(const EdgeParent& edge, const NodeParent& node)
1.96 - : EdgeParent(edge), bind(node) {}
1.97 - public:
1.98 - Edge() {}
1.99 - Edge(Invalid) : EdgeParent(INVALID), bind(INVALID) {}
1.100 +// Edge(const EdgeParent& edge, const NodeParent& node)
1.101 +// : EdgeParent(edge), bind(node) {}
1.102 +// public:
1.103 +// Edge() {}
1.104 +// Edge(Invalid) : EdgeParent(INVALID), bind(INVALID) {}
1.105
1.106 - bool operator==(const Edge& edge) const {
1.107 - return EdgeParent::operator==(edge) && bind == edge.bind;
1.108 - }
1.109 +// bool operator==(const Edge& edge) const {
1.110 +// return EdgeParent::operator==(edge) && bind == edge.bind;
1.111 +// }
1.112
1.113 - bool operator!=(const Edge& edge) const {
1.114 - return !(*this == edge);
1.115 - }
1.116 +// bool operator!=(const Edge& edge) const {
1.117 +// return !(*this == edge);
1.118 +// }
1.119
1.120 - bool operator<(const Edge& edge) const {
1.121 - return EdgeParent::operator<(edge) ||
1.122 - (EdgeParent::operator==(edge) && bind < edge.bind);
1.123 - }
1.124 - };
1.125 +// bool operator<(const Edge& edge) const {
1.126 +// return EdgeParent::operator<(edge) ||
1.127 +// (EdgeParent::operator==(edge) && bind < edge.bind);
1.128 +// }
1.129 +// };
1.130
1.131 - void first(Node& node) const {
1.132 - Parent::first(node);
1.133 - node.entry = true;
1.134 - }
1.135 +// void first(Node& node) const {
1.136 +// Parent::first(node);
1.137 +// node.entry = true;
1.138 +// }
1.139
1.140 - void next(Node& node) const {
1.141 - if (node.entry) {
1.142 - node.entry = false;
1.143 - } else {
1.144 - node.entry = true;
1.145 - Parent::next(node);
1.146 - }
1.147 - }
1.148 +// void next(Node& node) const {
1.149 +// if (node.entry) {
1.150 +// node.entry = false;
1.151 +// } else {
1.152 +// node.entry = true;
1.153 +// Parent::next(node);
1.154 +// }
1.155 +// }
1.156
1.157 - void first(Edge& edge) const {
1.158 - Parent::first(edge);
1.159 - if ((typename Parent::Edge&)edge == INVALID) {
1.160 - Parent::first(edge.bind);
1.161 - } else {
1.162 - edge.bind = INVALID;
1.163 - }
1.164 - }
1.165 +// void first(Edge& edge) const {
1.166 +// Parent::first(edge);
1.167 +// if ((typename Parent::Edge&)edge == INVALID) {
1.168 +// Parent::first(edge.bind);
1.169 +// } else {
1.170 +// edge.bind = INVALID;
1.171 +// }
1.172 +// }
1.173
1.174 - void next(Edge& edge) const {
1.175 - if ((typename Parent::Edge&)edge != INVALID) {
1.176 - Parent::next(edge);
1.177 - if ((typename Parent::Edge&)edge == INVALID) {
1.178 - Parent::first(edge.bind);
1.179 - }
1.180 - } else {
1.181 - Parent::next(edge.bind);
1.182 - }
1.183 - }
1.184 +// void next(Edge& edge) const {
1.185 +// if ((typename Parent::Edge&)edge != INVALID) {
1.186 +// Parent::next(edge);
1.187 +// if ((typename Parent::Edge&)edge == INVALID) {
1.188 +// Parent::first(edge.bind);
1.189 +// }
1.190 +// } else {
1.191 +// Parent::next(edge.bind);
1.192 +// }
1.193 +// }
1.194
1.195 - void firstIn(Edge& edge, const Node& node) const {
1.196 - if (node.entry) {
1.197 - Parent::firstIn(edge, node);
1.198 - edge.bind = INVALID;
1.199 - } else {
1.200 - (typename Parent::Edge&)edge = INVALID;
1.201 - edge.bind = node;
1.202 - }
1.203 - }
1.204 +// void firstIn(Edge& edge, const Node& node) const {
1.205 +// if (node.entry) {
1.206 +// Parent::firstIn(edge, node);
1.207 +// edge.bind = INVALID;
1.208 +// } else {
1.209 +// (typename Parent::Edge&)edge = INVALID;
1.210 +// edge.bind = node;
1.211 +// }
1.212 +// }
1.213
1.214 - void nextIn(Edge& edge) const {
1.215 - if ((typename Parent::Edge&)edge != INVALID) {
1.216 - Parent::nextIn(edge);
1.217 - } else {
1.218 - edge.bind = INVALID;
1.219 - }
1.220 - }
1.221 +// void nextIn(Edge& edge) const {
1.222 +// if ((typename Parent::Edge&)edge != INVALID) {
1.223 +// Parent::nextIn(edge);
1.224 +// } else {
1.225 +// edge.bind = INVALID;
1.226 +// }
1.227 +// }
1.228
1.229 - void firstOut(Edge& edge, const Node& node) const {
1.230 - if (!node.entry) {
1.231 - Parent::firstOut(edge, node);
1.232 - edge.bind = INVALID;
1.233 - } else {
1.234 - (typename Parent::Edge&)edge = INVALID;
1.235 - edge.bind = node;
1.236 - }
1.237 - }
1.238 +// void firstOut(Edge& edge, const Node& node) const {
1.239 +// if (!node.entry) {
1.240 +// Parent::firstOut(edge, node);
1.241 +// edge.bind = INVALID;
1.242 +// } else {
1.243 +// (typename Parent::Edge&)edge = INVALID;
1.244 +// edge.bind = node;
1.245 +// }
1.246 +// }
1.247
1.248 - void nextOut(Edge& edge) const {
1.249 - if ((typename Parent::Edge&)edge != INVALID) {
1.250 - Parent::nextOut(edge);
1.251 - } else {
1.252 - edge.bind = INVALID;
1.253 - }
1.254 - }
1.255 +// void nextOut(Edge& edge) const {
1.256 +// if ((typename Parent::Edge&)edge != INVALID) {
1.257 +// Parent::nextOut(edge);
1.258 +// } else {
1.259 +// edge.bind = INVALID;
1.260 +// }
1.261 +// }
1.262
1.263 - Node source(const Edge& edge) const {
1.264 - if ((typename Parent::Edge&)edge != INVALID) {
1.265 - return Node(Parent::source(edge), false);
1.266 - } else {
1.267 - return Node(edge.bind, true);
1.268 - }
1.269 - }
1.270 +// Node source(const Edge& edge) const {
1.271 +// if ((typename Parent::Edge&)edge != INVALID) {
1.272 +// return Node(Parent::source(edge), false);
1.273 +// } else {
1.274 +// return Node(edge.bind, true);
1.275 +// }
1.276 +// }
1.277
1.278 - Node target(const Edge& edge) const {
1.279 - if ((typename Parent::Edge&)edge != INVALID) {
1.280 - return Node(Parent::target(edge), true);
1.281 - } else {
1.282 - return Node(edge.bind, false);
1.283 - }
1.284 - }
1.285 +// Node target(const Edge& edge) const {
1.286 +// if ((typename Parent::Edge&)edge != INVALID) {
1.287 +// return Node(Parent::target(edge), true);
1.288 +// } else {
1.289 +// return Node(edge.bind, false);
1.290 +// }
1.291 +// }
1.292
1.293 - static bool entryNode(const Node& node) {
1.294 - return node.entry;
1.295 - }
1.296 +// static bool entryNode(const Node& node) {
1.297 +// return node.entry;
1.298 +// }
1.299
1.300 - static bool exitNode(const Node& node) {
1.301 - return !node.entry;
1.302 - }
1.303 +// static bool exitNode(const Node& node) {
1.304 +// return !node.entry;
1.305 +// }
1.306
1.307 - static Node getEntry(const typename Parent::Node& node) {
1.308 - return Node(node, true);
1.309 - }
1.310 +// static Node getEntry(const typename Parent::Node& node) {
1.311 +// return Node(node, true);
1.312 +// }
1.313
1.314 - static Node getExit(const typename Parent::Node& node) {
1.315 - return Node(node, false);
1.316 - }
1.317 +// static Node getExit(const typename Parent::Node& node) {
1.318 +// return Node(node, false);
1.319 +// }
1.320
1.321 - static bool originalEdge(const Edge& edge) {
1.322 - return (typename Parent::Edge&)edge != INVALID;
1.323 - }
1.324 +// static bool originalEdge(const Edge& edge) {
1.325 +// return (typename Parent::Edge&)edge != INVALID;
1.326 +// }
1.327
1.328 - static bool bindingEdge(const Edge& edge) {
1.329 - return edge.bind != INVALID;
1.330 - }
1.331 +// static bool bindingEdge(const Edge& edge) {
1.332 +// return edge.bind != INVALID;
1.333 +// }
1.334
1.335 - static Node getBindedNode(const Edge& edge) {
1.336 - return edge.bind;
1.337 - }
1.338 +// static Node getBindedNode(const Edge& edge) {
1.339 +// return edge.bind;
1.340 +// }
1.341
1.342 - int nodeNum() const {
1.343 - return Parent::nodeNum() * 2;
1.344 - }
1.345 +// int nodeNum() const {
1.346 +// return Parent::nodeNum() * 2;
1.347 +// }
1.348
1.349 - typedef CompileTimeAnd<typename Parent::NodeNumTag,
1.350 - typename Parent::EdgeNumTag> EdgeNumTag;
1.351 +// typedef True EdgeNumTag;
1.352
1.353 - int edgeNum() const {
1.354 - return Parent::edgeNum() + Parent::nodeNum();
1.355 - }
1.356 +// int edgeNum() const {
1.357 +// return countEdges() + Parent::nodeNum();
1.358 +// }
1.359
1.360 - Edge findEdge(const Node& source, const Node& target,
1.361 - const Edge& prev = INVALID) const {
1.362 - if (exitNode(source) && entryNode(target)) {
1.363 - return Parent::findEdge(source, target, prev);
1.364 - } else {
1.365 - if (prev == INVALID && entryNode(source) && exitNode(target) &&
1.366 - (typename Parent::Node&)source == (typename Parent::Node&)target) {
1.367 - return Edge(INVALID, source);
1.368 - } else {
1.369 - return INVALID;
1.370 - }
1.371 - }
1.372 - }
1.373 +// Edge findEdge(const Node& source, const Node& target,
1.374 +// const Edge& prev = INVALID) const {
1.375 +// if (exitNode(source) && entryNode(target)) {
1.376 +// return Parent::findEdge(source, target, prev);
1.377 +// } else {
1.378 +// if (prev == INVALID && entryNode(source) && exitNode(target) &&
1.379 +// (typename Parent::Node&)source == (typename Parent::Node&)target) {
1.380 +// return Edge(INVALID, source);
1.381 +// } else {
1.382 +// return INVALID;
1.383 +// }
1.384 +// }
1.385 +// }
1.386
1.387 - template <typename T>
1.388 - class NodeMap : public MapBase<Node, T> {
1.389 - typedef typename Parent::template NodeMap<T> NodeImpl;
1.390 - public:
1.391 - NodeMap(const SplitGraphAdaptorBase& _graph)
1.392 - : entry(_graph), exit(_graph) {}
1.393 - NodeMap(const SplitGraphAdaptorBase& _graph, const T& t)
1.394 - : entry(_graph, t), exit(_graph, t) {}
1.395 +// template <typename T>
1.396 +// class NodeMap : public MapBase<Node, T> {
1.397 +// typedef typename Parent::template NodeMap<T> NodeImpl;
1.398 +// public:
1.399 +// NodeMap(const SplitGraphAdaptorBase& _graph)
1.400 +// : entry(_graph), exit(_graph) {}
1.401 +// NodeMap(const SplitGraphAdaptorBase& _graph, const T& t)
1.402 +// : entry(_graph, t), exit(_graph, t) {}
1.403
1.404 - void set(const Node& key, const T& val) {
1.405 - if (key.entry) { entry.set(key, val); }
1.406 - else {exit.set(key, val); }
1.407 - }
1.408 +// void set(const Node& key, const T& val) {
1.409 +// if (key.entry) { entry.set(key, val); }
1.410 +// else {exit.set(key, val); }
1.411 +// }
1.412
1.413 - typename MapTraits<NodeImpl>::ReturnValue
1.414 - operator[](const Node& key) {
1.415 - if (key.entry) { return entry[key]; }
1.416 - else { return exit[key]; }
1.417 - }
1.418 +// typename MapTraits<NodeImpl>::ReturnValue
1.419 +// operator[](const Node& key) {
1.420 +// if (key.entry) { return entry[key]; }
1.421 +// else { return exit[key]; }
1.422 +// }
1.423
1.424 - typename MapTraits<NodeImpl>::ConstReturnValue
1.425 - operator[](const Node& key) const {
1.426 - if (key.entry) { return entry[key]; }
1.427 - else { return exit[key]; }
1.428 - }
1.429 +// typename MapTraits<NodeImpl>::ConstReturnValue
1.430 +// operator[](const Node& key) const {
1.431 +// if (key.entry) { return entry[key]; }
1.432 +// else { return exit[key]; }
1.433 +// }
1.434
1.435 - private:
1.436 - NodeImpl entry, exit;
1.437 - };
1.438 +// private:
1.439 +// NodeImpl entry, exit;
1.440 +// };
1.441
1.442 - template <typename T>
1.443 - class EdgeMap : public MapBase<Edge, T> {
1.444 - typedef typename Parent::template NodeMap<T> NodeImpl;
1.445 - typedef typename Parent::template EdgeMap<T> EdgeImpl;
1.446 - public:
1.447 - EdgeMap(const SplitGraphAdaptorBase& _graph)
1.448 - : bind(_graph), orig(_graph) {}
1.449 - EdgeMap(const SplitGraphAdaptorBase& _graph, const T& t)
1.450 - : bind(_graph, t), orig(_graph, t) {}
1.451 +// template <typename T>
1.452 +// class EdgeMap : public MapBase<Edge, T> {
1.453 +// typedef typename Parent::template NodeMap<T> NodeImpl;
1.454 +// typedef typename Parent::template EdgeMap<T> EdgeImpl;
1.455 +// public:
1.456 +// EdgeMap(const SplitGraphAdaptorBase& _graph)
1.457 +// : bind(_graph), orig(_graph) {}
1.458 +// EdgeMap(const SplitGraphAdaptorBase& _graph, const T& t)
1.459 +// : bind(_graph, t), orig(_graph, t) {}
1.460
1.461 - void set(const Edge& key, const T& val) {
1.462 - if ((typename Parent::Edge&)key != INVALID) { orig.set(key, val); }
1.463 - else {bind.set(key.bind, val); }
1.464 - }
1.465 +// void set(const Edge& key, const T& val) {
1.466 +// if ((typename Parent::Edge&)key != INVALID) { orig.set(key, val); }
1.467 +// else {bind.set(key.bind, val); }
1.468 +// }
1.469
1.470 - typename MapTraits<EdgeImpl>::ReturnValue
1.471 - operator[](const Edge& key) {
1.472 - if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
1.473 - else {return bind[key.bind]; }
1.474 - }
1.475 +// typename MapTraits<EdgeImpl>::ReturnValue
1.476 +// operator[](const Edge& key) {
1.477 +// if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
1.478 +// else {return bind[key.bind]; }
1.479 +// }
1.480
1.481 - typename MapTraits<EdgeImpl>::ConstReturnValue
1.482 - operator[](const Edge& key) const {
1.483 - if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
1.484 - else {return bind[key.bind]; }
1.485 - }
1.486 +// typename MapTraits<EdgeImpl>::ConstReturnValue
1.487 +// operator[](const Edge& key) const {
1.488 +// if ((typename Parent::Edge&)key != INVALID) { return orig[key]; }
1.489 +// else {return bind[key.bind]; }
1.490 +// }
1.491
1.492 - private:
1.493 - typename Parent::template NodeMap<T> bind;
1.494 - typename Parent::template EdgeMap<T> orig;
1.495 - };
1.496 +// private:
1.497 +// typename Parent::template NodeMap<T> bind;
1.498 +// typename Parent::template EdgeMap<T> orig;
1.499 +// };
1.500
1.501 - template <typename EntryMap, typename ExitMap>
1.502 - class CombinedNodeMap : public MapBase<Node, typename EntryMap::Value> {
1.503 - public:
1.504 - typedef MapBase<Node, typename EntryMap::Value> Parent;
1.505 +// template <typename EntryMap, typename ExitMap>
1.506 +// class CombinedNodeMap : public MapBase<Node, typename EntryMap::Value> {
1.507 +// public:
1.508 +// typedef MapBase<Node, typename EntryMap::Value> Parent;
1.509
1.510 - typedef typename Parent::Key Key;
1.511 - typedef typename Parent::Value Value;
1.512 +// typedef typename Parent::Key Key;
1.513 +// typedef typename Parent::Value Value;
1.514
1.515 - CombinedNodeMap(EntryMap& _entryMap, ExitMap& _exitMap)
1.516 - : entryMap(_entryMap), exitMap(_exitMap) {}
1.517 +// CombinedNodeMap(EntryMap& _entryMap, ExitMap& _exitMap)
1.518 +// : entryMap(_entryMap), exitMap(_exitMap) {}
1.519
1.520 - Value& operator[](const Key& key) {
1.521 - if (key.entry) {
1.522 - return entryMap[key];
1.523 - } else {
1.524 - return exitMap[key];
1.525 - }
1.526 - }
1.527 +// Value& operator[](const Key& key) {
1.528 +// if (key.entry) {
1.529 +// return entryMap[key];
1.530 +// } else {
1.531 +// return exitMap[key];
1.532 +// }
1.533 +// }
1.534
1.535 - Value operator[](const Key& key) const {
1.536 - if (key.entry) {
1.537 - return entryMap[key];
1.538 - } else {
1.539 - return exitMap[key];
1.540 - }
1.541 - }
1.542 +// Value operator[](const Key& key) const {
1.543 +// if (key.entry) {
1.544 +// return entryMap[key];
1.545 +// } else {
1.546 +// return exitMap[key];
1.547 +// }
1.548 +// }
1.549
1.550 - void set(const Key& key, const Value& value) {
1.551 - if (key.entry) {
1.552 - entryMap.set(key, value);
1.553 - } else {
1.554 - exitMap.set(key, value);
1.555 - }
1.556 - }
1.557 +// void set(const Key& key, const Value& value) {
1.558 +// if (key.entry) {
1.559 +// entryMap.set(key, value);
1.560 +// } else {
1.561 +// exitMap.set(key, value);
1.562 +// }
1.563 +// }
1.564
1.565 - private:
1.566 +// private:
1.567
1.568 - EntryMap& entryMap;
1.569 - ExitMap& exitMap;
1.570 +// EntryMap& entryMap;
1.571 +// ExitMap& exitMap;
1.572
1.573 - };
1.574 +// };
1.575
1.576 - template <typename EdgeMap, typename NodeMap>
1.577 - class CombinedEdgeMap : public MapBase<Edge, typename EdgeMap::Value> {
1.578 - public:
1.579 - typedef MapBase<Edge, typename EdgeMap::Value> Parent;
1.580 +// template <typename EdgeMap, typename NodeMap>
1.581 +// class CombinedEdgeMap : public MapBase<Edge, typename EdgeMap::Value> {
1.582 +// public:
1.583 +// typedef MapBase<Edge, typename EdgeMap::Value> Parent;
1.584
1.585 - typedef typename Parent::Key Key;
1.586 - typedef typename Parent::Value Value;
1.587 +// typedef typename Parent::Key Key;
1.588 +// typedef typename Parent::Value Value;
1.589
1.590 - CombinedEdgeMap(EdgeMap& _edgeMap, NodeMap& _nodeMap)
1.591 - : edgeMap(_edgeMap), nodeMap(_nodeMap) {}
1.592 +// CombinedEdgeMap(EdgeMap& _edgeMap, NodeMap& _nodeMap)
1.593 +// : edgeMap(_edgeMap), nodeMap(_nodeMap) {}
1.594
1.595 - void set(const Edge& edge, const Value& val) {
1.596 - if (SplitGraphAdaptorBase::originalEdge(edge)) {
1.597 - edgeMap.set(edge, val);
1.598 - } else {
1.599 - nodeMap.set(SplitGraphAdaptorBase::bindedNode(edge), val);
1.600 - }
1.601 - }
1.602 +// void set(const Edge& edge, const Value& val) {
1.603 +// if (SplitGraphAdaptorBase::originalEdge(edge)) {
1.604 +// edgeMap.set(edge, val);
1.605 +// } else {
1.606 +// nodeMap.set(SplitGraphAdaptorBase::bindedNode(edge), val);
1.607 +// }
1.608 +// }
1.609
1.610 - Value operator[](const Key& edge) const {
1.611 - if (SplitGraphAdaptorBase::originalEdge(edge)) {
1.612 - return edgeMap[edge];
1.613 - } else {
1.614 - return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
1.615 - }
1.616 - }
1.617 +// Value operator[](const Key& edge) const {
1.618 +// if (SplitGraphAdaptorBase::originalEdge(edge)) {
1.619 +// return edgeMap[edge];
1.620 +// } else {
1.621 +// return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
1.622 +// }
1.623 +// }
1.624
1.625 - Value& operator[](const Key& edge) {
1.626 - if (SplitGraphAdaptorBase::originalEdge(edge)) {
1.627 - return edgeMap[edge];
1.628 - } else {
1.629 - return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
1.630 - }
1.631 - }
1.632 +// Value& operator[](const Key& edge) {
1.633 +// if (SplitGraphAdaptorBase::originalEdge(edge)) {
1.634 +// return edgeMap[edge];
1.635 +// } else {
1.636 +// return nodeMap[SplitGraphAdaptorBase::bindedNode(edge)];
1.637 +// }
1.638 +// }
1.639
1.640 - private:
1.641 - EdgeMap& edgeMap;
1.642 - NodeMap& nodeMap;
1.643 - };
1.644 +// private:
1.645 +// EdgeMap& edgeMap;
1.646 +// NodeMap& nodeMap;
1.647 +// };
1.648
1.649 - };
1.650 +// };
1.651
1.652 - template <typename _Graph>
1.653 - class SplitGraphAdaptor
1.654 - : public GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > {
1.655 - public:
1.656 - typedef GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > Parent;
1.657 +// template <typename _Graph>
1.658 +// class SplitGraphAdaptor
1.659 +// : public GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > {
1.660 +// public:
1.661 +// typedef GraphAdaptorExtender<SplitGraphAdaptorBase<_Graph> > Parent;
1.662
1.663 - SplitGraphAdaptor(_Graph& graph) {
1.664 - Parent::setGraph(graph);
1.665 - }
1.666 +// SplitGraphAdaptor(_Graph& graph) {
1.667 +// Parent::setGraph(graph);
1.668 +// }
1.669
1.670
1.671 - };
1.672 +// };
1.673
1.674 } //namespace lemon
1.675