Browse Source

fix: slam场景因无漫游点 取消分屏后 computeShift 等直接返回无diff

xzw 1 year ago
parent
commit
ccc1d725c3
1 changed files with 14 additions and 2 deletions
  1. 14 2
      src/utils/ConvertViews.js

+ 14 - 2
src/utils/ConvertViews.js

@@ -506,7 +506,15 @@ export default class ConvertViews extends THREE.EventDispatcher{
         if(length<2){
             console.error('最小漫游点个数少于两个!!!')
         }
-        
+        if(length==0){//slam
+            return {
+                diffLon:0,   //diffLonAve,
+                diffQua: new THREE.Quaternion  ,
+                diffQuaInvert: new THREE.Quaternion,
+                sourceFakeApp,
+                targetFakeApp
+            } 
+        }
 
         //挑选连续的两个点为向量来计算,如有123个漫游点,则选取12 23 31作为向量
 
@@ -601,7 +609,11 @@ export default class ConvertViews extends THREE.EventDispatcher{
             matrix.premultiply(moveBackMatrix)//再移动到realPosition的点0处
             return matrix
         }
-         
+        if(length == 0){
+            convertInfo.convertMatrix = new THREE.Matrix4
+            convertInfo.convertMatrixInvert = new THREE.Matrix4
+            return convertInfo
+        }
         matrix = compute(panoPos1,panoPos2)