nical · GitHub

Quick update. I have been working on this on and off (more off than on I have to admit). The main goal for the new tessellator is uncompromising robustness (I'll see about curves later), and in order to make sure the algorithm is able to recover from invalid states introduced by floating point inaccuracy, I have been working on making it pass the whole test suite without handling self-intersections. So in the many tests that do have self-intersections, the algorithm at some point gets into a pretty bad invalid state and must recover, which is actually pretty tough but I think will pay off in the long run.
Once I feel confident about the approach and the implementation, I'll of course add the code that detects self-intersections and split the edges accordingly.

I'm down to 8 tests failing (out of 133), and the new tessellator even passes three tests that the current one fails.

So even though it's a pretty old branch by now (Feb 2018, ouch!), I keep coming back to it when I have time and energy, and not all hope is lost.

Read the original on github.com ↗