diff --git a/Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/AosTraits--Merge_2.h b/Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/AosTraits--Merge_2.h index 6c8bbdf153f..117c62aaf9c 100644 --- a/Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/AosTraits--Merge_2.h +++ b/Arrangement_on_surface_2/doc/Arrangement_on_surface_2/Concepts/AosTraits--Merge_2.h @@ -18,7 +18,7 @@ public: /*! accepts two mergeable \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, diff --git a/BGL/include/CGAL/boost/graph/Euler_operations.h b/BGL/include/CGAL/boost/graph/Euler_operations.h index ece862d5dc7..e7089b7b66f 100644 --- a/BGL/include/CGAL/boost/graph/Euler_operations.h +++ b/BGL/include/CGAL/boost/graph/Euler_operations.h @@ -1552,7 +1552,7 @@ does_satisfy_link_condition(typename boost::graph_traits::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 boost::graph_traits::vertex_descriptor diff --git a/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h b/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h index bc681d3bf38..5dd40f19b0b 100644 --- a/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h +++ b/Barycentric_coordinates_2/include/CGAL/Barycentric_coordinates_2/triangle_coordinates_2.h @@ -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` 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 std::tuple< diff --git a/Boolean_set_operations_2/doc/Boolean_set_operations_2/Concepts/ArrDirectionalTraits--Merge_2.h b/Boolean_set_operations_2/doc/Boolean_set_operations_2/Concepts/ArrDirectionalTraits--Merge_2.h index fa931a25d70..02e88928569 100644 --- a/Boolean_set_operations_2/doc/Boolean_set_operations_2/Concepts/ArrDirectionalTraits--Merge_2.h +++ b/Boolean_set_operations_2/doc/Boolean_set_operations_2/Concepts/ArrDirectionalTraits--Merge_2.h @@ -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, diff --git a/Combinatorial_map/doc/Combinatorial_map/Concepts/CombinatorialMap.h b/Combinatorial_map/doc/Combinatorial_map/Concepts/CombinatorialMap.h index 251d424bc02..efe5fefc244 100644 --- a/Combinatorial_map/doc/Combinatorial_map/Concepts/CombinatorialMap.h +++ b/Combinatorial_map/doc/Combinatorial_map/Concepts/CombinatorialMap.h @@ -149,7 +149,7 @@ template 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 D1=\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 D2=\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 d2=f(d1), where f is the bijection between D1 and D2 satisfying: f(d1)=d2, and for all e \f$ \in \f$ D1, for all j \f$ \in \f$ {1,\f$ \ldots\f$,i-2,i+2,\f$ \ldots\f$,d}, f(\f$ \beta_j\f$(e))=\f$ \beta_j^{-1}\f$(f(e)). 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 j-cells c1 and c2 which are merged into one j-cell during the sew, the two associated attributes attr1 and attr2 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::type::On_merge`\endlink is called on the two attributes attr1 and attr2. If set, the dynamic onmerge function of i-attributes is also called on attr1 and attr2. Then, the attribute attr1 is associated to all darts of the resulting j-cell. Finally, attribute attr2 is removed from the generic map. -\pre \link CombinatorialMap::is_sewable `is_sewable(d1,d2)`\endlink. +\pre \link CombinatorialMap::is_sewable `is_sewable`\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. diff --git a/Combinatorial_map/doc/Combinatorial_map/Concepts/GenericMap.h b/Combinatorial_map/doc/Combinatorial_map/Concepts/GenericMap.h index b7f985acac0..4c9a672d69b 100644 --- a/Combinatorial_map/doc/Combinatorial_map/Concepts/GenericMap.h +++ b/Combinatorial_map/doc/Combinatorial_map/Concepts/GenericMap.h @@ -467,14 +467,14 @@ const typename Attribute_type::type::Info & info(Dart_const_descriptor adart) /*! A shortcut for \link GenericMap::dart_of_attribute `dart_of_attribute`\endlink`(`\link GenericMap::attribute `attribute`\endlink`(adart))`. -\pre `attribute(adart)!=nullptr`. +\pre \link GenericMap::attribute `attribute`\endlink`(adart)!=nullptr`. */ template Dart_descriptor & dart(Dart_descriptor adart); /*! A shortcut for \link GenericMap::dart_of_attribute(typename Attribute_const_descriptor::type)const `dart_of_attribute`\endlink`(`\link GenericMap::attribute(Dart_const_descriptor)const `attribute`\endlink`(adart))` for const descriptor. -\pre `attribute(adart)!=nullptr`. +\pre \link GenericMap::attribute(Dart_const_descriptor)const `attribute`\endlink`(adart)!=nullptr`. */ template 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::type::On_merge`\endlink(a,a') is called for all enabled i-attributes, for i>=2, with a the original 2-attribute associated with `d1` and a' the original 2-attribute associated with `d2`. If set, the dynamic on-merge function of i-attributes is also called on a and a'. @@ -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-cell containing `d`. Returns the number of darts removed from the generic map. -\pre `is_removable(d)`. +\pre \link GenericMap::is_removable `is_removable`\endlink(`d`). See examples in \cgalFigureRef{fig_cmap_insert_vertex}, \cgalFigureRef{fig_cmap_insert_edge} and \cgalFigureRef{fig_cmap_insert_facet}. diff --git a/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h b/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h index 60029fab9ce..f77131b22cf 100644 --- a/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h +++ b/Constrained_triangulation_3/include/CGAL/Conforming_constrained_Delaunay_triangulation_3.h @@ -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 { diff --git a/Generalized_map/doc/Generalized_map/Concepts/GeneralizedMap.h b/Generalized_map/doc/Generalized_map/Concepts/GeneralizedMap.h index 16fa1e40eab..893231d371e 100644 --- a/Generalized_map/doc/Generalized_map/Concepts/GeneralizedMap.h +++ b/Generalized_map/doc/Generalized_map/Concepts/GeneralizedMap.h @@ -113,7 +113,7 @@ template 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 D1=\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 D2=\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 d2=f(d1), where f is the bijection between D1 and D2 satisfying: f(d1)=d2, and for all e\f$ \in\f$ D1, for all j\f$ \in\f$ {1,\f$ \ldots\f$,i-2,i+2,\f$ \ldots\f$,d}, f(\f$ \alpha_j\f$(e))=\f$ \alpha_j\f$(f(e)). 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 j-cells c1 and c2 which are merged into one j-cell during the sew, the two associated attributes attr1 and attr2 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::type::On_merge`\endlink is called on the two attributes attr1 and attr2. If set, the dynamic onmerge function of i-attributes is also called on attr1 and attr2. Then, the attribute attr1 is associated to all darts of the resulting j-cell. Finally, attribute attr2 is removed from the generic map. -\pre \link GeneralizedMap::is_sewable `is_sewable(d1,d2)`\endlink. +\pre \link GeneralizedMap::is_sewable `is_sewable`\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. diff --git a/Kernel_d/doc/Kernel_d/CGAL/predicates_d.h b/Kernel_d/doc/Kernel_d/CGAL/predicates_d.h index 5eaddde1125..d0642c2017b 100644 --- a/Kernel_d/doc/Kernel_d/CGAL/predicates_d.h +++ b/Kernel_d/doc/Kernel_d/CGAL/predicates_d.h @@ -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` as value type. */ template Bounded_side diff --git a/Kernel_d/doc/Kernel_d/Concepts/Kernel--Component_accessor_d.h b/Kernel_d/doc/Kernel_d/Concepts/Kernel--Component_accessor_d.h index ecc427a12b7..05aeb6a194d 100644 --- a/Kernel_d/doc/Kernel_d/Concepts/Kernel--Component_accessor_d.h +++ b/Kernel_d/doc/Kernel_d/Concepts/Kernel--Component_accessor_d.h @@ -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); diff --git a/Kernel_d/doc/Kernel_d/Concepts/Kernel--Side_of_bounded_sphere_d.h b/Kernel_d/doc/Kernel_d/Concepts/Kernel--Side_of_bounded_sphere_d.h index b436ee1561a..32cfc217fb1 100644 --- a/Kernel_d/doc/Kernel_d/Concepts/Kernel--Side_of_bounded_sphere_d.h +++ b/Kernel_d/doc/Kernel_d/Concepts/Kernel--Side_of_bounded_sphere_d.h @@ -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 Bounded_side diff --git a/Kernel_d/doc/Kernel_d/Concepts/LinearAlgebraTraits_d.h b/Kernel_d/doc/Kernel_d/Concepts/LinearAlgebraTraits_d.h index e0e523e5363..6b55ad30d40 100644 --- a/Kernel_d/doc/Kernel_d/Concepts/LinearAlgebraTraits_d.h +++ b/Kernel_d/doc/Kernel_d/Concepts/LinearAlgebraTraits_d.h @@ -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. */ diff --git a/Mesh_3/doc/Mesh_3/Concepts/MeshDomain_3.h b/Mesh_3/doc/Mesh_3/Concepts/MeshDomain_3.h index b4ecaab30d8..12fdea95f9b 100644 --- a/Mesh_3/doc/Mesh_3/Concepts/MeshDomain_3.h +++ b/Mesh_3/doc/Mesh_3/Concepts/MeshDomain_3.h @@ -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; diff --git a/Nef_2/doc/Nef_2/CGAL/Nef_polyhedron_2.h b/Nef_2/doc/Nef_2/CGAL/Nef_polyhedron_2.h index 25df26141eb..858e6df5ba7 100644 --- a/Nef_2/doc/Nef_2/CGAL/Nef_polyhedron_2.h +++ b/Nef_2/doc/Nef_2/CGAL/Nef_polyhedron_2.h @@ -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) ; diff --git a/Nef_2/doc/Nef_2/Concepts/ExtendedKernelTraits_2.h b/Nef_2/doc/Nef_2/Concepts/ExtendedKernelTraits_2.h index 1311b83a7d5..69914efc037 100644 --- a/Nef_2/doc/Nef_2/Concepts/ExtendedKernelTraits_2.h +++ b/Nef_2/doc/Nef_2/Concepts/ExtendedKernelTraits_2.h @@ -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) ; diff --git a/Periodic_3_triangulation_3/doc/Periodic_3_triangulation_3/CGAL/Periodic_3_triangulation_3.h b/Periodic_3_triangulation_3/doc/Periodic_3_triangulation_3/CGAL/Periodic_3_triangulation_3.h index daec23b7c5d..3bda0596ca6 100644 --- a/Periodic_3_triangulation_3/doc/Periodic_3_triangulation_3/CGAL/Periodic_3_triangulation_3.h +++ b/Periodic_3_triangulation_3/doc/Periodic_3_triangulation_3/CGAL/Periodic_3_triangulation_3.h @@ -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 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 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 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 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; diff --git a/Polygon/include/CGAL/Polygon_2_algorithms.h b/Polygon/include/CGAL/Polygon_2_algorithms.h index 2a5997f821d..4bd6f9bdbdd 100644 --- a/Polygon/include/CGAL/Polygon_2_algorithms.h +++ b/Polygon/include/CGAL/Polygon_2_algorithms.h @@ -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`. diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/fair.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/fair.h index 60829f72623..1cd739fed52 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/fair.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/fair.h @@ -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. diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/intersection.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/intersection.h index e0ab99d02bb..717411b9c2d 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/intersection.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/intersection.h @@ -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::%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::%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::%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 diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h index 0ee5e95fc40..67450783a00 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h @@ -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} diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/refine.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/refine.h index 38fe4ff0608..0a29099ffc7 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/refine.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/refine.h @@ -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. */ diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h index 35c3104dd7e..1f31a9eea89 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h @@ -562,7 +562,7 @@ struct Filter_wrapper_for_cap_needle_removal::%face_descriptor` as value type @@ -1371,7 +1371,7 @@ remove_a_border_edge(typename boost::graph_traits::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" diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h index 183fc299f70..9b7c12e70f5 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/self_intersections.h @@ -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`. diff --git a/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h b/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h index 7514f945bae..2963b6b995e 100644 --- a/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h +++ b/Polygon_mesh_processing/include/CGAL/Side_of_triangle_mesh.h @@ -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()) diff --git a/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h b/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h index 0015f923df9..9f3e223bb4d 100644 --- a/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h +++ b/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h @@ -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); diff --git a/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphSite_2.h b/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphSite_2.h index 879c81bdcc0..e5d5f1fd47a 100644 --- a/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphSite_2.h +++ b/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphSite_2.h @@ -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); diff --git a/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphStorageSite_2.h b/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphStorageSite_2.h index e6605fbcdac..19db7d0c6da 100644 --- a/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphStorageSite_2.h +++ b/Segment_Delaunay_graph_2/doc/Segment_Delaunay_graph_2/Concepts/SegmentDelaunayGraphStorageSite_2.h @@ -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); diff --git a/Stream_lines_2/doc/Stream_lines_2/Concepts/VectorField_2.h b/Stream_lines_2/doc/Stream_lines_2/Concepts/VectorField_2.h index 0cdfedfcb1c..8f716bb6f0e 100644 --- a/Stream_lines_2/doc/Stream_lines_2/Concepts/VectorField_2.h +++ b/Stream_lines_2/doc/Stream_lines_2/Concepts/VectorField_2.h @@ -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 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); diff --git a/Surface_mesh_deformation/include/CGAL/Surface_mesh_deformation.h b/Surface_mesh_deformation/include/CGAL/Surface_mesh_deformation.h index 7b36a1ce486..e3682606748 100644 --- a/Surface_mesh_deformation/include/CGAL/Surface_mesh_deformation.h +++ b/Surface_mesh_deformation/include/CGAL/Surface_mesh_deformation.h @@ -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 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 @@ -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) { diff --git a/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h b/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h index 98af65ee5b2..f056eb09250 100644 --- a/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h +++ b/Surface_mesh_segmentation/include/CGAL/mesh_segmentation.h @@ -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::%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` diff --git a/Surface_mesh_topology/doc/Surface_mesh_topology/CGAL/Path_on_surface.h b/Surface_mesh_topology/doc/Surface_mesh_topology/CGAL/Path_on_surface.h index bd7ead4deda..c49cb979888 100644 --- a/Surface_mesh_topology/doc/Surface_mesh_topology/CGAL/Path_on_surface.h +++ b/Surface_mesh_topology/doc/Surface_mesh_topology/CGAL/Path_on_surface.h @@ -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. diff --git a/Surface_mesh_topology/include/CGAL/Path_on_surface.h b/Surface_mesh_topology/include/CGAL/Path_on_surface.h index a02e19063d8..66d9186c990 100644 --- a/Surface_mesh_topology/include/CGAL/Path_on_surface.h +++ b/Surface_mesh_topology/include/CGAL/Path_on_surface.h @@ -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) { diff --git a/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h b/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h index f56db8e5cb9..4405c055908 100644 --- a/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h +++ b/Surface_mesh_topology/include/CGAL/Surface_mesh_topology/internal/Path_on_surface_with_rle.h @@ -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); diff --git a/Surface_mesher/doc/Surface_mesher/Concepts/SurfaceMeshTriangulation_3.h b/Surface_mesher/doc/Surface_mesher/Concepts/SurfaceMeshTriangulation_3.h index eb277fce941..e7b1b9d0322 100644 --- a/Surface_mesher/doc/Surface_mesher/Concepts/SurfaceMeshTriangulation_3.h +++ b/Surface_mesher/doc/Surface_mesher/Concepts/SurfaceMeshTriangulation_3.h @@ -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 OutputIterator diff --git a/TDS_3/doc/TDS_3/Concepts/TriangulationDataStructure_3.h b/TDS_3/doc/TDS_3/Concepts/TriangulationDataStructure_3.h index 752093512af..ae4e294c525 100644 --- a/TDS_3/doc/TDS_3/Concepts/TriangulationDataStructure_3.h +++ b/TDS_3/doc/TDS_3/Concepts/TriangulationDataStructure_3.h @@ -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 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 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 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 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; diff --git a/Triangulation_3/doc/Triangulation_3/CGAL/Triangulation_3.h b/Triangulation_3/doc/Triangulation_3/CGAL/Triangulation_3.h index 32a38695566..eeff918fe3d 100644 --- a/Triangulation_3/doc/Triangulation_3/CGAL/Triangulation_3.h +++ b/Triangulation_3/doc/Triangulation_3/CGAL/Triangulation_3.h @@ -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 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 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 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 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 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 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 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 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;