Browse Source

[修正] 调整底图大小后会对计算适应缩放产生错误的计算

zhuzhou
徐振升 4 years ago
parent
commit
7e42bc93ed
  1. 91
      src/app/working-area/working-area.component.ts

91
src/app/working-area/working-area.component.ts

@ -158,7 +158,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
* RC版: 该版本已经相当成熟了BUG * RC版: 该版本已经相当成熟了BUG
* Release版: 该版本意味使Release不会以单词形式出现在软件封面上® * Release版: 该版本意味使Release不会以单词形式出现在软件封面上®
*/ */
public VERSION = '1.0.18.20210205_beta'; public VERSION = '1.0.20.20210207_beta';
/** /**
* *
*/ */
@ -201,7 +201,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
if (this.allowEdit && this.canvasData.gameMode === axShape.assetData.GameMode) { if (this.allowEdit && this.canvasData.gameMode === axShape.assetData.GameMode) {
// 删除图例对象 // 删除图例对象
const temp = this.backgroundImage.getChildByName('图例') as AxLegend; const temp = this.backgroundImage.getChildByName('图例') as AxLegend;
if ( temp !== undefined if (temp !== undefined
&& temp !== null && temp !== null
&& axShape.assetData.Name !== '图例') { && axShape.assetData.Name !== '图例') {
const itemLegend = new Legend(axShape.assetData.Name, axShape.assetData.ImageUrl, 1); const itemLegend = new Legend(axShape.assetData.Name, axShape.assetData.ImageUrl, 1);
@ -249,7 +249,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
} else if (window.console) { } else if (window.console) {
window.console.log('\n %c 版本号 - ' + this.VERSION + '\n'); window.console.log('\n %c 版本号 - ' + this.VERSION + '\n');
} }
} }
/** /**
* *
*/ */
@ -384,7 +384,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.rectToolGraphics.visible = false; this.rectToolGraphics.visible = false;
const shapes: AxShape[] = []; const shapes: AxShape[] = [];
this.backgroundImage.children.forEach(item => { this.backgroundImage.children.forEach(item => {
if ( item instanceof AxShape if (item instanceof AxShape
&& item instanceof AxPreviewImageShape === false) { && item instanceof AxPreviewImageShape === false) {
// 判断2个矩形是否相交 // 判断2个矩形是否相交
const rect1 = this.rectToolGraphics.getBounds(); const rect1 = this.rectToolGraphics.getBounds();
@ -403,7 +403,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.rectToolGraphics.visible = false; this.rectToolGraphics.visible = false;
const shapes: AxShape[] = []; const shapes: AxShape[] = [];
this.backgroundImage.children.forEach(item => { this.backgroundImage.children.forEach(item => {
if ( item instanceof AxShape if (item instanceof AxShape
&& item instanceof AxPreviewImageShape === false) { && item instanceof AxPreviewImageShape === false) {
// 判断2个矩形是否相交 // 判断2个矩形是否相交
const rect1 = this.rectToolGraphics.getBounds(); const rect1 = this.rectToolGraphics.getBounds();
@ -468,8 +468,8 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
* *
*/ */
public zoomFit() { public zoomFit() {
const imageWidth = this.backgroundImage.texture.width; const imageWidth = this.backgroundImage.width;
const imageHeight = this.backgroundImage.texture.height; const imageHeight = this.backgroundImage.height;
const appWidth = this.app.view.width - 470; const appWidth = this.app.view.width - 470;
const appHeight = this.app.view.height; const appHeight = this.app.view.height;
const wScale = appWidth / imageWidth; const wScale = appWidth / imageWidth;
@ -561,7 +561,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
} }
} }
const temp = this.backgroundImage.getChildByName('图例') as AxLegend; const temp = this.backgroundImage.getChildByName('图例') as AxLegend;
if ( temp !== undefined if (temp !== undefined
&& temp !== null && temp !== null
&& axShape.assetData.Name !== '图例') { && axShape.assetData.Name !== '图例') {
const itemLegend = new Legend(axShape.assetData.Name, axShape.assetData.ImageUrl, 1); const itemLegend = new Legend(axShape.assetData.Name, axShape.assetData.ImageUrl, 1);
@ -748,19 +748,19 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
FillMode: this.canvasData.selectTemplateData.fillMode, FillMode: this.canvasData.selectTemplateData.fillMode,
FireElementId: this.canvasData.selectTemplateData.fireElementId, FireElementId: this.canvasData.selectTemplateData.fireElementId,
FixedSize: this.canvasData.selectTemplateData.fixedSize, FixedSize: this.canvasData.selectTemplateData.fixedSize,
Height : 32, Height: 32,
Width : 32, Width: 32,
Id: ObjectID.default.generate(), Id: ObjectID.default.generate(),
ImageUrl: this.canvasData.selectTemplateData.imageUrl, ImageUrl: this.canvasData.selectTemplateData.imageUrl,
InteractiveMode: this.canvasData.selectTemplateData.interactiveMode, InteractiveMode: this.canvasData.selectTemplateData.interactiveMode,
MultiPoint : null, MultiPoint: null,
Point: new PIXI.Point(this.previewImage.x, this.previewImage.y), Point: new PIXI.Point(this.previewImage.x, this.previewImage.y),
Name : this.canvasData.selectTemplateData.name, Name: this.canvasData.selectTemplateData.name,
PropertyInfos: list, PropertyInfos: list,
Border : this.canvasData.selectTemplateData.border, Border: this.canvasData.selectTemplateData.border,
DrawMode : this.canvasData.selectTemplateData.drawMode, DrawMode: this.canvasData.selectTemplateData.drawMode,
Thickness : this.canvasData.selectTemplateData.thickness, Thickness: this.canvasData.selectTemplateData.thickness,
IsFromBuilding : this.canvasData.selectTemplateData.isFromBuilding, IsFromBuilding: this.canvasData.selectTemplateData.isFromBuilding,
GameMode: this.canvasData.gameMode, GameMode: this.canvasData.gameMode,
Tag: this.canvasData.selectTemplateData.tag Tag: this.canvasData.selectTemplateData.tag
}; };
@ -905,7 +905,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.paintingShape = new AxArrowConnector(assetData2, this, true, true); this.paintingShape = new AxArrowConnector(assetData2, this, true, true);
} else if (this.canvasData.selectTemplateData.name === '普通墙' || this.canvasData.selectTemplateData.name === '承重墙') { } else if (this.canvasData.selectTemplateData.name === '普通墙' || this.canvasData.selectTemplateData.name === '承重墙') {
this.paintingShape = new AxArrowConnector(assetData2, this, false, false); this.paintingShape = new AxArrowConnector(assetData2, this, false, false);
} else if (this.canvasData.selectTemplateData.name === '水带' ) { } else if (this.canvasData.selectTemplateData.name === '水带') {
this.paintingShape = new AxArrowConnector(assetData2, this, false, true); this.paintingShape = new AxArrowConnector(assetData2, this, false, true);
} }
} else { } else {
@ -974,26 +974,43 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
/** /**
* *
*/ */
public async refreshBackgroundImage(imageUrl: string = this.canvasData.selectStorey.imageUrl, imageAngle: number = this.canvasData.selectStorey.imageAngle): Promise<void> { public async refreshBackgroundImage(
imageUrl: string = this.canvasData.selectStorey.imageUrl,
imageAngle: number = this.canvasData.selectStorey.imageAngle,
imageWidth: number = this.canvasData.selectStorey.imageWidth,
imageHeight: number = this.canvasData.selectStorey.imageHeight,
): Promise<void> {
if (imageAngle === undefined || imageAngle === null) { if (imageAngle === undefined || imageAngle === null) {
imageAngle = 0; imageAngle = 0;
} }
this.backgroundImage.scale.set(1); this.backgroundImage.scale.set(1);
// this.backgroundImage.pivot.set(0);
if (imageUrl === undefined || imageUrl === null || imageUrl === '') { if (imageUrl === undefined || imageUrl === null || imageUrl === '') {
this.backgroundImage.texture = this.backgroundTexture; this.backgroundImage.texture = this.backgroundTexture;
} else { } else {
this.backgroundImage.texture = await PIXI.Texture.fromURL(imageUrl); this.backgroundImage.texture = await PIXI.Texture.fromURL(imageUrl);
} }
this.backgroundImage.angle = imageAngle;
if (imageWidth !== undefined
&& imageWidth !== null
&& imageWidth !== 0
&& imageHeight !== undefined
&& imageHeight !== null
&& imageHeight !== 0) {
console.log(imageWidth, imageHeight);
this.backgroundImage.width = imageWidth;
this.backgroundImage.height = imageHeight;
} else {
this.backgroundImage.width = this.backgroundImage.texture.width;
this.backgroundImage.height = this.backgroundImage.texture.height;
}
this.backgroundImage.x = this.backgroundImage.width / 2; this.backgroundImage.x = this.backgroundImage.width / 2;
this.backgroundImage.y = this.backgroundImage.height / 2; this.backgroundImage.y = this.backgroundImage.height / 2;
this.backgroundImage.angle = imageAngle;
this.resetCamera2D(); this.resetCamera2D();
// this.backgroundImage.children.forEach((item) => {
// if (item instanceof AxShape) {
// item.refresh();
// }
// });
} }
/** /**
* *
@ -1077,17 +1094,17 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
GameMode: this.canvasData.gameMode, GameMode: this.canvasData.gameMode,
PropertyInfos: [ PropertyInfos: [
{ {
Tag : '', Tag: '',
Order : 0, Order: 0,
Enabled : true, Enabled: true,
Visible : true, Visible: true,
Required : false, Required: false,
RuleName : '', RuleName: '',
RuleValue : '', RuleValue: '',
PhysicalUnit : '', PhysicalUnit: '',
PropertyName : '列', PropertyName: '列',
PropertyType : 2, PropertyType: 2,
PropertyValue : 2, PropertyValue: 2,
}, },
], ],
Scale: 1, Scale: 1,
@ -1172,7 +1189,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.previewLineSegment.clear(); this.previewLineSegment.clear();
this.previewLineSegment.lineStyle(1 / this.backgroundImage.scale.x, 0x00ff00, 1); this.previewLineSegment.lineStyle(1 / this.backgroundImage.scale.x, 0x00ff00, 1);
this.previewLineSegment.moveTo(pointA.x, pointA.y); this.previewLineSegment.moveTo(pointA.x, pointA.y);
this.previewLineSegment.lineTo(pointB.x, pointB.y ); this.previewLineSegment.lineTo(pointB.x, pointB.y);
} }
/** /**
* *
@ -1249,7 +1266,7 @@ export class WorkingAreaComponent extends EventEmitter implements OnInit, AfterV
this.previewImage.visible = false; this.previewImage.visible = false;
} }
// 重置组件状态 // 重置组件状态
if ( this.paintingIcon !== undefined if (this.paintingIcon !== undefined
&& this.paintingIcon !== null) { && this.paintingIcon !== null) {
this.backgroundImage.removeChild(this.paintingIcon); this.backgroundImage.removeChild(this.paintingIcon);
} }

Loading…
Cancel
Save