We describe a perturbation scheme to overcome degeneracies and precision
problems for algorithms that manipulate polyhedral surfaces using floating
point arithmetic.
The perturbation algorithm is simple, easy to program and completely removes
all degeneracies. We describe a software package that implements it, and report
experimental results. The perturbation requires O(n log^3 n +nDK^2) expected
time and O(n log^3 n + nDK^2) working storage, and has O(n) output size, where
n is the total number of facets in the surfaces, K is a small
constant in the input instances that we have examined, D is a constant
greater than K but still small in most inputs, and both might be as large
as n in `pathological' inputs. A tradeoff exists between the magnitude
of the perturbation and the efficiency of the computation. Our perturbation
package can be used by any application that manipulates polyhedral surfaces
and needs robust input, such as solid modeling, manufacturing and robotics.
We describe an application for the computation of swept volumes, which uses
our perturbation package and is therefore robust and does not need to handle
degeneracies. Our work is based on the reference below, which handles the case
of spheres, extending the scheme to the more difficult case of polyhedral
surfaces perturbation.
Links
Sigal Raab
Controlled perturbation for arrangements of polyhedral surfaces with
application to swept volumes Proc. 15th ACM Symposium on Computational Geometry, Miami, 1999,
pp 163-172. [BibTex,gzipped PostScript]