diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt b/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt
index 518643fc6ad..a1d6e8f0a17 100644
--- a/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt
+++ b/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt
@@ -125,7 +125,7 @@ The page \ref bgl_namedparameters "Named Parameters" describes their usage.
- `CGAL::Polygon_mesh_processing::degenerate_faces()`
- `CGAL::Polygon_mesh_processing::is_needle_triangle_face()`
- `CGAL::Polygon_mesh_processing::is_cap_triangle_face()`
-- `CGAL::Envelope`
+- `CGAL::Polyhedral_envelope`
\cgalCRPSection{Location Functions}
- \link PMP_locate_grp Point Location \endlink
diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt b/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
index 1962b9aa187..328fb642da5 100644
--- a/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
+++ b/Polygon_mesh_processing/doc/Polygon_mesh_processing/Polygon_mesh_processing.txt
@@ -514,25 +514,25 @@ input triangle mesh.
\subsection PMPEnvelope Polyhedral Envelope Containment Check
-The class `CGAL::Envelope` provides functors that enable you to check if a query point, segment, or triangle
+The class `CGAL::Polyhedral_envelope` provides functors that enable users to check if a query point, segment, or triangle
is fully contained in a polyhedral envelope of a triangle mesh.
-Given a distance \f$ \delta \f$ we compute for each triangle a prism by intersecting two halfspaces
+The polyhedral envelope is a conservative approximation of the Minkowski sum envelope with a sphere of radius \f$ \epsilon \f$.
+The latter has cylindrical and spherical patches at convex edges and vertices of the input triangle mesh.
+
+Given a distance \f$ \delta = \epsilon / \sqrt(3)\f$ we can associate a prism to each triangle by intersecting two halfspaces
parallel to the triangle, three halfspaces orthogonal to the triangle and parallel to the edges,
and additionaly halfspaces for clipping obtuse angles, with the face normal corresponding to the bisector
of the angle. These halfspaces are at distance \f$ \delta \f$ and oriented
such that they contain the triangle.
-The polyhedral envelope with a tolerance \f$ \epsilon \f$ then is the union of the prisms of all triangular faces
+The polyhedral envelope of a triangle mesh with a tolerance \f$ \epsilon \f$ then is the union of the prisms of all faces
with \f$ \delta = \epsilon / \sqrt(3) \f$.
\cgalFigureBegin{envelopeFig, envelope.png}
The prism for a single triangle, the polyhedral envelope as well as the Minkowski sum envelope for a triangle mesh.
\cgalFigureEnd
-For containent checks the polyhedral envelope is a conservative approximation of the Minkowski sum with a sphere of radius \f$ \epsilon \f$.
-The latter has cylindrical and spherical patches at convex edges and vertices of the input triangle mesh.
-
The polyhedral envelope is guaranteed to be inside the Minkowski sum envelope.
This containment test is exact for the polyhedral envelope, and conservative for the Minkowswi sum envelope:
If a query is inside the polyhedral envelope, we can be sure
@@ -555,7 +555,7 @@ of the package \refPkgSurfaceMeshSimplification, in order to simplify a triangle
\subsubsection PolyhedralEnvelopeExample Polyhedral Envelope Example
-The following example shows how to construct the envelope and perform queries.
+The following example shows how to construct the polyhedral envelope and perform queries.
\cgalExample{Polygon_mesh_processing/polyhedral_envelope.cpp}
diff --git a/Polygon_mesh_processing/examples/Polygon_mesh_processing/polyhedral_envelope.cpp b/Polygon_mesh_processing/examples/Polygon_mesh_processing/polyhedral_envelope.cpp
index 19825566493..aa3188eb3ae 100644
--- a/Polygon_mesh_processing/examples/Polygon_mesh_processing/polyhedral_envelope.cpp
+++ b/Polygon_mesh_processing/examples/Polygon_mesh_processing/polyhedral_envelope.cpp
@@ -1,5 +1,5 @@
#include
-#include
+#include
#include
#include
@@ -11,7 +11,7 @@ int main(int argc, char* argv[])
typedef CGAL::Surface_mesh Surface_mesh;
typedef boost::graph_traits::vertex_descriptor vertex_descriptor;
- typedef CGAL::Envelope Envelope;
+ typedef CGAL::Polyhedral_envelope Envelope;
std::ifstream in((argc>1) ? argv[1] : "data/unitsphere.off");
Surface_mesh tmesh;
diff --git a/Polygon_mesh_processing/include/CGAL/Envelope.h b/Polygon_mesh_processing/include/CGAL/Envelope.h
index 4ae3a6a675d..c276088ea57 100644
--- a/Polygon_mesh_processing/include/CGAL/Envelope.h
+++ b/Polygon_mesh_processing/include/CGAL/Envelope.h
@@ -53,8 +53,8 @@
// is covered by a set of prisms, where each prism is an offset for an input triangle.
// That is, we do not use indirect predicates
-#ifndef CGAL_POLYGON_MESH_PROCESSING_ENVELOPE_H
-#define CGAL_POLYGON_MESH_PROCESSING_ENVELOPE_H
+#ifndef CGAL_POLYGON_MESH_PROCESSING_POLYHEDRAL_ENVELOPE_H
+#define CGAL_POLYGON_MESH_PROCESSING_POLYHEDRAL_ENVELOPE_H
#include
@@ -97,7 +97,7 @@ namespace CGAL {
template
-struct Envelope {
+struct Polyhedral_envelope {
public:
typedef typename GeomTraits::Point_3 Point_3;
@@ -261,9 +261,9 @@ private:
public:
#ifndef DOXYGEN_RUNNING
- Envelope(const std::vector& env_vertices,
- std::vector env_faces,
- double epsilon)
+ Polyhedral_envelope(const std::vector& env_vertices,
+ std::vector env_faces,
+ double epsilon)
: env_vertices(env_vertices), env_faces(env_faces)
{
init(epsilon);
@@ -303,9 +303,9 @@ public:
*/
template
- Envelope(const TriangleMesh& tmesh,
- double epsilon,
- const NamedParameters& np)
+ Polyhedral_envelope(const TriangleMesh& tmesh,
+ double epsilon,
+ const NamedParameters& np)
{
using parameters::choose_parameter;
using parameters::get_parameter;
@@ -342,9 +342,9 @@ public:
template
- Envelope(const TriangleMesh& tmesh,
- double epsilon)
- : Envelope(tmesh, epsilon, parameters::all_default())
+ Polyhedral_envelope(const TriangleMesh& tmesh,
+ double epsilon)
+ : Polyhedral_envelope(tmesh, epsilon, parameters::all_default())
{}
@@ -1901,10 +1901,10 @@ public:
}
-}; // class Envelope
+}; // class Polyhedral_envelope
} // namespace CGAL
#include
-#endif //CGAL_POLYGON_MESH_PROCESSING_ENVELOPE_H
+#endif //CGAL_POLYGON_MESH_PROCESSING_POLYHEDRAL_ENVELOPE_H
diff --git a/Polygon_mesh_processing/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h b/Polygon_mesh_processing/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h
index a23ef93a4ed..d4e6f4ad9c1 100644
--- a/Polygon_mesh_processing/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h
+++ b/Polygon_mesh_processing/include/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h
@@ -8,10 +8,10 @@
//
// Author(s) : Andreas Fabri
//
-#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_ENVELOPE_FILTER_H
-#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_ENVELOPE_FILTER_H
+#ifndef CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_POLYHEDRAL_ENVELOPE_FILTER_H
+#define CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_POLYHEDRAL_ENVELOPE_FILTER_H
-#include
+#include
#include
#include
@@ -19,7 +19,7 @@
#include
-#include
+#include
#include
@@ -45,13 +45,13 @@ namespace internal {
} // namesapce internal
template
-class Envelope_filter
+class Polyhedral_envelope_filter
{
typedef GeomTraits Geom_traits;
typedef typename Geom_traits::FT FT;
typedef typename Geom_traits::Point_3 Point_3;
- typedef CGAL::Envelope Envelope;
+ typedef CGAL::Polyhedral_envelope Envelope;
typedef typename Envelope::Vector3i Vector3i;
private:
@@ -93,15 +93,15 @@ private:
public:
- Envelope_filter(const FT dist,
- const BaseFilter& filter = BaseFilter())
+ Polyhedral_envelope_filter(const FT dist,
+ const BaseFilter& filter = BaseFilter())
:
m_dist(dist),
m_envelope(nullptr),
m_base_filter(filter)
{}
- ~Envelope_filter()
+ ~Polyhedral_envelope_filter()
{
if(m_envelope != nullptr){
delete m_envelope;
@@ -166,4 +166,4 @@ private:
} // namespace Surface_mesh_simplification
} // namespace CGAL
-#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_ENVELOPE_FILTER_H
+#endif // CGAL_SURFACE_MESH_SIMPLIFICATION_POLICIES_EDGE_COLLAPSE_POLYHEDRAL_ENVELOPE_FILTER_H
diff --git a/Surface_mesh_simplification/doc/Surface_mesh_simplification/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h b/Surface_mesh_simplification/doc/Surface_mesh_simplification/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h
index 840499398af..2a464f0fece 100644
--- a/Surface_mesh_simplification/doc/Surface_mesh_simplification/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h
+++ b/Surface_mesh_simplification/doc/Surface_mesh_simplification/CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Envelope_filter.h
@@ -5,7 +5,7 @@ namespace Surface_mesh_simplification {
/*!
\ingroup PkgSurfaceMeshSimplificationRef
-The class `Envelope_filter` is a model for the `GetFilter` concept.
+The class `Polyhedral_envelope_filter` is a model for the `GetFilter` concept.
It rejects the placement if the nested filter rejects it, or
if any triangle in the profile is not inside the polyhedral envelope, in this order.
@@ -15,11 +15,11 @@ not filter any placement.
\cgalModels `GetFilter`
-\sa `Envelope`
+\sa `Polyhedral_envelope`
*/
template
-class Envelope_filter {
+class Polyhedral_envelope_filter {
public:
/// The number type
@@ -31,14 +31,14 @@ public:
/*!
%Default constructor
*/
- Envelope_filter();
+ Polyhedral_envelope_filter();
/*!
Constructor
\param get_filter is the filter that will be filtered.
*/
- Envelope_filter(const FT& dist, const GetFilter_& get_filter);
+ Polyhedral_envelope_filter(const FT& dist, const GetFilter_& get_filter);
/// @}
@@ -54,6 +54,6 @@ public:
/// @}
-}; /* end Surface_mesh_simplification::Envelope_filter */
+}; /* end Surface_mesh_simplification::Polyhedral_envelope_filter */
} // namespace Surface_Mesh_Simplification
} // namespace CGAL
diff --git a/Surface_mesh_simplification/doc/Surface_mesh_simplification/Concepts/GetFilter.h b/Surface_mesh_simplification/doc/Surface_mesh_simplification/Concepts/GetFilter.h
index c1bff79d2c3..40dbb608c38 100644
--- a/Surface_mesh_simplification/doc/Surface_mesh_simplification/Concepts/GetFilter.h
+++ b/Surface_mesh_simplification/doc/Surface_mesh_simplification/Concepts/GetFilter.h
@@ -15,7 +15,7 @@ be absent). The value `boost::none` indicates that the edge should not be collap
\cgalRefines `CopyConstructible`
\cgalHasModel `CGAL::Surface_mesh_simplification::Bounded_normal_change_filter`
-\cgalHasModel `CGAL::Surface_mesh_simplification::Envelope_filter`
+\cgalHasModel `CGAL::Surface_mesh_simplification::Polyhedral_envelope_filter`
*/
diff --git a/Surface_mesh_simplification/doc/Surface_mesh_simplification/PackageDescription.txt b/Surface_mesh_simplification/doc/Surface_mesh_simplification/PackageDescription.txt
index 4780d3912e5..cddaee10da5 100644
--- a/Surface_mesh_simplification/doc/Surface_mesh_simplification/PackageDescription.txt
+++ b/Surface_mesh_simplification/doc/Surface_mesh_simplification/PackageDescription.txt
@@ -46,6 +46,6 @@
- `CGAL::Surface_mesh_simplification::GarlandHeckbert_policies`
- `CGAL::Surface_mesh_simplification::Bounded_normal_change_placement`
- `CGAL::Surface_mesh_simplification::Bounded_normal_change_filter`
-- `CGAL::Surface_mesh_simplification::Envelope_filter`
+- `CGAL::Surface_mesh_simplification::Polyhedral_envelope_filter`
- `CGAL::Surface_mesh_simplification::Constrained_placement`
*/
diff --git a/Surface_mesh_simplification/doc/Surface_mesh_simplification/Surface_mesh_simplification.txt b/Surface_mesh_simplification/doc/Surface_mesh_simplification/Surface_mesh_simplification.txt
index 155ff718379..6d24e7ecbf1 100644
--- a/Surface_mesh_simplification/doc/Surface_mesh_simplification/Surface_mesh_simplification.txt
+++ b/Surface_mesh_simplification/doc/Surface_mesh_simplification/Surface_mesh_simplification.txt
@@ -360,13 +360,13 @@ and not during the update of all edges incident to the vertex that is the result
-\subsection Surface_mesh_simplificationExamplewithEnvelope Example with Envelope
+\subsection Surface_mesh_simplificationExamplewithEnvelope Example with Polyhedral Envelope
The surface mesh simplification can be done in a way that the simplified mesh stays inside an envelope of the input mesh.
-This makes use of the class `Envelope` which enables to check whether a query point, segment, or triangle lies within
-a polyhedral envelope, which consists of the union of inflated triangles. While the user gives a distance `d`, the check
-is conservative, that is there may be triangles which would be inside a surface obtained as the Minkowski sum
-with a sphere of radius `d`, but which are outside the polyhedral envelope.
+This makes use of the class `Polyhedral_envelope` which enables to check whether a query point, segment, or triangle lies within
+a polyhedral envelope, which consists of the union of inflated triangles. While the user gives a tolerance \f$\epsilon\f$, the check
+is conservative, that is there may be triangles which would be inside a surface obtained as the Minkowski sum envelope
+with a sphere of radius \f$\epsilon\f$, but which are outside the polyhedral envelope.
\cgalExample{Surface_mesh_simplification/edge_collapse_envelope.cpp}
diff --git a/Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_envelope.cpp b/Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_envelope.cpp
index fe352976bce..386c4c4156a 100644
--- a/Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_envelope.cpp
+++ b/Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_envelope.cpp
@@ -7,7 +7,7 @@
#include
#include
#include
-#include
+#include
//bbox
#include
@@ -24,7 +24,7 @@ typedef CGAL::Surface_mesh Surface;
typedef SMS::LindstromTurk_cost Cost;
typedef SMS::LindstromTurk_placement Placement;
-typedef SMS::Envelope_filter > Filter;
+typedef SMS::Polyhedral_envelope_filter > Filter;
int main(int argc, char** argv)