xzw hace 1 año
padre
commit
2e65e518b3
Se han modificado 3 ficheros con 13 adiciones y 18 borrados
  1. 4 1
      src/custom/objects/Magnifier.js
  2. 1 2
      src/custom/settings.js
  3. 8 15
      src/custom/viewer/ViewerNew.js

+ 4 - 1
src/custom/objects/Magnifier.js

@@ -48,6 +48,7 @@ export default class Magnifier extends THREE.Object3D {//放大镜or望远镜
             let sizeType
             let colorType
             let opacityBefore = new Map()
+            let sizeBefore = new Map()
             let visiMap = new Map()
             this.viewport.beforeRender = ()=>{
                 
@@ -57,6 +58,7 @@ export default class Magnifier extends THREE.Object3D {//放大镜or望远镜
                     e.visible = Potree.Utils.getObjVisiByReason(e, 'datasetSelection'); //先将隐藏的点云显示
                 
                     opacityBefore.set(e,e.temp.pointOpacity)  
+                    sizeBefore.set(e,e.temp.pointSize)  
                 }) 
                 
                 
@@ -72,7 +74,7 @@ export default class Magnifier extends THREE.Object3D {//放大镜or望远镜
                     colorType = e.material.activeAttributeName
                     e.material.activeAttributeName = 'rgba'
                     e.changePointOpacity(1) 
-                   
+                    e.changePointSize(Potree.config.material.realPointSize, true)
                 }) 
             };
             
@@ -86,6 +88,7 @@ export default class Magnifier extends THREE.Object3D {//放大镜or望远镜
                     e.material.pointSizeType = sizeType
                     e.material.activeAttributeName = colorType  
                     e.changePointOpacity(opacityBefore.get(e))  
+                    e.changePointSize(sizeBefore.get(e)) 
                 }) 
                 
             } 

+ 1 - 2
src/custom/settings.js

@@ -99,8 +99,7 @@ const config = {//配置参数   不可修改
     
     pointDensity:{
         magnifier:{  
-            maxLevelPercent: 1,
-            pointBudget : 8*1000*1000,  
+            maxLevelPercent: 1 
         },
         panorama:{//显示全景时的漫游。因为点只能显示1个像素的大小,所以必须很密集,但又要限制点的数量
             maxLevelPercent: 0.6,

+ 8 - 15
src/custom/viewer/ViewerNew.js

@@ -560,15 +560,8 @@ export class Viewer extends ViewerBase{
                 set: (density)=>{
                     if(density && density != pointDensity){  
                         let pointBudget;
-                        var config = Potree.config.pointDensity[density];
-                        
-                        if(this.magnifier.visible){//放大镜打开时不要切换pointBudget,否则点云会闪烁。这时使用最高密度。
-                            pointBudget = Potree.config.pointDensity['magnifier'].pointBudget
-                        }else{
-                            pointBudget = config.pointBudget
-                        }
-                        
-                        
+                        var config = Potree.config.pointDensity[density]; 
+                        pointBudget = config.pointBudget
                         viewer.setMinNodeSize(config.minNodeSize || Potree.config.minNodeSize)
                         viewer.setPointBudget(pointBudget );
                         //Potree.maxPointLevel = config.maxLevel
@@ -1371,12 +1364,12 @@ export class Viewer extends ViewerBase{
 		}
 	}
 
-	setPointBudget (value) { //pointBudget: 每次刷新显示点数量的最大值。  缓存中的点数量也跟此有关,但大于这个数值。
-		if (Potree.pointBudget !== value) {
-			Potree.pointBudget = parseInt(value);
-			this.dispatchEvent({'type': 'point_budget_changed', 'viewer': this});
-		}
-	};
+	setPointBudget (value) {  
+        if (Potree.pointBudget !== value && value) { 
+            Potree.pointBudget = parseInt(value);
+            this.dispatchEvent({'type': 'point_budget_changed', 'viewer': this});
+        }
+    };
 
 	getPointBudget () {
 		return Potree.pointBudget;