, m_LensZoom(0.0, 0.0)
56, m_NeedLensZoom(
false)
61, m_NeedUpdateContent(
false)
62, m_NeedUpdateLayout(
true)
63, m_NeedUpdateSelection(
false)
77 stringvertex_shader_gs =
"#version 120\n" 78 "varying vec4 color;\n" 82 "if (abs(gl_Color.r-gl_Color.g) > 0.01 || abs(gl_Color.g-gl_Color.b) > 0.01) {\n" 83 "float c = dot(gl_Color.rgb, vec3(0.299, 0.587, 0.114));\n" 84 "color = vec4(c, c, c, gl_Color.a);\n" 86 "gl_Position = gl_ModelViewProjectionMatrix * gl_Vertex;\n" 89 stringfragment_shader =
"#version 120\n" 90 "varying vec4 color\n;" 93 "gl_FragColor = color;\n" 95m_MonochromeShader.CreateShader(vertex_shader_gs, fragment_shader);
156 const TVPRect& rc,
boolreset_model_limit
)
277tt = tooltip->Render();
292sel_rc =
TModelRect(left, bottom, right, top);
313m_MonochromeShader.MakeCurrent();
324glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
357off =
min(off, rcV.
Top());
443}
NCBI_CATCH(
"CSeqGraphicRender::Render()");
447m_MonochromeShader.Release();
510 if(
nullptr!= p_areas) {
531}
NCBI_CATCH(
"CSeqGraphicRender::Render()");
542gl.
BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
543gl.
Color4f(1.0f, 1.0f, 1.0f, 0.9f);
551(
float)rc_r.
Right() + 1.0f, (
float)rc_r.
Top());
557(
float)rc_f.
Right() + 1.0f, (
float)rc_f.
Top());
656feat_viewport.
SetTop(ruler_b);
661ruler_viewport.
SetLeft(ruler_l);
672 TVPRectruler_viewport, feat_viewport;
716 if( !reset_model_limit ) {
void SetImageInfo(TImageInfo *info)
Optional image info structure to return data to (cgi) caller.
void SetSelectedFeats(const TSelectedGlyphs &feats)
void SetInputObject(SConstScopedObject &obj)
virtual void Update(bool layout_only)
Update content and layout including the bounding box.
virtual CRef< CSeqGlyph > HitTest(const TModelPoint &p)
Hit testing.
void UpdateGridStep(int step)
void SetExternalGlyphs(const CSeqGlyph::TObjects &objs)
void SetSelectedCDSFeats(const TSelectedGlyphs &cds_feats)
void SetNonAsnInput(const INonAsnTrackData &data)
virtual bool Intersects(const TModelRect &rect, TConstObjects &objs) const
Intersect testing.
void SetConfig(CRef< CSeqGraphicConfig > conf)
void LoadProfile(const string &profile_str)
set track profile and load settings.
void PrepareContext(CGlPane &pane, bool horz, bool flipped)
void SetOverviewCutoff(int cutoff)
void SetSeqDS(CSGSequenceDS *ds)
CGlPane * GetGlPane()
inline method implementations
const TModelRange & GetVisibleRange() const
void SetSelectionColor(const CRgbaColor &c)
void SetViewWidth(TSeqPos view_width)
void SetSelLabelColor(const CRgbaColor &c)
class CRgbaColor provides a simple abstraction for managing colors.
void Render(CGlPane &pane)
void GetHTMLActiveAreas(CSeqGlyph::TAreaVector *p_areas) const
void LoadSettings(const CSeqGraphicConfig &g_config)
int GetMainRulerLabelStep() const
TVPPoint GetSize(int max_num=0) const
void SetSeqLength(TSeqPos len)
CRulerPanel inline methods.
void SetOrientation(bool horz, bool flip)
objects::CScope & GetScope(void) const
Get the scope from the handle.
TSeqPos GetSequenceLength() const
void UpdateSelection(CSeqGlyph *glyph)
const TSelectedGlyphs & GetSelectedCDSFeats() const
const TSelectedGlyphs & GetSelectedFeats() const
void SelectSelection(const CSeqGlyph::TConstObjects &glyphs)
void SetScope(objects::CScope *scope)
virtual void GetTooltip(const TModelPoint &, ITooltipFormatter &tt, string &t_title) const
Get the tooltip if available.
virtual TModelUnit GetHeight() const
void Draw() const
render the layout.
list< CRef< CSeqGlyph > > TObjects
list< CConstRef< CSeqGlyph > > TConstObjects
const CRgbaColor & GetBkColor() const
CRef< CGlTextureFont > GetCommentFont() const
const string & GetColorTheme() const
TAreaVector m_ActiveAreas
CSelectionVisitor m_SelManager
CRef< CSeqGlyph > HitTest(int x, int y)
CIRef< ISGDataSourceContext > m_DSContext
void GetTooltip(int x, int y, string &tt, string &t_title)
CRef< CSGSequenceDS > m_DS
void SelectObjByRect(const TVPRect &rc)
void SetViewWidth(TSeqPos view_width)
void x_AdjustToMinScale(bool round_to_base)
CRef< CFeaturePanel > m_FeatPanel
void SetNonAsnInput(const INonAsnTrackData &data)
void SetExternalGlyphs(const CSeqGlyph::TObjects &objs)
void SetLensZoom(int x, int y)
zoom 10x at the given screen coordinates.
void Resize(const TVPRect &rc)
void UpdateConfig(CRef< CSeqGraphicConfig > config)
bool m_NeedUpdateSelection
void SetHorizontal(bool b_horz, bool b_flip, const TVPRect &rc, bool reset_model_limit=false)
CSeqGraphicRenderer(bool cgi_mode)
void x_SetupModelLimits(bool reset_model_limit)
void SetInputObject(SConstScopedObject &obj)
TSeqPos Screen2Seq(TVPUnit x, TVPUnit y)
pixels to sequence translation.
void x_Draw(TImageInfo *p_areas)
TSeqPos Screen2SeqWidth(TVPUnit vp)
CRef< CSeqGraphicConfig > m_ConfigSettings
CRenderingContext m_RenderingCtx
void x_DrawVectorGraphics(TImageInfo *p_areas)
void ZoomOnRange(const TModelRange &range, bool round_to_base=false)
zoom to the given range.
virtual void GetHTMLActiveAreas(TAreaVector *p_areas) const
Get html active areas.
unsigned int TSeqPos
Type for sequence locations and lengths.
void swap(NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair1, NCBI_NS_NCBI::pair_base_member< T1, T2 > &pair2)
#define NCBI_CATCH(message)
Catch CExceptions as well This macro is deprecated - use *_X or *_XX variant instead of it.
void SetModelLimitsRect(const TModelRect &R)
void SetViewport(const TVPRect &R)
virtual void Enable(GLenum glstate)=0
virtual void UseProgram(GLuint program)=0
For shaders. Only works with OpenGL 2.0+.
virtual void BlendFunc(GLenum sfactor, GLenum dfactor)=0
Options to be used when GL_BLEND is enabled.
TModelUnit UnProjectWidth(TVPUnit vp_w) const
TModelPoint UnProject(TVPUnit m_x, TVPUnit m_y) const
void Offset(T d_x, T d_y)
IRender & GetGl()
convenience function for getting current render manager
TVPRect & GetViewport(void)
CGlRect< TVPUnit > TVPRect
void SetScale(TModelUnit scale_x, TModelUnit scale_y, TModelPoint p_center)
TModelUnit UnProjectX(TVPUnit m_x) const
void ZoomRect(const TModelRect &r)
TModelRect & GetModelLimitsRect(void)
void SetZoomFactor(TModelUnit factor=2.0)
bool PtInRect(T x, T y) const
static bool CheckGlError()
Check if there are any OpenGL errors.
TModelUnit UnProjectHeight(TVPUnit vp_h) const
TModelUnit UnProjectY(TVPUnit m_y) const
void EnableZoom(bool en_x, bool en_y)
void Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)
void SetVert(T bottom, T top)
void SetVisibleRect(const TModelRect &R)
void ZoomIn(TModelUnit x, TModelUnit y, int options=fZoomXY)
void SetAdjustToLimits(bool adjust_x, bool adjust_y)
TModelRect & GetVisibleRect(void)
CGlRect< TModelUnit > TModelRect
virtual void Disable(GLenum glstate)=0
glDisable()
TModelUnit GetScaleX(void) const
TModelUnit GetScaleY(void) const
void SetExactOrthoProjection(bool exact_projection)
void SetHorz(T left, T right)
virtual void Rectf(GLfloat x1, GLfloat y1, GLfloat x2, GLfloat y2)=0
Rect() functions also do Begin() and End() (as in OpenGL)
void EnableOffset(bool b_en=true)
Offset is used as a workaround for OpenGL precision problems emerging when size of visible range is s...
float GetBlue(void) const
float GetGreen(void) const
static CIRef< ITooltipFormatter > CreateTooltipFormatter(ETooltipFormatters)
factory for requested tooltip formatter creation
float GetRed(void) const
Get specific channels in floating point values.
@ eTooltipFormatter_Html
generated table is HTML attributes (no CSS) based, generate NCBI URLs are absolute (recommended for G...
TObjectType * GetPointer(void) THROWS_NONE
Get pointer,.
void Reset(void)
Reset reference object.
position_type GetToOpen(void) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
TTo GetTo(void) const
Get the To member data.
TFrom GetFrom(void) const
Get the From member data.
const TModelUnit kEpsilon
Small constant to test against 0.
const TModelUnit kLenseZoomFactor
const TModelUnit kZoomFactorX
const TVPUnit kMaxPixelsBase
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