UNPKG

higlass

Version:

HiGlass Hi-C / genomic / large data viewer

74 lines (73 loc) 3.19 kB
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;