3032095fbd5dafc5cc96d4ba375e215c9a7bd745 kate Tue Jan 30 16:27:15 2018 -0800 Change dotted lines to dashed for better visibility. Suggestion by JK. refs #17512 diff --git src/hg/hgTracks/interactTrack.c src/hg/hgTracks/interactTrack.c index 222a187..3e0afb9 100644 --- src/hg/hgTracks/interactTrack.c +++ src/hg/hgTracks/interactTrack.c @@ -193,37 +193,36 @@ } else { height = otherHeight/2; yOffOther = yOff + sameHeight; } yPos = yOffOther + height; // draw the foot hvGfxLine(hvg, sx - sFootWidth, yOffOther, sx + sFootWidth, yOffOther, color); // draw the vertical if (sameString(inter->chrom, inter->sourceChrom)) hvGfxLine(hvg, sx, yOffOther, sx, yPos, color); else - hvGfxDottedLine(hvg, sx, yOffOther, sx, yPos, color); + hvGfxDottedLine(hvg, sx, yOffOther, sx, yPos, color, TRUE); if (tg->visibility == tvFull) { // add map box to foot char *nameBuf = (inter->chromStart == inter->sourceStart ? inter->sourceName : inter->targetName); -uglyf("foot name: %s. ", nameBuf); mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, sx - sFootWidth, yOffOther, sFootWidth * 2, 4, tg->track, itemBuf, nameBuf, NULL, TRUE, NULL); // add map box to vertical mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, sx - 2, yOffOther, 4, height, tg->track, itemBuf, statusBuf, NULL, TRUE, NULL); if (doOtherLabels) { safef(buffer, sizeof buffer, "%s", sameString(inter->chrom, inter->sourceChrom) ? inter->targetChrom : inter->sourceChrom); hvGfxTextCentered(hvg, sx, yPos + 2, 4, 4, MG_BLUE, font, buffer); int width = vgGetFontStringWidth(hvg->vg, font, buffer); // add mapBox to label @@ -245,105 +244,105 @@ double interWidth = e - s; int peakHeight = (sameHeight - 15) * ((double)interWidth / maxWidth) + 10; int peak = yOff + peakHeight; if (tg->visibility == tvDense) peak = yOff + tg->height; if (sOnScreen) { // draw foot of lower region hvGfxLine(hvg, sx - sFootWidth, yOff, sx + sFootWidth, yOff, color); // draw vertical if (!eOnScreen || draw == DRAW_LINE) { if (inter->chromStart == inter->targetStart) - hvGfxDottedLine(hvg, sx, yOff, sx, peak, color); + hvGfxDottedLine(hvg, sx, yOff, sx, peak, color, TRUE); else hvGfxLine(hvg, sx, yOff, sx, peak, color); } } if (eOnScreen) { // draw foot of upper region hvGfxLine(hvg, ex - eFootWidth, yOff, ex + eFootWidth, yOff, color); // draw vertical if (!sOnScreen || draw == DRAW_LINE) { if (inter->chromStart == inter->targetStart) - hvGfxDottedLine(hvg, ex, yOff, ex, peak, color); + hvGfxDottedLine(hvg, ex, yOff, ex, peak, color, TRUE); else hvGfxLine(hvg, ex, yOff, ex, peak, color); } } if (tg->visibility == tvFull) { char *nameBuf = NULL; if (sOnScreen) { /* add mapbox to lower region */ nameBuf = (inter->chromStart == inter->sourceStart ? inter->sourceName : inter->targetName); mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, sx - sFootWidth, yOff, sFootWidth * 2, 4, tg->track, itemBuf, nameBuf, NULL, TRUE, NULL); } if (eOnScreen) { /* add mapbox to upper region */ nameBuf = (inter->chromEnd == inter->targetEnd ? inter->targetName : inter->sourceName); mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, ex - eFootWidth, yOff, eFootWidth * 2, 4, tg->track, itemBuf, nameBuf, NULL, TRUE, NULL); } if (sOnScreen && eOnScreen && draw != DRAW_LINE) { - boolean isDotted = (inter->sourceStart > inter->targetStart); + boolean isDashed = (inter->sourceStart > inter->targetStart); if (draw == DRAW_CURVE) { int peakX = ((ex - sx + 1) / 2) + sx; int peakY = peak + 30; - hvGfxCurve(hvg, sx, yOff, peakX, peakY, ex, yOff, color, isDotted); + hvGfxCurve(hvg, sx, yOff, peakX, peakY, ex, yOff, color, isDashed); // 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); + hvGfxEllipseDraw(hvg, sx, yLeft, ex, yTop, color, ELLIPSE_BOTTOM, isDashed); // map box on peak // FIXME: not working /*mapBoxHgcOrHgGene(hvg, inter->chromStart, inter->chromEnd, sx - sFootWidth - 2, yOff + peakHeight, 4, 4, tg->track, itemBuf, statusBuf, NULL, TRUE, NULL); */ } } else { // draw link horizontal line between regions (dense mode just shows feet ??) unsigned ePeak = eOnScreen ? ex : xOff + width; unsigned sPeak = sOnScreen ? sx : xOff; if (inter->sourceStart > inter->targetStart) - hvGfxDottedLine(hvg, sPeak, peak, ePeak, peak, color); + hvGfxDottedLine(hvg, sPeak, peak, ePeak, peak, color, TRUE); else hvGfxLine(hvg, sPeak, peak, ePeak, peak, color); // map box on horizontal line mapBoxHgcOrHgGene(hvg, s, e, sPeak, peak-2, ePeak - sPeak, 4, tg->track, itemBuf, statusBuf, NULL, TRUE, NULL); // map boxes on verticals if (sOnScreen) mapBoxHgcOrHgGene(hvg, s, e, sx - 2, yOff, 4, peak - yOff, tg->track, itemBuf, statusBuf, NULL, TRUE, NULL); if (eOnScreen) mapBoxHgcOrHgGene(hvg, s, e, ex - 2, yOff, 4, peak - yOff, tg->track, itemBuf, statusBuf, NULL, TRUE, NULL); }