xzw 10 месяцев назад
Родитель
Сommit
374bd0a5b8
1 измененных файлов с 26 добавлено и 4 удалено
  1. 26 4
      scene/public/static/js/manage.js

+ 26 - 4
scene/public/static/js/manage.js

@@ -2109,7 +2109,7 @@ function initByTHREE(THREE){
             } */
             initRouteArrow()
             
-            browser.urlHasValue('panoLabel') && player.model.panos.forEach(p=>p.addLabel())
+            browser.urlHasValue('panoLabel') && player.model.panos.forEach(p=>p.addTextSprite())
             if(settings.extractFloor){ 
                 let data = settings.extractFloor[number]
                 if(data){ 
@@ -2466,13 +2466,35 @@ Manage.prototype.switchBgmState = function(state){//按钮的状态完全代表
     g_bgAudio.pauseByTour = false */
 }    
     
-    
-    
+ 
     
     
 var manage = new Manage();
 
- 
+manage.initMapPanoPos = function(width,height){
+    let bounding = new THREE.Box3  //不包含pano的bound
+    player.model.floors.list.forEach(floor=>{
+        bounding.union(floor.conservativeBoundingBox)
+    })
+    let boundSize = bounding.getSize(new THREE.Vector3)
+    let data = {}
+    
+    let imgSize = new THREE.Vector2(width,height)
+    let bound2dSize = new THREE.Vector2(boundSize.x,boundSize.z)
+    
+    
+    
+    player.model.panos.forEach(pano=>{
+        let panoPos = new THREE.Vector2(pano.position.x, pano.position.z);
+        let boundMin = new THREE.Vector2(bounding.min.x, bounding.min.z);
+        let diff = new THREE.Vector2().subVectors(panoPos, boundMin)
+        diff.divide(bound2dSize).multiply(imgSize)
+        data[pano.id] = diff
+    })
+     
+    
+    return data
+}    
  
 
 //处理cursor优先级