updated weights in the surface mesh skeletonization package

This commit is contained in:
Dmitry Anisimov 2021-06-03 17:15:54 +02:00
parent 6e549b9845
commit 671eb4a99a
1 changed files with 8 additions and 10 deletions

View File

@ -35,7 +35,7 @@
#include <CGAL/boost/graph/iterator.h> #include <CGAL/boost/graph/iterator.h>
// Compute cotangent Laplacian // Compute cotangent Laplacian
#include <CGAL/Polygon_mesh_processing/Weights.h> #include <CGAL/Weights/internal/tools.h>
// Compute the vertex normal // Compute the vertex normal
#include <CGAL/Polygon_mesh_processing/compute_normal.h> #include <CGAL/Polygon_mesh_processing/compute_normal.h>
@ -222,12 +222,9 @@ public:
typedef typename boost::graph_traits<mTriangleMesh>::edge_descriptor edge_descriptor; typedef typename boost::graph_traits<mTriangleMesh>::edge_descriptor edge_descriptor;
typedef typename boost::graph_traits<mTriangleMesh>::edge_iterator edge_iterator; typedef typename boost::graph_traits<mTriangleMesh>::edge_iterator edge_iterator;
// Cotangent weight calculator // Get weight from the weight interface.
typedef internal::Cotangent_weight<mTriangleMesh, typedef CGAL::Weights::internal::
typename boost::property_map<mTriangleMesh, vertex_point_t>::type, Cotangent_weight_wrapper<mTriangleMesh> Weight_calculator;
internal::Cotangent_value_minimum_zero<mTriangleMesh,
typename boost::property_map<mTriangleMesh, vertex_point_t>::type,
internal::Cotangent_value_Meyer_secure<mTriangleMesh> > > Weight_calculator;
typedef internal::Curve_skeleton<mTriangleMesh, typedef internal::Curve_skeleton<mTriangleMesh,
VertexIndexMap, VertexIndexMap,
@ -375,14 +372,14 @@ public:
Mean_curvature_flow_skeletonization(const TriangleMesh& tmesh, Mean_curvature_flow_skeletonization(const TriangleMesh& tmesh,
VertexPointMap vertex_point_map, VertexPointMap vertex_point_map,
const Traits& traits = Traits()) const Traits& traits = Traits())
: m_traits(traits), m_weight_calculator(m_tmesh) : m_traits(traits), m_weight_calculator(true)
{ {
init(tmesh, vertex_point_map); init(tmesh, vertex_point_map);
} }
Mean_curvature_flow_skeletonization(const TriangleMesh& tmesh, Mean_curvature_flow_skeletonization(const TriangleMesh& tmesh,
const Traits& traits = Traits()) const Traits& traits = Traits())
: m_traits(traits), m_weight_calculator(m_tmesh) : m_traits(traits), m_weight_calculator(true)
{ {
init(tmesh); init(tmesh);
} }
@ -890,7 +887,8 @@ private:
m_edge_weight.reserve(2 * num_edges(m_tmesh)); m_edge_weight.reserve(2 * num_edges(m_tmesh));
for(halfedge_descriptor hd : halfedges(m_tmesh)) for(halfedge_descriptor hd : halfedges(m_tmesh))
{ {
m_edge_weight.push_back(m_weight_calculator(hd)); m_edge_weight.push_back(
m_weight_calculator(hd, m_tmesh, m_tmesh_point_pmap));
} }
} }