Closed SethPipho closed 1 month ago
Ugh, that's the same as #98 , just the orientation is different. I somehow thought that this shouldn't be possible after changing the winding order.
In short, Spade tries to find the face where the target point (coloured in salmon in the image below) lies by "turning right" whenever it finds an edge that has the target point to its right.
Due to how the constraint edges overlap, this results in an endless loop which, luckily will be detected and panics.
The edges traversed are these:
1 -> 0
5 -> 0
5 -> 4
2 -> 4
2 -> 3
1 -> 3
1 -> 0
... repeats
I'm not sure what the best solution is yet but keep you updated. Thanks so much for the report!
(And I should probably create a fuzzer for CDTs to catch this myself!)
Fixed in version 2.10.0 (just released). I have redesigned the locate-strategy this time completely - that should hopefully fix this kind of issue once and for all.
Thanks again for the report!
Feel free to roast the new version with your fuzzing setup :grin:
I encountered a panic when using add_constraint_and_split. I was able to find a minimal example via fuzzing.