diff --git a/BGL/include/CGAL/boost/graph/parameters_interface.h b/BGL/include/CGAL/boost/graph/parameters_interface.h
index 9f29000f296..371c9db021c 100644
--- a/BGL/include/CGAL/boost/graph/parameters_interface.h
+++ b/BGL/include/CGAL/boost/graph/parameters_interface.h
@@ -138,7 +138,7 @@ CGAL_add_named_parameter(optimize_anchor_location_t, optimize_anchor_location, o
CGAL_add_named_parameter(pca_plane_t, pca_plane, pca_plane)
// tetrahedral remeshing parameters
-CGAL_add_named_parameter(protect_boundaries_t, protect_boundaries, protect_boundaries)
+CGAL_add_named_parameter(remesh_boundaries_t, remesh_boundaries, remesh_boundaries)
CGAL_add_named_parameter(cell_selector_t, cell_selector, cell_selector)
// output parameters
diff --git a/Polyhedron/demo/Polyhedron/Plugins/Tetrahedral_remeshing/Tetrahedral_remeshing_plugin.cpp b/Polyhedron/demo/Polyhedron/Plugins/Tetrahedral_remeshing/Tetrahedral_remeshing_plugin.cpp
index 13ffe77fcf9..c75285b8e39 100644
--- a/Polyhedron/demo/Polyhedron/Plugins/Tetrahedral_remeshing/Tetrahedral_remeshing_plugin.cpp
+++ b/Polyhedron/demo/Polyhedron/Plugins/Tetrahedral_remeshing/Tetrahedral_remeshing_plugin.cpp
@@ -218,7 +218,7 @@ public Q_SLOTS:
time.restart();
CGAL::tetrahedral_adaptive_remeshing(tr, target_length,
- CGAL::parameters::protect_boundaries(protect)
+ CGAL::parameters::remesh_boundaries(!protect)
.number_of_iterations(nb_iter));
std::cout << "Remeshing done (" << time.elapsed() << " ms)" << std::endl;
diff --git a/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Concepts/RemeshingCellBase_3.h b/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Concepts/RemeshingCellBase_3.h
index 6794e123497..0dd0d1822a1 100644
--- a/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Concepts/RemeshingCellBase_3.h
+++ b/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Concepts/RemeshingCellBase_3.h
@@ -4,7 +4,7 @@
/// The concept `RemeshingCellBase_3` defines the requirements for the cell base
/// used in the triangulation given as input to the remeshing algorithm
///
-/// \cgalRefines `TriangulationCellBaseWithInfo_3`, `CopyConstructible`
+/// \cgalRefines `TriangulationCellBase_3`, `CopyConstructible`
/// \cgalHasModel `CGAL::Tetrahedral_remeshing::Remeshing_cell_base`.
diff --git a/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/NamedParameters.txt b/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/NamedParameters.txt
index 51ddbf316c2..35611019fc2 100644
--- a/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/NamedParameters.txt
+++ b/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/NamedParameters.txt
@@ -38,13 +38,14 @@ in the mesh.\n
\b Default value is `1`
\cgalNPEnd
-\cgalNPBegin{protect_boundaries}
+\cgalNPBegin{remeshing_boundaries}
\anchor Remeshing_protect_boundaries
-a Boolean that states whether the boundaries should be preserved by the remeshing
+a Boolean that states whether the boundaries should be remeshed or
+exactly preserved by the remeshing
process. Boundaries are between the exterior and the interior,
between two subdomains, and between the areas selected or not for remeshing
(cf \ref Remeshing_cell_is_selected_map).
-If `true`, they are preserved. Otherwise, they can be modified.\n
+If `true`, they are remeshed. Otherwise, they cannot be modified by the remeshing process.\n
\b Type : `bool` \n
\b Default value is `false`
\cgalNPEnd
@@ -77,7 +78,7 @@ the atomic operations that are performed,
so the property map must be writable.
It must be default constructible.\n
Default: a default property map where all cells of the domain
-(i.e. with a non-zero `Subdomain_index` are selected)
+(i.e. with a non-zero `Subdomain_index`) are selected.
\cgalNPEnd
\cgalNPTableEnd
diff --git a/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Tetrahedral_remeshing.txt b/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Tetrahedral_remeshing.txt
index 08c5bfcbb56..995b3270785 100644
--- a/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Tetrahedral_remeshing.txt
+++ b/Tetrahedral_remeshing/doc/Tetrahedral_remeshing/Tetrahedral_remeshing.txt
@@ -10,13 +10,13 @@ namespace CGAL {
\section secTetRemeshing Multi-Material Tetrahedral Remeshing
This package implements an algorithm for quality tetrahedral remeshing,
-introduced by N.Faraj et al in%\cgalCite{faraj2016mvr}.
+introduced by N.Faraj et al in \cgalCite{faraj2016mvr}.
This practical iterative remeshing algorithm is designed to remesh
multi-material tetrahedral meshes, by iteratively performing a sequence of simple
elementary operations such as edge collapses, edge splits, edge flips,
and vertex relocations following a Laplacian smoothing.
The algorithm results in high quality isotropic meshes, with the desired mesh density,
-while preserving the input geometric polyline and surfacic features.
+while preserving the input geometric linear and surfacic features.
Specific remeshing rules have been designed to satisfy the following criteria.
First, the algorithm preserves the geometric complex topology, including
@@ -33,7 +33,6 @@ The tetrahedral remeshing algorithm improves the quality of dihedral angles,
while targetting the user-defined uniform sizing field and preserving the
topology of the feature complex, as highlighted by Figure \cgalFigureRef{Remesh_liver}.
-
\cgalFigureBegin{Remesh_liver, tetrahedral_remeshing_before_after.png}
Tetrahedral mesh, modified by our uniform tetrahedral remeshing method.
(Left) Before remeshing, dihedral angles were in the interval [1.3; 177.8].
@@ -41,6 +40,8 @@ Tetrahedral mesh, modified by our uniform tetrahedral remeshing method.
dihedral angles were are the interval [9.5; 161.9].
\cgalFigureEnd
+Experimental evidence show that a higher number of remeshing iterations
+lead to a mesh with a better fitted sizing criterion, and higher quality dihedral angles.
\section secTetRemeshingAPI API
diff --git a/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_example.cpp b/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_example.cpp
index b786380e7f3..a9f6922d80a 100644
--- a/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_example.cpp
+++ b/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_example.cpp
@@ -47,10 +47,10 @@ int main(int argc, char* argv[])
T3 t3;
if (!input)
- return false;
+ return EXIT_FAILURE;
if( !load_binary_triangulation(input, t3))
- return false;
+ return EXIT_FAILURE;
CGAL::tetrahedral_adaptive_remeshing(t3, target_edge_length);
diff --git a/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp b/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp
index 18fa43ee700..a1947b7e2cc 100644
--- a/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp
+++ b/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp
@@ -26,7 +26,6 @@ typedef Remeshing_triangulation::Vertex_handle Vertex_handle;
typedef Remeshing_triangulation::Cell_handle Cell_handle;
typedef Remeshing_triangulation::Edge Edge;
-template
class Constrained_edges_property_map
{
public:
@@ -74,7 +73,7 @@ void add_edge(Vertex_handle v1,
Cell_handle c;
int i, j;
if(tr.is_edge(v1, v2, c, i, j))
- constraints.insert(std::make_pair(c->vertex(i), c->vertex(j)));
+ constraints.insert(std::make_pair(v1, v2));
}
void generate_input(const std::size_t& n,
@@ -156,7 +155,7 @@ int main(int argc, char* argv[])
CGAL::tetrahedral_adaptive_remeshing(t3, target_edge_length,
CGAL::parameters::edge_is_constrained_map(
- Constrained_edges_property_map(&constraints))
+ Constrained_edges_property_map(&constraints))
.number_of_iterations(nb_iter));
save_ascii_triangulation("tet_remeshing_with_features_after.mesh", t3);
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base.h
index 67e50c8e501..85f11d1981e 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/Remeshing_cell_base.h
@@ -41,15 +41,11 @@ used in the tetrahedral remeshing process.
\tparam Gt is the geometric traits class.
It has to be a model of the concept `RemeshingTriangulationTraits_3`.
-\tparam Info is the information the user would like to add to a cell.
-It has to be `DefaultConstructible` and `Assignable`.
-
\tparam Cb is a cell base class from which `Remeshing_cell_base` derives.
It must be a model of the `TriangulationCellBase_3` concept.
It has the default value `Triangulation_cell_base_3`.
\cgalModels `RemeshingCellBase_3`
-\cgalRefines `Triangulation_cell_base_with_info_3`
*/
template