gl.
BlendFunc(GL_SRC_ALPHA, GL_ONE_MINUS_SRC_ALPHA);
116gl.
Enable(GL_LINE_SMOOTH);
117gl.
Hint(GL_LINE_SMOOTH_HINT, GL_NICEST);
119gl.
Enable(GL_POLYGON_SMOOTH);
120gl.
Hint(GL_POLYGON_SMOOTH_HINT, GL_NICEST);
130gl.
Disable(GL_POLYGON_SMOOTH);
151 const IHitElement& first_elem = elems.front().GetHitElem();
152 const IHitElement& last_elem = elems.back().GetHitElem();
163 if( (to1 < rcv1_clip.
GetFrom() && from2 > rcv2_clip.
GetTo()) ||
164(from1 > rcv1_clip.
GetTo() && to2 < rcv2_clip.
GetFrom()) ) {
176 if(from1 == -1 || from2 == -1) {
188 if( (to1 < rcv1_clip.
GetFrom() && from2 > rcv2_clip.
GetTo()) ||
189(from1 > rcv1_clip.
GetTo() && to2 < rcv2_clip.
GetFrom()) ) {
255objs.reserve(aligns.
size());
267 ITERATE(TGlyphs, it_G, glyphs) {
271 if(std::find(sel_aligns.begin(), sel_aligns.end(), align)
272!= sel_aligns.end()) {
296gl.
Color3f(0.0f, 0.0f, 0.0f);
298 if(seq_fit1 &&
m_DS->GetQueryHandle()) {
304 for(
TSeqPosbp = 0; bp != seq1.length(); bp++) {
311 if(seq_fit2 &&
m_DS->GetSubjectHandle()) {
317 for(
TSeqPosbp = 0; bp != seq2.length(); bp++) {
325 if(seq_fit1 && seq_fit2 &&
326 m_DS->GetQueryHandle() &&
m_DS->GetSubjectHandle()) {
340 const IHitElement& first_elem = elems.front().GetHitElem();
341 const IHitElement& last_elem = elems.back().GetHitElem();
355 if( (to1 < rcv1_clip.
GetFrom() && from2 > rcv2_clip.
GetTo()) ||
356(from1 > rcv1_clip.
GetTo() && to2 < rcv2_clip.
GetFrom()) ) {
369 if(from1 == -1 || from2 == -1) {
381 if( (to1 < rcv1_clip.
GetFrom() && from2 > rcv2_clip.
GetTo()) ||
382(from1 > rcv1_clip.
GetTo() && to2 < rcv2_clip.
GetFrom()) ) {
398gl.
Color3f(0.0f, 0.0f, 0.0f);
399 if(seq1[bp] != seq2[bp] || (from1 + pos) % 10 == 0) {
408 if(seq1[bp] != seq2[bp]) {
409gl.
Color4f(1.0f, 0.0f, 0.0f, alpha);
411gl.
Color4f(0.7f, 0.7f, 0.7f, alpha);
413gl.
Begin(GL_LINES);
454gl.
Begin(GL_LINES);
459gl.
Begin(GL_TRIANGLE_STRIP);
478 size_tclip_bounds = 0;
479 size_tclip_cross = 0;
480 size_telements_rendered = 0;
507 const IHitElement& first_elem = elems.front().GetHitElem();
508 const IHitElement& last_elem = elems.back().GetHitElem();
550CHitGlyph::TElemGlyphCont::const_iterator itE = elems.begin();
551CHitGlyph::TElemGlyphCont::const_iterator itE_end = elems.end();
553range1.
SetTo(itE->GetHitElem().GetQueryStart() +
554itE->GetHitElem().GetQueryLength());
555range2.
SetTo(itE->GetHitElem().GetSubjectStart() +
556itE->GetHitElem().GetSubjectLength());
561 for( ; itE != itE_end; ++itE) {
589range1 += elem_range1;
590range2 += elem_range2;
592x_to1 = x_elem1_stop;
593x_to2 = x_elem2_stop;
603 CRgbaColor& clr = itE->IsSelected() ? sel_color :
604(is_mixed ? minus_color : plus_color);
606x_elem2_start, x_elem2_stop);
610range1 = elem_range1;
611range2 = elem_range2;
613x_from1 = x_elem1_start;
614x_from2 = x_elem2_start;
615x_to1 = x_elem1_stop;
616x_to2 = x_elem2_stop;
622x_from1, x_to1, x_from2, x_to2);
625x_from1, x_to1, x_from2, x_to2);
643 doubleRange = MaxV - MinV;
644 doublelogRange =
log10(Range);
645logRange = ceil(logRange) - 1;
646 doubleStep = pow(10.0, logRange);
649 doubleBaseStep = Step;
650 doublenTicks = Range / BaseStep;
655nTicks = Range / BaseStep;
void SetObjectSelection(const vector< const objects::CSeq_align * > sel_aligns)
virtual ~CCrossPanelIR(void)
double x_SelectBaseStep(double MinV, double MaxV) const
void x_DrawCrossedPanel(CGlPane &pane, const CRgbaColor &color, TModelUnit x_from1, TModelUnit x_to1, TModelUnit x_from2, TModelUnit x_to2)
void GetObjectSelection(TConstObjects &objs) const
void x_DrawCrossAlignment(CGlPane &pane)
void x_GetSequence(const objects::CBioseq_Handle &handle, TSeqPos from, TSeqPos to, string &buffer) const
TModelUnit x_Seq2Lim1(TModelUnit seq)
void SetDataSource(ICrossAlnDataSource *ds)
void ResetObjectSelection()
CConstRef< objects::CObject_id > m_ColorScoreId
CIRef< ICrossAlnDataSource > m_DS
TModelUnit x_Lim2Seq2(TModelUnit lim)
void x_DrawSequence(CGlPane &pane)
TModelUnit x_Lim2Seq1(TModelUnit lim)
virtual void Render(CGlPane &pane)
bool x_IsSeqLettersFit1() const
void ColorByScore(CConstRef< objects::CObject_id > score_id)
CHitMatrixGraph::THitGlyphVector THitGlyphVector
TModelRect HitTest(CGlPane &pane, int x, int y, bool select=false)
CGlTextureFont m_Font_Fixed12
TModelUnit x_Seq2Lim2(TModelUnit seq)
bool x_IsSeqLettersFit2() const
void SetLimits(TVPRect rcm1, TModelRect rcv1, TVPRect rcm2, TModelRect rcv2)
CHitElemGlyph is a simple graphical object representing a Hit Element.
void SetSelected(bool b_set)
CHitGlyph is a simple graphical object representing a Hit as a set of corresponding Hit Elements.
const IHit & GetHit() const
vector< CHitElemGlyph > TElemGlyphCont
const TElemGlyphSet & GetSelectedGlyphs() const
void SelectGlyph(const CHitGlyph &glyph)
virtual void DeleteGlyphs()
const THitGlyphVector & GetGlyphs() const
virtual void CreateGlyph(const IHit &hit_elem)
vector< CHitGlyph * > THitGlyphVector
void ResetGlyphSelection()
class CRgbaColor provides a simple abstraction for managing colors.
virtual TSeqPos GetQueryLength() const =0
virtual const IHit & GetHit() const =0
virtual TSignedSeqPos GetQueryStart() const =0
virtual TSeqPos GetSubjectLength() const =0
virtual objects::ENa_strand GetSubjectStrand() const =0
virtual objects::ENa_strand GetQueryStrand() const =0
virtual TSignedSeqPos GetSubjectStart() const =0
IHitMatrixDataSource - abstract Data Source for Hit Matrix Widget.
virtual const THitAdapterCont & GetHits() const =0
vector< IHit * > THitAdapterCont
virtual const objects::CSeq_align * GetSeqAlign() const =0
iterator_bool insert(const value_type &val)
static const TModelUnit kSeqMapBarHeight
static const int sc_StepK[]
static const TModelUnit kClipMultiple
unsigned int TSeqPos
Type for sequence locations and lengths.
#define ITERATE(Type, Var, Cont)
ITERATE macro to sequence through container elements.
int TSignedSeqPos
Type for signed sequence position.
virtual void Enable(GLenum glstate)=0
virtual void Begin(GLenum mode)=0
Start rendering.
virtual void BlendFunc(GLenum sfactor, GLenum dfactor)=0
Options to be used when GL_BLEND is enabled.
void Color3f(GLfloat r, GLfloat g, GLfloat b)
IRender & GetGl()
convenience function for getting current render manager
void Vertex2d(GLdouble x, GLdouble y)
TVPRect & GetViewport(void)
TModelUnit UnProjectX(TVPUnit m_x) const
virtual void End()=0
Finish rendering (create buffer and send to renderer)
TModelUnit UnProjectHeight(TVPUnit vp_h) const
TModelUnit UnProjectY(TVPUnit m_y) const
void Color4f(GLfloat r, GLfloat g, GLfloat b, GLfloat a)
virtual TModelUnit TextHeight(void) const
virtual void TextOut(const char *text) const
TextOut interface Write the specified text and set up state and transformation as needed.
TModelRect & GetVisibleRect(void)
CGlRect< TModelUnit > TModelRect
virtual void Disable(GLenum glstate)=0
glDisable()
virtual void Hint(GLenum target, GLenum mode)=0
virtual void LineWidth(GLfloat w)=0
Set line width for drawing: glLineWidth()
TModelUnit GetScaleX(void) const
TModelUnit GetOffsetX() const
vector< CConstRef< CObject > > TConstObjects
CSeqVector GetSeqVector(EVectorCoding coding, ENa_strand strand=eNa_strand_plus) const
Get sequence: Iupacna or Iupacaa if use_iupac_coding is true.
@ eCoding_Iupac
Set coding to printable coding (Iupacna or Iupacaa)
void GetSeqData(TSeqPos start, TSeqPos stop, string &buffer) const
Fill the buffer string with the sequence data for the interval [start, stop).
void Reset(void)
Reset reference object.
position_type GetLength(void) const
bool IntersectingWith(const TThisType &r) const
#define END_NCBI_SCOPE
End previously defined NCBI scope.
#define BEGIN_NCBI_SCOPE
Define ncbi namespace.
void Start(void)
Start the timer.
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.
where boath are integers</td > n< td ></td > n</tr > n< tr > n< td > tse</td > n< td > optional</td > n< td > String</td > n< td class=\"description\"> TSE option controls what blob is orig
const GenericPointer< typename T::ValueType > T2 value
Defines: CTimeFormat - storage class for time format.
static const sljit_gpr r1
static const sljit_gpr r2
@ eIntersects
intersection found
EIntersectResult IntersectRayQuad(const CVect3< Data > &origin, const CVect3< Data > &dir, const CVect3< Data > &vert0, const CVect3< Data > &vert1, const CVect3< Data > &vert2, const CVect3< Data > &vert3, CVect3< Data > &intersect_pt, bool cull_test=false)
IntersectRayQuad() computes the intersection point of a ray collided with a quad.
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