// Copyright (c) 2003 // Utrecht University (The Netherlands), // ETH Zurich (Switzerland), // INRIA Sophia-Antipolis (France), // Max-Planck-Institute Saarbruecken (Germany), // and Tel-Aviv University (Israel). All rights reserved. // // This file is part of CGAL (www.cgal.org) // // $URL$ // $Id$ // SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial // // // Author(s) : Menelaos Karavelas, Sylvain Pion #ifndef CGAL_EXACT_PREDICATES_EXACT_CONSTRUCTIONS_KERNEL_H #define CGAL_EXACT_PREDICATES_EXACT_CONSTRUCTIONS_KERNEL_H #include #include #include #include #include #ifndef CGAL_DONT_USE_LAZY_KERNEL # include #endif namespace CGAL { constexpr bool epeck_use_static_filter = #ifdef CGAL_NO_STATIC_FILTERS false; #else true; #endif // Epeck_ft is either Gmpq, or leda_rational, or Quotient using Epeck_ft = internal::Exact_field_selector::Type; // The following are redefined kernels instead of simple typedefs in order to shorten // template name length (for error messages, mangling...). #ifdef CGAL_DONT_USE_LAZY_KERNEL // Equivalent to Filtered_kernel > > class Epeck : public Filtered_kernel_adaptor< Type_equality_wrapper< Simple_cartesian >::Base::Type, Epeck >, epeck_use_static_filter > {}; // end class Epeck #else // no CGAL_DONT_USE_LAZY_KERNEL namespace internal { template using Epeck_sc = Simple_cartesian; using Epeck_interval = Simple_cartesian; template using Epeck_converter = Cartesian_converter, Epeck_interval>; template using Epeck_lazy_base = Lazy_kernel_base, Epeck_interval, Epeck_converter, Kernel>; template using Epeck_lazy_base_with_type_equality = Type_equality_wrapper, Kernel>; } // namespace internal // Equivalent to Lazy_kernel > class Epeck : public internal::Epeck_lazy_base_with_type_equality {}; #endif // no CGAL_DONT_USE_LAZY_KERNEL using Exact_predicates_exact_constructions_kernel = Epeck; template <> struct Triangulation_structural_filtering_traits { using Use_structural_filtering_tag = Tag_true; }; } //namespace CGAL #endif // CGAL_EXACT_PREDICATES_EXACT_CONSTRUCTIONS_KERNEL_H