瀏覽代碼

fix: 开始写新的固定点带测量线

xzw 1 年之前
父節點
當前提交
089440540a
共有 2 個文件被更改,包括 22 次插入5 次删除
  1. 18 4
      src/custom/objects/tool/Measure.js
  2. 4 1
      src/custom/objects/tool/ctrlPolygon.js

+ 18 - 4
src/custom/objects/tool/Measure.js

@@ -107,12 +107,17 @@ export class Measure extends ctrlPolygon{
 		 
         //add:
         if(this.atPlane || this.faceDirection){ //是一个平面上的话
-            this.createGuideLine(); 
+            if(this.guideLinePoints){
+                this.createGuideLines()
+            }else{
+                this.createGuideLine(); 
+            } 
         }
         if(this.measureType == 'Distance' /* || this.measureType.includes('MulDistance') */){
             this.createHorVerGuideLine()
         }
         
+         
         
         this.selectStates = {}
         
@@ -787,11 +792,20 @@ export class Measure extends ctrlPolygon{
         
         //label:
         this.verEdgeLabel = this.createEdgeLabel('verGuideEdge')  
-        this.horEdgeLabel = this.createEdgeLabel('horGuideEdge') 
-
-        
+        this.horEdgeLabel = this.createEdgeLabel('horGuideEdge')  
     }
     
+    
+    createGuideLines(){//add 固定点垂线的辅助线  可以多段
+        var guideLine = LineDraw.createFatLine(this.guideLinePoints ,{material:this.getLineMat('guide')} )
+        this.guideLine = guideLine  //暂时也叫这个名字
+        this.add(guideLine);
+    }
+    updateGuideLines(){
+        this.guideLine.updateLine(this.guideLine, this.guideLinePoints)
+    }
+    
+    
     focus({dontMoveCamera=false}={}){ 
         if(this.clickSelected)return    
         if(Potree.settings.displayMode == 'showPanos')dontMoveCamera = true  //2023.10.24 新需求:点击后不移动,否则经常跳到别的点。且在app上会反应一秒才选中。

+ 4 - 1
src/custom/objects/tool/ctrlPolygon.js

@@ -115,6 +115,9 @@ export class ctrlPolygon extends THREE.Object3D {
             
             
             let addHoverEvent = (e)=>{
+                o.marker.removeEventListener('addHoverEvent',addHoverEvent) 
+                if(this.unableDrag)return
+                
                 let mouseover = (e) => { 
                     this.setMarkerSelected(e.object, 'hover', 'single'); 
                     viewer.dispatchEvent({
@@ -137,7 +140,7 @@ export class ctrlPolygon extends THREE.Object3D {
                     this.setMarkerSelected(o.marker, 'unhover', 'single'); 
                 });
                 
-                o.marker.removeEventListener('addHoverEvent',addHoverEvent) 
+                
             }
             o.marker.addEventListener('addHoverEvent',addHoverEvent)//当非isNew时才添加事件
             if(!this.isNew){