CGAL 3.8 offers the following improvements and new functionality over CGAL 3.7:
- Boost version 1.39 (or later) is now required.
- Initial support for the LLVM Clang compiler (prereleases of version 2.9).
- Full support for the options -strict-ansi of the Intel Compiler 11, and -ansi of the GNU g++ compiler.
- Added a concept of ranges. In the following releases, it will be the way to provide a set of objects (vs. a couple of iterators).
- Fixed a memory leak in CORE polynomials.
- Various fixes in the manual.
3D Mesh Generation (major new feature added)
- Adding the possibility to handle sharp features: the 3D Mesh generation package now offers the possibility to get in the final mesh an accurate representation of 1-dimensional sharp features present in the description of the input domain.
2D Triangulations (major new feature added)
- Added a way to efficiently insert a range of points with information into a 2D Delaunay and regular triangulation.
- Added member function
mirror_edge()taking an edge as parameter.
- Fixed an infinite loop in constrained triangulation.
3D Triangulations (major new feature added)
- Added a way to efficiently insert a range of points with information into a 3D Delaunay and regular triangulation.
- Added a member function to remove a cluster of points from a Delaunay or regular triangulation.
- The function
vertices_on_conflict_zone_boundary()for Delaunay and regular triangulation. Function
vertices_inside_conflict_zone()is added to regular triangulation.
- Structural filtering is now internally used in the
locate()function of Delaunay and regular triangulation. It improves average construction time by 20%.
- Added demo.
3D Alpha Shapes (major new feature added)
- The new class
Fixed_alpha_shape_3provides a robust and faster way to compute one alpha shape (with a fixed value of alpha).
- Adding the possibility to iteratively add primitives to an existing tree and to build it only when no further insertion is needed.
2D and 3D Kernel
- Better handling of 2D points with elevation (3D points projected
onto trivial planes). More general traits classes (
Projection_traits_yz_3) are provided to work with triangulations, algorithms on polygons, alpha-shapes, convex hull algorithm… Usage of former equivalent traits classes in different packages is now deprecated.
Exact_predicates_exact_constructions_kernelnow better use the static filters which leads to performance improvements.
- Add an overload for the global function angle, taking three 3D points.
- In the 2D and 3D kernel concept, the constant Boolean
Has_filtered_predicates is now deprecated. It is now required to
use Has_filtered_predicates_tag (being either
Compare_distance_3provide additional operators for 3 and 4 elements.
- Add intersection test and intersection computation capabilities
between an object of type
Ray_3and either an object of type
- Improve intersection test performance between an object of type
Bbox_3and an object of type
Triangle_3by avoiding arithmetic filter failures.
- Env_default_diagram_1 is deprecated, Envelope_diagram_1 should be used instead.
- A new demo program called
L1_Voronoi_diagram_2has been introduced. It demonstrates how 2D Voronoi diagrams of points under the L1 metric are constructed using lower envelopes.
- Added functor
Geometric Object Generators
- Added to
CGAL::Randoma way to generate random integers.
- Added generators for dD points.
Algebraic_structure_traitsnow provides an Inverse functor for Fields. There is also a new global function inverse.
- dD Min sphere of spheres has a new traits class for the min sphere of points.
Triangulated Surface Mesh Simplification
- The priority queue internally used to prioritize edge simplifications is no longer a relaxed heap but a binomial heap. This fix guarantees that all edges satisfying a simplification criteria are removed (if possible).
3D Boolean Operations on Nef Polyhedra
- Allow construction of a 3D nef polyhedron from a 3D polyhedron with normals.
- Fixe a bug in the method insert_at_vertices of the
- Fixed several bugs in the traits class
Arr_Bezier_curve_traits_2for arrangement of Bezier curves.
2D Minkowski Sums
- A bug in the convolution method was fixed.