Validate that half-edges in a cycle don't intersect
hannobraun opened this issue · 0 comments
hannobraun commented
About
Half-edges in a cycle must not intersect, if the shape that contains the cycle is to be valid. This is currently neither documented nor enforced.
There should be a validation check on the cycle level that makes sure that none of the half-edges with the cycles intersect.
Implementation
The new validation check should go into validate::cycle
the existing check there (and the numerous checks in the sibling modules) can be used as inspiration on how to implement it.
Related Issues
There are a few related issues currently open:
- #2116 and #2118 concern fundamental changes to how geometry is handled. If those were implemented first, this should simplify the implementation of this issue.
- #2124 is related to a bug triggered by exactly what this issue is supposed to address. Once this issues has been addressed, we can probably close the other one too (at least we'd have to check).
- #2132 would simplify
Region
, reducing it to a having single cycle. If that were implemented, then implementing this issue would take care of all cycle intersection validation. If not, we'd need a follow-up issue to this one, to check for intersections between different cycles within a region. - #2157 is about a refactor of the validation infrastructure. If that were implemented first, that would change where the new validation check would go, and how specifically it would be implemented.
None of those other issues are blockers, but in case work on them is ongoing by the time this issue is picked up, this would require coordination of the work.