Navigation: Up, Table of Contents, Bibliography, Index, Title Page

Definition

#include <CGAL/Delaunay_triangulation_3.h>

Inherits From

Triangulation_3<Traits,Tds>

Types

Inherits the types of Triangulation_3<Traits,Tds>.

Creation

Delaunay_triangulation_3<Traits,Tds> dt;
Creates an empty Delaunay triangulation.


Delaunay_triangulation_3<Traits,Tds> dt ( Traits traits);
Creates an empty Delaunay triangulation with traits class traits.


Delaunay_triangulation_3<Traits,Tds> dt ( dt1);
Copy constructor.

Modifiers

Insertion

The following methods overload the corresponding methods of triangulations to ensure the empty sphere property of Delaunay triangulations.

Vertex_handle dt.insert ( Point p)
Inserts point p in the triangulation and returns the corresponding vertex. Similar to the insertion in a triangulation, but ensures in addition the empty sphere property of all the created faces.

Vertex_handle dt.insert ( Point p, Cell_handle start)
Same as the previous method, start is used as a starting place for the search done within the insertion.

The following method allows one to insert several points. It returns the number of inserted points.

template < class InputIterator >
int dt.insert ( InputIterator first, InputIterator last)
Inserts the points in the range [.first, last.).
Precondition: The value_type of first and last is Point.

Removal

void dt.remove ( Point p)
Removes the vertex associated with p.
Precondition: There is a vertex of the triangulation associated with p.
not yet implemented

Queries

Bounded_side dt.side_of_sphere ( Cell_handle c, Point p)
Returns a value indicating on which side of the circumscribed sphere of c the point p lies. More precisely, it returns:
- ON_BOUNDED_SIDE if p is inside the sphere. For an infinite cell this means that p lies strictly either in the half space limited by its finite facet and not containing any other point of the triangulation, or in the interior of the disk circumscribing the finite facet.
- ON_BOUNDARY if p on the boundary of the sphere. For an infinite cell this means that p lies on the circle circumscribing the finite facet.
- ON_UNBOUNDED_SIDE if p lies outside the sphere. For an infinite cell this means that p does not satisfy either of the two previous conditions.
Precondition: dt.dimension() =3.

Bounded_side dt.side_of_circle ( Facet f, Point p)
Returns a value indicating on which side of the circumscribed circle of f the point p lies. More precisely, it returns:
- in dimension 3:
- For a finite facet, ON_BOUNDARY if p lies on the circle, ON_UNBOUNDED_SIDE when it lies in the exterior of the disk, ON_BOUNDED_SIDE when it lies in its interior.
- For an infinite facet, it considers the plane defined by the finite facet of the same cell, and does the same as in dimension 2 in this plane.
- in dimension 2:
- For a finite facet, ON_BOUNDARY if p lies on the circle, ON_UNBOUNDED_SIDE when it lies in the exterior of the disk, ON_BOUNDED_SIDE when it lies in its interior.
- For an infinite facet, ON_BOUNDARY if the point lies on the finite edge of f (endpoints included), ON_BOUNDED_SIDE for a point in the open half plane defined by f and not containing any other point of the triangulation, ON_UNBOUNDED_SIDE elsewhere.
Precondition: dt.dimension() 2 and in dimension 3, p is coplanar with f.

Bounded_side dt.side_of_circle ( Cell_handle c, int i, Point p)
Same as the previous method for facet i of cell c.


begin of advanced section

Checking

bool dt.is_valid ( bool verbose = false)
Checks the combinatorial validity of the triangulation and the validity of its geometric embedding (see Section reference). Also checks that all the circumscribing spheres (resp. circles in dimension 2) of cells (resp. facets in dimension 2) are empty.
When verbose is set to true, messages describing the first invalidity encountered are printed.

bool dt.is_valid ( Cell_handle c, bool verbose = false)
Checks the combinatorial and geometric validity of the cell (see Section reference). Also checks that the circumscribing sphere (resp. circle in dimension 2) of cells (resp. facet in dimension 2) is empty.
When verbose is set to true, messages are printed to give a precise indication of the kind of invalidity encountered.

These methods are mainly a debugging help for the users of advanced features.
end of advanced section


Next: Class declaration of Delaunay_hierarchic_triangulation_3<Traits,Tds>
Navigation: Up, Table of Contents, Bibliography, Index, Title Page
The GALIA project. Jan 18, 2000.