-
What you're seeing here is a dual-graph of triangulation (overlaid on top of the corresponding triangulation). On some triangulations, a face from the dual-graph is missing (as seen in the image). When this happens, it's usually a somewhat central face. What I think may be happening is that for that single vertex, each of it's connected base QuadEdges terminate at it on their B vertex. Since I'm using the pinwheel of each base edge to find which dual-graph edges surround it (to build up the corresponding dual face), this face gets left out (since pinwheels rotate around the A vertex of an edge). I suspect that for all other vertices, their connected edges terminate at that vertex on a mix of A and B vertices, so my code successfully creates a dual-face for the vertex based on a pinwheel. So, I wonder whether it was ever a design factor to guarantee that the edges connected to each vertex in a Tin terminate at the vertex using at least one A and one B vertex. |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 3 replies
-
First off, even with a flaw what you're doing is so cool! I am amazed by
the stuff you come up with.
The concept of a base edge really has no mathematical definition that i am
aware of. It's just an artifact of memory management. I think that, except
at the perimeter, whether a vertex starts a base edge or a dual edge is
just probability. So if there are on average six edges per vertex, then
the is a one in 64 chance that the edges starting from a vertex will all be
base edges.
I could be wrong about the true value of the probability because there may
be other factors at work with the edge caching and reuse during insertion.
The process could promote mixing, but does not guarantee it.
Maybe if you tell me your requirements, I can come up with a simple example
code snippet that does what you need.
Gary
P.S. the tin.edges() iterator probably presents all base edges just because
of the way the internal edge pool works. I'll have to check.
…On Thu, Sep 9, 2021, 5:35 PM Michael Carleton ***@***.***> wrote:
What you're seeing here is a dual-graph of triangulation (overlaid on top
of the corresponding triangulation).
On some triangulations, a face from the dual-graph is missing (as seen in
the image). When this happens, it's usually a somewhat central face.
[image: image]
<https://user-images.githubusercontent.com/9304234/132763517-fca6fd58-0139-455a-91e1-dfa032712dc0.png>
What I think may be happening is that for that single vertex, each of it's
connected *base* QuadEdges terminate at it on their B vertex. Since I'm
using the pinwheel of each base edge to find which dual-graph edges
surround it (to build up the corresponding dual face), this face gets left
out (since pinwheels rotate around the A vertex of an edge).
I suspect that for all other vertices, their connected edges terminate at
that vertex on a mix of A and B vertices, so my code successfully creates a
dual-face for the vertex based on a pinwheel.
[image: image]
<https://user-images.githubusercontent.com/9304234/132763824-40a0b00c-2856-4f41-ae5a-18663beca606.png>
So, I wonder whether it was ever a design factor to guarantee that the
edges connected to each vertex in a Tin terminate at the vertex using at
least one A and one B vertex.
—
You are receiving this because you are subscribed to this thread.
Reply to this email directly, view it on GitHub
<#80>, or unsubscribe
<https://github.com/notifications/unsubscribe-auth/AEWJDYPSVEVD7XRDW5O6AILUBESDJANCNFSM5DYA7PJQ>
.
Triage notifications on the go with GitHub Mobile for iOS
<https://apps.apple.com/app/apple-store/id1477376905?ct=notification-email&mt=8&pt=524675>
or Android
<https://play.google.com/store/apps/details?id=com.github.android&referrer=utm_campaign%3Dnotification-email%26utm_medium%3Demail%26utm_source%3Dgithub>.
|
Beta Was this translation helpful? Give feedback.
-
A workaround was to process edge duals (not just base edges), so the missing pinwheel is picked up as an A vertex.
|
Beta Was this translation helpful? Give feedback.
A workaround was to process edge duals (not just base edges), so the missing pinwheel is picked up as an A vertex.