editor-render-v2
Version:
编辑器渲染器
84 lines (83 loc) • 2.34 kB
TypeScript
import { IRenderLine } from '../RenderLayerHandler';
import type { RuleLayerController } from './RulerLayer';
import { IBoundary } from './utils';
interface IAlignLineItem {
id: string;
line: IRenderLine;
isHorizontal: boolean;
canvasBoundary: IBoundary;
rulePosition: {
x: number;
y: number;
};
}
export declare class AlignLineStore {
private controller;
private lines;
constructor(controller: RuleLayerController);
dispose(): void;
/**
* 在某个点上是否命中了line
* @param x 画布x坐标
* @param y 画布y坐标
* @returns 命中的线段,返回null表示没有命中任何线
* */
testPointer(x: number, y: number): IAlignLineItem | null;
/**
* 创建一根水平辅助线
* @param id 辅助线id
* @param line 辅助线外形配置
* */
createHorizontalLine(id: string, line: IRenderLine): void;
/**
* 创建一根垂直辅助线
* @param id 辅助线id
* @param line 辅助线外形配置
* */
createVerticalLine(id: string, line: IRenderLine): void;
/**
* 返回所有辅助线的渲染数据
* @returns 所有辅助线渲染数据
* */
getRenderObjects(): IRenderLine[];
/**
* 清楚所有辅助线数据
* */
clearAlignLines(): void;
/**
* 删除对齐线
* @param id 需要删除的id
* @returns
*/
removeAlignLine(id: string): void;
/**
* 是否有对齐线
* @returns 判断结果
*/
hasAlignLines(): boolean;
/**
* 设置辅助线的位置
* @param id 辅助线id
* @param x 辅助线x坐标,用于更新竖线位置
* @param y 辅助线y坐标,用于更新横位置
* */
setLinePosition(id: string, x: number, y: number): void;
/**
* 根据cavnasPosition重新计算所有辅助线的屏幕坐标
*/
updateAllPosition(): void;
/**
* 返回单个对齐线
* @param id 对齐线id
* */
getAlignLine(id: string): IAlignLineItem;
/**
* 更新单个辅助线的标尺坐标数据
* 同步时间响应尺寸和画布坐标
* @param alignLine 对齐线对象
* @param x 画布坐标x
* @param y 画布坐标y
* */
private updateAlignLineCanvasPosition;
}
export {};