An instance of data type Point_set_2<Traits> is a planar embedded bidirected graph representing the Delaunay Triangulation of its vertex set. The position of a vertex is given by and we use to denote the underlying point set. Each face of (except for the outer face) is a triangle whose circumscribing circle does not contain any point of in its interior. For every edge , the sequence
traces the boundary of the face to the left of . The edges of the outer face of form the convex hull of ; the trace of the convex hull is clockwise. The subgraph obtained from by removing all diagonals of co-circular quadrilaterals is called the Delaunay Diagram of .
The class Point_set_2<Traits> provides operations for inserting and deleting points, point location, nearest neighbor searches, and navigation in both the triangulation and the diagram.
Note that the Point_set_2<Traits> is derived from the LEDA GRAPH class (Parameterized Graphs). That means that it provides all constant graph operations (like , , ...). See the LEDA user manual or LEDA book [MN99] for more details.
Be aware that the nearest neighbor queries for a point (not for a node) and the range search queries for circles, triangles, and rectangles are non-const operations and modify the underlying graph. The set of nodes and edges is not changed; however, it is not guaranteed that the underlying Delaunay triangulation is unchanged.
The Point_set_2<Traits> class of CGAL depends on a template parameter standing for a geometric traits class. This traits class has to provide the geometric objects needed in Point_set_2<Traits> and geometric predicates on these objects.
| ||
| the point type | |
| ||
| the segment type | |
| ||
| the circle type | |
| ||
| the line type | |
|
| the field type of the representation class |
| |
the vertex type.
| |
| |
the edge type.
|
| |
creates an empty Point_set_2<Traits> .
| |
| |
creates a Point_set_2<Traits> T of the points in .
If contains multiple occurrences of points only the last
occurrence of each point is retained.
| |
| |
| |
creates a Point_set_2<Traits> T of the points in the range
[,).
|
|
| |||
makes T a Point_set_2<Traits> for the points in . | ||||
| ||||
|
| |||
makes T a Point_set_2<Traits> for the points in the range [,). | ||||
| ||||
|
| |||
places all points of Tas a sequence of objects of type in a container of value type of , which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. | ||||
| ||||
|
| |||
places all segments of T as a sequence of objects of type in a container of value type of , which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. | ||||
| ||||
|
| |||
places all vertices of T as a sequence of objects of type in a container of value type of , which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. | ||||
| ||||
|
| |||
places all points of T as a sequence of objects of type in a container of value type of , which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. | ||||
|
| |||
returns the face cycle successor of in the Delaunay diagram
of T. Precondition: belongs to the Delaunay diagram. | ||||
|
| |||
returns the face cycle predecessor of in the Delaunay diagram
of T. Precondition: belongs to the Delaunay diagram. | ||||
|
| decides whether T is empty. | ||
|
| makes T empty. | ||
|
| |||
returns an edge of T that contains or that borders the face that contains . In the former case, a hull edge is returned if lies on the boundary of the convex hull. In the latter case we have except if all points of are collinear and lies on the induced line. In this case is visible from . The function returns if has no edge. | ||||
|
| |||
if T contains a Vertex with the result is otherwise the result is . | ||||
|
| |||
inserts point into T and returns the corresponding vertex. More precisely, if there is already a vertex in T positioned at then is made identical to and if there is no such node then a new node with is added to . In either case, is returned. | ||||
|
|
removes the vertex from T. Precondition: v is a vertex in T. | ||
|
| removes the vertex with position from T. If there is no such vertex in T, the function returns without changing T. | ||
|
| |||
computes a vertex of T that is closest to . If T is empty, is returned. This is a non-const operation. | ||||
|
| |||
computes a vertex of T that is closest to .
If is the only vertex in T , is returned. Precondition: is a vertex in T. | ||||
| ||||
|
| |||
computes the nearest neighbors of , and places them as a sequence of objects of type in a container of value type of which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. | ||||
| ||||
|
| |||
computes the nearest neighbors of , and places them as a sequence of objects of type in a container of value type of which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. | ||||
| ||||
|
| |||
computes all vertices contained in the closure of disk . Precondition: must be a proper circle (not a straight line). The computed vertices will be placed as a sequence of objects in a container of value type of which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. This is a non-const operation. | ||||
| ||||
|
| |||
computes all vertices contained in the closure of the triangle . Precondition: , , and must not be collinear. The computed vertices will be placed as a sequence of objects in a container of value type of which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. This is a non-const operation. | ||||
| ||||
|
| |||
computes all vertices contained in the closure of the iso-rectangle . Precondition: is the lower left point, the lower right, the upper right and the upper left point of the iso rectangle. The computed vertices will be placed as a sequence of objects in a container of value type of which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. This is a non-const operation. | ||||
| ||||
|
| |||
places all edges of the minimum spanning tree of T as a sequence of objects of type in a container of type corresponding to the type of which points to the first object in the sequence. The function returns an output iterator pointing to the position beyond the end of the sequence. | ||||
|
| |||
checks whether is a non-diagram edge. | ||||
|
| returns the position of in T. | ||
|
| returns the source vertex of . | ||
|
| returns the target vertex of . | ||
|
| |||
returns the position of the source of in T. | ||||
|
| |||
returns the position of the target of in T. | ||||
|
| returns the line segment corresponding to edge starting at . | ||
|
| |||
returns the supporting line of edge . | ||||
|
| |||
returns . | ||||
|
| returns an edge of the outer face of T (i.e., an edge of the convex hull). | ||
|
| |||
returns true if is an edge of the Delaunay diagram, i.e., either an edge on the convex hull or an edge where the incident triangles have distinct circumcircles. | ||||
|
| |||
returns true if is an edge of the convex hull of T, i.e., an edge on the face cycle of the outer face. | ||||
|
| returns if T is empty, returns if Tconsists of only one point, returns if T consists of at least two points and all points in T are collinear, and returns otherwise. |