xzw 2 yıl önce
ebeveyn
işleme
c9104b3723
2 değiştirilmiş dosya ile 28 ekleme ve 7 silme
  1. 7 7
      src/utils/ConvertViews.js
  2. 21 0
      src/utils/sync.js

+ 7 - 7
src/utils/ConvertViews.js

@@ -81,7 +81,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
                 
                 var flyToPano = (e)=>{//同步点位
                     if(master != this.masterApp )return
-                    let pano = customer.viewer.images360.panos[e.toPano.pano.id]
+                    let pano = customer.viewer.images360.getPano(e.toPano.pano.id)
                     if(!pano)return console.error('找不到该e.panoId', e.toPano.pano.id)
                     customer.viewer.images360.flyToPano({pano} )
                 }
@@ -197,15 +197,15 @@ export default class ConvertViews extends THREE.EventDispatcher{
             setTimeout(()=>{
                 let master = isSwitchScene == 'target' ? sourceApp : targetApp
                 let customer = isSwitchScene == 'target' ? targetApp : sourceApp
-                this.masterApp = master
-                customer.Potree.settings.displayMode = master.Potree.settings.displayMode
-                if(master.sceneType == 'laser'){  
+                this.masterApp = master 
+                if(master.sceneType == 'laser'){
+                    customer.Potree.settings.displayMode = master.Potree.settings.displayMode
                     let pano = master.viewer.images360.nextPano || master.viewer.images360.currentPano
-                    let pano2 = pano && customer.viewer.images360.panos[pano.id]
+                    let pano2 = pano && customer.viewer.images360.getPano(pano.id)
                     pano2 && customer.viewer.images360.flyToPano({pano : pano2, duration: 0 })
                     master.viewer.dispatchEvent({type:'camera_changed',changeInfo:{quaternionChanged:true},viewport:master.viewer.mainViewport }) //朝向位置同步
                 }else{ 
-                    master.app.core.get('Player').emit("update")//朝向同步
+                    master.app.core.get('Player').emit("update",{ hasChanged:{cameraChanged:true}  })//朝向同步
                     let pano = master.app.core.get('Player').nextPano || master.app.core.get('Player').currentPano
                     let pano2 = pano && customer.app.core.get('Player').model.panos.index[pano.id]
                     pano2 && customer.app.core.get('Player').flyToPano({pano: pano2})
@@ -230,7 +230,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
        
         bimViewer = this.bimViewer = targetApp.viewer 
         bimViewer.setNavigationMode(targetApp.Glodon.Bimface.Viewer.NavigationMode3D.Walk)
-        bimViewer.setFlySpeedRate(3)
+        //bimViewer.setFlySpeedRate(3)
         bimViewer.getViewer().setTransitionAnimationState(false) //setCameraStatus瞬间变化相机 ,or setCameraAnimation?
        
        

+ 21 - 0
src/utils/sync.js

@@ -20,8 +20,29 @@ export function setPanoWithBim(data){
     }  
 }
 
+export function flyToP1P2(data){
+    if(sourceApp.sceneType == 'laser'){
+        sourceApp.viewer.images360.flyToPano({pano:sourceApp.viewer.images360.getPano(data.id)}) 
+    }else{
+        let player = sourceApp.app.core.get('Player')
+        player.flyToPano({pano:model.panos.index[data.id]})  
+    }
+    let info = bimViewer.getCameraStatus() 
+    let msg = {
+        position:data.position,
+        target:info.target,
+        up: new THREE.Vector3(0,0,1),
+        //前三个缺一不可  
+        
+    }
+     
+    targetApp.viewer.setCameraStatus(msg)
+}
+
 
 
+    
+
 const initConvertView = (isSwitchScene) => {  
 
     if (sourceApp && targetApp) {