-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
AW3: improve manifoldness enforcing heuristics #7629
AW3: improve manifoldness enforcing heuristics #7629
Conversation
Is this PR a change that could be backported to 5.5.x or 5.6.x? |
It's on the fence between bug fix and changing the behavior. I picked the latter for the (low) probability that it would be an unwanted change for some users. |
Then, maybe rebase the branch onto a release branch, but let the PR be based on |
4bc5ebc
to
c5de266
Compare
This combinatorial choice seemed like a good idea, but it can have nasty cascading effects, adding very large tetrahedra. See this issue: CGAL#7625 In the end, the only thing we care about is small volumes being added. I keep the artificial vertex for now, but I am not fully convinced these should be actually kept too.
Thanks @albert-github!
c5de266
to
330ff2e
Compare
There was a need for sorting at every iteration when the sorting used criteria which were changing with every iteration. This is no longer the case after c7b9317. Also make it deterministic.
This comment was marked as outdated.
This comment was marked as outdated.
Merged with #7805. |
Summary of Changes
There is, at the end of the alpha wrap process, a post-processing step that re-adds material to enforce geometrical manifoldness.
This step is driven by a heuristics that prioritize cells around non-manifold vertices. The current heuristic prefers:
Turns out the 2nd criterion is not so great: because it ignores volume, it can add very large tetrahedra. Furthermore, it can cascade into adding absurd amounts of tetrahedra. Its purpose was to reduce the amount of tetrahedra added, hoping that by adding few tetrahedra (regardless of their volume), it would end up adding less volume than adding small tetrahedra. In practice, it seems like it doesn't work that well, so just remove it and let the process be driven entirely by tetrahedron size.
Here is a comparison for a typical case reported in #7625:
TODO:
Release Management
Alpha_wrap_3