When we set the exact comparison tag to true, we use a lazy evaluation
of predicates and store pointers to the arguments of the predicates (that is,
pointer to points). However, the points are -- in the case of periodic --
only temporary objects and it is thus dangerous to take pointers to those
temporary values because the pointers quickly become invalid.
Thus, periodic triangulations are not allowed to use the exact tag.
A possible way to make it work is to define a small class:
Periodic_triangulation_with_stored_real_points that would inherit the base
(periodic) triangulation but store all the points of its simplices.
Then, the function point(face_handle, int) would return an entry of that
container, of which it would be safe to take a pointer.
Instead of requiring an implicit conversion, we require that Cartesian_converter
can convert from Traits::Point_23 to Exact_kernel::Point_23
Also it will not compile (static_assert) if this functor is not provided instead
of silently defaulting to ExactAlphaComparisingTag = false
-- Aligned with the improvements that exist in Alpha_shapes_3
-- Actually define proper overloads for side_of_bounded_circle for weighted
points (was broken)
-- Minor stuff
Similarly to Regular_triangulation_euclidean_traits, the Kernel concept has now
absorbed all the functors that are needed by the alpha shape traits concept and
the weighted alpha shape traits can thus simply be empty shells.
The fact that power_side_of_bounded_power_circle_2 was not in the kernel
and this include was not used means that weighted alpha shapes 2 are bugged
(they ignore weights and only call side_of_bounded_sphere()). This will be
fixed when implicit conversions are removed.
Wextra results in a dreadful wall of yellow in the test-suite and is
scary when using CGAL. Reduce some of the noise by silencing the
obvious cases with CGAL_USE or comments.
the alpha-complex when alpha >= its squared_radius.
this was the source of a bug in find_alpha_solid which cause a bug
in find_optimal_alpha
fix approved by Mariette.
by namespace CGAL { and } //namespace CGAL. in all .h and .cpp files
in a directory.
Apply it to all packages in the trunk
Remove macro definition from the config.h file.