浏览代码

Merge branch 'master' of http://192.168.0.115:3000/bill/fuse-code

bill 3 年之前
父节点
当前提交
509538c1ea
共有 3 个文件被更改,包括 78 次插入52 次删除
  1. 57 23
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 20 28
      src/sdk/cover/index.js

+ 57 - 23
public/lib/potree/potree.js

@@ -84034,7 +84034,7 @@ void main() {
                                 return PanoEditor.rotateSideCamera(-e.drag.pointerDelta.x)
                             }
                         }else if(Potree.settings.editType == 'merge'){ 
-                            if(e.buttons === Buttons.LEFT && viewport.alignment && viewport.rotateSide){ 
+                            if(e.buttons === Buttons.LEFT && viewport.rotateSide){ 
                                 return MergeEditor.rotateSideCamera(-e.drag.pointerDelta.x)
                             }  
                         
@@ -85619,7 +85619,7 @@ void main() {
             
                 let dontIntersect =  this.drag && viewport.alignment/*  && Potree.settings.editType == 'pano'  */|| isFlying;/* viewer.images360.flying */ // flying 时可能卡顿
                 //console.log('dontIntersectPointcloud',dontIntersectPointcloud)
-                intersect = this.getIntersect(viewport,  e.onlyGetIntersect, e.pickWindowSize, dontIntersect, e.whichPointcloud); //数据集多的时候卡顿
+                intersect = this.getIntersect(viewport,  e.onlyGetIntersect, e.pickWindowSize, !!dontIntersect, e.whichPointcloud); //数据集多的时候卡顿
                 //console.log('intersectPoint', intersectPoint)
             } 
             
@@ -112986,7 +112986,7 @@ ENDSEC
             // cursor:
             
             let updateCursor = (e)=>{ 
-                if(e.drag)return  //仅在鼠标不按下时更新:
+                if(e.drag || !this.editing)return  //仅在鼠标不按下时更新:
                 
                 let handleState = Alignment.handleState;
                 
@@ -113023,10 +113023,10 @@ ENDSEC
                 }                
             };
             
-            if(Potree.settings.editType != 'pano'){
-                viewer.addEventListener('global_mousemove',updateCursor);  
-                viewer.addEventListener('global_drop',updateCursor);//拖拽结束  
-            }
+             
+            viewer.addEventListener('global_mousemove',updateCursor);  
+            viewer.addEventListener('global_drop',updateCursor);//拖拽结束  
+           
                 
             
             
@@ -113149,7 +113149,12 @@ ENDSEC
             this.editing = false;
             this.history.clear(); 
             viewer.updateFpVisiDatasets();
-            
+            viewer.dispatchEvent({
+                type : "CursorChange", action : "remove",  name:"movePointcloud" 
+            });
+            viewer.dispatchEvent({
+                type : "CursorChange", action : "remove",  name:"rotatePointcloud" 
+            });
         } 
         
         ,
@@ -117421,15 +117426,20 @@ ENDSEC
             });
             
             
-            {
+            {//校准页面拖拽
                 
                 let dragInfo;  
-                let drag = (e)=>{
-                    if(this.split && e.dragViewport.name == 'top' && this.selected){
-                        if(this.transformState && e.intersect && e.intersect.object == this.selected ){
+                let drag = (e)=>{ 
+                    if(this.split && e.dragViewport.name == 'top' && this.selected && this.transformState ){ 
+                        if(e.type == 'global_mousedown' ){ //开始
+                            if((e.intersect.object || e.intersect.pointcloud) == this.selected){
+                                dragInfo = {};  
+                            }  
+                        }
+                             
+                        if(e.type == 'global_drag' && dragInfo  ){ 
+                            if(this.transformState == 'translate'){ 
                             
-                            if(this.transformState == 'translate'){
-                                
                                 let moveVec = Potree.Utils.getOrthoCameraMoveVec(e.drag.pointerDelta, e.dragViewport.camera );//最近一次移动向量
                                 this.selected.position.add(moveVec);
                                 
@@ -117437,14 +117447,10 @@ ENDSEC
                             }else if(this.transformState == 'rotate'){
                                 
                                 let vec = new Vector3().subVectors(e.intersect.orthoIntersect || e.intersect.location, this.selected.boundCenter).setZ(0);
-                                 
-                                if(dragInfo == void 0){
-                                    dragInfo = {
-                                        lastVec: vec
-                                    };
+                                if(dragInfo.lastVec == void 0){//global_mousedown
+                                    dragInfo.lastVec = vec; 
                                     return
                                 }
-                                
                                 let angle = math.getAngle(dragInfo.lastVec, vec, 'z');   
                                 dragInfo.lastVec = vec;
                                 
@@ -117460,16 +117466,43 @@ ENDSEC
                 
                 viewer.addEventListener('global_mousedown',  drag); 
                 viewer.addEventListener('global_drag', drag, 10);
+                viewer.addEventListener('global_mousemove', (e)=>{
+                    if(this.split && e.hoverViewport.name == 'top' && this.transformState && !e.drag ){
+                        let mouseover = (e.intersect.object || e.intersect.pointcloud) == this.selected;
+                        if(mouseover){
+                            if(this.transformState == 'translate'){
+                                viewer.dispatchEvent({
+                                    type : "CursorChange", action : "add",  name:"movePointcloud" 
+                                }); 
+                            }else {
+                                viewer.dispatchEvent({
+                                    type : "CursorChange", action : "add",  name:"rotatePointcloud" 
+                                }); 
+                            }
+                        }else {
+                            this.clearTranCursor();
+                        } 
+                    }  
+                });
                 
                 viewer.addEventListener('global_drop', (e)=>{
-                     dragInfo = null;
-                
+                    dragInfo = null;
+                    this.clearTranCursor();
                 });
             
             }
         },
         
         
+        clearTranCursor(){
+            viewer.dispatchEvent({
+                type : "CursorChange", action : "remove",  name:"movePointcloud" 
+            });
+            viewer.dispatchEvent({
+                type : "CursorChange", action : "remove",  name:"rotatePointcloud" 
+            });
+        },
+        
         enterSplit(){ 
             this.split = true;
             if(this.selected) this.SplitScreen.focusCenter = this.selected.boundCenter; //旋转中心。注意 boundCenter不能直接赋值,否则改变后focusCenter也要改
@@ -117493,7 +117526,8 @@ ENDSEC
         },
         
         setTransformState(state){//校准时
-            this.transformState = state;   
+            this.transformState = state;  
+            this.clearTranCursor();       
         },
         //---------------------------
         

文件差异内容过多而无法显示
+ 1 - 1
public/lib/potree/potree.js.map


+ 20 - 28
src/sdk/cover/index.js

@@ -526,26 +526,30 @@ export const enter = (dom, isLocal) => {
                 
                 enterRotateMode(){
                     if(model){
-                        MergeEditor.transformControls.attach(model)
-                        MergeEditor.transformControls.mode = 'rotate'
-                        /* viewer.transformObject(model);
-                        viewer.transformationTool.setModeEnable('rotation',true)
-                        viewer.transformationTool.setModeEnable('translation',false) */
+                        if(MergeEditor.split){//分屏校准
+                            MergeEditor.setTransformState('rotate')
+                        }else{
+                            MergeEditor.transformControls.attach(model)
+                            MergeEditor.transformControls.mode = 'rotate'
+                        } 
                     }
                 }, 
                 enterMoveMode(){
-                    if(model){
-                        
-                        MergeEditor.transformControls.attach(model)
-                        MergeEditor.transformControls.mode = 'translate'
-                        /* viewer.transformObject(model);
-                        viewer.transformationTool.setModeEnable('rotation',false)
-                        viewer.transformationTool.setModeEnable('translation',true) */
+                    if(model){ 
+                        if(MergeEditor.split){//分屏校准
+                            MergeEditor.setTransformState('translate')
+                        }else{
+                            MergeEditor.transformControls.attach(model)
+                            MergeEditor.transformControls.mode = 'translate'
+                        } 
                     }
                 },
                 leaveTransform(){ 
-                    //viewer.transformObject(null); 
-                    MergeEditor.transformControls.detach()
+                    if(MergeEditor.split){//分屏校准
+                        MergeEditor.setTransformState(null)
+                    }else{ 
+                        MergeEditor.transformControls.detach()
+                    }
                 },
                 
                 enterAlignment(){//开始校准
@@ -554,20 +558,8 @@ export const enter = (dom, isLocal) => {
                     
                     let bus = new mitt()
                     
-                    return {
-                        /* setHeight(height){
-                            result.changeBottom(height)
-                        }, */
-                        bus,
-                        enterRotateMode(){
-                            MergeEditor.setTransformState('rotate')
-                        },
-                        enterMoveMode(){
-                            MergeEditor.setTransformState('translate')
-                        },
-                        leaveTransform(){
-                            MergeEditor.setTransformState(null)
-                        }  
+                    return { 
+                        bus  
                     } 
                 },
                 leaveAlignment(){