mirror of https://github.com/CGAL/cgal
Attempt to combine tangential realxations into overload
This commit is contained in:
parent
ace77795a3
commit
740648622f
|
|
@ -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()`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue