import { MathsKitManager } from '../manager'; import { MarkCircle, MathsKit, MathsKitOptions } from '../mathsKit'; import { MathsKitElement, MathsKitType } from '../types'; import { Matrix2D, Point2d } from '../utils'; export type ProtractorElement = HTMLDivElement; export declare const angle_radian = -1; export declare class ProtractorTool extends MathsKit { showLineLength(_number: number): void; hideLineLength(): void; protected markLines: MarkCircle[]; private deleteBtn; private rotateBtn; private angleBtnLeft; private angleBtnRight; private stretchBtn; private elementContent; private circleMark; private tragetAngleBtn?; private originZeroPoint?; private originalEventPoint?; private originAnglePoint?; bindElement(element: MathsKitElement, type: MathsKitType): void; private bindElementContent; constructor(options: MathsKitOptions, manager: MathsKitManager); init(): void; onDragStart(): void; onDragDoing(): void; onDragEnd(matrix: Matrix2D): void; onRotateStart(_originAngle: number): void; onRotateDoing(_angle: number): void; onRotateEnd(matrix: Matrix2D): void; getStretchDirection(): 'x' | 'y'; onStretchStart(): void; private thottled; onStretchDoing: (_width: number) => void; onStretchEnd(width: number): void; /** * 获取旋转中心点, 坐标必须相对于容器左上角, 旋转中心点是左上角 * @returns */ getRotateCenterPoint: () => Point2d; getMarkLines(): MarkCircle[]; private bindEvent; private unbindEvent; private computAngle; private onAngleBtnPointerMoveHandler; private stopAngleBtnPointerMoveHandler; private getCurrentAngle; private rotateAngleBtnHandle; destroy(): void; private onDeleteBtnClickHandler; private onBtnMouseEnterHandler; private onBtnMouseLeaveHandler; createElement(): HTMLDivElement; private createMark; private computeHeight; render(): void; private renderMark; private renderMarkAtPosition; setActive(isActive: boolean): void; private createAngleBtnLeft; private createAngleBtnRight; private createDeleteBtn; private createRotateBtn; private createStretchBtn; }