graphic-pixi/global.d.ts

159 lines
5.8 KiB
TypeScript
Raw Normal View History

/* eslint-disable @typescript-eslint/no-explicit-any */
declare namespace GlobalMixins {
2023-12-13 16:01:53 +08:00
type JlCanvasType = import('./src/app').IJlCanvas;
type CanvasProperties = import('./src/app').ICanvasProperties;
type GraphicApp = import('./src/app').IGraphicApp;
type JlGraphicType = import('./src/core').JlGraphic;
type GraphicData = import('./src/core').GraphicData;
type GraphicState = import('./src/core').GraphicState;
type GraphicTransform = import('./src/core').GraphicTransform;
type GraphicTransformEvent = import('./src/plugins').GraphicTransformEvent;
type BoundsGraphic = import('./src/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<string, DisplayObjectType> | null; // 辅助附加图形map
assistantAppendMap: Map<string, DisplayObjectType>;
_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<D extends DisplayObjectType>(...appends: D[]): void;
removeAssistantAppend(...appends: DisplayObjectType[]): void;
removeAssistantAppendByName(...names: string[]): void;
removeAllAssistantAppend(): void;
getAssistantAppend<D extends DisplayObjectType>(
name: string
): D | undefined; // 获取辅助附加图形对象
isGraphic(): boolean; // 是否业务图形对象
getGraphic<G extends JlGraphicType>(): G | null; // 获取所属的图形对象
isGraphicChild(): boolean; // 是否图形子元素
onAddToCanvas(canvas: JlCanvasType): void; // 添加到画布处理
onRemoveFromCanvas(canvas: JlCanvasType): 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;
}
}