... | ... |
@@ -74,17 +74,17 @@ |
74 | 74 |
int arcNum() const { return _digraph->arcNum(); } |
75 | 75 |
|
76 | 76 |
typedef FindArcTagIndicator<Digraph> FindArcTag; |
77 |
Arc findArc(const Node& u, const Node& v, const Arc& prev = INVALID) { |
|
77 |
Arc findArc(const Node& u, const Node& v, const Arc& prev = INVALID) const { |
|
78 | 78 |
return _digraph->findArc(u, v, prev); |
79 | 79 |
} |
80 | 80 |
|
81 | 81 |
Node addNode() { return _digraph->addNode(); } |
82 | 82 |
Arc addArc(const Node& u, const Node& v) { return _digraph->addArc(u, v); } |
83 | 83 |
|
84 |
void erase(const Node& n) const { _digraph->erase(n); } |
|
85 |
void erase(const Arc& a) const { _digraph->erase(a); } |
|
86 |
|
|
87 |
void clear() const { _digraph->clear(); } |
|
84 |
void erase(const Node& n) { _digraph->erase(n); } |
|
85 |
void erase(const Arc& a) { _digraph->erase(a); } |
|
86 |
|
|
87 |
void clear() { _digraph->clear(); } |
|
88 | 88 |
|
89 | 89 |
int id(const Node& n) const { return _digraph->id(n); } |
90 | 90 |
int id(const Arc& a) const { return _digraph->id(a); } |
... | ... |
@@ -205,12 +205,14 @@ |
205 | 205 |
int edgeNum() const { return _graph->edgeNum(); } |
206 | 206 |
|
207 | 207 |
typedef FindArcTagIndicator<Graph> FindArcTag; |
208 |
Arc findArc(const Node& u, const Node& v, |
|
208 |
Arc findArc(const Node& u, const Node& v, |
|
209 |
const Arc& prev = INVALID) const { |
|
209 | 210 |
return _graph->findArc(u, v, prev); |
210 | 211 |
} |
211 | 212 |
|
212 | 213 |
typedef FindEdgeTagIndicator<Graph> FindEdgeTag; |
213 |
Edge findEdge(const Node& u, const Node& v, |
|
214 |
Edge findEdge(const Node& u, const Node& v, |
|
215 |
const Edge& prev = INVALID) const { |
|
214 | 216 |
return _graph->findEdge(u, v, prev); |
215 | 217 |
} |
216 | 218 |
|
... | ... |
@@ -336,7 +338,7 @@ |
336 | 338 |
|
337 | 339 |
typedef FindArcTagIndicator<Digraph> FindArcTag; |
338 | 340 |
Arc findArc(const Node& u, const Node& v, |
339 |
const Arc& prev = INVALID) { |
|
341 |
const Arc& prev = INVALID) const { |
|
340 | 342 |
return Parent::findArc(v, u, prev); |
341 | 343 |
} |
342 | 344 |
|
... | ... |
@@ -475,7 +477,7 @@ |
475 | 477 |
|
476 | 478 |
typedef FindArcTagIndicator<Digraph> FindArcTag; |
477 | 479 |
Arc findArc(const Node& source, const Node& target, |
478 |
const Arc& prev = INVALID) { |
|
480 |
const Arc& prev = INVALID) const { |
|
479 | 481 |
if (!(*_node_filter)[source] || !(*_node_filter)[target]) { |
480 | 482 |
return INVALID; |
481 | 483 |
} |
... | ... |
@@ -618,7 +620,7 @@ |
618 | 620 |
|
619 | 621 |
typedef FindArcTagIndicator<Digraph> FindArcTag; |
620 | 622 |
Arc findArc(const Node& source, const Node& target, |
621 |
const Arc& prev = INVALID) { |
|
623 |
const Arc& prev = INVALID) const { |
|
622 | 624 |
if (!(*_node_filter)[source] || !(*_node_filter)[target]) { |
623 | 625 |
return INVALID; |
624 | 626 |
} |
... | ... |
@@ -944,7 +946,7 @@ |
944 | 946 |
|
945 | 947 |
typedef FindArcTagIndicator<Graph> FindArcTag; |
946 | 948 |
Arc findArc(const Node& u, const Node& v, |
947 |
const Arc& prev = INVALID) { |
|
949 |
const Arc& prev = INVALID) const { |
|
948 | 950 |
if (!(*_node_filter_map)[u] || !(*_node_filter_map)[v]) { |
949 | 951 |
return INVALID; |
950 | 952 |
} |
... | ... |
@@ -957,7 +959,7 @@ |
957 | 959 |
|
958 | 960 |
typedef FindEdgeTagIndicator<Graph> FindEdgeTag; |
959 | 961 |
Edge findEdge(const Node& u, const Node& v, |
960 |
const Edge& prev = INVALID) { |
|
962 |
const Edge& prev = INVALID) const { |
|
961 | 963 |
if (!(*_node_filter_map)[u] || !(*_node_filter_map)[v]) { |
962 | 964 |
return INVALID; |
963 | 965 |
} |
... | ... |
@@ -1143,7 +1145,7 @@ |
1143 | 1145 |
|
1144 | 1146 |
typedef FindArcTagIndicator<Graph> FindArcTag; |
1145 | 1147 |
Arc findArc(const Node& u, const Node& v, |
1146 |
const Arc& prev = INVALID) { |
|
1148 |
const Arc& prev = INVALID) const { |
|
1147 | 1149 |
Arc arc = Parent::findArc(u, v, prev); |
1148 | 1150 |
while (arc != INVALID && !(*_edge_filter_map)[arc]) { |
1149 | 1151 |
arc = Parent::findArc(u, v, arc); |
... | ... |
@@ -1153,7 +1155,7 @@ |
1153 | 1155 |
|
1154 | 1156 |
typedef FindEdgeTagIndicator<Graph> FindEdgeTag; |
1155 | 1157 |
Edge findEdge(const Node& u, const Node& v, |
1156 |
const Edge& prev = INVALID) { |
|
1158 |
const Edge& prev = INVALID) const { |
|
1157 | 1159 |
Edge edge = Parent::findEdge(u, v, prev); |
1158 | 1160 |
while (edge != INVALID && !(*_edge_filter_map)[edge]) { |
1159 | 1161 |
edge = Parent::findEdge(u, v, edge); |
... | ... |
@@ -2243,7 +2245,7 @@ |
2243 | 2245 |
|
2244 | 2246 |
typedef FindEdgeTagIndicator<Graph> FindArcTag; |
2245 | 2247 |
Arc findArc(const Node& u, const Node& v, |
2246 |
const Arc& prev = INVALID) { |
|
2248 |
const Arc& prev = INVALID) const { |
|
2247 | 2249 |
Arc arc = prev; |
2248 | 2250 |
bool d = arc == INVALID ? true : (*_direction)[arc]; |
2249 | 2251 |
if (d) { |
... | ... |
@@ -3097,10 +3099,10 @@ |
3097 | 3099 |
/// "Digraph concept". The type can be specified to be const. |
3098 | 3100 |
template <typename _Digraph> |
3099 | 3101 |
class SplitNodes |
3100 |
: public DigraphAdaptorExtender<SplitNodesBase<_Digraph> > { |
|
3102 |
: public DigraphAdaptorExtender<SplitNodesBase<const _Digraph> > { |
|
3101 | 3103 |
public: |
3102 | 3104 |
typedef _Digraph Digraph; |
3103 |
typedef DigraphAdaptorExtender<SplitNodesBase<Digraph> > Parent; |
|
3105 |
typedef DigraphAdaptorExtender<SplitNodesBase<const Digraph> > Parent; |
|
3104 | 3106 |
|
3105 | 3107 |
typedef typename Digraph::Node DigraphNode; |
3106 | 3108 |
typedef typename Digraph::Arc DigraphArc; |
... | ... |
@@ -3111,7 +3113,7 @@ |
3111 | 3113 |
/// \brief Constructor of the adaptor. |
3112 | 3114 |
/// |
3113 | 3115 |
/// Constructor of the adaptor. |
3114 |
SplitNodes(Digraph& g) { |
|
3116 |
SplitNodes(const Digraph& g) { |
|
3115 | 3117 |
Parent::setDigraph(g); |
3116 | 3118 |
} |
3117 | 3119 |
|
0 comments (0 inline)