CGAL 3.7 beta released

CGAL/cgal

CGAL 3.7 beta released


Download CGAL-3.7 beta

CGAL-3.7 beta documentation

CGAL 3.7 offers the following improvements and new functionality over CGAL 3.6.1:

Changelog

General

  • The configuration of CGAL libraries now requires CMake>=2.6.
  • Changes in the set of supported platforms:
    • GNU g++ 4.5 supported (with or without the compilation option -std=c++0x).
    • Initial support for the option -strict-ansi of the Intel Compiler 11. The CGAL libraries compile with that option, and most CGAL headers have been fixed. The packages “3D Boolean Operations on Nef Polyhedra” (Nef_3), “Convex Decomposition of Polyhedra” (Convex_decomposition_3), and “3D Minkowski Sum of Polyhedra” (Minkowski_sum_3) are known to still fail to compile with that compiler flag.
    • The Microsoft Windows Visual C++ compiler 2010 (VC10), that was experimentally supported by CGAL-3.6.1, is now fully supported. Note that CMake>=2.8.2 is required for that support.
    • The Microsoft Windows Visual C++ compiler 2005 (VC8) is no longer supported by the CGAL project since CGAL-3.7.
    • With Microsoft Windows Visual C++ (VC9 and VC10), the optional dependencies Gmp, Mpfr, Blas, Lapack, Taucs no longer use Boost-style name mangling. Only one variant is now provided by the CGAL Windows installer (release, with dynamic runtime).
  • Some demos now require a version of Qt4 >= 4.3.
  • CGAL_PDB is no longer provided with CGAL. An alternative solution for people interested in reading PDB files is to use ESBTL (http://esbtl.sourceforge.net/).
  • Fixed issues of the CGAL wrappers around the CORE library, on 64 bits platforms.

Arithmetic and Algebra

  • New models Algebraic_kernel_d_1 and Algebraic_kernel_d_2 for the corresponding concepts. They provide generic support for various coefficient types.

Arrangements

  • A new model Arr_algebraic_segment_traits_2 of ArrangementTraits_2 that supports algebraic curves of arbitrary degree in the plane

2D Triangulations

  • The Delaunay and regular 2D triangulations now use a symbolic perturbation to choose a particular triangulation in co-circular cases.
  • The return type of the template member function insert(It beg, It end), taking an iterator range of points, has been changed from int to std::ptrdiff_t.
  • Classes Triangulation_euclidean_traits_xy_3, Triangulation_euclidean_traits_yz_3 and Triangulation_euclidean_traits_xz_3 are now model of the concept ConstrainedTriangulationTraits_2. They can be used with and without intersection of constraints.
  • 2D Delaunay and basic triangulations now provide vertex relocation by the mean of these two new methods: move and move_if_no_collision. The methods are also available for the hierarchy (Triangulation_hierarchy_2).

3D Triangulations

  • The return type of the template member function insert(It beg, It end), taking an iterator range of points, has been changed from int to std::ptrdiff_t.
  • 3D Delaunay triangulations now provide vertex relocation by the mean of these two new methods: move and move_if_no_collision. This works in both Compact_policy and Fast_policy.

2D and 3D Alpha Shapes

  • The type int in the API has been changed to std::size_t so that CGAL can deal with large data sets (64 bit addresses).

2D Mesh Generation

  • The execution of the 2D mesh generator is now deterministic (same at each run).

3D Mesh Generation

  • The efficiency of the 3D mesh generator has been improved (the number of calls to the oracle per inserted vertex has globally decrease). This is achieved through a slight change of the mesh generator strategy which implies that a surface component that is not detected at the surface mesher level will never be discovered by chance, owing to the refinement of some tetrahedra, as it could happen before. Please note that defining the macro CGAL_MESH_3_USE_OLD_SURFACE_RESTRICTED_DELAUNAY_UPDATE switches back to the old behavior.
  • A demo program is now available.

Surface Reconstruction from Point Sets

  • Improved performance and minor bug fix.
  • The type int in the API has been changed to std::size_t so that CGAL can deal with large data sets (64 bit addresses).