瀏覽代碼

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

bill 2 年之前
父節點
當前提交
5902dc19af
共有 3 個文件被更改,包括 1445 次插入966 次删除
  1. 1412 923
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 32 42
      src/sdk/cover/index.js

文件差異過大導致無法顯示
+ 1412 - 923
public/lib/potree/potree.js


文件差異過大導致無法顯示
+ 1 - 1
public/lib/potree/potree.js.map


+ 32 - 42
src/sdk/cover/index.js

@@ -15,7 +15,7 @@ export const enter = (dom, isLocal) => {
     }
     
     
-    Potree.settings.notAdditiveBlending = true
+    
     
     const tagLimitDis = 8;
 
@@ -118,19 +118,7 @@ export const enter = (dom, isLocal) => {
                     string: viewer.unitConvert.convert(value, 'distance', void 0, measure.unitSystem, 0.1, true),
                 }
             },
-            /* changeUnit: unit => {
-                //公制|英制 , 1 | 2 单位
-                measure.setUnitSystem(units[unit])
-            },
-            toDataURL: (width, height) => {
-                //截图
-                isScreenshoting = true
-                var promise = viewer.startScreenshot({ type: 'measure', measurement: measure, hideMarkers: true }, width, height)
-                promise.done(() => {
-                    isScreenshoting = false
-                })
-                return promise
-            }, */
+             
             //手动开启或关闭:
             show: () => {
                 Potree.Utils.updateVisible(measure, 'inListByUser', true)
@@ -220,7 +208,7 @@ export const enter = (dom, isLocal) => {
         
         getScreenByPosition(pos3d, modelId, canShelter/* , disToCameraLimit */){//通过模型局部坐标获取屏幕坐标 
             
-            
+            //console.log('getScreenByPoint ')
             let isLocal = modelId != void 0 
             pos3d = new THREE.Vector3().copy(pos3d)
             let worldPos = isLocal ? Potree.Utils.datasetPosTransform({ fromDataset: true, datasetId: modelId, position:pos3d}) : pos3d
@@ -236,7 +224,7 @@ export const enter = (dom, isLocal) => {
             var camera = viewport.camera
             var dom = viewer.renderArea
             if(tagLimitDis != void 0){
-                if(camera.position.distanceTo(worldPos) > tagLimitDis)return false
+                if(camera.position.distanceToSquared(worldPos) > Math.pow(tagLimitDis,2))return false
             } 
             
             
@@ -247,12 +235,14 @@ export const enter = (dom, isLocal) => {
         },
         
         screenshot: (width, height) => {
-            //截图 
-            var promise = viewer.startScreenshot({ type: 'default' }, width, height)
-            promise.done(() => {
- 
+            //截图  
+            var {getImagePromise, finishPromise} =  viewer.startScreenshot({ type: 'default' }, width, height) 
+            var deferred = $.Deferred();
+            finishPromise.done(({dataUrl}) => {
+               deferred.resolve(dataUrl)
             })
-            return promise
+            
+            return deferred.promise()  
         },
         getPose() {//获取当前点位和朝向
             const camera = viewer.scene.getActiveCamera()
@@ -424,7 +414,7 @@ export const enter = (dom, isLocal) => {
             
                 Potree.addModel(prop,  prop.done , prop.progressFun, prop.onError)
                 prop.loading = true
-                console.log('-------开始加载 id:', prop.id, 'title:', prop.title, ', filename:',getName(prop.url),  prop ) 
+                console.log('-------开始加载 id:', prop.id, 'title:', prop.title, ', filename:', getName(prop.url),  prop ) 
             }
             
             let spliceFromArr = (model,loaded)=>{
@@ -500,16 +490,11 @@ export const enter = (dom, isLocal) => {
                 spliceFromArr(model,false)
             }
             
-            if(props.type == "glb"){////////////////////////////test
-                if(props.url.includes('coffeemat')){
-                    props.url = '/lib/potree/resources/models/glb/coffeemat.glb' 
-                                     
-                }
-                //props.url += '5'
-                //props.url = 'http://localhost:5173/api/profile/datav1/1537680519838306304/data/glb/cloud_glb_24.glb'   
-            }
-            
-            
+             
+            try{
+                props.url = JSON.parse(props.url) //去掉 '\'
+            }catch(e){}
+             
             props.done = done; props.progressFun = progressFun; props.onError = onError
             
             
@@ -528,6 +513,7 @@ export const enter = (dom, isLocal) => {
                     props.show = show  //for autoLoads show model
                     if(model){  
                         Potree.Utils.updateVisible(model, 'changeShow', show) 
+                        viewer.dispatchEvent('content_changed')
                     } 
                 },
                 changeSelect(state){
@@ -551,9 +537,9 @@ export const enter = (dom, isLocal) => {
                     if(opacity == void 0)opacity = 100
                     opacity/=100
                     
-                  
+                    MergeEditor.changeOpacity(model, opacity)
                     
-                    if(model){
+                    /* if(model){
                         if(model.isPointcloud){ 
                             model.changePointOpacity(opacity) 
                             //MergeEditor.updateEdgeStrength()
@@ -581,14 +567,10 @@ export const enter = (dom, isLocal) => {
                                 
                                 }
                             })
-                        }
-                            
-                            
-                            
-                            
+                        }  
                          
                         model.opacity = opacity//记录在最外层
-                    }
+                    } */
                      
                 },
                 changeBottom(z){
@@ -626,6 +608,7 @@ export const enter = (dom, isLocal) => {
                     }
                 }, 
                 enterMoveMode(){
+                    console.log('enterMoveMode')
                     if(model){ 
                         if(MergeEditor.split){//分屏校准
                             MergeEditor.setTransformState('translate')
@@ -638,7 +621,7 @@ export const enter = (dom, isLocal) => {
                     }
                 },
                 leaveTransform(){ 
-                    
+                    console.log('leaveTransform')
                     if(MergeEditor.split){//分屏校准
                         MergeEditor.setTransformState(null)
                     }else{ 
@@ -759,6 +742,7 @@ export const enter = (dom, isLocal) => {
                 
                 destroy(){
                     model && MergeEditor.removeModel(model) 
+                    viewer.dispatchEvent('content_changed')
                 }
                  
             } 
@@ -942,7 +926,13 @@ export const enter = (dom, isLocal) => {
 
     
     function getName(url){
-        return url.split('/').pop()
+        let get = (e)=>{
+            return e.split('/').pop()
+        }
+        if(url instanceof Array){
+            return url.map(e=>get(e))
+        }
+        return get(url)
     }