Looking for Halfedge or other topologic representation library

Hello everyone, While looking for an existing implementation of halfedge data structures or similar topological representations of 2-dimensional manifolds I found one article pointing to boost:graph. I've checked the documentation, but it seem that this library is way to generic/abstract for my purpose, and yet seems to miss a number of important functions that probably only make sense when working with a topological representation of a two-dimensional oriented manifold. Conceptually, Half-edge data structures would fit my needs very well, and I've found several sites with half-done or half-documented implemetations. But those that actually had code were either too specific to be useful for my purposes, or half of the site couldn't be retrieved, probably because the relevant pages are no longer hosted. So I was wondering, if there is, maybe, another library within boost that is dealing more with the topological aspect of graphs, whether or not based on boost::graph? What I am looking for is a topological framework for oriented surfaces that lets me retrieve adjacency information regarding faces, edges and vertices, disregardful of whether or not the set of surfaces represent the full surface of a 3D object or just a part of it. I also need to directly navigate between the objects defining the actual 3D points, curves, and surfaces, and the corresponding topological objects. But that, I hope, is just a minor detail. I suspect it won't be so hard to implement myself, but building on a well-designed library is so much less error prone... Cheers, Stefan

On Thu, 2 Sep 2010, Lang Stefan wrote:
Hello everyone,
While looking for an existing implementation of halfedge data structures or similar topological representations of 2-dimensional manifolds I found one article pointing to boost:graph. I've checked the documentation, but it seem that this library is way to generic/abstract for my purpose, and yet seems to miss a number of important functions that probably only make sense when working with a topological representation of a two-dimensional oriented manifold.
Conceptually, Half-edge data structures would fit my needs very well, and I've found several sites with half-done or half-documented implemetations. But those that actually had code were either too specific to be useful for my purposes, or half of the site couldn't be retrieved, probably because the relevant pages are no longer hosted.
So I was wondering, if there is, maybe, another library within boost that is dealing more with the topological aspect of graphs, whether or not based on boost::graph?
What I am looking for is a topological framework for oriented surfaces that lets me retrieve adjacency information regarding faces, edges and vertices, disregardful of whether or not the set of surfaces represent the full surface of a 3D object or just a part of it. I also need to directly navigate between the objects defining the actual 3D points, curves, and surfaces, and the corresponding topological objects. But that, I hope, is just a minor detail.
I suspect it won't be so hard to implement myself, but building on a well-designed library is so much less error prone...
You might want to look at CGAL (URL:http://www.cgal.org/). It can interface with Boost.Graph as well. -- Jeremiah Willcock

Hi Stefan, On Sep 2, 2010, at 9:04 AM, Jeremiah Willcock wrote:
On Thu, 2 Sep 2010, Lang Stefan wrote:
While looking for an existing implementation of halfedge data structures
You might want to look at CGAL (URL:http://www.cgal.org/). It can interface with Boost.Graph as well.
You might also check out the array based half-edge (and half-face) data structures devised by Tyler Alumbaugh. http://www.ams.sunysb.edu/~jiao/papers/compact_mds.pdf I've been using this really elegant, compact, parallel solution for some time now. Even got so far as to contemplate contributing my implementations to Boost as library for unstructured meshes. HTH. -- Noel
participants (3)
-
Belcourt, Kenneth
-
Jeremiah Willcock
-
Lang Stefan