\link-less link fixes

This commit is contained in:
Mael Rouxel-Labbé 2025-09-19 00:28:04 +02:00
parent 0721be1a58
commit cc9f36f0f3
4 changed files with 60 additions and 60 deletions

View File

@ -346,7 +346,7 @@ all the cells (resp. facets) describing the hole, creates a new vertex
a new cell (resp. facet) with `v` as vertex. Then `v->set_point(p)` a new cell (resp. facet) with `v` as vertex. Then `v->set_point(p)`
is called and `v` is returned. is called and `v` is returned.
\pre `t.dimension() >= 2`, the set of cells (resp. facets in dimension 2) is connected, its boundary is connected, and `p` lies inside the hole, which is star-shaped wrt `p`. \pre `dimension() >= 2`, the set of cells (resp. facets in dimension 2) is connected, its boundary is connected, and `p` lies inside the hole, which is star-shaped wrt `p`.
*/ */
template <class CellIt> template <class CellIt>
Vertex_handle insert_in_hole(Point p, CellIt cell_begin, CellIt cell_end, Vertex_handle insert_in_hole(Point p, CellIt cell_begin, CellIt cell_end,

View File

@ -118,7 +118,7 @@ typedef unspecified_type Cell_handle;
/*! /*!
Can be `CGAL::Sequential_tag`, `CGAL::Parallel_tag`, or `Parallel_if_available_tag`. If it is Can be `CGAL::Sequential_tag`, `CGAL::Parallel_tag`, or `Parallel_if_available_tag`. If it is
`CGAL::Parallel_tag`, the following functions can be called concurrently: `CGAL::Parallel_tag`, the following functions can be called concurrently:
`create_vertex`, `create_cell`, `delete_vertex`, `delete_cell`. `create_vertex()`, `create_cell()`, `delete_vertex()`, `delete_cell()`.
*/ */
typedef unspecified_type Concurrency_tag; typedef unspecified_type Concurrency_tag;
@ -232,13 +232,13 @@ TriangulationDataStructure_3(const TriangulationDataStructure_3 & tds1);
/*! /*!
Assignment operator. All vertices and cells are duplicated, and the former Assignment operator. All vertices and cells are duplicated, and the former
data structure of `tds` is deleted. data structure is deleted.
*/ */
TriangulationDataStructure_3& operator= (const TriangulationDataStructure_3 & tds1); TriangulationDataStructure_3& operator= (const TriangulationDataStructure_3 & tds1);
/*! /*!
`tds1` is copied into `tds`. If `v != Vertex_handle()`, `tds1` is copied into `this`. If `v != Vertex_handle()`,
the vertex of `tds` corresponding to `v` is returned, the vertex corresponding to `v` is returned,
otherwise `Vertex_handle()` is returned. otherwise `Vertex_handle()` is returned.
\pre The optional argument `v` is a vertex of `tds1`. \pre The optional argument `v` is a vertex of `tds1`.
*/ */
@ -266,19 +266,19 @@ otherwise `Vertex_handle()` is returned.
\pre The optional argument `v` is a vertex of `tds_src` or is `Vertex_handle()`. \pre The optional argument `v` is a vertex of `tds_src` or is `Vertex_handle()`.
*/ */
template <class TDS_src, class ConvertVertex, class ConvertCell> template <class TDS_src, class ConvertVertex, class ConvertCell>
Vertex_handle tds.copy_tds(const TDS_src& tds_src, typename TDS_src::Vertex_handle v, const ConvertVertex& convert_vertex, const ConvertCell& convert_cell); Vertex_handle copy_tds(const TDS_src& tds_src, typename TDS_src::Vertex_handle v, const ConvertVertex& convert_vertex, const ConvertCell& convert_cell);
/*! /*!
Swaps `tds` and `tds1`. There is no copy of cells and vertices, Swaps `this` and `tds1`. There is no copy of cells and vertices,
thus this method runs in constant time. This method should be preferred to thus this method runs in constant time. This method should be preferred to
`tds`=`tds1` or `tds`(`tds1`) when `tds1` is deleted after copy assignment (`*this = tds1`) or copy construction (`*this(tds1)`)
that. if `tds1` is deleted after the copy.
*/ */
void swap(TriangulationDataStructure_3 & tds1); void swap(TriangulationDataStructure_3 & tds1);
/*! /*!
Deletes all cells and vertices. `tds` is reset as a triangulation Deletes all cells and vertices. The triangulation data structure is reset as if
data structure constructed by the default constructor. constructed by the default constructor.
*/ */
void clear(); void clear();
@ -301,7 +301,7 @@ counted.
size_type number_of_vertices() const; size_type number_of_vertices() const;
/*! /*!
The number of cells. Returns 0 if `tds`.`dimension()`\f$ <3\f$. The number of cells. Returns 0 if `dimension()`\f$ <3\f$.
*/ */
size_type number_of_cells() const; size_type number_of_cells() const;
@ -311,12 +311,12 @@ size_type number_of_cells() const;
/// @{ /// @{
/*! /*!
The number of facets. Returns 0 if `tds`.`dimension()`\f$ <2\f$. The number of facets. Returns 0 if `dimension()`\f$ <2\f$.
*/ */
size_type number_of_facets() const; size_type number_of_facets() const;
/*! /*!
The number of edges. Returns 0 if `tds`.`dimension()`\f$ <1\f$. The number of edges. Returns 0 if `dimension()`\f$ <1\f$.
*/ */
size_type number_of_edges() const; size_type number_of_edges() const;
@ -339,19 +339,19 @@ void set_dimension(int n);
/// @{ /// @{
/*! /*!
Tests whether `v` is a vertex of `tds`. Tests whether `v` is a vertex of the triangulation data structure.
*/ */
bool is_vertex(Vertex_handle v) const; bool is_vertex(Vertex_handle v) const;
/*! /*!
Tests whether `(c,i,j)` is an edge of `tds`. Answers `false` when Tests whether `(c,i,j)` is an edge of the triangulation data structure.
`dimension()` \f$ <1\f$ . Answers `false` when `dimension()` \f$ <1\f$ .
\pre \f$ i,j \in\{0,1,2,3\}\f$ \pre \f$ i,j \in\{0,1,2,3\}\f$
*/ */
bool is_edge(Cell_handle c, int i, int j) const; bool is_edge(Cell_handle c, int i, int j) const;
/*! /*!
Tests whether `(u,v)` is an edge of `tds`. If the edge is found, Tests whether `(u,v)` is an edge of the triangulation data structure. If the edge is found,
it computes a cell `c` having this edge and the indices `i` it computes a cell `c` having this edge and the indices `i`
and `j` of the vertices `u` and `v`, in this order. and `j` of the vertices `u` and `v`, in this order.
*/ */
@ -359,19 +359,19 @@ bool is_edge(Vertex_handle u, Vertex_handle v,
Cell_handle & c, int & i, int & j) const; Cell_handle & c, int & i, int & j) const;
/*! /*!
Tests whether `(u,v)` is an edge of `tds`. Tests whether `(u,v)` is an edge of the triangulation data structure.
*/ */
bool is_edge(Vertex_handle u, Vertex_handle v) const; bool is_edge(Vertex_handle u, Vertex_handle v) const;
/*! /*!
Tests whether `(c,i)` is a facet of `tds`. Answers `false` when Tests whether `(c,i)` is a facet of of the triangulation data structure.
`dimension()` \f$ <2\f$ . Answers `false` when `dimension()` \f$ <2\f$ .
\pre \f$ i \in\{0,1,2,3\}\f$ \pre \f$ i \in\{0,1,2,3\}\f$
*/ */
bool is_facet(Cell_handle c, int i) const; bool is_facet(Cell_handle c, int i) const;
/*! /*!
Tests whether `(u,v,w)` is a facet of `tds`. If the facet is found, Tests whether `(u,v,w)` is a facet of the triangulation data structure. If the facet is found,
it computes a cell `c` having this facet and the indices `i`, it computes a cell `c` having this facet and the indices `i`,
`j` and `k` of the vertices `u`, `v` and `w`, in `j` and `k` of the vertices `u`, `v` and `w`, in
this order. this order.
@ -380,13 +380,13 @@ bool is_facet(Vertex_handle u, Vertex_handle v, Vertex_handle w,
Cell_handle & c, int & i, int & j, int & k) const; Cell_handle & c, int & i, int & j, int & k) const;
/*! /*!
Tests whether `c` is a cell of `tds`. Answers `false` when Tests whether `c` is a cell of the triangulation data structure.
`dimension()` \f$ <3\f$ . Answers `false` when `dimension()` \f$ <3\f$ .
*/ */
bool is_cell(Cell_handle c) const; bool is_cell(Cell_handle c) const;
/*! /*!
Tests whether `(u,v,w,t)` is a cell of `tds`. If the cell Tests whether `(u,v,w,t)` is a cell of the triangulation data structure. If the cell
`c` is found, it computes the indices `i`, `j`, `k` `c` is found, it computes the indices `i`, `j`, `k`
and `l` of the vertices `u`, `v`, `w` and `t` in and `l` of the vertices `u`, `v`, `w` and `t` in
`c`, in this order. `c`, in this order.
@ -401,7 +401,7 @@ Cell_handle & c, int & i, int & j, int & k, int & l) const;
/*! /*!
If `v` is a vertex of `f`, then `j` is the index of If `v` is a vertex of `f`, then `j` is the index of
`v` in the cell `f.first`, and the method returns `true`. `v` in the cell `f.first`, and the method returns `true`.
\pre `tds`.dimension()=3 \pre `dimension() == 3`
*/ */
bool has_vertex(const Facet & f, Vertex_handle v, int & j) const; bool has_vertex(const Facet & f, Vertex_handle v, int & j) const;
@ -429,17 +429,17 @@ bool has_vertex(Cell_handle c, int i, Vertex_handle v) const;
/// @{ /// @{
/*! /*!
\pre `dimension() == 3`
*/ */
bool are_equal(const Facet & f, const Facet & g) const; bool are_equal(const Facet & f, const Facet & g) const;
/*! /*!
\pre `dimension() == 3`
*/ */
bool are_equal(Cell_handle c, int i, Cell_handle n, int j) const; bool are_equal(Cell_handle c, int i, Cell_handle n, int j) const;
/*! /*!
For these three methods: \pre `tds`.dimension()=3. \pre `dimension() == 3`
*/ */
bool are_equal(const Facet & f, Cell_handle n, int j) const; bool are_equal(const Facet & f, Cell_handle n, int j) const;
@ -602,15 +602,14 @@ described, and `begin->neighbor(i)` does not. Then this function deletes
all the cells (resp. facets) describing the hole, creates a new vertex all the cells (resp. facets) describing the hole, creates a new vertex
`v`, and for each facet (resp. edge) on the boundary of the hole, creates `v`, and for each facet (resp. edge) on the boundary of the hole, creates
a new cell (resp. facet) with `v` as vertex. `v` is returned. a new cell (resp. facet) with `v` as vertex. `v` is returned.
\pre `tds`.`dimension()` \f$ \geq2\f$, the set of cells (resp. facets) is connected, and its boundary is connected. \pre `dimension()` \f$ \geq2\f$, the set of cells (resp. facets) is connected, and its boundary is connected.
*/ */
template <class CellIt> template <class CellIt>
Vertex_handle insert_in_hole(CellIt cell_begin, CellIt cell_end, Vertex_handle insert_in_hole(CellIt cell_begin, CellIt cell_end,
Cell_handle begin, int i); Cell_handle begin, int i);
/*! /*!
Same as above, except that `newv` will be used as the new vertex, which Same as above, except that `newv` will be used as the new vertex, which must have been allocated previously with, e.g., `create_vertex()`.
must have been allocated previously with e.g. `create_vertex`.
*/ */
template <class CellIt> template <class CellIt>
Vertex_handle insert_in_hole(CellIt cell_begin, CellIt cell_end, Vertex_handle insert_in_hole(CellIt cell_begin, CellIt cell_end,
@ -656,7 +655,8 @@ triangulation of the sphere \f$ S^d\f$ of \f$ \mathbb{R}^{d+1}\f$ onto the
triangulation of the sphere \f$ S^{d-1}\f$ of \f$ \mathbb{R}^{d}\f$ formed by the link of `v` triangulation of the sphere \f$ S^{d-1}\f$ of \f$ \mathbb{R}^{d}\f$ formed by the link of `v`
augmented with the vertex `v` itself, for \f$ d\f$==2,3; this one is placed on the facet `(c, i)` augmented with the vertex `v` itself, for \f$ d\f$==2,3; this one is placed on the facet `(c, i)`
(see Fig. \ref TDS3dim_down). (see Fig. \ref TDS3dim_down).
\pre The dimension must be 2 or 3. The degree of `v` must be equal to the total number of vertices of the triangulation data structure minus 1. \pre The dimension must be 2 or 3.
\pre The degree of `v` must be equal to the total number of vertices of the triangulation data structure minus 1.
\anchor TDS3dim_down \anchor TDS3dim_down
\image html tds-dim_down.png \image html tds-dim_down.png
@ -680,7 +680,7 @@ void decrease_dimension(Cell_handle c, int i);
\cgalAdvancedBegin \cgalAdvancedBegin
Changes the orientation of all cells of the triangulation data structure. Changes the orientation of all cells of the triangulation data structure.
\cgalAdvancedEnd \cgalAdvancedEnd
\pre `tds`.`dimension()` \f$ \geq1\f$. \pre `dimension()` \f$ \geq1\f$.
*/ */
void reorient(); void reorient();
@ -783,7 +783,7 @@ void delete_cells(CellIt first, CellIt last);
/// @{ /// @{
/*! /*!
Returns `cells_end()` when `tds.dimension()` \f$ <3\f$. Returns `cells_end()` when `dimension()` \f$ <3\f$.
*/ */
Cell_iterator cells_begin() const; Cell_iterator cells_begin() const;
@ -794,7 +794,7 @@ Cell_iterator cells_end() const;
/*! /*!
Low-level access to the cells, does not return `cells_end()` Low-level access to the cells, does not return `cells_end()`
when `tds.dimension()` \f$ <3\f$. when `dimension()` \f$ <3\f$.
*/ */
Cell_iterator raw_cells_begin() const; Cell_iterator raw_cells_begin() const;
@ -804,7 +804,7 @@ Cell_iterator raw_cells_begin() const;
Cell_iterator raw_cells_end() const; Cell_iterator raw_cells_end() const;
/*! /*!
Returns `facets_end()` when `tds.dimension()` \f$ <2\f$. Returns `facets_end()` when `dimension()` \f$ <2\f$.
*/ */
Facet_iterator facets_begin() const; Facet_iterator facets_begin() const;
@ -814,7 +814,7 @@ Facet_iterator facets_begin() const;
Facet_iterator facets_end() const; Facet_iterator facets_end() const;
/*! /*!
Returns `edges_end()` when `tds.dimension()` \f$ <1\f$. Returns `edges_end()` when `dimension()` \f$ <1\f$.
*/ */
Edge_iterator edges_begin() const; Edge_iterator edges_begin() const;
@ -840,7 +840,7 @@ Vertex_iterator vertices_end() const;
/*! /*!
Starts at an arbitrary cell incident to `e`. Starts at an arbitrary cell incident to `e`.
\pre `tds.dimension()` \f$ =3\f$ \pre `dimension()` \f$ =3\f$
*/ */
Cell_circulator incident_cells(const Edge & e) const; Cell_circulator incident_cells(const Edge & e) const;
@ -851,7 +851,7 @@ Cell_circulator incident_cells(Cell_handle c, int i, int j) const;
/*! /*!
Starts at cell `start`. Starts at cell `start`.
\pre `tds.dimension()` \f$ =3\f$ and `start` is incident to `e`. \pre `dimension()` \f$ =3\f$ and `start` is incident to `e`.
*/ */
Cell_circulator incident_cells(const Edge & e, Cell_handle start) const; Cell_circulator incident_cells(const Edge & e, Cell_handle start) const;
@ -865,9 +865,9 @@ const;
Starts at an arbitrary facet incident to `e`. Starts at an arbitrary facet incident to `e`.
Only defined in dimension 3, though are defined also in dimension 2: Only defined in dimension 3, though are defined also in dimension 2:
there are only two facets sahring an edge in dimension 2. there are only two facets sharing an edge in dimension 2.
\pre `tds.dimension()` \f$ =3\f$ \pre `dimension()` \f$ =3\f$
*/ */
Facet_circulator incident_facets(Edge e) const; Facet_circulator incident_facets(Edge e) const;
@ -1049,7 +1049,7 @@ Writes `tds` into the stream `os`
ostream& operator<< (ostream& os, const TriangulationDataStructure_3 & tds); ostream& operator<< (ostream& os, const TriangulationDataStructure_3 & tds);
/*! \ingroup PkgIOTDS3 /*! \ingroup PkgIOTDS3
The tds streamed in `is`, of original type `TDS_src`, is written into the triangulation data structure. As the vertex and cell The triangulation data structure streamed in `is`, of original type `TDS_src`, is written into the triangulation data structure. As the vertex and cell
types might be different and incompatible, the creation of new cells and vertices types might be different and incompatible, the creation of new cells and vertices
is made thanks to the functors `convert_vertex` and `convert_cell`, that convert is made thanks to the functors `convert_vertex` and `convert_cell`, that convert
vertex and cell types. For each vertex `v_src` in `is`, the corresponding vertex and cell types. For each vertex `v_src` in `is`, the corresponding

View File

@ -225,7 +225,7 @@ is called and `v` is returned.
If the hole contains interior vertices, each of them is hidden by the insertion If the hole contains interior vertices, each of them is hidden by the insertion
of `p` and is stored in the new cell which contains it. of `p` and is stored in the new cell which contains it.
\pre `rt`.`dimension()` \f$ \geq2\f$, the set of cells (resp. facets in dimension 2) is connected, not empty, its boundary is connected, and `p` lies inside the hole, which is star-shaped wrt `p`. \pre `dimension()` \f$ \geq2\f$, the set of cells (resp. facets in dimension 2) is connected, not empty, its boundary is connected, and `p` lies inside the hole, which is star-shaped wrt `p`.
*/ */
template <class CellIt> template <class CellIt>
Vertex_handle insert_in_hole(const Weighted_point& p, Vertex_handle insert_in_hole(const Weighted_point& p,
@ -320,7 +320,7 @@ of `c` is less than \f$ \pi/2\f$ or if these two spheres do not
intersect. For an intersect. For an
infinite cell this means that `p` does not satisfy either of the infinite cell this means that `p` does not satisfy either of the
two previous conditions. two previous conditions.
\pre `rt`.`dimension()` \f$ =3\f$. \pre `dimension()` \f$ =3\f$.
*/ */
Bounded_side Bounded_side
side_of_power_sphere(Cell_handle c, const Weighted_point & p) const; side_of_power_sphere(Cell_handle c, const Weighted_point & p) const;
@ -372,7 +372,7 @@ If the point `p` is collinear with the finite edge `e` of
`ON_BOUNDARY` if \f$ \Pi({p}^{(w)}-{z(e)}^{(w)})=0\f$, `ON_BOUNDARY` if \f$ \Pi({p}^{(w)}-{z(e)}^{(w)})=0\f$,
`ON_UNBOUNDED_SIDE` if \f$ \Pi({p}^{(w)}-{z(e)}^{(w)})>0\f$ . `ON_UNBOUNDED_SIDE` if \f$ \Pi({p}^{(w)}-{z(e)}^{(w)})>0\f$ .
\pre `rt`.`dimension()` \f$ \geq2\f$. \pre `dimension()` \f$ \geq2\f$.
*/ */
Bounded_side Bounded_side
side_of_power_circle(const Facet & f, side_of_power_circle(const Facet & f,
@ -395,7 +395,7 @@ In dimension 1, returns
`ON_BOUNDARY` if \f$ \Pi({p}^{(w)}-{z(c)}^{(w)})=0\f$, `ON_BOUNDARY` if \f$ \Pi({p}^{(w)}-{z(c)}^{(w)})=0\f$,
`ON_UNBOUNDED_SIDE` if \f$ \Pi({p}^{(w)}-{z(c)}^{(w)})>0\f$ . `ON_UNBOUNDED_SIDE` if \f$ \Pi({p}^{(w)}-{z(c)}^{(w)})>0\f$ .
\pre `rt`.`dimension()` \f$ = 1\f$. \pre `dimension()` \f$ = 1\f$.
*/ */
Bounded_side Bounded_side
side_of_power_segment(Cell_handle c, const Weighted_point & p) side_of_power_segment(Cell_handle c, const Weighted_point & p)
@ -412,7 +412,7 @@ The default constructed
handle is returned if the triangulation is empty. handle is returned if the triangulation is empty.
The optional argument `c` is a hint The optional argument `c` is a hint
specifying where to start the search. specifying where to start the search.
\pre `c` is a cell of `rt`. \pre `c` is a cell of the regular triangulation.
*/ */
Vertex_handle nearest_power_vertex(const Bare_point& p, Vertex_handle nearest_power_vertex(const Bare_point& p,
@ -461,7 +461,7 @@ Compute the conflicts with `p`.
among the internal or boundary facets of the conflict zone, and false otherwise. among the internal or boundary facets of the conflict zone, and false otherwise.
\pre The starting cell (resp.\ facet) `c` must be in conflict with `p`. \pre The starting cell (resp.\ facet) `c` must be in conflict with `p`.
\pre `rt`.`dimension()` \f$ \geq2\f$, and `c` is in conflict with `p`. \pre `dimension()` \f$ \geq2\f$, and `c` is in conflict with `p`.
\return the `Triple` composed of the resulting output iterators. \return the `Triple` composed of the resulting output iterators.
@ -492,7 +492,7 @@ vertices_in_conflict(const Weighted_point& p, Cell_handle c, OutputIterator res)
Similar to `find_conflicts()`, but reports the vertices which are on the Similar to `find_conflicts()`, but reports the vertices which are on the
boundary of the conflict zone of `p`, in the output iterator `res`. boundary of the conflict zone of `p`, in the output iterator `res`.
Returns the resulting output iterator. Returns the resulting output iterator.
\pre `rt`.`dimension()` \f$ \geq2\f$, and `c` is a cell containing `p`. \pre `dimension()` \f$ \geq2\f$, and `c` is a cell containing `p`.
*/ */
template <class OutputIterator> template <class OutputIterator>
@ -505,7 +505,7 @@ the interior of the conflict zone of `p`, in the output iterator
`res`. The vertices that are on the boundary of the conflict zone are `res`. The vertices that are on the boundary of the conflict zone are
not reported. not reported.
Returns the resulting output iterator. Returns the resulting output iterator.
\pre `rt`.`dimension()` \f$ \geq2\f$, and `c` is a cell containing `p`. \pre `dimension()` \f$ \geq2\f$, and `c` is a cell containing `p`.
*/ */
template <class OutputIterator> template <class OutputIterator>
@ -555,7 +555,7 @@ bool is_Gabriel(Vertex_handle v);
/*! /*!
Returns the weighted circumcenter of the four vertices of c. Returns the weighted circumcenter of the four vertices of c.
\pre `rt`.`dimension()`\f$ =3\f$ and `c` is not infinite. \pre `dimension()`\f$ =3\f$ and `c` is not infinite.
*/ */
Bare_point dual(Cell_handle c) const; Bare_point dual(Cell_handle c) const;
@ -566,7 +566,7 @@ in dimension 3: either a segment, if the two cells incident to `f`
are finite, or a ray, if one of them is infinite; are finite, or a ray, if one of them is infinite;
in dimension 2: a point. in dimension 2: a point.
\pre `rt`.`dimension()` \f$ \geq2\f$ and `f` is not infinite. \pre `dimension()` \f$ \geq2\f$ and `f` is not infinite.
*/ */
Object dual(Facet f) const; Object dual(Facet f) const;
@ -576,7 +576,7 @@ same as the previous method for facet `(c,i)`.
Object dual(Cell_handle c, int i) const; Object dual(Cell_handle c, int i) const;
/*! /*!
Sends the set of duals to all the facets of `rt` into `os`. Writes the set of duals to all the facets of the regular triangulation into `os`.
*/ */
template <class Stream> Stream & draw_dual(Stream & os); template <class Stream> Stream & draw_dual(Stream & os);

View File

@ -1394,7 +1394,7 @@ The first cell incident to `vt` is the last valid value of the iterator.
It is followed by `segment_traverser_cells_end()`. It is followed by `segment_traverser_cells_end()`.
\pre `vs` and `vt` must be different vertices and neither can be the infinite vertex. \pre `vs` and `vt` must be different vertices and neither can be the infinite vertex.
\pre `triangulation.dimension() >= 2` \pre `t.dimension() >= 2`
*/ */
Segment_cell_iterator segment_traverser_cells_begin(Vertex_handle vs, Vertex_handle vt) const; Segment_cell_iterator segment_traverser_cells_begin(Vertex_handle vs, Vertex_handle vt) const;
@ -1419,7 +1419,7 @@ The optional argument `hint` can reduce the time to construct the iterator
if it is geometrically close to `ps`. if it is geometrically close to `ps`.
\pre `ps` and `pt` must be different points. \pre `ps` and `pt` must be different points.
\pre `triangulation.dimension() >= 2`. If the dimension is 2, both `ps` and `pt` must lie in the affine hull. \pre `t.dimension() >= 2`. If the dimension is 2, both `ps` and `pt` must lie in the affine hull.
*/ */
Segment_cell_iterator segment_traverser_cells_begin(const Point& ps, const Point& pt, Cell_handle hint = Cell_handle()) const; Segment_cell_iterator segment_traverser_cells_begin(const Point& ps, const Point& pt, Cell_handle hint = Cell_handle()) const;
@ -1429,7 +1429,7 @@ returns the past-the-end iterator over the intersected cells.
This iterator cannot be dereferenced. It indicates when the `Segment_cell_iterator` has This iterator cannot be dereferenced. It indicates when the `Segment_cell_iterator` has
passed the target. passed the target.
\pre `triangulation.dimension() >= 2` \pre `t.dimension() >= 2`
*/ */
Segment_cell_iterator segment_traverser_cells_end() const; Segment_cell_iterator segment_traverser_cells_end() const;
@ -1470,7 +1470,7 @@ The initial value of the iterator is `vs`.
The iterator remains valid until `vt` is passed. The iterator remains valid until `vt` is passed.
\pre `vs` and `vt` must be different vertices and neither can be the infinite vertex. \pre `vs` and `vt` must be different vertices and neither can be the infinite vertex.
\pre `triangulation.dimension() >= 2` \pre `t.dimension() >= 2`
*/ */
Segment_simplex_iterator segment_traverser_simplices_begin(Vertex_handle vs, Vertex_handle vt) const; Segment_simplex_iterator segment_traverser_simplices_begin(Vertex_handle vs, Vertex_handle vt) const;
@ -1486,7 +1486,7 @@ The iterator remains valid until the first simplex containing `pt` is passed.
The optional argument `hint` can reduce the time to construct the iterator if it is close to `ps`. The optional argument `hint` can reduce the time to construct the iterator if it is close to `ps`.
\pre `ps` and `pt` must be different points. \pre `ps` and `pt` must be different points.
\pre `triangulation.dimension() >= 2`. If the dimension is 2, both `ps` and `pt` must lie in the affine hull. \pre `t.dimension() >= 2`. If the dimension is 2, both `ps` and `pt` must lie in the affine hull.
*/ */
Segment_simplex_iterator segment_traverser_simplices_begin(const Point& ps, const Point& pt, Cell_handle hint = Cell_handle()) const; Segment_simplex_iterator segment_traverser_simplices_begin(const Point& ps, const Point& pt, Cell_handle hint = Cell_handle()) const;
@ -1496,7 +1496,7 @@ returns the past-the-end iterator over the intersected simplices.
This iterator cannot be dereferenced. It indicates when the `Segment_simplex_iterator` has This iterator cannot be dereferenced. It indicates when the `Segment_simplex_iterator` has
passed the target. passed the target.
\pre `triangulation.dimension() >= 2` \pre `t.dimension() >= 2`
*/ */
Segment_simplex_iterator segment_traverser_simplices_end() const; Segment_simplex_iterator segment_traverser_simplices_end() const;