31059016e90d9d6d65e11f55808869efacb8d4e2 kate Tue Apr 10 18:16:17 2018 -0700 Add postscript for ellipse drawing. refs #21109 diff --git src/hg/hgTracks/interactTrack.c src/hg/hgTracks/interactTrack.c index 39f6c19..1730595 100644 --- src/hg/hgTracks/interactTrack.c +++ src/hg/hgTracks/interactTrack.c @@ -338,30 +338,32 @@ if (sOnScreen) { // draw foot of source region hvGfxLine(hvg, sX - sWidth, yOff, sX + sWidth, yOff, color); if (vis == tvDense || !tOnScreen || draw == DRAW_LINE) { // draw vertical if (isReversed) hvGfxDottedLine(hvg, sX, yOff, sX, peak, color, TRUE); else hvGfxLine(hvg, sX, yOff, sX, peak, color); } } if (tOnScreen) { +if (sOnScreen) + //warn("interaction: %s", inter->name); // draw foot of target region hvGfxLine(hvg, tX - tWidth, yOff, tX + tWidth, yOff, color); if (vis == tvDense || !sOnScreen || draw == DRAW_LINE) { // draw vertical if (isReversed) hvGfxDottedLine(hvg, tX, yOff, tX, peak, color, TRUE); else hvGfxLine(hvg, tX, yOff, tX, peak, color); } } if (vis == tvDense) continue; // Full mode: add map boxes and draw interaction @@ -425,30 +427,31 @@ { int peakX = ((upperX - lowerX + 1) / 2) + lowerX; int peakY = peak + 30; // admittedly a hack (obscure how to define ypeak of curve) int maxY = hvGfxCurve(hvg, lowerX, yOff, peakX, peakY, upperX, yOff, color, isReversed); // curve drawer does not use peakY as expected, so it returns actual max Y used // draw map box on peak hvGfxBox(hvg, peakX-1, maxY, 3, 1, peakColor); hvGfxBox(hvg, peakX, maxY, 1, 1, MG_WHITE); mapBoxHgcOrHgGene(hvg, chromStart, chromEnd, peakX, maxY, 3, 1, tg->track, itemBuf, statusBuf, NULL, TRUE, NULL); } else if (draw == DRAW_ELLIPSE) { int yLeft = yOff + peakHeight; int yTop = yOff - peakHeight; +//warn("hgTracks ellipse: left point: (%d,%d), top point: (%d,%d)", lowerX, yLeft, upperX, yTop); hvGfxEllipseDraw(hvg, lowerX, yLeft, upperX, yTop, color, ELLIPSE_BOTTOM, isReversed); // draw map box on peak int maxY = peakHeight + yOff; int peakX = ((upperX - lowerX + 1) / 2) + lowerX; hvGfxBox(hvg, peakX-1, maxY, 3, 1, peakColor); hvGfxBox(hvg, peakX, maxY, 1, 1, MG_WHITE); mapBoxHgcOrHgGene(hvg, chromStart, chromEnd, peakX, maxY, 3, 1, tg->track, itemBuf, statusBuf, NULL, TRUE, NULL); } } } void interactDrawLeftLabels(struct track *tg, int seqStart, int seqEnd, struct hvGfx *hvg, int xOff, int yOff, int width, int height, boolean withCenterLabels, MgFont *font,