Browse Source

fix: measure.setEditEnable

xzw 4 tháng trước cách đây
mục cha
commit
5ed44b91ff
1 tập tin đã thay đổi với 16 bổ sung4 xóa
  1. 16 4
      src/custom/objects/tool/ctrlPolygon.js

+ 16 - 4
src/custom/objects/tool/ctrlPolygon.js

@@ -27,6 +27,7 @@ export class ctrlPolygon extends THREE.Object3D {
             this[i] = prop[i]
         }
         this.color = this.color || config.measure.default.color
+         
         
         if((this.atPlane || this.showArea ) && this.closed && this.dimension == '2d'){
             this.areaPlane = this.createAreaPlane(); 
@@ -40,7 +41,7 @@ export class ctrlPolygon extends THREE.Object3D {
 		this.edges = [];
         
         this.center
-        
+        this.setEditEnable(true)
         
         
         
@@ -109,7 +110,16 @@ export class ctrlPolygon extends THREE.Object3D {
     }
     
     
-    
+    setEditEnable(state){
+        this.editEnable = state
+        if(state){
+            this.markers.forEach(m=>m.dispatchEvent('addHoverEvent') )
+        }else{
+            this.markers.forEach(m=>m.removeEventListeners())
+        }
+
+
+    }
     
     
     addMarker(o={}){
@@ -139,7 +149,9 @@ export class ctrlPolygon extends THREE.Object3D {
             o.marker.createTime = Date.now()
             
             let addHoverEvent = (e)=>{
-                let mouseover = (e) => { 
+                if(o.marker._listeners?.startDragging || !this.editEnable)return //already has
+                
+                let mouseover = (e) => {  
                     this.setMarkerSelected(e.object, 'hover', 'single'); 
                     viewer.dispatchEvent({
                         type : "CursorChange", action : "add",  name:"markerMove"
@@ -183,7 +195,7 @@ export class ctrlPolygon extends THREE.Object3D {
     
      
     dragMarker(e){
-        
+        if(!this.editEnable)return
         var I, atMap 
         
         if(e.hoverViewport != e.drag.dragViewport){//不能使用e.dragViewport,要使用drag中的,因为drag中存储的要一直继承下来,不因mouseup了而改变。