fix doc warnings triggered essentially by the improvement of doxygen

This commit is contained in:
Sébastien Loriot 2018-04-25 23:36:21 +02:00
parent 4f14095cb8
commit 742a615527
18 changed files with 132 additions and 106 deletions

View File

@ -42,15 +42,16 @@ Bounding box type.
typedef unspecified_type Bounding_box;
/*!
enum required for axis selection
*/
enum Axis {
X_AXIS,
Y_AXIS,
Z_AXIS
CGAL_X_AXIS,
CGAL_Y_AXIS,
CGAL_Z_AXIS
};
/*!
3D Point and Primitive Id type
*/
typedef std::pair<Point_3, Primitive::Id> Point_and_primitive_id;

View File

@ -249,7 +249,7 @@ public:
/// \bug This is not documented for now in the AABBTraits concept.
typedef typename GeomTraits::Iso_cuboid_3 Iso_cuboid_3;
///
/// Bounding box type.
typedef typename CGAL::Bbox_3 Bounding_box;
/// @}

View File

@ -91,7 +91,7 @@ namespace CGAL {
typedef typename Primitives::size_type size_type;
/// Type of bounding box.
typedef typename AABBTraits::Bounding_box Bounding_box;
///
/// 3D Point and Primitive Id type
typedef typename AABBTraits::Point_and_primitive_id Point_and_primitive_id;
/// \deprecated
typedef typename AABBTraits::Object_and_primitive_id Object_and_primitive_id;
@ -412,12 +412,14 @@ public:
boost::optional< typename Intersection_and_primitive_id<Ray>::Type >
first_intersection(const Ray& query, const SkipFunctor& skip) const;
/// \cond
template<typename Ray>
boost::optional< typename Intersection_and_primitive_id<Ray>::Type >
first_intersection(const Ray& query) const
{
return first_intersection(query, boost::lambda::constant(false));
}
/// \endcond
/// Returns the primitive id closest to the source point of the ray
/// query.
@ -435,12 +437,14 @@ public:
boost::optional<Primitive_id>
first_intersected_primitive(const Ray& query, const SkipFunctor& skip) const;
/// \cond
template<typename Ray>
boost::optional<Primitive_id>
first_intersected_primitive(const Ray& query) const
{
return first_intersected_primitive(query, boost::lambda::constant(false));
}
/// \endcond
///@}
/// \name Distance Queries

View File

@ -10,7 +10,7 @@
A Circulator is similar to an Iterator, with the difference that it is designed for circular data structures.
<h1></h1>
# Circulators # {#circulatorConceptsIntro}
\section circulatorConceptsIntro Circulators
Iterators in the \stl were tailored for linear sequences. The
specialization for circular data structures leads to slightly
different requirements which we will summarize in the
@ -26,7 +26,7 @@ to the circulator requirements: A comparison `c == NULL`
for a circulator `c` is true for an empty sequence. As for \cpp,
we recommend the use of 0 instead of `NULL`.
## Circulators ## {#circulatorConceptsCirculators}
\subsection circulatorConceptsCirculators Circulators
Similar to \stl iterators, we distinguish between forward,
bidirectional, and random access circulators\cgalFootnote{Input
circulators are a contradiction, since any circulator is supposed to
@ -103,7 +103,7 @@ circulator category.
</TABLE>
## Forward Circulators ## {#circulatorConceptsForward}
\subsection circulatorConceptsForward Forward Circulators
In the following, we assume that <TT>a</TT> and <TT>b</TT> are
circulators of type <TT>C</TT>, <TT>r</TT> is of type <TT>C&</TT> (is
@ -164,7 +164,7 @@ circulator category <TT>Forward_circulator_tag</TT>.
</TABLE>
## Bidirectional Circulators ## {#circulatorConceptsBidirectional}
\subsection circulatorConceptsBidirectional Bidirectional Circulators
The same requirements as for the forward circulators hold for
bidirectional iterators with the following change of the iterator
@ -177,7 +177,7 @@ circulator category <TT>Bidirectional_circulator_tag</TT>.
</TABLE>
## Random Access Circulators ## {#sectionRandomAccessCirculatorRequ}
\subsection circulatorConceptsRandomAccessCirculators Random Access Circulators
\anchor sectionMinCircleRequ
@ -223,14 +223,14 @@ circulator category <TT>Random_access_circulator_tag</TT>.
</TABLE>
## Const Circulators ##
\subsection circulatorConceptsConstCirculators Const Circulators
As with iterators, we distinguish between circulators and const
circulators. The expression <TT>*a = t</TT> with <TT>t</TT> of type
<TT>T</TT> is valid for mutable circulators. It is invalid for const
circulators.
## Circulators in Container Classes ##
\subsection subsec_CircContClass Circulators in Container Classes
For a container <TT>x</TT> of type <TT>X</TT> that supports
circulators <TT>c</TT> the following naming convention is recommended:
@ -266,7 +266,7 @@ of iterators and circulators simultaneously is not recommended, since
it would lead to fat interfaces. The natural choice should be
supported, the other concept will be available through adaptors.
## Example ##
\subsection subsec_Circ_ex Example
A generic <TT>contains</TT> function accepts a range of circulators
and a value. It returns `true` if the value is contained in the
@ -320,7 +320,7 @@ class BidirectionalCirculator {
/*!
\ingroup PkgHandlesAndCirculatorsConcepts
See Subsection \ref sectionRandomAccessCirculatorRequ in the page on Circulators.
See Subsection \ref sectionMinCircleRequ in the page on Circulators.
\cgalConcept
*/
class RandomAccessCirculator {

View File

@ -53,7 +53,7 @@ with the regular triangulation and `p` as arguments.
/*!
The sample points \f$ \mathcal{P}\f$ are provided in the range
`[first`, beyond)`.
`[first, beyond)`.
The value type of `InputIterator` is the point type
`Kernel::Point_3`. The tangent plane is defined by the point
`p` and the vector `normal`. The parameter `K`

View File

@ -181,11 +181,11 @@ is performed; and if \f$ N >N_d\f$, approximation is used.
As explained in Section \ref secintro , the output consists of a
coordinate system, the Monge basis, together with the Monge
coefficients which are stored in the `Monge_via_jet_fitting::Monge_form` class. In
coefficients which are stored in the `::CGAL::Monge_via_jet_fitting::Monge_form` class. In
addition, more information on the computational issues are stored in
the `Monge_via_jet_fitting` class.
The `Monge_via_jet_fitting::Monge_form` class provides the following information.
The `::CGAL::Monge_via_jet_fitting::Monge_form` class provides the following information.
<UL>
<LI>%Origin. This is the point on the fitted polynomial surface
@ -224,7 +224,7 @@ In addition, the class `Monge_via_jet_fitting` stores
This concept provides the types for the input sample points, together
with \f$ 3d\f$ vectors and a number type. It is used as template for the
class `Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>`. Typically, one can use
`Cartesian<double>`.
`Cartesian< double >`.
\subsubsection Jet_fitting_3TemplateparameterLocalKernel Template parameter LocalKernel
@ -234,11 +234,11 @@ This concept defines the vector and number types used for local
computations and to store the PCA basis data.
Input points of type
`DataKernel::Point_3` are converted to
`LocalKernel::Point_3`. For output of the `Monge_via_jet_fitting::Monge_form` class,
`DataKernel::%Point_3` are converted to
`LocalKernel::%Point_3`. For output of the `::CGAL::Monge_via_jet_fitting::Monge_form` class,
these types are converted back to `DataKernel` ones. Typically,
one can use
`Cartesian<double>` which is the default.
`Cartesian< double >` which is the default.
\subsubsection Jet_fitting_3TemplateparameterSvdTraits Template parameter SvdTraits
@ -253,8 +253,8 @@ To solve the fitting problem, the sample points are first converted
from the `DataKernel` to the `LocalKernel` (this is done using
the `Cartesian_converter`). Then change of coordinate
systems and linear algebra operations are performed with this
kernel. This implies that the number types `LocalKernel::FT` and
`SvdTraits::FT` must be identical.
kernel. This implies that the number types `LocalKernel::%FT` and
`SvdTraits::%FT` must be identical.
Second the Monge basis and coefficients, computed with the
`LocalKernel`, are converted back to the `DataKernel`
(this is done using the `Cartesian_converter` and the
@ -278,7 +278,7 @@ illustrates the computation of local differential quantities for all
vertices of a given mesh. The neighborhood of a given vertex is
computed using rings on the triangulation. Results are twofold:
<UL>
<LI>a human readable text file featuring the `Monge_via_jet_fitting::Monge_form` and
<LI>a human readable text file featuring the `::CGAL::Monge_via_jet_fitting::Monge_form` and
numerical informations on the computation: condition number and the
PCA basis;
<LI>another text file that records raw data (better for a vizualization

View File

@ -12,6 +12,8 @@ The requirements of `PolygonTraits_2` are a subset of the kernel
requirements. We only list the types and methods which are required
and refer to the description of the kernel concept for details.
\cgalRefines `DefaultConstructible` and `CopyConstructable`
\cgalHasModel The kernels supplied by \cgal are models of `PolygonTraits_2`.
\cgalHasModel `CGAL::Projection_traits_xy_3<K>`
\cgalHasModel `CGAL::Projection_traits_yz_3<K>`
@ -24,19 +26,11 @@ and refer to the description of the kernel concept for details.
class PolygonTraits_2 {
public:
/// \name Creation
/// @{
///
PolygonTraits_2();
///
PolygonTraits_2(const PolygonTraits_2&);
/// @}
/// \name Types
/// @{
/*!
number type
*/
typedef unspecified_type FT;
@ -51,37 +45,39 @@ The segment type.
typedef unspecified_type Segment_2;
/*!
functor providing `Segment_2 operator()(Point_2, Point_2)` to construct a segment from two points.
*/
typedef unspecified_type Construct_segment_2;
/*!
functor providing `bool operator()(Point_2, Point_2)` to test equality of two points.
*/
typedef unspecified_type Equal_2;
/*!
functor providing `bool operator()(Point_2, Point_2)` to compare lexicographically of two points.
*/
typedef unspecified_type Less_xy_2;
/*!
functor providing `bool operator()(Point_2, Point_2)` to compare inverse-lexicographically of two points.
*/
typedef unspecified_type Less_yx_2;
/*!
functor providing `bool operator()(Point_2, Point_2)` to compare the x-coordinate of two points.
*/
typedef unspecified_type Compare_x_2;
/*!
functor providing `bool operator()(Point_2, Point_2)` to compare the y-coordinate of two points.
*/
typedef unspecified_type Compare_y_2;
/*!
functor providing `Oriention operator()(Point_2 p, Point_2 q, Point_2 r)`
that returns CGAL::LEFT_TURN, if r lies to the left of the oriented line l defined by p and q,
CGAL::RIGHT_TURN if r lies to the right of l, and CGAL::COLLINEAR if r lies on l.
*/
typedef unspecified_type Orientation_2;
@ -98,43 +94,43 @@ typedef unspecified_type Compute_area_2;
/// @{
/*!
*/
returns the corresponding function object
*/
Equal_2 equal_2_object();
/*!
*/
returns the corresponding function object
*/
Less_xy_2 less_xy_2_object();
/*!
*/
returns the corresponding function object
*/
Less_yx_2 less_yx_2_object();
/*!
*/
returns the corresponding function object
*/
Compare_y_2 compare_y_2_object();
/*!
*/
returns the corresponding function object
*/
Compare_x_2 compare_x_2_object();
/*!
*/
returns the corresponding function object
*/
Orientation_2 orientation_2_object();
/*!
*/
returns the corresponding function object
*/
Compute_area_2 compute_area_2_object();
/*!
*/
returns the corresponding function object
*/
Construct_segment_2 construct_segment_2_object();
/// @}

View File

@ -55,6 +55,7 @@ public:
/// \name Definition
/// @{
/// polygon without hole type
typedef Polygon_ General_polygon_2;
/// @}

View File

@ -122,26 +122,24 @@ class Polygon_2 {
///
/// @{
///
/// vertex iterator type
typedef typename Container::iterator Vertex_iterator;
//typedef typename Container::const_iterator Vertex_const_iterator; ??
#ifdef DOXYGEN_RUNNING
/// vertex circulator type
typedef unspecified_type Vertex_circulator;
typedef unspecified_type Edge_const_iterator;
typedef unspecified_type Edge_const_circulator;
#else
typedef Vertex_const_circulator Vertex_circulator;
///
typedef Polygon_2_edge_iterator<Traits_P,Container_P>
Edge_const_iterator;
///
typedef Polygon_2_const_edge_circulator<Traits_P,Container_P>
Edge_const_circulator;
/// edge circulator type
typedef unspecified_type Edge_const_iterator;
/// edge circular type
typedef unspecified_type Edge_const_circulator;
#else
typedef Vertex_const_circulator Vertex_circulator;
typedef Polygon_2_edge_iterator<Traits_P,Container_P> Edge_const_iterator;
typedef Polygon_2_const_edge_circulator<Traits_P,
Container_P> Edge_const_circulator;
#endif // DOXYGEN_RUNNING
/// @}
@ -177,10 +175,12 @@ class Polygon_2 {
void set(Vertex_iterator i, const Point_2& q)
{ *i = q; }
/// \cond
void set(Polygon_circulator<Container>const &i, const Point_2& q)
{
*i.mod_iterator() = q;
}
/// \endcond
/// Inserts the vertex `q` before `i`. The return value points to
/// the inserted vertex.
@ -189,6 +189,8 @@ class Polygon_2 {
return d_container.insert(i,q);
}
/// Inserts the vertex `q` before `i`. The return value points to
/// the inserted vertex.
Vertex_iterator insert(Vertex_circulator i, const Point_2& q)
{
return d_container.insert(i.mod_iterator(),q);
@ -203,6 +205,9 @@ class Polygon_2 {
InputIterator last)
{ d_container.insert(i, first, last); }
/// Inserts the vertices in the range `[first, last)`
/// before `i`. The value type of points in the range
/// `[first,last)` must be `Point_2`.
template <class InputIterator>
void insert(Vertex_circulator i,
InputIterator first,
@ -219,6 +224,7 @@ class Polygon_2 {
return d_container.erase(i);
}
/// Erases the vertex pointed to by `i`.
Vertex_circulator erase(Vertex_circulator i)
{
return Vertex_circulator(&d_container,
@ -389,31 +395,32 @@ class Polygon_2 {
/// @}
/// \name
/// \name Convenience Orientation Functions
/// For convenience we provide the following Boolean functions:
/// @{
/// returns `orientation() == COUNTERCLOCKWISE`
bool is_counterclockwise_oriented() const
{ return orientation() == COUNTERCLOCKWISE; }
/// returns `orientation() == CLOCKWISE`
bool is_clockwise_oriented() const
{ return orientation() == CLOCKWISE; }
/// returns `orientation() == COLLINEAR`
bool is_collinear_oriented() const
{ return orientation() == COLLINEAR; }
/// returns `oriented_side(q) == ON_POSITIVE_SIDE`
bool has_on_positive_side(const Point_2& q) const
{ return oriented_side(q) == ON_POSITIVE_SIDE; }
/// returns `oriented_side(q) == ON_NEGATIVE_SIDE`
bool has_on_negative_side(const Point_2& q) const
{ return oriented_side(q) == ON_NEGATIVE_SIDE; }
/// returns `bounded_side(q) == ON_BOUNDARY`
bool has_on_boundary(const Point_2& q) const
{ return bounded_side(q) == ON_BOUNDARY; }
/// returns `bounded_side(q) == ON_BOUNDED_SIDE`
bool has_on_bounded_side(const Point_2& q) const
{ return bounded_side(q) == ON_BOUNDED_SIDE; }
/// returns `bounded_side(q) == ON_UNBOUNDED_SIDE`
bool has_on_unbounded_side(const Point_2& q) const
{ return bounded_side(q) == ON_UNBOUNDED_SIDE; }

View File

@ -468,7 +468,7 @@ with duplicated border edges.
\cgalExample{Polygon_mesh_processing/stitch_borders_example.cpp}
*******************
<!---
\cond
\subsection DegenerateFaces Removing Degenerate Faces
Some degenerate faces may be part of a given triangle mesh.
@ -488,7 +488,7 @@ are removed, the connectivity is fixed, and the number of removed faces
is output.
\cgalExample{Polygon_mesh_processing/remove_degeneracies_example.cpp}
--->
\endcond
*******************
\subsection PolygonSoups Polygon Soups

View File

@ -7,6 +7,8 @@ The definition of close depends on the model.
The fact that some basic operations are hidden behind a function is to allow to benefit from optimizations like expression template from libraries used
to implement models of this concept.
\cgalRefines `DefaultConstructible`
\cgalHasModel `CGAL::Deformation_Eigen_closest_rotation_traits_3`
\cgalHasModel `CGAL::Deformation_Eigen_polar_closest_rotation_traits_3`
@ -21,12 +23,6 @@ public:
typedef unspecified_type Vector;
/// @}
/// \name Creation
/// @{
/// Default constructor.
DeformationClosestRotationTraits_3();
/// @}
/// \name Operations
/// @{

View File

@ -9,6 +9,7 @@ class RawPoint_3
public:
/// \name Creation
/// @{
/// constructor from Cartesian coordinates
RawPoint_3(double x, double y, double z);
/// @}

View File

@ -216,8 +216,11 @@ public:
/// @{
// typedefed template parameters, main reason is doxygen creates autolink to typedefs but not template parameters
///
/// Triangle mesh type
typedef TM Triangle_mesh;
/// \cond
typedef TM Halfedge_graph;
/// \endcond
// Index maps
#ifndef DOXYGEN_RUNNING
@ -230,9 +233,9 @@ public:
typename boost::property_map<Triangle_mesh, boost::halfedge_index_t>::type
>::type Hedge_index_map;
#else
///
/// vertex index map type
typedef VIM Vertex_index_map;
///
/// halfedge index map type
typedef HIM Hedge_index_map;
#endif
@ -243,7 +246,7 @@ public:
typename internal::Types_selectors<TM, TAG>::Weight_calculator
>::type Weight_calculator;
#else
///
/// weight calculator functor type
typedef WC Weight_calculator;
#endif
@ -261,7 +264,7 @@ public:
#endif
>::type Sparse_linear_solver;
#else
///
/// sparse linear solver type
typedef ST Sparse_linear_solver;
#endif
@ -276,7 +279,7 @@ public:
#endif
>::type Closest_rotation_traits;
#else
///
/// closest rotation traits type
typedef CR Closest_rotation_traits;
#endif
@ -287,7 +290,7 @@ public:
typename boost::property_map<Triangle_mesh, CGAL::vertex_point_t>::type
>::type Vertex_point_map;
#else
///
/// vertex point map type
typedef VPM Vertex_point_map;
#endif
@ -955,8 +958,10 @@ public:
const Triangle_mesh& triangle_mesh() const
{ return m_triangle_mesh; }
/// \cond
const Triangle_mesh& halfedge_graph() const
{ return m_triangle_mesh; }
/// \endcond
/**
* Sets the alpha coefficient that determines the weight of the bending term (rotation smoothness) for the SRE-ARAP deformation technique.

View File

@ -7,6 +7,7 @@ The concept `SurfaceMeshShortestPathTraits` describes the types,
predicates, and constructions required by the traits class parameter of
`CGAL::Surface_mesh_shortest_path`.
\cgalRefines `CopyConstructible` and `Assignable`
\cgalHasModel `CGAL::Surface_mesh_shortest_path_traits<K,P>`
*/
@ -330,19 +331,11 @@ public:
/// @}
/// \name Creation
/// @{
/*!
*/
SurfaceMeshShortestPathTraits(SurfaceMeshShortestPathTraits& copy);
/// @}
/// \name Operations
/// For all of the above predicate and construction types, e.g. `Func_obj_type`, a function must exist with the name `func_obj_type_object()` that creates an instance of the construction or predicate object type.
/// For example:
/// @{
/// returns the point construction functor.
Construct_point_2 construct_point_2_object();
/// @}

View File

@ -146,6 +146,7 @@ public:
#ifndef CGAL_NO_DEPRECATED_CODE
// deprecated in CGAL 4.10
/// \deprecated
typedef Barycentric_coordinates Barycentric_coordinate;
#endif
@ -2596,7 +2597,7 @@ public:
/// \name Nearest Face Location Queries
/// @{
/*
/*!
\brief Returns the nearest face location to the given point.
Note that this will (re-)build an `AABB_tree` on each call. If you need
to call this function more than once, use `build_aabb_tree()` to cache a
@ -2661,7 +2662,7 @@ public:
/// \endcond
/*
/*!
\brief Returns the face location along `ray` nearest to its source point.
Note that this will (re-)build an `AABB_tree` on each call. If you need
to call this function more than once, use `build_aabb_tree()` to cache a

View File

@ -127,45 +127,59 @@ typedef unspecified_type Compute_z_3;
/// \name Access to Function Objects
/// @{
/// Function object creator
Construct_point_3
construct_point_3_object();
/// Function object creator
Construct_vector_3
construct_vector_3_object();
/// Function object creator
Construct_scaled_vector_3
construct_scaled_vector_3_object();
/// Function object creator
Construct_divided_vector_3
construct_divided_vector_3_object();
/// Function object creator
Construct_cross_product_vector_3
construct_cross_product_vector_3_object();
/// Function object creator
Construct_sum_of_vectors_3
construct_sum_of_vectors_3_object();
/// Function object creator
Construct_midpoint_3
construct_midpoint_3_object();
/// Function object creator
Compute_squared_distance_3
compute_squared_distance_3_object();
/// Function object creator
Compute_squared_length_3
compute_squared_length_3_object();
/// Function object creator
Compute_area_3
compute_area_3_object();
/// Function object creator
Compute_scalar_product_3
compute_scalar_product_3_object();
/// Function object creator
Compute_x_3
compute_x_3_object();
/// Function object creator
Compute_y_3
compute_y_3_object();
/// Function object creator
Compute_z_3
compute_z_3_object();

View File

@ -414,11 +414,13 @@ public:
return m_min_edge_length;
}
void set_max_triangle_angle(double value)
/// set function for `max_triangle_angle()`
void set_max_triangle_angle(double value)
{
m_alpha_TH = value;
}
/// set function for `min_edge_length()`
void set_min_edge_length(double value)
{
m_min_edge_length = value;
@ -443,11 +445,13 @@ public:
return m_delta_area;
}
/// set function for `max_iterations()`
void set_max_iterations(std::size_t value)
{
m_max_iterations = value;
}
/// set function for `area_variation_factor()`
void set_area_variation_factor(double value)
{
m_delta_area = value;
@ -489,16 +493,19 @@ public:
return m_omega_P;
}
/// set function for `quality_speed_tradeoff()`
void set_quality_speed_tradeoff(double value)
{
m_omega_H = value;
}
/// set function for `is_medially_centered()`
void set_is_medially_centered(bool value)
{
m_is_medially_centered = value;
}
/// set function for `medially_centered_speed_tradeoff()`
void set_medially_centered_speed_tradeoff(double value)
{
m_omega_P = value;

View File

@ -181,7 +181,7 @@ corresponding to a face \f$ f \f$ stores a reference to a full cell `c`
containing \f$ f \f$, and the indices of the vertices of `c` that belong
to \f$ f \f$.
<!---
\cond
\cgalAdvanced The index of a full cell \f$ c\f$ in the \f$ i\f$-th
neighbor of \f$ c\f$ is called the <I>\f$ i\f$-th mirror-index</I> of
\f$ c\f$ (Figure \cgalFigureRef{triangulationfigfullcell}). Mirror indices are
@ -197,7 +197,7 @@ triangulation. Its second template parameter is used to specify wether
or not the mirror indices should be kept in memory or computed
on-the-fly, which is the default case. Please refer to the
documentation of that class template for specific details.
--->
\endcond
###Template Parameters###