mirror of https://github.com/CGAL/cgal
be more selective before using the statically filtered predicate
a sufficient requirement is that the point type of the traits is the point type of the kernel
This commit is contained in:
parent
8aa67dcfa4
commit
319ca016f7
|
|
@ -44,6 +44,7 @@
|
||||||
#include <boost/bind.hpp>
|
#include <boost/bind.hpp>
|
||||||
#include <boost/next_prior.hpp>
|
#include <boost/next_prior.hpp>
|
||||||
#include <boost/type_traits/is_floating_point.hpp>
|
#include <boost/type_traits/is_floating_point.hpp>
|
||||||
|
#include <boost/type_traits/is_same.hpp>
|
||||||
#include <CGAL/internal/Exact_type_selector.h>
|
#include <CGAL/internal/Exact_type_selector.h>
|
||||||
|
|
||||||
|
|
||||||
|
|
@ -85,13 +86,18 @@ template <class Traits,
|
||||||
class Is_floating_point=
|
class Is_floating_point=
|
||||||
typename boost::is_floating_point<typename Kernel_traits<typename Traits::Point_3>::Kernel::FT>::type,
|
typename boost::is_floating_point<typename Kernel_traits<typename Traits::Point_3>::Kernel::FT>::type,
|
||||||
class Has_filtered_predicates_tag=typename Kernel_traits<typename Traits::Point_3>::Kernel::Has_filtered_predicates_tag,
|
class Has_filtered_predicates_tag=typename Kernel_traits<typename Traits::Point_3>::Kernel::Has_filtered_predicates_tag,
|
||||||
class Has_cartesian_tag=typename Kernel_traits<typename Traits::Point_3>::Kernel::Kernel_tag >
|
class Has_cartesian_tag=typename Kernel_traits<typename Traits::Point_3>::Kernel::Kernel_tag,
|
||||||
|
class Has_classical_point_type =
|
||||||
|
typename boost::is_same<
|
||||||
|
typename Kernel_traits<typename Traits::Point_3>::Kernel::Point_3,
|
||||||
|
typename Traits::Point_3 >::type
|
||||||
|
>
|
||||||
struct Use_advanced_filtering{
|
struct Use_advanced_filtering{
|
||||||
typedef CGAL::Tag_false type;
|
typedef CGAL::Tag_false type;
|
||||||
};
|
};
|
||||||
|
|
||||||
template <class Traits>
|
template <class Traits>
|
||||||
struct Use_advanced_filtering<Traits,boost::true_type,Tag_true,Cartesian_tag>{
|
struct Use_advanced_filtering<Traits,boost::true_type,Tag_true,Cartesian_tag,boost::true_type>{
|
||||||
typedef typename Kernel_traits<typename Traits::Point_3>::Kernel K;
|
typedef typename Kernel_traits<typename Traits::Point_3>::Kernel K;
|
||||||
typedef CGAL::Boolean_tag<K::Has_static_filters> type;
|
typedef CGAL::Boolean_tag<K::Has_static_filters> type;
|
||||||
};
|
};
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue