mirror of https://github.com/CGAL/cgal
Use a clearer name than "Static_filtered_predicate" for EPECK static filters
This commit is contained in:
parent
a886420841
commit
468dde773d
|
|
@ -9,15 +9,15 @@
|
||||||
//
|
//
|
||||||
// Author(s) : Andreas Fabri, Laurent Rineau
|
// Author(s) : Andreas Fabri, Laurent Rineau
|
||||||
|
|
||||||
#ifndef CGAL_STATIC_FILTERED_PREDICATE_H
|
#ifndef CGAL_EPIC_PREDICATE_IF_CONVERTIBLE_H
|
||||||
#define CGAL_STATIC_FILTERED_PREDICATE_H
|
#define CGAL_EPIC_PREDICATE_IF_CONVERTIBLE_H
|
||||||
|
|
||||||
#include <CGAL/Epic_converter.h>
|
#include <CGAL/Epic_converter.h>
|
||||||
|
|
||||||
namespace CGAL {
|
namespace CGAL {
|
||||||
|
|
||||||
template <typename AK, typename FP, typename EpicP>
|
template <typename AK, typename FP, typename EpicP>
|
||||||
class Static_filtered_predicate {
|
class EPIC_predicate_if_convertible {
|
||||||
public:
|
public:
|
||||||
FP fp;
|
FP fp;
|
||||||
EpicP epicp;
|
EpicP epicp;
|
||||||
|
|
@ -54,4 +54,4 @@ public:
|
||||||
|
|
||||||
} // CGAL
|
} // CGAL
|
||||||
|
|
||||||
#endif // CGAL_STATIC_FILTERED_PREDICATE_H
|
#endif // CGAL_EPIC_PREDICATE_IF_CONVERTIBLE_H
|
||||||
|
|
@ -86,7 +86,7 @@ public:
|
||||||
#ifdef CGAL_NO_STATIC_FILTERS_FOR_LAZY_KERNEL
|
#ifdef CGAL_NO_STATIC_FILTERS_FOR_LAZY_KERNEL
|
||||||
enum { Has_static_filters = false };
|
enum { Has_static_filters = false };
|
||||||
#else
|
#else
|
||||||
// @fixme, this should be 'true' but it's broken because Conditional_EPIC_predicate
|
// @fixme, this should be 'true' but it's broken because EPIC_predicate_if_convertible
|
||||||
// assumes the static filtered predicate and the (non-static) filtered predicate
|
// assumes the static filtered predicate and the (non-static) filtered predicate
|
||||||
// have the same signature, which is not always the case, for example in
|
// have the same signature, which is not always the case, for example in
|
||||||
// Do_intersect_3(Sphere_3, Bbox_3, *bool*)
|
// Do_intersect_3(Sphere_3, Bbox_3, *bool*)
|
||||||
|
|
@ -137,8 +137,15 @@ public:
|
||||||
typedef Filtered_predicate<typename Exact_kernel::P, typename Approximate_kernel::P, C2E, C2F> P; \
|
typedef Filtered_predicate<typename Exact_kernel::P, typename Approximate_kernel::P, C2E, C2F> P; \
|
||||||
P Pf() const { return P(); }
|
P Pf() const { return P(); }
|
||||||
#else
|
#else
|
||||||
#define CGAL_Kernel_pred(P, Pf) \
|
// - the first template parameter is because either it fits in a double, or not, so
|
||||||
typedef Static_filtered_predicate<Approximate_kernel, Filtered_predicate<typename Exact_kernel::P, typename Approximate_kernel::P, C2E, C2F>, Exact_predicates_inexact_constructions_kernel::P> P; \
|
// we might as well use the approximate kernel directly rather than the complete lazy kernel
|
||||||
|
// - the second is the predicate to be called if EPICK is not usable
|
||||||
|
// - the third is the equivalent predicate in EPICK
|
||||||
|
#define CGAL_Kernel_pred(P, Pf) \
|
||||||
|
typedef EPIC_predicate_if_convertible<Approximate_kernel, \
|
||||||
|
Filtered_predicate<typename Exact_kernel::P, \
|
||||||
|
typename Approximate_kernel::P, C2E, C2F>, \
|
||||||
|
Exact_predicates_inexact_constructions_kernel::P> P; \
|
||||||
P Pf() const { return P(); }
|
P Pf() const { return P(); }
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue