mirror of https://github.com/CGAL/cgal
Downsize headings
This commit is contained in:
parent
c5d9b86882
commit
6f61e2b2ee
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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>`.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
|
||||||
|
|
@ -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 ###
|
||||||
--------------
|
|
||||||
|
|
||||||
|
|
||||||
*/
|
*/
|
||||||
|
|
|
||||||
|
|
@ -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`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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>
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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>`
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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> >`.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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,
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 );
|
||||||
|
|
|
||||||
|
|
@ -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 {
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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`
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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`:
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
|
||||||
|
|
@ -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)
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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 >
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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`
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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`.
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -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`,
|
||||||
|
|
|
||||||
|
|
@ -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
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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.
|
||||||
|
|
|
||||||
|
|
@ -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;
|
||||||
|
|
|
||||||
|
|
@ -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
Loading…
Reference in New Issue