87 _mesh->add_property(visited,
"Visited Property" );
90 typename MeshT::VertexIter v_it, v_end = _mesh->vertices_end();
91 for( v_it = _mesh->vertices_begin(); v_it != v_end; ++v_it )
92 _mesh->property( visited, *v_it ) =
false;
94 std::queue< typename MeshT::VertexHandle > queue;
97 while(!queue.empty()){
98 typename MeshT::VertexHandle vh = queue.front();
100 if (_mesh->property(visited, vh))
continue;
102 for (
typename MeshT::VertexOHalfedgeIter voh_it(*_mesh,vh); voh_it.is_valid(); ++voh_it){
104 if ( _mesh->is_boundary(*voh_it) ){
105 _mesh->remove_property(visited);
111 _mesh->property(visited, vh) =
true;
114 _mesh->remove_property(visited);
115 return typename MeshT::VertexHandle(-1);