xzw 1 月之前
父节点
当前提交
10602b5372
共有 2 个文件被更改,包括 78 次插入20 次删除
  1. 8 20
      src/custom/objects/tool/ctrlPolygon.js
  2. 70 0
      src/custom/start.js

+ 8 - 20
src/custom/objects/tool/ctrlPolygon.js

@@ -27,7 +27,6 @@ export class ctrlPolygon extends THREE.Object3D {
             this[i] = prop[i]
         }
         this.color = this.color || config.measure.default.color
-         
         
         if((this.atPlane || this.showArea ) && this.closed && this.dimension == '2d'){
             this.areaPlane = this.createAreaPlane(); 
@@ -41,7 +40,7 @@ export class ctrlPolygon extends THREE.Object3D {
 		this.edges = [];
         
         this.center
-        this.setEditEnable(true)
+        
         
         
         
@@ -110,16 +109,7 @@ export class ctrlPolygon extends THREE.Object3D {
     }
     
     
-    setEditEnable(state){
-        this.editEnable = state
-        if(state){
-            this.markers.forEach(m=>m.dispatchEvent('addHoverEvent') )
-        }else{
-            this.markers.forEach(m=>m.removeEventListeners())
-        }
-
-
-    }
+    
     
     
     addMarker(o={}){
@@ -149,9 +139,7 @@ export class ctrlPolygon extends THREE.Object3D {
             o.marker.createTime = Date.now()
             
             let addHoverEvent = (e)=>{
-                if(o.marker._listeners?.startDragging || !this.editEnable)return //already has
-                
-                let mouseover = (e) => {  
+                let mouseover = (e) => { 
                     this.setMarkerSelected(e.object, 'hover', 'single'); 
                     viewer.dispatchEvent({
                         type : "CursorChange", action : "add",  name:"markerMove"
@@ -195,7 +183,7 @@ export class ctrlPolygon extends THREE.Object3D {
     
      
     dragMarker(e){
-        if(!this.editEnable)return
+        
         var I, atMap 
         
         if(e.hoverViewport != e.drag.dragViewport){//不能使用e.dragViewport,要使用drag中的,因为drag中存储的要一直继承下来,不因mouseup了而改变。
@@ -568,11 +556,11 @@ export class ctrlPolygon extends THREE.Object3D {
     
     }
     
-    getPoint2dInfo(points=this.points){ //在更新areaplane之前必须更新过point2dInfo (针对所有点在同一平面上的)
+    getPoint2dInfo(points){ //在更新areaplane之前必须更新过point2dInfo (针对所有点在同一平面上的)
         if(this.facePlane && (this.atPlane || Potree.settings.areaAtNotPlane)){
  
             let facePlane = this.getFacePlane()  
-            if(!facePlane)return this.point2dInfo = null
+            
             var originPoint0 = points[0].clone() 
             var qua = math.getQuaBetween2Vector(facePlane.normal, new THREE.Vector3(0,0,1), new THREE.Vector3(0,0,1));
             let points2d = points.map(e=>e.clone().applyQuaternion(qua))  
@@ -654,8 +642,8 @@ export class ctrlPolygon extends THREE.Object3D {
             this.remove(edge);
             this.edges.splice(edgeIndex, 1);
             edge.geometry.dispose()
-        } 
-        index == 0 ? this.getPoint2dInfo() : this.point2dInfo?.points2d.splice(index, 1); //add
+        }
+        this.point2dInfo && this.point2dInfo.points2d.splice(index, 1); //add
 
         this.dispatchEvent({type:'removeMarker',index,marker})
 		

+ 70 - 0
src/custom/start.js

@@ -277,7 +277,73 @@ export function start(dom, mapDom, number, options ){ //t-Zvd3w0m
             
             })
             
+            
+            
+            
+            
+            
             viewer.dispatchEvent('allLoaded')
+            
+            
+            
+            
+            if(browser.urlHasValue('path')){  //https://192.168.0.59:1234/examples/4dkk.html?m=SG-r0dwv5D8vY8&formal&showAxis&path
+            let fileName =  'pathPointsNew'   
+            setTimeout(()=>{
+                Potree.loadFile(Potree.resourcePath+'/' +fileName+'.json', null, (data)=>{
+                
+                    console.log(data)
+                    window.pathPoints = data
+                    let points = [] 
+                     
+                    data.forEach((e,i)=>{ 
+                        if(data[i-1] && data[i-1][0] == e[0] && data[i-1][1] == e[1] && data[i-1][2] == e[2]   )return 
+                        //e[2]+=0.2 
+                        let pos = /* Potree.math.convertVector.YupToZup(  */new THREE.Vector3().fromArray(e)/*  ) */
+                        //pos.x *= -1
+                        //pos.y *= -1
+                        let x = pos.x , y = pos.y, z=pos.z
+                        //pos.x = -x, pos.y = -y
+                        
+                        //pos.z *= -1
+                        pos.applyMatrix4(viewer.scene.pointclouds[0].transformMatrix)  //是4dkk场景里坐标 
+                        points.push(pos)
+                    }) 
+                        
+                     /* let fakeMeasure ={
+                        "measureType": "Hor MulDistance",  "unit": "metric","color": "#00c8af",
+                        points  , "datasetId": null,  "title": "test path", showDistances:false,
+                        "bus": {
+                            "all": {}
+                        },  
+                    }
+                    viewer.measuringTool.createMeasureFromData(fakeMeasure)
+                    viewer.scene.measurements[0].edgeLabels.forEach(e=>Potree.Utils.updateVisible(e,'f',false,10))
+                    */
+                    let fakeMeasure ={
+                        type : 'Path', "unit": "metric", points, width:0.1
+                    }
+                    let path = viewer.measuringTool.createMeasureFromData(fakeMeasure)
+                    for(let i=0;i<points.length;i++){
+                        path.setMarkerTitle(i,'')
+                    }
+                    
+                })
+                
+            },1000)
+            
+        }
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
+            
         }
         
         
@@ -581,6 +647,10 @@ export function panoEditStart(dom, number, EditCloudsArgs){
         Potree.Log('loadPointCloudDone  点云加载完毕',{font:[null, 10]})  
         
         viewer.dispatchEvent('allLoaded');
+        
+        
+        
+        
     }