xzw 2 سال پیش
والد
کامیت
d40dc34614
3فایلهای تغییر یافته به همراه36 افزوده شده و 19 حذف شده
  1. 33 16
      public/static/lib/potree/potree.js
  2. 1 1
      public/static/lib/potree/potree.js.map
  3. 2 2
      src/sdk/laser/core/enter.js

+ 33 - 16
public/static/lib/potree/potree.js

@@ -82494,13 +82494,12 @@ void main()
 	        
 	    }
 	    
-	    focus(){  
+	    focus({dontMoveCamera=false}={}){  
 	    
-	    
-	        let dontChangeCamDir = viewer.mainViewport.camera.type == 'OrthographicCamera'; /* && math.closeTo( viewer.mainViewport.view.pitch , -1.57079632)  */ // 不改角度
-	    
-	        viewer.focusOnObject(this, 'measure', null, {dontChangeCamDir});
-	        
+	        if(!dontMoveCamera){
+	            let dontChangeCamDir = viewer.mainViewport.camera.type == 'OrthographicCamera'; /* && math.closeTo( viewer.mainViewport.view.pitch , -1.57079632)  */ // 不改角度
+	            viewer.focusOnObject(this, 'measure', null, {dontChangeCamDir});
+	        }
 	        if(this.clickSelected)return
 	        this.setSelected(true, 'focus');
 	        this.dispatchEvent({type:'selected', state:true});
@@ -83730,10 +83729,14 @@ void main()
 	         
 	            if(ifAtWrongPlace(e))return  
 	            if(e.clickElement || e.drag.object)return  //如点击label时focusOnObject, 或拖拽marker
-	             
-	            
+	              
 	            if(e.button === MOUSE.RIGHT )return  
 	            
+	            
+	            if(e.type == 'global_touchstart' && e.hoveredElement && e.hoveredElement.object.parent instanceof Measure$1 ){
+	                return //点到测量线时要focus测量线而不是画新线
+	            }
+	            
 	            if(isMobile){
 	                viewer.controls.setEnable(false);
 	            }
@@ -91857,10 +91860,11 @@ void main()
 	            
 	            
 	            viewer.images360.addEventListener('beginChangeMode',(e)=>{
-	                if(e.mode == 'showPanos')this.switchView('perspective',{}, ()=>{
+	                if(e.mode == 'showPanos'){ 
+	                    this.switchView('perspective',{}, ()=>{
 	                      Potree.settings.displayMode = viewer.images360.latestRequestMode;
-	                });
-	                
+	                    });
+	                }
 	            }); 
 	            
 	            
@@ -91920,6 +91924,7 @@ void main()
 	    switchView(type, {yaw, pitch, dir}={}, done){
 	        if(viewer.mainViewport.view.isFlying())return
 	        let view = viewer.mainViewport.view;
+	        let oldlastView = this.lastView; 
 	        this.lastView = view.clone();
 	        if(viewer.mainViewport.camera.type == 'OrthographicCamera'){
 	            this.lastView.isOrtho = true;
@@ -91962,6 +91967,12 @@ void main()
 	        }else {
 	            
 	            if(viewer.mainViewport.camera == viewer.scene.cameraO){
+	                 
+	                return this.switchView2(oldlastView, done)
+	                
+	                
+	                
+	                
 	                //viewer.scene.cameraP.position.copy(viewer.mainViewport.camera.position)
 	                //viewer.scene.cameraP.quaternion.copy(viewer.mainViewport.camera.quaternion)
 	                viewer.mainViewport.camera = viewer.scene.cameraP;
@@ -91978,6 +91989,11 @@ void main()
 	                
 	                let position = new Vector3().copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis)); 
 	                //view.position.copy(viewer.mainViewport.shiftTarget).sub(view.direction.clone().multiplyScalar(dis)); 
+	                
+	                 
+	                
+	                 
+	                 
 	                this.controls.setEnable(true);
 	                //viewer.dispatchEvent('leaveTopView')
 	                console.log('变回透视');
@@ -91998,7 +92014,7 @@ void main()
 	    
 	    
 	    
-	    switchView2(viewInfo){ //直接输入view改变
+	    switchView2(viewInfo, done){ //直接输入view改变
 	        
 	        let view = viewer.mainViewport.view;
 	        let startCamera, endCamera; 
@@ -92014,9 +92030,9 @@ void main()
 	                view.moveOrthoCamera(viewer.mainViewport,  {endPosition:viewInfo.position,
 	                    endPitch: viewInfo.pitch, endYaw: viewInfo.yaw ,  zoom: viewInfo.zoom, 
 	                    callback:()=>{ 
-	                        
+	                        done && done();
 	                    }, 
-	                }, 500);
+	                }, 800);
 	            }
 	        }else {
 	            if(viewer.mainViewport.camera == viewer.scene.cameraO){
@@ -92030,7 +92046,7 @@ void main()
 	                    callback:()=>{ 
 	                       
 	                    }, 
-	                }, 500);
+	                }, 800);
 	            }
 	            
 	        }
@@ -92051,8 +92067,9 @@ void main()
 	                    }else {
 	                        viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
 	                    }
+	                    done && done();
 	                }, 
-	            }, 500);
+	            }, 800);
 	        } 
 	        
 	    }

تفاوت فایلی نمایش داده نمی شود زیرا این فایل بسیار بزرگ است
+ 1 - 1
public/static/lib/potree/potree.js.map


+ 2 - 2
src/sdk/laser/core/enter.js

@@ -356,10 +356,10 @@ var enter = ({
             /* highlight: (isHight) => {
                 measure.setSelected(isHight, "byList");
             }, */
-            selected: (state) => {
+            selected: (state, dontMoveCamera ) => {
                 //measure.setSelected(state, "byList");
                 if(state){
-                    measure.focus()
+                    measure.focus({dontMoveCamera})
                 }else{
                     measure.dispatchEvent('cancelSelect')
                 }