CGAL 4.14 - 2D and 3D Linear Geometry Kernel
|
#include <CGAL/Filtered_kernel.h>
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.
Parameters
The first parameter, CK
, is the "Construction Kernel", namely the kernel from which are taken the types of the geometric objects as well as the geometric constructions.
The second parameter, UseStaticFilters
, is 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.
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.
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. More... | |
|
static |
A Boolean value corresponding to the second template argument.
Tells whether static filters are provided.