The difficulty is to detect/define which constructions are "trivial"
and must not be wrapped into `Converting_construction`. Otherwise the
use of `Cartesian_converter`, that uses trivial constructions itself,
can lead to loops and infinite call stacks.
This is because kernel converters are required before type equality
is established, and so one needs conversion for e.g. PointC3.
That could be added and then non-fundamental types could be forbidden
in parameters of converters, but that's for another time...
Instead, try to construct a NT1 from them. If it fails, give a compilation error.
This is to avoid converters silently doing nasty things like
Cartesian_converter<SC<CORE::Expr>, SC<double> >(2.) ==> 1 (bool true)
because there is no implicit conversion from double to SC<CORE::Expr>, so it
preferes using Enum_converter(bool) (with a double -> Boolean implicit
conversion...).
right after the merge of 4.14 release branch
+ manual fix on one line in:
* Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h
* .travis/generate_travis.sh
AABB_tree documentation, Intersections_3 and Arrangement_on_surface_2.
The merge also introduced a regression for a bug fixed in R68387 which
fixed a bug in Triangle_3 Segment_3 intersections. The relevant
testcase is in triangle_other_intersection_test.cpp.
Freie Universitaet Berlin (Germany), Martin-Luther-University Halle-Wittenberg
(Germany) and RISC Linz (Austria) as they transfer the copyright to other
sites.
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.
* CGAL_error to CGAL_error_msg
* introduced a macro CGAL_error()
* added some words about CGAL_error to the developers manual
* renamed most of assert(x) into CGAL_assertion(x)
* renamed exit(x) with x != 0 , CGAL_assertion(false) and assert(false) into CGAL_error
* CORE left untouched, OpenNL changed
The additional dummy "int" specifies that the 2 points are
the lower-left and upper-right corner. This is more efficient
when one knows they are already in this configuration.
Same thing for Iso_cuboid_3, and the functors.
Use them in Cartesian_converter and Homogeneous_converter.