Efficient hidden surface removal for objects with small union size
Computational Geometry: Theory and Applications
Ray shooting and parametric search
SIAM Journal on Computing
An efficient algorithm for hidden surface removal, II
Proceedings of the 30th IEEE symposium on Foundations of computer science
On-line construction of the upper envelope of triangles and surface patches in three dimensions
Computational Geometry: Theory and Applications
Davenport-Schinzel sequences and their geometric applications
Davenport-Schinzel sequences and their geometric applications
A core library for robust numeric and geometric computation
SCG '99 Proceedings of the fifteenth annual symposium on Computational geometry
LEDA: a platform for combinatorial and geometric computing
LEDA: a platform for combinatorial and geometric computing
The design and implementation of panar maps in CGAL
Journal of Experimental Algorithmics (JEA)
Ray Shooting, Depth Orders and Hidden Surface Removal
Ray Shooting, Depth Orders and Hidden Surface Removal
Advanced programming techniques applied to Cgal's arrangement package
Computational Geometry: Theory and Applications
Computing the Voronoi cells of planes, spheres and cylinders in R3
Proceedings of the 2008 ACM symposium on Solid and physical modeling
Proceedings of the 2008 ACM symposium on Solid and physical modeling
Arrangements of geodesic arcs on the sphere
Proceedings of the twenty-fourth annual symposium on Computational geometry
Computer Aided Geometric Design
Computing the Voronoi cells of planes, spheres and cylinders in R3
Computer Aided Geometric Design
Sweeping and maintaining two-dimensional arrangements on surfaces: a first step
ESA'07 Proceedings of the 15th annual European conference on Algorithms
Constructing two-dimensional Voronoi diagrams via divide-and-conquer of envelopes in space
Transactions on computational science IX
Constructing two-dimensional Voronoi diagrams via divide-and-conquer of envelopes in space
Transactions on computational science IX
Unreliable point facility location problems on networks
Discrete Applied Mathematics
Hi-index | 0.00 |
Lower envelopes are fundamental structures in computational geometry, which have many applications, such as computing general Voronoi diagrams and performing hidden surface removal in computer graphics. We present a generic, robust and efficient implementation of the divide-and-conquer algorithm for computing the envelopes of surfaces in IR3. To the best of our knowledge, this is the first exact implementation that computes envelopes in three-dimensional space. Our implementation is based on CGAL (the Computational Geometry Algorithms Library) and is designated as a CGAL package. The separation of topology and geometry in our solution allows for the reuse of the algorithm with different families of surfaces, provided that a small set of geometric objects and operations on them is supplied. We used our algorithm to compute the lower and upper envelope for several types of surfaces. Exact arithmetic is typically slower than floating-point arithmetic, especially when higher order surfaces are involved. Since our implementation follows the exact geometric computation paradigm, we minimize the number of geometric operations, and by that significantly improve the performance of the algorithm in practice. Our experiments show interesting phenomena in the behavior of the divide-and-conquer algorithm and the combinatorics of lower envelopes of random surfaces.