@jbrowse/core
Version:
JBrowse 2 core libraries used by plugins
38 lines (37 loc) • 1.34 kB
TypeScript
import type { BaseLayout, RectTuple, Rectangle, SerializedLayout } from './BaseLayout';
export default class GranularRectLayout<T> implements BaseLayout<T> {
private pitchX;
private pitchY;
private hardRowLimit;
private bitmap;
private rectangles;
maxHeightReached: boolean;
private maxHeight;
private displayMode;
private pTotalHeight;
constructor({ pitchX, pitchY, maxHeight, hardRowLimit, displayMode, }?: {
pitchX?: number;
pitchY?: number;
maxHeight?: number;
displayMode?: string;
hardRowLimit?: number;
});
addRect(id: string, left: number, right: number, height: number, data?: T): number | null;
collides(rect: Rectangle<T>, top: number): boolean;
private autovivifyRow;
addRectToBitmap(rect: Rectangle<T>): void;
discardRange(left: number, right: number): void;
hasSeen(id: string): boolean;
getByCoord(x: number, y: number): string | Record<string, T> | undefined;
getByID(id: string): RectTuple | undefined;
getDataByID(id: string): T | undefined;
cleanup(): void;
getTotalHeight(): number;
get totalHeight(): number;
getRectangles(): Map<string, RectTuple>;
serializeRegion(region: {
start: number;
end: number;
}): SerializedLayout;
toJSON(): SerializedLayout;
}