Designing a data structure for polyhedral surfaces

Design solutions for a program library are presented for combinatorial data structures in computational geometry, such as planar maps and polyhedral surfaces. Design issues considered are genericity, flcsibility, time and space efficiency, and ease-of-use. We focus on topological aspects of polyhedral surfaces. Edge-based reprew%ations for polyhedrons are evaluated with respect to the 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 arc shown to planar maps and face-based structures managing holes in facets.

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

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

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

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

[5]  Bruce G. Baumgart A polyhedron representation for computer vision , 1899 .

[6]  E. Welzl,et al.  Contour Edge Analysis for Polyhedron Projections , 1997 .

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

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

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

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

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

[12]  Alexander A. Stepanov,et al.  C++ Standard Template Library , 2000 .

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

[14]  MehlhornKurt,et al.  LEDA: a platform for combinatorial and geometric computing , 1995 .

[15]  Bjarne Stroustrup,et al.  The C++ programming language (2nd ed.) , 1991 .

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

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

[18]  Geert-Jan Giezeman,et al.  On the design of CGAL a computational geometry algorithms library , 2000, Softw. Pract. Exp..

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

[20]  Bjarne Stroustrup,et al.  C++ Programming Language , 1986, IEEE Softw..

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

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

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

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

[25]  Geert-Jan Giezeman,et al.  On the design of CGAL a computational geometry algorithms library , 2000 .

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

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

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

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

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