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 theCombinatorialMap
concept. This implies to move the following methods ofDart
concept intoCombinatorialMap
concept:is_free
,highest_nonfree_dimension
,opposite
andother_extremity
. We also transform the static methodsvertex_attribute
andpoint
ofLinear_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
andnumber_of_cells
inMesh_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 functionedge_collapse
dD Spatial Searching
- Fixed a documentation bug: The property map passed as template
parameter to the classes
Search_traits_adapter
andDistance_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