This application illustrates the AABB tree component
of CGAL, applied to polyhedron
facets and edges.
See also the following chapters of the manual:
diff --git a/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h b/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h
index 3e4d8ba7df9..c7f5e1325b2 100644
--- a/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h
+++ b/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction.h
@@ -370,19 +370,19 @@ namespace CGAL {
coord_type K, min_K;
const coord_type eps;
const coord_type inv_eps_2; // 1/(eps^2)
- const coord_type eps_3; // test de ^3 donc points tel 1e-7 soit petit
+ const coord_type eps_3; // tests using cubed eps so points such that 1e-7 is small
const criteria STANDBY_CANDIDATE;
const criteria STANDBY_CANDIDATE_BIS;
const criteria NOT_VALID_CANDIDATE;
//---------------------------------------------------------------------
- //Pour une visu correcte
- //pour retenir les facettes selectionnees
+ // For a correct visualization
+ // to retain the selected facets
int _vh_number;
int _facet_number;
//---------------------------------------------------------------------
- //Pour le post traitement
+ // For post-processing
mutable int _postprocessing_counter;
int _size_before_postprocessing;
@@ -501,9 +501,8 @@ namespace CGAL {
}
//-------------------------------------------------------------------
- // pour gerer certaines aretes interieures: a savoir celle encore connectee au
- // bord (en fait seule, les aretes interieures reliant 2 bords nous
- // interressent...)
+ // to handle certain interior edges, meaning those still connected to the boundary
+ // (actually, only the interior edges linking two boundaries are relevant)
inline void set_interior_edge(Vertex_handle w, Vertex_handle v)
{
@@ -806,7 +805,7 @@ namespace CGAL {
if ((number_of_facets() > static_cast(T.number_of_vertices()))&&
(NB_BORDER_MAX > 0))
- // en principe 2*nb_sommets = nb_facettes: y a encore de la marge!!!
+ // in theory 2*vertices_n = facets_n: plenty of room!!!
{
while(postprocessing()){
extend2_timer.start();
@@ -1068,9 +1067,8 @@ namespace CGAL {
//---------------------------------------------------------------------
bool is_interior_edge(const Edge_like& key) const
- // pour gerer certaines aretes interieures: a savoir celle encore connectee au
- // bord (en fait seule, les aretes interieures reliant 2 bords nous
- // interressent...)
+ // to handle certain interior edges, meaning those still connected to the boundary
+ // (actually, only the interior edges linking two boundaries are relevant)
{
return (is_interior_edge(key.first, key.second)||
is_interior_edge(key.second, key.first));
@@ -1299,7 +1297,6 @@ namespace CGAL {
#ifdef AFSR_LAZY
value = lazy_squared_radius(cc);
#else
- // qualified with CGAL, to avoid a compilation error with clang
if(volume(pp0, pp1, pp2, pp3) != 0){
value = T.geom_traits().compute_squared_radius_3_object()(pp0, pp1, pp2, pp3);
} else {
@@ -1337,7 +1334,6 @@ namespace CGAL {
{
value = compute_scalar_product(Vc, Vc) - ac*ac/norm_V;
if ((value < 0)||(norm_V > inv_eps_2)){
- // qualified with CGAL, to avoid a compilation error with clang
value = T.geom_traits().compute_squared_radius_3_object()(cp1, cp2, cp3);
}
}
@@ -1365,7 +1361,7 @@ namespace CGAL {
/// @}
//---------------------------------------------------------------------
- // For a border edge e we determine the incident facet which has the highest
+ // For a border edge e, we determine the incident facet which has the highest
// chance to be a natural extension of the surface
Radius_edge_type
@@ -1425,8 +1421,7 @@ namespace CGAL {
P2Pn = construct_vector(p2, pn);
v2 = construct_cross_product(P2P1,P2Pn);
- //pas necessaire de normer pour un bon echantillon:
- // on peut alors tester v1*v2 >= 0
+ // no need to normalize for a correct sampling: one can then test v1*v2 >= 0
norm = sqrt(norm1 * compute_scalar_product(v2,v2));
pscal = v1*v2;
// check if the triangle will produce a sliver on the surface
@@ -1437,7 +1432,8 @@ namespace CGAL {
if (tmp < min_valueA)
{
PnP1 = p1-pn;
- // DELTA represente la qualite d'echantillonnage du bord
+ // DELTA encodes the quality of the border sampling
+ //
// We skip triangles having an internal angle along e
// whose cosinus is smaller than -DELTA
// that is the angle is larger than arcos(-DELTA)
@@ -1462,37 +1458,36 @@ namespace CGAL {
if ((min_valueA == infinity()) || border_facet) // bad facets case
{
- min_facet = Facet(c, i); // !!! sans aucune signification....
- value = NOT_VALID_CANDIDATE; // Attention a ne pas inserer dans PQ
+ min_facet = Facet(c, i); // !!! without any meaning....
+ value = NOT_VALID_CANDIDATE; // Do not insert in the PQ
}
else
{
min_facet = min_facetA;
- //si on considere seulement la pliure value appartient a [0, 2]
- //value = coord_type(1) - min_valueP;
-
- // si la pliure est bonne on note suivant le alpha sinon on prend en compte la
- // pliure seule... pour discriminer entre les bons slivers...
- // si on veut discriminer les facettes de bonnes pliures plus finement
- // alors -(1+1/min_valueA) app a [-inf, -1]
- // -min_valueP app a [-1, 1]
+ // If we only consider the fold value belongs to [0, 2]
+ // value = coord_type(1) - min_valueP;
+ // If the fold is OK, we rate based on the alpha value. Otherwise, take only the fold into account
+ // to discriminate between good slivers.
+ //
+ // If we wish to discriminate the facets with good folds more finely,
+ // then:
+ // -(1+1/min_valueA) is within [-inf, -1]
+ // -min_valueP is within [-1, 1]
+ //
if (min_valueP > COS_BETA)
value = -(coord_type(1) + coord_type(1)/min_valueA);
else
{
- //on refuse une trop grande non-uniformite
+ // reject overly non-uniform values
coord_type tmp = priority (*this, c, i);
if (min_valueA <= K * tmp)
value = - min_valueP;
else
{
- value = STANDBY_CANDIDATE; // tres mauvais candidat mauvaise pliure
- // + grand alpha... a traiter plus tard....
- min_K =
- (std::min)(min_K,
- min_valueA/tmp);
+ value = STANDBY_CANDIDATE; // extremely bad candidate, bad fold + large alpha; handle later
+ min_K = (std::min)(min_K, min_valueA/tmp);
}
}
}
@@ -1597,7 +1592,7 @@ namespace CGAL {
}
//---------------------------------------------------------------------
- // test de reciprocite avant de recoller une oreille anti-singularite
+ // reciprocity test before glueing anti-singularity ear
int
test_merge(const Edge_like& ordered_key, const Border_elt& result,
const Vertex_handle& v, const coord_type& ear_alpha)
@@ -1622,12 +1617,12 @@ namespace CGAL {
coord_type norm = sqrt(compute_scalar_product(v1, v1) * compute_scalar_product(v2, v2));
if (v1*v2 > COS_BETA*norm)
- return 1; // label bonne pliure sinon:
+ return 1; // mark as good fold
if (ear_alpha <= K * priority(*this, neigh, n_ind))
- return 2; // label alpha coherent...
+ return 2; // mark alpha consistent
- return 0; //sinon oreille a rejeter...
+ return 0; // ear to be rejected
}
@@ -1753,7 +1748,7 @@ namespace CGAL {
Edge_like ordered_key(v1,v2);
if (!is_border_elt(ordered_key, result12))
- std::cerr << "+++probleme coherence bord " << std::endl;
+ std::cerr << "+++issue with border consistency " << std::endl;
bool is_border_el1 = is_border_elt(ordered_el1, result1),
is_border_el2 = is_border_elt(ordered_el2, result2);
@@ -1782,8 +1777,7 @@ namespace CGAL {
return FINAL_CASE;
}
//---------------------------------------------------------------------
- //on peut alors marquer v1 et on pourrait essayer de merger
- //sans faire de calcul inutile???
+ // we can then mark v1 and could try to merge without any useless computation???
if (is_border_el1)
{
Edge_incident_facet edge_Ifacet_2(Edge(c, i, edge_Efacet.first.third),
@@ -1796,7 +1790,7 @@ namespace CGAL {
return EAR_CASE;
}
//---------------------------------------------------------------------
- //idem pour v2
+ //idem for v2
if (is_border_el2)
{
Edge_incident_facet edge_Ifacet_1(Edge(c, i, edge_Efacet.first.second),
@@ -1852,9 +1846,9 @@ namespace CGAL {
// border incident to a point... _mark<1 even if th orientation
// may be such as one vh has 2 successorson the same border...
{
- // a ce niveau on peut tester si le recollement se fait en
- // maintenant la compatibilite d'orientation des bords (pour
- // surface orientable...) ou si elle est brisee...
+ // at this level, we can test if glueing can be done while keeping
+ // compatible orientations for the borders (for an orientable surface...)
+ // or if it is broken
Edge_incident_facet edge_Ifacet_1(Edge(c, i, edge_Efacet.first.second),
edge_Efacet.second);
Edge_incident_facet edge_Ifacet_2(Edge(c, i, edge_Efacet.first.third),
@@ -1884,8 +1878,8 @@ namespace CGAL {
Border_elt result_ear2;
Edge_like ear1_e, ear2_e;
- // pour maintenir la reconstruction d'une surface orientable :
- // on verifie que les bords se recollent dans des sens opposes
+ // to preserve the reconstruction of an orientable surface, we check that
+ // borders glue to one another in opposite directions
if (ordered_key.first==v1)
{
ear1_e = Edge_like(c->vertex(i), ear1_c ->vertex(ear1_i));
@@ -1897,7 +1891,7 @@ namespace CGAL {
ear2_e = Edge_like(c->vertex(i), ear2_c ->vertex(ear2_i));
}
- //maintient la surface orientable
+ // preserves orientability of the surface
bool is_border_ear1 = is_ordered_border_elt(ear1_e, result_ear1);
bool is_border_ear2 = is_ordered_border_elt(ear2_e, result_ear2);
bool ear1_valid(false), ear2_valid(false);
@@ -1931,8 +1925,7 @@ namespace CGAL {
{
Validation_case res = validate(ear1, e1.first);
if (!((res == EAR_CASE)||(res == FINAL_CASE)))
- std::cerr << "+++probleme de recollement : cas "
- << res << std::endl;
+ std::cerr << "+++issue in glueing: case " << res << std::endl;
e2 = compute_value(edge_Ifacet_2);
if (ordered_key.first == v1)
@@ -1948,8 +1941,7 @@ namespace CGAL {
{
Validation_case res = validate(ear2, e2.first);
if (!((res == EAR_CASE)||(res == FINAL_CASE)))
- std::cerr << "+++probleme de recollement : cas "
- << res << std::endl;
+ std::cerr << "+++issue in glueing : case " << res << std::endl;
e1 = compute_value(edge_Ifacet_1);
if (ordered_key.first == v1)
@@ -1962,25 +1954,23 @@ namespace CGAL {
_ordered_border.insert(Radius_ptr_type(e1.first, p1));
}
}
- else// les deux oreilles ne se recollent pas sur la meme arete...
+ else // both ears do not glue on the same edge
{
- // on resoud la singularite.
+ // resolve the singularity
if (ear1_valid)
{
Validation_case res = validate(ear1, e1.first);
if (!((res == EAR_CASE)||(res == FINAL_CASE)))
- std::cerr << "+++probleme de recollement : cas "
- << res << std::endl;
+ std::cerr << "+++issue in glueing: case " << res << std::endl;
}
if (ear2_valid)
{
Validation_case res = validate(ear2, e2.first);
if (!((res == EAR_CASE)||(res == FINAL_CASE)))
- std::cerr << "+++probleme de recollement : cas "
- << res << std::endl;
+ std::cerr << "+++issue in glueing : case " << res << std::endl;
}
- // on met a jour la PQ s'il y a lieu... mais surtout pas
- // avant la resolution de la singularite
+
+ // Update the PQ if needed, but not before resolving the singularity
if (!ear1_valid)
{
_ordered_border.insert(Radius_ptr_type(e1.first, p1));
@@ -2020,7 +2010,7 @@ namespace CGAL {
if (new_candidate.first == STANDBY_CANDIDATE)
{
- // a garder pour un K un peu plus grand...
+ // put aside for a slightly larger K
new_candidate.first = STANDBY_CANDIDATE_BIS;
}
@@ -2042,8 +2032,8 @@ namespace CGAL {
void
extend()
{
- // initilisation de la variable globale K: qualite d'echantillonnage requise
- K = K_init; // valeur d'initialisation de K pour commencer prudemment...
+ // Initialize the global variable K: required sampling quality
+ K = K_init; // initial value of K to start carefully
coord_type K_prev = K;
Vertex_handle v1, v2;
@@ -2052,7 +2042,7 @@ namespace CGAL {
}
do
{
- min_K = infinity(); // pour retenir le prochain K necessaire pour progresser...
+ min_K = infinity(); // to store the next K required to progress
do
{
@@ -2095,7 +2085,7 @@ namespace CGAL {
{
new_candidate = compute_value(mem_Ifacet);
if ((new_candidate != mem_e_it))
- // &&(new_candidate.first < NOT_VALID_CANDIDATE))
+ // &&(new_candidate.first < NOT_VALID_CANDIDATE))
{
IO_edge_type* pnew =
set_again_border_elt(key_tmp.first, key_tmp.second,
@@ -2111,8 +2101,7 @@ namespace CGAL {
(_ordered_border.begin()->first < STANDBY_CANDIDATE_BIS));
K_prev = K;
K += (std::max)(K_step, min_K - K + eps);
- // on augmente progressivement le K mais on a deja rempli sans
- // faire des betises auparavant...
+ // Progressively increase K, but having already filled without issue beforehand
}
while((!_ordered_border.empty())&&(K <= K)&&(min_K != infinity())&&(K!=K_prev));
@@ -2125,9 +2114,8 @@ namespace CGAL {
//---------------------------------------------------------------------
- // En principe, si l'allocateur de cellules etait bien fait on aurait pas besoin
- // de mettre a jour les valeurs rajoutees pour les cellules a la main...
-
+ // In theory, if the cell allocator were properly made, one would not need to manually update
+ // the values added for the cells
void
re_init_for_free_cells_cache(const Vertex_handle& vh)
{
@@ -2152,9 +2140,8 @@ namespace CGAL {
int index = c->index(vh);
Cell_handle neigh = c->neighbor(index);
int n_ind = neigh->index(c);
- neigh->set_smallest_radius(n_ind, -1); // pour obliger le recalcul
- // si c est selectionnee c'est qu'elle est aussi le mem_IFacet renvoye par
- // compute_value... donc a swapper aussi
+ neigh->set_smallest_radius(n_ind, -1); // forces recomputation
+ // if c is selected, then it is also the mem_IFacet returned by compute_value... so to be swapped too
if (c->is_selected_facet(index))
{
int fn = c->facet_number(index);
@@ -2214,8 +2201,8 @@ namespace CGAL {
circ = next(circ);
}
while(circ.first.first != c);
- // si on passe par la, alors y a eu un probleme....
- std::cerr << "+++probleme dans la MAJ avant remove..." << std::endl;
+ // if we are here, something went wrong
+ std::cerr << "+++issue in the update before removal..." << std::endl;
return Facet(c, start.second);
}
@@ -2237,7 +2224,7 @@ namespace CGAL {
ordered_map_erase(border_elt.second.first.first,
border_IO_elt(vh, vh_succ));
remove_border_edge(vh, vh_succ);
- // 1- a virer au cas ou car vh va etre detruit
+ // 1- remove just in case since vh is about to be destroyed
remove_interior_edge(vh_succ, vh);
bool while_cond(true);
do
@@ -2266,14 +2253,14 @@ namespace CGAL {
{
ordered_map_erase(result.first.first, border_IO_elt(vh_int, vh));
remove_border_edge(vh_int, vh);
- // 1- a virer au cas ou car vh va etre detruit
+ // 1- remove just in case since vh is about to be destroyed
remove_interior_edge(vh_int, vh);
while_cond = false;
}
- // a titre preventif... on essaye de s'assurer de marquer les aretes
- // interieures au sens large...
- // 2- a virer a tout pris pour que maintenir le sens de interior edge
+ // As a preventive measure, we try to ensure marking the interior edges in a broad sense
+
+ // 2- remove to preserve the interior edge
remove_interior_edge(vh_int, vh_succ);
remove_interior_edge(vh_succ, vh_int);
@@ -2304,16 +2291,16 @@ namespace CGAL {
bool
create_singularity(const Vertex_handle& vh)
{
- // Pour reperer le cas de triangle isole
+ // To detect the isolated triangle case
if (vh->is_on_border())
{
- // vh sommet 0
+ // vh vertex 0
Next_border_elt border_elt = *(vh->first_incident());
- Vertex_handle vh_1 = border_elt.first;// sommet 1
+ Vertex_handle vh_1 = border_elt.first;// vertex 1
border_elt = *(vh_1->first_incident());
- Vertex_handle vh_2 = border_elt.first;// sommet 2
+ Vertex_handle vh_2 = border_elt.first;// vertex 2
border_elt = *(vh_2->first_incident());
- Vertex_handle vh_3 = border_elt.first;// sommet 0 ???
+ Vertex_handle vh_3 = border_elt.first;// vertex 0 ???
Cell_handle c;
int i, j, k;
if ((vh_3 == vh)&&(T.is_facet(vh, vh_1, vh_2, c, i ,j ,k)))
@@ -2328,7 +2315,7 @@ namespace CGAL {
}
- // Reperer le cas d'aretes interieures...
+ // Detect the interior edges case
std::list vh_list;
T.incident_vertices(vh, std::back_inserter(vh_list));
@@ -2402,9 +2389,9 @@ namespace CGAL {
std::list L_v;
- // Pour controler les sommets choisis sur le bord...
+ // To control vertices chosen on the boundary
- // nombre d'aretes a partir duquel on considere que c'est irrecuperable NB_BORDER_MAX
+ // NB_BORDER_MAX: number of edges from which we consider that things are irrecoverable
int vh_on_border_inserted(0);
for(Finite_vertices_iterator v_it = T.finite_vertices_begin();
@@ -2445,7 +2432,7 @@ namespace CGAL {
std::size_t itmp, L_v_size_mem;
L_v_size_mem = L_v.size();
- if ((vh_on_border_inserted != 0)&& // pour ne post-traiter que les bords
+ if ((vh_on_border_inserted != 0)&& // to post-process only the borders
(L_v.size() < .1 * _size_before_postprocessing))
{
{
@@ -2460,7 +2447,7 @@ namespace CGAL {
}
#ifdef VERBOSE
if(L_v.size() > 0){
- std::cout << " " << L_v.size() << " non regular points." << std::endl;
+ std::cout << " " << L_v.size() << " non-regular points." << std::endl;
}
#endif // VERBOSE
re_compute_values();
@@ -2469,7 +2456,7 @@ namespace CGAL {
postprocess_timer.stop();
return false;
}
- // we stop if we removed more than 10% of points or after 20 rounds
+ // we stop if we removed more than 10% of points, or after 20 rounds
if ((L_v_size_mem == L_v.size())||
((_size_before_postprocessing - T.number_of_vertices()) >
.1 * _size_before_postprocessing)||
@@ -2479,7 +2466,6 @@ namespace CGAL {
}
min_K = infinity();
- // fin--
// if (_postprocessing_counter < 5)
// return true;
postprocess_timer.stop();
diff --git a/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h b/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h
index a8c2bf4b2b4..bbecac5c757 100644
--- a/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h
+++ b/Advancing_front_surface_reconstruction/include/CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h
@@ -220,7 +220,7 @@ namespace CGAL {
else
{
if (m_incident_border->second->first != nullptr)
- std::cerr << "+++probleme de MAJ du bord " << std::endl;
+ std::cerr << "+++issue while updating border " << std::endl;
*m_incident_border->second = elt;
}
}
diff --git a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h
index 19f447c08f2..18b7fa805dd 100644
--- a/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h
+++ b/Algebraic_kernel_d/include/CGAL/Algebraic_kernel_d/Algebraic_real_quadratic_refinement_rep_bfi.h
@@ -45,7 +45,7 @@ namespace internal {
* @Unpublished{abbott-quadratic,
* author = {John Abbott},
* title = {Quadratic Interval Refinement for Real Roots},
- * url = {http://www.dima.unige.it/~abbott/},
+ * url = {https://www.dima.unige.it/~abbott/},
* note = {Poster presented at the 2006 Internat. Sympos. on Symbolic
and Algebraic Computation (ISSAC 2006)}
* }
diff --git a/Algebraic_kernel_d/test/Algebraic_kernel_d/include/CGAL/_test_real_root_isolator.h b/Algebraic_kernel_d/test/Algebraic_kernel_d/include/CGAL/_test_real_root_isolator.h
index b79e47262b3..ce3d7b3fda1 100644
--- a/Algebraic_kernel_d/test/Algebraic_kernel_d/include/CGAL/_test_real_root_isolator.h
+++ b/Algebraic_kernel_d/test/Algebraic_kernel_d/include/CGAL/_test_real_root_isolator.h
@@ -187,7 +187,7 @@ void test_real_root_isolator() {
assert( n == number_of_roots);
}{
//std::cout << "Kameny 3\n";
- // from http://www-sop.inria.fr/saga/POL/BASE/1.unipol
+ // from https://www-sop.inria.fr/saga/POL/BASE/1.unipol/
NT c = CGAL::ipower(NT(10),12);
Polynomial P(NT(-3),NT(0),c);
@@ -202,7 +202,7 @@ void test_real_root_isolator() {
assert(3 == internal::check_intervals_real_root_isolator(P));
}{
//std::cout << "Kameny 4\n";
- // from http://www-sop.inria.fr/saga/POL/BASE/1.unipol
+ // from https://www-sop.inria.fr/saga/POL/BASE/1.unipol
NT z(0);
NT a = CGAL::ipower(NT(10),24); // a = 10^{24}
@@ -218,7 +218,7 @@ void test_real_root_isolator() {
assert( 4 == internal::check_intervals_real_root_isolator(P));
}{
//std::cout << "Polynomial with large and small clustered roots\n";
- // from http://www-sop.inria.fr/saga/POL/BASE/1.unipol
+ // from https://www-sop.inria.fr/saga/POL/BASE/1.unipol
// there seems to be some error or misunderstanding
NT z(0);
diff --git a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.cpp b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.cpp
index 2de4a0d6e28..ee1772a644b 100644
--- a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.cpp
+++ b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.cpp
@@ -19,7 +19,7 @@
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ ** will be met: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
@@ -31,7 +31,7 @@
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
+ ** met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
diff --git a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.h b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.h
index 13c6c13b06e..ea1a2ba7a47 100644
--- a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.h
+++ b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/ColorItemEditor.h
@@ -19,7 +19,7 @@
** Foundation and appearing in the file LICENSE.LGPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU Lesser General Public License version 2.1 requirements
- ** will be met: http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+ ** will be met: https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
@@ -31,7 +31,7 @@
** Foundation and appearing in the file LICENSE.GPL included in the
** packaging of this file. Please review the following information to
** ensure the GNU General Public License version 3.0 requirements will be
- ** met: http://www.gnu.org/copyleft/gpl.html.
+ ** met: https://www.gnu.org/licenses/gpl-3.0.html.
**
** If you have questions regarding the use of this file, please contact
** Nokia at qt-info@nokia.com.
diff --git a/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_basic_traits_2.h b/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_basic_traits_2.h
index ca5e8ce1447..dab9ffa9248 100644
--- a/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_basic_traits_2.h
+++ b/Arrangement_on_surface_2/include/CGAL/Arr_polycurve_basic_traits_2.h
@@ -1114,7 +1114,7 @@ public:
// model of this concept.
//
// The following implementation is inspired by
- // http://stackoverflow.com/a/11816999/1915421
+ // https://stackoverflow.com/a/11816999/1915421
template
struct Void {
diff --git a/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream.h b/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream.h
index 0a89ec038a3..5fd87bc4e7b 100644
--- a/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream.h
+++ b/Arrangement_on_surface_2/include/CGAL/IO/Fig_stream.h
@@ -164,7 +164,7 @@ enum Fig_depth
/*!
* \class A class for writing geometric objects in a FIG format (version 3.2).
- * For more details, see: http://www.xfig.org/userman/fig-format.html
+ * For more details, see: https://mcj.sourceforge.net/
*/
template
class Fig_stream
diff --git a/BGL/examples/BGL_LCC/normals_lcc.cpp b/BGL/examples/BGL_LCC/normals_lcc.cpp
index c5d1e671ff0..da1177a7062 100644
--- a/BGL/examples/BGL_LCC/normals_lcc.cpp
+++ b/BGL/examples/BGL_LCC/normals_lcc.cpp
@@ -74,7 +74,7 @@ int main(int argc, char** argv)
// Ad hoc property_map to store normals. Face_index_map is used to
// map face_descriptors to a contiguous range of indices. See
- // http://www.boost.org/libs/property_map/doc/vector_property_map.html
+ // https://www.boost.org/libs/property_map/doc/vector_property_map.html
// for details.
boost::vector_property_map
normals(static_cast(num_faces(lcc)), get(CGAL::face_index, lcc));
diff --git a/BGL/examples/BGL_polyhedron_3/normals.cpp b/BGL/examples/BGL_polyhedron_3/normals.cpp
index 9a67ba42b2d..711800cb8ab 100644
--- a/BGL/examples/BGL_polyhedron_3/normals.cpp
+++ b/BGL/examples/BGL_polyhedron_3/normals.cpp
@@ -79,7 +79,7 @@ int main(int argc, char** argv)
// Ad hoc property_map to store normals. Face_index_map is used to
// map face_descriptors to a contiguous range of indices. See
- // http://www.boost.org/libs/property_map/doc/vector_property_map.html
+ // https://www.boost.org/libs/property_map/doc/vector_property_map.html
// for details.
boost::vector_property_map
normals(static_cast(num_faces(P)), get(CGAL::face_index, P));
diff --git a/BGL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h b/BGL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h
index a6e5bfe287d..5127f692a24 100644
--- a/BGL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h
+++ b/BGL/include/CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h
@@ -11,7 +11,7 @@
#ifndef CGAL_BOOST_GRAPH_GRAPH_TRAITS_POLYMESH_ARRAYKERNELT_H
#define CGAL_BOOST_GRAPH_GRAPH_TRAITS_POLYMESH_ARRAYKERNELT_H
-// http://openmesh.org/Documentation/OpenMesh-Doc-Latest/classOpenMesh_1_1Concepts_1_1KernelT.html
+// https://www.graphics.rwth-aachen.de/media/openmesh_static/Documentations/OpenMesh-Doc-Latest/a02182.html
#include
#include
#include
diff --git a/BGL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h b/BGL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h
index 863dc50b075..512a4991e76 100644
--- a/BGL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h
+++ b/BGL/include/CGAL/boost/graph/graph_traits_TriMesh_ArrayKernelT.h
@@ -11,7 +11,7 @@
#ifndef CGAL_BOOST_GRAPH_GRAPH_TRAITS_TRIMESH_ARRAYKERNELT_H
#define CGAL_BOOST_GRAPH_GRAPH_TRAITS_TRIMESH_ARRAYKERNELT_H
-// http://openmesh.org/Documentation/OpenMesh-Doc-Latest/classOpenMesh_1_1Concepts_1_1KernelT.html
+// https://www.graphics.rwth-aachen.de/media/openmesh_static/Documentations/OpenMesh-Doc-Latest/a02182.html
#include
#include
#include
diff --git a/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt b/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt
index 547eb21203d..d5d5974e3b3 100644
--- a/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt
+++ b/Barycentric_coordinates_2/examples/Barycentric_coordinates_2/CMakeLists.txt
@@ -1,10 +1,10 @@
# Created by the script cgal_create_cmake_script.
# This is the CMake script for compiling a CGAL application.
-project(Barycentric_coordinates_2_Examples)
-
cmake_minimum_required(VERSION 3.1...3.23)
+project(Barycentric_coordinates_2_Examples)
+
find_package(CGAL REQUIRED COMPONENTS Core)
create_single_source_cgal_program("segment_coordinates.cpp")
diff --git a/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt b/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt
index 8dfd74dd75c..8884394ec83 100644
--- a/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt
+++ b/Barycentric_coordinates_2/test/Barycentric_coordinates_2/CMakeLists.txt
@@ -1,10 +1,10 @@
# Created by the script cgal_create_cmake_script.
# This is the CMake script for compiling a CGAL application.
-project(Barycentric_coordinates_2_Tests)
-
cmake_minimum_required(VERSION 3.1...3.23)
+project(Barycentric_coordinates_2_Tests)
+
find_package(CGAL REQUIRED COMPONENTS Core)
create_single_source_cgal_program("test_almost_degenerate_segment.cpp")
diff --git a/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h b/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h
index c3dcc29c393..e30576790c5 100644
--- a/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h
+++ b/Bounding_volumes/include/CGAL/Min_sphere_of_spheres_d/Min_sphere_of_spheres_d_pair.h
@@ -42,7 +42,7 @@ namespace CGAL_MINIBALL_NAMESPACE {
{
// That constant is embedded in an inline static function, to
// workaround a bug of g++>=4.1
- // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
// g++ does not like const floating expression when -frounding-math
// is used.
static double result() {
@@ -55,7 +55,7 @@ namespace CGAL_MINIBALL_NAMESPACE {
{
// That constant is embedded in an inline static function, to
// workaround a bug of g++>=4.1
- // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
// g++ does not like const floating expression when -frounding-math
// is used.
static float result() {
@@ -68,7 +68,7 @@ namespace CGAL_MINIBALL_NAMESPACE {
{
// That constant is embedded in an inline static function, to
// workaround a bug of g++>=4.1
- // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
// g++ does not like const floating expression when -frounding-math
// is used.
static double result() {
@@ -81,7 +81,7 @@ namespace CGAL_MINIBALL_NAMESPACE {
{
// That constant is embedded in an inline static function, to
// workaround a bug of g++>=4.1
- // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=36912
// g++ does not like const floating expression when -frounding-math
// is used.
static float result() {
diff --git a/CGAL_Core/include/CGAL/CORE/BigFloat.h b/CGAL_Core/include/CGAL/CORE/BigFloat.h
index 97183f63e50..6c7a8abff4c 100644
--- a/CGAL_Core/include/CGAL/CORE/BigFloat.h
+++ b/CGAL_Core/include/CGAL/CORE/BigFloat.h
@@ -14,7 +14,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/BigFloatRep.h b/CGAL_Core/include/CGAL/CORE/BigFloatRep.h
index 7439ce025a9..da8cb6967c8 100644
--- a/CGAL_Core/include/CGAL/CORE/BigFloatRep.h
+++ b/CGAL_Core/include/CGAL/CORE/BigFloatRep.h
@@ -14,7 +14,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/BigFloat_impl.h b/CGAL_Core/include/CGAL/CORE/BigFloat_impl.h
index aa029b5c51b..dc828ae9379 100644
--- a/CGAL_Core/include/CGAL/CORE/BigFloat_impl.h
+++ b/CGAL_Core/include/CGAL/CORE/BigFloat_impl.h
@@ -23,7 +23,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/BigInt.h b/CGAL_Core/include/CGAL/CORE/BigInt.h
index 7b16a960ac3..f88a5877c9b 100644
--- a/CGAL_Core/include/CGAL/CORE/BigInt.h
+++ b/CGAL_Core/include/CGAL/CORE/BigInt.h
@@ -14,7 +14,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/BigRat.h b/CGAL_Core/include/CGAL/CORE/BigRat.h
index 29b99509d40..d57e4e44cd9 100644
--- a/CGAL_Core/include/CGAL/CORE/BigRat.h
+++ b/CGAL_Core/include/CGAL/CORE/BigRat.h
@@ -14,7 +14,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/CORE.h b/CGAL_Core/include/CGAL/CORE/CORE.h
index 3fb78af5f83..a3e0b2ef83d 100644
--- a/CGAL_Core/include/CGAL/CORE/CORE.h
+++ b/CGAL_Core/include/CGAL/CORE/CORE.h
@@ -15,7 +15,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/CoreAux.h b/CGAL_Core/include/CGAL/CORE/CoreAux.h
index 9d75668be3a..fdb6c5de7cf 100644
--- a/CGAL_Core/include/CGAL/CORE/CoreAux.h
+++ b/CGAL_Core/include/CGAL/CORE/CoreAux.h
@@ -14,7 +14,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/CoreAux_impl.h b/CGAL_Core/include/CGAL/CORE/CoreAux_impl.h
index 3f22a4cdfa1..9b335c393b2 100644
--- a/CGAL_Core/include/CGAL/CORE/CoreAux_impl.h
+++ b/CGAL_Core/include/CGAL/CORE/CoreAux_impl.h
@@ -15,7 +15,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/CoreDefs.h b/CGAL_Core/include/CGAL/CORE/CoreDefs.h
index 57c3da34645..e10ea21ec1a 100644
--- a/CGAL_Core/include/CGAL/CORE/CoreDefs.h
+++ b/CGAL_Core/include/CGAL/CORE/CoreDefs.h
@@ -17,7 +17,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/CoreDefs_impl.h b/CGAL_Core/include/CGAL/CORE/CoreDefs_impl.h
index d28326496f3..ecc29261130 100644
--- a/CGAL_Core/include/CGAL/CORE/CoreDefs_impl.h
+++ b/CGAL_Core/include/CGAL/CORE/CoreDefs_impl.h
@@ -14,7 +14,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/CoreIO_impl.h b/CGAL_Core/include/CGAL/CORE/CoreIO_impl.h
index 0e4a2044e74..59f4a7a63f6 100644
--- a/CGAL_Core/include/CGAL/CORE/CoreIO_impl.h
+++ b/CGAL_Core/include/CGAL/CORE/CoreIO_impl.h
@@ -11,7 +11,7 @@
* Zilin Du
* Chee Yap
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/Expr.h b/CGAL_Core/include/CGAL/CORE/Expr.h
index 5cd5092d7e9..94b086e24d3 100644
--- a/CGAL_Core/include/CGAL/CORE/Expr.h
+++ b/CGAL_Core/include/CGAL/CORE/Expr.h
@@ -18,7 +18,7 @@
* Sylvain Pion
* Vikram Sharma
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/ExprRep.h b/CGAL_Core/include/CGAL/CORE/ExprRep.h
index 7920485fff7..bc142c77b6c 100644
--- a/CGAL_Core/include/CGAL/CORE/ExprRep.h
+++ b/CGAL_Core/include/CGAL/CORE/ExprRep.h
@@ -18,7 +18,7 @@
* Sylvain Pion
* Vikram Sharma
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/Expr_impl.h b/CGAL_Core/include/CGAL/CORE/Expr_impl.h
index 5e3806024fa..69ccc73b616 100644
--- a/CGAL_Core/include/CGAL/CORE/Expr_impl.h
+++ b/CGAL_Core/include/CGAL/CORE/Expr_impl.h
@@ -16,7 +16,7 @@
* Zilin Du
* Sylvain Pion
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/Filter.h b/CGAL_Core/include/CGAL/CORE/Filter.h
index ea0a02da1fa..56649b80c86 100644
--- a/CGAL_Core/include/CGAL/CORE/Filter.h
+++ b/CGAL_Core/include/CGAL/CORE/Filter.h
@@ -17,7 +17,7 @@
* Zilin Du
* Chee Yap
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/MemoryPool.h b/CGAL_Core/include/CGAL/CORE/MemoryPool.h
index 606b9223b2b..60a95c862e2 100644
--- a/CGAL_Core/include/CGAL/CORE/MemoryPool.h
+++ b/CGAL_Core/include/CGAL/CORE/MemoryPool.h
@@ -14,7 +14,7 @@
* Chee Yap
* Sylvain Pion
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/Promote.h b/CGAL_Core/include/CGAL/CORE/Promote.h
index 62a98e434ef..d882b6abcf3 100644
--- a/CGAL_Core/include/CGAL/CORE/Promote.h
+++ b/CGAL_Core/include/CGAL/CORE/Promote.h
@@ -18,7 +18,7 @@
* Sylvain Pion
* Vikram Sharma
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/Real.h b/CGAL_Core/include/CGAL/CORE/Real.h
index b79503eb4c2..11174960dd2 100644
--- a/CGAL_Core/include/CGAL/CORE/Real.h
+++ b/CGAL_Core/include/CGAL/CORE/Real.h
@@ -18,7 +18,7 @@
* Zilin Du
* Sylvain Pion
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/RealRep.h b/CGAL_Core/include/CGAL/CORE/RealRep.h
index 5a18d2748d1..85f7818a884 100644
--- a/CGAL_Core/include/CGAL/CORE/RealRep.h
+++ b/CGAL_Core/include/CGAL/CORE/RealRep.h
@@ -16,7 +16,7 @@
* Zilin Du
* Sylvain Pion
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/Real_impl.h b/CGAL_Core/include/CGAL/CORE/Real_impl.h
index 8a6a4899c64..e7ac7379f4c 100644
--- a/CGAL_Core/include/CGAL/CORE/Real_impl.h
+++ b/CGAL_Core/include/CGAL/CORE/Real_impl.h
@@ -17,7 +17,7 @@
* Zilin Du
* Sylvain Pion
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/RefCount.h b/CGAL_Core/include/CGAL/CORE/RefCount.h
index 91fafbf074f..ba1c8416a4b 100644
--- a/CGAL_Core/include/CGAL/CORE/RefCount.h
+++ b/CGAL_Core/include/CGAL/CORE/RefCount.h
@@ -35,7 +35,7 @@
* Zilin Du
* Chee Yap
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/Timer.h b/CGAL_Core/include/CGAL/CORE/Timer.h
index a0f2ce9f152..0e998c0b020 100644
--- a/CGAL_Core/include/CGAL/CORE/Timer.h
+++ b/CGAL_Core/include/CGAL/CORE/Timer.h
@@ -23,7 +23,7 @@
* Written by
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/extLong.h b/CGAL_Core/include/CGAL/CORE/extLong.h
index d20caf05589..52ba91e321a 100644
--- a/CGAL_Core/include/CGAL/CORE/extLong.h
+++ b/CGAL_Core/include/CGAL/CORE/extLong.h
@@ -17,7 +17,7 @@
* Chen Li
* Zilin Du
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/extLong_impl.h b/CGAL_Core/include/CGAL/CORE/extLong_impl.h
index 0baeb58fbcd..69d92131839 100644
--- a/CGAL_Core/include/CGAL/CORE/extLong_impl.h
+++ b/CGAL_Core/include/CGAL/CORE/extLong_impl.h
@@ -21,7 +21,7 @@
* Zilin Du
* Sylvain Pion
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/linearAlgebra.h b/CGAL_Core/include/CGAL/CORE/linearAlgebra.h
index 16da34e461a..3d760cc629b 100644
--- a/CGAL_Core/include/CGAL/CORE/linearAlgebra.h
+++ b/CGAL_Core/include/CGAL/CORE/linearAlgebra.h
@@ -22,7 +22,7 @@
* Written by
* Shubin Zhao (shubinz@cs.nyu.edu) (2001)
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $Id$
diff --git a/CGAL_Core/include/CGAL/CORE/poly/Curves.h b/CGAL_Core/include/CGAL/CORE/poly/Curves.h
index 65d1422d255..f1c9172e3e9 100644
--- a/CGAL_Core/include/CGAL/CORE/poly/Curves.h
+++ b/CGAL_Core/include/CGAL/CORE/poly/Curves.h
@@ -49,7 +49,7 @@
* Author: Vikram Sharma and Chee Yap
* Date: April 12, 2004
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/poly/Curves.tcc b/CGAL_Core/include/CGAL/CORE/poly/Curves.tcc
index d9be84796c0..f21ddfec3a8 100644
--- a/CGAL_Core/include/CGAL/CORE/poly/Curves.tcc
+++ b/CGAL_Core/include/CGAL/CORE/poly/Curves.tcc
@@ -16,7 +16,7 @@
* Author: Vikram Sharma and Chee Yap
* Date: April 12, 2004
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/poly/Poly.h b/CGAL_Core/include/CGAL/CORE/poly/Poly.h
index bd56376a5b2..50ec728b685 100644
--- a/CGAL_Core/include/CGAL/CORE/poly/Poly.h
+++ b/CGAL_Core/include/CGAL/CORE/poly/Poly.h
@@ -36,7 +36,7 @@
* Author: Chee Yap
* Date: May 28, 2002
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/poly/Poly.tcc b/CGAL_Core/include/CGAL/CORE/poly/Poly.tcc
index 325f64d528c..604a86ad6e1 100644
--- a/CGAL_Core/include/CGAL/CORE/poly/Poly.tcc
+++ b/CGAL_Core/include/CGAL/CORE/poly/Poly.tcc
@@ -30,7 +30,7 @@
* Author: Chee Yap, Sylvain Pion and Vikram Sharma
* Date: May 28, 2002
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/CORE/poly/Sturm.h b/CGAL_Core/include/CGAL/CORE/poly/Sturm.h
index 57fe5b26b7f..77ceab8c9ae 100644
--- a/CGAL_Core/include/CGAL/CORE/poly/Sturm.h
+++ b/CGAL_Core/include/CGAL/CORE/poly/Sturm.h
@@ -37,7 +37,7 @@
* Author: Chee Yap and Sylvain Pion, Vikram Sharma
* Date: July 20, 2002
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_Core/include/CGAL/export/CORE.h b/CGAL_Core/include/CGAL/export/CORE.h
index 440239528a1..651387e610d 100644
--- a/CGAL_Core/include/CGAL/export/CORE.h
+++ b/CGAL_Core/include/CGAL/export/CORE.h
@@ -18,7 +18,7 @@
* Sylvain Pion
* Vikram Sharma
*
- * WWW URL: http://cs.nyu.edu/exact/
+ * WWW URL: https://cs.nyu.edu/exact/
* Email: exact@cs.nyu.edu
*
* $URL$
diff --git a/CGAL_ImageIO/include/CGAL/ImageIO.h b/CGAL_ImageIO/include/CGAL/ImageIO.h
index 9c6b4281cc6..26ada2cfd76 100644
--- a/CGAL_ImageIO/include/CGAL/ImageIO.h
+++ b/CGAL_ImageIO/include/CGAL/ImageIO.h
@@ -24,7 +24,7 @@
#ifdef CGAL_USE_ZLIB
#include
-/* see http://www.gzip.org/zlib/
+/* see https://zlib.net/
for details and documentation
*/
#endif
@@ -342,8 +342,8 @@ CGAL_IMAGEIO_EXPORT _image *_createImage(std::size_t x, std::size_t y, std::size
GIS (CEA, IRISA, ENST 3D image format).
See also:
- http://www.dcs.ed.ac.uk/home/mxr/gfx/2d-hi.html and
- http://www.gzip.org/zlib/
+ https://www.martinreddy.net/gfx/2d-hi.html and
+ https://zlib.net/
@param name image file name or nullptr for stdin */
diff --git a/CGAL_ImageIO/include/CGAL/ImageIO/convert.h b/CGAL_ImageIO/include/CGAL/ImageIO/convert.h
index 4cb73637c49..0119d73736d 100644
--- a/CGAL_ImageIO/include/CGAL/ImageIO/convert.h
+++ b/CGAL_ImageIO/include/CGAL/ImageIO/convert.h
@@ -19,7 +19,7 @@
*
* AUTHOR:
* Gregoire Malandain (greg@sophia.inria.fr)
- * http://www.inria.fr/epidaure/personnel/malandain/
+ * https://www-sop.inria.fr/members/Gregoire.Malandain/
*
* CREATION DATE:
* June, 9 1998
diff --git a/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer.h b/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer.h
index 4fba58fb19b..9e35ebd637b 100644
--- a/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer.h
+++ b/CGAL_ImageIO/include/CGAL/ImageIO/recbuffer.h
@@ -23,7 +23,7 @@
*
* AUTHOR:
* Gregoire Malandain (greg@sophia.inria.fr)
- * http://www.inria.fr/epidaure/personnel/malandain/
+ * https://www-sop.inria.fr/members/Gregoire.Malandain/
*
* CREATION DATE:
* June, 9 1998
diff --git a/CGAL_ImageIO/include/CGAL/ImageIO/recline.h b/CGAL_ImageIO/include/CGAL/ImageIO/recline.h
index b8ae7b398a3..588bd8d6434 100644
--- a/CGAL_ImageIO/include/CGAL/ImageIO/recline.h
+++ b/CGAL_ImageIO/include/CGAL/ImageIO/recline.h
@@ -23,7 +23,7 @@
*
* AUTHOR:
* Gregoire Malandain (greg@sophia.inria.fr)
- * http://www.inria.fr/epidaure/personnel/malandain/
+ * https://www-sop.inria.fr/members/Gregoire.Malandain/
*
* CREATION DATE:
* June, 9 1998
diff --git a/CGAL_ImageIO/include/CGAL/ImageIO/typedefs.h b/CGAL_ImageIO/include/CGAL/ImageIO/typedefs.h
index c4c612cc6e3..a77de031f64 100644
--- a/CGAL_ImageIO/include/CGAL/ImageIO/typedefs.h
+++ b/CGAL_ImageIO/include/CGAL/ImageIO/typedefs.h
@@ -19,7 +19,7 @@
*
* AUTHOR:
* Gregoire Malandain (greg@sophia.inria.fr)
- * http://www.inria.fr/epidaure/personnel/malandain/
+ * https://www-sop.inria.fr/members/Gregoire.Malandain/
*
* CREATION DATE:
* June, 9 1998
diff --git a/CGAL_ipelets/doc/CGAL_ipelets/CGAL_ipelets.txt b/CGAL_ipelets/doc/CGAL_ipelets/CGAL_ipelets.txt
index e5c3467650f..922e4e8f9bd 100644
--- a/CGAL_ipelets/doc/CGAL_ipelets/CGAL_ipelets.txt
+++ b/CGAL_ipelets/doc/CGAL_ipelets/CGAL_ipelets.txt
@@ -9,7 +9,7 @@ namespace CGAL {
\section CGAL_ipeletsIntroduction Introduction
-The Ipe extensible drawing editor (http://ipe.otfried.org) \cgalCite{schwarzkopf1995ede}, \cgalCite{ipe:man-09}
+The Ipe extensible drawing editor (https://ipe.otfried.org/) \cgalCite{schwarzkopf1995ede}, \cgalCite{ipe:man-09}
is a tool used by computational geometry researchers to produce 2D figures for inclusion in articles or presentations.
The extensible adjective sheds a light on an important feature:
the possibility for users to write small extensions (called ipelets)
diff --git a/Circular_kernel_2/doc/Circular_kernel_2/Circular_kernel_2.txt b/Circular_kernel_2/doc/Circular_kernel_2/Circular_kernel_2.txt
index 41a5e7b9db4..740788d9b14 100644
--- a/Circular_kernel_2/doc/Circular_kernel_2/Circular_kernel_2.txt
+++ b/Circular_kernel_2/doc/Circular_kernel_2/Circular_kernel_2.txt
@@ -90,7 +90,7 @@ also added more functionality in 2008.
This work was partially supported by the IST Programme of the EU as a
Shared-cost RTD (FET Open) Project under Contract No IST-2000-26473
-(ECG - Effective
+(ECG - Effective
Computational Geometry for Curves and Surfaces) and by the IST
Programme of the 6th Framework Programme of the EU as a STREP (FET
Open Scheme) Project under Contract No IST-006413
diff --git a/Circular_kernel_2/include/CGAL/IO/Dxf_reader.h b/Circular_kernel_2/include/CGAL/IO/Dxf_reader.h
index bf00857272b..a66bd69bf63 100644
--- a/Circular_kernel_2/include/CGAL/IO/Dxf_reader.h
+++ b/Circular_kernel_2/include/CGAL/IO/Dxf_reader.h
@@ -16,7 +16,7 @@
// (ACS -- Algorithms for Complex Shapes)
// Description of the file format can be found at the following address:
-// http://www.autodesk.com/techpubs/autocad/acad2000/dxf/
+// https://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf
#ifndef CGAL_IO_DXF_READER_H
#define CGAL_IO_DXF_READER_H
diff --git a/Circular_kernel_2/include/CGAL/IO/Dxf_reader_doubles.h b/Circular_kernel_2/include/CGAL/IO/Dxf_reader_doubles.h
index 4da1adc4c96..900dd9aed87 100644
--- a/Circular_kernel_2/include/CGAL/IO/Dxf_reader_doubles.h
+++ b/Circular_kernel_2/include/CGAL/IO/Dxf_reader_doubles.h
@@ -16,8 +16,7 @@
// (ACS -- Algorithms for Complex Shapes)
// Descriptions of the file format can be found at
-// http://www.autodesk.com/techpubs/autocad/acad2000/dxf/
-// http://www.tnt.uni-hannover.de/soft/compgraph/fileformats/docs/DXF.ascii
+// https://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf
#ifndef CGAL_IO_DXF_READER_DOUBLES_H
#define CGAL_IO_DXF_READER_DOUBLES_H
diff --git a/Circular_kernel_2/include/CGAL/IO/Dxf_variant_reader.h b/Circular_kernel_2/include/CGAL/IO/Dxf_variant_reader.h
index 84672c295f7..d0ace79c85c 100644
--- a/Circular_kernel_2/include/CGAL/IO/Dxf_variant_reader.h
+++ b/Circular_kernel_2/include/CGAL/IO/Dxf_variant_reader.h
@@ -17,7 +17,7 @@
// (ACS -- Algorithms for Complex Shapes)
// Description of the file format can be found at the following address:
-// http://www.autodesk.com/techpubs/autocad/acad2000/dxf/
+// https://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf
#ifndef CGAL_IO_DXF_VARIANT_READER_H
#define CGAL_IO_DXF_VARIANT_READER_H
diff --git a/Classification/doc/Classification/Classification.txt b/Classification/doc/Classification/Classification.txt
index 2c4c11eee49..10157e274ff 100644
--- a/Classification/doc/Classification/Classification.txt
+++ b/Classification/doc/Classification/Classification.txt
@@ -528,7 +528,10 @@ The following example:
\section Classification_history History
-This package is based on a research code by [Florent Lafarge](https://www-sop.inria.fr/members/Florent.Lafarge/) that was generalized, extended and packaged by [Simon Giraudot](http://geometryfactory.com/who-we-are/) in \cgal 4.12. %Classification of surface meshes and of clusters were introduced in \cgal 4.13. The Neural Network classifier was introduced in \cgal 4.14.
+This package is based on a research code by [Florent Lafarge](https://www-sop.inria.fr/members/Florent.Lafarge/)
+that was generalized, extended and packaged by [Simon Giraudot](https://geometryfactory.com/who-we-are/)
+in \cgal 4.12. %Classification of surface meshes and of clusters were introduced in \cgal 4.13.
+The Neural Network classifier was introduced in \cgal 4.14.
diff --git a/Combinatorial_map/include/CGAL/Compact_container_with_index.h b/Combinatorial_map/include/CGAL/Compact_container_with_index.h
index 37d555793b6..a87122500fc 100644
--- a/Combinatorial_map/include/CGAL/Compact_container_with_index.h
+++ b/Combinatorial_map/include/CGAL/Compact_container_with_index.h
@@ -752,9 +752,12 @@ public:
return false;
}
- bool owns_dereferencable(const_iterator cit) const
+ bool owns_dereferenceable(const_iterator cit) const
{ return cit!=end() && owns(cit); }
+ CGAL_DEPRECATED bool owns_dereferencable(const_iterator cit) const
+ { return owns_dereferenceable(cit); }
+
/** Reserve method to ensure that the capacity of the Compact_container be
* greater or equal than a given value n.
*/
diff --git a/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt b/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt
index 73cd228cf95..0583952c360 100644
--- a/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt
+++ b/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt
@@ -185,7 +185,7 @@ MSVC][msvc-assume], or [`__builtin_unreachable`][builtin-unreachable]
recognized by both clang and g++.
[msvc-assume]: https://msdn.microsoft.com/en-us/library/1b3fsfxw.aspx
-[builtin-unreachable]: http://clang.llvm.org/docs/LanguageExtensions.html#builtin-unreachable
+[builtin-unreachable]: https://clang.llvm.org/docs/LanguageExtensions.html#builtin-unreachable
\section secexception_handling Exception handling
@@ -193,7 +193,7 @@ Some parts of the library use exceptions, but there is no general specific
policy concerning exception handling in \cgal. It is nevertheless good to
target exception safety, as much as possible. Good references on exception
safety are: Appendix E of \cgalCite{cgal:s-cpl-97} (also available at
-http://www.stroustrup.com/3rd_safe0.html),
+https://www.stroustrup.com/3rd_safe0.html),
and \cgalCite{cgal:a-esgc-98} (also available at
https://www.boost.org/community/exception_safety.html).
Any destructor which might throw an exception, including a destructor which
diff --git a/Documentation/doc/Documentation/Developer_manual/Chapter_iterators_and_circulators.txt b/Documentation/doc/Documentation/Developer_manual/Chapter_iterators_and_circulators.txt
index b7450d5cd3d..bb7567c4858 100644
--- a/Documentation/doc/Documentation/Developer_manual/Chapter_iterators_and_circulators.txt
+++ b/Documentation/doc/Documentation/Developer_manual/Chapter_iterators_and_circulators.txt
@@ -42,7 +42,7 @@ Thus we will not give a full description of these concept here
but only a few hints about how to use and write handle, iterators and circulators in \cgal. Developers should consult the above-mentioned references to become
familiar with the iterator, circulator and handle concepts. In
particular, the notions of iterator and circulator ranges,
-dereferencable and past-the-end values,
+dereferenceable and past-the-end values,
mutable and constant iterators and circulators,
and the different categories (forward, bidirectional, random-access, etc.)
of iterators and circulators, are fundamental.
diff --git a/Documentation/doc/Documentation/License.txt b/Documentation/doc/Documentation/License.txt
index cb272b4180f..1eaf49026dd 100644
--- a/Documentation/doc/Documentation/License.txt
+++ b/Documentation/doc/Documentation/License.txt
@@ -19,7 +19,7 @@ based on GPLed \cgal data structures, obliges you to distribute the
source code of your software under the GPL.
The exact license terms can be found at the Free Software Foundation
-web site: http://www.gnu.org/copyleft/gpl.html.
+web site: https://www.gnu.org/licenses/gpl-3.0.html.
\section licensesLGPL GNU LGPL
@@ -29,7 +29,7 @@ In contrast to the GPL, there is no obligation to distribute the source
code of software you build on top of LGPLed \cgal data structures.
The exact license terms can be found at the Free Software Foundation web site:
-http://www.gnu.org/copyleft/lesser.html.
+https://www.gnu.org/licenses/lgpl-3.0.html.
\section licensesRationale Rationale of the License Choice
@@ -46,7 +46,7 @@ The package overview states for each package under which license it is distribut
Users who cannot comply with the Open Source license terms can buy individual
data structures under various commercial licenses from GeometryFactory:
-http://www.geometryfactory.com/. License fees paid by commercial
+https://www.geometryfactory.com/. License fees paid by commercial
customers are reinvested in R\&D performed by the \cgal project partners,
as well as in evolutive maintenance.
diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt
index 1b281911cc8..b981472df6a 100644
--- a/Documentation/doc/Documentation/Third_party.txt
+++ b/Documentation/doc/Documentation/Third_party.txt
@@ -11,11 +11,11 @@ supporting C++14 or later.
| Operating System | Compiler |
| :---------- | :--------------- |
-| Linux | \gnu `g++` 10.2.1 or later\cgalFootnote{\cgalFootnoteCode{http://gcc.gnu.org/}} |
-| | `Clang` \cgalFootnote{\cgalFootnoteCode{http://clang.llvm.org/}} compiler version 13.0.1 |
-| \ms Windows | \gnu `g++` 10.2.1 or later\cgalFootnote{\cgalFootnoteCode{http://gcc.gnu.org/}} |
+| Linux | \gnu `g++` 10.2.1 or later\cgalFootnote{\cgalFootnoteCode{https://gcc.gnu.org/}} |
+| | `Clang` \cgalFootnote{\cgalFootnoteCode{https://clang.llvm.org/}} compiler version 13.0.1 |
+| \ms Windows | \gnu `g++` 10.2.1 or later\cgalFootnote{\cgalFootnoteCode{https://gcc.gnu.org/}} |
| | \ms Visual `C++` 14.0, 15.9, 16.10, 17.0 (\visualstudio 2015, 2017, 2019, and 2022)\cgalFootnote{\cgalFootnoteCode{https://visualstudio.microsoft.com/}} |
-| MacOS X | \gnu `g++` 10.2.1 or later\cgalFootnote{\cgalFootnoteCode{http://gcc.gnu.org/}} |
+| MacOS X | \gnu `g++` 10.2.1 or later\cgalFootnote{\cgalFootnoteCode{https://gcc.gnu.org/}} |
| | Apple `Clang` compiler versions 10.0.1, 12.0.5, and 13.0.0 |
@@ -131,7 +131,7 @@ Overview page. In order to use Eigen in \cgal programs, the
executables should be linked with the CMake imported target
`CGAL::Eigen3_support` provided in `CGAL_Eigen3_support.cmake`.
-The \eigen web site is `http://eigen.tuxfamily.org`.
+The \eigen web site is `https://eigen.tuxfamily.org`.
\subsection thirdpartyOpenGR OpenGR
@@ -309,7 +309,7 @@ The \glpk web site is `https://www.
In \cgal, \scip provides an optional linear integer program solver in the \ref PkgPolygonalSurfaceReconstruction package.
In order to use \scip in \cgal programs, the executables should be linked with the CMake imported target `CGAL::SCIP_support` provided in `CGAL_SCIP_support.cmake`.
-The \scip web site is `http://scip.zib.de/`.
+The \scip web site is `https://www.scipopt.org/`.
\subsection thirdpartyOSQP OSQP
diff --git a/Documentation/doc/Documentation/main.txt b/Documentation/doc/Documentation/main.txt
index 085a2ad83b6..2026356b76c 100644
--- a/Documentation/doc/Documentation/main.txt
+++ b/Documentation/doc/Documentation/main.txt
@@ -35,7 +35,7 @@ Head over to \ref general_intro to learn how to obtain, install, and use \cgal.
\cgal is distributed under a dual-license scheme. \cgal can be used
together with Open Source software free of charge. Using \cgal in
other contexts can be done by obtaining a commercial license from
-[GeometryFactory](http://www.geometryfactory.com). For more details
+[GeometryFactory](https://www.geometryfactory.com). For more details
see the \ref license "License" page.
-$generatedby
+$generatedby $doxygenversion
diff --git a/Documentation/doc/resources/1.8.13/header.html b/Documentation/doc/resources/1.8.13/header.html
index 8c8b86f5b9d..aaa5e95ea30 100644
--- a/Documentation/doc/resources/1.8.13/header.html
+++ b/Documentation/doc/resources/1.8.13/header.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/resources/1.8.13/header_package.html b/Documentation/doc/resources/1.8.13/header_package.html
index 544fd3ced7f..9e6fe125d50 100644
--- a/Documentation/doc/resources/1.8.13/header_package.html
+++ b/Documentation/doc/resources/1.8.13/header_package.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/resources/1.8.14/BaseDoxyfile.in b/Documentation/doc/resources/1.8.14/BaseDoxyfile.in
index 44a6b9f72b3..1a59e5d2d97 100644
--- a/Documentation/doc/resources/1.8.14/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.14/BaseDoxyfile.in
@@ -1,7 +1,7 @@
# Doxyfile 1.8.14
# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
+# doxygen (https://www.doxygen.nl/) for a project.
#
# All text after a double hash (##) is considered a comment and is placed in
# front of the TAG it is preceding.
@@ -404,7 +404,7 @@ EXTENSION_MAPPING = txt=C++
# If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
# according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you can
# mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
# case of backward compatibilities issues.
@@ -1333,7 +1333,7 @@ HTML_INDEX_NUM_ENTRIES = 100
# If the GENERATE_DOCSET tag is set to YES, additional index files will be
# generated that can be used as input for Apple's Xcode 3 integrated development
-# environment (see: https://developer.apple.com/tools/xcode/), introduced with
+# environment (see: https://developer.apple.com/xcode/), introduced with
# OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
# Makefile in the HTML output directory. Running make will produce the docset in
# that directory and running make install will install the docset in
@@ -1601,7 +1601,7 @@ USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
+# https://docs.mathjax.org/en/latest/output/index.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
@@ -1632,7 +1632,7 @@ MATHJAX_EXTENSIONS = TeX/AMSmath \
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# (see: https://docs.mathjax.org/en/latest/output/index.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
@@ -2062,7 +2062,7 @@ DOCBOOK_PROGRAMLISTING = NO
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures
# the structure of the code including all documentation. Note that this feature
# is still experimental and incomplete at the moment.
# The default value is: NO.
@@ -2266,7 +2266,7 @@ HIDE_UNDOC_RELATIONS = YES
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: NO.
@@ -2421,7 +2421,7 @@ DIRECTORY_GRAPH = NO
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
-# http://www.graphviz.org/)).
+# https://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
diff --git a/Documentation/doc/resources/1.8.14/footer.html b/Documentation/doc/resources/1.8.14/footer.html
index a1ef3c24ea8..379470c59e2 100644
--- a/Documentation/doc/resources/1.8.14/footer.html
+++ b/Documentation/doc/resources/1.8.14/footer.html
@@ -8,14 +8,14 @@ move the footer to the bottom of the page. -->
-$generatedby
+$generatedby $doxygenversion
diff --git a/Documentation/doc/resources/1.8.14/header.html b/Documentation/doc/resources/1.8.14/header.html
index 8c8b86f5b9d..aaa5e95ea30 100644
--- a/Documentation/doc/resources/1.8.14/header.html
+++ b/Documentation/doc/resources/1.8.14/header.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/resources/1.8.14/header_package.html b/Documentation/doc/resources/1.8.14/header_package.html
index 89f76a8a441..f429c63135d 100644
--- a/Documentation/doc/resources/1.8.14/header_package.html
+++ b/Documentation/doc/resources/1.8.14/header_package.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/resources/1.8.20/BaseDoxyfile.in b/Documentation/doc/resources/1.8.20/BaseDoxyfile.in
index 7f258d33a4b..f950a6836db 100644
--- a/Documentation/doc/resources/1.8.20/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.20/BaseDoxyfile.in
@@ -1,7 +1,7 @@
# Doxyfile 1.8.20
# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
+# doxygen (https://www.doxygen.nl/) for a project.
#
# All text after a double hash (##) is considered a comment and is placed in
# front of the TAG it is preceding.
@@ -1683,7 +1683,7 @@ USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
+# https://docs.mathjax.org/en/latest/output/index.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
@@ -1714,7 +1714,7 @@ MATHJAX_EXTENSIONS = TeX/AMSmath \
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# (see: https://docs.mathjax.org/en/latest/output/index.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
@@ -2146,7 +2146,7 @@ DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures
# the structure of the code including all documentation. Note that this feature
# is still experimental and incomplete at the moment.
# The default value is: NO.
@@ -2350,7 +2350,7 @@ HIDE_UNDOC_RELATIONS = YES
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: NO.
@@ -2505,7 +2505,7 @@ DIRECTORY_GRAPH = NO
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
-# http://www.graphviz.org/)).
+# https://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
diff --git a/Documentation/doc/resources/1.8.20/footer.html b/Documentation/doc/resources/1.8.20/footer.html
index cd9ad4553bc..28e5afe0f39 100644
--- a/Documentation/doc/resources/1.8.20/footer.html
+++ b/Documentation/doc/resources/1.8.20/footer.html
@@ -7,13 +7,13 @@ move the footer to the bottom of the page. -->
$navpath
-
$generatedby $doxygenversion
+
$generatedby $doxygenversion
-$generatedby $doxygenversion
+$generatedby $doxygenversion
diff --git a/Documentation/doc/resources/1.8.20/header.html b/Documentation/doc/resources/1.8.20/header.html
index 50e4e4dcb49..c0530eec8bf 100644
--- a/Documentation/doc/resources/1.8.20/header.html
+++ b/Documentation/doc/resources/1.8.20/header.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/resources/1.8.20/header_package.html b/Documentation/doc/resources/1.8.20/header_package.html
index 007d84e7b10..d2a1ed6051b 100644
--- a/Documentation/doc/resources/1.8.20/header_package.html
+++ b/Documentation/doc/resources/1.8.20/header_package.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/resources/1.8.4/BaseDoxyfile.in b/Documentation/doc/resources/1.8.4/BaseDoxyfile.in
index 45d422384df..10f3050a8f3 100644
--- a/Documentation/doc/resources/1.8.4/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.8.4/BaseDoxyfile.in
@@ -1,7 +1,7 @@
# Doxyfile 1.8.4
# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
+# doxygen (https://www.doxygen.nl/) for a project.
#
# All text after a double hash (##) is considered a comment and is placed
# in front of the TAG it is preceding .
@@ -20,7 +20,7 @@
# that follow. The default is UTF-8 which is also the encoding used for all
# text before the first occurrence of this tag. Doxygen uses libiconv (or the
# iconv built into libc) for the transcoding. See
-# http://www.gnu.org/software/libiconv for the list of possible encodings.
+# https://www.gnu.org/software/libiconv for the list of possible encodings.
DOXYFILE_ENCODING = UTF-8
@@ -409,7 +409,7 @@ EXTENSION_MAPPING =
# If MARKDOWN_SUPPORT is enabled (the default) then doxygen pre-processes all
# comments according to the Markdown format, which allows for more readable
-# documentation. See http://daringfireball.net/projects/markdown/ for details.
+# documentation. See https://daringfireball.net/projects/markdown/ for details.
# The output of markdown processing is further processed by doxygen, so you
# can mix doxygen, HTML, and XML commands with Markdown formatting.
# Disable only in case of backward compatibilities issues.
@@ -754,7 +754,7 @@ LAYOUT_FILE = ${CGAL_DOC_RESOURCE_DIR}/DoxygenLayoutPackage.xml
# containing the references data. This must be a list of .bib files. The
# .bib extension is automatically appended if omitted. Using this command
# requires the bibtex tool to be installed. See also
-# http://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
+# https://en.wikipedia.org/wiki/BibTeX for more info. For LaTeX the style
# of the bibliography can be controlled using LATEX_BIB_STYLE. To use this
# feature you need bibtex and perl available in the search path. Do not use
# file names with spaces, bibtex cannot handle them.
@@ -827,7 +827,7 @@ INPUT =
# This tag can be used to specify the character encoding of the source files
# that doxygen parses. Internally doxygen uses the UTF-8 encoding, which is
# also the default input encoding. Doxygen uses libiconv (or the iconv built
-# into libc) for the transcoding. See http://www.gnu.org/software/libiconv for
+# into libc) for the transcoding. See https://www.gnu.org/software/libiconv for
# the list of possible encodings.
INPUT_ENCODING = UTF-8
@@ -1005,7 +1005,7 @@ REFERENCES_LINK_SOURCE = YES
# If the USE_HTAGS tag is set to YES then the references to source code
# will point to the HTML generated by the htags(1) tool instead of doxygen
# built-in source browser. The htags tool is part of GNU's global source
-# tagging system (see http://www.gnu.org/software/global/global.html). You
+# tagging system (see https://www.gnu.org/software/global/global.html). You
# will need version 4.8.6 or higher.
USE_HTAGS = NO
@@ -1110,7 +1110,7 @@ HTML_EXTRA_FILES =
# The HTML_COLORSTYLE_HUE tag controls the color of the HTML output.
# Doxygen will adjust the colors in the style sheet and background images
# according to this color. Hue is specified as an angle on a colorwheel,
-# see http://en.wikipedia.org/wiki/Hue for more information.
+# see https://en.wikipedia.org/wiki/Hue for more information.
# For instance the value 0 represents red, 60 is yellow, 120 is green,
# 180 is cyan, 240 is blue, 300 purple, and 360 is red again.
# The allowed range is 0 to 359.
@@ -1251,25 +1251,25 @@ QCH_FILE =
# The QHP_NAMESPACE tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#namespace
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#namespace
QHP_NAMESPACE = org.doxygen.Project
# The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating
# Qt Help Project output. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#virtual-folders
+# https://doc.qt.io/archives/qt-4.8/qthelpproject.html#virtual-folders
QHP_VIRTUAL_FOLDER = doc
# If QHP_CUST_FILTER_NAME is set, it specifies the name of a custom filter to
# add. For more information please see
-# http://doc.trolltech.com/qthelpproject.html#custom-filters
+# https//doc.qt.io/archives/qt-4.8/qthelpproject.html#custom-filters
QHP_CUST_FILTER_NAME =
# The QHP_CUST_FILT_ATTRS tag specifies the list of the attributes of the
# custom filter to add. For more information please see
-#
+#
# Qt Help Project / Custom Filters.
QHP_CUST_FILTER_ATTRS =
@@ -1277,7 +1277,7 @@ QHP_CUST_FILTER_ATTRS =
# The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
# project's
# filter section matches.
-#
+#
# Qt Help Project / Filter Attributes.
QHP_SECT_FILTER_ATTRS =
@@ -1361,7 +1361,7 @@ FORMULA_FONTSIZE = 10
FORMULA_TRANSPARENT = YES
# Enable the USE_MATHJAX option to render LaTeX formulas using MathJax
-# (see http://www.mathjax.org) which uses client side Javascript for the
+# (see https://www.mathjax.org) which uses client side Javascript for the
# rendering instead of using prerendered bitmaps. Use this if you do not
# have LaTeX installed or if you want to formulas look prettier in the HTML
# output. When enabled you may also need to install MathJax separately and
@@ -1384,7 +1384,7 @@ MATHJAX_FORMAT = HTML-CSS
# the MathJax Content Delivery Network so you can quickly see the result without
# installing MathJax.
# However, it is strongly recommended to install a local
-# copy of MathJax from http://www.mathjax.org before deployment.
+# copy of MathJax from https://www.mathjax.org before deployment.
MATHJAX_RELPATH = ../../MathJax/
@@ -1560,7 +1560,7 @@ LATEX_SOURCE_CODE = NO
# The LATEX_BIB_STYLE tag can be used to specify the style to use for the
# bibliography, e.g. plainnat, or ieeetr. The default style is "plain". See
-# http://en.wikipedia.org/wiki/BibTeX for more info.
+# https://en.wikipedia.org/wiki/BibTeX for more info.
LATEX_BIB_STYLE = plain
@@ -1850,7 +1850,7 @@ CLASS_DIAGRAMS = NO
# You can define message sequence charts within doxygen comments using the \msc
# command. Doxygen will then run the mscgen tool (see
-# http://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
+# https://www.mcternan.me.uk/mscgen/) to produce the chart and insert it in the
# documentation. The MSCGEN_PATH tag allows you to specify the directory where
# the mscgen tool resides. If left empty the tool is assumed to be found in the
# default search path.
diff --git a/Documentation/doc/resources/1.8.4/footer.html b/Documentation/doc/resources/1.8.4/footer.html
index 8b23c63651f..5c8bc85e026 100644
--- a/Documentation/doc/resources/1.8.4/footer.html
+++ b/Documentation/doc/resources/1.8.4/footer.html
@@ -5,14 +5,14 @@
diff --git a/Documentation/doc/resources/1.9.3/BaseDoxyfile.in b/Documentation/doc/resources/1.9.3/BaseDoxyfile.in
index d95cfc9dd5a..775ba2ce757 100644
--- a/Documentation/doc/resources/1.9.3/BaseDoxyfile.in
+++ b/Documentation/doc/resources/1.9.3/BaseDoxyfile.in
@@ -1,7 +1,7 @@
# Doxyfile 1.9.3
# This file describes the settings to be used by the documentation system
-# doxygen (www.doxygen.org) for a project.
+# doxygen (https://www.doxygen.nl/) for a project.
#
# All text after a double hash (##) is considered a comment and is placed in
# front of the TAG it is preceding.
@@ -1688,7 +1688,7 @@ USE_MATHJAX = YES
# When MathJax is enabled you can set the default output format to be used for
# the MathJax output. See the MathJax site (see:
-# http://docs.mathjax.org/en/latest/output.html) for more details.
+# https://docs.mathjax.org/en/latest/output/index.html) for more details.
# Possible values are: HTML-CSS (which is slower, but has the best
# compatibility), NativeMML (i.e. MathML) and SVG.
# The default value is: HTML-CSS.
@@ -1719,7 +1719,7 @@ MATHJAX_EXTENSIONS = TeX/AMSmath \
# The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
# of code that will be used on startup of the MathJax code. See the MathJax site
-# (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
+# (see: https://docs.mathjax.org/en/latest/output/index.html) for more details. For an
# example see the documentation.
# This tag requires that the tag USE_MATHJAX is set to YES.
@@ -2151,7 +2151,7 @@ DOCBOOK_OUTPUT = docbook
#---------------------------------------------------------------------------
# If the GENERATE_AUTOGEN_DEF tag is set to YES, doxygen will generate an
-# AutoGen Definitions (see http://autogen.sourceforge.net/) file that captures
+# AutoGen Definitions (see https://autogen.sourceforge.net/) file that captures
# the structure of the code including all documentation. Note that this feature
# is still experimental and incomplete at the moment.
# The default value is: NO.
@@ -2261,7 +2261,7 @@ PREDEFINED = DOXYGEN_RUNNING \
"CGAL_NP_TEMPLATE_PARAMETERS_2=NamedParameters2 = CGAL::parameters::Default_named_parameter" \
"CGAL_NP_CLASS_2=NamedParameters2" \
CGAL_DEPRECATED
-
+
# If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
# tag can be used to specify a list of macro names that should be expanded. The
@@ -2347,7 +2347,7 @@ HIDE_UNDOC_RELATIONS = YES
# If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
# available from the path. This tool is part of Graphviz (see:
-# http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
+# https://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
# Bell Labs. The other options in this section have no effect if this option is
# set to NO
# The default value is: NO.
@@ -2507,7 +2507,7 @@ DIRECTORY_GRAPH = NO
# The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
# generated by dot. For an explanation of the image formats see the section
# output formats in the documentation of the dot tool (Graphviz (see:
-# http://www.graphviz.org/)).
+# https://www.graphviz.org/)).
# Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
# to make the SVG files visible in IE 9+ (other browsers do not have this
# requirement).
diff --git a/Documentation/doc/resources/1.9.3/footer.html b/Documentation/doc/resources/1.9.3/footer.html
index cd9ad4553bc..28e5afe0f39 100644
--- a/Documentation/doc/resources/1.9.3/footer.html
+++ b/Documentation/doc/resources/1.9.3/footer.html
@@ -7,13 +7,13 @@ move the footer to the bottom of the page. -->
$navpath
-
$generatedby $doxygenversion
+
$generatedby $doxygenversion
-$generatedby $doxygenversion
+$generatedby $doxygenversion
diff --git a/Documentation/doc/resources/1.9.3/header.html b/Documentation/doc/resources/1.9.3/header.html
index 50e4e4dcb49..c0530eec8bf 100644
--- a/Documentation/doc/resources/1.9.3/header.html
+++ b/Documentation/doc/resources/1.9.3/header.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/resources/1.9.3/header_package.html b/Documentation/doc/resources/1.9.3/header_package.html
index 007d84e7b10..d2a1ed6051b 100644
--- a/Documentation/doc/resources/1.9.3/header_package.html
+++ b/Documentation/doc/resources/1.9.3/header_package.html
@@ -1,6 +1,6 @@
-
+
diff --git a/Documentation/doc/scripts/generate_how_to_cite.py b/Documentation/doc/scripts/generate_how_to_cite.py
index e1108d6a51f..470c71d4e45 100644
--- a/Documentation/doc/scripts/generate_how_to_cite.py
+++ b/Documentation/doc/scripts/generate_how_to_cite.py
@@ -46,7 +46,7 @@ software.
If you want to cite the \cgal Library or project as a whole, please
-- cite: \cgal, Computational Geometry Algorithms Library, https://www.cgal.org
+- cite: \cgal, Computational Geometry Algorithms Library, https://www.cgal.org
- use the first bibtex entry from the file how_to_cite_cgal.bib.
## Citing the User and Reference Manual ##
@@ -65,7 +65,7 @@ If you want to refer to \cgal manual, please cite the appropriate
The \cgal Project.
\cgal User and Reference Manual.
\cgal Editorial Board, ${CGAL_CREATED_VERSION_NUM} edition, ${CGAL_BUILD_YEAR4}.
-[ bib |
+[ bib |
http ]
@@ -80,7 +80,7 @@ result_txt_footer=r"""
"""
pre_html=r"""
-
+
diff --git a/Documentation/doc/scripts/html_output_post_processing.py b/Documentation/doc/scripts/html_output_post_processing.py
index 44d15aa6d70..5402d7bc50f 100755
--- a/Documentation/doc/scripts/html_output_post_processing.py
+++ b/Documentation/doc/scripts/html_output_post_processing.py
@@ -55,7 +55,7 @@ def write_out_html(d, fn):
f = codecs.open(fn, 'w', encoding='utf-8')
# this is the normal doxygen doctype, which is thrown away by pyquery
f.write('\n')
- f.write('')
+ f.write('')
if d.html() is not None:
f.write(d.html())
f.write('\n')
@@ -85,7 +85,7 @@ def clean_doc():
for fn in duplicate_files:
os.remove(fn)
-# from http://stackoverflow.com/a/1597755/105672
+# from https://stackoverflow.com/a/1597755/105672
def re_replace_in_file(pat, s_after, fname):
# first, see if the pattern is even in the file.
with codecs.open(fname, encoding='utf-8') as f:
diff --git a/Filtered_kernel/TODO b/Filtered_kernel/TODO
index 477746d7bce..7e1b5441ad9 100644
--- a/Filtered_kernel/TODO
+++ b/Filtered_kernel/TODO
@@ -140,7 +140,7 @@ except we could merge stuff with Olivier's Fixed !
So the good choice seems to be to have data stored in each predicate object,
and having the kernel store a predicate object for each predicate.
Then the orientation_2_object() simply returns a reference to it.
-
+
Then it means algorithms should use one "global" object per predicate (e.g.
one orientation object for a whole Triangulation). Except for cases where
they actually want different contexts.
diff --git a/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h b/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h
index ac57decb63e..e9428fd2917 100644
--- a/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h
+++ b/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Angle_3.h
@@ -21,7 +21,7 @@
#include
#include
-// inspired from http://cag.csail.mit.edu/~amy/papers/box-jgt.pdf
+// inspired from https://people.csail.mit.edu/amy/papers/box-jgt.pdf
namespace CGAL {
diff --git a/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h b/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h
index 3b94f56663c..2b0ef97d7fc 100644
--- a/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h
+++ b/Filtered_kernel/include/CGAL/Filtered_kernel/internal/Static_filters/Do_intersect_3.h
@@ -26,7 +26,7 @@
#include
-// inspired from http://cag.csail.mit.edu/~amy/papers/box-jgt.pdf
+// inspired from https://people.csail.mit.edu/amy/papers/box-jgt.pdf
namespace CGAL {
diff --git a/GraphicsView/doc/GraphicsView/fig_src/uml-design.graphml b/GraphicsView/doc/GraphicsView/fig_src/uml-design.graphml
index b4d866c7279..39d1878397c 100644
--- a/GraphicsView/doc/GraphicsView/fig_src/uml-design.graphml
+++ b/GraphicsView/doc/GraphicsView/fig_src/uml-design.graphml
@@ -1,5 +1,5 @@
-
+
diff --git a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/resources/about_CGAL.html b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/resources/about_CGAL.html
index 6b2b2a5d943..f2f0fb9318b 100644
--- a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/resources/about_CGAL.html
+++ b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/resources/about_CGAL.html
@@ -3,6 +3,6 @@
Computational Geometry Algorithms Library
CGAL provides efficient and reliable geometric algorithms in the form of a C++ library.
diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md
index c0dca7da118..30e31329e62 100644
--- a/Installation/CHANGES.md
+++ b/Installation/CHANGES.md
@@ -3191,7 +3191,7 @@ Release date: October 2012
- Added more general script to create CMakeLists.txt files:
`cgal_create_CMakeLists`
- Availability tests for C++11 features are now performed with the
- help of [Boost.Config](http://www.boost.org/libs/config). A Boost
+ help of [Boost.Config](https://www.boost.org/libs/config). A Boost
version of 1.40.0 or higher is needed to use C++11 features.
### 2D Arrangement
@@ -3683,7 +3683,7 @@ CGAL 3.7 offers the following improvements and new functionality :
- Some demos now require a version of Qt4 >= 4.3.
- CGAL\_PDB is no longer provided with CGAL. An alternative solution
for people interested in reading PDB files is to use ESBTL
- (http://esbtl.sourceforge.net/).
+ (https://esbtl.sourceforge.net/).
- Fix issues of the CGAL wrappers around the CORE library, on 64 bits
platforms.
diff --git a/Installation/LICENSE.GPL b/Installation/LICENSE.GPL
index 94a9ed024d3..ae0725d8014 100644
--- a/Installation/LICENSE.GPL
+++ b/Installation/LICENSE.GPL
@@ -1,7 +1,7 @@
GNU GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
@@ -645,7 +645,7 @@ the "copyright" line and a pointer to where the full notice is found.
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
- along with this program. If not, see .
+ along with this program. If not, see .
Also add information on how to contact you by electronic and paper mail.
@@ -664,11 +664,11 @@ might be different; for a GUI interface, you would use an "about box".
You should also get your employer (if you work as a programmer) or school,
if any, to sign a "copyright disclaimer" for the program, if necessary.
For more information on this, and how to apply and follow the GNU GPL, see
-.
+.
The GNU General Public License does not permit incorporating your program
into proprietary programs. If your program is a subroutine library, you
may consider it more useful to permit linking proprietary applications with
the library. If this is what you want to do, use the GNU Lesser General
Public License instead of this License. But first, please read
-.
+.
diff --git a/Installation/LICENSE.LGPL b/Installation/LICENSE.LGPL
index 65c5ca88a67..1cd6ad68146 100644
--- a/Installation/LICENSE.LGPL
+++ b/Installation/LICENSE.LGPL
@@ -1,7 +1,7 @@
GNU LESSER GENERAL PUBLIC LICENSE
Version 3, 29 June 2007
- Copyright (C) 2007 Free Software Foundation, Inc.
+ Copyright (C) 2007 Free Software Foundation, Inc.
Everyone is permitted to copy and distribute verbatim copies
of this license document, but changing it is not allowed.
diff --git a/Installation/cmake/modules/FindTBB.cmake b/Installation/cmake/modules/FindTBB.cmake
index 3cbea03d9b9..8b7aa08a92b 100644
--- a/Installation/cmake/modules/FindTBB.cmake
+++ b/Installation/cmake/modules/FindTBB.cmake
@@ -43,7 +43,7 @@
#-------------------------------------------------------------------
# This file is part of the CMake build system for OGRE
# (Object-oriented Graphics Rendering Engine)
-# For the latest info, see http://www.ogre3d.org/
+# For the latest info, see https://www.ogre3d.org/
#
# The contents of this file are placed in the public domain. Feel
# free to make use of it in any way you like.
diff --git a/Installation/doc_html/Manual/index.html b/Installation/doc_html/Manual/index.html
index ce6b70c0d9a..446d46ff910 100644
--- a/Installation/doc_html/Manual/index.html
+++ b/Installation/doc_html/Manual/index.html
@@ -1,10 +1,10 @@
-
+
CGAL - Computational Geometry Algorithms Library
-
+
diff --git a/Installation/doc_html/Manual/packages.html b/Installation/doc_html/Manual/packages.html
index ce6b70c0d9a..446d46ff910 100644
--- a/Installation/doc_html/Manual/packages.html
+++ b/Installation/doc_html/Manual/packages.html
@@ -1,10 +1,10 @@
-
+
CGAL - Computational Geometry Algorithms Library
-
+
diff --git a/Installation/doc_html/index.html b/Installation/doc_html/index.html
index 24cd53e0c23..5638303fdc9 100644
--- a/Installation/doc_html/index.html
+++ b/Installation/doc_html/index.html
@@ -1,10 +1,10 @@
-
+
CGAL - Computational Geometry Algorithms Library
-
+
@@ -19,7 +19,7 @@
-The goal of the CGAL Open Source Project is to provide
+The goal of the CGAL Open Source Project is to provide
easy access to efficient and reliable geometric algorithms
in the form of a C++ library.
@@ -36,7 +36,7 @@ You can access the CGAL Online Manual from the
@@ -46,7 +46,7 @@ You can access the CGAL Online Manual from the
CGAL is distributed under a dual-license scheme. CGAL can be used together
with Open Source software free of charge. Using CGAL in other contexts can be
done by obtaining a commercial license from
-GeometryFactory.
+GeometryFactory.
For more details see the License page.
diff --git a/Installation/include/CGAL/config.h b/Installation/include/CGAL/config.h
index 7d7d435a302..c1e3605e862 100644
--- a/Installation/include/CGAL/config.h
+++ b/Installation/include/CGAL/config.h
@@ -52,7 +52,7 @@
#endif // CGAL_TEST_SUITE and NDEBUG
// See [[Small features/Visual_Leak_Detector]] in CGAL developers wiki
-// See also: http://vld.codeplex.com/
+// See also: https://kinddragon.github.io/vld/
#if defined(CGAL_ENABLE_VLD)
# include
#endif // CGAL_ENABLE_VLD
@@ -296,7 +296,7 @@ using std::max;
// Macros to detect features of clang. We define them for the other
// compilers.
-// See http://clang.llvm.org/docs/LanguageExtensions.html
+// See https://clang.llvm.org/docs/LanguageExtensions.html
// See also https://en.cppreference.com/w/cpp/experimental/feature_test
#ifndef __has_feature
#define __has_feature(x) 0 // Compatibility with non-clang compilers.
@@ -473,7 +473,7 @@ namespace cpp11{
// The fallthrough attribute
// See for clang:
-// http://clang.llvm.org/docs/AttributeReference.html#statement-attributes
+// https://clang.llvm.org/docs/AttributeReference.html#statement-attributes
// See for gcc:
// https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html
#if __cplusplus > 201402L && __has_cpp_attribute(fallthrough)
diff --git a/Installation/include/CGAL/license/Polygon_mesh_processing/combinatorial_repair.h b/Installation/include/CGAL/license/Polygon_mesh_processing/combinatorial_repair.h
new file mode 100644
index 00000000000..cf07529839b
--- /dev/null
+++ b/Installation/include/CGAL/license/Polygon_mesh_processing/combinatorial_repair.h
@@ -0,0 +1,60 @@
+// Copyright (c) 2016 GeometryFactory SARL (France).
+// All rights reserved.
+//
+// This file is part of CGAL (www.cgal.org)
+//
+// $URL$
+// $Id$
+// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial
+//
+// Author(s) : Andreas Fabri
+//
+// Warning: this file is generated, see include/CGAL/licence/README.md
+// not entirely true due to the backward compatibility issue
+
+#ifndef CGAL_LICENSE_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_H
+#define CGAL_LICENSE_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_H
+
+#include
+#include
+
+// backward compatibility
+#ifdef CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE
+#define CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE
+#endif
+
+#ifdef CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE
+
+# if CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE
+
+# if defined(CGAL_LICENSE_WARNING)
+
+ CGAL_pragma_warning("Your commercial license for CGAL does not cover "
+ "this release of the Polygon Mesh Processing - Combinatorial Repair package.")
+# endif
+
+# ifdef CGAL_LICENSE_ERROR
+# error "Your commercial license for CGAL does not cover this release \
+ of the Polygon Mesh Processing - Combinatorial Repair package. \
+ You get this error, as you defined CGAL_LICENSE_ERROR."
+# endif // CGAL_LICENSE_ERROR
+
+# endif // CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE
+
+#else // no CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE
+
+# if defined(CGAL_LICENSE_WARNING)
+ CGAL_pragma_warning("\nThe macro CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE is not defined."
+ "\nYou use the CGAL Polygon Mesh Processing - Combinatorial Repair package under "
+ "the terms of the GPLv3+.")
+# endif // CGAL_LICENSE_WARNING
+
+# ifdef CGAL_LICENSE_ERROR
+# error "The macro CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE is not defined.\
+ You use the CGAL Polygon Mesh Processing - Combinatorial Repair package under the terms of \
+ the GPLv3+. You get this error, as you defined CGAL_LICENSE_ERROR."
+# endif // CGAL_LICENSE_ERROR
+
+#endif // no CGAL_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_COMMERCIAL_LICENSE
+
+#endif // CGAL_LICENSE_POLYGON_MESH_PROCESSING_COMBINATORIAL_REPAIR_H
diff --git a/Installation/include/CGAL/license/Polygon_mesh_processing/repair.h b/Installation/include/CGAL/license/Polygon_mesh_processing/geometric_repair.h
similarity index 53%
rename from Installation/include/CGAL/license/Polygon_mesh_processing/repair.h
rename to Installation/include/CGAL/license/Polygon_mesh_processing/geometric_repair.h
index 7481b75ff73..2d77d99530c 100644
--- a/Installation/include/CGAL/license/Polygon_mesh_processing/repair.h
+++ b/Installation/include/CGAL/license/Polygon_mesh_processing/geometric_repair.h
@@ -11,44 +11,44 @@
//
// Warning: this file is generated, see include/CGAL/license/README.md
-#ifndef CGAL_LICENSE_POLYGON_MESH_PROCESSING_REPAIR_H
-#define CGAL_LICENSE_POLYGON_MESH_PROCESSING_REPAIR_H
+#ifndef CGAL_LICENSE_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_H
+#define CGAL_LICENSE_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_H
#include
#include
-#ifdef CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE
+#ifdef CGAL_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_COMMERCIAL_LICENSE
-# if CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE
+# if CGAL_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE
# if defined(CGAL_LICENSE_WARNING)
CGAL_pragma_warning("Your commercial license for CGAL does not cover "
- "this release of the Polygon Mesh Processing - Repair package.")
+ "this release of the Polygon Mesh Processing - Geometric Repair package.")
# endif
# ifdef CGAL_LICENSE_ERROR
# error "Your commercial license for CGAL does not cover this release \
- of the Polygon Mesh Processing - Repair package. \
+ of the Polygon Mesh Processing - Geometric Repair package. \
You get this error, as you defined CGAL_LICENSE_ERROR."
# endif // CGAL_LICENSE_ERROR
-# endif // CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE
+# endif // CGAL_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_COMMERCIAL_LICENSE < CGAL_RELEASE_DATE
-#else // no CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE
+#else // no CGAL_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_COMMERCIAL_LICENSE
# if defined(CGAL_LICENSE_WARNING)
- CGAL_pragma_warning("\nThe macro CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE is not defined."
- "\nYou use the CGAL Polygon Mesh Processing - Repair package under "
+ CGAL_pragma_warning("\nThe macro CGAL_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_COMMERCIAL_LICENSE is not defined."
+ "\nYou use the CGAL Polygon Mesh Processing - Geometric Repair package under "
"the terms of the GPLv3+.")
# endif // CGAL_LICENSE_WARNING
# ifdef CGAL_LICENSE_ERROR
-# error "The macro CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE is not defined.\
- You use the CGAL Polygon Mesh Processing - Repair package under the terms of \
+# error "The macro CGAL_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_COMMERCIAL_LICENSE is not defined.\
+ You use the CGAL Polygon Mesh Processing - Geometric Repair package under the terms of \
the GPLv3+. You get this error, as you defined CGAL_LICENSE_ERROR."
# endif // CGAL_LICENSE_ERROR
-#endif // no CGAL_POLYGON_MESH_PROCESSING_REPAIR_COMMERCIAL_LICENSE
+#endif // no CGAL_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_COMMERCIAL_LICENSE
-#endif // CGAL_LICENSE_POLYGON_MESH_PROCESSING_REPAIR_H
+#endif // CGAL_LICENSE_POLYGON_MESH_PROCESSING_GEOMETRIC_REPAIR_H
diff --git a/Installation/include/CGAL/license/gpl_package_list.txt b/Installation/include/CGAL/license/gpl_package_list.txt
index f023d48f375..ee177d9ae77 100644
--- a/Installation/include/CGAL/license/gpl_package_list.txt
+++ b/Installation/include/CGAL/license/gpl_package_list.txt
@@ -55,7 +55,8 @@ Polygon_mesh_processing/measure Polygon Mesh Processing - Geometric Measure
Polygon_mesh_processing/meshing_hole_filling Polygon Mesh Processing - Meshing and Hole Filling
Polygon_mesh_processing/orientation Polygon Mesh Processing - Orientation
Polygon_mesh_processing/predicate Polygon Mesh Processing - Predicate
-Polygon_mesh_processing/repair Polygon Mesh Processing - Repair
+Polygon_mesh_processing/combinatorial_repair Polygon Mesh Processing - Combinatorial Repair
+Polygon_mesh_processing/geometric_repair Polygon Mesh Processing - Geometric Repair
Polygon_mesh_processing/miscellaneous Polygon Mesh Processing - Miscellaneous
Polygon_mesh_processing/detect_features Polygon Mesh Processing - Feature Detection
Polygon_mesh_processing/collision_detection Polygon Mesh Processing - Collision Detection
diff --git a/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h b/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h
index 352515571d5..f67b6c4d853 100644
--- a/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h
+++ b/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Line_3_do_intersect.h
@@ -14,7 +14,7 @@
#ifndef CGAL_INTERNAL_INTERSECTIONS_3_BBOX_3_LINE_3_DO_INTERSECT_H
#define CGAL_INTERNAL_INTERSECTIONS_3_BBOX_3_LINE_3_DO_INTERSECT_H
-// inspired from http://cag.csail.mit.edu/~amy/papers/box-jgt.pdf
+// inspired from https://people.csail.mit.edu/amy/papers/box-jgt.pdf
#include
#include
diff --git a/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h b/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h
index cb6813acf02..31d26ac1fdb 100644
--- a/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h
+++ b/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Ray_3_do_intersect.h
@@ -14,7 +14,7 @@
#ifndef CGAL_INTERNAL_INTERSECTIONS_3_BBOX_3_RAY_3_DO_INTERSECT_H
#define CGAL_INTERNAL_INTERSECTIONS_3_BBOX_3_RAY_3_DO_INTERSECT_H
-// inspired from http://cag.csail.mit.edu/~amy/papers/box-jgt.pdf
+// inspired from https://people.csail.mit.edu/amy/papers/box-jgt.pdf
#include
// for CGAL::internal::do_intersect_bbox_segment_aux
diff --git a/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h b/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h
index 9e5371814ad..f7ebc70d25e 100644
--- a/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h
+++ b/Intersections_3/include/CGAL/Intersections_3/internal/Bbox_3_Segment_3_do_intersect.h
@@ -22,7 +22,7 @@
#include
-// inspired from http://cag.csail.mit.edu/~amy/papers/box-jgt.pdf
+// inspired from https://people.csail.mit.edu/amy/papers/box-jgt.pdf
// This algorithm intersects the line with the x-, y-, and z-slabs of the
// bounding box, and computes the interval [t1, t2], in the
diff --git a/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h b/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h
index 6dd2a0ee646..0ef4a7ec6f6 100644
--- a/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h
+++ b/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Ray_3_do_intersect.h
@@ -20,7 +20,7 @@
#include
// for CGAL::internal::do_intersect_bbox_segment_aux
-// inspired from http://cag.csail.mit.edu/~amy/papers/box-jgt.pdf
+// inspired from https://people.csail.mit.edu/amy/papers/box-jgt.pdf
namespace CGAL {
namespace Intersections {
diff --git a/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h b/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h
index c14046c54aa..5118e44a6fd 100644
--- a/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h
+++ b/Intersections_3/include/CGAL/Intersections_3/internal/Iso_cuboid_3_Segment_3_do_intersect.h
@@ -14,7 +14,7 @@
#ifndef CGAL_INTERNAL_INTERSECTIONS_3_ISO_CUBOID_3_SEGMENT_3_DO_INTERSECT_H
#define CGAL_INTERNAL_INTERSECTIONS_3_ISO_CUBOID_3_SEGMENT_3_DO_INTERSECT_H
-// inspired from http://cag.csail.mit.edu/~amy/papers/box-jgt.pdf
+// inspired from https://people.csail.mit.edu/amy/papers/box-jgt.pdf
#include
// for CGAL::internal::do_intersect_bbox_segment_aux
diff --git a/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp b/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp
index 9b5490c0164..6fe55a40654 100644
--- a/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp
+++ b/Intersections_3/test/Intersections_3/test_intersections_Line_3.cpp
@@ -339,12 +339,15 @@ public:
{
P tet0 = random_point(), tet1 = random_point(), tet2 = random_point(), tet3 = random_point();
- const Tet tet(tet0, tet1, tet2, tet3);
+ Tet tet(tet0, tet1, tet2, tet3);
if(tet.is_degenerate())
continue;
- P l0 = tet0 - CGAL::cross_product(V(tet0, tet1), V(tet0, tet2));
- P l1 = tet3 + CGAL::cross_product(V(tet3, tet1), V(tet3, tet2));
+ if(tet.orientation() == CGAL::NEGATIVE)
+ tet = Tet(tet1, tet0, tet2, tet3);
+
+ P l0 = tet[0] - CGAL::cross_product(V(tet[0], tet[1]), V(tet[0], tet[2]));
+ P l1 = tet[3] + CGAL::cross_product(V(tet[3], tet[1]), V(tet[3], tet[2]));
assert(tet.has_on_unbounded_side(l0) && tet.has_on_unbounded_side(l1));
diff --git a/Kernel_23/doc/Kernel_23/Concepts/FunctionObjectConcepts.h b/Kernel_23/doc/Kernel_23/Concepts/FunctionObjectConcepts.h
index 566d7643bcd..c770d0b7b40 100644
--- a/Kernel_23/doc/Kernel_23/Concepts/FunctionObjectConcepts.h
+++ b/Kernel_23/doc/Kernel_23/Concepts/FunctionObjectConcepts.h
@@ -5964,13 +5964,22 @@ public:
/// A model of this concept must provide:
/// @{
-
/*!
introduces a variable with Cartesian coordinates
\f$ (0,0)\f$.
*/
Kernel::Point_2 operator()(const CGAL::Origin &CGAL::ORIGIN);
+ /*!
+ returns `p`.
+
+ \note It is advised to return a const reference to `p` to avoid useless copies.
+
+ \note This peculiar requirement is necessary because some \cgal structures such as triangulations
+ internally manipulate points whose type might be `Point_2` or `Weighted_point_2`.
+ */
+ Kernel::Point_2 operator()(const Kernel::Point_2& p);
+
/*!
extracts the bare point from the weighted point.
*/
@@ -6001,6 +6010,16 @@ public:
*/
Kernel::Point_3 operator()(const CGAL::Origin &CGAL::ORIGIN);
+ /*!
+ returns `p`.
+
+ \note It is advised to return a const reference to `p` to avoid useless copies.
+
+ \note This peculiar requirement is necessary because some \cgal structures such as triangulations
+ internally manipulate points whose type might be `Point_3` or `Weighted_point_3`.
+ */
+ Kernel::Point_3 operator()(const Kernel::Point_3& p);
+
/*!
extracts the bare point from the weighted point.
*/
diff --git a/Linear_cell_complex/benchmark/Linear_cell_complex_3/cmake/FindGoogleTest.cmake b/Linear_cell_complex/benchmark/Linear_cell_complex_3/cmake/FindGoogleTest.cmake
index 37bd9a812d6..5e86a4dd4cf 100644
--- a/Linear_cell_complex/benchmark/Linear_cell_complex_3/cmake/FindGoogleTest.cmake
+++ b/Linear_cell_complex/benchmark/Linear_cell_complex_3/cmake/FindGoogleTest.cmake
@@ -13,7 +13,7 @@
# use this file except in compliance with the License. You may obtain a copy
# of the License at
#
-# http://www.apache.org/licenses/LICENSE-2.0
+# https://www.apache.org/licenses/LICENSE-2.0
#
# Unless required by applicable law or agreed to in writing, software
# distributed under the License is distributed on an "AS IS" BASIS, WITHOUT
diff --git a/Linear_cell_complex/benchmark/README.TXT b/Linear_cell_complex/benchmark/README.TXT
index a721960047d..588995c5edb 100644
--- a/Linear_cell_complex/benchmark/README.TXT
+++ b/Linear_cell_complex/benchmark/README.TXT
@@ -18,9 +18,9 @@ INSTALLATION:
1) Install all the following libraries:
CGAL: https://www.cgal.org/
-CGoGN: http://cgogn.u-strasbg.fr/
-OpenMesh: http://www.openmesh.org/
-OpenVolumeMesh: http://www.openvolumemesh.org/
+CGoGN: https://cgogn.github.io/
+OpenMesh: https://www.openmesh.org/
+OpenVolumeMesh: https://www.openvolumemesh.org/
2) create links (or copy directory):
* in the 2D directory:
@@ -41,7 +41,7 @@ CGAL_BUILD_DIR being the build directory of the CGAL library.
* In 2D, the programs take off files as input.
* In 3D, lcc and cgogn take tetmesh and OpenVolumeMesh takes ovm.
-You can create a tetmesh file using tetgen programm with an off file as input (http://tetgen.berlios.de/) with option -g to generate XXX.mesh file. Rename this file into XXX.tetmesh. Modify the file to keep only the two following sections:
+You can create a tetmesh file using tetgen programm with an off file as input (https://www.berlios.de/software/tetgen/) with option -g to generate XXX.mesh file. Rename this file into XXX.tetmesh. Modify the file to keep only the two following sections:
**********************
Vertices
diff --git a/Maintenance/deb/sid/debian/README.Debian b/Maintenance/deb/sid/debian/README.Debian
index 4be997664d7..e1056ac3ab7 100644
--- a/Maintenance/deb/sid/debian/README.Debian
+++ b/Maintenance/deb/sid/debian/README.Debian
@@ -44,7 +44,7 @@ and pass the option
-DQGLVIEWER_INCLUDE_DIR=/some/dir
-to cmake. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522659 for more
+to cmake. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522659 for more
information.
-- Joachim Reichel Sat, 06 Feb 2010 12:29:02 +0100
diff --git a/Maintenance/deb/sid/debian/copyright b/Maintenance/deb/sid/debian/copyright
index ecc6058b7dc..6390c1a2874 100644
--- a/Maintenance/deb/sid/debian/copyright
+++ b/Maintenance/deb/sid/debian/copyright
@@ -318,7 +318,7 @@ src/CGALCore and include/CGAL/CORE.
Copyright (c) 1995-2004 Exact Computation Project
All rights reserved.
- This file is part of CORE (http://cs.nyu.edu/exact/core/).
+ This file is part of CORE (https://cs.nyu.edu/exact/core/).
You can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
diff --git a/Maintenance/deb/sid/debian/rules b/Maintenance/deb/sid/debian/rules
index 4e3de31d8e9..a3533b8b2cb 100755
--- a/Maintenance/deb/sid/debian/rules
+++ b/Maintenance/deb/sid/debian/rules
@@ -2,7 +2,7 @@
# export DH_VERBOSE=1
-# See http://wiki.debian.org/Hardening#Notes_for_packages_using_CMake
+# See https://wiki.debian.org/Hardening#Notes_for_packages_using_CMake
CFLAGS := $(CFLAGS) $(CPPFLAGS)
CXXFLAGS := $(CXXFLAGS) $(CPPFLAGS)
@@ -26,11 +26,11 @@ override_dh_auto_configure:
cd shared && QTDIR= cmake .. \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
-DWITH_CGAL_Qt3=OFF -DWITH_demos=OFF -DWITH_examples=OFF \
- -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE
+ -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE
mkdir -p shared/demo/CGAL_ipelets
cd shared/demo/CGAL_ipelets && QTDIR= cmake ../../../demo/CGAL_ipelets \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
- -DCGAL_DIR=$(CURDIR)/shared
+ -DCGAL_DIR=$(CURDIR)/shared
override_dh_auto_build:
$(MAKE) -C static
diff --git a/Maintenance/deb/squeeze/debian/README.Debian b/Maintenance/deb/squeeze/debian/README.Debian
index 4be997664d7..e1056ac3ab7 100644
--- a/Maintenance/deb/squeeze/debian/README.Debian
+++ b/Maintenance/deb/squeeze/debian/README.Debian
@@ -44,7 +44,7 @@ and pass the option
-DQGLVIEWER_INCLUDE_DIR=/some/dir
-to cmake. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522659 for more
+to cmake. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522659 for more
information.
-- Joachim Reichel Sat, 06 Feb 2010 12:29:02 +0100
diff --git a/Maintenance/deb/squeeze/debian/copyright b/Maintenance/deb/squeeze/debian/copyright
index ecc6058b7dc..6390c1a2874 100644
--- a/Maintenance/deb/squeeze/debian/copyright
+++ b/Maintenance/deb/squeeze/debian/copyright
@@ -318,7 +318,7 @@ src/CGALCore and include/CGAL/CORE.
Copyright (c) 1995-2004 Exact Computation Project
All rights reserved.
- This file is part of CORE (http://cs.nyu.edu/exact/core/).
+ This file is part of CORE (https://cs.nyu.edu/exact/core/).
You can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
diff --git a/Maintenance/deb/squeeze/debian/rules b/Maintenance/deb/squeeze/debian/rules
index 4e3de31d8e9..a3533b8b2cb 100755
--- a/Maintenance/deb/squeeze/debian/rules
+++ b/Maintenance/deb/squeeze/debian/rules
@@ -2,7 +2,7 @@
# export DH_VERBOSE=1
-# See http://wiki.debian.org/Hardening#Notes_for_packages_using_CMake
+# See https://wiki.debian.org/Hardening#Notes_for_packages_using_CMake
CFLAGS := $(CFLAGS) $(CPPFLAGS)
CXXFLAGS := $(CXXFLAGS) $(CPPFLAGS)
@@ -26,11 +26,11 @@ override_dh_auto_configure:
cd shared && QTDIR= cmake .. \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
-DWITH_CGAL_Qt3=OFF -DWITH_demos=OFF -DWITH_examples=OFF \
- -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE
+ -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE
mkdir -p shared/demo/CGAL_ipelets
cd shared/demo/CGAL_ipelets && QTDIR= cmake ../../../demo/CGAL_ipelets \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
- -DCGAL_DIR=$(CURDIR)/shared
+ -DCGAL_DIR=$(CURDIR)/shared
override_dh_auto_build:
$(MAKE) -C static
diff --git a/Maintenance/deb/wheezy/debian/README.Debian b/Maintenance/deb/wheezy/debian/README.Debian
index 4be997664d7..e1056ac3ab7 100644
--- a/Maintenance/deb/wheezy/debian/README.Debian
+++ b/Maintenance/deb/wheezy/debian/README.Debian
@@ -44,7 +44,7 @@ and pass the option
-DQGLVIEWER_INCLUDE_DIR=/some/dir
-to cmake. See http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522659 for more
+to cmake. See https://bugs.debian.org/cgi-bin/bugreport.cgi?bug=522659 for more
information.
-- Joachim Reichel Sat, 06 Feb 2010 12:29:02 +0100
diff --git a/Maintenance/deb/wheezy/debian/copyright b/Maintenance/deb/wheezy/debian/copyright
index ecc6058b7dc..6390c1a2874 100644
--- a/Maintenance/deb/wheezy/debian/copyright
+++ b/Maintenance/deb/wheezy/debian/copyright
@@ -318,7 +318,7 @@ src/CGALCore and include/CGAL/CORE.
Copyright (c) 1995-2004 Exact Computation Project
All rights reserved.
- This file is part of CORE (http://cs.nyu.edu/exact/core/).
+ This file is part of CORE (https://cs.nyu.edu/exact/core/).
You can redistribute it and/or modify it under the terms of the GNU
General Public License as published by the Free Software Foundation,
either version 3 of the License, or (at your option) any later version.
diff --git a/Maintenance/deb/wheezy/debian/rules b/Maintenance/deb/wheezy/debian/rules
index 4e3de31d8e9..a3533b8b2cb 100755
--- a/Maintenance/deb/wheezy/debian/rules
+++ b/Maintenance/deb/wheezy/debian/rules
@@ -2,7 +2,7 @@
# export DH_VERBOSE=1
-# See http://wiki.debian.org/Hardening#Notes_for_packages_using_CMake
+# See https://wiki.debian.org/Hardening#Notes_for_packages_using_CMake
CFLAGS := $(CFLAGS) $(CPPFLAGS)
CXXFLAGS := $(CXXFLAGS) $(CPPFLAGS)
@@ -26,11 +26,11 @@ override_dh_auto_configure:
cd shared && QTDIR= cmake .. \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
-DWITH_CGAL_Qt3=OFF -DWITH_demos=OFF -DWITH_examples=OFF \
- -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE
+ -DCGAL_ENABLE_PRECONFIG=OFF -DBUILD_SHARED_LIBS=TRUE -DCMAKE_SKIP_RPATH=TRUE
mkdir -p shared/demo/CGAL_ipelets
cd shared/demo/CGAL_ipelets && QTDIR= cmake ../../../demo/CGAL_ipelets \
-DCMAKE_VERBOSE_MAKEFILE=ON -DCMAKE_INSTALL_PREFIX=/usr -DCMAKE_BUILD_TYPE=Release \
- -DCGAL_DIR=$(CURDIR)/shared
+ -DCGAL_DIR=$(CURDIR)/shared
override_dh_auto_build:
$(MAKE) -C static
diff --git a/Maintenance/infrastructure/cgal.geometryfactory.com/crontab b/Maintenance/infrastructure/cgal.geometryfactory.com/crontab
index ce30c5ee6d7..633a3f95570 100644
--- a/Maintenance/infrastructure/cgal.geometryfactory.com/crontab
+++ b/Maintenance/infrastructure/cgal.geometryfactory.com/crontab
@@ -107,7 +107,7 @@ LC_CTYPE=en_US.UTF-8
# - on trunk
#0 21 * * Sat cd $HOME/CGAL/create_internal_release; scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/trunk --public --do-it
-# Check the links of http://www.cgal.org/projects.html every sunday at 17:42
+# Check the links of https://www.cgal.org/projects.html every sunday at 17:42
#42 17 * * Sun linklint -host www.cgal.org -http /projects.html -net -no_anchors -quiet -silent -error
# A test that does not work
diff --git a/Maintenance/infrastructure/renoir.geometryfactory.com/boost/user-config.jam b/Maintenance/infrastructure/renoir.geometryfactory.com/boost/user-config.jam
index 60d4ad326c3..cb26334a389 100644
--- a/Maintenance/infrastructure/renoir.geometryfactory.com/boost/user-config.jam
+++ b/Maintenance/infrastructure/renoir.geometryfactory.com/boost/user-config.jam
@@ -2,13 +2,13 @@
# Copyright 2004 John Maddock
# Copyright 2002, 2003, 2004, 2007 Vladimir Prus
# Distributed under the Boost Software License, Version 1.0.
-# (See accompanying file LICENSE_1_0.txt or http://www.boost.org/LICENSE_1_0.txt)
+# (See accompanying file LICENSE_1_0.txt or https://www.boost.org/LICENSE_1_0.txt)
# This file is used to configure your Boost.Build installation. You can modify
# this file in place, or you can place it in a permanent location so that it
# does not get overwritten should you get a new version of Boost.Build. See:
#
-# http://www.boost.org/boost-build2/doc/html/bbv2/overview/configuration.html
+# https://www.boost.org/build/doc/html/bbv2/overview/configuration.html
#
# for documentation about possible permanent locations.
@@ -17,7 +17,7 @@
# example lines and adjust them to taste. The complete list of supported tools,
# and configuration instructions can be found at:
#
-# http://boost.org/boost-build2/doc/html/bbv2/reference/tools.html
+# https://www.boost.org/build/doc/html/bbv2/reference/tools.html
#
# This file uses Jam language syntax to describe available tools. Mostly,
@@ -31,7 +31,7 @@
#
# More details about the syntax can be found at:
#
-# http://boost.org/boost-build2/doc/html/bbv2/advanced.html#bbv2.advanced.jam_language
+# https://www.boost.org/build/doc/html/jam/language.html
#
# ------------------
@@ -96,7 +96,7 @@ using gcc : : /usr/local/packages/gcc-4.5/bin/g++ ;
using gcc
: cxxdebug
: "/usr/lib64/ccache/g++" # your path to the C++ compiler
- : -D_GLIBCXX_DEBUG
+ : -D_GLIBCXX_DEBUG
;
using gcc
diff --git a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h
index 8cfc61a0e88..1b633566c73 100644
--- a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h
+++ b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h
@@ -13,7 +13,7 @@
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
@@ -25,7 +25,7 @@
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
+** https://www.gnu.org/licenses/gpl-3.0.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
diff --git a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qplugin.h b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qplugin.h
index 559822a843e..d7e47535627 100644
--- a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qplugin.h
+++ b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-4.8_CXX0X/patch-qt-4.8/QtCore/qplugin.h
@@ -13,7 +13,7 @@
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
@@ -25,7 +25,7 @@
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
+** https://www.gnu.org/licenses/gpl-3.0.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
diff --git a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h
index 8cfc61a0e88..1b633566c73 100644
--- a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h
+++ b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qobjectdefs.h
@@ -13,7 +13,7 @@
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
@@ -25,7 +25,7 @@
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
+** https://www.gnu.org/licenses/gpl-3.0.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
diff --git a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qplugin.h b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qplugin.h
index 559822a843e..d7e47535627 100644
--- a/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qplugin.h
+++ b/Maintenance/infrastructure/renoir.geometryfactory.com/reference-platforms/x86-64_Linux-Fedora19_g++-trunk_CXX0X/patch-qt-4.8/QtCore/qplugin.h
@@ -13,7 +13,7 @@
** appearing in the file LICENSE.LGPL included in the packaging of this
** file. Please review the following information to ensure the GNU Lesser
** General Public License version 2.1 requirements will be met:
-** http://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
+** https://www.gnu.org/licenses/old-licenses/lgpl-2.1.html.
**
** In addition, as a special exception, Nokia gives you certain additional
** rights. These rights are described in the Nokia Qt LGPL Exception
@@ -25,7 +25,7 @@
** and appearing in the file LICENSE.GPL included in the packaging of this
** file. Please review the following information to ensure the GNU General
** Public License version 3.0 requirements will be met:
-** http://www.gnu.org/copyleft/gpl.html.
+** https://www.gnu.org/licenses/gpl-3.0.html.
**
** Other Usage
** Alternatively, this file may be used in accordance with the terms and
diff --git a/Maintenance/public_release/announcement/mailing-beta.eml b/Maintenance/public_release/announcement/mailing-beta.eml
index e6de484eb6d..11b4295f32f 100644
--- a/Maintenance/public_release/announcement/mailing-beta.eml
+++ b/Maintenance/public_release/announcement/mailing-beta.eml
@@ -160,7 +160,7 @@ Most modules are distributed under the terms of the GPL Open Source
license (GNU General Public License v3 or later versions).
If your intended usage does not meet the criteria of the
aforementioned licenses, a commercial license can be purchased from
-GeometryFactory (http://www.geometryfactory.com/).
+GeometryFactory (https://www.geometryfactory.com/).
For further information and for downloading the library and its
diff --git a/Maintenance/public_release/announcement/mailing.eml b/Maintenance/public_release/announcement/mailing.eml
index 67f9e890a9e..23ea320c941 100644
--- a/Maintenance/public_release/announcement/mailing.eml
+++ b/Maintenance/public_release/announcement/mailing.eml
@@ -159,7 +159,7 @@ Most modules are distributed under the terms of the GPL Open Source
license (GNU General Public License v3 or later versions).
If your intended usage does not meet the criteria of the
aforementioned licenses, a commercial license can be purchased from
-GeometryFactory (http://www.geometryfactory.com/).
+GeometryFactory (https://www.geometryfactory.com/).
For further information and for downloading the library and its
diff --git a/Maintenance/test_handling/create_testresult_page b/Maintenance/test_handling/create_testresult_page
index 332dd91b63c..6a3632481b7 100755
--- a/Maintenance/test_handling/create_testresult_page
+++ b/Maintenance/test_handling/create_testresult_page
@@ -40,7 +40,7 @@ my @testresults;
my $testresult_dir=cwd()."/TESTRESULTS";
# Inspired from
-# http://cpansearch.perl.org/src/EDAVIS/Sort-Versions-1.5/Versions.pm
+# https://metacpan.org/pod/Sort::Versions
sub sort_releases($$)
{
# Take arguments in revert order: one wants to sort from the recent to
@@ -596,7 +596,7 @@ sub print_little_header(){
my $release_version = substr($release_name, 5);
print OUTPUT<<"EOF";
+ "https://www.w3.org/TR/html4/strict.dtd">
@@ -671,7 +671,7 @@ sub main()
See the log here.
diff --git a/Maintenance/test_handling/filter_testsuite/create_testresult_page b/Maintenance/test_handling/filter_testsuite/create_testresult_page
index 399e57d5ddd..76ca849b01f 100755
--- a/Maintenance/test_handling/filter_testsuite/create_testresult_page
+++ b/Maintenance/test_handling/filter_testsuite/create_testresult_page
@@ -35,7 +35,7 @@ my @testresults;
my $testresult_dir=cwd()."/TESTRESULTS";
# Inspired from
-# http://cpansearch.perl.org/src/EDAVIS/Sort-Versions-1.5/Versions.pm
+# https://metacpan.org/pod/Sort::Versions
sub sort_releases($$)
{
# Take arguments in revert order: one wants to sort from the recent to
@@ -591,7 +591,7 @@ sub print_little_header(){
my $release_version = substr($release_name, 5);
print OUTPUT<<"EOF";
+ "https://www.w3.org/TR/html4/strict.dtd">
@@ -665,7 +665,7 @@ sub main()
See the log here.
diff --git a/Mesh_3/benchmark/Mesh_3/concurrency.cpp b/Mesh_3/benchmark/Mesh_3/concurrency.cpp
index ea383a78832..006c917b990 100644
--- a/Mesh_3/benchmark/Mesh_3/concurrency.cpp
+++ b/Mesh_3/benchmark/Mesh_3/concurrency.cpp
@@ -7,7 +7,7 @@
#endif
// Without TBB_USE_THREADING_TOOL Intel Inspector XE will report false positives in Intel TBB
-// (http://software.intel.com/en-us/articles/compiler-settings-for-threading-error-analysis-in-intel-inspector-xe/)
+// (https://www.intel.com/content/www/us/en/developer/articles/technical/compiler-settings-for-threading-error-analysis-in-intel-inspector-xe.html)
#ifdef _DEBUG
# define TBB_USE_THREADING_TOOL
#endif
diff --git a/Number_types/doc/Number_types/CGAL/Sqrt_extension.h b/Number_types/doc/Number_types/CGAL/Sqrt_extension.h
index e5869154551..a52f55780dc 100644
--- a/Number_types/doc/Number_types/CGAL/Sqrt_extension.h
+++ b/Number_types/doc/Number_types/CGAL/Sqrt_extension.h
@@ -13,7 +13,7 @@ An instance of this class represents an extension of the type `NT` by *one* squa
For example, let `Integer` be some type representing \f$ \mathbb{Z}\f$, then
`Sqrt_extension` is able to represent \f$ \mathbb{Z}[\sqrt{\mathrm{root}}]\f$
-for some arbitrary Integer \f$\mathrm{root}\f$. \cgalFootnote{\f$ R[a]\f$ denotes the extension of a ring \f$ R\f$ by an element \f$ a\f$. See also: \cgalFootnoteCode{http://mathworld.wolfram.com/ExtensionRing.html}}
+for some arbitrary Integer \f$\mathrm{root}\f$. \cgalFootnote{\f$ R[a]\f$ denotes the extension of a ring \f$ R\f$ by an element \f$ a\f$. See also: \cgalFootnoteCode{https://mathworld.wolfram.com/ExtensionRing.html}}
The value of \f$\mathrm{root}\f$ is set at
construction time, or set to zero if it is not specified.
diff --git a/Number_types/include/CGAL/FPU.h b/Number_types/include/CGAL/FPU.h
index fcc66c9ad6b..7b926a5d251 100644
--- a/Number_types/include/CGAL/FPU.h
+++ b/Number_types/include/CGAL/FPU.h
@@ -143,8 +143,8 @@ inline double IA_opacify(double x)
{
#ifdef __llvm__
// LLVM's support for inline asm is completely messed up:
- // http://llvm.org/bugs/show_bug.cgi?id=17958
- // http://llvm.org/bugs/show_bug.cgi?id=17959
+ // https://bugs.llvm.org/show_bug.cgi?id=17958
+ // https://bugs.llvm.org/show_bug.cgi?id=17959
// etc.
// This seems to produce code that is ok (not optimal but better than
// volatile). In case of trouble, use volatile instead.
@@ -166,7 +166,7 @@ inline double IA_opacify(double x)
// Intel used not to emulate this perfectly, we'll see.
// If we create a version of IA_opacify for vectors, note that gcc < 4.8
// fails with "+g" and we need to use "+mx" instead.
- // "+X" ICEs ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59155 ) and
+ // "+X" ICEs ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59155 ) and
// may not be safe?
// The constraint 'g' doesn't include floating point registers ???
// Intel has a bug where -mno-sse still defines __SSE__ and __SSE2__
@@ -180,10 +180,10 @@ inline double IA_opacify(double x)
# endif
# elif (defined __i386__ || defined __x86_64__)
// "+f" doesn't compile on x86(_64)
- // ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59157 )
- // Don't mix "t" with "g": http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59180
+ // ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59157 )
+ // Don't mix "t" with "g": https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59180
// We can't put "t" with "x" either, prefer "x" for -mfpmath=sse,387.
- // ( http://gcc.gnu.org/bugzilla/show_bug.cgi?id=59181 )
+ // ( https://gcc.gnu.org/bugzilla/show_bug.cgi?id=59181 )
asm volatile ("" : "+mt"(x) );
# elif (defined __VFP_FP__ && !defined __SOFTFP__) || defined __aarch64__
// ARM
@@ -217,7 +217,7 @@ inline double IA_force_to_double(double x)
#if defined __GNUG__
# ifdef CGAL_HAS_SSE2
// For an explanation of volatile:
- // http://gcc.gnu.org/bugzilla/show_bug.cgi?id=56027
+ // https://gcc.gnu.org/bugzilla/show_bug.cgi?id=56027
asm volatile ("" : "+mx"(x) );
# else
// Similar to writing to a volatile and reading back, except that calling
diff --git a/Number_types/include/CGAL/GMP/Gmpz_type.h b/Number_types/include/CGAL/GMP/Gmpz_type.h
index b6ace5743a0..bf91ddb5d91 100644
--- a/Number_types/include/CGAL/GMP/Gmpz_type.h
+++ b/Number_types/include/CGAL/GMP/Gmpz_type.h
@@ -324,9 +324,9 @@ gmpz_new_read(std::istream &is, Gmpz &z)
// peek() sets also the failbit, one has to check for EOL twice.
//
// See the LWG C++ Issue 2036, classified as Not-A-Defect:
- // http://lwg.github.com/issues/lwg-closed.html#2036
+ // https://lwg.github.io/issues/lwg-closed.html#2036
// and a StackOverflow related question:
- // http://stackoverflow.com/a/9020292/1728537
+ // https://stackoverflow.com/a/9020292/1728537
// --
// Laurent Rineau, 2013/10/10
while (!is.eof()) {
diff --git a/OpenNL/include/CGAL/OpenNL/bicgstab.h b/OpenNL/include/CGAL/OpenNL/bicgstab.h
index dd8ea48a3ca..a9cef2c92e8 100644
--- a/OpenNL/include/CGAL/OpenNL/bicgstab.h
+++ b/OpenNL/include/CGAL/OpenNL/bicgstab.h
@@ -1,7 +1,7 @@
// Copyright (c) 2005-2008 Inria Loria (France).
/*
* author: Bruno Levy, INRIA, project ALICE
- * website: http://www.loria.fr/~levy/software
+ * website: https://www.loria.fr/~levy/software
*
* This file is part of CGAL (www.cgal.org)
*
@@ -13,7 +13,7 @@
* TITLE = Numerical Methods for Digital Geometry Processing,
* BOOKTITLE =Israel Korea Bi-National Conference,
* YEAR=November 2005,
- * URL=http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
+ * URL=https://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
* }
*
* Laurent Saboret 2005-2008: Changes for CGAL:
diff --git a/OpenNL/include/CGAL/OpenNL/blas.h b/OpenNL/include/CGAL/OpenNL/blas.h
index 52c4810e2c8..8cea9da67ad 100644
--- a/OpenNL/include/CGAL/OpenNL/blas.h
+++ b/OpenNL/include/CGAL/OpenNL/blas.h
@@ -1,7 +1,7 @@
// Copyright (c) 2005-2008 Inria Loria (France).
/*
* author: Bruno Levy, INRIA, project ALICE
- * website: http://www.loria.fr/~levy/software
+ * website: https://www.loria.fr/~levy/software
*
* This file is part of CGAL (www.cgal.org)
*
@@ -13,7 +13,7 @@
* TITLE = Numerical Methods for Digital Geometry Processing,
* BOOKTITLE =Israel Korea Bi-National Conference,
* YEAR=November 2005,
- * URL=http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
+ * URL=https://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
* }
*
* Laurent Saboret 01/2005: Change for CGAL:
diff --git a/OpenNL/include/CGAL/OpenNL/conjugate_gradient.h b/OpenNL/include/CGAL/OpenNL/conjugate_gradient.h
index c575aa6f0c8..6f2e6f5b2e8 100644
--- a/OpenNL/include/CGAL/OpenNL/conjugate_gradient.h
+++ b/OpenNL/include/CGAL/OpenNL/conjugate_gradient.h
@@ -1,7 +1,7 @@
// Copyright (c) 2005-2008 Inria Loria (France).
/*
* author: Bruno Levy, INRIA, project ALICE
- * website: http://www.loria.fr/~levy/software
+ * website: https://www.loria.fr/~levy/software
*
* This file is part of CGAL (www.cgal.org)
*
@@ -13,7 +13,7 @@
* TITLE = Numerical Methods for Digital Geometry Processing,
* BOOKTITLE =Israel Korea Bi-National Conference,
* YEAR=November 2005,
- * URL=http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
+ * URL=https://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
* }
*
* Laurent Saboret 2005-2006: Changes for CGAL:
diff --git a/OpenNL/include/CGAL/OpenNL/full_vector.h b/OpenNL/include/CGAL/OpenNL/full_vector.h
index b0857dfa851..0459808b638 100644
--- a/OpenNL/include/CGAL/OpenNL/full_vector.h
+++ b/OpenNL/include/CGAL/OpenNL/full_vector.h
@@ -1,7 +1,7 @@
// Copyright (c) 2005-2008 Inria Loria (France).
/*
* author: Bruno Levy, INRIA, project ALICE
- * website: http://www.loria.fr/~levy/software
+ * website: https://www.loria.fr/~levy/software
*
* This file is part of CGAL (www.cgal.org)
*
@@ -13,7 +13,7 @@
* TITLE = Numerical Methods for Digital Geometry Processing,
* BOOKTITLE =Israel Korea Bi-National Conference,
* YEAR=November 2005,
- * URL=http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
+ * URL=https://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
* }
*
* Laurent Saboret 01/2005: Change for CGAL:
diff --git a/OpenNL/include/CGAL/OpenNL/linear_solver.h b/OpenNL/include/CGAL/OpenNL/linear_solver.h
index 33dccdcc6cb..d4e928eec9a 100644
--- a/OpenNL/include/CGAL/OpenNL/linear_solver.h
+++ b/OpenNL/include/CGAL/OpenNL/linear_solver.h
@@ -1,7 +1,7 @@
// Copyright (c) 2005-2008 Inria Loria (France).
/*
* author: Bruno Levy, INRIA, project ALICE
- * website: http://www.loria.fr/~levy/software
+ * website: https://www.loria.fr/~levy/software
*
* This file is part of CGAL (www.cgal.org)
*
@@ -13,7 +13,7 @@
* TITLE = Numerical Methods for Digital Geometry Processing,
* BOOKTITLE =Israel Korea Bi-National Conference,
* YEAR=November 2005,
- * URL=http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
+ * URL=https://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
* }
*
* Laurent Saboret 2005-2006: Changes for CGAL:
diff --git a/OpenNL/include/CGAL/OpenNL/preconditioner.h b/OpenNL/include/CGAL/OpenNL/preconditioner.h
index 2d7728a94ca..808b6f39eb1 100644
--- a/OpenNL/include/CGAL/OpenNL/preconditioner.h
+++ b/OpenNL/include/CGAL/OpenNL/preconditioner.h
@@ -1,7 +1,7 @@
// Copyright (c) 2005-2008 Inria Loria (France).
/*
* author: Bruno Levy, INRIA, project ALICE
- * website: http://www.loria.fr/~levy/software
+ * website: https://www.loria.fr/~levy/software
*
* This file is part of CGAL (www.cgal.org)
*
@@ -13,7 +13,7 @@
* TITLE = Numerical Methods for Digital Geometry Processing,
* BOOKTITLE =Israel Korea Bi-National Conference,
* YEAR=November 2005,
- * URL=http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
+ * URL=https://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
* }
*
* Laurent Saboret 2006: Changes for CGAL:
diff --git a/OpenNL/include/CGAL/OpenNL/sparse_matrix.h b/OpenNL/include/CGAL/OpenNL/sparse_matrix.h
index 2d5b3812e30..4e4c01f46d4 100644
--- a/OpenNL/include/CGAL/OpenNL/sparse_matrix.h
+++ b/OpenNL/include/CGAL/OpenNL/sparse_matrix.h
@@ -1,7 +1,7 @@
// Copyright (c) 2005-2008 Inria Loria (France).
/*
* author: Bruno Levy, INRIA, project ALICE
- * website: http://www.loria.fr/~levy/software
+ * website: https://www.loria.fr/~levy/software
*
* This file is part of CGAL (www.cgal.org)
*
@@ -13,7 +13,7 @@
* TITLE = Numerical Methods for Digital Geometry Processing,
* BOOKTITLE =Israel Korea Bi-National Conference,
* YEAR=November 2005,
- * URL=http://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
+ * URL=https://www.loria.fr/~levy/php/article.php?pub=../publications/papers/2005/Numerics
* }
*
* Laurent Saboret 01/2005: Change for CGAL:
diff --git a/OpenNL/package_info/OpenNL/long_description.txt b/OpenNL/package_info/OpenNL/long_description.txt
index 8c0cd24b1f9..645de7254ee 100644
--- a/OpenNL/package_info/OpenNL/long_description.txt
+++ b/OpenNL/package_info/OpenNL/long_description.txt
@@ -15,7 +15,7 @@ Contact
=======
The author is Bruno Levy .
-OpenNL main page is http://www.loria.fr/~levy/software/.
+OpenNL main page is https://www.loria.fr/~levy/software/.
Caution
=======
diff --git a/Periodic_2_triangulation_2/test/Periodic_2_triangulation_2/test_p2t2_delaunay_performance.cpp b/Periodic_2_triangulation_2/test/Periodic_2_triangulation_2/test_p2t2_delaunay_performance.cpp
index ddef1fcc6de..3268d9dd881 100644
--- a/Periodic_2_triangulation_2/test/Periodic_2_triangulation_2/test_p2t2_delaunay_performance.cpp
+++ b/Periodic_2_triangulation_2/test/Periodic_2_triangulation_2/test_p2t2_delaunay_performance.cpp
@@ -84,7 +84,7 @@ int main(int argc, char *argv[])
// For generating the plot:
/*
-
+
diff --git a/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/Scene.cpp b/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/Scene.cpp
index 64ed148670d..513e34d5ebc 100644
--- a/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/Scene.cpp
+++ b/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/Scene.cpp
@@ -12,7 +12,7 @@
*
* The above copyright notice including the dates of first publication and
* either this permission notice or a reference to
- * http://oss.sgi.com/projects/FreeB/
+ * https://spdx.org/licenses/SGI-B-2.0.html
* shall be included in all copies or substantial portions of the Software.
*
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS
diff --git a/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/resources/about.html b/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/resources/about.html
index bf9e3becae7..9816a12a0c3 100644
--- a/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/resources/about.html
+++ b/Periodic_3_triangulation_3/demo/Periodic_3_triangulation_3/resources/about.html
@@ -2,8 +2,8 @@
diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt b/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt
index 1699ca2a0f9..3906fe9dab3 100644
--- a/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt
+++ b/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt
@@ -32,7 +32,11 @@
/// Functions to test if there are self intersections, and to report faces that do intersect.
/// \ingroup PkgPolygonMeshProcessingRef
-/// \defgroup PMP_repairing_grp Combinatorial Repairing
+/// \defgroup PMP_combinatorial_repair_grp Combinatorial Repair
+/// Functions to repair polygon soups and polygon meshes.
+/// \ingroup PkgPolygonMeshProcessingRef
+
+/// \defgroup PMP_geometric_repair_grp Geometric Repair
/// Functions to repair polygon soups and polygon meshes.
/// \ingroup PkgPolygonMeshProcessingRef
@@ -162,7 +166,7 @@ The page \ref bgl_namedparameters "Named Parameters" describes their usage.
- `CGAL::Polyhedral_envelope`
- `CGAL::Side_of_triangle_mesh`
-\cgalCRPSection{Combinatorial Repairing Functions}
+\cgalCRPSection{Combinatorial Repair Functions}
- `CGAL::Polygon_mesh_processing::merge_duplicate_points_in_polygon_soup()`
- `CGAL::Polygon_mesh_processing::merge_duplicate_polygons_in_polygon_soup()`
- `CGAL::Polygon_mesh_processing::remove_isolated_points_in_polygon_soup()`
@@ -179,6 +183,8 @@ The page \ref bgl_namedparameters "Named Parameters" describes their usage.
- `CGAL::Polygon_mesh_processing::duplicate_non_manifold_vertices()`
- `CGAL::Polygon_mesh_processing::merge_duplicated_vertices_in_boundary_cycle()`
- `CGAL::Polygon_mesh_processing::merge_duplicated_vertices_in_boundary_cycles()`
+
+\cgalCRPSection{Geometric Repair Functions}
- `CGAL::Polygon_mesh_processing::remove_almost_degenerate_faces()`
\cgalCRPSection{Connected Components}
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 e7345cd3c4c..947c907a7b3 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
@@ -46,7 +46,8 @@ and smoothing algorithms.
- \ref PMPPredicates : predicates that can be evaluated on the processed polygon.
mesh, which includes point location and self intersection tests.
- \ref PMPOrientation : checking or fixing the orientation of a polygon soup.
-- \ref PMPRepairing : repair of polygon meshes and polygon soups.
+- \ref PMPCombinatorialRepair : repair of polygon meshes and polygon soups.
+- \ref PMPGeometricRepair : repair of the geometry of polygon meshes.
- \ref PMPNormalComp : normal computation at vertices and on faces of a polygon mesh.
- \ref PMPSlicer : functor able to compute the intersections of a polygon mesh with arbitrary planes (slicer).
- \ref PMPConnectedComponents : methods to deal with connected
@@ -746,7 +747,7 @@ This example shows how to correctly repair and orient a soup to get a mesh from
****************************************
-\section PMPRepairing Combinatorial Repairing
+\section PMPCombinatorialRepair Combinatorial Repair
*******************
\subsection PSRepairing Polygon Soup Repairing
@@ -785,31 +786,7 @@ with duplicated border edges.
\cgalExample{Polygon_mesh_processing/stitch_borders_example.cpp}
-\if READY_TO_PUBLISH
-
-\subsection DegenerateFaces Removing Degenerate Faces
-
-Some degenerate faces may be part of a given triangle mesh.
-A face is considered \e degenerate if two of its vertices
-share the same location, or more generally if its three vertices are collinear.
-The function `CGAL::Polygon_mesh_processing::remove_degenerate_faces()`
-removes those faces and fixes the connectivity of the newly cleaned up mesh.
-It is also possible to remove isolated vertices from any polygon mesh, using the function
-`CGAL::Polygon_mesh_processing::remove_isolated_vertices()`.
-
-\subsubsection RemoveDegenerateExample Example
-
-In the following example, the degenerate faces of a triangle mesh
-are removed, the connectivity is fixed, and the number of removed faces
-is output.
-
-\cgalExample{Polygon_mesh_processing/remove_degeneracies_example.cpp}
-\endif
-
\subsection PMPManifoldness Polygon Mesh Manifoldness
-This package offers repairing methods to clean ill-formed polygon soups,
-see Section \ref PMPRepairing.
-
Non-manifold vertices can be detected using the function `CGAL::Polygon_mesh_processing::is_non_manifold_vertex()`.
The function `CGAL::Polygon_mesh_processing::duplicate_non_manifold_vertices()` can be used
to attempt to create a combinatorially manifold surface mesh by splitting any non-manifold vertex
@@ -835,6 +812,9 @@ more than once (although, with different vertices) before reaching the initial b
`CGAL::Polygon_mesh_processing::merge_duplicated_vertices_in_boundary_cycle()`, which merge
vertices at identical positions, can be used to repair this configuration.
+\section PMPGeometricRepair Geometric Repair
+****************************************
+
\subsection PMPRemoveCapsNeedles Removal of Almost Degenerate Triangle Faces
Triangle faces of a mesh made up of almost collinear points are badly shaped elements that
might not be desirable to have in a mesh. The function
@@ -844,6 +824,27 @@ As some badly shaped elements are inevitable (the triangulation of a long cylind
with only vertices on the top and bottom circles for example), extra parameters can be passed
to prevent the removal of such elements (`collapse_length_threshold` and `flip_triangle_height_threshold`).
+\if READY_TO_PUBLISH
+
+\subsection DegenerateFaces Removing Degenerate Faces
+
+Some degenerate faces may be part of a given triangle mesh.
+A face is considered \e degenerate if two of its vertices
+share the same location, or more generally if its three vertices are collinear.
+The function `CGAL::Polygon_mesh_processing::remove_degenerate_faces()`
+removes those faces and fixes the connectivity of the newly cleaned up mesh.
+It is also possible to remove isolated vertices from any polygon mesh, using the function
+`CGAL::Polygon_mesh_processing::remove_isolated_vertices()`.
+
+\subsubsection RemoveDegenerateExample Example
+
+In the following example, the degenerate faces of a triangle mesh
+are removed, the connectivity is fixed, and the number of removed faces
+is output.
+
+\cgalExample{Polygon_mesh_processing/remove_degeneracies_example.cpp}
+\endif
+
****************************************
\section PMPNormalComp Computing Normals
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
index 837d16467e8..beb20bef0a2 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Isotropic_remeshing/remesh_impl.h
@@ -322,7 +322,7 @@ namespace internal {
{
halfedge_status_pmap_ = get(CGAL::dynamic_halfedge_property_t(),
pmesh);
- CGAL_assertion_code(input_mesh_is_valid_ = CGAL::is_valid_polygon_mesh(pmesh));
+ CGAL_warning_code(input_mesh_is_valid_ = CGAL::is_valid_polygon_mesh(pmesh));
CGAL_warning_msg(input_mesh_is_valid_,
"The input mesh is not a valid polygon mesh. "
"It could lead PMP::isotropic_remeshing() to fail.");
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h
index a2087327e98..20e95e59610 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/helper.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_INTERNAL_SNAPPING_HELPER_H
#define CGAL_POLYGON_MESH_PROCESSING_INTERNAL_SNAPPING_HELPER_H
-#include
+#include
#include
#include
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h
index 60422c492f0..1388ebaeb22 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap.h
@@ -14,7 +14,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_SNAPPING_SNAP_H
#define CGAL_POLYGON_MESH_PROCESSING_SNAPPING_SNAP_H
-#include
+#include
#ifdef CGAL_PMP_SNAP_DEBUG_PP
#ifndef CGAL_PMP_SNAP_DEBUG
@@ -1009,7 +1009,7 @@ std::size_t snap_non_conformal_one_way(const HalfedgeRange& halfedge_range_S,
}
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_geometric_repair_grp
//
// Attempts to snap the vertices in `halfedge_range_A` onto edges of `halfedge_range_B`, and reciprocally.
// A vertex from the first range is only snapped to an edge of the second range if the distance to
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h
index a31a91b2c96..10043e346a8 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/Snapping/snap_vertices.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_SNAPPING_SNAP_VERTICES_H
#define CGAL_POLYGON_MESH_PROCESSING_SNAPPING_SNAP_VERTICES_H
-#include
+#include
#ifdef CGAL_PMP_SNAP_DEBUG_PP
#ifndef CGAL_PMP_SNAP_DEBUG
@@ -1140,7 +1140,7 @@ std::size_t snap_vertices_two_way(const HalfedgeRange_A& halfedge_range_A,
namespace experimental {
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_geometric_repair_grp
//
// Attempts to snap the vertices in `halfedge_range_A` and `halfedge_range_B`.
// A vertex from the first range and a vertex from the second range are only snapped
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h
index af22ed1df25..2e3b8a63d7a 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/repair_extra.h
@@ -14,7 +14,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_INTERNAL_REPAIR_EXTRA_H
#define CGAL_POLYGON_MESH_PROCESSING_INTERNAL_REPAIR_EXTRA_H
-#include
+#include
#include
#include
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h
index 016dedea22d..74fc83d0ec8 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/internal/simplify_polyline.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_SIMPLIFY_POLYLINE_H
#define CGAL_POLYGON_MESH_PROCESSING_SIMPLIFY_POLYLINE_H
-#include
+#include
#include
#include
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/manifoldness.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/manifoldness.h
index 6cf92c50cc7..de45ca3150e 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/manifoldness.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/manifoldness.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_MANIFOLDNESS_H
#define CGAL_POLYGON_MESH_PROCESSING_MANIFOLDNESS_H
-#include
+#include
#include
#include
@@ -33,7 +33,7 @@
namespace CGAL {
namespace Polygon_mesh_processing {
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// \brief returns whether a vertex of a polygon mesh is non-manifold.
///
@@ -284,7 +284,7 @@ std::size_t make_umbrella_manifold(typename boost::graph_traits::ha
} // end namespace internal
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// \brief collects the non-manifold vertices (if any) present in the mesh.
///
@@ -394,7 +394,7 @@ OutputIterator non_manifold_vertices(const PolygonMesh& pm,
return out;
}
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// duplicates all the non-manifold vertices of the input mesh.
///
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h
index 2bcd6f06ad0..27bda80bc9c 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/merge_border_vertices.h
@@ -14,7 +14,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_MERGE_BORDER_VERTICES_H
#define CGAL_POLYGON_MESH_PROCESSING_MERGE_BORDER_VERTICES_H
-#include
+#include
#include
#include
@@ -204,7 +204,7 @@ void detect_identical_mergeable_vertices(
}
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_combinatorial_repair_grp
//
// merges target vertices of a list of halfedges.
// Halfedges must be sorted in the list.
@@ -259,7 +259,7 @@ void merge_vertices_in_range(const HalfedgeRange& sorted_hedges,
} // end of internal
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// merges identical vertices around a cycle of boundary edges.
///
@@ -319,7 +319,7 @@ void merge_duplicated_vertices_in_boundary_cycle(typename boost::graph_traits
+#include
#include
#include
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h
index 10ab1ec8854..2ea05b9a740 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/orientation.h
@@ -1646,6 +1646,12 @@ void merge_reversible_connected_components(PolygonMesh& pm,
* \cgalParamExtra{If this parameter is omitted, an internal property map for `CGAL::vertex_point_t`
* should be available for the vertices of `pm`.}
* \cgalParamNEnd
+ * \cgalParamNBegin{face_partition_id_map}
+ * \cgalParamDescription{a property map filled by this function and that will contain for each face
+ * the id of its surface component after reversal and stitching in the range `[0, n - 1]`,
+ * with `n` the number of such components.}
+ * \cgalParamType{a class model of `WritablePropertyMap` with `boost::graph_traits::%face_descriptor` as key type and `std::size_t` as value type}
+ * \cgalParamNEnd
* \cgalNamedParamsEnd
*
* \sa reverse_face_orientations()
@@ -1667,6 +1673,15 @@ bool compatible_orientations(const PolygonMesh& pm,
Vpm vpm = parameters::choose_parameter(parameters::get_parameter(np, internal_np::vertex_point),
get_const_property_map(vertex_point, pm));
+ typedef typename internal_np::Lookup_named_param_def <
+ internal_np::face_partition_id_t,
+ NamedParameters,
+ Constant_property_map // default
+ >::type Partition_map;
+
+ // cc id map if compatible edges were stitched
+ Partition_map partition_map = parameters::choose_parameter(parameters::get_parameter(np, internal_np::face_partition_id));
+
typedef std::size_t F_cc_id; // Face cc-id
typedef std::size_t E_id; // Edge id
@@ -1753,6 +1768,8 @@ bool compatible_orientations(const PolygonMesh& pm,
sorted_ids.insert(cc_id);
// consider largest CC first, default and set its bit to 0
+ std::size_t partition_id = 0;
+ std::vector partition_ids(nb_cc);
for(F_cc_id cc_id : sorted_ids)
{
if (cc_handled[cc_id]) continue;
@@ -1821,6 +1838,8 @@ bool compatible_orientations(const PolygonMesh& pm,
continue;
}
cc_handled[id]=true;
+ CGAL_assertion(cc_bits[id]==false);
+ partition_ids[id] = partition_id;
}
// set bit of incompatible patches
@@ -1839,13 +1858,19 @@ bool compatible_orientations(const PolygonMesh& pm,
continue;
}
cc_handled[id]=true;
+ partition_ids[id] = partition_id;
cc_bits[id]=true;
}
+ ++partition_id;
}
// set the bit per face
for (face_descriptor f : faces(pm))
- put(fbm, f, cc_bits[get(f_cc_ids,f)]);
+ {
+ std::size_t f_cc_id = get(f_cc_ids,f);
+ put(fbm, f, cc_bits[f_cc_id]);
+ put(partition_map, f, partition_ids[f_cc_id]);
+ }
return true;
}
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h
index 5766b85593f..a0e4f6c178d 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_POLYGON_MESH_TO_POLYGON_SOUP_H
#define CGAL_POLYGON_MESH_PROCESSING_POLYGON_MESH_TO_POLYGON_SOUP_H
-#include
+#include
#include
#include
@@ -55,7 +55,7 @@ struct PM_to_PS_point_converter >
} // namespace internal
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// adds the vertices and faces of a mesh into a (possibly non-empty) polygon soup.
///
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h
index bc8bfed4033..7f4878648ae 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_POLYGON_SOUP_TO_POLYGON_MESH_H
#define CGAL_POLYGON_MESH_PROCESSING_POLYGON_SOUP_TO_POLYGON_MESH_H
-#include
+#include
#include
@@ -153,7 +153,7 @@ private:
} // namespace internal
/**
-* \ingroup PMP_repairing_grp
+* \ingroup PMP_combinatorial_repair_grp
*
* \brief returns `true` if the soup of polygons defines a valid polygon
* mesh that can be handled by
@@ -231,7 +231,7 @@ bool is_polygon_soup_a_polygon_mesh(const PolygonRange& polygons)
}
/**
-* \ingroup PMP_repairing_grp
+* \ingroup PMP_combinatorial_repair_grp
*
* builds a polygon mesh from a soup of polygons.
*
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h
index 9e9827f08fe..73828b33115 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair.h
@@ -14,7 +14,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_REPAIR_H
#define CGAL_POLYGON_MESH_PROCESSING_REPAIR_H
-#include
+#include
#include
#include
@@ -29,7 +29,7 @@
namespace CGAL {
namespace Polygon_mesh_processing {
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_geometric_repair_grp
///
/// \brief removes the isolated vertices from any polygon mesh.
///
@@ -60,7 +60,7 @@ std::size_t remove_isolated_vertices(PolygonMesh& pmesh)
return nb_removed;
}
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_geometric_repair_grp
///
/// \brief removes connected components whose area or volume is under a certain threshold value.
///
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h
index 90fd92adca4..22be1f47e8e 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_degeneracies.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_REPAIR_DEGENERACIES_H
#define CGAL_POLYGON_MESH_PROCESSING_REPAIR_DEGENERACIES_H
-#include
+#include
#include
#include
@@ -535,7 +535,7 @@ struct Filter_wrapper_for_cap_needle_removalneedle
@@ -1034,7 +1034,7 @@ bool remove_almost_degenerate_faces(const FaceRange& face_range,
return false;
}
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_geometric_repair_grp
/// removes all almost degenerate faces from a triangulated surface mesh.
/// Equivalent to `remove_almost_degenerate_faces(faces(tmesh), tmesh, np)`
template
@@ -1326,7 +1326,7 @@ remove_a_border_edge(typename boost::graph_traits::edge_descriptor
return remove_a_border_edge(ed, tm, input_range, edge_set, face_set);
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_geometric_repair_grp
//
// removes the degenerate edges from a triangulated surface mesh.
// An edge is considered degenerate if its two extremities share the same location.
@@ -1880,7 +1880,7 @@ bool remove_degenerate_edges(TriangleMesh& tmesh,
return remove_degenerate_edges(edges(tmesh), tmesh, face_set, np);
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_geometric_repair_grp
//
// removes the degenerate faces from a triangulated surface mesh.
// A face is considered degenerate if two of its vertices share the same location,
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h
index 23a6ac92904..cb24ce8ae7c 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_polygon_soup.h
@@ -12,7 +12,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_REPAIR_POLYGON_SOUP
#define CGAL_POLYGON_MESH_PROCESSING_REPAIR_POLYGON_SOUP
-#include
+#include
#include
#include
@@ -140,7 +140,7 @@ bool simplify_polygon(PointRange& points,
return (removed_points_n != 0);
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_combinatorial_repair_grp
//
// For each polygon of the soup, removes consecutive identical (in a geometric sense) points.
//
@@ -194,7 +194,7 @@ std::size_t simplify_polygons_in_polygon_soup(PointRange& points,
return simplified_polygons_n;
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_combinatorial_repair_grp
//
// splits "pinched" polygons, that is polygons for which a point appears more than once,
// into multiple non-pinched polygons.
@@ -291,7 +291,7 @@ std::size_t split_pinched_polygons_in_polygon_soup(PointRange& points,
return new_polygons_n;
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_combinatorial_repair_grp
//
// removes polygons with fewer than 2 points from the soup.
//
@@ -334,7 +334,7 @@ std::size_t remove_invalid_polygons_in_polygon_soup(PointRange& /*points*/,
return removed_polygons_n;
}
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_combinatorial_repair_grp
//
// Removes invalid array-based polygons, i.e. polygons which have two equal consecutive points.
//
@@ -397,7 +397,7 @@ std::size_t remove_invalid_polygons_in_array_polygon_soup(PointRange& points,
} // end namespace internal
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// removes the isolated points from a polygon soup.
/// A point is considered isolated if it does not appear in any polygon of the soup.
@@ -500,7 +500,7 @@ std::size_t remove_isolated_points_in_polygon_soup(PointRange& points,
return removed_points_n;
}
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// \brief merges the duplicate points in a polygon soup.
///
@@ -817,7 +817,7 @@ struct Duplicate_collector
void dump(CGAL::Emptyset_iterator) { }
};
-// \ingroup PMP_repairing_grp
+// \ingroup PMP_combinatorial_repair_grp
//
// collects duplicate polygons in a polygon soup, that is polygons that share the same vertices in the same
// order.
@@ -897,7 +897,7 @@ DuplicateOutputIterator collect_duplicate_polygons(const PointRange& points,
} // end namespace internal
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// merges the duplicate polygons in a polygon soup. Two polygons are duplicate if they share the same
/// vertices in the same order. Note that the first vertex of the polygon does not matter, that is
@@ -1104,7 +1104,7 @@ struct Polygon_soup_fixer >
} // namespace internal
-/// \ingroup PMP_repairing_grp
+/// \ingroup PMP_combinatorial_repair_grp
///
/// \brief cleans a given polygon soup through various repairing operations.
///
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h
index f7c51e7129b..0406329d233 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/repair_self_intersections.h
@@ -13,7 +13,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_REPAIR_SELF_INTERSECTIONS_H
#define CGAL_POLYGON_MESH_PROCESSING_REPAIR_SELF_INTERSECTIONS_H
-#include
+#include
#include
#include
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/shape_predicates.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/shape_predicates.h
index 6179f281445..7f223ba578f 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/shape_predicates.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/shape_predicates.h
@@ -14,7 +14,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_SHAPE_PREDICATES_H
#define CGAL_POLYGON_MESH_PROCESSING_SHAPE_PREDICATES_H
-#include
+#include
#include
#include
diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/stitch_borders.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/stitch_borders.h
index 8f868eec20d..e30f95fd289 100644
--- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/stitch_borders.h
+++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/stitch_borders.h
@@ -14,7 +14,7 @@
#ifndef CGAL_POLYGON_MESH_PROCESSING_STITCH_BORDERS_H
#define CGAL_POLYGON_MESH_PROCESSING_STITCH_BORDERS_H
-#include
+#include
#include
#include
@@ -1119,7 +1119,7 @@ std::size_t stitch_boundary_cycle(const typename boost::graph_traitsisGray());
+ const bool input_is_gray_img = (image_item != nullptr && image_item->isGray());
+
set_defaults();
double diag = CGAL::sqrt((bbox.xmax()-bbox.xmin())*(bbox.xmax()-bbox.xmin()) + (bbox.ymax()-bbox.ymin())*(bbox.ymax()-bbox.ymin()) + (bbox.zmax()-bbox.zmin())*(bbox.zmax()-bbox.zmin()));
ui.facetSizing->setRange(diag * 10e-6, // min
@@ -540,11 +543,13 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type,
ui.protect->setEnabled(features_protection_available);
ui.protect->setChecked(features_protection_available);
ui.protectEdges->setEnabled(features_protection_available);
+ if(input_is_gray_img)
+ ui.sharpFeaturesGroup->setEnabled(false);
ui.facegraphCheckBox->setVisible(mesh_type == Mesh_type::SURFACE_ONLY);
- ui.initializationGroup->setVisible(image_item != nullptr &&
- !image_item->isGray());
- ui.grayImgGroup->setVisible(image_item != nullptr && image_item->isGray());
+ ui.initializationGroup->setVisible(input_is_labeled_img);
+ ui.grayImgGroup->setVisible(input_is_gray_img);
+
if (items->which() == POLYHEDRAL_MESH_ITEMS)
ui.volumeGroup->setVisible(mesh_type == Mesh_type::VOLUME &&
nullptr != bounding_sm_item);
@@ -588,7 +593,6 @@ void Mesh_3_plugin::mesh_3(const Mesh_type mesh_type,
connect(ui.useWeights_checkbox, SIGNAL(toggled(bool)),
ui.weightsSigma_label, SLOT(setEnabled(bool)));
ui.weightsSigma->setValue(1.);
- bool input_is_labeled_img = (image_item != nullptr && !image_item->isGray());
ui.labeledImgGroup->setVisible(input_is_labeled_img);
#ifndef CGAL_USE_ITK
diff --git a/Polyhedron/demo/Polyhedron/Plugins/Operations_on_polyhedra/PartitionDialog.ui b/Polyhedron/demo/Polyhedron/Plugins/Operations_on_polyhedra/PartitionDialog.ui
index 91f3b989f8a..9b8b669d72b 100644
--- a/Polyhedron/demo/Polyhedron/Plugins/Operations_on_polyhedra/PartitionDialog.ui
+++ b/Polyhedron/demo/Polyhedron/Plugins/Operations_on_polyhedra/PartitionDialog.ui
@@ -62,7 +62,7 @@
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "https://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
diff --git a/Polyhedron/demo/Polyhedron/Plugins/PCA/Basic_generator_widget.ui b/Polyhedron/demo/Polyhedron/Plugins/PCA/Basic_generator_widget.ui
index 5592bbbde5a..f2839e20f06 100644
--- a/Polyhedron/demo/Polyhedron/Plugins/PCA/Basic_generator_widget.ui
+++ b/Polyhedron/demo/Polyhedron/Plugins/PCA/Basic_generator_widget.ui
@@ -1046,7 +1046,7 @@ QGroupBox::title {
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "https://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
@@ -1094,7 +1094,7 @@ p, li { white-space: pre-wrap; }
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "https://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Sans Serif'; font-size:9pt; font-weight:400; font-style:normal;">
diff --git a/Polyhedron/demo/Polyhedron/Plugins/PMP/Point_inside_polyhedron_plugin.cpp b/Polyhedron/demo/Polyhedron/Plugins/PMP/Point_inside_polyhedron_plugin.cpp
index f32c322c16d..f3be698c5ad 100644
--- a/Polyhedron/demo/Polyhedron/Plugins/PMP/Point_inside_polyhedron_plugin.cpp
+++ b/Polyhedron/demo/Polyhedron/Plugins/PMP/Point_inside_polyhedron_plugin.cpp
@@ -192,7 +192,7 @@ public Q_SLOTS:
boost::optional bbox
= boost::make_optional(false, CGAL::Three::Scene_interface::Bbox());
// Workaround a bug in g++-4.8.3:
- // http://stackoverflow.com/a/21755207/1728537
+ // https://stackoverflow.com/a/21755207/1728537
// Using boost::make_optional to copy-initialize 'bbox' hides the
// warning about '*bbox' not being initialized.
// -- Laurent Rineau, 2014/10/30
diff --git a/Polyhedron/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp b/Polyhedron/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp
index 92568b3e193..4c2dcc1702a 100644
--- a/Polyhedron/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp
+++ b/Polyhedron/demo/Polyhedron/Plugins/PMP/Selection_plugin.cpp
@@ -1067,7 +1067,7 @@ public Q_SLOTS:
selection_item->set_is_insert(is_insert);
selection_item->set_k_ring(k_ring);
selection_item->setRenderingMode(Flat);
- if(selection_item->name() == "unamed") {
+ if(selection_item->name() == "unnamed") {
selection_item->setName(tr("%1 (selection)").arg(poly_item->name()));
}
diff --git a/Polyhedron/demo/Polyhedron/Plugins/Point_set/Register_point_sets_plugin.ui b/Polyhedron/demo/Polyhedron/Plugins/Point_set/Register_point_sets_plugin.ui
index 9cc5d979842..e527115cd2b 100644
--- a/Polyhedron/demo/Polyhedron/Plugins/Point_set/Register_point_sets_plugin.ui
+++ b/Polyhedron/demo/Polyhedron/Plugins/Point_set/Register_point_sets_plugin.ui
@@ -187,7 +187,7 @@
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "https://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'Noto Sans'; font-size:9pt; font-weight:400; font-style:normal;">
diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/Shortest_path_plugin.cpp b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/Shortest_path_plugin.cpp
index 03259d7e6eb..d6be0d38c6a 100644
--- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/Shortest_path_plugin.cpp
+++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/Shortest_path_plugin.cpp
@@ -222,7 +222,7 @@ void Polyhedron_demo_shortest_path_plugin::new_item(int itemIndex)
item->setRenderingMode(Flat);
- if(item->name() == "unamed")
+ if(item->name() == "unnamed")
{
item->setName(tr("%1 (shortest path computation item)").arg(item->polyhedron_item()->name()));
}
diff --git a/Polyhedron/demo/Polyhedron/Polyhedron_demo.cpp b/Polyhedron/demo/Polyhedron/Polyhedron_demo.cpp
index 4a1ec1d8a6d..7b6e5225dfe 100644
--- a/Polyhedron/demo/Polyhedron/Polyhedron_demo.cpp
+++ b/Polyhedron/demo/Polyhedron/Polyhedron_demo.cpp
@@ -104,7 +104,7 @@ Polyhedron_demo::Polyhedron_demo(int& argc, char **argv,
// On Apple, the first time the application is launched, the menus are unclicable, and
// the only way you can fix it is to unfocus and re-focus the application.
// This is a hack that makes the application lose the focus after it is started, to force the user
- // to re-focus it. (source : http://www.alecjacobson.com/weblog/?p=3910)
+ // to re-focus it. (source: https://www.alecjacobson.com/weblog/?p=3910)
#ifdef __APPLE__
system("osascript -e 'tell application \"System Events\" "
"to keystroke tab using {command down, shift down}'");
diff --git a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h
index 5b803274716..8164cdacf8f 100644
--- a/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h
+++ b/Polyhedron/demo/Polyhedron/Scene_polyhedron_selection_item.h
@@ -288,7 +288,7 @@ public:
void compute_bbox() const
{
// Workaround a bug in g++-4.8.3:
- // http://stackoverflow.com/a/21755207/1728537
+ // https://stackoverflow.com/a/21755207/1728537
// Using boost::make_optional to copy-initialize 'item_bbox' hides the
// warning about '*item_bbox' not being initialized.
// -- Laurent Rineau, 2014/10/30
diff --git a/Polyhedron/demo/Polyhedron/Show_point_dialog.ui b/Polyhedron/demo/Polyhedron/Show_point_dialog.ui
index bbe92b716a9..1816683d2fe 100644
--- a/Polyhedron/demo/Polyhedron/Show_point_dialog.ui
+++ b/Polyhedron/demo/Polyhedron/Show_point_dialog.ui
@@ -43,7 +43,7 @@
- <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "http://www.w3.org/TR/REC-html40/strict.dtd">
+ <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0//EN" "https://www.w3.org/TR/REC-html40/strict.dtd">
<html><head><meta name="qrichtext" content="1" /><style type="text/css">
p, li { white-space: pre-wrap; }
</style></head><body style=" font-family:'DejaVu LGC Sans'; font-size:11pt; font-weight:400; font-style:normal;">
diff --git a/Polyhedron/demo/Polyhedron/resources/about.html b/Polyhedron/demo/Polyhedron/resources/about.html
index 3089144f7a1..b881e30bab7 100644
--- a/Polyhedron/demo/Polyhedron/resources/about.html
+++ b/Polyhedron/demo/Polyhedron/resources/about.html
@@ -1,9 +1,9 @@
This application illustrates the AABB tree component
of CGAL, applied to polyhedron
facets and edges.
See also the following chapters of the manual:
diff --git a/Profiling_tools/include/CGAL/Memory_sizer.h b/Profiling_tools/include/CGAL/Memory_sizer.h
index 4bf90350f2e..6d0551ef7f9 100644
--- a/Profiling_tools/include/CGAL/Memory_sizer.h
+++ b/Profiling_tools/include/CGAL/Memory_sizer.h
@@ -125,7 +125,7 @@ private:
#else // __APPLE__ is defined
- // http://miknight.blogspot.com/2005/11/resident-set-size-in-mac-os-x.html
+ // https://miknight.blogspot.com/2005/11/resident-set-size-in-mac-os-x.html
// This is highly experimental. But still better than returning 0.
// It appears that we might need certain 'rights' to get access to the kernel
// task... It works if you have admin rights apparently
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/additional/QBORE3D.mps b/QP_solver/test/QP_solver/test_solver_data/masters/additional/QBORE3D.mps
index be23f7d172f..966b92282a6 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/additional/QBORE3D.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/additional/QBORE3D.mps
@@ -1,6 +1,6 @@
* Number-type: floating-point
-* Description: QBORE3D http://www.doc.ic.ac.uk/~im/
-* Generated-by: http://www.doc.ic.ac.uk/%7Eim/QPDATA2.ZIP
+* Description: QBORE3D https://www.doc.ic.ac.uk/~im/
+* Generated-by: https://www.doc.ic.ac.uk/%7Eim/QPDATA2.ZIP
* Derivatives: none
NAME BORE3D
ROWS
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/additional/QCAPRI.mps b/QP_solver/test/QP_solver/test_solver_data/masters/additional/QCAPRI.mps
index bdf64319be2..cecd01701f7 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/additional/QCAPRI.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/additional/QCAPRI.mps
@@ -1,6 +1,6 @@
* Number-type: floating-point
-* Description: QCAPRI http://www.doc.ic.ac.uk/~im/
-* Generated-by: http://www.doc.ic.ac.uk/%7Eim/QPDATA2.ZIP
+* Description: QCAPRI https://www.doc.ic.ac.uk/~im/
+* Generated-by: https://www.doc.ic.ac.uk/%7Eim/QPDATA2.ZIP
* Derivatives: none
NAME CAPRI
ROWS
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/additional/QRECIPE.mps b/QP_solver/test/QP_solver/test_solver_data/masters/additional/QRECIPE.mps
index b38a5944b85..81306a3cfc8 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/additional/QRECIPE.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/additional/QRECIPE.mps
@@ -1,6 +1,6 @@
* Number-type: floating-point
-* Description: QRECIPE http://www.doc.ic.ac.uk/~im/
-* Generated-by: http://www.doc.ic.ac.uk/%7Eim/QPDATA2.ZIP
+* Description: QRECIPE https://www.doc.ic.ac.uk/~im/
+* Generated-by: https://www.doc.ic.ac.uk/%7Eim/QPDATA2.ZIP
* Derivatives: none
NAME RECIPE
ROWS
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit1d.mps b/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit1d.mps
index 65e0935866b..dee88708b9a 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit1d.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit1d.mps
@@ -1,6 +1,6 @@
* Number-type: floating-point
-* Description: http://www.netlib.org/lp/data/
-* Generated-by:
+* Description: https://www.netlib.org/lp/data/
+* Generated-by:
* Derivatives: none
NAME FIT1D
ROWS
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit2d.mps b/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit2d.mps
index aeacd42c629..c63185ec865 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit2d.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/additional/fit2d.mps
@@ -1,6 +1,6 @@
* Number-type: floating-point
-* Description: http://www.netlib.org/lp/data/
-* Generated-by:
+* Description: https://www.netlib.org/lp/data/
+* Generated-by:
* Derivatives: none
NAME FIT2D
ROWS
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/additional/scsd1.mps b/QP_solver/test/QP_solver/test_solver_data/masters/additional/scsd1.mps
index 5766d6427fe..83cc8430687 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/additional/scsd1.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/additional/scsd1.mps
@@ -1,6 +1,6 @@
* Number-type: floating-point
-* Description: http://www.netlib.org/lp/data/
-* Generated-by:
+* Description: https://www.netlib.org/lp/data/
+* Generated-by:
* Derivatives: none
NAME SCSD1
ROWS
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/HS118.mps b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/HS118.mps
index 875d0b3c931..4f6af9720da 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/HS118.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/HS118.mps
@@ -1,5 +1,5 @@
-* Description: from the benchmarks at http://www.doc.ic.ac.uk/~im/
-NAME HS118
+* Description: from the benchmarks at https://www.doc.ic.ac.uk/~im/
+NAME HS118
ROWS
N OBJ.FUNC
G R------1
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/PRIMALC1.mps b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/PRIMALC1.mps
index f0846c3402f..24aca9bb682 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/PRIMALC1.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/PRIMALC1.mps
@@ -1,6 +1,6 @@
-* Description: from the benchmarks at http://www.doc.ic.ac.uk/~im/
+* Description: from the benchmarks at https://www.doc.ic.ac.uk/~im/
* Derivatives: none
-NAME PRIMALC1
+NAME PRIMALC1
ROWS
N OBJ.FUNC
L R------1
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/QPTEST.mps b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/QPTEST.mps
index fb89b43794b..3b8f8bc546c 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/QPTEST.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/QPTEST.mps
@@ -1,4 +1,4 @@
-* Description: from the benchmarks at http://www.doc.ic.ac.uk/~im/
+* Description: from the benchmarks at https://www.doc.ic.ac.uk/~im/
NAME QP example
ROWS
N obj
diff --git a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/ZECEVIC2.mps b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/ZECEVIC2.mps
index 2d2e36a96e6..a42199f6137 100644
--- a/QP_solver/test/QP_solver/test_solver_data/masters/cgal/ZECEVIC2.mps
+++ b/QP_solver/test/QP_solver/test_solver_data/masters/cgal/ZECEVIC2.mps
@@ -1,5 +1,5 @@
-* Description: from the benchmarks at http://www.doc.ic.ac.uk/~im/
-NAME ZECEVIC2
+* Description: from the benchmarks at https://www.doc.ic.ac.uk/~im/
+NAME ZECEVIC2
ROWS
N OBJ.FUNC
L R------1
diff --git a/SMDS_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h b/SMDS_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h
index 3ab95555707..4bbe0d3caf0 100644
--- a/SMDS_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h
+++ b/SMDS_3/include/CGAL/Mesh_complex_3_in_triangulation_3.h
@@ -1461,7 +1461,7 @@ public:
private:
// Sequential: non-atomic
// "dummy" is here to allow the specialization (see below)
- // See http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/285ab1eec49e1cb6
+ // See https://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/285ab1eec49e1cb6
template
struct Number_of_elements
{
diff --git a/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h b/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h
index 98a1af5ceb6..dd409ee8f02 100644
--- a/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h
+++ b/STL_Extension/doc/STL_Extension/CGAL/Compact_container.h
@@ -672,7 +672,7 @@ bool owns(const_iterator pos);
/*!
* returns whether `pos` is in the range `[cc.begin(), cc`.end())` (`cc.end()` excluded).
*/
-bool owns_dereferencable(const_iterator pos);
+bool owns_dereferenceable(const_iterator pos);
/// @}
diff --git a/STL_Extension/doc/STL_Extension/CGAL/Concurrent_compact_container.h b/STL_Extension/doc/STL_Extension/CGAL/Concurrent_compact_container.h
index 334976ab363..306595daf1e 100644
--- a/STL_Extension/doc/STL_Extension/CGAL/Concurrent_compact_container.h
+++ b/STL_Extension/doc/STL_Extension/CGAL/Concurrent_compact_container.h
@@ -294,7 +294,7 @@ complexity. No exception is thrown.
/// returns whether `pos` is in the range `[ccc.begin(), ccc.end()]` (`ccc.end()` included).
bool owns(const_iterator pos);
/// returns whether `pos` is in the range `[ccc.begin(), ccc.end())` (`ccc.end()` excluded).
- bool owns_dereferencable(const_iterator pos);
+ bool owns_dereferenceable(const_iterator pos);
/// @}
diff --git a/STL_Extension/include/CGAL/Compact_container.h b/STL_Extension/include/CGAL/Compact_container.h
index 93a6debd770..b8c1cb0769c 100644
--- a/STL_Extension/include/CGAL/Compact_container.h
+++ b/STL_Extension/include/CGAL/Compact_container.h
@@ -537,11 +537,17 @@ public:
return false;
}
- bool owns_dereferencable(const_iterator cit) const
+ bool owns_dereferenceable(const_iterator cit) const
{
return cit != end() && owns(cit);
}
+
+ CGAL_DEPRECATED bool owns_dereferencable(const_iterator cit) const
+ {
+ return owns_dereferenceable(cit);
+ }
+
/** Reserve method to ensure that the capacity of the Compact_container be
* greater or equal than a given value n.
*/
diff --git a/STL_Extension/include/CGAL/Concurrent_compact_container.h b/STL_Extension/include/CGAL/Concurrent_compact_container.h
index 6bbdeee9176..395f8a483f4 100644
--- a/STL_Extension/include/CGAL/Concurrent_compact_container.h
+++ b/STL_Extension/include/CGAL/Concurrent_compact_container.h
@@ -542,11 +542,16 @@ public:
return false;
}
- bool owns_dereferencable(const_iterator cit) const
+ bool owns_dereferenceable(const_iterator cit) const
{
return cit != end() && owns(cit);
}
+ CGAL_DEPRECATED bool owns_dereferencable(const_iterator cit) const
+ {
+ return owns_dereferenceable(cit);
+ }
+
/** Reserve method to ensure that the capacity of the Concurrent_compact_container be
* greater or equal than a given value n.
*/
diff --git a/STL_Extension/include/CGAL/Handle_for.h b/STL_Extension/include/CGAL/Handle_for.h
index 2a93662e69b..2f05c6be1ce 100644
--- a/STL_Extension/include/CGAL/Handle_for.h
+++ b/STL_Extension/include/CGAL/Handle_for.h
@@ -30,7 +30,7 @@
#if defined(BOOST_MSVC)
# pragma warning(push)
-# pragma warning(disable:4345) // Avoid warning http://msdn.microsoft.com/en-us/library/wewb47ee(VS.80).aspx
+# pragma warning(disable:4345) // Avoid warning https://learn.microsoft.com/en-us/previous-versions/wewb47ee(v=vs.120)
#endif
namespace CGAL {
diff --git a/STL_Extension/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp b/STL_Extension/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp
index c91dea7d62f..a02a831f044 100644
--- a/STL_Extension/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp
+++ b/STL_Extension/include/CGAL/STL_Extension/internal/boost/relaxed_heap.hpp
@@ -3,7 +3,7 @@
// Copyright 2004 The Trustees of Indiana University.
// Use, modification and distribution is subject to the Boost Software
// License, Version 1.0. (See accompanying file LICENSE_1_0.txt or copy at
-// http://www.boost.org/LICENSE_1_0.txt)
+// https://www.boost.org/LICENSE_1_0.txt)
//
// Authors: Douglas Gregor
// Andrew Lumsdaine
diff --git a/STL_Extension/include/CGAL/array.h b/STL_Extension/include/CGAL/array.h
index cfaca0a0550..ff234183f99 100644
--- a/STL_Extension/include/CGAL/array.h
+++ b/STL_Extension/include/CGAL/array.h
@@ -30,7 +30,7 @@ namespace CGAL {
// https://lists.boost.org/Archives/boost/2006/08/109003.php
//
// C++0x has it under discussion here :
-// http://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#851
+// https://www.open-std.org/jtc1/sc22/wg21/docs/lwg-active.html#851
// Hopefully C++0x will fix this properly with initializer_lists.
// So, it's temporary, therefore I do not document it and keep it internal.
diff --git a/STL_Extension/test/STL_Extension/test_Compact_container.cpp b/STL_Extension/test/STL_Extension/test_Compact_container.cpp
index 661ec453cbd..d2d96cdfc4b 100644
--- a/STL_Extension/test/STL_Extension/test_Compact_container.cpp
+++ b/STL_Extension/test/STL_Extension/test_Compact_container.cpp
@@ -242,15 +242,15 @@ void test(const Cont &)
assert(c11.size() == v1.size());
assert(c10 == c11);
- // owns() and owns_dereferencable().
+ // owns() and owns_dereferenceable().
for(typename Cont::const_iterator it = c9.begin(), end = c9.end(); it != end; ++it) {
assert(c9.owns(it));
- assert(c9.owns_dereferencable(it));
+ assert(c9.owns_dereferenceable(it));
assert(! c10.owns(it));
- assert(! c10.owns_dereferencable(it));
+ assert(! c10.owns_dereferenceable(it));
}
assert(c9.owns(c9.end()));
- assert(! c9.owns_dereferencable(c9.end()));
+ assert(! c9.owns_dereferenceable(c9.end()));
c9.erase(c9.begin(), c9.end());
diff --git a/STL_Extension/test/STL_Extension/test_Concurrent_compact_container.cpp b/STL_Extension/test/STL_Extension/test_Concurrent_compact_container.cpp
index 00f2e1da4ec..a42676f8f7f 100644
--- a/STL_Extension/test/STL_Extension/test_Concurrent_compact_container.cpp
+++ b/STL_Extension/test/STL_Extension/test_Concurrent_compact_container.cpp
@@ -322,15 +322,15 @@ void test(const Cont &)
assert(c11.size() == v1.size());
assert(c10 == c11);*/
- // owns() and owns_dereferencable().
+ // owns() and owns_dereferenceable().
for(typename Cont::const_iterator it = c9.begin(), end = c9.end(); it != end; ++it) {
assert(c9.owns(it));
- assert(c9.owns_dereferencable(it));
+ assert(c9.owns_dereferenceable(it));
assert(! c10.owns(it));
- assert(! c10.owns_dereferencable(it));
+ assert(! c10.owns_dereferenceable(it));
}
assert(c9.owns(c9.end()));
- assert(! c9.owns_dereferencable(c9.end()));
+ assert(! c9.owns_dereferenceable(c9.end()));
c9.erase(c9.begin(), c9.end());
diff --git a/Scripts/developer_scripts/test_merge_of_branch b/Scripts/developer_scripts/test_merge_of_branch
index 3d4aa099e76..f0ddcbc36fd 100755
--- a/Scripts/developer_scripts/test_merge_of_branch
+++ b/Scripts/developer_scripts/test_merge_of_branch
@@ -117,6 +117,30 @@ if [ -n "${project_name_demo}" ]; then
exit 1
fi
+# check minimal version is the first instruction in cmake scripts
+echo '.. Checking if all CMakeLists.txt starts with cmake_minimum_required...'
+cmr_tests=$(for i in ^build*/test/*/CMakeLists.txt; do pkg=$(echo $i | awk -F "/" '{print $3}'); res=$(egrep -v "^\s*#" $i | grep -v "^\s*$" | head -n 1 | grep -v cmake_minimum_required); if [ -n "${res}" ]; then echo $pkg; fi; done)
+cmr_examples=$(for i in ^build*/examples/*/CMakeLists.txt; do pkg=$(echo $i | awk -F "/" '{print $3}'); res=$(egrep -v "^s*#" $i | grep -v "^\s*$" | head -n 1 | grep -v cmake_minimum_required); if [ -n "${res}" ]; then echo $pkg; fi; done)
+cmr_demo=$(for i in ^build*/demo/*/CMakeLists.txt; do pkg=$(echo $i | awk -F "/" '{print $3}'); res=$(egrep -v "^s*#" $i | grep -v "^\s*$" | head -n 1 | grep -v cmake_minimum_required); if [ -n "${res}" ]; then echo $pkg; fi; done)
+
+if [ -n "${cmr_tests}" ]; then
+ echo "CMakeLists in test with issues:"
+ echo ${cmr_tests}
+ exit 1
+fi
+
+if [ -n "${cmr_examples}" ]; then
+ echo "CMakeLists in examples with issues:"
+ echo ${cmr_examples}
+ exit 1
+fi
+
+if [ -n "${cmr_demo}" ]; then
+ echo "CMakeLists in demo with issues:"
+ echo ${cmr_demo}
+ exit 1
+fi
+
#check header files without SPDX license identifier
echo '.. Checking SPDX license identifier presence in header files...'
file_without_SPDX_identifiers=$(for pkg in `find */package_info -name 'license.txt' | awk -F "/" '{print $1}'`; do if [ -e ${pkg}/include ]; then find ${pkg}/include -type f \( -name '*.h' -o -name '*.hpp' \) | xargs -r grep -L "SPDX-License-Identifier"; fi; done)
diff --git a/Shape_regularization/examples/Shape_regularization/CMakeLists.txt b/Shape_regularization/examples/Shape_regularization/CMakeLists.txt
index adfb948e463..951cf0d3a9f 100644
--- a/Shape_regularization/examples/Shape_regularization/CMakeLists.txt
+++ b/Shape_regularization/examples/Shape_regularization/CMakeLists.txt
@@ -1,10 +1,10 @@
# Created by the script cgal_create_CMakeLists.
# This is the CMake script for compiling a set of CGAL applications.
-project(Shape_regularization_Examples)
-
cmake_minimum_required(VERSION 3.1...3.23)
+project(Shape_regularization_Examples)
+
find_package(CGAL REQUIRED COMPONENTS Core)
# Find OSQP library and headers.
diff --git a/Shape_regularization/test/Shape_regularization/CMakeLists.txt b/Shape_regularization/test/Shape_regularization/CMakeLists.txt
index 5bb7cc98ef3..deb8fea32be 100644
--- a/Shape_regularization/test/Shape_regularization/CMakeLists.txt
+++ b/Shape_regularization/test/Shape_regularization/CMakeLists.txt
@@ -1,10 +1,10 @@
# Created by the script cgal_create_CMakeLists.
# This is the CMake script for compiling a set of CGAL applications.
-project(Shape_regularization_Tests)
-
cmake_minimum_required(VERSION 3.1...3.23)
+project(Shape_regularization_Tests)
+
find_package(CGAL REQUIRED COMPONENTS Core)
# Find OSQP library and headers.
diff --git a/Solver_interface/include/CGAL/Eigen_diagonalize_traits.h b/Solver_interface/include/CGAL/Eigen_diagonalize_traits.h
index e0321f57395..2138c377e42 100644
--- a/Solver_interface/include/CGAL/Eigen_diagonalize_traits.h
+++ b/Solver_interface/include/CGAL/Eigen_diagonalize_traits.h
@@ -53,7 +53,7 @@ struct Restricted_FT { typedef float type; };
///
/// \cgalModels `DiagonalizeTraits`
///
-/// \sa http://eigen.tuxfamily.org/index.php?title=Main_Page
+/// \sa https://eigen.tuxfamily.org/index.php?title=Main_Page
template
class Eigen_diagonalize_traits
{
diff --git a/Solver_interface/include/CGAL/Eigen_matrix.h b/Solver_interface/include/CGAL/Eigen_matrix.h
index 4a34a022d0d..4f28c3f7c6f 100644
--- a/Solver_interface/include/CGAL/Eigen_matrix.h
+++ b/Solver_interface/include/CGAL/Eigen_matrix.h
@@ -23,7 +23,7 @@ namespace CGAL {
\ingroup PkgSolverInterfaceLS
The class `Eigen_matrix` is a wrapper around `Eigen` matrix type
-`Eigen::Matrix`.
+`Eigen::Matrix`.
\cgalModels `SvdTraits::Matrix`
diff --git a/Solver_interface/include/CGAL/Eigen_solver_traits.h b/Solver_interface/include/CGAL/Eigen_solver_traits.h
index 9fe3457e84d..93820b7b827 100644
--- a/Solver_interface/include/CGAL/Eigen_solver_traits.h
+++ b/Solver_interface/include/CGAL/Eigen_solver_traits.h
@@ -75,7 +75,7 @@ The class `Eigen_solver_traits` provides an interface to the sparse solvers of \
\sa `CGAL::Eigen_sparse_matrix`
\sa `CGAL::Eigen_sparse_symmetric_matrix`
\sa `CGAL::Eigen_vector`
-\sa http://eigen.tuxfamily.org/index.php?title=Main_Page
+\sa https://eigen.tuxfamily.org/index.php?title=Main_Page
\cgalHeading{Instantiation Example}
diff --git a/Solver_interface/include/CGAL/Eigen_sparse_matrix.h b/Solver_interface/include/CGAL/Eigen_sparse_matrix.h
index ff83d2a65fd..20e8962bb15 100644
--- a/Solver_interface/include/CGAL/Eigen_sparse_matrix.h
+++ b/Solver_interface/include/CGAL/Eigen_sparse_matrix.h
@@ -21,7 +21,7 @@ namespace CGAL {
\ingroup PkgSolverInterfaceLS
The class `Eigen_sparse_matrix` is a wrapper around `Eigen` matrix type
-`Eigen::SparseMatrix`
+`Eigen::SparseMatrix`
that represents general matrices, be they symmetric or not.
\cgalModels `SparseLinearAlgebraTraits_d::Matrix`
@@ -301,7 +301,7 @@ private:
\ingroup PkgSolverInterfaceRefLS
The class `Eigen_sparse_symmetric_matrix` is a wrapper around `Eigen` matrix type
-`Eigen::SparseMatrix`
+`Eigen::SparseMatrix`
Since the matrix is symmetric, only the lower triangle part is stored.
diff --git a/Solver_interface/include/CGAL/Eigen_vector.h b/Solver_interface/include/CGAL/Eigen_vector.h
index d080777a2f8..b50ac037eff 100644
--- a/Solver_interface/include/CGAL/Eigen_vector.h
+++ b/Solver_interface/include/CGAL/Eigen_vector.h
@@ -20,7 +20,7 @@ namespace CGAL {
\ingroup PkgSolverInterfaceLS
The class `Eigen_vector` is a wrapper around `Eigen`
-vector type,
+vector type,
which is a simple array of numbers.
\cgalModels `SvdTraits::Vector`
diff --git a/Spatial_searching/benchmark/Spatial_searching/include/nanoflann.hpp b/Spatial_searching/benchmark/Spatial_searching/include/nanoflann.hpp
index 766b41c77fc..a999a5235ec 100644
--- a/Spatial_searching/benchmark/Spatial_searching/include/nanoflann.hpp
+++ b/Spatial_searching/benchmark/Spatial_searching/include/nanoflann.hpp
@@ -393,7 +393,7 @@ namespace nanoflann
/** @addtogroup param_grp Parameter structs
* @{ */
- /** Parameters (see http://code.google.com/p/nanoflann/ for help choosing the parameters)
+ /** Parameters (see https://github.com/jlblancoc/nanoflann for help choosing the parameters)
*/
struct KDTreeSingleIndexAdaptorParams
{
@@ -580,10 +580,10 @@ namespace nanoflann
* This code is an adapted version from Boost, modifed for its integration
* within MRPT (JLBC, Dec/2009) (Renamed array -> CArray to avoid possible potential conflicts).
* See
- * http://www.josuttis.com/cppcode
+ * https://www.josuttis.com/cppcode/
* for details and the latest version.
* See
- * http://www.boost.org/libs/array for Documentation.
+ * https://www.boost.org/libs/array for Documentation.
* for documentation.
*
* (C) Copyright Nicolai M. Josuttis 2001.
@@ -851,7 +851,7 @@ namespace nanoflann
*
* Params:
* inputData = dataset with the input features
- * params = parameters passed to the kdtree algorithm (see http://code.google.com/p/nanoflann/ for help choosing the parameters)
+ * params = parameters passed to the kdtree algorithm (see https://github.com/jlblancoc/nanoflann for help choosing the parameters)
*/
KDTreeSingleIndexAdaptor(const int dimensionality, const DatasetAdaptor& inputData, const KDTreeSingleIndexAdaptorParams& params = KDTreeSingleIndexAdaptorParams() ) :
dataset(inputData), index_params(params), root_node(NULL), distance(inputData)
diff --git a/Spatial_searching/doc/Spatial_searching/CGAL/Weighted_Minkowski_distance.h b/Spatial_searching/doc/Spatial_searching/CGAL/Weighted_Minkowski_distance.h
index d82fd2ca8b7..e1575fb05f3 100644
--- a/Spatial_searching/doc/Spatial_searching/CGAL/Weighted_Minkowski_distance.h
+++ b/Spatial_searching/doc/Spatial_searching/CGAL/Weighted_Minkowski_distance.h
@@ -52,7 +52,8 @@ Constructor implementing \f$ l_2\f$ metric for \f$ d\f$-dimensional points.
Weighted_Minkowski_distance(int d,Traits t=Traits());
/*!
-Constructor implementing the \f$ l_{power}(weights)\f$ metric. \f$ power \leq0\f$ denotes the \f$ l_{\infty}(weights)\f$ metric.
+Constructor implementing the \f$ l_{power}(weights)\f$ metric. `power=0`
+denotes the \f$ l_{\infty}(weights)\f$ metric.
The values in the iterator range `[wb,we)` are the weight.
*/
template
diff --git a/Straight_skeleton_2/include/CGAL/IO/Dxf_stream.h b/Straight_skeleton_2/include/CGAL/IO/Dxf_stream.h
index ed0dceb3efe..8e1d0387b18 100644
--- a/Straight_skeleton_2/include/CGAL/IO/Dxf_stream.h
+++ b/Straight_skeleton_2/include/CGAL/IO/Dxf_stream.h
@@ -10,7 +10,7 @@
// Author(s) : Fernando Cacciola
//
// Descriptions of the file format can be found at
-// http://www.autodesk.com/techpubs/autocad/acad2000/dxf/
+// https://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf
#ifndef CGAL_DXF_STREAM_H
#define CGAL_DXF_STREAM_H
diff --git a/Straight_skeleton_2/include/CGAL/IO/Dxf_writer.h b/Straight_skeleton_2/include/CGAL/IO/Dxf_writer.h
index 2c6e28c1fc7..11a41b3a204 100644
--- a/Straight_skeleton_2/include/CGAL/IO/Dxf_writer.h
+++ b/Straight_skeleton_2/include/CGAL/IO/Dxf_writer.h
@@ -10,7 +10,7 @@
// Author(s) : Fernando Cacciola
//
// Description of the file format can be found at the following address:
-// http://www.autodesk.com/techpubs/autocad/acad2000/dxf/
+// https://images.autodesk.com/adsk/files/autocad_2012_pdf_dxf-reference_enu.pdf
#ifndef CGAL_IO_DXF_WRITER_H
#define CGAL_IO_DXF_WRITER_H
diff --git a/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt b/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt
index 4834a83616b..5ca36ae8a8c 100644
--- a/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt
+++ b/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt
@@ -107,7 +107,7 @@ which offers combinatorial repairing while reading bad inputs.
The `OBJ` file format, using the file extension `.obj`, is a simple \ascii data format that represents 3D geometry.
Vertices are stored in a counter-clockwise order by default, making explicit declaration of face normals unnecessary.
-A precise specification of the format is available here.
+A precise specification of the format is available here.
@@ -148,7 +148,7 @@ The `STL` file format, using the file extension `.stl`, is an \ascii or binary f
to the stereolithography CAD software created by 3D Systems.
STL files describe the surface geometry of a three-dimensional object.
-A precise specification of those formats is available here.
+A precise specification of those formats is available here.
diff --git a/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h b/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h
index 5f357c809ab..03c90101c33 100644
--- a/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h
+++ b/Surface_mesh_segmentation/include/CGAL/Surface_mesh_segmentation/internal/auxiliary/graph.h
@@ -53,7 +53,7 @@ This program is available under dual licence:
1) Under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
Note that any program that incorporates the code under this licence must, under the terms of the GNU GPL, be released under a licence compatible with the GPL. GNU GPL does not permit incorporating this program into proprietary programs. If you wish to do this, please see the alternative licence available below.
-GNU General Public License can be found at http://www.gnu.org/licenses/old-licenses/gpl-2.0.html
+GNU General Public License can be found at https://www.gnu.org/licenses/old-licenses/gpl-2.0.html
2) Proprietary Licence from UCL Business PLC.
To enable programers to include the MaxFlow software in a proprietary system (which is not allowed by the GNU GPL), this licence gives you the right to incorporate the software in your program and distribute under any licence of your choosing. The full terms of the licence and applicable fee, are available from the Licensors at: http://www.uclb-elicensing.com/optimisation_software/maxflow_computervision.html
diff --git a/TDS_3/include/CGAL/Triangulation_data_structure_3.h b/TDS_3/include/CGAL/Triangulation_data_structure_3.h
index 8f2df91c48a..6333387f28b 100644
--- a/TDS_3/include/CGAL/Triangulation_data_structure_3.h
+++ b/TDS_3/include/CGAL/Triangulation_data_structure_3.h
@@ -2049,7 +2049,7 @@ bool
Triangulation_data_structure_3::
is_vertex(Vertex_handle v) const
{
- return vertices().owns_dereferencable(v);
+ return vertices().owns_dereferenceable(v);
}
template
@@ -2102,7 +2102,7 @@ is_edge(Cell_handle c, int i, int j) const
if ( (dimension() == 2) && ((i>2) || (j>2)) ) return false;
if ((i>3) || (j>3)) return false;
- return cells().owns_dereferencable(c);
+ return cells().owns_dereferenceable(c);
}
template
@@ -2149,7 +2149,7 @@ is_facet(Cell_handle c, int i) const
if ( (dimension() == 2) && (i!=3) )
return false;
- return cells().owns_dereferencable(c);
+ return cells().owns_dereferenceable(c);
}
template
@@ -2161,7 +2161,7 @@ is_cell( Cell_handle c ) const
if (dimension() < 3)
return false;
- return cells().owns_dereferencable(c);
+ return cells().owns_dereferenceable(c);
}
template
diff --git a/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_of_one_subdomain.cpp b/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_of_one_subdomain.cpp
index ec9f56138e0..097b7955fb5 100644
--- a/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_of_one_subdomain.cpp
+++ b/Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_of_one_subdomain.cpp
@@ -10,19 +10,34 @@ typedef CGAL::Exact_predicates_inexact_constructions_kernel K;
typedef CGAL::Tetrahedral_remeshing::Remeshing_triangulation_3 Remeshing_triangulation;
-struct Cells_of_subdomain
+template
+struct Cells_of_subdomain_pmap
{
private:
+ using Cell_handle = typename Tr::Cell_handle;
+
const int m_subdomain;
public:
- Cells_of_subdomain(const int& subdomain)
+ using key_type = Cell_handle;
+ using value_type = bool;
+ using reference = bool;
+ using category = boost::read_write_property_map_tag;
+
+ Cells_of_subdomain_pmap(const int& subdomain)
: m_subdomain(subdomain)
{}
- bool operator()(Remeshing_triangulation::Cell_handle c) const
+ friend value_type get(const Cells_of_subdomain_pmap& map,
+ const key_type& c)
{
- return m_subdomain == c->subdomain_index();
+ return (map.m_subdomain == c->subdomain_index());
+ }
+ friend void put(Cells_of_subdomain_pmap&,
+ const key_type&,
+ const value_type)
+ {
+ ; //nothing to do : subdomain indices are updated in remeshing
}
};
@@ -35,7 +50,8 @@ int main(int argc, char* argv[])
CGAL::Tetrahedral_remeshing::generate_input_two_subdomains(nbv, tr);
CGAL::tetrahedral_isotropic_remeshing(tr, target_edge_length,
- CGAL::parameters::cell_is_selected_map(Cells_of_subdomain(2)));
+ CGAL::parameters::cell_is_selected_map(
+ Cells_of_subdomain_pmap(2)));
return EXIT_SUCCESS;
}
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h
index c107aec320a..77caca7318f 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/collapse_short_edges.h
@@ -747,10 +747,11 @@ void merge_surface_patch_indices(const typename C3t3::Facet& f1,
}
}
-template
+template
typename C3t3::Vertex_handle
collapse(const typename C3t3::Cell_handle ch,
const int to, const int from,
+ CellSelector& cell_selector,
C3t3& c3t3)
{
typedef typename C3t3::Triangulation Tr;
@@ -916,8 +917,7 @@ collapse(const typename C3t3::Cell_handle ch,
for (Cell_handle cell_to_remove : cells_to_remove)
{
// remove cell
- if (c3t3.is_in_complex(cell_to_remove))
- c3t3.remove_from_complex(cell_to_remove);
+ treat_before_delete(cell_to_remove, cell_selector, c3t3);
c3t3.triangulation().tds().delete_cell(cell_to_remove);
}
@@ -930,9 +930,10 @@ collapse(const typename C3t3::Cell_handle ch,
}
-template
+template
typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
const Collapse_type& collapse_type,
+ CellSelector& cell_selector,
C3t3& c3t3)
{
typedef typename C3t3::Vertex_handle Vertex_handle;
@@ -956,7 +957,7 @@ typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
vh0->set_point(new_position);
vh1->set_point(new_position);
- vh = collapse(edge.first, edge.second, edge.third, c3t3);
+ vh = collapse(edge.first, edge.second, edge.third, cell_selector, c3t3);
c3t3.set_dimension(vh, (std::min)(dim_vh0, dim_vh1));
}
else //Collapse at vertex
@@ -964,7 +965,7 @@ typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
if (collapse_type == TO_V1)
{
vh0->set_point(p1);
- vh = collapse(edge.first, edge.third, edge.second, c3t3);
+ vh = collapse(edge.first, edge.third, edge.second, cell_selector, c3t3);
c3t3.set_dimension(vh, (std::min)(dim_vh0, dim_vh1));
}
else //Collapse at v0
@@ -972,7 +973,7 @@ typename C3t3::Vertex_handle collapse(typename C3t3::Edge& edge,
if (collapse_type == TO_V0)
{
vh1->set_point(p0);
- vh = collapse(edge.first, edge.second, edge.third, c3t3);
+ vh = collapse(edge.first, edge.second, edge.third, cell_selector, c3t3);
c3t3.set_dimension(vh, (std::min)(dim_vh0, dim_vh1));
}
else
@@ -1136,7 +1137,7 @@ typename C3t3::Vertex_handle collapse_edge(typename C3t3::Edge& edge,
if (in_cx)
nb_valid_collapse++;
#endif
- return collapse(edge, collapse_type, c3t3);
+ return collapse(edge, collapse_type, cell_selector, c3t3);
}
}
#ifdef CGAL_DEBUG_TET_REMESHING_IN_PLUGIN
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h
index a2c8191fa8f..190d6e6e320 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/compute_c3t3_statistics.h
@@ -55,11 +55,11 @@ void compute_statistics(const Triangulation& tr,
double max_dihedral_angle = 0.;
double min_dihedral_angle = 180.;
- for (Facet fit : tr.finite_facets())
+ for (Facet f : tr.finite_facets())
{
- const Cell_handle cell = fit.first;
- const int& index = fit.second;
- if (!cell_selector(cell) || !cell_selector(cell->neighbor(index)))
+ const Cell_handle cell = f.first;
+ const int& index = f.second;
+ if (!get(cell_selector, cell) || !get(cell_selector, cell->neighbor(index)))
continue;
const Point& pa = point(cell->vertex((index + 1) & 3)->point());
@@ -92,7 +92,7 @@ void compute_statistics(const Triangulation& tr,
++cit)
{
const Subdomain_index& si = cit->subdomain_index();
- if (si == Subdomain_index() || !cell_selector(cit))
+ if (si == Subdomain_index() || !get(cell_selector, cit))
continue;
++nb_tets;
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
index 91a629ac875..4fbe1180756 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/flip_edges.h
@@ -88,12 +88,13 @@ void update_c3t3_facets(C3t3& c3t3,
}
}
-template
+template
Sliver_removal_result flip_3_to_2(typename C3t3::Edge& edge,
C3t3& c3t3,
const std::vector& vertices_around_edge,
const Flip_Criterion& criterion,
- IncCellsVectorMap& inc_cells)
+ IncCellsVectorMap& inc_cells,
+ Cell_selector& cell_selector)
{
typedef typename C3t3::Triangulation Tr;
typedef typename C3t3::Facet Facet;
@@ -324,7 +325,7 @@ Sliver_removal_result flip_3_to_2(typename C3t3::Edge& edge,
// Update c3t3
update_c3t3_facets(c3t3, cells_to_update, outer_mirror_facets);
- c3t3.remove_from_complex(cell_to_remove);
+ treat_before_delete(cell_to_remove, cell_selector, c3t3);
tr.tds().delete_cell(cell_to_remove);
/********************VALIDITY CHECK***************************/
@@ -704,11 +705,15 @@ void find_best_flip_to_improve_dh(C3t3& c3t3,
}
}
-template
+template
Sliver_removal_result flip_n_to_m(C3t3& c3t3,
typename C3t3::Edge& edge,
typename C3t3::Vertex_handle vh,
IncCellsVectorMap& inc_cells,
+ Cell_selector& cell_selector,
Visitor& visitor,
bool check_validity = false)
{
@@ -863,6 +868,7 @@ Sliver_removal_result flip_n_to_m(C3t3& c3t3,
//Subdomain index?
typename C3t3::Subdomain_index subdomain = to_remove[0]->subdomain_index();
+ bool selected = get(cell_selector, to_remove[0]);
visitor.before_flip(to_remove[0]);
#ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG
@@ -883,7 +889,8 @@ Sliver_removal_result flip_n_to_m(C3t3& c3t3,
new_cell->set_vertex(fi.second, vh);
- c3t3.add_to_complex(new_cell, subdomain);
+ treat_new_cell(new_cell, subdomain, cell_selector, selected, c3t3);
+
visitor.after_flip(new_cell);
cells_to_update.push_back(new_cell);
}
@@ -952,7 +959,7 @@ Sliver_removal_result flip_n_to_m(C3t3& c3t3,
//Remove cells
for (Cell_handle ch : to_remove)
{
- c3t3.remove_from_complex(ch);
+ treat_before_delete(ch, cell_selector, c3t3);
tr.tds().delete_cell(ch);
}
@@ -1009,12 +1016,13 @@ Sliver_removal_result flip_n_to_m(C3t3& c3t3,
}
-template
+template
Sliver_removal_result flip_n_to_m(typename C3t3::Edge& edge,
C3t3& c3t3,
const std::vector& boundary_vertices,
const Flip_Criterion& criterion,
IncCellsVectorMap& inc_cells,
+ CellSelector& cell_selector,
Visitor& visitor)
{
typedef typename C3t3::Vertex_handle Vertex_handle;
@@ -1063,7 +1071,8 @@ Sliver_removal_result flip_n_to_m(typename C3t3::Edge& edge,
if (curr_max_cosdh <= curr_cost_vpair.first)
return NO_BEST_CONFIGURATION;
- result = flip_n_to_m(c3t3, edge, curr_cost_vpair.second.first, inc_cells, visitor);
+ result = flip_n_to_m(c3t3, edge, curr_cost_vpair.second.first, inc_cells,
+ cell_selector, visitor);
if (result != NOT_FLIPPABLE)
flip_performed = true;
@@ -1073,11 +1082,12 @@ Sliver_removal_result flip_n_to_m(typename C3t3::Edge& edge,
return result;
}
-template
+template
Sliver_removal_result find_best_flip(typename C3t3::Edge& edge,
C3t3& c3t3,
const Flip_Criterion& criterion,
IncCellsVectorMap& inc_cells,
+ Cell_selector& cell_selector,
Visitor& visitor)
{
typedef typename C3t3::Triangulation Tr;
@@ -1140,7 +1150,7 @@ Sliver_removal_result find_best_flip(typename C3t3::Edge& edge,
{
std::vector vertices;
vertices.insert(vertices.end(), vertices_around_edge.begin(), vertices_around_edge.end());
- res = flip_3_to_2(edge, c3t3, vertices, criterion, inc_cells);
+ res = flip_3_to_2(edge, c3t3, vertices, criterion, inc_cells, cell_selector);
}
}
else
@@ -1152,7 +1162,7 @@ Sliver_removal_result find_best_flip(typename C3t3::Edge& edge,
{
std::vector vertices;
vertices.insert(vertices.end(), boundary_vertices.begin(), boundary_vertices.end());
- res = flip_n_to_m(edge, c3t3, vertices, criterion, inc_cells, visitor);
+ res = flip_n_to_m(edge, c3t3, vertices, criterion, inc_cells, cell_selector, visitor);
//return n_to_m_flip(edge, boundary_vertices, flip_criterion);
}
}
@@ -1161,10 +1171,11 @@ Sliver_removal_result find_best_flip(typename C3t3::Edge& edge,
}
-template
+template
std::size_t flip_all_edges(const std::vector& edges,
C3t3& c3t3,
const Flip_Criterion& criterion,
+ Cell_selector& cell_selector,
Visitor& visitor)
{
typedef typename C3t3::Triangulation Tr;
@@ -1195,7 +1206,8 @@ std::size_t flip_all_edges(const std::vector& edges,
{
Edge edge(ch, i0, i1);
- Sliver_removal_result res = find_best_flip(edge, c3t3, criterion, inc_cells, visitor);
+ Sliver_removal_result res
+ = find_best_flip(edge, c3t3, criterion, inc_cells, cell_selector, visitor);
if (res == INVALID_CELL || res == INVALID_VERTEX || res == INVALID_ORIENTATION)
{
std::cout << "FLIP PROBLEM!!!!" << std::endl;
@@ -1222,7 +1234,7 @@ std::size_t flip_all_edges(const std::vector& edges,
template
void flip_edges(C3T3& c3t3,
const bool protect_boundaries,
- CellSelector cell_selector,
+ CellSelector& cell_selector,
Visitor& visitor)
{
CGAL_USE(protect_boundaries);
@@ -1238,8 +1250,6 @@ void flip_edges(C3T3& c3t3,
//const Flip_Criterion criterion = VALENCE_MIN_DH_BASED;
- //collect long edges
-
//compute vertices normals map?
// typedef typename C3T3::Surface_patch_index Surface_patch_index;
@@ -1273,7 +1283,7 @@ void flip_edges(C3T3& c3t3,
#ifdef CGAL_TETRAHEDRAL_REMESHING_VERBOSE
nb_flips =
#endif
- flip_all_edges(inside_edges, c3t3, MIN_ANGLE_BASED, visitor);
+ flip_all_edges(inside_edges, c3t3, MIN_ANGLE_BASED, cell_selector, visitor);
//}
#ifdef CGAL_TETRAHEDRAL_REMESHING_VERBOSE
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h
index 49ff1c2390e..24874936248 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/smooth_vertices.h
@@ -142,6 +142,20 @@ private:
return n;
}
+ template
+ std::string debug_to_string(const Patch_index i)
+ {
+ return std::to_string(i);
+ }
+
+ template
+ std::string debug_to_string(const std::pair& pi)
+ {
+ std::string str = std::to_string(pi.first);
+ str.append("_").append(std::to_string(pi.second));
+ return str;
+ }
+
template
void compute_vertices_normals(const C3t3& c3t3,
VertexNormalsMap& normals_map,
@@ -283,7 +297,8 @@ private:
for (auto& kv : ons_map)
{
std::ostringstream oss;
- oss << "dump_normals_normalized_" << kv.first << ".polylines.txt";
+ oss << "dump_normals_normalized_["
+ << debug_to_string(kv.first) << "].polylines.txt";
std::ofstream ons(oss.str());
for (auto s : kv.second)
ons << "2 " << s.source() << " " << s.target() << std::endl;
@@ -452,7 +467,7 @@ public:
inc_cells(nbv, boost::container::small_vector());
for (const Cell_handle c : tr.finite_cell_handles())
{
- const bool cell_is_selected = cell_selector(c);
+ const bool cell_is_selected = get(cell_selector, c);
for (int i = 0; i < 4; ++i)
{
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h
index 86e7aa27856..5106fb1835b 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/split_long_edges.h
@@ -33,8 +33,9 @@ namespace Tetrahedral_remeshing
{
namespace internal
{
-template
+template
typename C3t3::Vertex_handle split_edge(const typename C3t3::Edge& e,
+ CellSelector cell_selector,
C3t3& c3t3)
{
typedef typename C3t3::Triangulation Tr;
@@ -69,8 +70,16 @@ typename C3t3::Vertex_handle split_edge(const typename C3t3::Edge& e,
}
CGAL_assertion(dimension > 0);
- std::unordered_map> cells_info;
- std::unordered_map, boost::hash> facets_info;
+ struct Cell_info {
+ Subdomain_index subdomain_index_;
+ bool selected_;
+ };
+ struct Facet_info {
+ Vertex_handle opp_vertex_;
+ Surface_patch_index patch_index_;
+ };
+ boost::unordered_map> cells_info;
+ boost::unordered_map> facets_info;
// check orientation and collect incident cells to avoid circulating twice
boost::container::small_vector inc_cells;
@@ -114,23 +123,21 @@ typename C3t3::Vertex_handle split_edge(const typename C3t3::Edge& e,
//keys are the opposite facets to the ones not containing e,
//because they will not be modified
const Subdomain_index subdomain = c3t3.subdomain_index(c);
+ const bool selected = get(cell_selector, c);
const Facet opp_facet1 = tr.mirror_facet(Facet(c, index_v1));
const Facet opp_facet2 = tr.mirror_facet(Facet(c, index_v2));
// volume data
- cells_info.insert(std::make_pair(opp_facet1, subdomain));
- cells_info.insert(std::make_pair(opp_facet2, subdomain));
- if (c3t3.is_in_complex(c))
- c3t3.remove_from_complex(c);
+ cells_info.insert(std::make_pair(opp_facet1, Cell_info{subdomain, selected}));
+ cells_info.insert(std::make_pair(opp_facet2, Cell_info{subdomain, selected}));
+ treat_before_delete(c, cell_selector, c3t3);
// surface data for facets of the cells to be split
const int findex = CGAL::Triangulation_utils_3::next_around_edge(index_v1, index_v2);
Surface_patch_index patch = c3t3.surface_patch_index(c, findex);
Vertex_handle opp_vertex = c->vertex(findex);
- facets_info.insert(std::make_pair(opp_facet1,
- std::make_pair(opp_vertex, patch)));
- facets_info.insert(std::make_pair(opp_facet2,
- std::make_pair(opp_vertex, patch)));
+ facets_info.insert(std::make_pair(opp_facet1, Facet_info{opp_vertex, patch}));
+ facets_info.insert(std::make_pair(opp_facet2, Facet_info{opp_vertex, patch}));
if(c3t3.is_in_complex(c, findex))
c3t3.remove_from_complex(c, findex);
@@ -151,28 +158,26 @@ typename C3t3::Vertex_handle split_edge(const typename C3t3::Edge& e,
//get subdomain info back
CGAL_assertion(cells_info.find(mfi) != cells_info.end());
- Subdomain_index n_index = cells_info.at(mfi);
- if (Subdomain_index() != n_index)
- c3t3.add_to_complex(new_cell, n_index);
- else
- new_cell->set_subdomain_index(Subdomain_index());
+ Cell_info c_info = cells_info.at(mfi);
+ treat_new_cell(new_cell, c_info.subdomain_index_,
+ cell_selector, c_info.selected_, c3t3);
// get surface info back
CGAL_assertion(facets_info.find(mfi) != facets_info.end());
- const std::pair v_and_opp_patch = facets_info.at(mfi);
+ const Facet_info v_and_opp_patch = facets_info.at(mfi);
// facet opposite to new_v (status wrt c3t3 is unchanged)
new_cell->set_surface_patch_index(new_cell->index(new_v),
mfi.first->surface_patch_index(mfi.second));
// new half-facet (added or not to c3t3 depending on the stored surface patch index)
- if (Surface_patch_index() == v_and_opp_patch.second)
- new_cell->set_surface_patch_index(new_cell->index(v_and_opp_patch.first),
+ if (Surface_patch_index() == v_and_opp_patch.patch_index_)
+ new_cell->set_surface_patch_index(new_cell->index(v_and_opp_patch.opp_vertex_),
Surface_patch_index());
else
c3t3.add_to_complex(new_cell,
- new_cell->index(v_and_opp_patch.first),
- v_and_opp_patch.second);
+ new_cell->index(v_and_opp_patch.opp_vertex_),
+ v_and_opp_patch.patch_index_);
// newly created internal facet
for (int i = 0; i < 4; ++i)
@@ -299,7 +304,7 @@ void split_long_edges(C3T3& c3t3,
continue;
visitor.before_split(tr, edge);
- Vertex_handle vh = split_edge(edge, c3t3);
+ Vertex_handle vh = split_edge(edge, cell_selector, c3t3);
if(vh != Vertex_handle())
visitor.after_split(tr, vh);
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
index b4f1093393d..0d68c959ccb 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_adaptive_remeshing_impl.h
@@ -58,29 +58,20 @@ public:
template
struct All_cells_selected
{
- typedef typename Tr::Cell_handle argument_type;
- typedef typename Tr::Cell::Subdomain_index Subdomain_index;
+ using key_type = typename Tr::Cell_handle;
+ using value_type = bool;
+ using reference = bool;
+ using category = boost::read_write_property_map_tag;
- typedef bool result_type;
-
- result_type operator()(const argument_type c) const
+ friend value_type get(const All_cells_selected&, const key_type& c)
{
- return c->subdomain_index() != Subdomain_index();
+ using SI = typename Tr::Cell::Subdomain_index;
+ return c->subdomain_index() != SI();
}
+ friend void put(All_cells_selected&, const key_type&, const value_type)
+ {} //nothing to do : subdomain indices are updated in remeshing};
};
-template
-struct No_constraint_pmap
-{
-public:
- typedef Primitive key_type;
- typedef bool value_type;
- typedef value_type reference;
- typedef boost::read_write_property_map_tag category;
-
- friend value_type get(No_constraint_pmap, key_type) { return false; }
- friend void put(No_constraint_pmap, key_type, value_type) {}
-};
templatesubdomain_index();
if(!input_is_c3t3())
m_c3t3.remove_from_complex(cit);
- m_c3t3.add_to_complex(cit, index);
+ if(Subdomain_index() != index)
+ m_c3t3.add_to_complex(cit, index);
#ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG
++nbc;
@@ -421,10 +417,7 @@ private:
if (!input_is_c3t3())
{
for (int i = 0; i < 4; ++i)
- {
- if (cit->vertex(i)->in_dimension() == -1)
- cit->vertex(i)->set_dimension(3);
- }
+ cit->vertex(i)->set_dimension(3);
}
#ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG
else if (input_is_c3t3() && m_c3t3.is_in_complex(cit))
@@ -453,8 +446,7 @@ private:
for (int j = 0; j < 3; ++j)
{
Vertex_handle vij = f.first->vertex(Tr::vertex_triple_index(i, j));
- if (vij->in_dimension() == -1 || vij->in_dimension() > 2)
- vij->set_dimension(2);
+ vij->set_dimension(2);
}
#ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG
++nbf;
@@ -486,12 +478,10 @@ private:
m_c3t3.add_to_complex(e, 1);
Vertex_handle v = e.first->vertex(e.second);
- if (v->in_dimension() == -1 || v->in_dimension() > 1)
- v->set_dimension(1);
+ v->set_dimension(1);
v = e.first->vertex(e.third);
- if (v->in_dimension() == -1 || v->in_dimension() > 1)
- v->set_dimension(1);
+ v->set_dimension(1);
#ifdef CGAL_TETRAHEDRAL_REMESHING_DEBUG
++nbe;
@@ -512,8 +502,7 @@ private:
if(!m_c3t3.is_in_complex(vit))
m_c3t3.add_to_complex(vit, ++corner_id);
- if (vit->in_dimension() == -1 || vit->in_dimension() > 0)
- vit->set_dimension(0);
+ vit->set_dimension(0);
vit->set_index(corner_id);
@@ -535,6 +524,7 @@ private:
CGAL::Tetrahedral_remeshing::debug::dump_vertices_by_dimension(
m_c3t3.triangulation(), "c3t3_vertices_");
+ CGAL::Tetrahedral_remeshing::debug::check_surface_patch_indices(m_c3t3);
#endif
}
diff --git a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h
index 1be3eae9b0b..5814fc4fd28 100644
--- a/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h
+++ b/Tetrahedral_remeshing/include/CGAL/Tetrahedral_remeshing/internal/tetrahedral_remeshing_helpers.h
@@ -441,7 +441,7 @@ bool is_boundary(const C3T3& c3t3,
const CellSelector& cell_selector)
{
return c3t3.is_in_complex(f)
- || cell_selector(f.first) != cell_selector(f.first->neighbor(f.second));
+ || get(cell_selector, f.first) != get(cell_selector, f.first->neighbor(f.second));
}
template
@@ -497,7 +497,7 @@ bool is_boundary_vertex(const typename C3t3::Vertex_handle& v,
{
if (c3t3.is_in_complex(f))
return true;
- if (cell_selector(f.first) ^ cell_selector(f.first->neighbor(f.second)))
+ if (get(cell_selector, f.first) ^ get(cell_selector, f.first->neighbor(f.second)))
return true;
}
return false;
@@ -767,7 +767,7 @@ bool is_outside(const typename C3t3::Edge & edge,
if (c3t3.is_in_complex(circ))
return false;
// does circ belong to the selection?
- if (cell_selector(circ))
+ if (get(cell_selector, circ))
return false;
++circ;
@@ -789,7 +789,7 @@ bool is_selected(const typename C3t3::Vertex_handle v,
for(Cell_handle c : cells)
{
- if (cell_selector(c))
+ if (get(cell_selector, c))
return true;
}
return false;
@@ -814,7 +814,7 @@ bool is_internal(const typename C3t3::Edge& edge,
return false;
if (si != circ->subdomain_index())
return false;
- if (!cell_selector(circ))
+ if (!get(cell_selector, circ))
return false;
if (c3t3.is_in_complex(
circ,
@@ -836,7 +836,7 @@ bool is_selected(const typename C3T3::Triangulation::Edge& e,
Cell_circulator done = circ;
do
{
- if (cell_selector(circ))
+ if (get(cell_selector, circ))
return true;
} while (++circ != done);
@@ -1135,6 +1135,38 @@ void get_edge_info(const typename C3t3::Edge& edge,
}
}
+namespace internal
+{
+ template
+ void treat_before_delete(typename C3t3::Cell_handle c,
+ CellSelector& cell_selector,
+ C3t3& c3t3)
+ {
+ if (c3t3.is_in_complex(c))
+ c3t3.remove_from_complex(c);
+ if (get(cell_selector, c))
+ put(cell_selector, c, false);
+ }
+
+ template
+ void treat_new_cell(typename C3t3::Cell_handle c,
+ const typename C3t3::Subdomain_index& subdomain,
+ CellSelector& cell_selector,
+ const bool selected,
+ C3t3& c3t3)
+ {
+ //update C3t3
+ using Subdomain_index = typename C3t3::Subdomain_index;
+ if (Subdomain_index() != subdomain)
+ c3t3.add_to_complex(c, subdomain);
+ else
+ c->set_subdomain_index(Subdomain_index());
+
+ //update cell_selector property map
+ put(cell_selector, c, selected);
+ }
+}
+
namespace debug
{
@@ -1592,11 +1624,9 @@ void dump_cells_with_small_dihedral_angle(const Tr& tr,
std::vector cells;
std::vector indices;
- for (typename Tr::Finite_cells_iterator cit = tr.finite_cells_begin();
- cit != tr.finite_cells_end(); ++cit)
+ for (Cell_handle c : tr.finite_cell_handles())
{
- Cell_handle c = cit;
- if (c->subdomain_index() != Subdomain_index() && cell_select(c))
+ if (c->subdomain_index() != Subdomain_index() && get(cell_select, c))
{
double dh = min_dihedral_angle(tr, c);
if (dh < angle_bound)
diff --git a/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h b/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h
index b0374e64dd2..4a2dd01166b 100644
--- a/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h
+++ b/Tetrahedral_remeshing/include/CGAL/tetrahedral_remeshing.h
@@ -26,6 +26,8 @@
#include
#include
+#include
+
#ifdef CGAL_DUMP_REMESHING_STEPS
#include
#endif
@@ -224,24 +226,22 @@ void tetrahedral_isotropic_remeshing(
Tetrahedral_remeshing::internal::All_cells_selected
This application illustrates an interactive demo for 3D Delaunay Triangulation package
of CGAL.
See also the package manual:
diff --git a/Triangulation_3/include/CGAL/Regular_triangulation_3.h b/Triangulation_3/include/CGAL/Regular_triangulation_3.h
index ac6371c6484..482cb41c176 100644
--- a/Triangulation_3/include/CGAL/Regular_triangulation_3.h
+++ b/Triangulation_3/include/CGAL/Regular_triangulation_3.h
@@ -1243,7 +1243,7 @@ protected:
// Sequential version
// "dummy" is here to allow the specialization (see below)
- // See http://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/285ab1eec49e1cb6
+ // See https://groups.google.com/group/comp.lang.c++.moderated/browse_thread/thread/285ab1eec49e1cb6
template
class Hidden_point_visitor
{
diff --git a/Weights/examples/Weights/CMakeLists.txt b/Weights/examples/Weights/CMakeLists.txt
index 4521e9cc475..0edac604a89 100644
--- a/Weights/examples/Weights/CMakeLists.txt
+++ b/Weights/examples/Weights/CMakeLists.txt
@@ -1,10 +1,10 @@
# Created by the script cgal_create_cmake_script.
# This is the CMake script for compiling a CGAL application.
-project(Weights_Examples)
-
cmake_minimum_required(VERSION 3.1...3.23)
+project(Weights_Examples)
+
find_package(CGAL REQUIRED COMPONENTS Core)
create_single_source_cgal_program("weights.cpp")
diff --git a/Weights/test/Weights/CMakeLists.txt b/Weights/test/Weights/CMakeLists.txt
index 9b7dddc43b7..90bb93b2ae5 100644
--- a/Weights/test/Weights/CMakeLists.txt
+++ b/Weights/test/Weights/CMakeLists.txt
@@ -1,10 +1,10 @@
# Created by the script cgal_create_cmake_script.
# This is the CMake script for compiling a CGAL application.
-project(Weights_Tests)
-
cmake_minimum_required(VERSION 3.1...3.23)
+project(Weights_Tests)
+
find_package(CGAL REQUIRED COMPONENTS Core)
create_single_source_cgal_program("test_uniform_weights.cpp")