# HG changeset patch
# User Peter Kovacs <kpeter@inf.elte.hu>
# Date 1220387239 -7200
# Node ID c760d691fe3c47f3f57ee31f18f5aa5ae6fcf965
# Parent 914c5432be97842b7ed2c1c56052f4147f5155ad
Bug fix + doc improvement in UndirDigraphExtender (ticket #141)
diff -r 914c5432be97 -r c760d691fe3c lemon/bits/base_extender.h
a
|
b
|
|
59 | 59 | public: |
60 | 60 | Arc() {} |
61 | 61 | |
62 | | /// Invalid arc constructor |
| 62 | // Invalid arc constructor |
63 | 63 | Arc(Invalid i) : Edge(i), forward(true) {} |
64 | 64 | |
65 | 65 | bool operator==(const Arc &that) const { |
… |
… |
|
74 | 74 | } |
75 | 75 | }; |
76 | 76 | |
| 77 | /// First node of the edge |
| 78 | Node u(const Edge &e) const { |
| 79 | return Parent::source(e); |
| 80 | } |
77 | 81 | |
78 | | |
79 | | using Parent::source; |
80 | | |
81 | | /// Source of the given Arc. |
| 82 | /// Source of the given arc |
82 | 83 | Node source(const Arc &e) const { |
83 | 84 | return e.forward ? Parent::source(e) : Parent::target(e); |
84 | 85 | } |
85 | 86 | |
86 | | using Parent::target; |
| 87 | /// Second node of the edge |
| 88 | Node v(const Edge &e) const { |
| 89 | return Parent::target(e); |
| 90 | } |
87 | 91 | |
88 | | /// Target of the given Arc. |
| 92 | /// Target of the given arc |
89 | 93 | Node target(const Arc &e) const { |
90 | 94 | return e.forward ? Parent::target(e) : Parent::source(e); |
91 | 95 | } |
92 | 96 | |
93 | 97 | /// \brief Directed arc from an edge. |
94 | 98 | /// |
95 | | /// Returns a directed arc corresponding to the specified Edge. |
96 | | /// If the given bool is true the given edge and the |
97 | | /// returned arc have the same source node. |
98 | | static Arc direct(const Edge &ue, bool d) { |
99 | | return Arc(ue, d); |
| 99 | /// Returns a directed arc corresponding to the specified edge. |
| 100 | /// If the given bool is true, the first node of the given edge and |
| 101 | /// the source node of the returned arc are the same. |
| 102 | static Arc direct(const Edge &e, bool d) { |
| 103 | return Arc(e, d); |
100 | 104 | } |
101 | 105 | |
102 | | /// Returns whether the given directed arc is same orientation as the |
103 | | /// corresponding edge. |
| 106 | /// Returns whether the given directed arc has the same orientation |
| 107 | /// as the corresponding edge. |
104 | 108 | /// |
105 | 109 | /// \todo reference to the corresponding point of the undirected digraph |
106 | 110 | /// concept. "What does the direction of an edge mean?" |
107 | | static bool direction(const Arc &e) { return e.forward; } |
108 | | |
| 111 | static bool direction(const Arc &a) { return a.forward; } |
109 | 112 | |
110 | 113 | using Parent::first; |
111 | 114 | using Parent::next; |
… |
… |
|
228 | 231 | int maxEdgeId() const { |
229 | 232 | return Parent::maxArcId(); |
230 | 233 | } |
231 | | |
232 | 234 | |
233 | 235 | int arcNum() const { |
234 | 236 | return 2 * Parent::arcNum(); |