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