1 Introduction
Digital modelling and simulation of a natural phenomenon often requires discrete representation of the physical objects involved. Representation should be as close to the original object as possible and at the same time it must allow for a reasonably accurate simulation of the problem of interest. Delaunay triangulation satisfies later requirement[26] however, being a convex hull algorithm it does not necessarily preserve the object boundaries. Constrained Delaunay triangulation on the other hand relaxes the emptycircle criteria thereby making it possible to fulfil the former requirement. Consequently, not every element of the resulting triangulation is Delaunay but boundary constraints are preserved. As [27] points out, CDTs provide an advantage of object boundary preservation at the cost of strict compliance of each element of the mesh with the Delaunay property, however, in general, it also results in lesser number of additional points(called steiner points) added to satisfy both Delaunay property for each element and preserving object boundary(a variant called Conforming constrained Delaunay triangulation).
Constrained Delaunay triangulation finds application in Path planning[17], Terrain modelling[32], Geographic information systems[24], PCB design[15], finite difference analysis[23]
[38] etc. CDT finds its application even in the field of parallel mesh generation as [5] claims that using CDT as mesh generation approach results in reduction of communication cost and elimination of synchronization overheads as compared to other approaches used for mesh generation. [9] uses CDT to reconstruct a triangulation given its minimal set of edges.1.1 Motivation
There has been a brief review of constrained Delaunay triangulation algorithms by [11] however, since then many algorithms have been reported with each focusing on different aspects of computation like parallel computation, IO efficiency and generalizations like nonEuclidean distance metrics, higher order Delaunay criterion etc. There have also been additions of new algorithms to the categories defined by [11] for classification of CDT algorithms. Therefore, objective of this work is to report updates over [11], keeping as much of the taxonomic structure proposed by the original paper as possible and enhancing it wherever it is required.
1.2 Paper outline
The concept of Constrained Delaunay triangulation and its properties are introduced in Section 2. Prominent algorithms appearing after the work by [11] have been discussed in section 3. Section 4 discusses some interesting generalizations of the CDT problem to higher dimensions, different space metric and a generalization of Constrained Delaunay criteria. Section 5 concludes the paper.
2 Basic definition and properties of CDT
Let X be a planar straight line graph(PSLG), then CDT of X is the union of all constrained Delaunay simplices, which in two dimensions, contains all segments and points of X. A simplex is constrained Delaunay if there is a corresponding circumcircle which encloses no point of X that is visible from the inside of the simplex[21]. A point is visible from inside a simplex if there is no segment of X which intersects a segment drawn between that point and a point in the simplex[29]. As it can be noted, visibility criterion relaxes the original emptycircumcircle constraint imposed on Delaunay simplices to permit points on or inside the circumcircle of a simplex if they are guarded by a constraint segment against all points of that simplex. Figure 1 explains the constrained Delaunay criterion, where in Fig. 0(a) highlights the case when an outside point(E) is allowed to be at the circumference since it is not visible to any of the constituent points(A, B and C) and Fig. 0(b) shows the case when an external point(E) is visible and hence the triangle ABC is not constrained Delaunay.
2.1 Properties of CDT in 2D
Constrained Delaunay triangulation in two dimensions exhibits identical properties as that by unconstrained Delaunay triangulation. For example, like Delaunay triangulation, CDT maximizes the minimum angle of every triangle in the mesh[21], it minimizes the maximum enclosing circle radius[30] among all possible constrained triangulations of a given PSLG. Delaunay triangulation and voronoi diagram are duals of each other, similarly, CDTs are duals of constrained(or Bounded) Voronoi diagrams[19], [16], [37].
3 Proposed taxonomy of stateofart in CDT algorithms
Constrained Delaunay triangulation algorithms proposed in the literature can be categorised mainly in two classes based on how they process the input PSLG. They either process it all at once to create the CDT, called the static algorithms or they process the input points and constraint segments one at a time thereby imparting incremental nature to the solution, which we categorize as dynamic algorithms.
3.1 Static CDT algorithms
Initial work in the direction of development of algorithms for CDT was for simple polygons as inputs. A linear time randomized divide and conquer approach was proposed by [19] for computing constrained Voronoi diagram of a simple polygon by merging Voronoi diagrams of subregions of the input, thereby using the duality it can be used for computing the corresponding CDT. Specifically, [19] proposed partitioning input polygon into a set of simpler polygons which are called pseudonormal histograms(or PNHs). Solution to the original CDT problem is obtained after merging CDTs of these individual PNHs. Decomposition of a polygon into PNHs and merging CDTs of PNHs to make the solution, both stages have linear time complexity however the algorithm for computing CDT of individual PNH was proposed using a random algorithm with linear time expected complexity. [6] later improved over this work by proposing a lineartime deterministic algorithm for computing CDT of individual PNHs.
[21] proposed an averagecase time complexity divide and conquer algorithm, where represents the number of points, for computing CDT(referred to as Generalized Delaunay triangulation) of a given simple polygon by merging GDTs of its decomposition into a set of simpler polygons.
3.1.1 Algorithms for general polygons
[21] also proposed an time CDT algorithm for the case of general graphs(i.e., holes possible), where represents the number of points. Their algorithm is based on identifying the Delaunay edges incident on every point. It starts by first computing a set of points visible from each point and connecting them to form a structure called visibility graph, followed by scanning of all edges incident on each point and removing all nonDelaunay edges unless it is a constraint edge. Resultant structure forms the CDT of given set of points and edges.
[4] proposed an time static divide and conquer algorithm for computing CDT, it takes complete PSLG as input at once and partitions the space into rectangular strips, computes CDT of individual strips and then combines neighboring strips to compute the CDT of given PSLG.
[1] proposed an IOefficient CDT algorithm which they claimed experimentally to be able to process 10GBs of LIDAR data on 128MB RAM and within 7.5 hours. There approach was to initially generate recursive subdivisions of the input point set(called, gradation), use an already existing internal memory algorithm to compute CDT of the leaf of that recursive subdivision and use this result to compute CDT of supersets progressively(i.e., following the gradation). However, their algorithm is limited to the cases where number of constraint segments of PSLG are in the order of size of main memory. Specifically, for cases where , they claim total number of IO operations to be . They also pose an open question on existence of a randomized incremental CDT algorithm with complexity which was later addressed in [31].
3.2 Dynamic CDT algorithms
Dynamic CDT algorithms incrementally process input PSLG by inserting constraints one at time in the resultant mesh. Specifically, it inserts input points followed by insertion of constrained edges one at a time as opposed to the static algorithms which process the input all at once. Dynamic algorithms provide the practical flexibility of adding constraints ondemand. Dynamic CDT algorithms proposed thus far in the literature primarily differ in two stages of the algorithm, namely, the strategy for insertion of an input point and that for insertion of a constraint edge in the current triangulation.
3.2.1 Point insertion strategy
[7] presents a dynamic algorithm for realizing multiresolution surface representation using CDT[8] as its basis. It assumes triangulated PSLG as its input. Triangulation of higher resolution surface is obtained from that of lower resolution, by addition of points and constraint segments. For each new point, it identifies the set of triangles in which will have this point in their circumcircles, called the influence region of that point and computes a polygon from outer boundaries of these triangles called influence polygon. It then joins new point with all points of influence polygon, thereby remeshing the interior of influence polygon with addition of this new point. Since only linear number of triangles are affected by insertion of a point, worstcase time complexity of point insertion algorithm is . [22] presents an exactly similar point insertion approach but with different terminology.
[2] proposes a point insertion algorithm derived from generalization of the approach proposed in [34],[20]. It locates the triangle(say t) which encloses the new point, p. It then partitions t into three triangles ,, . For each triangle, it determines if its neighbor triangle(sharing nonconstraint edge) which does not share p does not have p in its circumcircle. If this neighbor triangle violates this condition then it is removed from the mesh and its neighbors are explored inturn. This process continues until non of the triangles contain p in its interior. Worst case complexity of this point insertion procedure is .
[10] proposes an approach based on [39]. It performs point insertion in three stages, initialization, triangulation and finalization. During initialization, an artificial triangle(also called supertriangle) is constructed, it contains encloses all points of input PSLG. This supertriangle is splitted by insertion of first input point into three subtriangles. Then during triangulation stage, it uniformly subdivides the input region using a twolevel uniform planar subdivision data structure(referred as 2LUPS). This data structure partitions the input region in terms of cells, with uniform subdivision called the level one subdivision and adaptive subdivision inside a cell to adapt to nonuniform point density called the level two subdivision. Point insertion proceeds after this subdivision, in which, the point is first inserted into a cell of 2LUPS and then a closest point is searched within that cell. If the triangle incident on this found point also contains the point to be inserted then this triangle is divided else the next closest point is searched and similar checks are repeated. Each subtriangle is checked for empty circle criterion. Last step in this algorithm is removing all triangles which share a vertex of supertriangle. This algorithm works with average case complexity and in worst case complexity reaches to , where is the number of inserted points.
[18] first locates the input point, if it is present on an edge then edge is splited to contain this point, if this point is found on a face then face is splitted. So, point insertion primalrily involves dealing with case of inserting point on an edge or inserting point on a face. Since insertion of a new point may turn an edge nonDelaunay, edge flipping is used to restore Delaunay property of all nonconstrained segments. Insertion of one point may require edge flips, however for Delaunay triangulations with random input expected number of edge flips are constant[14].
3.2.2 Constraint edge insertion strategy
[7], [8] employ simple generalization of their algorithm for point insertion to the segment insertion problem. For each constraint segment they first identify the list of triangle which intersect this segment which is called the influence region of that segment like that for points. From this list, outer boundary of these triangle is identified called the influence polygon using an worst case time algorithm. The new segment t to be inserted is a diagonal of this polygon. Therefore, we have two cavities separated by this constrained segment. This polygon is then triangulated(nonDelaunay) using an worst case time algorithm to fill this region, where is the size of influence polygon. After this retriangulation, all edges inside this polygon are optimized by enforcing the emptycircle criterion.
[35] proposed a similar approach based on incremental insertion of edges which first computes Delaunay triangulation of the input point set using the approach described in [34] followed by enforcing constraint segments into it and then optimizing the triangulation by ensuring that all nonconstraint edges in the resultant triangulation(i.e., the CDT) are Delaunay. It loops over every constraint edge, and for each edge, it finds all intersecting edges in the initial Delaunay triangulation. It then removes all intersecting edges and restores the Delaunay triangulation for nonconstraint edges using triangle swapping(implemented using edgeflipping). It then removes all superfluous triangles which are either present beyond input boundary or if they share a point with the supertriangle[34] computed during Delaunay triangulation. They experimentally observe that the proposed algorithms roughly takes CPU time proportional to the number of points(i.e., ) in PSLG.
Triangle package employs an algorithm proposed by [28] for computing CDT dynamically. They achieve averagecase time complexity, regardless of distribution of points. It is similar in overall layout to the [35] in that it starts with an initial Delaunay triangulation of input point set, followed by recovery of constraint edges in the final mesh by deleting the triangle it overlaps and retriangulating each side of the region thus formed.
[2] proposed an improvement over [8] on constraint edge insertion strategy. It follows the typical outline of incrementally inserting constraint edge, identifying and removing intersecting triangles thereby forming two cavity and then retriangulating cavities separately. However, the difference from [8] lies in the way they retriangulate the cavities. They use a recursive algorithm for triangulating upper() and lower() polygons(or cavity). In a polygon(say ), this algorithm identifies a point (say, ) with respect to the constraint edge(say ab) such that satisfies empty circumcircle property. divides into two subregions and . Then this algorithm is recursively applied on these subregions with respect to edges and . This approach ensures preservation of in the final mesh after both and are triangulated. Their algorithm has worstcase time complexity. The approach proposed by [28] and [2] have established as general framework for constraint segment insertion approaches, [18], [10] and many other works have utilized these algorithms.
[31] uses similar segment insertion algorithm framework as in [2], but proposes a new randomized cavity retriangulation algorithm, along which the resultant segment insertion algorithm has time complexity linear in number of edges crossed by the constraint segment. [31] claims that their algorithm can deal with nonconvex cavities, dangling segments inside cavity and cavities with selfintersections which was not possible with the CDT algorithm proposed by [4]. They derived a tight bound on average case time complexity using the results from [1].
3.3 Parallel CDT algorithms for PSLG
Parallelization often requires domain decomposition, and in context of computing CDT of input PSLG, we need to partition the space of points in PSLG. In that direction, [3] proposes a quality Delaunay mesh generation algorithm which uses constrained segments to separate subdomains. Assuming such a domain decomposition, their algorithm utilizes the fact that if each subdomain has Delaunay conforming mesh then resultant global mesh will also be constrained Delaunay. However, ensuring Delaunay property in each subdomain may require subdivision of some of its elements, therefore this algorithm may result in subdivision of constrained segments itself in which case a SPLIT message is signaled to the adjacent subdomain(i.e., a thread or processor) to maintain consistency of the state of constrained segments across subdomains. Their comparative evaluation on a single node with the algorithm proposed by [28] suggests comparable running times.
Recently, GPU’s have found many applications beyond graphics computing and some of their variants have now come to be referred as General purpose GPUs(or the GPGPU’s). [24] proposes a CDT algorithm using parallelization advantages available in GPUs. They first construct a triangulation of the points in input PSLG, then constraint edges are inserted using edgeflipping
which results in a constrained triangulation which is then transformed into the corresponding Constrained Delaunay triangulation, again using the edgeflipping approach. They use NVIDIA CUDAenabled GPUs to achieve a claimed speedup of more than 10x over CDT implementation in Triangle package. However, performance of their approach degrades when the input dataset is skewed.
4 Generalizations
In context of the usual distance metric for CDT problem, [36] have proposed a generalization to the isotropic nature of triangles generated in conventional CDT algorithms, they propose directional CDT, in which if each input point has an associated deformed ellipse which represents curvature of the surface, triangles in the resulting mesh with their shapes adapted to that curvature information can be generated. Such modelling problems arise in mesh generation over parametric surfaces. Their work required generalizing CDT problem from conventional Euclidean distance metric to the elliptical space. Therefore, effectively the circumcircle in the conventional problem becomes a circumellipse in this generalization. Similarly, in this transformed space Delaunay criterion becomes the empty circumellipse criterion.
Addressing the possibility of CDT in higher dimensions, [29] proposes a sufficient condition for the existence of CDT in dimensions higher than two. CDTs have not been generalized beyond twodimensions because of the existence of many singular nontriangulable structures, for example the Schönhardt polyhedron[25]. However, if we can transform our input PSLG to another topologically equivalent input following the Shewchuk’s theorem, a CDT exists. It states that an ddimensional input PSLG X has CDT if each of its kdimensional constraining facet is a union of kdimensional strongly Delaunay simplices(), where, a simplex is strongly Delaunay if there exists a circumsphere for its points which does not contain any other point inside or on its surface(hence a stronger version of the Delaunay criterion).
[12] relaxes the empty circle criterion to include atmost k points inside circle, in which case the triangle is called a korder triangle. Such generalization is useful in optimizing criteria other than characteristic criteria of Delaunay triangulation, for example minimizing the number of local minima(or maxima), which are useful for dealing with artificial dam problem and interrupted ridge lines in elevation models respectively. [13] further generalizes this concept from Higher order Delaunay triangulation(HODs) to constrained Higher order Delaunay triangulations. In the same direction, [33] proposes definitions of higher order CDT in an attempt to combine the concept of higher order Delaunay triangulation and CDT. These definitions deal with the way of defining the order of a triangle. Specifically, it defines different cases for how number of points inside circumcircle of a triangle should be counted, choice of which depends on the application.
5 Conclusion
We have observed that in the class of static CDT algorithms, initial work has been in the direction of CDT algorithms for simple polygons and some works have extended the problem domain to general graph(i.e., allowing possibility of holes). Divide and conquer strategy has been a dominant design approach for this class of problems.
Since the review article [11], dynamic CDT algorithms have seen higher growth, which seems to be due to their higher practicability and flexibility as compared to static algorithms which requires complete input all at once. However, since that period the averagecase complexity has still stayed around . Almost all reviewed dynamic CDT algorithms use identical segment insertion algorithm framework but they differ in their strategies for triangulation of polygons(or cavities) created after removal of triangles intersecting the constraint edge.
Algorithms with focus over IOefficiency since then have been proposed which are able to handle PSLG’s of the size of 10GBs. In present time, such algorithms become very crucial when the data generated by even personal computing devices is of this order.
Parallel algorithms have been proposed for multiCPU and recently popular GPGPUs which have facilitated orders of magnitude speedup over equivalent sequential algorithms.
Further, almost throughout this period, the work by Dr. Shewchuk has formally established properties of constrained Delaunay triangulation [30], defined existence criterion for higher dimensions[29] and facilitated a robust 2D CDT code in Triangle[28]. In addition, a recent work of his group on CDT problem [31] has attempted answering questions posed by [1] regarding existence of randomized incremental CDT algorithm with time complexity.
Efforts have also been made to generalize the concept of constrained Delaunay triangulation beyond two dimensions. In order to deal with parametric surface meshes, setting of CDT problem has been extended beyond conventional Euclidean distance metric to deal with elliptical distance metric. Work by [13] explored generalization of empty circumsphere property of Delaunay elements itself as they have dealt with the case of allowing multiple points inside the circumpsphere and proposed various definitions of Higher order Constrained Delaunay triangulation.
Acknowledgements
Authors would like to thank Computer Division, Bhabha Atomic Research Centre for providing cooperation and support throughout the duration of this work.
References
 [1] Agarwal, P.K., Arge, L., Yi, K.: I/oefficient construction of constrained delaunay triangulations. In: European Symposium on Algorithms. pp. 355–366. Springer (2005)
 [2] Anglada, M.V.: Graphics hardware an improved incremental algorithm for constructing restricted delaunay triangulations. Computers & Graphics 21(2), 215 – 223 (1997), http://www.sciencedirect.com/science/article/pii/S0097849396000854
 [3] Chernikov, A.N., Chrisochoides, N.P.: Algorithm 872: Parallel 2d constrained delaunay mesh generation. ACM Transactions on Mathematical Software (TOMS) 34(1), 6 (2008)
 [4] Chew, L.P.: Constrained delaunay triangulations. In: Proceedings of the Third Annual Symposium on Computational Geometry. pp. 215–222. SCG ’87, ACM, New York, NY, USA (1987), http://doi.acm.org/10.1145/41958.41981
 [5] Chew, L.P.: Parallel constrained delaunay meshing (1997)
 [6] Chin, F., Wang, C.A.: Finding the constrained delaunay triangulation and constrained voronoi diagram of a simple polygon in linear time. SIAM Journal on Computing 28(2), 471–486 (1998)

[7]
De Floriani, L., Puppo, E.: Constrained delaunay triangulation for multiresolution surface description. In: Pattern Recognition, 1988., 9th International Conference on. pp. 566–569. IEEE (1988)
 [8] De Floriani, L., Puppo, E.: An online algorithm for constrained delaunay triangulation. CVGIP: Graphical Models and Image Processing 54(4), 290–300 (1992)
 [9] Devillers, O., Estkowski, R., Gandoin, P.M., Hurtado, F., Ramos, P., Sacristán, V.: Minimal set of constraints for 2d constrained delaunay reconstruction. International Journal of Computational Geometry & Applications 13(05), 391–398 (2003)
 [10] Domiter, V.: Constrained delaunay triangulation using plane subdivision
 [11] Floriani, L.D., Puppo, E.: A Survey of Constrained Delaunay Triangulation Algorithms for Surface Representation, pp. 95–104. Springer Vienna, Vienna (1989), http://dx.doi.org/10.1007/9783709128305_7
 [12] Gudmundsson, J., Hammar, M., van Kreveld, M.: Higher order delaunay triangulations. Computational Geometry 23(1), 85–98 (2002)
 [13] Gudmundsson, J., Haverkort, H.J., Van Kreveld, M.: Constrained higher order delaunay triangulations. Computational Geometry 30(3), 271–277 (2005)
 [14] Guibas, L.J., Knuth, D.E., Sharir, M.: Randomized incremental construction of delaunay and voronoi diagrams. Algorithmica 7(16), 381–413 (1992)
 [15] Halama, S.: What could a virtual wafer look like? In: Microelectronics, 1997. Proceedings., 1997 21st International Conference on. vol. 1, pp. 49–56 vol.1 (Sep 1997)
 [16] Joe, B., Wang, C.A.: Duality of constrained voronoi diagrams and delaunay triangulations. Algorithmica 9(2), 142–155 (1993), http://dx.doi.org/10.1007/BF01188709
 [17] Kallmann, M.: Path planning in triangulations (2005)
 [18] Kallmann, M., Bieri, H., Thalmann, D.: Fully dynamic constrained delaunay triangulations. In: Geometric modeling for scientific visualization, pp. 241–257. Springer (2004)
 [19] Klein, R., Lingas, A.: A lineartime randomized algorithm for the bounded voronoi diagram of a simple polygon. In: Proceedings of the Ninth Annual Symposium on Computational Geometry. pp. 124–132. SCG ’93, ACM, New York, NY, USA (1993), http://doi.acm.org/10.1145/160985.161008
 [20] Lawson, A.B.: software. Statistical Methods in Spatial Epidemiology, Second Edition pp. 363–366
 [21] Lee, D.T., Lin, A.K.: Generalized delaunay triangulation for planar graphs. Discrete & Computational Geometry 1(3), 201–217 (1986)
 [22] Lu, Y.: Dynamic constrained delauney triangulation and application to multichip module layout (m.s. thesis). Tech. rep., Santa Cruz, CA, USA (1991)
 [23] McTaggart, N., Zagórski, R., Bonnin, X., Runov, A., Schneider, R.: Finite difference scheme for solving general 3d convection–diffusion equation. Computer physics communications 164(1), 318–329 (2004)
 [24] Qi, M., Cao, T.T., Tan, T.S.: Computing 2d constrained delaunay triangulation using the gpu. IEEE transactions on visualization and computer graphics 19(5), 736–748 (2013)
 [25] Schönhardt, E.: Über die zerlegung von dreieckspolyedern in tetraeder. Mathematische Annalen 98(1), 309–312 (1928)

[26]
Shewchuk, J.: What is a good linear finite element? interpolation, conditioning, anisotropy, and quality measures (preprint) (2002)
 [27] Shewchuk, J.R.: Constrained delaunay tetrahedralizations and provably good boundary recovery. Citeseer
 [28] Shewchuk, J.R.: Triangle: Engineering a 2d quality mesh generator and delaunay triangulator. In: Applied computational geometry towards geometric engineering, pp. 203–222. Springer (1996)
 [29] Shewchuk, J.R.: A condition guaranteeing the existence of higherdimensional constrained delaunay triangulations. In: Proceedings of the Fourteenth Annual Symposium on Computational Geometry. pp. 76–85. SCG ’98, ACM, New York, NY, USA (1998), http://doi.acm.org/10.1145/276884.276893
 [30] Shewchuk, J.R.: Generaldimensional constrained delaunay and constrained regular triangulations, i: Combinatorial properties. Discrete & Computational Geometry 39(13), 580–637 (2008)
 [31] Shewchuk, J.R., Brown, B.C.: Fast segment insertion and incremental construction of constrained delaunay triangulations. Computational Geometry 48(8), 554–574 (2015)
 [32] Silveira, R.I.: Optimization of polyhedral terrains (2009)
 [33] Silveira, R.I., Van Kreveld, M.: Towards a definition of higher order constrained delaunay triangulations. Computational Geometry 42(4), 322–337 (2009)
 [34] Sloan, S.W.: A fast algorithm for constructing delaunay triangulations in the plane. Adv. Eng. Softw. 9(1), 34–55 (Jan 1987), http://dl.acm.org/citation.cfm?id=22847.22852
 [35] Sloan, S.: A fast algorithm for generating constrained delaunay triangulations. Computers & Structures 47(3), 441–450 (1993)
 [36] Vigo, M., Pla, N.: Computing directional constrained delaunay triangulations. Computers & Graphics 24(2), 181–190 (2000)
 [37] Wang, C.A., Chin, F.: Finding the constrained delaunay triangulation and constrained voronoi diagram of a simple polygon in lineartime. In: European Symposium on Algorithms. pp. 280–294. Springer (1995)
 [38] Yang, S.W., Choi, Y., Lee, H.C.: {CAD} data visualization on mobile devices using sequential constrained delaunay triangulation. ComputerAided Design 41(5), 375 – 384 (2009), http://www.sciencedirect.com/science/article/pii/S0010448508001632, voronoi Diagrams and their Applications
 [39] Žalik, B., Kolingerová, I.: An incremental construction algorithm for delaunay triangulation using the nearestpoint paradigm. International Journal of Geographical Information Science 17(2), 119–138 (2003)