diff --git a/Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_example.cpp b/Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_example.cpp index df253fd9606..85e3758996c 100644 --- a/Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_example.cpp +++ b/Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_example.cpp @@ -25,10 +25,10 @@ int main() std::vector triangles; std::vector anchors; - // free function interface with named parameters, seperated with dots + // free function interface with named parameters, separated with dots CGAL::vsa_mesh_approximation(input, output, CGAL::VSA::parameters::init_by_number(200). // seeding by target number of proxies - init_method(1). // hierarchical init + init_method(CGAL::Method::Hierarchical). // hierarchical init iterations(30). // number of relaxation iterations after seeding anchor_point(std::back_inserter(anchors)). // get anchor points indexed_triangles(std::back_inserter(triangles))); // get indexed triangles diff --git a/Surface_mesh_approximation/include/CGAL/VSA_approximation.h b/Surface_mesh_approximation/include/CGAL/VSA_approximation.h index e5b14fa9a02..2bc5de78658 100644 --- a/Surface_mesh_approximation/include/CGAL/VSA_approximation.h +++ b/Surface_mesh_approximation/include/CGAL/VSA_approximation.h @@ -32,6 +32,16 @@ namespace CGAL { + /// Seeding method enumeration + enum Method { + /// Random seeding + Random, + /// Incremental seeding + Incremental, + /// Hierarchical seeding + Hierarchical + }; + /*! * \ingroup PkgTSMA * @brief Main class for Variational Shape Approximation algorithm. diff --git a/Surface_mesh_approximation/include/CGAL/vsa_mesh_approximation.h b/Surface_mesh_approximation/include/CGAL/vsa_mesh_approximation.h index 67374c02313..88398855c74 100644 --- a/Surface_mesh_approximation/include/CGAL/vsa_mesh_approximation.h +++ b/Surface_mesh_approximation/include/CGAL/vsa_mesh_approximation.h @@ -93,7 +93,7 @@ bool vsa_mesh_approximation(const TriangleMesh &tm_in, vsa_l21.set_metric(l21_metric, l21_fitting); // default random initialization - int init = choose_param(get_param(np, internal_np::init_method), 0); + CGAL::Method init = choose_param(get_param(np, internal_np::init_method), CGAL::Method::Random); std::size_t num_proxies = choose_param(get_param(np, internal_np::init_by_number), 0); std::size_t inner_iterations = choose_param(get_param(np, internal_np::inner_iterations), 10); if (num_proxies == 0 || num_proxies > num_faces(tm_in)) {