import { Vector3 } from '@vertexvis/geometry'; import { Disposable } from '@vertexvis/utils'; import regl from 'regl'; import { Drawable } from '../transforms/drawable'; import { Frame, Viewport } from '../types'; export declare const DEFAULT_PERSPECTIVE_MESH_SCALAR = 0.005; export declare const DEFAULT_ORTHOGRAPHIC_MESH_SCALAR = 0.00625; export declare const TRIANGLE_SIZE_CANVAS_AREA_ADJUSTMENT_NUMERATOR = 1580000; export declare const TRIANGLE_SIZE_CANVAS_AREA_ADJUSTMENT_DENOMINATOR = 520000; export declare const TRIANGLE_SIZE_CANVAS_HEIGHT_ADJUSTMENT_NUMERATOR = 950; export declare const TRIANGLE_SIZE_CANVAS_HEIGHT_ADJUSTMENT_DENOMINATOR = 45; export declare abstract class ReglComponent implements Disposable { protected canvasElement: HTMLCanvasElement; protected reglCommand?: regl.Regl; protected reglFrameDisposable?: regl.Cancellable; protected availableElements: Drawable[]; protected drawableElements: Drawable[]; protected frame?: Frame; protected viewport: Viewport; constructor(canvasElement: HTMLCanvasElement); dispose(): void; updateFrame(frame: Frame, redraw?: boolean): void; updateDimensions(canvasElement: HTMLCanvasElement): void; updateAndDraw(): void; /** * @internal - visible for testing */ getDrawableElements(): Drawable[]; protected draw(): void; protected clear(): void; protected sortMeshes(frame: Frame, ...drawableElements: Array): void; protected computeTriangleSize(position: Vector3.Vector3, frame: Frame): number; protected abstract createOrUpdateElements(): void; protected abstract hasData(): boolean; }