|
1 | | -The CGAL Open Source Project is pleased to announce the release 5.0 |
2 | | -of CGAL, the Computational Geometry Algorithms Library. |
3 | | - |
4 | | -Besides fixes and general enhancement to existing packages, the |
5 | | -following has changed since CGAL 4.14.2: |
6 | | - |
7 | | -### General changes |
8 | | - |
9 | | -- CGAL 5.0 is the first release of CGAL that requires a C++ compiler |
10 | | - with the support of C++14 or later. The new list of supported |
11 | | - compilers is: |
12 | | - - Visual C++ 14.0 (from Visual Studio 2015 Update 3) or later, |
13 | | - - Gnu g++ 6.3 or later (on Linux or MacOS), |
14 | | - - LLVM Clang version 8.0 or later (on Linux or MacOS), and |
15 | | - - Apple Clang compiler versions 7.0.2 and 10.0.1 (on MacOS). |
16 | | -- Since CGAL 4.9, CGAL can be used as a header-only library, with |
17 | | - dependencies. Since CGAL 5.0, that is now the default, unless |
18 | | - specified differently in the (optional) CMake configuration. |
19 | | -- The section "Getting Started with CGAL" of the documentation has |
20 | | - been updated and reorganized. |
21 | | -- The minimal version of Boost is now 1.57.0. |
22 | | - |
23 | | - |
24 | | -### [Polygonal Surface Reconstruction](https://doc.cgal.org/5.0/Manual/packages.html#PkgPolygonalSurfaceReconstruction) (new package) |
25 | | - |
26 | | - - This package provides a method for piecewise planar object reconstruction from point clouds. |
27 | | - The method takes as input an unordered point set sampled from a piecewise planar object |
28 | | - and outputs a compact and watertight surface mesh interpolating the input point set. |
29 | | - The method assumes that all necessary major planes are provided (or can be extracted from |
30 | | - the input point set using the shape detection method described in Point Set Shape Detection, |
31 | | - or any other alternative methods).The method can handle arbitrary piecewise planar objects |
32 | | - and is capable of recovering sharp features and is robust to noise and outliers. See also |
33 | | - the associated [blog entry](https://www.cgal.org/2019/08/05/Polygonal_surface_reconstruction/). |
34 | | - |
35 | | -### [Shape Detection](https://doc.cgal.org/5.0/Manual/packages.html#PkgShapeDetection) (major changes) |
36 | | - - **Breaking change:** The concept `ShapeDetectionTraits` has been renamed to [`EfficientRANSACTraits`](https://doc.cgal.org/5.0/Shape_detection/classEfficientRANSACTraits.html). |
37 | | - - **Breaking change:** The `Shape_detection_3` namespace has been renamed to [`Shape_detection`](https://doc.cgal.org/5.0/Shape_detection/annotated.html). |
38 | | - - Added a new, generic implementation of region growing. This enables for example applying region growing to inputs such as 2D and 3D point sets, |
39 | | - or models of the [`FaceGraph`](https://doc.cgal.org/5.0/BGL/classFaceGraph.html) concept. Learn more about this new algorithm with this [blog entry](https://www.cgal.org/2019/07/30/Shape_detection/). |
40 | | - |
41 | | -### [dD Geometry Kernel](https://doc.cgal.org/5.0/Manual/packages.html#PkgKernelD) |
42 | | - - A new exact kernel, [`Epeck_d`](https://doc.cgal.org/5.0/Kernel_d/structCGAL_1_1Epeck__d.html), is now available. |
43 | | - |
44 | | -### 2D and 3D Triangulations |
45 | | - |
46 | | -- **Breaking change:** Several deprecated functions and classes have been |
47 | | - removed. See the full list of breaking changes in the release |
48 | | - notes. |
49 | | - |
50 | | -- **Breaking change:** The constructor and the `insert()` function of |
51 | | - `CGAL::Triangulation_2` or `CGAL::Triangulation_3` which take a range |
52 | | - of points as argument are now guaranteed to insert the points |
53 | | - following the order of `InputIterator`. Note that this change only |
54 | | - affects the base class `CGAL::Triangulation_[23]` and not any |
55 | | - derived class, such as `CGAL::Delaunay_triangulation_[23]`. |
56 | | - |
57 | | - |
58 | | -### [Polygon Mesh Processing](https://doc.cgal.org/latest/Manual/packages.html#PkgPolygonMeshProcessing) |
59 | | - - Introduced a [wide range of new functions](https://doc.cgal.org/5.0/Polygon_mesh_processing/index.html#title36) |
60 | | - related to location of queries on a triangle mesh, |
61 | | - such as [`CGAL::Polygon_mesh_processing::locate(Point, Mesh)`](https://doc.cgal.org/5.0/Polygon_mesh_processing/group__PMP__locate__grp.html#gada09bd8740ba69ead9deca597d53cf15). |
62 | | - The location of a point on a triangle mesh is expressed as the pair of a face and the barycentric |
63 | | - coordinates of the point in this face, enabling robust manipulation of locations |
64 | | - (for example, intersections of two 3D segments living within the same face). |
65 | | - - Added the mesh smoothing function [`smooth_mesh()`](https://doc.cgal.org/5.0/Polygon_mesh_processing/group__PMP__meshing__grp.html#gaa0551d546f6ab2cd9402bea12d8332a3), |
66 | | - which can be used to improve the quality of triangle elements based on various geometric characteristics. |
67 | | - - Added the shape smoothing function [`smooth_shape()`](https://doc.cgal.org/5.0/Polygon_mesh_processing/group__PMP__meshing__grp.html#gaaa083ec78bcecf351e04d1bbf460b4a2), |
68 | | - which can be used to smooth the surface of a triangle mesh, using the mean curvature flow to perform noise removal. |
69 | | - (See also the new entry in the [User Manual](https://doc.cgal.org/5.0/Polygon_mesh_processing/index.html#title8)) |
70 | | - |
71 | | -### [Point Set Processing](https://doc.cgal.org/latest/Manual/packages.html#PkgPointSetProcessing3) |
72 | | - - **Breaking change**: the API using iterators and overloads for optional parameters (deprecated since |
73 | | - CGAL 4.12) has been removed. The current (and now only) API uses ranges and Named Parameters. |
74 | | - |
75 | | -See https://www.cgal.org/2019/11/08/cgal50/ for a complete list of changes. |
| 1 | +%The CGAL Open Source Project is pleased to announce the release 5.3 of CGAL, the Computational Geometry Algorithms Library. |
| 2 | + |
| 3 | +Besides fixes and general enhancement to existing packages, the following has changed since CGAL 5.2: |
| 4 | + |
| 5 | +### [General changes](https://doc.cgal.org/5.3/Manual/general_intro.html) |
| 6 | + |
| 7 | +- The support for the compiled version of CGAL is dropped. Only the header-only version is supported. |
| 8 | + |
| 9 | +- On Windows, the type used for `Exact_rational`, in `Epick` and indirectly (through `Lazy_exact_nt`) |
| 10 | + `Epeck` may now be `boost::multiprecision::mpq_rational`, as has been the case on other platforms |
| 11 | + for several releases. This depends on various options and is added to a list that includes |
| 12 | + `mpq_class`, `CGAL::Gmpq`, `leda_rational` and `CGAL::Quotient<CGAL::MP_Float>`. |
| 13 | + |
| 14 | +### [Quadtrees, Octrees, and Orthtrees](https://doc.cgal.org/5.3/Manual/packages.html#PkgOrthtree) (new package) |
| 15 | + |
| 16 | +- This package implements a tree data structure in which each node encloses a hypercubic section |
| 17 | + of space and each non-leave node has hypercubic children whose edge lengths are half its edge length. |
| 18 | + Such a data structure is known as a quadtree in 2D, an octree in 3D, and is generalized |
| 19 | + as an "orthtree" in higher dimensions. |
| 20 | + |
| 21 | +### [Triangulations on the Sphere](https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulationOnSphere2) (new package) |
| 22 | + |
| 23 | +- This package enables the construction and manipulation of Delaunay triangulations on the 2-sphere. |
| 24 | + Triangulations are built incrementally and can be modified by insertion or removal of vertices. |
| 25 | + Point location querying and primitives to build the dual Voronoi diagram are provided. |
| 26 | + |
| 27 | +### File Input / Output |
| 28 | + |
| 29 | +- Point set, polygon soup, and polygon mesh file I/O functions have been harmonized and documented: |
| 30 | + - Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). |
| 31 | + - Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). |
| 32 | + - Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). |
| 33 | + |
| 34 | +A comprehensive list of the supported file formats is available in the Stream_support package |
| 35 | +[here](https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats); |
| 36 | +inversely, the following [page](https://doc.cgal.org/5.3/Stream_support/IOStreamSupportedFileFormats.html) |
| 37 | +can be used to find out which CGAL data structures can be used given a specific file format. |
| 38 | + |
| 39 | +### [Requirements](https://doc.cgal.org/5.3/Manual/thirdparty.html) |
| 40 | + |
| 41 | +- The CMake minimal version is now `3.14`. |
| 42 | +- The GNU compiler g++ versions 6 and 7 are no longer tested. Only version 8.3 or later are supported |
| 43 | + |
| 44 | +### [2D and 3D Linear Geometry Kernel](https://doc.cgal.org/5.3/Manual/packages.html#PkgKernel23) |
| 45 | + |
| 46 | +- Added `is_translation()`, `is_scaling()`, `is_reflection()`, and `is_rotation()` to the classes |
| 47 | + [`Aff_transformation_2`](https://doc.cgal.org/5.3/Kernel_23/classCGAL_1_1Aff__transformation__2.html) |
| 48 | + and [`Aff_transformation_3`](https://doc.cgal.org/5.3/Kernel_23/classCGAL_1_1Aff__transformation__3.html), |
| 49 | + which enable determining if the transformations use a specialized representation internally. |
| 50 | + |
| 51 | +### [2D Regularized Boolean Set-Operations](https://doc.cgal.org/5.3/Manual/packages.html#PkgBooleanSetOperations2) |
| 52 | +- Added documentation for the free functions [`oriented_side(const Point_2& p, ....)`](https://doc.cgal.org/5.3/Boolean_set_operations_2/group__boolean__oriented__side.html) |
| 53 | + that accept a point and a polygon. |
| 54 | +- Documentation has been improved across the whole package. |
| 55 | + |
| 56 | +### [Polygon Mesh Processing](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing) |
| 57 | + |
| 58 | +- Added the class [`CGAL::Polyhedral_envelope`](https://doc.cgal.org/5.3/Polygon_mesh_processing/structCGAL_1_1Polyhedral__envelope.html), |
| 59 | + providing a way to quickly check if a primitive (point, segment, or triangle) |
| 60 | + is within a polyhedral envelope around a set of triangles. It is based on the work of |
| 61 | + Bolun Wang, Teseo Schneider, Yixin Hu, Marco Attene, and Daniele Panozzo. |
| 62 | + "Exact and efficient polyhedral envelope containment check." (ACM Trans. Graph., 39-4, July 2020). |
| 63 | +- Added more functions in the [visitor of the corefinement based methods](https://doc.cgal.org/5.3/Polygon_mesh_processing/classPMPCorefinementVisitor.html) |
| 64 | + to track all edge creations. |
| 65 | + |
| 66 | +### [Surface Mesh Topology](https://doc.cgal.org/5.3/Manual/packages.html#PkgSurfaceMeshTopologySummary) |
| 67 | +- Added the function [`CGAL::Surface_mesh_topology::Curves_on_surface_topology::is_homotopic_to_simple_cycle()`](https://doc.cgal.org/5.3/Surface_mesh_topology/classCGAL_1_1Surface__mesh__topology_1_1Curves__on__surface__topology.html#a8d7c4cba2cf2cff542f5cd93117233db), |
| 68 | + which can be used to determine whehter a closed path on a surface mesh can be continously |
| 69 | + transformed to a cycle without self intersection. |
| 70 | + |
| 71 | +### [Surface Mesh Simplification](https://doc.cgal.org/5.3/Manual/packages.html#PkgSurfaceMeshSimplification) |
| 72 | +- Added a filtering mechanism so that costly tests get only applied to the next candidate for the edge collapse. |
| 73 | +- Added the class [`Polyhedral_envelope_filter`](https://doc.cgal.org/5.3/Surface_mesh_simplification/classCGAL_1_1Surface__mesh__simplification_1_1Polyhedral__envelope__filter.html), |
| 74 | + which enables to perform mesh simplification inside a polyhedral envelope of the input mesh. |
| 75 | + |
| 76 | +### [2D Polyline Simplification](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolylineSimplification2) |
| 77 | +- When polylines have common subsequences of vertices, these subsequences may now be simplifified simultaneously. |
| 78 | + |
| 79 | +### [dD Triangulations](https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulations) |
| 80 | +- Added the function [`insert_if_in_star()`](https://doc.cgal.org/5.3/Triangulation/classCGAL_1_1Regular__triangulation.html#aa8df2d138f341939e834bcdd7cb6c71a) |
| 81 | + to the class [`CGAL::Regular_triangulation`](https://doc.cgal.org/5.3/Triangulation/classCGAL_1_1Regular__triangulation.html), |
| 82 | + which enables users to insert a point `p` in a regular triangulation on the condition that `p` |
| 83 | + appears post-insertion in the star of a user-specified, existing vertex. |
| 84 | + |
| 85 | +### [2D and 3D Alpha Shapes](https://doc.cgal.org/5.3/Manual/packages.html#PkgAlphaShapes2) |
| 86 | +- **Breaking change**: The following deprecated classes have been removed: `Alpha_shape_euclidean_traits_2`, |
| 87 | + `Weighted_alpha_shape_euclidean_traits_2`, `Alpha_shape_euclidean_traits_3`, and |
| 88 | + `Weighted_alpha_shape_euclidean_traits_3`. All CGAL kernel can be used directly as models |
| 89 | + of the concepts of the 2D and 3D Alpha Shape packages. |
| 90 | + |
| 91 | +### [Classification](https://doc.cgal.org/5.3/Manual/packages.html#PkgClassification) |
| 92 | +- **Breaking change**: the support for TensorFlow has been dropped; the |
| 93 | + classifier `CGAL::TensorFlow::Neural_network_classifier` has been removed. |
0 commit comments