Browse Source

增加视角保存与还原的逻辑

dev
刘向辉 3 years ago
parent
commit
05908d50d5
  1. 22
      src/app/babylon/model/data/institution/institution-data.ts
  2. 78
      src/app/babylon/model/data/institution/jyz-show-data.ts
  3. 93
      src/app/babylon/view/building-window/building-window.ts
  4. 11
      src/app/babylon/view/toolbar-window/toobar-window.ts
  5. 3
      src/app/pages/plan/plan.component.ts
  6. BIN
      src/assets/images/facility/in/XF_MHQ_GF_35.png
  7. BIN
      src/assets/images/facility/in/XF_MHQ_GF_4.png
  8. BIN
      src/assets/images/facility/in/XF_MHQ_GF_8.png
  9. BIN
      src/assets/images/facility/in/XF_MHQ_PT_35.png
  10. BIN
      src/assets/images/facility/in/XF_MHQ_PT_4.png
  11. BIN
      src/assets/images/facility/in/XF_MHQ_PT_8.png
  12. BIN
      src/assets/images/facility/in/XF_MHT.png
  13. BIN
      src/assets/images/facility/in/XF_XFCM.png
  14. BIN
      src/assets/images/facility/in/XF_XFF.png
  15. BIN
      src/assets/images/facility/in/XF_XFQ.png
  16. BIN
      src/assets/images/facility/in/XF_XFS.png
  17. BIN
      src/assets/images/facility/in/XF_XFT.png
  18. BIN
      src/assets/images/facility/in/XKS.png

22
src/app/babylon/model/data/institution/institution-data.ts

@ -1,6 +1,7 @@
import { Vector3 } from "@babylonjs/core";
import { Type } from "class-transformer";
import { BuildingData_ChemicalPlant, BuildingData_Environment, BuildingData_Normal, BuildingType } from "./building/building-data";
import { JYZInfoMoudleType, JYZShowData } from "./jyz-show-data";
//单位信息
export class InstitutionData {
@ -25,6 +26,11 @@ export class InstitutionData {
@Type(() => Vector3)
pos: Vector3 = new Vector3(0, 0, 0);
/**
*
*/
@Type(() => JYZShowData)
JYZShowDatas: JYZShowData[] = [];
//获取一个最新的key(根据前一个同类建筑key,加一)
public getNewKey(buildingType: BuildingType): string {
@ -65,6 +71,21 @@ export class InstitutionData {
return result;
}
/**
*
* @param type
*/
getMoudleShowData(type: JYZInfoMoudleType) {
let result: JYZShowData = null;
for (let i = 0; i < this.JYZShowDatas.length; i++) {
if (this.JYZShowDatas[i].moudleType == type) {
result = this.JYZShowDatas[i];
break;
}
}
return result;
}
}
@ -90,3 +111,4 @@ export class NormalData {
return this.name;
}
}

78
src/app/babylon/model/data/institution/jyz-show-data.ts

@ -0,0 +1,78 @@
import { ArcRotateCamera } from "@babylonjs/core/Cameras/arcRotateCamera";
import { Type } from "class-transformer";
import { ArcRotateCameraData } from "../camera-data";
/**
*
*/
export class JYZShowData {
/**
*
*/
moudleType: JYZInfoMoudleType;
/**
*
*/
@Type(() => ArcRotateCameraData)
cameraData: ArcRotateCameraData;
/**
*
*/
showZP: boolean;
constructor(moudleType: JYZInfoMoudleType, camera: ArcRotateCamera, showZP: boolean) {
this.moudleType = moudleType;
this.cameraData = new ArcRotateCameraData();
this.cameraData.getDataFromCamera(camera);
}
}
/**
*
*/
export enum JYZInfoMoudleType {
/**
*
*/
JBXX = "JBXX",
/**
*
*/
YJCZ = "YJCZ",
/**
*
*/
XF = "XF",
/**
*
*/
JYJ = "JYJ",
/**
*
*/
YG = "YG",
/**
*
*/
SYG = "SYG",
/**
* 线
*/
YQHSGX = "YQHSGX",
/**
*
*/
AQSS = "AQSS",
/**
*
*/
ZP = "ZP",
}

93
src/app/babylon/view/building-window/building-window.ts

@ -8,6 +8,7 @@ import { ServeManager } from "../../controller/serve-manager";
import { BuildingStatus } from "../../controller/status/building-status";
import { StatusManager } from "../../controller/status/status-manager";
import { BuildingData, BuildingData_ChemicalPlant, BuildingData_Environment, BuildingData_Normal, BuildingType } from "../../model/data/institution/building/building-data";
import { JYZInfoMoudleType, JYZShowData } from "../../model/data/institution/jyz-show-data";
import { ModelType } from "../../model/data/model-data/model-data";
import { FacilityType } from "../../model/data/model-data/model-data-facility";
import { ModelEditData } from "../../model/data/model-data/model-edit-data";
@ -24,6 +25,7 @@ import { BuildingUIItem } from "./building-ui-item";
//建筑界面
export class BuildingWindow extends UIBase {
/**
* uv动画材质的特殊命名
*/
@ -215,12 +217,13 @@ export class BuildingWindow extends UIBase {
*/
showJYZInfoModel(type: JYZInfoMoudleType, show: boolean) {
console.log("showJYZInfoModel", type, show);
if (this.currentJYZInfoMoudleType == type) {
if (show) {
return; //与上次显示的模块相同
}
else {
this.showJYZModules(type, show);
this.showJYZModules(type, show); //单纯隐藏
}
}
else {
@ -230,6 +233,23 @@ export class BuildingWindow extends UIBase {
this.showJYZModules(type, show);//展示本次要展示的内容
}
if (show) {
if (type == JYZInfoMoudleType.YJCZ) {
//进入应急处置
}
else {//恢复查看状态
let showData = DataManager.institutionData.getMoudleShowData(type);
if (showData != null) {
showData.cameraData.setDataToCamera(SceneManager.Instance.defaultCamera);
this.showZP(showData.showZP);
}
}
}
else {
if (type == JYZInfoMoudleType.YJCZ) {
//退出应急处置
}
}
}
@ -642,6 +662,11 @@ export class BuildingWindow extends UIBase {
*/
mat_UV: Map<JYZInfoMoudleType, Material[]> = new Map();
/**
*
*/
currentZPShow: boolean = true;
/**
*
* @param type
@ -765,6 +790,7 @@ export class BuildingWindow extends UIBase {
}
}
}
this.currentZPShow = show;
}
/**
@ -840,42 +866,39 @@ export class BuildingWindow extends UIBase {
return result;
}
//#endregion
/**
*
*/
saveShowMoudleData() {
let moudleType = this.currentJYZInfoMoudleType;
let camera = SceneManager.Instance.defaultCamera;
let showZP = this.currentZPShow;
}
if (DataManager.institutionData.JYZShowDatas == null) {
DataManager.institutionData.JYZShowDatas = [];
}
let jyzShowData: JYZShowData = null;
for (let i = 0; i < DataManager.institutionData.JYZShowDatas.length; i++) {
if (DataManager.institutionData.JYZShowDatas[i].moudleType == moudleType) {
jyzShowData = DataManager.institutionData.JYZShowDatas[i];
break;
}
}
if (jyzShowData == null) {
jyzShowData = new JYZShowData(moudleType, camera, showZP);
}
jyzShowData.moudleType = moudleType;
jyzShowData.cameraData.getDataFromCamera(camera);
jyzShowData.showZP = showZP;
}
//#endregion
/**
*
*/
export enum JYZInfoMoudleType {
/**
*
*/
XF = "XF",
/**
*
*/
JYJ = "JYJ",
/**
*
*/
YG = "YG",
/**
*
*/
SYG = "SYG",
/**
* 线
*/
YQHSGX = "YQHSGX",
/**
*
*/
AQSS = "AQSS",
/**
*
*/
ZP = "ZP",
}

11
src/app/babylon/view/toolbar-window/toobar-window.ts

@ -89,6 +89,8 @@ export class ToolbarWindow extends UIBase {
//#endregion
//#region 加油站专用
/**
* info和data
*/
@ -118,6 +120,15 @@ export class ToolbarWindow extends UIBase {
BuildingWindow.instance.showZP(show);
}
/**
*
*/
saveShowMoudleData() {
BuildingWindow.instance.saveShowMoudleData();
}
//#endregion
onInit() {
super.onInit();

3
src/app/pages/plan/plan.component.ts

@ -11,13 +11,14 @@ import { ToolbarWindow } from 'src/app/babylon/view/toolbar-window/toobar-window
import { BuildingStatus } from 'src/app/babylon/controller/status/building-status';
import { BuildingUIItem } from 'src/app/babylon/view/building-window/building-ui-item';
import { BuildingType } from 'src/app/babylon/model/data/institution/building/building-data';
import { BuildingWindow, JYZInfoMoudleType } from 'src/app/babylon/view/building-window/building-window';
import { BuildingWindow } from 'src/app/babylon/view/building-window/building-window';
import { FacilityUIItem } from 'src/app/babylon/view/facility-window/facility-ui-item';
import { FacilityWindow } from 'src/app/babylon/view/facility-window/facility-window';
import { FacilityInfoUIItem } from 'src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item';
import { EventManager } from '@angular/platform-browser';
import { NzMessageService } from 'ng-zorro-antd/message';
import { LeftDomainComponent } from '../left-domain/left-domain.component';
import { JYZInfoMoudleType } from 'src/app/babylon/model/data/institution/jyz-show-data';

BIN
src/assets/images/facility/in/XF_MHQ_GF_35.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 6.6 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
src/assets/images/facility/in/XF_MHQ_GF_4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 1.7 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
src/assets/images/facility/in/XF_MHQ_GF_8.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 3.1 KiB

After

Width:  |  Height:  |  Size: 2.7 KiB

BIN
src/assets/images/facility/in/XF_MHQ_PT_35.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 8.6 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
src/assets/images/facility/in/XF_MHQ_PT_4.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

After

Width:  |  Height:  |  Size: 3.3 KiB

BIN
src/assets/images/facility/in/XF_MHQ_PT_8.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 3.4 KiB

BIN
src/assets/images/facility/in/XF_MHT.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.3 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
src/assets/images/facility/in/XF_XFCM.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 5.0 KiB

After

Width:  |  Height:  |  Size: 2.0 KiB

BIN
src/assets/images/facility/in/XF_XFF.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.7 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
src/assets/images/facility/in/XF_XFQ.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.4 KiB

After

Width:  |  Height:  |  Size: 2.1 KiB

BIN
src/assets/images/facility/in/XF_XFS.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 4.5 KiB

After

Width:  |  Height:  |  Size: 2.2 KiB

BIN
src/assets/images/facility/in/XF_XFT.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.6 KiB

After

Width:  |  Height:  |  Size: 2.5 KiB

BIN
src/assets/images/facility/in/XKS.png

Binary file not shown.

Before

Width:  |  Height:  |  Size: 2.2 KiB

Loading…
Cancel
Save