mirror of https://github.com/CGAL/cgal
isotropic remeshing
This commit is contained in:
parent
3e90f9ccf7
commit
341e1167a8
|
|
@ -405,7 +405,9 @@ namespace internal {
|
|||
}
|
||||
|
||||
//split long edges
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE
|
||||
unsigned int nb_splits = 0;
|
||||
#endif
|
||||
while (!long_edges.empty())
|
||||
{
|
||||
//the edge with longest length
|
||||
|
|
@ -420,7 +422,9 @@ namespace internal {
|
|||
// propagate the constrained status
|
||||
put(ecmap_, edge(hnew, mesh_), get(ecmap_, edge(he, mesh_)));
|
||||
CGAL_assertion(he == next(hnew, mesh_));
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE
|
||||
++nb_splits;
|
||||
#endif
|
||||
|
||||
//move refinement point
|
||||
vertex_descriptor vnew = target(hnew, mesh_);
|
||||
|
|
@ -642,7 +646,9 @@ namespace internal {
|
|||
std::cout << "done." << std::endl;
|
||||
#endif
|
||||
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE
|
||||
unsigned int nb_collapses = 0;
|
||||
#endif
|
||||
while (!short_edges.empty())
|
||||
{
|
||||
//the edge with shortest length
|
||||
|
|
@ -779,8 +785,9 @@ namespace internal {
|
|||
vertex_descriptor vkept = CGAL::Euler::collapse_edge(e, mesh_, ecmap_);
|
||||
CGAL_assertion(is_valid(mesh_));
|
||||
CGAL_assertion(vkept == vb);//is the constrained point still here
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE
|
||||
++nb_collapses;
|
||||
|
||||
#endif
|
||||
//fix constrained case
|
||||
CGAL_assertion((is_constrained(vkept) || is_corner(vkept) || is_on_patch_border(vkept)) ==
|
||||
(is_va_constrained || is_vb_constrained || is_va_on_constrained_polyline || is_vb_on_constrained_polyline));
|
||||
|
|
@ -842,7 +849,9 @@ namespace internal {
|
|||
|
||||
const double cap_threshold = std::cos(160. / 180 * CGAL_PI);
|
||||
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE
|
||||
unsigned int nb_flips = 0;
|
||||
#endif
|
||||
for(edge_descriptor e : edges(mesh_))
|
||||
{
|
||||
//only the patch edges are allowed to be flipped
|
||||
|
|
@ -906,8 +915,9 @@ namespace internal {
|
|||
put(degree, vc, vvc);
|
||||
put(degree, vd, vvd);
|
||||
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE
|
||||
++nb_flips;
|
||||
|
||||
#endif
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE_PROGRESS
|
||||
std::cout << "\r\t(" << nb_flips << " flips)";
|
||||
std::cout.flush();
|
||||
|
|
@ -956,8 +966,9 @@ namespace internal {
|
|||
put(degree, vc, vvc);
|
||||
put(degree, vd, vvd);
|
||||
|
||||
#ifdef CGAL_PMP_REMESHING_VERBOSE
|
||||
--nb_flips;
|
||||
|
||||
#endif
|
||||
CGAL_assertion_code(Halfedge_status s3 = status(he));
|
||||
CGAL_assertion(s1 == s3);
|
||||
CGAL_assertion(!is_border(he, mesh_));
|
||||
|
|
@ -1635,8 +1646,6 @@ private:
|
|||
const double& sq_low,
|
||||
const bool collapse_constraints)
|
||||
{
|
||||
CGAL_assertion_code(std::size_t nb_done = 0);
|
||||
|
||||
std::unordered_set<halfedge_descriptor> degenerate_faces;
|
||||
for(halfedge_descriptor h :
|
||||
halfedges_around_target(halfedge(v, mesh_), mesh_))
|
||||
|
|
@ -1695,7 +1704,6 @@ private:
|
|||
continue;
|
||||
|
||||
CGAL::Euler::flip_edge(hf, mesh_);
|
||||
CGAL_assertion_code(++nb_done);
|
||||
done = true;
|
||||
|
||||
//update status
|
||||
|
|
@ -1891,6 +1899,11 @@ private:
|
|||
else if(is_an_isolated_constraint(h)) nb_isolated++;
|
||||
else CGAL_assertion(false);
|
||||
}
|
||||
CGAL_USE(nb_border);
|
||||
CGAL_USE(nb_mesh);
|
||||
CGAL_USE(nb_patch);
|
||||
CGAL_USE(nb_patch_border);
|
||||
CGAL_USE(nb_isolated);
|
||||
}
|
||||
|
||||
#ifdef CGAL_PMP_REMESHING_DEBUG
|
||||
|
|
|
|||
Loading…
Reference in New Issue