Downsize headings

This commit is contained in:
Andreas Fabri 2012-09-17 14:53:05 +00:00
parent c5d9b86882
commit 6f61e2b2ee
262 changed files with 554 additions and 1150 deletions

1
.gitignore vendored
View File

@ -106,7 +106,6 @@ Circular_kernel_3/test/Circular_kernel_3/test_Spherical_kernel_basics
Circular_kernel_3/test/Circular_kernel_3/test_Spherical_kernel_with_core Circular_kernel_3/test/Circular_kernel_3/test_Spherical_kernel_with_core
Distance_3/include Distance_3/include
Documentation/log Documentation/log
Documentation/log/*
Documentation/output Documentation/output
Documentation/tags/*.* Documentation/tags/*.*
Generator/examples/Generator/CMakeLists.txt Generator/examples/Generator/CMakeLists.txt

View File

@ -7,8 +7,7 @@ The concept `AABBPrimitive` describes the requirements for the primitives stored
\sa `AABB_tree<AT>` \sa `AABB_tree<AT>`
Example ### Example ###
--------------
The `Primitive` type can be, e.g., a wrapper around a `Handle`. Assume for instance that the input objects are the triangle faces of a mesh stored as a `CGAL::Polyhedron`. The `Datum` would be a `Triangle_3` and the `Id` would be a polyhedron `Face_handle`. Method `datum()` can return either a `Triangle_3` constructed on the fly from the face handle or a `Triangle_3` stored internally. This provides a way for the user to trade memory for efficiency. The `Primitive` type can be, e.g., a wrapper around a `Handle`. Assume for instance that the input objects are the triangle faces of a mesh stored as a `CGAL::Polyhedron`. The `Datum` would be a `Triangle_3` and the `Id` would be a polyhedron `Face_handle`. Method `datum()` can return either a `Triangle_3` constructed on the fly from the face handle or a `Triangle_3` stored internally. This provides a way for the user to trade memory for efficiency.

View File

@ -20,8 +20,7 @@ Moreover, `CGAL::Algebraic_structure_traits< EuclideanRing >` is a model of
- `CGAL::Algebraic_structure_traits< EuclideanRing >::Div_mod` - `CGAL::Algebraic_structure_traits< EuclideanRing >::Div_mod`
Remarks ### Remarks ###
--------------
The most prominent example of a Euclidean ring are the integers. The most prominent example of a Euclidean ring are the integers.
Whenever both \f$ x\f$ and \f$ y\f$ are positive, then it is conventional to choose Whenever both \f$ x\f$ and \f$ y\f$ are positive, then it is conventional to choose

View File

@ -16,8 +16,7 @@ and the \f$ k\f$-dimensional faces of the triangulation.
Note that this class is at the same time used for <I>basic</I> and Note that this class is at the same time used for <I>basic</I> and
for <I>weighted</I> Alpha Shapes. for <I>weighted</I> Alpha Shapes.
Parameters ### Parameters ###
--------------
The template parameter `Dt` has to be either `Delaunay_triangulation_2` or `Regular_triangulation_2`. The template parameter `Dt` has to be either `Delaunay_triangulation_2` or `Regular_triangulation_2`.
Note that `DT::Geom_traits`, `DT::Vertex` and `DT::Face` must model the concepts `AlphaShapeTraits_2`, Note that `DT::Geom_traits`, `DT::Vertex` and `DT::Face` must model the concepts `AlphaShapeTraits_2`,
@ -30,8 +29,7 @@ kernel. By default the `ExactAlphaComparisonTag` is set to `CGAL::Tag_false` as
overhead. Note that since such a strategy does not make sense if used together with a traits class with exact constructions, overhead. Note that since such a strategy does not make sense if used together with a traits class with exact constructions,
the tag `ExactAlphaComparisonTag` is not taken into account if `Dt::Geom_traits::FT` is not a floating point number type. the tag `ExactAlphaComparisonTag` is not taken into account if `Dt::Geom_traits::FT` is not a floating point number type.
Inherits From ### Inherits From ###
--------------
Inherits from `Dt`. Inherits from `Dt`.
@ -40,14 +38,12 @@ This class is the underlying triangulation class.
The modifying functions `insert` and `remove` will overwrite The modifying functions `insert` and `remove` will overwrite
the inherited functions. At the moment, only the static version is implemented. the inherited functions. At the moment, only the static version is implemented.
I/O ### I/O ###
--------------
The I/O operators are defined for `std::iostream`. The format for the iostream The I/O operators are defined for `std::iostream`. The format for the iostream
is an internal format. is an internal format.
Implementation ### Implementation ###
--------------
The set of intervals associated with the The set of intervals associated with the
\f$ k\f$-dimensional faces of the underlying triangulation are \f$ k\f$-dimensional faces of the underlying triangulation are

View File

@ -6,8 +6,7 @@ namespace CGAL {
The class `Alpha_shape_face_base_2` is the default model for the concept `AlphaShapeFace_2`. The class `Alpha_shape_face_base_2` is the default model for the concept `AlphaShapeFace_2`.
Parameters ### Parameters ###
--------------
The template parameter `Traits` has to be a model of `AlphaShapeTraits_2`. The template parameter `Traits` has to be a model of `AlphaShapeTraits_2`.

View File

@ -7,8 +7,7 @@ namespace CGAL {
The class `Alpha_shape_vertex_base_2` is the default model for the concept The class `Alpha_shape_vertex_base_2` is the default model for the concept
`AlphaShapeVertex_2`. `AlphaShapeVertex_2`.
Parameters ### Parameters ###
--------------
The template parameter `Traits` has to be a model of `AlphaShapeTraits_2`. The template parameter `Traits` has to be a model of `AlphaShapeTraits_2`.

View File

@ -19,8 +19,7 @@ the tag `ExactAlphaComparisonTag` is not taken into account if `Dt::Geom_traits:
Note that this class is at the same time used for <I>basic</I> and Note that this class is at the same time used for <I>basic</I> and
for <I>weighted</I> Alpha Shapes. for <I>weighted</I> Alpha Shapes.
Inherits From ### Inherits From ###
--------------
Inherits from `Dt`. Inherits from `Dt`.
@ -29,15 +28,13 @@ This class is the underlying triangulation class.
The modifying functions `insert` and `remove` will overwrite The modifying functions `insert` and `remove` will overwrite
the inherited functions. At the moment, only the static version is implemented. the inherited functions. At the moment, only the static version is implemented.
I/O ### I/O ###
--------------
The I/O operators are defined for `iostream`, and for The I/O operators are defined for `iostream`, and for
the window stream provided by \cgal. The format for the iostream the window stream provided by \cgal. The format for the iostream
is an internal format. is an internal format.
Implementation ### Implementation ###
--------------
In GENERAL mode, the alpha intervals of each triangulation In GENERAL mode, the alpha intervals of each triangulation
face is computed and stored at initialization time. face is computed and stored at initialization time.

View File

@ -15,8 +15,7 @@ a classification that specifies its status in the alpha complex, alpha being fix
Note that this class can be used at the same time to build a <I>basic</I> or Note that this class can be used at the same time to build a <I>basic</I> or
a <I>weighted</I> Alpha Shape. a <I>weighted</I> Alpha Shape.
Inherits From ### Inherits From ###
--------------
Inherits from `Dt`. Inherits from `Dt`.
@ -25,8 +24,7 @@ This class is the underlying triangulation class.
The modifying functions `insert` and `remove` will overwrite The modifying functions `insert` and `remove` will overwrite
the inherited functions. the inherited functions.
I/O ### I/O ###
--------------
The I/O operators are defined for `iostream`, and for The I/O operators are defined for `iostream`, and for
the window stream provided by \cgal. The format for the iostream the window stream provided by \cgal. The format for the iostream

View File

@ -13,15 +13,13 @@ The second template argument defaults to
`CGAL::Triangulation_data_structure_2< CGAL::Apollonius_graph_vertex_base_2<Gt,true>, CGAL::Triangulation_face_base_2<Gt> >`. `CGAL::Triangulation_data_structure_2< CGAL::Apollonius_graph_vertex_base_2<Gt,true>, CGAL::Triangulation_face_base_2<Gt> >`.
\models ::DelaunayGraph_2 \models ::DelaunayGraph_2
Traversal of the Apollonius Graph ### Traversal of the Apollonius Graph ###
--------------
An Apollonius graph can be seen as a container of faces and vertices. An Apollonius graph can be seen as a container of faces and vertices.
Therefore the Apollonius graph provides several iterators and Therefore the Apollonius graph provides several iterators and
circulators that allow to traverse it (completely or partially). circulators that allow to traverse it (completely or partially).
Traversal of the Convex Hull ### Traversal of the Convex Hull ###
----------------------------
Applied on the `infinite_vertex` the `incident_*` functions allow to Applied on the `infinite_vertex` the `incident_*` functions allow to
visit the vertices on the convex hull and the infinite edges and visit the vertices on the convex hull and the infinite edges and

View File

@ -38,8 +38,7 @@ The `Apollonius_graph_hierarchy_2` class derives publicly from the
the same with its base class. In the sequel only the methods the same with its base class. In the sequel only the methods
overridden are documented. overridden are documented.
Types ### Types ###
--------------
`Apollonius_graph_hierarchy_2` does not introduce other types than those introduced by `Apollonius_graph_hierarchy_2` does not introduce other types than those introduced by
its base class `Apollonius_graph_2<Gt,Agds>`. its base class `Apollonius_graph_2<Gt,Agds>`.

View File

@ -10,14 +10,12 @@ The class `Apollonius_site_2` is a model for the concept
\models ::ApolloniusSite_2 \models ::ApolloniusSite_2
Types ### Types ###
--------------
The class `Apollonius_site_2` does not introduce any types in addition to the The class `Apollonius_site_2` does not introduce any types in addition to the
concept `ApolloniusSite_2`. concept `ApolloniusSite_2`.
I/O ### I/O ###
--------------
The I/O operators are defined for `iostream`. The I/O operators are defined for `iostream`.

View File

@ -14,8 +14,7 @@ next and previous level graphs.
\refines ::ApolloniusGraphVertexBase_2 \refines ::ApolloniusGraphVertexBase_2
Types ### Types ###
--------------
`ApolloniusGraphHierarchyVertexBase_2` does not introduce any `ApolloniusGraphHierarchyVertexBase_2` does not introduce any
types in addition to those of `ApolloniusGraphVertexBase_2`. types in addition to those of `ApolloniusGraphVertexBase_2`.

View File

@ -14,8 +14,7 @@ pairs in the output sequence are sorted in increasing \f$ xy\f$-lexicographical
order of the query points. The function returns a past-the-end iterator of order of the query points. The function returns a past-the-end iterator of
the output sequence. the output sequence.
Requirements ### Requirements ###
--------------
<UL> <UL>
<LI>`InputIterator::value_type` must be `Traits::Point_2`. <LI>`InputIterator::value_type` must be `Traits::Point_2`.

View File

@ -77,8 +77,7 @@ supports the merging of curves of opposite directions.
\models ::ArrangementLandmarkTraits_2 \models ::ArrangementLandmarkTraits_2
\models ::ArrangementDirectionalXMonotoneTraits_2 \models ::ArrangementDirectionalXMonotoneTraits_2
Types ### Types ###
--------------
*/ */

View File

@ -53,8 +53,7 @@ is associated with the output of this functor.
\models ::ArrangementTraits_2 \models ::ArrangementTraits_2
Inherits From ### Inherits From ###
--------------
CONVERROR Inherits From must be handled manually, e.g. adjust the class decl`Base_traits_2` CONVERROR Inherits From must be handled manually, e.g. adjust the class decl`Base_traits_2`

View File

@ -35,8 +35,7 @@ The default values follow:
\models ::ArrangementDcelWithRebind \models ::ArrangementDcelWithRebind
Inherits From ### Inherits From ###
--------------
CONVERROR Inherits From must be handled manually, e.g. adjust the class decl CONVERROR Inherits From must be handled manually, e.g. adjust the class decl
<TABLE><TR><TD ALIGN=LEFT VALIGN=TOP NOWRAP> <TABLE><TR><TD ALIGN=LEFT VALIGN=TOP NOWRAP>

View File

@ -6,8 +6,7 @@ namespace CGAL {
The function `read` reads a given arrangement from a given input stream The function `read` reads a given arrangement from a given input stream
using a specific input format. using a specific input format.
Requirements ### Requirements ###
--------------
<UL> <UL>
<LI>The instantiated `Formatter` class must model the <LI>The instantiated `Formatter` class must model the
@ -44,8 +43,7 @@ std::istream& read (Arrangement_2<Traits,Dcel>& arr,
The function `write` writes a given arrangement into a given output stream The function `write` writes a given arrangement into a given output stream
using a specific output format. using a specific output format.
Requirements ### Requirements ###
--------------
<UL> <UL>
<LI>The instantiated `Formatter` class must model the <LI>The instantiated `Formatter` class must model the

View File

@ -36,8 +36,7 @@ supports the merging of curves of opposite directions.
\models ::ArrangementLandmarkTraits_2 \models ::ArrangementLandmarkTraits_2
\models ::ArrangementDirectionalXMonotoneTraits_2 \models ::ArrangementDirectionalXMonotoneTraits_2
Inherits From ### Inherits From ###
--------------
CONVERROR Inherits From must be handled manually, e.g. adjust the class decl`Arr_non_caching_segment_basic_traits_2<Kernel>` CONVERROR Inherits From must be handled manually, e.g. adjust the class decl`Arr_non_caching_segment_basic_traits_2<Kernel>`

View File

@ -42,8 +42,7 @@ is no feature above it.
</UL> </UL>
The function returns a past-the-end iterator for its output sequence. The function returns a past-the-end iterator for its output sequence.
Requirements ### Requirements ###
--------------
`OutputIterator::value_type` must be `OutputIterator::value_type` must be
`pair<Arrangement_2::Vertex_const_handle, pair<Object, Object> >`. `pair<Arrangement_2::Vertex_const_handle, pair<Object, Object> >`.

View File

@ -102,10 +102,8 @@ requires a number type `ET` that provides <I>exact</I> arithmetic.
(Both these aspects are discussed in the documentation of the concept (Both these aspects are discussed in the documentation of the concept
`ApproximateMinEllipsoid_d_Traits_d`.) `ApproximateMinEllipsoid_d_Traits_d`.)
Requirements
--------------
The template parameter `Traits` is a model for \tparam Traits must be a model for
`ApproximateMinEllipsoid_d_Traits_d`. `ApproximateMinEllipsoid_d_Traits_d`.
We provide the model We provide the model

View File

@ -11,12 +11,9 @@ an exact number-type `ET` has to be provided which
`Approximate_min_ellipsoid_d<Traits>` will use for its internal `Approximate_min_ellipsoid_d<Traits>` will use for its internal
exact computations. exact computations.
Requirements \tparam K must be a model for concept `Kernel`.
--------------
The template parameter `K` must be a model for concept \tparam ET must be a model for concept `RingNumberType` with exact arithmetic operations, i.e., the type
`Kernel`. The template parameter `ET` must be a model for concept
`RingNumberType` with exact arithmetic operations, i.e., the type
`CGAL::Number_type_traits<ET>::Has_exact_ring_operations` must be `CGAL::Number_type_traits<ET>::Has_exact_ring_operations` must be
`CGAL::Tag_true`. In addition, `ET` must be able to exactly `CGAL::Tag_true`. In addition, `ET` must be able to exactly
represent any finite `double` value. (Examples of such a represent any finite `double` value. (Examples of such a

View File

@ -11,11 +11,9 @@ an exact number-type `ET` has to be provided which
`Approximate_min_ellipsoid_d<Traits>` will use for its internal `Approximate_min_ellipsoid_d<Traits>` will use for its internal
exact computations. exact computations.
Requirements \tparam K must be a model for `Kernel`.
--------------
The template parameter `K` must be a model for concept \tparam ET must be a model for concept
`Kernel`. The template parameter `ET` must be a model for concept
`RingNumberType` with exact arithmetic operations, i.e., the type `RingNumberType` with exact arithmetic operations, i.e., the type
`CGAL::Number_type_traits<ET>::Has_exact_ring_operations` must be `CGAL::Number_type_traits<ET>::Has_exact_ring_operations` must be
`CGAL::Tag_true`. In addition, `ET` must be able to exactly `CGAL::Tag_true`. In addition, `ET` must be able to exactly

View File

@ -11,11 +11,8 @@ an exact number-type `ET` has to be provided which
`Approximate_min_ellipsoid_d<Traits>` will use for its internal `Approximate_min_ellipsoid_d<Traits>` will use for its internal
exact computations. exact computations.
Requirements \tparam K must be a model for concept `Kernel`.
-------------- \tparam `ET` must be a model for concept
The template parameter `K` must be a model for concept
`Kernel`. The template parameter `ET` must be a model for concept
`RingNumberType` with exact arithmetic operations, i.e., the type `RingNumberType` with exact arithmetic operations, i.e., the type
`CGAL::Number_type_traits<ET>::Has_exact_ring_operations` must be `CGAL::Number_type_traits<ET>::Has_exact_ring_operations` must be
`CGAL::Tag_true`. In addition, `ET` must be able to exactly `CGAL::Tag_true`. In addition, `ET` must be able to exactly

View File

@ -24,10 +24,7 @@ The underlying algorithm can cope with all kinds of input, e.g. \f$ P\f$ may be
empty or points may occur more than once. The algorithm computes a support empty or points may occur more than once. The algorithm computes a support
set \f$ S\f$ which remains fixed until the next set, insert, or clear operation. set \f$ S\f$ which remains fixed until the next set, insert, or clear operation.
Requirements \tparam Traits must be a model for `OptimisationDTraits`.
--------------
The template parameter `Traits` is a model for `OptimisationDTraits`.
We provide the models `Optimisation_d_traits_2`, We provide the models `Optimisation_d_traits_2`,
`Optimisation_d_traits_3`, and `Optimisation_d_traits_d` using the `Optimisation_d_traits_3`, and `Optimisation_d_traits_d` using the
@ -39,8 +36,7 @@ two-, three-, and \f$ d\f$-dimensional \cgal kernel, respectively.
\sa `CGAL::Optimisation_d_traits_d<K,ET,NT>` \sa `CGAL::Optimisation_d_traits_d<K,ET,NT>`
\sa `OptimisationDTraits` \sa `OptimisationDTraits`
Implementation ### Implementation ###
--------------
The problem of finding the smallest enclosing annulus of a finite point set The problem of finding the smallest enclosing annulus of a finite point set
can be formulated as an optimization problem with linear constraints and a can be formulated as an optimization problem with linear constraints and a
@ -272,8 +268,7 @@ FT squared_outer_radius( ) const;
returns an iterator referring to the first coordinate returns an iterator referring to the first coordinate
of the center of `min_annulus`. of the center of `min_annulus`.
Note ### Note ###
--------------
The coordinates have a rational The coordinates have a rational
representation, i.e. the first \f$ d\f$ elements of the iterator representation, i.e. the first \f$ d\f$ elements of the iterator

View File

@ -38,10 +38,8 @@ case the algorithm is division-free. Thus, `Min_circle_2` might still
be an option in case your input number type cannot (efficiently) be an option in case your input number type cannot (efficiently)
divide. divide.
Requirements
--------------
The template parameter `Traits` is a model for `MinCircle2Traits`. \tparam Traits must be a model for `MinCircle2Traits`.
We provide the model `CGAL::Min_circle_2_traits_2` using the We provide the model `CGAL::Min_circle_2_traits_2` using the
two-dimensional \cgal kernel. two-dimensional \cgal kernel.

View File

@ -7,10 +7,7 @@ namespace CGAL {
The class `Min_circle_2_traits_2` is a traits class for `Min_circle_2<Traits>` The class `Min_circle_2_traits_2` is a traits class for `Min_circle_2<Traits>`
using the two-dimensional \cgal kernel. using the two-dimensional \cgal kernel.
Requirements \tparam K must be a model for `Kernel`.
--------------
The template parameter `K` is a model for `Kernel`.
\models ::MinCircle2Traits \models ::MinCircle2Traits

View File

@ -23,10 +23,7 @@ The underlying algorithm can cope with all kinds of input, e.g. \f$ P\f$ may be
empty or points may occur more than once. The algorithm computes a support empty or points may occur more than once. The algorithm computes a support
set \f$ S\f$ which remains fixed until the next insert or clear operation. set \f$ S\f$ which remains fixed until the next insert or clear operation.
Requirements \tparam Traits must be a model for `MinEllipse2Traits`.
--------------
The template parameter `Traits` is a model for `MinEllipse2Traits`.
We provide the model `CGAL::Min_ellipse_2_traits_2<K>` using the We provide the model `CGAL::Min_ellipse_2_traits_2<K>` using the
two-dimensional \cgal kernel. two-dimensional \cgal kernel.
@ -35,8 +32,7 @@ two-dimensional \cgal kernel.
\sa `CGAL::Min_ellipse_2_traits_2<K>` \sa `CGAL::Min_ellipse_2_traits_2<K>`
\sa `MinEllipse2Traits` \sa `MinEllipse2Traits`
Implementation ### Implementation ###
--------------
We implement the incremental algorithm of Welzl, with move-to-front We implement the incremental algorithm of Welzl, with move-to-front
heuristic \cite w-sedbe-91a, using the primitives as described heuristic \cite w-sedbe-91a, using the primitives as described
@ -50,8 +46,7 @@ take up to linear time, but substantially less than computing the new
smallest enclosing ellipse from scratch. The clear operation and the check smallest enclosing ellipse from scratch. The clear operation and the check
for validity each takes linear time. for validity each takes linear time.
Example ### Example ###
--------------
To illustrate the usage of `Min_ellipse_2` and to show that randomization To illustrate the usage of `Min_ellipse_2` and to show that randomization
can be useful in certain cases, we give an example. The example also can be useful in certain cases, we give an example. The example also

View File

@ -7,10 +7,7 @@ namespace CGAL {
The class `Min_ellipse_2_traits_2` is a traits class for `CGAL::Min_ellipse_2<Traits>` The class `Min_ellipse_2_traits_2` is a traits class for `CGAL::Min_ellipse_2<Traits>`
using the two-di-men-sional \cgal kernel. using the two-di-men-sional \cgal kernel.
Requirements The template parameter `K` must be a model for `Kernel`.
--------------
The template parameter `K` is a model for `Kernel`.
\models ::MinEllipse2Traits \models ::MinEllipse2Traits

View File

@ -8,11 +8,7 @@ The class `Min_quadrilateral_default_traits_2` is a traits class for the
functions `min_rectangle_2`, `min_parallelogram_2` and functions `min_rectangle_2`, `min_parallelogram_2` and
`min_strip_2` using a two-dimensional \cgal kernel. `min_strip_2` using a two-dimensional \cgal kernel.
Requirements \tparam K must be a model for `Kernel`.
--------------
The template parameter `K` is a model for
`Kernel`.
\models ::MinQuadrilateralTraits_2 \models ::MinQuadrilateralTraits_2

View File

@ -7,13 +7,8 @@ namespace CGAL {
The class `Min_sphere_annulus_d_traits_2` is a traits class for the \f$ d\f$-dimensional The class `Min_sphere_annulus_d_traits_2` is a traits class for the \f$ d\f$-dimensional
optimisation algorithms using the two-dimensional \cgal kernel. optimisation algorithms using the two-dimensional \cgal kernel.
Requirements \tparam K must bea model for `Kernel`.
-------------- \tparam ET NT are models for `RingNumberType`. Their default type is `K::RT`.
The template parameter `K` is a model for `Kernel`. Template
parameters `ET` and `NT` are models for `RingNumberType`.
The second and third template parameter have default type `K::RT`.
\models ::MinSphereAnnulusDTraits \models ::MinSphereAnnulusDTraits

View File

@ -7,13 +7,8 @@ namespace CGAL {
The class `Min_sphere_annulus_d_traits_3` is a traits class for the \f$ d\f$-dimensional The class `Min_sphere_annulus_d_traits_3` is a traits class for the \f$ d\f$-dimensional
optimisation algorithms using the three-dimensional \cgal kernel. optimisation algorithms using the three-dimensional \cgal kernel.
Requirements \tparam K must be a model for `Kernel`.
-------------- \tparam ET NT are models for `RingNumberType`. Their default type is `K::RT`.
The template parameter `K` is a model for `Kernel`. Template
parameters `ET` and `NT` are models for `RingNumberType`.
The second and third template parameter have default type `K::RT`.
\models ::MinSphereAnnulusDTraits \models ::MinSphereAnnulusDTraits

View File

@ -7,13 +7,8 @@ namespace CGAL {
The class `Min_sphere_annulus_d_traits_d` is a traits class for the \f$ d\f$-dimensional The class `Min_sphere_annulus_d_traits_d` is a traits class for the \f$ d\f$-dimensional
optimisation algorithms using the \f$ d\f$-dimensional \cgal kernel. optimisation algorithms using the \f$ d\f$-dimensional \cgal kernel.
Requirements \tparam K must be a model for `Kernel`.
-------------- \tparam ET NT are models for `RingNumberType`. Their default type is `K::RT`.
The template parameter `K` is a model for `Kernel`. Template
parameters `ET` and `NT` are models for `RingNumberType`.
The second and third template parameter have default type `K::RT`.
\models ::MinSphereAnnulusDTraits \models ::MinSphereAnnulusDTraits

View File

@ -36,11 +36,10 @@ case the algorithm is division-free. Thus, `Min_sphere_d` might still
be an option in case your input number type cannot (efficiently) be an option in case your input number type cannot (efficiently)
divide. divide.
Requirements
--------------
The class `Min_sphere_d` expects a model of the concept \tparam Traits must be a model of the concept
`OptimisationDTraits` as its template argument. `OptimisationDTraits` as its template argument.
We provide the models `CGAL::Optimisation_d_traits_2`, We provide the models `CGAL::Optimisation_d_traits_2`,
`CGAL::Optimisation_d_traits_3` and `CGAL::Optimisation_d_traits_3` and
`CGAL::Optimisation_d_traits_d` `CGAL::Optimisation_d_traits_d`
@ -54,8 +53,7 @@ for two-, three-, and \f$ d\f$-dimensional points respectively.
\sa `CGAL::Min_sphere_of_spheres_d<Traits>` \sa `CGAL::Min_sphere_of_spheres_d<Traits>`
\sa `CGAL::Min_annulus_d<Traits>` \sa `CGAL::Min_annulus_d<Traits>`
Implementation ### Implementation ###
--------------
We implement the algorithm of Welzl with move-to-front We implement the algorithm of Welzl with move-to-front
heuristic \cite w-sedbe-91a for small point sets, combined with a new heuristic \cite w-sedbe-91a for small point sets, combined with a new
@ -68,8 +66,7 @@ but substantially less than computing the new smallest enclosing
sphere from scratch. The clear operation and the check for validity sphere from scratch. The clear operation and the check for validity
each take linear time. each take linear time.
Example ### Example ###
--------------
\cgalexample{min_sphere_d.cpp} \cgalexample{min_sphere_d.cpp}
@ -129,7 +126,7 @@ Min_sphere_d (const Traits& traits = Traits());
creates a variable `min_sphere` of type `Min_sphere_d`. creates a variable `min_sphere` of type `Min_sphere_d`.
It is initialized to \f$ ms(P)\f$ with \f$ P\f$ being the set of points It is initialized to \f$ ms(P)\f$ with \f$ P\f$ being the set of points
in the range [`first`,`last`). in the range [`first`,`last`).
\require The value type of `first` and `last` is `Point`. If the traits parameter is not supplied, the class `Traits` must provide a default constructor. \pre All points have the same dimension. \requires The value type of `first` and `last` is `Point`. If the traits parameter is not supplied, the class `Traits` must provide a default constructor. \pre All points have the same dimension.
*/ */
template < class InputIterator > template < class InputIterator >
Min_sphere_d( InputIterator first, Min_sphere_d( InputIterator first,
@ -262,7 +259,7 @@ void clear ();
sets `min_sphere` to the \f$ ms(P)\f$, where \f$ P\f$ is the set of points sets `min_sphere` to the \f$ ms(P)\f$, where \f$ P\f$ is the set of points
in the range [`first`,`last`). in the range [`first`,`last`).
\require The value type of `first` and `last` is `Point`. \requires The value type of `first` and `last` is `Point`.
\pre All points have the same dimension. \pre All points have the same dimension.
*/ */
template < class InputIterator > template < class InputIterator >
@ -284,7 +281,7 @@ void insert( const Point& p);
inserts the points in the range [`first`,`last`) inserts the points in the range [`first`,`last`)
into `min_sphere` and recomputes the smallest enclosing sphere, by into `min_sphere` and recomputes the smallest enclosing sphere, by
calling `insert` for all points in the range. calling `insert` for all points in the range.
\require The value type of `first` and `last` is `Point`. \requires The value type of `first` and `last` is `Point`.
\pre All points have the same dimension. If `min_sphere` is not empty, this dimension must be equal to `ambient_dimension()`. \pre All points have the same dimension. If `min_sphere` is not empty, this dimension must be equal to `ambient_dimension()`.
*/ */
template < class InputIterator > template < class InputIterator >
@ -334,7 +331,7 @@ const Traits& traits( ) const;
/*! /*!
writes `min_sphere` to output stream `os`. writes `min_sphere` to output stream `os`.
\require The output operator is defined for `Point`. \requires The output operator is defined for `Point`.
\relates Min_sphere_d \relates Min_sphere_d
*/ */
std::ostream& operator << ( std::ostream& os, std::ostream& operator << ( std::ostream& os,
@ -344,7 +341,7 @@ min_sphere);
/*! /*!
reads `min_sphere` from input stream `is`. reads `min_sphere` from input stream `is`.
\require The input operator is defined for `Point`. \requires The input operator is defined for `Point`.
\relates Min_sphere_d \relates Min_sphere_d
*/ */
std::istream& operator >> ( std::istream& is, std::istream& operator >> ( std::istream& is,

View File

@ -10,23 +10,23 @@ type `Point_2` to represent circles.
\models ::MinSphereOfSpheresTraits \models ::MinSphereOfSpheresTraits
\name Parameters
The last two template parameters, `UseSqrt` and `Algorithm`, have
default arguments, namely `CGAL::Tag_false` and
`CGAL::Default_algorithm`, respectively. The template parameters
of class `Min_sphere_of_points_d_traits_2<K,FT,UseSqrt,Algorithm>`
must fulfill the following requirements:
\tparam K is a model for `Kernel`.
\tparam K must be a model for `Kernel`.
\tparam FT is a number type, which fulfills the requirements of \tparam FT is a number type, which fulfills the requirements of
type `FT` of concept `MinSphereOfSpheresTraits`: It must be type `FT` of concept `MinSphereOfSpheresTraits`: It must be
either `double` or `float`, or an exact number type. either `double` or `float`, or an exact number type.
\tparam UseSqrt fulfills the \tparam UseSqrt fulfills the
requirements of type `Use_square_roots` of concept requirements of type `Use_square_roots` of concept
`MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`. `MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`,
and it is by default `CGAL::Tag_false`.
\tparam Algorithm fulfills the requirements of type `Algorithm` of \tparam Algorithm fulfills the requirements of type `Algorithm` of
concept `MinSphereOfSpheresTraits`: It must be either concept `MinSphereOfSpheresTraits`: It must be either
`Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`. `Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`,
and it is by default `CGAL::Default_algorithm`.
*/ */
template< typename K, typename FT, typename UseSqrt, typename Algorithm > template< typename K, typename FT, typename UseSqrt, typename Algorithm >

View File

@ -10,25 +10,22 @@ a model for concept `MinSphereOfSpheresTraits`. It uses the
\models ::MinSphereOfSpheresTraits \models ::MinSphereOfSpheresTraits
Parameters
----------
The last two template parameters, `UseSqrt` and `Algorithm`, have
default arguments, namely `CGAL::Tag_false` and
`CGAL::Default_algorithm`, respectively. The template parameters
of class `Min_sphere_of_points_d_traits_2<K,FT,UseSqrt,Algorithm>`
must fulfill the following requirements:
\tparam K is a model for `Kernel`. \tparam K is a model for `Kernel`.
\tparam FT is a number type, which fulfills the requirements of \tparam FT is a number type, which fulfills the requirements of
type `FT` of concept `MinSphereOfSpheresTraits`: It must be type `FT` of concept `MinSphereOfSpheresTraits`: It must be
either `double` or `float`, or an exact number type. either `double` or `float`, or an exact number type.
\tparam UseSqrt fulfills the \tparam UseSqrt fulfills the
requirements of type `Use_square_roots` of concept requirements of type `Use_square_roots` of concept
`MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`. `MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`,
and its default is `Tag_false`.
\tparam Algorithm fulfills the requirements of type `Algorithm` of \tparam Algorithm fulfills the requirements of type `Algorithm` of
concept `MinSphereOfSpheresTraits`: It must be either concept `MinSphereOfSpheresTraits`: It must be either
`Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`. `Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`,
and its default is `Default_algorithm`.
*/ */
template< typename K, typename FT, typename Dim, typename UseSqrt, typename Algorithm > template< typename K, typename FT, typename Dim, typename UseSqrt, typename Algorithm >

View File

@ -64,17 +64,13 @@ algorithm is division-free. Thus, `CGAL::Min_sphere_d<Traits>`
might still be an option in case your input number type cannot might still be an option in case your input number type cannot
(efficiently) divide. (efficiently) divide.
Requirements \tparam Traits must be a model of the concept
--------------
The class `Min_sphere_of_spheres_d` expects a model of the concept
`MinSphereOfSpheresTraits` as its template argument. `MinSphereOfSpheresTraits` as its template argument.
\sa `CGAL::Min_sphere_d<Traits>` \sa `CGAL::Min_sphere_d<Traits>`
\sa `CGAL::Min_circle_2<Traits>` \sa `CGAL::Min_circle_2<Traits>`
Implementation ### Implementation ###
--------------
We implement two algorithms, the LP-algorithm and a We implement two algorithms, the LP-algorithm and a
heuristic \cite msw-sblp-92. As described in the documentation of heuristic \cite msw-sblp-92. As described in the documentation of
@ -97,8 +93,7 @@ not supported at this time. Also, the current implementation only
handles spheres with Cartesian coordinates; homogenous representation handles spheres with Cartesian coordinates; homogenous representation
is not supported yet. is not supported yet.
Example ### Example ###
--------------
\cgalexample{min_sphere_of_spheres_d_d.cpp} \cgalexample{min_sphere_of_spheres_d_d.cpp}
@ -181,7 +176,7 @@ creates a variable `minsphere` of type
`Min_sphere_of_spheres_d` and inserts (cf. `Min_sphere_of_spheres_d` and inserts (cf.
`insert()`) the spheres from `insert()`) the spheres from
the range [`first`,`last`). the range [`first`,`last`).
\require The value type of `first` and `last` is `Sphere`. If the traits parameter is not supplied, the class `Traits` must provide a default constructor. \requires The value type of `first` and `last` is `Sphere`. If the traits parameter is not supplied, the class `Traits` must provide a default constructor.
*/ */
template < typename InputIterator > template < typename InputIterator >
Min_sphere_of_spheres_d( InputIterator first, Min_sphere_of_spheres_d( InputIterator first,
@ -269,7 +264,7 @@ void clear ();
sets `minsphere` to sets `minsphere` to
the \f$ ms(S)\f$, where \f$ S\f$ is the set of spheres in the range the \f$ ms(S)\f$, where \f$ S\f$ is the set of spheres in the range
[`first`,`last`). [`first`,`last`).
\require The value type of `first` and `last` is `Sphere`. \requires The value type of `first` and `last` is `Sphere`.
*/ */
template < class InputIterator > void template < class InputIterator > void
set( InputIterator first, InputIterator last ); set( InputIterator first, InputIterator last );
@ -284,7 +279,7 @@ void insert( const Sphere& s );
inserts the spheres in inserts the spheres in
the range [`first`,`last`) into the set \f$ S\f$ of instance the range [`first`,`last`) into the set \f$ S\f$ of instance
`minsphere`. `minsphere`.
\require The value type of `first` and `last` is `Sphere`. \requires The value type of `first` and `last` is `Sphere`.
*/ */
template < class InputIterator > void insert( template < class InputIterator > void insert(
InputIterator first, InputIterator last ); InputIterator first, InputIterator last );

View File

@ -10,8 +10,6 @@ type `Point_2` to represent circles.
\models ::MinSphereOfSpheresTraits \models ::MinSphereOfSpheresTraits
Parameters
----------
The last two template parameters, `UseSqrt` and `Algorithm`, have The last two template parameters, `UseSqrt` and `Algorithm`, have
default arguments, namely `CGAL::Tag_false` and default arguments, namely `CGAL::Tag_false` and
@ -19,16 +17,21 @@ default arguments, namely `CGAL::Tag_false` and
of class `Min_sphere_of_points_d_traits_2<K,FT,UseSqrt,Algorithm>` of class `Min_sphere_of_points_d_traits_2<K,FT,UseSqrt,Algorithm>`
must fulfill the following requirements: must fulfill the following requirements:
\tparam K is a model for `Kernel`. \tparam K must be a model for `Kernel`.
\tparam FT is a number type, which fulfills the requirements of \tparam FT is a number type, which fulfills the requirements of
type `FT` of concept `MinSphereOfSpheresTraits`: It must be type `FT` of concept `MinSphereOfSpheresTraits`: It must be
either `double` or `float`, or an exact number type. either `double` or `float`, or an exact number type.
\tparam UseSqrt fulfills the \tparam UseSqrt fulfills the
requirements of type `Use_square_roots` of concept requirements of type `Use_square_roots` of concept
`MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`. `MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`,
and its default is `Tag_false`.
\tparam Algorithm fulfills the requirements of type `Algorithm` of \tparam Algorithm fulfills the requirements of type `Algorithm` of
concept `MinSphereOfSpheresTraits`: It must be either concept `MinSphereOfSpheresTraits`: It must be either
`Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`. `Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`,
and its default is `Default_algorithm`.
*/ */
template< typename K, typename FT, typename UseSqrt, typename Algorithm > template< typename K, typename FT, typename UseSqrt, typename Algorithm >
class Min_sphere_of_spheres_d_traits_2 { class Min_sphere_of_spheres_d_traits_2 {

View File

@ -10,22 +10,20 @@ type `Point_3` to represent circles.
\models ::MinSphereOfSpheresTraits \models ::MinSphereOfSpheresTraits
Parameters
----------
The last two template parameters, `UseSqrt` and `Algorithm`, have \tparam K must be a model for `Kernel`.
default arguments, namely `CGAL::Tag_false` and
`CGAL::Default_algorithm`, respectively.
\tparam K is a model for `Kernel`.
\tparam FT is a number type, which fulfills the requirements of \tparam FT is a number type, which fulfills the requirements of
type `FT` of concept `MinSphereOfSpheresTraits`: It must be type `FT` of concept `MinSphereOfSpheresTraits`: It must be
either `double` or `float`, or an exact number type. either `double` or `float`, or an exact number type.
\tparam UseSqrt fulfills the \tparam UseSqrt fulfills the
requirements of type `Use_square_roots` of concept requirements of type `Use_square_roots` of concept
`MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`. `MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`,
and it defaults to `Tag_false`.
\tparam Algorithm fulfills the requirements of type \tparam Algorithm fulfills the requirements of type
`Algorithm` of concept `MinSphereOfSpheresTraits`: It must be either `Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`. `Algorithm` of concept `MinSphereOfSpheresTraits`: It must be either `Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`, and it defaults to `Default_algorithm`.
*/ */
template< typename K, typename FT, typename UseSqrt, typename Algorithm > template< typename K, typename FT, typename UseSqrt, typename Algorithm >

View File

@ -10,25 +10,22 @@ a model for concept `MinSphereOfSpheresTraits`. It uses the
\models ::MinSphereOfSpheresTraits \models ::MinSphereOfSpheresTraits
Parameters
----------
The last two template parameters, `UseSqrt` and `Algorithm`, have
default arguments, namely `CGAL::Tag_false` and
`CGAL::Default_algorithm`, respectively. The template parameters
of class `Min_sphere_of_points_d_traits_2<K,FT,UseSqrt,Algorithm>`
must fulfill the following requirements:
\tparam K is a model for `Kernel`. \tparam K is a model for `Kernel`.
\tparam FT is a number type, which fulfills the requirements of \tparam FT is a number type, which fulfills the requirements of
type `FT` of concept `MinSphereOfSpheresTraits`: It must be type `FT` of concept `MinSphereOfSpheresTraits`: It must be
either `double` or `float`, or an exact number type. either `double` or `float`, or an exact number type.
\tparam UseSqrt fulfills the \tparam UseSqrt fulfills the
requirements of type `Use_square_roots` of concept requirements of type `Use_square_roots` of concept
`MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`. `MinSphereOfSpheresTraits`: It must be either `Tag_true` or `Tag_false`
and it defaults to `Tag_false`.
\tparam Algorithm fulfills the requirements of type `Algorithm` of \tparam Algorithm fulfills the requirements of type `Algorithm` of
concept `MinSphereOfSpheresTraits`: It must be either concept `MinSphereOfSpheresTraits`: It must be either
`Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`. `Default_algorithm`, `LP_algorithm` or `Farthest_first_heuristic`,
and it defaults to `Default_algorithm`.
*/ */
template< typename K, typename FT, typename Dim, typename UseSqrt, typename Algorithm > template< typename K, typename FT, typename Dim, typename UseSqrt, typename Algorithm >

View File

@ -184,15 +184,13 @@ is `CGAL::Point_2<K>` for some kernel `K`.
\sa `MinQuadrilateralTraits_2` \sa `MinQuadrilateralTraits_2`
\sa `CGAL::Min_quadrilateral_default_traits_2<K>` \sa `CGAL::Min_quadrilateral_default_traits_2<K>`
Implementation ### Implementation ###
--------------
We use a rotating caliper We use a rotating caliper
algorithm \cite t-sgprc-83 algorithm \cite t-sgprc-83
with worst case running time linear in the number of input points. with worst case running time linear in the number of input points.
Example ### Example ###
--------------
The following code generates a random convex polygon The following code generates a random convex polygon
`P` with 20 vertices and computes the minimum enclosing `P` with 20 vertices and computes the minimum enclosing

View File

@ -7,11 +7,8 @@ The class `Rectangular_p_center_default_traits_2` defines types and operations
needed to compute rectilinear \f$ p\f$-centers of a planar point set needed to compute rectilinear \f$ p\f$-centers of a planar point set
using the function `rectangular_p_center_2`. using the function `rectangular_p_center_2`.
Requirements
--------------
The template parameter `K` is a model for \tparam K must be a model for `Kernel`.
`Kernel`.
\models ::RectangularPCenterTraits_2 \models ::RectangularPCenterTraits_2
@ -245,8 +242,7 @@ is a model for `RectangularPCenterTraits_2`.
\sa `CGAL::Rectangular_p_center_default_traits_2<K>` \sa `CGAL::Rectangular_p_center_default_traits_2<K>`
\sa `CGAL::sorted_matrix_search` \sa `CGAL::sorted_matrix_search`
Implementation ### Implementation ###
--------------
The runtime is linear for \f$ p \in \{2,\,3\}\f$ and The runtime is linear for \f$ p \in \{2,\,3\}\f$ and
\f$ \mathcal{O}(n \cdot \log n)\f$ for \f$ p = 4\f$ where \f$ n\f$ is the number of \f$ \mathcal{O}(n \cdot \log n)\f$ for \f$ p = 4\f$ where \f$ n\f$ is the number of
@ -256,8 +252,7 @@ algorithm uses a prune-and-search technique described in
search \cite fj-fkppc-83, \cite fj-gsrsm-84 and fast algorithms for search \cite fj-fkppc-83, \cite fj-gsrsm-84 and fast algorithms for
piercing rectangles \cite sw-rpppp-96. piercing rectangles \cite sw-rpppp-96.
Example ### Example ###
--------------
The following code generates a random set of ten points The following code generates a random set of ten points
and computes its two-centers. and computes its two-centers.

View File

@ -16,15 +16,13 @@ The only function that needs to be defined in a derived class is
the name of the function suggests that the ipelet may throw exceptions that the name of the function suggests that the ipelet may throw exceptions that
will be caught by a function of the class `Ipelet_base` avoiding Ipe to crash. will be caught by a function of the class `Ipelet_base` avoiding Ipe to crash.
Parameters ### Parameters ###
--------------
The `Kernel` template parameter determines the kernel that will be used The `Kernel` template parameter determines the kernel that will be used
in the ipelet. This parameter must be set according to the algorithm to be used. in the ipelet. This parameter must be set according to the algorithm to be used.
The integer `nbf` indicates the number of functions defined by the ipelet. The integer `nbf` indicates the number of functions defined by the ipelet.
Readable and Drawable Object ### Readable and Drawable Object ###
----------------------------
The set of `read objects` is defined as the set of objects of type The set of `read objects` is defined as the set of objects of type
`Point_2`, `Segment_2`, `Polygon_2`, `Circular_arc_2` or `Point_2`, `Segment_2`, `Polygon_2`, `Circular_arc_2` or

View File

@ -194,13 +194,11 @@ requirements for container (i.e.\ to have a `begin()` and an
`reference`, `const_reference`, `value_type`, `reference`, `const_reference`, `value_type`,
`size_type`, and `difference_type`). `size_type`, and `difference_type`).
Types ### Types ###
--------------
All types required for circulators are provided. All types required for circulators are provided.
Operations ### Operations ###
--------------
The adaptor conforms to the requirements of the corresponding The adaptor conforms to the requirements of the corresponding
circulator category. An additional member function circulator category. An additional member function
@ -211,8 +209,7 @@ the same position as the circulator does.
\sa `Circulator_from_iterator` \sa `Circulator_from_iterator`
\sa `Circulator` \sa `Circulator`
Example ### Example ###
--------------
The following program composes two adaptors - from a container to a The following program composes two adaptors - from a container to a
circulator and back to an iterator. It applies an \stl sort algorithm circulator and back to an iterator. It applies an \stl sort algorithm
@ -270,8 +267,7 @@ category. The circulator will be mutable or non-mutable according to
the iterator. Iterators provide no `size_type`. This adapter the iterator. Iterators provide no `size_type`. This adapter
assumes `std::size_t` instead. assumes `std::size_t` instead.
Operations ### Operations ###
--------------
The adaptor conforms to the requirements of the respective circulator The adaptor conforms to the requirements of the respective circulator
category. An additional member function `current_iterator()` category. An additional member function `current_iterator()`
@ -282,8 +278,7 @@ circulator does.
\sa `Circulator_from_container` \sa `Circulator_from_container`
\sa `Circulator` \sa `Circulator`
Example ### Example ###
--------------
The following program composes two adaptors - from an iterator to a The following program composes two adaptors - from an iterator to a
circulator and back to an iterator. It applies an \stl sort algorithm circulator and back to an iterator. It applies an \stl sort algorithm
@ -393,8 +388,7 @@ circulator category for iterators, i.e.\ one of
`Forward_circulator_tag`, `Bidirectional_circulator_tag`, or `Forward_circulator_tag`, `Bidirectional_circulator_tag`, or
`Random_access_circulator_tag`. `Random_access_circulator_tag`.
Example ### Example ###
--------------
A generic function `bar` that distinguishes between a call with a A generic function `bar` that distinguishes between a call with a
circulator range and a call with an iterator range: circulator range and a call with an iterator range:
@ -466,8 +460,7 @@ otherwise.
\sa `Circulator_from_container` \sa `Circulator_from_container`
\sa `Circulator` \sa `Circulator`
Example ### Example ###
--------------
The generic <TT>reverse()</TT> algorithm from the \stl can be used with an The generic <TT>reverse()</TT> algorithm from the \stl can be used with an
adaptor if at least a bidirectional circulator <TT>c</TT> is given. adaptor if at least a bidirectional circulator <TT>c</TT> is given.
@ -480,8 +473,7 @@ reverse( container.begin(), container.end());
\endcode \endcode
Implementation ### Implementation ###
--------------
The iterator adaptor keeps track of the number of rounds a circulator The iterator adaptor keeps track of the number of rounds a circulator
has done around the ring-like data structure (a kind of winding has done around the ring-like data structure (a kind of winding
@ -634,8 +626,7 @@ the range is empty or not.
\pre `IC` is either a circulator or an iterator type. The range [`i, j`) is valid. \pre `IC` is either a circulator or an iterator type. The range [`i, j`) is valid.
Example ### Example ###
--------------
The following function `process_all` accepts a range \f$ \left[i, The following function `process_all` accepts a range \f$ \left[i,
j\right)\f$ of an iterator or circulator `IC` and processes each j\right)\f$ of an iterator or circulator `IC` and processes each

View File

@ -18,8 +18,7 @@ To use the tags or base classes only it is sufficient to include:
\sa `is_empty_range` \sa `is_empty_range`
\sa `Circulator` \sa `Circulator`
Example ### Example ###
--------------
The above declarations can be used to distinguish between iterators The above declarations can be used to distinguish between iterators
and circulators and between different circulator categories. The and circulators and between different circulator categories. The
@ -29,8 +28,7 @@ example program illustrates both.
\cgalexample{circulator_prog3.cpp} \cgalexample{circulator_prog3.cpp}
Implementation ### Implementation ###
--------------
Since not all current compilers can eliminate the space needed for the Since not all current compilers can eliminate the space needed for the
compile time tags even when deriving from them, we implement a variant compile time tags even when deriving from them, we implement a variant

View File

@ -12,8 +12,7 @@ In this class, no attribute is enabled.
\models ::CombinatorialMapItems \models ::CombinatorialMapItems
Example ### Example ###
--------------
The following example shows the implementation of the The following example shows the implementation of the
`CGAL::Combinatorial_map_min_items` class. `CGAL::Combinatorial_map_min_items` class.

View File

@ -13,15 +13,11 @@ non void <I>i</I>-attribute.
\models ::Dart \models ::Dart
Parameters \tparam d an integer for the dimension of the dart.
--------------
`d` an integer for the dimension of the dart. \tparam CMap must be a model of the `CombinatorialMap` concept.
`CMap` must be a model of the `CombinatorialMap` concept. ###Complexity ###
Complexity
--------------
Each \f$ \beta_i\f$ link is initialized to `CMap::null_dart_handle`, and each Each \f$ \beta_i\f$ link is initialized to `CMap::null_dart_handle`, and each
attribute handle of non void <I>i</I>-attribute is initialized to `NULL` attribute handle of non void <I>i</I>-attribute is initialized to `NULL`

View File

@ -9,8 +9,7 @@ attributes. For that, it defines an inner class template named
of the `CombinatorialMap` concept. This inner class must define of the `CombinatorialMap` concept. This inner class must define
two types: `Dart` and `Attributes`. two types: `Dart` and `Attributes`.
Example ### Example ###
--------------
The following examples show two possible models of the The following examples show two possible models of the
`CombinatorialMapItems` concept: the first one for a 4D `CombinatorialMapItems` concept: the first one for a 4D

View File

@ -8,8 +8,7 @@ stores handles to the darts linked with itself by \f$ \beta_i\f$, \f$ \forall\f$
0\f$ \leq\f$<I>i</I>\f$ \leq\f$<I>d</I>. Moreover, it stores also handles to each 0\f$ \leq\f$<I>i</I>\f$ \leq\f$<I>d</I>. Moreover, it stores also handles to each
non void attribute associated with itself. non void attribute associated with itself.
Creation ### Creation ###
--------------
A dart `d0` is never constructed directly, but always created A dart `d0` is never constructed directly, but always created
within a combinatorial map `cm` by using the method within a combinatorial map `cm` by using the method

View File

@ -13,8 +13,7 @@ cyclic sequence of extreme points is cut into a linear sequence.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`ForwardIterator::value_type` and <LI>`ForwardIterator::value_type` and
@ -39,8 +38,7 @@ functions that return instances of these types:
\sa `CGAL::ch_melkman` \sa `CGAL::ch_melkman`
\sa `CGAL::convex_hull_2` \sa `CGAL::convex_hull_2`
Implementation ### Implementation ###
--------------
This function uses the algorithm of Akl and This function uses the algorithm of Akl and
Toussaint \cite at-fcha-78 that requires \f$ O(n \log n)\f$ time for \f$ n\f$ input Toussaint \cite at-fcha-78 that requires \f$ O(n \log n)\f$ time for \f$ n\f$ input

View File

@ -14,8 +14,7 @@ cyclic sequence of extreme points is cut into a linear sequence.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and <LI>`InputIterator::value_type` and
@ -40,8 +39,7 @@ functions that return instances of these types:
\sa `CGAL::ch_melkman` \sa `CGAL::ch_melkman`
\sa `CGAL::convex_hull_2` \sa `CGAL::convex_hull_2`
Implementation ### Implementation ###
--------------
This function implements the non-recursive variation of This function implements the non-recursive variation of
Eddy's algorithm \cite e-nchap-77 described in \cite b-chfsp-78. Eddy's algorithm \cite e-nchap-77 described in \cite b-chfsp-78.

View File

@ -14,8 +14,7 @@ cyclic sequence of extreme points is cut into a linear sequence.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and <LI>`InputIterator::value_type` and
@ -40,8 +39,7 @@ functions that return instances of these types:
\sa `CGAL::ch_melkman` \sa `CGAL::ch_melkman`
\sa `CGAL::convex_hull_2` \sa `CGAL::convex_hull_2`
Implementation ### Implementation ###
--------------
This function implements Eddy's algorithm This function implements Eddy's algorithm
\cite e-nchap-77, which is the two-dimensional version of the quickhull \cite e-nchap-77, which is the two-dimensional version of the quickhull

View File

@ -15,8 +15,7 @@ cyclic sequence of extreme points is cut into a linear sequence.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `InputIterator::value_type` is defined. type `InputIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and <LI>`InputIterator::value_type` and
@ -43,8 +42,7 @@ functions that return instances of these types:
\sa `CGAL::lower_hull_points_2` \sa `CGAL::lower_hull_points_2`
\sa `CGAL::upper_hull_points_2` \sa `CGAL::upper_hull_points_2`
Implementation ### Implementation ###
--------------
This function implements Andrew's variant of the Graham This function implements Andrew's variant of the Graham
scan algorithm \cite a-aeach-79 and follows the presentation of Mehlhorn scan algorithm \cite a-aeach-79 and follows the presentation of Mehlhorn
@ -74,8 +72,7 @@ by the first and last points in this sequence.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `BidirectionalIterator::value_type` is defined. type `BidirectionalIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`BidirectionalIterator::value_type` and <LI>`BidirectionalIterator::value_type` and
@ -94,15 +91,13 @@ functions that return instances of these types:
\sa `CGAL::lower_hull_points_2` \sa `CGAL::lower_hull_points_2`
\sa `CGAL::upper_hull_points_2` \sa `CGAL::upper_hull_points_2`
Implementation ### Implementation ###
--------------
The function uses Andrew's The function uses Andrew's
variant of the Graham scan algorithm \cite a-aeach-79. This algorithm variant of the Graham scan algorithm \cite a-aeach-79. This algorithm
requires \f$ O(n \log n)\f$ time in the worst case for \f$ n\f$ input points. requires \f$ O(n \log n)\f$ time in the worst case for \f$ n\f$ input points.
Example ### Example ###
--------------
In the following example `::ch_graham_andrew_scan` is used to In the following example `::ch_graham_andrew_scan` is used to
realize Anderson's variant \cite a-readc-78 of the Graham Scan realize Anderson's variant \cite a-readc-78 of the Graham Scan

View File

@ -14,8 +14,7 @@ cyclic sequence of extreme points is cut into a linear sequence.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `InputIterator::value_type` is defined. type `InputIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and <LI>`InputIterator::value_type` and
@ -40,8 +39,7 @@ functions that return instances of these types:
\sa `CGAL::ch_melkman` \sa `CGAL::ch_melkman`
\sa `CGAL::convex_hull_2` \sa `CGAL::convex_hull_2`
Implementation ### Implementation ###
--------------
This function uses the Jarvis march (gift-wrapping) This function uses the Jarvis march (gift-wrapping)
algorithm \cite j-ichfs-73. This algorithm requires \f$ O(n h)\f$ time algorithm \cite j-ichfs-73. This algorithm requires \f$ O(n h)\f$ time
@ -69,8 +67,7 @@ points from a given set of input points that line between two input points.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`ForwardIterator::value_type` and <LI>`ForwardIterator::value_type` and
@ -90,8 +87,7 @@ functions that return instances of these types:
\sa `CGAL::lower_hull_points_2` \sa `CGAL::lower_hull_points_2`
\sa `CGAL::upper_hull_points_2` \sa `CGAL::upper_hull_points_2`
Implementation ### Implementation ###
--------------
The function uses the Jarvis march (gift-wrapping) algorithm \cite j-ichfs-73. The function uses the Jarvis march (gift-wrapping) algorithm \cite j-ichfs-73.
This algorithm requires \f$ O(n h)\f$ time in the worst This algorithm requires \f$ O(n h)\f$ time in the worst

View File

@ -13,8 +13,7 @@ the resulting sequence is returned.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `InputIterator::value_type` is defined. type `InputIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and `OutputIterator::value_type` <LI>`InputIterator::value_type` and `OutputIterator::value_type`
@ -38,8 +37,7 @@ functions that return instances of these types:
\sa `CGAL::ch_melkman` \sa `CGAL::ch_melkman`
\sa `CGAL::convex_hull_2` \sa `CGAL::convex_hull_2`
Implementation ### Implementation ###
--------------
It uses an implementation of Melkman's algorithm \cite m-olcch-87. It uses an implementation of Melkman's algorithm \cite m-olcch-87.
Running time of this is linear. Running time of this is linear.

View File

@ -14,8 +14,7 @@ After execution, the value of
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
`Traits` defines a type `Traits::Less_xy_2` as described in `Traits` defines a type `Traits::Less_xy_2` as described in
the concept `ConvexHullTraits_2` and the corresponding member the concept `ConvexHullTraits_2` and the corresponding member
@ -54,8 +53,7 @@ After execution, the value of
The default traits class `Default_traits` is the kernel in which the type The default traits class `Default_traits` is the kernel in which the type
`ForwardIterator::value_type` is defined. `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
`Traits` defines the type `Traits::Less_yx_2` as specified in `Traits` defines the type `Traits::Less_yx_2` as specified in
the concept `ConvexHullTraits_2` and the corresponding member the concept `ConvexHullTraits_2` and the corresponding member
@ -96,8 +94,7 @@ holds for all iterators in the range.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
`Traits` defines the type `Traits::Less_yx_2` as specified in `Traits` defines the type `Traits::Less_yx_2` as specified in
the concept `ConvexHullTraits_2` and the corresponding member the concept `ConvexHullTraits_2` and the corresponding member
@ -140,8 +137,7 @@ After execution, the value of
\f$ \ge_{xy}\f$ `*it` hold for all iterators \f$ \ge_{xy}\f$ `*it` hold for all iterators
`it` in the range. `it` in the range.
Requirements ### Requirements ###
--------------
`Traits` contains the following subset of types from `Traits` contains the following subset of types from
the concept `ConvexHullTraits_2` and their corresponding member the concept `ConvexHullTraits_2` and their corresponding member
@ -190,8 +186,7 @@ After execution, the value of
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
`Traits` defines the type `Traits::Less_yx_2` as specified in `Traits` defines the type `Traits::Less_yx_2` as specified in
the concept `ConvexHullTraits_2` and the corresponding member the concept `ConvexHullTraits_2` and the corresponding member
@ -232,8 +227,7 @@ holds for all iterators in the range.
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
`Traits` defines the type `Traits::Less_xy_2` as specified in `Traits` defines the type `Traits::Less_xy_2` as specified in
the concept `ConvexHullTraits_2` and the corresponding member the concept `ConvexHullTraits_2` and the corresponding member
@ -270,8 +264,7 @@ After execution, the value of
`w` is an iterator in the range such that `*w` \f$ \le_{xy}\f$ `w` is an iterator in the range such that `*w` \f$ \le_{xy}\f$
`*it` for all iterators `it` in the range. `*it` for all iterators `it` in the range.
Requirements ### Requirements ###
--------------
`Traits` defines the type `Traits::Less_xy_2` as specified in `Traits` defines the type `Traits::Less_xy_2` as specified in
the concept `ConvexHullTraits_2` and the corresponding member the concept `ConvexHullTraits_2` and the corresponding member

View File

@ -17,8 +17,7 @@ cyclic sequence of extreme points is cut into a linear sequence.
The default traits class `Default_traits` is the kernel in which The default traits class `Default_traits` is the kernel in which
the type `InputIterator::value_type` is defined. the type `InputIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and `OutputIterator::value_type` <LI>`InputIterator::value_type` and `OutputIterator::value_type`
@ -43,8 +42,7 @@ functions that return instances of these types:
\sa `CGAL::ch_jarvis` \sa `CGAL::ch_jarvis`
\sa `CGAL::ch_melkman` \sa `CGAL::ch_melkman`
Implementation ### Implementation ###
--------------
One of two algorithms is used, One of two algorithms is used,
depending on the type of iterator used to specify the input points. For depending on the type of iterator used to specify the input points. For
@ -91,8 +89,7 @@ The different treatment by `::upper_hull_points_2` of the case that
all points are equal ensures that concatenation of lower and upper hull all points are equal ensures that concatenation of lower and upper hull
points gives the sequence of extreme points. points gives the sequence of extreme points.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and `OutputIterator::value_type` <LI>`InputIterator::value_type` and `OutputIterator::value_type`
@ -113,8 +110,7 @@ functions that return instances of these types:
\sa `CGAL::ch_graham_andrew_scan` \sa `CGAL::ch_graham_andrew_scan`
\sa `CGAL::upper_hull_points_2` \sa `CGAL::upper_hull_points_2`
Implementation ### Implementation ###
--------------
This function uses Andrew's variant of Graham's scan algorithm This function uses Andrew's variant of Graham's scan algorithm
\cite a-aeach-79, \cite m-mdscg-84. The algorithm has worst-case running time \cite a-aeach-79, \cite m-mdscg-84. The algorithm has worst-case running time
@ -157,8 +153,7 @@ The different treatment by `::lower_hull_points_2` of the case that
all points are equal ensures that concatenation of lower and upper hull all points are equal ensures that concatenation of lower and upper hull
points gives the sequence of extreme points. points gives the sequence of extreme points.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`InputIterator::value_type` and `OutputIterator::value_type` <LI>`InputIterator::value_type` and `OutputIterator::value_type`
@ -179,8 +174,7 @@ functions that return instances of these types:
\sa `CGAL::ch_graham_andrew_scan` \sa `CGAL::ch_graham_andrew_scan`
\sa `CGAL::lower_hull_points_2` \sa `CGAL::lower_hull_points_2`
Implementation ### Implementation ###
--------------
This function uses Andrew's This function uses Andrew's
variant of Graham's scan algorithm \cite a-aeach-79, \cite m-mdscg-84. The algorithm variant of Graham's scan algorithm \cite a-aeach-79, \cite m-mdscg-84. The algorithm

View File

@ -16,8 +16,7 @@ if it consists of only extreme points
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
`Traits` contains the following subset of types from `Traits` contains the following subset of types from
the concept `ConvexHullTraits_2` and their corresponding member the concept `ConvexHullTraits_2` and their corresponding member
@ -31,8 +30,7 @@ functions that return instances of these types:
\sa `CGAL::is_cw_strongly_convex_2` \sa `CGAL::is_cw_strongly_convex_2`
\sa `CGAL::is_strongly_convex_3` \sa `CGAL::is_strongly_convex_3`
Implementation ### Implementation ###
--------------
The algorithm requires \f$ O(n)\f$ time for a set of \f$ n\f$ input points. The algorithm requires \f$ O(n)\f$ time for a set of \f$ n\f$ input points.
@ -67,8 +65,7 @@ if it consists of only extreme points
The default traits class `Default_traits` is the kernel in which the The default traits class `Default_traits` is the kernel in which the
type `ForwardIterator::value_type` is defined. type `ForwardIterator::value_type` is defined.
Requirements ### Requirements ###
--------------
`Traits` contains the following subset of types from `Traits` contains the following subset of types from
the concept `ConvexHullTraits_2` and their corresponding member the concept `ConvexHullTraits_2` and their corresponding member
@ -82,8 +79,7 @@ functions that return instances of these types:
\sa `CGAL::is_ccw_strongly_convex_2` \sa `CGAL::is_ccw_strongly_convex_2`
\sa `CGAL::is_strongly_convex_3` \sa `CGAL::is_strongly_convex_3`
Implementation ### Implementation ###
--------------
The algorithm requires \f$ O(n)\f$ time for a set of \f$ n\f$ input points. The algorithm requires \f$ O(n)\f$ time for a set of \f$ n\f$ input points.

View File

@ -17,8 +17,7 @@ are available. The first can be used when it is known that the result
will be a polyhedron and the second when a degenerate hull will be a polyhedron and the second when a degenerate hull
may also be possible. may also be possible.
Requirements ### Requirements ###
--------------
Both functions require the following: Both functions require the following:
<OL> <OL>
@ -50,14 +49,12 @@ then the default traits class of `::convex_hull_3` is `Convex_hull_traits_3<R>`,
\sa `CGAL::ch_eddy` \sa `CGAL::ch_eddy`
\sa `CGAL::convex_hull_2` \sa `CGAL::convex_hull_2`
Implementation ### Implementation ###
--------------
The algorithm implemented by these functions is the quickhull algorithm of The algorithm implemented by these functions is the quickhull algorithm of
Barnard <I>et al.</I> \cite bdh-qach-96. Barnard <I>et al.</I> \cite bdh-qach-96.
Example ### Example ###
--------------
The following program computes the convex hull of a set of 250 random The following program computes the convex hull of a set of 250 random
points chosen from a sphere of radius 100. It then determines if the resulting points chosen from a sphere of radius 100. It then determines if the resulting

View File

@ -15,8 +15,7 @@ purposes. When an efficient incremental implementation is needed,
using `CGAL::Delaunay_triangulation_3` together with using `CGAL::Delaunay_triangulation_3` together with
`CGAL::convex_hull_3_to_polyhedron_3` is highly recommended. `CGAL::convex_hull_3_to_polyhedron_3` is highly recommended.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Polyhedron` must provide a type `Polyhedron::Traits` <LI>`Polyhedron` must provide a type `Polyhedron::Traits`
@ -34,8 +33,7 @@ the representation class `R` required by
\sa `CGAL::convex_hull_3` \sa `CGAL::convex_hull_3`
\sa `CGAL::convex_hull_2` \sa `CGAL::convex_hull_2`
Implementation ### Implementation ###
--------------
This function uses the \f$ d\f$-dimensional convex hull incremental construction This function uses the \f$ d\f$-dimensional convex hull incremental construction
algorithm \cite cms-frric-93 algorithm \cite cms-frric-93
@ -44,8 +42,7 @@ worst case and \f$ O(n \log n)\f$ expected time.
\sa `CGAL::Convex_hull_d<R>` \sa `CGAL::Convex_hull_d<R>`
Example ### Example ###
--------------
The following example computes the convex hull of a set of 250 random The following example computes the convex hull of a set of 250 random
points chosen uniformly in a sphere of radius 100. points chosen uniformly in a sphere of radius 100.

View File

@ -11,8 +11,7 @@ vertices of the convex hull).
The default traits class is the kernel in which the type The default traits class is the kernel in which the type
`Polyhedron_3::Point_3` is defined. `Polyhedron_3::Point_3` is defined.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Polyhedron_3::Point_3` is equivalent to `Traits::Point_3`. <LI>`Polyhedron_3::Point_3` is equivalent to `Traits::Point_3`.
@ -37,8 +36,7 @@ the facet type must be `ConvexHullPolyhedronFacet_3`.
\sa `CGAL::is_ccw_strongly_convex_2` \sa `CGAL::is_ccw_strongly_convex_2`
\sa `CGAL::is_cw_strongly_convex_2` \sa `CGAL::is_cw_strongly_convex_2`
Implementation ### Implementation ###
--------------
This function implements the tests described in \cite mnssssu-cgpvg-96 to This function implements the tests described in \cite mnssssu-cgpvg-96 to
determine convexity and requires \f$ O(e + f)\f$ time for a polyhedron with determine convexity and requires \f$ O(e + f)\f$ time for a polyhedron with

View File

@ -44,13 +44,11 @@ C.index_of_vertex_in_opposite_facet(f,i)`. Then `f =
C.opposite_facet(g,j)` and `i = C.opposite_facet(g,j)` and `i =
C.index_of_vertex_in_opposite_facet(g,j)`. C.index_of_vertex_in_opposite_facet(g,j)`.
Requirements ### Requirements ###
--------------
`R` is a model of the concept `ConvexHullTraits_d`. `R` is a model of the concept `ConvexHullTraits_d`.
Iteration Statements ### Iteration Statements ###
--------------
<B>forall_ch_vertices</B>(\f$ v,C\f$) \f$ \{\f$ the vertices of \f$ C\f$ are <B>forall_ch_vertices</B>(\f$ v,C\f$) \f$ \{\f$ the vertices of \f$ C\f$ are
successively assigned to \f$ v\f$ \f$ \}\f$ successively assigned to \f$ v\f$ \f$ \}\f$
@ -61,8 +59,8 @@ successively assigned to \f$ s\f$ \f$ \}\f$
<B>forall_ch_facets</B>(\f$ f,C\f$) \f$ \{\f$ the facets of \f$ C\f$ are <B>forall_ch_facets</B>(\f$ f,C\f$) \f$ \{\f$ the facets of \f$ C\f$ are
successively assigned to \f$ f\f$ \f$ \}\f$ successively assigned to \f$ f\f$ \f$ \}\f$
Implementation ### Implementation ###
--------------
The implementation of type `Convex_hull_d` is based on The implementation of type `Convex_hull_d` is based on
\cite cms-frric-93 and \cite bms-dgc-94. The details \cite cms-frric-93 and \cite bms-dgc-94. The details
of the implementation can be found in the implementation document of the implementation can be found in the implementation document

View File

@ -53,16 +53,14 @@ belongs to the nearest site triangulation and the test
`DT.simplex_of_furthest(dt_simplex s)` returns true if `s` `DT.simplex_of_furthest(dt_simplex s)` returns true if `s`
belongs to the furthest site triangulation. belongs to the furthest site triangulation.
Requirements ### Requirements ###
--------------
`R` is a model of the concept `DelaunayTraits_d` `R` is a model of the concept `DelaunayTraits_d`
c. c.
`Lifted_R` is a model of the concept `DelaunayLiftedTraits_d` `Lifted_R` is a model of the concept `DelaunayLiftedTraits_d`
c. c.
Implementation ### Implementation ###
--------------
The data type is derived from `Convex_hull_d` via The data type is derived from `Convex_hull_d` via
the lifting map. For a point \f$ x\f$ in \f$ d\f$-dimensional space let the lifting map. For a point \f$ x\f$ in \f$ d\f$-dimensional space let
@ -78,8 +76,7 @@ The space requirement is the same as for convex hulls. The time
requirement for an insert is the time to insert the lifted point requirement for an insert is the time to insert the lifted point
into the convex hull of the lifted points. into the convex hull of the lifted points.
Example ### Example ###
--------------
The abstract data type `Delaunay_d` has a default instantiation by The abstract data type `Delaunay_d` has a default instantiation by
means of the \f$ d\f$-dimensional geometric kernel. means of the \f$ d\f$-dimensional geometric kernel.
@ -104,8 +101,7 @@ Vertex_handle v1 = T.insert(Point_d(2,11));
} }
\endcode \endcode
Traits requirements ### Traits Requirements ###
--------------
`Delaunay_d< R, Lifted_R >` requires the following types from the kernel traits `Lifted_R`: `Delaunay_d< R, Lifted_R >` requires the following types from the kernel traits `Lifted_R`:

View File

@ -21,8 +21,7 @@ It can be very useful, e.g. for debugging, to reproduce a sequence of
random numbers. This can be done by either initialising with a fixed random numbers. This can be done by either initialising with a fixed
seed, or by using the state functions as described below. seed, or by using the state functions as described below.
Implementation ### Implementation ###
--------------
We use the boost random library function `boost::rand48` to generate the random We use the boost random library function `boost::rand48` to generate the random
numbers. numbers.

View File

@ -12,6 +12,7 @@ The function `perturb_points_2` perturbs each point in a given range of points b
a random amount. a random amount.
###Requires ### ###Requires ###
- `Creator` must be a function object accepting two - `Creator` must be a function object accepting two
`double` values \f$ x\f$ and \f$ y\f$ and returning an initialized point `double` values \f$ x\f$ and \f$ y\f$ and returning an initialized point
`(x,y)` of type `P`. `(x,y)` of type `P`.

View File

@ -14,8 +14,7 @@ within the hypercube \f$ [-a,a]^{dim}\f$.
\returns the value of \f$ o\f$ after inserting the \f$ n\f$ points. \returns the value of \f$ o\f$ after inserting the \f$ n\f$ points.
Requirements ### Requirements ###
--------------
<UL> <UL>
<LI>`Creator` must be a functor accepting an integer (the dimension) <LI>`Creator` must be a functor accepting an integer (the dimension)

View File

@ -13,8 +13,7 @@ The function `random_convex_set_2` computes a random convex planar
point set of given size where the points are drawn from a specific point set of given size where the points are drawn from a specific
domain. domain.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`PointGenerator` is a model of the concept PointGenerator <LI>`PointGenerator` is a model of the concept PointGenerator
@ -33,16 +32,14 @@ The default traits class `Default_traits` is
\sa `CGAL::Random_points_in_square_2<Point_2, Creator>` \sa `CGAL::Random_points_in_square_2<Point_2, Creator>`
\sa `CGAL::Random_points_in_disc_2<Point_2, Creator>` \sa `CGAL::Random_points_in_disc_2<Point_2, Creator>`
Implementation ### Implementation ###
--------------
The implementation uses the centroid method The implementation uses the centroid method
described in \cite cgal:s-zkm-96 and has a worst case running time of \f$ O(r described in \cite cgal:s-zkm-96 and has a worst case running time of \f$ O(r
\cdot n + n \cdot \log n)\f$, where \f$ r\f$ is the time needed by `pg` \cdot n + n \cdot \log n)\f$, where \f$ r\f$ is the time needed by `pg`
to generate a random point. to generate a random point.
Example ### Example ###
--------------
The following program displays a random convex 500-gon where the The following program displays a random convex 500-gon where the
points are drawn uniformly from the unit square centered at the points are drawn uniformly from the unit square centered at the

View File

@ -15,8 +15,7 @@ points has a non-zero probability of being constructed, some polygons may
have higher probabilities than others. The overall distribution of the have higher probabilities than others. The overall distribution of the
generated polygons is not known since it depends on the generated points. generated polygons is not known since it depends on the generated points.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Traits` is a model of the concept RandomPolygonTraits_2 <LI>`Traits` is a model of the concept RandomPolygonTraits_2
@ -30,8 +29,7 @@ The default traits class `Default_traits` is the kernel in which
\sa `CGAL::Random_points_in_disc_2<Point_2, Creator>` \sa `CGAL::Random_points_in_disc_2<Point_2, Creator>`
\sa `CGAL::Random_points_in_square_2<Point_2, Creator>` \sa `CGAL::Random_points_in_square_2<Point_2, Creator>`
Implementation ### Implementation ###
--------------
The implementation is based on the method of eliminating self-intersections in The implementation is based on the method of eliminating self-intersections in
a polygon by using so-called "2-opt" moves. Such a move eliminates an a polygon by using so-called "2-opt" moves. Such a move eliminates an
@ -42,8 +40,7 @@ Intersecting edges are detected using a simple sweep through the vertices
and then one intersection is chosen at random to eliminate after each sweep. and then one intersection is chosen at random to eliminate after each sweep.
The worse-case running time is therefore \f$ O(n^4 \log n)\f$. The worse-case running time is therefore \f$ O(n^4 \log n)\f$.
Example ### Example ###
--------------
The following program displays a random simple polygon with up to 100 The following program displays a random simple polygon with up to 100
vertices, where the vertex coordinates are drawn uniformly from the vertices, where the vertex coordinates are drawn uniformly from the

View File

@ -7,8 +7,7 @@ class used by the function `random_polygon_2`.
\hasModel \cgal kernels. \hasModel \cgal kernels.
Operations ### Operations ###
--------------
The following two member functions returning instances of the above predicate The following two member functions returning instances of the above predicate
object types are required. object types are required.

View File

@ -5,11 +5,7 @@ namespace Qt {
An object of type `CircularArcGraphicsItem` is a graphics item that encapsulates a circular arc. An object of type `CircularArcGraphicsItem` is a graphics item that encapsulates a circular arc.
Parameters \tparam CK must be a \cgal `CircularKernel`.
--------------
The template parameter of `CircularArcGraphicsItem` must be a
\cgal `CircularKernel`.
*/ */
template< typename CK > template< typename CK >

View File

@ -5,11 +5,8 @@ namespace Qt {
An object of type `ConstrainedTriangulationGraphicsItem` is a graphics item that encapsulates a constrained triangulation. An object of type `ConstrainedTriangulationGraphicsItem` is a graphics item that encapsulates a constrained triangulation.
Parameters
--------------
The template parameter of `ConstrainedTriangulationGraphicsItem` must be a \tparam CT must be a \cgal 2D constrained triangulation class.
\cgal 2D constrained triangulation class.
*/ */
template< typename CT > template< typename CT >

View File

@ -9,10 +9,9 @@ vertex is inserted every time the left mouse button is released.
The `Del` key removes the last entered point. The `Esc` The `Del` key removes the last entered point. The `Esc`
key removes all entered points. key removes all entered points.
Parameters
--------------
The template parameter of `GraphicsViewCircleInput` must be a \cgal `Kernel`.
\tparam K must be a \cgal `Kernel`.
*/ */
template< typename K > template< typename K >

View File

@ -8,10 +8,7 @@ vertex is inserted every time the left mouse button is released.
The `Del` key removes the last entered point. The `Esc` The `Del` key removes the last entered point. The `Esc`
key removes all entered points. key removes all entered points.
Parameters \tparam K must be a \cgal `CircularKernel`.
--------------
The template parameter of `GraphicsViewCircularArcInput` must be a \cgal `CircularKernel`.
*/ */
template< typename K > template< typename K >

View File

@ -5,10 +5,7 @@ namespace Qt {
An object of type `GraphicsViewIsoRectangleInput` creates an axis parallel rectangle. An object of type `GraphicsViewIsoRectangleInput` creates an axis parallel rectangle.
Parameters \tparam K must be a \cgal `Kernel`.
--------------
The template parameter of `GraphicsViewIsoRectangleInput` must be a \cgal `Kernel`.
*/ */
template< typename K > template< typename K >

View File

@ -18,10 +18,7 @@ For polylines the segment between the last entered point and the current
mouse position is only drawn correctly when mouse tracking is enabled mouse position is only drawn correctly when mouse tracking is enabled
in the graphics view. The same holds for closed polygons. in the graphics view. The same holds for closed polygons.
Parameters \tparam K must be a \cgal `Kernel`.
--------------
The template parameter of `GraphicsViewPolylineInput<K>` must be a \cgal `Kernel`.
*/ */
template< typename K > template< typename K >

View File

@ -5,11 +5,7 @@ namespace Qt {
An object of type `TriangulationGraphicsItem` is a graphics item that encapsulates a 2D triangulation. An object of type `TriangulationGraphicsItem` is a graphics item that encapsulates a 2D triangulation.
Parameters \tparam K must be a \cgal 2D triangulation class.
--------------
The template parameter of `TriangulationGraphicsItem` must be a
\cgal 2D triangulation class.
*/ */
template< typename T > template< typename T >

View File

@ -7,11 +7,7 @@ An object of type `VoronoiGraphicsItem` is a graphics item that
encapsulates a Delaunay triangulation in order to draw its dual, the encapsulates a Delaunay triangulation in order to draw its dual, the
Voronoi diagram. Voronoi diagram.
Parameters \tparam DT must be a \cgal 2D Delaunay triangulation class.
--------------
The template parameter `DT` of `VoronoiGraphicsItem` must be a
\cgal 2D Delaunay triangulation class.
*/ */
template< typename DT > template< typename DT >

View File

@ -24,8 +24,7 @@ actions. If a particular feature is not supported nothing is done.
Note that for example the creation of new halfedges is mandatory for Note that for example the creation of new halfedges is mandatory for
all halfedge data structures and will not appear here again. all halfedge data structures and will not appear here again.
Example ### Example ###
--------------
The following program fragment illustrates the implementation of a The following program fragment illustrates the implementation of a
`is_valid()` member function for a simplified polyhedron class. `is_valid()` member function for a simplified polyhedron class.

View File

@ -26,8 +26,7 @@ all halfedge data structures and will not appear here again.
\sa `CGAL::HalfedgeDS_items_decorator<HDS>` \sa `CGAL::HalfedgeDS_items_decorator<HDS>`
\sa `CGAL::HalfedgeDS_const_decorator<HDS>` \sa `CGAL::HalfedgeDS_const_decorator<HDS>`
Example ### Example ###
--------------
The following program fragment illustrates the implementation of the The following program fragment illustrates the implementation of the
Euler operator `split_vertex()` for a simplified polyhedron class. Euler operator `split_vertex()` for a simplified polyhedron class.
@ -117,10 +116,7 @@ Halfedge_handle create_segment();
removes the first vertex if vertices are supported. removes the first vertex if vertices are supported.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$
`CGAL::Tag_true`.
*/ */
void vertices_pop_front(); void vertices_pop_front();
@ -134,10 +130,7 @@ void vertices_pop_back();
removes the vertex `v` if vertices are supported. removes the vertex `v` if vertices are supported.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$
`CGAL::Tag_true`.
*/ */
void vertices_erase( Vertex_handle v); void vertices_erase( Vertex_handle v);
@ -145,9 +138,7 @@ void vertices_erase( Vertex_handle v);
removes the range `[first,last)` if vertices removes the range `[first,last)` if vertices
are supported. are supported.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
*/ */
void vertices_erase( Vertex_handle first, Vertex_handle last); void vertices_erase( Vertex_handle first, Vertex_handle last);
@ -155,9 +146,7 @@ void vertices_erase( Vertex_handle first, Vertex_handle last);
removes the first face if faces are supported. removes the first face if faces are supported.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
*/ */
void faces_pop_front(); void faces_pop_front();
@ -171,9 +160,7 @@ void faces_pop_back();
removes the face `f` if faces are supported. removes the face `f` if faces are supported.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
*/ */
void faces_erase( Face_handle f); void faces_erase( Face_handle f);
@ -181,9 +168,7 @@ void faces_erase( Face_handle f);
removes the range `[first,last)` if faces are removes the range `[first,last)` if faces are
supported. supported.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
*/ */
void faces_erase( Face_handle first, Face_handle last); void faces_erase( Face_handle first, Face_handle last);
@ -196,9 +181,7 @@ creates isolated vertices they get removed as well. See
`make_hole(h)` for a more specialized variant. `make_hole(h)` for a more specialized variant.
\pre `h->is_border() == false`. \pre `h->is_border() == false`.
Requirement \requires If faces are supported, `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
If faces are supported, `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
*/ */
void erase_face( Halfedge_handle h); void erase_face( Halfedge_handle h);
@ -206,9 +189,7 @@ void erase_face( Halfedge_handle h);
removes the vertices, halfedges, and faces that belong to the removes the vertices, halfedges, and faces that belong to the
connected component of `h`. \pre For all halfedges `g` in the connected component `g.next() != Halfedge_handle()`. connected component of `h`. \pre For all halfedges `g` in the connected component `g.next() != Halfedge_handle()`.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
*/ */
void erase_connected_component( Halfedge_handle h); void erase_connected_component( Halfedge_handle h);
@ -217,9 +198,7 @@ Erases the small connected components and the isolated vertices.
Keep `nb_components_to_keep` largest connected components. Keep `nb_components_to_keep` largest connected components.
Returns the number of connected components erased (ignoring isolated vertices). Returns the number of connected components erased (ignoring isolated vertices).
Requirement \requires supports vertices, halfedges, and removal operation. */
--------------
supports vertices, halfedges, and removal operation. */
unsigned int keep_largest_connected_components(unsigned int nb_components_to_keep); unsigned int keep_largest_connected_components(unsigned int nb_components_to_keep);
/// @} /// @}
@ -231,9 +210,7 @@ unsigned int keep_largest_connected_components(unsigned int nb_components_to_kee
removes the face incident to `h` from `hds` and creates a hole. removes the face incident to `h` from `hds` and creates a hole.
\pre `h != Halfedge_handle()` and `!(h->is_border())`. \pre `h != Halfedge_handle()` and `!(h->is_border())`.
Requirement \requires If faces are supported, `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
If faces are supported, `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
*/ */
void make_hole( Halfedge_handle h); void make_hole( Halfedge_handle h);
@ -317,10 +294,7 @@ holes. Returns the predecessor of `h` around the face. The invariant
the data structure unchanged. The time is proportional to the size the data structure unchanged. The time is proportional to the size
of the face removed and the time to compute `h->prev()`. of the face removed and the time to compute `h->prev()`.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
\image latex euler_hds \image latex euler_hds
\image html euler_face.gif \image html euler_face.gif
@ -350,10 +324,7 @@ and keeps the polyhedron unchanged.
The time is proportional to the degree of the vertex removed and The time is proportional to the degree of the vertex removed and
the time to compute `h->prev()` and `h->opposite()->prev()`. the time to compute `h->prev()` and `h->opposite()->prev()`.
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
\image html euler_vertex.gif \image html euler_vertex.gif
@ -387,10 +358,7 @@ create_center_vertex(h))` holds if `h` is not a border halfedge.
The time is proportional to the sum of the size of all incident faces. The time is proportional to the sum of the size of all incident faces.
\pre None of the incident faces of `g->vertex()` is a hole. There are at least two distinct faces incident to the faces that are incident to `g->vertex()`. (This prevents the operation from collapsing a volume into two faces glued together with opposite orientations, such as would happen with any vertex of a tetrahedron.) \pre None of the incident faces of `g->vertex()` is a hole. There are at least two distinct faces incident to the faces that are incident to `g->vertex()`. (This prevents the operation from collapsing a volume into two faces glued together with opposite orientations, such as would happen with any vertex of a tetrahedron.)
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
\image latex euler_center \image latex euler_center
\image html euler_center.gif \image html euler_center.gif
@ -425,10 +393,7 @@ by `g` gets removed. Both faces may be holes. The invariant
data structure unchanged. data structure unchanged.
\pre The faces denoted by `h` and `g` are different and have equal degree (i.e., number of edges). \pre The faces denoted by `h` and `g` are different and have equal degree (i.e., number of edges).
Requirement \requires `Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
--------------
`Supports_removal` \f$ \equiv\f$ `CGAL::Tag_true`.
\image latex euler_loop \image latex euler_loop
\image html euler_loop.gif \image html euler_loop.gif

View File

@ -21,8 +21,7 @@ removal.
\sa `CGAL::HalfedgeDS_decorator<HDS>` \sa `CGAL::HalfedgeDS_decorator<HDS>`
\sa `CGAL::HalfedgeDS_const_decorator<HDS>` \sa `CGAL::HalfedgeDS_const_decorator<HDS>`
Implementation ### Implementation ###
--------------
Currently, `HalfedgeDS_default` is derived from `CGAL::HalfedgeDS_list<Traits>`. Currently, `HalfedgeDS_default` is derived from `CGAL::HalfedgeDS_list<Traits>`.
The copy constructor and the assignment operator need \f$ O(n)\f$ time with The copy constructor and the assignment operator need \f$ O(n)\f$ time with

View File

@ -19,8 +19,7 @@ is the template argument of the corresponding `HalfedgeDS`.
\sa `CGAL::HalfedgeDS_halfedge_base<Refs>` \sa `CGAL::HalfedgeDS_halfedge_base<Refs>`
\sa `CGAL::HalfedgeDS_face_base<Refs>` \sa `CGAL::HalfedgeDS_face_base<Refs>`
Example ### Example ###
--------------
The following example shows the canonical implementation of the The following example shows the canonical implementation of the
`HalfedgeDS_items_2` class. It uses the base classes for the item types that `HalfedgeDS_items_2` class. It uses the base classes for the item types that

View File

@ -26,8 +26,7 @@ all halfedge data structures and will not appear here again.
\sa `CGAL::HalfedgeDS_decorator<HDS>` \sa `CGAL::HalfedgeDS_decorator<HDS>`
\sa `CGAL::HalfedgeDS_const_decorator<HDS>` \sa `CGAL::HalfedgeDS_const_decorator<HDS>`
Example ### Example ###
--------------
The following program fragment illustrates how a refined halfedge The following program fragment illustrates how a refined halfedge
class for a polyhedron can make use of the `find_prev()` member class for a polyhedron can make use of the `find_prev()` member

View File

@ -17,8 +17,7 @@ iterators that supports removal.
\sa `CGAL::HalfedgeDS_decorator<HDS>` \sa `CGAL::HalfedgeDS_decorator<HDS>`
\sa `CGAL::HalfedgeDS_const_decorator<HDS>` \sa `CGAL::HalfedgeDS_const_decorator<HDS>`
Implementation ### Implementation ###
--------------
`HalfedgeDS_list` uses internally the `CGAL::In_place_list` container class. `HalfedgeDS_list` uses internally the `CGAL::In_place_list` container class.
The copy constructor and the assignment operator need \f$ O(n)\f$ time with The copy constructor and the assignment operator need \f$ O(n)\f$ time with

View File

@ -19,8 +19,7 @@ halfedges.
\sa `CGAL::HalfedgeDS_halfedge_min_base<Refs>` \sa `CGAL::HalfedgeDS_halfedge_min_base<Refs>`
\sa `CGAL::HalfedgeDS_face_min_base<Refs>` \sa `CGAL::HalfedgeDS_face_min_base<Refs>`
Example ### Example ###
--------------
The following example shows the canonical implementation of the The following example shows the canonical implementation of the
`CGAL::HalfedgeDS_min_items` class. It uses the base classes for the `CGAL::HalfedgeDS_min_items` class. It uses the base classes for the

View File

@ -17,8 +17,7 @@ access iterators that does not support removal.
\sa `CGAL::HalfedgeDS_decorator<HDS>` \sa `CGAL::HalfedgeDS_decorator<HDS>`
\sa `CGAL::HalfedgeDS_const_decorator<HDS>` \sa `CGAL::HalfedgeDS_const_decorator<HDS>`
Implementation ### Implementation ###
--------------
`HalfedgeDS_vector` uses internally the \stl `std::vector` container `HalfedgeDS_vector` uses internally the \stl `std::vector` container
class. We require that we can create a `std::vector::iterator` class. We require that we can create a `std::vector::iterator`

View File

@ -48,8 +48,7 @@ dangling handles), it must be called explicitly in advance for a
Classes built on top of a `HalfedgeDS` are advised to call the Classes built on top of a `HalfedgeDS` are advised to call the
`reserve()` member function before creating new items. `reserve()` member function before creating new items.
Parameters ### Parameters ###
--------------
A `HalfedgeDS` is a class template and will be used as argument for A `HalfedgeDS` is a class template and will be used as argument for
other class templates, for example `CGAL::Polyhedron_3`. The other class templates, for example `CGAL::Polyhedron_3`. The

View File

@ -30,8 +30,7 @@ page \ref HalfedgeDSFace respectively.
\sa `CGAL::HalfedgeDS_halfedge_base<Refs>` \sa `CGAL::HalfedgeDS_halfedge_base<Refs>`
\sa `CGAL::HalfedgeDS_face_base<Refs>` \sa `CGAL::HalfedgeDS_face_base<Refs>`
Example ### Example ###
--------------
The following example shows the canonical implementation of the The following example shows the canonical implementation of the
`CGAL::HalfedgeDS_min_items` class. It uses the base classes for the `CGAL::HalfedgeDS_min_items` class. It uses the base classes for the

View File

@ -13,8 +13,7 @@ whether the retrieval was successful.
This class can be used to provide the values and gradients of the This class can be used to provide the values and gradients of the
interpolation functions. interpolation functions.
Parameters ### Parameters ###
--------------
The class The class
`Data_access` has the container type `Map` as template parameter. `Data_access` has the container type `Map` as template parameter.
@ -69,15 +68,13 @@ computed by Farin's interpolant \cite f-sodt-90.
The function `farin_c1_interpolation` interpolates the function values and the The function `farin_c1_interpolation` interpolates the function values and the
gradients that are provided by functors using the method described in \cite f-sodt-90. gradients that are provided by functors using the method described in \cite f-sodt-90.
Parameters ### Parameters ###
--------------
`RandomAccessIterator::value_type` is a pair `RandomAccessIterator::value_type` is a pair
associating a point to a (non-normalized) barycentric coordinate. See associating a point to a (non-normalized) barycentric coordinate. See
`CGALL::sibson_c1_interpolation` for the other parameters. `CGALL::sibson_c1_interpolation` for the other parameters.
Requirements ### Requirements ###
--------------
Same requirements as for `sibson_c1_interpolation` only the Same requirements as for `sibson_c1_interpolation` only the
iterator must provide random access and `Traits::FT` does not need iterator must provide random access and `Traits::FT` does not need
@ -121,8 +118,7 @@ corresponding to each point of the point/coordinate pairs in the
range \f$ \left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$. range \f$ \left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$.
\pre `norm` \f$ \neq0\f$. `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range \f$ \left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$. \pre `norm` \f$ \neq0\f$. `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range \f$ \left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`ForwardIterator::value_type` is a pair of <LI>`ForwardIterator::value_type` is a pair of
@ -170,13 +166,11 @@ pairs in the range \f$ \left[\right.\f$ `first`,
`beyond`\f$ \left.\right)\f$. See also `beyond`\f$ \left.\right)\f$. See also
`sibson_c1_interpolation`. \pre `norm` \f$ \neq0\f$ `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range \f$ \left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$. `sibson_c1_interpolation`. \pre `norm` \f$ \neq0\f$ `function_value(p).second == true` for all points `p` of the point/coordinate pairs in the range \f$ \left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$.
Parameters ### Parameters ###
--------------
See `sibson_c1_interpolation`. See `sibson_c1_interpolation`.
Requirements ### Requirements ###
--------------
Same requirements as for Same requirements as for
`sibson_c1_interpolation` only that `Traits::FT` does not need `sibson_c1_interpolation` only that `Traits::FT` does not need
@ -221,8 +215,7 @@ interpolated function value as first and `true` as second value. \pre
`p` of the point/coordinate pairs in the range \f$\left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$. `p` of the point/coordinate pairs in the range \f$\left[\right.\f$`first`, `beyond`\f$ \left.\right)\f$.
Parameters ### Parameters ###
--------------
The template parameter `Traits` is to be The template parameter `Traits` is to be
instantiated with a model of `InterpolationTraits`. instantiated with a model of `InterpolationTraits`.
@ -235,8 +228,7 @@ coordinates for the query point `p`. The functor
function given a point. `function_gradient` allows to access the function given a point. `function_gradient` allows to access the
function gradient given a point. function gradient given a point.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Traits` is a model of the concept <LI>`Traits` is a model of the concept

View File

@ -9,8 +9,7 @@ called Sibson's coordinates, for \f$ 2D\f$ points provided a two-dimensional
triangulation and a query point in the convex hull of the vertices triangulation and a query point in the convex hull of the vertices
of the triangulation. of the triangulation.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Dt` are equivalent to the class <LI>`Dt` are equivalent to the class
@ -31,8 +30,7 @@ the traits class of the `polygon_area_2` function.
associating a point and its natural neighbor coordinate. associating a point and its natural neighbor coordinate.
</OL> </OL>
Implementation ### Implementation ###
--------------
This function computes the area of the sub-cells This function computes the area of the sub-cells
stolen from the Voronoi cells of the points in `dt` when inserting stolen from the Voronoi cells of the points in `dt` when inserting

View File

@ -10,8 +10,7 @@ two-dimensional regular triangulation and a (weighted) query point
inside the convex hull of the vertices of the triangulation. We call these inside the convex hull of the vertices of the triangulation. We call these
coordinates regular neighbor coordinates. coordinates regular neighbor coordinates.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Rt` are equivalent to the class <LI>`Rt` are equivalent to the class
@ -27,8 +26,7 @@ meet the requirements for the traits class of the
associating a point and its regular neighbor coordinate. associating a point and its regular neighbor coordinate.
</OL> </OL>
Implementation ### Implementation ###
--------------
This function computes the areas stolen from the This function computes the areas stolen from the
Voronoi cells of points in `rt` by the insertion of `p`. The Voronoi cells of points in `rt` by the insertion of `p`. The

View File

@ -12,8 +12,7 @@ gradient for all data points that lie inside the convex hull of the
data points. One function exists for each type of natural neighbor data points. One function exists for each type of natural neighbor
coordinates. coordinates.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`ForwardIterator::value_type` is a pair of point/coordinate <LI>`ForwardIterator::value_type` is a pair of point/coordinate
@ -39,8 +38,7 @@ provide a multiplication and addition operation with the type
\sa CGAL::regular_neighbor_coordinates_2 \sa CGAL::regular_neighbor_coordinates_2
\sa CGAL::surface_neighbor_coordinates_3 \sa CGAL::surface_neighbor_coordinates_3
Implementation ### Implementation ###
--------------
This function implements Sibson's gradient This function implements Sibson's gradient
estimation method based on natural neighbor coordinates estimation method based on natural neighbor coordinates

View File

@ -24,8 +24,7 @@ the range \f$ \left[\right.\f$`first`, `beyond`\f$
k\f$-nearest neighbor or a range search query, this permits to check k\f$-nearest neighbor or a range search query, this permits to check
whether the neighborhood which has been considered is large enough. whether the neighborhood which has been considered is large enough.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Dt` is equivalent to the class <LI>`Dt` is equivalent to the class
@ -42,8 +41,7 @@ associating a point and its natural neighbor coordinate.
\sa CGAL::Voronoi_intersection_2_traits_3<K> \sa CGAL::Voronoi_intersection_2_traits_3<K>
\sa CGAL::surface_neighbors_3 \sa CGAL::surface_neighbors_3
Implementation ### Implementation ###
--------------
This functions construct the regular triangulation of the input points This functions construct the regular triangulation of the input points
instantiated with `Voronoi_intersection_2_traits_3<Kernel>` or `ITraits` if provided. instantiated with `Voronoi_intersection_2_traits_3<Kernel>` or `ITraits` if provided.

View File

@ -25,8 +25,7 @@ points are collected by a \f$ k\f$-nearest neighbor or a range search
query, this permits to verify that a large enough neighborhood has query, this permits to verify that a large enough neighborhood has
been considered. been considered.
Requirements ### Requirements ###
--------------
<OL> <OL>
<LI>`Dt` is equivalent to the class <LI>`Dt` is equivalent to the class
@ -39,8 +38,7 @@ Requirements
\sa CGAL::Voronoi_intersection_2_traits_3<K> \sa CGAL::Voronoi_intersection_2_traits_3<K>
\sa CGAL::surface_neighbor_coordinates_3 \sa CGAL::surface_neighbor_coordinates_3
Implementation ### Implementation ###
--------------
These functions compute the regular triangulation of These functions compute the regular triangulation of
the sample points and the point `p` using a traits class the sample points and the point `p` using a traits class

View File

@ -6,8 +6,7 @@ namespace CGAL {
The class `Interval_skip_list` is a dynamic data structure that The class `Interval_skip_list` is a dynamic data structure that
allows to find all members of a set of intervals that overlap a point. allows to find all members of a set of intervals that overlap a point.
Implementation ### Implementation ###
--------------
The insertion and deletion of a segment in the interval skip list The insertion and deletion of a segment in the interval skip list
takes expected time \f$ O(\log^2 n)\f$, if the segment endpoints are takes expected time \f$ O(\log^2 n)\f$, if the segment endpoints are

View File

@ -7,8 +7,7 @@ The class `Interval_skip_list_interval` represents intervals with lower and uppe
bound of type `Value`. These intervals bound of type `Value`. These intervals
can be opened or closed at each endpoint. can be opened or closed at each endpoint.
I/O ### I/O ###
--------------
The output operator is defined for `std::ostream`. The output operator is defined for `std::ostream`.

View File

@ -6,8 +6,7 @@ namespace CGAL {
The class `Level_interval` represents intervals for the minimum and The class `Level_interval` represents intervals for the minimum and
maximum value of the `z`-coordinate of a face of a triangulation. maximum value of the `z`-coordinate of a face of a triangulation.
Requirements ### Requirements ###
--------------
The `value_type` of `FaceHandle` must be `Face`, which must have a The `value_type` of `FaceHandle` must be `Face`, which must have a
nested type `Vertex`, which must have a nested type `Point`, nested type `Vertex`, which must have a nested type `Point`,

View File

@ -16,8 +16,7 @@ The default for the template `LocalKernel` is
`Cartesian<double>` and the default for `SvdTraits` is `Eigen_svd` if `CGAL_EIGEN3_ENABLED` `Cartesian<double>` and the default for `SvdTraits` is `Eigen_svd` if `CGAL_EIGEN3_ENABLED`
is defined and `Lapack_svd` otherwise. is defined and `Lapack_svd` otherwise.
Parameters ### Parameters ###
--------------
The class `Monge_via_jet_fitting` has three template parameters. Parameter The class `Monge_via_jet_fitting` has three template parameters. Parameter
`DataKernel` provides the geometric classes and tools `DataKernel` provides the geometric classes and tools

View File

@ -8,8 +8,7 @@ fulfilled by any class used to instantiate first template parameter of
the class the class
`CGAL::Monge_via_jet_fitting<DataKernel,LocalKernel,SvdTraits>`. `CGAL::Monge_via_jet_fitting<DataKernel,LocalKernel,SvdTraits>`.
Operations ### Operations ###
--------------
Only constructors (from 3 scalars and copy constructors) and access Only constructors (from 3 scalars and copy constructors) and access
methods to coordinates `x()`, `y()`, `z()` are needed. methods to coordinates `x()`, `y()`, `z()` are needed.

View File

@ -12,8 +12,7 @@ This concept provides the geometric primitives used for the
computations in the class computations in the class
`CGAL::Monge_via_jet_fitting`. `CGAL::Monge_via_jet_fitting`.
Requirements ### Requirements ###
--------------
In the class `CGAL::Monge_via_jet_fitting` the scalar type, In the class `CGAL::Monge_via_jet_fitting` the scalar type,
`LocalKernel::FT`, must be the same as that of the `SvdTraits` `LocalKernel::FT`, must be the same as that of the `SvdTraits`
@ -21,8 +20,7 @@ concept : `SvdTraits::FT`.
The type `LocalKernel::FT` is a model of the FieldWithSqrt concept. The type `LocalKernel::FT` is a model of the FieldWithSqrt concept.
Operations ### Operations ###
--------------
The scalar type `LocalKernel::FT` must be a field type with a The scalar type `LocalKernel::FT` must be a field type with a
square root. square root.

View File

@ -40,8 +40,7 @@ therefore do not appear in the constructors.
\sa `Translation` \sa `Translation`
\sa `rational_rotation_approximation` \sa `rational_rotation_approximation`
Example ### Example ###
--------------
\code \code
typedef Cartesian<double> K; typedef Cartesian<double> K;

View File

@ -16,8 +16,7 @@ the kernel is only an approximation of Euclidean geometry.
\models ::Kernel \models ::Kernel
Implementation ### Implementation ###
--------------
All geometric objects in `Cartesian` are reference counted. All geometric objects in `Cartesian` are reference counted.

Some files were not shown because too many files have changed in this diff Show More