Jump to content
  • Advertisement
Sign in to follow this  
Wizumwalt

need help searching mesh (winged-edge data structure)

This topic is 4832 days old which is more than the 365 day threshold we allow for new replies. Please post a new topic.

If you intended to correct an error in the post then please contact us.

Recommended Posts

To find the neighboring triangles of a triangle in the model that I choose randomly, do I loop through the edges of a triangle to find it's neighbors? If so, then which of the neighboring triangles do I choose to make the next current triangle once I've found all the bordering neighboring triangles? Or do I just choose one edge of the original first triangle and make that neighboring triangle the new current triangle? Will that eventually take me down a path where I box myself in and find no more neighboring triangles, yet still leave me with unfound neighbors from the very beginning? (in other words, what if I chose triangles to the left somehow where it eventually took me in a circle of triangles, then I find no more left because I've sort of boxed myself in). Here's what I've come up with so far using the winged-edge data structure, but it still doesn't search the entire mesh topology.
processCurrentTriangle() {
    (loop through edges) {
        edge gives me 2 vertices (start, end)
    	left traversal gives me pred and succ edge
    	right traversal gives me pred and succ edge
    	edge gives me 2 faces (which means one new neighboring triangle)
    	mark new triangle as found (neighbor).
    }

    After all edges searched, add to region list.
    Delete current triangle from mesh list list.
}
What I'm looking to do is group all the triangles that belong to a single region, so I'm finding all the regions of my model. At this point, I've found 3 new triangles, what to do ... If I choose one, then it'll take me to it's neighbors and I haven't yet processed the neighbors of the other two that I found. This is where I'm worried abount not getting all the neighboring triangles. I hope that made sense. Any help much appreciated.

Share this post


Link to post
Share on other sites
Advertisement
Sign in to follow this  

  • Advertisement
×

Important Information

By using GameDev.net, you agree to our community Guidelines, Terms of Use, and Privacy Policy.

We are the game development community.

Whether you are an indie, hobbyist, AAA developer, or just trying to learn, GameDev.net is the place for you to learn, share, and connect with the games industry. Learn more About Us or sign up!

Sign me up!