xzw 1 year ago
parent
commit
1166c4cd5c

+ 1 - 1
src/custom/modules/panos/DepthImageSampler.js

@@ -30,7 +30,7 @@ class DepthImageSampler extends THREE.EventDispatcher{
     }
     
     changeImg(img, pano){
-        console.warn('changeImg', pano.id)
+        //console.warn('changeImg', pano.id)
         this.pano = pano
         let item = this.imgDatas.find(p=>p.pano == pano) 
         if(/* this.img == img ||  */item){

+ 13 - 10
src/custom/objects/tool/Measure.js

@@ -621,7 +621,10 @@ export class Measure extends ctrlPolygon{
         if(absoluteState){
             this.markers.forEach(e=>this.setMarkerSelected(e, 'hover', 'selectAll' ) )
             
-            this.edges.forEach(e=>e.material = this.getLineMat('edgeSelect')   )
+            this.edges.forEach(e=>{
+                e.renderOrder = Potree.config.renderOrders.lines + 1
+                e.material = this.getLineMat('edgeSelect')   
+            })
 			 
 			this.areaPlane && (this.areaPlane.material = planeMats.selected)
              
@@ -635,7 +638,10 @@ export class Measure extends ctrlPolygon{
               
         }else{
             this.markers.forEach(e=>this.setMarkerSelected(e, 'unhover', 'selectAll' ))
-            this.edges.forEach(e=>e.material = this.getLineMat('edgeDefault')  )
+            this.edges.forEach(e=>{
+                e.renderOrder = Potree.config.renderOrders.lines 
+                e.material = this.getLineMat('edgeDefault') 
+            })
             this.areaPlane && (this.areaPlane.material = planeMats.default)
             this.setEdgesDisplay(false, hoverObject=="screenshot")
             //this.areaLabel && this.areaLabel.elem.removeClass('highLight')
@@ -846,7 +852,7 @@ export class Measure extends ctrlPolygon{
     }
     
     
-    focus({dontMoveCamera=false}={}){ 
+    focus({dontMoveCamera=false, dontEmit}={}){ 
         
         if(Potree.settings.displayMode == 'showPanos')dontMoveCamera = true  //2023.10.24 新需求:点击后不移动,否则经常跳到别的点。且在app上会反应一秒才选中。
         if(!dontMoveCamera){
@@ -855,7 +861,7 @@ export class Measure extends ctrlPolygon{
         }
         if(this.clickSelected)return    
         this.setSelected(true, 'focus')
-        this.dispatchEvent({type:'selected', state:true})
+        dontEmit || this.dispatchEvent({type:'selected', state:true})
         this.clickSelected = true
         if(this.measureType == 'MulDistance_shape'){
             this.markers.forEach(e=>e.visible = true)
@@ -868,15 +874,12 @@ export class Measure extends ctrlPolygon{
             if(this.measureType == 'MulDistance_shape'){
                 this.markers.forEach(e=>e.visible = false)
             }
-            this.removeEventListener('cancelSelect', cancelSelect)
-            viewer.removeEventListener('global_click', cancelSelect) 
+            this.removeEventListener('cancelSelect', cancelSelect) 
             this.setSelected(false, 'focus') 
-            this.dispatchEvent({type:'selected', state:false})
-            return {stopContinue:true}//不要flytopano
+            dontEmit || this.dispatchEvent({type:'selected', state:false}) 
         }
         setTimeout(()=>{
-            this.addEventListener('cancelSelect', cancelSelect)
-            viewer.addEventListener('global_click', cancelSelect,{importance:10}) 
+            this.addEventListener('cancelSelect', cancelSelect) 
         },10)
     }
      

+ 10 - 1
src/custom/objects/tool/MeasuringTool.js

@@ -168,7 +168,16 @@ export class MeasuringTool extends THREE.EventDispatcher{
         
         viewer.addEventListener('resize',this.setSize.bind(this))
         
-        
+        viewer.addEventListener('global_click', ()=>{
+            let m = viewer.scene.measurements.filter(e=>e.clickSelected)
+            if(m.length){
+                m.forEach(e=>{
+                    e.dispatchEvent('cancelSelect')
+                }) 
+                return {stopContinue:true}//不要flytopano  
+            }  
+        },{importance:10}) 
+
         
         
         if( Potree.settings.adsorption ){

+ 5 - 1
src/viewer/NavigationCube.js

@@ -537,6 +537,7 @@ class NavigationCube{
     }
      
     buildFaces() {
+         
         const directions = {
             Top : {dir: new THREE.Vector3(0,0,-1)},
             Bottom : {dir: new THREE.Vector3(0,0,1)},
@@ -565,7 +566,10 @@ class NavigationCube{
                 this.scene.add(faceMesh) 
                 this.scene.add(face.getWireframe()) //每个面是八边形
                 /* this.scene.add(face.getHighlightMesh())  */
-                //6 == ++texturesLoaded && a.callback && a.callback()
+                
+                if(6 == ++texturesLoaded){
+                    navCubeViewer.needRender = true
+                }
                 
                 //不过平板无hover事件
                 faceMesh.addEventListener('mouseover', (e)=>{