50 : m_TotalRanges_plus(
TRange::GetEmpty()),
51 m_TotalRanges_minus(
TRange::GetEmpty()),
53 m_IsSingleStrand(
true),
61 : m_TotalRanges_plus(
TRange::GetEmpty()),
62 m_TotalRanges_minus(
TRange::GetEmpty()),
64 m_IsSingleStrand(
true),
69 if ( it->first.IntersectingWith(filter) ) {
70 AddRange(it->first & filter, it->second);
116 bool more_before,
bool more_after,
bool circular_rna)
119 if ( strand !=
m_Ranges.front().second ) {
148 if ( !it->first.Empty() ) {
151 range.GetFrom() < it->first.GetFrom();
155 range.GetFrom() > it->first.GetFrom();
243 if ( it1->first.IntersectingWith(it2->first) ) {
267 if ( it1->first.IntersectingWith(it2->first) ) {
281 if ( !it->first.Empty() &&
282 (it->first.IntersectingWith(
range) ||
283 it->first.GetFrom() ==
range.GetToOpen() ||
284 it->first.GetToOpen() ==
range.GetFrom()) ) {
338 if (
flags & circular_strand) {
382 if ( include_origin ) {
402 if ( include_origin ) {
421 if ( !
range.Empty() ) {
433 if ( !
range.Empty() ) {
435 if (
range.IntersectingWith(it->first) &&
bool IsReverse(ENa_strand s)
TTotalRangeFlags GetStrandsFlag(void) const
TSeqPos GetRight(void) const
bool x_IncludesMinus(const ENa_strand &strand) const
bool IsCircular(void) const
TSeqPos GetLeft(void) const
bool IntersectingWithSubranges(const CHandleRange &hr) const
void AddRange(TRange range, ENa_strand strand)
bool IntersectingWith(const CHandleRange &hr) const
TRange GetCircularRangeStart(bool include_origin=true) const
static bool x_IntersectingStrands(ENa_strand str1, ENa_strand str2)
TRange m_TotalRanges_minus
bool x_IncludesPlus(const ENa_strand &strand) const
void AddRanges(const CHandleRange &hr)
TRange m_TotalRanges_plus
bool IntersectingWithTotalRange(const CHandleRange &hr) const
vector< TRangeWithStrand > TRanges
bool IntersectingWith_NoStrand(const CHandleRange &hr) const
TRange GetCircularRangeEnd(bool include_origin=true) const
TRange GetOverlappingRange(TTotalRangeFlags flags=eStrandAny) const
unsigned int TTotalRangeFlags
void MergeRange(TRange range, ENa_strand strand)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NON_CONST_REVERSE_ITERATE(Type, Var, Cont)
Non constant version of REVERSE_ITERATE macro.
bool IntersectingWith(const TThisType &r) const
TThisType IntersectionWith(const TThisType &r) const
static TThisType GetEmpty(void)
static position_type GetWholeFrom(void)
static TThisType GetWhole(void)
static position_type GetWholeTo(void)
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define END_SCOPE(ns)
End the previously defined scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define BEGIN_SCOPE(ns)
Define a new scope.
void SetFrom(TFrom value)
Assign a value to From data member.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
void SetTo(TTo value)
Assign a value to To data member.
ENa_strand
strand of nucleic acid
range(_Ty, _Ty) -> range< _Ty >
double value_type
The numeric datatype used by the parser.