Abstract
Let \({\mathcal {P}}\) be a set of n polygons in \({\mathbb {R}}^3\), each of constant complexity and with pairwise disjoint interiors. We propose a rounding algorithm that maps \({\mathcal {P}}\) to a simplicial complex \({\mathcal {Q}}\) whose vertices have integer coordinates. Every face of \({\mathcal {P}}\) is mapped to a set of faces (or edges or vertices) of \({\mathcal {Q}}\) and the mapping from \({\mathcal {P}}\) to \({\mathcal {Q}}\) can be done through a continuous motion of the faces such that: (i) the \(L_\infty \) Hausdorff distance between a face and its image during the motion is at most 3/2, and (ii) if two points become equal during the motion, they remain equal through the rest of the motion. In the worst case the size of \({\mathcal {Q}}\) is \(O(n^{13})\) and the time complexity of the algorithm is \(O(n^{15})\) but, under reasonable assumptions, these complexities decrease to \(O(n^{4}\sqrt{n})\) and \(O(n^{5})\). Furthermore, these complexities are likely not tight and we expect, in practice on non-pathological data, \(O(n\sqrt{n})\) space and time complexities.
Similar content being viewed by others
Notes
As in [7], these vertices are associated with the hot pixel so that the center of the pixel they will be snapped to is well defined. This ensures that no intersection is created during the snapping motion, but simply adding one vertex on the edges and strictly inside every hot pixel yields the same result.
Before triangulating, add the hot pixel boundaries to the arrangement so that the triangulating edges do not cross hot pixels. Although triangulating the faces at this stage is useful for the proof of correctness of the algorithm, it improves the complexity without changing the output to triangulate these faces at the end of the algorithm instead; see Sect. 3.3.
The proof in [7] considers separately motions in x and in y but the same argument applies for simultaneous homothetic contractions in x and y.
Note that Steps 2 and 3 do not imply that the vertical projection of edge \(e'\) onto F, it it exists, should be subdividing F because if \(M'\) is a dummy vertex created in Step 3a in the adjacent narrow slab, the segment \(e'\) may be above F without having its vertical projection subdividing F.
Note that \(M'\) could be at the same height as \(M_1\) and then the segment \(M_1M_2\) is not necessarily vertical.
There are \(O(n^4)\) lines supporting these edges, so it would increase the worst-case complexity to subdivide them.
References
de Berg, M., Halperin, D., Overmars, M.: An intersection-sensitive algorithm for snap rounding. Comput. Geom. 36(3), 159–165 (2007)
Devillers, O., Karavelas, M.I., Teillaud, M.: Qualitative symbolic perturbation: two applications of a new geometry-based perturbation framework. J. Comput. Geom. 8(1), 282–315 (2017)
Fortune, S.: Polyhedral modelling with multiprecision integer arithmetic. Comput. Aided Des. 29(2), 123–133 (1997)
Fortune, S.: Vertex-rounding a three-dimensional polyhedral subdivision. Discrete Comput. Geom. 22(4), 593–618 (1999)
Goodrich, M.T., Guibas, L.J., Hershberger, J., Tanenbaum, P.J.: Snap rounding line segments efficiently in two and three dimensions. In: Proceedings of the 13th Annual Symposium on Computational Geometry, pp. 284–293. Association for Computing Machinery, New York (1997)
Greene, D.H., Yao, F.F.: Finite-resolution computational geometry. In: 27th Annual Symposium on Foundations of Computer Science (Toronto 1986), pp. 143–152. IEEE (1986)
Guibas, L.J., Marimont, D.H.: Rounding arrangements dynamically. Int. J. Comput. Geom. Appl. 8(2), 157–178 (1998)
Halperin, D., Packer, E.: Iterated snap rounding. Comput. Geom. 23(2), 209–225 (2002)
Hershberger, J.: Improved output-sensitive snap rounding. Discrete Comput. Geom. 39(1-3), 298–318 (2008)
Hershberger, J.: Stable snap rounding. Comput. Geom. 46(4), 403–416 (2013)
Hobby, J.D.: Practical segment intersection with finite precision output. Comput. Geom. 13(4), 199–214 (1999)
Milenkovic, V.: Rounding face lattices in \(d\) dimensions. In: Proceedings of the 2nd Canadian Conference on Computational Geometry, pp. 40–45 (1990)
Milenkovic, V.J., Nackman, L.R.: Finding compact coordinate representations for polygons and polyhedra. IBM J. Res. Dev. 34(5), 753–769 (1990)
Packer, E.: Iterated snap rounding with bounded drift. Comput. Geom. 40(3), 231–251 (2008)
Acknowledgements
The authors would like to thank André Lieutier for having initially pointed out the problem and its significance for industry, and for many discussions on the problems, Hazel Everett, Mark de Berg, Danny Halperin, Raimund Seidel, and Dave Bremner.
Author information
Authors and Affiliations
Corresponding author
Additional information
Editor in Charge Kenneth Clarkson
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
Devillers, O., Lazard, S. & Lenhart, W.J. Rounding Meshes in 3D. Discrete Comput Geom 64, 37–62 (2020). https://doi.org/10.1007/s00454-020-00202-2
Received:
Revised:
Accepted:
Published:
Issue Date:
DOI: https://doi.org/10.1007/s00454-020-00202-2