Răsfoiți Sursa

中心点问题处理

liling 5 luni în urmă
părinte
comite
dc3515b83b
1 a modificat fișierele cu 42 adăugiri și 9 ștergeri
  1. 42 9
      main.html

+ 42 - 9
main.html

@@ -2817,6 +2817,7 @@
             } catch (e) {
             }
         }
+        player.Native.Camera.goHome(1)
         player.Native.Camera.moveTo([235.678127000173, 13.38107286701451, 74.13573809425804], [-1248.3191825020908, -262.59031050373517, -409.93944372657353], [-0.30023176822741604, -0.055832565112502126, 0.9522308596238611], 1);
     }
 
@@ -2832,7 +2833,7 @@
         }
         player.Native.Camera.moveTo([-60.91624261330108, -39.68511717426356, 85.99570940739352], [-61.26059834308166, -0.225858934410347, -0.5930273740619612], [-0.007940809332449061, 0.9099266223396253, 0.41469324265623975], 1);
     }
-    //2号楼内部最佳视图
+    //3号楼内部最佳视图
     function backMasterViewBy03() {
         if (AutoPlayer) {
             const img = $("#autoplayer_btn").find("img");
@@ -2841,11 +2842,14 @@
                 player.Native.CameraAnimation.stop();
             } catch (e) {
             }
-        }
+        } 
         player.Native.Camera.moveTo([59.56050392473782, -16.715593393512307, 33.88405960390085], [-225.90035917394823, 266.6367338252189, -87.93132661854877], [-0.2057201109308161, 0.20420057431057317, 0.9570691518431909], 1);
-        /*
-        Player.Native.Camera.setAnchorPos([59.56050392473782, -16.715593393512307, 33.88405960390085], [-225.90035917394823, 266.6367338252189, -87.93132661854877], [-0.2057201109308161, 0.20420057431057317, 0.9570691518431909]);
-        */
+        // 使用异步函数
+        (async () => {
+            setTimeout(function() {
+                player.Native.Camera.setAnchorPos([-127.20165252685547, 43.73373031616211,11.815496444702148]);
+            }, 3000);
+        })();
     }
 
     function backMasterView180() {
@@ -2899,7 +2903,7 @@
     //5. [推荐] 响应UserTimeOut消息,引擎接收用户鼠标触屏事件超时发出通知
     player.on("UserTimeOut", () => {
         console.info(`用户长时间没有操作三维视图,会话即将退出,可调用player.resetTimer()取消退出`);
-        if (!AutoPlayer) $("#autoplayer_btn").trigger('click') //开启自动漫游
+        if (!AutoPlayer && currentTargetType=='IN02') $("#autoplayer_btn").trigger('click') //开启自动漫游
     });
 
     async function loadFacModel(Native){
@@ -2929,19 +2933,25 @@
     async function loadIn03Model(Native){
         currentTargetType="IN03";
         await player.Native.Model.setModelVisible("FAC",false);
+        await player.Native.Model.setModelVisible("IN02",false);
+        await player.Native.Model.setModelVisible("IN04",false);
+        await player.Native.Model.setModelVisible("IN05",false);
         $("body>div.hideDiv[for='FAC']").hide();
         $("body>div.hideDiv[for='"+currentTargetType+"']").show();
         if(modelLoadState[currentTargetType]==null){
             var cf = "data://models/T_03.pr";
             var errStr = await PlayerUtils.call(Native.Model.loadModel, currentTargetType, cf);
             modelLoadState[currentTargetType] = true;
-        }
+        }        
         await player.Native.Model.setModelVisible(currentTargetType,true);
         player.Native.CameraAnimation.clearKeyFrame();
     }
     async function loadIn02Model(Native){
         currentTargetType="IN02";
         await player.Native.Model.setModelVisible("FAC",false);
+        await player.Native.Model.setModelVisible("IN03",false);
+        await player.Native.Model.setModelVisible("IN04",false);
+        await player.Native.Model.setModelVisible("IN05",false);
         $("body>div.hideDiv[for='FAC']").hide();
         $("body>div.hideDiv[for='"+currentTargetType+"']").show();
         if(modelLoadState[currentTargetType]==null){
@@ -3099,15 +3109,17 @@
                             break;
                     }
                     backMasterView();               
+                }else{
+                    moveFacAnything("LClick", event);
                 }
                 return;
             }
-            updateInfo("LClick", event)
+            if(currentTargetType=="IN02") updateInfo("LClick", event);
+            if(currentTargetType=="IN03") move03Anything("LClick", event);
         });
         Native.ModelTree.EventBrowseRClick.connect((event) => {
             updateInfo("RClick", event)
         });
-
     })
 
     async function updateSettings(object, type) {
@@ -3259,7 +3271,28 @@
     var openState = false;
     var dbClickTimer = null;
 
+    async function moveFacAnything(name,event){
+        console.log(name, event)
+        if(event.object==null) return;
+        var se = event.object;
+        player.Native.ModelTree.setSelectItem(event.object.item);
+        var calcInfo = await PlayerUtils.call(player.Native.ModelTree.calcItemAabb, se.item);
+        console.log(calcInfo)
+        player.Native.Camera.moveToAabbWithDistance([calcInfo.localAabb.min, calcInfo.localAabb.max], 0.5, 0, 0.9);
+    }
+    async function move03Anything(name,event){
+        console.log(name, event)
+        if(event.object==null) return;
+        var se = event.object;
+        player.Native.ModelTree.setSelectItem(event.object.item);
+        var calcInfo = await PlayerUtils.call(player.Native.ModelTree.calcItemAabb, se.item);
+        console.log(calcInfo)
+        player.Native.Camera.moveToAabbWithDistance([calcInfo.localAabb.min, calcInfo.localAabb.max], 0.5, 0, 1.1);
+        zoomCount=3
+    }
+
     async function updateInfo(name, event) {
+        if(event.object==null) return;
         if (AutoPlayer) $("#autoplayer_btn").trigger('click') //停止 自动漫游
         if (name != "LClick") {
             CloseWin()