Switch to \tparam

This commit is contained in:
Andreas Fabri 2012-11-21 14:04:46 +01:00
parent 656fdc78ed
commit c7dc4a8bcd
14 changed files with 78 additions and 106 deletions

View File

@ -480,10 +480,12 @@ vertices.
bool is_edge(Vertex_handle va, Vertex_handle vb); bool is_edge(Vertex_handle va, Vertex_handle vb);
/*! /*!
as above. In addition, if `true` is returned, the edge with \brief as above.\ In addition, if `true` is returned, the edge with
vertices `va` and `vb` is the edge `e=(fr,i)` where vertices `va` and `vb` is the edge `e=(fr,i)` where
`fr` is a handle to the face incident to `e` and `fr` is a handle to the face incident to `e` and
on the right side of `e` oriented from `va` to `vb`. on the right side of `e` oriented from `va` to `vb`.\ \pre toto
\details the details.
*/ */
bool is_edge(Vertex_handle va, Vertex_handle vb, Face_handle& fr, bool is_edge(Vertex_handle va, Vertex_handle vb, Face_handle& fr,
int & i); int & i);

View File

@ -7,13 +7,9 @@ namespace CGAL {
The class `Delaunay_triangulation_3` represents a three-dimensional The class `Delaunay_triangulation_3` represents a three-dimensional
Delaunay triangulation. Delaunay triangulation.
### Parameters ### \tparam DelaunayTriangulationTraits_3 is the geometric traits class.
The first template argument must be a model of the \tparam TriangulationDataStructure_3 is the triangulation data structure.
`DelaunayTriangulationTraits_3` concept.
The second template argument must be a model of the
`TriangulationDataStructure_3` concept.
It has the default value `Triangulation_data_structure_3<Triangulation_vertex_base_3<DelaunayTriangulationTraits_3>, Triangulation_cell_base_3<DelaunayTriangulationTraits_3> >`. It has the default value `Triangulation_data_structure_3<Triangulation_vertex_base_3<DelaunayTriangulationTraits_3>, Triangulation_cell_base_3<DelaunayTriangulationTraits_3> >`.
The third template argument is a tag which must be a `Location_policy<Tag>` : The third template argument is a tag which must be a `Location_policy<Tag>` :
@ -138,12 +134,11 @@ Vertex_handle insert(const Point & p, Locate_type lt,
Cell_handle loc, int li, int lj); Cell_handle loc, int li, int lj);
/*! /*!
Inserts the points in the iterator range \f$ \left[\right.\f$`first`, Inserts the points in the iterator range `[first,last)`. Returns the number of inserted points.
`last`\f$ \left.\right)\f$. Returns the number of inserted points.
Note that this function is not guaranteed to insert the points Note that this function is not guaranteed to insert the points
following the order of `PointInputIterator`, as `spatial_sort` following the order of `PointInputIterator`, as `spatial_sort()`
is used to improve efficiency. is used to improve efficiency.
\pre The `value_type` of `first` and `last` is `Point`. \tparam PointInputIterator must be an input iterator with the value type `Point`.
*/ */
template < class PointInputIterator > template < class PointInputIterator >
@ -152,15 +147,17 @@ insert(PointInputIterator first, PointInputIterator last);
/*! /*!
Inserts the points in the iterator range \f$ \left[\right.\f$`first`, Inserts the points in the iterator range `[first,last)`.
`last`\f$ \left.\right)\f$. Returns the number of inserted points. Returns the number of inserted points.
Note that this function is not guaranteed to insert the points Note that this function is not guaranteed to insert the points
following the order of `PointWithInfoInputIterator`, as `spatial_sort` following the order of `PointWithInfoInputIterator`, as `spatial_sort()`
is used to improve efficiency. is used to improve efficiency.
Given a pair `(p,i)`, the vertex `v` storing `p` also stores `i`, that is Given a pair `(p,i)`, the vertex `v` storing `p` also stores `i`, that is
`v.point() == p` and `v.info() == i`. If several pairs have the same point, `v.point() == p` and `v.info() == i`. If several pairs have the same point,
only one vertex is created, and one of the objects of type `Vertex::Info` will be stored in the vertex. only one vertex is created, and one of the objects of type `Vertex::Info` will be stored in the vertex.
\pre `Vertex` must be model of the concept `TriangulationVertexBaseWithInfo_3`. The `value_type` of `first` and `last` is `std::pair<Point,Vertex::Info>`. \pre `Vertex` must be model of the concept `TriangulationVertexBaseWithInfo_3`.
\tparam PointWithInfoInputIterator must be an input iterator with the value type `std::pair<Point,Vertex::Info>`.
*/ */
template < class PointWithInfoInputIterator > template < class PointWithInfoInputIterator >
@ -216,11 +213,12 @@ Removes the vertex `v` from the triangulation.
void remove(Vertex_handle v); void remove(Vertex_handle v);
/*! /*!
Removes the vertices specified by the iterator range [`first, beyond`) Removes the vertices specified by the iterator range `[first, beyond)`.
of value type `Vertex_handle`. The function `remove(Vertex_handle)` is called over each element of the range.
`remove()` is called over each element of the range.
The number of vertices removed is returned. The number of vertices removed is returned.
\pre (i) all vertices of the range are finite vertices of the triangulation; and (ii) no vertices are repeated in the range. \pre (i) all vertices of the range are finite vertices of the triangulation; and (ii) no vertices are repeated in the range.
\tparam InputIterator must be an input iterator with value type `Vertex_handle`.
*/ */
template < typename InputIterator > template < typename InputIterator >
int remove(InputIterator first, InputIterator beyond); int remove(InputIterator first, InputIterator beyond);
@ -230,6 +228,8 @@ This function has exactly the same result and the same preconditions as `remove(
The difference is in the implementation and efficiency. This version does not re-triangulate the hole after each The difference is in the implementation and efficiency. This version does not re-triangulate the hole after each
point removal but only after removing all vertices. This is more efficient if (and only if) the removed points point removal but only after removing all vertices. This is more efficient if (and only if) the removed points
are organized in a small number of connected components of the Delaunay triangulation. are organized in a small number of connected components of the Delaunay triangulation.
\tparam InputIterator must be an input iterator with value type `Vertex_handle`.
*/ */
template < typename InputIterator > template < typename InputIterator >
int remove_cluster(InputIterator first, InputIterator beyond); int remove_cluster(InputIterator first, InputIterator beyond);

View File

@ -27,13 +27,10 @@ the <I>power sphere</I>. A sphere \f$ {z}^{(w)}\f$ is said to be
A triangulation of \f$ {S}^{(w)}\f$ is <I>regular</I> if the power spheres A triangulation of \f$ {S}^{(w)}\f$ is <I>regular</I> if the power spheres
of all simplices are regular. of all simplices are regular.
### Parameters ###
The first template argument must be a model of the \tparam RegularTriangulationTraits_3 is the geometric traits class.
`RegularTriangulationTraits_3` concept.
The second template argument must be a model of the \tparam TriangulationDataStructure_3 is the triangulation data structure.
`TriangulationDataStructure_3` concept.
It has the default value `Triangulation_data_structure_3<Triangulation_vertex_base_3<RegularTriangulationTraits_3>, Regular_triangulation_cell_base_3<RegularTriangulationTraits_3> >`. It has the default value `Triangulation_data_structure_3<Triangulation_vertex_base_3<RegularTriangulationTraits_3>, Regular_triangulation_cell_base_3<RegularTriangulationTraits_3> >`.
*/ */
@ -76,6 +73,7 @@ Regular_triangulation_3
/*! /*!
Equivalent to constructing an empty triangulation with the optional Equivalent to constructing an empty triangulation with the optional
traits class argument and calling `insert(first,last)`. traits class argument and calling `insert(first,last)`.
\tparam InputIterator must be an input iterator with value type `Weighted_point`.
*/ */
template < class InputIterator > template < class InputIterator >
Regular_triangulation_3 (InputIterator first, InputIterator last, Regular_triangulation_3 (InputIterator first, InputIterator last,
@ -125,14 +123,14 @@ Vertex_handle insert(const Weighted_point & p, Locate_type lt,
Cell_handle loc, int li, int lj); Cell_handle loc, int li, int lj);
/*! /*!
Inserts the weighted points in the range \f$ \left[\right.\f$`first`, Inserts the weighted points in the range `[first,last)`.
`last`\f$ \left.\right)\f$.
It returns the difference of the number of vertices between after and It returns the difference of the number of vertices between after and
before the insertions (it may be negative due to hidden points). before the insertions (it may be negative due to hidden points).
Note that this function is not guaranteed to insert the points Note that this function is not guaranteed to insert the points
following the order of `InputIterator`, as `spatial_sort` following the order of `InputIterator`, as `spatial_sort()`
is used to improve efficiency. is used to improve efficiency.
\pre The `value_type` of `first` and `last` is `Weighted_point`.
\tparam InputIterator must be an input iterator with value type `Weighted_point`.
*/ */
template < class InputIterator > template < class InputIterator >
std::ptrdiff_t std::ptrdiff_t
@ -140,18 +138,17 @@ insert(InputIterator first, InputIterator last);
/*! /*!
Inserts the weighted points in the iterator range \f$ \left[\right.\f$`first`, Inserts the weighted points in the iterator range `[first,last)`.
`last`\f$ \left.\right)\f$.
It returns the difference of the number of vertices between after and It returns the difference of the number of vertices between after and
before the insertions (it may be negative due to hidden points). before the insertions (it may be negative due to hidden points).
Note that this function is not guaranteed to insert the weighted points Note that this function is not guaranteed to insert the weighted points
following the order of `WeightedPointWithInfoInputIterator`, as `spatial_sort` following the order of `WeightedPointWithInfoInputIterator`, as `spatial_sort()`
is used to improve efficiency. is used to improve efficiency.
Given a pair `(p,i)`, the vertex `v` storing `p` also stores `i`, that is Given a pair `(p,i)`, the vertex `v` storing `p` also stores `i`, that is
`v.point() == p` and `v.info() == i`. If several pairs have the same point, `v.point() == p` and `v.info() == i`. If several pairs have the same point,
only one vertex is created, one of the objects of type `Vertex::Info` will be stored in the vertex. only one vertex is created, one of the objects of type `Vertex::Info` will be stored in the vertex.
\pre `Vertex` must be model of the concept `TriangulationVertexBaseWithInfo_3`. The `value_type` of `first` and `last` is `std::pair<Weighted_point,Vertex::Info>`. \pre `Vertex` must be model of the concept `TriangulationVertexBaseWithInfo_3`.
\tparam (WeightedPointWithInfoInputIterator must be an input iterator with value type `std::pair<Weighted_point,Vertex::Info>`.
*/ */
template < class WeightedPointWithInfoInputIterator > template < class WeightedPointWithInfoInputIterator >
std::ptrdiff_t std::ptrdiff_t
@ -168,7 +165,7 @@ The following methods, which already exist in `Triangulation_3`, are overloaded
/*! /*!
Creates a new vertex by starring a hole. It takes an iterator range Creates a new vertex by starring a hole. It takes an iterator range
[`cell_begin`; `cell_end`[ of `Cell_handle`s which specifies `[cell_begin,cell_end)` of `Cell_handle`s which specifies
a hole: a set of connected cells (resp. facets in dimension 2) which is a hole: a set of connected cells (resp. facets in dimension 2) which is
star-shaped wrt `p`. star-shaped wrt `p`.
(`begin`, `i`) is a facet (resp. an edge) on the boundary of the hole, (`begin`, `i`) is a facet (resp. an edge) on the boundary of the hole,

View File

@ -8,15 +8,11 @@ The class `Regular_triangulation_cell_base_3` is a model of the concept
`RegularTriangulationCellBase_3`. It is the default face base class `RegularTriangulationCellBase_3`. It is the default face base class
of regular triangulations. of regular triangulations.
### Parameters ###
The template parameters `Traits` has to be a model \tparam Traits must be a model of `RegularTriangulationTraits_3`.
of `RegularTriangulationTraits_3`.
The template parameter `Cb` has to be a model \tparam Cb must be a model of `TriangulationCellBase_3`.
of `TriangulationCellBase_3`. By default, this parameter is By default, this parameter is instantiated by `Triangulation_cell_base_3<Traits>`.
instantiated by
`CGAL::Triangulation_cell_base_3<Traits>`.
\cgalModels ::RegularTriangulationCellBase_3 \cgalModels ::RegularTriangulationCellBase_3

View File

@ -9,11 +9,9 @@ class `Regular_triangulation_3<RegularTriangulationTraits_3,TriangulationDataStr
It provides `Weighted_point_3`, a class for weighted points, which derives It provides `Weighted_point_3`, a class for weighted points, which derives
from the three dimensional point class `K::Point_3`. from the three dimensional point class `K::Point_3`.
The first argument `K` must be a model of the `Kernel` concept. \tparam K must be a model of the `Kernel` concept.
The second argument `Weight` of the class \tparam Weight is optional. If is it not provided, `K::RT` will be used.
`Regular_triangulation_euclidean_traits_3<K,Weight>` is in fact
optional: if is it not provided, `K::RT` will be used.
The class is a model of the concept `RegularTriangulationTraits_3` The class is a model of the concept `RegularTriangulationTraits_3`
but it also contains predicates and constructors on weighted points but it also contains predicates and constructors on weighted points
@ -21,7 +19,7 @@ that are not required in the
concept `RegularTriangulationTraits_3`. concept `RegularTriangulationTraits_3`.
Note that filtered predicates are automatically used if the Note that filtered predicates are automatically used if the
boolean `Has_filtered_predicates` in the kernel provided as template parameter Boolean `Has_filtered_predicates` in the kernel provided as template parameter
of that class is set to `true`. of that class is set to `true`.
\cgalModels ::RegularTriangulationTraits_3 \cgalModels ::RegularTriangulationTraits_3
@ -52,7 +50,7 @@ Weighted_point_3;
/// @} /// @}
/// \name Types for predicate functors /// \name Types for Predicate Functors
/// @{ /// @{
/*! /*!
@ -142,7 +140,7 @@ typedef Hidden_type Does_simplex_intersect_dual_support_3;
/// @} /// @}
/// \name Types for constructor functors /// \name Types for Constructor Functors
/// @{ /// @{
/*! /*!

View File

@ -7,13 +7,9 @@ namespace CGAL {
The class `Triangulation_3` represents a 3-dimensional tetrahedralization The class `Triangulation_3` represents a 3-dimensional tetrahedralization
of points. of points.
### Parameters ### \tparam TriangulationTraits_3 is the geometric traits class.
The first template argument must be a model of the \tparam TriangulationDataStructure_3 is the triangulation data structure.
`TriangulationTraits_3` concept.
The second template argument must be a model of the
`TriangulationDataStructure_3` concept.
It has the default value `Triangulation_data_structure_3< Triangulation_vertex_base_3<TriangulationTraits_3>,Triangulation_cell_base_3<TriangulationTraits_3> >`. It has the default value `Triangulation_data_structure_3< Triangulation_vertex_base_3<TriangulationTraits_3>,Triangulation_cell_base_3<TriangulationTraits_3> >`.
### Traversal of the Triangulation ### ### Traversal of the Triangulation ###
@ -832,11 +828,10 @@ Vertex_handle insert(const Point & p, Locate_type lt,
Cell_handle loc, int li, int lj); Cell_handle loc, int li, int lj);
/*! /*!
Inserts the points in the range \f$ \left[\right.\f$`first`, Inserts the points in the range `[first,last)`. Returns the number of inserted points.
`last`\f$ \left.\right)\f$. Returns the number of inserted points.
Note that this function is not guaranteed to insert the points Note that this function is not guaranteed to insert the points
following the order of `InputIterator`. following the order of `InputIterator`.
\pre The `value_type` of `first` and `last` is `Point`. \tparam InputIterator must be an input iterator with value type `Point`.
*/ */
template < class InputIterator > template < class InputIterator >
std::ptrdiff_t std::ptrdiff_t
@ -921,7 +916,7 @@ Vertex_handle insert_outside_affine_hull(const Point & p);
/*! /*!
Creates a new vertex by starring a hole. It takes an iterator range Creates a new vertex by starring a hole. It takes an iterator range
[`cell_begin`; `cell_end`[ of `Cell_handle`s which specifies `[cell_begin,cell_end)` of `Cell_handle`s which specifies
a hole: a set of connected cells (resp. facets in dimension 2) which is a hole: a set of connected cells (resp. facets in dimension 2) which is
star-shaped wrt `p`. star-shaped wrt `p`.
(`begin`, `i`) is a facet (resp. an edge) on the boundary of the hole, (`begin`, `i`) is a facet (resp. an edge) on the boundary of the hole,

View File

@ -11,18 +11,16 @@ This class can be used directly or can serve as a base to derive other classes
with some additional attributes (a color for example) tuned for a specific with some additional attributes (a color for example) tuned for a specific
application. application.
### Parameters ###
The first template argument is the geometric traits class \tparam TriangulationTraits_3 is the geometric traits class. It is actually not used by this class.
`TriangulationTraits_3`. It is actually not used by this class.
The second template argument is a combinatorial cell base class from which \tparam TriangulationDSCellBase_3 is a combinatorial cell base class from which
`Triangulation_cell_base_3` derives. `Triangulation_cell_base_3` derives.
It has the default value `Triangulation_ds_cell_base_3<>`. It has the default value `Triangulation_ds_cell_base_3<>`.
Note that this model does not store the circumcenter, but computes it Note that this model does not store the circumcenter, but computes it
every time the circumcenter function is called. See every time the circumcenter function is called. See
`CGAL::Triangulation_cell_base_with_circumcenter_3` for a way to cache the `Triangulation_cell_base_with_circumcenter_3` for a way to cache the
circumcenter computation. circumcenter computation.
\cgalModels ::TriangulationCellBase_3 \cgalModels ::TriangulationCellBase_3

View File

@ -13,12 +13,9 @@ Note that input/output operators discard this additional information.
All functions modifying the vertices of the cell, invalidate the cached All functions modifying the vertices of the cell, invalidate the cached
circumcenter. circumcenter.
### Parameters ### \tparam DelaunayTriangulationTraits_3 is the geometric traits class.
The first template argument is the geometric traits class \tparam TriangulationCellBase_3 is a cell base class from which
`DelaunayTriangulationTraits_3`.
The second template argument is a cell base class from which
`Triangulation_cell_base_with_circumcenter_3` derives. `Triangulation_cell_base_with_circumcenter_3` derives.
It has the default value `Triangulation_cell_base_3<DelaunayTriangulationTraits_3>`. It has the default value `Triangulation_cell_base_3<DelaunayTriangulationTraits_3>`.

View File

@ -9,15 +9,14 @@ The class `Triangulation_cell_base_with_info_3` is a model of the concept
It provides an easy way to add some user defined information in cells. It provides an easy way to add some user defined information in cells.
Note that input/output operators discard this additional information. Note that input/output operators discard this additional information.
### Parameters ###
The first template argument is the information the user would like to add \tparam Info is the information the user would like to add
to a cell. It has to be `DefaultConstructible` and `Assignable`. to a cell. It has to be `DefaultConstructible` and `Assignable`.
The second template argument is the geometric traits class \tparam TriangulationTraits_3 is the geometric traits class.
`TriangulationTraits_3`. It is actually not used by this class. It is actually not used by this class.
The third template argument is a cell base class from which \tparam TriangulationCellBase_3 is a cell base class from which
`Triangulation_cell_base_with_info_3` derives. It has the default value `Triangulation_cell_base_with_info_3` derives. It has the default value
`Triangulation_cell_base_3<TriangulationTraits_3>`. `Triangulation_cell_base_3<TriangulationTraits_3>`.

View File

@ -14,16 +14,11 @@ with a data structure which allows fast point location queries. As proved
in \cite cgal:d-dh-02, this structure has an optimal behavior when it is built in \cite cgal:d-dh-02, this structure has an optimal behavior when it is built
for Delaunay triangulations. It can however be used for other triangulations. for Delaunay triangulations. It can however be used for other triangulations.
### Parameters ###
It is templated by a parameter which must be instantiated by one of the \cgal triangulation classes. <I>In the current implementation, only \tparam Tr must be instantiated by one of the \cgal triangulation classes. <I>In the current implementation, only
`Delaunay_triangulation_3` is supported for `Tr`.</I> `Delaunay_triangulation_3` is supported for `Tr`.</I>
- `Tr::Vertex` has to be a model of the concept `TriangulationHierarchyVertexBase_3`.
`Tr::Vertex` has to be a model of the concept - `Tr::Geom_traits` has to be a model of the concept `DelaunayTriangulationTraits_3`.
`TriangulationHierarchyVertexBase_3`.
`Tr::Geom_traits` has to be a model of the concept
`DelaunayTriangulationTraits_3`.
`Triangulation_hierarchy_3` offers exactly the same functionalities as `Tr`. `Triangulation_hierarchy_3` offers exactly the same functionalities as `Tr`.
Most of them (point location, insertion, removal \f$ \ldots\f$ ) are overloaded to Most of them (point location, insertion, removal \f$ \ldots\f$ ) are overloaded to

View File

@ -19,9 +19,8 @@ requirements in order to match the concept
provided by \cgal, or a user customized vertex base with additional provided by \cgal, or a user customized vertex base with additional
functionalities. functionalities.
### Parameters ### \tparam TriangulationVertexBase_3 is is a combinatorial vertex base class from which
`Triangulation_hierarchy_vertex_base_3` derives.
It is parameterized by a model of the concept `TriangulationVertexBase_3`.
\cgalModels ::TriangulationHierarchyVertexBase_3 \cgalModels ::TriangulationHierarchyVertexBase_3

View File

@ -12,17 +12,15 @@ This class can be used directly or can serve as a base to derive other classes
with some additional attributes (a color for example) tuned for a specific with some additional attributes (a color for example) tuned for a specific
application. application.
### Parameters ###
The first template argument is the geometric traits class \tparam TriangulationTraits_3 is the geometric traits class
`TriangulationTraits_3` which provides the point type, `Point_3`. which provides the point type `Point_3`.
Users of the geometric triangulations (Section \ref TDS3secdesign and Users of the geometric triangulations are strongly advised to use the same
Chapter \ref chapterTriangulation3) are strongly advised to use the same
geometric traits class `TriangulationTraits_3` as the one used for geometric traits class `TriangulationTraits_3` as the one used for
`Triangulation_3`. This way, the point type defined by the base vertex is `Triangulation_3`. This way, the point type defined by the base vertex is
the same as the point type defined by the geometric traits class. the same as the point type defined by the geometric traits class.
The second template argument is a combinatorial vertex base class from which \tparam TriangulationDSVertexBase_3 is a combinatorial vertex base class from which
`Triangulation_vertex_base_3` derives. `Triangulation_vertex_base_3` derives.
It has the default value `Triangulation_ds_vertex_base_3<>`. It has the default value `Triangulation_ds_vertex_base_3<>`.

View File

@ -9,15 +9,13 @@ The class `Triangulation_vertex_base_with_info_3` is a model of the concept
It provides an easy way to add some user defined information in vertices. It provides an easy way to add some user defined information in vertices.
Note that input/output operators discard this additional information. Note that input/output operators discard this additional information.
### Parameters ### \tparam Info is the information the user would like to add
The first template argument is the information the user would like to add
to a vertex. It has to be `DefaultConstructible` and `Assignable`. to a vertex. It has to be `DefaultConstructible` and `Assignable`.
The second template argument is the geometric traits class \tparam TriangulationTraits_3 is the geometric traits class
`TriangulationTraits_3` which provides the `Point_3`. which provides the `Point_3`.
The third template argument is a vertex base class from which \tparam TriangulationVertexBase_3 is a vertex base class from which
`Triangulation_vertex_base_with_info_3` derives. It has the default `Triangulation_vertex_base_with_info_3` derives. It has the default
value `Triangulation_vertex_base_3<TriangulationTraits_3>`. value `Triangulation_vertex_base_3<TriangulationTraits_3>`.

View File

@ -96,11 +96,11 @@ dimension 2, each cell has only one facet of index 3, and 3 edges
<b>Validity</b> <b>Validity</b>
A triangulation of \f$ \R^3\f$ is said to be `locally valid` iff A triangulation of \f$ \R^3\f$ is said to be *locally valid* iff
<B>(a)-(b)</B> Its underlying combinatorial graph, the triangulation <B>(a)-(b)</B> Its underlying combinatorial graph, the triangulation
data structure, is `locally valid` data structure, is *locally valid*
(see Section \ref TDS3secintro of Chapter \ref chapterTDS3) (see Section \ref TDS3secintro "Introduction" of Chapter \ref chapterTDS3 "3D Triangulation Data Structure")
<B>(c)</B> Any cell has its vertices ordered according to positive <B>(c)</B> Any cell has its vertices ordered according to positive
orientation. See \cgalFigureRef{Triangulation3figorient}. orientation. See \cgalFigureRef{Triangulation3figorient}.
@ -117,7 +117,7 @@ When all the points are collinear, this condition becomes:
<B>(c-1D)</B> For any two adjacent edges \f$ (u,v)\f$ and \f$ (v,w)\f$, \f$ u\f$ and <B>(c-1D)</B> For any two adjacent edges \f$ (u,v)\f$ and \f$ (v,w)\f$, \f$ u\f$ and
\f$ w\f$ lie on opposite sides of the common vertex \f$ v\f$ on the line. \f$ w\f$ lie on opposite sides of the common vertex \f$ v\f$ on the line.
The `is_valid()` method provided in `Triangulation_3` checks The method `Triangulation_3::is_valid()` checks
the local validity of a given triangulation. This does not always the local validity of a given triangulation. This does not always
ensure global validity \cite mnssssu-cgpvg-96, \cite dlpt-ccpps-98 but it is ensure global validity \cite mnssssu-cgpvg-96, \cite dlpt-ccpps-98 but it is
sufficient for practical cases. sufficient for practical cases.
@ -211,14 +211,14 @@ the geometry and the combinatorics is reflected in the software design by the
fact that these three triangulation classes take the following template parameters : fact that these three triangulation classes take the following template parameters :
<UL> <UL>
<LI> the <B>geometric traits</B> class, which provides the type of points <LI> the *geometric traits* class, which provides the type of points
to use as well as the elementary operations on them (predicates and to use as well as the elementary operations on them (predicates and
constructions). The concepts for these parameters are described in more constructions). The concepts for these parameters are described in more
details in Section \ref Triangulation3secTraits. details in Section \ref Triangulation3secTraits.
<LI> the <B>triangulation data structure</B> class, which stores their <LI> the *triangulation data structure* class, which stores their
combinatorial structure, described in Section \ref TDS3secdesign of combinatorial structure, described in Section \ref TDS3secdesign "Software Design" of
Chapter \ref chapterTDS3. Chapter \ref chapterTDS3 "3D Triangulation Data Structure".
<LI> the <B>location policy</B> tag, which is supported only by the Delaunay <LI> the *location policy* tag, which is supported only by the Delaunay
triangulation class, described in Section \ref Triangulation3seclocpol. triangulation class, described in Section \ref Triangulation3seclocpol.
</UL> </UL>
@ -399,7 +399,7 @@ My_vertex(const Point&p, Cell_handle c) : Vb(p, c) {}
\endcode \endcode
The situation is exactly similar for cell base classes. The situation is exactly similar for cell base classes.
Section \ref TDS3secdesign provides more detailed information. Section \ref TDS3secdesign "Software Design" provides more detailed information.
\section Triangulation3secexamples Examples \section Triangulation3secexamples Examples