polish T2

This commit is contained in:
Andreas Fabri 2012-11-21 11:18:36 +01:00
parent 4283174bb0
commit b14cfce8cd
7 changed files with 49 additions and 83 deletions

View File

@ -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.

View File

@ -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

View File

@ -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

View File

@ -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());

View File

@ -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;

View File

@ -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 ###

View File

@ -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();
/*!