xzw преди 1 година
родител
ревизия
56e8bc3426
променени са 3 файла, в които са добавени 157716 реда и са изтрити 27 реда
  1. 157683 1
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 32 25
      src/sdk/cover/index.js

Файловите разлики са ограничени, защото са твърде много
+ 157683 - 1
public/lib/potree/potree.js


Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
public/lib/potree/potree.js.map


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

@@ -6,7 +6,7 @@ import axios from 'axios' //{ axios } from '@/api'
 let requestLoadCount = 0
 
 export const enter = (dom, isLocal) => {
-    
+    console.warn('新的页面')
     Potree.settings.isOfficial = true //标记为正式、非测试版本 
     //Potree.fileServer = axios 
     Potree.settings.libsUrl = './lib/'
@@ -54,8 +54,12 @@ export const enter = (dom, isLocal) => {
                 let child = iframe.contentWindow
                 child.winIndex = index++
                 //案件里视图提取页面子页面覆盖了父级页面,父级的模型可以隐藏以释放内存
+                 
+                console.error('createIframed', child.winIndex, child.location.href)
+                viewer.setDisplay(false ) 
+                
                 child.beforeDestroy = function(){ 
-                    console.log('window.beforeDestroy', child.winIndex)
+                    console.warn('beforeDestroy', child.winIndexf)
                     
                     child.viewer && child.viewer.setDisplay(false)
                     //如果是四维看看的场景,先不管了,页面被销毁应该就没了吧
@@ -63,35 +67,38 @@ export const enter = (dom, isLocal) => {
                     viewer.setDisplay(true )//恢复主页的模型显示
                     
                     
-                    if(!child.viewer){ 
-                        let player = child.__sdk.core.get('Player')
-                        /* let runtime = player.model._3dTilesRuntime 
-                        let tileset = runtime.getTileset() 
-                        tileset._cache.trim(); //使下一次update时dispose所有不可见的tiles
-                        let sceneRenderer = child.__sdk.core.get('SceneRenderer')
-                        player.model.visible = false
-                        runtime.update(16, sceneRenderer.renderer, sceneRenderer.camera, true)  //没用,为何_trimTiles的while无法进入
-                         */
-                        player.model.traverse(e=>{
-                            e.geometry && e.geometry.dispose()
-                            if(e.material){
-                                e.material.map && e.material.map.dispose()
-                                if(e.material.uniforms && e.material.uniforms.map && e.material.uniforms.map.value){
-                                    e.material.uniforms.map.value.dispose()
+                    if(!child.viewer){
+                        try{
+                            let player = child.__sdk.core.get('Player')
+                            /* let runtime = player.model._3dTilesRuntime 
+                            let tileset = runtime.getTileset() 
+                            tileset._cache.trim(); //使下一次update时dispose所有不可见的tiles
+                            let sceneRenderer = child.__sdk.core.get('SceneRenderer')
+                            player.model.visible = false
+                            runtime.update(16, sceneRenderer.renderer, sceneRenderer.camera, true)  //没用,为何_trimTiles的while无法进入
+                             */
+                            player.model.traverse(e=>{
+                                e.geometry && e.geometry.dispose()
+                                if(e.material){
+                                    e.material.map && e.material.map.dispose()
+                                    if(e.material.uniforms && e.material.uniforms.map && e.material.uniforms.map.value){
+                                        e.material.uniforms.map.value.dispose()
+                                    }
                                 }
-                            }
-                        }) //效果甚微
-                        
-                        /* let sceneRenderer = child.__sdk.core.get('SceneRenderer')
-                        sceneRenderer.renderer.render(sceneRenderer.scene, sceneRenderer.camera)
-                         */
+                            }) //效果甚微
+                            
+                            /* let sceneRenderer = child.__sdk.core.get('SceneRenderer')
+                            sceneRenderer.renderer.render(sceneRenderer.scene, sceneRenderer.camera)
+                             */
+                        }catch(e){
+                            console.log(e)
+                        }
                     }
                     
                 }
                
                 
-                console.log('createIframe', child.winIndex)
-                viewer.setDisplay(false ) 
+                
             }
             
             //不知道删除iframe时是否那些模型还在内存里,需要释放吗? 如果要需要加一个事件