@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
31 lines (30 loc) • 1.04 kB
TypeScript
import type { BaseLayout, RectTuple, Rectangle, SerializedLayout } from './BaseLayout.ts';
export interface Layout {
minX: number;
minY: number;
maxX: number;
maxY: number;
name: string;
}
export default class PrecomputedLayout<T> implements BaseLayout<T> {
private rectangles;
private totalHeight;
maxHeightReached: boolean;
private index?;
private indexData;
constructor({ rectangles, totalHeight, maxHeightReached }: SerializedLayout);
private buildIndex;
addRect(id: string): number;
getRectangles(): Map<string, RectTuple>;
getTotalHeight(): number;
collides(_rect: Rectangle<T>, _top: number): boolean;
getByCoord(x: number, y: number): string | undefined;
getByID(id: string): RectTuple | undefined;
addRectToBitmap(_rect: Rectangle<T>, _data: Record<string, T>): void;
discardRange(_left: number, _right: number): void;
serializeRegion(_region: {
start: number;
end: number;
}): SerializedLayout;
toJSON(): SerializedLayout;
}