| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657 |
- import { IShape } from '../interfaces';
- import { ShapeCfg, ShapeAttrs, BBox } from '../types';
- import Element from './element';
- declare abstract class AbstractShape extends Element implements IShape {
- constructor(cfg: ShapeCfg);
- _isInBBox(refX: any, refY: any): boolean;
- /**
- * 属性更改后需要做的事情
- * @protected
- * @param {ShapeAttrs} targetAttrs 渲染的图像属性
- */
- afterAttrsChange(targetAttrs: ShapeAttrs): void;
- getBBox(): BBox;
- getCanvasBBox(): BBox;
- /**
- * 计算包围盒的抽象方法
- * @return {BBox} 包围盒
- */
- abstract calculateBBox(): BBox;
- applyMatrix(matrix: number[]): void;
- /**
- * 计算相对于画布的包围盒,默认等同于 bbox
- * @return {BBox} 包围盒
- */
- calculateCanvasBBox(): {
- x: number;
- y: number;
- minX: number;
- minY: number;
- maxX: number;
- maxY: number;
- width: number;
- height: number;
- };
- /**
- * @protected
- * 清理缓存的 bbox
- */
- clearCacheBBox(): void;
- isClipShape(): any;
- /**
- * @protected
- * 不同的图形自己实现是否在图形内部的逻辑,要判断边和填充区域
- * @param {number} refX 相对于图形的坐标 x
- * @param {number} refY 相对于图形的坐标 Y
- * @return {boolean} 点是否在图形内部
- */
- isInShape(refX: number, refY: number): boolean;
- /**
- * 是否仅仅使用 BBox 检测就可以判定拾取到图形
- * 默认是 false,但是有些图形例如 image、marker 等都可直接使用 BBox 的检测而不需要使用图形拾取
- * @return {Boolean} 仅仅使用 BBox 进行拾取
- */
- isOnlyHitBox(): boolean;
- isHit(x: number, y: number): boolean;
- }
- export default AbstractShape;
|