Bläddra i källkod

Merge remote-tracking branch 'origin/master'

bill 2 år sedan
förälder
incheckning
a20773ee5a

+ 36 - 34
public/static/lib/potree/potree.js

@@ -71166,7 +71166,7 @@ void main()
 	                        }
 	                    }else {
 	                        let dis = r2.pos.distanceTo(r1.pos);
-	                        if(dis == 0){
+	                        if(math.closeTo(dis,0)){
 	                            //console.log('dis == 0') 
 	                            Potree.Utils.updateVisible(this, 'unableCompute', false);
 	                            return
@@ -81261,7 +81261,7 @@ void main()
 	        }
 	        let location = intersectPos.clone();
 	        
-	       
+	        //console.log('dragMarker', oldPoint, intersectPos) 
 	        
 	        
 	        if(this.faceDirection && this.maxMarkers == 2 && len == 2){//add 固定方向的点不直接拖拽
@@ -81477,9 +81477,12 @@ void main()
 	                viewer.dispatchEvent({type:'reticule_forbit', v:false});
 	                //console.log('reticule_forbit',false)
 	            }
-	            this.dragMarker(e); //触屏时必须先更新下点 
+	            this.isNew && this.dragMarker(e); //isNew触屏点击时必须先更新下点,因为指尖不在屏幕上时没更新。但对已经创建的marker点击时不应该更新
 	            
-	        }
+	        } 
+	        
+	        
+	        viewer.dispatchEvent({type:'dropMarker', object:this});
 	         
 	        if (e.button != MOUSE.RIGHT && (//右键click的话继续执行,因为会停止
 	                this.isIntersectSelf == 'all' && this.isNew //有线相交了
@@ -81491,8 +81494,7 @@ void main()
 	        ){
 	            return this.continueDrag(null,e)    
 	        } 
-	         
-	        //console.log('drop marker' )
+	          
 	         
 	        let i = this.markers.indexOf(e.drag.object); 
 	        if (i !== -1) {
@@ -81516,7 +81518,7 @@ void main()
 	        e.drag.endDragFun && e.drag.endDragFun(e);//  addmarker
 	         
 	        //if(this.changeCallBack)this.changeCallBack()
-	        viewer.dispatchEvent({type:'dropMarker', object:this});
+	        
 	        return true
 	    };
 	    
@@ -89324,11 +89326,11 @@ void main()
 	      
 	        
 	        //if(isTouch || !Potree.settings.intersectWhenHover ){ 
-	        if(!this.dragViewport.view.isFlying()){ 
+	        if(isTouch || !this.dragViewport.view.isFlying()){ 
 	            this.hoveredElements = this.getHoveredElements(); 
 	            this.intersect = this.getIntersect(viewport); //更新intersect,避免在没有mousemove但flyToPano后intersect未更新。
 	            //this.intersect = this.getWholeIntersect()  
-	        }
+	        } //isTouch必须更新 否则是旧的
 	        if(!viewport)return //why add this?
 	        if (!this.drag) {
 	            let target = (isTouch||e.button == MOUSE.LEFT) && this.hoveredElements.find(el => (//只有左键能拖拽
@@ -90322,10 +90324,7 @@ void main()
 	            return order2-order1
 	        }); // 降序
 	        
-	        /* if(intersections.length == 0){
-	            console.log('no')
-	        } */
-	        //console.log('getHoveredElement ', intersections)
+	       
 			return intersections;
 		}
 
@@ -91656,6 +91655,7 @@ void main()
 	                     
 	                    navCubeViewer.switchView('ortho', dir, ()=>{ 
 	                        faceMesh.material.uniforms.faceColor.value.set(Colors.black);
+	                        viewer.dispatchEvent({type:'viewChanged', name });
 	                    }); 
 	                    faceMesh.material.uniforms.faceColor.value.set(Colors.blue); 
 	                }); 
@@ -91789,7 +91789,9 @@ void main()
 	            this.addEventListener('enterTopView',()=>{  
 	                let baseLine = viewer.scene.measurements.find(e=>e.isBaseLine && e.points.length == 2);  //使基准线在俯视图中水平
 	                let yaw = baseLine ? new Vector2().subVectors(baseLine.points[0], baseLine.points[1]).angle() : 0; 
-	                this.switchView('ortho', {dir: new Vector3(0,0,-1),yaw,pitch: -1.5707963267948966}); 
+	                this.switchView('ortho', {dir: new Vector3(0,0,-1),yaw,pitch: -1.5707963267948966}, ()=>{
+	                    viewer.dispatchEvent({type:'viewChanged', name:'Top' });
+	                }); 
 	            }); 
 	            this.addEventListener('leaveTopView',()=>{ 
 	                if(this.lastView){
@@ -91872,7 +91874,7 @@ void main()
 	            viewer.focusOnObject(viewer.bound, 'boundingBox', 1000, {
 	                endPitch: pitch, endYaw: yaw , dir,  startCamera, endCamera
 	            }).promise.done(()=>{  
-	                //viewer.dispatchEvent('reachTopView')
+	                
 	                 
 	                done && done();
 	                navCubeViewer.dispatchEvent('content_changed');
@@ -91903,7 +91905,7 @@ void main()
 	                view.tranCamera(viewer.mainViewport,  { position ,   
 	                    callback:()=>{ 
 	                        done && done();
-	                         
+	                        viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
 	                    }, startCamera:viewer.scene.cameraO, endCamera:viewer.scene.cameraP, midCamera:viewer.scene.cameraBasic
 	                }, 500);
 	                 
@@ -91966,6 +91968,9 @@ void main()
 	                callback:()=>{ 
 	                    if(endCamera != viewer.scene.cameraO){
 	                        this.controls.setEnable(true);
+	                        viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
+	                    }else {
+	                        viewer.dispatchEvent({type:'viewChanged', name:'perspective' });
 	                    }
 	                }, 
 	            }, 500);
@@ -106096,29 +106101,17 @@ ENDSEC
 	            this.dontRender = false;
 	        });
 	        
-	        var updateVisi = (e)=>{
-	            //if(e.hoverViewport == viewer.mainViewport){
-	                Potree.Utils.updateVisible(this,"atViewport", true);
-	                this.update(e.intersect && e.intersect.location);
-	            /* }else{
-	                Potree.Utils.updateVisible(this,"atViewport", false) //小地图不显示
-	            } */ 
-	            
+	        var updateVisi = (e)=>{ 
+	            this.update(e.intersect && e.intersect.location); 
 	        };
 	        
 	        //viewer.addEventListener('global_mousemove', updateVisi)
 	        viewer.addEventListener('global_touchstart', updateVisi); 
 	        viewer.addEventListener('getIntersect', updateVisi);
 	        
-	        
-	     
 	         
 	        this.addEventListener("setEnable",(e)=>{
-	            Potree.Utils.updateVisible(this, "enable", e.value, 1,   e.value?'add':'cancel' ); //界面开关
-	            /* if(Potree.settings.displayMode == 'showPanos') && e.value){
-	                Potree.settings.pointDensity = 'magnifier'
-	            }else if() */
-	            
+	            Potree.Utils.updateVisible(this, "enable", e.value, 1,   e.value?'add':'cancel' ); //界面开关 
 	        });
 	          
 	        //默认隐藏, 显示的条件:测量拖拽  或  外部消息setEnable
@@ -106133,6 +106126,15 @@ ENDSEC
 	        }); 
 	         
 	        
+	        this.addEventListener('isVisible',(e)=>{
+	            //console.warn('isVisible',e)
+	            if(e.visible && viewer.inputHandler.intersect){
+	                this.update(viewer.inputHandler.intersect.location); 
+	            }
+	        });
+	        
+	        
+	        
 	        viewer.scene.view.addEventListener('flyingDone',()=>{
 	            if(!this.visible)return
 	            let pickWindowSize = 100;
@@ -106368,9 +106370,9 @@ ENDSEC
 	        viewer.addEventListener('endTagMove',endCrossStyle);
 	        
 	        viewer.addEventListener('reticule_forbit',(e)=>{
-	            if(this.state.forbit != e.v){
-	                console.log('change forbit ',e.v);
-	            }
+	            /* if(this.state.forbit != e.v){
+	                console.log('change forbit ',e.v)
+	            } */
 	            this.state.forbit = e.v;
 	            this.judgeTex(); 
 	        });

Filskillnaden har hållts tillbaka eftersom den är för stor
+ 1 - 1
public/static/lib/potree/potree.js.map


+ 4 - 5
src/sdk/laser/core/enter.js

@@ -100,12 +100,11 @@ var enter = ({
         });
     });
 
-    /* viewer.addEventListener("reachTopView", (e) => {
-         sceneBus.emit("enterTopView")
+      
+    viewer.addEventListener("viewChanged", (e) => { 
+         sceneBus.emit("viewChange", e.name) 
     });
-    viewer.addEventListener("leaveTopView", (e) => {
-         sceneBus.emit("leaveTopView")
-    }); */
+
 
     let cameraChange = (e) => {
         var camera = e.viewport.camera;