boxes. The plane is positioned between all pairs of
consecutive faces, its intersection with the boxes in-
ducing a set of rectangles. The 2D boundary of the
set of rectangles is computed using already existing
methods. Then, the final 3D boundary is obtained by
comparing consecutive 2D boundaries.
One of the most challenging aspects of geometri-
cal algorithms is to achieve robustness, given the vari-
ety of possible inputs (Hoffmann, 1989). Even when
the domain is restricted to axis-aligned polyhedra, de-
generate cases can still pose a problem. A geometrical
degeneracy can be caused by the existance of copla-
nar faces, colinear edges, or coincident vertices. Non-
trihedral vertices can also be considered degeneracies,
and they can be originated from the previously men-
tioned degeneracy kinds.
Our method is robust to all cases, and it generates
the expected output for any given input. It is able to
handle floating point numbers, and, most importantly,
generates no underflow conditions, by applying only
comparison and assignation operators on them.
Besides its robustness, our algorithm has other
noteworthy positive properties. Additionally, it re-
quires no complex data structures to be implemented.
Due to separating 3D from 2D concerns, the method
is highly parallelizable.
2 RELATED WORK
The properties of union hyper-rectangles have been
the focus of theoretical study. It is known that the
union of n axis-aligned boxes in dimension d has a
worst-case combinatorial complexity of θ
n
d
. If the
boxes are hypercubes, the union has combinatorial
complexity of O
n
dd/2e
. If the hypercubes have con-
stant size the complexity reduces to O
n
bd/2c
(Bois-
sonnat et al., 1998). Kaplan et al. presented an
algorithm to compute the union of d-dimensional
hypercubes of constant size in O
n
bd/2c
polylog n
time (Kaplan et al., 2007).
In the literature, most of the effort is devoted to
compute the volume of the union, which is known as
Klee’s measure problem (Klee, 1977), rather than ex-
plicitly constructing the union. Interestingly, when
d > 2 the volume can be computed more efficiently
than the union. For example, the algorithm of Over-
mars and Yap runs in O
n
d/2
logn
time (Overmars
and Yap, 1991). It remains an open question whether
faster algorithms are possible, or if it is possible to
prove tighter lower bounds. In particular, it remains
open whether the algorithm’s running time must de-
pend on d (Chan, 2010). Unfortunately, as the worst-
case complexity of the union of axis aligned boxes is
θ
n
d
, theoretical efforts have been focused on the
efficient computation of their volume.
Two different main strategies were proposed to
compute the union of two-dimensional axis-aligned
rectangles: sweep line (Jr. and Preparata, 1980) and
divide and conquer (G
¨
uting, 1984) algorithms. Both
algorithm types run in O (n log n + k) time, where k is
the number of vertices of the union.
Concerning the three-dimensional case, there ex-
ist several classical methods to compute the boundary
of CSG (Requicha and Voelcker, 1985). Most of them
classify the set of CSG primitives with some kind of
spatial decomposition scheme (Thibault and Naylor,
1987). Hachenberger et al. have studied and opti-
mized boolean operations on Nef Polyhedra, and that
handle all cases, including all degeneracies (Hachen-
berger and Kettner, 2005). Baumann et al. compute
the union of three dimensional axis-aligned boxes,
represented by a set of enclosing rectangles, by an
octree-based incremental algorithm (Baumann et al.,
2008). Campen et al. presented a robust method
that computes boolean operations using an adaptive
octree with nested binary space partitions (Campen
and Kobbelt, 2010). Schifko et al. presented a robust
sweeping plane algorithm to compute boolean oper-
ations on meshes, based on R-trees (Schifko et al.,
2010).
3 PREVIOUS DEFINITIONS
In this section we introduce some basic definitions
used throghout the paper.
A polygon is a bounded subset of R
2
enclosed by a
finite set of line segments, called edges. The edges
meet only at their endpoints, called vertices. A
polygon face is a single connected component of
a polygon.
An orthogonal polygon is a polygon enclosed by
axis-aligned edges. An edge is called vertical if
it is parallel to the ordinate and horizontal if it is
parallel to the abscissa.
An orthogonal manifold polygon is an orthogonal
polygon such that every vertex is shared by a ver-
tical and a horizontal edge.
An orthogonal pseudomanifold polygon is a general-
ization of an orthogonal manifold polygon, which
allows non-manifold vertices. A non-manifold
vertex is a vertex polygon with four incident
edges.
A polyhedron is a bounded subset of R
3
enclosed
by a finite set of non-intersecting planar polygons,
called faces.
APracticalandRobustMethodtoComputetheBoundaryofThree-dimensionalAxis-alignedBoxes
35