clean up Mesh_3 internal parameters

This commit is contained in:
Sébastien Loriot 2022-09-21 15:45:14 +02:00
parent 6505bb7d39
commit 6b07cbdadd
5 changed files with 176 additions and 181 deletions

View File

@ -206,47 +206,24 @@ struct Domain_features_generator< MeshDomain, true >
} // end namespace internal } // end namespace internal
// Undocumented parameter for refine_mesh_3 and make_mesh_3.
// Default Mesh_3_options: dump at every stage of the mesh generation.
inline internal::Mesh_3_options mesh_3_dump()
{
internal::Mesh_3_options options;
options.dump_after_init_prefix = "mesh_dump_after_init";
options.dump_after_refine_surface_prefix = "mesh_dump_after_refine_surface";
options.dump_after_refine_prefix = "mesh_dump_after_refine";
options.dump_after_glob_opt_prefix = "mesh_dump_after_glob_opt";
options.dump_after_perturb_prefix = "mesh_dump_after_perturb";
options.dump_after_exude_prefix = "mesh_dump_after_exude";
return options;
}
template <typename T>
struct Base
{
Base(T t) : t_(t) {}
T operator()() const { return t_; }
private:
T t_;
};
// ----------------------------------- // -----------------------------------
// Reset_c3t3 (undocumented) // Reset_c3t3 (undocumented)
// ----------------------------------- // -----------------------------------
inline
Named_function_parameters<bool, internal_np::do_reset_c3t3_t>
reset_c3t3()
{
return Named_function_parameters<bool, internal_np::do_reset_c3t3_t>(true);
}
#define CGAL_BOOLEAN_PARAMETER(Class, function_true, function_false) \ inline
struct Class : public Base<bool> { Class(bool b) : Base<bool>(b){} }; \ Named_function_parameters<bool, internal_np::do_reset_c3t3_t>
inline Named_function_parameters<Class, internal_np::reset_options_param_t> function_true() { \ no_reset_c3t3()
typedef Named_function_parameters<Class, internal_np::reset_options_param_t> Param; \ {
return Param(Class(true)); } \ return Named_function_parameters<bool, internal_np::do_reset_c3t3_t>(false);
inline Named_function_parameters<Class, internal_np::reset_options_param_t> function_false() {\ }
typedef Named_function_parameters<Class, internal_np::reset_options_param_t> Param; \
return Param(Class(false)); }
CGAL_BOOLEAN_PARAMETER(Reset,reset_c3t3,no_reset_c3t3)
#undef CGAL_BOOLEAN_PARAMETER
// ----------------------------------- // -----------------------------------
// Perturb // Perturb
@ -507,7 +484,6 @@ non_manifold()
// Undocumented parameter for refine_mesh_3 and make_mesh_3. // Undocumented parameter for refine_mesh_3 and make_mesh_3.
// Allows to dump the mesh at given stage of the mesh generation // Allows to dump the mesh at given stage of the mesh generation
// algorithm. // algorithm.
template<typename CGAL_NP_TEMPLATE_PARAMETERS> template<typename CGAL_NP_TEMPLATE_PARAMETERS>
Named_function_parameters<internal::Mesh_3_options, internal_np::mesh_param_t> Named_function_parameters<internal::Mesh_3_options, internal_np::mesh_param_t>
mesh_3_options(const CGAL_NP_CLASS& np = parameters::default_values()) mesh_3_options(const CGAL_NP_CLASS& np = parameters::default_values())
@ -542,6 +518,25 @@ mesh_3_options(const CGAL_NP_CLASS& ... nps)
return mesh_3_options(internal_np::combine_named_parameters(nps...)); return mesh_3_options(internal_np::combine_named_parameters(nps...));
} }
// Undocumented parameter for refine_mesh_3 and make_mesh_3.
// Default Mesh_3_options: dump at every stage of the mesh generation.
inline
Named_function_parameters<internal::Mesh_3_options, internal_np::mesh_param_t>
mesh_3_dump()
{
typedef Named_function_parameters<internal::Mesh_3_options, internal_np::mesh_param_t> Param;
internal::Mesh_3_options options;
options.dump_after_init_prefix = "mesh_dump_after_init";
options.dump_after_refine_surface_prefix = "mesh_dump_after_refine_surface";
options.dump_after_refine_prefix = "mesh_dump_after_refine";
options.dump_after_glob_opt_prefix = "mesh_dump_after_glob_opt";
options.dump_after_perturb_prefix = "mesh_dump_after_perturb";
options.dump_after_exude_prefix = "mesh_dump_after_exude";
return Param(options);
}
// ----------------------------------- // -----------------------------------
// Features_options // Features_options
// ----------------------------------- // -----------------------------------

View File

@ -269,7 +269,7 @@ void refine_mesh_3(C3T3& c3t3, MeshDomain& domain, MeshCriteria& criteria, const
parameters::internal::Perturb_options perturb_param = choose_parameter(get_parameter(np, internal_np::perturb_options_param), parameters::perturb().v); parameters::internal::Perturb_options perturb_param = choose_parameter(get_parameter(np, internal_np::perturb_options_param), parameters::perturb().v);
parameters::internal::Odt_options odt_param = choose_parameter(get_parameter(np, internal_np::odt_options_param), parameters::no_odt().v); parameters::internal::Odt_options odt_param = choose_parameter(get_parameter(np, internal_np::odt_options_param), parameters::no_odt().v);
parameters::internal::Lloyd_options lloyd_param = choose_parameter(get_parameter(np, internal_np::lloyd_options_param), parameters::no_lloyd().v); parameters::internal::Lloyd_options lloyd_param = choose_parameter(get_parameter(np, internal_np::lloyd_options_param), parameters::no_lloyd().v);
parameters::Reset reset_param = choose_parameter(get_parameter(np, internal_np::reset_options_param), parameters::reset_c3t3().v); bool reset = choose_parameter(get_parameter(np, internal_np::do_reset_c3t3), false);
parameters::internal::Mesh_3_options mesh_options_param = choose_parameter(get_parameter(np, internal_np::mesh_param), parameters::internal::Mesh_3_options()); parameters::internal::Mesh_3_options mesh_options_param = choose_parameter(get_parameter(np, internal_np::mesh_param), parameters::internal::Mesh_3_options());
parameters::internal::Manifold_options manifold_options_param = choose_parameter(get_parameter(np, internal_np::manifold_param), parameters::internal::Manifold_options()); parameters::internal::Manifold_options manifold_options_param = choose_parameter(get_parameter(np, internal_np::manifold_param), parameters::internal::Manifold_options());
@ -280,7 +280,7 @@ void refine_mesh_3(C3T3& c3t3, MeshDomain& domain, MeshCriteria& criteria, const
perturb_param, perturb_param,
odt_param, odt_param,
lloyd_param, lloyd_param,
reset_param(), reset,
mesh_options_param, mesh_options_param,
manifold_options_param); manifold_options_param);
} }

View File

@ -72,12 +72,12 @@ private:
Function f_sphere(&sphere_function); Function f_sphere(&sphere_function);
Function_wrapper wrapper_1(f_sphere); Function_wrapper wrapper_1(f_sphere);
Mesh_domain domain(wrapper_1, bounding_shape, error_bound); Mesh_domain domain(wrapper_1, bounding_shape, CGAL::parameters::relative_error_bound(error_bound));
test_construct_initial_points(domain, error_bound); test_construct_initial_points(domain, error_bound);
Function f_shape(&shape_function); Function f_shape(&shape_function);
Function_wrapper wrapper_2(f_shape); Function_wrapper wrapper_2(f_shape);
Mesh_domain domain_2(wrapper_2, bounding_shape, error_bound); Mesh_domain domain_2(wrapper_2, bounding_shape, CGAL::parameters::relative_error_bound(error_bound));
test_is_in_domain(domain_2); test_is_in_domain(domain_2);
test_do_intersect_surface(domain_2); test_do_intersect_surface(domain_2);
test_construct_intersection(domain_2); test_construct_intersection(domain_2);

View File

@ -311,7 +311,7 @@ void refine_periodic_3_mesh_3(C3T3& c3t3, MeshDomain& domain, MeshCriteria& crit
parameters::internal::Perturb_options perturb_param = choose_parameter(get_parameter(np, internal_np::perturb_options_param), parameters::no_perturb().v); parameters::internal::Perturb_options perturb_param = choose_parameter(get_parameter(np, internal_np::perturb_options_param), parameters::no_perturb().v);
parameters::internal::Odt_options odt_param = choose_parameter(get_parameter(np, internal_np::odt_options_param), parameters::no_odt().v); parameters::internal::Odt_options odt_param = choose_parameter(get_parameter(np, internal_np::odt_options_param), parameters::no_odt().v);
parameters::internal::Lloyd_options lloyd_param = choose_parameter(get_parameter(np, internal_np::lloyd_options_param), parameters::no_lloyd().v); parameters::internal::Lloyd_options lloyd_param = choose_parameter(get_parameter(np, internal_np::lloyd_options_param), parameters::no_lloyd().v);
parameters::Reset reset_param = choose_parameter(get_parameter(np, internal_np::reset_options_param), parameters::reset_c3t3().v); bool reset = choose_parameter(get_parameter(np, internal_np::do_reset_c3t3), false);
parameters::internal::Mesh_3_options mesh_options_param = choose_parameter(get_parameter(np, internal_np::mesh_param), parameters::internal::Mesh_3_options()); parameters::internal::Mesh_3_options mesh_options_param = choose_parameter(get_parameter(np, internal_np::mesh_param), parameters::internal::Mesh_3_options());
parameters::internal::Manifold_options manifold_options_param = choose_parameter(get_parameter(np, internal_np::manifold_param), parameters::internal::Manifold_options()); parameters::internal::Manifold_options manifold_options_param = choose_parameter(get_parameter(np, internal_np::manifold_param), parameters::internal::Manifold_options());
@ -322,7 +322,7 @@ void refine_periodic_3_mesh_3(C3T3& c3t3, MeshDomain& domain, MeshCriteria& crit
perturb_param, perturb_param,
odt_param, odt_param,
lloyd_param, lloyd_param,
reset_param(), reset,
mesh_options_param, mesh_options_param,
manifold_options_param); manifold_options_param);
} }

View File

@ -297,7 +297,7 @@ CGAL_add_named_parameter_with_compatibility(exude_options_param_t, exude_options
CGAL_add_named_parameter_with_compatibility(perturb_options_param_t, perturb_options_param, perturb_options) CGAL_add_named_parameter_with_compatibility(perturb_options_param_t, perturb_options_param, perturb_options)
CGAL_add_named_parameter_with_compatibility(odt_options_param_t, odt_options_param, odt_options) CGAL_add_named_parameter_with_compatibility(odt_options_param_t, odt_options_param, odt_options)
CGAL_add_named_parameter_with_compatibility(lloyd_options_param_t, lloyd_options_param, lloyd_options) CGAL_add_named_parameter_with_compatibility(lloyd_options_param_t, lloyd_options_param, lloyd_options)
CGAL_add_named_parameter_with_compatibility(reset_options_param_t, reset_options_param, reset_options) CGAL_add_named_parameter_with_compatibility(do_reset_c3t3_t, do_reset_c3t3, do_reset_c3t3)
CGAL_add_named_parameter_with_compatibility(mesh_param_t, mesh_param, mesh_options) CGAL_add_named_parameter_with_compatibility(mesh_param_t, mesh_param, mesh_options)
CGAL_add_named_parameter_with_compatibility(manifold_param_t, manifold_param, manifold_option) CGAL_add_named_parameter_with_compatibility(manifold_param_t, manifold_param, manifold_option)
CGAL_add_named_parameter_with_compatibility(features_option_param_t,features_options_param,features_options) CGAL_add_named_parameter_with_compatibility(features_option_param_t,features_options_param,features_options)