<!-- ##### SECTION Title ##### -->
Delaunay and constrained Delaunay triangulations

<!-- ##### SECTION Short_Description ##### -->
implementation of a dynamic Delaunay triangulation algorithm.

<!-- ##### SECTION Long_Description ##### -->
<para>
The functions described in this section are useful to build two-dimensional Delaunay and constrained Delaunay triangulations. Only the @x and @y coordinates of the points are taken into account.
</para>
<para>
The algorithm is fully dynamic (insertion and deletion) for Delaunay triangulation and semi-dynamic (insertion only of vertices and constraints) for constrained Delaunay triangulation. 
</para>
<para>
The insertion part uses a very simple jump-and-walk location algorithm which can be used on any (even non-Delaunay) 2D triangulation as long as its boundary is convex.
</para>
<para>
The functions gts_delaunay_conform() and gts_delaunay_refine() can be used to build Delaunay conforming constrained triangulations and to refine them.
</para>

<!-- ##### SECTION See_Also ##### -->
<para>

</para>

<!-- ##### SECTION Stability_Level ##### -->


<!-- ##### MACRO GTS_CONSTRAINT_CLASS ##### -->
<para>

</para>

@klass: 


<!-- ##### MACRO GTS_CONSTRAINT ##### -->
<para>

</para>

@obj: 


<!-- ##### MACRO GTS_IS_CONSTRAINT ##### -->
<para>

</para>

@obj: 


<!-- ##### STRUCT GtsConstraintClass ##### -->
<para>

</para>


<!-- ##### STRUCT GtsConstraint ##### -->
<para>

</para>


<!-- ##### FUNCTION gts_constraint_class ##### -->
<para>

</para>

@Returns: 


<!-- ##### FUNCTION gts_point_locate ##### -->
<para>

</para>

@p: 
@surface: 
@guess: 
@Returns: 


<!-- ##### FUNCTION gts_delaunay_add_vertex ##### -->
<para>

</para>

@surface: 
@v: 
@guess: 
@Returns: 


<!-- ##### FUNCTION gts_delaunay_add_vertex_to_face ##### -->
<para>

</para>

@surface: 
@v: 
@f: 
@Returns: 


<!-- ##### FUNCTION gts_delaunay_remove_vertex ##### -->
<para>

</para>

@surface: 
@v: 


<!-- ##### FUNCTION gts_delaunay_add_constraint ##### -->
<para>

</para>

@surface: 
@c: 
@Returns: 


<!-- ##### FUNCTION gts_delaunay_check ##### -->
<para>

</para>

@surface: 
@Returns: 


<!-- ##### FUNCTION gts_delaunay_remove_hull ##### -->
<para>

</para>

@surface: 


<!-- ##### FUNCTION gts_delaunay_conform ##### -->
<para>

</para>

@surface: 
@steiner_max: 
@encroaches: 
@data: 
@Returns: 


<!-- ##### FUNCTION gts_delaunay_refine ##### -->
<para>

</para>

@surface: 
@steiner_max: 
@encroaches: 
@encroach_data: 
@cost: 
@cost_data: 
@Returns: 


