import { Shape } from "./shapes/Shape"; import { ViewPortMouseEvent } from "./handler/MouseEventHandler"; import { Point } from "./planimetry"; import { ViewPort } from "./viewport"; export interface IEngine { /** * 通过序号获取一个图形 * @param zindex 序号 */ getShape(zindex: number): Shape; /** * 获取图形列表的大小 */ shapePoolSize: number; /** * 添加图形 * @param shape 图形 */ add(shape: Shape): void; /** * 添加一些图形 * @param shapes 需要添加的图形 */ addSome(shapes: Shape[]): void; /** * 删除图形 * @param shape 图形 */ remove(shape: Shape): void; /** * 移除一些图形 * @param shapes 需要移除的图形 */ removeSome(shapes: Shape[]): void; /** * 渲染所有图元,惰性,由用户手动调用,不会主动清空画布 */ render(isClear?: boolean): void; /** * 清除画布 */ clearAll(): void; /** * 命中检测,返回所有被命中的shape的zIndex * @param p 检测点 */ hitTest(p: Point): number[]; /** * 移除所有选中的shape */ removeSelected(): void; } /** * 渲染引擎 */ export declare class Engine implements IEngine { ctx: CanvasRenderingContext2D; readonly viewPort: ViewPort; constructor(ctx: CanvasRenderingContext2D, viewPort: ViewPort); /** * 图形池 */ private shapePool; getShape(zindex: number): Shape; readonly shapePoolSize: number; add(shape: Shape): void; addSome(shapes: Shape[]): void; remove(shape: Shape): void; removeSome(shapes: Shape[]): void; render(isClear?: boolean): void; clearAll(): void; /** * 触发视窗鼠标事件 * @param vev 视窗鼠标事件 */ trigger(vev: ViewPortMouseEvent): void; hitTest(p: Point): number[]; removeSelected(): void; } //# sourceMappingURL=Engine.d.ts.map