3 new trimming methods and tutorial#2268
Merged
alecjacobson merged 5 commits intomainfrom Sep 8, 2023
Merged
Conversation
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Fixes #1374
Very subtle bug in this one. The
stitch_allparameter is misleadingly named at best. basically the issue is that runningintersect_otherdoes not always result in a single mesh where all intersections are resolved. Sometimes there are T-junctions" between the two meshes due to self-intersections in the inputs.I couldn't see an easy way to "fix"
intersect_other. Not sure it'd make sense, too or if it's well-defined in the coplanar cases.So instead I implemented three alternatives. All are exact. The first two output minimal triangulations. The third may have extra triangles (in plane) due to resolving (and then trying to undo) self-intersections in the non-solid input.
I left them all with an overload because their performance tradeoffs are different.
I also added a tutorial. Hopefully that will help people find this function which is a frequent one in the questions/my email.