|
@@ -3,9 +3,23 @@ import browser from '@/utils/browser'
|
|
|
|
|
|
const views = new ConvertViews(browser.isMobile())
|
|
const views = new ConvertViews(browser.isMobile())
|
|
|
|
|
|
-let sourceApp = null,
|
|
|
|
- targetApp = null
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+let sourceApp_ = null
|
|
|
|
+let global_ = { sourceApp : null, targetApp: null}
|
|
|
|
+
|
|
|
|
+Object.defineProperty(global_, 'sourceApp', {
|
|
|
|
+ get: function () {
|
|
|
|
+ return sourceApp_
|
|
|
|
+ },
|
|
|
|
+ set: function (b) {
|
|
|
|
+ sourceApp_ = b
|
|
|
|
+ //console.log('setSource', !!b)
|
|
|
|
+ /* if(!b){
|
|
|
|
+ console.log('?')
|
|
|
|
+ } */
|
|
|
|
+ }
|
|
|
|
+})
|
|
|
|
+
|
|
const isEdit = browser.urlHasValue('adjust')
|
|
const isEdit = browser.urlHasValue('adjust')
|
|
|
|
|
|
let panoData
|
|
let panoData
|
|
@@ -18,7 +32,7 @@ export function setPanoWithBim(data){
|
|
}
|
|
}
|
|
export function flyToP1P2(data){
|
|
export function flyToP1P2(data){
|
|
//left
|
|
//left
|
|
- views.flyToPano(sourceApp, data.id, data.pos1, {duration : views.settings.durations.flyToPano})
|
|
|
|
|
|
+ views.flyToPano(global_.sourceApp, data.id, data.pos1, {duration : views.settings.durations.flyToPano})
|
|
|
|
|
|
//right
|
|
//right
|
|
views.bimFlyTo({position: data.pos2 || data.position, duration : views.settings.durations.flyToPano})
|
|
views.bimFlyTo({position: data.pos2 || data.position, duration : views.settings.durations.flyToPano})
|
|
@@ -28,13 +42,13 @@ export function flyToP1P2(data){
|
|
|
|
|
|
const initConvertView = (isSwitchScene) => {
|
|
const initConvertView = (isSwitchScene) => {
|
|
|
|
|
|
- if (sourceApp && targetApp) {
|
|
|
|
- if(targetApp.sceneType == 'bim'){
|
|
|
|
- views.bindWithBim( sourceApp, targetApp, panoData )
|
|
|
|
|
|
+ if (global_.sourceApp && global_.targetApp) {
|
|
|
|
+ if(global_.targetApp.sceneType == 'bim'){
|
|
|
|
+ views.bindWithBim( global_.sourceApp, global_.targetApp, panoData )
|
|
|
|
|
|
- }else if(sourceApp.sceneType == targetApp.sceneType){
|
|
|
|
|
|
+ }else if(global_.sourceApp.sceneType == global_.targetApp.sceneType){
|
|
|
|
|
|
- views.bindWithSameType(sourceApp,targetApp, isSwitchScene)
|
|
|
|
|
|
+ views.bindWithSameType(global_.sourceApp,global_.targetApp, isSwitchScene)
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -43,9 +57,9 @@ const initConvertView = (isSwitchScene) => {
|
|
|
|
|
|
export function singleConvert(lastFakeApp, targetApp ){//单屏转换
|
|
export function singleConvert(lastFakeApp, targetApp ){//单屏转换
|
|
|
|
|
|
- if(targetApp.sceneType == 'bim'){
|
|
|
|
|
|
+ if(global_.targetApp.sceneType == 'bim'){
|
|
|
|
|
|
- views.fakeWithBim(lastFakeApp, targetApp, getSourcePanos(sourceApp), targetPano)
|
|
|
|
|
|
+ views.fakeWithBim(lastFakeApp, global_.targetApp, getSourcePanos(global_.sourceApp), targetPano)
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
@@ -56,7 +70,7 @@ let isSwitchScene
|
|
export function beforeChangeURL(which ){
|
|
export function beforeChangeURL(which ){
|
|
//if (views.loaded ) {
|
|
//if (views.loaded ) {
|
|
isSwitchScene = true
|
|
isSwitchScene = true
|
|
- views.clear({ dontClearTarget: targetApp && targetApp.sceneType == 'bim' })
|
|
|
|
|
|
+ views.clear({ dontClearTarget: global_.targetApp && global_.targetApp.sceneType == 'bim' })
|
|
//}
|
|
//}
|
|
}
|
|
}
|
|
|
|
|
|
@@ -68,17 +82,17 @@ export function loadSourceScene(sourceFrame,type,mode) {
|
|
|
|
|
|
/* if (views.loaded ) {
|
|
/* if (views.loaded ) {
|
|
isSwitchScene = true
|
|
isSwitchScene = true
|
|
- views.clear({ dontClearTarget: targetApp.sceneType == 'bim' })
|
|
|
|
|
|
+ views.clear({ dontClearTarget: global_.targetApp.sceneType == 'bim' })
|
|
} */
|
|
} */
|
|
|
|
|
|
Log('loadSourceScene, ' + type)
|
|
Log('loadSourceScene, ' + type)
|
|
- sourceApp = null
|
|
|
|
|
|
+ global_.sourceApp = null
|
|
let win = sourceFrame.value.contentWindow
|
|
let win = sourceFrame.value.contentWindow
|
|
win.sceneType = type
|
|
win.sceneType = type
|
|
|
|
|
|
|
|
|
|
let loaded = ()=>{
|
|
let loaded = ()=>{
|
|
- sourceApp = win
|
|
|
|
|
|
+ global_.sourceApp = win
|
|
initConvertView(isSwitchScene && 'source')
|
|
initConvertView(isSwitchScene && 'source')
|
|
}
|
|
}
|
|
|
|
|
|
@@ -111,14 +125,14 @@ export function loadTargetScene(targetFrame, type, mode) {
|
|
|
|
|
|
views.clear( )
|
|
views.clear( )
|
|
}
|
|
}
|
|
- targetApp = null
|
|
|
|
|
|
+ global_.targetApp = null
|
|
|
|
|
|
|
|
|
|
let win = targetFrame.value.contentWindow //其实只用赋值一次
|
|
let win = targetFrame.value.contentWindow //其实只用赋值一次
|
|
win.sceneType = type
|
|
win.sceneType = type
|
|
|
|
|
|
let loaded = ()=>{
|
|
let loaded = ()=>{
|
|
- targetApp = win
|
|
|
|
|
|
+ global_.targetApp = win
|
|
|
|
|
|
|
|
|
|
initConvertView( 'target')
|
|
initConvertView( 'target')
|
|
@@ -127,12 +141,15 @@ export function loadTargetScene(targetFrame, type, mode) {
|
|
|
|
|
|
|
|
|
|
if(type == 'kankan'){
|
|
if(type == 'kankan'){
|
|
- win.app.Scene.on('loaded', () => {
|
|
|
|
|
|
+ if(win.app.Scene.loaded){
|
|
loaded()
|
|
loaded()
|
|
- })
|
|
|
|
|
|
+ }else{
|
|
|
|
+ win.app.Scene.on('loaded', () => {
|
|
|
|
+ loaded()
|
|
|
|
+ })}
|
|
}else{
|
|
}else{
|
|
win.loaded.then(sdk => {
|
|
win.loaded.then(sdk => {
|
|
- //targetApp.viewer.scene.changeMode(mode)
|
|
|
|
|
|
+ //global_.targetApp.viewer.scene.changeMode(mode)
|
|
if(type == 'laser'){
|
|
if(type == 'laser'){
|
|
views.laserInit(win,mode)
|
|
views.laserInit(win,mode)
|
|
}else if(type == 'bim'){
|
|
}else if(type == 'bim'){
|
|
@@ -147,9 +164,9 @@ export function loadTargetScene(targetFrame, type, mode) {
|
|
|
|
|
|
/* views.addEventListener('sendCameraData', e => {
|
|
/* views.addEventListener('sendCameraData', e => {
|
|
//同步右侧数据到左侧
|
|
//同步右侧数据到左侧
|
|
- if(sourceApp.sceneType == 'laser'){
|
|
|
|
- sourceApp.viewer.mainViewport.view.position.copy(e.data.position)
|
|
|
|
- sourceApp.viewer.mainViewport.view.lookAt(e.data.target)
|
|
|
|
|
|
+ if(global_.sourceApp.sceneType == 'laser'){
|
|
|
|
+ global_.sourceApp.viewer.mainViewport.view.position.copy(e.data.position)
|
|
|
|
+ global_.sourceApp.viewer.mainViewport.view.lookAt(e.data.target)
|
|
}
|
|
}
|
|
}) */
|
|
}) */
|
|
|
|
|
|
@@ -166,8 +183,8 @@ window.Log = function(value, color, fontSize){
|
|
|
|
|
|
window.addEventListener('mouseup',(e)=>{//拖拽出窗口外才执行
|
|
window.addEventListener('mouseup',(e)=>{//拖拽出窗口外才执行
|
|
//iframe的window的mouseup 在拖拽出窗口外居然不执行,只好用全局的通知它们
|
|
//iframe的window的mouseup 在拖拽出窗口外居然不执行,只好用全局的通知它们
|
|
- sourceApp && sourceApp.sceneType == 'laser' && sourceApp.viewer && sourceApp.viewer.inputHandler.onMouseUp(e)
|
|
|
|
- targetApp && targetApp.sceneType == 'laser' && targetApp.viewer && targetApp.viewer.inputHandler.onMouseUp(e)
|
|
|
|
|
|
+ global_.sourceApp && global_.sourceApp.sceneType == 'laser' && global_.sourceApp.viewer && global_.sourceApp.viewer.inputHandler.onMouseUp(e)
|
|
|
|
+ global_.targetApp && global_.targetApp.sceneType == 'laser' && global_.targetApp.viewer && global_.targetApp.viewer.inputHandler.onMouseUp(e)
|
|
views.dispatchEvent({type:'mouseupOutOfWin', evt:e})
|
|
views.dispatchEvent({type:'mouseupOutOfWin', evt:e})
|
|
|
|
|
|
})
|
|
})
|
|
@@ -176,10 +193,10 @@ window.addEventListener('mouseup',(e)=>{//拖拽出窗口外才执行
|
|
export default {
|
|
export default {
|
|
views,
|
|
views,
|
|
get sourceInst() {
|
|
get sourceInst() {
|
|
- return sourceApp
|
|
|
|
|
|
+ return global_.sourceApp
|
|
},
|
|
},
|
|
get targetInst() {
|
|
get targetInst() {
|
|
- return targetApp
|
|
|
|
|
|
+ return global_.targetApp
|
|
},
|
|
},
|
|
|
|
|
|
}
|
|
}
|