Abstract
Computing an arrangement of segments with some geometrical and topological guarantees is a critical step in many geometry processing applications. In this paper, we propose a method to efficiently compute arrangements of segments using a strip-based data structure. Thanks to this new data structure, the arrangement computation algorithm can easily be parallelized as the per strip computations are independent. Another interest of our approach is that we can propose an out-of-core and streamed construction for large datasets, while keeping a low memory footprint. We prove the correctness of our structure and provide a complete comparative evaluation with respect to state-of-the-art demonstrating the interest of our construction for the computation of an exact arrangement.
Similar content being viewed by others
Notes
Thanks to the GeometryFactory company for its help to compare our method with the one in Cgal.
The link to the code and the scripts used in this paper is https://gitlab.liris.cnrs.fr/gdamiand/stripped-hds.
References
Agarwal, P.K., Sharir, M.: Arrangements and their applications. In: J.R. Sack, J. Urrutia (eds.) Handbook of Computational Geometry, chap. 2, pp. 49–119. North-Holland, Amsterdam (2000)
Aggarwal, A., Chazelle, B., Guibas, L., Ó’Dúnlaing, C., Yap, C.: Parallel computational geometry. Algorithmica 3(1–4), 293–327 (1988)
Anderson, R., Beanie, P., Brisson, E.: Parallel algorithms for arrangements. Algorithmica 15(2), 104–125 (1996)
Atallah, M.J., Goodrich, M.T.: Efficient plane sweeping in parallel. In: Proc. of second annual symposium on Computational geometry, pp. 216–225 (1986)
Balaban, I.J.: An optimal algorithm for finding segments intersections. In: Proc. of Eleventh Annual Symposium on Computational Geometry, SCG’95, pp. 211–219. Association for Computing Machinery, New York, NY, USA (1995)
Baumgart, B.: A polyhedron representation for computer vision. Proc. AFIPS National Comput. Conf. 44, 589–596 (1975)
Bentley, J.L., Ottmann, T.A.: Algorithms for reporting and counting geometric intersections. IEEE Trans. Comput. 28(9), 643–647 (1979)
de Berg, M., van Kreveld, M., Overmars, M.H., Cheong, O.: Computational Geometry: Algorithms and Applications, 3rd edn. Springer-Verlag, Berlin, Germany (2008)
Biljecki, F., Ledoux, H., Du, X., Stoter, J., Soon, K.H., Khoo, V.H.S.: The most common geometric and semantic errors in CityGML datasets. ISPRS Ann. Photogramm. Remote Sens. Spatial Inf. Sci. IV-2/W1, 13–22 (2016)
Boissonnat, J.D., Teillaud, M. (eds.): Effective Computational Geometry for Curves and Surfaces. Springer-Verlag, Berlin Heidelberg (2006)
Boissonnat, J.D., Yvinec, M.: Algorithmic Geometry. Cambridge University Press, Cambridge, UK (1998)
Botsch, M., Kobbelt, L., Pauly, M., Alliez, P., Lévy, B.: Polygon Mesh Processing. AK Peters (2010)
Brönnimann, H., Fabri, A., Giezeman, G.J., Hert, S., Hoffmann, M., Kettner, L., Pion, S., Schirra, S.: 2D and 3D linear geometry kernel. In: CGAL User and Reference Manual, 5.0.2 edn. CGAL Editorial Board (2020). https://doc.cgal.org/5.0.2/Manual/packages.html#PkgKernel23
Chazelle, B., Edelsbrunner, H.: An optimal algorithm for intersecting line segments in the plane. J. ACM 39(1), 1–54 (1992)
Damiand, G., Lienhardt, P.: Combinatorial Maps: Efficient Data Structures for Computer Graphics and Image Processing. A K Peters/CRC Press (2014)
Devillers, O., Fronville, A., Mourrain, B., Teillaud, M.: Algebraic methods and arithmetic filtering for exact predicates on circle arcs. Comput. Geom. 22, 119–142 (2002)
Edelsbrunner, H.: Algorithms in Combinatorial Geometry. Springer-Verlag, Berlin Heidelberg, Berlin, Germany (1987)
Fogel, E., Halperin, D., Wein, R.: CGAL Arrangements and Their Applications - A Step-by-Step Guide., Geometry and computing, vol. 7. Springer (2012)
Goodrich, M.T.: Intersecting line segments in parallel with an output-sensitive number of processors. SIAM J. Comput. 20(4), 737–755 (1991)
Goodrich, M.T., Ghouse, M.R., Bright, J.: Sweep methods for parallel computational geometry. Algorithmica 15(2), 126–153 (1996)
Grünbaum, B.: Convex Polytopes. New York, NY (1967)
Gryaditskaya, Y., Sypesteyn, M., Hoftijzer, J.W., Pont, S., Durand, F., Bousseau, A.: Opensketch: A richly-annotated dataset of product design sketches. ACM Transactions on Graphics (Proc. SIGGRAPH Asia) 38 (2019)
Hershberger, J.: Stable snap rounding. In: Proc. of twenty-seventh annual symposium on Computational geometry, pp. 197–206 (2011)
Hoffmann, C.M.: Geometric and Solid Modeling: An Introduction. Morgan Kaufmann Publishers Inc., San Francisco, CA, USA (1989)
Lienhardt, P.: N-Dimensional generalized combinatorial maps and cellular quasi-manifolds. Inte. J. Comput. Geom. Appl. 4(3), 275–324 (1994)
McKenney, M., Frye, R., Dellamano, M., Anderson, K., Harris, J.: Multi-core parallelism for plane sweep algorithms as a foundation for gis operations. GeoInformatica 21, 151–174 (2017)
McKenney, M., McGuire, T.: A parallel plane sweep algorithm for multi-core systems. In: Proc. of 17th ACM SIGSPATIAL international conference on advances in geographic information systems, pp. 392–395 (2009)
Muller, D., Preparata, F.: Finding the intersection of two convex polyhedra. Theoret. Comput. Sci. 7(2), 217–236 (1978)
Pion, S., Fabri, A.: A Generic Lazy Evaluation Scheme for Exact Geometric Computations. Sci. Comput. Program. 76(4), 307–323 (2011)
Rossignac, J.: 3D compression made simple: Edgebreaker with zipandwrap on a corner-table. In: Proc. of International Conference on Shape Modeling and Applications, pp. 278–283 (2001)
Shewchuk, J.R.: Robust adaptive floating-point geometric predicates. In: Proc. of Twelfth Annual Symposium on Computational Geometry, SCG ’96, p. 141–150. Association for Computing Machinery, New York, NY, USA (1996)
Sieger, D., Botsch, M.: Design, implementation, and evaluation of the surface\_mesh data structure. In: W.R. Quadros (ed.) Proc. of 20th International Meshing Roundtable, pp. 533–550. Springer Berlin Heidelberg, Berlin, Heidelberg (2012)
The CGAL Project: CGAL User and Reference Manual, 5.0.1 edn. CGAL Editorial Board (2020). https://doc.cgal.org/5.0.1/Manual/packages.html
Weiler, K.: Edge-based data structures for solid modelling in curved-surface environments. Comput. Graph. Appl. 5(1), 21–40 (1985)
Wein, R., Berberich, E., Fogel, E., Halperin, D., Hemmer, M., Salzman, O., Zukerman, B.: 2D arrangements. In: CGAL User and Reference Manual, 5.0.1 edn. CGAL Editorial Board (2020). https://doc.cgal.org/5.0.1/Manual/packages.html#PkgArrangementOnSurface2
Wolff, M.: Heaptrack: A heap memory profiler for linux (2017). https://github.com/KDE/heaptrack
Author information
Authors and Affiliations
Corresponding author
Additional information
Publisher's Note
Springer Nature remains neutral with regard to jurisdictional claims in published maps and institutional affiliations.
Rights and permissions
About this article
Cite this article
Damiand, G., Coeurjolly, D. & Bourquat, P. Stripped halfedge data structure for parallel computation of arrangements of segments. Vis Comput 37, 2461–2472 (2021). https://doi.org/10.1007/s00371-021-02185-4
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00371-021-02185-4