CGAL 6.1.1 - 2D and 3D Linear Geometry Kernel

Loading...
Searching...
No Matches
List of all members
CGAL::Filtered_kernel< CK, UseStaticFilters > Struct Template Reference
Reference Manual » Kernel Classes

`#include <CGAL/Filtered_kernel.h>`

## Definition

template<typename CK, bool UseStaticFilters>
struct CGAL::Filtered_kernel< CK, UseStaticFilters >

`Filtered_kernel` is a kernel that uses a filtering technique based on interval arithmetic form to achieve exact and efficient predicates.

It is based on [1]. In addition, a few selected important predicates are implemented using the formally proved, semi-static, filtering techniques from [4].

The geometric constructions are exactly those of the kernel `CK`, which means that they are not necessarily exact.

Template Parameters

  CK | the "Construction Kernel", namely the kernel from which are taken the types of the geometric objects as well as the geometric constructions.
  UseStaticFilters | a Boolean value which activates or not an additional layer of semi-static filters. It defaults to `true` (activated), unless the `CGAL_NO_STATIC_FILTERS` macro is defined. This option is mostly for debugging and testing, there should be no production use for deactivating static filters.

Is model of
  `Kernel`

Example

The following example shows how to produce a kernel whose geometric objects and constructions are those of `Simple_cartesian<double>` but the predicates are exact.

#include <CGAL/Simple_cartesian.h>
#include <CGAL/Filtered_kernel.h>
typedef CGAL::Simple_cartesian<double> CK;
typedef CGAL::Filtered_kernel<CK> K;
CGAL::Filtered_kernel
Filtered_kernel is a kernel that uses a filtering technique based on interval arithmetic form to achi...
Definition: Filtered_kernel.h:96
CGAL::Simple_cartesian
A model for a Kernel using Cartesian coordinates to represent the geometric objects.
Definition: Simple_cartesian.h:31

Implementation

The implementation uses `CGAL::Filtered_predicate<EP, FP, C2E, C2F>` over each predicate of the kernel traits interface. Additionally, faster static filters may be used for a few selected critical predicates.

## Types
typedef EK | Exact_kernel
| The type of the exact kernel.
typedef FK | Approximate_kernel
| The type of the approximate "filtering" kernel.

## Constants
static const bool | Has_static_filters
| A Boolean value corresponding to the second template argument.

## Member Data Documentation

## ◆ Has_static_filters

template<typename CK , bool UseStaticFilters>

const bool CGAL::Filtered_kernel< CK, UseStaticFilters >::Has_static_filters
| static

A Boolean value corresponding to the second template argument.

Tells whether static filters are provided.