bpp-core  2.2.0
bpp::RangeSet< T > Class Template Reference

This class implements a data structure describing a set of intervales. More...

#include <Bpp/Numeric/Range.h>

+ Inheritance diagram for bpp::RangeSet< T >:
+ Collaboration diagram for bpp::RangeSet< T >:

Public Member Functions

 RangeSet ()
 
 RangeSet (const RangeSet< T > &set)
 
RangeSetoperator= (const RangeSet< T > &set)
 
virtual ~RangeSet ()
 
void addRange (const Range< T > &r)
 Add a new range to the collection. More...
 
void restrictTo (const Range< T > &r)
 Get the intersection with a given range. More...
 
void filterWithin (const Range< T > &r)
 Only keep the ranges that fall within the given range. More...
 
std::string toString () const
 
bool isEmpty () const
 
size_t size () const
 
const Range< T > & getRange (size_t i) const
 
const std::set< Range< T > *, rangeComp_< T > > & getSet () const
 
std::set< Range< T > *, rangeComp_< T > > & getSet ()
 
void clear ()
 Clear the collection. More...
 

Private Member Functions

void clear_ ()
 

Private Attributes

std::set< Range< T > *, rangeComp_< T > > ranges_
 

Detailed Description

template<class T>
class bpp::RangeSet< T >

This class implements a data structure describing a set of intervales.

Intervales can be overlapping, but empty intervales will be ignored/removed.

Definition at line 275 of file Range.h.

Constructor & Destructor Documentation

◆ RangeSet() [1/2]

template<class T >
bpp::RangeSet< T >::RangeSet ( )
inline

Definition at line 284 of file Range.h.

◆ RangeSet() [2/2]

template<class T >
bpp::RangeSet< T >::RangeSet ( const RangeSet< T > &  set)
inline

Definition at line 286 of file Range.h.

References bpp::RangeSet< T >::ranges_.

◆ ~RangeSet()

template<class T >
virtual bpp::RangeSet< T >::~RangeSet ( )
inlinevirtual

Definition at line 302 of file Range.h.

References bpp::RangeSet< T >::clear_().

Member Function Documentation

◆ addRange()

template<class T >
void bpp::RangeSet< T >::addRange ( const Range< T > &  r)
inlinevirtual

Add a new range to the collection.

Parameters
rThe range to add to the collection.

Implements bpp::RangeCollection< T >.

Definition at line 307 of file Range.h.

References bpp::Range< T >::clone(), bpp::Range< T >::isEmpty(), and bpp::RangeSet< T >::ranges_.

◆ clear()

template<class T >
void bpp::RangeSet< T >::clear ( )
inlinevirtual

Clear the collection.

Implements bpp::RangeCollection< T >.

Definition at line 366 of file Range.h.

References bpp::RangeSet< T >::clear_().

◆ clear_()

template<class T >
void bpp::RangeSet< T >::clear_ ( )
inlineprivate

◆ filterWithin()

template<class T >
void bpp::RangeSet< T >::filterWithin ( const Range< T > &  r)
inlinevirtual

Only keep the ranges that fall within the given range.

Parameters
rRestriction range.

Implements bpp::RangeCollection< T >.

Definition at line 327 of file Range.h.

References bpp::Range< T >::contains(), and bpp::RangeSet< T >::ranges_.

◆ getRange()

template<class T >
const Range<T>& bpp::RangeSet< T >::getRange ( size_t  i) const
inlinevirtual
Returns
The ith range in the collection.

Implements bpp::RangeCollection< T >.

Definition at line 354 of file Range.h.

References bpp::RangeSet< T >::ranges_.

◆ getSet() [1/2]

template<class T >
const std::set< Range<T>*, rangeComp_<T> >& bpp::RangeSet< T >::getSet ( ) const
inline

Definition at line 362 of file Range.h.

References bpp::RangeSet< T >::ranges_.

◆ getSet() [2/2]

template<class T >
std::set< Range<T>*, rangeComp_<T> >& bpp::RangeSet< T >::getSet ( )
inline

Definition at line 364 of file Range.h.

References bpp::RangeSet< T >::ranges_.

◆ isEmpty()

template<class T >
bool bpp::RangeSet< T >::isEmpty ( ) const
inlinevirtual
Returns
True if the set does not contain any range.

Implements bpp::RangeCollection< T >.

Definition at line 350 of file Range.h.

References bpp::RangeSet< T >::ranges_.

◆ operator=()

template<class T >
RangeSet& bpp::RangeSet< T >::operator= ( const RangeSet< T > &  set)
inline

Definition at line 293 of file Range.h.

References bpp::RangeSet< T >::clear_(), and bpp::RangeSet< T >::ranges_.

◆ restrictTo()

template<class T >
void bpp::RangeSet< T >::restrictTo ( const Range< T > &  r)
inlinevirtual

Get the intersection with a given range.

The new multirange is the union of all ranges intersections with the given range.

Parameters
rRestriction range.

Implements bpp::RangeCollection< T >.

Definition at line 312 of file Range.h.

References bpp::RangeSet< T >::ranges_.

◆ size()

template<class T >
size_t bpp::RangeSet< T >::size ( ) const
inlinevirtual
Returns
The number of ranges in the collection.

Implements bpp::RangeCollection< T >.

Definition at line 352 of file Range.h.

References bpp::RangeSet< T >::ranges_.

◆ toString()

template<class T >
std::string bpp::RangeSet< T >::toString ( ) const
inlinevirtual
Returns
A string representation of the set of intervals.

Implements bpp::RangeCollection< T >.

Definition at line 341 of file Range.h.

References bpp::RangeSet< T >::ranges_.

Member Data Documentation

◆ ranges_


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