1 #ifndef GUI_PACKAGES_SNP_BINS_TRACK__BINS_GLYPH__HPP
2 #define GUI_PACKAGES_SNP_BINS_TRACK__BINS_GLYPH__HPP
64 if (this->obj.
Empty())
return true;
66 return (this->obj->range.GetFrom() < rhs.
obj->range.GetFrom());
95 static string GenerateBinSignature(
const string& title,
96 const string& annot_name,
99 objects::NSnpBins::TBinType BinType);
106 const objects::CSeq_loc& loc,
107 objects::CScope * scope);
129 objects::NSnpBins::TBinType
GetType()
const {
return m_Type; }
130 void SetType(objects::NSnpBins::TBinType
t) { m_Type =
t; }
137 void SetAnnotName(
const string& name);
138 const string& GetAnnotName()
const;
147 virtual void x_Draw()
const;
158 void x_BuildNonEmptyBinList()
const;
159 TSeqRange x_GetBinRange(
unsigned int bin)
const;
160 string x_GetColorTheme()
const;
211 result.obj.Reset(
new objects::NSnpBins::SBin);
213 ITERATE(objects::NSnpBins::TBinEntryList, iter, val1.
obj->m_EntryList) {
214 result.obj->m_EntryList.push_back(*iter);
217 ITERATE(objects::NSnpBins::TBinEntryList, iter, val2.
obj->m_EntryList) {
218 result.obj->m_EntryList.push_back(*iter);
223 NCBI_ASSERT(val1.
obj->type == val2.
obj->type,
"Merged CBinsGlyph::SBinMapped should always have the same types!");
226 result.obj->m_SigEntry = (objects::NSnpBins::ChooseSignificant(val1.
obj->m_SigEntry, val2.
obj->m_SigEntry,
result.obj->type) == 1)
227 ? val1.
obj->m_SigEntry
228 : val2.
obj->m_SigEntry;
230 result.obj->range = val1.
obj->range.CombinationWith(val2.
obj->range);
CBinsGlyph::SBinMapped operator+(const CBinsGlyph::SBinMapped &val1, const CBinsGlyph::SBinMapped &val2)
CDensityMap< SBinMapped > TDensityMap
CConstRef< objects::CSeq_loc > m_Location
TMappedBinList m_NonEmptyBins
void SetType(objects::NSnpBins::TBinType t)
objects::NSnpBins::TBinType GetType() const
const string & GetTitle() const
void SetTitle(const string &title)
const TDensityMap & GetDensityMap(void) const
Access the first density map.
CRef< objects::CScope > m_Scope
const string & GetAnnotName() const
list< SBinMapped * > TMappedBinList
TSeqRange GetBinRangeAt(TSeqPos pos) const
objects::NSnpBins::TBinType m_Type
void SetAnnotName(const string &name)
class CSeqGlyph defines an interface that wraps a rectilinear abstract object.
virtual bool IsClickable() const
Query if this glyph is clickable.
virtual void x_Draw() const =0
The default renderer for this layout object.
virtual void GetTooltip(const TModelPoint &, ITooltipFormatter &tt, string &t_title) const
Get the tooltip if available.
virtual bool NeedTooltip(const TModelPoint &, ITooltipFormatter &, string &) const
Check if need to show tooltip.
virtual bool OnLeftDblClick(const TModelPoint &)
virtual TSeqRange GetRange(void) const
get the total range of this object.
virtual void GetHTMLActiveAreas(TAreaVector *) const
Get html active areas.
virtual void x_UpdateBoundingBox()=0
Update the bounding box assuming children's sizes are fixed if any.
vector< CHTMLActiveArea > TAreaVector
bool operator<(const CEquivRange &A, const CEquivRange &B)
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
#define NCBI_ASSERT(expr, mess)
NCBI_XOBJUTIL_EXPORT string GetTitle(const CBioseq_Handle &hnd, TGetTitleFlags flags=0)
bool Empty(void) const THROWS_NONE
Check if CRef is empty – not pointing to any object, which means having a null value.
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
#define NCBI_GUIWIDGETS_SNP_EXPORT
range(_Ty, _Ty) -> range< _Ty >
Portable reference counted smart and weak pointers using CWeakRef, CRef, CObject and CObjectEx.
CRef< objects::NSnpBins::SBin > obj
virtual binary_functor< SBinMapped > * clone() const
TEMPLATE binary functor base struct.
static void SetTitle(CRef< CSeq_entry > entry, string title)