Straight Skeletons and Mitered Offsets of Nonconvex Polytopes

Discrete & Computational Geometry, Oct 2016

We give a concise definition of mitered offset surfaces for nonconvex polytopes in \({\mathbbm {R}}^3\), 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 \({\mathbbm {R}}^d\), an upper bound of \(O(n^d)\) 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 \ge 3\).

A PDF file should load here. If you do not see its contents the file may be temporarily unavailable at the journal website or you do not have a PDF plug-in installed and enabled in your browser.

Alternatively, you can download the file locally and open with any standalone PDF reader:

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 (, 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 )

This is a preview of a remote PDF:

Straight Skeletons and Mitered Offsets of Nonconvex Polytopes, Discrete & Computational Geometry, 2016, 743-801, DOI: 10.1007/s00454-016-9811-5