diff --git a/Number_types/include/CGAL/CORE_BigFloat.h b/Number_types/include/CGAL/CORE_BigFloat.h index 2488af7d00d..09302bcdfa3 100644 --- a/Number_types/include/CGAL/CORE_BigFloat.h +++ b/Number_types/include/CGAL/CORE_BigFloat.h @@ -531,6 +531,7 @@ namespace Eigen { typedef CORE::BigFloat Real; typedef CORE::BigFloat NonInteger; typedef CORE::BigFloat Nested; + typedef CORE::BigFloat Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/CORE_BigInt.h b/Number_types/include/CGAL/CORE_BigInt.h index 288ebedbd0b..a3c18b16101 100644 --- a/Number_types/include/CGAL/CORE_BigInt.h +++ b/Number_types/include/CGAL/CORE_BigInt.h @@ -207,6 +207,7 @@ namespace Eigen { typedef CORE::BigInt Real; typedef CORE::BigRat NonInteger; typedef CORE::BigInt Nested; + typedef CORE::BigInt Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/CORE_BigRat.h b/Number_types/include/CGAL/CORE_BigRat.h index 6afc12f1fd7..8f5f7260185 100644 --- a/Number_types/include/CGAL/CORE_BigRat.h +++ b/Number_types/include/CGAL/CORE_BigRat.h @@ -243,6 +243,7 @@ namespace Eigen { typedef CORE::BigRat Real; typedef CORE::BigRat NonInteger; typedef CORE::BigRat Nested; + typedef CORE::BigRat Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/CORE_Expr.h b/Number_types/include/CGAL/CORE_Expr.h index 579a2090e5a..4bd38945006 100644 --- a/Number_types/include/CGAL/CORE_Expr.h +++ b/Number_types/include/CGAL/CORE_Expr.h @@ -196,6 +196,7 @@ namespace Eigen { typedef CORE::Expr Real; typedef CORE::Expr NonInteger; typedef CORE::Expr Nested; + typedef CORE::Expr Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Gmpfi.h b/Number_types/include/CGAL/Gmpfi.h index 97bb80d8647..479f1608a4b 100644 --- a/Number_types/include/CGAL/Gmpfi.h +++ b/Number_types/include/CGAL/Gmpfi.h @@ -342,6 +342,7 @@ namespace Eigen { typedef CGAL::Gmpfi Real; typedef CGAL::Gmpfi NonInteger; typedef CGAL::Gmpfi Nested; + typedef CGAL::Gmpfi Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Gmpfr.h b/Number_types/include/CGAL/Gmpfr.h index 5179425ff19..94bb613b61e 100644 --- a/Number_types/include/CGAL/Gmpfr.h +++ b/Number_types/include/CGAL/Gmpfr.h @@ -162,6 +162,7 @@ namespace Eigen { typedef CGAL::Gmpfr Real; typedef CGAL::Gmpfr NonInteger; typedef CGAL::Gmpfr Nested; + typedef CGAL::Gmpfr Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Gmpq.h b/Number_types/include/CGAL/Gmpq.h index 38fd09242c4..2fde983a7b3 100644 --- a/Number_types/include/CGAL/Gmpq.h +++ b/Number_types/include/CGAL/Gmpq.h @@ -141,6 +141,7 @@ namespace Eigen { typedef CGAL::Gmpq Real; typedef CGAL::Gmpq NonInteger; typedef CGAL::Gmpq Nested; + typedef CGAL::Gmpq Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Gmpz.h b/Number_types/include/CGAL/Gmpz.h index b196789c267..5a1b15dbb35 100644 --- a/Number_types/include/CGAL/Gmpz.h +++ b/Number_types/include/CGAL/Gmpz.h @@ -215,6 +215,7 @@ namespace Eigen { typedef CGAL::Gmpz Real; typedef CGAL::Gmpq NonInteger; typedef CGAL::Gmpz Nested; + typedef CGAL::Gmpz Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Interval_nt.h b/Number_types/include/CGAL/Interval_nt.h index e725e74621e..5dfa8b33bc4 100644 --- a/Number_types/include/CGAL/Interval_nt.h +++ b/Number_types/include/CGAL/Interval_nt.h @@ -1268,6 +1268,7 @@ namespace Eigen { typedef CGAL::Interval_nt Real; typedef CGAL::Interval_nt NonInteger; typedef CGAL::Interval_nt Nested; + typedef double Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Lazy_exact_nt.h b/Number_types/include/CGAL/Lazy_exact_nt.h index 4c0678a7976..77350845ba6 100644 --- a/Number_types/include/CGAL/Lazy_exact_nt.h +++ b/Number_types/include/CGAL/Lazy_exact_nt.h @@ -1428,6 +1428,7 @@ namespace Eigen { // typedef CGAL::Lazy_exact_nt NonInteger; typedef CGAL::Lazy_exact_nt::NonInteger> NonInteger; typedef CGAL::Lazy_exact_nt Nested; + typedef CGAL::Lazy_exact_nt Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/MP_Float.h b/Number_types/include/CGAL/MP_Float.h index 96687997387..0b55d55f692 100644 --- a/Number_types/include/CGAL/MP_Float.h +++ b/Number_types/include/CGAL/MP_Float.h @@ -888,6 +888,7 @@ namespace Eigen { typedef CGAL::MP_Float Real; typedef CGAL::Quotient NonInteger; typedef CGAL::MP_Float Nested; + typedef CGAL::MP_Float Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Mpzf.h b/Number_types/include/CGAL/Mpzf.h index 57707666d69..8d645478283 100644 --- a/Number_types/include/CGAL/Mpzf.h +++ b/Number_types/include/CGAL/Mpzf.h @@ -1137,6 +1137,7 @@ namespace Eigen { /* Should this be Quotient? Gmpq? */ typedef CGAL::Mpzf NonInteger; typedef CGAL::Mpzf Nested; + typedef CGAL::Mpzf Literal; static inline Real epsilon() { return 0; } static inline Real dummy_precision() { return 0; } diff --git a/Number_types/include/CGAL/Quotient.h b/Number_types/include/CGAL/Quotient.h index a1934fc12ee..2617ac92dd8 100644 --- a/Number_types/include/CGAL/Quotient.h +++ b/Number_types/include/CGAL/Quotient.h @@ -859,6 +859,7 @@ namespace Eigen { typedef CGAL::Quotient Real; typedef CGAL::Quotient NonInteger; typedef CGAL::Quotient Nested; + typedef CGAL::Quotient Literal; static inline Real epsilon() { return NumTraits::epsilon(); } static inline Real dummy_precision() { return NumTraits::dummy_precision(); } diff --git a/Number_types/include/CGAL/Sqrt_extension/Eigen_NumTraits.h b/Number_types/include/CGAL/Sqrt_extension/Eigen_NumTraits.h index c9d28d8a993..725e8b177e2 100644 --- a/Number_types/include/CGAL/Sqrt_extension/Eigen_NumTraits.h +++ b/Number_types/include/CGAL/Sqrt_extension/Eigen_NumTraits.h @@ -30,6 +30,7 @@ namespace Eigen { typedef CGAL::Sqrt_extension Real; typedef Real NonInteger; typedef Real Nested; + typedef Real Literal; static inline Real epsilon() { return NumTraits::epsilon(); } diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h index 4406c5c2b1f..016abfcfaf6 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h @@ -26,6 +26,7 @@ #include #include #include +#include #include #include diff --git a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/simplify.h b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/simplify.h index 9f0f46f38e5..9b6a4002b39 100644 --- a/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/simplify.h +++ b/Polyline_simplification_2/include/CGAL/Polyline_simplification_2/simplify.h @@ -339,7 +339,7 @@ template typedef Vertex_base_2< K > Vb; typedef CGAL::Constrained_triangulation_face_base_2 Fb; typedef CGAL::Triangulation_data_structure_2 TDS; - typedef CGAL::Constrained_Delaunay_triangulation_2 CDT; + typedef CGAL::Constrained_Delaunay_triangulation_2::type> CDT; typedef CGAL::Constrained_triangulation_plus_2 PCT; typedef typename PCT::Constraint_id Constraint_id; typedef typename PCT::Vertices_in_constraint_iterator Vertices_in_constraint_iterator; @@ -387,7 +387,7 @@ Simplifies an open or closed polyline given as an iterator range of 2D \cgal poi typedef Vertex_base_2< K > Vb; typedef CGAL::Constrained_triangulation_face_base_2 Fb; typedef CGAL::Triangulation_data_structure_2 TDS; - typedef CGAL::Constrained_Delaunay_triangulation_2 CDT; + typedef CGAL::Constrained_Delaunay_triangulation_2::type > CDT; typedef CGAL::Constrained_triangulation_plus_2 PCT; typedef typename PCT::Constraint_id Constraint_id; typedef typename PCT::Vertices_in_constraint_iterator Vertices_in_constraint_iterator; diff --git a/Triangulation_2/include/CGAL/Constrained_triangulation_2.h b/Triangulation_2/include/CGAL/Constrained_triangulation_2.h index 56f3149513e..6a14a41a77a 100644 --- a/Triangulation_2/include/CGAL/Constrained_triangulation_2.h +++ b/Triangulation_2/include/CGAL/Constrained_triangulation_2.h @@ -32,12 +32,24 @@ #include #include +#include + namespace CGAL { struct No_intersection_tag{}; struct Exact_intersections_tag{}; // to be used with an exact number type struct Exact_predicates_tag{}; // to be used with filtered exact number +namespace internal { + +template +struct Itag { + typedef typename boost::mpl::if_::Is_exact, + Exact_intersections_tag, + Exact_predicates_tag>::type type; +}; + +} // namespace internal template < class Gt, class Tds_ = Default ,