CGAL 6.0 - 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.
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.
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. | |
|
static |
A Boolean value corresponding to the second template argument.
Tells whether static filters are provided.