/* eslint-disable @typescript-eslint/no-explicit-any */ declare namespace GlobalMixins { type JlCanvasType = import('./app').IJlCanvas; type CanvasProperties = import('./app').ICanvasProperties; type GraphicApp = import('./app').IGraphicApp; type JlGraphicType = import('./core').JlGraphic; type GraphicData = import('./core').GraphicData; type GraphicState = import('./core').GraphicState; type GraphicTransform = import('./core').GraphicTransform; type GraphicTransformEvent = import('./plugins').GraphicTransformEvent; type BoundsGraphic = import('./plugins').BoundsGraphic; type IPointDataType = import('pixi.js').IPointData; type PointType = import('pixi.js').Point; type FederatedMouseEvent = import('pixi.js').FederatedMouseEvent; type DisplayObjectType = import('pixi.js').DisplayObject; type ContainerType = import('pixi.js').Container; interface DisplayObjectEvents { 'enter-absorbable-area': [number | undefined, number | undefined]; 'out-absorbable-area': [number | undefined, number | undefined]; dataupdate: [newVal: any, oldVal: any]; stateupdate: [newVal: any, oldVal: any]; repaint: [DisplayObjectType]; transformstart: [e: GraphicTransformEvent]; transforming: [e: GraphicTransformEvent]; transformend: [e: GraphicTransformEvent]; _rightclick: [e: FederatedMouseEvent]; _leftclick: [e: FederatedMouseEvent]; selected: [DisplayObjectType]; unselected: [DisplayObjectType]; childselected: [DisplayObjectType]; childunselected: [DisplayObjectType]; } // eslint-disable-next-line @typescript-eslint/no-empty-interface interface GraphicAppEvents { // propertiesupdate: [selectedData: GraphicData | CanvasProperties | null]; } interface DisplayObject { _selectable: boolean; _selected: boolean; selectable: boolean; //是否可选中 selected: boolean; // 是否选中 _childEdit: boolean; // 子元素编辑模式 childEdit: boolean; _transformSave: boolean; // 变换是否保存 transformSave: boolean; // _assistantAppendMap: Map | null; // 辅助附加图形map assistantAppendMap: Map; _draggable: boolean; // 是否可拖拽 draggable: boolean; _shiftStartPoint: PointType | null; // 位移起始坐标 shiftStartPoint: PointType | null; _shiftLastPoint: PointType | null; // 位移上一个事件时坐标 shiftLastPoint: PointType | null; _scalable: boolean; // 是否可缩放 scalable: boolean; _keepAspectRatio: boolean; // 缩放是否保持纵横比,默认保持 keepAspectRatio: boolean; _rotatable: boolean; // 是否可旋转 rotatable: boolean; worldAngle: number; // 世界角度,(-180, 180] /** * 获取所有父级元素叠加缩放 */ getAllParentScaled(): PointType; /** * 获取位置在画布的坐标 */ getPositionOnCanvas(): PointType; /** * 通过画布坐标更新位置 * @param p 画布坐标 */ updatePositionByCanvasPosition(p: IPointData): void; /** * 保存变换数据 */ saveTransform(): GraphicTransform; /** * 加载变换 * @param transform 变换数据 */ loadTransform(transform: GraphicTransform): void; isChild(obj: DisplayObject): boolean; // 是否子元素 isParent(obj: DisplayObject): boolean; // 是否父元素 isAssistantAppend(): boolean; // 是否辅助附加图形 addAssistantAppend(...appends: D[]): void; removeAssistantAppend(...appends: DisplayObjectType[]): void; removeAssistantAppendByName(...names: string[]): void; removeAllAssistantAppend(): void; getAssistantAppend( name: string ): D | undefined; // 获取辅助附加图形对象 isGraphic(): boolean; // 是否业务图形对象 getGraphic(): G | null; // 获取所属的图形对象 isGraphicChild(): boolean; // 是否图形子元素 onAddToCanvas(): void; // 添加到画布处理 onRemoveFromCanvas(): void; //从画布移除处理 isInCanvas(): boolean; // 是否添加到画布中 getCanvas(): JlCanvasType; // 获取所在画布 isCanvas(): boolean; // 是否画布对象 getViewport(): Viewport; // 获取视口 getGraphicApp(): GraphicApp; // 获取图形app /** * 图形本地坐标转为画布坐标 * @param p 图形本地坐标 */ localToCanvasPoint(p: IPointData): PointType; /** * 批量转换图形本地坐标为画布坐标 * @param points 图形本地坐标 */ localToCanvasPoints(...points: IPointData[]): PointType[]; /** * 画布坐标转为图形本地坐标 * @param p 画布坐标 */ canvasToLocalPoint(p: IPointData): PointType; /** * 批量转换画布坐标为图形本地坐标 * @param points 画布坐标 */ canvasToLocalPoints(...points: IPointData[]): PointType[]; /** * 本地坐标转为屏幕坐标 * @param p 本地坐标 */ localToScreenPoint(p: IPointData): PointType; /** * 批量转换本地坐标为屏幕坐标 * @param points 本地坐标 */ localToScreenPoints(...points: IPointData[]): PointType[]; /** * 屏幕坐标转为本地坐标 * @param p 屏幕坐标 */ screenToLocalPoint(p: IPointData): PointType; /** * 批量转换屏幕坐标为本地坐标 * @param points 屏幕坐标 */ screenToLocalPoints(...points: IPointData[]): PointType[]; // 批量 localBoundsToCanvasPoints(): PointType[]; // 本地包围框转为多边形点坐标 } interface Graphics { drawBezierCurve( p1: IPointData, p2: IPointData, cp1: IPointData, cp2: IPointData, segmentsCount: number ): Graphics; } }