Merge pull request #6773 from janetournois/PMP-relaxation_avoid_global_function-jtournois

PMP::tangential_relaxation() - avoid using global function barycenter()
This commit is contained in:
Sébastien Loriot 2022-08-01 15:52:31 +02:00
commit 3c24a79336
1 changed files with 4 additions and 1 deletions

View File

@ -132,6 +132,7 @@ void tangential_relaxation(const VertexRange& vertices,
using parameters::choose_parameter;
typedef typename GetGeomTraits<TriangleMesh, NamedParameters>::type GT;
GT gt = choose_parameter(get_parameter(np, internal_np::geom_traits), GT());
typedef typename GetVertexPointMap<TriangleMesh, NamedParameters>::type VPMap;
VPMap vpm = choose_parameter(get_parameter(np, internal_np::vertex_point),
@ -212,6 +213,7 @@ void tangential_relaxation(const VertexRange& vertices,
typedef std::tuple<vertex_descriptor, Vector_3, Point_3> VNP;
std::vector< VNP > barycenters;
auto gt_barycenter = gt.construct_barycenter_3_object();
// at each vertex, compute vertex normal
std::unordered_map<vertex_descriptor, Vector_3> vnormals;
@ -263,7 +265,8 @@ void tangential_relaxation(const VertexRange& vertices,
//check squared cosine is < 0.25 (~120 degrees)
if (0.25 < dot*dot / ( squared_distance(get(vpm,ph0), get(vpm, v)) *
squared_distance(get(vpm,ph1), get(vpm, v))) )
barycenters.emplace_back(v, vn, barycenter(get(vpm, ph0), 0.25, get(vpm, ph1), 0.25, get(vpm, v), 0.5));
barycenters.emplace_back(v, vn,
gt_barycenter(get(vpm, ph0), 0.25, get(vpm, ph1), 0.25, get(vpm, v), 0.5));
}
}
}