mirror of https://github.com/CGAL/cgal
polish T2
This commit is contained in:
parent
4283174bb0
commit
b14cfce8cd
|
|
@ -4,34 +4,36 @@ namespace CGAL {
|
|||
/*!
|
||||
\ingroup PkgTriangulation2TriangulationClasses
|
||||
|
||||
A constrained Delaunay triangulation is a triangulation with
|
||||
constrained edges which tries to be as much Delaunay as possible.
|
||||
Constrained edges are not necessarily Delaunay edges,
|
||||
therefore a constrained Delaunay triangulation is not a Delaunay
|
||||
triangulation. A constrained Delaunay is a triangulation
|
||||
whose faces do not
|
||||
necessarily fulfill the empty circle property
|
||||
but fulfill a weaker property called the
|
||||
<I>constrained empty circle</I>.
|
||||
To state this property,
|
||||
it is convenient to think of constrained
|
||||
edges as blocking the view. Then, a triangulation is
|
||||
constrained Delaunay if
|
||||
the circumscribing circle
|
||||
of any of its triangular faces includes in its interior
|
||||
no vertex that is visible
|
||||
from the interior of the triangle.
|
||||
The class `Constrained_Delaunay_triangulation_2` is designed to represent
|
||||
constrained Delaunay triangulations.
|
||||
A constrained Delaunay triangulation is a triangulation with
|
||||
constrained edges which tries to be as much Delaunay as possible.
|
||||
Constrained edges are not necessarily Delaunay edges, therefore a
|
||||
constrained Delaunay triangulation is not a Delaunay triangulation. A
|
||||
constrained Delaunay is a triangulation whose faces do not necessarily
|
||||
fulfill the empty circle property but fulfill a weaker property called
|
||||
the <I>constrained empty circle</I>. To state this property, it is
|
||||
convenient to think of constrained edges as blocking the view. Then, a
|
||||
triangulation is constrained Delaunay if the circumscribing circle of
|
||||
any of its triangular faces includes in its interior no vertex that is
|
||||
visible from the interior of the triangle.
|
||||
|
||||
As in the case of constrained triangulations, three different versions
|
||||
of Delaunay constrained triangulations are offered
|
||||
depending on whether the user wishes to handle
|
||||
intersecting input constraints or not.
|
||||
The desired version can be selected through the instantiation of the
|
||||
third template parameter `Itag` which can be one of the
|
||||
following :
|
||||
|
||||
\tparam Traits is the geometric traits of a constrained Delaunay triangulation.
|
||||
It must be a model of `DelaunayTriangulationTraits_2`, providing the `side_of_oriented_circle` test
|
||||
of a Delaunay triangulation.
|
||||
When intersection of input constraints are supported,
|
||||
the geometric traits class
|
||||
is required to provide additional function object types
|
||||
to compute the intersection of two segments.
|
||||
and has then to be also a model of the concept
|
||||
`ConstrainedTriangulationTraits_2`.
|
||||
|
||||
\tparam Tds must be a model of `TriangulationDataStructure_2`.
|
||||
|
||||
\tparam Itag allows to select if intersecting constraints are supported and how they are handled.
|
||||
- `No_intersection_tag` if intersections of
|
||||
input constraints are disallowed,
|
||||
- `Exact_predicates_tag` allows intersections between input
|
||||
|
|
@ -41,21 +43,6 @@ predicates but approximate constructions of the intersection points,
|
|||
constraints and is to be used in conjunction with an exact arithmetic
|
||||
type.
|
||||
|
||||
The template parameters `Tds`
|
||||
has to be instantiate with a model of `TriangulationDataStructure_2`.
|
||||
The geometric traits
|
||||
of a constrained Delaunay triangulation is required
|
||||
to provide the `side_of_oriented_circle` test as the geometric traits
|
||||
of a Delaunay triangulation and the `Traits`
|
||||
parameter has
|
||||
to be instantiated with a model
|
||||
`DelaunayTriangulationTraits_2`.
|
||||
When intersection of input constraints are supported,
|
||||
the geometric traits class
|
||||
is required to provide additional function object types
|
||||
to compute the intersection of two segments.
|
||||
and has then to be also a model of the concept
|
||||
`ConstrainedTriangulationTraits_2`.
|
||||
|
||||
A constrained Delaunay triangulation is not a Delaunay
|
||||
triangulation but it is a constrained triangulation.
|
||||
|
|
|
|||
|
|
@ -77,10 +77,8 @@ Section \ref Section_2D_Triangulations_Constrained_Plus.
|
|||
|
||||
\image html constraints.gif
|
||||
|
||||
The class `Constrained_triangulation_2` of the \cgal library
|
||||
implements constrained triangulations.
|
||||
The template parameter `Traits`
|
||||
stands for a geometric traits class. It has to be a model
|
||||
|
||||
\tparam Traits is a geometric traits class and must be a model
|
||||
of the concept `TriangulationTraits_2`.
|
||||
When intersection of input constraints are supported,
|
||||
the geometric traits class
|
||||
|
|
@ -88,15 +86,15 @@ is required to provide additional function object types
|
|||
to compute the intersection of two segments.
|
||||
It has then to be a model of the concept
|
||||
`ConstrainedTriangulationTraits_2`.
|
||||
The template parameter `Tds`
|
||||
stands for
|
||||
a triangulation data structure class that has to be a model
|
||||
|
||||
|
||||
\tparam Tds must be a model
|
||||
of the concept `TriangulationDataStructure_2`.
|
||||
The third parameter `Itag` is the intersection tag
|
||||
|
||||
\tparam Itag is the intersection tag
|
||||
which serves to choose between the different
|
||||
strategies to deal with constraints intersections.
|
||||
\cgal provides three valid types for this parameter:
|
||||
|
||||
- `No_intersection_tag` disallows intersections of
|
||||
input constraints,
|
||||
- `Exact_predicates_tag` is to be used when the traits
|
||||
|
|
|
|||
|
|
@ -17,22 +17,15 @@ of more than three points,
|
|||
the Delaunay triangulation is unique, it is the dual
|
||||
of the Voronoi diagram of the points.
|
||||
|
||||
### Parameters ###
|
||||
|
||||
The template parameter `Tds`
|
||||
is to be instantiated with a model of
|
||||
`TriangulationDataStructure_2`.
|
||||
\tparam Tds must be a model of `TriangulationDataStructure_2`.
|
||||
\cgal provides a default instantiation for this parameter,
|
||||
which is the class
|
||||
`CGAL::Triangulation_data_structure_2 < CGAL::Triangulation_vertex_base_2<Traits>, CGAL::Triangulation_face_base_2<Traits> >`.
|
||||
|
||||
The geometric traits `Traits`
|
||||
is to be instantiated with a model of
|
||||
`DelaunayTriangulationTraits_2`.
|
||||
\tparam Traits must be a model of `DelaunayTriangulationTraits_2`.
|
||||
The concept `DelaunayTriangulationTraits_2` refines the
|
||||
concept `TriangulationTraits_2`, providing
|
||||
a predicate type
|
||||
to check the empty circle property.
|
||||
a predicate type to check the empty circle property.
|
||||
|
||||
Changing this predicate type
|
||||
allows to build Delaunay triangulations for different metrics
|
||||
|
|
|
|||
|
|
@ -107,10 +107,7 @@ the list of hidden vertices whose points are located in the facet.
|
|||
When a facet is removed,
|
||||
points hidden by this facet are reinserted in the triangulation.
|
||||
|
||||
### Parameters ###
|
||||
|
||||
The geometric traits parameter `Traits` has
|
||||
to be instantiated with a model of the concept
|
||||
\tparam Traits is the geometric traits parameter and must be a model of the concept
|
||||
`RegularTriangulationTraits_2`.
|
||||
The concept `RegularTriangulationTraits_2` refines the
|
||||
concept `TriangulationTraits_2` by adding the type
|
||||
|
|
@ -118,15 +115,14 @@ concept `TriangulationTraits_2` by adding the type
|
|||
and the type `Power_test_2` to perform
|
||||
power tests on weighted points.
|
||||
|
||||
The `Tds` parameter has to be instantiated by a model of
|
||||
`TriangulationDataStructure_2`. The face base of a regular
|
||||
triangulation has to be a model of the concept
|
||||
\tparam Tds must be a model of `TriangulationDataStructure_2`.
|
||||
The face base of a regular triangulation has to be a model of the concept
|
||||
`RegularTriangulationFaceBase_2`. while
|
||||
the vertex base class has to be a model
|
||||
of `RegularTriangulationVertexBase_2`.
|
||||
\cgal provides a default
|
||||
instantiation for the `Tds` parameter by the class
|
||||
`CGAL::Triangulation_data_structure_2 < CGAL::Regular_triangulation_vertex_base_2<Traits>, CGAL::Regular_triangulation_face_base_2<Traits> >`.
|
||||
`Triangulation_data_structure_2 < Regular_triangulation_vertex_base_2<Traits>, Regular_triangulation_face_base_2<Traits> >`.
|
||||
|
||||
\sa `CGAL::Triangulation_2<Traits,Tds>`
|
||||
\sa `TriangulationDataStructure_2`
|
||||
|
|
@ -193,7 +189,7 @@ typedef Hidden_type Hidden_vertices_iterator;
|
|||
/// @{
|
||||
|
||||
/*!
|
||||
Introduces an empty regular triangulation `rt`.
|
||||
Introduces an empty regular triangulation.
|
||||
*/
|
||||
Regular_triangulation_2(const Traits& gt = Traits());
|
||||
|
||||
|
|
|
|||
|
|
@ -70,30 +70,26 @@ of `f` (see Figure \ref Triangulation_ref_Fig_neighbors).
|
|||
\anchor Triangulation_ref_Fig_neighbors
|
||||
\image html neighbors.gif "Vertices and neighbors."
|
||||
|
||||
### Parameters ###
|
||||
|
||||
The class `Triangulation_2` has two template parameters. The first one
|
||||
`Traits` is the geometric traits, it is to be instantiated by
|
||||
\tparam Traits is the geometric traits which must be
|
||||
a model of the concept `TriangulationTraits_2`.
|
||||
|
||||
The second parameter is the triangulation data structure,
|
||||
it has to be instantiated by a model of the concept
|
||||
`TriangulationDataStructure_2`.
|
||||
\tparam Tds is the triangulation data structure which
|
||||
must be a model of the concept `TriangulationDataStructure_2`.
|
||||
By default, the triangulation data structure is instantiated by
|
||||
`CGAL::Triangulation_data_structure_2 < CGAL::Triangulation_vertex_base_2<Gt>, CGAL::Triangulation_face_base_2<Gt> >`.
|
||||
`Triangulation_data_structure_2 < Triangulation_vertex_base_2<Gt>, Triangulation_face_base_2<Gt> >`.
|
||||
|
||||
### Traversal of the Triangulation ###
|
||||
|
||||
A triangulation can be seen as a container of faces and vertices.
|
||||
Therefore the triangulation provides several iterators and circulators
|
||||
that allow to traverse it (completely or partially).
|
||||
that allow to traverse it completely or partially.
|
||||
|
||||
### Traversal of the Convex Hull ###
|
||||
|
||||
Applied on the `infinite_vertex` the above functions allow to visit
|
||||
Applied on the infinite vertex the above functions allow to visit
|
||||
the vertices on the convex hull and the infinite edges and faces. Note
|
||||
that a counterclockwise traversal of the vertices adjacent to the
|
||||
`infinite_vertex` is a clockwise traversal of the convex hull.
|
||||
infinite vertex is a clockwise traversal of the convex hull.
|
||||
|
||||
\code
|
||||
typedef CGAL::Triangulation_2<Traits, Tds> Triangulation_2;
|
||||
|
|
|
|||
|
|
@ -30,9 +30,9 @@ queries on real
|
|||
data. As proved in \cite d-iirdt-98, this structure has an optimal behavior
|
||||
when it is built for Delaunay triangulations.
|
||||
However it can be used as well for other triangulations.
|
||||
The class `Triangulation_hierarchy_2` is templated by a parameter
|
||||
which can be instantiated by any of the \cgal triangulation
|
||||
classes.
|
||||
|
||||
|
||||
\tparam Tr may be any of the \cgal triangulation classes.
|
||||
|
||||
### Types ###
|
||||
|
||||
|
|
|
|||
|
|
@ -161,10 +161,6 @@ Construct_circumcenter_2 construct_circumcenter_2_object();
|
|||
*/
|
||||
Construct_bisector_2 construct_bisector_2_object();
|
||||
|
||||
/*!
|
||||
|
||||
*/
|
||||
Construct_direction_2 construct_direction_2_object();
|
||||
|
||||
/*!
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue