xzw 3 anos atrás
pai
commit
93b7abb4ec
3 arquivos alterados com 73 adições e 64 exclusões
  1. 63 56
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 9 7
      src/sdk/cover/index.js

+ 63 - 56
public/lib/potree/potree.js

@@ -63669,49 +63669,54 @@ void main() {
         }
         
         Potree.settings.sizeFitToLevel = true;//当type为衰减模式时自动根据level调节大小。每长一级,大小就除以2
-        Potree.loadPointCloudScene = function(datasetCode, datasetName){//对应4dkk的场景码
-                 
-            viewer.transform = null;
-             
-            var cloudPath = `${Potree.settings.urls.prefix}/${Potree.settings.webSite}/${datasetCode}/data/${datasetCode}/webcloud/cloud.js`; 
-            var timeStamp = dataset.createTime ? dataset.createTime.replace(/[^0-9]/ig,'') : '';  //每重算一次后缀随createTime更新一次 
-            //console.warn(dataset.name, 'timeStamp', timeStamp)
-            Potree.loadPointCloud(cloudPath, datasetName ,datasetCode, timeStamp, e => {
-                let scene = viewer.scene;
-                let pointcloud = e.pointcloud; 
-                let config = Potree.config.material;
-                let material = pointcloud.material; 
-                
-                material.minSize =  config.minSize;
-                material.maxSize =  config.maxSize;   
-                material.pointSizeType = config.pointSizeType; //Potree.PointSizeType[config.pointSizeType]//Potree.PointSizeType.ADAPTIVE;//FIXED
-                pointcloud.changePointSize(config.realPointSize);  //material.size =  config.pointSize;
-                pointcloud.changePointOpacity(1);
-                material.shape = Potree.PointShape.SQUARE; 
-                pointcloud.color = pointcloud.material.color = dataset.color;  
-                pointcloud.dataset_id = datasetCode;  //dataset.id;//供漫游点找到属于的dataset点云
-                pointcloud.timeStamp = timeStamp; 
-                //transformPointcloud(pointcloud, dataset)
-                scene.addPointCloud(pointcloud);
-                {
+        Potree.loadPointCloudScene = function(sceneCode, done){//对应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 => {
+                    let scene = viewer.scene;
+                    let pointcloud = e.pointcloud; 
+                    let config = Potree.config.material;
+                    let material = pointcloud.material; 
                     
-                    viewer.updateModelBound();
-                    let {boundSize, center} = viewer.bound;
-                    viewer.dispatchEvent({type:'loadPointCloudDone'});
-                    if(!Potree.settings.UserPointDensity){
-                        Potree.settings.UserPointDensity = 'high';//'middle' 
-                    }
-                     
-                    Potree.Log('loadPointCloudDone  点云加载完毕', null, 10);    
-                } 
+                    material.minSize =  config.minSize;
+                    material.maxSize =  config.maxSize;   
+                    material.pointSizeType = config.pointSizeType; //Potree.PointSizeType[config.pointSizeType]//Potree.PointSizeType.ADAPTIVE;//FIXED
+                    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点云
+                    pointcloud.timeStamp = timeStamp; 
+                    //transformPointcloud(pointcloud, originDataset)
+                    scene.addPointCloud(pointcloud);
+                    {
+                        
+                        viewer.updateModelBound();
+                        let {boundSize, center} = viewer.bound;
+                        viewer.dispatchEvent({type:'loadPointCloudDone'});
+                        if(!Potree.settings.UserPointDensity){
+                            Potree.settings.UserPointDensity = 'high';//'middle' 
+                        }
+                         
+                        Potree.Log('loadPointCloudDone  点云加载完毕', null, 10);    
+                    } 
+                        
+                    /* Potree.loadPanos(dataset.id, (data) => { //暂时不加载panos了,因为没有id 
+                    //console.log('loadPanos',dataset.sceneCode, dataset.id, data)
+                    viewer.images360.addPanoData(data, dataset.id ) 
+                    viewer.images360.loadDone() 
+                    viewer.scene.add360Images(viewer.images360);    */   
+                    viewer.dispatchEvent('allLoaded');
+                    done(pointcloud);
+                }); 
                     
-                /* Potree.loadPanos(dataset.id, (data) => { //暂时不加载panos了,因为没有id 
-                //console.log('loadPanos',dataset.sceneCode, dataset.id, data)
-                viewer.images360.addPanoData(data, dataset.id ) 
-                viewer.images360.loadDone() 
-                viewer.scene.add360Images(viewer.images360);    */   
-                viewer.dispatchEvent('allLoaded');
-            }); 
+                
+            }, sceneCode);      
+             
+             
         }; 
         
         
@@ -63781,14 +63786,14 @@ void main() {
             let isFirstLoad = !prop.position; //在编辑时用户添加的
         
             let loadDone = (model)=>{
-                
+                modelEditing = model;
                 if(isFirstLoad){
                     MergeEditor.setModelBtmHeight(model, 0); //默认离地高度为0
                     viewer.addEventListener('global_mousemove', moveModel); 
                     viewer.addEventListener('global_click', confirmPos, 3);
                 }
-                object.updateMatrixWorld();
-                this.updateModelBound();
+                model.updateMatrixWorld();
+                viewer.updateModelBound();
                 
                 done(modelEditing);
             };
@@ -63811,7 +63816,7 @@ void main() {
                     pointcloud.addEventListener("orientation_changed", maintainBtmZ );
                     pointcloud.addEventListener("scale_changed", maintainBtmZ );
                     
-                    loadDone();
+                    loadDone(pointcloud);
                     /* pointcloud.addEventListener('select',(e)=>{
                         if(Potree.settings.displayMode == 'showPanos')return
                         console.log('select',e) 
@@ -63832,10 +63837,7 @@ void main() {
                 
                  
                 let callback = (object)=>{
-                    //focusOnSelect(object, 1000) 
-                    
-                     
-                    modelEditing = object; 
+                    //focusOnSelect(object, 1000)  
                     object.isModel = true;
                     object.dataset_id = Date.now(); //暂时
                     /* object.addEventListener('select',(e)=>{
@@ -63864,7 +63866,7 @@ void main() {
                     object.addEventListener('position_changed', updateBound ); 
                     object.addEventListener("orientation_changed", maintainBtmZ );
                     object.addEventListener("scale_changed", maintainBtmZ );
-                    loadDone();
+                    loadDone(object);
                 };
                 
                  
@@ -127921,6 +127923,7 @@ ENDSEC
             let response = await fetch(path); 
             let text = await response.text();
             var data = JSON.parse(text);
+            if(data.data) data = data.data;
             callback && callback(data); 
             return data
         }
@@ -127928,14 +127931,17 @@ ENDSEC
         //查询: http://192.168.0.26:8080/doc.html#/default/filter-%E6%BC%AB%E6%B8%B8%E7%82%B9/filterUsingGET    
     }
 
-    async function loadDatasets(callback){//之后直接把path写进来
-        var path; 
+    async function loadDatasets(callback,sceneCode){//之后直接把path写进来
+        let path; 
+        sceneCode = sceneCode || Potree.settings.number;
         if(Potree.fileServer){
-            path = `/laser/dataset/${Potree.settings.number}/getDataSet`; 
+            path = `/laser/dataset/${sceneCode}/getDataSet`; 
         }else {
+            
             //path = `${Potree.settings.urls.prefix2}/indoor/${Potree.settings.number}/api/datasets`
             //现在只能加载得了本地的了
-            path = `${Potree.scriptPath}/data/${Potree.settings.number}/getDataSet.json`;
+            path = `${Potree.settings.urls.prefix4}laser/dataset/${sceneCode}/getDataSet`;
+            //path = `${Potree.scriptPath}/data/${sceneCode}/getDataSet.json`
             
         }
         return loadFile(path, callback)
@@ -127994,8 +128000,9 @@ ENDSEC
             path = `/laser/filter/${Potree.settings.number}/query` + query;
         }else {
             //path = `${Potree.settings.urls.prefix2}/indoor/${Potree.settings.number}/api/images/filter` + query
-            path = `${Potree.scriptPath}/data/${Potree.settings.number}/panos-${datasetId}.json`;
-
+            //path = `${Potree.scriptPath}/data/${Potree.settings.number}/panos-${datasetId}.json`
+            path = `${Potree.settings.urls.prefix4}laser/filter/${Potree.settings.number}/query` + query;
+           
              
         }
         return loadFile(path, callback) 

Diferenças do arquivo suprimidas por serem muito extensas
+ 1 - 1
public/lib/potree/potree.js.map


+ 9 - 7
src/sdk/cover/index.js

@@ -1,19 +1,19 @@
 import mitt from 'mitt'
 
+import axios from 'axios' //{ axios } from '@/api'
 
 
-
-export const enter = (prop) => {
+export const enter = (dom) => {
     
     Potree.settings.isOfficial = true //标记为正式、非测试版本 
-     
-    Potree.mergeEditStart(prop.canvas)
+    //Potree.fileServer = axios 
+    Potree.mergeEditStart(dom)
     let MergeEditor = viewer.modules.MergeEditor
     
 
-    let addModelFun = (props)=> { 
+    let addModel = (props)=> { 
         let bus = mitt()  
-        
+        console.log('addModel',props)
         /* type = 'laser' url就是场景码
         props = { 
           select: boolean,
@@ -24,6 +24,7 @@ export const enter = (prop) => {
           rotation: {x, y, z}
         }
         addModel({ url, type, props }) */
+        
         let model
         let done = (model_)=>{
             model = model_
@@ -43,6 +44,7 @@ export const enter = (prop) => {
                 bus.emit('bottomChanged', model.btmHeight)
             })
             bus.emit('loadDone')
+            console.log('loadDone' )
         }
         let progressFun = (progress)=>{
             bus.emit('loadProgress',progress)
@@ -83,7 +85,7 @@ export const enter = (prop) => {
     } 
       
      
-    return addModelFun
+    return {addModel}
 }
 
 export default enter