xzw 3 년 전
부모
커밋
6e602066d0
3개의 변경된 파일89개의 추가작업 그리고 14개의 파일을 삭제
  1. 40 8
      public/lib/potree/potree.js
  2. 1 1
      public/lib/potree/potree.js.map
  3. 48 5
      src/sdk/cover/index.js

+ 40 - 8
public/lib/potree/potree.js

@@ -103165,6 +103165,12 @@ ENDSEC
             
         }
         
+        
+        changeTitle(title){
+            this.titleLabel.changeText(title);
+        }
+        
+        
         updateMatrixWorld(force){ //重写,只为了将root当做parent
              
             this.updateMatrix(); 
@@ -103196,7 +103202,11 @@ ENDSEC
         } 
 
         
-        
+        dispose(){
+            this.parent.remove(this);
+            this.titleLabel.dispatchEvent({type:'dispose'});
+            
+        } 
         
         
         
@@ -103221,6 +103231,19 @@ ENDSEC
         }
         
         
+        
+        
+        createTagFromData(data){
+            let tag = new Tag({
+                title: data.title, position: data.position,  normal: data.normal,
+                root: data.root   //e.intersect.pointcloud || e.intersect.object
+            });
+            
+            return tag
+            
+        }
+         
+        
         startInsertion (args = {}, callback, cancelFun) {
             let deferred = $.Deferred();
              
@@ -103228,12 +103251,14 @@ ENDSEC
     			type: 'start_inserting_tag' 
     			 
     		});
-            
+            this.adding = true;
             
             let cancel = ()=>{
                 end();
             };
             let end = ()=>{
+                this.adding = false;
+                viewer.dispatchEvent({type:"endTagMove"});
                 this.viewer.removeEventListener('global_click', click);
             };
             let click = (e)=>{
@@ -103249,8 +103274,8 @@ ENDSEC
                 
                 let tag = new Tag({
                     title: '1', position: localPos,  normal:e.intersect.normal,
-                    root: e.intersect.pointcloud || e.intersect.object}
-                ); 
+                    root: e.intersect.pointcloud || e.intersect.object
+                }); 
                 
                 //pointcloud里加一个normal 的非float32
                 
@@ -103259,6 +103284,8 @@ ENDSEC
                 end();
                 e.consume && e.consume();
                 deferred.resolve(tag);
+                
+                
                 return {stopContinue:true}
                 
             };
@@ -118385,14 +118412,19 @@ ENDSEC
             
             this.state = {};
             
-            viewer.addEventListener('measureMovePoint',()=>{
+            let startCrossStyle = ()=>{
                 this.state.cross = true;
                 this.judgeTex();
-            }); 
-            viewer.addEventListener('endMeasureMove',()=>{
+            };
+            let endCrossStyle = ()=>{
                 this.state.cross = false;
                 this.judgeTex();
-            }); 
+            };
+            
+            viewer.addEventListener('measureMovePoint',startCrossStyle); 
+            viewer.addEventListener('endMeasureMove',endCrossStyle);
+            viewer.addEventListener('start_inserting_tag',startCrossStyle); 
+            viewer.addEventListener('endTagMove',endCrossStyle);
             
             viewer.addEventListener('reticule_forbit',(e)=>{
                 if(this.state.forbit != e.v){

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


+ 48 - 5
src/sdk/cover/index.js

@@ -917,19 +917,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