xzw 2 vuotta sitten
vanhempi
commit
9c8dca777c

+ 2 - 2
src/custom/objects/tool/MeasuringTool.js

@@ -561,14 +561,14 @@ export class MeasuringTool extends THREE.EventDispatcher{
 		let mouseover = (e) => { 
             measure.setMarkerSelected(e.object, 'hover', 'single'); 
               
-        };
+        }; 
         let mouseleave = (e) => { 
             measure.setMarkerSelected(e.object, 'unhover', 'single'); 
         }  
         let isMobile = browser.isMobile()  
                  
         let click = (e)=>{//一旦点击就立刻增加两marker  
-         
+          
             if(ifAtWrongPlace(e))return  
             if(e.clickElement || e.drag.object)return  //如点击label时focusOnObject, 或拖拽marker
               

+ 10 - 35
src/custom/viewer/viewerBase.js

@@ -93,20 +93,7 @@ export class ViewerBase extends THREE.EventDispatcher{
             gl.bindVertexArray = extVAO.bindVertexArrayOES.bind(extVAO);
         }
 
-                                                            
-                           
- 
-                                                
-                                      
-                               
-                                                                            
-                  
-       /*  let oldClear = gl.clear; 
-        gl.clear = (bits)=>{
-             console.error('clear')
-        }   
- */
-        
+             
     }
     
     
@@ -165,9 +152,11 @@ export class ViewerBase extends THREE.EventDispatcher{
                 if(height_ == 0)return  //avoid NAN
                 
                 let aspect = width_ / height_;  //camera的参数精确些,不用视口的归整的resolution像素值,否则hasChange无法为true, 导致canvasResize了但map没update从而闪烁
-                view.camera.aspect = aspect;
                 
-                if(view.camera.type == "OrthographicCamera"){
+                let camera = view.tranAimCamera || view.camera //当view.camera是viewer.scene.cameraBasic时使用tranAimCamera
+                camera.aspect = aspect;
+                
+                if(camera.type == "OrthographicCamera"){
                      
                     /* //不改宽度 同4dkk
                     var heightHalf = view.camera.right / aspect 
@@ -175,10 +164,10 @@ export class ViewerBase extends THREE.EventDispatcher{
                     view.camera.bottom = -heightHalf  */
                     //高宽都改 使大小不随视口大小改变  navvis (直接和视口大小一致即可,通过zoom来定大小)
                      
-                    view.camera.left = -width_/2 
-                    view.camera.right = width_/2
-                    view.camera.bottom = -height_/2;
-                    view.camera.top = height_/2
+                    camera.left = -width_/2 
+                    camera.right = width_/2
+                    camera.bottom = -height_/2;
+                    camera.top = height_/2
                     
                     
                 }else{   
@@ -186,7 +175,7 @@ export class ViewerBase extends THREE.EventDispatcher{
                 
                 }
                 
-                view.camera.updateProjectionMatrix();
+                camera.updateProjectionMatrix();
             })
         }
         
@@ -247,21 +236,7 @@ export class ViewerBase extends THREE.EventDispatcher{
         
        
         let {width, height} = size;
-        
-        
-        
-        
-        /* let oldBudget = Potree.pointBudget;
-        Potree.pointBudget = Math.max(10 * 1000 * 1000, 2 * oldBudget);
-        let result = Potree.updatePointClouds(this.scene.pointclouds, camera, size );
-        Potree.pointBudget = oldBudget;
          
-         
-		this.dispatchEvent({ //resize everything  such as lines  targets
-            type: 'resize', 
-            resolution: new THREE.Vector2(width,height), 
-        });*/
-       
 		let target = new THREE.WebGLRenderTarget(width, height, {
 			format: THREE.RGBAFormat,
 		});

+ 8 - 2
src/viewer/ExtendView.js

@@ -408,13 +408,18 @@ class ExtendView extends View {
     
     
     tranCamera(viewport,  info, duration,  easeName){
-        viewport.camera = info.midCamera
+        viewport.camera = info.midCamera 
+        viewport.tranAimCamera = info.endCamera
+        
         //viewport.camera.matrixWorld = info.endCamera.matrixWorld
         console.log('tranCamera')
          
         //viewer.setCameraMode(CameraMode.ORTHOGRAPHIC) 
         info.midCamera.projectionMatrix.copy(info.startCamera.projectionMatrix)
         
+        viewer.updateScreenSize({forceUpdateSize:true})  //更新endCamera的projection,因此前可能resize过
+        
+        
         let onUpdate = info.onUpdate
         info.onUpdate = (progress, delta)=>{ 
             lerp.matrix4(info.midCamera.projectionMatrix, info.endCamera.projectionMatrix)(progress) 
@@ -425,7 +430,8 @@ class ExtendView extends View {
         
         let callback = info.callback
         info.callback = info.cancelFun = ()=>{ 
-            viewport.camera = info.endCamera  
+            viewport.camera = info.endCamera 
+            viewport.tranAimCamera = null 
             viewer.scene.measurements.forEach((e)=>{ 
                 Potree.Utils.updateVisible(e, 'tranCamera', true) 
             })