|
@@ -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时是否那些模型还在内存里,需要释放吗? 如果要需要加一个事件
|