import Layer, { ILayerEvent, ILayerState } from './Layer'; import { ISketchUtils } from './Sketch'; import { IMarkAlias } from './alias/mark'; export interface IMarkProps { /** * 目标标记类型(名称) * * 支持 中英文官方名称 * * 可通过 [[Mark.setAlias]] 设置别名 */ type: IMarkAlias; /** * 显示尺寸 */ size: number; } export interface IMarkEvent extends ILayerEvent { type: (type: IMarkProps['type']) => void; size: (size: IMarkProps['size']) => void; } /** * 绘制 `目标标记` */ export default class Mark extends Layer { props: IMarkProps; private img; constructor(state?: Partial, props?: Partial); /** * 设置目标标记类型(名称) */ type(value: IMarkProps['type']): this; /** * 设置尺寸 */ size(value: IMarkProps['size']): this; /** * 为目标标记设别名 * * 比如 `攻击1` 和 `attck1` 分别是中英文的官方名称 * * 我可以通过 `Mark.setAlias('攻击1', '攻1')` 设置别名 * * 之后则可以使用 `new Mark('攻1')` 获得同样的目标标记 * @param name 中英文官方名称 / 已设置成功的别名 * @param alias 别名 */ static setAlias(name: IMarkAlias, alias: string): void; protected _clone(): Mark; protected _render(ctx: CanvasRenderingContext2D, utils: ISketchUtils): void; }