Skeletonization: Make it deterministic

This commit is contained in:
Andreas Fabri 2023-06-26 16:30:17 +01:00
parent 9cc17545b4
commit 9cc1dda51b
1 changed files with 5 additions and 1 deletions

View File

@ -234,6 +234,10 @@ 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;
struct Less_id {
bool operator()(const edge_descriptor& x, const edge_descriptor& y) const { return x.id() < y.id(); }
};
// Get weight from the weight interface. // Get weight from the weight interface.
typedef CGAL::Weights::Cotangent_weight<mTriangleMesh, mVertexPointMap, Traits> Weight_calculator; typedef CGAL::Weights::Cotangent_weight<mTriangleMesh, mVertexPointMap, Traits> Weight_calculator;
@ -1425,7 +1429,7 @@ std::size_t Mean_curvature_flow_skeletonization<TriangleMesh, Traits_, VertexPoi
{ {
std::size_t cnt=0, prev_cnt=0; std::size_t cnt=0, prev_cnt=0;
std::set<edge_descriptor> edges_to_collapse, non_topologically_valid_collapses; std::set<edge_descriptor,Less_id> edges_to_collapse, non_topologically_valid_collapses;
for(edge_descriptor ed : edges(m_tmesh)) for(edge_descriptor ed : edges(m_tmesh))
if ( edge_should_be_collapsed(ed) ) if ( edge_should_be_collapsed(ed) )