From 48be29b7a169926b77838f6440c0a5ae8017deeb Mon Sep 17 00:00:00 2001 From: liuxianghui <519646741@qq.com> Date: Tue, 14 Dec 2021 14:38:10 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E6=94=B9=E7=AE=AD=E5=A4=B4=E6=9D=90?= =?UTF-8?q?=E8=B4=A8=E3=80=81=E9=AB=98=E4=BA=AE=E9=80=89=E4=B8=AD=E7=9A=84?= =?UTF-8?q?=E6=95=88=E6=9E=9C?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- .../data/mark/other/mark-data-multi-arrow.ts | 4 +- .../model/info/mark/model-info-mark.ts | 2 + .../info/mark/other/mark-plan-multi-arrow.ts | 21 +++++- .../model/info/model/model-info-facility.ts | 3 +- .../facilityinfo-ui-item.ts | 9 ++- .../facilityinfoinscene-window.ts | 65 ++++++++++++++++--- 6 files changed, 87 insertions(+), 17 deletions(-) diff --git a/src/app/babylon/model/data/mark/other/mark-data-multi-arrow.ts b/src/app/babylon/model/data/mark/other/mark-data-multi-arrow.ts index db1b5a9..918e895 100644 --- a/src/app/babylon/model/data/mark/other/mark-data-multi-arrow.ts +++ b/src/app/babylon/model/data/mark/other/mark-data-multi-arrow.ts @@ -27,7 +27,7 @@ export class MarkData_multiArrow_JG extends MarkData_multiArrow { /** * 颜色 */ - color: string = "#d71345"; + color: string = "#D50606"; } /** @@ -37,5 +37,5 @@ export class MarkData_multiArrow_CT extends MarkData_multiArrow { /** * 颜色 */ - color: string = "#A9FF00"; + color: string = "#00FF14"; } diff --git a/src/app/babylon/model/info/mark/model-info-mark.ts b/src/app/babylon/model/info/mark/model-info-mark.ts index 665f505..cc06525 100644 --- a/src/app/babylon/model/info/mark/model-info-mark.ts +++ b/src/app/babylon/model/info/mark/model-info-mark.ts @@ -444,6 +444,8 @@ export class ModelInfo_mark extends ModelInfo { this.node_pz.isVisible = false; } + result = false;//暂时关闭喷水功能 + return result; } diff --git a/src/app/babylon/model/info/mark/other/mark-plan-multi-arrow.ts b/src/app/babylon/model/info/mark/other/mark-plan-multi-arrow.ts index a474d8a..af1881b 100644 --- a/src/app/babylon/model/info/mark/other/mark-plan-multi-arrow.ts +++ b/src/app/babylon/model/info/mark/other/mark-plan-multi-arrow.ts @@ -35,14 +35,29 @@ export class ModelInfo_mark_multiArrow extends ModelInfo_mark { this.mat = new StandardMaterial("mat_multiArrow", SceneManager.Instance.scene); + // if (this.arrowData.color == null) { + // this.mat.emissiveColor = Color3.Green(); + // } + // else { + // this.mat.emissiveColor = Color3.FromHexString(this.arrowData.color); + // } + + // this.mat.disableLighting = true; + if (this.arrowData.color == null) { - this.mat.emissiveColor = Color3.Green(); + this.mat.diffuseColor = Color3.Green(); } else { - this.mat.emissiveColor = Color3.FromHexString(this.arrowData.color); + this.mat.diffuseColor = Color3.FromHexString(this.arrowData.color); } + this.mat.specularPower = 0; + this.mat.specularColor = Color3.Black(); + this.mat.ambientColor = Color3.FromHexString("#3B3B3B"); + + + this.mat.disableLighting = false; + - this.mat.disableLighting = true; if (isNew) { instance.arrowData.pointData = []; diff --git a/src/app/babylon/model/info/model/model-info-facility.ts b/src/app/babylon/model/info/model/model-info-facility.ts index 6c41152..918d60b 100644 --- a/src/app/babylon/model/info/model/model-info-facility.ts +++ b/src/app/babylon/model/info/model/model-info-facility.ts @@ -221,7 +221,8 @@ export class ModelInfo_facility extends ModelInfo { playShowAnim(play: boolean) { this.showFollowUI(play); if (this.modelBox != null) { - if (play) { + let facilityType = (this.modelData as ModelData_facility).facilityType; + if (play && TsTool.stringContain(facilityType, "XF_")) { SceneManager.Instance.addToHighLight(this.modelBox as Mesh, ModelInfo_facility.c_hightLightColor); } else { diff --git a/src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item.ts b/src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item.ts index 60eaba4..73337ab 100644 --- a/src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item.ts +++ b/src/app/babylon/view/facilityinfoinscene-window/facilityinfo-ui-item.ts @@ -125,7 +125,14 @@ export class FacilityInfoUIItem { if (this.modelInfo.areaInfo != null) { //计算多边形size } - BabylonTool.changeCameraTarget(SceneManager.Instance.defaultCamera, this.modelInfo.modelBox, true, size); + + let aim = this.modelInfo.modelBox; + if (this.modelInfo.head != null) { + aim = this.modelInfo.head; + + } + + BabylonTool.changeCameraTarget(SceneManager.Instance.defaultCamera, aim, true, size); } diff --git a/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts b/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts index 44c0e4b..711a3e5 100644 --- a/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts +++ b/src/app/babylon/view/facilityinfoinscene-window/facilityinfoinscene-window.ts @@ -460,6 +460,12 @@ export class FacilityInfoInSceneWindow extends UIBase { case PointerEventTypes.POINTERPICK: // console.log(eventData.event); break; + case PointerEventTypes.POINTERDOUBLETAP://双击 + if (eventData.pickInfo.hit && !SceneManager.s_isPointerDrag) { + + instance.doubleClickModle(eventData.pickInfo); + } + break; } } @@ -467,7 +473,7 @@ export class FacilityInfoInSceneWindow extends UIBase { /** * 选中加油机时,高亮颜色 */ - static readonly c_selectJYJColor = Color3.Teal(); + static readonly c_selectJYJColor = Color3.Yellow(); /** * 当前选中的加油机 @@ -499,6 +505,7 @@ export class FacilityInfoInSceneWindow extends UIBase { if ((currentMoudle == null || currentMoudle == JYZInfoMoudleType.JYJ) && facilityInfosByType[i].type == FacilityType.JY_JYJ || (currentMoudle == null || currentMoudle == JYZInfoMoudleType.YG) && facilityInfosByType[i].type == FacilityType.JY_YG || (currentMoudle == null || currentMoudle == JYZInfoMoudleType.SYG) && facilityInfosByType[i].type == FacilityType.JY_SYGX + || (currentMoudle == null || currentMoudle == JYZInfoMoudleType.YQHSGX) && facilityInfosByType[i].type == FacilityType.JY_YQHSGX ) { allJYJInfo = allJYJInfo.concat(facilityInfosByType[i].facilityInfo); } @@ -543,8 +550,10 @@ export class FacilityInfoInSceneWindow extends UIBase { let facilityData = facilityInfo.modelData as ModelData_facility; if (facilityData.facilityType != FacilityType.JY_JYJ && facilityData.facilityType != FacilityType.JY_YG && - facilityData.facilityType != FacilityType.JY_SYGX) { - //只有加油机和油罐和输油管有高亮显示和取消 + facilityData.facilityType != FacilityType.JY_SYGX && + facilityData.facilityType != FacilityType.JY_YQHSGX + ) { + //只有加油机和油罐和输油管、油气回收有高亮显示和取消 return; } //} @@ -552,10 +561,12 @@ export class FacilityInfoInSceneWindow extends UIBase { if (play) { this.currentSelectJYJInfo = facilityInfo; - //正在展示加油机或油罐 + //正在展示加油机或油罐或输油管 if (BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.JYJ || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YG - || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG) { + || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG + || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YQHSGX + ) { SceneManager.Instance.removeFromHighLight(facilityInfo.modelBox as Mesh); } SceneManager.Instance.addToHighLight(facilityInfo.modelBox as Mesh, FacilityInfoInSceneWindow.c_selectJYJColor); @@ -564,11 +575,11 @@ export class FacilityInfoInSceneWindow extends UIBase { else { SceneManager.Instance.removeFromHighLight(facilityInfo.modelBox as Mesh); //正在展示加油机或油罐 - if (BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.JYJ - || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YG - || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG) { - SceneManager.Instance.addToHighLight(facilityInfo.modelBox as Mesh, ModelInfo_facility.c_hightLightColor); - } + // if (BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.JYJ + // || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.YG + // || BuildingWindow.instance.currentJYZInfoMoudleType == JYZInfoMoudleType.SYG) { + // SceneManager.Instance.addToHighLight(facilityInfo.modelBox as Mesh, ModelInfo_facility.c_hightLightColor); + // } } @@ -742,6 +753,40 @@ export class FacilityInfoInSceneWindow extends UIBase { } + /** + * 双击模型 + */ + doubleClickModle(pickInfo: PickingInfo) { + let facilityInfosByType = BuildingWindow.instance.currentBuidngItem.buildingInfo.ModelInfo.facilityInfos; + + let result: ModelInfo_facility = null; + for (let i = 0; i < facilityInfosByType.length; i++) { + for (let j = 0; j < facilityInfosByType[i].facilityInfo.length; j++) { + if (facilityInfosByType[i].facilityInfo[j]._modelBox == pickInfo.pickedMesh) { + result = facilityInfosByType[i].facilityInfo[j]; + break; + } + let children = facilityInfosByType[i].facilityInfo[j].models; + + for (let k = 0; k < children.length; k++) { + if (children[k] == pickInfo.pickedMesh) { + result = facilityInfosByType[i].facilityInfo[j]; + break; + } + } + } + + } + + console.log("双击", result); + + if (result != null) { + let facilityItem: FacilityInfoUIItem = FacilityInfoInSceneWindow.instance.getFacilityItem(result); + facilityItem.lookAt(); + } + + } + } /**