소스 검색

fix: 三维视角的模型中 ,序厅没有入口

xzw 3 년 전
부모
커밋
6b42f6b73e
1개의 변경된 파일41개의 추가작업 그리고 14개의 파일을 삭제
  1. 41 14
      public/static/js/main_2020_show.js

+ 41 - 14
public/static/js/main_2020_show.js

@@ -228,19 +228,9 @@ var updateArrow = function(currentPano){//根据当前pano更新
 }
 
 
+//---------半透明白色 模型外层-----------
 
-
-
-
-
-
-
-
-
-
-//=================gif sprite=========
-window.animations = []
-
+ 
 
 var addModelBack = function(model){
     let mat = new THREE.MeshBasicMaterial({side:1, color:0xffffff, transparent:true, opacity:0.5,
@@ -256,7 +246,42 @@ var addModelBack = function(model){
         chunkCopy.name = 'model透明层' 
         transparentModel.add(chunkCopy)
     }) 
+    
+    //去除一部分面
+
+    
+    let removeIndex = [[1,0,14],[0,1,2],[2,3,0]] 
+    let newIndex = []
+    let arr = transparentModel.children[1].geometry.index.array
+    for(let i=0;i<arr.length;i+=3){
+        let find = false
+        for(let j=0;j<removeIndex.length;j++){
+            let face = removeIndex[j]; 
+            if(arr[i] == face[0] && arr[i+1] == face[1] && arr[i+2] == face[2]){
+                find = true;
+                //console.log('find', j)
+                removeIndex.splice(j,1)
+                break
+            } 
+        } 
+        find || newIndex.push(arr[i],arr[i+1],arr[i+2])
+    } 
+    
+    
+    transparentModel.children[1].geometry.setIndex(new THREE.BufferAttribute(new Uint16Array(newIndex),1))
+    //注:面的index在getMouseIntersect中获取
+    
 }
+
+
+
+
+
+
+//=================gif sprite=========
+window.animations = []
+
+
     
 var floorHeight = 0.01, spriteHeight = 1.1; 
 var spriteY = floorHeight + spriteHeight / 2  ;
@@ -23090,11 +23115,13 @@ window.Modernizr = function(n, e, t) {
                         this.intersectHot && $("#player").css("cursor", "pointer");
                          
                     }
-                }   
+                }else{
+                    this.intersect = this.getMouseIntersect() 
+                }                    
             
                 
                 
-                this.intersect = this.getMouseIntersect(),
+                
                 this.intersect && this.updateClosestPano(this.intersect),
                 this.closestPano || this.closestPanoInDirection(this.getMouseDirection()) ? (this.reticule.updatePosition(this.position, this.intersect),
                 f.navigation.panoScores && !f.navigation.mouseDirection && this.closestPanoInDirection(this.getDirection())) : this.reticule.hide()