xzw 5 mesi fa
parent
commit
fd71abefb3

+ 4 - 4
src/custom/modules/datasetAlignment/Alignment.js

@@ -173,7 +173,7 @@ var Alignment = {
             
             if(this.handleState == 'translate'){
                 e.pointclouds.forEach(cloud=>Alignment.translate(cloud, e.moveVec))
-                this.updateFakeMarker()
+                //this.updateFakeMarker()
                 
             }else if(this.handleState == 'rotate'){
                 //if(Potree.settings.editType == 'pano'){  
@@ -351,7 +351,7 @@ var Alignment = {
     },
     
     
-    rotateAround(center, pointcloud, angle){//绕center点水平转动
+    rotateAround(center, pointcloud, angle, axis){//绕center点水平转动
         
         let vec1 = new THREE.Vector3().subVectors(pointcloud.translateUser, center);
         let rotMatrix = typeof(angle) == 'number' ? 
@@ -366,7 +366,7 @@ var Alignment = {
     },
     
     
-    rotate:function(pointcloud, deg, angle){//绕各自中心水平转动(各自的position)   假设点云位移position后0,0,0就是它的中心了(根据navvis观察这样做是绕同一个点旋转的)
+    rotate:function(pointcloud, deg, angle, axis){//绕各自中心水平转动(各自的position)   假设点云位移position后0,0,0就是它的中心了(根据navvis观察这样做是绕同一个点旋转的)
         let qua 
         
         if(deg || typeof(angle) == 'number'){
@@ -383,7 +383,7 @@ var Alignment = {
         } 
         
         if(!qua){
-            qua = new THREE.Quaternion().setFromAxisAngle(new THREE.Vector3(0,0,1), angle)     
+            qua = new THREE.Quaternion().setFromAxisAngle(axis || new THREE.Vector3(0,0,1), angle)     
         } 
         pointcloud.orientationUser.premultiply(qua)
          

+ 34 - 18
src/custom/objects/tool/Measure.js

@@ -47,7 +47,7 @@ const mainLabelProp = {
     textColor: {r: textColor.r*255, g: textColor.g*255, b: textColor.b*255, a: 1.0},
     textBorderColor: {r:255, g: 255, b:255, a: 1.0},
     textBorderThick:3  ,
-    fontsize: 15 * textSizeRatio, 
+    fontsize: 14 * textSizeRatio, 
     borderRadius : 12, margin:{x:20,y:4},
     renderOrder : Potree.config.renderOrders.measureLabel, 
     pickOrder: Potree.config.renderOrders.measureLabel,  
@@ -66,7 +66,7 @@ const subLabelProp = {
     textColor: {r: textColor.r*255, g: textColor.g*255, b: textColor.b*255, a: 1.0},
     textBorderColor: {r:255, g: 255, b:255, a: 1.0},
     textBorderThick:3  ,
-    fontsize: 14 * textSizeRatio,  
+    fontsize: 13 * textSizeRatio,  
     renderOrder : Potree.config.renderOrders.measureLabelSub, 
     pickOrder: Potree.config.renderOrders.measureLabelSub,  
     transform2D: {x:0, y:-0.13},
@@ -270,25 +270,18 @@ export class Measure extends ctrlPolygon{
          
          
          
-        let setEdgeLabel = (label,p1,p2,distance)=>{//设置label位置和字
+        let setEdgeLabel = (label,p1,p2,distance,type)=>{//设置label位置和字
             this.setEdgeLabelPos(label,p1,p2) 
             distance = distance == void 0 ? p1.distanceTo(p2) : distance; 
             //var text = viewer.unitConvert.convert(distance, 'distance', Potree.settings.precision, this.unitSystem, 1 , true)//distance要传0.1 这个factor
-            var text = this.getConvertString(distance, 'distance')   
+            var text = this.getConvertString(distance, 'distance')  
+            this.showArea || type == 'addTitle' && (text = this.labelAddName(text))
             label.setText(text)
             return distance
         }
         
          
-        /* let setEdgeLabel = (label,p1,p2,distance)=>{//设置label位置和字
-            this.setEdgeLabelPos(label,p1,p2)
- 
-            distance = distance == void 0 ? p1.distanceTo(p2) : distance; 
-            var text = this.labelText || viewer.unitConvert.convert(distance, 'distance',  Potree.settings.precision , this.unitSystem, 0.001 , true, true)//distance要传0.1 这个factor
-            label.setText(text)
-          
-        } */
-         
+       
         let lastIndex = this.points.length - 1
          
         
@@ -309,7 +302,7 @@ export class Measure extends ctrlPolygon{
                 Utils.updateVisible(edgeLabel, 'shouldVisi', edgeLabel.shouldVisi, 2)
                 if(edgeLabel.shouldVisi){
                     edgeLabel.lineDir = new THREE.Vector3().subVectors(point,nextPoint).normalize() //[point,nextPoint]
-                    setEdgeLabel(edgeLabel,point,nextPoint,distance)
+                    setEdgeLabel(edgeLabel,point,nextPoint,distance, this.measureType != 'MulDistance' && 'addTitle')
                 }  
             }
         }
@@ -363,7 +356,7 @@ export class Measure extends ctrlPolygon{
         if(this.showArea && this.points.length > 2){ // update area 
            
             let msg = this.getArea().string
-            
+            msg = this.labelAddName(msg)
             this.areaLabel.setPos(this.getCenter('areaPlaneCenter'))
             this.areaLabel.setText(msg);
             Utils.updateVisible(this.areaLabel, 'setVisible', true) //this.areaLabel.setVisible(true)
@@ -378,7 +371,8 @@ export class Measure extends ctrlPolygon{
   
             if(this.showTotalDis){   
                 let dis = this.getTotalDistance()
-                let msg = this.getConvertString(dis, 'distance')   
+                let msg = this.getConvertString(dis, 'distance')
+                msg = this.labelAddName(msg)    
                 this.center = null
                 this.center = this.getCenter()
                 this.totalDisLabel.setPos(this.center);
@@ -389,6 +383,12 @@ export class Measure extends ctrlPolygon{
         this.expands.forEach(e=>e.update(options))
 	};
     
+    labelAddName(msg){
+        if(Potree.config.measure.showName && this.title?.trim()){
+            msg = [this.title,msg]
+        }
+        return msg
+    }
         
     getArea(){ 
         let area
@@ -1109,8 +1109,7 @@ export class Measure extends ctrlPolygon{
                  
                 let c = new THREE.Color().set(this.color).getHSL({ h: 0, s: 0, l: 0 }) 
                 let expandColor = new THREE.Color().setHSL(c.h, c.s, c.l >= 0.4 ? c.l - 0.3: c.l + 0.3)
-                        //new THREE.Color().setHSL(c.h, c.s > 0.5 ? c.s - 0.2 : c.s + 0.2,   c.l >= 0.6 ? c.l - 0.1 : c.l + 0.1 ) 
-                
+                let expandSelectedColor = new THREE.Color().setHSL(c.h, c.s > 0.5 ? c.s - 0.2 : c.s + 0.2,  c.l >= 0.6 ? c.l - 0.1 : c.l + 0.1 ) 
                 
                 colorObject = { 
                     edgeDefault:  LineDraw.createFatLineMat($.extend({},lineDepthInfo,{ 
@@ -1141,6 +1140,16 @@ export class Measure extends ctrlPolygon{
                         transparent: true,
                         opacity: config.measure.default.opacity,
                     })),
+                    
+                    'edgeExpand-selected':  LineDraw.createFatLineMat($.extend({},lineDepthInfo,{ 
+                        color: expandSelectedColor, 
+                        useDepth :true,
+                        lineWidth: 2 ,
+                        transparent: true,
+                        opacity: config.measure.highlight.opacity,
+                    })),
+                    
+                    
                     markerDefault:    new DepthBasicMaterial($.extend({},lineDepthInfo,{ 
                         transparent: !0,
                         opacity: 1,
@@ -1662,6 +1671,13 @@ class ExpandLine extends ctrlPolygon{
         this.area = {value:area, string: this.getConvertString(area, 'area')   }
         return this.area
     }
+    
+    setSelected(state){
+        this.edges.forEach(e=>{
+            e.material = this.measure.getMat(state ? 'edgeExpand-selected' : 'edgeExpand')
+        })
+        viewer.dispatchEvent('content_changed')
+    }
 }
 ExpandLine.prototype.getPoint2dInfo = Measure.prototype.getPoint2dInfo
 ExpandLine.prototype.getConvertString = Measure.prototype.getConvertString

+ 2 - 0
src/custom/settings.js

@@ -207,6 +207,8 @@ const config = {//配置参数   不可修改
         mulLabelHideFaraway : false ,// 多折线根据远近显示label
         
         adsorptMinDis : 30, //最小吸附距离(像素)
+        
+        showName:true
     },
     material:{//初始化
         pointSize: 0.1,