9
$\begingroup$

For 2D polygonal meshes, the QuadEdge and HalfEdge data structure representations are sufficient to store and enable efficient query of all topological and incidence information. Are there compact and efficient data structures for 3D polyhedral meshes? I know there has been some recent work on compact representations for tetrahedral meshes, like, for example SOT. I don't know enough about these to know if they generalize to unstructured non-tetrahedral meshes.

I can imagine that half-edges might generalize to half-faces with associated half-edges, but it seems like that is a lot of data to store, and there might be more compact representations. I should add that I really only care about retrieving facet information (like which facets are on the boundary, which facets belong to a certain cell); the edge incidence information is not as useful.

asked Dec 19, 2012 at 9:28
$\endgroup$

1 Answer 1

8
$\begingroup$

There is an extension of half-edge in any dimension, called darts in combinatorial maps. There are two packages in CGAL allowing to use these combinatorial maps in any dimension (see here for combinatorialMaps and here for LinearCellComplex).

You can use this data structure to represent any Quasi manifold orientable subdivided 3D object. Quoting from CGAL webpage(section 2.4 Combinatorial Map Properties):

A quasi-manifold object is defined as:

A dD quasi-manifold is an object obtained by taking some isolated d-cells, and allowing to glue d-cells along (d-1)-cells.

and orientable as:

It is orientable if it is possible to embed it in the Euclidean space and to define a global "left" and "right" direction in each point of the embedded object.

Pranav
3591 silver badge13 bronze badges
answered Dec 20, 2012 at 13:30
$\endgroup$
3
  • $\begingroup$ How does this compare with Dobkin & Laszlo's FacetEdge representation? That seems to be the only other thing I can find. $\endgroup$ Commented Dec 20, 2012 at 21:37
  • 1
    $\begingroup$ They are equivalent. In FacetEdge representation, there are mainly 3 functions: clock, Enext and Fnext; and in a 3D combinatorial map, there are 3 functions $\beta_1,ドル $\beta_2$ and $\beta_3$. $\endgroup$ Commented Dec 21, 2012 at 8:36
  • 1
    $\begingroup$ Note that this site is about computer science, not library implementations. As such, we appreciate answers who contain ideas and concepts, not just references to implementations. $\endgroup$ Commented May 28, 2014 at 14:13

Your Answer

Draft saved
Draft discarded

Sign up or log in

Sign up using Google
Sign up using Email and Password

Post as a guest

Required, but never shown

Post as a guest

Required, but never shown

By clicking "Post Your Answer", you agree to our terms of service and acknowledge you have read our privacy policy.

Start asking to get answers

Find the answer to your question by asking.

Ask question

Explore related questions

See similar questions with these tags.