diff --git a/BGL/include/CGAL/boost/graph/iterator.h b/BGL/include/CGAL/boost/graph/iterator.h index c52a3e50cf7..e8d1195318a 100644 --- a/BGL/include/CGAL/boost/graph/iterator.h +++ b/BGL/include/CGAL/boost/graph/iterator.h @@ -24,6 +24,7 @@ #include #include +#include #include #include diff --git a/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Filters.h b/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Filters.h index 520030accb8..1006efdd080 100644 --- a/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Filters.h +++ b/Surface_mesh_segmentation/include/CGAL/internal/Surface_mesh_segmentation/Filters.h @@ -163,7 +163,7 @@ public: for(boost::tie(facet_it,fend) = faces(mesh); facet_it != fend; ++facet_it) { std::map neighbors; - NeighborSelector()(*facet_it, window_size, + NeighborSelector()(mesh, *facet_it, window_size, neighbors); // gather neighbors in the window std::vector neighbor_values; @@ -188,7 +188,7 @@ public: std::vector::iterator smoothed_value_it = smoothed_values.begin(); for(boost::tie(facet_it,fend) = faces(mesh); facet_it != fend; ++facet_it) { - values[facet_it] = *smoothed_value_it; + values[*facet_it] = *smoothed_value_it; } } }; @@ -276,7 +276,7 @@ class Neighbor_selector_by_vertex { private: typedef ::CGAL::Halfedge_around_target_circulator Halfedge_around_target_circulator; - typedef typename boost::graph_traits::halfedge_iterator halfedge_iterator; + typedef typename boost::graph_traits::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits::vertex_iterator vertex_iterator; public: typedef typename boost::graph_traits::face_descriptor face_descriptor; @@ -304,13 +304,13 @@ public: const Facet_level_pair& pair = facet_queue.front(); face_descriptor facet_front = pair.first; - halfedge_iterator edge = halfedge(facet_front,polyhedron); + halfedge_descriptor edge = halfedge(facet_front,polyhedron); do { // loop on three vertices of the facet - Halfedge_around_target_circulator vertex_circulator(*edge,polyhedron), done(vertex_circulator); + Halfedge_around_target_circulator vertex_circulator(edge,polyhedron), done(vertex_circulator); do { // for each vertex loop on incoming edges (through those edges loop on neighbor facets which includes the vertex) if(!(face(*vertex_circulator,polyhedron) == boost::graph_traits::null_face())) { - Facet_level_pair new_pair(face(opposite(*vertex_circulator),polyhedron,polyhedron), + Facet_level_pair new_pair(face(opposite(*vertex_circulator,polyhedron),polyhedron), pair.second + 1); if(neighbors.insert(new_pair).second && new_pair.second < max_level) { // first insert new_pair to map