use Has_filtered_predicates flag for selecting base traits

This commit is contained in:
Sébastien Loriot 2016-03-08 15:01:02 +01:00
parent 418f048e0a
commit e21a48a306
5 changed files with 13 additions and 21 deletions

View File

@ -25,7 +25,7 @@
#include <CGAL/spatial_sort.h> #include <CGAL/spatial_sort.h>
// Needed by remove to fill the hole. // Needed by remove to fill the hole.
#include <CGAL/Periodic_3_regular_triangulation_remove_traits_3.h> #include <CGAL/internal/Periodic_3_regular_triangulation_remove_traits_3.h>
#include <CGAL/Regular_triangulation_3.h> #include <CGAL/Regular_triangulation_3.h>
#include <boost/unordered_set.hpp> #include <boost/unordered_set.hpp>

View File

@ -197,40 +197,31 @@ protected:
Iso_cuboid_3 _domain; Iso_cuboid_3 _domain;
}; };
template<typename K, typename Off = CGAL::Periodic_3_offset_3> template<typename RT, typename Off = CGAL::Periodic_3_offset_3, bool Has_filtered_predicates = RT::Has_filtered_predicates>
class Periodic_3_regular_triangulation_traits_3; class Periodic_3_regular_triangulation_traits_3;
} // namespace CGAL } // namespace CGAL
// Partial specialization for Filtered_kernel<CK>. // Partial specialization for Filtered_kernel<CK>.
#include <CGAL/Filtered_kernel.h> #include <CGAL/internal/Periodic_3_regular_triangulation_filtered_traits_3.h>
#include <CGAL/Exact_predicates_inexact_constructions_kernel.h>
#include <CGAL/Periodic_3_regular_triangulation_filtered_traits_3.h>
namespace CGAL namespace CGAL
{ {
// This declaration is needed to break the cyclic dependency. // This declaration is needed to break the cyclic dependency.
template<typename K, typename Off> template<typename RT, typename Off>
class Periodic_3_regular_triangulation_filtered_traits_3; class Periodic_3_regular_triangulation_filtered_traits_3;
template<class K, class Off> template<class RT, class Off, bool Has_filtered_predicates>
class Periodic_3_regular_triangulation_traits_3: public Periodic_3_regular_triangulation_traits_base_3<K, Off> class Periodic_3_regular_triangulation_traits_3:
{ public Periodic_3_regular_triangulation_traits_base_3<RT, Off>
}; {};
template < typename CK, typename Weight, typename Off > template < typename RT, typename Off >
class Periodic_3_regular_triangulation_traits_3<CGAL::Regular_triangulation_euclidean_traits_3< Filtered_kernel<CK>, Weight >, Off> class Periodic_3_regular_triangulation_traits_3<RT, Off, true>
: public Periodic_3_regular_triangulation_filtered_traits_3<CGAL::Regular_triangulation_euclidean_traits_3< Filtered_kernel<CK>, Weight >, Off> : public Periodic_3_regular_triangulation_filtered_traits_3<RT, Off>
{ {
public: public:
typedef Filtered_kernel<CK> Kernel; typedef RT Kernel;
};
template < class Weight, class Off >
class Periodic_3_regular_triangulation_traits_3<CGAL::Regular_triangulation_euclidean_traits_3< CGAL::Epick, Weight >, Off>
: public Periodic_3_regular_triangulation_filtered_traits_3<CGAL::Regular_triangulation_euclidean_traits_3< CGAL::Epick, Weight >, Off>
{
typedef CGAL::Epick Kernel;
}; };
} //namespace CGAL } //namespace CGAL

View File

@ -30,6 +30,7 @@
#include <CGAL/Interval_nt.h> #include <CGAL/Interval_nt.h>
#include <CGAL/Uncertain.h> #include <CGAL/Uncertain.h>
#include <CGAL/Profile_counter.h> #include <CGAL/Profile_counter.h>
#include <CGAL/Filtered_predicate.h>
namespace CGAL { namespace CGAL {