Designing and Implementing a General Purpose Halfedge Data Structure

  • Hervé Brönnimann
Conference paper
Part of the Lecture Notes in Computer Science book series (LNCS, volume 2141)


Halfedge data structures (HDS) are fundamental in representing combinatorial geometric structures, useful for representing any planar structures such as plane graphs and planar maps, polyhedral surfaces and boundary representations (BREPs), two-dimensional views of a three dimensional scene, etc. Many variants have been proposed in the literature, starting with the winged-edge data structure of Baumgart[2], the DCEL of [15,9], the quad-edge data structure [11], the halfedge data structure [18,12, and refs. therein]. They have been proposed in various frameworks (references too many to give here):
  • Plane structures: including planar maps for GIS, 2D Boolean modeling, 2D graphics, scienti.c computations, computer vision. The requirements on HDS are that that some edges may be in.nite (e.g., Voronoi diagrams), or border edges (e.g., for bounded polygonal domains), it may include holes in the facets (planar maps), and that if so, one of the connected boundary cycle is distinguished as the outer boundary (the others are inner holes).

  • Boundary representation of three-dimensional solids: including Brep representation, solid modeling, polyhedral surfaces, 3D graphics. The requirements here vary slightly: holes may still be allowed, but there is no need to distinguish an outer boundary, in.nite edges are not always useful but border edges might need to be allowed.


Outer Boundary Voronoi Diagram Delaunay Triangulation Polyhedral Surface Template Library 
These keywords were added by machine and not by the authors. This process is experimental and the keywords may be updated as the learning algorithm improves.


Unable to display preview. Download preview PDF.

Unable to display preview. Download preview PDF.


  1. 1.
    M. H. Austern. Generic Programming and the STL. Professional computing series. Addison-Wesley, 1999.Google Scholar
  2. 2.
    B. G. Baumgart. A polyhedron representation for computer vision. In Proc. AFIPS Natl. Comput. Conf., volume 4, pages 589–596. PS Press, Arlington, Va. 1975.Google Scholar
  3. 3.
    J.-D. Boissonnat, O. Devillers, M. Teillaud, and M. Yvinec. Triangulations in CGAL. In Proc. 16th Annu. ACM Sympos. Comput. Geom., pages 11–18, 2000.Google Scholar
  4. 4.
    E. Brisson. Representing geometric structures in d dimensions: Topology and order. Discrete Comput. Geom., 9:387–426, 1993.zbMATHCrossRefMathSciNetGoogle Scholar
  5. 5.
    C. Burnikel. Delaunay graphs by divide and conquer. Research Report MPI-I-98-1-027, Max-Planck-Institut für Informatik, Saarbrücken, 1998. 24 pages.Google Scholar
  6. 6.
    D. Cazier and J.-F. Dufourd. Rewriting-based derivation of efficient algorithms to build planar subdivisions. In Werner Purgathofer, editor, 12th Spring Conference on Computer Graphics, pages 45–54, 1996.Google Scholar
  7. 7.
    The CGAL Reference Manual, 1999. Release 2.0.Google Scholar
  8. 8.
    J. O. Coplien. Multi-Paradigm Design for C++. Addison-Wesley, 1999.Google Scholar
  9. 9.
    M. de Berg, M. van Kreveld, M. Overmars, and O. Schwarzkopf. Computational Geometry: Algorithms and Applications. Springer-Verlag, Berlin, 1997.zbMATHGoogle Scholar
  10. 10.
    E. Flato, D. Halperin, I. Hanniel, and O. Nechushtan. The design and implementation of planar maps in CGAL. In Abstracts 15th European Workshop Comput. Geom., pages 169–172. INRIA Sophia-Antipolis, 1999.Google Scholar
  11. 11.
    L. J. Guibas and J. Stolfi. Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams. ACM Trans. Graph., 4(2):74–123, April 1985.Google Scholar
  12. 12.
    L. Kettner. Using generic programming for designing a data structure for polyhedral surfaces. Comput. Geom. Theory Appl., 13:65–90, 1999.zbMATHGoogle Scholar
  13. 13.
    L.-Q. Lee, J. G. Siek, and A. Lumsdaine. The generic graph component library. In Proceedings OOPSLA’ 99, 1999.Google Scholar
  14. 14.
    K. Mehlhorn and S. Näher. LEDA: A Platform for Combinatorial and Geometric Computing. Cambridge University Press, Cambridge, UK, 1999.zbMATHGoogle Scholar
  15. 15.
    D. E. Muller and F. P. Preparata. Finding the intersection of two convex polyhedra. Theoret. Comput. Sci., 7:217–236, 1978.zbMATHCrossRefMathSciNetGoogle Scholar
  16. 16.
    F. P. Preparata and M. I. Shamos. Computational Geometry: An Introduction. Springer-Verlag, 3rd edition, October 1990.Google Scholar
  17. 17.
    J. Siek and A. Lumsdaine. Concept checking: Binding parametric polymorphism in C++. In First Workshop on C++ Template Programming, Erfurt, Germany, October 10 2000.Google Scholar
  18. 18.
    K. Weiler. Topological Structures for Geometric Modeling. PhD thesis, Rensselaer Polytechnic Institute, Troy, NY, August 1986.Google Scholar

Copyright information

© Springer-Verlag Berlin Heidelberg 2001

Authors and Affiliations

  • Hervé Brönnimann
    • 1
  1. 1.Polytechnic UniversityBrooklynUSA

Personalised recommendations