diff --git a/STL_Extension/include/CGAL/STL_Extension/internal/parameters_interface.h b/STL_Extension/include/CGAL/STL_Extension/internal/parameters_interface.h index 37e28d34974a..5e4f3a576246 100644 --- a/STL_Extension/include/CGAL/STL_Extension/internal/parameters_interface.h +++ b/STL_Extension/include/CGAL/STL_Extension/internal/parameters_interface.h @@ -294,6 +294,7 @@ CGAL_add_named_parameter(cell_selector_t, cell_selector, cell_is_selected_map) CGAL_add_named_parameter(facet_is_constrained_t, facet_is_constrained, facet_is_constrained_map) CGAL_add_named_parameter(smooth_constrained_edges_t, smooth_constrained_edges, smooth_constrained_edges) CGAL_add_named_parameter(nb_flip_smooth_iterations_t, nb_flip_smooth_iterations, nb_flip_smooth_iterations) +CGAL_add_named_parameter(nb_smoothing_iterations_t, nb_smoothing_iterations, nb_smoothing_iterations) // List of named parameters used in Alpha_wrap_23 CGAL_add_named_parameter(do_enforce_manifoldness_t, do_enforce_manifoldness, do_enforce_manifoldness) diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h index 187178c984ae..6ef2fa1bf88f 100644 --- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h +++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h @@ -59,7 +59,14 @@ class Default_remeshing_visitor void after_flip(CellHandle /* c */) {} }; - +struct Remeshing_steps +{ + bool do_split = true; + bool do_collapse = true; + bool do_flip = true; + std::size_t nb_smoothing_iterations = 1; + std::size_t nb_flip_smooth_iterations = 3; +}; template 0) + smooth(); #ifdef CGAL_TETRAHEDRAL_REMESHING_VERBOSE std::cout << "# Iteration " << it_nb << " (flip and smooth only) done : " diff --git a/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h b/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h index c5f9fda2067a..42bf383d0fd7 100644 --- a/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h +++ b/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h @@ -221,9 +221,12 @@ void tetrahedral_isotropic_remeshing( // Advanced and non documented parameters auto visitor = choose_parameter(get_parameter(np, internal_np::visitor)); - auto nb_extra_iterations - = choose_parameter(get_parameter(np, internal_np::nb_flip_smooth_iterations), - std::size_t{3}); + Tetrahedral_remeshing::internal::Remeshing_steps steps{ + choose_parameter(get_parameter(np, internal_np::do_split), true), + choose_parameter(get_parameter(np, internal_np::do_collapse), true), + choose_parameter(get_parameter(np, internal_np::do_flip), true), + choose_parameter(get_parameter(np, internal_np::nb_smoothing_iterations), std::size_t{1}), + choose_parameter(get_parameter(np, internal_np::nb_flip_smooth_iterations), std::size_t{3})}; #ifdef CGAL_TETRAHEDRAL_REMESHING_VERBOSE std::cout << "Tetrahedral remeshing (" @@ -255,7 +258,7 @@ void tetrahedral_isotropic_remeshing( nb_extra_iterations = 0; #endif - remesher.remesh(max_it, nb_extra_iterations); + remesher.remesh(max_it, steps); #ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG const double angle_bound = 5.0; @@ -475,9 +478,12 @@ void tetrahedral_isotropic_remeshing( auto visitor = choose_parameter(get_parameter(np, internal_np::visitor)); - auto nb_extra_iterations - = choose_parameter(get_parameter(np, internal_np::nb_flip_smooth_iterations), - std::size_t{3}); + Tetrahedral_remeshing::internal::Remeshing_steps steps{ + choose_parameter(get_parameter(np, internal_np::do_split), true), + choose_parameter(get_parameter(np, internal_np::do_collapse), true), + choose_parameter(get_parameter(np, internal_np::do_flip), true), + choose_parameter(get_parameter(np, internal_np::nb_smoothing_iterations), std::size_t{1}), + choose_parameter(get_parameter(np, internal_np::nb_flip_smooth_iterations), std::size_t{3})}; #ifdef CGAL_TETRAHEDRAL_REMESHING_VERBOSE std::cout << "Tetrahedral remeshing (" @@ -508,7 +514,7 @@ void tetrahedral_isotropic_remeshing( nb_extra_iterations = 0; #endif - remesher.remesh(max_it, nb_extra_iterations); + remesher.remesh(max_it, steps); #ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG const double angle_bound = 5.0;