mirror of https://github.com/CGAL/cgal
Clean-up \cgalModifXXX
This commit is contained in:
parent
a55a810fe4
commit
84d3517cdd
|
|
@ -4,14 +4,12 @@ namespace CGAL {
|
|||
/*!
|
||||
\ingroup PkgTriangulationsTriangulationClasses
|
||||
|
||||
\cgalModifBegin
|
||||
The class `Triangulation` is used to store and query the full cells and vertices of
|
||||
a triangulationin dimension \f$ d\f$(see the
|
||||
\ref Chapter_Triangulations "User Manual" for
|
||||
a definition of "triangulation"). A special vertex, named
|
||||
<I>infinite vertex</I>, is used to triangulate the outside of the convex
|
||||
hull of the points in so called <I>infinite cells</I>.
|
||||
\cgalModifEnd
|
||||
|
||||
Parameters
|
||||
--------------
|
||||
|
|
@ -120,12 +118,10 @@ iterator over all vertices (including the infinite one)
|
|||
typedef Tds::Vertex_iterator
|
||||
Vertex_iterator;
|
||||
|
||||
\cgalModifBegin
|
||||
/*!
|
||||
iterator over finite vertices
|
||||
*/
|
||||
typedef unspecified_type Finite_vertex_iterator;
|
||||
\cgalModifEnd
|
||||
|
||||
/*!
|
||||
handle to a full cell
|
||||
|
|
@ -140,12 +136,10 @@ typedef
|
|||
Tds::Full_cell_iterator
|
||||
Full_cell_iterator;
|
||||
|
||||
\cgalModifBegin
|
||||
/*!
|
||||
iterator over finite full cells
|
||||
*/
|
||||
typedef unspecified_type Finite_full_cell_iterator;
|
||||
\cgalModifEnd
|
||||
|
||||
/*!
|
||||
iterator over all facets (including the infinite ones)
|
||||
|
|
@ -153,12 +147,10 @@ iterator over all facets (including the infinite ones)
|
|||
typedef Tds::Facet_iterator
|
||||
Facet_iterator;
|
||||
|
||||
\cgalModifBegin
|
||||
/*!
|
||||
iterator over finite facets
|
||||
*/
|
||||
typedef unspecified_type Finite_facet_iterator;
|
||||
\cgalModifEnd
|
||||
|
||||
/*!
|
||||
Size type (an unsigned integral
|
||||
|
|
|
|||
|
|
@ -36,10 +36,8 @@ defined by the points in range `[start,end)`.
|
|||
If the simplex is positively
|
||||
oriented, then the positive side of sphere corresponds geometrically
|
||||
to its bounded side.
|
||||
\cgalModifBegin
|
||||
\pre If `Dimension`=`CGAL::``Dimension_tag<D>`,
|
||||
then `std::distance(start,end)=D+1`.
|
||||
\cgalModifEnd
|
||||
The points in range
|
||||
`[start,end)` must be affinely independent, i.e., the simplex must
|
||||
not be flat.
|
||||
|
|
|
|||
|
|
@ -3,11 +3,9 @@
|
|||
\ingroup PkgTriangulationsConcepts
|
||||
\cgalConcept
|
||||
|
||||
\cgalModifBegin
|
||||
The concept `FullCellData` describes the requirements on the type which
|
||||
is used to mark some full cells, during modifications of the triangulation data
|
||||
structure.
|
||||
\cgalModifEnd
|
||||
|
||||
\sa `TriangulationDataStructure`
|
||||
\sa `TriangulationDSFullCell`
|
||||
|
|
|
|||
|
|
@ -10,12 +10,10 @@ It gives access to a handle to a full cell `c` containing the face
|
|||
`c`. It must hold that `f` is a <I>proper</I> face of full cell
|
||||
`c`, i.e., the dimension of `f` is strictly less than
|
||||
the dimension of `c`.
|
||||
\cgalModifBegin
|
||||
The dimension of a face is implicitely set when
|
||||
`TriangulationDSFace::set_index` is called. For example, if
|
||||
`TriangulationDSFace::set_index` is called two times to set the
|
||||
first two vertices (`i = 0` and `i = 1`), then the dimension is 1.
|
||||
\cgalModifEnd
|
||||
|
||||
\cgalHasModel `CGAL::Triangulation_face<TriangulationDataStructure>`
|
||||
|
||||
|
|
@ -32,11 +30,8 @@ public:
|
|||
/// @{
|
||||
|
||||
/*!
|
||||
\cgalModifBegin
|
||||
The `Triangulation_data_structure` in which the `TriangulationDSFace` is
|
||||
defined/used.
|
||||
Must be a model of the `TriangulationDataStructure` concept.
|
||||
\cgalModifEnd
|
||||
defined/used. Must be a model of the `TriangulationDataStructure` concept.
|
||||
*/
|
||||
typedef unspecified_type Triangulation_data_structure;
|
||||
|
||||
|
|
|
|||
|
|
@ -98,12 +98,8 @@ in the concept `TriangulationDataStructure::FullCell`.
|
|||
*/
|
||||
typedef unspecified_type Full_cell;
|
||||
|
||||
/*!
|
||||
|
||||
\cgalModifBegin
|
||||
/*!
|
||||
A model of the concept `FullCellData`.
|
||||
\cgalModifEnd
|
||||
|
||||
*/
|
||||
typedef unspecified_type Full_cell_data;
|
||||
|
||||
|
|
@ -745,22 +741,14 @@ bool is_valid(bool verbose=false) const;
|
|||
///
|
||||
/// @{
|
||||
/*!
|
||||
|
||||
\cgalModifBegin
|
||||
Writes (possibly) non-combinatorial information about vertex `v` to the stream
|
||||
`os`.
|
||||
\cgalModifEnd
|
||||
|
||||
*/
|
||||
template<class TriangulationDataStructure>
|
||||
std::ostream& operator<<(std::ostream & os, const Triangulation_ds_vertex<TriangulationDataStructure> & v);
|
||||
|
||||
/*!
|
||||
|
||||
\cgalModifBegin
|
||||
Reads from stream `is` the vertex information written by `operator<<`.
|
||||
\cgalModifEnd
|
||||
|
||||
*/
|
||||
template<class TriangulationDataStructure>
|
||||
std::istream& operator>>(std::istream & is, Triangulation_ds_vertex<TriangulationDataStructure> & v);
|
||||
|
|
@ -1026,23 +1014,15 @@ bool is_valid(bool verbose=false) const;
|
|||
/// @{
|
||||
|
||||
/*!
|
||||
|
||||
\cgalModifBegin
|
||||
Writes (possibly) non-combinatorial information about full cell `c` to the stream
|
||||
`os`.
|
||||
\cgalModifEnd
|
||||
|
||||
*/
|
||||
template<class TriangulationDataStructure>
|
||||
std::ostream& operator<<(std::ostream & os, const Triangulation_ds_full_cell<TriangulationDataStructure> & c);
|
||||
|
||||
/*!
|
||||
|
||||
\cgalModifBegin
|
||||
Reads from stream `is` the full cell information written
|
||||
by `operator<<`.
|
||||
\cgalModifEnd
|
||||
|
||||
*/
|
||||
template<class TriangulationDataStructure>
|
||||
std::istream& operator>>(std::istream & is, Triangulation_ds_full_cell<TriangulationDataStructure> & c);
|
||||
|
|
|
|||
|
|
@ -9,11 +9,9 @@ It brings the geometric ingredient to the
|
|||
definition of a triangulation, while the combinatorial ingredient is brought by
|
||||
the second template parameter, `TriangulationDataStructure`.
|
||||
|
||||
\cgalModifBegin
|
||||
\cgalRefines `SpatialSortingTraits_d` If a range of points is inserted, the
|
||||
traits must refine `SpatialSortingTraits_d` (this operation is optimized using
|
||||
spatial sorting). This is not required if the points are inserted one by one.
|
||||
\cgalModifEnd
|
||||
|
||||
\cgalHasModel `CGAL::Cartesian_d<FT, Dim, LA>`
|
||||
\cgalHasModel `CGAL::Epick_d<Dim>` (recommended)
|
||||
|
|
@ -28,7 +26,6 @@ public:
|
|||
/// @{
|
||||
|
||||
/*!
|
||||
\cgalModifBegin
|
||||
A type representing the dimension of the `Orientation_d` predicate
|
||||
(but not necessarily the one of `Point_d`). If \f$ n \f$ is the number of
|
||||
points required by the `Orientation_d` predicate, then
|
||||
|
|
@ -36,7 +33,6 @@ points required by the `Orientation_d` predicate, then
|
|||
dimensions.
|
||||
It can be static (`Dimension`=`CGAL::``Dimension_tag<int dim>`) or
|
||||
dynamic (`Dimension`=`CGAL::``Dynamic_dimension_tag`).
|
||||
\cgalModifEnd
|
||||
*/
|
||||
typedef unspecified_type Dimension;
|
||||
|
||||
|
|
@ -50,12 +46,10 @@ typedef unspecified_type Point_d;
|
|||
A predicate object that must provide the
|
||||
templated operator
|
||||
`template<typename ForwardIterator> Orientation operator()(ForwardIterator start, ForwardIterator end)`.
|
||||
\cgalModifBegin
|
||||
The operator returns the orientation of the simplex defined by the points
|
||||
in the range `[start, end)`; the value can be
|
||||
`CGAL::POSITIVE`, `CGAL::NEGATIVE` or `CGAL::COPLANAR`.
|
||||
\pre If `Dimension`=`CGAL::``Dimension_tag<D>`, then `std::distance(start,end)=D+1`.
|
||||
\cgalModifEnd
|
||||
*/
|
||||
typedef unspecified_type Orientation_d;
|
||||
|
||||
|
|
@ -66,13 +60,11 @@ the templated operator
|
|||
The operator returns `true` if and only if point `p` is
|
||||
contained in the affine space spanned by the points in the range `[start, end)`. That affine space is also called the <I>affine hull</I> of the points
|
||||
in the range.
|
||||
\cgalModifBegin
|
||||
\pre If `Dimension`=`CGAL::``Dimension_tag<D>`,
|
||||
then `std::distance(start,end)=D+1`.
|
||||
The points in the range
|
||||
must be affinely independent. Note that in the CGAL kernels, this predicate
|
||||
works also with affinely dependent points.
|
||||
\cgalModifEnd
|
||||
\f$ 2\leq k\leq D\f$.
|
||||
|
||||
*/
|
||||
|
|
@ -105,12 +97,10 @@ the range `R=[start, end)` can be oriented in two different ways,
|
|||
the operator
|
||||
returns an object that allow to orient that flat so that `R=[start, end)`
|
||||
defines a positive simplex.
|
||||
\cgalModifBegin
|
||||
\pre If `Dimension`=`CGAL::``Dimension_tag<D>`,
|
||||
then `std::distance(start,end)=D+1`.
|
||||
The points in range
|
||||
`[start,end)` must be affinely independent.
|
||||
\cgalModifEnd
|
||||
\f$ 2\leq k\leq D\f$.
|
||||
*/
|
||||
typedef unspecified_type Construct_flat_orientation_d;
|
||||
|
|
|
|||
|
|
@ -34,10 +34,8 @@ represent the triangulations of a set of points \f$ A\f$ in
|
|||
viewed as a partition of the convex hull of \f$ A\f$ into simplices whose
|
||||
vertices are the points of \f$ A\f$. Together with the unbounded full cells having
|
||||
the convex hull boundary as its frontier, the triangulation forms a
|
||||
partition of \f$ \mathbb{R}^d\f$.
|
||||
\cgalModifBegin
|
||||
partition of \f$ \mathbb{R}^d\f$.
|
||||
See the \ref Chapter_Triangulations "User Manual" for more details.
|
||||
\cgalModifEnd
|
||||
|
||||
In order to deal only with full dimensional simplices (full cells),
|
||||
which is convenient for many
|
||||
|
|
|
|||
|
|
@ -30,22 +30,18 @@ The sets in \f$ S\f$ (which are subsets of \f$ V\f$) are called
|
|||
<I>faces</I> or <I>simplices</I> (the
|
||||
singular of which is <I>simplex</I>).
|
||||
A simplex \f$ s\in S\f$ is <I>maximal</I> if it is not a proper subset of some other
|
||||
set in \f$ S\f$.
|
||||
\cgalModifBegin
|
||||
set in \f$ S\f$.
|
||||
A simplex having \f$ d+1 \f$ vertices is said of dimension \f$ d \f$.
|
||||
The simplicial complex is <I>pure</I> if all the maximal simplices
|
||||
have the same dimension.
|
||||
<!--- cardinality, i.e., they have the same number of vertices.--->
|
||||
\cgalModifEnd
|
||||
In the sequel, we will call these maximal simplices <I>full cells</I>.
|
||||
A <I>face</I> of a simplex is a subset of it.
|
||||
A <I>proper face</I> of a simplex is a strict subset of it.
|
||||
|
||||
\cgalModifBegin
|
||||
A complex has <i>no boundaries</i> if any proper face of a simplex is also a
|
||||
proper face of another simplex. A pure complex is <i>manifold</i> if all faces
|
||||
of dimension \f$ d-1 \f$ are proper faces of exactly two simplices.
|
||||
\cgalModifEnd
|
||||
|
||||
If the vertices are embedded into Euclidean space \f$ \mathbb{R}^d\f$,
|
||||
we deal with
|
||||
|
|
@ -72,11 +68,9 @@ The class `CGAL::Triangulation_data_structure<Dimensionality, TriangulationDSVer
|
|||
class are not embedded in Euclidean space but are only of combinatorial
|
||||
nature.
|
||||
|
||||
\cgalModifBegin
|
||||
The class `CGAL::Triangulation<TriangulationTraits, TriangulationDataStructure>`
|
||||
describes an embedded triangulation that has as vertices a given set of points
|
||||
and which fills the convex hull of these points.
|
||||
\cgalModifEnd
|
||||
Methods are
|
||||
provided for the insertion of points in the triangulation, the
|
||||
traversal of various elements of the triangulation, as well as the localization of a
|
||||
|
|
@ -85,10 +79,8 @@ The convex hull of the points is part of the triangulation, the fact
|
|||
that there is no boundary is ensured by adding an infinite vertex and
|
||||
infinite full cells to triangulate the outside of the convex hull.
|
||||
|
||||
\cgalModifBegin
|
||||
See Chapter \ref Chapter_3D_Triangulations "3D Triangulations" for more details
|
||||
about infinite vertices and cells.
|
||||
\cgalModifEnd
|
||||
|
||||
The class `CGAL::Delaunay_triangulation<DelaunayTriangulationTraits, TriangulationDataStructure>` adds further
|
||||
constraints to a triangulation, in that all its simplices must have the
|
||||
|
|
@ -124,11 +116,9 @@ which \cgal provides one model class:
|
|||
|
||||
A `TriangulationDataStructure` can represent an abstract pure complex
|
||||
such that any facet is incident to exactly two full cells.
|
||||
|
||||
\cgalModifBegin
|
||||
|
||||
A `TriangulationDataStructure` has a <!--- property called the --->
|
||||
<I>maximal dimension</I> which is a
|
||||
\cgalModifEnd
|
||||
<I>maximal dimension</I> which is a
|
||||
positive integer equal to the maximum dimension a full cell can have.
|
||||
This maximal dimension can be chosen by the user at the creation of a `TriangulationDataStructure` and can then be queried using the method `tds.maximal_dimension()`.
|
||||
A `TriangulationDataStructure` also knows the <I>current dimension</I> of its full cells,
|
||||
|
|
@ -149,7 +139,6 @@ always exactly \f$ d+1\f$ neighbors.
|
|||
Two full cells \f$ \sigma\f$ and \f$ \sigma'\f$ sharing a facet are called
|
||||
<I>neighbors</I>.
|
||||
|
||||
\cgalModifBegin
|
||||
Possible values of \f$d\f$ (the <I>current dimension</I> of the triangulation) include
|
||||
<BLOCKQUOTE>
|
||||
<DL>
|
||||
|
|
@ -165,8 +154,7 @@ triangulation of the \f$ 0\f$-sphere.
|
|||
<DT><B>\f$ 0< d \le D\f$</B><DD> This corresponds to a standard triangulation of
|
||||
the sphere \f$ \mathcal S^d\f$.
|
||||
</DL>
|
||||
</BLOCKQUOTE>
|
||||
\cgalModifEnd
|
||||
</BLOCKQUOTE>
|
||||
|
||||
## The class `Triangulation_data_structure` ##
|
||||
|
||||
|
|
@ -187,10 +175,8 @@ of its neighbors have the following meaning: the \f$ i\f$-th neighbor of \f$ \si
|
|||
is the unique neighbor of \f$ \sigma\f$ that does not contain the \f$ i\f$-th vertex of
|
||||
\f$ \sigma\f$; in other words, it is the neighbor of \f$ \sigma\f$ <I>opposite</I> to
|
||||
the \f$ i\f$-th vertex of \f$ \sigma\f$ (Figure \cgalFigureRef{triangulationfigfullcell}).
|
||||
\cgalModifBegin
|
||||
Faces of dimension between 0 and \f$ d-1 \f$ can be accessed as
|
||||
subfaces of a full cell.
|
||||
\cgalModifEnd
|
||||
|
||||
\cgalFigureBegin{triangulationfigfullcell,simplex-structure.png}
|
||||
Indexing the vertices and neighbors of a full cell \f$ c\f$ in dimension \f$ d=2\f$.
|
||||
|
|
@ -214,8 +200,6 @@ on-the-fly, which is the default case. Please refer to the
|
|||
documentation of that class template for specific details.
|
||||
--->
|
||||
|
||||
\cgalModifBegin
|
||||
\cgalModifEnd
|
||||
###Template parameters###
|
||||
|
||||
The `Triangulation_data_structure<Dimensionality, TriangulationDSVertex, TriangulationDSFullCell>`
|
||||
|
|
@ -250,7 +234,6 @@ concepts: `Triangulation_ds_vertex<TriangulationDataStructure>` and
|
|||
can see, take the `TriangulationDataStructure` as a template parameter in order to get access to
|
||||
some nested types in `TriangulationDataStructure`.
|
||||
|
||||
\cgalModifBegin
|
||||
The default values are `CGAL::Triangulation_ds_vertex<TDS>`
|
||||
and `CGAL::Triangulation_ds_full_cell<TDS>`
|
||||
where `TDS` is the current class `Triangulation_data_structure<Dimensionality, TriangulationDSVertex, TriangulationDSFullCell>`
|
||||
|
|
@ -263,7 +246,6 @@ which is documented in those two concept's reference manual pages.
|
|||
This mechanism can be used to provide a custom vertex or full cell
|
||||
class. The user is encouraged to read the documentation of the \cgal
|
||||
`Triangulation_2` or `Triangulation_3` package.
|
||||
\cgalModifEnd
|
||||
|
||||
|
||||
## Examples ##
|
||||
|
|
@ -273,8 +255,6 @@ class. The user is encouraged to read the documentation of the \cgal
|
|||
The following examples shows how to construct a triangulation data structure by
|
||||
inserting vertices. Its main interest is that it demonstrates most of the API
|
||||
to insert new vertices into the triangulation.
|
||||
\cgalModifBegin
|
||||
\cgalModifEnd
|
||||
<!---
|
||||
Therefore, the reader will make
|
||||
the best use of this example by reading it slowly, together with the reference
|
||||
|
|
@ -308,7 +288,6 @@ Barycentric subdivision in dimension \f$ d=2\f$.
|
|||
|
||||
# Triangulations #
|
||||
|
||||
\cgalModifBegin
|
||||
The class `CGAL::Triangulation<TriangulationTraits, TriangulationDataStructure>`
|
||||
maintains a geometric
|
||||
triangulation in Euclidean space. More precisely, it
|
||||
|
|
@ -317,7 +296,6 @@ full cells) of the convex hull of the points (the embedded vertices) of the
|
|||
triangulation. A special vertex at infinity is added to the convex
|
||||
hull facets to create infinite full cells and make the triangulation
|
||||
homeomorphic to a sphere of one dimension higher.
|
||||
\cgalModifEnd
|
||||
|
||||
Methods are provided for the insertion of points in the triangulation, the
|
||||
contraction of faces, the traversal of various elements of the triangulation
|
||||
|
|
@ -327,7 +305,6 @@ Infinite full cells outside the convex hull are each incident to
|
|||
a finite facet on the convex hull of the triangulation and to a unique
|
||||
<I>vertex at infinity</I>.
|
||||
|
||||
\cgalModifBegin
|
||||
The ordering of the vertices of a full cell defines an orientation of
|
||||
that full cell.
|
||||
As long as no <I>advanced</I> class method is called, it is guaranteed
|
||||
|
|
@ -349,7 +326,6 @@ In a triangulation, we can distinguish three dimensions:
|
|||
the triangulation.
|
||||
</UL>
|
||||
|
||||
\cgalModifEnd
|
||||
|
||||
## Implementation ##
|
||||
|
||||
|
|
@ -362,16 +338,12 @@ The template parameter `TriangulationTraits` must be a model of the concept
|
|||
`TriangulationTraits` which provides the geometric `Point` type as well
|
||||
as various geometric predicates used by the `Triangulation` class.
|
||||
|
||||
\cgalModifBegin
|
||||
`TriangulationTraits::Dimension` must match
|
||||
the maximal dimension of the `TriangulationDataStructure`.
|
||||
\cgalModifEnd
|
||||
|
||||
\cgalModifBegin
|
||||
The template parameter `TriangulationDataStructure` must be a model of the concept
|
||||
`TriangulationDataStructure` which provides the triangulation data
|
||||
structure as described in the previous section.
|
||||
\cgalModifEnd
|
||||
|
||||
## Examples ##
|
||||
|
||||
|
|
@ -384,10 +356,8 @@ ask the triangulation to construct the set of edges
|
|||
(\f$ 1\f$ dimensional faces) incident to the vertex at infinity. It is easy to see that
|
||||
these edges are in bijection with the vertices on the convex hull of the
|
||||
points. This gives us a handy way to count the convex hull vertices
|
||||
\cgalModifBegin
|
||||
(include files <tt>triangulation1.cpp</tt> and
|
||||
<tt>triangulation2.cpp</tt> are given and commented below).
|
||||
\cgalModifEnd
|
||||
|
||||
\cgalExample{triangulation.cpp}
|
||||
|
||||
|
|
@ -416,12 +386,10 @@ full cells:
|
|||
|
||||
\cgalExample{triangulation2.cpp}
|
||||
|
||||
\cgalModifBegin
|
||||
One important difference between the two examples above is that the first uses
|
||||
<I>little</I> memory but traverses <I>all</I> the full cells, while the second
|
||||
visits <I>only</I> the infinite full cells but stores handles to them into the
|
||||
<I>potentially big</I> array <tt>infinite_full_cells</tt>.
|
||||
\cgalModifEnd
|
||||
|
||||
# Delaunay Triangulations #
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue