-
Notifications
You must be signed in to change notification settings - Fork 1.4k
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Arrangement_2 produces self-intersecting outer ccb. #7602
Comments
FWIW, I've just replicated this with the current master.
|
I understand that antenna are permitted, but this case doesn't seem to involve an antenna to me.
I see two non-zero area polygons joined at a corner -- A-through-B and B-through-A. Do you see the same thing or have I misunderstood something? |
I understood that an antenna would be composed of edges such that edge->face() == edge->twin()->face(). But this isn't the case for this construction, so I guess this definition is insufficient. Could you point me at a definition of antenna that includes this non-zero area polygon case? |
I don't really have a clean definition of an antenna but you could see it as a sequence of halfedges that if removed from a CCB, make the CCB a closed sequence of halfedges. You of course need to update prev/next and requires that the antenna is connected at a single vertex. |
Thanks -- that makes sense. :) It might be useful to make it clearer in the Arrangement_2 documentation that antenna with positive area are expected. The only examples I see have zero area. |
Indeed you somehow have this figure showing it for a hole but it could be made more explicit. |
Ok, this understanding of antenna appears to be sufficient to produce well formed polygons with holes from arrangements. Thanks. |
These non-zero area antenna are making it difficult to do face-level analysis. Is there any reliable way to split them off into separate faces? I do not see a way to duplicate a vertex, and without that, I do not see how I could reconnect the areas such that they would not again form an antenna. |
I guess the answer is to add custom data at the halfedge level to annotate each halfedge with suitable region id? |
Issue Details
Given the set of segments provided, the arrangement produces a face with a self-intersection.
The output of running the below program locally is:
Note that [-27.6534, 66.5174] occurs twice.
See also: #7597
Source Code
Environment
The text was updated successfully, but these errors were encountered: