## Summary of Changes
This PR fixes the error reported in issue #781. The main two changes
are:
- in `Refine_edges.h`: allow the refinement point of a constrained edge
to be an existing close encroaching vertex,
- in `Refine_faces.h`: skip tiny bad faces when their bbox are smaller
than a few ulp.
## Release Management
* Affected package(s): Triangulation_2, Mesh_2
* Issue(s) solved (if any): fix#781
* Feature/Small Feature (if any):
* Link to compiled documentation (obligatory for small feature) [*wrong
link name to be changed*](httpssss://wrong_URL_to_be_changed/Manual/Pkg)
* License and copyright ownership: maintenance by GeometryFactory, now
copyright change
## Summary of Changes
Fixed common doubled word typos (e.g., "to to", "of of") in comments and
documentation strings across various packages. These changes are purely
cosmetic and do not affect code logic.
## Release Management
Affected package(s): Algebraic_foundations, Algebraic_kernel_d,
Arrangement_on_surface_2, BGL, Bounding_volumes, Convex_hull_2,
Kernel_23, Minkowski_sum_2, Nef_3, Orthtree, Polygon_mesh_processing,
Polyhedron, Polytope_distance_d, Spatial_searching, Stream_support,
TDS_3.
Issue(s) solved (if any):
Feature/Small Feature (if any):
Link to compiled documentation:
License and copyright ownership: I agree to the transfer of the license
and copyright of my contribution to the CGAL project.
## Summary of Changes
The PLY file format does not support 64 bits (signed/unsigned) integers.
In the overload of the writer specific to `Surface_mesh`, we try to
write all property maps with value types compatible with the PLY file
format (char, uchar, etc.).
We also tolerate 64 bits signed / unsigned integers, but used to cast it
to int32 / uint32:
```cpp
{
Int64_map pmap;
boost::tie(pmap, okay) = sm.template property_map<Simplex,boost::int64_t>(prop[i]);
if(okay)
{
os << "property int " << name << std::endl;
printers.push_back(new internal::Simple_property_printer<Simplex,Int64_map,boost::int32_t>(pmap));
continue;
}
}
```
In https://github.com/CGAL/cgal/pull/6575, the code was factorized, but
the conversion to 32 bits was accidentally lost
(https://github.com/CGAL/cgal/commit/aa9f5215c4afa79d29cc5491d1d690cd2ed7a142).
Hence, we were writing 8 bytes values (while announcing 4 bytes values)
and writing a property map with value type a 64 bits integers (or a
range of 64 bits integers) would make the file unreadable.
The PR re-introduces the conversions, and also removes the recursion of
the function.
The bug is from CGAL 5.5, but we have recent changes to PLY I/O
introducing named parameters and whatnot that make it a little tedious
to backport so I will wait to see if there is a need.
## Release Management
* Affected package(s): `Surface_mesh`
* Issue(s) solved (if any): -
* Feature/Small Feature (if any): -
* License and copyright ownership: no change
/mnt/testsuite/include/CGAL/IO/PLY/PLY_writer.h:296:30: warning:
loop variable 'v' of type 'const unsigned int&' binds to a temporary
constructed from type 'const long unsigned int' [-Wrange-loop-construct]
296 | for(const ElementType& v : vec)
This is because ElementType is not the value type of the vector,
but the data type that we write, and for 64 bits integer,
we convert to 32 bits. So in that case, we can't cast yet.