| ... | ... |
@@ -71,23 +71,23 @@ |
| 71 | 71 |
int nodeNum() const { return _digraph->nodeNum(); }
|
| 72 | 72 |
|
| 73 | 73 |
typedef ArcNumTagIndicator<Digraph> ArcNumTag; |
| 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); }
|
| 91 | 91 |
|
| 92 | 92 |
Node nodeFromId(int ix) const { return _digraph->nodeFromId(ix); }
|
| 93 | 93 |
Arc arcFromId(int ix) const { return _digraph->arcFromId(ix); }
|
| ... | ... |
@@ -202,18 +202,20 @@ |
| 202 | 202 |
int arcNum() const { return _graph->arcNum(); }
|
| 203 | 203 |
|
| 204 | 204 |
typedef EdgeNumTagIndicator<Graph> EdgeNumTag; |
| 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 |
|
| 217 | 219 |
Node addNode() { return _graph->addNode(); }
|
| 218 | 220 |
Edge addEdge(const Node& u, const Node& v) { return _graph->addEdge(u, v); }
|
| 219 | 221 |
|
| ... | ... |
@@ -333,13 +335,13 @@ |
| 333 | 335 |
Node target(const Arc& a) const { return Parent::source(a); }
|
| 334 | 336 |
|
| 335 | 337 |
Arc addArc(const Node& u, const Node& v) { return Parent::addArc(v, u); }
|
| 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 |
|
| 343 | 345 |
}; |
| 344 | 346 |
|
| 345 | 347 |
/// \ingroup graph_adaptors |
| ... | ... |
@@ -472,13 +474,13 @@ |
| 472 | 474 |
|
| 473 | 475 |
typedef False NodeNumTag; |
| 474 | 476 |
typedef False ArcNumTag; |
| 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 |
} |
| 482 | 484 |
Arc arc = Parent::findArc(source, target, prev); |
| 483 | 485 |
while (arc != INVALID && !(*_arc_filter)[arc]) {
|
| 484 | 486 |
arc = Parent::findArc(source, target, arc); |
| ... | ... |
@@ -615,13 +617,13 @@ |
| 615 | 617 |
|
| 616 | 618 |
typedef False NodeNumTag; |
| 617 | 619 |
typedef False ArcNumTag; |
| 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 |
} |
| 625 | 627 |
Arc arc = Parent::findArc(source, target, prev); |
| 626 | 628 |
while (arc != INVALID && !(*_arc_filter)[arc]) {
|
| 627 | 629 |
arc = Parent::findArc(source, target, arc); |
| ... | ... |
@@ -941,26 +943,26 @@ |
| 941 | 943 |
typedef False NodeNumTag; |
| 942 | 944 |
typedef False ArcNumTag; |
| 943 | 945 |
typedef False EdgeNumTag; |
| 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 |
} |
| 951 | 953 |
Arc arc = Parent::findArc(u, v, prev); |
| 952 | 954 |
while (arc != INVALID && !(*_edge_filter_map)[arc]) {
|
| 953 | 955 |
arc = Parent::findArc(u, v, arc); |
| 954 | 956 |
} |
| 955 | 957 |
return arc; |
| 956 | 958 |
} |
| 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 |
} |
| 964 | 966 |
Edge edge = Parent::findEdge(u, v, prev); |
| 965 | 967 |
while (edge != INVALID && !(*_edge_filter_map)[edge]) {
|
| 966 | 968 |
edge = Parent::findEdge(u, v, edge); |
| ... | ... |
@@ -1140,23 +1142,23 @@ |
| 1140 | 1142 |
typedef False NodeNumTag; |
| 1141 | 1143 |
typedef False ArcNumTag; |
| 1142 | 1144 |
typedef False EdgeNumTag; |
| 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); |
| 1150 | 1152 |
} |
| 1151 | 1153 |
return arc; |
| 1152 | 1154 |
} |
| 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); |
| 1160 | 1162 |
} |
| 1161 | 1163 |
return edge; |
| 1162 | 1164 |
} |
| ... | ... |
@@ -2240,13 +2242,13 @@ |
| 2240 | 2242 |
|
| 2241 | 2243 |
typedef EdgeNumTagIndicator<Graph> ArcNumTag; |
| 2242 | 2244 |
int arcNum() const { return _graph->edgeNum(); }
|
| 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) {
|
| 2250 | 2252 |
arc = _graph->findEdge(u, v, arc); |
| 2251 | 2253 |
while (arc != INVALID && !(*_direction)[arc]) {
|
| 2252 | 2254 |
_graph->findEdge(u, v, arc); |
| ... | ... |
@@ -3094,27 +3096,27 @@ |
| 3094 | 3096 |
/// bind arc in the adapted graph. |
| 3095 | 3097 |
/// |
| 3096 | 3098 |
/// \tparam _Digraph It must be conform to the \ref concepts::Digraph |
| 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; |
| 3107 | 3109 |
|
| 3108 | 3110 |
typedef typename Parent::Node Node; |
| 3109 | 3111 |
typedef typename Parent::Arc Arc; |
| 3110 | 3112 |
|
| 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 |
|
| 3118 | 3120 |
/// \brief Returns true when the node is in-node. |
| 3119 | 3121 |
/// |
| 3120 | 3122 |
/// Returns true when the node is in-node. |
0 comments (0 inline)