diff --git a/Documentation/doc/resources/1.10.0/BaseDoxyfile.in b/Documentation/doc/resources/1.10.0/BaseDoxyfile.in
index 9ce9ac906179..4763097da7f4 100644
--- a/Documentation/doc/resources/1.10.0/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.10.0/BaseDoxyfile.in
@@ -213,7 +213,8 @@ ALIASES = "cgal=%CGAL" \
"cgalParamPrecondition{1}=
Precondition: \1" \
"cgalBigO{1}=\f$O(\1)\f$" \
"cgalBigOLarge{1}=\f$O\left(\1\right)\f$" \
- "cgalInclude{1}=`#include<\1>`"
+ "cgalInclude{1}=`#include<\1>`" \
+ "cgalEpicExact=- Exactness
- This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.
"
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
diff --git a/Documentation/doc/resources/1.8.13/BaseDoxyfile.in b/Documentation/doc/resources/1.8.13/BaseDoxyfile.in
index 4d4f4752d630..0dfdaebb15f0 100644
--- a/Documentation/doc/resources/1.8.13/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.13/BaseDoxyfile.in
@@ -204,7 +204,8 @@ ALIASES = "cgal=%CGAL" \
"cgalParamPrecondition{1}=Precondition: \1" \
"cgalBigO{1}=\f$O(\1)\f$" \
"cgalBigOLarge{1}=\f$O\left(\1\right)\f$" \
- "cgalInclude{1}=\#`include<\1>`"
+ "cgalInclude{1}=\#`include<\1>`" \
+ "cgalEpicExact=- Exactness
- This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.
"
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
diff --git a/Documentation/doc/resources/1.9.6/BaseDoxyfile.in b/Documentation/doc/resources/1.9.6/BaseDoxyfile.in
index 4c633ff493ac..c5e82c99de36 100644
--- a/Documentation/doc/resources/1.9.6/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.9.6/BaseDoxyfile.in
@@ -213,7 +213,8 @@ ALIASES = "cgal=%CGAL" \
"cgalParamPrecondition{1}=Precondition: \1" \
"cgalBigO{1}=\f$O(\1)\f$" \
"cgalBigOLarge{1}=\f$O\left(\1\right)\f$" \
- "cgalInclude{1}=`#include<\1>`"
+ "cgalInclude{1}=`#include<\1>`" \
+ "cgalEpicExact=- Exactness
- This construction is trivial and therefore always exact in `Exact_predicates_inexact_constructions_kernel`.
"
# Doxygen selects the parser to use depending on the extension of the files it
# parses. With this tag you can assign which parser to use for a given
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Circle_2.h b/Kernel_23/doc/Kernel_23/CGAL/Circle_2.h
index 0903e5152555..1c0b73fa526e 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Circle_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Circle_2.h
@@ -28,6 +28,8 @@ It is initialized to the circle with center `center`,
squared radius `squared_radius` and orientation
`ori`.
\pre `ori != COLLINEAR` and `squared_radius >= 0`.
+
+\cgalEpicExact
*/
Circle_2(const Point_2 ¢er,
const Kernel::FT &squared_radius,
@@ -64,6 +66,8 @@ It is initialized to the circle with center `center`, squared
radius zero and orientation `ori`.
\pre `ori != COLLINEAR`.
\post `c.is_degenerate()` = `true`.
+
+\cgalEpicExact
*/
Circle_2( const Point_2 ¢er,
const Orientation &ori = COUNTERCLOCKWISE);
@@ -76,18 +80,21 @@ Circle_2( const Point_2 ¢er,
/*!
returns the center of `c`.
+\cgalEpicExact
*/
const Point_2 ¢er( ) const;
/*!
returns the squared radius of `c`.
+\cgalEpicExact
*/
const Kernel::FT& squared_radius( ) const;
/*!
returns the orientation of `c`.
+\cgalEpicExact
*/
Orientation orientation( ) const;
@@ -171,6 +178,7 @@ bool has_on_unbounded_side(const Point_2 &p) const;
returns the circle with the same center and squared radius as
`c` but with opposite orientation.
+\cgalEpicExact
*/
Circle_2 opposite() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Circle_3.h b/Kernel_23/doc/Kernel_23/CGAL/Circle_3.h
index 4624be59f351..3609ea797df0 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Circle_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Circle_3.h
@@ -22,6 +22,8 @@ introduces a variable `c` of type `Circle_3`.
It is initialized to the circle of center `center` and
squared radius `sq_r` in plane `plane`.
\pre `center` lies in `plane` and `sq_r >= 0`.
+
+\cgalEpicExact
*/
Circle_3(const Point_3 ¢er,
const Kernel::FT &sq_r,
@@ -60,7 +62,7 @@ It is initialized to the circle along which the sphere and the
plane intersect.
\pre The sphere and the plane intersect along a circle.
*/
- Circle_3(constSphere_3 & sphere,
+ Circle_3(const Sphere_3 & sphere,
const Plane_3 & plane);
/*!
@@ -80,24 +82,28 @@ Circle_3(const Plane_3 & plane,
/*!
returns the center of `c`.
+\cgalEpicExact
*/
const Point_3 & center( ) const;
/*!
returns the squared radius of `c`.
+\cgalEpicExact
*/
const Kernel::FT & squared_radius( ) const;
/*!
returns the supporting plane of `c`.
+\cgalEpicExact
*/
const Plane_3 & supporting_plane( ) const;
/*!
returns the diametral sphere of `c`.
+\cgalEpicExact
*/
const Sphere_3 & diametral_sphere( ) const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Direction_2.h b/Kernel_23/doc/Kernel_23/CGAL/Direction_2.h
index 241f39e64094..d3b7554e2723 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Direction_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Direction_2.h
@@ -26,6 +26,7 @@ class Direction_2 {
/*!
introduces the direction `d` of vector `v`.
+\cgalEpicExact
*/
Direction_2(const Vector_2 &v);
@@ -47,6 +48,7 @@ Direction_2(const Segment_2 &s);
/*!
introduces a direction `d` passing through the origin
and the point with %Cartesian coordinates \f$ (x, y)\f$.
+\cgalEpicExact
*/
Direction_2(const Kernel::RT &x, const Kernel::RT &y);
@@ -61,16 +63,20 @@ Direction_2(const Kernel::RT &x, const Kernel::RT &y);
/*!
returns values, such that `d``== Direction_2(delta(0),delta(1))`.
\pre `0 <= i <= 1`.
+
+\cgalEpicExact
*/
Kernel::RT delta(int i) const;
/*!
returns `delta(0)`.
+\cgalEpicExact
*/
Kernel::RT dx() const;
/*!
returns `delta(1)`.
+\cgalEpicExact
*/
Kernel::RT dy() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Direction_3.h b/Kernel_23/doc/Kernel_23/CGAL/Direction_3.h
index 34c8c55766d0..bf623b6a900a 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Direction_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Direction_3.h
@@ -26,6 +26,7 @@ class Direction_3 {
/*!
introduces a direction `d` initialized with the
direction of vector `v`.
+\cgalEpicExact
*/
Direction_3(const Vector_3 &v);
@@ -47,6 +48,7 @@ Direction_3(const Segment_3 &s);
/*!
introduces a direction `d` initialized with the direction
from the origin to the point with %Cartesian coordinates \f$ (x, y, z)\f$.
+\cgalEpicExact
*/
Direction_3(const Kernel::RT &x, const Kernel::RT &y, const Kernel::RT &z);
@@ -58,21 +60,26 @@ Direction_3(const Kernel::RT &x, const Kernel::RT &y, const Kernel::RT &z);
/*!
returns values, such that `d``== Direction_3(delta(0),delta(1),delta(2))`.
\pre `0 <= i <= 2`.
+
+\cgalEpicExact
*/
Kernel::RT delta(int i) const;
/*!
returns `delta(0)`.
+\cgalEpicExact
*/
Kernel::RT dx() const;
/*!
returns `delta(1)`.
+\cgalEpicExact
*/
Kernel::RT dy() const;
/*!
returns `delta(2)`.
+\cgalEpicExact
*/
Kernel::RT dz() const;
@@ -88,11 +95,13 @@ bool operator!=(const Direction_3 &e) const;
/*!
The direction opposite to `d`.
+\cgalEpicExact
*/
Direction_3 operator-() const;
/*!
returns a vector that has the same direction as `d`.
+\cgalEpicExact
*/
Vector_3 vector() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Exact_predicates_inexact_constructions_kernel.h b/Kernel_23/doc/Kernel_23/CGAL/Exact_predicates_inexact_constructions_kernel.h
index d53f16093f08..ad3ba0e043ee 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Exact_predicates_inexact_constructions_kernel.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Exact_predicates_inexact_constructions_kernel.h
@@ -4,16 +4,212 @@ namespace CGAL {
/*!
\ingroup kernel_predef
-A typedef to a kernel which has the following properties:
+A typedef to a kernel that has the following properties:
- It uses %Cartesian representation.
- It supports constructions of points from `double` %Cartesian
coordinates.
-
- It provides exact geometric predicates, but inexact geometric
-constructions.
+
- It provides exact geometric predicates, but geometric
+constructions are not exact in general.
+- Trivial Constructions
+Some geometric constructions, however, are exact because they only
+copy parameters and do not involve any computations that could lead to
+roundoff errors. We call such a construction trivial. For
+instance, all copy constructors, such as `Point_2::Point_2(const
+Point_2&)`, are trivial constructions. In addition, the following
+constructions in `CGAL::Exact_predicates_inexact_constructions_kernel`
+are trivial:
+
+
+- `Point_2::Point_2(FT, FT)`
+
- `Point_2::Point_2(Weighted_point_2)`
+
- `Point_2::Point_2(Origin)`
+
- `FT Point_2::x()`
+
- `FT Point_2::y()`
+
- `FT Point_2::cartesian(int)`
+
- `FT Point_2::operator[](int)`
+
- `Bbox_2 Point_2::bbox()`
+
- `Vector_2 operator-(Point_2, Origin)`
+
- `Vector_2 operator-(Origin, Point_2)`
+
- `Weighted_point_2::Weighted_point_2(FT, FT)`
+
- `Weighted_point_2::Weighted_point_2(Point_2, FT)`
+
- `Weighted_point_2::Weighted_point_2(Point_2)`
+
- `Weighted_point_2::Weighted_point_2(Origin)`
+
- `Point_2 Weighted_point_2::point()`
+
- `FT Weighted_point_2::weight()`
+
- `FT Weighted_point_2::x()`
+
- `FT Weighted_point_2::y()`
+
- `FT Weighted_point_2::cartesian(int)`
+
- `FT Weighted_point_2::operator[](int)`
+
- `Bbox_2 Weighted_point_2::bbox()`
+
- `Vector_2::Vector_2(FT, FT)`
+
- `FT Vector_2::x()`
+
- `FT Vector_2::y()`
+
- `FT Vector_2::cartesian(int)`
+
- `FT Vector_2::operator[](int)`
+
- `Direction_2 Vector_2::direction()`
+
- `Vector_2 Vector_2::operator-()`
+
- `Direction_2::Direction_2(FT, FT)`
+
- `Direction_2::Direction_2(Vector_2)`
+
- `RT Direction_2::delta(int)`
+
- `RT Direction_2::dx()`
+
- `RT Direction_2::dy()`
+
- `Direction_2 Direction_2::operator-()`
+
- `Vector_2 Direction_2::vector()`
+
- `Line_2::Line_2(RT, RT, RT)`
+
- `RT Line_2::a()`
+
- `RT Line_2::b()`
+
- `Line_2 Line_2::opposite()`
+
- `Ray_2::Ray_2(Point_2, Point_2)`
+
- `Point_2 Ray_2::source()`
+
- `Segment_2::Segment_2(Point_2, Point_2)`
+
- `Point_2 Segment_2::source()`
+
- `Point_2 Segment_2::target()`
+
- `Point_2 Segment_2::min()`
+
- `Point_2 Segment_2::max()`
+
- `Point_2 Segment_2::vertex(int)`
+
- `Point_2 Segment_2::point(int)`
+
- `Point_2 Segment_2::operator[](int)`
+
- `Segment_2 Segment_2::opposite()`
+
- `Bbox_2 Segment_2::bbox()`
+
- `Triangle_2::Triangle_2(Point_2, Point_2, Point_2)`
+
- `Point_2 Triangle_2::vertex(int)`
+
- `Point_2 Triangle_2::operator[](int)`
+
- `Triangle_2 Triangle_2::opposite()`
+
- `Bbox_2 Triangle_2::bbox()`
+
- `Iso_rectangle_2::Iso_rectangle_2(Point_2, Point_2)`
+
- `Iso_rectangle_2::Iso_rectangle_2(Point_2, Point_2, int)`
+
- `Iso_rectangle_2::Iso_rectangle_2(Point_2, Point_2, Point_2, Point_2)`
+
- `Iso_rectangle_2::Iso_rectangle_2(Bbox_2)`
+
- `Point_2 Iso_rectangle_2::vertex(int)`
+
- `Point_2 Iso_rectangle_2::operator[](int)`
+
- `Point_2 Iso_rectangle_2::min()`
+
- `Point_2 Iso_rectangle_2::max()`
+
- `FT Iso_rectangle_2::xmin()`
+
- `FT Iso_rectangle_2::ymin()`
+
- `FT Iso_rectangle_2::xmax()`
+
- `FT Iso_rectangle_2::ymax()`
+
- `FT Iso_rectangle_2::min_coord(int)`
+
- `FT Iso_rectangle_2::max_coord(int)`
+
- `Bbox_2 Iso_rectangle_2::bbox()`
+
- `Circle_2::Circle_2(Point_2, FT, Orientation)`
+
- `Circle_2::Circle_2(Point_2, Orientation)`
+
- `Point_2 Circle_2::center()`
+
- `FT Circle_2::squared_radius()`
+
- `Orientation Circle_2::orientation()`
+
- `Circle_2 Circle_2::opposite()`
+
- `Point_3::Point_3(FT, FT, FT)`
+
- `Point_3::Point_3(Weighted_point_3)`
+
- `Point_3::Point_3(Origin)`
+
- `FT Point_3::x()`
+
- `FT Point_3::y()`
+
- `FT Point_3::z()`
+
- `FT Point_3::cartesian(int)`
+
- `FT Point_3::operator[](int)`
+
- `Bbox_3 Point_3::bbox()`
+
- `Vector_3 operator-(Point_3, Origin)`
+
- `Vector_3 operator-(Origin, Point_3)`
+
- `Weighted_point_3::Weighted_point_3(FT, FT, FT)`
+
- `Weighted_point_3::Weighted_point_3(Point_3, FT)`
+
- `Weighted_point_3::Weighted_point_3(Point_3)`
+
- `Weighted_point_3::Weighted_point_3(Origin)`
+
- `Point_3 Weighted_point_3::point()`
+
- `FT Weighted_point_3::weight()`
+
- `FT Weighted_point_3::x()`
+
- `FT Weighted_point_3::y()`
+
- `FT Weighted_point_3::z()`
+
- `FT Weighted_point_3::cartesian(int)`
+
- `FT Weighted_point_3::operator[](int)`
+
- `Bbox_3 Weighted_point_3::bbox()`
+
- `Vector_3::Vector_3(FT, FT, FT)`
+
- `Vector_3::Vector_3(Null_vector)`
+
- `FT Vector_3::x()`
+
- `FT Vector_3::y()`
+
- `FT Vector_3::z()`
+
- `FT Vector_3::cartesian(int)`
+
- `FT Vector_3::operator[](int)`
+
- `Direction_3 Vector_3::direction()`
+
- `Vector_3 Vector_3::opposite()`
+
- `Direction_3::Direction_3(RT, RT, RT)`
+
- `Direction_3::Direction_3(Vector_3)`
+
- `RT Direction_3::delta(int)`
+
- `RT Direction_3::dx()`
+
- `RT Direction_3::dy()`
+
- `RT Direction_3::dz()`
+
- `Direction_3 Direction_3::opposite()`
+
- `Vector_3 Direction_3::vector()`
+
- `Line_3::Line_3(Point_3, Vector_3)`
+
- `Line_3::Line_3(Point_3, Direction_3)`
+
- `Line_3 Line_3::opposite()`
+
- `Vector_3 Line_3::to_vector()`
+
- `Direction_3 Line_3::direction()`
+
- `Plane_3::Plane_3(FT, FT, FT, FT)`
+
- `Plane_3::Plane_3(Circle_3)`
+
- `FT Plane_3::a()`
+
- `FT Plane_3::b()`
+
- `FT Plane_3::c()`
+
- `FT Plane_3::d()`
+
- `Plane_3 Plane_3::opposite()`
+
- `Vector_3 Plane_3::orthogonal_vector()`
+
- `Direction_3 Plane_3::orthogonal_direction()`
+
- `Circle_3::Circle_3(Point_3, FT, Plane_3)`
+
- `Point_3 Circle_3::center()`
+
- `FT Circle_3::squared_radius()`
+
- `FT Circle_3::supporting_plane()`
+
- `Sphere_3 Circle_3::diametral_sphere()`
+
- `Sphere_3::Sphere_3(Point_3, FT, Orientation)`
+
- `Sphere_3::Sphere_3(Point_3, Orientation)`
+
- `Sphere_3::Sphere_3(Circle_3)`
+
- `Point_3 Sphere_3::center()`
+
- `FT Sphere_3::squared_radius()`
+
- `Orientation Sphere_3::orientation()`
+
- `Sphere_3 Sphere_3::opposite()`
+
- `Ray_3::Ray_3(Point_3, Point_3)`
+
- `Point_3 Ray_3::source()`
+
- `Segment_3::Segment_3(Point_3, Point_3)`
+
- `Point_3 Segment_3::source()`
+
- `Point_3 Segment_3::target()`
+
- `Point_3 Segment_3::min()`
+
- `Point_3 Segment_3::max()`
+
- `Point_3 Segment_3::vertex(int)`
+
- `Point_3 Segment_3::point(int)`
+
- `Point_3 Segment_3::operator[](int)`
+
- `Segment_3 Segment_3::opposite()`
+
- `Bbox_3 Segment_3::bbox()`
+
- `Triangle_3::Triangle_3(Point_3, Point_3, Point_3)`
+
- `Point_3 Triangle_3::vertex(int)`
+
- `Point_3 Triangle_3::operator[](int)`
+
- `Bbox_3 Triangle_3::bbox()`
+
- `Tetrahedron_3::Tetrahedron_3(Point_3, Point_3, Point_3, Point_3)`
+
- `Point_3 Tetrahedron_3::vertex(int)`
+
- `Point_3 Tetrahedron_3::operator[](int)`
+
- `Bbox_3 Tetrahedron_3::bbox()`
+
- `Iso_cuboid_3::Iso_cuboid_3(Point_3, Point_3)`
+
- `Iso_cuboid_3::Iso_cuboid_3(Point_3, Point_3, int)`
+
- `Iso_cuboid_3::Iso_cuboid_3(Point_3, Point_3, Point_3, Point_3, Point_3, Point_3)`
+
- `Iso_cuboid_3::Iso_cuboid_3(Bbox_3)`
+
- `Point_3 Iso_cuboid_3::vertex(int)`
+
- `Point_3 Iso_cuboid_3::operator[](int)`
+
- `Point_3 Iso_cuboid_3::min()`
+
- `Point_3 Iso_cuboid_3::max()`
+
- `FT Iso_cuboid_3::xmin()`
+
- `FT Iso_cuboid_3::ymin()`
+
- `FT Iso_cuboid_3::zmin()`
+
- `FT Iso_cuboid_3::xmax()`
+
- `FT Iso_cuboid_3::ymax()`
+
- `FT Iso_cuboid_3::zmax()`
+
- `FT Iso_cuboid_3::min_coord(int)`
+
- `FT Iso_cuboid_3::max_coord(int)`
+
- `Bbox_3 Iso_cuboid_3::bbox()`
+
- `Point_2 min_vertex(Iso_rectangle_2)`
+
- `Point_2 min_vertex(Iso_cuboid_3)`
+
- `Point_2 max_vertex(Iso_rectangle_2)`
+
- `Point_2 max_vertex(Iso_cuboid_3)`
+
+
\cgalModels{Kernel}
\sa `CGAL::Exact_predicates_exact_constructions_kernel`
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Iso_cuboid_3.h b/Kernel_23/doc/Kernel_23/CGAL/Iso_cuboid_3.h
index c98675c6ecf8..c2606d52caca 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Iso_cuboid_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Iso_cuboid_3.h
@@ -30,6 +30,7 @@ class Iso_cuboid_3 {
introduces an iso-oriented cuboid `c` with diagonal
opposite vertices `p` and `q`. Note that the object is
brought in the canonical form.
+\cgalEpicExact
*/
Iso_cuboid_3(const Point_3 &p,
const Point_3 &q);
@@ -39,6 +40,8 @@ introduces an iso-oriented cuboid `c` with diagonal
opposite vertices `p` and `q`. The `int` argument value
is only used to distinguish the two overloaded functions.
\pre `p.x()<=q.x()`, `p.y()<=q.y()` and `p.z()<=q.z()`.
+
+\cgalEpicExact
*/
Iso_cuboid_3(const Point_3 &p,
const Point_3 &q, int);
@@ -51,6 +54,7 @@ minimal \f$ y\f$ coordinate is the one of `bottom`, the
maximal \f$ y\f$ coordinate is the one of `top`, the
minimal \f$ z\f$ coordinate is the one of `far`, the
maximal \f$ z\f$ coordinate is the one of `close`.
+\cgalEpicExact
*/
Iso_cuboid_3(const Point_3 &left,
const Point_3 &right,
@@ -74,6 +78,7 @@ const Kernel::RT& hw = RT(1));
/*!
If `Kernel::RT` is constructible from double,
introduces an iso-oriented cuboid from `bbox`.
+\cgalEpicExact
*/
Iso_cuboid_3(const Bbox_3& bbox);
@@ -96,6 +101,7 @@ bool operator!=(const Iso_cuboid_3 &c2) const;
/*!
returns the i'th vertex modulo 8 of `c`.
starting with the lower left vertex.
+\cgalEpicExact
*/
Point_3 vertex(int i) const;
@@ -103,52 +109,62 @@ Point_3 vertex(int i) const;
returns `vertex(i)`, as indicated in the figure below:
\image html IsoCuboid.png
\image latex IsoCuboid.png
+
+\cgalEpicExact
*/
Point_3 operator[](int i) const;
/*!
returns the smallest vertex of `c` (= `vertex(0)`).
+\cgalEpicExact
*/
Point_3 min() const;
/*!
returns the largest vertex of `c` (= `vertex(7)`).
+\cgalEpicExact
*/
Point_3 max() const;
/*!
returns smallest %Cartesian
\f$ x\f$-coordinate in `c`.
+\cgalEpicExact
*/
Kernel::FT xmin() const;
/*!
returns smallest %Cartesian
\f$ y\f$-coordinate in `c`.
+\cgalEpicExact
*/
Kernel::FT ymin() const;
/*!
returns smallest %Cartesian
\f$ z\f$-coordinate in `c`.
+\cgalEpicExact
*/
Kernel::FT zmin() const;
/*!
returns largest %Cartesian
\f$ x\f$-coordinate in `c`.
+\cgalEpicExact
*/
Kernel::FT xmax() const;
/*!
returns largest %Cartesian
\f$ y\f$-coordinate in `c`.
+\cgalEpicExact
*/
Kernel::FT ymax() const;
/*!
returns largest %Cartesian
\f$ z\f$-coordinate in `c`.
+\cgalEpicExact
*/
Kernel::FT zmax() const;
@@ -156,6 +172,8 @@ Kernel::FT zmax() const;
returns `i`-th %Cartesian coordinate of
the smallest vertex of `c`.
\pre `0 <= i <= 2`.
+
+\cgalEpicExact
*/
Kernel::FT min_coord(int i) const;
@@ -163,6 +181,8 @@ Kernel::FT min_coord(int i) const;
returns `i`-th %Cartesian coordinate of
the largest vertex of `c`.
\pre `0 <= i <= 2`.
+
+\cgalEpicExact
*/
Kernel::FT max_coord(int i) const;
@@ -212,6 +232,7 @@ Kernel::FT volume() const;
/*!
returns a bounding box containing `c`.
+\cgalEpicExact
*/
Bbox_3 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Iso_rectangle_2.h b/Kernel_23/doc/Kernel_23/CGAL/Iso_rectangle_2.h
index 106c019b0e2c..602cdc2386ea 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Iso_rectangle_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Iso_rectangle_2.h
@@ -31,6 +31,7 @@ class Iso_rectangle_2 {
introduces an iso-oriented rectangle `r` with diagonal
opposite vertices `p` and `q`. Note that the object is
brought in the canonical form.
+\cgalEpicExact
*/
Iso_rectangle_2(const Point_2 &p,
const Point_2 &q);
@@ -40,6 +41,8 @@ introduces an iso-oriented rectangle `r` with diagonal
opposite vertices `p` and `q`. The `int` argument value
is only used to distinguish the two overloaded functions.
\pre `p.x()<=q.x()` and `p.y()<=q.y()`.
+
+\cgalEpicExact
*/
Iso_rectangle_2(const Point_2 &p,
const Point_2 &q,
@@ -51,6 +54,7 @@ minimal \f$ x\f$ coordinate is the one of `left`, the
maximal \f$ x\f$ coordinate is the one of `right`, the
minimal \f$ y\f$ coordinate is the one of `bottom`, the
maximal \f$ y\f$ coordinate is the one of `top`.
+\cgalEpicExact
*/
Iso_rectangle_2(const Point_2 &left,
const Point_2 &right,
@@ -70,6 +74,7 @@ const Kernel::RT& hw = RT(1));
/*!
If `Kernel::RT` is constructible from double,
introduces an iso-oriented rectangle from `bbox`.
+\cgalEpicExact
*/
Iso_rectangle_2(const Bbox_2& bbox);
@@ -92,41 +97,49 @@ bool operator!=(const Iso_rectangle_2 &r2) const;
/*!
returns the i'th vertex modulo 4 of `r` in counterclockwise order,
starting with the lower left vertex.
+\cgalEpicExact
*/
Point_2 vertex(int i) const;
/*!
returns `vertex(i)`.
+\cgalEpicExact
*/
Point_2 operator[](int i) const;
/*!
returns the lower left vertex of `r` (= `vertex(0)`).
+\cgalEpicExact
*/
Point_2 min() const;
/*!
returns the upper right vertex of `r` (= `vertex(2)`).
+\cgalEpicExact
*/
Point_2 max() const;
/*!
returns the \f$ x\f$ coordinate of lower left vertex of `r`.
+\cgalEpicExact
*/
Kernel::FT xmin() const;
/*!
returns the \f$ y\f$ coordinate of lower left vertex of `r`.
+\cgalEpicExact
*/
Kernel::FT ymin() const;
/*!
returns the \f$ x\f$ coordinate of upper right vertex of `r`.
+\cgalEpicExact
*/
Kernel::FT xmax() const;
/*!
returns the \f$ y\f$ coordinate of upper right vertex of `r`.
+\cgalEpicExact
*/
Kernel::FT ymax() const;
@@ -134,6 +147,8 @@ Kernel::FT ymax() const;
returns the `i`'th %Cartesian coordinate of the
lower left vertex of `r`.
\pre `0 <= i <= 1`.
+
+\cgalEpicExact
*/
Kernel::FT min_coord(int i) const;
@@ -141,6 +156,8 @@ Kernel::FT min_coord(int i) const;
returns the `i`'th %Cartesian coordinate of the
upper right vertex of `r`.
\pre `0 <= i <= 1`.
+
+\cgalEpicExact
*/
Kernel::FT max_coord(int i) const;
@@ -190,6 +207,7 @@ Kernel::FT area() const;
/*!
returns a bounding box containing `r`.
+\cgalEpicExact
*/
Bbox_2 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h b/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h
index 1b7099243c9e..243ca48a93e1 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Kernel/global_functions.h
@@ -2242,12 +2242,14 @@ const CGAL::Point_3& q);
/*!
computes the vertex with the lexicographically largest coordinates of the iso rectangle `ir`.
+\cgalEpicExact
*/
template
CGAL::Point_2 max_vertex( const CGAL::Iso_rectangle_2& ir );
/*!
computes the vertex with the lexicographically largest coordinates of the iso cuboid `ic`.
+\cgalEpicExact
*/
template
CGAL::Point_3 max_vertex( const CGAL::Iso_cuboid_3& ic );
@@ -2292,12 +2294,14 @@ CGAL::Point_3 midpoint( const CGAL::Segment_3& s );
/*!
computes the vertex with the lexicographically smallest coordinates of the iso rectangle `ir`.
+\cgalEpicExact
*/
template
CGAL::Point_2 min_vertex( const CGAL::Iso_rectangle_2& ir );
/*!
computes the vertex with the lexicographically smallest coordinates of the iso cuboid `ic`.
+\cgalEpicExact
*/
template
CGAL::Point_3 min_vertex( const CGAL::Iso_cuboid_3& ic );
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Line_2.h b/Kernel_23/doc/Kernel_23/CGAL/Line_2.h
index 6d10a6efc622..2ef5b4fbd026 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Line_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Line_2.h
@@ -47,6 +47,7 @@ class Line_2 {
/*!
introduces a line `l` with the line equation in %Cartesian
coordinates \f$ ax +by +c = 0\f$.
+\cgalEpicExact
*/
Line_2(const Kernel::RT &a, const Kernel::RT &b, const Kernel::RT &c);
@@ -98,16 +99,19 @@ bool operator!=(const Line_2 &h) const;
/*!
returns the first coefficient of `l`.
+\cgalEpicExact
*/
Kernel::RT a() const;
/*!
returns the second coefficient of `l`.
+\cgalEpicExact
*/
Kernel::RT b() const;
/*!
returns the third coefficient of `l`.
+\cgalEpicExact
*/
Kernel::RT c() const;
@@ -205,6 +209,7 @@ Direction_2 direction() const;
/*!
returns the line with opposite direction.
+\cgalEpicExact
*/
Line_2 opposite() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Line_3.h b/Kernel_23/doc/Kernel_23/CGAL/Line_3.h
index 1760d5f6c2a2..878aef4c1a3a 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Line_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Line_3.h
@@ -25,12 +25,14 @@ Line_3(const Point_3 &p, const Point_3 &q);
/*!
introduces a line `l` passing through point `p` with
direction `d`.
+\cgalEpicExact
*/
Line_3(const Point_3 &p, const Direction_3&d);
/*!
introduces a line `l` passing through point `p` and
oriented by `v`.
+\cgalEpicExact
*/
Line_3(const Point_3 &p, const Vector_3&v);
@@ -100,16 +102,19 @@ Plane_3 perpendicular_plane(const Point_3 &p) const;
/*!
returns the line with opposite direction.
+\cgalEpicExact
*/
Line_3 opposite() const;
/*!
returns a vector having the same direction as `l`.
+\cgalEpicExact
*/
Vector_3 to_vector() const;
/*!
returns the direction of `l`.
+\cgalEpicExact
*/
Direction_3 direction() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Plane_3.h b/Kernel_23/doc/Kernel_23/CGAL/Plane_3.h
index 4496ea077dd8..44c0f888b1c5 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Plane_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Plane_3.h
@@ -29,6 +29,7 @@ creates a plane `h` defined by the equation
\f$ a\, px +b\, py +c\, pz + d = 0\f$.
Notice that `h` is degenerate if
\f$ a = b = c = 0\f$.
+\cgalEpicExact
*/
Plane_3(const Kernel::RT &a,
const Kernel::RT &b,
@@ -84,6 +85,7 @@ const Point_3 &p);
/*!
introduces a plane `h` that is defined as the plane containing
the circle.
+\cgalEpicExact
*/
Plane_3(const Circle_3 &c);
@@ -105,21 +107,25 @@ bool operator!=(const Plane_3 &h2) const;
/*!
returns the first coefficient of `h`.
+\cgalEpicExact
*/
Kernel::RT a() const;
/*!
returns the second coefficient of `h`.
+\cgalEpicExact
*/
Kernel::RT b() const;
/*!
returns the third coefficient of `h`.
+\cgalEpicExact
*/
Kernel::RT c() const;
/*!
returns the fourth coefficient of `h`.
+\cgalEpicExact
*/
Kernel::RT d() const;
@@ -137,6 +143,7 @@ Point_3 projection(const Point_3 &p) const;
/*!
returns the plane with opposite orientation.
+\cgalEpicExact
*/
Plane_3 opposite() const;
@@ -148,12 +155,14 @@ Point_3 point() const;
/*!
returns a vector that is orthogonal to `h` and that
is directed to the positive side of `h`.
+\cgalEpicExact
*/
Vector_3 orthogonal_vector() const;
/*!
returns the direction that is orthogonal to `h` and that
is directed to the positive side of `h`.
+\cgalEpicExact
*/
Direction_3 orthogonal_direction() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Point_2.h b/Kernel_23/doc/Kernel_23/CGAL/Point_2.h
index 7548bef24722..a0a6315a867b 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Point_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Point_2.h
@@ -54,6 +54,7 @@ typedef unspecified_type Cartesian_const_iterator;
/*!
introduces a variable `p` with %Cartesian coordinates
\f$ (0,0)\f$.
+\cgalEpicExact
*/
Point_2(const Origin &ORIGIN);
@@ -65,6 +66,7 @@ Point_2(int x, int y);
/*!
introduces a point `p` initialized to `(x,y)`
provided `RT` supports construction from `double`.
+\cgalEpicExact
*/
Point_2(double x, double y);
@@ -76,11 +78,13 @@ Point_2(const Kernel::RT &hx, const Kernel::RT &hy, const Kernel::RT &hw = RT(1)
/*!
introduces a point `p` initialized to `(x,y)`.
+\cgalEpicExact
*/
Point_2(const Kernel::FT &x, const Kernel::FT &y);
/*!
introduces a point from a weighted point.
+\cgalEpicExact
\warning The `explicit` keyword is used to avoid accidental implicit conversions
between Point_2 and Weighted_point_2.
@@ -140,11 +144,13 @@ Kernel::RT hw() const;
/*!
returns the %Cartesian \f$ x\f$ coordinate, that is `hx()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT x() const;
/*!
returns the %Cartesian \f$ y\f$ coordinate, that is `hy()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT y() const;
@@ -165,12 +171,16 @@ Kernel::RT homogeneous(int i) const;
/*!
returns the i'th %Cartesian coordinate of `p`.
\pre `0 <= i <= 1`.
+
+\cgalEpicExact
*/
Kernel::FT cartesian(int i) const;
/*!
returns `cartesian(i)`.
\pre `0 <= i <= 1`.
+
+\cgalEpicExact
*/
Kernel::FT operator[](int i) const;
@@ -193,6 +203,7 @@ int dimension() const;
/*!
returns a bounding box containing `p`.
+\cgalEpicExact
*/
Bbox_2 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Point_3.h b/Kernel_23/doc/Kernel_23/CGAL/Point_3.h
index 7bd6d26fddc7..d22c3589164a 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Point_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Point_3.h
@@ -39,6 +39,7 @@ typedef unspecified_type Cartesian_const_iterator;
/*!
introduces a point with %Cartesian coordinates\f$ (0,0,0)\f$.
+\cgalEpicExact
*/
Point_3(const Origin &ORIGIN);
@@ -50,6 +51,7 @@ Point_3(int x, int y, int z);
/*!
introduces a point `p` initialized to `(x,y,z)`
provided `RT` supports it.
+\cgalEpicExact
*/
Point_3(double x, double y, double z);
@@ -61,6 +63,7 @@ Point_3(const Kernel::RT &hx, const Kernel::RT &hy, const Kernel::RT &hz, const
/*!
introduces a point `p` initialized to `(x,y,z)`.
+\cgalEpicExact
*/
Point_3(const Kernel::FT &x, const Kernel::FT &y, const Kernel::FT &z);
@@ -69,6 +72,8 @@ introduces a point from a weighted point.
\warning The `explicit` keyword is used to avoid accidental implicit conversions
between Point_3 and Weighted_point_3.
+
+\cgalEpicExact
*/
explicit Point_3(const Kernel::Weighted_point_3 &wp);
@@ -130,16 +135,19 @@ Kernel::RT hw() const;
/*!
returns the %Cartesian \f$ x\f$ coordinate, that is `hx()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT x() const;
/*!
returns the %Cartesian \f$ y\f$ coordinate, that is `hy()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT y() const;
/*!
returns the %Cartesian \f$ z\f$ coordinate, that is `hz()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT z() const;
@@ -160,12 +168,16 @@ Kernel::RT homogeneous(int i) const;
/*!
returns the i'th %Cartesian coordinate of `p`.
\pre `0 <= i <= 2`.
+
+\cgalEpicExact
*/
Kernel::FT cartesian(int i) const;
/*!
returns `cartesian(i)`.
\pre `0 <= i <= 2`.
+
+\cgalEpicExact
*/
Kernel::FT operator[](int i) const;
@@ -188,6 +200,7 @@ int dimension() const;
/*!
returns a bounding box containing `p`.
+\cgalEpicExact
*/
Bbox_3 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Ray_2.h b/Kernel_23/doc/Kernel_23/CGAL/Ray_2.h
index 0e81f49852c0..bb32c5c771d9 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Ray_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Ray_2.h
@@ -20,6 +20,7 @@ class Ray_2 {
/*!
introduces a ray `r`
with source `p` and passing through point `q`.
+\cgalEpicExact
*/
Ray_2(const Point_2 &p, const Point_2&q);
@@ -59,6 +60,7 @@ bool operator!=(const Ray_2 &h) const;
/*!
returns the source of `r`.
+\cgalEpicExact
*/
Point_2 source() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Ray_3.h b/Kernel_23/doc/Kernel_23/CGAL/Ray_3.h
index 49f66ae47cc7..7f5e88c8de14 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Ray_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Ray_3.h
@@ -20,6 +20,7 @@ class Ray_3 {
/*!
introduces a ray `r`
with source `p` and passing through point `q`.
+\cgalEpicExact
*/
Ray_3(const Point_3 &p, const Point_3 &q);
@@ -59,6 +60,7 @@ bool operator!=(const Ray_3 &h) const;
/*!
returns the source of `r`
+\cgalEpicExact
*/
Point_3 source() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Segment_2.h b/Kernel_23/doc/Kernel_23/CGAL/Segment_2.h
index 0e7bc381ab15..42005d1e6081 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Segment_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Segment_2.h
@@ -28,6 +28,7 @@ class Segment_2 {
introduces a segment `s` with source `p`
and target `q`. The segment is directed from the source towards
the target.
+\cgalEpicExact
*/
Segment_2(const Point_2 &p, const Point_2 &q);
@@ -49,21 +50,25 @@ bool operator!=(const Segment_2 &q) const;
/*!
returns the source of `s`.
+\cgalEpicExact
*/
Point_2 source() const;
/*!
returns the target of `s`.
+\cgalEpicExact
*/
Point_2 target() const;
/*!
returns the point of `s` with lexicographically smallest coordinate.
+\cgalEpicExact
*/
Point_2 min() const;
/*!
returns the point of `s` with lexicographically largest coordinate.
+\cgalEpicExact
*/
Point_2 max() const;
@@ -72,16 +77,19 @@ returns source or target of `s`: `vertex(0)` returns
the source of `s`, `vertex(1)` returns the target of `s`.
The parameter `i` is taken modulo 2, which gives
easy access to the other vertex.
+\cgalEpicExact
*/
Point_2 vertex(int i) const;
/*!
returns `vertex(i)`.
+\cgalEpicExact
*/
Point_2 point(int i) const;
/*!
returns `vertex(i)`.
+\cgalEpicExact
*/
Point_2 operator[](int i) const;
@@ -102,6 +110,7 @@ Vector_2 to_vector() const;
/*!
returns a segment with source and target point interchanged.
+\cgalEpicExact
*/
Segment_2 opposite() const;
@@ -151,6 +160,7 @@ bool collinear_has_on(const Point_2 &p) const;
/*!
returns a bounding box containing `s`.
+\cgalEpicExact
*/
Bbox_2 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Segment_3.h b/Kernel_23/doc/Kernel_23/CGAL/Segment_3.h
index ffa862e7361f..948ecdbb4972 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Segment_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Segment_3.h
@@ -28,6 +28,7 @@ class Segment_3 {
introduces a segment `s` with source `p`
and target `q`. It is directed from the source towards
the target.
+\cgalEpicExact
*/
Segment_3(const Point_3 &p, const Point_3 &q);
@@ -49,21 +50,25 @@ bool operator!=(const Segment_3 &q) const;
/*!
returns the source of `s`.
+\cgalEpicExact
*/
Point_3 source() const;
/*!
returns the target of `s`.
+\cgalEpicExact
*/
Point_3 target() const;
/*!
returns the point of `s` with smallest coordinate (lexicographically).
+\cgalEpicExact
*/
Point_3 min() const;
/*!
returns the point of `s` with largest coordinate (lexicographically).
+\cgalEpicExact
*/
Point_3 max() const;
@@ -72,16 +77,19 @@ returns source or target of `s`: `vertex(0)` returns
the source, `vertex(1)` returns the target.
The parameter `i` is taken modulo 2, which gives
easy access to the other vertex.
+\cgalEpicExact
*/
Point_3 vertex(int i) const;
/*!
returns `vertex(i)`.
+\cgalEpicExact
*/
Point_3 point(int i) const;
/*!
returns `vertex(i)`.
+\cgalEpicExact
*/
Point_3 operator[](int i) const;
@@ -102,6 +110,7 @@ Direction_3 direction() const;
/*!
returns a segment with source and target interchanged.
+\cgalEpicExact
*/
Segment_3 opposite() const;
@@ -125,6 +134,7 @@ bool has_on(const Point_3 &p) const;
/*!
returns a bounding box containing `s`.
+\cgalEpicExact
*/
Bbox_3 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Sphere_3.h b/Kernel_23/doc/Kernel_23/CGAL/Sphere_3.h
index 2436276513e1..d3995efe2c1f 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Sphere_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Sphere_3.h
@@ -28,6 +28,8 @@ It is initialized to the sphere with center `center`,
squared radius `squared_radius` and orientation
`orientation`.
\pre `orientation != COPLANAR` and `squared_radius >= 0`.
+
+\cgalEpicExact
*/
Sphere_3( const Point_3 & center,
const Kernel::FT & squared_radius,
@@ -77,6 +79,8 @@ It is initialized to the sphere with center `center`, squared
radius zero and orientation `orientation`.
\pre `orientation != COPLANAR`.
\post `c.is_degenerate()` = `true`.
+
+\cgalEpicExact
*/
Sphere_3( const Point_3 & center,
const Orientation& orientation = COUNTERCLOCKWISE);
@@ -85,6 +89,7 @@ Sphere_3( const Point_3 & center,
introduces a variable `c` of type `Sphere_3`.
It is initialized to the diametral sphere of the circle.
+\cgalEpicExact
*/
Sphere_3( const Circle_3 & c );
@@ -96,18 +101,21 @@ Sphere_3( const Circle_3 & c );
/*!
returns the center of `c`.
+\cgalEpicExact
*/
const Point_3 & center( ) const;
/*!
returns the squared radius of `c`.
+\cgalEpicExact
*/
Kernel::FT const& squared_radius( ) const;
/*!
returns the orientation of `c`.
+\cgalEpicExact
*/
Orientation const& orientation( ) const;
@@ -201,6 +209,7 @@ bool has_on(const Circle_3 &p) const;
returns the sphere with the same center and squared radius as
`c` but with opposite orientation.
+\cgalEpicExact
*/
Sphere_3 opposite() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Tetrahedron_3.h b/Kernel_23/doc/Kernel_23/CGAL/Tetrahedron_3.h
index 37af105fefe9..6af609250b87 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Tetrahedron_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Tetrahedron_3.h
@@ -29,6 +29,7 @@ class Tetrahedron_3 {
/*!
introduces a tetrahedron `t` with vertices `p0`, `p1`, `p2` and `p3`.
+\cgalEpicExact
*/
Tetrahedron_3(const Point_3 &p0,
const Point_3 &p1,
@@ -54,11 +55,13 @@ bool operator!=(const Tetrahedron_3 &t2) const;
/*!
returns the i'th vertex modulo 4 of `t`.
+\cgalEpicExact
*/
Point_3 vertex(int i) const;
/*!
returns `vertex(int i)`.
+\cgalEpicExact
*/
Point_3 operator[](int i) const;
@@ -129,6 +132,7 @@ Kernel::FT volume() const;
/*!
returns a bounding box containing `t`.
+\cgalEpicExact
*/
Bbox_3 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Triangle_2.h b/Kernel_23/doc/Kernel_23/CGAL/Triangle_2.h
index 9004381fb117..11a9c5162698 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Triangle_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Triangle_2.h
@@ -25,6 +25,7 @@ class Triangle_2 {
/*!
introduces a triangle `t` with vertices `p`, `q` and `r`.
+\cgalEpicExact
*/
Triangle_2(const Point_2 &p,
const Point_2 &q,
@@ -49,11 +50,13 @@ bool operator!=(const Triangle_2 &t2) const;
/*!
returns the i'th vertex modulo 3 of `t`.
+\cgalEpicExact
*/
Point_2 vertex(int i) const;
/*!
returns `vertex(i)`.
+\cgalEpicExact
*/
Point_2 operator[](int i) const;
@@ -127,6 +130,7 @@ bool has_on_unbounded_side(const Point_2 &p) const;
returns a triangle where the boundary is oriented the other
way round (this flips the positive and the negative side, but
not the bounded and unbounded side).
+\cgalEpicExact
*/
Triangle_2 opposite();
@@ -137,6 +141,7 @@ Kernel::FT area() const;
/*!
returns a bounding box containing `t`.
+\cgalEpicExact
*/
Bbox_2 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Triangle_3.h b/Kernel_23/doc/Kernel_23/CGAL/Triangle_3.h
index cc53d8ad29a4..4efcfac0752f 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Triangle_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Triangle_3.h
@@ -20,6 +20,7 @@ class Triangle_3 {
/*!
introduces a triangle `t` with vertices `p`, `q` and `r`.
+\cgalEpicExact
*/
Triangle_3(const Point_3 &p,
const Point_3 &q,
@@ -44,11 +45,13 @@ bool operator!=(const Triangle_3 &t2) const;
/*!
returns the i'th vertex modulo 3 of `t`.
+\cgalEpicExact
*/
Point_3 vertex(int i) const;
/*!
returns `vertex(int i)`.
+\cgalEpicExact
*/
Point_3 operator[](int i) const;
@@ -86,6 +89,7 @@ Kernel::FT squared_area() const;
/*!
returns a bounding box containing `t`.
+\cgalEpicExact
*/
Bbox_3 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Vector_2.h b/Kernel_23/doc/Kernel_23/CGAL/Vector_2.h
index bebeeeda3d93..5f77fcd9c845 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Vector_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Vector_2.h
@@ -65,6 +65,7 @@ Vector_2(int x, int y);
/*!
introduces a vector `v` initialized to `(x,y)`.
+\cgalEpicExact
*/
Vector_2(double x, double y);
@@ -76,6 +77,7 @@ Vector_2(const Kernel::RT &hx, const Kernel::RT &hy, const Kernel::RT &hw = RT(1
/*!
introduces a vector `v` initialized to `(x,y)`.
+\cgalEpicExact
*/
Vector_2(const Kernel::FT &x, const Kernel::FT &y);
@@ -106,11 +108,13 @@ Kernel::RT hw() const;
/*!
returns the `x`-coordinate of `v`, that is `hx()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT x() const;
/*!
returns the `y`-coordinate of `v`, that is `hy()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT y() const;
@@ -132,12 +136,16 @@ Kernel::RT homogeneous(int i) const;
/*!
returns the i'th %Cartesian coordinate of `v`.
\pre `0 <= i <= 1`.
+
+\cgalEpicExact
*/
Kernel::FT cartesian(int i) const;
/*!
returns `cartesian(i)`.
\pre `0 <= i <= 1`.
+
+\cgalEpicExact
*/
Kernel::FT operator[](int i) const;
@@ -160,6 +168,7 @@ int dimension() const;
/*!
returns the direction which passes through `v`.
+\cgalEpicExact
*/
Direction_2 direction() const;
@@ -215,6 +224,7 @@ Vector_2& operator-=(const Vector_2 &w);
/*!
returns the opposite vector.
+\cgalEpicExact
*/
Vector_2 operator-() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Vector_3.h b/Kernel_23/doc/Kernel_23/CGAL/Vector_3.h
index 1e114bd44e3d..84c61818845f 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Vector_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Vector_3.h
@@ -58,6 +58,7 @@ Vector_3(const Line_3 &l);
/*!
introduces a null vector `v`.
+\cgalEpicExact
*/
Vector_3(const Null_vector &NULL_VECTOR);
@@ -68,6 +69,7 @@ Vector_3(int x, int y, int z);
/*!
introduces a vector `v` initialized to `(x, y, z)`.
+\cgalEpicExact
*/
Vector_3(double x, double y, double z);
@@ -78,6 +80,7 @@ Vector_3(const Kernel::RT &hx, const Kernel::RT &hy, const Kernel::RT &hz, const
/*!
introduces a vector `v` initialized to `(x, y, z)`.
+\cgalEpicExact
*/
Vector_3(const Kernel::FT &x, const Kernel::FT &y, const Kernel::FT &z);
@@ -113,16 +116,19 @@ Kernel::RT hw() const;
/*!
returns the `x`-coordinate of `v`, that is `hx()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT x() const;
/*!
returns the `y`-coordinate of `v`, that is `hy()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT y() const;
/*!
returns the `z` coordinate of `v`, that is `hz()`/`hw()`.
+\cgalEpicExact
*/
Kernel::FT z() const;
@@ -143,12 +149,16 @@ Kernel::RT homogeneous(int i) const;
/*!
returns the i'th %Cartesian coordinate of `v`.
\pre `0 <= i <= 2`
+
+\cgalEpicExact
*/
Kernel::FT cartesian(int i) const;
/*!
returns `cartesian(i)`.
\pre `0 <= i <= 2`
+
+\cgalEpicExact
*/
Kernel::FT operator[](int i) const;
@@ -176,6 +186,8 @@ Vector_3 transform(const Aff_transformation_3 &t) const;
/*!
returns the direction of `v`.
+
+\cgalEpicExact
*/
Direction_3 direction() const;
@@ -219,6 +231,7 @@ Vector_3& operator-=(const Vector_3 &w);
/*!
Returns the opposite vector.
+\cgalEpicExact
*/
Vector_3 operator-() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_2.h b/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_2.h
index fa67214d5a86..f06e42222d31 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_2.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_2.h
@@ -42,11 +42,13 @@ class Weighted_point_2
/*!
introduces a weighted point with %Cartesian coordinates `(0,0)` and weight `0`.
+ \cgalEpicExact
*/
Weighted_point_2(const Origin &ORIGIN);
/*!
introduces a weighted point from point `p` and weight `0`.
+ \cgalEpicExact
\warning The `explicit` keyword is used to avoid accidental implicit conversions
between Point_2 and Weighted_point_2.
@@ -55,11 +57,13 @@ class Weighted_point_2
/*!
introduces a weighted point from point `p` and weight `w`.
+ \cgalEpicExact
*/
Weighted_point_2(const Point_2& p, Kernel::FT& w);
/*!
introduces a weighted point with coordinates `x`, `y`, and weight `0`.
+ \cgalEpicExact
*/
Weighted_point_2(const Kernel::FT& x, const Kernel::FT& y);
@@ -70,11 +74,13 @@ class Weighted_point_2
/*!
returns the point of the weighted point.
+ \cgalEpicExact
*/
Point_2 point() const;
/*!
returns the weight of the weighted point.
+ \cgalEpicExact
*/
Kernel::FT weight() const;
/// @}
@@ -128,11 +134,13 @@ class Weighted_point_2
/*!
returns the %Cartesian \f$ x\f$ coordinate, that is `hx()`/`hw()`.
+ \cgalEpicExact
*/
Kernel::FT x() const;
/*!
returns the %Cartesian \f$ y\f$ coordinate, that is `hy()`/`hw()`.
+ \cgalEpicExact
*/
Kernel::FT y() const;
@@ -153,12 +161,16 @@ class Weighted_point_2
/*!
returns the i'th %Cartesian coordinate of `p`.
\pre `0 <= i <= 1`
+
+ \cgalEpicExact
*/
Kernel::FT cartesian(int i) const;
/*!
returns `cartesian(i)`.
\pre `0 <= i <= 1`
+
+ \cgalEpicExact
*/
Kernel::FT operator[](int i) const;
@@ -181,6 +193,7 @@ class Weighted_point_2
/*!
returns a bounding box containing `p`.
+ \cgalEpicExact
*/
Bbox_2 bbox() const;
diff --git a/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_3.h b/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_3.h
index 7765f44daa96..8a442b9fb8f1 100644
--- a/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_3.h
+++ b/Kernel_23/doc/Kernel_23/CGAL/Weighted_point_3.h
@@ -42,6 +42,7 @@ class Weighted_point_3
/*!
introduces a weighted point with %Cartesian coordinates `(0,0,0)` and weight `0`.
+ \cgalEpicExact
*/
Weighted_point_3(const Origin &ORIGIN);
@@ -50,16 +51,20 @@ class Weighted_point_3
\warning The `explicit` keyword is used to avoid accidental implicit conversions
between Point_3 and Weighted_point_3.
+
+ \cgalEpicExact
*/
explicit Weighted_point_3(const Point_3& p);
/*!
introduces a weighted point from point `p` and weight `w`.
+ \cgalEpicExact
*/
Weighted_point_3(const Point_3& p, Kernel::FT& w);
/*!
introduces a weighted point with coordinates `x`, `y`, `z` and weight `0`.
+ \cgalEpicExact
*/
Weighted_point_3(const Kernel::FT& x, const Kernel::FT& y, const Kernel::FT& z);
@@ -70,11 +75,13 @@ class Weighted_point_3
/*!
returns the point of the weighted point.
+ \cgalEpicExact
*/
Point_3 point() const;
/*!
returns the weight of the weighted point.
+ \cgalEpicExact
*/
Kernel::FT weight() const;
/// @}
@@ -133,16 +140,19 @@ class Weighted_point_3
/*!
returns the %Cartesian \f$ x\f$ coordinate, that is `hx()`/`hw()`.
+ \cgalEpicExact
*/
Kernel::FT x() const;
/*!
returns the %Cartesian \f$ y\f$ coordinate, that is `hy()`/`hw()`.
+ \cgalEpicExact
*/
Kernel::FT y() const;
/*!
returns the %Cartesian \f$ z\f$ coordinate, that is `hz()`/`hw()`.
+ \cgalEpicExact
*/
Kernel::FT z() const;
@@ -163,12 +173,16 @@ class Weighted_point_3
/*!
returns the i'th %Cartesian coordinate of `p`.
\pre `0 <= i <= 2`
+
+ \cgalEpicExact
*/
Kernel::FT cartesian(int i) const;
/*!
returns `cartesian(i)`.
\pre `0 <= i <= 2`
+
+ \cgalEpicExact
*/
Kernel::FT operator[](int i) const;
@@ -191,6 +205,7 @@ class Weighted_point_3
/*!
returns a bounding box containing `p`.
+ \cgalEpicExact
*/
Bbox_3 bbox() const;