## 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
This PR fixes various typos across multiple packages. The changes
include:
* **Variable Names:** Corrected local variable names (e.g.,
`list_lenght` → `list_length`, `inital_nb_pts` → `initial_nb_pts`) in
CMake scripts and C++ headers.
* **Header Guards:** Fixed a typo in the header guard for
`Edge_length_cost.h` to match the filename.
* **Documentation & Comments:** Fixed spelling errors in comments,
string literals, and documentation files (e.g., `dimensionnal` →
`dimensional`, `explicitelty` → `explicitly`).
## Release Management
* Affected package(s): Installation, Point_set_3,
Polygon_mesh_processing, Surface_mesh_simplification, SMDS_3,
STL_Extension, Stream_support, TDS_2, Triangulation_2, Triangulation_3
* Issue(s) solved (if any):
* Feature/Small Feature (if any):
* Link to compiled documentation (obligatory for small feature):
* License and copyright ownership:
## 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.
## Summary
This small feature adds the ability to read and write `.vtk` files
(legacy ASCII)
for 3D Linear_cell_complex (dimension 3, ambient dimension 3).
It supports per-vertex and per-volume scalar fields and handles various
VTK cell types.
## Motivation
Enable import/export of mesh structures and scalar fields between CGAL
and VTK-based visualization tools
(ParaView, VisIt, etc.). Simplifies debugging and integration into
scientific pipelines.
## API Changes
- New functions in `Linear_cell_complex_vtk_io.h`:
- `read_lcc_from_vtk()`
- `write_lcc_to_vtk()`
Header-only implementation, no external dependency.
## Included
- Full implementation in `Linear_cell_complex_vtk_io.h` (merged `.impl`)
- Minimal example with `.3map` and `.vtk` files
- Unit test with scalar field preservation and structure comparison
## Maintainers
Feel free to suggest naming adjustments or style corrections. The
feature is scoped cleanly and does not affect other packages.
* Feature/Small Feature (if any):
[Read_write_vtk_for_LCC](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Read_write_vtk_for_LCC)
## Summary of Changes
For file formats that expect floating point coordinates we convert on
the fly so that `CGAL::io::write_polygon_soup()` also works for polygon
soups with ` FT` which are non-float/double, e.g.
`Exact_predicates_exact_constructions_kernel`.
Additionally, we document the named parameter `point_map` as it was
missing.
## Release Management
* Affected package(s): Stream_support
* Issue(s) solved (if any): fix#9071
* License and copyright ownership: unchanged
* upon integration update and test #9109
## Summary of Changes
As reported in #7868 the function `CGAL::IO::write_PLY()` used in binary
mode does not correctly write the coordinates if the points are from a
kernel with exact constructions.
~~This PR applies `to_double()" to the coordinates.~~
~~After a discussion with @MaelRL we decided that the user is in charge
to pass a `vertex_point_map` as named parameter that does the
conversion. This is straightforward as we offer the
[`Cartesian_converter_property_map`](https://doc.cgal.org/latest/Property_map/structCGAL_1_1Cartesian__converter__property__map.html).~~
Moving back to the previous proposal: hardcode some to_double and
to_float casts such that we meet the requirements of the file format,
whatever the input.
As the problem is the same for the vertex normals we add a named
parameter `vertex_normal_map`.
### Todo
- [x] Fix the generic function `write_polygon_mesh()`. Currently it is
fixed for `Surface_mesh`
## Release Management
* Affected package(s): Stream_support
* Issue(s) solved (if any): fix#7868 and fix
https://github.com/CGAL/cgal/issues/7327
* License and copyright ownership: unchanged
* upcoming integration, update #9072 and test it