CGAL 4.4 released

CGAL 4.4 released


Download CGAL-4.4

CGAL-4.4 documentation

CGAL 4.4 offers the following improvements and new functionality over CGAL 4.3:

Changelog

Installation

  • 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.

Number Types

  • A new class CGAL::Mpzf is 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 such as Exact_predicates_exact_constructions_kernel.

2D Regularized Boolean Set-Operations

  • Fixed two memory leaks in CGAL::General_polygon_set_2.

Combinatorial Maps and Linear Cell Complex

  • null_dart_handle is no longer a static data member in the CombinatorialMap concept. This implies to move the following methods of Dart concept into CombinatorialMap concept: is_free, highest_nonfree_dimension, opposite and other_extremity. We also transform the static methods vertex_attribute and point of Linear_cell_complex class into non static methods. You can define the CGAL_CMAP_DEPRECATED macro to keep the old behavior.

2D Arrangements

  • 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

2D Triangulations

  • Added different overloads of the function insert_constraints that 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_3 to give access to the alpha status of edges and facets (get_alpha_status()).
  • 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 number_of_facets and number_of_cells in Mesh_complex_3_in_triangulation_3.
  • 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_3 to (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 a named-parameter edge_is_constrained_map to the function edge_collapse

dD Spatial Searching

  • Fixed a documentation bug: The property map passed as template parameter to the classes Search_traits_adapter and Distance_adapter must 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.

CGAL ipelets

  • 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