|
|
|
import { Constructor } from '@angular/material/core/common-behaviors/constructor';
|
|
|
|
import * as PIXI from 'pixi.js';
|
|
|
|
import { Point, Rectangle, Graphics, Container } from 'pixi.js';
|
|
|
|
import { WorkingAreaComponent } from '../working-area.component';
|
|
|
|
|
|
|
|
/**
|
|
|
|
* 安信形状
|
|
|
|
*/
|
|
|
|
export class AxShape extends Container {
|
|
|
|
assetData: any;
|
|
|
|
workingArea: WorkingAreaComponent;
|
|
|
|
// 可以被移动的
|
|
|
|
moveable = true;
|
|
|
|
// 可以被选中的
|
|
|
|
selectable = true;
|
|
|
|
// 是否显示名称
|
|
|
|
showName = true;
|
|
|
|
|
|
|
|
constructor(assetData: any, workingArea: WorkingAreaComponent) {
|
|
|
|
super();
|
|
|
|
this.assetData = assetData;
|
|
|
|
this.workingArea = workingArea;
|
|
|
|
this.workingArea.backgroundImage.addChild(this);
|
|
|
|
this.interactive = true;
|
|
|
|
this.buttonMode = true;
|
|
|
|
this.on('mousedown', event => {
|
|
|
|
console.log(this.assetData);
|
|
|
|
event.stopPropagation();
|
|
|
|
if (this.selectable) {
|
|
|
|
this.workingArea.selection.selectOne(this);
|
|
|
|
}
|
|
|
|
if (this.moveable) {
|
|
|
|
event.currentTarget.data = event.data;
|
|
|
|
event.currentTarget.alpha = 0.5;
|
|
|
|
event.currentTarget.dragging = true;
|
|
|
|
|
|
|
|
event.currentTarget.dragPoint = event.data.getLocalPosition(event.currentTarget.parent);
|
|
|
|
event.currentTarget.dragPoint.x -= event.currentTarget.x;
|
|
|
|
event.currentTarget.dragPoint.y -= event.currentTarget.y;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.on('mouseup', event => {
|
|
|
|
if (event.currentTarget.dragging) {
|
|
|
|
event.currentTarget.alpha = 1;
|
|
|
|
event.currentTarget.dragging = false;
|
|
|
|
event.currentTarget.data = null;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.on('mouseupoutside', event => {
|
|
|
|
if (event.currentTarget.dragging) {
|
|
|
|
event.currentTarget.alpha = 1;
|
|
|
|
event.currentTarget.dragging = false;
|
|
|
|
event.currentTarget.data = null;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.on('mousemove', event => {
|
|
|
|
if (event.currentTarget.dragging) {
|
|
|
|
const newPosition = event.currentTarget.data.getLocalPosition(event.currentTarget.parent);
|
|
|
|
event.currentTarget.x = newPosition.x - event.currentTarget.dragPoint.x;
|
|
|
|
event.currentTarget.y = newPosition.y - event.currentTarget.dragPoint.y;
|
|
|
|
this.assetData.Point = new PIXI.Point(this.x, this.y);
|
|
|
|
this.workingArea.canvasData.isChange = true;
|
|
|
|
}
|
|
|
|
})
|
|
|
|
.on('rightclick', event => {
|
|
|
|
|
|
|
|
})
|
|
|
|
.on('mouseover', event => {
|
|
|
|
event.stopPropagation();
|
|
|
|
})
|
|
|
|
.on('mouseout', event => {
|
|
|
|
event.stopPropagation();
|
|
|
|
});
|
|
|
|
}
|
|
|
|
redraw(): void {
|
|
|
|
|
|
|
|
}
|
|
|
|
|
|
|
|
refresh(): void{
|
|
|
|
|
|
|
|
}
|
|
|
|
}
|