Spatial Subdivision of Gabriel Graph M. Z. Hossain, M. A. Wahid and M. A. Amin
Computer Vision and Cybernetics Research Group, School of Engineering and Computer Science, Independent University, Bangladesh, Dhaka 1229, Bangladesh Email:
[email protected],
[email protected],
[email protected]
Abstract. Gabriel graph is one of the well-studied proximity graphs which has a wide range of applications in various research areas such as wireless sensor network, gene flow analysis, geographical variation analysis, facility location, cluster analysis, and so on. In numerous applications, an important query is to find a specific location in a Gabriel graph at where a given set of adjacent vertices can be obtained if a new point is inserted. To efficiently compute the answer of this query, our proposed solution is to subdivide the plane associated with the Gabriel graph into smaller subregions with the property that if a new point is inserted anywhere into a specific subregion then the set of adjacent vertices in the Gabriel graph remains constant for that point, regardless of the exact location inside the subregion. In this paper, we examine these planar subregions, named redundant cells, including some essential properties and sketch an algorithm of running time O(n2 ) to construct the arrangement that yields these redundant cells. Keywords. Gabriel graph, Delaunay triangulation, Voronoi diagram, Computational geometry.
1. Introduction The notion of proximity graph is used to describe the neighboring relationship among a set of objects. Several proximity graphs have been extensively studied in literature, probably because of their theoretical interest and large number of application fields [1, 13]. In geometric proximity graphs, vertices and edges can be denoted as points and line segments in metric space respectively. Two vertices of these proximity graphs are connected by an edge if the vertices satisfy some specific nearness properties in metric space. In this text, we study two closely related classes of proximity graphs known as Gabriel graph and Delaunay graph in Euclidean plane. The Gabriel graph is one of the most common abstract representations to perform various analyses on different relationships among a set of spatially distributed real world objects such as wireless sensors, ethnic groups, points of services, taxonomic units etc., [12, 11]. Because of this essential practical interest, other variations of the Gabriel graph including the higher order Gabriel graph [4] and the relaxed Gabriel graph [3] are also studied to extend the application fields of the conventional Gabriel graph.
2
M. Z. Hossain, M. A. Wahid and M. A. Amin
The subdivision method of the plane producing the redundant cells provides a constant adjacency relationship of a candidate point in each redundant cell for a Gabriel graph. The term, candidate point, refers to a new point to be inserted into the corresponding Gabriel graph. Searching for a location or a region in the plane where a given set of adjacent vertices in a Gabriel graph can be found if a new point is inserted, is an infinite time computational problem since all regions including the plane contain infinite number of points [6]. However, number of the redundant cells is finite for a finite graph and thus the subdivision method reduces this infinite time computation to a finite time computation by considering the set of points denoting a redundant cell, at one time instead of considering each individual point at one time. Consequently, it becomes possible to solve different queries related to adjacency and degree of a candidate point when interconnections among the vertices are mapped according to the Gabriel graph. For instance, one may want to place a wireless sensor at any location in a specific region of a wireless sensor network such that the vertex degree of that sensor needs to be either maximum, minimum or a given number in the Gabriel graph representing the wireless sensor network. Moreover, the spatial trends of genetic association and genetic variation can be explored in detail using the Gabriel graph [11] and the redundant cells. For example, a biologist may want to find a shared common region among a cluster of ethnic groups, which is in fact the redundant cells where a candidate point has the set of adjacent vertices referring to the ethnic groups, to study the spread pattern of some genetic diseases. Besides answering the point location queries, answering various region related queries also requires constructing the arrangement for the redundant cells, which enables analysis of different regional and morphological information of the cells, including area, shape, eccentricity, centroid, diameter etc.
2. Preliminaries Let P be a finite set of points in the Euclidean plane R2 in general position and P contains at least three points. Hence, no three points in P are collinear and no four points in P are co-circular. The Gabriel graph GG of a set of points P in the plane R2 is a proximity graph where any two points pi , pj ∈ P are connected by an edge if and only if there exists a circle through pi and pj with pi pj diameter, contains no other point in its interior and on its boundary from P . The Delaunay graph DG of a set of points P in the plane R2 is another proximity graph where any three points pi , pj , pk ∈ P construct a triangle if and only if the circumcircle of the triangle 4pi pj pk , contains no other point in its interior from P . Although the edges of both graphs are undirected (i.e., an edge pi pj can be written as pj pi ), we maintain a consistent order throughout the text which is essential for the correctness of our discussion. A circle through points pi , pj with diameter pi pj is denoted as C(pi , pj ) and a circle through points pi , pj , pk is denoted as C(pi , pj , pk ). In this text, both the Gabriel graph GG and the Delaunay graph DG are obtained from the same set P of points. Lemma 1. [7] For every point pk ∈ V(GG) except the points pi , pj ∈ V(GG), the angle ∠pi pk pj is acute iff the edge pi pj ∈ E(GG). Howe [9] showed in his Ph.D. thesis that the Gabriel graph GG is actually the sub-graph of the Delaunay graph DG and it is possible to efficiently construct GG from DG. Lemma 2. [9] The Gabriel graph on a vertex set V is a sub-graph of the Delaunay triangulation for V . Furthermore, the edge AB of the Delaunay triangulation is an edge of the Gabriel graph iff the straight line joining A to B intersects the boundary line segment common to the Thiessen polygons for A and B at a point other than the endpoints of that boundary line segment.
Spatial Subdivision of Gabriel Graph
3
3. Spatial Subdivision From Lemma 1, it is clear that the right angle is the highest angle limit determines the valid edges of the Gabriel graph GG of a point set P . Thus the orthogonal lines through the incident vertices of an edge in a geometric graph divide the plane into regions with identical edge forming criteria in the Gabriel graph GG as shown in Figure 1. Let pi , pj be two incident vertices of an edge pi pj in a planar geometric graph and an orthogonal line L(pbi , pj ) on pi pj passing through pi divides the plane into two half planes. The right open half plane ROH(L(pbi , pj )) contains the part of the plane enclosed pj and the left closed half plane LCH(L(pbi , pj )) contains the rest of the plane. Similarly, the left open half plane LOH(L(pi , pbj )) containing pi and the right closed half plane RCH(L(pi , pbj )), can be found by considering the orthogonal line L(pi , pbj ) passing through pj . The left region R(pbi , pj ), the right region R(pi , pbj ) and the middle region R(pbi , pbj ) constructed by partitioning the plane R2 based on pi pj can be defined as R(pbi , pj ) = LCH(L(pbi , pj )) = LOH(L(pi , pbj )) \ ROH(L(pbi , pj )) R(pi , pbj ) = RCH(L(pi , pbj )) = ROH(L(pbi , pj )) \ LOH(L(pi , pbj )) R(pbi , pbj ) = ROH(L(pbi , pj )) ∩ LOH(L(pi , pbj )) If R(pi , pj ) is the set of these three regions whose union produces the R2 plane, then the set R(pi , pj ) can be given as R(pi , pj ) = {R(pbi , pj ), R(pbi , pbj ), R(pi , pbj )} If pm is a point in R(pbi , pbj ) and the angle ∠pi pm pj is acute, then the three edges pi pj , pi pm , pj pm ∈
‹ ‹ ‹
‹
‹
‹
Figure 1. The three regions: left region R(pbi , pj ), right region R(pi , pbj ) and middle region R(pbi , pbj ) E(GG) however if the ∠pi pm pj is not acute (denoted as p0m in the figure), then only two edges pi pm , pj pm ∈ E(GG). Furthermore, any point, for instance pl in R(pbi , pj ) cannot construct the edge
4
M. Z. Hossain, M. A. Wahid and M. A. Amin
pj pl ∈ E(GG) since the angle ∠pj pi pl is not acute. Similarly, any point, such as pr in R(pi , pbj ) cannot construct the edge pi pr ∈ E(GG) because the angle ∠pi pj pr is not acute. 3.1. Redundant Cell A redundant cell is the largest non-empty convex region h ⊂ R2 constructed from the common intersection of the each unique region r such that r ∈ R(pi , pj ) and h ⊆ r for every pi pj ∈ E(DG). Formally, redundant cell rc can be defined as \ rc = {r : ∀pi pj (pi pj ∈ E(DG) =⇒ ∃!r(r ∈ R(pi , pj ) ∧ h ⊆ r))} where rc cannot be empty since h cannot be empty. For an example, the convex region rc1 in Figure 2 can be given as \ rc1 = {R(pbi , pbj ), R(pbj , pk ), R(pbk , pl ), R(pbi , pbk ), R(pbi , pl )} The convex region rc1 is a redundant cell since it satisfies the conditions of redundant cell according to the definition.
Figure 2. An arrangement yielding redundant cells in the Delaunay graph of four vertices and five edges Our goal is to develop a planar subdivision method that produces the set of subregions where the adjacent vertices in a Gabriel graph for a candidate point, remain unchanged. It is claimed that an edge pi pj is not a Gabriel edge if and only if there exists a point pk ∈ V(GG) in the circle C(pi , pj ) with an edge pi pk ∈ E(DG) for which pj ∈ R(pi , pbk ). In other words, if we insert a point pj at any location in the Gabriel graph, then pj has edges in GG with all the point pi ∈ V(GG) except those which have pk as an adjacent in DG such that pj ∈ R(pi , pbk ). This is actually the basis of our proposed subdivision method of the plane for the Gabriel graph. With the help of Lemma 3, Lemma 4 and Lemma 5, we deduce the Theorem 1 to prove that such subdivision method and the resultant subregions or cells which are defined as redundant cells, exist for the Gabriel graph in R2 plane. Lemma 3. For points pi , pj ∈ V(GG), if there exists no point inside the circle C(pi , pj ), then pi pj ∈ E(DG).
Spatial Subdivision of Gabriel Graph
5
Proof. There are two possible cases depending on the existence of an additional point on (the boundary of) the circle C(pi , pj ). If there is no point on the circle C(pi , pj ) then pi pj ∈ E(GG) since there is no point inside the circle C(pi , pj ). From Lemma 2 we know that the Gabriel graph is a subgraph of the Delaunay graph and thus pi pj ∈ E(DG). However, there can be at most one point on the circle C(pi , pj ) according to the general position assumption that is no four points are co-circular. Let pk be the point on the circle C(pi , pj ). Since there is no point inside the circle C(pi , pj ), the Delaunay triangle 4pi pj pk is formed including the edge pi pj ∈ E(DG).
Figure 3. Proof of Lemma 4 / E(GG), then there exists a point Lemma 4. For points pi , pj , pk ∈ V(GG), iff the edge pi pj ∈ pk ∈ C(pi , pj ) such that pi pk ∈ E(DG). Proof. The converse part of the lemma follows immediately from the fundamental properties of the Gabriel graph. That is, if a point pk ∈ C(pi , pj ) exists such that pi pk ∈ E(DG) then pi pj ∈ / E(GG). According to the definition of the Gabriel graph, it is apparent that if pi pj ∈ / E(GG), then there exists a set Q ⊆ V(GG) \ {pi , pj } of points inside or on the circle C(pi , pj ). Let S1 ⊆ Q be the set of points inside (but not on) the circle C(pi , pj ). If S1 = ∅ and pi pj ∈ / E(GG) then at most a point pk ∈ V(GG) is on the circle C(pi , pj ), assuming general position for the points of V(GG) and the Delaunay triangle 4pi pj pk is formed including the edge pi pk ∈ E(DG). This proves the lemma when S1 = ∅. However, if the set S1 6= ∅ then it is sufficient to prove that there exists a point pk ∈ S1 for which pi pk ∈ E(DG). Suppose that s1 ∈ S1 is the point such that the circle C(pi , s1 ) contains no other point from S1 in its interior. In order to prove that such point s1 exists, let s1 be the point in S1 such that the length of pi s1 is minimum. If another point r1 ∈ S1 is inside the circle C(pi , s1 ) then pi r1 must be smaller than pi s1 in length which contradicts the assumption that the length of pi s1 is minimum. Let T1 be the set of points inside (but not on) C(pi , s1 ). If T1 = ∅ then pi s1 ∈ E(DG) which follows from Lemma 3. In contrast to the figure, T1 = ∅ also covers all the incidents when C(pi , s1 ) ⊂ C(pi , pj ). Thus we complete the proof for T1 = ∅ and pk = s1 . Now, we consider the set T1 6= ∅. Let t1 ∈ T1 be the point such that the interior of the circle C(pi , t1 , s1 ) contains no point from T1 . The point t1 exists uniquely for general position assumption
6
M. Z. Hossain, M. A. Wahid and M. A. Amin
however t1 is not inside C(pi , pj ) and thus t1 ∈ / S1 . If t1 is a point on C(pi , s1 ) then C(pi , t1 , s1 ) contains all the points of T1 and thus it is justified to discard the points on C(pi , s1 ) to form the set T1 . If C(pi , t1 , s1 ) contains no point in its interior then the Delaunay triangle 4pi t1 s1 exists including the edge pi s1 ∈ E(DG). This proves the lemma for T1 6= ∅ and pk = s1 when the interior of C(pi , t1 , s1 ) contains no point. However, the interior of C(pi , t1 , s1 ) can contain a set of points S2 ⊆ S1 \ {s1 } ⊂ S1 because the intersection point v1 is always on the minor arc pi u1 that is C(pi , t1 , s1 ) \ C(pi , pj ) ⊂ C(pi , s1 ) and the arc pi s1 v1 is entirely inside C(pi , pj ) since two circles can intersect in at most two points. If t1 is on C(pi , pj ) then the intersection point v1 coincides with t1 . In the second state, we obtain the set S2 and the circle C(pi , t1 , s1 ), which are representing the set S1 and the circle C(pi , pj ) of initial state respectively. Let s2 ∈ S2 be the point similar to the s1 ∈ S1 that is the circle C(pi , s2 ) contains no other point from S2 in its interior. Similarly, if the set T2 = ∅ then pi s2 ∈ E(DG) which completes the proof and if the set T2 6= ∅ then we obtain S3 ⊆ S2 \ {s2 } ⊂ S2 as described above. The intersection T2 ∩ S1 might not be always empty. Through the successive states, we must obtain either Tn = ∅ or Sn = ∅ in some state n since Sn ⊂ Sn−1 ⊂ · · · ⊂ S3 ⊂ S2 ⊂ S1 and S1 is a finite set since S1 ⊂ P . Moreover, we already examined the cases when n = 1 or n = 2. If Tn = ∅ then pi sn ∈ E(DG) from Lemma 3, which completes the proof for Tn = ∅ and pk = sn . If Sn = ∅ then the interior of the circle C(pi , tn−1 , sn−1 ) contains no point and the Delaunay triangle 4pi tn−1 sn−1 exists including the edge pi sn−1 ∈ E(DG) where the point sn−1 represents the point pk . Thus the general proof of the lemma is completed.
Figure 4. Proof of Lemma 5 Lemma 5. For points pi , pj , pk ∈ V(GG), iff the edge pi pj ∈ / E(GG), then there exists a point pk ∈ C(pi , pj ) such that pi pk ∈ E(DG) and pj ∈ R(pi , pbk ). Proof. From Lemma 4, iff the edge pi pj ∈ / E(GG) then there exists at least one point pk ∈ C(pi , pj ) for which pi pk ∈ E(DG). Since, pk is inside or on the circle C(pi , pj ), the ∠pi pk pj is not acute (i.e., ∠pi pk pj ≥ π/2), as shown in Figure 4. If l is the orthogonal line L(pi , pbk ) on edge pi pk passing through pk , then the point pj must be either on l or on the opposite side of l from pi (in other words
Spatial Subdivision of Gabriel Graph
7
α ≥ 0). To be precise, if pk is on the circle C(pi , pj ), then pj is on the line l as shown in Figure 4, where pk and l are denoted as p0k and l0 respectively. Therefore, pj ∈ R(pi , pbk ) according to the definition of right region R(pi , pbk ). Theorem 1. If a point is inserted anywhere in a redundant cell, then the set of adjacent vertices of that point in the Gabriel graph remains the same. Proof. Let a redundant cell rc of convex region h ⊂ R2 be the common intersection of all the regions of set S. Thus the set S of regions can be written as S = {r : ∀pi pj (pi pj ∈ E(DG) =⇒ ∃!r(r ∈ R(pi , pj ) ∧ h ⊆ r))} Let T be the set of right regions from the set S constructing the redundant cell rc. To be precise, T can be defined as follows T = S ∩ {R(pi , pbj ) : pi pj ∈ E(DG)} Thus a point qj ∈ / V(GG) inserted anywhere in the redundant cell rc, has the same right region set T since it has the same region set S by the definition. Since, qj is adjacent to all qi ∈ V(GG) in the Gabriel graph except where qj ∈ R(qi , qbk ) for some point qk ∈ V(GG) and qi qk ∈ E(DG) according to the Lemma 5. Therefore, the set of adjacent vertices V and the set of non-adjacent vertices V 0 of qj can be written as V = V(GG) \ V 0 V 0 = {pi : ∃pj (R(pi , pbj ) ∈ T )} Thus the set of adjacent vertices V remains the same throughout the redundant cell rc since V 0 only depends on T which is a subset of (or is included in) S. Proposition 1. The same set of adjacent vertices in the Gabriel graph can be found for a point inserted into different redundant cells. Proof. Let us consider the Gabriel graph GG of vertex set P = {pi , pj , pk , pl } as shown in Figure 2. A point inserted into rc1 redundant cell has an adjacent vertex set {pi , pj } in GG. Similarly, a point inserted into either rc2 or rc3 cell has the same adjacent set {pi , pj } in GG. Thus different redundant cells can have the same set of adjacent vertices in the Gabriel graph. In a redundant manner, the redundant cells can share the same set of adjacent vertices in a Gabriel graph (which is the reason we call it redundant). Since we subdivide the plane based on the edges of the Delaunay graph, a question might arise, can the redundancy be reduced by considering a subset of the Delaunay edges. The edges of the Gabriel graph could be the appropriate subset of the Delaunay graph edges for constructing the cell complex to reduce or eliminate the redundancy. But the following proposition proves that it is not possible since the modified form of Lemma 4 for the Gabriel edges, that is for points pi , pj , pk ∈ V(GG), iff the edge pi pj ∈ / E(GG), then there exists a point pk ∈ C(pi , pj ) such that pi pk ∈ E(GG), does not hold for all cases. Therefore, the modified form of Theorem 1 based on the modified form of Lemma 4 does not hold for all cases as well. Proposition 2. For points pi , pj , pk ∈ V(GG), if the edge pi pj ∈ / E(GG), then there may not exist a point pk ∈ C(pi , pj ) such that pi pk ∈ E(GG). Proof. Let us consider the Gabriel graph GG of a set {pi , pj , pk , pl } of points as shown in Figure 5. The edge pi pj ∈ / E(GG) (though pi pj ∈ E(DG)) since the point pk ∈ C(pi , pj ). Moreover, the edge pi pk ∈ / E(GG) (though pi pk ∈ E(DG)) because the point pl ∈ C(pi , pk ) but pl ∈ / C(pi , pj ). Thus in the Gabriel graph GG there is no point pk such that pk ∈ C(pi , pj ) and pi pk ∈ E(GG).
8
M. Z. Hossain, M. A. Wahid and M. A. Amin
Figure 5. Proof of Proposition 2
4. Algorithm The bounded and unbounded convex redundant cells are joined together to form the cell complex of an arrangement RA which can be constructed by the boundary lines of the regions based on the edges in the Delaunay graph DG. The arrangement RA has at most 6n − 12 boundary lines and 3n(6n − 23) + 67 cells since the Delaunay graph DG with n vertices has at most 3n − 6 edges [2]. In contrast to the regular arrangement, a cell region of this arrangement can include some edges while excluding other edges of the cell. To construct the redundant cell complex of RA, first we need to construct the Delaunay graph DG and then we need to construct the arrangement RA based on the edges of DG using appropriate algorithms from literature [10, 8]. The Delaunay graph DG of n points in the plane can be computed in O(n log n) time and the arrangement RA of 6n − 12 lines can be computed in O(n2 ) time. Several data structures including the quad-edge and twin-edge with some modifications can be used to represent the arrangement RA [13]. The boundary lines of the arrangement RA require storing the information of the corresponding Delaunay edge and the incident vertex through which it passes. For every half edge, the redundant cells need to store the corresponding boundary line (pointer) including the half plane that contains it, so that we can compute whether a half edge is included in the cell region or not. Maintaining the time bound, we can compute the set of adjacent vertices in the Gabriel graph for a candidate point in one redundant cell. Then the entire cell complex is traversed from that redundant cell of known adjacent vertex set, through neighboring cells in sequence. Trivially, it can be shown that at most one vertex in Gabriel graph can be added or deleted from the adjacent vertex set between two neighboring redundant cells and we can find that candidate vertex using the information stored in the half edges of the neighboring cells. However, to confirm a candidate vertex is added to the adjacent vertex set in the traversal, the algorithm can perform required additional test in constant time since the total degree of all the vertices in the Delaunay graph is linear. Hence, the total running time of the algorithm to construct the arrangement of redundant cells with their adjacent vertex sets, is O(n2 ).1 The point location (point query) algorithms for conventional arrangement of lines [5, 14] can be used for the arrangement of redundant cells with minor modifications. More precisely, the algorithms need to find the correct redundant cell containing the query point when it is on the boundary lines (i.e., on the cell edges) of the regions based on the Delaunay edges. Since the every boundary line and 1 All
our studies related to improve the running time of the algorithm and dynamic maintenance of the arrangement are not included due to the page limitation.
Spatial Subdivision of Gabriel Graph
9
cell edge can retrieve the information of the corresponding Delaunay edge and the incident vertex through which it passes, thus it is possible to identify the desired cell by performing a constant time test on the retrieved Delaunay edge and vertex.
5. Conclusion The subdivision method actually assists to find a desired location to insert a new point rather than provides an efficient technique to insert the point and update the Gabriel graph since it does not yield the deletion edges. In the Gabriel graph, the consecutive redundant cells with the same adjacent vertex set can be merged to construct a larger cell region without the redundancy. This reduces a large number of cells in the arrangement but produces both convex and non-convex cells. Currently, we are investigating different properties and dynamic maintenance of these convex and non-convex cells.
References [1] Baumgart, M.: Partitioning bispanning graphs into spanning trees. Mathematics in Computer Science 3(1), 3–15 (2010) [2] Berg, M.d., Cheong, O., Kreveld, M.v., Overmars, M.: Computational Geometry: Algorithms and Applications, 3rd edn. Springer-Verlag TELOS, Santa Clara, CA, USA (2008) [3] Bose, P., Cardinal, J., Collette, S., Demaine, E.D., Palop, B., Taslakian, P., Zeh, N.: Relaxed gabriel graphs. In: Proceedings of the 21st Annual Canadian Conference on Computational Geometry, CCCG, pp. 169–172. British Columbia, Canada (2009) [4] Bose, P., Collette, S., Hurtado, F., Korman, M., Langerman, S., Sacristan, V., Saumell, M.: Some properties of higher order delaunay and gabriel graphs. In: Proceedings of the 22nd Annual Canadian Conference on Computational Geometry, CCCG, pp. 13–16. Manitoba, Canada (2010) [5] Devillers, O., Teillaud, M., Yvinec, M.: Dynamic location in an arrangement of line segments in the plane. Algorithms Review 2(3), 89–103 (1992) [6] Di Concilio, A.: Point-free geometries: Proximities and quasi-metrics. Mathematics in Computer Science 7(1), 31–42 (2013) [7] Gabriel, K.R., Sokal, R.R.: A new statistical approach to geographic variation analysis. Systematic Zoology (Society of Systematic Biologists) 18(3), 259–278 (1969) [8] Guibas, L., Stolfi, J.: Primitives for the manipulation of general subdivisions and the computation of voronoi. ACM Transactions on Graphics 4(2), 74–123 (1985) [9] Howe, S.E.: Estimating regions and clustering spatial data: Analysis and implementation of methods using the voronoi diagram. Ph.D. thesis, Brown University, Providence, R.I. (1978) [10] Kao, T., Mount, D.M., Saalfeld, A.: Dynamic maintenance of delaunay triangulations. Tech. rep., College Park, MD, USA (1991) [11] Lalo¨e, D., Moazami-Goudarzi, K., Lenstra, J.A., Marsan, P.A., Azor, P., Baumung, R., Bradley, D.G., Bruford, M.W., Ca˜no´ n, J., Dolf, G., Dunner, S., Erhardt, G., Hewitt, G., Kantanen, J., Obexer-Ruff, G., Olsaker, I., Rodellar, C., Valentini, A., Wiener, P.: Spatial trends of genetic variation of domestic ruminants in europe. Diversity 2, 932–945 (2010) [12] Matula, D.W., Sokal, R.R.: Properties of gabriel graphs relevant to geographic variation research and the clustering of points in the plane. Geographical Analysis 12(3), 205–222 (1980) [13] O’Rourke, J.: Computational geometry in C, 2nd edn. Cambridge University Press, New York, NY, USA (1998) [14] Seidel, R.: A simple and fast incremental randomized algorithm for computing trapezoidal decompositions and for triangulating polygons. Computational Geometry: Theory and Applications 1(1), 51–64 (1991)