xzw 2 년 전
부모
커밋
cc7c08149e
3개의 변경된 파일75개의 추가작업 그리고 51개의 파일을 삭제
  1. 73 13
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 1 37
      src/sdk/cover/index.js

+ 73 - 13
public/lib/potree/potree.js

@@ -69855,7 +69855,7 @@ void main() {
 	    }else {
 	        volume = new Potree.BoxVolume({boxColor: 0xff3158/* , boxOpacity:0.3 */});
 	    }
-	    
+	     
 	    volume.clip = args.clip || false;
 	    volume.name = args.name || 'Volume';
 	    volume.clipTask = ClipTask.SHOW_OUTSIDE;
@@ -112215,7 +112215,7 @@ ENDSEC
 		this.updateMatrixWorld = function () {
 	        if(!this.visible)return//add
 			if ( this.object !== undefined ) {
-
+	 
 				this.object.updateMatrixWorld();
 				this.object.parent.matrixWorld.decompose( parentPosition, parentQuaternion, parentScale );
 				this.object.matrixWorld.decompose( worldPosition, worldQuaternion, worldScale );
@@ -114533,7 +114533,52 @@ ENDSEC
 	     
 	        
 	        model.lastMatrixWorld = model.matrixWorld.clone();
+	    },
+	    
+	    
+	    changeOpacity(model, opacity){
+	         
+	        let isRoot = model.dataset_id != void 0;  //是否是最外层 
+	             
+	    
+	        if(model.isPointcloud){ 
+	            model.changePointOpacity(opacity); 
+	            //MergeEditor.updateEdgeStrength()
+	        }else {
+	            //model.traverse(e=>e.material && setOp(e, opacity))
+	            model.traverse(mesh=>{
+	                if(mesh.material){ 
+	                
+	                    mesh.material.opacity = opacity;
+	                    if(opacity<1){
+	                        mesh.material.transparent = true; 
+	                        if(model.isPointcloud){
+	                            mesh.changePointOpacity(opacity);  
+	                        }else {
+	                            mesh.material.opacity = opacity;
+	                        }
+	                        
+	                        mesh.renderOrder = Potree.config.renderOrders.model+1; 
+	                        mesh.material.depthWrite = false;
+	                    }else {
+	                        mesh.material.transparent = false;
+	                        mesh.renderOrder = Potree.config.renderOrders.model;
+	                        mesh.material.depthWrite = true;
+	                    }
+	                
+	                }
+	            });
+	        }
+	            
+	              
+	        isRoot && (model.opacity = opacity);//记录在最外层
+
+	        
 	    }
+	    
+	    
+	    
+	    
 	};   
 	    
 	    
@@ -122404,6 +122449,9 @@ ENDSEC
 	    
 	}
 
+	//xzw add:----
+
+	let unknownExtensions = {};
 	let oldSet = MeshBasicMaterial.prototype.setValues;
 	MeshBasicMaterial.prototype.setValues = function(values){
 	    return oldSet.call(this,values)
@@ -122740,9 +122788,10 @@ ENDSEC
 						default:
 
 							if ( extensionsRequired.indexOf( extensionName ) >= 0 && plugins[ extensionName ] === undefined ) {
-
-								console.warn( 'THREE.GLTFLoader: Unknown extension "' + extensionName + '".' ,'使用默认的KHR_materials_unlit材质' );
-	                             
+	                            if(!unknownExtensions[extensionName]){
+	                                console.warn( 'GLTFLoader: Unknown extension "' + extensionName + '".' ,'使用默认的KHR_materials_unlit材质' );
+	                                unknownExtensions[extensionName] = 1;
+	                            } 
 	                            //xzw add:  默认   
 	                            json.extensionsRequired = 'KHR_materials_unlit';
 	                            json.materials = [{
@@ -143674,6 +143723,7 @@ ENDSEC
 	}
 
 	function getRefine(refine) {
+	     
 	  switch (refine) {
 	    case 'REPLACE':
 	    case 'replace':
@@ -143683,7 +143733,7 @@ ENDSEC
 	    case 'add':
 	      return TILE_REFINEMENT.ADD;
 
-	    default:
+	    default: 
 	      return refine;
 	  }
 	}
@@ -144445,6 +144495,10 @@ ENDSEC
 	                            tileBoxes.add(box);
 	                            boxMap[tile.id] = box;
 	                        }
+	                        //xzw :
+	                        tileset.dispatchEvent({type:'meshLoaded',tileContent});
+	                        
+	                        
 	                    }
 	                }),
 	                onTileLoad: (tile) => __awaiter(this, void 0, void 0, function* () {
@@ -144813,8 +144867,8 @@ ENDSEC
 	                // !zeg改
 	                //未知                                                                                                                                 
 	                //tileContent.position.set(tile.header.boundingVolume.box[0], tile.header.boundingVolume.box[1], tile.header.boundingVolume.box[2])//add
-	                //这个链接需要加上这句https://testgis.4dage.com/LVBADUI_qp/tileset.json
-	                //console.log('位移tile', tileContent.position)
+	                //这个链接需要加上这句https://testgis.4dage.com/LVBADUI_qp/tileset.json //这和子集是否为json无关,为何在另一个工程正常
+	                //console.log('位移tile', tileContent.position)  
 	                
 	                
 	                
@@ -151660,14 +151714,16 @@ ENDSEC
 	                const scaleZ = vecZ.length();
 	                /* boundingBox.expandByPoint(center);
 	                boundingBox.expandByVector(new THREE.Vector3(scaleX,scaleY,scaleZ)) */
-	                
-	                
+	                 
 	                
 	                boundingBox.min.set( - scaleX, - scaleY, - scaleZ );
 	                boundingBox.max.set( scaleX, scaleY, scaleZ );
 	                
-	                
+	                //中心点居然没用。可能是漏用了什么信息,也许这和LVBADUI_qp是散的有关。
 	                console.log('3d tiles json',json);
+	                
+	                json.root.refine = 'ADD';
+	                json.refine = 'ADD';
 	            }else {
 	                this.setObjectLayers(object,'model');  
 	                
@@ -151778,13 +151834,17 @@ ENDSEC
 
 	              
 	            let loaded = false;
-	            result.runtime.getTileset().addEventListener('endTileLoading', function (data) {//Tileset3D
+	            let tileset = result.runtime.getTileset();
+	            tileset.addEventListener('endTileLoading', function (data) {//Tileset3D
 	                if (data.loadingCount == 0 && !loaded) {
 	                    loaded = true; 
 	                    console.log('loaded!!!!!!!!!!!!!');
 	                }
 	            });
-	            
+	            tileset.addEventListener('meshLoaded',(e)=>{ 
+	                let opacity = result.model.opacity;
+	                MergeEditor.changeOpacity(e.tileContent,opacity); 
+	            });
 	        }
 	        
 	        

파일 크기가 너무 크기때문에 변경 상태를 표시하지 않습니다.
+ 1 - 1
public/lib/potree/potree.js.map


+ 1 - 37
src/sdk/cover/index.js

@@ -514,44 +514,8 @@ export const enter = (dom, isLocal) => {
                 changeOpacity(opacity){ //见笔记:透明物体的材质设置
                     if(opacity == void 0)opacity = 100
                     opacity/=100
-                    
-                  
-                    
                     if(model){
-                        if(model.isPointcloud){ 
-                            model.changePointOpacity(opacity) 
-                            //MergeEditor.updateEdgeStrength()
-                        }else{
-                            //model.traverse(e=>e.material && setOp(e, opacity))
-                            model.traverse(mesh=>{
-                                if(mesh.material){ 
-                                
-                                    mesh.material.opacity = opacity
-                                    if(opacity<1){
-                                        mesh.material.transparent = true 
-                                        if(model.isPointcloud){
-                                            mesh.changePointOpacity(opacity)  
-                                        }else{
-                                            mesh.material.opacity = opacity
-                                        }
-                                        
-                                        mesh.renderOrder = Potree.config.renderOrders.model+1 
-                                        mesh.material.depthWrite = false
-                                    }else{
-                                        mesh.material.transparent = false
-                                        mesh.renderOrder = Potree.config.renderOrders.model
-                                        mesh.material.depthWrite = true
-                                    }
-                                
-                                }
-                            })
-                        }
-                            
-                            
-                            
-                            
-                         
-                        model.opacity = opacity//记录在最外层
+                        MergeEditor.changeOpacity(model,opacity) 
                     }
                      
                 },