485724bcdce8810dcf1b65755c97dbb3c39fa02a braney Mon Aug 25 15:37:25 2025 -0700 give quickLiftChains there own methods in hgTracks and a special hgc page diff --git src/hg/hgTracks/chainTrack.c src/hg/hgTracks/chainTrack.c index efeee84c0ca..2c8af2787af 100644 --- src/hg/hgTracks/chainTrack.c +++ src/hg/hgTracks/chainTrack.c @@ -330,97 +330,41 @@ { int temp; temp = sf->qStart; sf->qStart = lf->qSize - sf->qEnd; sf->qEnd = lf->qSize - temp; } } } if (tg->isBigBed) bbiFileClose(&bbClosure.bbi); else hFreeConn(&sqlClosure.conn); } -#ifdef NOTFORNOW -static void denseChainReverse(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 dense chain in a mode that only shows the gaps. */ -{ -hvGfxSetClip(hvgSide, insideX, yOff, insideWidth, tg->height); -struct slList *item; -int y = yOff; -double scale = scaleForWindow(width, seqStart, seqEnd); -int heightPer = tg->heightPer; -color = hvGfxFindRgb(hvg, &undefinedYellowColor); -for (item = tg->items; item != NULL; item = item->next) - { - struct linkedFeatures *lf = (struct linkedFeatures *)item; - struct simpleFeature *sf = lf->components; - unsigned prev = winStart; - for (; sf; sf = sf->next) - { - unsigned s = sf->start; - drawScaledBox(hvg, prev, s, scale, xOff, y, heightPer, color); - prev = sf->end; - } - drawScaledBox(hvg, prev, winEnd, scale, xOff, y, heightPer, color); - - break; - } - -color = MG_BLACK; -for (item = tg->items; item != NULL; item = item->next) - { - struct linkedFeatures *lf = (struct linkedFeatures *)item; - struct simpleFeature *sf = lf->components; - - mapBoxHgcOrHgGene(hvg, winStart, winEnd, xOff, yOff, insideWidth, heightPer, tg->track, - lf->extra, "Go to hg38", NULL, TRUE, NULL); - struct simpleFeature *prev = NULL; - for (; sf; sf = sf->next) - { - unsigned s = sf->start; - if (prev) - { - if (prev->qEnd != sf->qStart) - drawScaledBox(hvg, s, s, scale, xOff, y, heightPer, color); - } - prev = sf; - } - } -} -#endif - void chainDraw(struct track *tg, int seqStart, int seqEnd, struct hvGfx *hvg, int xOff, int yOff, int width, MgFont *font, Color color, enum trackVisibility vis) /* Draw chained features. This loads up the simple features from * the chainLink table, calls linkedFeaturesDraw, and then * frees the simple features again. */ { if (tg->items == NULL) /*Exit Early if nothing to do */ return; -char *chainType = trackDbSetting(tg->tdb, "chainType"); -if ((chainType != NULL) && (vis == tvDense) ) - maybeDrawQuickLiftLines( tg, seqStart, seqEnd, hvg, xOff, yOff, width, - font, color, vis); -else linkedFeaturesDraw(tg, seqStart, seqEnd, hvg, xOff, yOff, width, font, color, vis); } void bigChainLoadItems(struct track *tg) /* Load up all of the chains from correct table into tg->items * item list. At this stage to conserve memory for other tracks * we don't load the links into the components list until draw time. */ { boolean doSnake = cartOrTdbBoolean(cart, tg->tdb, "doSnake" , FALSE); struct linkedFeatures *list = NULL, *lf; int qs; char *optionChrStr; struct cartOptions *chainCart;