|
@@ -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了而改变。
|