higlass
Version:
HiGlass Hi-C / genomic / large data viewer
74 lines (73 loc) • 3.19 kB
TypeScript
export default trackUtils;
declare namespace trackUtils {
export { calculate1DVisibleTiles };
export { calculate1DZoomLevel };
export { drawAxis };
export { movedY };
export { getTilePosAndDimensions };
export { stretchRects };
export { zoomedY };
}
/**
* Calculate which tiles should be visible given a track's
* scale.
*
* @param {object} tilesetInfo The track's tileset info, containing either the `resolutions`
* list or min_pos and max_pos arrays
* @param {function} scale The track's D3 scale function.
* @return {array} A list of visible tiles (e.g. [[1,0],[1,1]])
*/
declare function calculate1DVisibleTiles(tilesetInfo: object, scale: Function): array;
/**
* Calculate the current zoom level for a 1D track
*
* @param {object} tilesetInfo The tileset info for the track. Should contain
* min_pos and max_pos arrays, each of which has one
* value which stores the minimum and maximum data
* positions respectively.
* @param {function} xScale The current D3 scale function for the track.
* @param {number} maxZoom The maximum zoom level allowed by the track.
* @return {number} The current zoom level of the track.
*/
declare function calculate1DZoomLevel(tilesetInfo: object, xScale: Function, maxZoom: number): number;
/**
* Draw an axis on a track. Where on the track the axis will be drawn
* is taken from the track's options.
*
* @param {PixiTrack} track The track to decorate with an axis.
* @param {d3.scale} valueScale The scale that the axis should draw.
*/
declare function drawAxis(track: PixiTrack, valueScale: d3.scale): void;
/**
* A track is being dragged along it's value scale axis.
*
* @param {object} Track The track instance being dragged.
* @param {number} dY The change in y position.
*/
declare function movedY(track: any, dY: number): void;
/**
* Get the tile's position in its coordinate system.
*
* See Tiled1DPIXITrack.js
*/
declare function getTilePosAndDimensions(tilesetInfo: any, tileId: any): {
tileX: any;
tileWidth: number;
};
/** When zooming, we want to do fast scaling rather than re-rendering
* but if we do this too much, shapes (particularly arrowheads) get
* distorted. This function keeps track of how stretched the track is
* and redraws it if it becomes too distorted (tileK < 0.5 or tileK > 2) */
declare function stretchRects(track: any, graphicsAccessors: any): void;
/**
* A track has received an event telling it to zoom along its
* vertical axis. Update the transform describing the position
* of its graphics.
*
* @param {number} yPos The position the zoom event took place
* @param {number} kMultiplier How much the zoom level should be adjusted by
* @param {d3.transform} transform The track's current graphics transform.
* @param {number} height The height of the track
* @return {d3.transform} The track's new graphics transform.
*/
declare function zoomedY(yPos: number, kMultiplier: number, transform: d3.transform, height: number): d3.transform;