27class Blocker_iterator_internal :
public boost::iterator_facade<
28Blocker_iterator_internal<MapIteratorType, ReturnType>,
30boost::forward_traversal_tag,
34 MapIteratorType current_position;
35 MapIteratorType end_of_map;
38 Blocker_iterator_internal() : current_position() { }
40 Blocker_iterator_internal(MapIteratorType position, MapIteratorType end_of_map_) :
41 current_position(position), end_of_map(end_of_map_) { }
43 bool equal(
const Blocker_iterator_internal& other)
const {
44 return current_position == other.current_position;
51 ReturnType dereference()
const {
52 return (current_position->second);
61 void goto_next_blocker() {
64 }
while (!(current_position == end_of_map) && !first_time_blocker_is_seen());
67 bool first_time_blocker_is_seen()
const {
68 return current_position->first == current_position->second->first_vertex();
79class Blocker_iterator_around_vertex_internal :
public boost::iterator_facade<
80Blocker_iterator_around_vertex_internal<MapIteratorType, ReturnType>,
82boost::forward_traversal_tag,
86 MapIteratorType current_position_;
89 Blocker_iterator_around_vertex_internal() : current_position_() { }
91 Blocker_iterator_around_vertex_internal(MapIteratorType position) :
92 current_position_(position) { }
94 Blocker_iterator_around_vertex_internal& operator=(Blocker_iterator_around_vertex_internal other) {
95 this->current_position_ = other.current_position_;
99 bool equal(
const Blocker_iterator_around_vertex_internal& other)
const {
100 return current_position_ == other.current_position_;
107 ReturnType dereference()
const {
108 return (current_position_->second);
111 MapIteratorType current_position() {
112 return this->current_position_;