diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md
index eedff533fb5..5d5986ab124 100644
--- a/Installation/CHANGES.md
+++ b/Installation/CHANGES.md
@@ -713,7 +713,7 @@ Release date: June 2022
### [2D Straight Skeleton and Polygon Offsetting](https://doc.cgal.org/5.5/Manual/packages.html#PkgStraightSkeleton2) (breaking change)
-- Fix the output of the function [CGAL::create_exterior_skeleton_and_offset_polygons_with_holes_2()](https://doc.cgal.org/5.5/Straight_skeleton_2/group__PkgStraightSkeleton2OffsetFunctions.html#gaa159f093e5d6d7fdb62c1660a44f95fe)
+- Fix the output of the function [`CGAL::create_exterior_skeleton_and_offset_polygons_with_holes_2()`](https://doc.cgal.org/5.5/Straight_skeleton_2/group__PkgStraightSkeleton2OffsetFunctions.html#gaa159f093e5d6d7fdb62c1660a44f95fe)
to not take into account the offset of the outer frame.
- Fix the computation of the exterior offset of a polygon with holes that was not computing the offset of the holes
@@ -1196,7 +1196,7 @@ Release date: September 2020
### Installation
-- The CGAL\_Core library no longer requires `Boost.Thread`, even if the g++ compiler is used.
+- The `CGAL_Core` library no longer requires `Boost.Thread`, even if the g++ compiler is used.
- The minimal supported version of Boost is now 1.66.0.
### [Tutorials](https://doc.cgal.org/5.1/Manual/tutorials.html)
@@ -1551,7 +1551,7 @@ Release date: November 2019
- Introduced a new face base class, [`Triangulation_face_base_with_id_2`](https://doc.cgal.org/5.0/BGL/classCGAL_1_1Triangulation__face__base__with__id__2.html)
which enables storing user-defined integer IDs in the face of any 2D triangulation, a precondition to use some
BGL algorithms.
-- Added range types and functions that return ranges, for example for all vertices, enabling the use of `C++11` `for`-loops.
+- Added range types and functions that return ranges, for example for all vertices, enabling the use of C++11 for-loops.
See [this new example](https://doc.cgal.org/5.0/Triangulation_2/Triangulation_2_2for_loop_2_8cpp-example.html) for a usage demonstration.
### [3D Triangulations](https://doc.cgal.org/5.0/Manual/packages.html#PkgTriangulation3)
@@ -2255,7 +2255,7 @@ Release date: September 2017
### Surface Mesh
- **Breaking change**:
- `operator >>(std::istream&, Surface_mesh&)` no longer clears
+ `operator >>(std::istream&, Surface_mesh&)` no longer clears
the surface mesh.
### Triangulated Surface Mesh Parameterization (breaking change)
@@ -2465,7 +2465,7 @@ Release date: May 2017
they have a valid commercial license for the packages they used.
This can also be used to make sure only LGPL header files are used.
- Because of a bug in the g++ compiler about the C++11 keyword
- `thread_local`, the CGAL\_Core library now always requires
+ `thread_local`, the `CGAL_Core` library now always requires
`Boost.Thread` if the g++ compiler is used.
### Generalized Maps (new package)
@@ -2916,7 +2916,7 @@ Release date: October 2015
3.1, 3.2, and 3.3 are supported.
- All Qt4 demos have been updated and now require Qt5 to be compiled.
Qt5 version 5.3 or higher is required. The support for Qt4 is
- dropped. To compile libCGAL\_Qt5 and demos, you must set the cmake
+ dropped. To compile `libCGAL_Qt5` and demos, you must set the cmake
or environment variable `Qt5_DIR` to point to the path to the
directory containing the file `Qt5Config.cmake` created by your Qt5
installation. If you are using the open source edition it should be
@@ -3002,7 +3002,7 @@ Release date: October 2015
### dD Geometry Kernel
-- Epick\_d gains 3 new functors: `Construct_circumcenter_d`,
+- `Epick_d` gains 3 new functors: `Construct_circumcenter_d`,
`Compute_squared_radius_d`, `Side_of_bounded_sphere_d`. Those are
essential for the computation of alpha-shapes.
@@ -3442,7 +3442,7 @@ Release date: April 2014
`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
+ non static methods. You can define the `CGAL_CMAP_DEPRECATED` macro
to keep the old behavior.
### 2D Arrangements
@@ -3588,7 +3588,7 @@ Release date: October 2013
- Two bug fixes: do not use the 2 least significant bits for cell
attribute without dart support; share the mark when copying a
- CMap\_cell\_iterator.
+ `CMap_cell_iterator`.
- Add a constructor taking a given combinatorial map as argument,
possibly with different dimension and/or different attributes. This
allows to transform a combinatorial map.
@@ -3648,15 +3648,15 @@ Release date: October 2013
- Introduce new data structures and options for speed-up and
compacity. Note that `Compact_mesh_cell_base_3` and
`Mesh_vertex_base_3` are now our favored implementations of the
- concepts MeshCellBase\_3 and MeshVertexBase\_3.
+ concepts `MeshCellBase_3` and `MeshVertexBase_3`.
- Introduce a new constructor for `Polyhedral_mesh_domain_3` that
takes a bounding polyhedron to be meshed along with a polyhedral
surface entirely included in it. This allows the user to mesh a
polyhedral domain with internal surface(s) which can be
non-watertight and even non-manifold.
- Several documentation bug fixes.
-- Provide the ability to plug in custom cell\_base/vertex\_base
- classes into the Mesh\_triangulation\_3 class.
+- Provide the ability to plug in custom `cell_base`/`vertex_base`
+ classes into the `Mesh_triangulation_3` class.
### Triangulated Surface Mesh Simplification
@@ -3700,7 +3700,7 @@ Release date: October 2013
- Add a `FindTBB` CMake module so that one can easily link with TBB to
write shared-memory parallel code.
-- Introduce two new tags: Sequential\_tag and Parallel\_tag
+- Introduce two new tags: `Sequential_tag` and `Parallel_tag`
## Release 4.2
@@ -3766,7 +3766,7 @@ Release date: March 2013
### 2D Voronoi Diagram Adaptor
-- Bug-fix: Add ccb() method in face type as documented.
+- Bug-fix: Add `ccb()` method in face type as documented.
### 3D Minkowski Sum of Polyhedra
@@ -3806,7 +3806,7 @@ Release date: October 2012
on Mac OS X.
- Improved configuration for essential and optional external third
party software
-- Added more general script to create CMakeLists.txt files:
+- Added more general script to create `CMakeLists.txt` files:
`cgal_create_CMakeLists`
- Availability tests for C++11 features are now performed with the
help of [Boost.Config](https://www.boost.org/libs/config). A Boost
@@ -3837,9 +3837,9 @@ Release date: October 2012
### Kernels
-- All Kernel functors now support the result\_of protocol.
+- All Kernel functors now support the `result_of` protocol.
-### STL\_Extensions for CGAL
+### `STL_Extensions` for CGAL
- The namespace `cpp0x` has been renamed `cpp11`. The old name is
still available for backward compatibility.
@@ -4023,7 +4023,7 @@ CGAL-4.x series is released under:
standard versions if available on the platform. Otherwise,
`boost::next` and `boost::prior` are used.
-### Triangulation\_2
+### `Triangulation_2`
- Fix a thread-safety issue in `Delaunay_triangulation_2` remove
functions. As usual in CGAL, the small overhead introduced for
@@ -4118,10 +4118,12 @@ CGAL 3.9 offers the following improvements and new functionality :
- The tags in the geometry traits that indicate the type of boundary
of the embedding surface were replaced by the following new tags:
- Left_side_category
- Bottom_side_category
- Top_side_category
- Right_side_category
+ ```c++
+ Left_side_category
+ Bottom_side_category
+ Top_side_category
+ Right_side_category
+ ```
It is still possible not to indicate the tags at all. Default values
are assumed. This however will produce warning messages, and should
@@ -4156,7 +4158,7 @@ CGAL 3.8 offers the following improvements and new functionality :
- Add a way to efficiently insert a range of points with information
into a 2D Delaunay and regular triangulation.
-- Add member function mirror\_edge taking an edge as parameter.
+- Add member function `mirror_edge` taking an edge as parameter.
- Fix an infinite loop in constrained triangulation.
### 3D Triangulations (major new feature added)
@@ -4165,9 +4167,9 @@ CGAL 3.8 offers the following improvements and new functionality :
into a 3D Delaunay and regular triangulation.
- Add a member function to remove a cluster of points from a Delaunay
or regular triangulation.
-- function vertices\_in\_conflict is renamed
- vertices\_on\_conflict\_zone\_boundary for Delaunay and regular
- triangulation. Function vertices\_inside\_conflict\_zone is added to
+- function `vertices_in_conflict` is renamed
+ `vertices_on_conflict_zone_boundary` for Delaunay and regular
+ triangulation. Function `vertices_inside_conflict_zone` is added to
regular triangulation.
- Structural filtering is now internally used in locate function of
Delaunay and regular triangulation. It improves average construction
@@ -4176,7 +4178,7 @@ CGAL 3.8 offers the following improvements and new functionality :
### 3D Alpha Shapes (major new feature added)
-- The new class Fixed\_alpha\_shape\_3 provides a robust and faster
+- The new class `Fixed_alpha_shape_3` provides a robust and faster
way to compute one alpha shape (with a fixed value of alpha).
### AABB tree
@@ -4188,31 +4190,31 @@ CGAL 3.8 offers the following improvements and new functionality :
- Better handling of 2D points with elevation (3D points projected
onto trivial planes). More general traits classes
- (Projection\_traits\_xy\_3,
- Projection\_traits\_yz\_3,Projection\_traits\_yz\_3) are provided to
+ (`Projection_traits_xy_3`,
+ `Projection_traits_yz_3`,`Projection_traits_yz_3`) are provided to
work with triangulations, algorithms on polygons, alpha-shapes,
convex hull algorithm... Usage of former equivalent traits classes
in different packages is now deprecated.
-- Exact\_predicates\_exact\_constructions\_kernel now better use the
+- `Exact_predicates_exact_constructions_kernel` now better use the
static filters which leads to performance improvements.
- Add an overload for the global function angle, taking three 3D
points.
- In the 2D and 3D kernel concept, the constant Boolean
- Has\_filtered\_predicates is now deprecated. It is now required to
- use Has\_filtered\_predicates\_tag (being either Tag\_true or
- Tag\_false).
-- Compare\_distance\_2 and Compare\_distance\_3 provide additional
+ `Has_filtered_predicates` is now deprecated. It is now required to
+ use `Has_filtered_predicates_tag` (being either `Tag_true` or
+ `Tag_false`).
+- `Compare_distance_2` and `Compare_distance_3` provide additional
operators for 3 and 4 elements.
- Add intersection test and intersection computation capabilities
- between an object of type Ray\_3 and either an object of type
- Line\_3, Segment\_3 or Ray\_3.
+ between an object of type `Ray_3` and either an object of type
+ `Line_3`, `Segment_3` or `Ray_3`.
- Improve intersection test performance between an object of type
- Bbox\_3 and an object of type Plane\_3 or Triangle\_3 by avoiding
+ `Bbox_3` and an object of type `Plane_3` or `Triangle_3` by avoiding
arithmetic filter failures.
### 2D Envelope
-- Env\_default\_diagram\_1 is deprecated, Envelope\_diagram\_1 should
+- `Env_default_diagram_1` is deprecated, `Envelope_diagram_1` should
be used instead.
### 3D Envelope
@@ -4223,17 +4225,17 @@ CGAL 3.8 offers the following improvements and new functionality :
### dD Kernel
-- Add functor Compute\_coordinate\_d to Kernel\_d concept.
+- Add functor `Compute_coordinate_d` to `Kernel_d` concept.
### Geometric Object Generators
-- CGAL::Random uses boost::rand48 instead of std::rand.
-- Adding to CGAL::Random a way to generate random integers.
+- `CGAL::Random` uses `boost::rand48` instead of `std::rand`.
+- Adding to `CGAL::Random` a way to generate random integers.
- Adding generators for dD points.
### Algebraic Foundations
-- Algebraic\_structure\_traits now provides an Inverse functor for
+- `Algebraic_structure_traits` now provides an Inverse functor for
Fields. There is also a new global function inverse.
### Bounding Volumes
@@ -4255,9 +4257,9 @@ CGAL 3.8 offers the following improvements and new functionality :
### 2D Arrangements
-- Fix a bug in the method insert\_at\_vertices of the Arrangement\_2
+- Fix a bug in the method `insert_at_vertices` of the `Arrangement_2`
class.
-- Fix several bugs in the traits class Arr\_Bezier\_curve\_traits\_2
+- Fix several bugs in the traits class `Arr_Bezier_curve_traits_2`
for arrangement of Bezier curves.
### 2D Minkowski Sums
@@ -4279,9 +4281,9 @@ CGAL 3.7 offers the following improvements and new functionality :
- Initial support for the option -strict-ansi of the Intel
Compiler 11. The CGAL libraries compile with that option, and
most CGAL headers have been fixed. The packages "3D Boolean
- Operations on Nef Polyhedra" (Nef\_3), "Convex Decomposition of
- Polyhedra" (Convex\_decomposition\_3), and "3D Minkowski Sum of
- Polyhedra" (Minkowski\_sum\_3) are known to still fail to
+ Operations on Nef Polyhedra" (`Nef_3`), "Convex Decomposition of
+ Polyhedra" (`Convex_decomposition_3`), and "3D Minkowski Sum of
+ Polyhedra" (`Minkowski_sum_3`) are known to still fail to
compile with that compiler flag.
- The Microsoft Windows Visual C++ compiler 2010 (VC10), that was
experimentally supported by CGAL-3.6.1, is now fully supported.
@@ -4293,7 +4295,7 @@ CGAL 3.7 offers the following improvements and new functionality :
Boost-style name mangling. Only one variant is now provided by
the CGAL Windows installer (release, with dynamic runtime).
- Some demos now require a version of Qt4 >= 4.3.
-- CGAL\_PDB is no longer provided with CGAL. An alternative solution
+- `CGAL_PDB` is no longer provided with CGAL. An alternative solution
for people interested in reading PDB files is to use ESBTL
().
- Fix issues of the CGAL wrappers around the CORE library, on 64 bits
@@ -4301,14 +4303,14 @@ CGAL 3.7 offers the following improvements and new functionality :
### Arithmetic and Algebra
-- New models Algebraic\_kernel\_d\_1 and Algebraic\_kernel\_d\_2 for
+- New models `Algebraic_kernel_d_1` and `Algebraic_kernel_d_2` for
the corresponding concepts. They provide generic support for various
coefficient types
### Arrangements
-- A new model Arr\_algebraic\_segment\_traits\_2 of
- ArrangementTraits\_2 that supports algebraic curves of arbitrary
+- A new model `Arr_algebraic_segment_traits_2` of
+ `ArrangementTraits_2` that supports algebraic curves of arbitrary
degree in the plane
### 2D Triangulations
@@ -4318,29 +4320,29 @@ CGAL 3.7 offers the following improvements and new functionality :
cases.
- The return type of the template member function insert(It beg, It
end), taking an iterator range of points, has been changed from int
- to std::ptrdiff\_t.
-- Classes Triangulation\_euclidean\_traits\_xy\_3,
- Triangulation\_euclidean\_traits\_yz\_3 and
- Triangulation\_euclidean\_traits\_xz\_3 are now model of the concept
- ConstrainedTriangulationTraits\_2. They can be used with and without
+ to `std::ptrdiff_t`.
+- Classes `Triangulation_euclidean_traits_xy_3`,
+ `Triangulation_euclidean_traits_yz_3` and
+ `Triangulation_euclidean_traits_xz_3` are now model of the concept
+ `ConstrainedTriangulationTraits_2`. They can be used with and without
intersection of constraints.
- 2D Delaunay and basic triangulations now provide vertex relocation
by the mean of these two new methods: move and
- move\_if\_no\_collision. The methods are also available for the
- hierarchy (Triangulation\_hierarchy\_2).
+ `move_if_no_collision`. The methods are also available for the
+ hierarchy (`Triangulation_hierarchy_2`).
### 3D Triangulations
- The return type of the template member function insert(It beg, It
end), taking an iterator range of points, has been changed from int
- to std::ptrdiff\_t.
+ to `std::ptrdiff_t`.
- 3D Delaunay triangulations now provide vertex relocation by the mean
- of these two new methods: move and move\_if\_no\_collision. This
- works in both Compact\_policy and Fast\_policy.
+ of these two new methods: move and `move_if_no_collision`. This
+ works in both `Compact_policy` and `Fast_policy`.
### 2D and 3D Alpha Shapes
-- The type int in the API has been changed to std::size\_t so that
+- The type int in the API has been changed to `std::size_t` so that
CGAL can deal with large data sets (64 bit addresses).
### 2D Mesh Generation
@@ -4357,7 +4359,7 @@ CGAL 3.7 offers the following improvements and new functionality :
not detected at the surface mesher level will never be discovered by
chance, owing to the refinement of some tetrahedra, as it could
happen before. Please note that defining the macro
- CGAL\_MESH\_3\_USE\_OLD\_SURFACE\_RESTRICTED\_DELAUNAY\_UPDATE
+ `CGAL_MESH_3_USE_OLD_SURFACE_RESTRICTED_DELAUNAY_UPDATE`
switches back to the old behavior.
- A demo program is now available.
@@ -4367,7 +4369,7 @@ CGAL 3.7 offers the following improvements and new functionality :
### 2D Range and Neighbor Search
-- The type int in the API has been changed to std::size\_t so that
+- The type int in the API has been changed to `std::size_t` so that
CGAL can deal with large data sets (64 bit addresses).
## Release 3.6.1
@@ -4393,10 +4395,10 @@ CGAL-3.6:
### Polyhedron
- Fix a compilation errors in demo/Polyhedron/:
-- issue with the location of qglobal.h of Qt4 on MacOS X,
-- missing texture.cpp, if TAUCS is used,
+- issue with the location of `qglobal.h` of Qt4 on MacOS X,
+- missing `texture.cpp`, if TAUCS is used,
- Fix the location of built plugins of demo/Polyhedron/, when CGAL is
- configured with WITH\_demos=ON
+ configured with `WITH_demos=ON`
### 3D Periodic Triangulations
@@ -4406,7 +4408,7 @@ CGAL-3.6:
### 2D Mesh Generation
- Fix a bug that lead to precondition violation.
-- Improve the user manual about the member function is\_in\_domain()
+- Improve the user manual about the member function `is_in_domain()`
of the Face type.
- The 2D meshing process is now deterministic (sorting of bad faces no
longer relies on pointers comparisons).
@@ -4426,13 +4428,13 @@ CGAL-3.6:
- Fix a bug in `` that generated VRML 2
files with an invalid syntax for IndexedFaceSet nodes.
-### Triangulation\_2
+### `Triangulation_2`
-- Add missing Compare\_distance\_2 functor in trait classes
- Triangulation\_euclidean\_traits\_xy\_3
- Triangulation\_euclidean\_traits\_yz\_3 and
- Triangulation\_euclidean\_traits\_xz\_3. This was preventing calling
- member function nearest\_vertex of Delaunay\_triangulation\_2
+- Add missing `Compare_distance_2` functor in trait classes
+ `Triangulation_euclidean_traits_xy_3`
+ `Triangulation_euclidean_traits_yz_3` and
+ `Triangulation_euclidean_traits_xz_3`. This was preventing calling
+ member function `nearest_vertex` of `Delaunay_triangulation_2`
instantiated with one of these traits.
## Release 3.6
@@ -4465,15 +4467,15 @@ CGAL 3.6 offers the following improvements and new functionality :
#### 2D and 3D Geometry Kernel
-- Add new do\_intersect() and intersection() overloads:
- - do\_intersect(Bbox\_3, Bbox\_3/Line\_3/Ray\_3/Segment\_3)
- - intersection(Triangle\_3, Line\_3/Ray\_3/Segment\_3)
+- Add new `do_intersect()` and `intersection()` overloads:
+ - `do_intersect(Bbox_3, Bbox_3/Line_3/Ray_3/Segment_3)`
+ - `intersection(Triangle_3, Line_3/Ray_3/Segment_3)`
### Polygons
#### 2D Regularized Boolean Set-Operations
-- Fixed General\_polygon\_set\_2::arrangement() to return the proper
+- Fixed `General_polygon_set_2::arrangement()` to return the proper
type of object.
### Arrangement
@@ -4481,23 +4483,23 @@ CGAL 3.6 offers the following improvements and new functionality :
#### 2D Arrangements
- Fixed passing a (const) traits object to the constructor of
- Arrangement\_2.
-- Introduced Arrangement\_2::fictitious\_face(), which returns the
+ `Arrangement_2`.
+- Introduced `Arrangement_2::fictitious_face()`, which returns the
fictitious face in case of an unbounded arrangement.
- Fixed a bug in Bezier-curve handling.
-- Added (back) iterator, number\_of\_holes(), holes\_begin(), and
- holes\_end() to the default DCEL for backward compatibility.
-- Added (simple) versions of the free overlay() function. It employs
+- Added (back) iterator, `number_of_holes()`, `holes_begin()`, and
+ `holes_end()` to the default DCEL for backward compatibility.
+- Added (simple) versions of the free `overlay()` function. It employs
the default overlay-traits, which practically does nothing.
### Polyhedron
- Fix a compilation errors in demo/Polyhedron/:
- - issue with the location of qglobal.h of Qt4 on MacOS X,
- - missing texture.cpp, if TAUCS is used,
+ - issue with the location of `qglobal.h` of Qt4 on MacOS X,
+ - missing `texture.cpp`, if TAUCS is used,
- Fix the location of built plugins of demo/Polyhedron/, when CGAL is
- configured with WITH\_demos=ON
-- Fix a bug in test\_facet function of the incremental builder: the
+ configured with `WITH_demos=ON`
+- Fix a bug in `test_facet` function of the incremental builder: the
function did not test if while a new facet makes a vertex manifold,
no other facet incident to that vertex breaks the manifold property.
@@ -4505,24 +4507,24 @@ CGAL 3.6 offers the following improvements and new functionality :
#### 2D/3D Regular Triangulations
-- Weighted\_point now has a constructor from Cartesian coordinates.
+- `Weighted_point` now has a constructor from Cartesian coordinates.
#### 3D Triangulations
-- Regular\_triangulation\_3 : semi-static floating-point filters are
+- `Regular_triangulation_3` : semi-static floating-point filters are
now used in its predicates, which can speed up its construction by a
factor of about 3 when
- Exact\_predicates\_inexact\_constructions\_kernel is used.
-- The class Regular\_triangulation\_filtered\_traits\_3 is deprecated,
- the class Regular\_triangulation\_euclidean\_traits\_3 must be used
+ `Exact_predicates_inexact_constructions_kernel` is used.
+- The class `Regular_triangulation_filtered_traits_3` is deprecated,
+ the class `Regular_triangulation_euclidean_traits_3` must be used
instead. The predicates of that traits will be filtered if the
kernel given as template parameter of that traits is itself a
filtered kernel.
-- Triangulation\_hierarchy\_3 is now deprecated, and replaced by a
- simpler CGAL::Fast\_location policy template parameter of
- Delaunay\_triangulation\_3.
-- The old version of remove() (enabled with
- CGAL\_DELAUNAY\_3\_OLD\_REMOVE) has been deleted.
+- `Triangulation_hierarchy_3` is now deprecated, and replaced by a
+ simpler `CGAL::Fast_location` policy template parameter of
+ `Delaunay_triangulation_3`.
+- The old version of `remove()` (enabled with
+ `CGAL_DELAUNAY_3_OLD_REMOVE`) has been deleted.
#### 3D Periodic Triangulations
@@ -4534,8 +4536,8 @@ CGAL 3.6 offers the following improvements and new functionality :
#### 3D Alpha shapes
-- The class Weighted\_alpha\_shape\_euclidean\_traits\_3 is
- deprecated, the class Regular\_triangulation\_euclidean\_traits\_3
+- The class `Weighted_alpha_shape_euclidean_traits_3` is
+ deprecated, the class `Regular_triangulation_euclidean_traits_3`
must be used instead.
- The package can now be used together with the 3D Periodic
Triangulation package to compute periodic alpha shapes.
@@ -4552,7 +4554,7 @@ CGAL 3.6 offers the following improvements and new functionality :
- The 2D mesh generator can now be used with a constrained Delaunay
triangulation with constraints hierarchy
- (Constrained\_triangulation\_plus\_2).
+ (`Constrained_triangulation_plus_2`).
- In some cases (refinement of a constrained edge that is on the
convex hull), the 2D mesh generator from CGAL-3.4 and CGAL-3.5 could
create invalid triangulations. This bug is now fixed.
@@ -4594,8 +4596,8 @@ This is a bug fix release.
#### AABB tree
-- Fix a linker issue in do\_intersect(Bbox\_3,Bbox\_3).
-- Fix compilation issue in do\_intersect(Bbox\_3,Ray\_3) when using
+- Fix a linker issue in `do_intersect(Bbox_3, Bbox_3)`.
+- Fix compilation issue in `do_intersect(Bbox_3, Ray_3)` when using
the parameters in this order.
#### 3D Mesh Generation
@@ -4621,7 +4623,7 @@ this release.
- 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 not longer use in Debug mode).
+ `-D_SECURE_SCL=0` is not longer use in Debug mode).
### Geometry Kernels
@@ -4647,18 +4649,18 @@ this release.
#### 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
+- 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.
+ `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
- Arr\_right\_side\_tag In addition, the code was change, and now it
+ `Arr_left_side_tag` `Arr_bottom_side_tag` `Arr_top_side_tag`
+ `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.
@@ -4694,7 +4696,7 @@ this release.
- 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
+ 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
@@ -4705,7 +4707,7 @@ this release.
#### Triangulated Surface Mesh Simplification
- BREAKING API change in the passing of the visitor object.
-- Fixed a bug in the link\_condition test
+- 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
@@ -4726,7 +4728,7 @@ this release.
### Support Library
-#### CGAL\_ipelets (new package)
+#### `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.
@@ -4746,7 +4748,7 @@ fixes for this release.
- Boost version 1.33 at least is now required.
- CGAL now depends on Boost.Threads, which implies to link against a
compiled part of Boost.
-- The new macro CGAL\_NO\_DEPRECATED\_CODE can be defined to disable
+- The new macro `CGAL_NO_DEPRECATED_CODE` can be defined to disable
deprecated code, helping users discover if they rely on code that
may be removed in subsequent releases.
- Assertion behavior: It is not possible anymore to set the CONTINUE
@@ -4754,17 +4756,17 @@ fixes for this release.
assertion behavior are now declared in
``.
- Qt3 based demos are still there but the documentation has been
- removed as the CGAL::Qt\_Widget will be deprecated.
+ removed as the `CGAL::Qt_Widget` will be deprecated.
- Qt4 based demos use the Qt GraphicsView framework and the
libQGLViewer.
### Installation
-- install\_cgal has been replaced by CMake.
+- `install_cgal` has been replaced by CMake.
### Polynomial (new package)
-- This package introduces a concept Polynomial\_d, a concept for
+- This package introduces a concept `Polynomial_d`, a concept for
multivariate polynomials in d variables.
### Modular Arithmetic (new package)
@@ -4773,9 +4775,9 @@ fixes for this release.
### Number Types
-- the counter Interval\_nt::number\_of\_failures() has been removed,
- replaced by a profiling counter enabled with CGAL\_PROFILE.
-- Fix of a bug in CORE/Expr.h; as a consequence, the arrangement demo
+- the counter `Interval_nt::number_of_failures()` has been removed,
+ replaced by a profiling counter enabled with `CGAL_PROFILE`.
+- Fix of a bug in `CORE/Expr.h`; as a consequence, the arrangement demo
works properly when handling arrangements of conics, for example,
when defining an arc with 5 points.
@@ -4787,26 +4789,26 @@ fixes for this release.
### Linear Kernel
-- We recommend that you use the object\_cast() function instead of
- assign() to extract an object from a CGAL::Object, for efficiency
+- We recommend that you use the `object_cast()` function instead of
+ `assign()` to extract an object from a `CGAL::Object`, for efficiency
reasons.
- The Kernel archetypes provided by the 2D/3D linear kernel have been
removed.
-- The deprecated linear kernel functors Construct\_supporting\_line\_2
- and Construct\_supporting\_line\_3 have been removed.
-- Ambiant\_dimension and Feature\_dimenison have been added to
+- The deprecated linear kernel functors `Construct_supporting_line_2`
+ and `Construct_supporting_line_3` have been removed.
+- `Ambiant_dimension` and `Feature_dimenison` have been added to
retrieve the potentially compile-time dimension of a space or of an
object.
-- barycenter() functions have been added.
-- The geometric object Circle\_3 as well as predicates and
+- `barycenter()` functions have been added.
+- The geometric object `Circle_3` as well as predicates and
constructions have been added to the kernel
-- The missing intersection/do\_intersect between Line\_3 and Line\_3
+- The missing `intersection`/`do_intersect` between `Line_3` and `Line_3`
has been added as well.
### 3D Triangulations
-- Removed the deprecated functions Cell:mirror\_index() and
- Cell::mirror\_vertex().
+- Removed the deprecated functions `Cell::mirror_index()` and
+ `Cell::mirror_vertex()`.
- Derecursification of two functions that in some cases lead to stack
overflows
@@ -4823,42 +4825,42 @@ fixes for this release.
### STL Extensions
-- The functor adaptors for argument binding and composition (bind\_\*,
- compose, compose\_shared, swap\_\*, negate, along with the helper
- functions set\_arity\_\* and Arity class and Arity\_tag typedefs)
+- The functor adaptors for argument binding and composition (`bind_*`,
+ `compose`, `compose_shared`, `swap_*`, `negate`, along with the helper
+ functions `set_arity_*` and `Arity` class and `Arity_tag` typedefs)
which were provided by `` have been removed.
- Please use the better boost::bind mechanism instead. The concept
+ Please use the better `boost::bind` mechanism instead. The concept
AdaptableFunctor has been changed accordingly such that only a
- nested result\_type is required.
-- The accessory classes Twotuple, Threetuple, Fourtuple and Sixtuple
- are also deprecated (use CGAL::array instead).
-- CGAL::Triple and CGAL::Quadruple are in the process of being
- replaced by boost::tuple. As a first step, we strongly recommend
- that you replace the direct access to the data members (.first,
- .second, .third, .fourth), by the get<i>() member function;
- and replace the make\_triple and make\_quadruple maker functions by
- make\_tuple.
+ nested `result_type` is required.
+- The accessory classes `Twotuple`, `Threetuple`, `Fourtuple` and `Sixtuple`
+ are also deprecated (use `CGAL::array` instead).
+- `CGAL::Triple` and `CGAL::Quadruple` are in the process of being
+ replaced by `boost::tuple`. As a first step, we strongly recommend
+ that you replace the direct access to the data members (`.first`,
+ `.second`, `.third`, `.fourth`), by the `get()` member function;
+ and replace the `make_triple` and `make_quadruple` maker functions by
+ `make_tuple`.
This way, in a further release, we will be able to switch to
- boost::tuple more easily.
-- The class CGAL::Uncertain<> has been documented. It is
+ `boost::tuple` more easily.
+- The class `CGAL::Uncertain<>` has been documented. It is
typically used to report uncertain results for predicates using
interval arithmetic, and other filtering techniques.
### 2D Arrangements
-- Changed the name of the arrangement package from Arrangement\_2 to
- Arrangement\_on\_surface\_2 to reflect the potential capabilities of
+- Changed the name of the arrangement package from `Arrangement_2` to
+ `Arrangement_on_surface_2` to reflect the potential capabilities of
the package to construct and maintain arrangements induced by curves
embedded on two dimensional surfaces in three space. Most of these
capabilities will become available only in future releases though.
- Enhanced the geometry traits concept to handle arrangements embedded
on surfaces. Each geometry-traits class must now define the
- 'Boundary\_category' tag.
-- Fixed a bug in Arr\_polyline\_traits\_2.h, where the operator that
+ '`Boundary_category`' tag.
+- Fixed a bug in `Arr_polyline_traits_2.h`, where the operator that
compares two curves failed to evaluate the correct result (true)
when the curves are different, but their graphs are identical.
-- Permanently removed IO/Arr\_postscript\_file\_stream.h and
- IO/Polyline\_2\_postscript\_file\_stream.h, as they depend on
+- Permanently removed `IO/Arr_postscript_file_stream.h` and
+ `IO/Polyline_2_postscript_file_stream.h`, as they depend on
obsolete features and LEDA.
- Fixed several bugs in the arrangement demo and enhanced it. e.g.,
fixed background color change, allowed vertex coloring , enabled
@@ -4866,10 +4868,10 @@ fixes for this release.
- Enhanced the arrangement demo with new features, such as allowing
the abortion of the merge function (de-select), updated the how-to
description, etc.
-- Replace the functions CGAL::insert\_curve(), CGAL::insert\_curves(),
- CGAL::insert\_x\_monotone\_curve(), and
- CGAL::insert\_x\_monotone\_curves() with a single overloaded
- function CGAL::insert(). The former 4 functions are now deprecated,
+- Replace the functions `CGAL::insert_curve()`, `CGAL::insert_curves()`,
+ `CGAL::insert_x_monotone_curve()`, and
+ `CGAL::insert_x_monotone_curves()` with a single overloaded
+ function `CGAL::insert()`. The former 4 functions are now deprecated,
and may no longer be supported in future releases.
### Envelopes of Surfaces in 3D
@@ -4879,15 +4881,15 @@ fixes for this release.
### 2D Regularized Boolean Set-Operations
-- Fixed a bug in connect\_holes() that caused failures when connecting
+- Fixed a bug in `connect_holes()` that caused failures when connecting
holes touching the outer boundary.
-- Fixed the concept GeneralPolygonSetTraits\_2. Introduced two new
- concepts GpsTraitsGeneralPolygon\_2 and
- GpsTraitsGeneralPolygonWithHoles\_2. Fixed the definition of the two
- nested required types Polygon\_2 and Polygon\_with\_holes\_2 of the
- GeneralPolygonSetTraits\_2 concept. They must model now the two new
+- Fixed the concept `GeneralPolygonSetTraits_2`. Introduced two new
+ concepts `GpsTraitsGeneralPolygon_2` and
+ `GpsTraitsGeneralPolygonWithHoles_2`. Fixed the definition of the two
+ nested required types `Polygon_2` and `Polygon_with_holes_2` of the
+ `GeneralPolygonSetTraits_2` concept. They must model now the two new
concepts above.
-- Added a default template parameter to 'General\_polygon\_set\_2' to
+- Added a default template parameter to '`General_polygon_set_2`' to
allow users to pass their specialized DCEL used to instantiate the
underlying arrangement.
- Enhanced the BOP demo to use multiple windows.
@@ -4902,7 +4904,7 @@ fixes for this release.
- Optimized the approximate offset function (reduced time consumption
up to a factor of 2 in some cases).
- Added functionality to compute the offset (or to approximate the
- offset) of a Polygon\_with\_holes\_2 (and not just of a Polygon\_2).
+ offset) of a `Polygon_with_holes_2` (and not just of a `Polygon_2`).
- Added the functionality to compute (or to approximate) the inner
offset of a polygon.
@@ -4914,24 +4916,24 @@ This is a bug fix release.
### General
-- Intel C++ 9 was wrongly recognized as unsupported by install\_cgal.
+- Intel C++ 9 was wrongly recognized as unsupported by `install_cgal`.
- Added autolink (for Visual C++) for the CGALImageIO and CGALPDB
libraries.
-- Fixed bug in Memory\_sizer when using more than 4GB of memory
+- Fixed bug in `Memory_sizer` when using more than 4GB of memory
(64bit).
### Number Types
- Fixed bug in FPU rounding mode macros (affected only the alpha
architecture).
-- Fixed bug in MP\_Float constructor from double for some particular
+- Fixed bug in `MP_Float` constructor from double for some particular
values.
-- Fixed bug in to\_double(Lazy\_exact\_nt) sometimes returning NaN.
+- Fixed bug in `to_double(Lazy_exact_nt)` sometimes returning NaN.
### Kernel
-- Fixed forgotten derivation in Circular\_kernel\_2::Has\_on\_2
-- Added some missing functions in Bbox\_3 compared to Bbox\_2.
+- Fixed forgotten derivation in `Circular_kernel_2::Has_on_2`
+- Added some missing functions in `Bbox_3` compared to `Bbox_2`.
### Skin Surface Meshing
@@ -4942,38 +4944,38 @@ This is a bug fix release.
### Arrangements
-- Fixed a bug in the Arrangement\_2 package in dual arrangement
+- Fixed a bug in the `Arrangement_2` package in dual arrangement
representation for Boost graphs when reporting all halfedges of a
face.
- Fixed a bug in the Arrangement sweep-line when using a specific
polyline configuration.
-- Fixed bug in Arrangement\_2 in walk along a line point location for
+- Fixed bug in `Arrangement_2` in walk along a line point location for
unbounded curves.
-- Fixed bug in aggregated insertion to Arrangement\_2.
-- Fixed bug in Arrangement\_2 class when inserting an unbounded curve
+- Fixed bug in aggregated insertion to `Arrangement_2`.
+- Fixed bug in `Arrangement_2` class when inserting an unbounded curve
from an existing vertex.
- Fixed bug when dealing with a degenerate conic arc in
- Arr\_conic\_traits\_2 of the Arrangement package, meaning a line
+ `Arr_conic_traits_2` of the Arrangement package, meaning a line
segment which is part of a degenerate parabola/hyperbola.
- Fixed bug in the Bezier traits-class: properly handle line segments.
properly handle comparison near a vertical tangency.
### 2D Polygon
-- Fixed bug in degenerate case of Polygon\_2::is\_convex() for equal
+- Fixed bug in degenerate case of `Polygon_2::is_convex()` for equal
points.
### 2D Triangulations
-- Fixed bug in Regular\_triangulation\_2.
+- Fixed bug in `Regular_triangulation_2`.
### 3D Triangulations
-- Added a circumcenter() function in the default Cell type parameter
- Triangulation\_ds\_cell\_base\_3, so that the .dual() member
+- Added a `circumcenter()` function in the default `Cell` type parameter
+ `Triangulation_ds_cell_base_3`, so that the `.dual()` member
function of Delaunay still work as before, without requiring the
- explicit use of Triangulation\_cell\_base.
-- Added missing operator->() to Facet\_circulator.
+ explicit use of `Triangulation_cell_base`.
+- Added missing `operator->()` to `Facet_circulator`.
### Interpolation
@@ -4982,11 +4984,11 @@ This is a bug fix release.
### 3D Boolean Operations on Nef Polyhedra
-- Fixed bug in construction of Nef\_polyhedron\_3 from off-file. Now,
+- Fixed bug in construction of `Nef_polyhedron_3` from off-file. Now,
always the inner volume is selected.
-- Fixed bug in conversion from Nef\_polyhedron\_3 to Polyhedron\_3.
- Polyhedron\_3 was not cleared at the beginning.
-- Fixed bug in Nef\_polyhedron\_3 in update of indexes for
+- Fixed bug in conversion from `Nef_polyhedron_3` to `Polyhedron_3`.
+ `Polyhedron_3` was not cleared at the beginning.
+- Fixed bug in `Nef_polyhedron_3` in update of indexes for
construction of external structure.
### Third Party Libraries Shipped with CGAL
@@ -5016,9 +5018,9 @@ The following platforms are no longer supported:
- Intel 8
CGAL now supports Visual C++ "Checked iterators" as well as the debug
-mode of GNU g++'s STL (-D\_GLIBCXX\_DEBUG).
+mode of GNU g++'s STL (`-D_GLIBCXX_DEBUG`).
-CGAL now works around the preprocessor macros 'min' and 'max' defined in
+CGAL now works around the preprocessor macros `min` and `max` defined in
`` which were clashing with min/max functions.
### Installation
@@ -5043,7 +5045,7 @@ CGAL now works around the preprocessor macros 'min' and 'max' defined in
algebraic types (not necessarily embeddable into the reals), and
number types (embeddable into the reals).
- Number Types
- Fixed\_precision\_nt and Filtered\_exact number types have been
+ `Fixed_precision_nt` and `Filtered_exact` number types have been
removed.
### Kernels
@@ -5051,10 +5053,10 @@ CGAL now works around the preprocessor macros 'min' and 'max' defined in
- 2D Circular Kernel
Efficiency improved through geometric filtering of predicates,
introduced with the filtered kernel
- Filtered\_bbox\_circular\_kernel\_2<.>, and also chosen for
- the predefined kernel Exact\_circular\_kernel\_2.
+ `Filtered_bbox_circular_kernel_2<.>`, and also chosen for
+ the predefined kernel `Exact_circular_kernel_2`.
- Linear Kernel
- Exact\_predicates\_exact\_constructions\_kernel memory and run-time
+ `Exact_predicates_exact_constructions_kernel` memory and run-time
improvements through usage of lazy geometric constructions instead
of lazy arithmetic.
@@ -5106,7 +5108,7 @@ CGAL now works around the preprocessor macros 'min' and 'max' defined in
- Added a traits class that supports Bezier curves.
- Enhanced the traits class that supports rational functions to
handle unbounded (as well as bounded) arcs
- - Added a free function called decompose() that produces the
+ - Added a free function called `decompose()` that produces the
symbolic vertical decomposition of a given arrangement,
performing a batched vertical ray-shooting query from all
arrangement vertices.
@@ -5115,23 +5117,23 @@ CGAL now works around the preprocessor macros 'min' and 'max' defined in
hyperbolas.
- Boolean Set Operations
- Added the DCEL as a default template parameter to the
- General\_polygon\_set\_2 and Polygon\_set\_2 classes. This
+ `General_polygon_set_2` and `Polygon_set_2` classes. This
allows users to extend the DCEL of the underlying arrangement.
- - Added a function template called connect\_holes() that connects
+ - Added a function template called `connect_holes()` that connects
the holes in a given polygon with holes, turning it into a
sequence of points, where the holes are connected to the outer
boundary using zero-width passages.
- - Added a non-const function member to General\_polygon\_set\_2
+ - Added a non-const function member to `General_polygon_set_2`
that obtains the underlying arrangement.
- 2D and 3D Triangulations
- The constructors and insert member functions which take an
iterator range perform spatial sorting in order to speed up the
insertion.
- Optimal Distances
- - Polytope\_distance\_d: has support for homogeneous points;
+ - `Polytope_distance_d`: has support for homogeneous points;
bugfix in fast exact version.
- Bounding Volumes
- - Min\_annulus\_d has support for homogeneous points; bugfix in
+ - `Min_annulus_d` has support for homogeneous points; bugfix in
fast exact version.
### Support Library
@@ -5157,7 +5159,7 @@ This is a bug fix release
### Number Types
-- Fix MP\_Float constructor which crashed for some values.
+- Fix `MP_Float` constructor which crashed for some values.
### Kernel
@@ -5165,11 +5167,11 @@ This is a bug fix release
### Arrangement
-- Derived the Arr\_segment\_traits\_2 Arrangement\_2 traits class from
+- Derived the `Arr_segment_traits_2` `Arrangement_2` traits class from
the parameterized Kernel. This allows the use of this traits class
in an extended range of applications that require kernel objects and
operations on these objects beyond the ones required by the
- Arrangement\_2 class itself.
+ `Arrangement_2` class itself.
- Fixed a compilation bug in the code that handles overlay of
arrangements instantiated with different DCEL classes.
- Fixed a couple of bugs in the implementation of the Trapezoidal RIC
@@ -5177,13 +5179,13 @@ This is a bug fix release
### Triangulation, Alpha Shapes
-- Qualify calls to filter\_iterator with "CGAL::" to avoid overload
- ambiguities with Boost's filter\_iterator.
+- Qualify calls to `filter_iterator` with `CGAL::` to avoid overload
+ ambiguities with Boost's `filter_iterator`.
### Surface Mesher
- Fixed a bug in iterators of the class template
- Surface\_mesh\_complex\_2\_in\_triangulation\_3
+ `Surface_mesh_complex_2_in_triangulation_3`
### Surface Mesh Parametrisation
@@ -5192,8 +5194,8 @@ This is a bug fix release
### Kinetic Data Structures
- Fixed problems caused by old versions of gcc being confused by
- operator! and operator int()
-- Added point removal support to the Active\_objects\_vector
+ `operator!` and `operator int()`
+- Added point removal support to the `Active_objects_vector`
## Release 3.2
@@ -5209,7 +5211,7 @@ The following platforms are no longer supported:
- SGI Mips Pro
For Visual C++ the installation scripts choose the multi-threaded
-dynamically linked runtime (/MD). Before it was the single-threaded
+dynamically linked runtime (`/MD`). Before it was the single-threaded
static runtime (/ML).
### Installation
@@ -5338,7 +5340,7 @@ static runtime (/ML).
algorithms in the Geometric Optimization chapter has been completely
rewritten.
- 3D Triangulation (new functionality)
- Regular\_triangulation\_3 now offers vertex removal.
+ `Regular_triangulation_3` now offers vertex removal.
## Release 3.1
@@ -5398,7 +5400,7 @@ The following functionality has been added or changed:
An implementation of Shewchuk's algorithm to construct conforming
triangulations and 2D meshes.
- 3D Boolean Operations on Nef Polyhedra (new package)
- A new class (Nef\_polyhedron\_3) representing 3D Nef polyhedra, a
+ A new class (`Nef_polyhedron_3`) representing 3D Nef polyhedra, a
boundary representation for cell-complexes bounded by halfspaces
that supports boolean operations and topological operations in full
generality including unbounded cells, mixed dimensional cells (e.g.,
@@ -5411,10 +5413,10 @@ The following functionality has been added or changed:
arbitrary query point. The package further offers functions for
natural neighbor interpolation.
- Planar Nef polyhedra embedded on the sphere (new package)
- A new class (Nef\_polyhedron\_S2) designed and supported mainly to
+ A new class (`Nef_polyhedron_S2`) designed and supported mainly to
represent sphere neighborhoods around vertices of the three-
dimensional Nef polyhedra.
-- Box\_intersection\_d (new package)
+- `Box_intersection_d` (new package)
A new efficient algorithm for finding all intersecting pairs for
large numbers of iso-oriented boxes, i.e., typically these will be
bounding boxes of more complicated geometries. Useful for (self-)
@@ -5428,54 +5430,54 @@ The following functionality has been added or changed:
each vertex is at least half-the-width-of-a-pixel away from any
non-incident edge. This package supports both methods.
- 3D Triangulations
- - Triangulation\_3: added operator==(),removed push\_back() and
- copy\_triangulation().
- - Delaunay\_3 : added nearest\_vertex(), move\_point(),
- vertices\_in\_conflict().
- - Regular\_3 : added filtered traits class, and
- nearest\_power\_vertex().
-- Planar\_map and Arrangement\_2
+ - `Triangulation_3`: added `operator==()`, removed `push_back()` and
+ `copy_triangulation()`.
+ - `Delaunay_3` : added `nearest_vertex()`, `move_point()`,
+ `vertices_in_conflict()`.
+ - `Regular_3` : added filtered traits class, and
+ `nearest_power_vertex()`.
+- `Planar_map` and `Arrangement_2`
- The interface of the two traits functions that compute the
intersection of two given curves changed. The functions
- nearest\_intersection\_to\_right() and
- nearest\_intersection\_to\_left() return an object of type
- CGAL::Object that represents either an empty intersection, a
+ `nearest_intersection_to_right()` and
+ `nearest_intersection_to_left()` return an object of type
+ `CGAL::Object` that represents either an empty intersection, a
point, or an overlapping subcurve.
- Requirements to define two binary tags were added to the traits
- concept of the Planar\_map as follows: *Has\_left\_category* -
+ concept of the `Planar_map` as follows:*`Has_left_category`* -
indicates whether the functions
- curves\_compare\_y\_at\_x\_left() and
- nearest\_intersection\_to\_left() are implemented in the traits
- model. *Has\_reflect\_category* - indicates whether the
- functions point\_reflect\_in\_x\_and\_y() and
- curve\_reflect\_in\_x\_and\_y() are implemented in the traits
+ `curves_compare_y_at_x_left()` and
+ `nearest_intersection_to_left()` are implemented in the traits
+ model. *`Has_reflect_category`* - indicates whether the
+ functions `point_reflect_in_x_and_y()` and
+ `curve_reflect_in_x_and_y()` are implemented in the traits
model. They can be used as an alternative to the two function in
the previous item.
- - A new constructor of the Segment\_cached\_2 type that represents
- a segment in the Arr\_segment\_cached\_traits\_2 traits class
+ - A new constructor of the `Segment_cached_2` type that represents
+ a segment in the `Arr_segment_cached_traits_2` traits class
was introduced. The new constructor accepts the segment
endpoints as well as the coefficients of the underlying line.
- A new version of the conic-arc traits, based on CORE version 1.7
was introduced. This new traits class makes use of CORE's
- rootOf() operator to compute the intersection points in the
+ `rootOf()` operator to compute the intersection points in the
arrangement, making its code much simpler and more elegant than
the previous version. In addition, new constructors for conic
arcs are provided. The new traits class usually performs about
30% faster than the version included in CGAL 3.0
- The traits class that handles continuous piecewise linear
- curves, namely Arr\_polyline\_traits\_2, was rewritten. The new
+ curves, namely `Arr_polyline_traits_2`, was rewritten. The new
class is parametrized with a traits class that handles segments,
- say Segment\_traits. The polyline curve defined within the
- Arr\_polyline\_traits\_2 class is implemented as a vector of
- segments of type Segment\_traits::Curve\_2.
- - A meta traits class, namely Arr\_curve\_data\_traits\_2, that
+ say `Segment_traits`. The polyline curve defined within the
+ `Arr_polyline_traits_2` class is implemented as a vector of
+ segments of type `Segment_traits::Curve_2`.
+ - A meta traits class, namely `Arr_curve_data_traits_2`, that
extends the curve type of the planar-map with arbitrary
additional data was introduced. It should be instantiated with a
regular traits-class and a class that contains all extraneous
data associated with a curve.
- The class that represents the trapezoidal-decomposition point
location strategy was renamed to
- Pm\_trapezoid\_ric\_point\_location.
+ `Pm_trapezoid_ric_point_location`.
- The Arrangement demo was rewritten. It covers many more
features, has a much better graphical user interface, and comes
with online documentation.
@@ -5483,22 +5485,22 @@ The following functionality has been added or changed:
vertical segments were fixed. This module is used by the
aggregate insert method that inserts a collection of curves at
once.
-- Triangulation\_2
+- `Triangulation_2`
- added a filtered trait class in the regular triangulation
- added split and join operations in the triangulation data
structure class
-- Alpha\_shapes\_3
+- `Alpha_shapes_3`
- major changes in the implementation of the class
- Alpha\_shapes\_3.
+ `Alpha_shapes_3`.
- New implementation results in a true GENERAL mode allowing null
and negative alpha-values. It also fixed the edges
classification bug and introduces a classification of vertices.
-- Min\_ellipse\_2
+- `Min_ellipse_2`
- made access to approximate double representation public
- fixed bugs in conversion to double representation
- added `is_circle()` method
- minor performance improvements
-- Min\_sphere\_of\_spheres\_d:
+- `Min_sphere_of_spheres_d`:
- The models
`Min_sphere_of_spheres_d_traits_2`,
`Min_sphere_of_spheres_d_traits_3`, and
@@ -5508,12 +5510,12 @@ The following functionality has been added or changed:
`CGAL::Weighted_point`)
- Internal code cleanup; in particular, implementation details
don't pollute the namespace CGAL anymore
-- Polyhedron\_3
+- `Polyhedron_3`
- New Tutorial on CGAL Polyhedron for Subdivision Algorithms with
interactive demo viewer in source code available.
- - Added example program for efficient self-intersection test. -
- Added small helper functions, such as vertex\_degree,
- facet\_degree, edge\_flip, and is\_closed.
+ - Added example program for efficient self-intersection test.
+ - Added small helper functions, such as `vertex_degree`,
+ `facet_degree`, `edge_flip`, and `is_closed`.
- Apollonius Graph (Voronoi of Circles)
- Reduced memory requirements by approximately a factor of two.
@@ -5528,7 +5530,7 @@ Here is the list of bug-fixes.
- Fixed wrong include files for output support. Added example.
-### Planar\_map
+### `Planar_map`
- Fixed the so called "Walk-along-a-line" point-location strategy to
correctly handle a degenerate case.
@@ -5536,23 +5538,23 @@ Here is the list of bug-fixes.
### 2D Triangulation
- added missing figure in html doc
-- in Line\_face\_circulator\_2.h:
+- in `Line_face_circulator_2.h`:
Fixed changes made to support handles with a typedef to iterator.
- The fix concerns operator== and !=.
+ The fix concerns `operator==` and `!=`.
-### Alpha\_shapes\_3
+### `Alpha_shapes_3`
- fixed classify member function for edges.
### Number types
-- Lazy\_exact\_nt:
+- `Lazy_exact_nt`:
- added the possibility to select the relative precision of
- `to_double()` (by default 1e-5). This should fix reports that
- some circumcenters computations have poor coordinates, e.g.
- nan).
+ `to_double()` (by default 1e-5). This should fix reports that
+ some circumcenters computations have poor coordinates, e.g.
+ nan).
- when exact computation is triggered, the interval is recomputed,
- this should speed up some kinds of computations.
+ this should speed up some kinds of computations.
- `to_interval(Quotient)`: avoid spurious overflows.
### Kernel
@@ -5590,7 +5592,7 @@ The following platforms are no longer supported:
The following functionality has been added or changed:
-**All**
+### All
- The CORE library for exact computations is now distributed as part
of CGAL as well.
@@ -5599,12 +5601,12 @@ The following functionality has been added or changed:
- 3 typedefs have been added to ease the choice of a robust and fast
kernel:
- - Exact\_predicates\_inexact\_constructions\_kernel
- - Exact\_predicates\_exact\_constructions\_kernel
- - Exact\_predicates\_exact\_constructions\_kernel\_with\_sqrt
+ - `Exact_predicates_inexact_constructions_kernel`
+ - `Exact_predicates_exact_constructions_kernel`
+ - `Exact_predicates_exact_constructions_kernel_with_sqrt`
- Progress has been made towards the complete adaptability and
extensibility of our kernels.
-- New faster Triangle\_3 intersection test routines.
+- New faster `Triangle_3` intersection test routines.
*(see Erratum)*
- Added a Kernel concept archetype to check that generic algorithms
don't use more functionality than they should.
@@ -5638,42 +5640,42 @@ The following functionality has been added or changed:
- **Kd-tree**
this package is deprecated, its documentation is removed. It is
replaced by the Spatial Searching package.
-- Largest\_empty\_rectangle\_2
+- `Largest_empty_rectangle_2`
Given a set of points P in the plane, the class
- Largest\_empty\_iso\_rectangle\_2 is a data structure that maintains
+ `Largest_empty_iso_rectangle_2` is a data structure that maintains
an iso-rectangle with the largest area among all iso-rectangles that
are inside a given iso-rectangle bounding box, and that do not
contain any point of the point set P.
- 2D Triangulation and 3D Triangulation
- - The classes Triangulation\_data\_structure\_2 (and 3), which
+ - The classes `Triangulation_data_structure_2` (and 3), which
implements the data structure for 2D triangulation class, now
- makes use of CGAL::Compact\_container (see Support Library
+ makes use of `CGAL::Compact_container` (see Support Library
section below).
- The triangulation classes use a Rebind mechanism to provide the
full flexibility on Vertex and Face base classes. This means
that it is possible for the user to derive its own Face of
Vertex base class, adding a functionality that makes use of
types defined by the triangulation data structure like
- Face\_handle or Vertex\_handle.
- - New classes Triangulation\_vertex\_base\_with\_info\_2 (and 3)
- and Triangulation\_face\_base\_with\_info\_2 (and 3) to make
+ `Face_handle` or `Vertex_handle`.
+ - New classes `Triangulation_vertex_base_with_info_2` (and 3)
+ and `Triangulation_face_base_with_info_2` (and 3) to make
easier the customization of base classes in most cases.
- 2D Triangulation
- Regular triangulation provides an easy access to hidden points.
- - The Triangulation\_hierarchy\_2, which provide an efficient
+ - The `Triangulation_hierarchy_2`, which provide an efficient
location data structure, can now be used with any 2D
triangulation class plugged in (including Regular
triangulations).
- 3D Triangulation
- - faster vertex removal function in Delaunay\_triangulation\_3.
- - Delaunay\_triangulation\_3 is now independent of the order of
+ - faster vertex removal function in `Delaunay_triangulation_3`.
+ - `Delaunay_triangulation_3` is now independent of the order of
insertions of the points (in case of degenerate cosphericity).
- - Regular\_triangulation\_3 now hides vertices (and updates
+ - `Regular_triangulation_3` now hides vertices (and updates
itself) when inserting a coinciding point with greater weight.
This required a new predicate.
- - deprecated functions: copy\_triangulation(), push\_back(),
- set\_number\_of\_vertices().
- - Triangulation\_3 now gives non-const access to the data
+ - deprecated functions: `copy_triangulation()`, `push_back()`,
+ `set_number_of_vertices()`.
+ - `Triangulation_3` now gives non-const access to the data
structure.
- Interval Skip List (new package)
An interval skip list is a data structure for finding all intervals
@@ -5685,8 +5687,8 @@ The following functionality has been added or changed:
1. New traits hierarchy and interface: The set of requirements was
made sound and complete. A couple of requirements were
eliminated, few others were redefined, and some were renamed. A
- hierarchy of three traits classes for the Planar\_map\_2,
- Planar\_map\_with\_intersections\_2, and Arrangement\_2 types
+ hierarchy of three traits classes for the `Planar_map_2`,
+ `Planar_map_with_intersections_2`, and `Arrangement_2` types
was established to include only the necessary requirements at
each level. It was determined that for the aggregate insertion-
operation based on a sweep-line algorithm only a subset of the
@@ -5695,124 +5697,124 @@ The following functionality has been added or changed:
The following functions have been renamed:
- - point\_is\_same() renamed to point\_equal()
- - curve\_is\_same() renamed to curve\_equal()
- - curve\_is\_in\_x\_range() renamed to point\_in\_x\_range()
- - curve\_compare\_at\_x() renamed to
- curves\_compare\_y\_at\_x() Furthermore, a precondition has
+ - `point_is_same()` renamed to `point_equal()`
+ - `curve_is_same()` renamed to `curve_equal()`
+ - `curve_is_in_x_range()` renamed to `point_in_x_range()`
+ - `curve_compare_at_x()` renamed to
+ `curves_compare_y_at_x()` Furthermore, a precondition has
been added that the reference point is in the x-range of
both curves.
- - curve\_compare\_at\_x\_right() renamed to
- curves\_compare\_y\_at\_x\_to\_right(). Furthermore, a
+ - `curve_compare_at_x_right()` renamed to
+ `curves_compare_y_at_x_to_right()`. Furthermore, a
precondition has been added that both curves are equal at
the reference point and defined to its right.
- - curve\_compare\_at\_x\_left() renamed to
- curves\_compare\_y\_at\_x\_to\_left(). Furthermore, a
+ - `curve_compare_at_x_left()` renamed to
+ `curves_compare_y_at_x_to_left()`. Furthermore, a
precondition has been added that both curves are equal at
the reference point and defined to its right.
- - curve\_get\_point\_status() renamed to
- curve\_compare\_y\_at\_x(). Furthermore, a precondition has
+ - `curve_get_point_status()` renamed to
+ `curve_compare_y_at_x()`. Furthermore, a precondition has
been added that the point is in the x-range of the curve.
- Consequently, the function now returns a Comparison\_result
+ Consequently, the function now returns a `Comparison_result`
(instead of a special enum).
- - make\_x\_monotone() renamed to curve\_make\_x\_monotone()
+ - `make_x_monotone()` renamed to `curve_make_x_monotone()`
See more details below.
- - curve\_flip() renamed to curve\_opposite()
+ - `curve_flip()` renamed to `curve_opposite()`
The following functions have been removed:
- - curve\_is\_between\_cw()
- - point\_to\_left()
- - point\_to\_right()
- - is\_x\_monotone()
- - point\_reflect\_in\_x\_and\_y()
- - curve\_reflect\_in\_x\_and\_y()
- - do\_intersect\_to\_right()
- - do\_intersect\_to\_left()
+ - `curve_is_between_cw()`
+ - `point_to_left()`
+ - `point_to_right()`
+ - `is_x_monotone()`
+ - `point_reflect_in_x_and_y()`
+ - `curve_reflect_in_x_and_y()`
+ - `do_intersect_to_right()`
+ - `do_intersect_to_left()`
- Most functions, are required by the PlanarMapTraits\_2 concept,
- except for the make\_x\_monotone(),
- nearest\_intersection\_to\_right(),
- nearest\_intersection\_to\_left(), curves\_overlap() and
- curve\_opposite(). PlanarMapWithIntersectionsTraits\_2 requires
- all these functions, except curve\_opposite(), needed only by
- the ArrangementTraits\_2 concept.
+ Most functions, are required by the `PlanarMapTraits_2` concept,
+ except for the `make_x_monotone()`,
+ `nearest_intersection_to_right()`,
+ `nearest_intersection_to_left()`, `curves_overlap()` and
+ `curve_opposite()`. `PlanarMapWithIntersectionsTraits_2` requires
+ all these functions, except `curve_opposite()`, needed only by
+ the `ArrangementTraits_2` concept.
- Furthermore, the two functions curve\_compare\_at\_x\_left() and
- nearest\_intersection\_to\_left() can be omitted, if the two
- functions point\_reflect\_in\_x() and curve\_reflect\_in\_x()
- are implemented. Reflection can be avoided, if the two \_left
+ Furthermore, the two functions `curve_compare_at_x_left()` and
+ `nearest_intersection_to_left()` can be omitted, if the two
+ functions `point_reflect_in_x()` and `curve_reflect_in_x()`
+ are implemented. Reflection can be avoided, if the two _left
functions are supplied.
- 2. The type X\_curve\_2 of the PlanarMapWithIntersectionsTraits\_2
- concept was renamed to X\_monotone\_curve\_2, and the
- distinction between this type and the Curve\_2 type was made
- firm. The method is\_x\_monotone() of the
- PlanarMapWithIntersectionsTraits\_2 concept was removed. The
- related method curve\_make\_x\_monotone() is now called for each
- input curve of type Curve\_2 when curves are inserted into a
- Planar\_map\_with\_intersections\_2 to subdivide the input curve
+ 2. The type `X_curve_2` of the `PlanarMapWithIntersectionsTraits_2`
+ concept was renamed to `X_monotone_curve_2`, and the
+ distinction between this type and the `Curve_2` type was made
+ firm. The method `is_x_monotone()` of the
+ `PlanarMapWithIntersectionsTraits_2` concept was removed. The
+ related method `curve_make_x_monotone()` is now called for each
+ input curve of type `Curve_2` when curves are inserted into a
+ `Planar_map_with_intersections_2` to subdivide the input curve
into x-monotone sub-curves (and in case the curve is already
x-monotone, this function is responsible for casting it to an
x-monotone curve).
3. New and improved traits classes:
- 4. Conic traits - Arr\_conic\_traits\_2 Support finite segments of
+ 4. Conic traits - `Arr_conic_traits_2` Support finite segments of
ellipses, hyperbolas and parabolas, as well as line segments.
The traits require an exact real number- type, such as
- leda\_real or CORE::Expr.
- 5. Segment cached traits - Arr\_segment\_cached\_traits\_2 This
+ `leda_real` or CORE::Expr.
+ 5. Segment cached traits - `Arr_segment_cached_traits_2` This
class uses an improved representation for segments that helps
avoiding cascaded computations, thus achieving faster running
times. To work properly, an exact rational number-type should be
used.
- 6. Polyline traits - Arr\_polyline\_traits\_2 The polyline traits
+ 6. Polyline traits - `Arr_polyline_traits_2` The polyline traits
class has been reimplemented to work in a more efficient,
generic manner. The new class replaces the obsolete
- Arr\_polyline\_traits class. It is parameterized with a segment
+ `Arr_polyline_traits` class. It is parameterized with a segment
traits class.
- 7. Hyperbola and segment traits - Arr\_hyper\_segment\_traits\_2
+ 7. Hyperbola and segment traits - `Arr_hyper_segment_traits_2`
Supports line segments and segments of canonical hyperbolas.
This is the type of curves that arise when projecting segments
in three-space rotationally around a line onto a plane
containing the line. Such projections are often useful in
CAD/CAM problems.
8. Removed old traits class:
- - The models of the PlanarMapWithIntersectionsTraits\_2
+ - The models of the `PlanarMapWithIntersectionsTraits_2`
concept below became obsolete, as the new conic traits,
- namely Arr\_conic\_traits\_2, supports the same
+ namely `Arr_conic_traits_2`, supports the same
functionality and is much more efficient.
- - Arr\_circles\_real\_traits
- - Arr\_segment\_circle\_traits
+ - `Arr_circles_real_traits`
+ - `Arr_segment_circle_traits`
- The segment traits class and the new polyline traits class
were reimplemented using standard CGAL-kernel calls. This
essentially eliminated the corresponding leda traits
classes, namely:
- - Pm\_leda\_segment\_traits\_2
- - Arr\_leda\_segment\_traits\_2
- - Arr\_leda\_polyline\_traits
+ - `Pm_leda_segment_traits_2`
+ - `Arr_leda_segment_traits_2`
+ - `Arr_leda_polyline_traits`
- With the use of the Leda\_rat\_kernel new external package
+ With the use of the `Leda_rat_kernel` new external package
the same functionality can be achieved with less overhead
and more efficiency.
9. Sweep Line
- - The Sweep\_line\_2 package was reimplemented. As a
+ - The `Sweep_line_2` package was reimplemented. As a
consequence it is much more efficient, its traits is tighter
- (namely neither the two \_left nor the reflection functions
+ (namely neither the two _left nor the reflection functions
are required), and its interface has changed a bit.
1. The following global functions have been removed:
- - sweep\_to\_produce\_subcurves\_2()
- - sweep\_to\_produce\_points\_2()
- - sweep\_to\_construct\_planar\_map\_2()
+ - `sweep_to_produce_subcurves_2()`
+ - `sweep_to_produce_points_2()`
+ - `sweep_to_construct_planar_map_2()`
- Instead, the public methods of the Sweep\_line\_2 class
+ Instead, the public methods of the `Sweep_line_2` class
listed below were introduced:
- - get\_subcurves() - Given a container of curves, this
+ - `get_subcurves()` - Given a container of curves, this
function returns a list of curves that are created
by intersecting the input curves.
- - get\_intersection\_points() - Given a range of
+ - `get_intersection_points()` - Given a range of
curves, this function returns a list of points that
are the intersection points of the curves.
- - get\_intersecting\_curves() - Given a range of
+ - `get_intersecting_curves()` - Given a range of
curves, this function returns an iterator to the
beginning of a range that contains the list of
curves for each intersection point between any two
@@ -5824,8 +5826,8 @@ The following functionality has been added or changed:
sweep-line process to construct the map more
efficiently.
- New interface functions to the
- Planar\_map\_with\_intersections\_2 class. The
- Planar\_map\_with\_intersections\_2 class maintains a planar
+ `Planar_map_with_intersections_2` class. The
+ `Planar_map_with_intersections_2` class maintains a planar
map of input curves that possibly intersect each other and
are not necessarily x-monotone. If an input curve, or a set
of input curves, are known to be x-monotone and pairwise
@@ -5851,83 +5853,82 @@ The following functionality has been added or changed:
### Support Library
-- New container class Compact\_container, which (roughly) provides the
- flexibility of std::list, with the memory compactness of
- std::vector.
-- Geomview\_stream: added a function gv.draw\_triangles(InputIterator
- begin, InputIterator end) which draws a set of triangles much more
- quickly than one by one.
+- New container class `Compact_container`, which (roughly) provides the
+ flexibility of `std::list`, with the memory compactness of
+ `std::vector`.
+- `Geomview_stream`: added a function gv.`draw_triangles(InputIterator begin, InputIterator end)`
+ which draws a set of triangles much more quickly than one by one.
- Number types:
- number types are now required to provide a function:
- std::pair<double, double> to\_interval(const NT &).
+ `std::pair to_interval(const NT &)`.
- number types are now required to provide mixed operators with
"int".
- CLN support removed.
- - faster square() for MP\_Float.
- - added Gmp\_q.
-- Qt\_widget:
+ - faster `square()` for `MP_Float`.
+ - added `Gmp_q`.
+- `Qt_widget`:
- New classes:
- - Qt\_help\_window: provides a simple way to show some helpful
+ - `Qt_help_window`: provides a simple way to show some helpful
information about a demo as an HTML page.
- - Qt\_widget\_history: provides basic functionality to
- manipulate intervals of Qt\_widget class. The current
- visible area of Qt\_widget is mapped to an interval. Each
- interval could be stored in the Qt\_widget\_history object.
+ - `Qt_widget_history`: provides basic functionality to
+ manipulate intervals of `Qt_widget` class. The current
+ visible area of `Qt_widget` is mapped to an interval. Each
+ interval could be stored in the `Qt_widget_history` object.
So you can use this object to navigate in history. It is
- mostly used by Qt\_widget\_standard\_toolbar.
+ mostly used by `Qt_widget_standard_toolbar`.
- Changes:
- - Qt\_widget\_standard\_toolbar: is derived from QToolBar
+ - `Qt_widget_standard_toolbar`: is derived from QToolBar
class, so pay attention to modify your code, if you used
this class. Some public methods were introduced to control
the history object that the toolbar use to navigate.
- the icons are now part of libCGALQt.
- - Deprecated members of Qt\_widget:
- - add\_to\_history(), clear\_history(), back(), forth(): use
- forward(), back() and clear\_history() of the
- Qt\_widget\_standard\_toolbar instead.
- - custom\_redraw(): use redraw\_on\_back() and
- redraw\_on\_front() instead.
+ - Deprecated members of `Qt_widget`:
+ - `add_to_history()`, `clear_history()`, `back()`, `forth()`: use
+ `forward()`, `back()` and `clear_history()` of the
+ `Qt_widget_standard_toolbar` instead.
+ - `custom_redraw()`: use `redraw_on_back()` and
+ `redraw_on_front()` instead.
- Optimizations: the output operators of the following classes
have been optimized:
- - CGAL::Segment\_2 (now tests for intersection with the
+ - `CGAL::Segment_2` (now tests for intersection with the
drawing area)
- - CGAL::Triangle\_2 (now tests for intersection with the
+ - `CGAL::Triangle_2` (now tests for intersection with the
drawing area)
- - CGAL::Triangulation\_2 (is optimized for faster display on
+ - `CGAL::Triangulation_2` (is optimized for faster display on
zooming)
### Erratum in the Kernel manual
- Intersection test routines
- The documentation of CGAL::do\_intersect should mention, for the 3D
+ The documentation of `CGAL::do_intersect` should mention, for the 3D
case:
Also, in three-dimensional space *Type1* can be
- - either *Plane\_3<Kernel>*
- - or *Triangle\_3<Kernel>*
+ - either *`Plane_3`*
+ - or *`Triangle_3`*
and *Type2* any of
- - *Plane\_3<Kernel>*
- - *Line\_3<Kernel>*
- - *Ray\_3<Kernel>*
- - *Segment\_3<Kernel>*
- - *Triangle\_3<Kernel>*
+ - *`Plane_3`*
+ - *`Line_3`*
+ - *`Ray_3`*
+ - *`Segment_3`*
+ - *`Triangle_3`*
- In the same way, for *Kernel::DoIntersect\_3*:
+ In the same way, for *`Kernel::DoIntersect_3`*:
for all pairs *Type1* and *Type2*, where the type *Type1* is
- - either *Kernel::Plane\_3*
- - or *Kernel::Triangle\_3*
+ - either *`Kernel::Plane_3`*
+ - or *`Kernel::Triangle_3`*
and *Type2* can be any of the following:
- - *Kernel::Plane\_3*
- - *Kernel::Line\_3*
- - *Kernel::Ray\_3*
- - *Kernel::Segment\_3*
- - *Kernel::Triangle\_3*
+ - *`Kernel::Plane_3`*
+ - *`Kernel::Line_3`*
+ - *`Kernel::Ray_3`*
+ - *`Kernel::Segment_3`*
+ - *`Kernel::Triangle_3`*
Philippe Guigue (INRIA Sophia-Antipolis) should be mentioned as one
of the authors.
@@ -5950,7 +5951,7 @@ The following functionality has been added or changed:
### Kernels
-- Point\_d has been removed from the 2D and 3D kernels. This type is
+- `Point_d` has been removed from the 2D and 3D kernels. This type is
now available from the d-dimensional kernel only.
### Basic Library
@@ -5967,7 +5968,7 @@ The following functionality has been added or changed:
resulting subcurves or a planar map.
- Planar Maps and Arrangements
- - New quicker insertion functions of Planar\_map\_2 for cases
+ - New quicker insertion functions of `Planar_map_2` for cases
where more precomputed information is available regarding the
position of the inserted curve in the map.
- New query function for planar maps that determines whether a
@@ -5979,7 +5980,7 @@ The following functionality has been added or changed:
- Polyhedral Surface
- new design introduced with release 2.3 now supported by VC7
compiler
- - Extended functionality of Polyhedron\_incremental\_builder:
+ - Extended functionality of `Polyhedron_incremental_builder`:
absolute indexing allows one to add new surfaces to existing
ones.
@@ -5993,7 +5994,7 @@ The following functionality has been added or changed:
to handle intersecting input constraints. The behavior of
constrained triangulations with respect to intersection of input
constraints can be customized using an intersection tag.
- - A new class Constrained\_triangulation\_plus offers a
+ - A new class `Constrained_triangulation_plus` offers a
constrained hierarchy on top of a constrained triangulations.
This additional data structure describes the subdivision of the
original constraints into edges of the triangulations.
@@ -6002,30 +6003,29 @@ The following functionality has been added or changed:
- Running time improved by a better and more compact management of
memory allocation
- Various improvements and small functionalities added:
- - Triangulation\_3<GT,Tds>::triangle() returns a
+ - `Triangulation_3::triangle()` returns a
triangle oriented towards the outside of the cell c for
facet (c,i)
- - New function insert(Point, Locate\_type, Cell\_handle, int,
- int) which avoids the location step.
+ - New function `insert(Point, Locate_type, Cell_handle, int, int)` which avoids the location step.
- New function to get access to cells in conflict in a
- Delaunay insertion : find\_conflicts() and
- insert\_in\_hole()
- - New function TDS::delete\_cells(begin, end).
- - New functions : degree(v), reorient(),
- remove\_decrease\_dimension(), remove\_from\_simplex().
+ Delaunay insertion : `find_conflicts()` and
+ `insert_in_hole()`
+ - New function `TDS::delete_cells(begin, end)`.
+ - New functions : `degree(v)`, `reorient()`,
+ `remove_decrease_dimension()`, `remove_from_simplex()`.
- Changes of interface:
- vertices and cells are the same for the triangulation data
structure and the geometric triangulation
- - the triangulation data structure uses Vertex\_handle (resp
- Cell\_handle) instead of Vertex\* (resp Cell\*).
- - incident\_cells() and incident\_vertices() are templated by
+ - the triangulation data structure uses `Vertex_handle` (resp
+ `Cell_handle`) instead of `Vertex*` (resp `Cell*`).
+ - `incident_cells()` and `incident_vertices()` are templated by
output iterators
- changes in the iterators and circulators interface:
- Iterators and circulators are convertible to handles
- automatically, no need to call "->handle()" anymore.
- - Vertex\_iterator split into All\_vertices\_iterator and
- Finite\_vertices\_iterator (and similar for cells...).
- - TDS::Edge/Facet iterators now support operator->.
+ automatically, no need to call `->handle()` anymore.
+ - `Vertex_iterator` split into `All_vertices_iterator` and
+ `Finite_vertices_iterator` (and similar for cells...).
+ - TDS::Edge/Facet iterators now support `operator->`.
- 2D Search structures
Additional range search operations taking a predicate functor have
@@ -6033,7 +6033,7 @@ The following functionality has been added or changed:
### Support Library
-- Qt\_widget
+- `Qt_widget`
- We have added a new class for visualization of 2D CGAL objects.
It is derived from Trolltech's Qt class QWidget and privdes a
used to scale and pan.
@@ -6041,7 +6041,7 @@ The following functionality has been added or changed:
shapes, 2D Convex Hull, Largest empty 2D rectangle, Maximum
k-gon, Minimum ellipse, Minimum 2D quadrilateral, 2D polygon
partitioning 2D regular and constrained triangulation.
- - Tutorials are available to help users get used to Qt\_widget
+ - Tutorials are available to help users get used to `Qt_widget`
- Timer
Fixed Timer class (for user process time) to have no wrap-around
@@ -6080,7 +6080,7 @@ LEDA release that introduces the leda namespace.
compile (mind that the so-called leda polyline traits does
compile).
- On g++ (on Irix 6.5) the segment-circle
- (Arr\_segment\_circle\_traits\_2) traits does not compile for
+ (`Arr_segment_circle_traits_2`) traits does not compile for
either of the above packages.
## Release 2.3
@@ -6186,7 +6186,7 @@ kernels themselves can be used as traits classes in many instances.
bugs in copying the halfedge data structure (and therefore also
polyhedral surfaces) have been fixed in both designs. Copying a
list-based representation is now based on hash maps instead of
- std::map and is therefore considerably faster.
+ `std::map` and is therefore considerably faster.
- Polyhedral Surface
@@ -6223,12 +6223,12 @@ kernels themselves can be used as traits classes in many instances.
- Additional functionality:
- dual method for regular triangulations (to build a power
diagram)
- - unified names and signatures for various "find\_conflicts()"
+ - unified names and signatures for various "`find_conflicts()`"
member functions in Delaunay and constrained Delaunay
triangulation.
- - As an alternative to the simple insert() member function,
+ - As an alternative to the simple `insert()` member function,
insertion of points in those triangulation can be performed
- using the combination of find\_conflicts() and star\_hole()
+ using the combination of `find_conflicts()` and `star_hole()`
which eventually allows the user to keep track of deleted
faces.
- More demos and examples
@@ -6260,7 +6260,7 @@ kernels themselves can be used as traits classes in many instances.
- The traits requirements for matrix search and minimum quadrilaterals
have been changed to bring them in line with the CGAL kernels.
-- Point\_set\_2
+- `Point_set_2`
- now independent of LEDA; based on the CGAL Delaunay
triangulation
- traits class requirements adapted to new kernel concept.
@@ -6305,17 +6305,17 @@ Additional supported platforms:
The following functionality has been added:
-- There is a new, non-reference-counted kernel, Simple\_cartesian.
+- There is a new, non-reference-counted kernel, `Simple_cartesian`.
Because reference counting is not used, and thus coordinates are
stored within a class, debugging is easier using this kernel. This
kernel can also be faster in some cases than the reference-counted
Cartesian kernel.
- New optimization algorithms
- - Min\_annulus\_d - Algorithm for computing the smallest enclosing
+ - `Min_annulus_d` - Algorithm for computing the smallest enclosing
annulus of points in arbitrary dimension
- - Polytope\_distance\_d - Algorithm for computing the (squared)
+ - `Polytope_distance_d` - Algorithm for computing the (squared)
distance between two convex polytopes in arbitrary dimension
- - Width\_3 - Algorithm for computing the (squared) width of points
+ - `Width_3` - Algorithm for computing the (squared) width of points
sets in three dimensions
- 2D Triangulations
- There are now two triangulation data structures available in
@@ -6367,11 +6367,11 @@ The following functionality has been added:
triangulations.
- Triangulations in 3D were added, both Delaunay triangulations and
regular triangulations.
-- Min\_quadrilateral optimizations have been added. These are
+- `Min_quadrilateral` optimizations have been added. These are
algorithms to compute the minimum enclosing rectangle/parallelogram
(arbitrary orientation) and the minimum enclosing strip of a convex
point set.
-- 2d Point\_set is a package for 2d range search operations, Delaunay
+- 2d `Point_set` is a package for 2d range search operations, Delaunay
triangulation, nearest neighbor queries. This package works only if
LEDA is installed.
- Support for GeoWin visualization library. This also depends on LEDA.