UNPKG

webglimpse

Version:

Webglimpse is a data visualization library for the web.

95 lines (94 loc) 4.03 kB
import { BoundsUnmodifiable, Bounds, Size } from './bounds'; import { Notification, Notification1 } from './util/notification'; export declare type Painter = (gl: WebGLRenderingContext, viewport: BoundsUnmodifiable) => void; export interface PointerEvent { paneViewport: BoundsUnmodifiable; i: number; j: number; wheelSteps?: number; clickCount?: number; mouseEvent?: MouseEvent; } export declare function xFrac(ev: PointerEvent): number; export declare function yFrac(ev: PointerEvent): number; export interface LayoutEntry { layoutArg: any; layoutOptions: any; viewport: Bounds; prefSize: Size; } export declare type LayoutPhase1 = (parentPrefSize: Size, children?: LayoutEntry[]) => LayoutPhase1; export declare type LayoutPhase2 = (children: LayoutEntry[], parentViewport: BoundsUnmodifiable) => LayoutPhase2; export interface Layout { updatePrefSize?: LayoutPhase1; updateChildViewports?: LayoutPhase2; } export declare type Mask2D = (viewport: BoundsUnmodifiable, i: number, j: number) => boolean; export declare class Pane { private painters; private consumesInputEvents; private isInside; private _mouseCursor; private _mouseCursorChanged; private _childMouseCursorListener; private children; private _layout; private _viewport; private _scissor; private _viewportChanged; private _dispose; private _mouseUp; private _mouseDown; private _mouseMove; private _mouseWheel; private _mouseEnter; private _mouseExit; private _contextMenu; constructor(layout: Layout, consumesInputEvents?: boolean, isInside?: Mask2D); get layout(): Layout; set layout(layout: Layout); get mouseCursor(): string; set mouseCursor(mouseCursor: string); get mouseCursorChanged(): Notification; addPainter(painter: Painter): void; addPane(pane: Pane, layoutArg?: any, layoutOptions?: any): void; removePane(pane: Pane): void; layoutArg(pane: Pane): any; setLayoutArg(pane: Pane, layoutArg: any): void; updateLayoutArgs(updateFn: (layoutArg: any, layoutOptions: any) => any): void; layoutOptions(pane: Pane): any; private _childFor; updatePrefSizes(result: Size): void; updateBounds(viewport: BoundsUnmodifiable, scissor: BoundsUnmodifiable): void; paint(gl: WebGLRenderingContext): void; get viewport(): BoundsUnmodifiable; get scissor(): BoundsUnmodifiable; get viewportChanged(): Notification; panesAt(i: number, j: number): Pane[]; private _panesAt; get mouseUp(): Notification1<PointerEvent>; get mouseDown(): Notification1<PointerEvent>; get mouseMove(): Notification1<PointerEvent>; get mouseWheel(): Notification1<PointerEvent>; get mouseEnter(): Notification1<PointerEvent>; get mouseExit(): Notification1<PointerEvent>; get contextMenu(): Notification1<PointerEvent>; fireMouseUp(i: number, j: number, clickCount: number, mouseEvent: MouseEvent): any; fireMouseDown(i: number, j: number, clickCount: number, mouseEvent: MouseEvent): any; fireMouseMove(i: number, j: number, mouseEvent: MouseEvent): any; fireMouseWheel(i: number, j: number, wheelSteps: number, mouseEvent: MouseEvent): any; fireMouseEnter(i: number, j: number, mouseEvent: MouseEvent): any; fireMouseExit(i: number, j: number, mouseEvent: MouseEvent): any; fireContextMenu(i: number, j: number, mouseEvent: MouseEvent): any; get dispose(): Notification; } export declare function requireGL(canvasElement: HTMLCanvasElement): WebGLRenderingContext; export declare function isLeftMouseDown(ev: MouseEvent): boolean; export declare function isMouseDown(ev: MouseEvent): boolean; export interface Drawable { setContentPane(pane: Pane): void; redraw(): void; getPrefSize(): Size; prefSizeChanged(): Notification1<Size>; } export declare function newDrawable(canvas: HTMLCanvasElement): Drawable;