import { TransformMatrix, Point } from './planimetry'; import { EventNames, ViewPortMouseEvent, MouseEventHandler } from './handler/MouseEventHandler'; import { Engine, IEngine } from './Engine'; import { Shape } from './shapes'; /** * 视窗选项 */ export interface ViewPortOptions { ctx: CanvasRenderingContext2D; width: number; height: number; transformMatrix: TransformMatrix; } /** * 视窗类 */ export declare class ViewPort implements IEngine { private readonly ctx; private width; private height; private transformMatrix; readonly engine: Engine; mouseEventHandler: MouseEventHandler; viewports: ViewPort[]; readonly shapePoolSize: number; getShape(zindex: number): Shape; add(shape: Shape): void; addSome(shapes: Shape[]): void; remove(shape: Shape): void; removeSome(shapes: Shape[]): void; render(isClear?: boolean | undefined): void; clearAll(): void; hitTest(p: [number, number]): number[]; removeSelected(): void; appendViewPort: (viewport: ViewPort) => void; removeAllViewPort: () => void; constructor(options: ViewPortOptions); /** * 触发一个鼠标事件 * @param p 点 * @param action 时间名称 */ trigger(p: Point, action: EventNames): void; /** * 克隆一个空白的viewport,此viewport的ctx是新的,其宽度与高度和当前侧viewport一致,且transformMatrix对象共享。 */ clone(): ViewPort; cloneAndCopyAShape(shape: Shape): ViewPort; cloneAndCopyAShapeByIndex(index: number): ViewPort; /** * 将物理点转换为抽象点 * @param ev 事件名 * @param p (0,0) 至 (width,height) 的点 */ transformEvent(ev: EventNames, p: Point): ViewPortMouseEvent; } //# sourceMappingURL=viewport.d.ts.map