xzw 3 роки тому
батько
коміт
57477c7637
2 змінених файлів з 86 додано та 67 видалено
  1. 85 66
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map

+ 85 - 66
public/lib/potree/potree.js

@@ -63758,13 +63758,11 @@ void main() {
         }
         
         Potree.settings.sizeFitToLevel = true;//当type为衰减模式时自动根据level调节大小。每长一级,大小就除以2
-        Potree.loadPointCloudScene = function(sceneCode, done, onError){//对应4dkk的场景码
-            Potree.loadDatasets((data)=>{
-                var originDataset = data.find(e=>e.sceneCode == sceneCode);//只加载初始数据集  
-                var cloudPath = `${Potree.settings.urls.prefix}/${Potree.settings.webSite}/${sceneCode}/data/${sceneCode}/webcloud/cloud.js`; 
-                var timeStamp = originDataset.createTime ? originDataset.createTime.replace(/[^0-9]/ig,'') : '';  //每重算一次后缀随createTime更新一次 
-                //console.warn(dataset.sceneName, 'timeStamp', timeStamp)
-                Potree.loadPointCloud(cloudPath, originDataset.sceneName , sceneCode, timeStamp, e => {
+        Potree.loadPointCloudScene = function(sceneCode, type, id, done, onError){//对应4dkk的场景码
+              
+            let loadCloud = (cloudPath, sceneName, sceneCode, timeStamp, color)=>{
+                
+                Potree.loadPointCloud(cloudPath, sceneName , sceneCode, timeStamp, e => {
                     let scene = viewer.scene;
                     let pointcloud = e.pointcloud; 
                     let config = Potree.config.material;
@@ -63776,8 +63774,7 @@ void main() {
                     pointcloud.changePointSize(config.realPointSize);  //material.size =  config.pointSize;
                     pointcloud.changePointOpacity(1);
                     material.shape = Potree.PointShape.SQUARE; 
-                    pointcloud.color = pointcloud.material.color = originDataset.color;  
-                    pointcloud.dataset_id = originDataset.id;//供漫游点找到属于的dataset点云
+                    color && (pointcloud.color = pointcloud.material.color = color);     
                     pointcloud.timeStamp = timeStamp; 
                     //transformPointcloud(pointcloud, originDataset)
                     scene.addPointCloud(pointcloud);
@@ -63801,10 +63798,23 @@ void main() {
                     viewer.dispatchEvent('allLoaded');
                     done(pointcloud);
                 },onError); 
-                    
                 
-            }, sceneCode, onError);      
-             
+                
+            };
+            
+            if(type == 'laser'){ 
+                Potree.loadDatasets((data)=>{
+                    let originDataset = data.find(e=>e.sceneCode == sceneCode);//只加载初始数据集  
+                    let timeStamp = originDataset.createTime ? originDataset.createTime.replace(/[^0-9]/ig,'') : '';  //每重算一次后缀随createTime更新一次 
+                    let cloudPath = `${Potree.settings.urls.prefix}/${Potree.settings.webSite}/${sceneCode}/data/${sceneCode}/webcloud/cloud.js`; 
+                    loadCloud(cloudPath, originDataset.sceneName, sceneCode, timeStamp, originDataset.color);
+                }, sceneCode, onError);
+            
+            }else {//las or ply
+                let name = type + '|' + id;
+                let cloudPath = sceneCode + '/cloud.js'; 
+                loadCloud(cloudPath, name, name, '' );
+            }   
              
         }; 
         
@@ -63958,9 +63968,55 @@ void main() {
                 model.lastMatrixWorld = model.matrixWorld.clone();
                 done(model);
             };
-        
-            if(prop.type == 'laser'){
-                Potree.loadPointCloudScene(prop.url, (pointcloud)=>{  
+            
+            if(prop.type == 'glb'){
+                
+                
+                
+                let callback = (object)=>{
+                    //focusOnSelect(object, 1000)  
+                    object.isModel = true;
+                    //object.dataset_id = Date.now() //暂时
+                    
+                    object.traverse(e=>e.material && (e.material.transparent = true));
+                  
+                    /* object.addEventListener('click',(e)=>{
+                        //只是为了能得到hoverElement识别才加这个侦听
+                    }) */
+                     
+                    loadDone(object);
+                };
+                
+                 
+                let info = { 
+                    name: prop.type, 
+                    id: prop.id,
+                    unlit:true,
+                    /* transform : { 
+                        position : prop.position,
+                        rotation : new THREE.Euler().setFromVector3(prop.rotation), 
+                        scale: new THREE.Vector3(prop.scale,prop.scale,prop.scale),        
+                    }  */               
+                };
+                
+                if(prop.type == 'glb'){
+                    info.glburl = prop.url;  
+                }
+                     
+                  
+                viewer.loadModel(info , callback, onProgress, onError);
+                
+                
+                
+                
+                
+                
+                
+              }else {  
+                
+                 //else if(prop.type == 'las' || prop.type == 'ply')
+     
+                Potree.loadPointCloudScene(prop.url, prop.type, prop.modelId, (pointcloud)=>{  
                     pointcloud.matrixAutoUpdate = true;
                     pointcloud.initialPosition = pointcloud.position.clone();
                     
@@ -63995,54 +64051,9 @@ void main() {
                     }) */
                     
                 }, onError);
-            }else {
-                
+            
                  
-                let callback = (object)=>{
-                    //focusOnSelect(object, 1000)  
-                    object.isModel = true;
-                    //object.dataset_id = Date.now() //暂时
-                    
-                    object.traverse(e=>e.material && (e.material.transparent = true));
-                  
-                    /* object.addEventListener('click',(e)=>{
-                        //只是为了能得到hoverElement识别才加这个侦听
-                    }) */
-                    /* let updateBound = ()=>{ 
-                        object.updateMatrixWorld()
-                        viewer.updateModelBound()
-                        object.dispatchEvent('transformChanged')
-                        
-                    }  
-                    let maintainBtmZ = ()=>{
-                        MergeEditor.setModelBtmHeight(object)
-                        updateBound()
-                    }
-                    object.addEventListener('position_changed', updateBound ) 
-                    object.addEventListener("orientation_changed", maintainBtmZ )
-                    object.addEventListener("scale_changed", maintainBtmZ ) */
-                    loadDone(object);
-                };
                 
-                 
-                let info = { 
-                    name: prop.type, 
-                    id: prop.id,
-                    unlit:true,
-                    /* transform : { 
-                        position : prop.position,
-                        rotation : new THREE.Euler().setFromVector3(prop.rotation), 
-                        scale: new THREE.Vector3(prop.scale,prop.scale,prop.scale),        
-                    }  */               
-                };
-                
-                if(prop.type == 'glb'){
-                    info.glburl = prop.url;  
-                }else {
-                    info.objurl = prop.url;
-                    info.mtlurl = prop.mtlurl;
-                } 
-                viewer.loadModel(info , callback, onProgress, onError);
                 
             }
         };
@@ -117665,9 +117676,9 @@ ENDSEC
                 viewer.scene.scene.add(this.transformControls2); 
                 viewer.setObjectLayers(this.transformControls2, 'layer2' );  
                 
-                let mouseDown = (e)=>{//暂时消失
+                let mouseDown = (e)=>{
                     if(this.split && this.selected.isPointcloud){ 
-                        viewer.outlinePass.edgeStrength = 0;
+                        viewer.outlinePass.edgeStrength = 0;//暂时消失线
                     }
                 };
                 let mouseUp = (e)=>{
@@ -117743,8 +117754,11 @@ ENDSEC
                         if(e.type == 'global_mousedown' ){ //开始
                             //if((e.intersect.object || e.intersect.pointcloud) == this.selected){
                             if(e.intersect.pointclouds.includes(this.selected) || e.intersect.allElements.some(e=>e.object == this.selected)){
-       
-                                dragInfo = {};  
+                                
+                                dragInfo = {};   
+                                if(this.selected.isPointcloud){ 
+                                    viewer.outlinePass.edgeStrength = 0;//暂时消失线
+                                } 
                             }  
                         }
                              
@@ -117820,6 +117834,11 @@ ENDSEC
                 viewer.addEventListener('global_drop', (e)=>{
                     dragInfo = null;
                     this.clearTranCursor();
+                     
+                    if(this.selected.isPointcloud){ 
+                        viewer.outlinePass.edgeStrength = edgeStrengths.pointcloud;
+                    } 
+                    
                 });
             
             }
@@ -129190,7 +129209,7 @@ ENDSEC
     			performance.mark("render-end");
     			performance.measure("render", "render-start", "render-end");
     		}
-    	}
+    	} 
 
 
 

Різницю між файлами не показано, бо вона завелика
+ 1 - 1
public/lib/potree/potree.js.map