Technical Reports

The ICICS/CS Reading Room


UBC CS TR-91-16 Summary

A Simple Primal Algorithm for Intersecting 3-Polyhedra in Linear Time, July 1991 Andrew K. Martin, 44 pages

This thesis presents, in full, a simple linear time algorithm for intersecting two convex 3-polyhedra P and Q. This differs from the first such algorithm -- due to Chazelle -- in that it operates entirely in primal space, whereas Chazelle's algorithm relies heavily on duality transforms. We use the hierarchical representations of polyhedra due to Dobkin and Kirkpatrick to induce a cell complexes between coarse approximations, P^k and P_k of P satisfying P_k subset-of P subset-of P^k, and similar approximations Q^k and Q_k of Q satisfying Q_k subset-of Q subset-of Q^k. We show that the structure of such complexes allows intersection queries to be answered efficiently. In particular, the sequence of cells intersected by a ray can be identified in time proportional to the length of the sequence. The algorithm operates by recursively computing the intersections: P^k intersect Q_k and P_k intersect Q^k . Then edges of the union of approximations P intersect Q^k and Q intersect P^k are traversed by tracing their intersection with the two cell complexes. We show that each such edge can be traversed in constant time. In the process, most of the edges of P intersect Q which lie simultaneously on the boundary of P and Q will be traced. We show that the total time needed to construct those which remain is linear in the size of P and Q . Though based on the same general principles, the algorithm presented here is somewhat simpler than that described by Chazelle, which uses only the cell complexes induced by the inner hierarchical representations of P and Q . By extending Chazelle's search structure to the space exterior to the given polyhedra, we avoid having to operate simultaneously in primal and dual spaces. This permits us to conceptualise the algorithm as traversing the edges of the boundary of (P intersect Q^k) union (Q intersect P^k). As a side effect, we avoid one half of Chazelle's recursive calls, which leads to a modest improvement in the asymptotic constants.


If you have any questions or comments regarding this page please send mail to help@cs.ubc.ca.