diff --git a/src/app/babylon/controller/data-manager.ts b/src/app/babylon/controller/data-manager.ts index 5c5b8a3..a68495e 100644 --- a/src/app/babylon/controller/data-manager.ts +++ b/src/app/babylon/controller/data-manager.ts @@ -9,9 +9,11 @@ import { BuildingType } from '../model/data/institution/building/building-data'; import { AllFacilityData } from '../model/data/institution/facility/all-facility-data'; -import { PropertyData_DWBZ } from '../model/data/institution/facility/property-data/indoor/property-data-dwbz'; -import { PropertyData_PL } from '../model/data/institution/facility/property-data/outdoor/property-data-pl'; -import { PropertyData_Q } from '../model/data/institution/facility/property-data/outdoor/property-data-q'; +import { PropertyData_Base_IMG } from '../model/data/institution/facility/property-data/base/property-data-base-img'; +import { PropertyData_MHQ } from '../model/data/institution/facility/property-data/in/property-data-mhq'; +import { PropertyData_DWBZ } from '../model/data/institution/facility/property-data/out/property-data-dwbz'; +import { PropertyData_PL } from '../model/data/institution/facility/property-data/out/property-data-pl'; +import { PropertyData_Q } from '../model/data/institution/facility/property-data/out/property-data-q'; import { PropertyData_Base } from '../model/data/institution/facility/property-data/property-data-base'; import { PropertyData_public } from '../model/data/institution/facility/property-data/property-data-public'; import { @@ -423,12 +425,20 @@ export class DataManager { static createPropertyData(key: string, facilityType: FacilityType): PropertyData_Base { let result: PropertyData_Base = null; switch (facilityType) { - + //自定义放置 case FacilityType.PL: result = new PropertyData_PL(key, 0, "", []); break; case FacilityType.QY: result = new PropertyData_Q(key, "", "", "", null, facilityType); break; - case FacilityType.TPBZ: + case FacilityType.TPBZ: result = new PropertyData_Base_IMG(key, "", "", "", facilityType); break; case FacilityType.DWBZ: result = new PropertyData_DWBZ(key, "", ""); break; - //其他在表格中显示无 + //建筑模型内内置的 + case FacilityType.XF_MHQ_PT_4: + case FacilityType.XF_MHQ_PT_8: + case FacilityType.XF_MHQ_PT_35: + case FacilityType.XF_MHQ_GF_4: + case FacilityType.XF_MHQ_GF_8: + case FacilityType.XF_MHQ_GF_35: result = new PropertyData_MHQ(key, facilityType); break; + + } if (result == null) { diff --git a/src/app/babylon/controller/info-manager.ts b/src/app/babylon/controller/info-manager.ts index 4b00c76..e4c8436 100644 --- a/src/app/babylon/controller/info-manager.ts +++ b/src/app/babylon/controller/info-manager.ts @@ -2,7 +2,7 @@ import { AbstractMesh } from "@babylonjs/core"; import { MarkData } from "../model/data/mark/mark-data"; import { ModelData } from "../model/data/model-data/model-data"; -import { FacilityType, ModelData_facility } from "../model/data/model-data/model-data-facility"; +import { FacilityInBuildingType, FacilityType, ModelData_facility } from "../model/data/model-data/model-data-facility"; import { ModelEditData } from "../model/data/model-data/model-edit-data"; import { TransformData } from "../model/data/transform-data"; import { BuildingInfo } from "../model/info/building/building-info"; @@ -117,6 +117,8 @@ export class InfoManager { } + + /** * 新建标绘物 info * @param key @@ -174,6 +176,7 @@ export class InfoManager { buildingInfo, true, false, + null,//要根据类型,是不是从场景中查找 (modelInfo: ModelInfo_facility) => { if (ModeManager.currentMode == ModeType.Look) { modelInfo.setIconEnable(false);//查看模式下隐藏所有设备ui @@ -199,6 +202,7 @@ export class InfoManager { facilityInfoByType.facilityInfo.push(facilityInfo); } + //将某设备info,从相应的列表中移除 static removeFacilityInfoToTypeList(facilityInfo: ModelInfo_facility, facilityInfosByType: FacilityInfoByType[]) { let facilityType = (facilityInfo.modelData as ModelData_facility).facilityType; diff --git a/src/app/babylon/model/data/institution/facility/property-data/in/property-data-mhq.ts b/src/app/babylon/model/data/institution/facility/property-data/in/property-data-mhq.ts new file mode 100644 index 0000000..1e09a0b --- /dev/null +++ b/src/app/babylon/model/data/institution/facility/property-data/in/property-data-mhq.ts @@ -0,0 +1,22 @@ + +import { FacilityType } from "../../../../model-data/model-data-facility"; +import { PropertyData_Base } from "../property-data-base"; + +/** + * 灭火器 + */ +export class PropertyData_MHQ extends PropertyData_Base { + + + + constructor(key: string, facilityType: FacilityType) { + super(key, facilityType); + + } + + clone(key: string) { + let result = new PropertyData_MHQ(key, this.facilityType); + return result; + } + +} \ No newline at end of file diff --git a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-fhfq.ts b/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-fhfq.ts deleted file mode 100644 index ce294f5..0000000 --- a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-fhfq.ts +++ /dev/null @@ -1,31 +0,0 @@ -import { Color3, Color4 } from "@babylonjs/core"; -import { Type } from "class-transformer"; -import { FacilityType } from "../../../../model-data/model-data-facility"; -import { PropertyData_Base } from "../property-data-base"; - -/** - * 防火分区 - */ -export class PropertyData_FHFQ extends PropertyData_Base { - - - name: string = "";//名称 - area: string = "";//面积 - @Type(() => Color3) - color: Color3 = Color3.Red();//颜色 - constructor(key: string, name: string, area: string, color: Color3 = Color3.Red()) { - super(key, FacilityType.FHFQ); - this.name = name; - this.area = area; - this.color = color; - } - - clone(key: string) { - let result = new PropertyData_FHFQ(key, this.name, this.area, this.color); - return result; - } - - - - -} \ No newline at end of file diff --git a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-sslt.ts b/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-sslt.ts deleted file mode 100644 index eb47672..0000000 --- a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-sslt.ts +++ /dev/null @@ -1,26 +0,0 @@ - -import { FacilityType } from "../../../../model-data/model-data-facility"; -import { PropertyData_Base_LT } from "../base/property-data-base-lt"; -import { PropertyData_Base } from "../property-data-base"; - -/** - * 疏散楼梯 - */ -export class PropertyData_SSLT extends PropertyData_Base_LT { - - width: string = "";//宽度 - - constructor(key: string, number: string, channel: string, width: string) { - super(key, number, channel, FacilityType.SSLT); - this.width = width; - } - - clone(key: string) { - let result = new PropertyData_SSLT(key, this.number, this.channel, this.width); - return result; - } - - - - -} \ No newline at end of file diff --git a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-xfdt.ts b/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-xfdt.ts deleted file mode 100644 index 7bf5ad3..0000000 --- a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-xfdt.ts +++ /dev/null @@ -1,24 +0,0 @@ - -import { FacilityType } from "../../../../model-data/model-data-facility"; -import { PropertyData_Base_LT } from "../base/property-data-base-lt"; -import { PropertyData_Base } from "../property-data-base"; - -/** - * 消防电梯 - */ -export class PropertyData_XFDT extends PropertyData_Base_LT { - - weight: string = "";//载重 - - constructor(key: string, number: string, channel: string, weight: string) { - super(key, number, channel, FacilityType.XFDT); - this.weight = weight; - } - - clone(key: string) { - let result = new PropertyData_XFDT(key, this.number, this.channel, this.weight); - return result; - } - - -} \ No newline at end of file diff --git a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-zdqy.ts b/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-zdqy.ts deleted file mode 100644 index 1afcb8d..0000000 --- a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-zdqy.ts +++ /dev/null @@ -1,42 +0,0 @@ - -import { FacilityType } from "../../../../model-data/model-data-facility"; -import { PropertyData_Base } from "../property-data-base"; - -/** - * 重点区域 - */ -export class PropertyData_ZDQY extends PropertyData_Base { - - name: string = "";//名称 - pos: string = "";//所在位置 - construction: string = "";//建筑结构 - character: string = "";//使用性质 - danger: string = "";//主要危险性 - imgs: string[] = [];//图片 - - constructor(key: string, name: string, pos: string, construction: string, character: string, danger: string, imgs: string[]) { - super(key, FacilityType.ZDQY); - this.name = name; - this.pos = pos; - this.construction = construction; - this.character = character; - this.danger = danger; - this.imgs = imgs; - } - - clone(key: string) { - - let newImgs: string[] = []; - - for (let i = 0; i < this.imgs.length; i++) { - newImgs.push(this.imgs[i]); - } - - let result = new PropertyData_ZDQY(key, this.name, this.pos, this.construction, this.character, this.danger, newImgs); - return result; - } - - - - -} \ No newline at end of file diff --git a/src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-dwbz.ts b/src/app/babylon/model/data/institution/facility/property-data/out/property-data-dwbz.ts similarity index 100% rename from src/app/babylon/model/data/institution/facility/property-data/indoor/property-data-dwbz.ts rename to src/app/babylon/model/data/institution/facility/property-data/out/property-data-dwbz.ts diff --git a/src/app/babylon/model/data/institution/facility/property-data/outdoor/property-data-pl.ts b/src/app/babylon/model/data/institution/facility/property-data/out/property-data-pl.ts similarity index 100% rename from src/app/babylon/model/data/institution/facility/property-data/outdoor/property-data-pl.ts rename to src/app/babylon/model/data/institution/facility/property-data/out/property-data-pl.ts diff --git a/src/app/babylon/model/data/institution/facility/property-data/outdoor/property-data-q.ts b/src/app/babylon/model/data/institution/facility/property-data/out/property-data-q.ts similarity index 100% rename from src/app/babylon/model/data/institution/facility/property-data/outdoor/property-data-q.ts rename to src/app/babylon/model/data/institution/facility/property-data/out/property-data-q.ts diff --git a/src/app/babylon/model/data/model-data/model-data-facility.ts b/src/app/babylon/model/data/model-data/model-data-facility.ts index 3ede181..4965515 100644 --- a/src/app/babylon/model/data/model-data/model-data-facility.ts +++ b/src/app/babylon/model/data/model-data/model-data-facility.ts @@ -119,6 +119,9 @@ export enum FacilityShowType { * 设备具体类型 */ export enum FacilityType { + + //外部自定义 + /** * 毗邻 */ @@ -138,5 +141,103 @@ export enum FacilityType { */ DWBZ = "DWBZ", + //模型内置 + + /** + * 普通灭火器 - 4kg + */ + XF_MHQ_PT_4 = "XF_MHQ_PT_4", + /** + * 普通灭火器 - 8kg + */ + XF_MHQ_PT_8 = "XF_MHQ_PT_8", + /** + * 普通灭火器 - 35kg (手推) + */ + XF_MHQ_PT_35 = "XF_MHQ_PT_35", + /** + * 干粉灭火器 - 4kg + */ + XF_MHQ_GF_4 = "XF_MHQ_GF_4", + /** + * 干粉灭火器 - 8kg + */ + XF_MHQ_GF_8 = "XF_MHQ_GF_8", + /** + * 干粉灭火器 - 36kg(手推) + */ + XF_MHQ_GF_35 = "XF_MHQ_GF_35", + /** + * 灭火毯 + */ + XF_MHT = "XF_MHT", + /** + * 消防锹 + */ + XF_XFQ = "XF_XFQ", + /** + * 消防桶 + */ + XF_XFT = "XF_XFT", + /** + * 消防长矛 + */ + XF_XFCM = "XF_XFCM", + /** + * 消防斧 + */ + XF_XFF = "XF_XFF", + /** + * 消防沙 + */ + XF_XFS = "XF_XFS", + /** + * 加油机 + */ + JY_JYJ = "JY_JYJ", + /** + * 油罐 + */ + JY_YG = "JY_YG", + + /** + * 展示油罐是要隐藏的阻挡物 + */ + ZD_YG = "ZD_YG", -} \ No newline at end of file + /** + * 输油管线 + */ + JY_SYGX = "JY_SYGX", + /** + * 油气回收管线 + */ + JY_YQHSGX = "JY_YQHSGX", + /** + * 逃生路线 + */ + XF_TSLX = "XF_TSLX", + /** + * 疏散点 + */ + XF_SSD = "XF_SSD" + +} + +/** + * 建筑中设备类型 + */ +export enum FacilityInBuildingType { + /** + * 消防设备 + */ + Facility, + /** + * 加油站相关 + */ + Oilling, + /** + * 阻挡物 + */ + Stop, +} diff --git a/src/app/babylon/model/data/model-data/model-edit-data.ts b/src/app/babylon/model/data/model-data/model-edit-data.ts index c851a8a..bc1534d 100644 --- a/src/app/babylon/model/data/model-data/model-edit-data.ts +++ b/src/app/babylon/model/data/model-data/model-edit-data.ts @@ -12,7 +12,7 @@ export class ModelEditData { @Type(() => ModelData) modelData: ModelData; //模型信息 @Type(() => FacilityDatasByType) - facilities: FacilityDatasByType[] = []; //含有哪些设备 + facilities: FacilityDatasByType[] = []; //含有哪些设备(手动放置) constructor() { // this.belongToBuilding = belongToBuilding; @@ -59,6 +59,10 @@ export class ModelEditData { return result; } + + + + } /** diff --git a/src/app/babylon/model/info/building/building-info.ts b/src/app/babylon/model/info/building/building-info.ts index ba9e858..8e13042 100644 --- a/src/app/babylon/model/info/building/building-info.ts +++ b/src/app/babylon/model/info/building/building-info.ts @@ -115,4 +115,5 @@ export class BuildingInfo { SceneManager.destroyModel(this.modelInfo); } } + } diff --git a/src/app/babylon/view/building-window/building-ui-item.ts b/src/app/babylon/view/building-window/building-ui-item.ts index 85b2bdf..9b11ff5 100644 --- a/src/app/babylon/view/building-window/building-ui-item.ts +++ b/src/app/babylon/view/building-window/building-ui-item.ts @@ -1,14 +1,21 @@ +import { AbstractMesh, Mesh, TransformNode } from "@babylonjs/core"; +import { ConfigManager } from "../../controller/config-manager"; +import { InfoManager } from "../../controller/info-manager"; import { SceneManager } from "../../controller/scene-manager"; import { IndoorStatus } from "../../controller/status/indoor-status"; import { StatusManager } from "../../controller/status/status-manager"; import { BuildingType, BuildingData_Normal } from "../../model/data/institution/building/building-data"; +import { FacilityPosType, FacilityType, ModelData_facility } from "../../model/data/model-data/model-data-facility"; import { ModelEditData } from "../../model/data/model-data/model-edit-data"; +import { TransformData } from "../../model/data/transform-data"; import { BuildingInfo } from "../../model/info/building/building-info"; import { ModelInfo_building } from "../../model/info/model/model-info-building"; import { BabylonTool } from "../../tool/babylon-tool"; import { GizmoTool } from "../../tool/gizmo-tool"; +import { TsTool } from "../../tool/ts-tool"; +import { FacilityWindow } from "../facility-window/facility-window"; import { MarkWindow } from "../mark-window/mark-window"; // import { BuildingCreateWindow } from "./building-create-window"; import { BuildingWindow } from "./building-window"; @@ -196,6 +203,39 @@ export class BuildingUIItem { } + /** + * 从模型中创建消防设备信息 + * @param mesh + */ + createFacilityByMesh(mesh: AbstractMesh) { + FacilityWindow.instance.createFacilityByMesh(mesh, this.buildingInfo); + + } + + /** + * 从模型中创建加油站相关信息 + * @param mesh + */ + createOilingByMesh(mesh: AbstractMesh) { + FacilityWindow.instance.createOilingByMesh(mesh, this.buildingInfo); + } + + /** + * 从模型创建阻挡物信息 + * @param mesh + */ + createStopByMesh(mesh: AbstractMesh) { + FacilityWindow.instance.createStopByMesh(mesh, this.buildingInfo); + } + + /** + * 清空从mesh中寻找的设备信息 + */ + clearFacilityFromMesh() { + + } + + //#endregion //#region 内部私有 diff --git a/src/app/babylon/view/building-window/building-window.ts b/src/app/babylon/view/building-window/building-window.ts index 63901a6..4985fcb 100644 --- a/src/app/babylon/view/building-window/building-window.ts +++ b/src/app/babylon/view/building-window/building-window.ts @@ -215,7 +215,7 @@ export class BuildingWindow extends UIBase { BuildingWindow.instance = this; this.three = PlanComponent.instance; this.three.buildingUIItems = this.buildingUIItems - this.buildingUIItems.length? this.three.beforeOneBuildingID = this.three.buildingUIItems[0].getBuildingID() : null + this.buildingUIItems.length ? this.three.beforeOneBuildingID = this.three.buildingUIItems[0].getBuildingID() : null } @@ -520,35 +520,40 @@ export class BuildingWindow extends UIBase { * 清空找不到具体模型的设备信息 */ public clearHomeLessFacilityData() { + if (this.currentBuidngItem != null) { + + let allNode = this.currentBuidngItem.clearFacilityFromMesh(); + } + } /** - * 获取并创建建筑上的消防设备数据 + * 获取并创建建筑上的消防设备数据(内部模式制作时,调用一次) */ public getModelAndCreateFacilityData() { + this.clearHomeLessFacilityData(); if (this.currentBuidngItem != null) { //获取所有transformNodes - let allNode = this.currentBuidngItem.buildingInfo.ModelInfo.modelBox.getChildTransformNodes(false); + let allNode = this.currentBuidngItem.buildingInfo.ModelInfo.modelBox.getChildMeshes(false); for (let i = 0; i < allNode.length; i++) { let nodeName = allNode[i].name; if (TsTool.stringContain(nodeName, this.c_xiaoFang)) //消防 { - + this.currentBuidngItem.createFacilityByMesh(allNode[i]); } else if (TsTool.stringContain(nodeName, this.c_xiaoFang))//加油站 { - + this.currentBuidngItem.createOilingByMesh(allNode[i]); } else if (TsTool.stringContain(nodeName, this.c_zheDang))//遮挡 { - + this.currentBuidngItem.createStopByMesh(allNode[i]); } - } } diff --git a/src/app/babylon/view/facility-window/facility-window.ts b/src/app/babylon/view/facility-window/facility-window.ts index 8b3e5d7..8392d80 100644 --- a/src/app/babylon/view/facility-window/facility-window.ts +++ b/src/app/babylon/view/facility-window/facility-window.ts @@ -1,4 +1,5 @@ import { + AbstractMesh, EventState, Mesh, MeshBuilder, @@ -21,13 +22,15 @@ import { BuildingStatus } from '../../controller/status/building-status'; import { IndoorStatus } from '../../controller/status/indoor-status'; import { StatusManager } from '../../controller/status/status-manager'; import { UIManager } from '../../controller/ui-manager'; -import { FacilityPosType, ModelData_facility, FacilityShowType } from '../../model/data/model-data/model-data-facility'; +import { FacilityPosType, ModelData_facility, FacilityShowType, FacilityType } from '../../model/data/model-data/model-data-facility'; +import { TransformData } from '../../model/data/transform-data'; import { BuildingInfo } from '../../model/info/building/building-info'; import { AreaInfo } from '../../model/info/model/facilityinfo-tool/facility-area'; import { ModelInfo_facility } from '../../model/info/model/model-info-facility'; import { BabylonTool } from '../../tool/babylon-tool'; import { BabylonUIStyleTool } from '../../tool/babylon-ui-style-tool'; import { GizmoTool } from '../../tool/gizmo-tool'; +import { TsTool } from '../../tool/ts-tool'; import { CopyFacilityInfo, FacilityInfoInSceneWindow } from '../facilityinfoinscene-window/facilityinfoinscene-window'; import { ToolbarWindow } from '../toolbar-window/toobar-window'; @@ -235,7 +238,7 @@ export class FacilityWindow extends UIBase { if (eventData.event.button == 0) { //左键正常 if (eventData.pickInfo.hit && !SceneManager.s_isPointerDrag) { if (FacilityWindow.s_currentFacilityItem != null) { - instance.createNewFacility(eventData.pickInfo.pickedPoint); + instance.createNewFacilityByPos(eventData.pickInfo.pickedPoint); return; } } @@ -294,13 +297,36 @@ export class FacilityWindow extends UIBase { //创建新的设施(用世界坐标) - createNewFacility(worldPosition: Vector3) { + createNewFacilityByPos(worldPosition: Vector3) { let facilityData = FacilityWindow.s_currentFacilityItem.facilityData.clone( this.createIndex.toString() ); facilityData.transformData.position = worldPosition.clone(); + this.createNewFacility(facilityData); + + } + + /** + * 根据mesh创建设备 + * @param mesh + * @param type + */ + createNewFacilityByMesh(mesh: AbstractMesh, type: FacilityType) { + let facilityData = this.createFacilityDataFromMesh(mesh, type); + //let facilityInfo = this.createFacilityInfoFromMesh(facilityData, mesh, buildingInfo); + + this.createNewFacility(facilityData, mesh); + } + + + /** + * 创建新的设施(用data) + * @param facilityData + * @param mesh 默认null表示利用根据数据加载模型,不是null表示已经准备好了 + */ + createNewFacility(facilityData: ModelData_facility, mesh: AbstractMesh = null) { let currentBuidngItem = StatusManager.getStatus(BuildingStatus) .buildingWindow.currentBuidngItem; if (currentBuidngItem == null) { @@ -311,11 +337,10 @@ export class FacilityWindow extends UIBase { Event_ChangeFacility.dispatch(facilityData, ModelChangeType.Add, null); - this.createFacility(facilityData, true, undefined, false, true, (modelInfo) => { + this.createFacility(facilityData, true, undefined, false, true, mesh, (modelInfo) => { GizmoTool.onPickMeshInfoObservable.notifyObservers(modelInfo); }); - } /** @@ -348,7 +373,7 @@ export class FacilityWindow extends UIBase { } Event_ChangeFacility.dispatch(facilityData, ModelChangeType.Add, null); - this.createFacility(facilityData, false, undefined, true, true, (modelInfo) => { + this.createFacility(facilityData, false, undefined, true, true, null, (modelInfo) => { //GizmoTool.onPickMeshInfoObservable.notifyObservers(modelInfo); modelInfo.onStopLongPress(null, null); @@ -375,6 +400,7 @@ export class FacilityWindow extends UIBase { buildingInfo: BuildingInfo = null, isLocalPos = false, select = false, + mesh: AbstractMesh = null, //null 表示利用根据数据加载模型,不是null表示已经准备好了 onSuccess?: (modelInfo: ModelInfo_facility) => void ): ModelInfo_facility { @@ -508,4 +534,105 @@ export class FacilityWindow extends UIBase { return buildingInfo; } + + + //#region 从已有模型创建设备 + + + /** + * 从模型中创建消防设备信息 + * @param mesh + */ + createFacilityByMesh(mesh: AbstractMesh, buildingInfo: BuildingInfo) { + + if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_GF_4)) { + this.createNewFacilityByMesh(mesh, FacilityType.XF_MHQ_GF_4); + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_GF_8)) { + this.createNewFacilityByMesh(mesh, FacilityType.XF_MHQ_GF_8); + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_GF_35)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_PT_4)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_PT_8)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_PT_35)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHT)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_SSD)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_TSLX)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFCM)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFF)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFQ)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFS)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFT)) { + + } + else if (TsTool.stringContain(mesh.name, FacilityType.ZD_YG)) { + + } + } + + /** + * 从模型中创建加油站相关信息 + * @param mesh + */ + createOilingByMesh(mesh: AbstractMesh, buildingInfo: BuildingInfo) { + + } + + /** + * 从模型创建阻挡物信息 + * @param mesh + */ + createStopByMesh(mesh: AbstractMesh, buildingInfo: BuildingInfo) { + + } + + + createFacilityDataFromMesh(mesh: AbstractMesh, type: FacilityType) { + let name = ConfigManager.getFacilityTypeName(type); + let result = new ModelData_facility(mesh.name, type, name, mesh.name, new TransformData(), FacilityPosType.In); + return result; + } + + /** + * 用已有mesh和设备data创建设备Info(暂时不用) + * @param facilityData + * @param mesh + * @param buildingInfo + */ + createFacilityInfoFromMesh(facilityData: ModelData_facility, mesh: AbstractMesh, buildingInfo: BuildingInfo) { + let facilityInfo = InfoManager.newModelInfo_facility( + facilityData.key, + facilityData, + null, + mesh, + buildingInfo, + true + ); + return facilityInfo; + } + + //#endregion + }