diff --git a/src/components/content/tunnelScene/sceneClass/demo.js b/src/components/content/tunnelScene/sceneClass/demo.js index 6375bdf..571de53 100644 --- a/src/components/content/tunnelScene/sceneClass/demo.js +++ b/src/components/content/tunnelScene/sceneClass/demo.js @@ -259,7 +259,9 @@ export default class Demo { const raycaster = new this.THREE.Raycaster(); raycaster.setFromCamera(mouse, this.camera); const intersects = raycaster.intersectObjects(hoverModels); + if (intersects.length > 0) { + if(Object.keys(intersects[0].object).includes('enableHover') && !intersects[0].object.enableHover)return; if (!this.preHover) { this.preHover = intersects[0].object; } else { diff --git a/src/components/content/tunnelScene/sceneClass/editEquipment/index.js b/src/components/content/tunnelScene/sceneClass/editEquipment/index.js index ef55395..a969b50 100644 --- a/src/components/content/tunnelScene/sceneClass/editEquipment/index.js +++ b/src/components/content/tunnelScene/sceneClass/editEquipment/index.js @@ -364,6 +364,16 @@ function changeFanColor(fanData, targetPoint, scene) { } export function clearTunnelEquipments() { + if (this.group) this.scene.remove(this.group); + if (this.scene.getObjectByName("boxHelper")) { + const preModel = this.scene.getObjectByName("boxHelper"); + this.scene.remove(preModel); + } + this.scene.traverse(function (point) { + if (/^point/.test(point.name)) { + point.hasDevice = false; + } + }); this.deviceModels.forEach((deviceModel) => { this.scene.remove(this.scene.getObjectById(deviceModel.objId)); }); diff --git a/src/components/content/tunnelScene/sceneClass/editTunnelInit/index.js b/src/components/content/tunnelScene/sceneClass/editTunnelInit/index.js index dc48440..7df7d7d 100644 --- a/src/components/content/tunnelScene/sceneClass/editTunnelInit/index.js +++ b/src/components/content/tunnelScene/sceneClass/editTunnelInit/index.js @@ -1,10 +1,16 @@ export function editTunnelInit(equipmentList) { // 清空设备 - this.clearTunnelEquipments() + this.clearTunnelEquipments(); //初始化将墙壁隐藏起来 equipmentList.forEach((item) => { // 根据定位获取附着点信息 const target = this.scene.getObjectByName(item.position); this.addEquipment(target, item, 1); }); + this.scene.traverse(function (point) { + if (/^point/.test(point.name)) { + point.enableHover = + equipmentList.findIndex((item) => item.position === point.name) >= 0; + } + }); } diff --git a/src/components/content/tunnelScene/sceneClass/handleRLclick/handleLhover.js b/src/components/content/tunnelScene/sceneClass/handleRLclick/handleLhover.js index 7d39f34..e0b34a9 100644 --- a/src/components/content/tunnelScene/sceneClass/handleRLclick/handleLhover.js +++ b/src/components/content/tunnelScene/sceneClass/handleRLclick/handleLhover.js @@ -1,4 +1,5 @@ export function handleLHover(targetPoint) { + // if(Object.keys(targetPoint).includes('enableHover') && !targetPoint.enableHover)return; if (this.tag3CSS2DObj.element.style.opacity != '1') { // 保存进入状态 this._saveState(); diff --git a/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js b/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js index 4664584..d9d4cbf 100644 --- a/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js +++ b/src/components/content/tunnelScene/sceneClass/previewTunnelInit/index.js @@ -11,7 +11,6 @@ export default function previewtunnelModeInit(equipmentList, fanData) { // } // } // console.log(equipmentList); - equipmentList.forEach((item) => { this.addEquipment(this.scene.getObjectByName(item.position), item, fanData); });