CGAL 4.9 offers the following improvements and new functionality over CGAL 4.8:
Changelog
Header-only mode
- CGAL can now be used in headers only mode, i.e. without compiling the CGAL libraries and linking with these libraries when compiling examples, tests and demos. Note that running CMake on CGAL is still required in order to generate some configuration files.
Cone Based Spanners (new package)
- This package provides algorithms for constructing two kinds of cone-based spanners: Yao graph and Theta graph, given a set of vertices on the plane and the directions of cone boundaries.
2D Minkowski Sums
- Introduced a convex decomposition strategy, namely
Polygon_nop_decomposition_2
, that merely passed the input polygon to the list of output polygons. - Introduced overloads of the function
minkowski_sum_2()
, which accepts 2 decomposition strategies. - Introduced an overloaded function called
minkowski_sum_by_decomposition_2(P, Q, decom_no_holes, decomp_with_holes)
, which computes the 2D Minkowski sum using optimal choices of decomposition strategies.
Combinatorial Maps
- Deprecated global functions (
make_combinatorial_hexahedron()
,make_combinatorial_polygon()
,make_combinatorial_tetrahedron()
,make_edge()
,insert_cell_0_in_cell_1()
,insert_cell_0_in_cell_2()
,insert_cell_1_in_cell_2()
,insert_cell_2_in_cell_3()
,insert_dangling_cell_1_in_cell_2()
,is_insertable_cell_1_in_cell_2()
,is_insertable_cell_2_in_cell_3()
,is_removable()
,remove_cell()
) which are now member functions in theCombinatorialMap
concept. - It is not longer possible to use the old API switched on by defining
the macro
CGAL_CMAP_DEPRECATED
. This API was deprecated since CGAL 4.4.
Point Set Processing
- New function
CGAL::read_ply_custom_points()
that allows the user to read any additional point attribute from a PLY input point set. CGAL::structure_point_set()
: new algorithm that takes advantage of detected planes to produce a structured point set (with flat regions, sharp edges and vertices).
Point Set Shape Detection
- New post-processing algorithm:
CGAL::regularize_planes()
. This allows the user to favor parallelism, orthogonality, coplanarity and/or axial symmetry between detected planes.
Polygon Mesh Processing
- Added the function
CGAL::Polygon_mesh_processing::is_polygon_soup_a_polygon_mesh()
to check whether a polygon soup is a polygon mesh. - Added some new features to
CGAL::isotropic_remeshing()
:- It is now possible to select fixed vertices that survive the remeshing process, and to keep face attributes such as colors valid after remeshing.
- The user can choose the number of relaxation steps happening at each loop, and to run 1-dimensional relaxation along constrained polylines.
- The functions
CGAL::Polygon_mesh_processing::triangulate_face()
andCGAL::Polygon_mesh_processing::triangulate_faces()
now indicate whether some faces have not been triangulated.
Surface Mesh Deformation
- Added a new tag
SRE_ARAP
to use the Smoothed Rotation Enhanced As-Rigid-As-Possible deformation algorithm.
3D Fast Intersection and Distance Computation
- Added the functions
AABB_tree::first_intersection()
andAABB_tree::first_intersected_primitive()
that compute the intersection which is closest to the source of a ray
CGAL and the Boost Graph Library (BGL)
- Added a helper function
CGAL::copy_face_graph()
to copy a source FaceListGraph into another FaceListGraph of different type. - Added a class
CGAL::Dual
that creates the dual view of aFaceGraph
and a creation functionCGAL::dual(primal)
.
CGAL and Boost Property Maps
- It is not longer possible to use the old API of the property maps
provided by CGAL, switched on by defining the macro
CGAL_USE_PROPERTY_MAPS_API_V1
. This API was deprecated since CGAL 4.3.