Abstract 1 Introduction 2 Preliminaries 3 Tubes and bifaces 4 Description of the algorithm 5 Analysis of the algorithm References

Computing the Intrinsic Delaunay Triangulation of a Closed Polyhedral Surface

Loïc Dubois111This work was done while the author was working at LIGM, CNRS, Univ Gustave Eiffel, F-77454 Marne-la-Vallée, France. ORCID Notre Dame, IN, USA
Abstract

Every surface that is intrinsically polyhedral can be represented by a portalgon: a collection of polygons in the Euclidean plane with some pairs of equally long edges abstractly identified. While this representation is arguably simpler than meshes (flat polygons in 3 forming a surface), it has unbounded happiness: a shortest path in the surface may visit the same polygon arbitrarily many times. This pathological behavior is an obstacle towards efficient algorithms. On the other hand, Löffler, Ophelders, Staals, and Silveira [SoCG 2023] recently proved that the (intrinsic) Delaunay triangulations have bounded happiness.

In this paper, given a closed polyhedral surface S, represented by a triangular portalgon T, we provide an algorithm to compute the Delaunay triangulation of S whose vertices are the singularities of S (the points whose surrounding angle is distinct from 2π). The time complexity of our algorithm is polynomial in the number of triangles and in the logarithm of the aspect ratio r of T. Within our model of computation, we show that the dependency in logr is unavoidable. Our algorithm can be used to pre-process a triangular portalgon before computing shortest paths on its surface, and to determine whether the surfaces of two triangular portalgons are isometric.

Keywords and phrases:
Polyhedral surface, intrinsic Delaunay triangulation, algorithmic complexity
Copyright and License:
[Uncaptioned image] © Loïc Dubois; licensed under Creative Commons License CC-BY 4.0
2012 ACM Subject Classification:
Theory of computation Computational geometry
Related Version:
Full Version: https://arxiv.org/abs/2601.03954
Editors:
Hee-Kap Ahn, Michael Hoffmann, and Amir Nayyeri

1 Introduction

In one of its simplest forms a triangulation is a finite collection of disjoint triangles in the Euclidean plane, together with a partial matching of the sides of the triangles such that any two matched sides have the same length (Figure 1). This simple representation appears under different names in the literature (intrinsic triangulation [26, 27], portalgon [20]). Cutting out the triangles from the plane and identifying the matched sides isometrically, respecting the orientations of the triangles, provides a (compact, orientable) polyhedral surface. This surface is closed if, in addition, it is connected and without boundary.

In this paper we consider the Delaunay triangulation of a closed polyhedral surface whose vertex set consists of the singularities (the points surrounded by an angle distinct from 2π) of the surface (except for flat tori, see below). It is generically unique. Our main contribution is an algorithm to compute it from any triangulation of the surface, whose time complexity is polynomial in the number of triangles and in the logarithm of the aspect ratio of the input triangulation. Our second contribution is a lower bound showing that the dependency in the logarithm of the aspect ratio is unavoidable in our model of computation.

Before describing our contributions in more detail, we discuss related works.

1.1 Related works

Polyhedral surfaces can also be obtained from meshes, flat triangles in 3 glued along their edges. Moreover, every mesh defines a triangulation of its surface. Yet triangulations are more general than meshes: most triangulations cannot be obtained from a mesh. Some recent algorithms advantageously operate on triangulations of polyhedral surfaces without reference to a mesh [25, 31, 17]. In this context the adjective “intrinsic” is sometimes placed before the name “triangulation” to make the distinction with the particular triangulations arising from a mesh. In the mathematical community, a prominent example is that of a translation surface [21, 32, 14, 12], which arises naturally in the study of billiards in rational polygons.

Triangulations are so general that not all of them are suitable for computation, compared to meshes. Prominently, a fundamental problem on polyhedral surfaces is to compute the distance or a report a shortest path between two points. On a mesh, shortest paths can be computed in time polynomial in the number of triangles. For example, an algorithm of Mitchell, Mount, and Papadimitriou [22] propagates waves along the surface, starting from the source, in a discrete manner. See also Chen and Han [4]. On a generic triangulation however (not arising from a mesh), the number of times a shortest path visits a triangle is not bounded by any function of the number of triangles, as noted for example almost 20 years ago by Erickson [8]. Recently, Löffler, Ophelders, Staals, and Silveira [20] coined the term happiness of a triangulation, for the maximum number of times a shortest path visits a triangle. They adapted the single-source shortest paths algorithm of Mitchell, Mount, and Papadimitriou [22] from meshes to triangulations, whose time complexity now depends on the happiness of the triangulation (it is more efficient on triangulations of low happiness).

This raises the problem of replacing any given triangulation by another triangulation of the same surface whose happiness is “low”. Among the many remeshing algorithms [13, 28, 24, 29], only few have been ported to the general context of intrinsic triangulations [26], and the only solution we are aware of that compares to our main result (Theorem 1 below), by Löffler, Ophelders, Staals, and Silveira [20, Section 5], is restricted to particular inputs whose surfaces are all homeomorphic to an annulus; we will use it as a black box. Importantly, the same authors also showed that Delaunay triangulations have bounded happiness [20, Section 4.2].

Delaunay triangulations are classical objects of computational geometry [5, 11, 2], closely related to shortest paths. While mostly known in the plane, they generalize to closed polyhedral surfaces, see for example the depiction of Bobenko and Springborn [3]. To compute a Delaunay triangulation from an arbitrary intrinsic triangulation there are, to our knowledge, only two approaches, and neither compares to our main result (Theorem 1). One approach computes a Voronoi diagram with a suitably adapted multiple-source shortest path algorithm, and then derives from it a Delaunay tessellation, see for example Mount [23], Liu, Chen, and Tang [18], and Liu, Xu, Fan, and He [19]. Another approach starts from an initial triangulation and flips its edges until it reaches a Delaunay triangulation; it was proved to terminate by Indermitte, Liebling, Troyanov, and Clémençon [3, 15].

1.2 Our results

In order to state our results precisely, it now matters to make the distinction between a triangulation and the data structure representing it, and to allow for more general polygons than triangles. Following Löffler, Ophelders, Staals, and Silveira [20], we call portalgon the collection T of polygons in the Euclidean plane and the partial matching of their sides. We denote by 𝒮(T) the associated polyhedral surface. We say that the portalgon T is triangular if all polygons are triangles. The sides of the polygons, once identified, constitute a graph T1 embedded on 𝒮(T) (the polygons themselves correspond to the faces of T1): it is this graph T1 that we call triangulation if T is triangular, and we call T1 a tessellation in general.

We consider, on a closed polyhedral surface S, the unique Delaunay tessellation 𝒟 of S whose vertices are exactly the singularities of S, with a single very special exception: if S has no singularity, then S is a flat torus and we let 𝒟 be any of the Delaunay tessellations of S that have exactly one vertex, for one can be mapped to the other via an orientation-preserving isometry of S anyway. In any case, we say that 𝒟 is the Delaunay tessellation of S, in a slight abuse.222Given a set V of points of the surface, finite, non-empty, and containing all the singularities, our results easily extend to Delaunay triangulations whose vertex set is V, but this is incidental to us. It is “generically” a triangulation, but not always. If not, then triangulating the faces of 𝒟 along any vertex-to-vertex arcs provides a Delaunay triangulation. The aspect ratio of a triangular portalgon T is the maximum side length of a triangle of T divided by the smallest height of a triangle of T (possibly another triangle). Our main contribution is:

Theorem 1.

Let T be a portalgon of n triangles, of aspect ratio r, whose surface 𝒮(T) is closed. One can compute the portalgon of the Delaunay tessellation of 𝒮(T) in O(n3log2(n)log4(r)) time.

As already mentioned, the only two methods we are aware of for computing a Delaunay tessellation from an arbitrary triangulation are the flip algorithm and the computation of the dual Voronoi diagram. The time complexities of these algorithms are not bounded by any polynomial in n and log(r).

Applications of Theorem 1 are detailed in the full version of the paper. Briefly, on the portalgon returned by Theorem 1, shortest paths can be computed in O(n2logO(1)n) time. And Theorem 1 enables to test whether the surfaces of two given portalgons are isometric, simply by computing and comparing the portalgons of the associated Delaunay tessellations.

We analyze our algorithms within the real RAM model of computation described by Erickson, van der Hoog, and Miltzow [10]. It is an extension of the standard integer word RAM, with an additional memory array storing reals, and with additional instructions. On such a machine, we represent each polygon of a portalgon T by the list of its vertices, and each vertex is by its two coordinates, stored in the memory array dedicated to reals. So displacing (translating or rotating) the polygons in the plane provides different representations of T. When modifying a portalgon T, we actually modify our representation of T, using elementary operations that are easily seen to be achievable by a real RAM.

Within this model of computation, our second contribution is a lower bound that backs our main result, Theorem 1, by showing that the polynomial dependency in the logarithm of the aspect ratio is unavoidable:

Theorem 2.

Let c(0,1). There are a flat torus S, and for every x(1,), a representation of a portalgon Tx, with two triangles, whose aspect ratio is O(x2), whose surface is S, that satisfy the following. There is no real RAM algorithm computing a representation of the portalgon of the Delaunay tessellation of S from Tx in O((logx)c) time.

Altogether Theorem 1 and Theorem 2 show that, within our model of computation, the complexity of computing the Delaunay tessellation from an arbitrary triangulation of a (closed, orientable) polyhedral surface is polynomial in the number of triangles and in the logarithm of the aspect ratio of the input triangulation.

1.3 Overview of the proof of Theorem 1

The proof of Theorem 2 is deferred to the full version of the paper. This extended abstract focuses on the proof of Theorem 1, of which we now provide an overview.

We introduce a slight variation of happiness, more suitable to our needs, which we call segment-happiness. To prove Theorem 1, the crux of the matter is to replace the input triangular portalgon by another triangular portalgon of the same surface, whose segment-happiness is “low”. For this purpose, our approach is to first focus on portalgons T whose surface 𝒮(T) is flat: the interior of 𝒮(T) has no singularity. Note that here we allow 𝒮(T) to have boundary, and this boundary may have singularities. The systole of 𝒮(T) is the smallest length of a non-contractible geodesic closed curve in 𝒮(T). Our key technical result is:

Proposition 3.

Let T be a portalgon of n triangles, whose sides are all smaller than L>0. Assume that 𝒮(T) is flat. Let s>0 be smaller than the systole of 𝒮(T). One can compute in O(nlog2(n)log2(2+L/s)) time a portalgon of O(nlog(2+L/s)) triangles, whose surface is isometric to that of T, and whose segment-happiness is O(log(n)log2(2+L/s)).

Sections 35 are devoted to the proof of Proposition 3. In Section 3 we focus on particular portalgons, whose surfaces are all homeomorphic to an annulus; the definitions and results of this section are used by the algorithm of Proposition 3. In Section 4 we describe the algorithm for Proposition 3. It is a finely tuned combination of elementary operations such as inserting and deleting edges and vertices in graphs. While the algorithm itself is relatively simple, its analysis is more involved, and is sketched in Section 5. In this section, we first provide a combinatorial analysis, and then we prepare for the geometric analysis by introducing a new parameter on the simple geodesic paths e of a flat surface, enclosure, possibly of independent interest. Informally, e is enclosed when a short non-contractible loop can be attached to a point of e not too close to the endpoints of e. We then use enclosure to analyze the algorithm from a geometric point of view, proving Proposition 3.

We then extend Proposition 3 from flat surfaces to surfaces having singularities in their interior, essentially by cutting out caps around these singularities. To get a cleaner result, we also replace 2+L/s by the aspect ratio of T, and we replace segment-happiness by happiness, obtaining:

Proposition 4.

Let T be a portalgon of n triangles, of aspect ratio r. One can compute in O(nlog2(n)log2(r)) time a portalgon of O(nlog(r)) triangles, whose surface is 𝒮(T), and whose happiness is O(nlog(n)log2(r)).

The proof of Proposition 4 is omitted from this extended abstract. We have not discussed Delaunay tessellations yet. Still, we are almost ready to prove Theorem 1. Indeed, once we have a portalgon of low happiness, we can compute shortest paths on the surface. And, as already mentioned, shortest path algorithms classically extend to construct Voronoi diagrams and then Delaunay tessellations. Formally:

Proposition 5.

Let T be a portalgon of n triangles, of happiness h, such that 𝒮(T) is closed. One can compute the portalgon of the Delaunay tessellation of 𝒮(T) in O(n2hlog(nh)) time.

The proof of Proposition 5 is omitted from this extended abstract. We insist that the proof of Proposition 5 is incidental to us, and Proposition 5 is not surprising at all. Our contribution is really the proof of Proposition 4. Theorem 1 is immediate from Proposition 4 and Proposition 5:

Proof of Theorem 1.

Proposition 4 computes in O(nlog2(n)log2(r)) time a portalgon T of O(nlog(r)) triangles, whose happiness is O(nlog(n)log2(r)). Proposition 5 then computes the portalgon of the Delaunay tessellation from T in O(n3log2(n)log4(r)) time.

2 Preliminaries

We use without review standard notions of graph theory and low dimensional topology and geometry, referring to textbooks for details [6, 1, 30, 7]. We only mention that on a surface S, a path p:[0,1]S is simple if its restriction to the interval (0,1) is injective, in which case the image of (0,1) by p is the relative interior of p. We denote by (p) the length of a geodesic path p. Throughout the paper, logarithms are in base two.

The definition of Delaunay tessellation given by Bobenko and Springborn [3, Section 2] is not used in this extended abstract.

2.1 Portalgons, tessellations, and polyhedral surfaces

A portalgon T is a disjoint collection of oriented polygons in the Euclidean plane, together with a partial matching of the sides of the polygons such that any two matched sides have the same length. It is triangular if all polygons are triangles. See Figure 1. Any subset of the polygons defines a sub-portalgon T of T: two sides of polygons are matched in T if and only if they are matched in T. In a portalgon T, identifying the matched sides, isometrically, and respecting the orientations of the polygons, provides the surface of T, denoted 𝒮(T); it is a 2-dimensional Riemannian manifold whose metric may have singularities. The sides of the polygons of T correspond to a graph T1 embedded on 𝒮(T), the 1-skeleton of T.

A polyhedral surface is any Riemannian manifold S (possibly with singularities) isometric to the surface of a portalgon. And when we say that a portalgon T is a portalgon of S, we implicitly fix an isometry between 𝒮(T) and S. A tessellation of S is any 1-skeleton of a portalgon of S, it is a triangulation if the portalgon is triangular.

Figure 1: (Left) A triangular portalgon T: two triangles in the Euclidean plane, with two sides matched in red. (Right) The surface 𝒮(T), and the 1-skeleton T1.

Consider a polyhedral surface S, a triangulation T1 of S, a vertex x of T1, and the sum a of the angles of faces of T1 around x. The point x is a singularity if x lies in the boundary of S and aπ, or if x lies in the interior of S and a2π. Every other point of S is flat. This does not depend on any particular triangulation of S. A surface S is flat if its interior has no singularity (although its boundary may have singularities). The closed flat surfaces are called flat tori.

2.2 Aspect ratio, systole, happiness, and segment-happiness

The aspect ratio of a triangular portalgon T is the maximum side length of a triangle of T divided by the smallest height of a triangle of T (possibly another triangle). Note that the aspect ratio is always greater than or equal to 2/3>1, because the maximum side length of a triangle is always greater than or equal to 2/3 times its smallest height.

The systole of a polyhedral surface S is the smallest length of a non-contractible geodesic closed curve in S, except in the particular case where every closed curve in S is contractible, in which case the systole is . The important thing is that for every positive real s smaller than the systole of S, any non-contractible closed curve in S is longer than s.

The happiness of a portalgon T is the maximum number of times a shortest path in 𝒮(T) visits the image of a polygon of T, maximized over all the shortest paths of 𝒮(T) and all the polygons of T (see [20, Section 3]). We introduce a variation, more suitable to our needs. In a polyhedral surface S, a segment is a simple geodesic path e whose relative interior is disjoint from any singularity of S. The segment-happiness of e in S, denoted hS(e), is the maximum number of intersections between e and a shortest path of S, maximized over all the shortest paths of S. The segment-happiness of a portalgon T is then the maximum segment-happiness h𝒮(T)(e), maximized over the edges e of its 1-skeleton T1. A priori, the segment-happiness of a portalgon T differs from the happiness of T. Indeed a path in 𝒮(T) may visit many times a face of T1 without intersecting any edge of T1 more than once, if the face has high degree. However, if T is triangular, then the happiness and the segment-happiness of T do not differ by more than a constant factor.

3 Tubes and bifaces

In this section we focus on particular triangular portalgons. See Figure 2. A tube is a triangular portalgon X whose surface 𝒮(X) is homeomorphic to an annulus and has no singularity in its interior, and whose 1-skeleton X1 has exactly one vertex on each boundary component of 𝒮(X). Among tubes, a biface is a portalgon B of two triangles whose respective sides s0,s1,s2 and s0,s1,s2, in order (clockwise say), are such that s0 is matched with s0 and s1 is matched with s1. Its 1-skeleton B1 has four edges: two loop edges forming the two boundary components of 𝒮(B), which we call boundary edges, and two edges whose relative interiors are included in the interior of 𝒮(B), which we call interior edges.

Figure 2: (From left to right) A good biface, a biface not good, a thin biface, a thick biface.

We say that a biface B is good if the two interior edges e and f of B1 satisfy both of the following up to possibly exchanging e and f. First, e is a shortest path in 𝒮(B). Second, cut 𝒮(B) along e, and consider the resulting quadrilateral. If this quadrilateral has two diagonals then f is shortest among the two diagonals. We will distinguish good bifaces. A good biface B is thin if every interior edge of B1 is longer than every boundary edge of B1. Otherwise B is thick. While tubes and bifaces have unbounded happiness, good bifaces on the other hand satisfy the following:

Lemma 6.

Given a good biface B, let e be an interior edge of B1. Then h𝒮(B)(e)6.

We will use the elementary operation of replacing a tube by a good biface:

Proposition 7.

Let X be a tube with n triangles, whose sides are smaller than L>0. Let s>0 be smaller than the systole of 𝒮(X). One can compute a good biface whose surface is 𝒮(X) in O(nlognlog(2+L/s)) time.

Proposition 7 is similar to a result described by Löffler, Ophelders, Silveira, and Staals [20, Theorem 45], building upon a ray shooting algorithm of Erickson and Nayyeri [9].

4 Description of the algorithm

In this section we describe our algorithm for Proposition 3. We first describe the elementary operations and the data structure, before giving the algorithm itself. Along the way, we provide informal explanations of our choices. We do not prove anything, as the analysis of the algorithm is deferred to Section 5.

4.1 Inserting vertices and edges

Informally, our goal is to “improve the geometry” of a triangular portalgon T. We will make this precise in Section 5. Roughly, the issue is that, without any condition on T, the edges of T1 that lie in the interior of 𝒮(T) can be arbitrarily long, so one of them may intersect some shortest path arbitrarily many times by wrapping around the surface, and so the segment-happiness of T can be arbitrarily large. A naive way of shortening an edge is to cut the edge in two at its middle point.

InsertVertices. Given a triangular portalgon T, consider every edge e of T1 that lies in the interior of 𝒮(T), and insert the middle point of e as a vertex in T1.

Applying InsertVertices to a triangular portalgon T produces a portalgon T whose polygons are usually not triangles. We now consider transforming T into a triangular portalgon. To do that we repeatedly cut the polygons of T. We need a definition. In the plane consider a polygon P, two vertices uv of P, and the rectilinear segment a between u and v. If the relative interior of a is included in the interior of P then a is called a vertex-to-vertex arc of P. It is easily seen that if P is not a triangle then P has at least one vertex-to-vertex arc. Among the vertex-to-vertex arcs of P, the shortest ones are the shortcuts of P. We emphasize that we consider the shortest ones among all the vertex-to-vertex arcs, without fixing the endpoints, but the endpoints are chosen among the vertices of P. In a portalgon T every polygon P corresponds to a face F of T1, and every shortcut of P corresponds to a path whose relative interior is included in F: we say of this path that it is a shortcut of F.

InsertEdges. Given a portalgon T, as long as there is a face of T1 that is not a triangle, insert a shortcut of this face as an edge in T1.

We shall apply InsertVertices followed by InsertEdges to a triangular portalgon T in order to produce another triangular portalgon T, hopefully with a “nicer geometry”. The problem is now that T1 has more vertices than T1. All the other operations of the algorithm are devoted to keeping the number of vertices low.

4.2 Deleting vertices

From now on it is important that every surface considered is flat, there is no singularity in its interior. Given a triangular portalgon T, assuming that the surface 𝒮(T) is flat, we consider decreasing the number of vertices of T1. To do that we naturally consider deleting some vertices. Not all vertices can be deleted. For example a vertex incident to a loop edge cannot be deleted. Also we will not delete vertices that lie on the boundary of the surface 𝒮(T). A vertex of T1 is weak if it lies in the interior of 𝒮(T) and is not incident to any loop edge in T1. It is strong otherwise.

DeleteVertices. Given a triangular portalgon T whose surface 𝒮(T) is flat, construct a maximal independent set V of weak vertices of T1 that have degree smaller than or equal to six. For every vertex vV delete v and its incident edges from T1.

After performing DeleteVertices, the polygons of T are usually not triangles anymore, but this will be solved by applying InsertEdges after each application of DeleteVertices. Observe that in DeleteVertices we delete only vertices of degree smaller than or equal to six. Informally, the reason is that deleting a weak vertex of degree d3 creates a face of degree d around it. We then insert d3 edges in this face when applying InsertEdges. The problem is that only a constant number of edges can be inserted in each face without risking to destroy our improvements on the geometry of the tessellation. This is why we make sure that d=O(1) beforehand. The exact bound on d is not really important (although changing it would change some constants of the algorithm), but it must be at least six so that we can still remove a fraction of the excess vertices this way, at least when most of them are strong. Similar ideas can be found in the literature, see for example Kirkpatrick [16, Lemma 3.2].

4.3 Simplifying tubes

The operation DeleteVertices cannot delete strong vertices, and among them the vertices that lie the interior of the surface and are incident to a loop edge. In this section we describe an operation for deleting such vertices.

In order to grasp the intuition, observe, informally, that it is possible that almost all the vertices of T1 lie in the interior of 𝒮(T) and are incident to a loop edge. Fortunately, it turns out that in this case there must be a sub-portalgon X of T such that X is a tube and the interior of 𝒮(X) contains loop edges of X1. We delete such loop edges by replacing X by a good biface with Proposition 7. There is one subtlety: we must choose X carefully so that we replace any concatenation of tubes by a single biface when possible, in order to delete the loops in-between the tubes, instead of replacing each tube individually. That leads to:

SimplifyTubes. In a triangular portalgon T whose surface 𝒮(T) is flat, do the following:

  1. 1.

    In T1 build a set J of loop edges that lie in the interior of 𝒮(T) and are pairwise disjoint, as follows. There are two cases:

    1. (a)

      If 𝒮(T) is homeomorphic to a torus, do the following. Let J contain two disjoint loop edges of T1 if there exist two such edges, otherwise let J=.

    2. (b)

      Otherwise do the following. Construct a set J of loop edges by considering every vertex v of T1 that lies in the interior of 𝒮(T) and is incident to a loop edge, and by putting one of the loop edges incident to v in J. Then build a subset JJ by removing from J every eJ satisfying both of the following. First, cutting 𝒮(T) along the loops in J, and considering the resulting connected components, two such components are adjacent to e (instead of one), say S0 and S1. Second, each one of the two sub-portalgons of T whose surfaces are S0 and S1 is a tube.

  2. 2.

    Cut the surface 𝒮(T) along the loops in J. Each resulting component is the surface of a sub-portalgon X of T. If X is a tube replace X by a good biface B.

The idea behind step 1b is to remove loops from J so that step 2 replaces a concatenation of tubes by a single good biface when possible, instead of replacing the tubes individually.

4.4 Data structure for marking bifaces as inactive

We are almost ready to give the algorithm, but there is still one important thing to describe. In step 2 of SimplifyTubes, if the good biface B is thin we will not just replace X by B, but we will also make sure to not modify B ever again. In this sense B becomes inactive. Doing so requires a data structure remembering which parts of the portalgon are inactive.

Figure 3: Data structure for Algorithm: a portalgon whose polygons are partitioned, here by color, inducing sub-portalgons called regions, and a region singularized as active, here in red.

See Figure 3. The data structure maintains a portalgon R together with a partition of the polygons of R. Each set X of polygons in the partition defines a sub-portalgon of R which we call region. One region is singularized as the active region RA. The other regions are inactive. Note that the surface of the active region may be disconnected, and that the surfaces of distinct inactive regions may be adjacent.

The data structure will be initialized by setting RA=R, without inactive region. Then the algorithm will apply the routines InsertVertices, InsertEdges, DeleteVertices, and SimplifyTubes to the active region RA, and mark as inactive every thin biface encountered in step 2 of SimplifyTubes. The surface of RA will diminish over time as more and more regions are marked inactive. This may increase the numbers of connected components and boundary components of 𝒮(RA), ruining our efforts to keep the combinatorial complexity of RA bounded. To counteract this, we introduce:

Gardening. Every connected component of 𝒮(RA) is the surface of a sub-portalgon X of RA. If X is a tube replace X by a good biface B, and mark B as inactive.

We described everything that the algorithm can do to the data structure. This immediately implies three invariants maintained by the algorithm. First, 1) Every polygon of the active region has degree at most six, and 2) Every inactive region is a good biface. For the last invariant we need a definition. Recall that in R if two sides s and s of polygons are matched then s and s correspond to an edge e of R1. If moreover s and s belong to different polygons, and if their respective polygons belong to different regions, we say that e is separating. Then e is a loop, for it is a boundary edge of a biface by 2), and e belongs to the interior of 𝒮(R). The third invariant is that 3) The separating loops are pairwise disjoint (no two of them are based at the same vertex of R1).

4.5 Algorithm

The algorithm repeatedly applies two parts. The first part “improves the geometry” by applying InsertVertices and then InsertEdges. However this increases the number of vertices. So the second part applies SimplifyTubes, DeleteVertices, and InsertEdges, together with Gardening. The second part can only remove a fraction of the vertices at once, so it is repeated several times. It turns out that 350 repetitions suffice.

Algorithm. Given a triangular portalgon T whose surface 𝒮(T) is flat, and N1, do the following. Initialize the data structure by letting R be the input portalgon T, and by letting the active region RA be R itself, without inactive region. Repeat N times the following:

  1. 1.

    Apply InsertVertices to RA. Then apply InsertEdges to RA.

  2. 2.

    Repeat 350 times the following:

    1. (a)

      Apply Gardening. Then apply SimplifyTubes to RA but in step 2 of SimplifyTubes, whenever B is thin, mark B as inactive. Apply Gardening again.

    2. (b)

      Apply DeleteVertices to RA. Then apply InsertEdges to RA.

In the end return R.

When proving Proposition 3, we will apply Algorithm with N=log(2+L/s).

5 Analysis of the algorithm

In this section, we sketch the analysis of Algorithm (Section 4) to prove Proposition 3.

5.1 Combinatorial analysis

Proposition 8.

Apply Algorithm to a portalgon T of n triangles, whose surface 𝒮(T) is flat. During the execution the number of polygons of the active region RA is O(n).

In this extended abstract, we only sketch the proof of Proposition 8.

Sketch of proof.

We consider RA1, the 1-skeleton of the active region RA, and we show that the number mA of vertices of RA1 remains O(n) throughout the execution. There are two loops in the algorithm: the main loop, which repeats N times, and the interior loop, which repeats 350 times within each iteration of the main loop. To prove the lemma, we consider a single iteration of the main loop, we assume that mA exceeds n by at least a constant factor at the beginning of the iteration, and we prove that mA has decreased after the iteration.

The iteration starts with InsertVertices. This is the only moment where mA may increase, and we prove that mA is multiplied by at most a constant factor. Then the iteration applies the interior loop, and we claim that, as long as mA exceeds n by a constant factor, mA is divided by at least a constant factor by each iteration of the interior loop. We show that this claim implies the lemma as the interior loop is applied sufficiently many times to counteract the initial increase of mA. To prove the claim, we show that for DeleteVertices to remove a fraction of the vertices of RA1, it suffices that mA vastly exceeds the genus and the number of boundary components of 𝒮(RA), and that almost all of the vertices of RA1 are weak. We show that this is ensured by first applying Gardening and SimplifyTubes.

5.2 Enclosure

To analyze Algorithm from a geometric point of view, we introduce, on the segments of a flat surface S, a parameter that we call enclosure. So consider a segment e of S. See Figure 4.

Informally, e is “enclosed” in S when a short non-contractible loop can be attached to a point of e not too close to the endpoints of e. Formally, consider a point x in the relative interior of e. We denote by xe the minimum length of the two sub-segments of e separated by x. Assume that there exists a loop γ based at x in S, such that γ is geodesic except possibly at its basepoint. Further assume that its length satisfies (e)<xe. In this case γ and e are necessarily in general position: informally, they do not overlap, more formally, every sufficiently short sub-path of γ is either disjoint from e or its intersection with e is a single point. There are two cases: either γ crosses e at x, or γ meets x on only one side of e. If γ crosses e at x, then we say that γ encloses e in S. Also we say that γ encloses e by a factor of xe/(γ) in S. The enclosure cS(e)1 is the supremum of the ratios xe/(γ) over all the basepoints x in the relative interior of e, and over all the loops γ based at x that enclose e in S. It is conventionally set to one if there is no loop enclosing e in S.

Figure 4: The red loop encloses the blue segment in the surface.

The segment-happiness hS(e) and the length (e) can be bounded from above using the enclosure cS(e). Our bound depends on the surface S. More precisely, on the systole of S and the diameter of S. But instead of the diameter of S, we consider a triangulation of S, and we use its number n of triangles together with the maximum length L of its edges. This will be more convenient to us when analyzing Algorithm. We prove:

Proposition 9.

Let e be a segment of S. Let s>0 be smaller than the systole of S. Assume that there is a triangulation of S with n1 triangles, whose edges are all smaller than L>0. Then hS(e)=O(cS(e)(1+logcS(e)+logn+logL/s)) and (e)/s=O(cS(e)nL/s2).

In Proposition 9 the O() notation does not depend on S, it involves a universal constant. In the second inequality of Proposition 9 the exact powers above L/s and n, here 2 and 1, do not matter to us. We need only a polynomial in L/s and n.

5.3 Geometric analysis

The geometric analysis ofAlgorithm consists in two properties on the enclosure and the length of the edges involved in any execution: Lemma 10 and Proposition 12 below, whose proofs we sketch in Section 5.3.1 and Section 5.3.2. Each proof relies on properties of enclosure that are independent of Algorithm, or of any portalgon, and can be seen as independent mathematical contributions of us. In this extended abstract we only explain how these properties of enclosure serve to analyse Algorithm.

In this section, we fix a portalgon T of n triangles, whose sides are smaller than some positive real L, and whose surface 𝒮(T) is flat. We abbreviate S=𝒮(T). We apply the algorithm Algorithm to T, and we discuss the execution of the algorithm.

5.3.1 The separating loops are not very enclosed

Lemma 10.

Any time during the execution every separating loop e satisfies cS(e)2.

Lemma 10 follows from the following property of enclosure:

Proposition 11.

Assume that S contains the surface of a thin biface B, and let e be one of the two boundary edges of B1. Then cS(e)2.

Proof of Lemma 10.

Only step 2 of SimplifyTubes may create a separating loop, by marking a thin biface B as inactive. Then B is is never touched again by the algorithm. So the algorithm maintains the invariant that every separating loop e is adjacent to the surface of at least one inactive region that is a thin biface. So cS(e)2 by Proposition 11.

5.3.2 The very enclosed edges shorten exponentially fast

Proposition 12.

After i1 iterations of the main loop, let e be an edge of RA1. If cS(e)>22000i then (e)<21iL.

To prove Proposition 12, we analyze each routine applied. Informally, each application of InsertVertices “improves the geometry” of the active region, and the rest of the algorithm does not deteriorate this improvement too much. Formally:

Lemma 13.

Consider the active regions RA and RA respectively before and after some application of InsertVertices. Assume that there is an edge e of RA1 such that cS(e)>2. Then there is an edge e of RA1 such that cS(e)cS(e) and (e)2(e).

Lemma 13 follows from the following (easy) property of enclosure:

Lemma 14.

Let fe be segments in S. Then cS(e)cS(f).

Proof of Lemma 13.

First observe that e is not included in the boundary of 𝒮(RA) because e is enclosed and thus not included in the boundary of S, and because e is not a separating loop by Lemma 10. So there is an edge e of RA1 such that e is one of the two half-segments obtained after the insertion of the middle point of e as a vertex. Then (e)=2(e). And cS(e)cS(e) by Lemma 14.

Lemma 15.

Consider the active regions RA and RA respectively before and after some application of InsertEdges. Assume that there is an edge e of RA1 such that cS(e)>14. Then there is an edge e of RA1 such that cS(e)cS(e)12 and (e)(112/cS(e))(e).

Lemma 15 follows from the following (key) property of enclosure:

Proposition 16.

Let F be a face of a tessellation of S. Assume that F has a shortcut e such that cS(e)>6. Then F has a side f such that cS(f)cS(e)4 and (f)(14/cS(e))(e).

Proof of Lemma 15.

Here we crucially use the fact that every polygon of RA has degree at most six. so that at most three edges are inserted within the polygon. Indeed either e was already an edge of RA1 and there is nothing to do, or e has been inserted in some face F of RA1. At most three edges were inserted in F, and Proposition 16 applied at most three times gives a boundary edge e of F such that cS(e)cS(e)12 and (e)(112/cS(e))(e).

Lemma 17.

Consider the active regions RA and RA respectively before and after some application of SimplifyTubes. Assume that there is an edge e of RA1 such that cS(e)>6. Then there is an edge e of RA1 such that cS(e)cS(e)5 and (e)(14/cS(e))(e).

Lemma 17 is similar to Lemma 15, its proof is omitted in this extended abstract.

Proof of Proposition 12.

Consider the active regions RA and RA respectively at the beginning of the algorithm, and after i iterations of the main loop. Assume that there is an edge e in RA1 such that cS(e)>22000i. During those i iterations there has been i applications of InsertVertices, 351i applications of InsertEdges, and 350i applications of SimplifyTubes. Also 12351i+5350i<11000i. So Lemma 13, Lemma 15, and Lemma 17 imply that there is an edge e in RA1 such that (e)2i(111000i/cS(e))(e)>2i1(e). And (e)L because e belongs to the input triangulation T1.

5.4 Proof of Proposition 3

We need a last (easy) lemma:

Lemma 18.

Let S be a flat surface. Assume that S contains the surface of a tube X. Then the systole of 𝒮(X) is greater than or equal to the systole of S.

Proof of Proposition 3.

Apply Algorithm to T with N=log(2+L/s), resulting in a triangular portalgon R. By Proposition 8 the number of polygons of the active region is O(n) throughout the execution. So in the end R has O(nlog(2+L/s)) triangles; Indeed each iteration of the main loop marks O(n) triangles as inactive, and there are log(2+L/s) iterations of the main loop. We have two claims that immediately imply the proposition.

Our first claim is that the algorithm takes O(nlog2(n)log2(2+L/s)) time. Let us prove this first claim. Each application of InsertVertices or InsertEdges takes O(n) time. And each application of SimplifyTubes or Gardening takes O(nlog(n)log(2+Λ/s)) time by Proposition 7 and Lemma 18, where Λ is the maximum length reached by an edge of the 1-skeleton of the active region during the execution. Now let us bound Λ. If at some point an edge e of the 1-skeleton of the active region is longer than L then cS(e)=O(log(2+L/s)) by Proposition 12. Moreover (e)/s=O(cS(e)nL/s2) by Proposition 9. This proves log(2+Λ/s)=O(log(n)+log(2+L/s)), which proves the claim.

Our second claim is that in the end every edge e of R1 satisfies hS(e)=O(log(n)log2(2+L/s)). Let us prove this second claim. First observe that if e is in RA1 then cS(e)<22000log(2+L/s), for otherwise Proposition 12 would imply (e)<2s, implying that no loop encloses e in S, a contradiction. In this case hS(e)=O(log(2+L/s)(log(n)+log(2+L/s))) by Proposition 9, and we are done. Every other edge of R1 belongs to the 1-skeleton of an inactive good biface B. Every boundary edge e of B1 is either a boundary component of S or a separating loop, so cS(e)2 by Lemma 10, and so hS(e)=O(log(n)+log(2+L/s)) by Proposition 9. Every interior edge f of B1 then satisfies hS(f)=O(log(n)+log(2+L/s)) by Lemma 6. This proves the second claim, and the proposition.

References

  • [1] Mark Anthony Armstrong. Basic Topology. Springer Science & Business Media, 2013.
  • [2] Franz Aurenhammer, Rolf Klein, and Der-Tsai Lee. Voronoi diagrams and Delaunay triangulations. World Scientific Publishing Company, 2013.
  • [3] Alexander I. Bobenko and Boris A. Springborn. A discrete Laplace–Beltrami operator for simplicial surfaces. Discrete & Computational Geometry, 38(4):740–756, 2007. doi:10.1007/S00454-007-9006-1.
  • [4] Jindong Chen and Yijie Han. Shortest paths on a polyhedron, part I: Computing shortest paths. International Journal of Computational Geometry & Applications, 6(02):127–144, 1996.
  • [5] Mark De Berg. Computational geometry: algorithms and applications. Springer Science & Business Media, 2000.
  • [6] Reinhard Diestel. Graph Theory. Springer-Verlag, 2000.
  • [7] Manfredo Perdigao Do Carmo. Riemannian Geometry, volume 2. Springer, 1992.
  • [8] Jeff Erickson. Ernie’s 3D pancakes: Shortest paths on PL surfaces. https://3dpancakes.typepad.com/ernie/2006/03/shortest_paths_.html, 2006.
  • [9] Jeff Erickson and Amir Nayyeri. Tracing compressed curves in triangulated surfaces. In Proceedings of the twenty-eighth annual symposium on Computational geometry, pages 131–140, 2012. doi:10.1145/2261250.2261270.
  • [10] Jeff Erickson, Ivor Van Der Hoog, and Tillmann Miltzow. Smoothing the gap between NP and ER. SIAM Journal on Computing, pages FOCS20–102, 2022.
  • [11] Steven Fortune. Voronoi diagrams and delaunay triangulations. In Handbook of discrete and computational geometry, pages 705–721. Chapman and Hall/CRC, 2017.
  • [12] Eugene Gutkin and Chris Judge. Affine mappings of translation surfaces: geometry and arithmetic. Duke Mathematical Journal, 2000.
  • [13] Paul S Heckbert and Michael Garland. Survey of polygonal surface simplification algorithms. In Proceedings of the 24th annual conference on Computer graphics and interactive techniques. Siggraph, 1997.
  • [14] Pascal Hubert and Thomas A Schmidt. An introduction to veech surfaces. Handbook of dynamical systems, 1(200601), 2006.
  • [15] Claude Indermitte, Th M Liebling, Marc Troyanov, and Heinz Clémençon. Voronoi diagrams on piecewise flat surfaces and an application to biological growth. Theoretical Computer Science, 263(1-2):263–274, 2001. doi:10.1016/S0304-3975(00)00248-6.
  • [16] David Kirkpatrick. Optimal search in planar subdivisions. SIAM Journal on Computing, 12(1):28–35, 1983. doi:10.1137/0212002.
  • [17] Hsueh-Ti Derek Liu, Mark Gillespie, Benjamin Chislett, Nicholas Sharp, Alec Jacobson, and Keenan Crane. Surface simplification using intrinsic error metrics. ACM Transactions on Graphics, 42(4), 2023. doi:10.1145/3592403.
  • [18] Yong-Jin Liu, Zhanqing Chen, and Kai Tang. Construction of iso-contours, bisectors, and voronoi diagrams on triangulated surfaces. IEEE Transactions on Pattern Analysis and Machine Intelligence, 33(8):1502–1517, 2010. doi:10.1109/TPAMI.2010.221.
  • [19] Yong-Jin Liu, Chun-Xu Xu, Dian Fan, and Ying He. Efficient construction and simplification of delaunay meshes. ACM Transactions on Graphics (TOG), 34(6):1–13, 2015. doi:10.1145/2816795.2818076.
  • [20] Maarten Löffler, Tim Ophelders, Rodrigo I. Silveira, and Frank Staals. Shortest paths in portalgons. In 39th International Symposium on Computational Geometry (SoCG 2023), volume 258, pages 48:1–48:16, 2023. doi:10.4230/LIPIcs.SoCG.2023.48.
  • [21] Howard Masur. Ergodic theory of translation surfaces. Handbook of dynamical systems, 1:527–547, 2006.
  • [22] Joseph S.B. Mitchell, David M. Mount, and Christos H. Papadimitriou. The discrete geodesic problem. SIAM Journal on Computing, 16(4):647–668, 1987. doi:10.1137/0216045.
  • [23] David M. Mount. Voronoi Diagrams on the Surface of a Polyhedron. University of Maryland, 1985.
  • [24] Jim Ruppert. A delaunay refinement algorithm for quality 2-dimensional mesh generation. Journal of algorithms, 18(3):548–585, 1995. doi:10.1006/JAGM.1995.1021.
  • [25] Nicholas Sharp and Keenan Crane. You can find geodesic paths in triangle meshes by just flipping edges. ACM Transactions on Graphics (TOG), 39(6):1–15, 2020. doi:10.1145/3414685.3417839.
  • [26] Nicholas Sharp, Mark Gillespie, and Keenan Crane. Geometry processing with intrinsic triangulations. SIGGRAPH’21: ACM SIGGRAPH 2021 Courses, 2021.
  • [27] Nicholas Sharp, Yousuf Soliman, and Keenan Crane. Navigating intrinsic triangulations. ACM Transactions on Graphics (TOG), 38(4):1–16, 2019. doi:10.1145/3306346.3322979.
  • [28] Jonathan Richard Shewchuk. Delaunay refinement mesh generation. Carnegie Mellon University, 1997.
  • [29] Jonathan Richard Shewchuk. Delaunay refinement algorithms for triangular mesh generation. Computational geometry, 22(1-3):21–74, 2002. doi:10.1016/S0925-7721(01)00047-5.
  • [30] John Stillwell. Classical topology and combinatorial group theory. Springer-Verlag, New York, second edition, 1993.
  • [31] Kenshi Takayama. Compatible intrinsic triangulations. ACM Transactions on Graphics (TOG), 41(4):1–12, 2022. doi:10.1145/3528223.3530175.
  • [32] Anton Zorich. Flat surfaces. arXiv preprint, 2006. arXiv:math/0609392.