diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h index 024275b8750..d5f75137eb2 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h @@ -118,43 +118,21 @@ bool simplify_polygon(PointRange& points, { const std::size_t ini_polygon_size = polygon.size(); - // Start at the last since if two points are identical, the second one gets removed. - // By starting at 'last', we ensure that 'to_remove' is ordered from closest to .begin() - // to closest to .end() - std::size_t last = ini_polygon_size - 1, i = last; - bool stop = false; - std::vector to_remove; - - do + for(std::size_t i=0; i(points, polygons); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; assert(res == 0 && polygons.back().size() == 3); // ------ @@ -305,6 +315,7 @@ void test_simplify_polygons(const bool /*verbose*/ = false) polygons.push_back(polygon); res = PMP::internal::simplify_polygons_in_polygon_soup(points, polygons, K()); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; assert(res == 1 && polygons.back().size() == 1); // ------ @@ -313,6 +324,7 @@ void test_simplify_polygons(const bool /*verbose*/ = false) polygons.push_back(polygon); res = PMP::internal::simplify_polygons_in_polygon_soup(points, polygons, K()); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; assert(res == 1 && polygons.back().size() == 1); // ------ @@ -321,8 +333,18 @@ void test_simplify_polygons(const bool /*verbose*/ = false) polygons.push_back(polygon); res = PMP::internal::simplify_polygons_in_polygon_soup(points, polygons, K()); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; assert(res == 1 && polygons.back().size() == 2); + // ------ + polygon.clear(); + polygon.push_back(0); polygon.push_back(2); polygon.push_back(0); polygon.push_back(4); + polygons.push_back(polygon); + + res = PMP::internal::simplify_polygons_in_polygon_soup(points, polygons, K()); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; + assert(res == 0 && polygons.back().size() == 4); + // ------ // Now with the same geometric positions, but different combinatorial information polygon.clear(); @@ -330,6 +352,7 @@ void test_simplify_polygons(const bool /*verbose*/ = false) polygons.push_back(polygon); res = PMP::internal::simplify_polygons_in_polygon_soup(points, polygons, K()); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; assert(res == 1 && polygons.back().size() == 3); // ------ @@ -338,6 +361,7 @@ void test_simplify_polygons(const bool /*verbose*/ = false) polygons.push_back(polygon); res = PMP::internal::simplify_polygons_in_polygon_soup(points, polygons, K()); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; assert(res == 1 && polygons.back().size() == 2); // ------ @@ -346,6 +370,7 @@ void test_simplify_polygons(const bool /*verbose*/ = false) polygons.push_back(polygon); res = PMP::internal::simplify_polygons_in_polygon_soup(points, polygons, K()); + std::cout << "res: " << res << " / size: " << polygons.back().size() << std::endl; assert(res == 1 && polygons.back().size() == 3); }