diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h index d1bf35fc630..53c7a1e9cfa 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/compute_normal.h @@ -509,6 +509,8 @@ compute_vertex_normal_most_visible_min_circle(typename boost::graph_traits incident_faces; incident_faces.reserve(8); for(face_descriptor f : CGAL::faces_around_target(halfedge(v, pmesh), pmesh)) @@ -516,9 +518,14 @@ compute_vertex_normal_most_visible_min_circle(typename boost::graph_traits::null_face()) continue; - if((! incident_faces.empty()) && (get(face_normals, incident_faces.back()) == get(face_normals, f)) ) - continue; + if(! incident_faces.empty()){ + if((get(face_normals, incident_faces.back()) == get(face_normals, f)) ) + continue; + auto aa = approximate_angle(get(face_normals, incident_faces.back()) ,get(face_normals, f)); + if(aa < bound) + continue; + } incident_faces.push_back(f); }