|
|
@ -316,11 +316,17 @@ export class FacilityWindow extends UIBase { |
|
|
|
createNewFacilityByMesh(mesh: AbstractMesh, type: FacilityType) { |
|
|
|
createNewFacilityByMesh(mesh: AbstractMesh, type: FacilityType) { |
|
|
|
let facilityData = this.createFacilityDataFromMesh(mesh, type); |
|
|
|
let facilityData = this.createFacilityDataFromMesh(mesh, type); |
|
|
|
//let facilityInfo = this.createFacilityInfoFromMesh(facilityData, mesh, buildingInfo);
|
|
|
|
//let facilityInfo = this.createFacilityInfoFromMesh(facilityData, mesh, buildingInfo);
|
|
|
|
|
|
|
|
console.log("获取到设备" + type, mesh); |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (!this.isRepeatFacilityFromMesh(type, mesh.id)) //不重复
|
|
|
|
|
|
|
|
{ |
|
|
|
this.createNewFacility(facilityData, mesh); |
|
|
|
this.createNewFacility(facilityData, mesh); |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 创建新的设施(用data) |
|
|
|
* 创建新的设施(用data) |
|
|
|
* @param facilityData
|
|
|
|
* @param facilityData
|
|
|
@ -330,7 +336,7 @@ export class FacilityWindow extends UIBase { |
|
|
|
let currentBuidngItem = StatusManager.getStatus<BuildingStatus>(BuildingStatus) |
|
|
|
let currentBuidngItem = StatusManager.getStatus<BuildingStatus>(BuildingStatus) |
|
|
|
.buildingWindow.currentBuidngItem; |
|
|
|
.buildingWindow.currentBuidngItem; |
|
|
|
if (currentBuidngItem == null) { |
|
|
|
if (currentBuidngItem == null) { |
|
|
|
// alert("请先选中目标建筑");
|
|
|
|
alert("请先选中目标建筑"); |
|
|
|
// ThreeDimensionalHomeComponent.instance.openSnackBar("请先选中目标建筑");
|
|
|
|
// ThreeDimensionalHomeComponent.instance.openSnackBar("请先选中目标建筑");
|
|
|
|
return |
|
|
|
return |
|
|
|
} |
|
|
|
} |
|
|
@ -412,8 +418,16 @@ export class FacilityWindow extends UIBase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let defaultMesh = MeshBuilder.CreateBox(facilityData.key, { size: 1 }); |
|
|
|
let defaultMesh: AbstractMesh = null; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (mesh == null) { |
|
|
|
|
|
|
|
defaultMesh = MeshBuilder.CreateBox(facilityData.key, { size: 1 }); |
|
|
|
defaultMesh.isVisible = false; |
|
|
|
defaultMesh.isVisible = false; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else { |
|
|
|
|
|
|
|
defaultMesh = mesh; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
let facilityInfo = InfoManager.newModelInfo_facility( |
|
|
|
let facilityInfo = InfoManager.newModelInfo_facility( |
|
|
|
facilityData.key, |
|
|
|
facilityData.key, |
|
|
|
facilityData, |
|
|
|
facilityData, |
|
|
@ -433,7 +447,7 @@ export class FacilityWindow extends UIBase { |
|
|
|
|
|
|
|
|
|
|
|
facilityInfo.belongToBuilding = buildingInfo; |
|
|
|
facilityInfo.belongToBuilding = buildingInfo; |
|
|
|
|
|
|
|
|
|
|
|
if (facilityInfo.facilityShowType == FacilityShowType.ModelAndTag) { |
|
|
|
if (facilityInfo.facilityShowType == FacilityShowType.ModelAndTag && mesh == null) { |
|
|
|
|
|
|
|
|
|
|
|
this.getFacilityPrefabSync(facilityData.resName).then((mesh) => { |
|
|
|
this.getFacilityPrefabSync(facilityData.resName).then((mesh) => { |
|
|
|
let prefab = mesh; |
|
|
|
let prefab = mesh; |
|
|
@ -480,7 +494,7 @@ export class FacilityWindow extends UIBase { |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//设置设备transform信息
|
|
|
|
//设置设备transform信息
|
|
|
|
setFacilityTransform(isLocalPos: boolean, isNew: boolean, facilityData: ModelData_facility, buildingInfo: BuildingInfo, newFacility: Mesh, facilityInfo?: ModelInfo_facility) { |
|
|
|
setFacilityTransform(isLocalPos: boolean, isNew: boolean, facilityData: ModelData_facility, buildingInfo: BuildingInfo, newFacility: AbstractMesh, facilityInfo?: ModelInfo_facility) { |
|
|
|
//如果是局部坐标,要先设置父节点
|
|
|
|
//如果是局部坐标,要先设置父节点
|
|
|
|
if (isLocalPos) { |
|
|
|
if (isLocalPos) { |
|
|
|
buildingInfo.ModelInfo.setFacilityParent(facilityInfo); |
|
|
|
buildingInfo.ModelInfo.setFacilityParent(facilityInfo); |
|
|
@ -546,7 +560,7 @@ export class FacilityWindow extends UIBase { |
|
|
|
* 从模型中创建消防设备信息 |
|
|
|
* 从模型中创建消防设备信息 |
|
|
|
* @param mesh
|
|
|
|
* @param mesh
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
createFacilityByMesh(mesh: AbstractMesh, buildingInfo: BuildingInfo) { |
|
|
|
createFacilityByMesh(mesh: AbstractMesh) { |
|
|
|
|
|
|
|
|
|
|
|
if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_GF_4)) { |
|
|
|
if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_GF_4)) { |
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_MHQ_GF_4); |
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_MHQ_GF_4); |
|
|
@ -555,43 +569,40 @@ export class FacilityWindow extends UIBase { |
|
|
|
this.createNewFacilityByMesh(mesh, 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_GF_35)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, 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_4)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, 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_8)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_MHQ_PT_8); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_PT_35)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHQ_PT_35)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_MHQ_PT_35); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHT)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_MHT)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_MHT); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_SSD)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_SSD)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_SSD); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_TSLX)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_TSLX)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_TSLX); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFCM)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFCM)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_XFCM); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFF)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFF)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_XFF); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFQ)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFQ)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_XFQ); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFS)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFS)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_XFS); |
|
|
|
} |
|
|
|
} |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFT)) { |
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.XF_XFT)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.XF_XFT); |
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.ZD_YG)) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -599,22 +610,48 @@ export class FacilityWindow extends UIBase { |
|
|
|
* 从模型中创建加油站相关信息 |
|
|
|
* 从模型中创建加油站相关信息 |
|
|
|
* @param mesh
|
|
|
|
* @param mesh
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
createOilingByMesh(mesh: AbstractMesh, buildingInfo: BuildingInfo) { |
|
|
|
createOilingByMesh(mesh: AbstractMesh) { |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
if (TsTool.stringContain(mesh.name, FacilityType.JY_JYJ)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.JY_JYJ); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.JY_SYGX)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.JY_SYGX); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.JY_YG)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.JY_YG); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.JY_YQHSGX)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.JY_YQHSGX); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
/** |
|
|
|
* 从模型创建阻挡物信息 |
|
|
|
* 从模型创建阻挡物信息 |
|
|
|
* @param mesh
|
|
|
|
* @param mesh
|
|
|
|
*/ |
|
|
|
*/ |
|
|
|
createStopByMesh(mesh: AbstractMesh, buildingInfo: BuildingInfo) { |
|
|
|
createStopByMesh(mesh: AbstractMesh) { |
|
|
|
|
|
|
|
if (TsTool.stringContain(mesh.name, FacilityType.ZD_YG)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.ZD_YG); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.ZD_SYGX)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.ZD_SYGX); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.ZD_YQHSGX)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.ZD_SYGX); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.ZD_XF)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.ZD_XF); |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
else if (TsTool.stringContain(mesh.name, FacilityType.ZD_ZP)) { |
|
|
|
|
|
|
|
this.createNewFacilityByMesh(mesh, FacilityType.ZD_ZP); |
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
createFacilityDataFromMesh(mesh: AbstractMesh, type: FacilityType) { |
|
|
|
createFacilityDataFromMesh(mesh: AbstractMesh, type: FacilityType) { |
|
|
|
let name = ConfigManager.getFacilityTypeName(type); |
|
|
|
let name = ConfigManager.getFacilityTypeName(type); |
|
|
|
let result = new ModelData_facility(mesh.name, type, name, mesh.name, new TransformData(), FacilityPosType.In); |
|
|
|
let result = new ModelData_facility(mesh.name, type, name, mesh.id, new TransformData(), FacilityPosType.In); |
|
|
|
return result; |
|
|
|
return result; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
@ -636,6 +673,41 @@ export class FacilityWindow extends UIBase { |
|
|
|
return facilityInfo; |
|
|
|
return facilityInfo; |
|
|
|
} |
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
/** |
|
|
|
|
|
|
|
* 来自建筑中的设备 是否重复 |
|
|
|
|
|
|
|
*/ |
|
|
|
|
|
|
|
isRepeatFacilityFromMesh(type: FacilityType, id: string) { |
|
|
|
|
|
|
|
let currentBuidngItem = StatusManager.getStatus<BuildingStatus>(BuildingStatus) |
|
|
|
|
|
|
|
.buildingWindow.currentBuidngItem; |
|
|
|
|
|
|
|
if (currentBuidngItem == null) { |
|
|
|
|
|
|
|
alert("请先选中目标建筑"); |
|
|
|
|
|
|
|
// ThreeDimensionalHomeComponent.instance.openSnackBar("请先选中目标建筑");
|
|
|
|
|
|
|
|
return true; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
let result = false; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
let facilityInfoByTypes = currentBuidngItem.buildingInfo.ModelInfo.facilityInfos; |
|
|
|
|
|
|
|
if (facilityInfoByTypes != null) { |
|
|
|
|
|
|
|
for (let i = 0; i < facilityInfoByTypes.length; i++) { |
|
|
|
|
|
|
|
if (facilityInfoByTypes[i].type == type) { |
|
|
|
|
|
|
|
let infos = facilityInfoByTypes[i].facilityInfo; |
|
|
|
|
|
|
|
for (let j = 0; j < infos.length; j++) { |
|
|
|
|
|
|
|
if (infos[j].modelData.resName == id) { |
|
|
|
|
|
|
|
result = true; |
|
|
|
|
|
|
|
console.log("重复的设备,不添加"); |
|
|
|
|
|
|
|
break; |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
return result; |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
|
|
//#endregion
|
|
|
|
//#endregion
|
|
|
|
|
|
|
|
|
|
|
|
} |
|
|
|
} |
|
|
|