376 public: |
376 public: |
377 NodeIt() { } |
377 NodeIt() { } |
378 // NodeIt(const NodeIt& n) : Node(n), gw(n.gw) { } |
378 // NodeIt(const NodeIt& n) : Node(n), gw(n.gw) { } |
379 NodeIt(Invalid i) : Node(i) { } |
379 NodeIt(Invalid i) : Node(i) { } |
380 NodeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw) : |
380 NodeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw) : |
381 Node(typename Graph::NodeIt(*(_gw.graph))), gw(&_gw) { } |
381 Node(typename Graph::NodeIt(*(_gw.graph))), gw(&_gw) { |
|
382 while (*static_cast<Node*>(this)!=INVALID && |
|
383 !(*(gw->edge_filter_map))[*this]) |
|
384 *(static_cast<Node*>(this))= |
|
385 ++(typename Graph::NodeIt(*(gw->graph), *this)); |
|
386 } |
382 NodeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
387 NodeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
383 const Node& n) : |
388 const Node& n) : |
384 Node(n), gw(&_gw) { } |
389 Node(n), gw(&_gw) { } |
385 NodeIt& operator++() { |
390 NodeIt& operator++() { |
386 *(static_cast<Node*>(this))= |
391 *(static_cast<Node*>(this))= |
399 public: |
404 public: |
400 OutEdgeIt() { } |
405 OutEdgeIt() { } |
401 // OutEdgeIt(const OutEdgeIt& e) : Edge(e), gw(e.gw) { } |
406 // OutEdgeIt(const OutEdgeIt& e) : Edge(e), gw(e.gw) { } |
402 OutEdgeIt(Invalid i) : Edge(i) { } |
407 OutEdgeIt(Invalid i) : Edge(i) { } |
403 OutEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, const Node& n) : |
408 OutEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, const Node& n) : |
404 Edge(typename Graph::OutEdgeIt(*(_gw.graph), n)), gw(&_gw) { } |
409 Edge(typename Graph::OutEdgeIt(*(_gw.graph), n)), gw(&_gw) { |
|
410 while (*static_cast<Edge*>(this)!=INVALID && |
|
411 !(*(gw->edge_filter_map))[*this]) |
|
412 *(static_cast<Edge*>(this))= |
|
413 ++(typename Graph::OutEdgeIt(*(gw->graph), *this)); |
|
414 } |
405 OutEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
415 OutEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
406 const Edge& e) : |
416 const Edge& e) : |
407 Edge(e), gw(&_gw) { } |
417 Edge(e), gw(&_gw) { } |
408 OutEdgeIt& operator++() { |
418 OutEdgeIt& operator++() { |
409 *(static_cast<Edge*>(this))= |
419 *(static_cast<Edge*>(this))= |
421 public: |
431 public: |
422 InEdgeIt() { } |
432 InEdgeIt() { } |
423 // InEdgeIt(const InEdgeIt& e) : Edge(e), gw(e.gw) { } |
433 // InEdgeIt(const InEdgeIt& e) : Edge(e), gw(e.gw) { } |
424 InEdgeIt(Invalid i) : Edge(i) { } |
434 InEdgeIt(Invalid i) : Edge(i) { } |
425 InEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, const Node& n) : |
435 InEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, const Node& n) : |
426 Edge(typename Graph::InEdgeIt(*(_gw.graph), n)), gw(&_gw) { } |
436 Edge(typename Graph::InEdgeIt(*(_gw.graph), n)), gw(&_gw) { |
|
437 while (*static_cast<Edge*>(this)!=INVALID && |
|
438 !(*(gw->edge_filter_map))[*this]) |
|
439 *(static_cast<Edge*>(this))= |
|
440 ++(typename Graph::InEdgeIt(*(gw->graph), *this)); |
|
441 } |
427 InEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
442 InEdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
428 const Edge& e) : |
443 const Edge& e) : |
429 Edge(e), gw(&_gw) { } |
444 Edge(e), gw(&_gw) { } |
430 InEdgeIt& operator++() { |
445 InEdgeIt& operator++() { |
431 *(static_cast<Edge*>(this))= |
446 *(static_cast<Edge*>(this))= |
443 public: |
458 public: |
444 EdgeIt() { } |
459 EdgeIt() { } |
445 // EdgeIt(const EdgeIt& e) : Edge(e), gw(e.gw) { } |
460 // EdgeIt(const EdgeIt& e) : Edge(e), gw(e.gw) { } |
446 EdgeIt(Invalid i) : Edge(i) { } |
461 EdgeIt(Invalid i) : Edge(i) { } |
447 EdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw) : |
462 EdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw) : |
448 Edge(typename Graph::EdgeIt(*(_gw.graph))), gw(&_gw) { } |
463 Edge(typename Graph::EdgeIt(*(_gw.graph))), gw(&_gw) { |
|
464 while (*static_cast<Edge*>(this)!=INVALID && |
|
465 !(*(gw->edge_filter_map))[*this]) |
|
466 *(static_cast<Edge*>(this))= |
|
467 ++(typename Graph::EdgeIt(*(gw->graph), *this)); |
|
468 } |
449 EdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
469 EdgeIt(const SubGraphWrapper<Graph, NodeFilterMap, EdgeFilterMap>& _gw, |
450 const Edge& e) : |
470 const Edge& e) : |
451 Edge(e), gw(&_gw) { } |
471 Edge(e), gw(&_gw) { } |
452 EdgeIt& operator++() { |
472 EdgeIt& operator++() { |
453 *(static_cast<Edge*>(this))= |
473 *(static_cast<Edge*>(this))= |