@ -5,8 +5,10 @@ import { PaintMode } from './paintModel';
import * as PIXI from 'pixi.js' ;
import { PropertyInfo } from './PropertyInfo' ;
import { AxShape } from './axShape' ;
import { Sprite } from 'pixi.js' ;
import { Sprite , Point , Rectangle } from 'pixi.js' ;
import { AxArrowConnector } from './axArrowConnector' ;
import { AxMessageSystem } from './axMessageSystem' ;
import { EVENT_IMAGE_RESIZE } from './events' ;
/ * *
* 安 信 图 片 形 状
@ -31,6 +33,7 @@ export class AxImageShape extends AxShape {
wordWrapWidth : 100 ,
} ) ;
text = new PIXI . Text ( this . assetData . Name
+ '\r\n'
+ this . assetData . PropertyInfos ? . find ( item = > item . PropertyName === '名称/编号' ) ? . PropertyValue , this . style ) ;
@ -48,6 +51,16 @@ export class AxImageShape extends AxShape {
upRight : PIXI.Sprite ;
downLeft : PIXI.Sprite ;
downRight : PIXI.Sprite ;
upDrag : boolean = false ;
downDrag : boolean = false ;
leftDrag : boolean = false ;
rightDrag : boolean = false ;
upLeftDrag : boolean = false ;
upRightDrag : boolean = false ;
downLeftDrag : boolean = false ;
downRightDrag : boolean = false ;
constructor ( assetData : any , workingArea : WorkingAreaComponent ) {
super ( assetData , workingArea ) ;
this . angle = - this . workingArea . backgroundImage . angle ;
@ -71,84 +84,353 @@ export class AxImageShape extends AxShape {
this . addChild ( this . image ) ;
this . addChild ( this . selectionBox ) ;
////
// up
this . up = new PIXI . Sprite ( this . pointTexture ) ;
this . up . cursor = 'ns-resize' ;
this . up . anchor . set ( 0.5 ) ;
this . addChild ( this . up ) ;
this . up . interactive = true ;
this . up . on ( 'pointerdown' , event = > {
this . upDrag = true ;
this . image . anchor . set ( 0.5 , 1 ) ;
this . image . position . set ( this . image . position . x , this . image . position . y + ( this . image . height / 2 ) ) ;
event . stopPropagation ( ) ;
} ) ;
this . up . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . upDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dY = Math . abs ( pos . y - this . image . y ) ;
this . assetData . Height = Math . abs ( dY ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . up . on ( 'pointerup' , event = > {
if ( this . upDrag ) {
this . upDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x , this . image . position . y - ( this . image . height / 2 ) ) ;
}
} ) ;
this . up . on ( 'pointerupoutside' , event = > {
if ( this . upDrag ) {
this . upDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x , this . image . position . y - ( this . image . height / 2 ) ) ;
}
} ) ;
this . up . visible = false ;
// down
this . down = new PIXI . Sprite ( this . pointTexture ) ;
this . down . cursor = 'ns-resize' ;
this . down . anchor . set ( 0.5 ) ;
this . addChild ( this . down ) ;
this . down . interactive = true ;
this . down . on ( 'pointerdown' , event = > {
this . downDrag = true ;
this . image . anchor . set ( 0.5 , 0 ) ;
this . image . position . set ( this . image . position . x , this . image . position . y - ( this . image . height / 2 ) ) ;
event . stopPropagation ( ) ;
} ) ;
this . down . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . downDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dY = Math . abs ( pos . y - this . image . y ) ;
this . assetData . Height = Math . abs ( dY ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . down . on ( 'pointerup' , event = > {
if ( this . downDrag ) {
this . downDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x , this . image . position . y + ( this . image . height / 2 ) ) ;
}
} ) ;
this . down . on ( 'pointerupoutside' , event = > {
if ( this . downDrag ) {
this . downDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x , this . image . position . y + ( this . image . height / 2 ) ) ;
}
} ) ;
this . down . visible = false ;
// left
this . left = new PIXI . Sprite ( this . pointTexture ) ;
this . left . cursor = 'ew-resize' ;
this . left . anchor . set ( 0.5 ) ;
this . addChild ( this . left ) ;
this . left . interactive = true ;
this . left . on ( 'pointerdown' , event = > {
this . leftDrag = true ;
this . image . anchor . set ( 1 , 0.5 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y ) ;
event . stopPropagation ( ) ;
} ) ;
this . left . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . leftDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dX = Math . abs ( pos . x - this . image . x ) ;
this . assetData . Width = Math . abs ( dX ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . left . on ( 'pointerup' , event = > {
if ( this . leftDrag ) {
this . leftDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y ) ;
}
} ) ;
this . left . on ( 'pointerupoutside' , event = > {
if ( this . leftDrag ) {
this . leftDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y ) ;
}
} ) ;
this . left . visible = false ;
// right
this . right = new PIXI . Sprite ( this . pointTexture ) ;
this . right . cursor = 'ew-resize' ;
this . right . anchor . set ( 0.5 ) ;
this . addChild ( this . right ) ;
this . right . interactive = true ;
this . right . on ( 'pointerdown' , event = > {
this . rightDrag = true ;
this . image . anchor . set ( 0 , 0.5 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y ) ;
event . stopPropagation ( ) ;
} ) ;
this . right . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . rightDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dX = Math . abs ( pos . x - this . image . x ) ;
this . assetData . Width = Math . abs ( dX ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . right . on ( 'pointerup' , event = > {
if ( this . rightDrag ) {
this . rightDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y ) ;
}
} ) ;
this . right . on ( 'pointerupoutside' , event = > {
if ( this . rightDrag ) {
this . rightDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) ) ;
}
} ) ;
this . right . visible = false ;
// up-left
this . upLeft = new PIXI . Sprite ( this . pointTexture ) ;
this . upLeft . cursor = 'nwse-resize' ;
this . upLeft . anchor . set ( 0.5 ) ;
this . addChild ( this . upLeft ) ;
this . upLeft . interactive = true ;
this . upLeft . on ( 'pointerdown' , event = > {
this . upLeftDrag = true ;
this . image . anchor . set ( 1 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y + ( this . image . height / 2 ) ) ;
event . stopPropagation ( ) ;
} ) ;
this . upLeft . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . upLeftDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dX = Math . abs ( pos . x - this . image . x ) ;
var dY = Math . abs ( pos . y - this . image . y ) ;
var result = dX > dY ? dX : dY ;
this . assetData . Width = Math . abs ( result ) ;
this . assetData . Height = Math . abs ( result ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . upLeft . on ( 'pointerup' , event = > {
if ( this . upLeftDrag ) {
this . upLeftDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y - ( this . image . height / 2 ) ) ;
}
} ) ;
this . upLeft . on ( 'pointerupoutside' , event = > {
if ( this . upLeftDrag ) {
this . upLeftDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y - ( this . image . height / 2 ) ) ;
}
} ) ;
this . upLeft . visible = false ;
// up-right
this . upRight = new PIXI . Sprite ( this . pointTexture ) ;
this . upRight . cursor = 'nesw-resize' ;
this . upRight . anchor . set ( 0.5 ) ;
this . addChild ( this . upRight ) ;
this . upRight . interactive = true ;
this . upRight . on ( 'pointerdown' , event = > {
this . upRightDrag = true ;
this . image . anchor . set ( 0 , 1 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y + ( this . image . height / 2 ) ) ;
event . stopPropagation ( ) ;
} ) ;
this . upRight . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . upRightDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dX = Math . abs ( pos . x - this . image . x ) ;
var dY = Math . abs ( pos . y - this . image . y ) ;
var result = dX > dY ? dX : dY ;
this . assetData . Width = Math . abs ( result ) ;
this . assetData . Height = Math . abs ( result ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . upRight . on ( 'pointerup' , event = > {
if ( this . upRightDrag ) {
this . upRightDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y - ( this . image . height / 2 ) ) ;
}
} ) ;
this . upRight . on ( 'pointerupoutside' , event = > {
if ( this . upRightDrag ) {
this . upRightDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y - ( this . image . height / 2 ) ) ;
}
} ) ;
this . upRight . visible = false ;
// down-left
this . downLeft = new PIXI . Sprite ( this . pointTexture ) ;
this . downLeft . cursor = 'nesw-resize' ;
this . downLeft . anchor . set ( 0.5 ) ;
this . addChild ( this . downLeft ) ;
this . downLeft . interactive = true ;
this . downLeft . on ( 'pointerdown' , event = > {
this . downLeftDrag = true ;
this . image . anchor . set ( 1 , 0 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y - ( this . image . height / 2 ) ) ;
event . stopPropagation ( ) ;
} ) ;
this . downLeft . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . downLeftDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dX = Math . abs ( pos . x - this . image . x ) ;
var dY = Math . abs ( pos . y - this . image . y ) ;
var result = dX > dY ? dX : dY ;
this . assetData . Width = Math . abs ( result ) ;
this . assetData . Height = Math . abs ( result ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . downLeft . on ( 'pointerup' , event = > {
if ( this . downLeftDrag ) {
this . downLeftDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y + ( this . image . height / 2 ) ) ;
}
} ) ;
this . downLeft . on ( 'pointerupoutside' , event = > {
if ( this . downLeftDrag ) {
this . downLeftDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y + ( this . image . height / 2 ) ) ;
}
} ) ;
this . downLeft . visible = false ;
// down-right
this . downRight = new PIXI . Sprite ( this . pointTexture ) ;
this . downRight . cursor = 'nwse-resize' ;
this . downRight . anchor . set ( 0.5 ) ;
this . addChild ( this . downRight ) ;
this . downRight . interactive = true ;
this . downRight . on ( 'pointerdown' , event = > {
this . downRightDrag = true ;
this . image . anchor . set ( 0 , 0 ) ;
this . image . position . set ( this . image . position . x - ( this . image . width / 2 ) , this . image . position . y - ( this . image . height / 2 ) ) ;
event . stopPropagation ( ) ;
} ) ;
this . downRight . on ( 'pointermove' , event = > {
// 移动时调整形状大小,然后重绘边框
// 检查右下角距离鼠标的位置,
if ( this . downRightDrag ) {
var pos = this . toLocal ( event . data . global ) ;
var dX = Math . abs ( pos . x - this . image . x ) ;
var dY = Math . abs ( pos . y - this . image . y ) ;
var result = dX > dY ? dX : dY ;
this . assetData . Width = Math . abs ( result ) ;
this . assetData . Height = Math . abs ( result ) ;
this . refresh ( ) ;
AxMessageSystem . send ( EVENT_IMAGE_RESIZE , this . assetData ) ;
}
} ) ;
this . downRight . on ( 'pointerup' , event = > {
if ( this . downRightDrag ) {
this . downRightDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y + ( this . image . height / 2 ) ) ;
}
} ) ;
this . downRight . on ( 'pointerupoutside' , event = > {
if ( this . downRightDrag ) {
this . downRightDrag = false ;
this . image . anchor . set ( 0.5 ) ;
this . image . position . set ( this . image . position . x + ( this . image . width / 2 ) , this . image . position . y + ( this . image . height / 2 ) ) ;
}
} ) ;
this . downRight . visible = false ;
////
// if (this.assetData.CanConnect) {
// // connectPoint
// this.connectPoint = new PIXI.Sprite(this.connectPointTexture);
// this.connectPoint.anchor.set(0.5);
// this.connectPoint.x = this.image.x;
// this.connectPoint.y = this.image.y;
// this.addChild(this.connectPoint);
// this.connectPoint.interactive = true;
// this.connectPoint
// .on('pointerdown', event => {
// event.stopPropagation();
// // this.paintingPipeline(this.x, this.y);
// })
// .on('pointerover', event => {
// this.setSelectionBox(true, this.connectPoint);
// })
// .on('pointerout', event => {
// this.setSelectionBox(false);
// });
// // this.showConnectionPoint(false);
// }
this . setItemScale ( 1 / this . workingArea . backgroundImage . scale . x ) ;
}
// // 设置选择框
// public setSelectionBox(b: boolean, sprite?: PIXI.Sprite) {
// if (b) {
// this.selectionBox.lineStyle(2, 0x00EB00, 1);
// this.selectionBox.position = sprite.position;
// this.selectionBox.drawRect(- sprite.width / 2, - sprite.height / 2, sprite.width, sprite.height);
// } else {
// this.selectionBox.clear();
// }
// }
// 设置名称
public setNameVisible ( value : boolean , mode : GameMode ) {
if ( this . assetData . GameMode === mode ) {
this . text . visible = value ;
}
}
// // 显示连接点
// public showConnectionPoint(b: boolean) {
// this.connectPoint.visible = b;
// }
/ * *
* 设 置 点 显 示 状 态
* @param value 显 示 状 态
* /
public setPointVisiable ( value : boolean ) {
const rect = this . getLocalBounds ( ) ;
this . up . x = rect . right - rect . width / 2 ;
this . up . y = rect . top ;
this . down . x = rect . right - rect . width / 2 ;
this . down . y = rect . bottom ;
this . left . x = rect . left ;
this . left . y = rect . bottom - rect . height / 2 ;
this . right . x = rect . right ;
this . right . y = rect . bottom - rect . height / 2 ;
this . upLeft . x = rect . left ;
this . upLeft . y = rect . top ;
this . upRight . x = rect . right ;
@ -157,6 +439,10 @@ export class AxImageShape extends AxShape {
this . downLeft . y = rect . bottom ;
this . downRight . x = rect . right ;
this . downRight . y = rect . bottom ;
this . up . visible = value ;
this . down . visible = value ;
this . left . visible = value ;
this . right . visible = value ;
this . upLeft . visible = value ;
this . upRight . visible = value ;
this . downLeft . visible = value ;
@ -172,6 +458,14 @@ export class AxImageShape extends AxShape {
super . drawBorder ( scale ) ;
const rect = this . getLocalBounds ( ) ;
this . up . x = rect . right - rect . width / 2 ;
this . up . y = rect . top ;
this . down . x = rect . right - rect . width / 2 ;
this . down . y = rect . bottom ;
this . left . x = rect . left ;
this . left . y = rect . bottom - rect . height / 2 ;
this . right . x = rect . right ;
this . right . y = rect . bottom - rect . height / 2 ;
this . upLeft . x = rect . left ;
this . upLeft . y = rect . top ;
this . upRight . x = rect . right ;
@ -191,81 +485,57 @@ export class AxImageShape extends AxShape {
this . upRight . scale . set ( scale ) ;
this . downLeft . scale . set ( scale ) ;
this . downRight . scale . set ( scale ) ;
this . up . scale . set ( scale ) ;
this . down . scale . set ( scale ) ;
this . left . scale . set ( scale ) ;
this . right . scale . set ( scale ) ;
}
}
// paintingPipeline(x: number, y: number) {
// if (this.assetData.CanConnect) {
// if (this.workingArea.getPaintMode() === PaintMode.Pipeline) {
// if (this.workingArea.paintingShape === null) {
// this.workingArea.previewLineSegment.visible = true;
// this.workingArea.currentClickPoint.position =
// new PIXI.Point(this.workingArea.circleShadow.x, this.workingArea.circleShadow.y);
// this.workingArea.paintPoints.push(new PIXI.Point(x, y));
// const json = JSON.parse(JSON.stringify(this.workingArea.canvasData.selectTemplateData.propertyInfos));
// const list = [];
// json.forEach(element => {
// const property = new PropertyInfo(element);
// list.push(property);
// });
// const tempData = {
// TemplateId: this.workingArea.canvasData.selectTemplateData.id,
// CanConnect: this.workingArea.canvasData.selectTemplateData.canConnect,
// Pipelines: new Array(),
// FloorId: this.workingArea.canvasData.selectStorey.id,
// Angle: this.workingArea.canvasData.selectTemplateData.angle,
// Color: this.workingArea.canvasData.selectTemplateData.color,
// Enabled: this.workingArea.canvasData.selectTemplateData.enabled,
// FillMode: this.workingArea.canvasData.selectTemplateData.fillMode,
// FireElementId: this.workingArea.canvasData.selectTemplateData.fireElementId,
// FixedSize: this.workingArea.canvasData.selectTemplateData.fixedSize,
// Height : 32,
// Width : 32,
// Id: ObjectID.default.generate(),
// ImageUrl: this.workingArea.canvasData.selectTemplateData.imageUrl,
// InteractiveMode: this.workingArea.canvasData.selectTemplateData.interactiveMode,
// MultiPoint : JSON.parse(JSON.stringify(this.workingArea.paintPoints)),
// Point: new PIXI.Point(0, 0),
// Name : this.workingArea.canvasData.selectTemplateData.name,
// PropertyInfos: list,
// Border : this.workingArea.canvasData.selectTemplateData.border,
// DrawMode : this.workingArea.canvasData.selectTemplateData.drawMode,
// Thickness : this.workingArea.canvasData.selectTemplateData.thickness,
// IsFromBuilding : this.workingArea.canvasData.selectTemplateData.isFromBuilding,
// GameMode: this.workingArea.canvasData.gameMode,
// LinkedObjects: new Array(this.assetData.Id),
// Tag: this.workingArea.canvasData.selectTemplateData.tag
// };
// this.workingArea.paintingShape = new AxArrowConnector(tempData, this.workingArea, false, true);
// this.assetData.Pipelines.push(this.workingArea.paintingShape.assetData.Id);
// this.workingArea.emit('createIcon', this.workingArea.paintingShape);
// } else {
// this.workingArea.previewLineSegment.visible = false;
// this.workingArea.currentClickPoint.position =
// new PIXI.Point(this.workingArea.circleShadow.x, this.workingArea.circleShadow.y);
// this.workingArea.paintPoints.push(new PIXI.Point(x, y));
// this.workingArea.paintingShape.assetData.MultiPoint =
// JSON.parse(JSON.stringify(this.workingArea.paintPoints));
// this.workingArea.paintingShape.assetData.LinkedObjects.push(this.assetData.Id);
// this.assetData.Pipelines.push(this.workingArea.paintingShape.assetData.Id);
// this.workingArea.paintingShape.redraw();
// this.workingArea.initPipelineData();
// }
// }
// }
// }
// 刷新
public refresh() {
if ( this . assetData . CanConnect ) {
}
this . image . width = this . assetData . Width ;
this . image . height = this . assetData . Height ;
this . image . angle = this . assetData . Angle ;
this . text . text = this . assetData . Name
+ '\r\n'
+ this . assetData . PropertyInfos ? . find ( item = > item . PropertyName === '名称/编号' ) ? . PropertyValue ;
if ( this . image . anchor . x == 0 ) {
if ( this . image . anchor . y == 0 ) {
this . text . x = this . image . x + this . image . width / 2 ;
this . text . y = this . image . y ;
} else if ( this . image . anchor . y == 0.5 ) {
this . text . x = this . image . x + this . image . width / 2 ;
this . text . y = this . image . y - this . image . height / 2 ;
} else if ( this . image . anchor . y == 1 ) {
this . text . x = this . image . x + this . image . width / 2 ;
this . text . y = this . image . y - this . image . height ;
}
} else if ( this . image . anchor . x == 0.5 ) {
if ( this . image . anchor . y == 0 ) {
this . text . x = this . image . x ;
this . text . y = this . image . y ;
} else if ( this . image . anchor . y == 0.5 ) {
} else if ( this . image . anchor . y == 1 ) {
this . text . x = this . image . x ;
this . text . y = this . image . y - this . image . height ;
}
} else if ( this . image . anchor . x == 1 ) {
if ( this . image . anchor . y == 0 ) {
this . text . x = this . image . x - this . image . width / 2 ;
this . text . y = this . image . y ;
} else if ( this . image . anchor . y == 0.5 ) {
this . text . x = this . image . x - this . image . width / 2 ;
this . text . y = this . image . y - this . image . height / 2 ;
} else if ( this . image . anchor . y == 1 ) {
this . text . x = this . image . x - this . image . width / 2 ;
this . text . y = this . image . y - this . image . height ;
}
}
this . angle = - this . workingArea . backgroundImage . angle ;
this . drawBorder ( 1 / this . workingArea . backgroundImage . scale . x ) ;
}
}