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; typedef unspecified_type Bounding_box;
/*! /*!
enum required for axis selection
*/ */
enum Axis { enum Axis {
X_AXIS, CGAL_X_AXIS,
Y_AXIS, CGAL_Y_AXIS,
Z_AXIS CGAL_Z_AXIS
}; };
/*! /*!
3D Point and Primitive Id type
*/ */
typedef std::pair<Point_3, Primitive::Id> Point_and_primitive_id; 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. /// \bug This is not documented for now in the AABBTraits concept.
typedef typename GeomTraits::Iso_cuboid_3 Iso_cuboid_3; typedef typename GeomTraits::Iso_cuboid_3 Iso_cuboid_3;
/// /// Bounding box type.
typedef typename CGAL::Bbox_3 Bounding_box; typedef typename CGAL::Bbox_3 Bounding_box;
/// @} /// @}

View File

@ -91,7 +91,7 @@ namespace CGAL {
typedef typename Primitives::size_type size_type; typedef typename Primitives::size_type size_type;
/// Type of bounding box. /// Type of bounding box.
typedef typename AABBTraits::Bounding_box 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; typedef typename AABBTraits::Point_and_primitive_id Point_and_primitive_id;
/// \deprecated /// \deprecated
typedef typename AABBTraits::Object_and_primitive_id Object_and_primitive_id; 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 > boost::optional< typename Intersection_and_primitive_id<Ray>::Type >
first_intersection(const Ray& query, const SkipFunctor& skip) const; first_intersection(const Ray& query, const SkipFunctor& skip) const;
/// \cond
template<typename Ray> template<typename Ray>
boost::optional< typename Intersection_and_primitive_id<Ray>::Type > boost::optional< typename Intersection_and_primitive_id<Ray>::Type >
first_intersection(const Ray& query) const first_intersection(const Ray& query) const
{ {
return first_intersection(query, boost::lambda::constant(false)); return first_intersection(query, boost::lambda::constant(false));
} }
/// \endcond
/// Returns the primitive id closest to the source point of the ray /// Returns the primitive id closest to the source point of the ray
/// query. /// query.
@ -435,12 +437,14 @@ public:
boost::optional<Primitive_id> boost::optional<Primitive_id>
first_intersected_primitive(const Ray& query, const SkipFunctor& skip) const; first_intersected_primitive(const Ray& query, const SkipFunctor& skip) const;
/// \cond
template<typename Ray> template<typename Ray>
boost::optional<Primitive_id> boost::optional<Primitive_id>
first_intersected_primitive(const Ray& query) const first_intersected_primitive(const Ray& query) const
{ {
return first_intersected_primitive(query, boost::lambda::constant(false)); return first_intersected_primitive(query, boost::lambda::constant(false));
} }
/// \endcond
///@} ///@}
/// \name Distance Queries /// \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. A Circulator is similar to an Iterator, with the difference that it is designed for circular data structures.
<h1></h1> <h1></h1>
# Circulators # {#circulatorConceptsIntro} \section circulatorConceptsIntro Circulators
Iterators in the \stl were tailored for linear sequences. The Iterators in the \stl were tailored for linear sequences. The
specialization for circular data structures leads to slightly specialization for circular data structures leads to slightly
different requirements which we will summarize in the 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, for a circulator `c` is true for an empty sequence. As for \cpp,
we recommend the use of 0 instead of `NULL`. we recommend the use of 0 instead of `NULL`.
## Circulators ## {#circulatorConceptsCirculators} \subsection circulatorConceptsCirculators Circulators
Similar to \stl iterators, we distinguish between forward, Similar to \stl iterators, we distinguish between forward,
bidirectional, and random access circulators\cgalFootnote{Input bidirectional, and random access circulators\cgalFootnote{Input
circulators are a contradiction, since any circulator is supposed to circulators are a contradiction, since any circulator is supposed to
@ -103,7 +103,7 @@ circulator category.
</TABLE> </TABLE>
## Forward Circulators ## {#circulatorConceptsForward} \subsection circulatorConceptsForward Forward Circulators
In the following, we assume that <TT>a</TT> and <TT>b</TT> are 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 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> </TABLE>
## Bidirectional Circulators ## {#circulatorConceptsBidirectional} \subsection circulatorConceptsBidirectional Bidirectional Circulators
The same requirements as for the forward circulators hold for The same requirements as for the forward circulators hold for
bidirectional iterators with the following change of the iterator bidirectional iterators with the following change of the iterator
@ -177,7 +177,7 @@ circulator category <TT>Bidirectional_circulator_tag</TT>.
</TABLE> </TABLE>
## Random Access Circulators ## {#sectionRandomAccessCirculatorRequ} \subsection circulatorConceptsRandomAccessCirculators Random Access Circulators
\anchor sectionMinCircleRequ \anchor sectionMinCircleRequ
@ -223,14 +223,14 @@ circulator category <TT>Random_access_circulator_tag</TT>.
</TABLE> </TABLE>
## Const Circulators ## \subsection circulatorConceptsConstCirculators Const Circulators
As with iterators, we distinguish between circulators and const As with iterators, we distinguish between circulators and const
circulators. The expression <TT>*a = t</TT> with <TT>t</TT> of type 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 <TT>T</TT> is valid for mutable circulators. It is invalid for const
circulators. 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 For a container <TT>x</TT> of type <TT>X</TT> that supports
circulators <TT>c</TT> the following naming convention is recommended: 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 it would lead to fat interfaces. The natural choice should be
supported, the other concept will be available through adaptors. 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 A generic <TT>contains</TT> function accepts a range of circulators
and a value. It returns `true` if the value is contained in the and a value. It returns `true` if the value is contained in the
@ -320,7 +320,7 @@ class BidirectionalCirculator {
/*! /*!
\ingroup PkgHandlesAndCirculatorsConcepts \ingroup PkgHandlesAndCirculatorsConcepts
See Subsection \ref sectionRandomAccessCirculatorRequ in the page on Circulators. See Subsection \ref sectionMinCircleRequ in the page on Circulators.
\cgalConcept \cgalConcept
*/ */
class RandomAccessCirculator { 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 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 The value type of `InputIterator` is the point type
`Kernel::Point_3`. The tangent plane is defined by the point `Kernel::Point_3`. The tangent plane is defined by the point
`p` and the vector `normal`. The parameter `K` `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 As explained in Section \ref secintro , the output consists of a
coordinate system, the Monge basis, together with the Monge 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 addition, more information on the computational issues are stored in
the `Monge_via_jet_fitting` class. 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> <UL>
<LI>%Origin. This is the point on the fitted polynomial surface <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 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 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 class `Monge_via_jet_fitting<DataKernel, LocalKernel, SvdTraits>`. Typically, one can use
`Cartesian<double>`. `Cartesian< double >`.
\subsubsection Jet_fitting_3TemplateparameterLocalKernel Template parameter LocalKernel \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. computations and to store the PCA basis data.
Input points of type Input points of type
`DataKernel::Point_3` are converted to `DataKernel::%Point_3` are converted to
`LocalKernel::Point_3`. For output of the `Monge_via_jet_fitting::Monge_form` class, `LocalKernel::%Point_3`. For output of the `::CGAL::Monge_via_jet_fitting::Monge_form` class,
these types are converted back to `DataKernel` ones. Typically, these types are converted back to `DataKernel` ones. Typically,
one can use one can use
`Cartesian<double>` which is the default. `Cartesian< double >` which is the default.
\subsubsection Jet_fitting_3TemplateparameterSvdTraits Template parameter SvdTraits \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 from the `DataKernel` to the `LocalKernel` (this is done using
the `Cartesian_converter`). Then change of coordinate the `Cartesian_converter`). Then change of coordinate
systems and linear algebra operations are performed with this systems and linear algebra operations are performed with this
kernel. This implies that the number types `LocalKernel::FT` and kernel. This implies that the number types `LocalKernel::%FT` and
`SvdTraits::FT` must be identical. `SvdTraits::%FT` must be identical.
Second the Monge basis and coefficients, computed with the Second the Monge basis and coefficients, computed with the
`LocalKernel`, are converted back to the `DataKernel` `LocalKernel`, are converted back to the `DataKernel`
(this is done using the `Cartesian_converter` and the (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 vertices of a given mesh. The neighborhood of a given vertex is
computed using rings on the triangulation. Results are twofold: computed using rings on the triangulation. Results are twofold:
<UL> <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 numerical informations on the computation: condition number and the
PCA basis; PCA basis;
<LI>another text file that records raw data (better for a vizualization <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 requirements. We only list the types and methods which are required
and refer to the description of the kernel concept for details. 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 The kernels supplied by \cgal are models of `PolygonTraits_2`.
\cgalHasModel `CGAL::Projection_traits_xy_3<K>` \cgalHasModel `CGAL::Projection_traits_xy_3<K>`
\cgalHasModel `CGAL::Projection_traits_yz_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 { class PolygonTraits_2 {
public: public:
/// \name Creation
/// @{
///
PolygonTraits_2();
///
PolygonTraits_2(const PolygonTraits_2&);
/// @}
/// \name Types /// \name Types
/// @{ /// @{
/*! /*!
number type
*/ */
typedef unspecified_type FT; typedef unspecified_type FT;
@ -51,37 +45,39 @@ The segment type.
typedef unspecified_type Segment_2; 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; 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; 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; 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; 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; 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; 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; typedef unspecified_type Orientation_2;
@ -98,42 +94,42 @@ typedef unspecified_type Compute_area_2;
/// @{ /// @{
/*! /*!
returns the corresponding function object
*/ */
Equal_2 equal_2_object(); Equal_2 equal_2_object();
/*! /*!
returns the corresponding function object
*/ */
Less_xy_2 less_xy_2_object(); Less_xy_2 less_xy_2_object();
/*! /*!
returns the corresponding function object
*/ */
Less_yx_2 less_yx_2_object(); Less_yx_2 less_yx_2_object();
/*! /*!
returns the corresponding function object
*/ */
Compare_y_2 compare_y_2_object(); Compare_y_2 compare_y_2_object();
/*! /*!
returns the corresponding function object
*/ */
Compare_x_2 compare_x_2_object(); Compare_x_2 compare_x_2_object();
/*! /*!
returns the corresponding function object
*/ */
Orientation_2 orientation_2_object(); Orientation_2 orientation_2_object();
/*! /*!
returns the corresponding function object
*/ */
Compute_area_2 compute_area_2_object(); Compute_area_2 compute_area_2_object();
/*! /*!
returns the corresponding function object
*/ */
Construct_segment_2 construct_segment_2_object(); Construct_segment_2 construct_segment_2_object();

View File

@ -55,6 +55,7 @@ public:
/// \name Definition /// \name Definition
/// @{ /// @{
/// polygon without hole type
typedef Polygon_ General_polygon_2; 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::iterator Vertex_iterator;
//typedef typename Container::const_iterator Vertex_const_iterator; ?? //typedef typename Container::const_iterator Vertex_const_iterator; ??
#ifdef DOXYGEN_RUNNING #ifdef DOXYGEN_RUNNING
/// vertex circulator type
typedef unspecified_type Vertex_circulator; typedef unspecified_type Vertex_circulator;
typedef unspecified_type Edge_const_iterator; /// edge circulator type
typedef unspecified_type Edge_const_iterator;
typedef unspecified_type Edge_const_circulator; /// edge circular type
typedef unspecified_type Edge_const_circulator;
#else #else
typedef Vertex_const_circulator Vertex_circulator; typedef Vertex_const_circulator Vertex_circulator;
/// typedef Polygon_2_edge_iterator<Traits_P,Container_P> Edge_const_iterator;
typedef Polygon_2_edge_iterator<Traits_P,Container_P> typedef Polygon_2_const_edge_circulator<Traits_P,
Edge_const_iterator; Container_P> Edge_const_circulator;
///
typedef Polygon_2_const_edge_circulator<Traits_P,Container_P>
Edge_const_circulator;
#endif // DOXYGEN_RUNNING #endif // DOXYGEN_RUNNING
/// @} /// @}
@ -177,10 +175,12 @@ class Polygon_2 {
void set(Vertex_iterator i, const Point_2& q) void set(Vertex_iterator i, const Point_2& q)
{ *i = q; } { *i = q; }
/// \cond
void set(Polygon_circulator<Container>const &i, const Point_2& q) void set(Polygon_circulator<Container>const &i, const Point_2& q)
{ {
*i.mod_iterator() = q; *i.mod_iterator() = q;
} }
/// \endcond
/// Inserts the vertex `q` before `i`. The return value points to /// Inserts the vertex `q` before `i`. The return value points to
/// the inserted vertex. /// the inserted vertex.
@ -189,6 +189,8 @@ class Polygon_2 {
return d_container.insert(i,q); 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) Vertex_iterator insert(Vertex_circulator i, const Point_2& q)
{ {
return d_container.insert(i.mod_iterator(),q); return d_container.insert(i.mod_iterator(),q);
@ -203,6 +205,9 @@ class Polygon_2 {
InputIterator last) InputIterator last)
{ d_container.insert(i, first, 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> template <class InputIterator>
void insert(Vertex_circulator i, void insert(Vertex_circulator i,
InputIterator first, InputIterator first,
@ -219,6 +224,7 @@ class Polygon_2 {
return d_container.erase(i); return d_container.erase(i);
} }
/// Erases the vertex pointed to by `i`.
Vertex_circulator erase(Vertex_circulator i) Vertex_circulator erase(Vertex_circulator i)
{ {
return Vertex_circulator(&d_container, 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: /// For convenience we provide the following Boolean functions:
/// @{ /// @{
/// returns `orientation() == COUNTERCLOCKWISE`
bool is_counterclockwise_oriented() const bool is_counterclockwise_oriented() const
{ return orientation() == COUNTERCLOCKWISE; } { return orientation() == COUNTERCLOCKWISE; }
/// returns `orientation() == CLOCKWISE`
bool is_clockwise_oriented() const bool is_clockwise_oriented() const
{ return orientation() == CLOCKWISE; } { return orientation() == CLOCKWISE; }
/// returns `orientation() == COLLINEAR`
bool is_collinear_oriented() const bool is_collinear_oriented() const
{ return orientation() == COLLINEAR; } { return orientation() == COLLINEAR; }
/// returns `oriented_side(q) == ON_POSITIVE_SIDE`
bool has_on_positive_side(const Point_2& q) const bool has_on_positive_side(const Point_2& q) const
{ return oriented_side(q) == ON_POSITIVE_SIDE; } { return oriented_side(q) == ON_POSITIVE_SIDE; }
/// returns `oriented_side(q) == ON_NEGATIVE_SIDE`
bool has_on_negative_side(const Point_2& q) const bool has_on_negative_side(const Point_2& q) const
{ return oriented_side(q) == ON_NEGATIVE_SIDE; } { return oriented_side(q) == ON_NEGATIVE_SIDE; }
/// returns `bounded_side(q) == ON_BOUNDARY`
bool has_on_boundary(const Point_2& q) const bool has_on_boundary(const Point_2& q) const
{ return bounded_side(q) == ON_BOUNDARY; } { return bounded_side(q) == ON_BOUNDARY; }
/// returns `bounded_side(q) == ON_BOUNDED_SIDE`
bool has_on_bounded_side(const Point_2& q) const bool has_on_bounded_side(const Point_2& q) const
{ return bounded_side(q) == ON_BOUNDED_SIDE; } { return bounded_side(q) == ON_BOUNDED_SIDE; }
/// returns `bounded_side(q) == ON_UNBOUNDED_SIDE`
bool has_on_unbounded_side(const Point_2& q) const bool has_on_unbounded_side(const Point_2& q) const
{ return bounded_side(q) == ON_UNBOUNDED_SIDE; } { 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} \cgalExample{Polygon_mesh_processing/stitch_borders_example.cpp}
******************* *******************
<!--- \cond
\subsection DegenerateFaces Removing Degenerate Faces \subsection DegenerateFaces Removing Degenerate Faces
Some degenerate faces may be part of a given triangle mesh. 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. is output.
\cgalExample{Polygon_mesh_processing/remove_degeneracies_example.cpp} \cgalExample{Polygon_mesh_processing/remove_degeneracies_example.cpp}
---> \endcond
******************* *******************
\subsection PolygonSoups Polygon Soups \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 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. to implement models of this concept.
\cgalRefines `DefaultConstructible`
\cgalHasModel `CGAL::Deformation_Eigen_closest_rotation_traits_3` \cgalHasModel `CGAL::Deformation_Eigen_closest_rotation_traits_3`
\cgalHasModel `CGAL::Deformation_Eigen_polar_closest_rotation_traits_3` \cgalHasModel `CGAL::Deformation_Eigen_polar_closest_rotation_traits_3`
@ -21,12 +23,6 @@ public:
typedef unspecified_type Vector; typedef unspecified_type Vector;
/// @} /// @}
/// \name Creation
/// @{
/// Default constructor.
DeformationClosestRotationTraits_3();
/// @}
/// \name Operations /// \name Operations
/// @{ /// @{

View File

@ -9,6 +9,7 @@ class RawPoint_3
public: public:
/// \name Creation /// \name Creation
/// @{ /// @{
/// constructor from Cartesian coordinates
RawPoint_3(double x, double y, double z); 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 // typedefed template parameters, main reason is doxygen creates autolink to typedefs but not template parameters
/// ///
/// Triangle mesh type
typedef TM Triangle_mesh; typedef TM Triangle_mesh;
/// \cond
typedef TM Halfedge_graph; typedef TM Halfedge_graph;
/// \endcond
// Index maps // Index maps
#ifndef DOXYGEN_RUNNING #ifndef DOXYGEN_RUNNING
@ -230,9 +233,9 @@ public:
typename boost::property_map<Triangle_mesh, boost::halfedge_index_t>::type typename boost::property_map<Triangle_mesh, boost::halfedge_index_t>::type
>::type Hedge_index_map; >::type Hedge_index_map;
#else #else
/// /// vertex index map type
typedef VIM Vertex_index_map; typedef VIM Vertex_index_map;
/// /// halfedge index map type
typedef HIM Hedge_index_map; typedef HIM Hedge_index_map;
#endif #endif
@ -243,7 +246,7 @@ public:
typename internal::Types_selectors<TM, TAG>::Weight_calculator typename internal::Types_selectors<TM, TAG>::Weight_calculator
>::type Weight_calculator; >::type Weight_calculator;
#else #else
/// /// weight calculator functor type
typedef WC Weight_calculator; typedef WC Weight_calculator;
#endif #endif
@ -261,7 +264,7 @@ public:
#endif #endif
>::type Sparse_linear_solver; >::type Sparse_linear_solver;
#else #else
/// /// sparse linear solver type
typedef ST Sparse_linear_solver; typedef ST Sparse_linear_solver;
#endif #endif
@ -276,7 +279,7 @@ public:
#endif #endif
>::type Closest_rotation_traits; >::type Closest_rotation_traits;
#else #else
/// /// closest rotation traits type
typedef CR Closest_rotation_traits; typedef CR Closest_rotation_traits;
#endif #endif
@ -287,7 +290,7 @@ public:
typename boost::property_map<Triangle_mesh, CGAL::vertex_point_t>::type typename boost::property_map<Triangle_mesh, CGAL::vertex_point_t>::type
>::type Vertex_point_map; >::type Vertex_point_map;
#else #else
/// /// vertex point map type
typedef VPM Vertex_point_map; typedef VPM Vertex_point_map;
#endif #endif
@ -955,8 +958,10 @@ public:
const Triangle_mesh& triangle_mesh() const const Triangle_mesh& triangle_mesh() const
{ return m_triangle_mesh; } { return m_triangle_mesh; }
/// \cond
const Triangle_mesh& halfedge_graph() const const Triangle_mesh& halfedge_graph() const
{ return m_triangle_mesh; } { 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. * 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 predicates, and constructions required by the traits class parameter of
`CGAL::Surface_mesh_shortest_path`. `CGAL::Surface_mesh_shortest_path`.
\cgalRefines `CopyConstructible` and `Assignable`
\cgalHasModel `CGAL::Surface_mesh_shortest_path_traits<K,P>` \cgalHasModel `CGAL::Surface_mesh_shortest_path_traits<K,P>`
*/ */
@ -330,19 +331,11 @@ public:
/// @} /// @}
/// \name Creation
/// @{
/*!
*/
SurfaceMeshShortestPathTraits(SurfaceMeshShortestPathTraits& copy);
/// @}
/// \name Operations /// \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 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: /// For example:
/// @{ /// @{
/// returns the point construction functor.
Construct_point_2 construct_point_2_object(); Construct_point_2 construct_point_2_object();
/// @} /// @}

View File

@ -146,6 +146,7 @@ public:
#ifndef CGAL_NO_DEPRECATED_CODE #ifndef CGAL_NO_DEPRECATED_CODE
// deprecated in CGAL 4.10 // deprecated in CGAL 4.10
/// \deprecated
typedef Barycentric_coordinates Barycentric_coordinate; typedef Barycentric_coordinates Barycentric_coordinate;
#endif #endif
@ -2596,7 +2597,7 @@ public:
/// \name Nearest Face Location Queries /// \name Nearest Face Location Queries
/// @{ /// @{
/* /*!
\brief Returns the nearest face location to the given point. \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 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 to call this function more than once, use `build_aabb_tree()` to cache a
@ -2661,7 +2662,7 @@ public:
/// \endcond /// \endcond
/* /*!
\brief Returns the face location along `ray` nearest to its source point. \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 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 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 /// \name Access to Function Objects
/// @{ /// @{
/// Function object creator
Construct_point_3 Construct_point_3
construct_point_3_object(); construct_point_3_object();
/// Function object creator
Construct_vector_3 Construct_vector_3
construct_vector_3_object(); construct_vector_3_object();
/// Function object creator
Construct_scaled_vector_3 Construct_scaled_vector_3
construct_scaled_vector_3_object(); construct_scaled_vector_3_object();
/// Function object creator
Construct_divided_vector_3 Construct_divided_vector_3
construct_divided_vector_3_object(); construct_divided_vector_3_object();
/// Function object creator
Construct_cross_product_vector_3 Construct_cross_product_vector_3
construct_cross_product_vector_3_object(); construct_cross_product_vector_3_object();
/// Function object creator
Construct_sum_of_vectors_3 Construct_sum_of_vectors_3
construct_sum_of_vectors_3_object(); construct_sum_of_vectors_3_object();
/// Function object creator
Construct_midpoint_3 Construct_midpoint_3
construct_midpoint_3_object(); construct_midpoint_3_object();
/// Function object creator
Compute_squared_distance_3 Compute_squared_distance_3
compute_squared_distance_3_object(); compute_squared_distance_3_object();
/// Function object creator
Compute_squared_length_3 Compute_squared_length_3
compute_squared_length_3_object(); compute_squared_length_3_object();
/// Function object creator
Compute_area_3 Compute_area_3
compute_area_3_object(); compute_area_3_object();
/// Function object creator
Compute_scalar_product_3 Compute_scalar_product_3
compute_scalar_product_3_object(); compute_scalar_product_3_object();
/// Function object creator
Compute_x_3 Compute_x_3
compute_x_3_object(); compute_x_3_object();
/// Function object creator
Compute_y_3 Compute_y_3
compute_y_3_object(); compute_y_3_object();
/// Function object creator
Compute_z_3 Compute_z_3
compute_z_3_object(); compute_z_3_object();

View File

@ -414,11 +414,13 @@ public:
return m_min_edge_length; 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; m_alpha_TH = value;
} }
/// set function for `min_edge_length()`
void set_min_edge_length(double value) void set_min_edge_length(double value)
{ {
m_min_edge_length = value; m_min_edge_length = value;
@ -443,11 +445,13 @@ public:
return m_delta_area; return m_delta_area;
} }
/// set function for `max_iterations()`
void set_max_iterations(std::size_t value) void set_max_iterations(std::size_t value)
{ {
m_max_iterations = value; m_max_iterations = value;
} }
/// set function for `area_variation_factor()`
void set_area_variation_factor(double value) void set_area_variation_factor(double value)
{ {
m_delta_area = value; m_delta_area = value;
@ -489,16 +493,19 @@ public:
return m_omega_P; return m_omega_P;
} }
/// set function for `quality_speed_tradeoff()`
void set_quality_speed_tradeoff(double value) void set_quality_speed_tradeoff(double value)
{ {
m_omega_H = value; m_omega_H = value;
} }
/// set function for `is_medially_centered()`
void set_is_medially_centered(bool value) void set_is_medially_centered(bool value)
{ {
m_is_medially_centered = value; m_is_medially_centered = value;
} }
/// set function for `medially_centered_speed_tradeoff()`
void set_medially_centered_speed_tradeoff(double value) void set_medially_centered_speed_tradeoff(double value)
{ {
m_omega_P = 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 containing \f$ f \f$, and the indices of the vertices of `c` that belong
to \f$ f \f$. to \f$ f \f$.
<!--- \cond
\cgalAdvanced The index of a full cell \f$ c\f$ in the \f$ i\f$-th \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 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 \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 or not the mirror indices should be kept in memory or computed
on-the-fly, which is the default case. Please refer to the on-the-fly, which is the default case. Please refer to the
documentation of that class template for specific details. documentation of that class template for specific details.
---> \endcond
###Template Parameters### ###Template Parameters###