Merge remote-tracking branch 'cgal/releases/CGAL-4.8-branch'

> 3176b37 Merge pull request #1452 from mglisse/Number_types-Eigen_Literal-glisse
> 1705702 Merge pull request #1417 from afabri/Polyline_simplification-Bugfix_choose_correct_Itag-GF
> 3bef239 Merge pull request #1462 from sloriot/PMP-add_missing_include
This commit is contained in:
Laurent Rineau 2016-09-15 17:25:20 +02:00
commit e2d04e54e0
17 changed files with 29 additions and 2 deletions

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -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; }

View File

@ -1268,6 +1268,7 @@ namespace Eigen {
typedef CGAL::Interval_nt<b> Real;
typedef CGAL::Interval_nt<b> NonInteger;
typedef CGAL::Interval_nt<b> Nested;
typedef double Literal;
static inline Real epsilon() { return 0; }
static inline Real dummy_precision() { return 0; }

View File

@ -1428,6 +1428,7 @@ namespace Eigen {
// typedef CGAL::Lazy_exact_nt<ET> NonInteger;
typedef CGAL::Lazy_exact_nt<typename NumTraits<ET>::NonInteger> NonInteger;
typedef CGAL::Lazy_exact_nt<ET> Nested;
typedef CGAL::Lazy_exact_nt<ET> Literal;
static inline Real epsilon() { return 0; }
static inline Real dummy_precision() { return 0; }

View File

@ -888,6 +888,7 @@ namespace Eigen {
typedef CGAL::MP_Float Real;
typedef CGAL::Quotient<CGAL::MP_Float> NonInteger;
typedef CGAL::MP_Float Nested;
typedef CGAL::MP_Float Literal;
static inline Real epsilon() { return 0; }
static inline Real dummy_precision() { return 0; }

View File

@ -1137,6 +1137,7 @@ namespace Eigen {
/* Should this be Quotient<Mpzf>? 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; }

View File

@ -859,6 +859,7 @@ namespace Eigen {
typedef CGAL::Quotient<NT> Real;
typedef CGAL::Quotient<NT> NonInteger;
typedef CGAL::Quotient<NT> Nested;
typedef CGAL::Quotient<NT> Literal;
static inline Real epsilon() { return NumTraits<NT>::epsilon(); }
static inline Real dummy_precision() { return NumTraits<NT>::dummy_precision(); }

View File

@ -30,6 +30,7 @@ namespace Eigen {
typedef CGAL::Sqrt_extension<NT, ROOT, ACDE_TAG, FP_TAG> Real;
typedef Real NonInteger;
typedef Real Nested;
typedef Real Literal;
static inline Real epsilon() { return NumTraits<NT>::epsilon(); }

View File

@ -26,6 +26,7 @@
#include <CGAL/boost/graph/Euler_operations.h>
#include <CGAL/property_map.h>
#include <CGAL/Polygon_mesh_processing/orient_polygon_soup.h>
#include <CGAL/algorithm.h>
#include <set>
#include <boost/range/size.hpp>

View File

@ -339,7 +339,7 @@ template <class Traits, class Container, class CostFunction, class StopFunction>
typedef Vertex_base_2< K > Vb;
typedef CGAL::Constrained_triangulation_face_base_2<K> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb,Fb> TDS;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, TDS, CGAL::Exact_predicates_tag> CDT;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, TDS,typename internal::Itag<K>::type> CDT;
typedef CGAL::Constrained_triangulation_plus_2<CDT> 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<K> Fb;
typedef CGAL::Triangulation_data_structure_2<Vb,Fb> TDS;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, TDS, CGAL::Exact_predicates_tag> CDT;
typedef CGAL::Constrained_Delaunay_triangulation_2<K, TDS,typename internal::Itag<K>::type > CDT;
typedef CGAL::Constrained_triangulation_plus_2<CDT> PCT;
typedef typename PCT::Constraint_id Constraint_id;
typedef typename PCT::Vertices_in_constraint_iterator Vertices_in_constraint_iterator;

View File

@ -32,12 +32,24 @@
#include <CGAL/intersections.h>
#include <CGAL/squared_distance_2.h>
#include <boost/mpl/if.hpp>
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 <typename K>
struct Itag {
typedef typename boost::mpl::if_<typename Algebraic_structure_traits<typename K::FT>::Is_exact,
Exact_intersections_tag,
Exact_predicates_tag>::type type;
};
} // namespace internal
template < class Gt,
class Tds_ = Default ,