xzw преди 2 години
родител
ревизия
382381a798
променени са 3 файла, в които са добавени 86 реда и са изтрити 29 реда
  1. 16 13
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 69 15
      src/sdk/cover/index.js

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

@@ -792,6 +792,9 @@
         boundAddObjs:false,
         intersectOnObjs:false,
         intersectWhenHover:true,
+
+
+        precision:2  // 两位小数
     };
      
      
@@ -60807,7 +60810,7 @@ void main() {
                 let center = new 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', 3, this.unitSystem, 0.1 , true);//distance要传0.1 这个factor
+                var text = viewer.unitConvert.convert(distance, 'distance', Potree.settings.precision, this.unitSystem, 0.1 , true);//distance要传0.1 这个factor
                 label.setText(text);
                 return distance
             };
@@ -60870,7 +60873,7 @@ void main() {
                     this.areaLabel.setVisible(false)
                 }else{ */
                     let area = Math.abs(math.getArea(this.point2dInfo.points2d));//this.getArea();
-                    let msg = viewer.unitConvert.convert(area, 'area', 3, this.unitSystem/* , 0.1 */ );
+                    let msg = viewer.unitConvert.convert(area, 'area', Potree.settings.precision, this.unitSystem/* , 0.1 */ );
                     this.area = {value:area, string:msg};
                     
                     this.areaLabel.setPos(this.center);
@@ -117677,14 +117680,14 @@ ENDSEC
                 viewer.setObjectLayers(this.transformControls2, 'layer2' );  
                 
                 let mouseDown = (e)=>{
-                    if(this.split && this.selected.isPointcloud){ 
-                        viewer.outlinePass.edgeStrength = 0;//暂时消失线
-                    }
+                     
+                    viewer.outlinePass.edgeStrength = 0;//暂时消失线
+                     
                 };
                 let mouseUp = (e)=>{
-                    if(this.split && this.selected.isPointcloud){ 
-                        viewer.outlinePass.edgeStrength = edgeStrengths.pointcloud;
-                    }
+                     
+                    viewer.outlinePass.edgeStrength =  this.selected.isPointcloud ? edgeStrengths.pointcloud : edgeStrengths.glb;
+                     
                 };
                 this.transformControls.addEventListener('mouseDown',mouseDown);
                 this.transformControls2.addEventListener('mouseDown',mouseDown);
@@ -117756,9 +117759,9 @@ ENDSEC
                             if(e.intersect.pointclouds.includes(this.selected) || e.intersect.allElements.some(e=>e.object == this.selected)){
                                 
                                 dragInfo = {};   
-                                if(this.selected.isPointcloud){ 
+                                //if(this.selected.isPointcloud){ 
                                     viewer.outlinePass.edgeStrength = 0;//暂时消失线
-                                } 
+                                //} 
                             }  
                         }
                              
@@ -117835,8 +117838,8 @@ ENDSEC
                     dragInfo = null;
                     this.clearTranCursor();
                      
-                    if(this.selected.isPointcloud){ 
-                        viewer.outlinePass.edgeStrength = edgeStrengths.pointcloud;
+                    if(this.selected/*  && this.selected.isPointcloud */){ 
+                        viewer.outlinePass.edgeStrength = this.selected.isPointcloud ? edgeStrengths.pointcloud : edgeStrengths.glb;
                     } 
                     
                 });
@@ -129209,7 +129212,7 @@ ENDSEC
     			performance.mark("render-end");
     			performance.measure("render", "render-start", "render-end");
     		}
-    	}
+    	} 
 
 
 

Файловите разлики са ограничени, защото са твърде много
+ 1 - 1
public/lib/potree/potree.js.map


+ 69 - 15
src/sdk/cover/index.js

@@ -476,8 +476,6 @@ export const enter = (dom, isLocal) => {
             if(props.opacity == void 0)  props.opacity = 1
             props.scale /= 100
             if(props.type == 'obj') props.type = 'glb'
-                
-            
             
             
             if(!props.isFirstLoad){ 
@@ -652,8 +650,8 @@ export const enter = (dom, isLocal) => {
                      
                 },
                 changeBottom(z){
-                    model && MergeEditor.setModelBtmHeight(model,z)
-                    model.dispatchEvent('transformChanged') //改了position
+                    /* model && MergeEditor.setModelBtmHeight(model,z)
+                    model.dispatchEvent('transformChanged') //改了position */
                 },
                 changePosition(pos){//校准取消时执行
                     //if(MergeEditor.selected == model){
@@ -675,20 +673,26 @@ export const enter = (dom, isLocal) => {
                     if(model){
                         if(MergeEditor.split){//分屏校准
                             MergeEditor.setTransformState('rotate')
-                        }else{
-                            MergeEditor.transformControls.attach(model)
-                            MergeEditor.transformControls.mode = 'rotate'
+                            MergeEditor.transformControls2.attach(model)
+                            MergeEditor.transformControls2.mode = 'rotate'
                         } 
+                         
+                        
+                        MergeEditor.transformControls.attach(model)
+                        MergeEditor.transformControls.mode = 'rotate'
+                         
                     }
                 }, 
                 enterMoveMode(){
                     if(model){ 
                         if(MergeEditor.split){//分屏校准
                             MergeEditor.setTransformState('translate')
-                        }else{
-                            MergeEditor.transformControls.attach(model)
-                            MergeEditor.transformControls.mode = 'translate'
+                            MergeEditor.transformControls2.attach(model)
+                            MergeEditor.transformControls2.mode = 'translate'
                         } 
+                        MergeEditor.transformControls.attach(model)
+                        MergeEditor.transformControls.mode = 'translate'
+                         
                     }
                 },
                 leaveTransform(){
@@ -698,15 +702,20 @@ export const enter = (dom, isLocal) => {
                         MergeEditor.setTransformState(null)
                     }else{ 
                         MergeEditor.transformControls.detach()
+                        MergeEditor.transformControls2.detach()
                     }
                 },
                 
                 enterAlignment(){//开始校准
                     MergeEditor.enterSplit()
+                    
                     result.leaveTransform()
                     //console.log('enterAlignment',model.position, model.rotation)
                     let bus = new mitt()
                     
+                    /* MergeEditor.transformControls.attach(model)
+                    MergeEditor.transformControls.mode = 'translate' */
+                    
                     return { 
                         bus  
                     } 
@@ -714,6 +723,8 @@ export const enter = (dom, isLocal) => {
                 leaveAlignment(){
                     //console.log('leaveAlignment',model.position, model.rotation)
                     MergeEditor.leaveSplit() 
+                    
+                    MergeEditor.transformControls.detach()
                 },
                 
                 enterScaleSet(){//设置比例
@@ -919,19 +930,62 @@ export const enter = (dom, isLocal) => {
         
         addTag(info){//加热点
             let bus = mitt()  
+            let tag
+            
+            
+            let done = ()=>{
+                bus.emit('added')
+                bus.emit('update', {position: tag.position.clone(), normal:o.normal.clone(),  modelId:tag.root.dataset_id  } )
+                tag = tag_
+                tag.spot.addEventListener('mouseover',()=>{
+                    bus.emit('hoverState',true)
+                })
+                tag.spot.addEventListener('mouseout',()=>{
+                    bus.emit('hoverState',false)
+                })
+                
+            }
+            
             if(!info.position){
-                viewer.tagTool.startInsertion().done(tag=>{
-                    bus.emit('added')
-                    
-                    
+                viewer.tagTool.startInsertion().done(tag_=>{
+                    done() 
                 }) 
+            }else{
+                info.root = MergeEditor.getAllObjects().find(e=>e.dataset_id == info.modelId)
+                if(!info.root){
+                    console.error('没有找到该modelId')
+                }
+                
+                tag = viewer.tagTool.createTagFromData(info)
+                done()
             }
             
             
             
             
             let result = {
-                bus
+                bus,
+                getScreenPos(){
+                    let pos3d = new THREE.Vector3().setFromMatrixPosition( tag.matrixWorld ) 
+                    return sdk.getScreenByPosition(pos3d) 
+                },
+                show(){
+                    viewer.updateVisible(tag, 'byList', true)
+                },
+                hide(){
+                    viewer.updateVisible(tag, 'byList', false)
+                },
+                destroy(){
+                    if(tag){
+                        tag.dispose()
+                    } 
+                        
+                     
+                    viewer.dispatchEvent({ type: 'cancel_insertions', remove: true    })
+                },
+                changeTitle(title){
+                    tag.changeTitle(title)
+                }
             }
             
             return result