m_BackColor(0.9f, 0.9f, 0.9f),
52m_TextColor(0.0f, 0.0f, 0.0f),
53m_FeatColor(0.0f, 0.6f, 0.0f),
54m_SpliceBoxColor(0.5f, 0.5f, 0.5f),
119 for(
i= seq_start;
i< seq_start + num_chars_per_row;
i++) {
120 if(splice_sites [
i]) {
121x1 = offset_X +
i- seq_start - 0.5;
122x2 = offset_X +
i- seq_start + 0.5;
125gl.
Begin(GL_LINES);
152 for(
i= seq_start;
i< subtypes.size() &&
i- seq_start < num_chars_per_row;
i++) {
173 for(
i= 0;
i< breaks.size();
i++) {
174 if(breaks[
i] >= seq_start && breaks[
i] <= seq_start + num_chars_per_row) {
176gl.
Begin(GL_LINES);
177gl.
Vertex2d(x + breaks[
i] - seq_start - 0.5, y);
196 unsigned intfirst_var = 0,
i;
204 for(
i= 0;
i< variations.size();
i++) {
205 for(
unsigned intk =
i+ 1;
206k < variations.size() && variations[k].GetFeatLeft() < variations[
i].GetFeatLeft() + variations[
i].GetDrawWidth();
208variations[k].SetDisplayLine(
max(variations[
i].GetDisplayLine() + 1, variations[k].GetDisplayLine()));
212 while(first_var < variations.size() && variations[first_var].GetFeatRight() < seq_start) {
216 if(first_var == variations.size()) {
223 colors.push_back (variation_color);
224 colors.push_back (variation_color);
225 colors.push_back (variation_color);
226 colors.push_back (variation_color);
227 colors.push_back (variation_color);
229 while(first_var < variations.size() && variations[first_var].GetFeatLeft() < seq_start + num_chars_per_row) {
230 TSeqPosvarlinestart =
max(seq_start, variations[first_var].GetFeatLeft());
231 TSeqPosvarlinestop =
min(seq_start + num_chars_per_row - 1,
232variations[first_var].GetFeatLeft() + variations[first_var].GetDrawWidth());
233 if(varlinestart <= varlinestop) {
237seq_left.
m_Y-= variations[first_var].GetDisplayLine();
238seq_right.
m_Y-= variations[first_var].GetDisplayLine();
242 if(varlinestart > variations[first_var].GetFeatLeft()) {
243var_start = varlinestart - variations[first_var].GetFeatLeft();
246 while(
colors.size() < varlinestop - varlinestart + 1) {
247 colors.push_back (variation_color);
250variations[first_var].GetText().substr(var_start, varlinestop - varlinestart + 1).c_str(),
268 TSeqPoschars_in_line, lines_in_seq;
270 if(chars_in_line < 1) {
277 if(scale_x < 0)
return;
300 colors.reserve(chars_in_line);
312 boolcolor_exons_for_mrna =
true;
316subtypes.reserve((vis_stop - vis_start) + 1);
317splice_sites.reserve((vis_stop - vis_start) + 1);
327color_exons_for_mrna =
false;
330color_exons_for_mrna =
false;
334 if(color_exons_for_mrna) {
348 while(row_start < vis_stop && row_start <
len)
351start_point.
m_X+= 0.5;
354 x_BoxCharacters(splice_sites, row_start - vis_start, chars_in_line, start_point.
m_X, start_point.
m_Y);
363substr = seq.substr (row_start - vis_start, chars_in_line);
365substr.c_str(), &
colors,
366(
float) scale_x, (
float) scale_y);
369 x_DrawVariations(row_start, chars_in_line, (
float) scale_x, (
float) scale_y, variations);
371row_start += chars_in_line;
394 return "No sequence loaded";
class CRgbaColor provides a simple abstraction for managing colors.
@ eSubtype_bad
These no longer need to match the FEATDEF values in the C toolkit's objfdef.h.
bool GetShowFeatAsLower()
CRgbaColor * GetColor(int subtype) const
objects::SAnnotSelector * GetCaseFeature()
CSeqTextPaneConfig::EFeatureDisplayType GetFeatureColorationChoice()
CSeqTextDataSource implements Adapter design pattern.
void GetSeqData(TSeqPos start, TSeqPos stop, string &buffer, objects::SAnnotSelector *feat_sel=NULL, bool showFeatAsLower=false)
void GetFeatureData(TSeqPos start_offset, TSeqPos stop_offset, CSeqTextConfig *cfg, ISeqTextGeometry *pParent, CSeqTextDefs::TSubtypeVector &subtypes, CSeqTextDefs::TSpliceSiteVector &splice_sites, CSeqTextDefs::TVariationGraphVector &variations)
void GetIntervalBreaks(TSeqPos start_offset, TSeqPos stop_offset, CSeqTextDefs::TSeqPosVector &breaks)
void GetSubtypesForAlternatingExons(TSeqPos start_offset, TSeqPos stop_offset, ISeqTextGeometry *pParent, CSeqTextDefs::TSubtypeVector &subtypes)
vector< CSeqTextVariationGraph > TVariationGraphVector
vector< bool > TSpliceSiteVector
vector< int > TSubtypeVector
vector< TSeqPos > TSeqPosVector
ISequenceTextGraphHost * m_pHost
virtual TVPPoint PreferredSize()
virtual void Render(CGlPane &pane)
void SetFont(CGlTextureFont *seq_font)
void x_GetColors(CSeqTextDefs::TSubtypeVector &subtypes, TColorVector &colors, TSeqPos seq_start, TSeqPos num_chars_per_row)
vector< CRgbaColor * > TColorVector
void x_BoxCharacters(ncbi::CSeqTextDefs::TSpliceSiteVector splice_sites, TSeqPos seq_start, TSeqPos num_chars_per_row, TModelUnit offset_X, TModelUnit offset_Y)
virtual void SetModelRect(const TModelRect &rc)
virtual bool NeedTooltip(CGlPane &pane, int vp_x, int vp_y)
void x_RenderSequence(CGlPane &pane)
void SetGeometry(ISeqTextGeometry *pGeometry)
virtual void SetDataSource(CSeqTextDataSource *p_ds)
void SetConfig(CSeqTextConfig *p_cfg)
CRef< CSeqTextConfig > m_Config
virtual TModelRect GetModelRect() const
void x_DrawVariations(TSeqPos seq_start, TSeqPos num_chars_per_row, float scale_x, float scale_y, CSeqTextDefs::TVariationGraphVector &variations)
ISeqTextGeometry * m_pGeometry
void x_DrawIntervalBreaks(TModelUnit x, TModelUnit y, CSeqTextDefs::TSeqPosVector &breaks, TSeqPos seq_start, TSeqPos num_chars_per_row)
CRef< CGlTextureFont > m_pSeqFont
virtual string GetTooltip()
CRgbaColor m_SpliceBoxColor
CRef< CSeqTextDataSource > m_DataSource
void SetHost(ISequenceTextGraphHost *pHost)
virtual void STG_GetVisibleRange(TSeqPos &seq_start, TSeqPos &seq_stop)=0
virtual TModelPoint STG_GetModelPointBySourcePos(TSeqPos z)=0
virtual void STG_GetLineInfo(TSeqPos &chars_in_line, TSeqPos &lines_in_pane)=0
class ISequenceTextGraphHost
virtual void STGH_GetMouseOverFeatureSubtypes(CSeqTextDefs::TSubtypeVector &subtypes)=0
virtual void STGH_GetSelectedFeatureSubtypes(CSeqTextDefs::TSubtypeVector &subtypes)=0
static const Colors colors
unsigned int TSeqPos
Type for sequence locations and lengths.
virtual void Begin(GLenum mode)=0
Start rendering.
IRender & GetGl()
convenience function for getting current render manager
void Vertex2d(GLdouble x, GLdouble y)
void ArrayTextOut(TModelUnit x, TModelUnit y, TModelUnit dx, TModelUnit dy, const char *text, const vector< CRgbaColor * > *colors=NULL, TModelUnit scale_x=1.0f, TModelUnit scale_y=1.0f) const
prints array of characters in positions (x + i*dx, y + i*dy) where "i" is index of a character in the...
bool PtInRect(T x, T y) const
virtual void End()=0
Finish rendering (create buffer and send to renderer)
virtual void PolygonMode(GLenum face, GLenum mode)=0
Set the polygon rasterization mode.
virtual TModelUnit GetMetric(EMetric metric, const char *text=NULL, int len=-1) const
virtual void LineWidth(GLfloat w)=0
Set line width for drawing: glLineWidth()
TModelUnit GetScaleX(void) const
TModelUnit GetScaleY(void) const
virtual void ColorC(const CRgbaColor &c)=0
Set current color (glColor{3,4}{f,d}{v,})
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
unsigned int
A callback function used to compare two keys in a database.
const struct ncbi::grid::netcache::search::fields::SIZE size
The NCBI C++/STL use hints.
static const int kTextOffset
RetroSearch is an open source project built by @garambo | Open a GitHub Issue
Search and Browse the WWW like it's 1997 | Search results from DuckDuckGo
HTML:
3.2
| Encoding:
UTF-8
| Version:
0.7.4