Using generic programming for designing a data structure for polyhedral surfaces

Abstract Software design solutions are presented for combinatorial data structures, such as polyhedral surfaces and planar maps, tailored for program libraries in computational geometry. Design issues considered are flexibility, time and space efficiency, and ease-of-use. We focus on topological aspects of polyhedral surfaces and evaluate edge-based representations with respect to our design goals. A design for polyhedral surfaces in a halfedge data structure is developed following the generic programming paradigm known from the Standard Template Library STL for C++. Connections are shown to planar maps and face-based structures.

[1]  Leonidas J. Guibas,et al.  Primitives for the manipulation of general subdivisions and the computation of Voronoi diagrams , 1983, STOC.

[2]  Alexander A. Stepanov,et al.  Algorithm‐oriented generic libraries , 1994, Softw. Pract. Exp..

[3]  Kevin Weiler,et al.  Edge-Based Data Structures for Solid Modeling in Curved-Surface Environments , 1985, IEEE Computer Graphics and Applications.

[4]  Emo Welzl,et al.  Contour Edge Analysis for Polyhedron Projections , 1997, Geometric Modeling.

[5]  Kurt Mehlhorn,et al.  LEDA: a platform for combinatorial and geometric computing , 1997, CACM.

[6]  Stanley B. Lippman,et al.  Inside the C++ Object Model , 1996 .

[7]  Geert-Jan Giezeman,et al.  The CGAL Kernel: A Basis for Geometric Computation , 1996, WACG.

[8]  Ralph Johnson,et al.  design patterns elements of reusable object oriented software , 2019 .

[9]  Michael J. Vilot,et al.  Standard template library , 1996 .

[10]  Christoph M. Hoffmann,et al.  Geometric and Solid Modeling: An Introduction , 1989 .

[11]  David R. Musser,et al.  STL tutorial and reference guide - C++ programming with the standard template library , 1996, Addison-Wesley professional computing series.

[12]  John Stuart Lakos,et al.  Large-Scale C++ Software Design , 1996 .

[13]  Lutz Kettner,et al.  On the design of CGAL the computational geometry algorithms library , 1998 .

[14]  Lutz Kettner Designing a data structure for polyhedral surfaces , 1997 .

[15]  E. Steinitz,et al.  Vorlesungen über die Theorie der Polyeder unter Einfluss der Elemente der Topologie , 1934 .

[16]  Josie Wernecke,et al.  The inventor mentor - programming object-oriented 3D graphics with Open Inventor, release 2 , 1993 .

[17]  Bruce G. Baumgart A polyhedron representation for computer vision , 1975, AFIPS '75.

[18]  James O. Coplien,et al.  Curiously recurring template patterns , 1995 .

[19]  Jed Hartman,et al.  The VRML 2.0 handbook - building moving worlds on the web , 1996 .

[20]  Stefan Schirra,et al.  A Case Study on the Cost of Geometric Computing , 1999, ALENEX.

[21]  Andrew S. Glassner,et al.  MAINTAINING WINGED-EDGE MODELS , 1991 .

[22]  Mark de Berg,et al.  Computational geometry: algorithms and applications , 1997 .

[23]  Bjarne Stroustrup,et al.  C++ : programovací jazyk : The C++ programming language (Orig.) , 1997 .

[24]  Alexander A. Stepanov,et al.  Generic Programming , 1988, ISSAC.

[25]  David E. Muller,et al.  Finding the Intersection of two Convex Polyhedra , 1978, Theor. Comput. Sci..

[26]  Mark H. Overmars Designing the Computational Geometry Algorithms Library CGAL , 1996, WACG.

[27]  Remco C. Veltkamp,et al.  Getting Started with CGAL , 1997 .

[28]  Martti Mäntylä,et al.  Introduction to Solid Modeling , 1988 .