UNPKG

nhanh-pure-function

Version:
99 lines (98 loc) 3.88 kB
import { default as Overlay } from './public/overlay'; import { OverlayType } from './index'; import { EventHandler } from '../public/eventController'; import { ArcStyleType, PolygonStyleType } from '../common.type'; type ConstructorOption = ConstructorParameters<typeof Overlay<ArcStyleType, [number, number]>>[0] & { /** 是否填充 */ isFill?: boolean; /** 是否闭合 */ isClosed?: boolean; /** 闭合时是否经过中心点 */ isClosedThroughCenter?: boolean; /** 圆弧的半径。必须为正值。 */ radiusValue?: number; /** 圆弧的半径。必须为正值。 */ radiusPosition?: number; /** 圆弧的起始点,从 x 轴方向开始计算,以弧度为单位。 */ startAngle: number; /** 圆弧的终点,从 x 轴方向开始计算,以弧度为单位。 */ endAngle: number; /** 如果为 true,逆时针绘制圆弧,反之,顺时针绘制。默认为 false(顺时针)。 */ counterclockwise?: boolean; /** 是否可显示控制点 */ isHandlePointsVisible?: boolean; }; export default class Arc extends Overlay<ArcStyleType, [number, number]> { private _isFill; /** 是否填充 */ get isFill(): boolean; set isFill(isFill: boolean); protected _isClosed: boolean; /** 是否闭合 */ get isClosed(): boolean; set isClosed(isClosed: boolean); private _isClosedThroughCenter; /** 闭合时是否经过中心点 */ get isClosedThroughCenter(): boolean; set isClosedThroughCenter(isClosedThroughCenter: boolean); private _radiusValue; /** 圆弧的半径。必须为正值。 */ get radiusValue(): number; set radiusValue(radius: number); private _radiusPosition; /** 圆弧的半径。必须为正值。 */ get radiusPosition(): number; set radiusPosition(radius: number); private _startAngle; /** 圆弧的起始点,从 x 轴方向开始计算,以弧度为单位。 */ get startAngle(): number; set startAngle(startAngle: number); private _endAngle; /** 圆弧的终点,从 x 轴方向开始计算,以弧度为单位。 */ get endAngle(): number; set endAngle(endAngle: number); private _counterclockwise; /** 如果为 true,逆时针绘制圆弧,反之,顺时针绘制。默认为 false(顺时针)。 */ get counterclockwise(): boolean; set counterclockwise(counterclockwise: boolean); /** 当前是否渲染了控制点 */ private isShowHandlePoint; /** 是否可显示控制点 */ private _isHandlePointsVisible; /** 是否可显示控制点 */ get isHandlePointsVisible(): boolean; set isHandlePointsVisible(value: boolean); /** 偏移量 */ get offset(): { x: number; y: number; }; set offset(offset: { x: number; y: number; }); constructor(option: ConstructorOption); /** 默认点击事件 点击后切换控制点显示状态 */ defaultClick: EventHandler<"click">; /** 处理拖动状态变化 */ defaultDragg: EventHandler<"dragg">; protected updateValueScope(): void; isPointInPath(x: number, y: number): boolean; isPointInStroke(x: number, y: number): boolean; isPointInAnywhere(x: number, y: number): boolean; get cursorStyle(): string | undefined; protected setOverlayStyles(ctx?: CanvasRenderingContext2D): PolygonStyleType; protected get computedValueScopeStyles(): PolygonStyleType; /** 控制点 */ private handlePoints; /** 控制点数组 */ private get handlePointsArr(); /** 更新控制点 */ private updateHandlePoints; protected updateBaseData(): void; /** 绘制辅助虚线 */ private drawGuideLine; draw(ctx: CanvasRenderingContext2D): void; getDraw(): [(ctx: CanvasRenderingContext2D) => void, OverlayType] | void; } export {};