HACKISH: Display chipseq peak window track
[mussa.git] / alg / glsequence.cpp
index 708a53ad32a76bc36ba54d1d29d0460c9af9b0b3..69a327e835f8246817fb911c084eb3f510a0b954 100644 (file)
@@ -278,6 +278,15 @@ ColorRef GlSequence::default_track_color()
   return default_color;
 }
 
+ColorRef GlSequence::default_chipseq_color()
+{
+  static ColorRef default_color;
+  if (not default_color) {
+    default_color.reset(new Color(1.0, 0.5, 0.0));
+  }
+  return default_color;
+}
+
 int GlSequence::get_viewport_width_in_pixels()
 {
   GLint viewport[4];
@@ -523,6 +532,22 @@ void draw_narrow_track(SeqSpanRef s, float left, float right)
                        hsmall, y, z+10);
 }
 
+void draw_chipseq_window(SeqSpanRef s, float left, float right)
+{
+  SeqSpanRef parent(s->parent());
+  DrawableRef parent_draw(parent->drawable());
+  float x( (parent_draw) ? parent_draw->x() : 0);
+  float y( (parent_draw) ? parent_draw->y() : 0);
+  float z( (parent_draw) ? parent_draw->z() : 10 );
+  float height( (parent_draw) ? parent_draw->height() : default_height ); 
+  Color c( (s->drawable()) ? s->drawable()->color() : *GlSequence::default_track_color() );
+  glColor3fv(c.get());
+  
+  float hsmall = height * 2.0;
+  GlSequence::draw_box(left, right, x+s->start(), x+s->stop(), 
+                       hsmall, y, z+9.0);
+}
+
 void draw_summarized_track(SeqSpanRef s, float left, float right)
 {
   // if we can see the sequence text (AGCTN), don't draw the black boxes