CGAL 3.8 offers the following improvements and new functionality :
- Boost version 1.39 at least 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.
- Adding a concept of ranges. In the following releases, it will be the way to provide a set of objects (vs. a couple of iterators).
- Fix 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)
- Add a way to efficiently insert a range of points with information into a 2D Delaunay and regular triangulation.
- Add member function mirror_edge taking an edge as parameter.
- Fix an infinite loop in constrained triangulation.
3D Triangulations (major new feature added)
- Add a way to efficiently insert a range of points with information into a 3D Delaunay and regular triangulation.
- Add a member function to remove a cluster of points from a Delaunay or regular triangulation.
- function vertices_in_conflict is renamed 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 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_3 provides 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_xy_3, Projection_traits_yz_3,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_kernel now 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 Tag_true or Tag_false).
- Compare_distance_2 and Compare_distance_3 provide additional operators for 3 and 4 elements.
- Add intersection test and intersection computation capabilities between an object of type Ray_3 and either an object of type Line_3, Segment_3 or Ray_3.
- Improve intersection test performance between an object of type Bbox_3 and an object of type Plane_3 or Triangle_3 by 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_2 has been introduced. It demonstrates how 2D Voronoi diagrams of points under the L1 metric are constructed using lower envelopes.
- Add functor Compute_coordinate_d to Kernel_d concept.
Geometric Object Generators
- CGAL::Random uses boost::rand48 instead of std::rand.
- Adding to CGAL::Random a way to generate random integers.
- Adding generators for dD points.
- Algebraic_structure_traits now 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.
- Fix a bug in the method insert_at_vertices of the Arrangement_2 class.
- Fix several bugs in the traits class Arr_Bezier_curve_traits_2 for arrangement of Bezier curves.
2D Minkowski Sums
- A bug in the convolution method was fixed.