Intersection Queries for Flat Semi-Algebraic Objects in Three Dimensions and Related Problems
Let 𝒯 be a set of n planar semi-algebraic regions in ℝ^3 of constant complexity (e.g., triangles, disks), which we call plates. We wish to preprocess 𝒯 into a data structure so that for a query object γ, which is also a plate, we can quickly answer various intersection queries, such as detecting whether γ intersects any plate of 𝒯, reporting all the plates intersected by γ, or counting them. We also consider two simpler cases of this general setting: (i) the input objects are plates and the query objects are constant-degree algebraic arcs in ℝ^3 (arcs, for short), or (ii) the input objects are arcs and the query objects are plates in ℝ^3. Besides being interesting in their own right, the data structures for these two special cases form the building blocks for handling the general case. By combining the polynomial-partitioning technique with additional tools from real algebraic geometry, we obtain a variety of results with different storage and query-time bounds, depending on the complexity of the input and query objects. For example, if 𝒯 is a set of plates and the query objects are arcs, we obtain a data structure that uses O^*(n^4/3) storage (where the O^*(·) notation hides subpolynomial factors) and answers an intersection query in O^*(n^2/3) time. Alternatively, by increasing the storage to O^*(n^3/2), the query time can be decreased to O^*(n^ρ), where ρ = (2t-3)/3(t-1) < 2/3 and t ≥ 3 is the number of parameters needed to represent the query arcs.
READ FULL TEXT