diff --git a/src/app/babylon/model/data/institution/institution-data.ts b/src/app/babylon/model/data/institution/institution-data.ts index ea2ed09..b7a9eb3 100644 --- a/src/app/babylon/model/data/institution/institution-data.ts +++ b/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; + } + } @@ -89,4 +110,5 @@ export class NormalData { //console.log("getName==" + this.name); return this.name; } -} \ No newline at end of file +} + diff --git a/src/app/babylon/model/data/institution/jyz-show-data.ts b/src/app/babylon/model/data/institution/jyz-show-data.ts new file mode 100644 index 0000000..68ec178 --- /dev/null +++ b/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", +} \ No newline at end of file diff --git a/src/app/babylon/view/building-window/building-window.ts b/src/app/babylon/view/building-window/building-window.ts index 8d8c3b4..e4d3f05 100644 --- a/src/app/babylon/view/building-window/building-window.ts +++ b/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 = 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; } + /** + * 保存展示模块当前数据 + */ + 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", -} \ No newline at end of file diff --git a/src/app/babylon/view/toolbar-window/toobar-window.ts b/src/app/babylon/view/toolbar-window/toobar-window.ts index 19987bb..134ae3b 100644 --- a/src/app/babylon/view/toolbar-window/toobar-window.ts +++ b/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(); diff --git a/src/app/pages/plan/plan.component.ts b/src/app/pages/plan/plan.component.ts index fceba58..2bd0841 100644 --- a/src/app/pages/plan/plan.component.ts +++ b/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'; diff --git a/src/assets/images/facility/in/XF_MHQ_GF_35.png b/src/assets/images/facility/in/XF_MHQ_GF_35.png index 60d38b0..1814a11 100644 Binary files a/src/assets/images/facility/in/XF_MHQ_GF_35.png and b/src/assets/images/facility/in/XF_MHQ_GF_35.png differ diff --git a/src/assets/images/facility/in/XF_MHQ_GF_4.png b/src/assets/images/facility/in/XF_MHQ_GF_4.png index c2811d5..620a6fe 100644 Binary files a/src/assets/images/facility/in/XF_MHQ_GF_4.png and b/src/assets/images/facility/in/XF_MHQ_GF_4.png differ diff --git a/src/assets/images/facility/in/XF_MHQ_GF_8.png b/src/assets/images/facility/in/XF_MHQ_GF_8.png index b3e78e2..697e80f 100644 Binary files a/src/assets/images/facility/in/XF_MHQ_GF_8.png and b/src/assets/images/facility/in/XF_MHQ_GF_8.png differ diff --git a/src/assets/images/facility/in/XF_MHQ_PT_35.png b/src/assets/images/facility/in/XF_MHQ_PT_35.png index dfc59c9..fbd2b78 100644 Binary files a/src/assets/images/facility/in/XF_MHQ_PT_35.png and b/src/assets/images/facility/in/XF_MHQ_PT_35.png differ diff --git a/src/assets/images/facility/in/XF_MHQ_PT_4.png b/src/assets/images/facility/in/XF_MHQ_PT_4.png index 128ada5..bb5e697 100644 Binary files a/src/assets/images/facility/in/XF_MHQ_PT_4.png and b/src/assets/images/facility/in/XF_MHQ_PT_4.png differ diff --git a/src/assets/images/facility/in/XF_MHQ_PT_8.png b/src/assets/images/facility/in/XF_MHQ_PT_8.png index de94ddc..165d63a 100644 Binary files a/src/assets/images/facility/in/XF_MHQ_PT_8.png and b/src/assets/images/facility/in/XF_MHQ_PT_8.png differ diff --git a/src/assets/images/facility/in/XF_MHT.png b/src/assets/images/facility/in/XF_MHT.png index dd6647a..59b42ce 100644 Binary files a/src/assets/images/facility/in/XF_MHT.png and b/src/assets/images/facility/in/XF_MHT.png differ diff --git a/src/assets/images/facility/in/XF_XFCM.png b/src/assets/images/facility/in/XF_XFCM.png index c253fe4..ffd5524 100644 Binary files a/src/assets/images/facility/in/XF_XFCM.png and b/src/assets/images/facility/in/XF_XFCM.png differ diff --git a/src/assets/images/facility/in/XF_XFF.png b/src/assets/images/facility/in/XF_XFF.png index 37feb73..b163770 100644 Binary files a/src/assets/images/facility/in/XF_XFF.png and b/src/assets/images/facility/in/XF_XFF.png differ diff --git a/src/assets/images/facility/in/XF_XFQ.png b/src/assets/images/facility/in/XF_XFQ.png index a15f56d..8b37d93 100644 Binary files a/src/assets/images/facility/in/XF_XFQ.png and b/src/assets/images/facility/in/XF_XFQ.png differ diff --git a/src/assets/images/facility/in/XF_XFS.png b/src/assets/images/facility/in/XF_XFS.png index 002638a..28d5a34 100644 Binary files a/src/assets/images/facility/in/XF_XFS.png and b/src/assets/images/facility/in/XF_XFS.png differ diff --git a/src/assets/images/facility/in/XF_XFT.png b/src/assets/images/facility/in/XF_XFT.png index 0e38f1a..5f761dd 100644 Binary files a/src/assets/images/facility/in/XF_XFT.png and b/src/assets/images/facility/in/XF_XFT.png differ diff --git a/src/assets/images/facility/in/XKS.png b/src/assets/images/facility/in/XKS.png deleted file mode 100644 index 9c27faa..0000000 Binary files a/src/assets/images/facility/in/XKS.png and /dev/null differ