xzw 2 tahun lalu
induk
melakukan
8b40cb875f
2 mengubah file dengan 33 tambahan dan 20 penghapusan
  1. 32 19
      public/static/lib/potree/potree.js
  2. 1 1
      public/static/lib/potree/potree.js.map

+ 32 - 19
public/static/lib/potree/potree.js

@@ -90874,11 +90874,6 @@ void main()
 		}
 	};
 
-	let splitScreen = new SplitScreen();
-
-
-
-
 	const Colors = {
 	    black : '#161A1A',
 	    blue: '#00F',
@@ -91525,7 +91520,7 @@ void main()
 	        }) ];
 	        
 	        this.cube = new NavigationCube(this.scene,  w/2 );
-	        
+	        this.splitScreen = new SplitScreen();
 	         
 	        
 	        viewer.addEventListener('camera_changed', e => {
@@ -91669,7 +91664,7 @@ void main()
 	                navCubeViewer.controls.setEnable(false);
 	                 
 	                //假设保持到目前中心的视角范围不变
-	                splitScreen.setShiftTarget(viewer.mainViewport, viewer.bound.center);
+	                this.splitScreen.setShiftTarget(viewer.mainViewport, viewer.bound.center);
 	                let dis = new Vector3().subVectors(viewer.mainViewport.shiftTarget,  viewer.scene.cameraO.position).length() ;   //-nearestPano[0].score
 		                    
 	                //根据2d->3d的式子逆求zoom
@@ -91696,7 +91691,7 @@ void main()
 	                
 	                //假设保持到目前中心的视角范围不变
 	                
-	                splitScreen.setShiftTarget(viewer.mainViewport, viewer.bound.center);
+	                this.splitScreen.setShiftTarget(viewer.mainViewport, viewer.bound.center);
 	                viewer.mainViewport.targetPlane.setFromNormalAndCoplanarPoint( view.direction.clone(), viewer.bound.center );  
 	                viewer.mainViewport.targetPlane.projectPoint(view.position, viewer.mainViewport.shiftTarget );  
 	                 
@@ -91718,7 +91713,7 @@ void main()
 	        }
 	    } 
 	    rotateSideCamera(angle){
-	        splitScreen.rotateSideCamera(viewer.mainViewport,angle);
+	        this.splitScreen.rotateSideCamera(viewer.mainViewport,angle);
 	    }
 	    
 	}
@@ -105857,7 +105852,7 @@ ENDSEC
 	        }else {
 	            Potree.Utils.updateVisible(this, "measure", false); 
 	            viewer.addEventListener("measureMovePoint",()=>{//测量开始
-	                //Potree.Utils.updateVisible(this, "measure", true) 
+	                Potree.Utils.updateVisible(this, "measure", true); 
 	            });
 	            viewer.addEventListener("endMeasureMove",()=>{
 	                Potree.Utils.updateVisible(this, "measure", false); 
@@ -105885,18 +105880,28 @@ ENDSEC
 	        
 	        
 	        var playerCamera = viewer.scene.getActiveCamera();
+	        
+	        
+	        
 	        var playerPos = playerCamera.position;//viewer.scene.view.getPivot()
 	        var dis = playerPos.distanceTo(aimPos);
 	        var dirToCamera = new Vector3().subVectors(playerPos, aimPos ).normalize();
 	        
 	        const fareast = 300;  
 	        //相机位置
-	        var finalDisToAim =  dis>magDisMin ? dis > fareast ? magDisMax : (dis-magDisMin) / (fareast-magDisMin) * (magDisMax-magDisMin) + magDisMin :  dis / 2;    //dis>magDistance_ ? magDistance_ : dis / 2;
-	        
+	        if(playerCamera.type == 'OrthographicCamera'){
+	            
+	            var finalDisToAim = 2;
+	            
+	        }else { 
+	            
+	            var finalDisToAim =  dis>magDisMin ? dis > fareast ? magDisMax : (dis-magDisMin) / (fareast-magDisMin) * (magDisMax-magDisMin) + magDisMin :  dis / 2;    //dis>magDistance_ ? magDistance_ : dis / 2;
+	         
+	        }
 	        
 	        this.camera.position.copy(aimPos).add(dirToCamera.multiplyScalar(finalDisToAim));
 	        this.camera.lookAt(aimPos);
-	        this.camera.fov = playerCamera.fov / 2;
+	        this.camera.fov = playerCamera.type == 'OrthographicCamera' ? 30 : playerCamera.fov / 2;
 	        this.camera.updateProjectionMatrix();
 	        
 	        
@@ -105909,12 +105914,19 @@ ENDSEC
 	        let screenPos = pos2d.clone().setY(pos2d.y + (pos2d.y>maxY ? -margin : margin ));
 	        
 	        let newPos = new Vector3(screenPos.x,screenPos.y,0.8).unproject(playerCamera); //z:-1朝外       
-	        let dir = newPos.clone().sub(playerPos).normalize().multiplyScalar(10);//这个数值要大于playerCamera.near
-	        let s =  finalDisToAim;   // dis>magDisMin ? 1 : dis / magDisMin  ; 
-	        
-	        //let s = dis>magDisMin ? dis > fareast ? magDisMax : (dis-magDisMin) / (fareast-magDisMin) * (magDisMax-magDisMin) + magDisMin :  dis / magDisMin  
-	        
-	        this.position.copy(playerPos.clone().add(dir));
+	        if(playerCamera.type != 'OrthographicCamera'){
+	            let dir = newPos.clone().sub(playerPos).normalize().multiplyScalar(10);//这个数值要大于playerCamera.near
+	            
+	            this.position.copy(playerPos.clone().add(dir));
+	        }else {
+	            viewer.navCubeViewer.splitScreen.setShiftTarget(viewer.mainViewport, viewer.bound.center);
+	            viewer.mainViewport.targetPlane.setFromNormalAndCoplanarPoint( viewer.mainViewport.view.direction.clone(), viewer.bound.center );  
+	            viewer.mainViewport.targetPlane.projectPoint(newPos, viewer.mainViewport.shiftTarget );  
+	            this.position.copy(viewer.mainViewport.shiftTarget.clone() ); 
+	            
+	            //this.position.copy(playerPos.clone().add(dir))
+	        }
+	        let s = finalDisToAim;  
 	        this.quaternion.copy(playerCamera.quaternion); 
 	        this.targetPoint.position.copy(aimPos); 
 	        this.targetPoint.scale.set(s,s,s);
@@ -105931,6 +105943,7 @@ ENDSEC
 	        if(!dontRender){
 	            this.waitRender = true;
 	        }  
+	         
 	        viewer.dispatchEvent('content_changed');
 	    }
 	    

File diff ditekan karena terlalu besar
+ 1 - 1
public/static/lib/potree/potree.js.map