Realm
A distributed, event-based tasking library
Loading...
Searching...
No Matches
Realm::IntervalTree< IT, LT > Class Template Reference

#include <interval_tree.h>

Collaboration diagram for Realm::IntervalTree< IT, LT >:

Classes

struct  TreeNode
 

Public Member Functions

 IntervalTree (void)
 
 ~IntervalTree (void)
 
bool empty (void) const
 
size_t size (void) const
 
void add_interval (IT iv_start, IT iv_end, LT iv_label, bool defer=true)
 
template<typename IR >
void add_intervals (const IR &iv_ranges, LT iv_label, bool defer=true)
 
void remove_interval (IT iv_start, IT iv_end, LT iv_label)
 
template<typename IR >
void remove_intervals (const IR &iv_ranges, LT iv_label)
 
void remove_by_label (LT iv_label)
 
void construct_tree (bool rebuild_completely=false)
 
template<typename MARKER >
void test_interval (IT iv_start, IT iv_end, MARKER &marker) const
 
void test_interval (IT iv_start, IT iv_end, std::vector< bool > &labels_found) const
 
void test_interval (IT iv_start, IT iv_end, std::set< LT > &labels_found) const
 
template<typename IR , typename MARKER >
void test_intervals (const IR &iv_ranges, MARKER &marker) const
 
template<typename IR >
void test_intervals (const IR &iv_ranges, std::vector< bool > &labels_found) const
 
template<typename IR >
void test_intervals (const IR &iv_ranges, std::set< LT > &labels_found) const
 
template<typename IR , typename MARKER >
void test_sorted_intervals (const IR &iv_ranges, MARKER &marker) const
 
template<typename IR >
void test_sorted_intervals (const IR &iv_ranges, std::vector< bool > &labels_found) const
 
template<typename IR >
void test_sorted_intervals (const IR &iv_ranges, std::set< LT > &labels_found) const
 

Protected Attributes

std::vector< IT > pending_starts
 
std::vector< IT > pending_ends
 
std::vector< LT > pending_labels
 
TreeNoderoot
 
size_t count
 

Constructor & Destructor Documentation

◆ IntervalTree()

template<typename IT , typename LT >
Realm::IntervalTree< IT, LT >::IntervalTree ( void  )

◆ ~IntervalTree()

template<typename IT , typename LT >
Realm::IntervalTree< IT, LT >::~IntervalTree ( void  )

Member Function Documentation

◆ add_interval()

template<typename IT , typename LT >
void Realm::IntervalTree< IT, LT >::add_interval ( IT  iv_start,
IT  iv_end,
LT  iv_label,
bool  defer = true 
)

◆ add_intervals()

template<typename IT , typename LT >
template<typename IR >
void Realm::IntervalTree< IT, LT >::add_intervals ( const IR &  iv_ranges,
LT  iv_label,
bool  defer = true 
)

◆ construct_tree()

template<typename IT , typename LT >
void Realm::IntervalTree< IT, LT >::construct_tree ( bool  rebuild_completely = false)

◆ empty()

template<typename IT , typename LT >
bool Realm::IntervalTree< IT, LT >::empty ( void  ) const

◆ remove_by_label()

template<typename IT , typename LT >
void Realm::IntervalTree< IT, LT >::remove_by_label ( LT  iv_label)

◆ remove_interval()

template<typename IT , typename LT >
void Realm::IntervalTree< IT, LT >::remove_interval ( IT  iv_start,
IT  iv_end,
LT  iv_label 
)

◆ remove_intervals()

template<typename IT , typename LT >
template<typename IR >
void Realm::IntervalTree< IT, LT >::remove_intervals ( const IR &  iv_ranges,
LT  iv_label 
)

◆ size()

template<typename IT , typename LT >
size_t Realm::IntervalTree< IT, LT >::size ( void  ) const

◆ test_interval() [1/3]

template<typename IT , typename LT >
template<typename MARKER >
void Realm::IntervalTree< IT, LT >::test_interval ( IT  iv_start,
IT  iv_end,
MARKER &  marker 
) const

◆ test_interval() [2/3]

template<typename IT , typename LT >
void Realm::IntervalTree< IT, LT >::test_interval ( IT  iv_start,
IT  iv_end,
std::set< LT > &  labels_found 
) const

◆ test_interval() [3/3]

template<typename IT , typename LT >
void Realm::IntervalTree< IT, LT >::test_interval ( IT  iv_start,
IT  iv_end,
std::vector< bool > &  labels_found 
) const

◆ test_intervals() [1/3]

template<typename IT , typename LT >
template<typename IR , typename MARKER >
void Realm::IntervalTree< IT, LT >::test_intervals ( const IR &  iv_ranges,
MARKER &  marker 
) const

◆ test_intervals() [2/3]

template<typename IT , typename LT >
template<typename IR >
void Realm::IntervalTree< IT, LT >::test_intervals ( const IR &  iv_ranges,
std::set< LT > &  labels_found 
) const

◆ test_intervals() [3/3]

template<typename IT , typename LT >
template<typename IR >
void Realm::IntervalTree< IT, LT >::test_intervals ( const IR &  iv_ranges,
std::vector< bool > &  labels_found 
) const

◆ test_sorted_intervals() [1/3]

template<typename IT , typename LT >
template<typename IR , typename MARKER >
void Realm::IntervalTree< IT, LT >::test_sorted_intervals ( const IR &  iv_ranges,
MARKER &  marker 
) const

◆ test_sorted_intervals() [2/3]

template<typename IT , typename LT >
template<typename IR >
void Realm::IntervalTree< IT, LT >::test_sorted_intervals ( const IR &  iv_ranges,
std::set< LT > &  labels_found 
) const

◆ test_sorted_intervals() [3/3]

template<typename IT , typename LT >
template<typename IR >
void Realm::IntervalTree< IT, LT >::test_sorted_intervals ( const IR &  iv_ranges,
std::vector< bool > &  labels_found 
) const

Member Data Documentation

◆ count

template<typename IT , typename LT >
size_t Realm::IntervalTree< IT, LT >::count
protected

◆ pending_ends

template<typename IT , typename LT >
std::vector<IT> Realm::IntervalTree< IT, LT >::pending_ends
protected

◆ pending_labels

template<typename IT , typename LT >
std::vector<LT> Realm::IntervalTree< IT, LT >::pending_labels
protected

◆ pending_starts

template<typename IT , typename LT >
std::vector<IT> Realm::IntervalTree< IT, LT >::pending_starts
protected

◆ root

template<typename IT , typename LT >
TreeNode* Realm::IntervalTree< IT, LT >::root
protected

The documentation for this class was generated from the following file: