CGAL 6.2 - 2D Segment Delaunay Graphs

Loading...
Searching...
No Matches
List of all members
CGAL::Segment_Delaunay_graph_filtered_traits_without_intersections_2< CK, CM, EK, EM, FK, FM > Struct Template Reference
Reference Manual

`#include <CGAL/Segment_Delaunay_graph_filtered_traits_2.h>`

## Definition

template<typename CK, typename CM, typename EK, typename EM, typename FK, typename FM>
struct CGAL::Segment_Delaunay_graph_filtered_traits_without_intersections_2< CK, CM, EK, EM, FK, FM >

The class `Segment_Delaunay_graph_filtered_traits_without_intersections_2` provides a model for the `SegmentDelaunayGraphTraits_2` concept.

The class `Segment_Delaunay_graph_filtered_traits_without_intersections_2` uses the filtering technique [1] to achieve traits for the `Segment_Delaunay_graph_2<Gt,St,DS>` class with efficient and exact predicates given an exact kernel `EK` and a filtering kernel `FK`. The geometric constructions associated provided by this class are equivalent to those provided by the traits class `Segment_Delaunay_graph_traits_without_intersections_2<CK,CM>`, which means that they may be inexact, depending on the choice of the `CK` kernel.

This class has six template parameters.

Template Parameters

  CK | is the construction kernel and it is the kernel that will be used for constructions.
  CM | must be `Field_with_sqrt_tag` or `Field_tag`
  EK | is the exact kernel; this kernel will be used for computing the predicates if the filtering kernel fails to produce an answer.
  EM | must be `Field_with_sqrt_tag` or `Field_tag`
  FK | is the filtering kernel; this kernel will be used for performing the arithmetic filtering for the predicates involved in the computation of the segment Delaunay graph.
  FM | must be `Field_with_sqrt_tag` or `Field_tag`

The first, third and fifth template parameters must be a models of the `Kernel` concept. The second, fourth and sixth template parameters correspond to how predicates are evaluated. There are two predefined possible values for these parameters, namely `Field_with_sqrt_tag` and `Euclidean_ring_tag`. The first one must be used when the number type used in the representation supports the exact evaluation of signs of expressions involving all four basic operations and square roots, whereas the second requires the exact evaluation of signs of ring-type expressions, i.e., expressions involving only additions, subtractions and multiplications. Finally, in order to get exact constructions `CM` must be set to `Field_with_sqrt_tag` and the number type in `CK` must support operations involving divisions and square roots (as well as the other three basic operations of course). The way the predicates are evaluated is discussed in [2] and [4] (the geometric filtering part).

The default values for the template parameters are as follows:

- `CM = CGAL::Field_with_sqrt_tag` (it is assumed that `Cartesian<double>` or `Simple_cartesian<double>` will be the entry for the template parameter `CK`),
- `EM = CGAL::Euclidean_ring_tag`,
- `FK = CGAL::Simple_cartesian<CGAL::Interval_nt<false> >`,
- `FM = CGAL::Field_with_sqrt_tag`.
- If the GMP package is installed with CGAL, the template parameter `EK` has the default value: `EK = CGAL::Simple_cartesian<CGAL::Gmpq>`, otherwise its default value is `EK = CGAL::Simple_cartesian<CGAL::MP_Float>`.

Is model of
  `SegmentDelaunayGraphTraits_2`
  `DefaultConstructible`
  `CopyConstructible`
  `Assignable`

See also
  `Kernel`
  `SegmentDelaunayGraphTraits_2`
  `CGAL::Euclidean_ring_tag`
  `CGAL::Field_with_sqrt_tag`
  `CGAL::Segment_Delaunay_graph_2<Gt,St,DS>`
  `CGAL::Segment_Delaunay_graph_hierarchy_2<Gt,St,STag,DS>`
  `CGAL::Segment_Delaunay_graph_traits_2<K,MTag>`
  `CGAL::Segment_Delaunay_graph_traits_without_intersections_2<K,MTag>`
  `CGAL::Segment_Delaunay_graph_filtered_traits_2<CK,CM,EK,EM,FK,FM>`

Examples
  Segment_Delaunay_graph_2/sdg-fast-sp-polygon.cpp, and Segment_Delaunay_graph_2/sdg-fast-sp.cpp.

## Types
In addition to the types required by the `SegmentDelaunayGraphTraits_2` concept the class `Segment_Delaunay_graph_filtered_traits_without_intersections_2` defines the following types:
typedef CGAL::Tag_false | Intersections_tag
typedef CK | Kernel
typedef CK | Construction_kernel
typedef FK | Filtering_kernel
typedef EK | Exact_kernel
typedef CM | Method_tag
typedef CM | Construction_traits_method_tag
typedef FM | Filtering_traits_method_tag
typedef EM | Exact_traits_method_tag
typedef unspecified_type | Construction_traits
| A type for the segment Delaunay graph traits, where the kernel is `CK`.
typedef unspecified_type | Filtering_traits
| A type for the segment Delaunay graph traits, where the kernel is `FK`.
typedef unspecified_type | Exact_traits
| A type for the segment Delaunay graph traits, where the kernel is `EK`.