graphic-pixi/lib/global.d.ts
2023-12-14 13:07:43 +08:00

144 lines
5.4 KiB
TypeScript

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];
}
interface GraphicAppEvents {
}
interface DisplayObject {
_selectable: boolean;
_selected: boolean;
selectable: boolean;
selected: boolean;
_childEdit: boolean;
childEdit: boolean;
_transformSave: boolean;
transformSave: boolean;
_assistantAppendMap: Map<string, DisplayObjectType> | null;
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;
/**
* 获取所有父级元素叠加缩放
*/
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;
/**
* 图形本地坐标转为画布坐标
* @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;
}
}