CGAL 6.1 - dD Range and Segment Trees
Loading...
Searching...
No Matches
RangeSegmentTreeTraits_k Class Reference

#include <Concepts/RangeSegmentTreeTraits_k.h>

Definition

A tree traits class gives the range tree and segment tree class the necessary type information of the keys and intervals. Further more, they define function objects that allow to access the keys and intervals, and provide comparison functions that are needed for window queries.

Has models
CGAL::Range_segment_tree_set_traits_2
CGAL::Range_segment_tree_set_traits_3
CGAL::Range_tree_map_traits_2
CGAL::Range_tree_map_traits_3
CGAL::Segment_tree_map_traits_2
CGAL::Segment_tree_map_traits_3

Example

The following piece of code gives an example of how a traits class might look like, if you have keys that are of the type int in the first and that are of the type double in the second dimension.

class Int_double_tree_traits_2{
public:
typedef std::pair<int, double> Key;
typedef int Key_1;
typedef double Key_2;
typedef std::pair<Key,Key> Interval;
class C_Key_1{
public:
Key_1 operator()(const Key& k)
{ return k.first;}
};
class C_Key_2{
public:
Key_2 operator()(const Key& k)
{ return k.second;}
};
class C_Low_1{
public:
Key_1 operator()(const Interval& i)
{ return i.first.first;}
};
class C_High_1{
public:
Key_1 operator()(const Interval& i)
{ return i.second.first;}
};
class C_Low_2{
public:
Key_2 operator()(const Interval& i)
{ return i.first.second;}
};
class C_High_2{
public:
Key_2 operator()(const Interval& i)
{ return i.second.second;}
};
class C_Compare_1{
public:
bool operator()(Key_1 k1, Key_1 k2)
{ return less<int>()(k1,k2);}
};
class C_Compare_2{
public:
bool operator()(Key_2 k1, Key_2 k2)
{ return less<double>()(k1,k2);}
};
typedef C_Compare_1 compare_1;
typedef C_Compare_2 compare_2;
typedef C_Low_1 low_1;
typedef C_High_1 high_1;
typedef C_Key_1 key_1;
typedef C_Low_2 low_2;
typedef C_High_2 high_2;
typedef C_Key_2 key_2;
};
unspecified_type Key
The k-dimensional key type.
Definition RangeSegmentTreeTraits_k.h:98
unspecified_type Interval
The k-dimensional interval type.
Definition RangeSegmentTreeTraits_k.h:103

Types

typedef unspecified_type Key
 The k-dimensional key type.
 
typedef unspecified_type Interval
 The k-dimensional interval type.
 
typedef unspecified_type Key_i
 The type in dimension \( i\), with \( 1\leq i \leq k\).
 
typedef unspecified_type key_i
 function object providing an operator() that takes an argument of type Key and returns a component of type Key_i.
 
typedef unspecified_type low_i
 function object providing an operator() that takes an argument of type Interval and returns a component of type Key_i.
 
typedef unspecified_type high_i
 function object providing an operator() that takes an argument of type Interval and returns a component of type Key_i.
 
typedef unspecified_type compare_i
 function object providing an operator() that takes two arguments argument \( a\), \( b\) of type Key_i and returns true if \( a<b\), false otherwise.
 

Member Typedef Documentation

◆ compare_i

typedef unspecified_type RangeSegmentTreeTraits_k::compare_i

function object providing an operator() that takes two arguments argument \( a\), \( b\) of type Key_i and returns true if \( a<b\), false otherwise.

◆ high_i

typedef unspecified_type RangeSegmentTreeTraits_k::high_i

function object providing an operator() that takes an argument of type Interval and returns a component of type Key_i.

◆ Interval

typedef unspecified_type RangeSegmentTreeTraits_k::Interval

The k-dimensional interval type.

◆ Key

typedef unspecified_type RangeSegmentTreeTraits_k::Key

The k-dimensional key type.

◆ Key_i

typedef unspecified_type RangeSegmentTreeTraits_k::Key_i

The type in dimension \( i\), with \( 1\leq i \leq k\).

◆ key_i

typedef unspecified_type RangeSegmentTreeTraits_k::key_i

function object providing an operator() that takes an argument of type Key and returns a component of type Key_i.

◆ low_i

typedef unspecified_type RangeSegmentTreeTraits_k::low_i

function object providing an operator() that takes an argument of type Interval and returns a component of type Key_i.