112e6092522e4eed411c8b64c225e792bbb640a0
kate
  Mon Jan 29 09:08:28 2018 -0800
Tweak height of curves to maintain shape while remaining comparability to off-screen endpoint lines. refs #117512

diff --git src/hg/hgTracks/interactTrack.c src/hg/hgTracks/interactTrack.c
index 0108dbf..9650397 100644
--- src/hg/hgTracks/interactTrack.c
+++ src/hg/hgTracks/interactTrack.c
@@ -42,33 +42,33 @@
 loadSimpleBedWithLoader(tg, (bedItemLoader)interactLoad);
 }
 
 static void interactDrawItems(struct track *tg, int seqStart, int seqEnd,
         struct hvGfx *hvg, int xOff, int yOff, int width, 
         MgFont *font, Color color, enum trackVisibility vis)
 /* Draw a list of interact structures. */
 {
 #define DRAW_LINE       0
 #define DRAW_CURVE      1
 #define DRAW_ELLIPSE    2
 
 char *drawMode = cartUsualStringClosestToHome(cart, tg->tdb, FALSE,
                                 INTERACT_DRAW, INTERACT_DRAW_DEFAULT);
 int draw  = DRAW_LINE;
-if (sameString(drawMode, "curve"))
+if (sameString(drawMode, INTERACT_DRAW_CURVE))
     draw = DRAW_CURVE;
-else if (sameString(drawMode, "ellipse"))
+else if (sameString(drawMode, INTERACT_DRAW_ELLIPSE))
     draw = DRAW_ELLIPSE;
 
 double scale = scaleForWindow(width, seqStart, seqEnd);
 struct interact *inters = tg->items;
 //uglyf("Found %d items. ", slCount(inters));
 unsigned int maxWidth = 0;
 struct interact *inter;
 char buffer[1024];
 char itemBuf[2048];
 safef(buffer, sizeof buffer, "%s.%s", tg->tdb->track, INTERACT_MINSCORE);
 //double minScore = sqlDouble(cartUsualString(cart, buffer, INTERACT_DEFMINSCORE));
 
 // Determine if there are mixed inter and intra-chromosomal 
 // Suppress interchromosomal labels if they overlap
 int nSame = 0, nOther = 0;
@@ -260,31 +260,31 @@
             {
             if (inter->strand[0] == '-')
                 hvGfxDottedLine(hvg, ex, yOff, ex, peak, color); //OLD
             else
                 hvGfxLine(hvg, ex, yOff, ex, peak, color); //OLD
             }
         }
     if (tg->visibility == tvFull)
         {
         if (sOnScreen && eOnScreen && draw != DRAW_LINE)
             {
             boolean isDotted = (inter->strand[0] == '-');
             if (draw == DRAW_CURVE)
                 {
                 int peakX = ((ex - sx + 1) / 2) + sx;
-                int peakY = peak + 60;
+                int peakY = peak + 30;
                 hvGfxCurve(hvg, sx, yOff, peakX, peakY, ex, yOff, color, isDotted);
                 // map box on peak
                 // FIXME: not working
                 /*mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd,
                                     peakX - 2, peakY - 2, 4, 4,
                                     tg->track, itemBuf, statusBuf, NULL, TRUE, NULL);
 */
                 }
             else if (draw == DRAW_ELLIPSE)
                 {
                 int yLeft = yOff + peakHeight;
                 int yTop = yOff - peakHeight;
                 hvGfxEllipseDraw(hvg, sx, yLeft, ex, yTop, color, ELLIPSE_BOTTOM, isDotted);
                 // map box on peak
                 // FIXME: not working