CGAL 6.0.1 - 2D Segment Delaunay Graphs
Loading...
Searching...
No Matches
CGAL::Segment_Delaunay_graph_filtered_traits_2< CK, CM, EK, EM, FK, FM > Struct Template Reference

#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_2< CK, CM, EK, EM, FK, FM >

The class Segment_Delaunay_graph_filtered_traits_2 provides a model for the SegmentDelaunayGraphTraits_2 concept.

The class Segment_Delaunay_graph_filtered_traits_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_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
CKis the construction kernel and it is the kernel that will be used for constructions.
CMmust be Field_with_sqrt_tag or Field_tag
EKis the exact kernel; this kernel will be used for computing the predicates if the filtering kernel fails to produce an answer.
EMmust be Field_with_sqrt_tag or Field_tag
FKis 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.
FMmust be Field_with_sqrt_tag or Field_tag

The first, third and fifth template parameters must be 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 Field_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 one requires that only field operations are exact. 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:

Is model of
SegmentDelaunayGraphTraits_2
DefaultConstructible
CopyConstructible
Assignable
See also
SegmentDelaunayGraphTraits_2
CGAL::Field_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_without_intersections_2<CK,CM,EK,EM,FK,FM>
Examples
Segment_Delaunay_graph_2/sdg-count-sites.cpp, Segment_Delaunay_graph_2/sdg-filtered-traits.cpp, Segment_Delaunay_graph_2/sdg-info-set.cpp, and Segment_Delaunay_graph_2/sdg-red-blue-info.cpp.

Types

In addition to the types required by the SegmentDelaunayGraphTraits_2 concept the class Segment_Delaunay_graph_filtered_traits_2 defines the following types:

typedef CGAL::Tag_true 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.