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