xzw 2 years ago
parent
commit
9ac1c635b0
2 changed files with 18 additions and 36 deletions
  1. 13 6
      src/utils/ConvertViews.js
  2. 5 30
      src/utils/sync.js

+ 13 - 6
src/utils/ConvertViews.js

@@ -8,7 +8,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
     constructor( ) {
     constructor( ) {
         super()
         super()
         this.settings = {
         this.settings = {
-            durations : {flyToPano:1000, dolly:60}
+            durations : {flyToPano:1000, dolly:60, bimAniOrigin:1000}
             
             
             
             
             
             
@@ -411,7 +411,7 @@ export default class ConvertViews extends THREE.EventDispatcher{
                 let speed = baseSpeed + dis / 8
                 let speed = baseSpeed + dis / 8
                 //console.log('speed', speed)
                 //console.log('speed', speed)
                
                
-                this.bimFlyTo({forwardDis: e.wheelDelta > 0 ? speed : -speed,  duration:this.settings.durations.dolly})
+                this.bimFlyTo({forwardDis: e.wheelDelta > 0 ? speed : -speed,  duration:this.settings.durations.dolly, radius:dis})
             }) 
             }) 
             
             
             //右键pan
             //右键pan
@@ -784,17 +784,24 @@ export default class ConvertViews extends THREE.EventDispatcher{
     }
     }
     bimFlyTo(data){
     bimFlyTo(data){
         let info = bimViewer.getCameraStatus() 
         let info = bimViewer.getCameraStatus() 
-        let dir = new THREE.Vector3().subVectors(info.target, info.position).normalize()
+        
+        let vec = new THREE.Vector3().subVectors(info.target, info.position)
+        let radius = vec.length() //修改了target到position的距离会影响pan时的速度
+        let dir = vec.clone().normalize()
+        
         let position = data.position
         let position = data.position
         if(!position){
         if(!position){
             position = new THREE.Vector3().addVectors(info.position, dir.clone().multiplyScalar(data.forwardDis))//forwardDis:前进距离
             position = new THREE.Vector3().addVectors(info.position, dir.clone().multiplyScalar(data.forwardDis))//forwardDis:前进距离
-       
+            radius = Math.max(radius-data.forwardDis, 0.7)
         }
         }
         if(data.duration != void 0){
         if(data.duration != void 0){
             bimViewer.getViewer().animator.setDuration(data.duration)//滚轮缩放时长,原先:1000
             bimViewer.getViewer().animator.setDuration(data.duration)//滚轮缩放时长,原先:1000
         }
         }
-        let target = new THREE.Vector3().addVectors(position, dir)
-        let msg = {
+        
+        
+        
+        let target = new THREE.Vector3().addVectors(position, dir.clone().multiplyScalar(radius))
+        let msg = {//不能修改
             position,
             position,
             target,
             target,
             up: new THREE.Vector3(0,0,1),
             up: new THREE.Vector3(0,0,1),

+ 5 - 30
src/utils/sync.js

@@ -22,43 +22,18 @@ export function flyToP1P2(data){
     //left
     //left
     views.flyToPano(sourceApp, data.id,  {duration : views.settings.durations.flyToPano}) 
     views.flyToPano(sourceApp, data.id,  {duration : views.settings.durations.flyToPano}) 
     
     
-    {//right
-        views.bimFlyTo({position:data.position,  duration : views.settings.durations.flyToPano})
-    }
-}
-/* export function flyToP1P2(data){
-    //left
-    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]})  
-    }
+    //right
+    views.bimFlyTo({position:data.position,  duration : views.settings.durations.flyToPano})
     
     
-    {//right
-        views.bimFlyTo({position:data.position})
-    }
-} */
+}
+ 
 
 
-/* const getSourcePanos = (sourceApp)=>{
-    let sourcePanos
-    if(sourceApp.sceneType == 'laser'){  
-        sourcePanos = [sourceApp.viewer.images360.panos[panoData.p1.id], sourceApp.viewer.images360.panos[panoData.p2.id]], //sourceApp.viewer.images360.panos.slice(0, 2),
-          
-        sourceApp.Potree.settings.rotAroundPoint = false
-        
-    }else if(sourceApp.sceneType == 'kankan'){ 
-        sourcePanos = [sourceApp.app.core.get('Player').model.panos.index[panoData.p1.id], sourceApp.app.core.get('Player').model.panos.index[panoData.p2.id]],//sourceApp.app.core.get('Player').model.panos.list.slice(0, 2), 
-        
-    }
-    return sourcePanos
-} */
  
  
 const initConvertView = (isSwitchScene) => {  
 const initConvertView = (isSwitchScene) => {  
 
 
     if (sourceApp && targetApp) {
     if (sourceApp && targetApp) {
         if(targetApp.sceneType == 'bim'){  
         if(targetApp.sceneType == 'bim'){  
-            views.bindWithBim( sourceApp, targetApp, panoData/* getSourcePanos(sourceApp),  targetPano */) 
+            views.bindWithBim( sourceApp, targetApp, panoData ) 
             
             
         }else if(sourceApp.sceneType == targetApp.sceneType){
         }else if(sourceApp.sceneType == targetApp.sceneType){