#### Straight Skeletons and Mitered Offsets of Nonconvex Polytopes

Discrete Comput Geom
Straight Skeletons and Mitered Offsets of Nonconvex Polytopes
Franz Aurenhammer 0
Gernot Walzl 0
0 Institute for Theoretical Computer Science, University of Technology , Graz , Austria
We give a concise definition of mitered offset surfaces for nonconvex polytopes in R3, along with a proof of existence and a discussion of basic properties. These results imply the existence of 3D straight skeletons for general nonconvex polytopes. The geometric, topological, and algorithmic features of such skeletons are investigated, including a classification of their constructing events in the generic case. Our results extend to the weighted setting, to a larger class of polytope decompositions, and to general dimensions. For (weighted) straight skeletons of an n-facet polytope in Rd , an upper bound of O (nd ) on their combinatorial complexity is derived. It relies on a novel layer partition for straight skeletons, and improves the trivial bound by an order of magnitude for d ≥ 3. Editor in Charge: Kenneth Clarkson Franz Aurenhammer Gernot Walzl
3D straight skeleton; Mitered offset surface; Arrangement of planes
1 Introduction
Skeletal structures for geometric objects are an important concept in diverse areas
of science. Motivated by applicational needs, different types of skeletons and their
geometric and algorithmic properties have been studied, in computational geometry
and also in more practically oriented fields.
The most prominent and widely used skeletal structure is the medial axis. It
represents the set of centers of all multi-tangential circles (or spheres) inscribed to the object.
Defined by distances to the boundary, the medial axis keeps a strong correspondence to
the shape of the object; we refer the reader to [6, 8, 29] for an account of properties and
further literature. However, even when the object boundary is piecewise linear (like for
a polygon in the plane, or a polytope in 3-space), the medial axis contains curved
elements when the object is nonconvex. This is a drawback in its computer construction
and representation, and sometimes also in applications, especially in three dimensions
where the medial axis attains a complex topology and a high algebraic degree. In fact,
there have been several approaches to linearizing and simplifying this concept.
The so-called straight skeleton of a polygon (or polytope) offers a potential
alternative. This structure is not defined via distances but rather in a procedural way, by means
of a mitered boundary offsetting process which shrinks the object in a self-parallel
way till it vanishes. In two dimensions, the shrinking process is combinatorially trivial,
and the geometry of the straight skeleton is well understood [3, 4]. It is a unique graph
whose leaf nodes are polygon vertices like with the medial axis, but whose arcs stem
from angle bisectors and thus are straight-line segments. Figure 1 gives an illustration
and some further explanations.
The planar straight skeleton has proved useful in various areas, including CAD
(offset calculation and path generation), image processing (shape comparison and
manipulation), architecture (automatic roof design), GIS (terrain and city modeling),
and others; see e.g. [8, 16, 21, 32] and references therein. Still, designing fast and simple
construction algorithms has remained a challenge, though powerful tools like
motorcycle graphs [21] and gradient-based decompositions [16] have been developed, which
are of interest in their own right.
It is desirable to find appropriate generalizations of the straight skeleton to three
dimensions, as this would provide piecewise linear solutions for three main operations
on nonconvex 3D polytopes which the medial axis cannot offer: Offset calculation
(a standard operation in CAD), the construction of a skeletal structure (that encodes
the shape of the polytope in a suitable manner), and decomposition (into a polyhedral
mesh with simple cells). However, the precise definition of the shrinking process in 3D
Fig. 1 The boundary of the input polygon is translated inwards at unit speed (left). Thereby, the vertices
of the polygon move on angle bisectors and trace out a unique tree structure—the straight skeleton (right).
There are two kinds of ‘events’ that alter the polygon boundary combinatorially: A polygon edge shrinks
to length zero (the edge event), or a polygon vertex runs into a non-incident polygon edge (the split event)
bears difficulties, and even the existence of a mitered offset surface which is continuous
and not self-intersecting is no longer trivial.
Surprisingly, not much attention has been paid in computational geometry to these
basic questions. Intuitively speaking, shrinking a given polytope means offsetting its
boundary surface in inward direction, in a self-parallel way and at unit speed. Thereby
the polytope facets ‘sweep out’ the cells of the 3D straight skeleton. The polytope
edges (which move in angle bisector planes), and the polytope vertices (which move
along trisector lines), trace out the sheets and the spokes of the skeleton, respectively,
which border its cells. The shrinking polytope undergoes changes of various kinds,
purely geometrical, or of combinatorial nature (changes in the boundary structure), or
topological (appearance or merge of tunnels, or breaking apart).
Erickson (see [18]) observed the interesting fact that offset surfaces that arise in
this way may be ambiguous, leaving different choices for the shrinking process and
thus for the skeleton construction. Indeed, we encounter this problem already ‘in
the first moment’, when polytope vertices of higher degree have to be resolved into
several vertices with different incidence structure on the offset polytope surface: In
general, only polytope vertices of degree 3 behave like polygon vertices, in the sense
that they do not split when the object is shrunk infinitesimally. An elegant idea how
to reduce the vertex resolution problem to a two-dimensional problem is proposed
in Barequet et al. [12], using the combinatorial structure of the weighted1 straight
skeleton [7, 13, 21] in a sectional plane that cuts off the polytope vertex in question.
It remains unclear, though, how to generalize this method to vertices whose incident
polytope faces positively span 3-space (for example, saddle point type vertices), as the
use of more than one sectional plane leads to the necessity of merging planar straight
skeletons, which is an unsolved problem.
The present paper, which contains and extends material from the conference
papers [9, 10], is further concerned with these questions. Necessary and sufficient
conditions for valid mitered offset surfaces of a nonconvex polytope are given (Sect. 3),
along with a proof of existence, and a discussion of their basic properties and
ambiguities. An (inevitably general) definition of nonconvex polytopes is stated in Sect. 2.
We then revisit the two-dimensional reduction of the vertex resolution problem, and
generalize it for polytope vertices of arbitrary type (Sect. 4). This solves, at the same
time, the 3D straight skeleton construction problem for nonconvex polytopes (Sect. 5),
as polytope vertices of higher degree caused by the shrinking process can be treated
in the same uniform manner. In fact, for our vertex splitting algorithm, the type of
a skeleton construction event needs not be known in order to process the event
correctly. We gain further insight into the structure of 3D straight skeletons, concerning
their facial structure and topology in Sect. 5, and their geometry in Sect. 6, where
we also provide an enumeration and categorization of all events that can take place
in the generic case. A more general class of polytope decompositions is introduced
in Sect. 7, where certain members can be computed by a simple direct method. The
basic concepts and proofs in Sects. 3–7 do not depend on the offset speed, nor on the
dimension, which allows for extending our results to the weighted setting (Sect. 8),
1 In the weighted version, the polygon edges are shifted inwards at constant but individual speeds.
and to general dimensions (Sect. 9). We conclude the paper with some
experimental results obtained by implementing our 3D straight skeleton construction algorithm
(Sect. 10). Some potential applications are mentioned, like flattening a polytope [19],
decomposing a polytope [22] into small monotone cells, and offsetting a polygonal
mesh for the purpose of ε-thinning [34].
There are certain special cases where 3D straight skeleton algorithms have been
known. First of all for convex polytopes, where the straight skeleton coincides with the
medial axis, and can be interpreted as the (projected) lower envelope of n hyperplanes
in 4-space that correspond to the n polytope facets. The skeleton therefore consists of
convex cells whose overall size (combinatorial complexity) is (n2) in the worst case,
and it can be computed in O(n2) time by any optimal 4D convex hull algorithm; see
e.g. [27]. Similarly, the straight skeleton for axis-aligned (or orthogonal) polytopes
is the medial axis in the L∞-metric, and has a quadratic behavior in size as well; the
computation time increases by a polylogarithmic factor [12,25]. In these particular
settings, the straight skeleton is a unique structure. No algorithmic results or nontrivial
upper size bounds have been known for (more) general polytopes. However, a
superquadratic lower bound of (n2α2(n)) on the skeleton size exists [12].
We give an O(nd ) upper bound on the combinatorial complexity of straight
skeletons for arbitrary boundary-connected polytopes in d-space, including their positively
weighted versions. This improves the trivial bound by an order of magnitude. The
argument is based on a unique layer partition for straight skeletons and related cell
complexes, introduced in Sect. 7, which may be of interest on its own.
2 Polytope
Here we define the type of polytope we would like to work with, and give some related
definitions and explanations.
A convex polytope is the finite intersection of closed halfspaces of Euclidean
threespace R3, with nonempty interior. A polytope is a bounded subset of R3 which can be
expressed as the finite union of convex polytopes. This definition is quite general. A
polytope can have tunnels, voids, or even be disconnected. The boundary of a polytope
has a facial structure and consists of vertices (points of intersection of three linearly
independent supporting planes), edges (minimal closed2 subsets of intersection lines
bounded by two vertices), and facets (minimal closed subsets of supporting planes
bounded by edges). Note that polytope facets are connected, but are not required to be
simply connected. Moreover, there might exist so-called touching faces, for example,
a vertex or an edge touching the interior of a non-incident facet. That is, the boundary
complex of a polytope needs not be face-to-face. Polytopes with boundary singularities
of various kinds arise naturally during the shrinking process, even for the simple setting
where the input polytope is homeomorphic to a ball and all its facets are triangles.
A polytope, Q, can have various types of vertices. It will turn out useful to draw
the following general distinction: A vertex v of Q is called a touching vertex if there
exists some ε > 0 such that each sphere, centered at v and having a positive radius
2 Topological notion like boundary, interior, etc. is meant relative to the dimension of the object.
Fig. 2 A polytope Q with complex topology. Q contains a tunnel, a void, and three mutually touching
faces—a facet, an edge, and the vertex v. The bottommost facet is not simply connected. Q is a connected
polytope, but is neither interior-connected nor boundary-connected. The closed complement Q of Q (in
a suitable bounding volume) is a valid polytope as well. When Q is shrunk, i.e., when Q is expanded, a
complicated combinatorial change on the boundary takes place at vertex v
of at most ε, intersects the boundary of Q in a disconnected set. (In the polytope
in Fig. 2, the vertex v is of the touching type, but the vertices u and w are not.)
A vertex is called non-touching, otherwise. Among the latter vertices, certain types
are particularly relevant. A vertex v is pointed if there exists an open (geometric)
disk whose intersection with Q is exactly v. A saddle vertex is incident to edges that
positively span 3-space.3 These two types are exclusive, but not exhaustive among the
non-touching vertices. If not already present in Q’s boundary, touching vertices and
saddle vertices will be created generically in the polytope offsetting process, including
such having coplanar facets, or some facet with a reflex angle.
An edge e of a polytope Q is called convex, reflex, or flat respectively, if the dihedral
interior angle spanned by e’s incident facets is smaller, larger, or equal to π . If e is part
of a boundary singularity of Q, then the definition is meant locally for each respective
part of Q. For instance, the edge uv in Fig. 2 is flat in the left part of the polytope, and
convex in the right part. A non-touching vertex v of Q is called convex if all edges
incident to v are convex. Likewise, v is called reflex if all its edges are reflex. Note that
convex vertices are pointed, but reflex vertices are neither pointed nor saddle vertices.
A saddle vertex necessarily has edges of both convexity types. The degree of a vertex v
of Q is the number of edges of Q that are incident to v. Vertex degrees have to be at
least 3, because vertices come from intersecting three or more planes.
We impose no general position assumption on a polytope, nor is this needed for
our structural and algorithmic results. For the ease of exposition, a generic behavior
of the facet offset planes will be assumed at certain places, though only temporarily.
3 That is, the positive hull of the directed edges vw of a saddle vertex v is the entire R3.
3 Valid Offset Surfaces
In this section, we give a characterizing definition of mitered offset surfaces and a
proof of their existence, along with a discussion of some of their relevant properties.
3.1 Characterization
Let Q be a polytope as defined in Sect. 2. Consider some vertex, v, of Q with degree m.
We have m ≥ 3, but the degree of v can be arbitrarily large, m ≤ n − 1, where n counts
the number of facets of Q. To ease the subsequent description we assume, here and in
Sect. 3.2, that v is a non-touching vertex; we will come back to the general situation
(which is similar) in Sect. 4.2.
Let f1, . . . , fm be the facets of Q incident to v. Each such facet fi defines a
supporting plane Hi , and we denote with Hi the parallel offset of Hi by some fixed
value > 0, inward with respect to Q. Note that we may have Hi = H j for i = j ,
when two facets fi and f j are coplanar. Our interest is in the arrangement defined by
the offset planes H1 , . . . , Hm , that is, in the dissection of R3 induced by these planes.
This structure has to comprise all possible offset surfaces that may result (locally)
from resolving the vertex v. We denote this arrangement by A(v); its combinatorial
properties do not depend on , provided this offset parameter is positive.
Now center a sphere, U , at the vertex v, sufficiently small to intersect only faces
incident to v. The intersection of U with the polytope Q is a spherical polygon, S,
which is simply connected because v is a non-touching vertex. Note that S is not
necessarily contained in a hemisphere of U (for example, when v is a saddle vertex). In
the following definition, the planes Hi serve as functions over the spherical domain S.
More precisely, Hi (x ) measures the distance from v to Hi in the direction x ∈ S.
Definition 3.1 A valid offset surface for v is (the graph of) a radial function
that satisfies the following three conditions.
A valid offset surface for v thus is a radially visible4 polyhedral terrain over S,
expressible as the union of certain facets from the arrangement A(v), by conditions (1)
and (3), and locally fitting with its unbounded facets to the offset polytope surface by
condition (2). In particular, has no self-intersections because is a radial function.
Observe that in the limit → 0 supports the facets of Q incident to v, because then
all planes Hi concur at v. These properties are sufficient to have an offset polytope,
Q , of Q defined after splitting the vertex v according to . They are also necessary,
which is evident except for radial visibility that we give a closer look now. (The
existence of Q is guaranteed by Theorem 3.3 in the next subsection.)
4 A subset X of R3 is called radially visible (from the center v ∈/ X ) if every ray emanating from v
intersects X in at most one point. Trivially, the graph of a radial function is radially visible.
Lemma 3.2 Let be the union of all facets of Q that have changed combinatorially,
as a result of resolving the vertex v of Q. If is not radially visible from v, then Q
contains some facet offsetting toward the exterior of Q . The converse of the statement
holds, too.
Proof Let r be an infinite ray originating at v and with r ∩ = ∅. The ray r can
intersect only transversely, because the offset planes Hi avoid v. Let p1 be the
first point of intersection, at facet f1 , say. (Without loss of generality, r does not
intersect any edge of . We can alter r infinitesimally, otherwise.) For increasing ,
the planes Hi move away from v, such that the facet f1 offsets toward the interior
of Q . Now, if is not radially visible with respect to v, then (and only then) a
second point, p2, of intersection of r with exists such that the line segment p1 p2
lies inside Q . But the facet touched by p1 p2 at p2 will offset toward the exterior
of Q . The lemma follows.
Facets that shift in the ‘wrong’ direction contradict the polytope shrinking process,
in the sense that a sequence of polytopes Q , obtained when increasing the offset
parameter , is not ordered by containment. In particular, there will exist points
inside Q which are swept over by the offsetting polytope boundary more than once.
This fact is intolerable for the construction of a 3D straight skeleton, if the skeleton
cells are supposed to partition the polytope Q.
There exist surfaces for v which are not radially visible but do not self-intersect;
see Fig. 4(middle). This shows that ruling out self-intersections is a condition too
weak for our purposes. On the other hand, Definition 3.1 offers maximal generality. It
conforms with the classical mitered offsetting process for polygons in the literature,
but enables additional offset combinatorics in certain situations. The interested reader
may consult Sect. 8.1 at this point, for a brief discussion of the planar case.
3.2 Existence and Basic Properties
The question of the existence of valid offset surfaces arises. An affirmative answer
follows from the results in [9, 10] described in Sect. 4.2. We find it instructive to give
an alternative (and dimension-independent) proof, which is directly based on the offset
plane arrangement A(v).
Theorem 3.3 A valid offset surface as in Definition 3.1 always exists. Moreover,
can be chosen such that all its facets are unbounded.
Proof Let K be the set of all unbounded cells of A(v) whose radial projection to the
sphere U lies in the function domain S. We claim that the boundary surface, F (K), that
results from the union of these cells constitutes a valid offset surface. Clearly, F (K)
is continuous and it satisfies condition (2). It remains to show that F (K) is radially
visible from v. Assume that some ray r emanating from v intersects the boundary of
a (convex) cell C in K a second time. Then C has to be adjacent there to another cell
in K; otherwise, by the continuity of F (K), some offset plane Hi contributing to
F (K) would split C into a bounded and an unbounded part—a contradiction.
Fig. 3 A polytope vertex v of degree 7 (left), and the surface of the union of all unbounded offset
arrangement cells that radially project to the domain S (right)
Fig. 4 Adding the cell C (left), or the cell D (middle), or both cells (right)
To get rid of the bounded facets of F (K) (if any), we now include into K, one by one,
cells adjacent to such facets. (These cells are all bounded; see Fig. 4 for an example of
the cell adding process.) This process terminates, because the added cells will enlarge
the unbounded facets of F (K) to such an extent that no bounded facets remain: For
each unbounded facet of F (K), fi , which is extendable in this way, eventually some
cells will be added that contain a facet from the same supporting plane Hi . Upon
termination, F (K) is a valid surface, as unbounded facets always offset in the ‘right’
direction and thus do not violate radial visibility by Lemma 3.2.
Theorem 3.3 can be generalized to touching vertices (see Sect. 4.2) and is of
fundamental importance for our considerations. The existence of a mitered offset
boundary—and with it, the existence of a 3D straight skeleton—for general
nonconvex polytopes in R3 hinge upon its validity.
Valid offset surfaces are not unique in general; see [18]. The smallest possible
example of ambiguity is for a saddle vertex of degree 4 whose edges alternate between
being convex and reflex [9], as in Fig. 12. We use a bigger example to illustrate
how valid offset surfaces are obtained from the offset plane arrangement. Consider
the degree-7 vertex in Fig. 3(left). The displayed set of arrangement cells (right)
is the smallest set that yields a valid offset surface. All facets of this surface are,
by accident, unbounded. Still, we can add bounded cells while keeping the surface
radially visible, for instance, the cell C shown in Fig. 4(left). This creates a surface
vertex, u, of degree 6. Adding the cell D instead of C leads to a temporary violation of
radial visibility (middle). We have the peculiar situation that one offset plane (marked
with H ) supports the surface with both sides now, such that one of the two facets
defined by H (the hidden triangular facet of D) would shift toward the exterior of the
polytope; cf. Lemma 3.2. This can be remedied by adding the cell C next (right). In
the resulting valid surface, all facets are unbounded again. No more cells can be added
in this example without destroying radial visibility beyond repair.
In conclusion, three valid solutions exist. In one of them, the vertex v gets resolved
into 8 surface vertices, rather than only 5 as in the other two cases. (Such vertices are
marked with ‘•’ in the figures.) Moreover, a degree-6 vertex u occurs there.
These phenomena may be unwanted in applications. Higher-degree surface vertices
complicate the resolution problem for future vertices that arise in the offsetting process
for the polytope Q, in a structural respect and also algorithmically when the resulting
combinatorial changes (later called events) have to be implemented. Generally, offset
surfaces of small combinatorial complexity seem desirable, also in view of a 3D
straight skeleton construction for Q. Bounded surface facets (we term them orphan
facets) trace out extraneous skeleton cells, such that the volume swept over by an
individual offset plane is not interior-connected any more; see Sect. 5. For this reason,
we may require that each offset plane defines a single (and then unbounded) facet
in the surface, as it is the case when a convex vertex v of Q is resolved: The unique
surface then is the radial lower envelope5 of the offset planes, and v splits into vertices
of degree 3 in the generic case, i.e., when no 4 offset planes pass through the same
point. Indeed, we can have similar positive features for arbitrary polytope vertices v.
(The case of touching vertices is covered in Corollary 4.4, see Sect. 4.2.)
Corollary 3.4 Let v be a non-touching vertex of the polytope Q, and let m be the
degree of v. There exists a valid (orphan-free) offset surface for v whose edge graph
is a forest with at most m − 2 inner vertices. In the generic case, all these vertices
have degree 3.
Proof By Theorem 3.3, there exists a valid offset surface for v such that all facets
of are unbounded. The edge graph of then has no cycles, and is a tree or a forest
if certain edges flatten out due to coplanarity of v’s polytope facets. To see that
exclusively contains vertices of degree 3 in the generic case, we observe that surface
vertices of degree ≥4 then are necessarily incident to some orphan facet: Let w have
degree ≥4. Then w is incident to at least 4 facets and, because exactly 3 planes in A(v)
pass through w, at least 2 facets for w stem from the same plane, say Hi . But Hi
cannot define 2 unbounded surface facets incident to w (by Definition 3.1 (2); points
x with (x ) = −∞ would exist, otherwise), so at least one of them is an orphan facet.
The number of vertices of is at most m − 2, the maximal number of inner nodes in
a tree with m leaves.
Even under the restrictions in Corollary 3.4, the offset surface is not unique, as
Figs. 3(right) and 4(right) show. We remark at this point that there exist valid offset
surfaces where all vertices are of degree 3, but orphan facets are still present; see
5 For two radial functions ϕ and ψ over the same spherical domain, their lower (upper) envelope is defined
as the pointwise minimum (maximum) of the function values of ϕ and ψ.
Fig. 8 in Sect. 4.2. The reason is that facets which do not share a vertex can arise
from the same offset plane. With this observation, the degree argument in the proof of
Corollary 3.4 implies:
Lemma 3.5 Let v be a vertex of Q (of arbitrary type), and let be some valid offset
surface for v. If is orphan-free then all its vertices are of degree 3 in the generic
case. The converse is not true, in general.
Let us observe that the lower (or upper) envelope of two valid offset surfaces for v
is a valid offset surface as well. This directly follows from Definition 3.1. In other
words, the set X of valid offset surfaces for v is closed under taking envelopes. This
implies two partial orders on the elements in X , and the existence of two unique
extreme surfaces −, + ∈ X . Extreme surfaces are not necessarily orphan-free, as
Fig. 8(middle) indicates: The maximum set of cells has been added to obtain +.
The shrinking process for the polytope Q refers to the inner offset of its boundary.
In fact, the quest for an outer offset for Q, which may be relevant in certain practical
applications (and where we have < 0 for the offset planes Hi ) leads to an
equivalent problem: It can be viewed as an inner offset problem, when Q is replaced by
the polytope Q that results from taking the (closed) complement of Q in a suitable
enclosing box. As a consequence, all our results are applicable to outer offsets as well.
4 Reduction to Two Dimensions
For algorithmic purposes, it is of advantage to reduce the vertex resolution problem
to one dimension less. We will distinguish two cases, depending on the type of the
polytope vertex considered. More specifically, we discuss a two-dimensional reduction
for pointed polytope vertices first, and then proceed to a generalization for arbitrary
vertices, including the touching vertex type.
4.1 Pointed Case Revisited
Let us consider any pointed vertex v of the polytope Q. Recall from Sect. 2 that v needs
not be a convex vertex, that is, v can have reflex incident edges. However, there exists
a plane E that intersects all edges of Q incident to v. Moreover, as v is a non-touching
vertex by assumption, E intersects Q (locally at v) in a simple polygon, which will be
denoted by P in the sequel. If v is of degree m then P has m edges, e1, . . . , em .
When the offset parameter increases in the shrinking process for Q, the polygon P
shrinks to the inside as well. More precisely, its edges ei ⊂ E ∩ Hi move in a
self1
parallel manner and at individual speeds wi = sin αi > 0, where αi is the dihedral angle
formed by E and the facet(s) of Q corresponding to the offset plane Hi . This planar
offsetting process traces out the so-called weighted straight skeleton [7,13,21] of P
with respect to the edge weights wi . Note that the particular position of the sectional
plane E influences both P and its weights wi , . . . , wm , in a way such that the resulting
skeleton, SK(v), remains combinatorially unaffected: A polygon vertex u shared by
edges ei and e j moves in an angle bisector plane, Bi j , of Hi and H j (which is
independent of and E ). Therefore, u traces out a skeleton arc along the line Bi j ∩ E .
In fact, the skeletons obtained for different choices of E are radial projections of each
other (with respect to the polytope vertex v, where all such bisector planes Bi j pass
through).
Barequet et al. [12] proposed the interesting idea of using the incidence relations
of the weighted straight skeleton SK(v) to resolve the vertex v. We will elaborate on
the properties of this skeleton in some more detail here.
Weighted straight skeletons are not unique when degenerate conditions arise. Edge
events that involve parallel polygon edges can cause ambiguity; see e.g. [13]. (For
unweighted polygons, both edge events and split events always yield a unique offset
boundary, at least in the classical setting.6) However, edge weights are not independent
in our case, which leads to the special property below that we will prove first. Let us
call a polygon vertex convex, reflex, or flat, respectively, if its incident interior angle is
smaller, larger, or equal to π . We observe that a vertex of our sectional polygon P is
convex (respectively, reflex) if and only if its defining edge in the polytope Q is convex
(respectively, reflex). In other words, the convexity status of a vertex of P, or of any of
its offset polygons, is not influenced by the particular position of the sectional plane E .
Lemma 4.1 In the edge events that occur in the construction of SK(v), only convex
new vertices are created in the offset polygon(s).
Proof Suppose that a nonconvex vertex, u, is created in an edge event; see Fig. 5(left).
Then some polygon edge e has to shrink to length zero, and the offsets e1 and e2 of
two other edges e1 and e2 get in touch at u, forming an interior angle of at least π .
Let us assume first that, before the event, e1 and the offset e of e define a convex
interior angle (as drawn in the figure). We fix the sectional plane E orthogonal the line
segment uv, and such that uv is of unit length. Then the supporting line i of edge ei
is at distance cot αi from u. Note that we have α1, α2 < π2 . As ei shifts with speed
1 , the line i reaches u at time cos αi . But we have α1 = α2 in our case, by the
sin αi
existence of e before the event. We conclude that 1 and 2 cannot reach u at the
same time, which is necessary for the occurrence of u as an offset vertex. A similar
argument for the nonexistence of u applies when the offsets e1 and e form a reflex
interior angle (this case is not shown in the figure). It remains to recall that the vertex
structure of SK(v) is the same for all choices of the plane E .
Note that when a (convex) vertex u is created in an edge event, then α1 = α2 holds
for the position of E chosen above; see Fig. 5(middle). To be precise, in the degenerate
case where two or more edges vanish at the same time in the event, rather than a single
edge e, the vertex u may even be flat in order to have α1 = α2; see Fig. 5(right). But
then we must have 1 = 2, instead of mere parallelism of these supporting lines, such
that e1 and e2 merge into a single edge, and u actually is not created as a polygon
vertex. (Observe that u leaves no further trace, but still represents a node of SK(v).) As
a consequence, Lemma 4.1 still holds. In particular, the afore-mentioned ambiguous
case for parallel edges is excluded (where we have 1 = 2, hence α1 = α2).
6 See Sect. 8.1 for a discussion of these issues, in the more general context of Definition 3.1.
Fig. 5 The vertex u is not generated in the left and the right case, respectively. In the case shown in the
middle, the skeleton faces sharing the arc a continue in a monotone way
In summary, there is a unique way to proceed in the construction of SK(v) after
each event. That is, we have a similar behavior as in the unweighted case [4].
The inner arcs of SK(v) form a tree such that exactly one face gi for each edge ei
of P is present, unless the degenerate case above occurs and certain vertices in the
offset polygon ‘flatten out’. SK(v) then is a forest where some collinear edges of P
border the same skeleton face. Interestingly, the faces of SK(v) have the following
connectivity behavior, which we explain below: They are monotone polygons, in
particular, the intersection of a face gi with any line normal to the defining edge ei is
connected. This property is well known for the unweighted straight skeleton [4], but
does not hold for weighted straight skeletons in general, unless the underlying polygon
is convex; see e.g. [7,13].
Lemma 4.2 The weighted straight skeleton SK(v) is a unique structure (up to radial
projection from v). Moreover, its faces are monotone in the direction of their defining
polygon edges.
To see the monotonicity property, we observe that non-monotonicity always arises
in the neighborhood of skeleton nodes created by so-called sticking events; see e.g. [31].
These are edge events where an arc incident to a reflex polygon vertex is involved.
However, when a node u of SK(v) is generated in a sticking event, then we must
have the situation in Fig. 5(middle), by Lemma 4.1. The skeleton construction then
continues with an arc a starting from u, in a way such that the two faces which share a
are monotone in the required directions.
By Lemma 4.2, the improvements in [15,16] of the subquadratic-time algorithm
in [21] for constructing straight skeletons are applicable to SK(v); they are based on
monotone faces. As a consequence, SK(v) can be computed in (roughly) O(m 34 ) time,
when m is the degree of v. The next assertion, which has been stated informally in [12],
shows the relevance of SK(v) for resolving the pointed vertex v.
Lemma 4.3 There is a valid offset surface for v that radially projects to SK(v).
Proof Clearly, the domain for such a surface has to be the spherical polygon S
obtained by radially projecting the polygon P onto a sphere U centered at v. (S is
contained in an open hemisphere of U now, namely, in the radial projection of the
sectional plane E .) Consider an arbitrary point x ∈ S, and denote with x its radial
projection to P. We define the surface by putting (x ) = Hi (x ) if and only if
x lies in the unique (closed) face gi of SK(v) that is bordered by the edge ei of P.
Fig. 6 The vertex v splits in a unique way
It remains to prove that satisfies the conditions in Definition 3.1. Obviously,
is radially visible from v and fulfills (1) and (2) by construction. To see that is
also continuous, (3), consider any inner arc a of SK(v), and let gi and g j be the two
skeleton faces incident to a. Arc a is contained in an angle bisector plane Bi j of the
offset planes Hi and H j , and Bi j passes through the vertex v. This implies that arc a
radially projects to the line Hi ∩ H j . (Note that these two planes cannot be identical,
by the existence of a.) We conclude that for each x ∈ S with x ∈ a, we must have
Hi (x ) = H j (x ), that is, the facets of fit continuously.
Lemma 4.3 implies Corollary 3.4 in Sect. 3.2, for the special case of pointed
polytope vertices v. In particular, each polytope facet fi incident to v gives rise to a single
and unbounded facet fi in the surface above. In the degree-7 vertex example
discussed in Sect. 3.2, the orphan-free surface in Fig. 3(right) is the one of all solutions
that corresponds to SK(v).
We remark that Lemma 4.3—in conjunction with Lemma 4.2—puts some
restriction on valid offset surfaces. This is demonstrated in Fig. 6. If the degree-5 vertex v
(left) could be resolved in two different ways, then the two surfaces (middle, left/right)
were obtained. The former surface cannot come from SK(v), because the face f is
not monotone there. So it must be the latter one, which (unlike the former surface)
does not result from a self-parallel polygon offsetting process, not even for arbitrary
edge weights. We conclude that there is a unique solution, which is the one shown in
Fig. 6(right).
There is another and more well-known projection surface for weighted straight
skeletons of a polygon P, called the skeleton roof ; see e.g. [7,21]. This surface does
not stem from any offset planes, but rather from the planes Li that result from lifting
each point x ∈ P vertically, by w1i times the (signed) distance of x to the supporting
line i of an edge ei of P.
The skeleton roof corresponding to SK(v), and the offset surface for v in
Lemma 4.3, have the same convex/reflex structure of their edges: The convexity status
of a surface edge is uniquely determined by the interior angle formed by the respective
two edges of P. Figure 7 offers an illustration. Note that Lemma 4.1 implies that all
valleys of this roof (i.e., reflex edges) have to start at the boundary of P, a property
that in the unweighted case is characterizing for the skeleton roof, among all possible
roofs for P; see [4]. As a consequence, a similar restriction for reflex edges can be
used to distinguish the offset surface from all other possible solutions. We will see
in Sect. 7 that a generalization of this property to one dimension higher (Lemma 7.4)
leads to an alternative characterization of 3D straight skeletons, equivalent to their
procedural definition in Sect. 5.
Fig. 7 The skeleton roof (left) and its corresponding offset surface (right)
4.2 Bisector Graphs
In this subsection, we discuss a two-dimensional reduction of the vertex resolution
problem for arbitrary polytope vertices.
Non-pointed polytope vertices are more complicated to deal with. For example,
if a vertex v of the polytope Q is a saddle vertex, then a single sectional plane (like
in the preceding subsection) does not suffice to intersect all the edges incident to v.
Using two sectional planes leads to one or more unbounded polygons of intersection
with Q in either plane. If the degree of v is high, these polygons can be arbitrarily
complex, having a large number of convex and reflex vertices. Though the weighted
straight skeleton inside each such polygon can be defined and computed much like
in the (bounded) case before, we now face the task of combining several skeletons
that stem from two different planes. This inherits the problem of merging straight
skeletons, which is unsolved so far. In fact, a solution would imply a novel divide &
conquer method for computing straight skeletons.
This situation can be circumvented when a sectional sphere U as in Sect. 3 is used
for a two-dimensional reduction. In the sequel, let v be an arbitrary vertex of the
polytope Q. We first consider the spherical polygon S = U ∩ Q, which may have
a more general shape now: The boundary of S stays connected as long as v is
nontouching (for instance, a saddle vertex), but it necessarily disconnects if v is a touching
vertex, and S needs not be simply connected any more, and even can disconnect itself.
Still, a valid offset surface for v always exists. In fact, Definition 3.1 and Theorem 3.3
from Sect. 3 generalize directly to more general domains S. The only difference
introduced by a touching vertex v concerns the facet planes for v. In addition to the
facets of Q that have v as a vertex, there exist facets fi of Q now which are only
Fig. 8 Bisector graphs with a tree structure (left), or containing cycles which correspond to orphan facets
(middle, dark gray). Embedding a different tree leads to crossing arcs (right)
touched by v, and whose offset planes Hi have to be taken into account for the
arrangement A(v) as well. Note that v may touch a facet fi singularly, or an edge or a
facet where v is a vertex may touch fi . In any case, the offset plane arrangement A(v)
is well defined, such that all the results from Sect. 3 can be extended.
Let now be a valid offset surface for v. We observe that can contain holes and
can be disconnected, if the same happens for the spherical polygon S. Our interest
is in the incidence structure of the edges of , which is encoded in the set of
nondifferentiability of the radial function over S whose image is . This set defines a
geometric graph in the interior of S, which we term the bisector graph, Gv( ), for v
and . Trivially, the arcs of Gv( ) pairwise do not cross, but rather partition S into
maximal subdomains (called regions) where the function (x ) is differentiable. In
geometric terms, the regions of Gv( ) are the radial projections of the facets of .
The arcs of Gv( ) are subsets of great circles bi j of the form bi j = Bi j ∩ U , where
Bi j is the angle bisector plane through v of the offset planes Hi and H j . Notice that
the arcs of S are not considered to be part of Gv( ). The nodes of S are therefore
of degree 1 in Gv( ), and will be called its leaves. The inner nodes of Gv( ) are of
degree 3 or higher, where a higher degree can occur for two reasons: the presence of
orphan facets in as in Fig. 4(left), or because the offset arrangement A(v) is not
generic.
Figure 8(left/middle) displays the bisector graphs for two valid offset surfaces of a
vertex v with degree 10. The domain S is a pentagonal star, sufficiently small to be
almost flat. Examples like this can be duplicated and combined, to show that the number
of possible valid offset surfaces is as large as 2 (m) in the worst case, when v is of
sufficiently high degree m. This is already true for surfaces having the forest structure
as in Corollary 3.4, that is, for bisector graphs without orphan regions: In Fig. 8, the
regions g and g are already different. In such an example of exponential behavior,
v can either be a touching vertex, being the common apex of (m) pyramids with
pentagonal stars as bases, or a pointed vertex when the stars are joined into a connected
spherical polygon. If orphan regions are allowed, then there exist examples (based on
Fig. 27) where v splits into (m2) surface vertices. The graph in Fig. 8 (right) contains
crossing arcs, and therefore is not a bisector graph. Various (spherical) illustrations
of bisector graphs are given in Sect. 6, along with the events they represent in the
construction of 3D straight skeletons.
Our next aim is an extension of Corollary 3.4 that includes the touching vertex type.
To this end, we call a bisector graph Gv( ) outerplanar (with respect to the spherical
polygon S for v) if all regions of Gv( ) are adjacent to the boundary of S. Observe
that Gv( ) is outerplanar if and only if contains no orphan facets. The graph then
captures the features of an offset surface which are desirable for the reasons mentioned
in Sect. 3.2. Revisiting the proof of Corollary 3.4, we see that the surface considered
there already yields a bisector graph Gv( ) with the required properties. Denote with
c ≥ 0 the number of elementary cycles in Gv( ).
Corollary 4.4 Let v be an arbitrary vertex of the polytope Q, and let m be the number
of facets that contain v. There exist (orphan-free) valid offset surfaces for v such
that Gv( ) is an outerplanar graph with at most m + 2(c − 1) inner nodes. In the
generic case, all these nodes have degree 3.
Cycles in outerplanar bisector graphs stem from the shape of the domain S and
from the sphere topology. Such graphs may also be disconnected, even within a
single connected component of S. In the illustrations given in Sect. 6, Gv( ) is always
outerplanar.
To obtain a canonical bisector graph for a polytope vertex v, the minimum
surface − or the maximum surface + (defined at the end of Sect. 3.2) can be utilized,
or their orphan-free variants when outerplanarity is required. Another unique bisector
graph for v, which is always outerplanar, is the so-called spherical skeleton, Gv∗, of S
on the sectional sphere U , introduced in [9]. This skeleton is defined by a carefully
tuned shrinking process for S, based on the moving offset planes Hi . The task of
constructing Gv∗ is somewhat involved, concerning the arising events which are more
numerous than in the case of planar straight skeletons. We decided not to include the
details here, and refer the interested reader to [9] for a description of this material
instead. The spherical skeleton Gv∗ can be computed in O(m2 log m) time, where m is
the number of facets of Q that contain v.
Observe that the existence of Gv∗ implies a general proof of existence for valid
offset surfaces. In fact, Gv∗ is a generalization to the sphere of the weighted straight
skeleton SK(v) in Sect. 4.1. This shows Gv∗ = Gv( +) in general, by Fig. 3(right)
that corresponds to Gv∗, and Fig. 4(right) that corresponds to Gv( +). There also
exist examples for Gv∗ = Gv( −). In contrast to SK(v), the use of a sectional sphere,
rather than a sectional plane, obviates the need for weighting the arcs of the obtained
spherical polygon.
To select more than one bisector graph for v, the offset arrangement A(v) can be
used directly. A(v) contains (m3) cells, which can be computed in optimal (m3)
time [20]. This is also the worst-case time complexity for extracting the first
outerplanar bisector graph with the cell adding technique in Theorem 3.3: It is not hard to
find an example where a cubic number of cells have to be added. On the other hand,
A(v) implicitly encodes all possible solutions (which can be exponentially many even
when only outerplanar graphs are sought), thus providing all possible choices of how
to proceed in the offsetting process.
A computationally simpler and still flexible approach, and the one we have
implemented for the 3D straight skeleton construction, is the following. By Corollary 4.4,
we can enumerate all combinatorially different outerplanar graphs which are relevant,
and check whether they are bisector graphs for the polytope vertex v under
consideration. Being easy to implement, this method is plausible when the degree m is a
constant, independent of the number n of facets of the input polytope. Indeed, most
solids can be approximated accurately by (boundary-meshed) polytopes with vertices
of small constant degree. Also, in the generic case, the shrinking process can only
create offset polytope vertices of degree ≤8, as it will turn out in Sect. 6.
The graph enumeration is facilitated by the following observations. Let S1, . . . , St
be the connected components of the spherical polygon S for the vertex v to be resolved.
We can treat each component Sk separately, and moreover, adapt to the properties of Sk .
If the boundary of Sk is connected then Corollary 3.4 applies, and attention can be
restricted to graphs that are forests. The same can be done if v is a non-touching vertex,
where we also have only one connected component. Let now mk be the number of
arcs of Sk , and consider the system (bi j ), 1 ≤ i < j ≤ mk , of great circles, obtained
by intersecting the sphere U with the angle bisector planes Bi j associated with Sk .
The next lemma provides a criterion for recognizing whether a given candidate graph
is a bisector graph.
Lemma 4.5 Let G be an outerplanar graph for Sk . Then G is a bisector graph for Sk
and v if and only if (1) all inner nodes of G have degree ≥ 3, and (2) the arcs and nodes
of G can be embedded on the respective components of the circle arrangement (bi j )
inside Sk without self-crossings.
Proof If G fulfills conditions (1) and (2) then a valid offset surface with facets from the
offset planes H1 , . . . , Hmk can be constructed, similar as in the proof of Lemma 4.3.
Conversely, any bisector graph has to fulfill (1), because the vertices of a surface are of
degree at least 3. Assume now that G does not embed inside Sk without arc crossings,
and refer to Fig. 8(right). We claim that the offset planes above now give a surface
for G that is not radially visible from v, implying that G cannot be a bisector graph:
Let two arcs in the embedding of G cross at the point x ∈ Sk . Then the ray from v and
through a suitable point in the neighborhood of x intersects two surface facets (rather
than only one) in their interiors.
Condition (2) in Lemma 4.5 can be tested in O(mk log mk ) time, for example, by
using a generalized plane sweep algorithm for line segment intersection; see e.g. [17].
As a useful byproduct, the geometric embedding of G provides us with extra
information, such that only connected graphs with inner nodes of degree exactly 3 need to be
generated: Arcs of G missing in the corresponding bisector graph, and thus causing
its disconnectedness, reveal themselves by the identity of the respective offset planes.
(Sometimes two arcs of G which are incident to such a ‘flat’ arc have to be
concatenated into a single arc of the bisector graph; this is reflected by their containment in
the same great circle bi j .) Moreover, nodes of degree ≥4 in the bisector graph are
witnessed by arcs of G of length zero. These observations make the enumeration
particularly easy when G is a forest, where it suffices to generate all labeled and unrooted
binary trees with mk leaves [26].
In summary, a universal engine for vertex resolution is obtained, which works for
arbitrary polytope vertices and in all degenerate cases. This ‘vertex splitter’ is useful
not only for initially splitting the higher-degree vertices of the input polytope Q, but
also for handling all the events that arise later during the offsetting process for Q.
Even any multiple event can be processed, i.e., a combination of events of possibly
different types, which take place at the same point in space, and which can be arbitrarily
complex. (For example, when we shrink the complement of the polytope shown in
Sect. 2, the vertex v gives rise to a multiple event. See also Fig. 27 in Sect. 8.) In fact,
the type of an event needs not be known in advance in order to process it correctly.
Still, we will give a complete categorization of (non-initial) events in Sect. 6, under
the assumption that the offset planes behave generically.
5 Straight Skeletons in Three-Space
After having settled some basic questions about mitered offset surfaces for general
nonconvex polytopes, we can now return to the main concern of this paper: the
construction of 3D straight skeletons for such input polytopes. We will maintain full
generality in this section, to point out the general validity of the results. In Sect. 6,
we will have to introduce a generic condition, to be able to categorize the skeleton
construction events in a transparent way.
Like in two-dimensions, the skeleton construction complies with the shrinking process
for the given polytope Q, and is driven by so-called events. These are combinatorial
changes in the boundary structure of the offset polytope Q . Events take place only if
there is a change in the number of offset planes Hi that intersect in the same vertex
of Q . This number is at least three; the results in Sect. 3 ensure that only valid
polytopes as defined in Sect. 2 are generated. When an event happens at vertex v,
then four or more offset planes participate, which when shifted further, constitute the
respective offset arrangement A(v).
Initially, for infinitesimally small , various events will have happened
simultaneously in general, which split higher-degree vertices of Q into vertices of smaller
degree. (We will call such events the initial events, to distinguish them from the
noninitial events that occur later in the offsetting process for Q.) Then, when increases,
between any two consecutive events the boundary of Q keeps its incidence structure
while offsetting. Each facet, edge, and vertex of Q traces out a certain part of a cell, or
sheet, or spoke, respectively, as we shall name these skeleton components. The edges
of Q move in angle bisector planes, and the vertices of Q move along trisector
lines, which are the common intersections of three bisector planes. This implies that
a piecewise-linear structure is being constructed.
Every event is associated with a vertex v of Q where the number of offset planes
that contain v undergoes a change. The vertex v becomes part of the skeleton in the
event, being an endpoint of certain skeleton spokes. We will call such endpoints the
corners of the skeleton. Note that events may happen simultaneously also for a fixed
value > 0, such that k ≥ 2 different vertices v1, . . . , vk of Q are involved at the
same time in different events. Now, the way how each such vertex vi gets resolved
fixes the combinatorics and the geometry of the boundary of Q , for infinitesimally
increased . This, in turn, uniquely determines how the skeleton construction for the
polytope Q will proceed for larger , till the next event is encountered.
By the results in Sects. 3 and 4, the resolution of a vertex vi is always possible via
its offset arrangement A(vi ), but this may be an ambiguous process. This concerns the
initial events, but also the non-initial ones, especially when a non-generic or multiple
event occurs. (Recall that a multiple event refers to a single vertex, unlike simultaneous
events.) Still, Definition 3.1 guarantees that any possible (infinite) sequence of offset
polytopes Q , for growing from 0 to ∞, is totally ordered by inclusion. Moreover,
the boundary of Q changes continuously with , such that each point x ∈ Q is swept
over by the shrinking polytope boundary exactly once. This implies that the offsetting
process cannot ‘cycle’ or lead to overlapping skeleton parts, and that Q (which before
might have disconnected into other components having vanished already) eventually
has to collapse to volume zero, in a final event. In summary, a piecewise-linear cell
complex inside Q is constructed; see Figs. 10 and 29 for illustrations. We are now
ready to state a main theorem of this paper.
Theorem 5.1 Let Q be a polytope in R3 as defined in Sect. 2. Any of the (at least one)
mitered offsetting processes for Q as in Definition 3.1 terminates with the construction
of a piecewise-linear decomposition of Q.
In the decomposition a straight skeleton defines for a polytope Q, the cells are
nonconvex sets in general. Studying their structure is therefore a nontrivial task.
We start by arguing that skeleton cells are always bordered by some polytope facet.
The skeleton cell of a facet fi of Q is defined as the total volume swept over by
the boundary part of Q that comes from the offset plane Hi for fi . This volume
is a connected set, and the reason is that Hi contributes to the boundary of Q in
a continuous way: By definition of the vertex resolution process, Hi +ε can yield a
facet in Q +ε only if Hi −ε did so in Q −ε, for infinitesimal ε with > ε > 0. In
particular, once having stopped contributing to the polytope boundary, an offset plane
cannot reappear, because it does not participate in any future vertex resolutions.
Observe that different (but then coplanar) facets of Q can border the same cell,
if they define the same offset plane. Similarly, a single offset facet can lose simple
connectedness or split into orphan pieces, as in Figs. 4 and 8. The produced skeleton
cell, C , then can split into several interior-connected orphan cells, though C still stays
connected through the vertices that have been resolved. (Fig. 27 offers an illustration
for the planar case.) Such probably undesirable artifacts can be avoided, when abiding
by the orphan-free offset surfaces in Corollary 4.4. Unavoidable is the occurrence of
tunnels in skeleton cells and of holes in skeleton sheets, e.g., when Q has facets with
holes. Simple examples exist in this case; see Fig. 29.
In any case, the cells share another property which is helpful when using 3D straight
skeletons as a partitioning structure: Each cell C is monotone, in the sense that the
intersection of C with any line normal to its defining facet(s) of Q is connected or
empty. This follows from Lemma 7.2 in Sect. 7, which covers a more general class of
Fig. 9 The two possible (generic) incidence structures at a straight skeleton corner v
cell complexes for Q introduced there. The monotonicity implies the absence of voids
in skeleton cells, even when the polytope Q itself is not void-free.
We now take a closer look at the facial structure present in a straight skeleton for Q.
The main fact determining the incidence structure is that, in the offset polytope Q ,
all vertices are of degree at least 3 for any value of . This implies that each spoke
has 3 incident sheets and cells, respectively, or more in non-generic cases (which we
do not discuss in detail here), but not possibly only 2.
Consult Fig. 9. Let be the trisector line that supports a spoke s, and consider an
endpoint v of s which is an inner corner of the skeleton (that is, v is not a vertex of Q).
Another trisector line = has to pass through v. The six involved bisector planes,
one triple for and one for , now can be pairwise different or not. In the former case
(left), v is incident to 6 sheets, 4 spokes that span 3-space, and 4 cells, like in a convex
cell complex.
In the latter case (right), one plane in the triple for identifies with a plane in the
triple for . (No other pair can identify, by = ). This plane, call it B, contains the
lines and , each of which defines two collinear spokes of v. These 4 spokes can span
only 2 diametral sheets contained in B, but they span 4 other sheets that stem from the
two bisector planes different from B in each triple. The latter sheets therefore have v
as a ‘flat’ corner. Again, 4 cells meet at v, but there are two cells, say C1 and C2, each
of which is supported by both sides of the plane B, having a double-adjacency there.
Note that the resulting cell complex is still face-to-face, because v is a corner in all
participating faces. Therefore, this geometric anomaly implies no inconsistency with
the local incidence structure given in a convex face-to-face cell complex. The events
shown in Figs. 12, 13, and 21 lead to such an interesting constellation, in a generic
way. In conclusion, from an implementation point of view, any of the various available
data structures for storing convex cell complexes can be used for 3D straight skeletons.
Geometrically, when a skeleton cell is considered as a separate polytope, it can have
several kinds of vertices, including the reflex and the saddle type. Touching vertices
occur as well, namely, as corners that concatenate orphan parts of the same skeleton
cell. However, in the geometric degeneracy described above, the vertex v is not a
touching vertex for the cells C1 and C2.
Returning to topological issues, let us study the spoke graph of a 3D skeleton
next, i.e., the graph formed by its spokes and corners. Whereas skeleton cells are
Global events of the collision types collinear-edge/edge, edge/facet, and facet/facet
are not listed; these simultaneous events can have a more complex structure. Apart
from that, the table represents a complete enumeration, as is also indicated by the
regularities of vertex degrees (Column 4) and of bisector graph structures (Column 6).
7 Roof Complexes
Our main results on mitered offset surfaces and straight skeletons are based on
arrangements of planes in 3-space, and therefore can be generalized naturally. We will address
extensions in three different directions—which can be combined—in the present
section and in Sects. 8 and 9, respectively. Arrangements will play a double role, for
resolving vertices of a polytope Q on the one hand, and for defining piecewise-linear
surfaces above Q, on the other.
It is well known that the straight skeleton of a polygon in the plane defines a roof
surface in three dimensions [4,21]. We have mentioned this property already in Sect. 4.1
and illustrated it (for the weighted case) in Fig. 7. In short terms, the straight skeleton
is the vertical projection of the roof surface. Similar is the situation in one dimension
higher, which we will exploit now to define more general cell decompositions for
polytopes.
Let Q be our polytope in R3. Every straight skeleton, SK, of Q defines a
fourdimensional surface as follows. Let C1, . . . , Cn be the cells that constitute SK, and
denote with Hi the plane that supports the cell Ci at a facet of Q. We identify R3 with
the hyperplane W 0 : t = 0 of R4, where t stands for the 4th coordinate. Now consider
the hyperplanes
with δ(x , Hi ) measuring the normal distance of a point x ∈ W 0 to Hi (signed to be
positive on the side of Hi that contains Ci ). Viewing Li as a linear function on W 0,
the skeleton roof for SK is defined as the piecewise-linear and continuous function
ϕ : Q → R with ϕ(x ) = Li (x ) for all x ∈ Ci and i = 1, ..., n.
We can also define more general roofs for Q, by relaxing the condition that binds
roofs to straight skeletons.
Definition 7.1 Let ψ : Q → R by a continuous function with ψ (x ) = 0 for all x
on Q’s boundary, and ψ (x ) = Li (x ) for at least one index i . We call the graph of ψ
a roof for the polytope Q, and the subset of Q where ψ is non-differentiable a roof
complex for Q.
Roof complexes are cell complexes inside Q, coming from vertically projecting
onto W 0 the faces of the piecewise-linear surface in R4 defined by a roof. Among
such decompositions of Q, there have to be all its straight skeletons. But also different
cell complexes are contained in this class, as is indicated (in one dimension lower)
by Figs. 4 and 8. However, the local incidence structure in a roof complex has to be
the same as in a straight skeleton, as both structures are defined by the same type of
piecewise-linear functions.
Note the similarity between roof surfaces and offset surfaces in Definition 3.1.
In fact, offset surfaces can be seen as the roofs defined by a radial function ψU on
a sphere U in R3. Roof complexes on U then have bisector graphs as their spoke
graphs, and among them the spherical skeleton [9] takes the role of the skeleton roof
complex. This reflects the dimension-recursive structure of straight skeletons, which
we will make use of in Sects. 7.3 and 9.
One difference to straight skeletons is that a roof complex can contain additional
cells, namely, more than one connected cell for a given facet fi of Q. In particular, if
there exist orphan cells for fi , then they are not necessarily concatenated by corners
of the complex like in a straight skeleton; see Sect. 5.2. Only one of these cells is
bordered by fi . Nevertheless, the cells have a useful property even for roof complexes
which are not orphan-free.
Lemma 7.2 The union of cells in a roof complex for Q, defined by a fixed facet fi
of Q, is a point set which is monotone with respect to fi .
Proof Let X be the point set in question, and let ψ be the function that induces the
roof complex for Q. We generalize the proof in [3] to one more dimension. Take
some line in the hyperplane W 0 and normal to the supporting plane Hi ⊃ fi , and
consider the restriction ψ | of ψ to . We have ψ | (x ) = Li (x ) if x ∈ X , and
ψ | (x ) = L j (x ) < Li (x ) for some index j = i if x ∈ Q \ X , the inequality coming
from the fact that is normal to the plane Hi but not to the plane H j . As a consequence,
if X is not monotone such that can be chosen to intersect X in a disconnected set,
then the function ψ | is discontinuous. But this is a contradiction, because ψ | is the
restriction of the continuous function ψ .
By the monotonicity property expressed in Lemma 7.2, no voids can exist in the
cells of a roof complex, even if Q itself has voids. This has the nice effect that the
proof of Lemma 5.2 in Sect. 5 generalizes, which is somewhat unexpected as roof
complexes are a much more general concept of cell complexes.
Lemma 7.3 The spoke graph of any roof complex for Q does not contain parts which
are isolated from Q’s boundary, and therefore has O(n) connected components.
Although not every roof corresponds to a straight skeleton, any fixed roof R for Q
encodes a unique shrinking process for Q. This has been discussed for the
twodimensional case in [4]. Let W stand for the horizontal hyperplane t = of R4,
for ≥ 0. (W represents the ‘water level’ in the two-dimensional island model.)
Consider the intersection W ∩ R. This intersection bounds a polytope Q , which
shrinks for increasing . As all roof hyperplanes have the same slope, the edges and
vertices of Q move in angle bisector planes, and along trisector lines, respectively.
Clearly, this offsetting process traces out the roof complex for Q that corresponds
to R. Notice that the process respects Definition 3.1, because a valid cell complex
(without overlapping parts) is constructed. If R is a skeleton roof, then a particular
straight skeleton construction process for Q results, as in Sect. 5.
Figure 25 offers an illustration in one dimension less. We observe that events are
enabled now which do not occur in any straight skeleton construction process: At the
vertex u of R the inverse edge event E3−1 takes place (in three dimensions), such that
a triangular facet of Q is initiated. Moreover, when R contains a local minimum
(not shown in the figure) then the inverse edge event E6−1 occurs, and a void in Q is
generated.
Note that a tetrahedron collapse E6 will take place at each local maximum of R.
(In particular, the polytope Q vanishes in such an event when achieves a global
maximum.) There also are ‘switching-type’ events, which are not roof-specific but
come from non-orphan-free vertex resolution, like the point-symmetric exchange of
facets at the roof vertex v above.
The event E3−1 initiates the construction of a cell in the roof complex D for R, which
is an orphan cell unless it merges later with a partially constructed cell bordered by Q’s
boundary. Likewise, E6−1 and also E5−1 initiate (up to four) cells in D which are possibly
orphan cells. Conversely, when these three inverse events are never induced when W
is raised, then all cells of D stay connected to the boundary of Q (but get possibly
squeezed into orphan parts by switching events). More importantly, the corresponding
shrinking process then always can be realized by resolving the vertices of Q , without
explicit reference to R. This leads to the following alternative characterization of
straight skeletons in R3.
Lemma 7.4 Let R be a roof for Q, and let D be its roof complex. D is a straight
skeleton for Q if and only if the inverse edge events E3−1, E5−1, and E6−1 do not arise
in the shrinking process defined by R.
Being orphan-free is not a sufficient condition for a roof complex to be a straight
skeleton, as we recall from Fig. 4(right).
7.2 Layers in Roofs and Skeletons
For certain roof complexes, a canonical partition of the corners into so-called layers
can be specified. This structural property, which we will describe now, leads to the
first non-trivial upper bound on the size of straight skeletons in R3, and also is of
separate interest. For simplicity, we restrict attention to straight skeletons constructed
by orphan-free vertex resolution. The results in this subsection can be extended to the
class of orphan-free roof complexes.
Consider a polytope Q with connected boundary, and let SK be a straight skeleton
for Q as above. We may assume that the cells of SK are topological balls: Cells are
interior-connected by the orphan-free construction of SK, and cells do not contain
voids because of their monotonicity (Lemma 7.2). Moreover, tunnels in cells can be
avoided by augmenting the polytope with flat edges, such that holes in facets connect
to the outer facet boundary. Such edges give rise to additional sheets in SK, but this
does not alter the remaining parts of the cell complex geometrically, except that flat
corners and spokes are introduced. The combinatorial complexities of SK and of the
unrefined complex are of the same order.
There exists an enumeration method for the sheets in SK, by a greedy process.
As all cells in SK are homeomorphic to balls, we have a topological structure like
for convex cells (apart from multiple adjacencies). Also, all cells are bordered by Q’s
boundary, which is connected by assumption. Therefore, the inner corners of SK can
be added one by one, in a way such that each corner completes one or more sheets
in SK adjacent to already completed ones. In particular, there exist triangular sheets
incident to the boundary of Q, to get the enumeration started. By Lemma 7.3, all
corners of SK can be accessed, and hence all sheets completed, in this process.
Each corner of SK corresponds to the event that constructs it. At this point, we
recall the notion of contacting events from Sect. 6.5. Global events and facet events
are contacting, and all edge events are contact-free. (In a more general roof shrinking
process, the events E3−1, E5−1, E6−1, and the switching-type events are also contact-free,
but they do not occur in the construction of SK; see Lemma 7.4.) The above distinction
of events into two classes induces a coloring on the inner corners of SK. We color a
corner v blue if its event is contact-free, and red, otherwise. The -value where the
event happens is called the time stamp of v.
The greedy process above can be guided by corner colors. In a first round, we
complete a maximal set of sheets by blue corners. We start with the triangular sheets,
and collect all accessed blue corners in a set 1. In a second round, we complete a set
of sheets by red corners, but only while the largest time stamp in 1 is not exceeded.
We collect these red corners in a set 2. This process is repeated by switching colors
until it terminates. We claim that a unique partition of the inner corners of SK into
subsets 1, . . . , k is produced, which will be called the layers of SK.
The following interpretation of layers implies the correctness of the claim. 1 is a
maximal set of edge events which can be carried out correctly without using any
information about contacting events. 2 is a neighbored set of contacting events
which have been ignored meanwhile. Because we could not further enlarge 1 with
blue corners, 1 contains corners which are local maxima in the roof for SK, and
the contacting events in 2 split Q (at least locally) if we execute the events
in 1 ∪ 2 in shrinking order, i.e., for ascending time stamps. This explains why
we can continue with the next blue layer after collecting 2, as triangular sheets
with blue corners are enabled again in the complex SK ∩ Q unless Q vanishes
entirely.
We obtain a linear extension of the partial order in each layer i when sorting i
by time stamps. Concatenation of the sorted subsets now gives a unique total order
Fig. 26 A polygon with three layers {1, 2, 3}, {4, 5}, {6, 7} drawn as white, black, and grey corners (left).
The cells completed in the first and the second layer, respectively, are shaded and hatched. On the right-hand
side, the modified greedy order 1, 2, 3, 5, 4, 6, 7 is simulated. The resulting polylines ( ) and ( )
after the first and the second layer are shown in bold style. ( ) is a simple (actually convex) polygon,
because {4, 5} is the last red layer
of the inner corners of SK, which we term the greedy order for SK. This order will
construct SK sheet by sheet, but differently from the shrinking order, in general.
Visualizing the situation for straight skeletons in two dimensions (Fig. 26, left), we
see edge events correspond to blue corners, and split events to red corners. All red
corners are connected to the polygon boundary [4]. However, they cannot be collected
in a single layer, in general, and there can be linearly many layers.
Our next aim is to realize the greedy order of events in a different geometric way,
with the intention of analyzing their overall number. To this end, in the layer partition
for SK, we reverse the sorted order in each red layer. We then scan through this
modified greedy order v1, v2, . . . , vt of corners, and maintain a surface ( ) in R3
in the way described below (and illustrated in Fig. 26 for the planar case).
Initially, ( 0) is the boundary surface of Q. For a currently processed blue
corner v j with time stamp j , we construct ( j ) by offsetting ( j−1) with the
amount j − j−1 > 0, and performing the edge event for v j , which becomes a vertex
of the surface. Self-intersections resulting from missed contacting events are ignored.
That is, the parts of ( j−1) inverted by self-intersections extend by sliding along
trisector lines, without combinatorial changes that come from contacts. ( j ) has
planar facets, because the offset vertices for a fixed facet of Q stay in the same offset
plane. Therefore, the original edge event at v j can be carried out correctly on ( j ).
In conclusion, ( ) is a connected, but in general self-intersecting, piecewise-linear
surface during the first blue layer (and each later layer).
For each corner v j in the subsequent red layer, a self-intersection of ( j−1) gets
untangled at v j when the surface is offset, because j − j−1 is now negative. The
point v j becomes a vertex of ( j ), and a wrongly oriented triangle or tetrahedron
on the surface disappears there. (Figure 15 shows two among several possible cases;
an edge (left) or a triangle (right) of ( j−1) vanishes, respectively.) As before,
shrinking parts—which are now inverted—and extending parts undergo edge events,
without interference from contacts, and ( ) stays connected and piecewise linear.
The philosophy behind this construction is that, because events are processed in
independent portions, they can be performed consistently on ( ) in the modified
greedy order. Thereby, all events for Q are eventually transformed into
contactfree events for ( ). The polytope Q has to be boundary-connected, so that the
surface ( ) can capture the mutual boundary influence in Q .
Note that ( ) cannot have more edges and facets than Q. No edge or facet
of ( ) ever splits, because all performed events are contact-free, and resemble the
assumed orphan-free vertex resolution for SK. In fact, the size of ( ) decreases
monotonically: Whenever a new surface edge is created, at least one edge vanishes in
the same event. Concerning the size and number of layers, the following holds.
Theorem 7.5 Let Q be a boundary-connected polytope in R3 with n facets, and let SK
be one of its orphan-free straight skeletons. For the layers 1, . . . , k of SK (in its
tunnel-free refinement) we have k = O(n) and | i | = O(n2).
Proof SK consists of interior-connected cells, by its orphan-free construction. We
now recall that each blue layer includes corners that correspond to local maxima in
the skeleton roof for SK. Therefore, at least one cell of SK gets fully completed, if
the events in this layer were performed in shrinking order. In the last blue layer, at
least 4 cells get completed when the offset polytope vanishes entirely. The number of
cells of SK is at most n, and we obtain k ≤ 2(n − 3).
For the cardinalities of layers we give the following arguments. While staying within
a fixed layer , we offset ( ) in a fixed direction. Assume first that is a blue layer.
For each corner v in , an edge event takes place, and at least one edge e on ( )
vanishes in this event. Consider the bisector plane Bi j that contains the edge e. We
study the interplay on Bi j while increases. Let e ⊂ = Hi ∩ H j , and let Hk
and Hm be the two offset planes that define the endpoints of e. The three lines and
= Hk ∩ Bi j and = Hm ∩ Bi j arrive at v at the same time, causing e to vanish.
Edge e may reappear immediately, for example when v is a saddle vertex, but this
can happen only once. Otherwise, as no contacting events can hinder their influence,
at least one of and will reach any further point x ∈ Bi j earlier than . This
implies that Bi j contributes at most two edges to ( ) while is processed. Hence
at most two corners in can be charged to Bi j . From i < j ≤ n we conclude that the
n .
cardinality of a blue layer does not exceed 2 · 2
If is a red layer, then its number of corners is bounded from above by the size
of the pattern of self-intersection on ( ). This size is O(n2), because ( ) has
only O(n) edges and facets.
From Theorem 7.5 an upper bound of O(n3) on the size of (orphan-free) straight
skeletons can be inferred. We have stated this result in Theorem 5.3 in Sect. 5.
The number of layers depends on the shape of the polytope Q. Let us call Q
nearconvex if it allows for some straight skeleton with a single (blue) layer. That is, no
contacting events occur, hence the greedy order is identical to the shrinking order. For
example, convex polytopes are near-convex. Also, the surface ( ) is
intersectionfree once the last red layer has been processed, and ( ) then bounds a near-convex
polytope; see Fig. 26 again. Recognizing and characterizing near-convex polytopes,
or polygons, are interesting problems; an application is described in Sect. 10.2. From
Theorem 7.5 we obtain the following tight bound.
Corollary 7.6 If Q is a near-convex polytope then (at least) one of its straight skeletons
can be constructed with O(n2) edge events. No facet events or global events are
involved.
For general roof complexes for Q, the layer partition needs not exist: The shrinking
process can introduce voids in Q , and cells are not always bordered by Q’s boundary.
In case of its existence, the partition may consist of a super-linear number of layers, if
the complex contains a large number of orphan cells. Likewise, when vertex resolution
is not orphan-free in the straight skeleton construction, then cells get locally but not
necessarily globally completed in blue layers. Examples of size (n3) exist in these
cases; see Sect. 8.
7.3 Computing Roof Complexes
From the algorithmic point of view, roof complexes provide an alternative way of
computing monotone decompositions of a polytope Q, without resorting to straight
skeleton algorithms.
The surface of a roof for Q consists of (the union of) faces from the arrangement,
L(Q), of the n roof hyperplanes L1, . . . , Ln in R4; see Sect. 7.1. As a consequence, the
combinatorial size of any roof complex is bounded from above by the combinatorial
size of L(Q), which is (n4).
To construct a roof for Q, one can compute the arrangement L(Q) in O(n4) time
in a preprocessing step [20], and then apply the cell adding technique from Sect. 3.2
directly (rather than using it in one dimension lower for vertex resolution). We start
with the zone in L(Q) for the horizontal hyperplane W 0, that is, the collection K of
arrangement cells intersected by W 0. Let K be the union of the cells in K. As long as K
does not define a valid function on Q, we continue adding to K cells of L(Q) incident
to (three-dimensional) facets which violate this property. This process terminates with
a collection of cells whose boundary surface defines a roof for Q.
Depending on the kind of cell complex we are aiming at, we can continue the
process. For simplicity, let us assume that L(Q) is generic. As long as roof vertices
of degree larger that 4 exist, we can add respective cells, at the same time restoring
with additional cells (if necessary) the property that K defines a function. This yields
a roof complex D with inner corner degree 4.
Still, the complex D may contain orphan cells, which can be repaired by adding
cells incident to roof facets which do not intersect W 0. An orphan-free complex D∗
with at most n cells is obtained, where the requirement that K gives a valid roof is
then automatically fulfilled.
Lemma 7.7 Let Q be an (arbitrary) polytope with n facets. A decomposition D∗
of Q into n monotone polytopal cells and inner corner degree 4 can be computed in
O(n4) time.
The cell complex D∗ is not unique, but rather depends on the order in which cells
are added. To recognize whether D∗ is a straight skeleton for Q, we can inspect the
inner corners of D∗ concerning the event they embody. By Lemma 7.4, the answer is
affirmative if and only if the events E3−1, E5−1, and E6−1 are not encountered.
It remains unclear how to specify an order on the cells of L(Q) that produces
a straight skeleton. Counterexamples exist, already in two dimensions [4], to the
conjectures that the minimal or the maximal orphan-free roof (seen as functions
on Q) yield a straight skeleton. The (overall) minimal roof R−, or maximal roof R+
respectively, can contain orphan facets and thus seem less relevant in practical
applications.
The following observations indicate that it may be hard to improve the upper size
bound of O(n4) for general roof complexes. By a result in [11], the combinatorial
size of such a complex in R1 (which is a partition of a line segment) can already be
near-quadratic in n. Also, an attempt to apply the lower envelope bound for n linear
partial functions in R4, which is O(n3+ε) [28], is doomed to fail when only Q is
given, without additional knowledge about the roof complex. This is already true in
two dimensions [4]. Finally, the large size of k-levels in hyperplane arrangements
in R4 is discouraging. (The k-level is composed of all arrangement faces which lie
below exactly k − 1 hyperplanes, and the best known upper bound on its complexity
is O(n2k2−ε); see [1].) On the other hand, a roof can never be a subset of any k-level
for fixed k when Q is nonconvex: At each locally nonconvex part of Q, some of the
hyperplanes Li will transversely cut the roof surface, and the intersected roof faces
then belong to different levels. When Q is a convex polytope then the (n − 1)-level
of L(Q), which is the lower envelope of L1, . . . , Ln , constitutes the only existing
roof.
The cell adding method is conceptually simple and flexible, and may construct
polytope decompositions of small size in many cases. For example, the size of
orphan-free 3D straight skeletons is bounded by O(n3) (Theorem 5.3), and tends
to be subquadratic in most examples (Sect. 10.1). This raises the question of
whether a possible tracing algorithm, based on the enumeration method for sheets
in Sect. 7.2, can avoid the (n4) time (and space) barrier in Lemma 7.7, and
achieve an output-sensitive runtime. The layer partition of corners for orphan-free
roof complexes even shows that their computation can in principle be parallelized;
each layer is structured only by a partial order, rather than by a total order.
Unfortunately, it seems that finding the layer partition requires prior knowledge of the roof
complex.
8 Weighted Setting
A concept already considered in [3,21] is to individually tune the speeds of the edges
of a polygon in its shrinking process. Naturally, doing the same for the facets of a
polytope raises our interest. In practical applications, such weighted mitered offset
surfaces might be of particular interest, as they offer additional flexibility for adapting
to given needs.
8.1 (Weighted) Polygons Revisited
As a warm-up, we reconsider the polygon case in the light of Definition 3.1. Let a
polygon, P , be the two-dimensional equivalent of a polytope as defined in Sect. 2.
P may contain holes, and also touching vertices which then belong to more than
two edges. We equip each edge ei of P with an individual weight wi > 0, which
represents its velocity in the shrinking process. Polygon vertices move on weighted
angle bisectors, which are straight lines such that the weighted straight skeleton is a
piecewise linear structure; see also Sect. 4.1.
For a given vertex v of P , its valid offsets are now given by the
(dimensionindependent) conditions in Definition 3.1. Let A(v) be the respective arrangement of
offset lines. Like in the unweighted case, A(v) is combinatorially independent from
the offset parameter . Note that A(v) may contain parallel (non-identical) lines hi
and h j now, which are at distances wi = w j from v. The spherical polygon becomes
a possibly disconnected circular domain; see Figs. 27(left) and 28(left).
If no degeneracies occur in the shrinking process for P , then vertex offsets are
always unique: A(v) is defined by only two lines for initial events, and by three lines
for non-initial events. In the latter case, A(v) contains a single bounded (triangular)
cell t . It is easy to verify that t either must, or cannot, contribute to an inner offset
which is radially visible. That is, edge events and split events are unique.
For multiple events, Definition 3.1 offers more generality than the standard polygon
offsetting process. There is ambiguity caused by orphan edges, also for unweighted
polygons. As an example, see Fig. 27(left) for a multiple split event, which is also
called a vertex event in the literature [21]. Edge events can occur multiply as well,
when two or more edges of P vanish at the same time. Such an event can be resolved
either as in Fig. 5(right), or as in Fig. 25(middle) where orphan cells of the skeleton
are created. The latter instance might be called a switching event, as a point-symmetric
exchange of edges takes place. Switching events have the advantage that they keep the
straight skeleton of P connected when parallel edges get merged, because no vertex
Fig. 27 A multiple split event for a weighted polygon (left). The vertex v resolves into up to 6 vertices
marked with ◦. The right-hand side shows a straight skeleton that contains a quadratic number of orphan
cells, because multiple split events are not resolved in an orphan-free way
Fig. 28 The situation for parallel polygon edges with weights 3 and 1. There are three valid offsets for the
sliding event at vertex v (left). Two of them are the horizontal lines shown in bold. The third offset is drawn
with dotted lines, and leads to a weighted skeleton with orphan cells (right)
of the offset polygon flattens out. Otherwise, the skeleton disconnects into a forest,
even in the unweighted case.
On the other hand, skeleton cells do not stay interior-connected when orphan edges
are allowed in events (but remain connected via the resolved vertex). In fact, a fixed
edge ei of P can trace out (n) concatenated orphan cells when P has n edges; see
Fig. 27(right). Multiple events can lead to planar straight skeletons whose
combinatorial complexity is (n2).
In the weighted case, ambiguity arises in a generic way in a new edge event: The
offsets of two parallel edges ei and e j of P with wi = w j can merge into one edge,
because the edge that separated them vanishes at vertex v. See Fig. 28 for this sliding
event, its three radially visible offsets, and the different skeletons generated by them.
The sliding event does not disconnect the weighted straight skeleton. In the offset line
arrangement A(v), the triangular cell t degenerates to two slabs separated by the third
offset line. Therefore, this type of ambiguity cannot be fixed by ruling out orphan
edges owing to the more general definition of an offset boundary; the arity of the
sliding event is 2.
8.2 Weighted Skeletons in 3-Space
We now study the effect of weighting on a polytope Q in R3. The discussion in the
preceding subsection already indicates that there are no substantial differences to the
unweighted case.
Most importantly, Definition 3.1 extends to weighted offset surfaces in R3, also in
the case where the offset arrangement A(v) contains parallel planes that stem from
differently weighted parallel facets of Q. Moreover, the existence is guaranteed: The
proof of Theorem 3.3 generalizes straightforwardly, which also implies that weighted
offset surfaces have to exist in orphan-free form. Weighted straight skeletons for Q
therefore are well-defined cell complexes, for arbitrary positive facets weights.
The generic condition (Definition 6.1) now has to involve both weights and offset
plane positions. In particular, two parallel offset planes Hi and H j with the same
orientation may identify for some value > 0 if wi = w j , and are counted as two
different planes. Note that a non-generic weighting can force three offset planes to
intersect in a common line for all values of .
Weighting legitimates more offset surfaces, because for general weights new
combinatorics for a polytope vertex can arise. This is also true for orphan-free vertex
resolution, which will be assumed in the sequel. For example, we can now obtain the
two surfaces in Fig. 6(middle), by assigning a weight w > 1 to the facet f of the
degree-5 vertex v, and weight 1 to its four other facets. Stated in different terms, for
such a weighting the arity of the initial event at v is upgraded from 1 to 2. The spherical
polygon for v stays the same, of course, but its bisector graphs change as being defined
by weighted angle bisector planes. The vertex splitter in Sect. 4.2 will automatically
recognize this situation, by checking the validity of candidate graphs with respect to
the altered spherical embedding; cf. Lemma 4.5.
As in two dimensions, new weighting-specific events related to parallelism arise
in R3. For example, when we resolve the apex of a pyramid based on the polygon P
in Fig. 28(right) in an initial event, we obtain the three offset surfaces shown, for a
fixed suitable set of facet weights. This is not possible when all weights have to be the
same, as we recall from Sect. 4.1.
Similarly, when the polygon P is a facet (or a hole in a facet) of the offset
polytope Q , then facet weights can be adjusted to let such a sliding edge event happen at
vertex v, as a non-initial event. Thereby, the two parallel edges of P arrive at v, and
in the orphan-free version they merge into a single edge. This edge can take over the
offset movement of either merged part, which results in two different offset polytopes.
In the weighted straight skeleton, three spokes are completed at v, and one new spoke
(among two possible collinear choices) is constructed in one go at time . Vertex v
becomes a skeleton corner of degree 4, like for unweighted skeletons. The spoke graph
does not continue at v. This event is generic, belongs to the class of edge events because
one edge vanishes, and is of arity 2. Notice that A(v) contains no parallel planes in
this case, but three planes parallel to the same line.
There also exists a non-initial generic sliding facet event. It stems from two parallel
planes in A(v), and is the 3D analogue of the planar sliding event. This event resembles
the facet/facet collision event in Sect. 6.4. However, the identifying offset planes have
the same orientation now, such that the event is not global. It can be categorized as a
facet event, because two polytope facets merge into a single facet of Q . On the other
hand, there is similarity to a simultaneous edge event, because several polytope edges
incident to the merging facets vanish at different vertices of Q . The event is binary,
because the new facet might proceed with either speed of its merged parts. For each
vanished edge, a skeleton corner is generated where 4 spokes are completed, such that
the spoke graph construction does not continue at these corners (like in the events E5,
E6, and Gk−1).
We recall from Sect. 6.3 that certain facet events, or their inverses, also merge two
parallel facets into one. If these facets carry different weights, then the event is not
generic any more, though the structure of the (now binary) event does not change.
By weighting other facets, however, a combinatorially different bisector graph can be
obtained for some facets events, which then stay generic and unary. For instance, this
happens for the inverse of the facet event Fv (but in its non-complementary setting).
No other new weighted events exist in the generic case. A(v) cannot contain 3 or 4
parallel planes, and 4 nonparallel planes which are parallel to the same line lead to the
global event of type collinear-edge/edge collision, in Sect. 6.4. Edge events and global
events where A(v) lacks all kinds of parallelism remain combinatorially unaffected
when weighted, and their arity is preserved. Global events with geometric degeneracies
do not change either.
In summary, the initial events can change when weighted, but generic non-initial
events do not, except possibly for facet events, albeit new event types are enabled.
The incidence structure of the produced weighted straight skeleton, SKw, of Q is that
of a cell complex as in Sect. 5.2. Generally, the properties of SKw are almost the
same as of an unweighted skeleton. All cells of SKw are bordered by Q’s boundary,
because weighted offset planes still contribute continuously during the construction
of SKw in the shrinking process. This property is important. It implies that there are
at most n interior-connected cells, when the construction obeys orphan-free vertex
resolution. Also, the property is needed for Lemma 5.2 to hold: The spoke graph
of SKw is connected to Q’s boundary. In fact, the layer construction in Sect. 7.2
extends (see also below), such that the O(n3) upper bound in Theorem 5.3 is valid for
the combinatorial complexity of weighted straight skeletons in R3.
When orphan facets may be produced in the resolution of vertices, then a cubic
lower bound exists. The construction in Fig. 27(right) can be generalized to R3 in an
obvious way, which results in a straight skeleton of size (n3) even when all weights
are put to 1.
The only larger difference to the unweighted case is the lack of monotonicity of the
skeleton cells (Lemma 7.2). For general facet weights for Q, only the cell of the facet
with smallest weight, which corresponds to the steepest roof hyperplane, is monotone.
In particular, this implies that the cells in SKw can have voids—but only if Q does
the same, similar to the two-dimensional case. Hence Lemma 7.3 still extends to the
spoke graph of weighted roof complexes without orphan cells.
No other proofs in earlier sections are based on the monotonicity property, such
that the respective results carry over to the weighted setting. For instance, if Q is
a boundary-connected polytope, then none of its offset polytopes contains voids
(Lemma 6.5), so that all cells in SKw are still void-free. (This is needed in the
derivation of the cubic size bound in Theorem 5.3.) Also, the computation of roof complexes
extends (Lemma 7.7), and works in O(n4) time for weighted roofs.
In this context, let us mention an optimality property of weighted roofs for convex
polytopes Q, proved in [7]. Let Q have n facets and volume 1. For any positive numbers
λ1, . . . , λn with λi = 1, there exists a weighted roof complex for Q such that its
cells Ci have volumes λi . More precisely, facet weights w1, . . . , wn for Q can be
found, such that the resulting weighted roof complex for Q (which is now unique
and identical to SKw) decomposes Q into prescribed shares. This result does not
generalize to nonconvex polytopes, because SKw then can change discontinuously
with the weighting.
9 Higher Dimensions
The concepts of polytope, radial visibility, and arrangement of planes generalize to
Euclidean d-space Rd , for d ≥ 4. As a consequence, many of the results in this paper
are inherently dimension-independent, and have analogues in higher dimensions. This
section comments on some implications.
The proof of the existence of mitered offset surfaces for a polytope vertex v, being
based on its offset arrangement A(v), generalizes directly to arbitrary dimensions d.
This also includes the orphan-free case, and positively weighted surfaces. Straight
skeletons of nonconvex polytopes in Rd therefore are well-defined geometric
structures, both in their weighted and unweighted form. In a suitably generalized generic
case (which we will assume below), straight skeletons are simple cell complexes, with
exactly d +j1 skeleton faces of dimension j incident to each inner corner v. In
particular, exactly d + 1 cells and spokes, respectively, meet at v. Geometric—but no
combinatorial—degeneracies can occur in the cell structure, due to doubly-adjacent
faces of various dimensions; cf. Sect. 5.2.
The regular structure of a straight skeleton stands in contrast to the incidence
structure of the medial axis of Q, and the high algebraic degree of its components in Rd ,
unless the defining Euclidean metric for the medial axis is replaced by some
piecewise linear metric [2]. Note that a polytope Q in Rd with n facets can have (n d2 )
vertices. On the other hand, the number of cells in a straight skeleton (and also in the
medial axis) ofn Q. can be at most n, and the number of skeleton corners is trivially
bounded by d+1
The structure of an event at a vertex v of Q in its shrinking process is determined by
the arrangement A(v). For non-initial events, A(v) contains d + 1 hyperplanes which
define a single d-simplex as the only bounded cell. This implies that, interestingly,
such events are either unary or binary; there exist at most two resolution surfaces
for v, like in the three-dimensional case (cf. the proof of Lemma 6.3). Initial events,
of course, can be arbitrarily complex and have a high arity.
Our criteria for event classification are still meaningful. Concerning contacting
events, we have global events where combinatorially unrelated parts of the
offset polytope Q collide, and facet events where the same happens within some
facet of Q . Edge events constitute the remaining class, where necessarily some
edges of Q have to vanish, and where events are contact-free. Inverse events are
well-defined via outer offsets or, equivalently, by generalizing Definition 6.2. The
class of facet events may be further refined, by individually referring to face
dimensions j , for 2 ≤ j ≤ d − 1.
Clearly, the number of event types within each class increases with the dimension.
There are d+1 potential edge events, according to the same number of edges of a
2
d-simplex. Also, there are (at least) quadratically many facet events and global events,
because contacting faces of different dimensions have to be paired up. This is probably
also the most suitable method for detecting these events, as higher-dimensional data
structures tend to lose their efficiency in practice. However, all edge events (and all
events from other classes where some edges vanish) can still be detected directly.
As bisector graphs are not appropriate any more, the algorithm of choice for event
processing is the cell adding procedure using the arrangement A(v); see Sects. 3.2
and 4.2. For non-initial events, A(v) contains exactly 2d+1 − 1 cells, such that the
(at most 2) valid offset surfaces of a vertex v can be found reasonably quickly for
small dimension d. Also for initial events, where O(md ) cells have to be added, this
method is still plausible when polytope vertices are of constant degree m ≥ d. This
particularly concerns polytopes in R4, which might be the most interesting case. As
with the bisector-graph based algorithm in Sect. 4.2, the type of an event needs not be
known in advance, which makes a uniform treatment of events possible.
The concept of roofs and their complexes inside a polytope Q generalizes, and
defines a decomposition of Q into polyhedral cells, which are monotone in the
unweighted case. Simple cell complexes as in Lemma 7.7 can be computed in O(nd+1)
time, once more by applying the cell adding technique, but now to the
arrangement L(Q) of the n roof hyperplanes in Rd+1. Again, the main part of the algorithm
is the construction of a hyperplane arrangement.
Finally, the sheet enumeration method from Sect. 7.2 extends to the 2-faces in
straight skeletons of any dimension (including the planar case). Skeleton cells can
be forced to be topological balls, by the augmentation of polytope facets with flat
faces. Then blue triangles generated by edge events always have to be present in an
orphan-free skeleton, and ( j + 1)-sheets can be constructed by completing j -sheets,
for j ≥ 2. That is, the layer partition of corners and their greedy order exist. Simulating
the greedy order by maintaining a surface ( ) in Rd , we see that the number of
layers stays linear in n for (weighted) straight skeletons, because each blue/red pair of
layers can be charged to the construction of some skeleton cell again. The count for
corners per blue layer can be done with respect to the angle (d − 1)-sector planes of
the polytope Q (for example, the n3 trisector planes in R4). The same arguments as
in the proof of Theorem 7.5 apply, and lead to an upper bound of O(nd−1) for a fixed
layer. We obtain the following general theorem for the size of straight skeletons.
Theorem 9.1 Let Q be a boundary-connected polytope in Rd with n facets, for
arbitrary constant dimension d. Every (weighted or unweighted) straight skeleton for Q
is of combinatorial complexity O(nd ) in the orphan-free setting.
Roof surfaces can be viewed as monotone terrains in (non-vertical) hyperplane
arrangements in Rd+1, which are generalizations of monotone paths in line
arrangements [11]. They range between zones and levels; see Sect. 7.3. As mentioned there,
monotone paths in R2 can be long, and the size of a k-level in an arrangement of planes
in R3 can be super-quadratic. But when only unbounded terrain facets are present,
then obviously the terrain size in R2 is 2, and O(n) in R3 because the edges of the
terrain form a planar graph with at most n faces. It remains unclear what happens
in higher dimensions. However, from the straight skeleton bound in Theorem 9.1 we
conjecture that monotone terrains composed of n unbounded facets behave like zones,
having a combinatorial complexity of O(nd ) in Rd+1.
In this section, we report on some experimental results and potential applications.
Many more details concerning implementation aspects and experiments are provided
in [33].
We have implemented an algorithm that computes (weighted) straight skeletons in R3.
To be able to accept input polytopes with vertices of higher degree, the algorithm also
works in the non-generic case. This is eased by the fact that once an event has been
detected, its processing needs not be adapted to its anatomy; all events are treated
uniformly with the vertex splitter in Sect. 4.2. Constant time per event suffices, when
the degree of the resolved vertex is a constant.
The detection of events, on the other hand, is a notoriously difficult and
timeconsuming task, as is well known from the planar case. We have mentioned some
possibilities for speed-up along with the event description. The problem is in finding
the contacting events, especially the global ones. It seems hard to capture the interplay
of the reflex faces of the polytope Q with a structure like the motorcycle graph [21,
32], which reduces the worst-case runtime in two dimensions. In practice, a suitable
volume tetrahedrization of Q should give a satisfactory detection method, with
outputsensitive behavior and sublinear average runtime per event for most boundary-meshed
polytopes. We have only implemented the straightforward method, as our main interest
here is in the structural and quantitative properties of the computed skeletons. For facet
events the detection is still fast, because facet sizes can be considered a constant for
most polytope data.
Figure 29 displays an example of the output. (In fact, most illustrations in Sect. 6
have been produced automatically.) The polytope Q is a cube with three pyramidal
pits. It has 20 vertices which all have degree 3. Therefore, no initial events need to be
performed, and the straight skeleton is constructed with a total of 49 non-initial events.
The global events include 3 piercing events and 1 kissing event, the latter leading to
a merge of two tunnels. There are 22 facet events, where 11 split the offset polytope.
The edge events list as 10 of type E3, 8 of type E6, and only 5 where a single edge
vanishes. Comparing the number of splits to the number of tetrahedra collapses, we
see that 1 + 11 − 8 = 4 splits must be local and destroy tunnels in the offset polytope.
There are more contacting events than edge events, due to the extreme shape of Q.
The number of skeleton corners is vertices plus non-initial events, which gives 69.
The skeleton is unique in this case, because there are no initial events, and the binary
saddle vertex event E1b does not occur. Observe that two facets of Q have holes (the
topmost facet, and the one on the left side), and their cells contain tunnels. Indeed,
there is no greedy order of the events; its existence has to be restored by adding three
flat edges on the boundary of Q.
We have tested various polytopes of different sizes, mostly boundary-triangulated
and modeling common shapes, but also polytopes of extreme shape, like the ones in
Fig. 10 (ID: Pizza Box in the table below) and Fig. 29 (ID: Spiky), and related ones. One
Fig. 29 The polytope ‘Spiky’ with its unweighted straight skeleton (left), and the two offset polytopes
after 7 and 16 events, respectively (right)
of our larger boundary-triangulated input polytopes (ID: Verwortakelt) is displayed in
Figs. 30 and 31. Different straight skeletons for each polytope have been computed,
including weighted skeletons, and their corners/spokes/sheets counted, along with the
number L of layers if they exist. Except for extreme polytopes, the number of corners
always was a small multiple (less that 10) of the number of polytope vertices. The
(maximal) runtime is manageable for moderate polytope sizes. A brief excerpt of our
experiments is given in the following table.
Numbers of vertices and corners are indicated in bold
Events with arity larger than 1 give choice among different (orphan-free) offset
surfaces, especially for initial events. For example, we can maximize the number of
convex edges, or reflex edges respectively, at each event. As can be seen from the table
(Columns 2 and 3), the former strategy led to fewer events, and thus to straight skeletons
of smaller combinatorial size, apart from the first four polytopes whose skeletons are
unique. This choice also tends to keep the volume large, whereas the polytope is
‘slimmed down’ more quickly when reflex edges are maximized. However, extreme
volumes are not achieved; there exist counterexamples for initial events.
Fig. 30 The polytope ‘Verwortakelt’ has 66 vertices and a triangulated boundary. In the construction of
its straight skeletons, the number of edge events always by far dominates the number of facet events and
global events
Fig. 31 As contacting events with topological changes occur rarely for the polytope in Fig. 30, its offset
polytopes keep the approximate shape for a long time
Of course, the volume can be maximized (or minimized) directly in each event.
Unfortunately, this local optimization strategy does not guarantee that the volume
of the offset polytope Q is kept maximal (minimal) for all values of . Similarly,
choosing fewer convex edges in some event can lead to later events which generate
a polytope with more convex edges. Concerning skeleton size, extreme volume gave
quite similar counts as extreme edge convexity, but none of these criteria produced
the smallest (respectively largest) skeleton in all examples.
The effect of weighting on the straight skeleton can be seen in Column 4. In the
respective polytope, all facets carry unit weight but one, whose weight was put to 10.
This can lead to a drastic reduction of the skeleton size (Rows 1 to 3), when the
heavyweighted facet defines a large cell and extrudes many other facets which had larger
cells in the unweighted skeleton. The effect gets slightly stronger when convex offset
edges are maximized, wherefore we used this construction rule.
The layer count L in Column 5 shows that usually only a few layers are present,
unless the polytope has an extreme shape. Convex polytopes, like the one in Row 2,
have a single layer; see Corollary 7.6. For three test polytopes the greedy order does
not exist, because tunnels in skeleton cells arise. The number of layers tends to be
larger when reflex offset edges are maximized; we used this choice in the table.
Concerning optimization criteria, let us mention a relation between the volume of
the offset polytope Q and its surface area. Denote with the union of all offset
facets created in Q +t when a vertex v of Q is resolved. As is radially visible,
the volume V ( ) of the pyramid with base and apex v is the sum of the volumes of
the respective pyramids based on ’s facets. That is, V ( ) = A( ) · 3t , when A( )
is the area of . Considering two offset surfaces 1 and 2 for v, the (local) volume
difference of the offset polytopes Q1 and Q2 therefore is −( A( 1) − A( 2)) · 3t .
This implies that maximizing the volume of an offset polytope minimizes its surface
area, and vice versa.
An interesting though probably hard problem is to find (or even characterize)
straight skeletons that require a minimal number of construction events. This question
is also practically relevant, as such skeletons realize a minimum number of corners.
Planar straight skeletons enjoy various applications, and the same can be expected for
their generalizations in three dimensions. We conclude this paper with mentioning a
few promising candidates.
The most direct application is offset calculation for triangular, or more generally,
polygonal meshes. This operation is important in CAD, for example, for the thinning
of solid objects and tool path generation. A suitable offset definition for the meshed
surface is usually problematic. Surfaces derived from the medial axis [29] are
welldefined, but they are not piecewise linear any more. Spherical and cylindrical patches
have to be dealt with, which arise in the neighborhood of reflex surface components.
For mitered and thus polygonal offset surfaces, many heuristics for locally repairing
and filling the mesh after its facet-based or vertex-based offsetting have been proposed;
see e.g. [24, 34].
Our method automatically produces a topologically correct mitered offset mesh
(which can be re-triangulated if desired), and also determines the largest allowable
offset threshold . Optimization criteria as in Sect. 10.1 can be applied, possibly
combined with weighting strategies which are common in other offsetting approaches.
As a byproduct, our vertex resolution process can be used to convert a triangulated
input surface into a polygonal surface where all vertices have degree 3.
We say that a polytope Q can be flattened if Q can be collapsed by offsetting without
tearing the surface [19]. In other words, Q can be shrunk to volume zero without the
occurrence of any event that changes its topology. Clearly, Q must not contain voids
or tunnels. Near-convex polytopes (Corollary 7.6) always can be flattened, because
edge events do not cause topological changes, but there are also facet events with
this property (see the event table in Sect. 6.5). Our straight skeleton algorithm will
recognize when certain polytopes can be flattened, though we face the problem that
skeletons are not unique: Whether Q stays a topological ball for all may depend
on the shrinking process the skeleton is based on. A plausible heuristic is to resort to
vertex resolution where the volume of Q is maximized.
Having agreed on a particular skeleton for Q, the following strategy can be used.
Only edge events and facet events are performed, whose implementation is usually
fast. The latter events are tested directly whether they tear the surface. Possibly arising
global events are ignored, so that the obtained offset surfaces may self-intersect (a
situation similar to that in Sect. 7.2). This will be detected in later edge events, though,
when surface parts with a ‘wrongly’ oriented neighborhood get collapsed.
The two-dimensional case is much simpler. Exactly the near-convex polygons can
be flattened, and this property can be recognized by constructing a unique straight
skeleton. However, if weighting is allowed then no efficient method is known even in
the planar case. A discussion of several generalized notions of convexity for polygons
(being different from near-convexity) can be found in [5].
Every straight skeleton of a polytope Q, and more generally every roof complex
for Q, defines a decomposition of Q into polyhedral cells. These cells are monotone
in the unweighted case (Lemma 7.2), but can be of complex shape and large size. The
shrinking process offers a direct means to refine the cells into simple shape: We can
use the boundary surface of Q for partitioning, after each event or in well-spaced
-intervals. This will produce a volume mesh with node degree ≤6 that mainly consists
of prismatic cells. When the boundary facets of Q are sufficiently small (which is
usually the case for boundary-triangulated polytopes obtained from approximating
solid objects), then the cells in the mesh will tend to be small as well. Cells still
unsuitable for a particular application, for example, in finite element methods [23],
can be further refined with sheets normal to the defining facets of Q, because the
monotonicity property is retained in such a volume mesh. Also, cell sizes can be
steered by assigning a smaller weight to facets of Q which extrude other facet’s cells.
The monotonicity then may get lost, though.
We recall that a suitable roof complex D for the polytope Q to be volume-meshed
may be computed beforehand, with the method in Sect. 7.3. Then the implementation
of the shrinking process for D is much easier than that for any straight skeleton: The
arising events only need to be processed in increasing order of time stamps, rather
than also be detected, which is by far the more costly task. The time stamp of an
event is given by the normal distance of the respective inner corner v of D to the 4
supporting planes of Q whose -offsets concur in v.
Like in two dimensions, a straight skeleton in R3 can attain a shape that reflects
little of the distance information to the boundary of the input polytope Q. This is
due to reflex boundary features of Q that form small exterior angles, and may be
undesirable in applications. A way to remedy this shortcoming [4], which has been
systematically applied in the polygon case [30], is to ‘mitigate’ reflex vertices and
edges of Q locally by introducing new facets. This can always be done, also when Q
contains saddle vertices, in the offset polytope Q immediately after the initial events,
because Q then is a simple polytope in the generic case (Sect. 6). We conjecture that
a convergence result similar to the one in [30] can be established, showing that the
skeleton of the truncated polytope approximates the medial axis of Q. However, the
(possibly high) arity of the initial events has to be taken into account. With a result of
this kind, straight skeletons could serve as an alternative to existing piecewise-linear
approximations of 3D medial axes; see e.g. [8].
Acknowledgments Open access funding provided by Graz University of Technology. We thank the
anonymous referees for their various constructive comments. We would also like to thank Günter Rote for
stimulating discussions on the saddle vertex problem. Work supported by ESF Programme
EuroGIGAVoronoi: Project I 649-N18, and by Project I 1836-N15, Austria Science Fund (FWF).
Open Access This article is distributed under the terms of the Creative Commons Attribution 4.0
International License (http://creativecommons.org/licenses/by/4.0/), which permits unrestricted use, distribution,
and reproduction in any medium, provided you give appropriate credit to the original author(s) and the
source, provide a link to the Creative Commons license, and indicate if changes were made.
1. Agarwal , P.K. , Aronov , B. , Chan, T.M., Sharir , M. : On levels in arrangements of lines , segments, planes, and triangles. Discrete Comput. Geom . 19 , 315 - 331 ( 1998 )
2. Aichholzer , O. , Aigner , W. , Aurenhammer , F. , Jüttler , B. : Exact medial axis computation for triangulated solids with respect to piecewise linear metrics . In: Proceedings of International Conference on Curves and Surfaces. Lecture Notes in Computer Science , vol. 6920 , pp. 1 - 27 . Springer, Heidelberg ( 2011 )
3. Aichholzer , O. , Aurenhammer , F. : Straight skeletons for general polygonal figures . In: Proceedings of the 2nd Annual International Computing and Combinatorics Conference. Lecture Notes in Computer Science , vol. 1090 , pp. 117 - 126 . Springer, Heidelberg ( 1996 )
4. Aichholzer , O. , Alberts , D. , Aurenhammer , F. , Gärtner , B. : A novel type of skeleton for polygons . J. UCS 1 , 752 - 761 ( 1995 )
5. Aichholzer , O. , Aurenhammer , F. , Demaine , E.D. , Hurtado , F. , Ramos , P. , Urrutia , J. : On k-convex polygons . Comput. Geom . 45 , 73 - 87 ( 2012 )
6. Attali , D. , Boissonnat , J.-D. , Edelsbrunner , H. : Stability and computation of medial axes-a state-ofthe-art report . In: Müller, T. , Hamann , B. , Russell , B. (eds.) Mathematical Foundations of Scientific Visualization , Computer Graphics, and Massive Data Exploration. Series on Mathematics and Visualization , pp. 109 - 125 . Springer, Berlin ( 2008 )
7. Aurenhammer , F. : Weighted skeletons and fixed-share decomposition . Comput. Geom . 40 , 93 - 101 ( 2007 )
8. Aurenhammer , F. , Klein , R. , Lee , D.T. : Voronoi Diagrams and Delaunay Triangulations. World Scientific, Singapore ( 2013 )
9. Aurenhammer , F. , Walzl , G. : Structure and computation of straight skeletons in 3-space . In: Proceedings of the 24th International Symposium on Algorithms and Computation. Lecture Notes in Computer Science , vol. 8283 , pp. 44 - 54 . Springer, Heidelberg ( 2013 )
10. Aurenhammer , F. , Walzl , G. : Three-dimensional straight skeletons from bisector graphs . In: Proceedings of the 5th International Conference on Analytic Number Theory and Spatial Tessellations, Voronoi's Impact on Modern Science vol. 5 , pp. 15 - 29 ( 2015 )
11. Balogh , J. , Regev , O. , Smyth , C. , Steiger , W. , Szegedy , M. : Long monotone paths in line arrangements . Discrete Comput. Geom . 32 , 167 - 176 ( 2004 )
12. Barequet , G. , Eppstein , D. , Goodrich , M.T. , Vaxman , A. : Straight skeletons of three-dimensional polyhedra . In: Proceedings of the 16th Annual European Symposium on Algorithms. Lecture Notes in Computer Science , vol. 5193 , pp. 148 - 160 . Springer, Heidelberg ( 2008 )
13. Biedl , T. , Held , M. , Huber , S. , Kaaser , D. , Palfrader , P. : Weighted straight skeletons in the plane . Comput. Geom . 48 , 120 - 133 ( 2015 )
14. Chazelle , B. , Palios , L.: Triangulating a nonconvex polytope . Discrete Comput. Geom . 5 , 505 - 526 ( 1990 )
15. Cheng , S.-W. , Mencel , L. , Vigneron , A. : A faster algorithm for computing straight skeletons . ACM Trans. Algorithms 12 , 1 - 21 ( 2016 )
16. Cheng , S.-W. , Vigneron , A. : Motorcycle graphs and straight skeletons . Algorithmica 47 , 159 - 182 ( 2007 )
17. de Berg, M. , van Krefeld , M. , Overmars , M. , Schwarzkopf , O. : Computational Geometry. Algorithms and Applications , 2nd edn. Springer Verlag, Berlin ( 2000 )
18. Demaine , E. , Demaine , M. , Lindy , J. , Souvaine , D. : Hinged dissection of polypolyhedra . In: Proceedings of the 9th Workshop on Algorithms and Data Structures. Lecture Notes in Computer Science , vol. 3608 , pp. 205 - 217 . Springer, Heidelberg ( 2005 )
19. Devadoss , S.L. , O'Rourke , J. : Discrete and Computational Geometry . Princeton University Press, Princeton ( 2011 )
20. Edelsbrunner , H. , O'Rourke , J. , Seidel , R.: Constructing arrangements of lines and hyperplanes with applications . SIAM J. Comput . 15 , 341 - 363 ( 1986 )
21. Eppstein , D. , Erickson , J. : Raising roofs, crashing cycles, and playing pool: applications of a data structure for finding pairwise interactions . Discrete Comput. Geom . 22 , 569 - 592 ( 1999 )
22. Hoffmann , C.M.: Solid modeling . In: Goodman, J.E. , O'Rourke , J. (eds.) Handbook of Discrete and Computational Geometry, 2nd edn , pp. 1257 - 1278 . CRC Press, Boca Raton ( 2004 )
23. Hughes , T.J.R. : The Finite Element Method-Linear Static and Dynamic Finite Element Analysis . Dover, New York ( 2000 )
24. Kim , S.J. , Lee , D.Y. , Yang , M.Y. : Offset triangular mesh using the multiple normal vectors of a vertex . Comput. Aided Des. Appl . 1 , 285 - 291 ( 2004 )
25. Martinez , J. , Vigo , M. , Pla-Garcia , N. : Skeleton computation of orthogonal polyhedra . Comput. Graph. Forum 30 , 1573 - 1582 ( 2011 )
26. Ruskey , F. , Williams , A. : Generating balanced parentheses and binary trees by prefix shifts . In: Proceedings of the 14th Australasian Theory Symposium , University of Wollongong, Wollongong, pp. 22 - 25 ( 2008 )
27. Seidel , R.: Convex hull computations . In: Goodman, J.E. , O'Rourke , J. (eds.) Handbook of Discrete and Computational Geometry, 2nd edn , pp. 495 - 512 . CRC Press, Boca Raton ( 2004 )
28. Sharir , M. : Almost tight upper bounds for lower envelopes in higher dimensions . Discrete Comput. Geom . 12 , 327 - 345 ( 1994 )
29. Siddiqi , K. , Pizer , S.M. : Medial Representations . Mathematics, Algorithms, and Applications . Springer Series on Computational Imaging and Vision , vol. 37 . Springer, New York ( 2008 )
30. Tanase , M. , Veltkamp , R.C.: A straight skeleton approximating the medial axis . In: Proceedings of the 12th Annual European Symposium on Algorithms. Lecture Notes in Computer Science , vol. 3221 , pp. 809 - 821 . Springer, Heidelberg ( 2004 )
31. Vyatkina , K. : On the structure of straight skeletons . In: Proceedings of International Conference on Computational Sciences and Its Applications. Lecture Notes in Computer Science , vol. 5730 , pp. 362 - 379 . Springer, Heidelberg ( 2009 )
32. Vigneron , A. , Yan , L.: A faster algorithm for computing motorcycle graphs . In: Proceedings of the 29th Annual ACM Symposium on Computational Geometry , pp. 17 - 26 . ACM, New York ( 2013 )
33. Walzl , G. : Straight skeletons-from plane to space . PhD thesis , Institute for Theoretical Computer Science, University of Technology, Graz, Austria ( 2015 )
34. Yi , I.L. , Lee , Y.S. , Shin , H. : Mitered offset of a mesh using QEM and vertex split . In: Proceedings of the ACM Solid and Physical Modeling Symposium , pp. 315 - 320 . ACM, New York ( 2008 )