xzw 1 年之前
父節點
當前提交
c6c798e4b9
共有 3 個文件被更改,包括 11 次插入8 次删除
  1. 1 1
      src/custom/modules/panos/Panorama.js
  2. 1 1
      src/custom/objects/tool/Measure.js
  3. 9 6
      src/custom/utils/UnitConvert.js

+ 1 - 1
src/custom/modules/panos/Panorama.js

@@ -13,7 +13,7 @@ var texLoader = new THREE.TextureLoader()
 
                                                                          
 const markerOpacitys ={
-    default : 0.5,
+    default : 0.4,
     hovered : 1,
 }
 

+ 1 - 1
src/custom/objects/tool/Measure.js

@@ -233,7 +233,7 @@ export class Measure extends ctrlPolygon{
             let center = new THREE.Vector3().addVectors(p1,p2).multiplyScalar(0.5);  
             label.setPos(center) 
             distance = distance == void 0 ? p1.distanceTo(p2) : distance; 
-            var text = viewer.unitConvert.convert(distance, 'distance', Potree.settings.precision, this.unitSystem, 0.1 , true)//distance要传0.1 这个factor
+            var text = viewer.unitConvert.convert(distance, 'distance', Potree.settings.precision, this.unitSystem, 1 , true)//distance要传0.1 这个factor
             label.setText(text)
             return distance
         }

+ 9 - 6
src/custom/utils/UnitConvert.js

@@ -270,9 +270,9 @@ class UoMService{
         return  this.convert(t, n, precision, r, minFactor)
     }
     
-    convert(number, domain, precision = 2, system, minFactor, ifEighths = !1) { 
+    convert(number, domain, precision = 2, system, minFactor, ifEighths = !1, ifRestrictFactor) { 
         if (!number) return "";
-        var s = this.getMostRelevantMeasurement(domain, system || this.UnitService.currentSystem, number, minFactor);
+        var s = this.getMostRelevantMeasurement(domain, system || this.UnitService.currentSystem, number, minFactor, ifRestrictFactor);
         return this.getFormattedMeasurementString(s[0], s[1], precision, ifEighths)
     }
     
@@ -322,7 +322,7 @@ class UoMService{
         return  0 !== r ? r + "' " + s + a + '"' : "" + s + a + '"'
     }
     
-    getMostRelevantMeasurement(domain, system, number, minFactor=0) {
+    getMostRelevantMeasurement(domain, system, number, minFactor=0, ifRestrictFactor) {
         /* var a = r.values(UnitsOfMeasurement.getUnitsOfMeasurementByDomainAndSystem(domain, system))
           , s = r.filter(a, function(t) {  
             return t.factor >= i
@@ -334,9 +334,12 @@ class UoMService{
         let u = UnitsOfMeasurement.getUnitsOfMeasurementByDomainAndSystem(domain, system)
         for(let i in u){a.push(u[i])}
          
-        let s = a.filter(m=>m.factor >= minFactor) 
-         
-        
+        let s   
+        if(ifRestrictFactor){//是否只用这一单位,如只用mm。如果不是,就会寻找最大的接近的单位,如设置最小为mmminFactor=0.001),则1.2米时是'1.2m'、0.2米时是'20cm'、0.002米时是'2mm'
+            s = a.filter(m=>m.factor == minFactor)  
+        }else{
+            s = a.filter(m=>m.factor >= minFactor)
+        } 
        
         let c = s.reduce(function(prev, currentValue) {//reduce最终值是最后一次return的值 ( 没看懂这句话作用) 
             return currentValue.fromBase(number) < prev.fromBase(number) && currentValue.fromBase(number) >= 1 ? currentValue : prev