Attempt to combine tangential realxations into overload

This commit is contained in:
Ivan Pađen 2023-10-02 20:34:03 -06:00
parent ace77795a3
commit 740648622f
3 changed files with 26 additions and 26 deletions

View File

@ -129,7 +129,6 @@ The page \ref bgl_namedparameters "Named Parameters" describes their usage.
- `CGAL::Polygon_mesh_processing::smooth_mesh()` (deprecated) - `CGAL::Polygon_mesh_processing::smooth_mesh()` (deprecated)
- `CGAL::Polygon_mesh_processing::angle_and_area_smoothing()` - `CGAL::Polygon_mesh_processing::angle_and_area_smoothing()`
- `CGAL::Polygon_mesh_processing::tangential_relaxation()` - `CGAL::Polygon_mesh_processing::tangential_relaxation()`
- `CGAL::Polygon_mesh_processing::tangential_relaxation_with_sizing()`
- `CGAL::Polygon_mesh_processing::smooth_shape()` - `CGAL::Polygon_mesh_processing::smooth_shape()`
- `CGAL::Polygon_mesh_processing::random_perturbation()` - `CGAL::Polygon_mesh_processing::random_perturbation()`

View File

@ -1071,7 +1071,7 @@ namespace internal {
std::cout << " using tangential relaxation weighted with the sizing field"; std::cout << " using tangential relaxation weighted with the sizing field";
std::cout << std::endl; std::cout << std::endl;
#endif #endif
tangential_relaxation_with_sizing( tangential_relaxation(
vertices(mesh_), vertices(mesh_),
mesh_, mesh_,
sizing, sizing,

View File

@ -119,10 +119,12 @@ struct Allow_all_moves{
* *
* \todo check if it should really be a triangle mesh or if a polygon mesh is fine * \todo check if it should really be a triangle mesh or if a polygon mesh is fine
*/ */
template <typename VertexRange, class TriangleMesh, class NamedParameters = parameters::Default_named_parameters> template <typename VertexRange,
class TriangleMesh,
typename CGAL_NP_TEMPLATE_PARAMETERS>
void tangential_relaxation(const VertexRange& vertices, void tangential_relaxation(const VertexRange& vertices,
TriangleMesh& tm, TriangleMesh& tm,
const NamedParameters& np = parameters::default_values()) const CGAL_NP_CLASS& np = parameters::default_values())
{ {
typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor;
@ -131,17 +133,17 @@ void tangential_relaxation(const VertexRange& vertices,
using parameters::get_parameter; using parameters::get_parameter;
using parameters::choose_parameter; using parameters::choose_parameter;
typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<TriangleMesh, CGAL_NP_CLASS>::type GT;
GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<TriangleMesh, CGAL_NP_CLASS>::type VPMap;
VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tm)); get_property_map(vertex_point, tm));
typedef Static_boolean_property_map<edge_descriptor, false> Default_ECM; typedef Static_boolean_property_map<edge_descriptor, false> Default_ECM;
typedef typename internal_np::Lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, CGAL_NP_CLASS,
Static_boolean_property_map<edge_descriptor, false> // default (no constraint) Static_boolean_property_map<edge_descriptor, false> // default (no constraint)
> ::type ECM; > ::type ECM;
ECM ecm = choose_parameter(get_parameter(np, internal_np::edge_is_constrained), ECM ecm = choose_parameter(get_parameter(np, internal_np::edge_is_constrained),
@ -149,7 +151,7 @@ void tangential_relaxation(const VertexRange& vertices,
typedef typename internal_np::Lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::vertex_is_constrained_t, internal_np::vertex_is_constrained_t,
NamedParameters, CGAL_NP_CLASS,
Static_boolean_property_map<vertex_descriptor, false> // default (no constraint) Static_boolean_property_map<vertex_descriptor, false> // default (no constraint)
> ::type VCM; > ::type VCM;
VCM vcm = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained), VCM vcm = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained),
@ -201,7 +203,7 @@ void tangential_relaxation(const VertexRange& vertices,
typedef typename internal_np::Lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::allow_move_functor_t, internal_np::allow_move_functor_t,
NamedParameters, CGAL_NP_CLASS,
internal::Allow_all_moves// default internal::Allow_all_moves// default
> ::type Shall_move; > ::type Shall_move;
Shall_move shall_move = choose_parameter(get_parameter(np, internal_np::allow_move_functor), Shall_move shall_move = choose_parameter(get_parameter(np, internal_np::allow_move_functor),
@ -281,8 +283,6 @@ void tangential_relaxation(const VertexRange& vertices,
bary = squared_distance(p1, bary)<squared_distance(p2,bary)? p1:p2; bary = squared_distance(p1, bary)<squared_distance(p2,bary)? p1:p2;
barycenters.emplace_back(v, vn, bary); barycenters.emplace_back(v, vn, bary);
} }
} }
} }
} }
@ -417,11 +417,11 @@ void tangential_relaxation(const VertexRange& vertices,
template <typename VertexRange, template <typename VertexRange,
class TriangleMesh, class TriangleMesh,
class SizingFunction, class SizingFunction,
class NamedParameters = parameters::Default_named_parameters> typename CGAL_NP_TEMPLATE_PARAMETERS>
void tangential_relaxation_with_sizing(const VertexRange& vertices, void tangential_relaxation(const VertexRange& vertices,
TriangleMesh& tm, TriangleMesh& tm,
const SizingFunction& sizing, const SizingFunction& sizing,
const NamedParameters& np = parameters::default_values()) const CGAL_NP_CLASS& np = parameters::default_values())
{ {
typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor; typedef typename boost::graph_traits<TriangleMesh>::vertex_descriptor vertex_descriptor;
typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor; typedef typename boost::graph_traits<TriangleMesh>::halfedge_descriptor halfedge_descriptor;
@ -430,17 +430,17 @@ void tangential_relaxation_with_sizing(const VertexRange& vertices,
using parameters::get_parameter; using parameters::get_parameter;
using parameters::choose_parameter; using parameters::choose_parameter;
typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type GT; typedef typename GetGeomTraits<TriangleMesh, CGAL_NP_CLASS>::type GT;
GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT()); GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::type VPMap; typedef typename GetVertexPointMap<TriangleMesh, CGAL_NP_CLASS>::type VPMap;
VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point), VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
get_property_map(vertex_point, tm)); get_property_map(vertex_point, tm));
typedef Static_boolean_property_map<edge_descriptor, false> Default_ECM; typedef Static_boolean_property_map<edge_descriptor, false> Default_ECM;
typedef typename internal_np::Lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::edge_is_constrained_t, internal_np::edge_is_constrained_t,
NamedParameters, CGAL_NP_CLASS,
Static_boolean_property_map<edge_descriptor, false> // default (no constraint) Static_boolean_property_map<edge_descriptor, false> // default (no constraint)
> ::type ECM; > ::type ECM;
ECM ecm = choose_parameter(get_parameter(np, internal_np::edge_is_constrained), ECM ecm = choose_parameter(get_parameter(np, internal_np::edge_is_constrained),
@ -448,7 +448,7 @@ void tangential_relaxation_with_sizing(const VertexRange& vertices,
typedef typename internal_np::Lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::vertex_is_constrained_t, internal_np::vertex_is_constrained_t,
NamedParameters, CGAL_NP_CLASS,
Static_boolean_property_map<vertex_descriptor, false> // default (no constraint) Static_boolean_property_map<vertex_descriptor, false> // default (no constraint)
> ::type VCM; > ::type VCM;
VCM vcm = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained), VCM vcm = choose_parameter(get_parameter(np, internal_np::vertex_is_constrained),
@ -500,7 +500,7 @@ void tangential_relaxation_with_sizing(const VertexRange& vertices,
typedef typename internal_np::Lookup_named_param_def < typedef typename internal_np::Lookup_named_param_def <
internal_np::allow_move_functor_t, internal_np::allow_move_functor_t,
NamedParameters, CGAL_NP_CLASS,
internal::Allow_all_moves// default internal::Allow_all_moves// default
> ::type Shall_move; > ::type Shall_move;
Shall_move shall_move = choose_parameter(get_parameter(np, internal_np::allow_move_functor), Shall_move shall_move = choose_parameter(get_parameter(np, internal_np::allow_move_functor),
@ -634,7 +634,8 @@ void tangential_relaxation_with_sizing(const VertexRange& vertices,
*/ */
template <class TriangleMesh, template <class TriangleMesh,
typename CGAL_NP_TEMPLATE_PARAMETERS> typename CGAL_NP_TEMPLATE_PARAMETERS>
void tangential_relaxation(TriangleMesh& tm, const CGAL_NP_CLASS& np = parameters::default_values()) void tangential_relaxation(TriangleMesh& tm,
const CGAL_NP_CLASS& np = parameters::default_values())
{ {
tangential_relaxation(vertices(tm), tm, np); tangential_relaxation(vertices(tm), tm, np);
} }
@ -642,11 +643,11 @@ void tangential_relaxation(TriangleMesh& tm, const CGAL_NP_CLASS& np = parameter
template <class TriangleMesh, template <class TriangleMesh,
typename SizingFunction, typename SizingFunction,
typename CGAL_NP_TEMPLATE_PARAMETERS> typename CGAL_NP_TEMPLATE_PARAMETERS>
void tangential_relaxation_with_sizing(TriangleMesh& tm, void tangential_relaxation(TriangleMesh& tm,
const SizingFunction& sizing, const SizingFunction& sizing,
const CGAL_NP_CLASS& np = parameters::default_values()) const CGAL_NP_CLASS& np = parameters::default_values())
{ {
tangential_relaxation_with_sizing(vertices(tm), tm, sizing, np); tangential_relaxation(vertices(tm), tm, sizing, np);
} }
} } // CGAL::Polygon_mesh_processing } } // CGAL::Polygon_mesh_processing