mirror of https://github.com/CGAL/cgal
Use \link / \ref to add missing links of functions with parameters
This commit is contained in:
parent
b3e2f204a4
commit
0721be1a58
|
|
@ -18,7 +18,7 @@ public:
|
|||
/*! accepts two <I>mergeable</I> \f$x\f$-monotone curves `xc1` and `xc2`
|
||||
* and assigns `xc` with the merged curve.
|
||||
*
|
||||
* \pre `are_mergeable_2`(`xc1`, `xc2`) is true.
|
||||
* \pre \link AosTraits::AreMergeable_2 `are_mergeable_2`\endlink(`xc1`, `xc2`) is true.
|
||||
*/
|
||||
void merge(AosTraits::X_monotone_curve_2 xc1,
|
||||
AosTraits::X_monotone_curve_2 xc2,
|
||||
|
|
|
|||
|
|
@ -1552,7 +1552,7 @@ does_satisfy_link_condition(typename boost::graph_traits<Graph>::edge_descriptor
|
|||
*
|
||||
* \returns vertex `v1`.
|
||||
* \pre g must be a triangulated graph
|
||||
* \pre `does_satisfy_link_condition(e,g) == true`.
|
||||
* \pre \link CGAL::Euler::does_satisfy_link_condition `does_satisfy_link_condition`\endlink(e,g) == `true`.
|
||||
*/
|
||||
template<typename Graph>
|
||||
typename boost::graph_traits<Graph>::vertex_descriptor
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ namespace Barycentric_coordinates {
|
|||
\return an output iterator to the element in the destination range,
|
||||
one past the last coordinate stored
|
||||
|
||||
\pre area_2(p0, p1, p2) != 0
|
||||
\pre \link BarycentricTraits_2::Compute_area_2 `area_2`\endlink(p0, p1, p2) != 0
|
||||
*/
|
||||
template<
|
||||
typename OutIterator,
|
||||
|
|
@ -133,7 +133,7 @@ namespace Barycentric_coordinates {
|
|||
\return a tuple `std::tuple<GeomTraits::FT, GeomTraits::FT, GeomTraits::FT>`
|
||||
with the computed coordinates
|
||||
|
||||
\pre area_2(p0, p1, p2) != 0
|
||||
\pre \link BarycentricTraits_2::Compute_area_2 `area_2`\endlink(p0, p1, p2) != 0
|
||||
*/
|
||||
template<typename GeomTraits>
|
||||
std::tuple<
|
||||
|
|
|
|||
|
|
@ -27,7 +27,7 @@ the source and target points of `xc`, respectively. If the target
|
|||
point of `xc2` and the source point of `xc1` coincide; then
|
||||
the source point of `xc2` and the target point of `xc1` become
|
||||
the source and target points of `xc`, respectively.
|
||||
\pre `are_mergeable_2`(`xc1`, `xc2`) is true.
|
||||
\pre \link ArrDirectionalTraits::AreMergeable_2 `are_mergeable_2`\endlink(`xc1`, `xc2`) is `true`.
|
||||
*/
|
||||
void operator()(ArrDirectionalTraits::X_monotone_curve_2 xc1,
|
||||
ArrDirectionalTraits::X_monotone_curve_2 xc2,
|
||||
|
|
|
|||
|
|
@ -149,7 +149,7 @@ template <unsigned int i> bool is_sewable(Dart_const_descriptor d1, Dart_const_d
|
|||
Links by \f$ \beta_i \f$ two by two all the darts of the orbit <I>D1</I>=\f$ \langle{}\f$\f$ \beta_1\f$,\f$ \ldots\f$,\f$ \beta_{i-2}\f$,\f$ \beta_{i+2}\f$,\f$ \ldots\f$,\f$ \beta_d\f$\f$ \rangle{}\f$(`d1`) and <I>D2</I>=\f$ \langle{}\f$\f$ \beta_0\f$,\f$ \beta_2\f$,\f$ \ldots\f$,\f$ \beta_{i-2}\f$,\f$ \beta_{i+2}\f$,\f$ \ldots\f$,\f$ \beta_d\f$\f$ \rangle{}\f$(`d2`) such that <I>d2</I>=<I>f</I>(<I>d1</I>), where <I>f</I> is the bijection between <I>D1</I> and <I>D2</I> satisfying: <I>f</I>(<I>d1</I>)=<I>d2</I>, and for all <I>e</I> \f$ \in \f$ <I>D1</I>, for all <I>j</I> \f$ \in \f$ {1,\f$ \ldots\f$,<I>i</I>-2,<I>i</I>+2,\f$ \ldots\f$,<I>d</I>}, <I>f</I>(\f$ \beta_j\f$(<I>e</I>))=\f$ \beta_j^{-1}\f$(<I>f</I>(<I>e</I>)).
|
||||
|
||||
If \link GenericMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`, when necessary, non void attributes are updated to ensure the validity of the generic map: for each <I>j</I>-cells <I>c1</I> and <I>c2</I> which are merged into one <I>j</I>-cell during the sew, the two associated attributes <I>attr1</I> and <I>attr2</I> are considered. If one attribute is `null_descriptor` and the other not, the non `null_descriptor` attribute is associated to all the darts of the resulting cell. When the two attributes are non `null_descriptor`, functor \link CellAttribute::On_merge `Attribute_type<i>::type::On_merge`\endlink is called on the two attributes <I>attr1</I> and <I>attr2</I>. If set, the dynamic onmerge function of <i>i</i>-attributes is also called on <I>attr1</I> and <I>attr2</I>. Then, the attribute <I>attr1</I> is associated to all darts of the resulting <I>j</I>-cell. Finally, attribute <I>attr2</I> is removed from the generic map.
|
||||
\pre \link CombinatorialMap::is_sewable `is_sewable<i>(d1,d2)`\endlink.
|
||||
\pre \link CombinatorialMap::is_sewable `is_sewable<i>`\endlink(`d1`,`d2`).
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link GenericMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are not updated; thus the generic map can be no more valid after this operation.
|
||||
|
|
|
|||
|
|
@ -467,14 +467,14 @@ const typename Attribute_type<i>::type::Info & info(Dart_const_descriptor adart)
|
|||
|
||||
/*!
|
||||
A shortcut for \link GenericMap::dart_of_attribute `dart_of_attribute<i>`\endlink`(`\link GenericMap::attribute `attribute<i>`\endlink`(adart))`.
|
||||
\pre `attribute<i>(adart)!=nullptr`.
|
||||
\pre \link GenericMap::attribute `attribute<i>`\endlink`(adart)!=nullptr`.
|
||||
*/
|
||||
template<unsigned int i>
|
||||
Dart_descriptor & dart(Dart_descriptor adart);
|
||||
|
||||
/*!
|
||||
A shortcut for \link GenericMap::dart_of_attribute(typename Attribute_const_descriptor<i>::type)const `dart_of_attribute<i>`\endlink`(`\link GenericMap::attribute(Dart_const_descriptor)const `attribute<i>`\endlink`(adart))` for const descriptor.
|
||||
\pre `attribute<i>(adart)!=nullptr`.
|
||||
\pre \link GenericMap::attribute(Dart_const_descriptor)const `attribute<i>`\endlink`(adart)!=nullptr`.
|
||||
*/
|
||||
template<unsigned int i>
|
||||
Dart_const_descriptor dart(Dart_const_descriptor adart) const;
|
||||
|
|
@ -771,13 +771,13 @@ bool is_marked(Dart_const_descriptor d, size_type m) const;
|
|||
|
||||
/*!
|
||||
Marks dart `d` for `m`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved(m)`\endlink and `d`\f$ \in \f$ `darts()`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved`\endlink(`m`) and `d`\f$ \in \f$ `darts()`.
|
||||
*/
|
||||
void mark(Dart_const_descriptor d, size_type m) const;
|
||||
|
||||
/*!
|
||||
Unmarks dart `d` for the mark `m`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved(m)`\endlink and `d`\f$ \in \f$ `darts()`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved`\endlink(`m`) and `d`\f$ \in \f$ `darts()`.
|
||||
*/
|
||||
void unmark(Dart_const_descriptor d, size_type m) const;
|
||||
|
||||
|
|
@ -785,31 +785,31 @@ void unmark(Dart_const_descriptor d, size_type m) const;
|
|||
Inverse the mark `m` for all the darts of the generic map.
|
||||
All the marked darts become unmarked and all the unmarked darts
|
||||
become marked.
|
||||
\pre \link GenericMap::is_reserved `is_reserved(m)`\endlink.
|
||||
\pre \link GenericMap::is_reserved `is_reserved`\endlink(`m`).
|
||||
*/
|
||||
void negate_mark(size_type m) const;
|
||||
|
||||
/*!
|
||||
Unmarks all the darts of the generic map for `m`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved(m)`\endlink.
|
||||
\pre \link GenericMap::is_reserved `is_reserved`\endlink(`m`).
|
||||
*/
|
||||
void unmark_all(size_type m) const;
|
||||
|
||||
/*!
|
||||
Returns the number of marked darts for `m`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved(m)`\endlink.
|
||||
\pre \link GenericMap::is_reserved `is_reserved`\endlink(`m`).
|
||||
*/
|
||||
size_type number_of_marked_darts(size_type m) const;
|
||||
|
||||
/*!
|
||||
Return the number of unmarked darts for `m`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved(m)`\endlink.
|
||||
\pre \link GenericMap::is_reserved `is_reserved`\endlink(`m`).
|
||||
*/
|
||||
size_type number_of_unmarked_darts(size_type m) const;
|
||||
|
||||
/*!
|
||||
Frees mark `m`.
|
||||
\pre \link GenericMap::is_reserved `is_reserved(m)`\endlink.
|
||||
\pre \link GenericMap::is_reserved `is_reserved`\endlink(`m`).
|
||||
*/
|
||||
void free_mark(size_type m) const;
|
||||
|
||||
|
|
@ -820,7 +820,7 @@ void free_mark(size_type m) const;
|
|||
|
||||
/*!
|
||||
Creates a combinatorial hexahedron (six combinatorial quadrangles 2-sewn together), and adds it in the generic map. Returns a descriptor on one dart of this combinatorial hexahedron.
|
||||
\pre `dimension` \f$\geq\f$ 2.
|
||||
\pre \link GenericMap::dimension `dimension`\endlink \f$\geq\f$ 2.
|
||||
|
||||
\sa `make_edge()`
|
||||
\sa `make_combinatorial_polygon()`
|
||||
|
|
@ -831,7 +831,7 @@ Dart_descriptor make_combinatorial_hexahedron();
|
|||
|
||||
/*!
|
||||
Creates a combinatorial polygon of length `lg` (a cycle of `lg` edges), and adds it in the generic map. Returns a descriptor on one dart of this combinatorial polygon.
|
||||
\pre `dimension`\f$ \geq\f$ 1 and `lg`\f$ >\f$ 0.
|
||||
\pre \link GenericMap::dimension `dimension`\endlink \f$ \geq\f$ 1 and `lg`\f$ >\f$ 0.
|
||||
|
||||
\sa `make_edge()`
|
||||
\sa `make_combinatorial_tetrahedron()`
|
||||
|
|
@ -841,7 +841,7 @@ Dart_descriptor make_combinatorial_polygon(unsigned int lg);
|
|||
|
||||
/*!
|
||||
Creates a combinatorial tetrahedron (four combinatorial triangles 2-sewn together), and adds it in the generic map. Returns a descriptor on one dart of this combinatorial tetrahedron.
|
||||
\pre `dimension`\f$ \geq\f$ 2.
|
||||
\pre \link GenericMap::dimension `dimension`\endlink \f$ \geq\f$ 2.
|
||||
|
||||
\sa `make_edge()`
|
||||
\sa `make_combinatorial_polygon()`
|
||||
|
|
@ -851,7 +851,7 @@ Dart_descriptor make_combinatorial_tetrahedron();
|
|||
|
||||
/*!
|
||||
Creates an isolated edge (two darts sewn to represent one edge and two vertices) and adds it in the generic map. Returns a descriptor on one dart of this edge.
|
||||
\pre `dimension`\f$ \geq\f$ 2.
|
||||
\pre \link GenericMap::dimension `dimension`\endlink \f$ \geq\f$ 2.
|
||||
|
||||
\sa `make_combinatorial_polygon()`
|
||||
\sa `make_combinatorial_tetrahedron()`
|
||||
|
|
@ -908,7 +908,7 @@ Dart_descriptor insert_cell_0_in_cell_2(Dart_descriptor d);
|
|||
|
||||
/*!
|
||||
Inserts a 1-cell in the 2-cell containing `d1` and `d2`. Returns `previous(d1)`, a descriptor on one dart belonging to the new 1-cell.
|
||||
\pre `is_insertable_cell_1_in_cell_2(d1,d2)`.
|
||||
\pre \link GenericMap::is_insertable_cell_1_in_cell_2 `is_insertable_cell_1_in_cell_2`\endlink(`d1`,`d2`).
|
||||
|
||||
See examples for combinatorial map in \cgalFigureRef{fig_cmap_insert_edge} and for generalized map in \cgalFigureRef{fig_gmap_insert_edge}.
|
||||
|
||||
|
|
@ -930,7 +930,7 @@ Dart_descriptor insert_cell_1_in_cell_2(Dart_descriptor d1, Dart_descriptor d2);
|
|||
|
||||
/*!
|
||||
Inserts a 1-cell between the 2-cell containing `d1` and the one containing `d2`. Returns `previous(d1)`, a descriptor on one dart belonging to the new 1-cell.
|
||||
\pre `is_insertable_cell_1_between_two_cells_2(d1,d2)`.
|
||||
\pre \link GenericMap::is_insertable_cell_1_between_two_cells_2 `is_insertable_cell_1_between_two_cells_2`\endlink(`d1`,`d2`).
|
||||
|
||||
If \link GenericMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`, call \link CellAttribute::On_merge `Attribute_type<i>::type::On_merge`\endlink(<I>a</I>,<I>a'</I>) is called for all enabled i-attributes, for i>=2, with <I>a</I> the original 2-attribute associated with `d1` and <I>a'</I> the original 2-attribute associated with `d2`. If set, the dynamic on-merge function of i-attributes is also called on <I>a</I> and <I>a'</I>.
|
||||
|
||||
|
|
@ -957,7 +957,7 @@ Dart_descriptor insert_cell_1(Dart_descriptor d1, Dart_descriptor d2);
|
|||
|
||||
/*!
|
||||
Inserts a 2-cell along the path of 1-cells containing darts given by the range `[afirst,alast)`. Returns `opposite<2>(*afirst)`, a descriptor on one dart belonging to the new 2-cell.
|
||||
\pre `is_insertable_cell_2_in_cell_3(afirst,alast)`.
|
||||
\pre \link GenericMap::is_insertable_cell_2_in_cell_3 `is_insertable_cell_2_in_cell_3`\endlink(`afirst`,`alast`).
|
||||
|
||||
See examples for combinatorial map in \cgalFigureRef{fig_cmap_insert_facet} and for generalized map in \cgalFigureRef{fig_gmap_insert_facet}.
|
||||
|
||||
|
|
@ -1045,7 +1045,7 @@ bool is_removable(Dart_const_descriptor d);
|
|||
|
||||
/*!
|
||||
Removes the <I>i</I>-cell containing `d`. Returns the number of darts removed from the generic map.
|
||||
\pre `is_removable<i>(d)`.
|
||||
\pre \link GenericMap::is_removable `is_removable<i>`\endlink(`d`).
|
||||
|
||||
See examples in \cgalFigureRef{fig_cmap_insert_vertex}, \cgalFigureRef{fig_cmap_insert_edge} and \cgalFigureRef{fig_cmap_insert_facet}.
|
||||
|
||||
|
|
|
|||
|
|
@ -924,7 +924,7 @@ public:
|
|||
|
||||
/*!
|
||||
* @brief same as `face_constraint_index(f)` with `f` being `Triangulation::Facet(ch, index)`.
|
||||
* @pre `is_facet_constrained(f)`
|
||||
* @pre \link Conforming_constrained_Delaunay_triangulation_3::is_facet_constrained `is_facet_constrained`\endlink(`f`)
|
||||
*/
|
||||
CDT_3_signed_index face_constraint_index(typename Triangulation::Cell_handle ch, int i) const
|
||||
{
|
||||
|
|
@ -934,7 +934,7 @@ public:
|
|||
/*!
|
||||
* @brief returns the index of the constraint that constrains the
|
||||
* facet \p f
|
||||
* @pre `is_facet_constrained(f)`
|
||||
* @pre \link Conforming_constrained_Delaunay_triangulation_3::is_facet_constrained `is_facet_constrained`\endlink(`f`)
|
||||
*/
|
||||
CDT_3_signed_index face_constraint_index(const typename Triangulation::Facet& f) const
|
||||
{
|
||||
|
|
|
|||
|
|
@ -113,7 +113,7 @@ template <unsigned int i> bool is_sewable(Dart_const_descriptor d1, Dart_const_d
|
|||
Links by \f$ \alpha_i\f$ two by two all the darts of the orbit <I>D1</I>=\f$ \langle{}\f$\f$ \alpha_0\f$,\f$ \ldots\f$,\f$ \alpha_{i-2}\f$,\f$ \alpha_{i+2}\f$,\f$ \ldots\f$,\f$ \alpha_d\f$\f$ \rangle{}\f$(`d1`) and <I>D2</I>=\f$ \langle{}\f$\f$ \alpha_0\f$,\f$ \alpha_2\f$,\f$ \ldots\f$,\f$ \alpha_{i-2}\f$,\f$ \alpha_{i+2}\f$,\f$ \ldots\f$,\f$ \alpha_d\f$\f$ \rangle{}\f$(`d2`) such that <I>d2</I>=<I>f</I>(<I>d1</I>), where <I>f</I> is the bijection between <I>D1</I> and <I>D2</I> satisfying: <I>f</I>(<I>d1</I>)=<I>d2</I>, and for all <I>e</I>\f$ \in\f$ <I>D1</I>, for all <I>j</I>\f$ \in\f$ {1,\f$ \ldots\f$,<I>i</I>-2,<I>i</I>+2,\f$ \ldots\f$,<I>d</I>}, <I>f</I>(\f$ \alpha_j\f$(<I>e</I>))=\f$ \alpha_j\f$(<I>f</I>(<I>e</I>)).
|
||||
|
||||
If \link GenericMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==true`, when necessary, non void attributes are updated to ensure the validity of the generic map: for each <I>j</I>-cells <I>c1</I> and <I>c2</I> which are merged into one <I>j</I>-cell during the sew, the two associated attributes <I>attr1</I> and <I>attr2</I> are considered. If one attribute is `null_descriptor` and the other not, the non `null_descriptor` attribute is associated to all the darts of the resulting cell. When the two attributes are non `null_descriptor`, functor \link CellAttribute::On_merge `Attribute_type<i>::type::On_merge`\endlink is called on the two attributes <I>attr1</I> and <I>attr2</I>. If set, the dynamic onmerge function of <i>i</i>-attributes is also called on <I>attr1</I> and <I>attr2</I>. Then, the attribute <I>attr1</I> is associated to all darts of the resulting <I>j</I>-cell. Finally, attribute <I>attr2</I> is removed from the generic map.
|
||||
\pre \link GeneralizedMap::is_sewable `is_sewable<i>(d1,d2)`\endlink.
|
||||
\pre \link GeneralizedMap::is_sewable `is_sewable<i>`\endlink(`d1`,`d2`).
|
||||
|
||||
\cgalAdvancedBegin
|
||||
If \link GenericMap::are_attributes_automatically_managed `are_attributes_automatically_managed()`\endlink`==false`, non void attributes are not updated; thus the generic map can be no more valid after this operation.
|
||||
|
|
|
|||
|
|
@ -164,7 +164,7 @@ returns the relative position of point
|
|||
`p` to the sphere defined by `A = tuple [first,last)`. The
|
||||
order of the points of \f$ A\f$ does not matter.
|
||||
|
||||
\pre `orientation(first,last)` is not `ZERO`.
|
||||
\pre \ref CGAL::orientation(ForwardIterator, ForwardIterator) "orientation(first,last)" is not `ZERO`.
|
||||
\tparam ForwardIterator has `Point_d<R>` as value type.
|
||||
*/
|
||||
template <class ForwardIterator> Bounded_side
|
||||
|
|
|
|||
|
|
@ -21,7 +21,7 @@ int dimension(const Kernel_d::Point_d& p);
|
|||
/*!
|
||||
returns the ith homogeneous coordinate of \f$ p\f$.
|
||||
|
||||
\pre `0 <= i <= dimension(p)`.
|
||||
\pre `0 <= i <=` \link Kernel_d::Component_accessor_d::dimension `dimension`\endlink(`p`).
|
||||
*/
|
||||
Kernel_d::RT homogeneous(const Kernel_d::Point_d& p,
|
||||
int i);
|
||||
|
|
@ -29,7 +29,7 @@ int i);
|
|||
/*!
|
||||
returns the ith %Cartesian coordinate of \f$ p\f$.
|
||||
|
||||
\pre `0 <= i < dimension(p)`.
|
||||
\pre `0 <= i <` \link Kernel_d::Component_accessor_d::dimension `dimension`\endlink(`p`).
|
||||
*/
|
||||
Kernel_d::FT cartesian(const Kernel_d::Point_d& p, int
|
||||
i);
|
||||
|
|
|
|||
|
|
@ -17,7 +17,7 @@ returns the relative position of point
|
|||
`p` to the sphere defined by `A = tuple [first,last)`. The
|
||||
order of the points of \f$ A\f$ does not matter.
|
||||
|
||||
\pre `orientation(first,last)` is not `ZERO`.
|
||||
\pre \ref CGAL::orientation(ForwardIterator, ForwardIterator) "orientation(first,last)" is not `ZERO`.
|
||||
\tparam ForwardIterator has `Kernel_d::Point_d` as value type.
|
||||
*/
|
||||
template <class ForwardIterator> Bounded_side
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ Vector& c);
|
|||
returns the
|
||||
inverse matrix of `M`. More precisely, \f$ 1/D\f$ times the matrix
|
||||
returned is the inverse of `M`.
|
||||
\pre `determinant(M) != 0`.
|
||||
\pre \ref determinant(const Matrix&) "determinant(M)"` != 0`.
|
||||
|
||||
\pre \f$ M\f$ is square.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -172,7 +172,8 @@ intersection between an object of type `Segment_3`, `Ray_3` or
|
|||
`Intersection operator()(Ray_3 r)`
|
||||
|
||||
`Intersection operator()(Line_3 l)`
|
||||
\pre do_intersect_surface(s/r/l) == true
|
||||
|
||||
\pre `do_intersect_surface_object(s/r/l)` == `true`
|
||||
*/
|
||||
typedef unspecified_type Construct_intersection;
|
||||
|
||||
|
|
|
|||
|
|
@ -432,16 +432,15 @@ bool is_isolated(Vertex_const_handle v) ;
|
|||
|
||||
returns one halfedge with source `v`. It's the starting point for
|
||||
the circular iteration over the halfedges with source `v`.
|
||||
\pre `!is_isolated(v)`.
|
||||
|
||||
\pre `!`\ref is_isolated(Vertex_const_handle) "is_isolated" `(v)`.
|
||||
*/
|
||||
Halfedge_const_handle first_out_edge(Vertex_const_handle v) ;
|
||||
|
||||
/*!
|
||||
|
||||
returns the halfedge with source `v` that is the last
|
||||
in the circular iteration before encountering `first_out_edge(v)`
|
||||
again. \pre `!is_isolated(v)`.
|
||||
in the circular iteration before encountering `first_out_edge(v)` again.
|
||||
\pre `!`\ref is_isolated(Vertex_const_handle) "is_isolated" `(v)`.
|
||||
|
||||
*/
|
||||
Halfedge_const_handle last_out_edge(Vertex_const_handle v) ;
|
||||
|
|
@ -482,7 +481,8 @@ Face_const_handle face(Halfedge_const_handle e) ;
|
|||
|
||||
/*!
|
||||
|
||||
returns the face incident to `v`. \pre `is_isolated(v)`.
|
||||
returns the face incident to `v`.
|
||||
\pre `!`\ref is_isolated(Vertex_const_handle) "is_isolated" `(v)`.
|
||||
*/
|
||||
Face_const_handle face(Vertex_const_handle v) ;
|
||||
|
||||
|
|
@ -733,13 +733,15 @@ bool is_standard(Vertex_const_handle v) ;
|
|||
|
||||
/*!
|
||||
returns the standard
|
||||
point that is the embedding of `v`. \pre `E.is_standard(v)`.
|
||||
point that is the embedding of `v`.
|
||||
\pre \ref is_standard(Vertex_const_handle v) "is_standard"(`v`).
|
||||
*/
|
||||
Point point(Vertex_const_handle v) ;
|
||||
|
||||
/*!
|
||||
returns the ray defining
|
||||
the non-standard point on the frame. \pre `!E.is_standard(v)`.
|
||||
the non-standard point on the frame.
|
||||
\pre !\ref is_standard(Vertex_const_handle v) "is_standard"(`v`).
|
||||
*/
|
||||
Ray ray(Vertex_const_handle v) ;
|
||||
|
||||
|
|
|
|||
|
|
@ -191,21 +191,20 @@ returns `true` iff
|
|||
bool is_standard(const Point_2& p) ;
|
||||
|
||||
/*!
|
||||
returns
|
||||
the standard point represented by `p`. \pre `K.is_standard(p)`.
|
||||
returns the standard point represented by `p`.
|
||||
\pre \ref is_standard(const Point_2& p) "is_standard"(`p`).
|
||||
*/
|
||||
Standard_point_2 standard_point(const Point_2& p) ;
|
||||
|
||||
/*!
|
||||
returns
|
||||
the oriented line representing the bundle of rays defining `p`.
|
||||
\pre `!K.is_standard(p)`.
|
||||
returns the oriented line representing the bundle of rays defining `p`.
|
||||
\pre ! \ref is_standard(const Point_2& p) "is_standard"(`p`).
|
||||
*/
|
||||
Standard_line_2 standard_line(const Point_2& p) ;
|
||||
|
||||
/*!
|
||||
a ray
|
||||
defining `p`. \pre `!K.is_standard(p)`.
|
||||
a ray defining `p`.
|
||||
\pre ! \ref is_standard(const Point_2& p) "is_standard"(`p`).
|
||||
*/
|
||||
Standard_ray_2 standard_ray(const Point_2& p) ;
|
||||
|
||||
|
|
|
|||
|
|
@ -1276,7 +1276,7 @@ Cell_handle start, int f) const;
|
|||
/*!
|
||||
Copies the `Cell_handle`s of all cells incident to `v` to the output
|
||||
iterator `cells`. Returns the resulting output iterator.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`, `t`.`is_vertex(v)`.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \ref CGAL::Periodic_3_triangulation_3::is_vertex "is_vertex"(`v`)
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1286,7 +1286,7 @@ incident_cells(Vertex_handle v, OutputIterator cells) const;
|
|||
Copies the `Facet`s incident to `v` to the output iterator
|
||||
`facets`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`, `t`.`is_vertex(v)`.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \ref CGAL::Periodic_3_triangulation_3::is_vertex "is_vertex"(`v`)
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1296,7 +1296,7 @@ incident_facets(Vertex_handle v, OutputIterator facets) const;
|
|||
Copies the `Edge`s incident to `v` to the output iterator
|
||||
`edges`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`, `t`.`is_vertex(v)`.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \ref CGAL::Periodic_3_triangulation_3::is_vertex "is_vertex"(`v`)
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1305,7 +1305,7 @@ incident_edges(Vertex_handle v, OutputIterator edges) const;
|
|||
/*!
|
||||
Copies the `Vertex_handle`s of all vertices adjacent to `v` to the
|
||||
output iterator `vertices`. Returns the resulting output iterator.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`, `t`.`is_vertex(v)`.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \ref CGAL::Periodic_3_triangulation_3::is_vertex "is_vertex"(`v`)
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1313,7 +1313,7 @@ adjacent_vertices(Vertex_handle v, OutputIterator vertices) const;
|
|||
|
||||
/*!
|
||||
Returns the degree of `v`, that is, the number of adjacent vertices.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`, `t`.`is_vertex(v)`.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \ref CGAL::Periodic_3_triangulation_3::is_vertex "is_vertex"(`v`)
|
||||
*/
|
||||
size_type degree(Vertex_handle v) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -314,7 +314,7 @@ Bounded_side bounded_side_2(ForwardIterator first,
|
|||
const PolygonTraits& traits);
|
||||
|
||||
/// Computes if a polygon is clockwise or counterclockwise oriented.
|
||||
/// \pre `is_simple_2(first, last, traits);`
|
||||
/// \pre \link CGAL::is_simple_2 `is_simple_2`\endlink(`first`, `last`, `traits`)
|
||||
///
|
||||
/// \tparam Traits is a model of the concept
|
||||
/// `PolygonTraits_2`.
|
||||
|
|
|
|||
|
|
@ -118,7 +118,7 @@ bool fair(TriangleMesh& tmesh,
|
|||
|
||||
@return `true` if fairing is successful, otherwise no vertices are relocated.
|
||||
|
||||
@pre `is_triangle_mesh(tmesh)`
|
||||
@pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
|
||||
@warning This function involves linear algebra, that is computed using non-exact, floating-point arithmetic.
|
||||
|
||||
|
|
|
|||
|
|
@ -337,8 +337,8 @@ struct Throw_at_first_output {
|
|||
* reports all the pairs of faces intersecting between two triangulated surface meshes.
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* \pre `CGAL::is_triangle_mesh(tm1)`
|
||||
* \pre `CGAL::is_triangle_mesh(tm2)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm1)` \endlink
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm2)` \endlink
|
||||
*
|
||||
* \tparam TriangleMesh a model of `FaceListGraph`
|
||||
* \tparam FaceRange range of `boost::graph_traits<TriangleMesh>::%face_descriptor`,
|
||||
|
|
@ -475,7 +475,7 @@ compute_face_face_intersection(const FaceRange& face_range1,
|
|||
* \attention If a polyline vertex intersects a face, the intersection will
|
||||
* be reported twice (or more if it is on a vertex, edge, or point).
|
||||
*
|
||||
* \pre `CGAL::is_triangle_mesh(tm)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm)` \endlink
|
||||
*
|
||||
* \tparam TriangleMesh a model of `FaceListGraph`
|
||||
* \tparam FaceRange range of `boost::graph_traits<TriangleMesh>::%face_descriptor`,
|
||||
|
|
@ -607,7 +607,7 @@ compute_face_polyline_intersection(const FaceRange& face_range,
|
|||
* \attention If a polyline vertex intersects a face, the intersection will
|
||||
* be reported twice (even more if it is on a vertex, edge, or point).
|
||||
*
|
||||
* \pre `CGAL::is_triangle_mesh(tm)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm)` \endlink
|
||||
*
|
||||
* \tparam TriangleMesh a model of `FaceListGraph`
|
||||
* \tparam FaceRange range of `boost::graph_traits<TriangleMesh>::%face_descriptor`,
|
||||
|
|
@ -939,8 +939,8 @@ compute_polylines_polylines_intersection(const PolylineRange& polylines1,
|
|||
* reports all the pairs of faces intersecting between two triangulated surface meshes.
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tm1)`
|
||||
* @pre `CGAL::is_triangle_mesh(tm2)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm1)` \endlink
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm2)` \endlink
|
||||
*
|
||||
* \tparam TriangleMesh a model of `FaceListGraph`
|
||||
* \tparam OutputIterator a model of `OutputIterator` holding objects of type
|
||||
|
|
@ -998,7 +998,7 @@ compute_face_face_intersection(const TriangleMesh& tm1,
|
|||
* \attention If a polyline vertex intersects a face or another polyline, the intersection will
|
||||
* be reported twice (even more if it is on a vertex, edge, or point).
|
||||
*
|
||||
* \pre `CGAL::is_triangle_mesh(tm)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm)` \endlink
|
||||
*
|
||||
* \tparam TriangleMesh a model of `FaceListGraph`
|
||||
* \tparam Polyline a `RandomAccessRange` of points. The point type of the range must be the
|
||||
|
|
@ -1223,10 +1223,10 @@ bool do_intersect(const Polyline& polyline1,
|
|||
* In that case, the meshes must be closed.
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tm1)`
|
||||
* @pre `CGAL::is_triangle_mesh(tm2)`
|
||||
* @pre `!do_overlap_test_of_bounded_sides || CGAL::is_closed(tm1)`
|
||||
* @pre `!do_overlap_test_of_bounded_sides || CGAL::is_closed(tm2)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm1)` \endlink
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm2)` \endlink
|
||||
* @pre `!do_overlap_test_of_bounded_sides` || \link CGAL::is_closed `CGAL::is_closed(tm1)` \endlink
|
||||
* @pre `!do_overlap_test_of_bounded_sides` || \link CGAL::is_closed `CGAL::is_closed(tm2)` \endlink
|
||||
*
|
||||
* @tparam TriangleMesh a model of `FaceListGraph`
|
||||
* @tparam NamedParameters1 a sequence of \ref bgl_namedparameters "Named Parameters" for `tm1`
|
||||
|
|
@ -1323,7 +1323,7 @@ bool do_intersect(const TriangleMesh& tm1,
|
|||
* and `false` otherwise.
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tm)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm)` \endlink
|
||||
*
|
||||
* \tparam TriangleMesh a model of `FaceListGraph`
|
||||
* \tparam PolylineRange a `RandomAccessRange` of `RandomAccessRange` of points. The point type of the range must be the
|
||||
|
|
@ -1390,7 +1390,7 @@ bool do_intersect(const TriangleMesh& tm,
|
|||
* returns `true` if there exists a face of `tm` and a segment of `polyline` which intersect, and `false` otherwise.
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tm)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm)` \endlink
|
||||
*
|
||||
* \tparam TriangleMesh a model of `FaceListGraph`
|
||||
* \tparam Polyline a `RandomAccessRange` of points. The point type of the range must be the
|
||||
|
|
|
|||
|
|
@ -149,8 +149,8 @@ namespace internal{
|
|||
* The normal vector to each face is chosen pointing on the side of the face
|
||||
* where its sequence of vertices is seen counterclockwise.
|
||||
*
|
||||
* @pre `CGAL::is_closed(tm)`
|
||||
* @pre `CGAL::is_triangle_mesh(tm)`
|
||||
* @pre \link CGAL::is_closed `CGAL::is_closed(tm)` \endlink
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm)` \endlink
|
||||
* @pre If `tm` contains several connected components, they are oriented consistently.
|
||||
* In other words, the answer to this predicate would be the same for each
|
||||
* isolated connected component.
|
||||
|
|
@ -374,7 +374,7 @@ void reverse_face_orientations(const FaceRange& face_range, PolygonMesh& pmesh)
|
|||
* @param tm a closed triangulated surface mesh
|
||||
* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below
|
||||
*
|
||||
* \pre `CGAL::is_closed(tm)`
|
||||
* @pre \link CGAL::is_closed `CGAL::is_closed(tm)` \endlink
|
||||
*
|
||||
* \cgalNamedParamsBegin
|
||||
* \cgalParamNBegin{vertex_point_map}
|
||||
|
|
@ -700,7 +700,7 @@ void set_cc_intersecting_pairs(
|
|||
* @param volume_id_map the property map filled by this function with indices of volume components associated to the faces of `tm`
|
||||
* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below
|
||||
*
|
||||
* @pre `CGAL::is_closed(tm)`
|
||||
* @pre \link CGAL::is_closed `CGAL::is_closed(tm)` \endlink
|
||||
*
|
||||
* \cgalNamedParamsBegin
|
||||
* \cgalParamNBegin{vertex_point_map}
|
||||
|
|
@ -1244,7 +1244,7 @@ volume_connected_components(const TriangleMesh& tm,
|
|||
* @param tm a closed triangulated surface mesh
|
||||
* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below
|
||||
*
|
||||
* @pre `CGAL::is_closed(tm)`
|
||||
* @pre \link CGAL::is_closed `CGAL::is_closed(tm)` \endlink
|
||||
*
|
||||
* @attention if `tm` is self-intersecting the behavior of this function is undefined.
|
||||
*
|
||||
|
|
@ -1307,7 +1307,7 @@ bool does_bound_a_volume(const TriangleMesh& tm, const NamedParameters& np = par
|
|||
* @param tm a closed triangulated surface mesh
|
||||
* @param np an optional sequence of \ref bgl_namedparameters "Named Parameters" among the ones listed below
|
||||
*
|
||||
* @pre `CGAL::is_closed(tm)`
|
||||
* @pre \link CGAL::is_closed `CGAL::is_closed(tm)` \endlink
|
||||
*
|
||||
* \cgalNamedParamsBegin
|
||||
* \cgalParamNBegin{outward_orientation}
|
||||
|
|
|
|||
|
|
@ -65,7 +65,7 @@ namespace Polygon_mesh_processing {
|
|||
|
||||
@return pair of `faces_out` and `vertices_out`
|
||||
|
||||
\pre `is_triangle_mesh(tmesh)`
|
||||
@pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
|
||||
@todo current algorithm iterates 10 times at most, since (I guess) there is no termination proof.
|
||||
*/
|
||||
|
|
|
|||
|
|
@ -562,7 +562,7 @@ struct Filter_wrapper_for_cap_needle_removal<TriangleMesh, VPM, Traits, Identity
|
|||
/// removed by flipping the edge opposite to the largest angle (with the exception of caps on the boundary that are
|
||||
/// simply removed from the mesh).
|
||||
///
|
||||
/// @pre `CGAL::is_triangle_mesh(tmesh)`
|
||||
/// @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
///
|
||||
/// @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph`
|
||||
/// @tparam FaceRange a model of `ConstRange` with `boost::graph_traits<TriangleMesh>::%face_descriptor` as value type
|
||||
|
|
@ -1371,7 +1371,7 @@ remove_a_border_edge(typename boost::graph_traits<TriangleMesh>::edge_descriptor
|
|||
// removes the degenerate edges from a triangulated surface mesh.
|
||||
// An edge is considered degenerate if its two extremities share the same location.
|
||||
//
|
||||
// @pre `CGAL::is_triangle_mesh(tmesh)`
|
||||
// @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
//
|
||||
// @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph`
|
||||
// @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters"
|
||||
|
|
@ -1926,7 +1926,7 @@ bool remove_degenerate_edges(TriangleMesh& tmesh,
|
|||
// A face is considered degenerate if two of its vertices share the same location,
|
||||
// or more generally if all its vertices are collinear.
|
||||
//
|
||||
// @pre `CGAL::is_triangle_mesh(tmesh)`
|
||||
// @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
//
|
||||
// @tparam TriangleMesh a model of `FaceListGraph` and `MutableFaceGraph`
|
||||
// @tparam NamedParameters a sequence of \ref bgl_namedparameters "Named Parameters"
|
||||
|
|
|
|||
|
|
@ -523,7 +523,7 @@ self_intersections_impl(const FaceRange& face_range,
|
|||
*
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tmesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
*
|
||||
* @tparam ConcurrencyTag enables sequential versus parallel algorithm.
|
||||
* Possible values are `Sequential_tag`, `Parallel_tag`, and `Parallel_if_available_tag`.
|
||||
|
|
@ -591,7 +591,7 @@ self_intersections(const FaceRange& face_range,
|
|||
*
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tmesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
*
|
||||
* @tparam ConcurrencyTag enables sequential versus parallel algorithm.
|
||||
* Possible values are `Sequential_tag`, `Parallel_tag`, and `Parallel_if_available_tag`.
|
||||
|
|
@ -656,7 +656,7 @@ self_intersections(const TriangleMesh& tmesh,
|
|||
*
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tmesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tm)` \endlink
|
||||
*
|
||||
* @tparam ConcurrencyTag enables sequential versus parallel algorithm.
|
||||
* Possible values are `Sequential_tag`, `Parallel_tag`, and `Parallel_if_available_tag`.
|
||||
|
|
@ -727,7 +727,7 @@ bool does_self_intersect(const FaceRange& face_range,
|
|||
*
|
||||
* This function depends on the package \ref PkgBoxIntersectionD.
|
||||
*
|
||||
* @pre `CGAL::is_triangle_mesh(tmesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
*
|
||||
* @tparam ConcurrencyTag enables sequential versus parallel algorithm.
|
||||
* Possible values are `Sequential_tag`, `Parallel_tag`, and `Parallel_if_available_tag`.
|
||||
|
|
|
|||
|
|
@ -124,7 +124,8 @@ public:
|
|||
* @param vpmap the property map with the points associated to the vertices of `tmesh`
|
||||
* @param gt an instance of the geometric traits class
|
||||
*
|
||||
* @pre `CGAL::is_closed(tmesh) && CGAL::is_triangle_mesh(tmesh)`
|
||||
* @pre \link CGAL::is_closed `CGAL::is_closed(tmesh)` \endlink
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
*/
|
||||
Side_of_triangle_mesh(const TriangleMesh& tmesh,
|
||||
VertexPointMap vpmap,
|
||||
|
|
@ -150,7 +151,8 @@ public:
|
|||
* @param tmesh the triangulated surface mesh bounding the domain to be tested
|
||||
* @param gt an instance of the geometric traits class
|
||||
*
|
||||
* @pre `CGAL::is_closed(tmesh) && CGAL::is_triangle_mesh(tmesh)`
|
||||
* @pre \link CGAL::is_closed `CGAL::is_closed(tmesh)` \endlink
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
*/
|
||||
Side_of_triangle_mesh(const TriangleMesh& tmesh,
|
||||
const GeomTraits& gt=GeomTraits())
|
||||
|
|
|
|||
|
|
@ -532,7 +532,7 @@ bool is_used(size_type i) const;
|
|||
/*!
|
||||
returns the element at pos `i` in the container.
|
||||
|
||||
\pre `is_used(i) == true` and \f$ 0 \leq \f$ `i` \f$ < \f$ `capacity()`
|
||||
\pre \link is_used(size_type)const `is_used(i)`\endlink`== true` and \f$ 0 \leq \f$ `i` \f$ < \f$ `capacity()`
|
||||
*/
|
||||
|
||||
const T& operator[] (size_type i) const;
|
||||
|
|
@ -545,7 +545,7 @@ const T& operator[] (size_type i) const;
|
|||
/*!
|
||||
returns the element at pos `i` in the container.
|
||||
|
||||
\pre `is_used(i) == true` and \f$ 0 \leq \f$ `i` \f$ < \f$ `capacity()`
|
||||
\pre `\link is_used(size_type)const `is_used(i)`\endlink`== true` and \f$ 0 \leq \f$ `i` \f$ < \f$ `capacity()`
|
||||
*/
|
||||
|
||||
T& operator[] (size_type i);
|
||||
|
|
|
|||
|
|
@ -239,14 +239,14 @@ Point_2 target_of_supporting_site(unsigned int i);
|
|||
/*!
|
||||
Returns the source point of the `i`-th crossing site of the
|
||||
this site.
|
||||
\pre `is_segment()` must be `true`, `is_input(i)` must be `false` and `i` must either be `0` or `1`.
|
||||
\pre `is_segment()` must be `true`, \link is_input(unsigned int) `is_input(i)`\endlink must be `false` and `i` must either be `0` or `1`.
|
||||
*/
|
||||
Point_2 source_of_crossing_site(unsigned int i);
|
||||
|
||||
/*!
|
||||
Returns the target point of the `i`-th supporting site of the
|
||||
this site.
|
||||
\pre `is_segment()` must be `true`, `is_input(i)` must be `false` and `i` must either be `0` or `1`.
|
||||
\pre `is_segment()` must be `true`, \link is_input(unsigned int) `is_input(i)`\endlink must be `false` and `i` must either be `0` or `1`.
|
||||
*/
|
||||
Point_2 target_of_crossing_site(unsigned int i);
|
||||
|
||||
|
|
|
|||
|
|
@ -234,14 +234,14 @@ Point_handle target_of_supporting_site(unsigned int i);
|
|||
/*!
|
||||
Returns a handle to the source point of the `i`-th crossing site
|
||||
of the this site.
|
||||
\pre `is_segment()` must be `true`, `is_input(i)` must be `false` and `i` must either be `0` or `1`.
|
||||
\pre `is_segment()` must be `true`, \link is_input(unsigned int) `is_input(i)`\endlink must be `false` and `i` must either be `0` or `1`.
|
||||
*/
|
||||
Point_handle source_of_crossing_site(unsigned int i);
|
||||
|
||||
/*!
|
||||
Returns a handle to the target point of the `i`-th supporting
|
||||
site of the this site.
|
||||
\pre `is_segment()` must be `true`, `is_input(i)` must be `false` and `i` must either be `0` or `1`.
|
||||
\pre `is_segment()` must be `true`, \link is_input(unsigned int) `is_input(i)`\endlink must be `false` and `i` must either be `0` or `1`.
|
||||
*/
|
||||
Point_handle target_of_crossing_site(unsigned int i);
|
||||
|
||||
|
|
|
|||
|
|
@ -64,7 +64,7 @@ Geom_traits::Iso_rectangle_2 bbox();
|
|||
|
||||
/*!
|
||||
returns the vector field value and the local density.
|
||||
\pre `is_in_domain(p)` must be `true`.
|
||||
\pre \link is_in_domain `is_in_domain(p)`\endlink must be `true`.
|
||||
*/
|
||||
std::pair<Vector_2,FT> get_field(Point_2 p);
|
||||
|
||||
|
|
@ -76,7 +76,7 @@ bool is_in_domain(Point_2 p);
|
|||
|
||||
/*!
|
||||
returns the integration step at the point `p`, i.e., the distance between `p` and the next point in the polyline.
|
||||
\pre `is_in_domain(p)` must be `true`.
|
||||
\pre \link is_in_domain `is_in_domain(p)`\endlink must be `true`.
|
||||
*/
|
||||
FT get_integration_step(Point_2 p);
|
||||
|
||||
|
|
|
|||
|
|
@ -617,7 +617,7 @@ public:
|
|||
*
|
||||
* @param vd a control vertex
|
||||
* @param t translation vector
|
||||
* \pre `is_control_vertex(vd)`
|
||||
* \pre \link is_control_vertex `is_control_vertex(vd)`\endlink
|
||||
*/
|
||||
template<class Vect>
|
||||
void translate(vertex_descriptor vd, const Vect& t)
|
||||
|
|
@ -662,7 +662,7 @@ public:
|
|||
* @param vd a control vertex
|
||||
* @param to_rotation_center the vector to translate the origin to the center of the rotation
|
||||
* @param quat quaternion of the rotation
|
||||
* \pre `is_control_vertex(vd)`
|
||||
* \pre \link is_control_vertex `is_control_vertex(vd)`\endlink
|
||||
* \pre `quad` represents a rotation
|
||||
*/
|
||||
template <typename Quaternion, typename Vect>
|
||||
|
|
@ -709,7 +709,7 @@ public:
|
|||
/**
|
||||
* Returns the target position of a control vertex.
|
||||
* \param vd a control vertex
|
||||
* \pre `is_control_vertex(vd)`
|
||||
* \pre \link is_control_vertex `is_control_vertex(vd)`\endlink
|
||||
*/
|
||||
const Point& target_position(vertex_descriptor vd)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -66,7 +66,7 @@ sdf_values( const TriangleMesh& triangle_mesh,
|
|||
* It is possible to compute raw SDF values (without postprocessing). In such a case,
|
||||
* -1 is used to indicate when no SDF value could be computed for a facet.
|
||||
*
|
||||
* @pre `is_triangle_mesh(triangle_mesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
*
|
||||
* @tparam TriangleMesh a model of `FaceListGraph`
|
||||
* @tparam SDFPropertyMap a `ReadWritePropertyMap` with `boost::graph_traits<TriangleMesh>::%face_descriptor` as key and `double` as value type
|
||||
|
|
@ -119,7 +119,7 @@ sdf_values( const TriangleMesh& triangle_mesh,
|
|||
*
|
||||
* See the section \ref Surface_mesh_segmentationPostprocessing for more details.
|
||||
*
|
||||
* @pre `is_triangle_mesh(triangle_mesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
* @pre Raw values should be greater or equal to 0. -1 indicates when no value could be computed
|
||||
*
|
||||
* @tparam TriangleMesh a model of `FaceListGraph`
|
||||
|
|
@ -157,7 +157,7 @@ sdf_values_postprocessing(const TriangleMesh& triangle_mesh,
|
|||
* \note There is no direct relation between the parameter `number_of_clusters`
|
||||
* and the final number of segments after segmentation. However, setting a large number of clusters will result in a detailed segmentation of the mesh with a large number of segments.
|
||||
*
|
||||
* @pre `is_triangle_mesh(triangle_mesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
* @pre `number_of_clusters > 0`
|
||||
*
|
||||
* @tparam TriangleMesh a model of `FaceListGraph`
|
||||
|
|
@ -253,7 +253,7 @@ segmentation_via_sdf_values(const TriangleMesh& triangle_mesh,
|
|||
* it is more efficient to first compute the SDF values using `CGAL::sdf_values()` and use them in different calls to
|
||||
* `CGAL::segmentation_from_sdf_values()`.
|
||||
*
|
||||
* @pre `is_triangle_mesh(triangle_mesh)`
|
||||
* @pre \link CGAL::is_triangle_mesh `CGAL::is_triangle_mesh(tmesh)` \endlink
|
||||
* @pre `number_of_clusters > 0`
|
||||
*
|
||||
* @tparam TriangleMesh a model of `FaceListGraph`
|
||||
|
|
|
|||
|
|
@ -43,7 +43,7 @@ namespace Surface_mesh_topology {
|
|||
bool can_be_pushed(halfedge_descriptor hd, bool flip=false) const;
|
||||
|
||||
/// adds `hd` at the end of this path. If `flip` is true, the opposite of `hd` is considered.
|
||||
/// @pre `can_be_pushed(hd)`
|
||||
/// @pre \link can_be_pushed `can_be_pushed(hd)`\endlink
|
||||
void push_back(halfedge_descriptor hd, bool flip=false);
|
||||
|
||||
/// returns `true` iff the dart/halfedge with index `i` can be added at the end of this path.
|
||||
|
|
@ -52,7 +52,7 @@ namespace Surface_mesh_topology {
|
|||
|
||||
/// adds the dart/halfedge with index `i` at the end of this path.
|
||||
/// If Mesh is a `Polyhedron_3`, takes time proportional to the number of halfedges.
|
||||
/// @pre `can_be_pushed_by_index(i)`
|
||||
/// @pre \link can_be_pushed_by_index `can_be_pushed_by_index(i)`\endlink
|
||||
void push_back_by_index(std::size_t i);
|
||||
|
||||
/// adds successively all dart/halfedges in `l` (a sequence of indices), at the end of the path.
|
||||
|
|
|
|||
|
|
@ -292,7 +292,7 @@ public:
|
|||
}
|
||||
|
||||
/// Add the given dart at the end of this path.
|
||||
/// @pre can_be_pushed(dh)
|
||||
/// @pre \link can_be_pushed `can_be_pushed(dh)`\endlink
|
||||
void push_back(Dart_const_descriptor dh, bool flip=false,
|
||||
bool update_isclosed=true)
|
||||
{
|
||||
|
|
|
|||
|
|
@ -447,7 +447,7 @@ public:
|
|||
}
|
||||
|
||||
/// Add the given dart at the end of this path.
|
||||
/// @pre can_be_pushed(dh)
|
||||
/// @pre \link can_be_pushed `can_be_pushed(dh)`\endlink
|
||||
void push_back(Dart_const_descriptor dh, bool update_isclosed=true)
|
||||
{
|
||||
CGAL_assertion(dh!=Map::null_descriptor);
|
||||
|
|
|
|||
|
|
@ -234,7 +234,7 @@ Finite_facets_iterator finite_facets_end() const;
|
|||
Copies the `Cell_handle`s of all cells incident to `v` to the output
|
||||
iterator `cells`. If `t.dimension() < 3`, then do nothing.
|
||||
Returns the resulting output iterator.
|
||||
\pre `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `is_vertex(v->point())`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
|
|||
|
|
@ -528,7 +528,7 @@ void flip_flippable(Cell_handle c, int i);
|
|||
Creates a new vertex, inserts it in cell `c` and returns its handle.
|
||||
The cell `c` is split into four new cells, each of these cells being
|
||||
formed by the new vertex and a facet of `c`.
|
||||
\pre `tds`.`dimension()` \f$ = 3\f$ and `c` is a cell of `tds`.
|
||||
\pre `dimension()` \f$ = 3\f$ and \link is_cell `is_cell(c)`\endlink.
|
||||
*/
|
||||
Vertex_handle insert_in_cell(Cell_handle c);
|
||||
|
||||
|
|
@ -536,14 +536,14 @@ Vertex_handle insert_in_cell(Cell_handle c);
|
|||
Creates a new vertex, inserts it in facet `f` and returns its handle.
|
||||
In dimension 3, the two incident cells are split into 3 new cells;
|
||||
in dimension 2, the facet is split into 3 facets.
|
||||
\pre `tds`.`dimension()` \f$ \geq2\f$ and `f` is a facet of `tds`.
|
||||
\pre `dimension()` \f$ \geq2\f$ and \link is_facet(Cell_handle, int)const `is_facet(f.first, f.second)`\endlink.
|
||||
*/
|
||||
Vertex_handle insert_in_facet(const Facet & f);
|
||||
|
||||
/*!
|
||||
Creates a new vertex, inserts it in facet `i` of `c` and returns its
|
||||
handle.
|
||||
\pre `tds`.`dimension()` \f$ \geq2\f$, \f$ i \in\{0,1,2,3\}\f$ in dimension 3, \f$ i=3\f$ in dimension 2 and `(c,i)` is a facet of `tds`.
|
||||
\pre `dimension()` \f$ \geq2\f$, \f$ i \in\{0,1,2,3\}\f$ in dimension 3, \f$ i=3\f$ in dimension 2 and \link is_facet(Cell_handle, int)const `is_facet(c, i)`\endlink.
|
||||
*/
|
||||
Vertex_handle insert_in_facet(Cell_handle c, int i);
|
||||
|
||||
|
|
@ -553,14 +553,14 @@ In dimension 3, all the
|
|||
incident cells are split into 2 new cells; in dimension 2, the 2
|
||||
incident facets are split into 2 new facets; in dimension 1, the edge is
|
||||
split into 2 new edges.
|
||||
\pre `tds`.`dimension()` \f$ \geq1\f$ and `e` is an edge of `tds`.
|
||||
\pre `dimension()` \f$ \geq1\f$ and \link is_edge(Cell_handle, int,int)const `is_edge(e.first, e.second, e.third)`\endlink.
|
||||
*/
|
||||
Vertex_handle insert_in_edge(Edge e);
|
||||
|
||||
/*!
|
||||
Creates a new vertex, inserts it in edge \f$ (i,j)\f$ of `c` and returns its
|
||||
handle.
|
||||
\pre `tds`.`dimension()` \f$ \geq1\f$. \f$ i\neq j\f$, \f$ i,j \in\{0,1,2,3\}\f$ in dimension 3, \f$ i,j \in\{0,1,2\}\f$ in dimension 2, \f$ i,j \in\{0,1\}\f$ in dimension 1 and `(c,i,j)` is an edge of `tds`.
|
||||
\pre `dimension()` \f$ \geq1\f$. \f$ i\neq j\f$, \f$ i,j \in\{0,1,2,3\}\f$ in dimension 3, \f$ i,j \in\{0,1,2\}\f$ in dimension 2, \f$ i,j \in\{0,1\}\f$ in dimension 1 and \link is_edge(Cell_handle, int,int)const `is_edge(c,i,j)`\endlink.
|
||||
*/
|
||||
Vertex_handle insert_in_edge(Cell_handle c, int i, int j);
|
||||
|
||||
|
|
@ -582,8 +582,7 @@ This method can be used to insert the first two vertices in an empty
|
|||
triangulation.
|
||||
|
||||
A handle to `v` is returned.
|
||||
\pre `tds`.`dimension()` \f$ = d < 3\f$. When `tds`.`number_of_vertices()` \f$ >0\f$, \f$ star \neq\f$ `Vertex_handle()` and `star` is a vertex of `tds`.
|
||||
|
||||
\pre `dimension()` \f$ = d < 3\f$. When `number_of_vertices()` \f$ >0\f$, \f$ star \neq\f$ `Vertex_handle()` and \link is_vertex `is_vertex(star)`\endlink.
|
||||
|
||||
\anchor TDS3figtopoinsert_outside_affine_hull
|
||||
\image html topo-insert_outside_affine_hull.png "insert_increase_dimension (1-dimensional case)."
|
||||
|
|
@ -627,7 +626,8 @@ This operation is the reciprocal of `insert_increase_dimension()`.
|
|||
It transforms a triangulation of the sphere \f$ S^d\f$ of \f$ \mathbb{R}^{d+1}\f$ into the
|
||||
triangulation of the sphere \f$ S^{d-1}\f$ of \f$ \mathbb{R}^{d}\f$ by removing the vertex
|
||||
`v`. Delete the cells incident to `w`, keep the others.
|
||||
\pre `tds`.`dimension()` \f$ = d \geq-1\f$. `tds`.`degree(v)` \f$ =\f$ `degree(w)` \f$ =\f$ `tds`.`number_of_vertices()` \f$ -1\f$.
|
||||
\pre `dimension()` \f$ = d \geq-1\f$.
|
||||
\pre \link degree `degree(v)`\endlink \f$ =\f$ \link degree `degree(w)`\endlink \f$ =\f$ `number_of_vertices()` \f$ -1\f$.
|
||||
|
||||
*/
|
||||
void remove_decrease_dimension(Vertex_handle v, Vertex_handle w = v);
|
||||
|
|
@ -635,10 +635,10 @@ void remove_decrease_dimension(Vertex_handle v, Vertex_handle w = v);
|
|||
/*!
|
||||
Removes `v`. The incident simplices of maximal dimension incident to
|
||||
`v` are replaced by a single simplex of the same dimension. This
|
||||
operation is exactly the reciprocal to `tds`.`insert_in_cell(v)` in
|
||||
dimension 3, `tds`.`insert_in_facet(v)` in dimension 2, and
|
||||
`tds`.`insert_in_edge(v)` in dimension 1.
|
||||
\pre `tds`.`degree(v)` \f$ =\f$ `tds`.`dimension()+1`.
|
||||
operation is exactly the reciprocal to `insert_in_cell(v)` in
|
||||
dimension 3, `insert_in_facet(v)` in dimension 2, and
|
||||
`insert_in_edge(v)` in dimension 1.
|
||||
\pre \link degree `degree(v)`\endlink \f$ =\f$ `dimension()+1`.
|
||||
|
||||
*/
|
||||
Cell_handle remove_from_maximal_dimension_simplex(Vertex_handle v);
|
||||
|
|
@ -746,7 +746,7 @@ Cell_handle n2, Cell_handle n3);
|
|||
\cgalAdvancedBegin
|
||||
Removes the vertex from the triangulation data structure.
|
||||
\cgalAdvancedEnd
|
||||
\pre The vertex is a vertex of `tds`.
|
||||
\pre \link is_vertex `is_vertex(v)`\endlink.
|
||||
*/
|
||||
void delete_vertex( Vertex_handle v );
|
||||
|
||||
|
|
@ -755,7 +755,7 @@ void delete_vertex( Vertex_handle v );
|
|||
\cgalAdvancedBegin
|
||||
Removes the cell from the triangulation data structure.
|
||||
\cgalAdvancedEnd
|
||||
\pre The cell is a cell of `tds`.
|
||||
\pre \link is_cell(Cell_handle)const `is_cell(c)`\endlink.
|
||||
*/
|
||||
void delete_cell( Cell_handle c );
|
||||
|
||||
|
|
@ -924,7 +924,8 @@ Cell_handle start, int f) const;
|
|||
Copies the `Cell_handle`s of all cells incident to `v` to the
|
||||
output iterator `cells`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `tds.dimension()` \f$ =3\f$, `v` \f$ \neq\f$ `Vertex_handle()`, `tds.is_vertex(v)`.
|
||||
\pre `dimension()` \f$ =3\f$
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \link is_vertex `is_vertex(v)`\endlink
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -934,7 +935,8 @@ incident_cells(Vertex_handle v, OutputIterator cells) const;
|
|||
Copies the `Facet`s incident to `v` to the output iterator
|
||||
`facets`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `tds.dimension()` \f$ >1\f$, `v` \f$ \neq\f$ `Vertex_handle()`, `tds.is_vertex(v)`.
|
||||
\pre `dimension()` \f$ >1\f$
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \link is_vertex `is_vertex(v)`\endlink
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -943,7 +945,8 @@ incident_facets(Vertex_handle v, OutputIterator facets) const;
|
|||
/*!
|
||||
Copies all `Edge`s incident to `v` to the
|
||||
output iterator `edges`. Returns the resulting output iterator.
|
||||
\pre `tds.dimension()` \f$ >0\f$, `v` \f$ \neq\f$ `Vertex_handle()`, `tds.is_vertex(v)`.
|
||||
\pre `dimension()` \f$ >0\f$
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \link is_vertex `is_vertex(v)`\endlink
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -951,9 +954,9 @@ incident_edges(Vertex_handle v, OutputIterator edges) const;
|
|||
|
||||
/*!
|
||||
Copies the `Vertex_handle`s of all vertices adjacent to `v` to the
|
||||
output iterator `vertices`. If `tds.dimension()` \f$ <0\f$, then do
|
||||
output iterator `vertices`. If `dimension()` \f$ <0\f$, then do
|
||||
nothing. Returns the resulting output iterator.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`, `tds.is_vertex(v)`.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()` and \link is_vertex `is_vertex(v)`\endlink
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -961,7 +964,8 @@ adjacent_vertices(Vertex_handle v, OutputIterator vertices) const;
|
|||
|
||||
/*!
|
||||
Returns the degree of `v`, that is, the number of incident vertices.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`, `tds.is_vertex(v)`.
|
||||
\pre `v` \f$ \neq\f$ `Vertex_handle()`
|
||||
\pre \link is_vertex `is_vertex(v)`\endlink
|
||||
*/
|
||||
size_type degree(Vertex_handle v) const;
|
||||
|
||||
|
|
|
|||
|
|
@ -1582,7 +1582,8 @@ Cell_handle start, int f) const;
|
|||
Copies the `Cell_handle`s of all cells incident to `v` to the output
|
||||
iterator `cells`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `t.dimension() == 3`, `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `t.dimension() == 3`
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1595,7 +1596,8 @@ Returns `true` in case of success. Otherwise, `cells` is emptied and the functio
|
|||
returns false. In any case, the locked cells are not unlocked by
|
||||
`try_lock_and_get_incident_cells()`, leaving this choice to the user.
|
||||
|
||||
\pre `t.dimension() == 3`, `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `t.dimension() == 3`
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
bool
|
||||
try_lock_and_get_incident_cells(Vertex_handle v,
|
||||
|
|
@ -1604,7 +1606,8 @@ bool
|
|||
Copies the `Cell_handle`s of all finite cells incident to `v` to the output
|
||||
iterator `cells`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `t.dimension() == 3`, `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `t.dimension() == 3`
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1614,7 +1617,8 @@ finite_incident_cells(Vertex_handle v, OutputIterator cells) const;
|
|||
Copies all `Facet`s incident to `v` to the output iterator
|
||||
`facets`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `t.dimension() > 1`, `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `t.dimension() > 1`
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1624,7 +1628,8 @@ incident_facets(Vertex_handle v, OutputIterator facets) const;
|
|||
Copies all finite `Facet`s incident to `v` to the output iterator
|
||||
`facets`.
|
||||
Returns the resulting output iterator.
|
||||
\pre `t.dimension() > 1`, `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `t.dimension() > 1`
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1633,7 +1638,8 @@ finite_incident_facets(Vertex_handle v, OutputIterator facets) const;
|
|||
/*!
|
||||
Copies all `Edge`s incident to `v` to the
|
||||
output iterator `edges`. Returns the resulting output iterator.
|
||||
\pre `t.dimension() > 0`, `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `t.dimension() > 0`
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1642,7 +1648,8 @@ incident_edges(Vertex_handle v, OutputIterator edges) const;
|
|||
/*!
|
||||
Copies all finite `Edge`s incident to `v` to the
|
||||
output iterator `edges`. Returns the resulting output iterator.
|
||||
\pre `t.dimension() > 0`, `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `t.dimension() > 0`
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1652,7 +1659,7 @@ finite_incident_edges(Vertex_handle v, OutputIterator edges) const;
|
|||
Copies the `Vertex_handle`s of all vertices adjacent to `v` to the
|
||||
output iterator `vertices`. If `t.dimension() < 0`, then do
|
||||
nothing. Returns the resulting output iterator.
|
||||
\pre `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1662,7 +1669,7 @@ adjacent_vertices(Vertex_handle v, OutputIterator vertices) const;
|
|||
Copies the `Vertex_handle`s of all finite vertices adjacent to `v` to the
|
||||
output iterator `vertices`. If `t.dimension() < 0`, then do
|
||||
nothing. Returns the resulting output iterator.
|
||||
\pre `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
template <class OutputIterator>
|
||||
OutputIterator
|
||||
|
|
@ -1671,7 +1678,7 @@ finite_adjacent_vertices(Vertex_handle v, OutputIterator vertices) const;
|
|||
/*!
|
||||
Returns the degree of `v`, that is, the number of incident vertices.
|
||||
The infinite vertex is counted.
|
||||
\pre `v != Vertex_handle()`, `t.is_vertex(v)`.
|
||||
\pre `v != Vertex_handle()` and \link is_vertex `t.is_vertex(v)`\endlink.
|
||||
*/
|
||||
size_type degree(Vertex_handle v) const;
|
||||
|
||||
|
|
|
|||
Loading…
Reference in New Issue