CGAL 3.5 released

CGAL/cgal

CGAL 3.5 released


Download CGAL-3.5

CGAL-3.5 documentation

CGAL releases will now be published about every six months. As a transition release, CGAL-3.5 has been developed in a 9 months period, starting from the release CGAL-3.4.

CGAL 3.5 differs from CGAL 3.4 in the platforms that are supported and in functionality. There have also been a number of bug fixes for this release.

Changelog

General

  • Additional supported platforms:
    • GNU g++ 4.4 supported.
    • Intel Compiler 11 supported on Linux
  • Fixed ABI incompatibilities when mixing CGAL and Boost Program Options on Windows/Visual C++ (the compilation flag -D_SECURE_SCL=0 is no longer used in Debug mode).

Geometry Kernels

3D Spherical Geometry Kernel

  • Add functionalities to manipulate circles, circular arcs and points that belong to the same sphere.

Polygons

2D Regularized Boolean Set-Operations

  • The polygon validation operations were enhanced and their interface was improved. They are now offered as free functions and applied properly.

2D Straight Skeleton and Polygon Offsetting

  • Updated the manual to document the new partial skeletons feature (already in the code since 3.4)

Arrangements

2D Arrangements

  • The member function is_at_infinity() of Arrangement_2::Vertex was replaced by the new function is_at_open_boundary(). The former is deprecated. While still supported in version 3.5, It will not be supported in future releases. The member functions boundary_type_in_x() and boundary_type_in_y() were permanently replaced by the functions parameter_space_in_x()` and parameter_space_in_y(), respectively. The 2 new functions return an enumeration of a new type, namely Arr_parameter_space.
  • The tags in the geometry traits that indicate the type of boundary of the embedding surface were replaced by the following new tags: Arr_left_side_tag, Arr_bottom_side_tag, Arr_top_side_tag, and Arr_right_side_tag In addition, the code was change, and now it is possible not to indicate the tags at all. Default values are assumed. This however will produce warning messages, and should be avoided.
  • All operations of the geometry traits-class were made ‘const’. This change was reflected in the code of this package and all other packages that are based on it. Traits classes that maintain state, should declare the data members that store the state as mutable.

Envelopes of Surfaces in 3D

  • A few bugs in the code that computes envelopes were fixed, in particular in the code that computes the envelopes of planes.

Triangulations and Delaunay Triangulations

3D Periodic Triangulations (new package)

  • This package allows to build and handle triangulations of point sets in the three dimensional flat torus. Triangulations are built incrementally and can be modified by insertion or removal of vertices. They offer point location facilities.

Mesh Generation

Surface Reconstruction from Point Sets (new package)

  • This CGAL package implements an implicit surface reconstruction method: Poisson Surface Reconstruction. The input is an unorganized point set with oriented normals.

3D Mesh Generation (new package)

  • This package generates 3 dimensional meshes. It computes isotropic simplicial meshes for domains or multidomains provided that a domain descriptor, able to answer queries from a few different types on the domain, is given. In the current version, Mesh_3 generate meshes for domain described through implicit functional, 3D images or polyhedral boundaries. The output is a 3D mesh of the domain volume and conformal surface meshes for all the boundary and subdividing surfaces.

Geometry Processing

Triangulated Surface Mesh Simplification

  • Breaking change: in the passing of the visitor object.
  • Fixed a bug in the link_condition test
  • Added a geometric test to avoid folding of facets
  • Fixed a bug in the handling of overflow in the LindstromTurk computations.
  • Updated the manual to account for the new visitor interface.

Point Set Processing (new package)

  • This packages implements a set of algorithms for analysis, processing, and normal estimation and orientation of point sets.

Spatial Searching and Sorting

AABB tree (new package)

  • This package implements a hierarchy of axis-aligned bounding boxes (a AABB tree) for efficient intersection and distance computations between 3D queries and sets of input 3D geometric objects.

Support Library

CGAL_ipelets (new package):

  • Object that eases the writing of Ipe’s plugins that use CGAL. Plugins for CGAL main 2D algorithm are provided as demo.