# HG changeset patch
# User Balazs Dezso <deba@inf.elte.hu>
# Date 1215698603 -7200
# Node ID e3aba2c72be4499ade5628680b74f8f5c1ad802d
# Parent e80e08222fdf7808460dffd57a003b595d0098da
Bug fix in GraphCopy (ticket #117)
diff -r e80e08222fdf -r e3aba2c72be4 lemon/graph_utils.h
a
|
b
|
|
602 | 602 | } |
603 | 603 | for (typename From::ArcIt it(from); it != INVALID; ++it) { |
604 | 604 | arcRefMap[it] = to.addArc(nodeRefMap[from.source(it)], |
605 | | nodeRefMap[from.target(it)]); |
| 605 | nodeRefMap[from.target(it)]); |
606 | 606 | } |
607 | 607 | } |
608 | 608 | }; |
… |
… |
|
628 | 628 | nodeRefMap[it] = to.addNode(); |
629 | 629 | } |
630 | 630 | for (typename From::EdgeIt it(from); it != INVALID; ++it) { |
631 | | edgeRefMap[it] = to.addArc(nodeRefMap[from.source(it)], |
632 | | nodeRefMap[from.target(it)]); |
| 631 | edgeRefMap[it] = to.addEdge(nodeRefMap[from.u(it)], |
| 632 | nodeRefMap[from.v(it)]); |
633 | 633 | } |
634 | 634 | } |
635 | 635 | }; |
… |
… |
|
925 | 925 | typedef typename To::Arc Value; |
926 | 926 | |
927 | 927 | Value operator[](const Key& key) const { |
928 | | bool forward = |
929 | | (_from.direction(key) == |
930 | | (_node_ref[_from.source(key)] == _to.source(_edge_ref[key]))); |
| 928 | bool forward = _from.u(key) != _from.v(key) ? |
| 929 | _node_ref[_from.source(key)] == |
| 930 | _to.source(_to.direct(_edge_ref[key], true)) : |
| 931 | _from.direction(key); |
931 | 932 | return _to.direct(_edge_ref[key], forward); |
932 | 933 | } |
933 | 934 | |