Volume xx (200y), Number z, pp. 1–7 Approximating Geodesic Voronoi Diagrams on Triangulated Surfaces Eivind Lyche Melvær & Martin Reimers Department of Informatics, University of Oslo, Norway, eivindlm@ifi.uio.no, martinre@ifi.uio.no Abstract We present a method to approximate geodesic Voronoi diagrams on triangulated surfaces. We have previously worked on a mehtod (named DGPC) to approximate geodesic distance on polyhedral surfaces. In this paper, we will use DGPC to compute geodesic distance, and represent bisectors of point sites by linear segments on each triangle of the mesh. DGPC converges towards exact geodesic distance under mesh refinement, and linear bisector segments on each triangle allows local control of the level of detail. This yeilds a simple, efficient yet accurate algorithm. We show applications to mesh segmentation, and to polygonal base mesh generation. Categories and Subject Descriptors (according to ACM CCS): Keywords: voronoi tesselation, distance maps 1. Introduction The Voronoi diagram is a natural construction, and a fundamental concept in computational geometry. It has been extensively studied, and applications can be found in a vast variety of diciplines. Some recent example applications range from remeshing [PC06, mYLL∗ 09] to biology [KQE∗ 09, SVK14]. A Voronoi diagram consists of a set of Voronoi regions R = {Ri }m i=1 covering a space Ω. The space has a set of objects, called sites S = {si }m i=1 , and a distance metric d. The sites may be points, lines, curves or other shapes on Ω. Each Voronoi region is the collection of points closer to one site than to any other site Ri = p ∈ Ω : d(p, si ) < d(p, s j ), i 6= j . Surface points equidistant from two sites are called bisectors, and points equidistant from three or more sites are called Voronoi points. The Voronoi diagram for point sites in R2 consists of convex regions bounded by linear bisectors, and it may be Figure 1: A triangulated surface with 100k faces. Left: Voronoi regions for 300 sites computed in 0.3s. Right: Mesh partitioned in 0.5s. submitted to COMPUTER GRAPHICS Forum (12/2014). created by the methods of Fortune [For86], Bowyer-Watson [Bow81, Wat81] and Shamos and Hoey [SH75]. But in general, the space, distance metric and type of sites result in more complex bisectors, and give rise to specially tailored algorithms. We refer to [OBSC00, Aur91, Kle89] for thorough treatments of Voronoi diagrams and related methods. In this paper, we will focus on Voronoi diagrams arising from point sites on triangulated surfaces in R3 . If the surface is parametric, the parameter domain may enable adapting methods from R2 [KWR97]. However, for a general surface, the inherent metric is geodesic distance, and the resulting diagrams are called geodesic Voronoi diagrams (GVD). Since GVDs rely on geodesic distance, a method for computing GVD is often closely related to a method for computing geodesic distance. The first method for computing exact GVD was presented by Mount [Mou85]. Two years later, Mount et al. published the well known “MMP algorithm” for computing exact geodesic distance on a polyhedral surface [MMP87]. Liu et al. implements exact GVD on triangulated surfaces [LCT11] based on the MMP implementation by Surazhsky et al. [SSK∗ 05]. The Fast Marching Method (FMM) by Kimmel and Sethian is on the other hand a method to approximate geodesic distance [KS98], and the same authors have also worked on Voronoi diagrams [KS00]. Peyré et al. also computes Voronoi diagrams on triangulated surfaces using the FMM [PC04, PC06]. Although the FMM is much faster 2 E. L. Melvær & M. Reimers / Approximating Geodesic Voronoi Diagrams on Triangulated Surfaces vk s0 Uk ej ei Ui Uj vi ek Figure 2: Left: A narrow Voronoi region (green) extending into triangles with only foreign nodes, well outside the region of 1-node overlap. Right: Cocircular sites on a triangle resulting in a Voronoi point of degree 24. than the MMP, it is based on linear interpolation of distance, which yeilds limited accuracy for point sites. In lack of both accurate and efficient approximations to GVD, Yan et al. approximates the GVD by computing the intersection of a 3D Voronoi diagram and the surface [mYLL∗ 09]. We will base our work on geodesic distance approximated by DGPC [MR12], which has similar efficiency as the FMM, but has a significantly higher accuracy. In fact, DGPC is motivated by geometric constructions in the plane, and therefore yeilds exact results in the plane, and converges towards exact results on a mesh under refinement. Our method will take as input a closed and oriented triangular mesh with any genus, as well as a set of point sites. It will output the boundary of each Voronoi region as a sequence of linear segments on each triangle. The method first estimates geodesic distance from each point site to all nodes in a region of the mesh. It then computes neccesary bisectors, and finally traces the boundary of each region. Our contributions in this paper consist of • An expression for bisector edge crossing which is exact in the plane, and convergent on a mesh under refinement. • A method which only put mild assumptions on source position versus mesh topology, but which does not make assumptions on inter-source positions or Voronoi point position. Thus it can handle Voronoi points of any degree, and in any configuration on the mesh (see figure 2). • An efficient method which avoids mesh preprocessing, and may run interactively even for large meshes with large number of sources (see figure 1). We will in the following sections present definitions and properties of bisectors (section 3), Voronoi points (section 4) and Voronoi diagrams (section 5) under our assumption of linear bisector segments, which will allow us in section 6 to find the outline of each Voronoi region in a simple tracing manner. We show applications of our method to mesh partitioning and polygonal base mesh generation in section 7. vj Figure 3: The distance Ui for vi is approximated by placing a virtual source point s0 in the Ti jk -plane such that v j − s0 = U j and vk − s0 = Uk . 2. Euclidean interpolant We start with an introduction of notation, and a short recapitulation of the euclidean edge interpolant from [MR12]. Let T be a triangle mesh with vertices V = {vi }ni=1 in R3 and triangles Ti jk = [vi , v j , vk ]. The edge ei of Ti jk is opposite to node vi , and connects v j and vk . The euclidean interpolant estimates the distance Ui in node vi over ei as in figure 3. A “virtual source point” is constructed in the Ti jk -plane, such that v j − s0 = U j and vk − s0 = Uk , and the distance for vi is approximated as Ui = vi − s0 . The method is motivated from planar domains, where the virtual source will coincide with the real source, and the construction then yeilds exact results. In case the virtual source point cannot be constructed, or if the quadrilateral [vi , v j , vk , s0 ] is not convex, a “Dijkstra-update” is used instead, Ui = min`= j,k {U` + ||v` − vi ||}. In [MR12] the euclidean interpolant is used by a labelcorrecting algorithm which propagates distance estimates outwards from a source point, yeilding distance estimates for nodes in a local region of a mesh. The algorithm has proven to be both accurate and efficient. 3. Bisectors Given two sites sL and sH , we may construct two DGPC distance maps U L and U H for each node of the mesh, where the superscript indicates a label for each distance map. The set of points on the mesh equidistant from sL and sH , i.e. U L (p) = U H (p), is called the bisector of L and H. Bisectors of points in the plane are straight lines, and we will approximate bisectors on each triangle by linear segments. Determining a bisector on a triangle then simplifies to finding an intersection between two distance maps on a pair of edges in the triangle as follows. For a point q on the edge ei where q(ei ,t) = (1 − t)v j + tvk , submitted to COMPUTER GRAPHICS Forum (12/2014). 3 E. L. Melvær & M. Reimers / Approximating Geodesic Voronoi Diagrams on Triangulated Surfaces vi L H vj vi qj qk forward L H L H vk L vk L H vj Figure 4: Left: A bisector segment oriented forwards on a triangle has the lowest label on the left hand side. Right: A bisector segment entering a triangle across an edge [vi , v j ] will exit over [vi , vk ] if UkH < UkL , over [v j , vk ] if UkL < UkH , or across vk if UkH = UkL . H vj vi we have the Euclidean edge interpolant U(q(ei ,t)) = s0m − q(ei ,t) . Let D jk = ||v j − vk ||, and we may expand to q U(ei ,t) = (1 − t)U j2 − t(1 − t)D2jk + tUk2 . (1) (2) We seek t such that U L (ei ,t) = U H (ei ,t). Solving equation 2 for the two distance maps, and using short-hand notation U L (vi ) = Li and U H (vi ) = Hi , yeilds t = t L|H (ei ) = L j2 − Hj2 . L j 2 − H j 2 − (Lk 2 − Hk 2 ) (3) We may then define a bisector on a triangle, refer to the left hand part of figure 4. Definition 1 The bisector segment for labels L and H on Ti jk , is the straight line connecting q(e j ,t j ) and q(ek ,tk ), if we can find two different edges e j and ek where t j = t L|H (e j ) ∈ [0, 1] and tk = t L|H (ek ) ∈ [0, 1]. We will let L|H annotate bisector segments for labels L and H. We also define an orientation for bisector segments, which we rely upon later when constructing Voronoi diagrams. We assume labels are enumerated such that we have L < H. Definition 2 Given a bisector segment for labels L and H connecting q j and qk on triangle Ti jk . If U L (vi ) < U H (vi ), then the bisector segment is oriented forwards if it points from qk to q j , and backwards if it points from q j to qk . Vice versa if U L (v) > U H (v). Intuitively, if looking at a mesh with triangles oriented counter clockwise, we will according to 2 have the lowest label on the left hand side while travelling forwards along the bisector. Now we will proceed to show how bisector segments from adjacent triangles combine into connected bisector segment chains. Note that equation 5 will have one or zero solutions on each edge of a triangle. This means that a bisector may only cross an edge once. Looking at a triangle which has a bisector intersection on one edge as in the right hand part of figure 4, we observe that there must be an intersection submitted to COMPUTER GRAPHICS Forum (12/2014). vi vj vi vi vk vk (a) (b) (c) Figure 5: Top: A saddle node vi acts as a pseudo site for both L and H, and the bisector expands to an area instead of a line. Bottom: With our approximation, bisectors are always captured as line segments, but may fork around indifferent region triangles as in case (c). on one and only one of the other two edges of the triangle. This means that a bisector segment entering a triangle across an edge will exit the triangle as a single segment, and not make a fork inside the triangle. Forks may however occur for bisector segments entering a triangle across a node. In the top part of figure 5, a bisector is shown crossing a node vi . The node is a so-called saddle node, which means the sum of angles spanned in the node by all adjacent triangles is greater than 2π. Shortest paths from the red source to all points in a red sector behind vi will then pass through vi , and similarly for the blue source. Isocontours are therefore shown as circular arcs in the respective sectors behind vi . In the intersection of the red and blue sector (shaded green), iso-contours for the two sites coincide, all points in the intersection satisfy U L = U H , and the bisector will therefore be an area instead of just a line. With our approximation, a bisector entering a triangle across a saddle node will either (a) have a unique exit point from one triangle, (b) continue along an edge, or (c) fork along the edges of a triangle. Definition 3 A region triangle is a triangle Ti jk where all nodes of the triangle are claimed by a given region, i.e. for region A, ` = i, j, k U A (v` ) ≤ U X (v` ), X ∈ S, X 6= A Definition 4 An indifferent region triangle is a region triangle Ti jk which fulfils definition 3 for two or more regions. In case all three nodes of a triangle are pairwise equidistant from two or more sites, then then the triangle is an indifferent region triangle, as the triangle in case (c) of figure 5. 4 E. L. Melvær & M. Reimers / Approximating Geodesic Voronoi Diagrams on Triangulated Surfaces A C A A A C A B A B A A A B C B The left hand part of figure 6 shows the intersection of three bisectors, and a point equidistant from three different sites. This is known as a Voronoi point, and we will let |ABC| annotate a Voronoi point for regions A, B and C. Note that a Voronoi point may be equidistant from more than three sites. We will now prove a lemma about which bisectors we can expect to find in a Voronoi point, and then prove a theorem about where we can expect to find Voronoi points. This will be useful when we are constructing Voronoi diagrams in the next section. Lemma 1 If A|B and B|C intersect at p, then A|C also passes through p. Proof If A|B and B|C intersect on T , then T is divided into four sectors by the two enter and exit points of the two bisectors. TODO: Since the edge function is continious, A|C must also have enter and exit points on the triangle, thus A|C must be present on the triangle. TODO: In practice A|C intersects in the intersection point of A|B and B|C, but can we prove that? Lemma 1 states that if two bisectors with one common label intersect at a point, then the third bisector must pass through the same point. In case a bisector expands to an area instead of a line, an involved Voronoi point will expand to a line instead of just a point, as shown in the right hand part of figure 6. Finally in this section, we wish to show that no bisectors or Voronoi points in a region triangle are part of a Voronoi diagram. We must show that no region triangle contains points closer to a foreign site. By assuming linear bisector segments, we have already prevented bisectors from “bending” into a region triangle as in the left hand part of figure 7; a nonlinear bisector could enter a region triangle, and exit across the same edge, but our linear approximation will capture the bisector as a line which does not peak into a triangle. Equation 3 prevents us directly from finding two intersections on one edge. See the right hand side of figure 7, where we assume the upper triangle is a region triangle for region A. Assume that A B C B 4. Voronoi points ? A C Figure 6: Left: The Voronoi point |ABC| at the intersection of three bisectors. Right: The bisector A|B expanding to an area, and the Voronoi point |ABC| expanding to a line (dotted black). ? B B B C C Figure 7: Region triangles are free from active bisector segments and Voronoi points. Left: A linear approximation (green solid line) to a “true” nonlinear bisector (dotted line) cannot enter a region triangle. Right: Impossible configuration, no region can span a sector greater than π in a Voronoi point on a triangle face. two regions B and C peak into the triangle across the same edge (bisectors A|B, B|C and C|A). Bisector C|A must continue out of the triangle over a different edge, which means at least one node of the triangle must be closer to C than A. Similarly, bisector A|B exiting over a different edge means one node must be closer to B than A. This is two contradictions to the assumption that all nodes are claimed by region A, so this can not happen. We sum this up in a theorem. Theorem 1 No bisector or Voronoi point inside a region triangle are part of the Voronoi diagram. Proof This holds if a region triangle does not contain any points closer to another site. We have already proved this by showing that a single linear bisector segment may not enter an exit a triangle over the same edge, and that two or more regions may not peak into a region triangle over the same edge. 5. Voronoi diagrams Recall that a Voronoi region is the set of points closer to one site than to any other site. The outline of each Voronoi region is therefore composed of bisectors and Voronoi points as show in figure 8. The number of possible bisectors for m sites are given by m2 , which quickly grows out of hand as the number of sites increase. Since each region has a limited number of neighbours, it is obviously impractical to compute the bisectors of every possible pair of sites. In the next section, we will follow the outline of each Voronoi region by tracing bisector segment, and our goal in this section is to show which bisector segments are required to trace every region. We first need a definition which will allow us to make an assumption on the site distribution versus the mesh topology. Definition 5 For a mesh with vertices V = {vi }ni=1 and sites m S = s j j=1 , we define the site distribution to be valid if for submitted to COMPUTER GRAPHICS Forum (12/2014). E. L. Melvær & M. Reimers / Approximating Geodesic Voronoi Diagrams on Triangulated Surfaces B C A must have an intersection, otherwise the intermediate region M separates regions A and D and our assumption about A|D being an active bisector fails. By lemma 1, the bisector A|D must be present in the intersection point of A|M and M|D, qed. The same argument holds for multiple intermediate regions, the primary bisectors of the edge sequence must have intersections leading to the bisector A|D. A B C A D C B D D Figure 8: Two triangles spanning over the four regions A, B, C, and D give rise to six bisectors and four Voronoi point candidates. Voronoi diagram shown as solid green lines. each site s j there is at least one node vi such that d(vi , s j ) < min d(vi , sk ) sk ∈S,k6= j (4) According to definition 5, we require that for each site s j there is at least one node vi which is closer to s j than to all other sites. For the rest of this paper, we will assume that we have valid site distributions according to definition 5. The sites may be be located on either nodes or triangles, as long as each site “claims” uniquely at least one node. In figure 8, two triangles of a triangulation is laid over four Voronoi regions. The nodes of the triangulation provides a sampling of the Voronoi diagram, where by definition 5 we have at least one sample for each Voronoi region. Clearly bisectors with label pairs from edges crossing between two different regions are candidates to take part in the diagram. We will call these bisectors primary. But from the figure, other bisectors may be part of the diagram as well; bisector A|D is part of the diagram, but there is no edge in the triangulation connecting the A and D region. We will call this a diagonal bisector. The figure also shows the primary bisector B|C which is not part of the diagram, so all primary bisectors are not neccesarily part of the diagram either. We will call such bisectors inactive, while those bisectors which take part in the diagram are active. The observation from figure 8 along with lemma 1 provides us with what we need in order to find all active bisectors. Theorem 2 Computing intersections of bisectors, starting with primary bisectors, yeilds all active bisectors in the Voronoi diagram. Proof Assume A|D is an active bisector in the Voronoi diagram. By definition 5, we know regions A and D are sampled by the triangulation, i.e there is a sequence of edges connecting regions A and D. If the two regions are direct topological neighbours in the mesh, then A|D is a primary bisector, and qed. Otherwise, the edge sequence connects regions A and D through intermediate regions. First assume there is one intermediate region M. The edge sequence will then give rise to the primary bisectors A|M and M|D. These two bisectors submitted to COMPUTER GRAPHICS Forum (12/2014). 5 6. Tracing Voronoi Regions By theorem 2, we can find all active bisectors, and by theorem 1, all the neccesary bisector segments are in triangles which are not region triangles. The following strategy may then be used to find all neccesary bisector segments: 1. Find one bisector segment for each primary bisector. 2. In both directions, recursively extend single bisector segments to neighbour triangles which are not region triangles. 3. Find intersections of bisector segment pairs on each triangle (two segments with one common label). If the diagonal bisector segment is not present on the triangle, compute it. 4. Repeat from 2 until no more new segments are found. When the above algorithm terminates, we know by theorem 2 that all required bisector segments of the Voronoi diagram is present. Finding the outline of a Voronoi region may then be done in a tracing manner; starting on a bisector segment, and following it in a consistent direction. If a bisector is intersecting in a valid Voronoi point, then we jump to the next bisector in the correct direction. If more than three regions meet in the same point, or if the current bisector makes a fork on a saddle node, then we will have more than one candidate bisectors to follow. We always select the one spanning the smallest angle with the current bisector. Tracing continues until we arrive back at the point we started. Algorithm 1 shows the tracing in pseudo code as a recursive function. The function getNextIntersection returns the first intersection of the current bisector segment with other segments on the triangle. If multiple segments intersect the current segment, then the intersection closest to the currentPoint is returned. If there are multiple segments intersecting in the same point (the Voronoi point is equidistant from more than three regions), then the most righthand segment is returned. If no bisector segment intersect the current segment, then getNextTriangle returns the segment in the next triangle where the current segment continues. As with getNextIntersection, the most righthand segment is selected if the current segment forks across a node. 7. Results and applications Many pictures of Voronoi regions (including indifferent regions) 6 E. L. Melvær & M. Reimers / Approximating Geodesic Voronoi Diagrams on Triangulated Surfaces function traceRegion(label, currentSegment, currentPoint, firstPoint) if currentPoint equals firstPoint then return true; if firstPoint is null then firstPoint ← currentPoint; nextSegment, nextPoint ← getNextIntersection (currentSegment, currentPoint); if nextSegment is not null then return traceRegion (label, nextSegment, nextPoint, firstPoint); nextSegment, nextPoint ← getNextTriangle (currentSegment, currentPoint); if nextSegment is null then return false; return traceRegion (label, nextSegment, nextPoint, firstPoint); Algorithm 1: Pseudo code for tracing Voronoi regions. TODO: skip this? Complexity and running time 7.1. CVT About centroidal voronoi tesselation 7.2. Partitioning Once boundaries of all regions have been traced, the mesh may be very easily partitioned. First, we group together all region triangles with equal label (except indifferent triangles). Then, for each triangle with active bisector segments, we triangulate the part of the triangle which is inside the label region, and add these triangles to the corresponding group of region triangles. The inside part is always convex, which makes triangulation straightforward. Note that a region may peak into and across a triangle, and there may thus be more than one active non-intersecting segment chain in the triangle. The resulting set of triangle patches may not cover the entire mesh, - indifferent triangles will result in holes. 7.3. Dual Show some examples of polygonal dual. • Regarding definition 5, we may not have more sites than nodes in the mesh. For applications requiring more sites, a local topological refinement may be performed prior to site insertion (eg inserting a new node for each site). • checkValidStartPoint is not good for performance when the source distribution is high, since there will be few region triangles, and thus many bisectors • Take special care of edge parallel bisector segments, same segment is present in two triangles sharing the edge. Also, two region triangles may share an edge. Then an active bisector will be on that edge and not be contained in any triangle. • Voronoi points on nodes also needs special care when tracing regions. • Our implementation computes each distance map for the entire mesh. a lot of wasted time as the number of sites grows. only need distance maps up to neighouring maps plus a (non-trivial) overlap region. The extent of the overlap region depends on the shape of the Voronoi regions (region may have a peak which is much longer than what one node overlap (as Peyre) allows to handle ) • DGPC makes it possible to insert new sites on the fly, resulting in regions with a bounded maximum size. • DGPC also makes it possible using distortion or other measure as a criterion for site insertion 8. Discussion 9. Summary • Note that a region may be bounded by several disjoint loops. And that one region may be a neighbour with another region multiple times over different parts of the same bisector. • We are tracing regions as Mount and Liu, but instead of subdividing each triangle until only one Voronoi point occurs on each triangle (and assuming degree max 3), we have revealed the active bisectors of the diagram, and can handle any number of Voronoi points on a triangle, and with any degree. • Robustness. Group Voronoi points with distance near machine precision. Either on first pass, or as post-processing. • Closed mesh: if a mesh has hole, may close with temporary “barrier”. Result will not be quite the same, as bisectors then will bend around the barriers. It should be possible to adapt the method to handle holes. TODO References [Aur91] AURENHAMMER F.: Voronoi diagrams&mdash;a survey of a fundamental geometric data structure. ACM Comput. Surv. 23, 3 (Sept. 1991), 345–405. 1 [Bow81] B OWYER A.: Computing dirichlet tessellations. Comput. J. 24, 2 (1981), 162–166. 1 [For86] F ORTUNE S.: A sweepline algorithm for voronoi diagrams. In Proceedings of the Second Annual Symposium on Computational Geometry (New York, NY, USA„ 1986), SCG ’86, ACM, pp. 313–322. 1 [Kle89] K LEIN R.: Concrete and abstract Voronoi diagrams, vol. 400. Springer, 1989. 1 [KQE∗ 09] K LAUSCHEN F., Q I H., E GEN J. G., G ERMAIN submitted to COMPUTER GRAPHICS Forum (12/2014). E. L. Melvær & M. Reimers / Approximating Geodesic Voronoi Diagrams on Triangulated Surfaces R. N., M EIER -S CHELLERSHEIM M.: Computational reconstruction of cell and tissue surfaces for modeling and data analysis. Nat. Protocols 4, 7 (Jun 2009), 1006–1012. 1 [KS98] K IMMEL R., S ETHIAN J. A.: Computing geodesic paths on manifolds. In Proc. Natl. Acad. Sci. USA (1998), pp. 8431– 8435. 1 [KS00] K IMMEL R., S ETHIAN J. A.: Fast Voronoi diagrams and offsets on triangulated surfaces. Tech. rep., DTIC Document, 2000. 1 [KWR97] K UNZE R., W OLTER F.-E., R AUSCH T.: Geodesic voronoi diagrams on parametric surfaces. In Computer Graphics International, 1997. Proceedings (Jun 1997), pp. 230–237. 1 [LCT11] L IU Y.-J., C HEN Z., TANG K.: Construction of isocontours, bisectors, and voronoi diagrams on triangulated surfaces. Pattern Analysis and Machine Intelligence, IEEE Transactions on 33, 8 (Aug 2011), 1502–1517. 1 [MMP87] M ITCHELL J. S. B., M OUNT D. M., PAPADIMITRIOU C. H.: The discrete geodesic problem. SIAM J. Comput. 16, 4 (Aug. 1987), 647–668. 1 [Mou85] M OUNT D. M.: Voronoi Diagrams on the Surface of a Polyhedron. Tech. rep., Department of Computer Science, University of Maryland, 1985. 1 [MR12] M ELVÆR E. L., R EIMERS M.: Geodesic polar coordinates on polygonal meshes. Computer Graphics Forum 31, 8 (2012), 2423–2435. 2 [mYLL∗ 09] MING YAN D., L ÉVY B., L IU Y., S UN F., PING WANG W.: Isotropic remeshing with fast and exact computation of restricted vor onoi diagram. In ACM/EG Symposium on Geometry Processing / Computer Graphics Forum (2009). 1, 2 [OBSC00] O KABE A., B OOTS B., S UGIHARA K., C HIU S. N.: Spatial Tessellations: Concepts and Applications of Voronoi Diagrams, 2 ed. Wiley Series in Probability and Statistics. Wiley, July 2000. 1 [PC04] P EYRÉ G., C OHEN L. D.: Surface Segmentation Using Geodesic Centroidal Tesselation. In 3DPVT’04 (Tessaloniki, Greece, Sept. 2004), IEEE Computer Society, pp. 995–1002. 1 [PC06] P EYRÉ G., C OHEN L.: Geodesic remeshing using front propagation. International Journal of Computer Vision 69, 1 (2006), 145–156. 1 [SH75] S HAMOS M. I., H OEY D.: Closest-point problems. In Proceedings of the 16th Annual Symposium on Foundations of Computer Science (Washington, DC, USA, 1975), SFCS ’75, IEEE Computer Society, pp. 151–162. 1 [SSK∗ 05] S URAZHSKY V., S URAZHSKY T., K IRSANOV D., G ORTLER S. J., H OPPE H.: Fast exact and approximate geodesics on meshes. ACM Trans. Graph. 24, 3 (2005), 553– 560. 1 [SVK14] S CHLICHT L., VALCU M., K EMPENAERS B.: Thiessen polygons as a model for animal territory estimation. Ibis 156, 1 (2014), 215–219. 1 [Wat81] WATSON D. F.: Computing the n-dimensional delaunay tessellation with application to voronoi polytopes. The Computer Journal 24, 2 (1981), 167–172. 1 submitted to COMPUTER GRAPHICS Forum (12/2014). 7