CGAL 4.4 offers the following improvements and new functionality over CGAL 4.3:
- Additional supported platforms:
- The Apple Clang compiler version 5.0 is now supported on OS X Mavericks.
- The Microsoft Windows Visual C++ compiler 2013 (VC12) is now supported.
Triangulated Surface Mesh Segmentation (new package)
- This package implements the segmentation of triangulated surface meshes based on the Shape Diameter Function (SDF). In addition, it also provides functions to generate segmentations based on a user defined alternative to the SDF.
- A new class
CGAL::Mpzfis introduced on some platforms for exact ring operations. It is used to improve the speed of the evaluation of predicates in degenerate situations.
2D and 3D Geometry Kernel
- Fixed a bug introduced in CGAL 4.3 when computing the intersection of two 3D triangles.
2D Polygon Partitioning
- Bug-fix to make the partition algorithms working with a Lazy kernel
2D Regularized Boolean Set-Operations
- Fixed two memory leaks in
Combinatorial Maps and Linear Cell Complex
null_dart_handleis no longer a static data member in the
CombinatorialMapconcept. This implies to move the following methods of
other_extremity. We also transform the static methods
Linear_cell_complexclass into non static methods. You can define the CGAL_CMAP_DEPRECATED macro to keep the old behavior.
- Revised the API of polylines. In particular, construction is now done using functors and iteration is possible only on the segments of a polyline.
- Fix a bug in the Landmark point-location strategy.
2D Snap Rounding
- Fixed a memory leak
- Added different overloads of the function
insert_constraintsthat inserts a range of points and segments, or a range of segments. These functions uses the spatial sorting in order to speed up the time needed for the insertion.
3D Alpha Shapes
- Added member functions in
CGAL::Alpha_shape_3to give access to the alpha status of edges and facets (
- Added another filtration method (
filtration_with_alpha_values()) that reports the alpha value at which each face appears in the filtration.
3D Mesh Generation
- Fixed the access to functions
- Changed the internal API of the sliver perturber, to make possible for developers to optimize another criterion than the (default) minimal dihedral angle. Developers can also define a new perturbation vector (for angles we had gradient of squared circumradius, gradient of volume, gradient of minimal dihedral angle, and random) which is better suitable to optimize their criterion.
- Improved the use of cache values in
Mesh_cell_base_3to (re)compute circumcenters and sliver criterion values only when needed.
Triangulated Surface Mesh Simplification
- Fixed a bug in the way edges can be marked as non-removable by adding
edge_is_constrained_mapto the function
dD Spatial Searching
- Fixed a documentation bug: The property map passed as template
parameter to the classes
Distance_adaptermust be a lvalue property map. To avoid incorrect usage, a static assertion has been added in the CGAL code to prevent the user from instantiating these classes with an incorrect property map type.
- Better description of the demo ipelets in the user manual
- New ipelet for pencils of circles
- New ipelet for hyperbolic geometry in Poincaré model
- The generator ipelet now generates point in a selected zone
- Hilbert sort ipelet implements two policies