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 #136
Fixes #109
Fixes #102
Looks like these were in fact related problems. I've added some tests, but would be great to get independent verification, since I probably haven't tested every permutation.
The problem was my swap edges algorithm; the issue is that sometimes the triangulator will introduce a 4-manifold edge by creating the same edge (between the same verts) inside two different faces. These must be removed; I had tried to swap one edge across its quadrilateral, but the problem was sometimes this was simply resulting in a different 4-manifold edge, which then caused SimplifyTopology to fail. Now I've simplified halfedge creation and instead deal with 4-manifold edges at the beginning of SimplifyTopology. I handle them robustly by duplicating a vert and inserting triangles, which should always resolve the problem.