@xeokit/xeokit-sdk 2.4.2-beta-31 → 2.4.2-beta-32

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -11898,7 +11898,25 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
11898
11898
 
11899
11899
  this._currentAngleMeasurement = null;
11900
11900
 
11901
+ // init markerDiv element (think about making its style configurable)
11902
+ this._initMarkerDiv();
11903
+
11904
+ this._onMouseHoverSurface = null;
11905
+ this._onHoverNothing = null;
11906
+ this._onPickedNothing = null;
11907
+ this._onPickedSurface = null;
11908
+
11909
+ this._onInputMouseDown = null;
11910
+ this._onInputMouseUp = null;
11911
+
11912
+ this._snapping = cfg.snapping !== false;
11913
+
11914
+ this._attachPlugin(angleMeasurementsPlugin, cfg);
11915
+ }
11916
+
11917
+ _initMarkerDiv() {
11901
11918
  const markerDiv = document.createElement('div');
11919
+ markerDiv.setAttribute('id', 'myMarkerDiv');
11902
11920
  const canvas = this.scene.canvas.canvas;
11903
11921
  canvas.parentNode.insertBefore(markerDiv, canvas);
11904
11922
 
@@ -11913,17 +11931,14 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
11913
11931
  markerDiv.style.pointerEvents = "none";
11914
11932
 
11915
11933
  this.markerDiv = markerDiv;
11916
- this._onMouseHoverSurface = null;
11917
- this._onHoverNothing = null;
11918
- this._onPickedNothing = null;
11919
- this._onPickedSurface = null;
11920
-
11921
- this._onInputMouseDown = null;
11922
- this._onInputMouseUp = null;
11923
-
11924
- this._snapping = cfg.snapping !== false;
11934
+ }
11925
11935
 
11926
- this._attachPlugin(angleMeasurementsPlugin, cfg);
11936
+ _destroyMarkerDiv() {
11937
+ if (this._markerDiv) {
11938
+ const element = document.getElementById('myMarkerDiv');
11939
+ element.parentNode.removeChild(element);
11940
+ this._markerDiv = null;
11941
+ }
11927
11942
  }
11928
11943
 
11929
11944
  _attachPlugin(angleMeasurementsPlugin, cfg = {}) {
@@ -11991,6 +12006,9 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
11991
12006
  if (this._active) {
11992
12007
  return;
11993
12008
  }
12009
+ if (!this.markerDiv) {
12010
+ this._initMarkerDiv(); // if the marker is destroyed after deactivation, we recreate it
12011
+ }
11994
12012
  this.angleMeasurementsPlugin;
11995
12013
  const scene = this.scene;
11996
12014
  scene.input;
@@ -12195,6 +12213,9 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
12195
12213
  if (this.pointerLens) {
12196
12214
  this.pointerLens.visible = false;
12197
12215
  }
12216
+ if (this._markerDiv) {
12217
+ this._destroyMarkerDiv();
12218
+ }
12198
12219
  this.reset();
12199
12220
  const canvas = this.scene.canvas.canvas;
12200
12221
  canvas.removeEventListener("mousedown", this._onMouseDown);
@@ -12219,6 +12240,10 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
12219
12240
  if (!this._active) {
12220
12241
  return;
12221
12242
  }
12243
+
12244
+ this._destroyMarkerDiv();
12245
+ this._initMarkerDiv();
12246
+
12222
12247
  if (this._currentAngleMeasurement) {
12223
12248
  this._currentAngleMeasurement.destroy();
12224
12249
  this._currentAngleMeasurement = null;
@@ -49963,21 +49988,6 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
49963
49988
 
49964
49989
  this._active = false;
49965
49990
 
49966
- const markerDiv = document.createElement('div');
49967
- const canvas = this.scene.canvas.canvas;
49968
- canvas.parentNode.insertBefore(markerDiv, canvas);
49969
- markerDiv.style.background = "black";
49970
- markerDiv.style.border = "2px solid blue";
49971
- markerDiv.style.borderRadius = "10px";
49972
- markerDiv.style.width = "5px";
49973
- markerDiv.style.height = "5px";
49974
- markerDiv.style.margin = "-200px -200px";
49975
- markerDiv.style.zIndex = "100";
49976
- markerDiv.style.position = "absolute";
49977
- markerDiv.style.pointerEvents = "none";
49978
-
49979
- this._markerDiv = markerDiv;
49980
-
49981
49991
  this._currentDistanceMeasurement = null;
49982
49992
 
49983
49993
  this._currentDistanceMeasurementInitState = {
@@ -49989,6 +49999,8 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
49989
49999
  targetVisible: null,
49990
50000
  };
49991
50001
 
50002
+ this._initMarkerDiv();
50003
+
49992
50004
  this._onCameraControlHoverSnapOrSurface = null;
49993
50005
  this._onCameraControlHoverSnapOrSurfaceOff = null;
49994
50006
  this._onMouseDown = null;
@@ -50001,6 +50013,32 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
50001
50013
  this._attachPlugin(distanceMeasurementsPlugin, cfg);
50002
50014
  }
50003
50015
 
50016
+ _initMarkerDiv() {
50017
+ const markerDiv = document.createElement('div');
50018
+ markerDiv.setAttribute('id', 'myMarkerDiv');
50019
+ const canvas = this.scene.canvas.canvas;
50020
+ canvas.parentNode.insertBefore(markerDiv, canvas);
50021
+ markerDiv.style.background = "black";
50022
+ markerDiv.style.border = "2px solid blue";
50023
+ markerDiv.style.borderRadius = "10px";
50024
+ markerDiv.style.width = "5px";
50025
+ markerDiv.style.height = "5px";
50026
+ markerDiv.style.margin = "-200px -200px";
50027
+ markerDiv.style.zIndex = "100";
50028
+ markerDiv.style.position = "absolute";
50029
+ markerDiv.style.pointerEvents = "none";
50030
+
50031
+ this._markerDiv = markerDiv;
50032
+ }
50033
+
50034
+ _destroyMarkerDiv() {
50035
+ if (this._markerDiv) {
50036
+ const element = document.getElementById('myMarkerDiv');
50037
+ element.parentNode.removeChild(element);
50038
+ this._markerDiv = null;
50039
+ }
50040
+ }
50041
+
50004
50042
  _attachPlugin(distanceMeasurementsPlugin, cfg = {}) {
50005
50043
 
50006
50044
  /**
@@ -50066,6 +50104,10 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
50066
50104
  return;
50067
50105
  }
50068
50106
 
50107
+ if (!this._markerDiv) {
50108
+ this._initMarkerDiv();
50109
+ }
50110
+
50069
50111
  this.fire("activated", true);
50070
50112
 
50071
50113
  const distanceMeasurementsPlugin = this.distanceMeasurementsPlugin;
@@ -50221,6 +50263,9 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
50221
50263
  if (this.pointerLens) {
50222
50264
  this.pointerLens.visible = false;
50223
50265
  }
50266
+ if (this._markerDiv) {
50267
+ this._destroyMarkerDiv();
50268
+ }
50224
50269
  this.reset();
50225
50270
  const canvas = this.scene.canvas.canvas;
50226
50271
  canvas.removeEventListener("mousedown", this._onMouseDown);
@@ -50247,6 +50292,10 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
50247
50292
  if (!this._active) {
50248
50293
  return;
50249
50294
  }
50295
+
50296
+ this._destroyMarkerDiv();
50297
+ this._initMarkerDiv();
50298
+
50250
50299
  if (this._currentDistanceMeasurement) {
50251
50300
  this.distanceMeasurementsPlugin.fire("measurementCancel", this._currentDistanceMeasurement);
50252
50301
  this._currentDistanceMeasurement.destroy();
@@ -11894,7 +11894,25 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
11894
11894
 
11895
11895
  this._currentAngleMeasurement = null;
11896
11896
 
11897
+ // init markerDiv element (think about making its style configurable)
11898
+ this._initMarkerDiv();
11899
+
11900
+ this._onMouseHoverSurface = null;
11901
+ this._onHoverNothing = null;
11902
+ this._onPickedNothing = null;
11903
+ this._onPickedSurface = null;
11904
+
11905
+ this._onInputMouseDown = null;
11906
+ this._onInputMouseUp = null;
11907
+
11908
+ this._snapping = cfg.snapping !== false;
11909
+
11910
+ this._attachPlugin(angleMeasurementsPlugin, cfg);
11911
+ }
11912
+
11913
+ _initMarkerDiv() {
11897
11914
  const markerDiv = document.createElement('div');
11915
+ markerDiv.setAttribute('id', 'myMarkerDiv');
11898
11916
  const canvas = this.scene.canvas.canvas;
11899
11917
  canvas.parentNode.insertBefore(markerDiv, canvas);
11900
11918
 
@@ -11909,17 +11927,14 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
11909
11927
  markerDiv.style.pointerEvents = "none";
11910
11928
 
11911
11929
  this.markerDiv = markerDiv;
11912
- this._onMouseHoverSurface = null;
11913
- this._onHoverNothing = null;
11914
- this._onPickedNothing = null;
11915
- this._onPickedSurface = null;
11916
-
11917
- this._onInputMouseDown = null;
11918
- this._onInputMouseUp = null;
11919
-
11920
- this._snapping = cfg.snapping !== false;
11930
+ }
11921
11931
 
11922
- this._attachPlugin(angleMeasurementsPlugin, cfg);
11932
+ _destroyMarkerDiv() {
11933
+ if (this._markerDiv) {
11934
+ const element = document.getElementById('myMarkerDiv');
11935
+ element.parentNode.removeChild(element);
11936
+ this._markerDiv = null;
11937
+ }
11923
11938
  }
11924
11939
 
11925
11940
  _attachPlugin(angleMeasurementsPlugin, cfg = {}) {
@@ -11987,6 +12002,9 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
11987
12002
  if (this._active) {
11988
12003
  return;
11989
12004
  }
12005
+ if (!this.markerDiv) {
12006
+ this._initMarkerDiv(); // if the marker is destroyed after deactivation, we recreate it
12007
+ }
11990
12008
  this.angleMeasurementsPlugin;
11991
12009
  const scene = this.scene;
11992
12010
  scene.input;
@@ -12191,6 +12209,9 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
12191
12209
  if (this.pointerLens) {
12192
12210
  this.pointerLens.visible = false;
12193
12211
  }
12212
+ if (this._markerDiv) {
12213
+ this._destroyMarkerDiv();
12214
+ }
12194
12215
  this.reset();
12195
12216
  const canvas = this.scene.canvas.canvas;
12196
12217
  canvas.removeEventListener("mousedown", this._onMouseDown);
@@ -12215,6 +12236,10 @@ class AngleMeasurementsMouseControl extends AngleMeasurementsControl {
12215
12236
  if (!this._active) {
12216
12237
  return;
12217
12238
  }
12239
+
12240
+ this._destroyMarkerDiv();
12241
+ this._initMarkerDiv();
12242
+
12218
12243
  if (this._currentAngleMeasurement) {
12219
12244
  this._currentAngleMeasurement.destroy();
12220
12245
  this._currentAngleMeasurement = null;
@@ -49959,21 +49984,6 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
49959
49984
 
49960
49985
  this._active = false;
49961
49986
 
49962
- const markerDiv = document.createElement('div');
49963
- const canvas = this.scene.canvas.canvas;
49964
- canvas.parentNode.insertBefore(markerDiv, canvas);
49965
- markerDiv.style.background = "black";
49966
- markerDiv.style.border = "2px solid blue";
49967
- markerDiv.style.borderRadius = "10px";
49968
- markerDiv.style.width = "5px";
49969
- markerDiv.style.height = "5px";
49970
- markerDiv.style.margin = "-200px -200px";
49971
- markerDiv.style.zIndex = "100";
49972
- markerDiv.style.position = "absolute";
49973
- markerDiv.style.pointerEvents = "none";
49974
-
49975
- this._markerDiv = markerDiv;
49976
-
49977
49987
  this._currentDistanceMeasurement = null;
49978
49988
 
49979
49989
  this._currentDistanceMeasurementInitState = {
@@ -49985,6 +49995,8 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
49985
49995
  targetVisible: null,
49986
49996
  };
49987
49997
 
49998
+ this._initMarkerDiv();
49999
+
49988
50000
  this._onCameraControlHoverSnapOrSurface = null;
49989
50001
  this._onCameraControlHoverSnapOrSurfaceOff = null;
49990
50002
  this._onMouseDown = null;
@@ -49997,6 +50009,32 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
49997
50009
  this._attachPlugin(distanceMeasurementsPlugin, cfg);
49998
50010
  }
49999
50011
 
50012
+ _initMarkerDiv() {
50013
+ const markerDiv = document.createElement('div');
50014
+ markerDiv.setAttribute('id', 'myMarkerDiv');
50015
+ const canvas = this.scene.canvas.canvas;
50016
+ canvas.parentNode.insertBefore(markerDiv, canvas);
50017
+ markerDiv.style.background = "black";
50018
+ markerDiv.style.border = "2px solid blue";
50019
+ markerDiv.style.borderRadius = "10px";
50020
+ markerDiv.style.width = "5px";
50021
+ markerDiv.style.height = "5px";
50022
+ markerDiv.style.margin = "-200px -200px";
50023
+ markerDiv.style.zIndex = "100";
50024
+ markerDiv.style.position = "absolute";
50025
+ markerDiv.style.pointerEvents = "none";
50026
+
50027
+ this._markerDiv = markerDiv;
50028
+ }
50029
+
50030
+ _destroyMarkerDiv() {
50031
+ if (this._markerDiv) {
50032
+ const element = document.getElementById('myMarkerDiv');
50033
+ element.parentNode.removeChild(element);
50034
+ this._markerDiv = null;
50035
+ }
50036
+ }
50037
+
50000
50038
  _attachPlugin(distanceMeasurementsPlugin, cfg = {}) {
50001
50039
 
50002
50040
  /**
@@ -50062,6 +50100,10 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
50062
50100
  return;
50063
50101
  }
50064
50102
 
50103
+ if (!this._markerDiv) {
50104
+ this._initMarkerDiv();
50105
+ }
50106
+
50065
50107
  this.fire("activated", true);
50066
50108
 
50067
50109
  const distanceMeasurementsPlugin = this.distanceMeasurementsPlugin;
@@ -50217,6 +50259,9 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
50217
50259
  if (this.pointerLens) {
50218
50260
  this.pointerLens.visible = false;
50219
50261
  }
50262
+ if (this._markerDiv) {
50263
+ this._destroyMarkerDiv();
50264
+ }
50220
50265
  this.reset();
50221
50266
  const canvas = this.scene.canvas.canvas;
50222
50267
  canvas.removeEventListener("mousedown", this._onMouseDown);
@@ -50243,6 +50288,10 @@ class DistanceMeasurementsMouseControl extends DistanceMeasurementsControl {
50243
50288
  if (!this._active) {
50244
50289
  return;
50245
50290
  }
50291
+
50292
+ this._destroyMarkerDiv();
50293
+ this._initMarkerDiv();
50294
+
50246
50295
  if (this._currentDistanceMeasurement) {
50247
50296
  this.distanceMeasurementsPlugin.fire("measurementCancel", this._currentDistanceMeasurement);
50248
50297
  this._currentDistanceMeasurement.destroy();
@@ -2949,7 +2949,8 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._cornerDot.s
2949
2949
  * @param {*} [cfg] Configuration
2950
2950
  * @param {PointerLens} [cfg.pointerLens] A PointerLens to use to provide a magnified view of the cursor when snapping is enabled.
2951
2951
  * @param {boolean} [cfg.snapping=true] Whether to initially enable snap-to-vertex and snap-to-edge for this AngleMeasurementsMouseControl.
2952
- */function AngleMeasurementsMouseControl(angleMeasurementsPlugin){var _this18;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,AngleMeasurementsMouseControl);_this18=_super7.call(this,angleMeasurementsPlugin.viewer.scene);_this18.pointerLens=cfg.pointerLens;_this18._active=false;_this18._mouseState=MOUSE_FINDING_ORIGIN;_this18._currentAngleMeasurement=null;var markerDiv=document.createElement('div');var canvas=_this18.scene.canvas.canvas;canvas.parentNode.insertBefore(markerDiv,canvas);markerDiv.style.background="black";markerDiv.style.border="2px solid blue";markerDiv.style.borderRadius="10px";markerDiv.style.width="5px";markerDiv.style.height="5px";markerDiv.style.margin="-200px -200px";markerDiv.style.zIndex="100";markerDiv.style.position="absolute";markerDiv.style.pointerEvents="none";_this18.markerDiv=markerDiv;_this18._onMouseHoverSurface=null;_this18._onHoverNothing=null;_this18._onPickedNothing=null;_this18._onPickedSurface=null;_this18._onInputMouseDown=null;_this18._onInputMouseUp=null;_this18._snapping=cfg.snapping!==false;_this18._attachPlugin(angleMeasurementsPlugin,cfg);return _this18;}_createClass(AngleMeasurementsMouseControl,[{key:"_attachPlugin",value:function _attachPlugin(angleMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
2952
+ */function AngleMeasurementsMouseControl(angleMeasurementsPlugin){var _this18;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,AngleMeasurementsMouseControl);_this18=_super7.call(this,angleMeasurementsPlugin.viewer.scene);_this18.pointerLens=cfg.pointerLens;_this18._active=false;_this18._mouseState=MOUSE_FINDING_ORIGIN;_this18._currentAngleMeasurement=null;// init markerDiv element (think about making its style configurable)
2953
+ _this18._initMarkerDiv();_this18._onMouseHoverSurface=null;_this18._onHoverNothing=null;_this18._onPickedNothing=null;_this18._onPickedSurface=null;_this18._onInputMouseDown=null;_this18._onInputMouseUp=null;_this18._snapping=cfg.snapping!==false;_this18._attachPlugin(angleMeasurementsPlugin,cfg);return _this18;}_createClass(AngleMeasurementsMouseControl,[{key:"_initMarkerDiv",value:function _initMarkerDiv(){var markerDiv=document.createElement('div');markerDiv.setAttribute('id','myMarkerDiv');var canvas=this.scene.canvas.canvas;canvas.parentNode.insertBefore(markerDiv,canvas);markerDiv.style.background="black";markerDiv.style.border="2px solid blue";markerDiv.style.borderRadius="10px";markerDiv.style.width="5px";markerDiv.style.height="5px";markerDiv.style.margin="-200px -200px";markerDiv.style.zIndex="100";markerDiv.style.position="absolute";markerDiv.style.pointerEvents="none";this.markerDiv=markerDiv;}},{key:"_destroyMarkerDiv",value:function _destroyMarkerDiv(){if(this._markerDiv){var element=document.getElementById('myMarkerDiv');element.parentNode.removeChild(element);this._markerDiv=null;}}},{key:"_attachPlugin",value:function _attachPlugin(angleMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
2953
2954
  * The {@link AngleMeasurementsPlugin} that owns this AngleMeasurementsMouseControl.
2954
2955
  *
2955
2956
  * @type {AngleMeasurementsPlugin}
@@ -2979,17 +2980,18 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._cornerDot.s
2979
2980
  * @returns {boolean} Whether snap-to-vertex and snap-to-edge are enabled for this AngleMeasurementsMouseControl.
2980
2981
  */function get(){return this._snapping;}/**
2981
2982
  * Activates this AngleMeasurementsMouseControl, ready to respond to input.
2982
- */,set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"activate",value:function activate(){var _this19=this;if(this._active){return;}this.angleMeasurementsPlugin;var scene=this.scene;scene.input;var canvas=scene.canvas.canvas;var clickTolerance=20;var cameraControl=this.angleMeasurementsPlugin.viewer.cameraControl;var pointerLens=this.pointerLens;var mouseHovering=false;var mouseHoverEntity=false;var lastMouseCanvasX=0;var lastMouseCanvasY=0;var mouseWorldPos=math.vec3();var mouseHoverCanvasPos=math.vec2();this._currentAngleMeasurement=null;this._onMouseHoverSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){if(event.snappedToVertex||event.snappedToEdge){if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=true;}_this19.markerDiv.style.background="greenyellow";_this19.markerDiv.style.border="2px solid green";}else{if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.canvasPos;pointerLens.snapped=false;}_this19.markerDiv.style.background="pink";_this19.markerDiv.style.border="2px solid red";}var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;mouseHoverEntity=event.entity;mouseWorldPos.set(event.worldPos);mouseHoverCanvasPos.set(canvasPos);switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:_this19.markerDiv.style.marginLeft="".concat(canvasPos[0]-5,"px");_this19.markerDiv.style.marginTop="".concat(canvasPos[1]-5,"px");break;case MOUSE_FINDING_CORNER:if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.originWireVisible=true;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.cornerVisible=true;_this19._currentAngleMeasurement.angleVisible=false;_this19._currentAngleMeasurement.corner.worldPos=event.worldPos;}_this19.markerDiv.style.marginLeft="-10000px";_this19.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;case MOUSE_FINDING_TARGET:if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.targetWireVisible=true;_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._currentAngleMeasurement.target.worldPos=event.worldPos;}_this19.markerDiv.style.marginLeft="-10000px";_this19.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;}});canvas.addEventListener('mousedown',this._onMouseDown=function(e){if(e.which!==1){return;}lastMouseCanvasX=e.clientX;lastMouseCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(e.which!==1){return;}if(e.clientX>lastMouseCanvasX+clickTolerance||e.clientX<lastMouseCanvasX-clickTolerance||e.clientY>lastMouseCanvasY+clickTolerance||e.clientY<lastMouseCanvasY-clickTolerance){return;}switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:if(mouseHovering){_this19._currentAngleMeasurement=_this19.angleMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{entity:mouseHoverEntity,worldPos:mouseWorldPos},corner:{entity:mouseHoverEntity,worldPos:mouseWorldPos},target:{entity:mouseHoverEntity,worldPos:mouseWorldPos},approximate:true});_this19._currentAngleMeasurement.clickable=false;_this19._currentAngleMeasurement.originVisible=true;_this19._currentAngleMeasurement.originWireVisible=true;_this19._currentAngleMeasurement.cornerVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.angleVisible=false;_this19._mouseState=MOUSE_FINDING_CORNER;_this19.angleMeasurementsPlugin.fire("measurementStart",_this19._currentAngleMeasurement);}break;case MOUSE_FINDING_CORNER:if(mouseHovering){_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._mouseState=MOUSE_FINDING_TARGET;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;_this19.angleMeasurementsPlugin.fire("measurementCancel",_this19._currentAngleMeasurement);}}break;case MOUSE_FINDING_TARGET:if(mouseHovering){_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._currentAngleMeasurement.clickable=true;_this19.angleMeasurementsPlugin.fire("measurementEnd",_this19._currentAngleMeasurement);_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;_this19.angleMeasurementsPlugin.fire("measurementCancel",_this19._currentAngleMeasurement);}}break;}});this._onMouseHoverOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){mouseHovering=false;if(pointerLens){pointerLens.visible=true;pointerLens.pointerPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=false;}_this19.markerDiv.style.marginLeft="-100px";_this19.markerDiv.style.marginTop="-100px";if(_this19._currentAngleMeasurement){switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:_this19._currentAngleMeasurement.originVisible=false;break;case MOUSE_FINDING_CORNER:_this19._currentAngleMeasurement.cornerVisible=false;_this19._currentAngleMeasurement.originWireVisible=false;_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.angleVisible=false;break;case MOUSE_FINDING_TARGET:_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.angleVisible=false;break;}canvas.style.cursor="default";}});this._active=true;}/**
2983
+ */,set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"activate",value:function activate(){var _this19=this;if(this._active){return;}if(!this.markerDiv){this._initMarkerDiv();// if the marker is destroyed after deactivation, we recreate it
2984
+ }this.angleMeasurementsPlugin;var scene=this.scene;scene.input;var canvas=scene.canvas.canvas;var clickTolerance=20;var cameraControl=this.angleMeasurementsPlugin.viewer.cameraControl;var pointerLens=this.pointerLens;var mouseHovering=false;var mouseHoverEntity=false;var lastMouseCanvasX=0;var lastMouseCanvasY=0;var mouseWorldPos=math.vec3();var mouseHoverCanvasPos=math.vec2();this._currentAngleMeasurement=null;this._onMouseHoverSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){if(event.snappedToVertex||event.snappedToEdge){if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=true;}_this19.markerDiv.style.background="greenyellow";_this19.markerDiv.style.border="2px solid green";}else{if(pointerLens){pointerLens.visible=true;pointerLens.canvasPos=event.canvasPos;pointerLens.snappedCanvasPos=event.canvasPos;pointerLens.snapped=false;}_this19.markerDiv.style.background="pink";_this19.markerDiv.style.border="2px solid red";}var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;mouseHoverEntity=event.entity;mouseWorldPos.set(event.worldPos);mouseHoverCanvasPos.set(canvasPos);switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:_this19.markerDiv.style.marginLeft="".concat(canvasPos[0]-5,"px");_this19.markerDiv.style.marginTop="".concat(canvasPos[1]-5,"px");break;case MOUSE_FINDING_CORNER:if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.originWireVisible=true;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.cornerVisible=true;_this19._currentAngleMeasurement.angleVisible=false;_this19._currentAngleMeasurement.corner.worldPos=event.worldPos;}_this19.markerDiv.style.marginLeft="-10000px";_this19.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;case MOUSE_FINDING_TARGET:if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.targetWireVisible=true;_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._currentAngleMeasurement.target.worldPos=event.worldPos;}_this19.markerDiv.style.marginLeft="-10000px";_this19.markerDiv.style.marginTop="-10000px";canvas.style.cursor="pointer";break;}});canvas.addEventListener('mousedown',this._onMouseDown=function(e){if(e.which!==1){return;}lastMouseCanvasX=e.clientX;lastMouseCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(e.which!==1){return;}if(e.clientX>lastMouseCanvasX+clickTolerance||e.clientX<lastMouseCanvasX-clickTolerance||e.clientY>lastMouseCanvasY+clickTolerance||e.clientY<lastMouseCanvasY-clickTolerance){return;}switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:if(mouseHovering){_this19._currentAngleMeasurement=_this19.angleMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{entity:mouseHoverEntity,worldPos:mouseWorldPos},corner:{entity:mouseHoverEntity,worldPos:mouseWorldPos},target:{entity:mouseHoverEntity,worldPos:mouseWorldPos},approximate:true});_this19._currentAngleMeasurement.clickable=false;_this19._currentAngleMeasurement.originVisible=true;_this19._currentAngleMeasurement.originWireVisible=true;_this19._currentAngleMeasurement.cornerVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.angleVisible=false;_this19._mouseState=MOUSE_FINDING_CORNER;_this19.angleMeasurementsPlugin.fire("measurementStart",_this19._currentAngleMeasurement);}break;case MOUSE_FINDING_CORNER:if(mouseHovering){_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._mouseState=MOUSE_FINDING_TARGET;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;_this19.angleMeasurementsPlugin.fire("measurementCancel",_this19._currentAngleMeasurement);}}break;case MOUSE_FINDING_TARGET:if(mouseHovering){_this19._currentAngleMeasurement.targetVisible=true;_this19._currentAngleMeasurement.angleVisible=true;_this19._currentAngleMeasurement.clickable=true;_this19.angleMeasurementsPlugin.fire("measurementEnd",_this19._currentAngleMeasurement);_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;_this19.angleMeasurementsPlugin.fire("measurementCancel",_this19._currentAngleMeasurement);}}break;}});this._onMouseHoverOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){mouseHovering=false;if(pointerLens){pointerLens.visible=true;pointerLens.pointerPos=event.canvasPos;pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;pointerLens.snapped=false;}_this19.markerDiv.style.marginLeft="-100px";_this19.markerDiv.style.marginTop="-100px";if(_this19._currentAngleMeasurement){switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:_this19._currentAngleMeasurement.originVisible=false;break;case MOUSE_FINDING_CORNER:_this19._currentAngleMeasurement.cornerVisible=false;_this19._currentAngleMeasurement.originWireVisible=false;_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.angleVisible=false;break;case MOUSE_FINDING_TARGET:_this19._currentAngleMeasurement.targetVisible=false;_this19._currentAngleMeasurement.targetWireVisible=false;_this19._currentAngleMeasurement.angleVisible=false;break;}canvas.style.cursor="default";}});this._active=true;}/**
2983
2985
  * Deactivates this AngleMeasurementsMouseControl, making it unresponsive to input.
2984
2986
  *
2985
2987
  * Destroys any {@link AngleMeasurement} under construction by this AngleMeasurementsMouseControl.
2986
- */},{key:"deactivate",value:function deactivate(){if(!this._active){return;}if(this.pointerLens){this.pointerLens.visible=false;}this.reset();var canvas=this.scene.canvas.canvas;canvas.removeEventListener("mousedown",this._onMouseDown);canvas.removeEventListener("mouseup",this._onMouseUp);var cameraControl=this.angleMeasurementsPlugin.viewer.cameraControl;cameraControl.off(this._onMouseHoverSurface);cameraControl.off(this._onPickedSurface);cameraControl.off(this._onHoverNothing);cameraControl.off(this._onPickedNothing);this._currentAngleMeasurement=null;this._active=false;}/**
2988
+ */},{key:"deactivate",value:function deactivate(){if(!this._active){return;}if(this.pointerLens){this.pointerLens.visible=false;}if(this._markerDiv){this._destroyMarkerDiv();}this.reset();var canvas=this.scene.canvas.canvas;canvas.removeEventListener("mousedown",this._onMouseDown);canvas.removeEventListener("mouseup",this._onMouseUp);var cameraControl=this.angleMeasurementsPlugin.viewer.cameraControl;cameraControl.off(this._onMouseHoverSurface);cameraControl.off(this._onPickedSurface);cameraControl.off(this._onHoverNothing);cameraControl.off(this._onPickedNothing);this._currentAngleMeasurement=null;this._active=false;}/**
2987
2989
  * Resets this AngleMeasurementsMouseControl.
2988
2990
  *
2989
2991
  * Destroys any {@link AngleMeasurement} under construction by this AngleMeasurementsMouseControl.
2990
2992
  *
2991
2993
  * Does nothing if the AngleMeasurementsMouseControl is not active.
2992
- */},{key:"reset",value:function reset(){if(!this._active){return;}if(this._currentAngleMeasurement){this._currentAngleMeasurement.destroy();this._currentAngleMeasurement=null;}this._mouseState=MOUSE_FINDING_ORIGIN;}/**
2994
+ */},{key:"reset",value:function reset(){if(!this._active){return;}this._destroyMarkerDiv();this._initMarkerDiv();if(this._currentAngleMeasurement){this._currentAngleMeasurement.destroy();this._currentAngleMeasurement=null;}this._mouseState=MOUSE_FINDING_ORIGIN;}/**
2993
2995
  * Destroys this AngleMeasurementsMouseControl.
2994
2996
  */},{key:"destroy",value:function destroy(){this.deactivate();_get(_getPrototypeOf(AngleMeasurementsMouseControl.prototype),"destroy",this).call(this);}}]);return AngleMeasurementsMouseControl;}(AngleMeasurementsControl);/**
2995
2997
  * {@link Viewer} plugin for measuring angles.
@@ -14486,7 +14488,7 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._targetDot.s
14486
14488
  * @param [cfg] Configuration
14487
14489
  * @param {PointerLens} [cfg.pointerLens] A PointerLens to use to provide a magnified view of the cursor when snapping is enabled.
14488
14490
  * @param {boolean} [cfg.snapping=true] Whether to initially enable snap-to-vertex and snap-to-edge for this DistanceMeasurementsMouseControl.
14489
- */function DistanceMeasurementsMouseControl(distanceMeasurementsPlugin){var _this71;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,DistanceMeasurementsMouseControl);_this71=_super49.call(this,distanceMeasurementsPlugin.viewer.scene);_this71.pointerLens=cfg.pointerLens;_this71._active=false;var markerDiv=document.createElement('div');var canvas=_this71.scene.canvas.canvas;canvas.parentNode.insertBefore(markerDiv,canvas);markerDiv.style.background="black";markerDiv.style.border="2px solid blue";markerDiv.style.borderRadius="10px";markerDiv.style.width="5px";markerDiv.style.height="5px";markerDiv.style.margin="-200px -200px";markerDiv.style.zIndex="100";markerDiv.style.position="absolute";markerDiv.style.pointerEvents="none";_this71._markerDiv=markerDiv;_this71._currentDistanceMeasurement=null;_this71._currentDistanceMeasurementInitState={wireVisible:null,axisVisible:null,xAxisVisible:null,yaxisVisible:null,zAxisVisible:null,targetVisible:null};_this71._onCameraControlHoverSnapOrSurface=null;_this71._onCameraControlHoverSnapOrSurfaceOff=null;_this71._onMouseDown=null;_this71._onMouseUp=null;_this71._onCanvasTouchStart=null;_this71._onCanvasTouchEnd=null;_this71._snapping=cfg.snapping!==false;_this71._mouseState=MOUSE_FIRST_CLICK_EXPECTED;_this71._attachPlugin(distanceMeasurementsPlugin,cfg);return _this71;}_createClass(DistanceMeasurementsMouseControl,[{key:"_attachPlugin",value:function _attachPlugin(distanceMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
14491
+ */function DistanceMeasurementsMouseControl(distanceMeasurementsPlugin){var _this71;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,DistanceMeasurementsMouseControl);_this71=_super49.call(this,distanceMeasurementsPlugin.viewer.scene);_this71.pointerLens=cfg.pointerLens;_this71._active=false;_this71._currentDistanceMeasurement=null;_this71._currentDistanceMeasurementInitState={wireVisible:null,axisVisible:null,xAxisVisible:null,yaxisVisible:null,zAxisVisible:null,targetVisible:null};_this71._initMarkerDiv();_this71._onCameraControlHoverSnapOrSurface=null;_this71._onCameraControlHoverSnapOrSurfaceOff=null;_this71._onMouseDown=null;_this71._onMouseUp=null;_this71._onCanvasTouchStart=null;_this71._onCanvasTouchEnd=null;_this71._snapping=cfg.snapping!==false;_this71._mouseState=MOUSE_FIRST_CLICK_EXPECTED;_this71._attachPlugin(distanceMeasurementsPlugin,cfg);return _this71;}_createClass(DistanceMeasurementsMouseControl,[{key:"_initMarkerDiv",value:function _initMarkerDiv(){var markerDiv=document.createElement('div');markerDiv.setAttribute('id','myMarkerDiv');var canvas=this.scene.canvas.canvas;canvas.parentNode.insertBefore(markerDiv,canvas);markerDiv.style.background="black";markerDiv.style.border="2px solid blue";markerDiv.style.borderRadius="10px";markerDiv.style.width="5px";markerDiv.style.height="5px";markerDiv.style.margin="-200px -200px";markerDiv.style.zIndex="100";markerDiv.style.position="absolute";markerDiv.style.pointerEvents="none";this._markerDiv=markerDiv;}},{key:"_destroyMarkerDiv",value:function _destroyMarkerDiv(){if(this._markerDiv){var element=document.getElementById('myMarkerDiv');element.parentNode.removeChild(element);this._markerDiv=null;}}},{key:"_attachPlugin",value:function _attachPlugin(distanceMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
14490
14492
  * The {@link DistanceMeasurementsPlugin} that owns this DistanceMeasurementsMouseControl.
14491
14493
  * @type {DistanceMeasurementsPlugin}
14492
14494
  */this.distanceMeasurementsPlugin=distanceMeasurementsPlugin;/**
@@ -14514,17 +14516,17 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._targetDot.s
14514
14516
  * @returns {boolean} Whether snap-to-vertex and snap-to-edge are enabled for this DistanceMeasurementsMouseControl.
14515
14517
  */function get(){return this._snapping;}/**
14516
14518
  * Activates this DistanceMeasurementsMouseControl, ready to respond to input.
14517
- */,set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"activate",value:function activate(){var _this72=this;if(this._active){return;}this.fire("activated",true);var distanceMeasurementsPlugin=this.distanceMeasurementsPlugin;var scene=this.scene;var cameraControl=distanceMeasurementsPlugin.viewer.cameraControl;var canvas=scene.canvas.canvas;scene.input;var mouseHovering=false;var pointerWorldPos=math.vec3();var pointerCanvasPos=math.vec2();var pointerDownCanvasX;var pointerDownCanvasY;var clickTolerance=20;this._mouseState=MOUSE_FIRST_CLICK_EXPECTED;this._onCameraControlHoverSnapOrSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;pointerWorldPos.set(event.worldPos);pointerCanvasPos.set(event.canvasPos);if(_this72._mouseState===MOUSE_FIRST_CLICK_EXPECTED){_this72._markerDiv.style.marginLeft="".concat(canvasPos[0]-5,"px");_this72._markerDiv.style.marginTop="".concat(canvasPos[1]-5,"px");_this72._markerDiv.style.background="pink";if(event.snappedToVertex||event.snappedToEdge){if(_this72.pointerLens){_this72.pointerLens.visible=true;_this72.pointerLens.canvasPos=event.canvasPos;_this72.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;_this72.pointerLens.snapped=true;}_this72._markerDiv.style.background="greenyellow";_this72._markerDiv.style.border="2px solid green";}else{if(_this72.pointerLens){_this72.pointerLens.visible=true;_this72.pointerLens.canvasPos=event.canvasPos;_this72.pointerLens.snappedCanvasPos=event.canvasPos;_this72.pointerLens.snapped=false;}_this72._markerDiv.style.background="pink";_this72._markerDiv.style.border="2px solid red";}}else{_this72._markerDiv.style.marginLeft="-10000px";_this72._markerDiv.style.marginTop="-10000px";}canvas.style.cursor="pointer";if(_this72._currentDistanceMeasurement){_this72._currentDistanceMeasurement.wireVisible=_this72._currentDistanceMeasurementInitState.wireVisible;_this72._currentDistanceMeasurement.axisVisible=_this72._currentDistanceMeasurementInitState.axisVisible&&_this72.distanceMeasurementsPlugin.defaultAxisVisible;_this72._currentDistanceMeasurement.xAxisVisible=_this72._currentDistanceMeasurementInitState.xAxisVisible&&_this72.distanceMeasurementsPlugin.defaultXAxisVisible;_this72._currentDistanceMeasurement.yAxisVisible=_this72._currentDistanceMeasurementInitState.yAxisVisible&&_this72.distanceMeasurementsPlugin.defaultYAxisVisible;_this72._currentDistanceMeasurement.zAxisVisible=_this72._currentDistanceMeasurementInitState.zAxisVisible&&_this72.distanceMeasurementsPlugin.defaultZAxisVisible;_this72._currentDistanceMeasurement.targetVisible=_this72._currentDistanceMeasurementInitState.targetVisible;_this72._currentDistanceMeasurement.target.worldPos=pointerWorldPos.slice();_this72._markerDiv.style.marginLeft="-10000px";_this72._markerDiv.style.marginTop="-10000px";}});canvas.addEventListener('mousedown',this._onMouseDown=function(e){if(e.which!==1){return;}pointerDownCanvasX=e.clientX;pointerDownCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(e.which!==1){return;}if(e.clientX>pointerDownCanvasX+clickTolerance||e.clientX<pointerDownCanvasX-clickTolerance||e.clientY>pointerDownCanvasY+clickTolerance||e.clientY<pointerDownCanvasY-clickTolerance){return;}if(_this72._currentDistanceMeasurement){if(mouseHovering){_this72._currentDistanceMeasurement.clickable=true;_this72.distanceMeasurementsPlugin.fire("measurementEnd",_this72._currentDistanceMeasurement);_this72._currentDistanceMeasurement=null;}else{_this72._currentDistanceMeasurement.destroy();_this72.distanceMeasurementsPlugin.fire("measurementCancel",_this72._currentDistanceMeasurement);_this72._currentDistanceMeasurement=null;}}else{if(mouseHovering){_this72._currentDistanceMeasurement=distanceMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:pointerWorldPos.slice()},target:{worldPos:pointerWorldPos.slice()},approximate:true});_this72._currentDistanceMeasurementInitState.axisVisible=_this72._currentDistanceMeasurement.axisVisible&&_this72.distanceMeasurementsPlugin.defaultAxisVisible;_this72._currentDistanceMeasurementInitState.xAxisVisible=_this72._currentDistanceMeasurement.xAxisVisible&&_this72.distanceMeasurementsPlugin.defaultXAxisVisible;_this72._currentDistanceMeasurementInitState.yAxisVisible=_this72._currentDistanceMeasurement.yAxisVisible&&_this72.distanceMeasurementsPlugin.defaultYAxisVisible;_this72._currentDistanceMeasurementInitState.zAxisVisible=_this72._currentDistanceMeasurement.zAxisVisible&&_this72.distanceMeasurementsPlugin.defaultZAxisVisible;_this72._currentDistanceMeasurementInitState.wireVisible=_this72._currentDistanceMeasurement.wireVisible;_this72._currentDistanceMeasurementInitState.targetVisible=_this72._currentDistanceMeasurement.targetVisible;_this72._currentDistanceMeasurement.clickable=false;_this72.fire("measurementStart",_this72._currentDistanceMeasurement);}}});this._onCameraControlHoverSnapOrSurfaceOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(_this72.pointerLens){_this72.pointerLens.visible=true;_this72.pointerLens.canvasPos=event.canvasPos;_this72.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;}mouseHovering=false;_this72._markerDiv.style.marginLeft="-100px";_this72._markerDiv.style.marginTop="-100px";if(_this72._currentDistanceMeasurement){_this72._currentDistanceMeasurement.wireVisible=false;_this72._currentDistanceMeasurement.targetVisible=false;_this72._currentDistanceMeasurement.axisVisible=false;}canvas.style.cursor="default";});this._active=true;}/**
14519
+ */,set:function set(snapping){if(snapping!==this._snapping){this._snapping=snapping;this.deactivate();this.activate();}else{this._snapping=snapping;}}},{key:"activate",value:function activate(){var _this72=this;if(this._active){return;}if(!this._markerDiv){this._initMarkerDiv();}this.fire("activated",true);var distanceMeasurementsPlugin=this.distanceMeasurementsPlugin;var scene=this.scene;var cameraControl=distanceMeasurementsPlugin.viewer.cameraControl;var canvas=scene.canvas.canvas;scene.input;var mouseHovering=false;var pointerWorldPos=math.vec3();var pointerCanvasPos=math.vec2();var pointerDownCanvasX;var pointerDownCanvasY;var clickTolerance=20;this._mouseState=MOUSE_FIRST_CLICK_EXPECTED;this._onCameraControlHoverSnapOrSurface=cameraControl.on(this._snapping?"hoverSnapOrSurface":"hoverSurface",function(event){var canvasPos=event.snappedCanvasPos||event.canvasPos;mouseHovering=true;pointerWorldPos.set(event.worldPos);pointerCanvasPos.set(event.canvasPos);if(_this72._mouseState===MOUSE_FIRST_CLICK_EXPECTED){_this72._markerDiv.style.marginLeft="".concat(canvasPos[0]-5,"px");_this72._markerDiv.style.marginTop="".concat(canvasPos[1]-5,"px");_this72._markerDiv.style.background="pink";if(event.snappedToVertex||event.snappedToEdge){if(_this72.pointerLens){_this72.pointerLens.visible=true;_this72.pointerLens.canvasPos=event.canvasPos;_this72.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;_this72.pointerLens.snapped=true;}_this72._markerDiv.style.background="greenyellow";_this72._markerDiv.style.border="2px solid green";}else{if(_this72.pointerLens){_this72.pointerLens.visible=true;_this72.pointerLens.canvasPos=event.canvasPos;_this72.pointerLens.snappedCanvasPos=event.canvasPos;_this72.pointerLens.snapped=false;}_this72._markerDiv.style.background="pink";_this72._markerDiv.style.border="2px solid red";}}else{_this72._markerDiv.style.marginLeft="-10000px";_this72._markerDiv.style.marginTop="-10000px";}canvas.style.cursor="pointer";if(_this72._currentDistanceMeasurement){_this72._currentDistanceMeasurement.wireVisible=_this72._currentDistanceMeasurementInitState.wireVisible;_this72._currentDistanceMeasurement.axisVisible=_this72._currentDistanceMeasurementInitState.axisVisible&&_this72.distanceMeasurementsPlugin.defaultAxisVisible;_this72._currentDistanceMeasurement.xAxisVisible=_this72._currentDistanceMeasurementInitState.xAxisVisible&&_this72.distanceMeasurementsPlugin.defaultXAxisVisible;_this72._currentDistanceMeasurement.yAxisVisible=_this72._currentDistanceMeasurementInitState.yAxisVisible&&_this72.distanceMeasurementsPlugin.defaultYAxisVisible;_this72._currentDistanceMeasurement.zAxisVisible=_this72._currentDistanceMeasurementInitState.zAxisVisible&&_this72.distanceMeasurementsPlugin.defaultZAxisVisible;_this72._currentDistanceMeasurement.targetVisible=_this72._currentDistanceMeasurementInitState.targetVisible;_this72._currentDistanceMeasurement.target.worldPos=pointerWorldPos.slice();_this72._markerDiv.style.marginLeft="-10000px";_this72._markerDiv.style.marginTop="-10000px";}});canvas.addEventListener('mousedown',this._onMouseDown=function(e){if(e.which!==1){return;}pointerDownCanvasX=e.clientX;pointerDownCanvasY=e.clientY;});canvas.addEventListener("mouseup",this._onMouseUp=function(e){if(e.which!==1){return;}if(e.clientX>pointerDownCanvasX+clickTolerance||e.clientX<pointerDownCanvasX-clickTolerance||e.clientY>pointerDownCanvasY+clickTolerance||e.clientY<pointerDownCanvasY-clickTolerance){return;}if(_this72._currentDistanceMeasurement){if(mouseHovering){_this72._currentDistanceMeasurement.clickable=true;_this72.distanceMeasurementsPlugin.fire("measurementEnd",_this72._currentDistanceMeasurement);_this72._currentDistanceMeasurement=null;}else{_this72._currentDistanceMeasurement.destroy();_this72.distanceMeasurementsPlugin.fire("measurementCancel",_this72._currentDistanceMeasurement);_this72._currentDistanceMeasurement=null;}}else{if(mouseHovering){_this72._currentDistanceMeasurement=distanceMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:pointerWorldPos.slice()},target:{worldPos:pointerWorldPos.slice()},approximate:true});_this72._currentDistanceMeasurementInitState.axisVisible=_this72._currentDistanceMeasurement.axisVisible&&_this72.distanceMeasurementsPlugin.defaultAxisVisible;_this72._currentDistanceMeasurementInitState.xAxisVisible=_this72._currentDistanceMeasurement.xAxisVisible&&_this72.distanceMeasurementsPlugin.defaultXAxisVisible;_this72._currentDistanceMeasurementInitState.yAxisVisible=_this72._currentDistanceMeasurement.yAxisVisible&&_this72.distanceMeasurementsPlugin.defaultYAxisVisible;_this72._currentDistanceMeasurementInitState.zAxisVisible=_this72._currentDistanceMeasurement.zAxisVisible&&_this72.distanceMeasurementsPlugin.defaultZAxisVisible;_this72._currentDistanceMeasurementInitState.wireVisible=_this72._currentDistanceMeasurement.wireVisible;_this72._currentDistanceMeasurementInitState.targetVisible=_this72._currentDistanceMeasurement.targetVisible;_this72._currentDistanceMeasurement.clickable=false;_this72.fire("measurementStart",_this72._currentDistanceMeasurement);}}});this._onCameraControlHoverSnapOrSurfaceOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(_this72.pointerLens){_this72.pointerLens.visible=true;_this72.pointerLens.canvasPos=event.canvasPos;_this72.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;}mouseHovering=false;_this72._markerDiv.style.marginLeft="-100px";_this72._markerDiv.style.marginTop="-100px";if(_this72._currentDistanceMeasurement){_this72._currentDistanceMeasurement.wireVisible=false;_this72._currentDistanceMeasurement.targetVisible=false;_this72._currentDistanceMeasurement.axisVisible=false;}canvas.style.cursor="default";});this._active=true;}/**
14518
14520
  * Deactivates this DistanceMeasurementsMouseControl, making it unresponsive to input.
14519
14521
  *
14520
14522
  * Destroys any {@link DistanceMeasurement} under construction by this DistanceMeasurementsMouseControl.
14521
- */},{key:"deactivate",value:function deactivate(){if(!this._active){return;}this.fire("activated",false);if(this.pointerLens){this.pointerLens.visible=false;}this.reset();var canvas=this.scene.canvas.canvas;canvas.removeEventListener("mousedown",this._onMouseDown);canvas.removeEventListener("mouseup",this._onMouseUp);var cameraControl=this.distanceMeasurementsPlugin.viewer.cameraControl;cameraControl.off(this._onCameraControlHoverSnapOrSurface);cameraControl.off(this._onCameraControlHoverSnapOrSurfaceOff);if(this._currentDistanceMeasurement){this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement);this._currentDistanceMeasurement.destroy();this._currentDistanceMeasurement=null;}this._active=false;}/**
14523
+ */},{key:"deactivate",value:function deactivate(){if(!this._active){return;}this.fire("activated",false);if(this.pointerLens){this.pointerLens.visible=false;}if(this._markerDiv){this._destroyMarkerDiv();}this.reset();var canvas=this.scene.canvas.canvas;canvas.removeEventListener("mousedown",this._onMouseDown);canvas.removeEventListener("mouseup",this._onMouseUp);var cameraControl=this.distanceMeasurementsPlugin.viewer.cameraControl;cameraControl.off(this._onCameraControlHoverSnapOrSurface);cameraControl.off(this._onCameraControlHoverSnapOrSurfaceOff);if(this._currentDistanceMeasurement){this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement);this._currentDistanceMeasurement.destroy();this._currentDistanceMeasurement=null;}this._active=false;}/**
14522
14524
  * Resets this DistanceMeasurementsMouseControl.
14523
14525
  *
14524
14526
  * Destroys any {@link DistanceMeasurement} under construction by this DistanceMeasurementsMouseControl.
14525
14527
  *
14526
14528
  * Does nothing if the DistanceMeasurementsMouseControl is not active.
14527
- */},{key:"reset",value:function reset(){if(!this._active){return;}if(this._currentDistanceMeasurement){this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement);this._currentDistanceMeasurement.destroy();this._currentDistanceMeasurement=null;}}/**
14529
+ */},{key:"reset",value:function reset(){if(!this._active){return;}this._destroyMarkerDiv();this._initMarkerDiv();if(this._currentDistanceMeasurement){this.distanceMeasurementsPlugin.fire("measurementCancel",this._currentDistanceMeasurement);this._currentDistanceMeasurement.destroy();this._currentDistanceMeasurement=null;}}/**
14528
14530
  * Destroys this DistanceMeasurementsMouseControl.
14529
14531
  *
14530
14532
  * Destroys any {@link DistanceMeasurement} under construction by this DistanceMeasurementsMouseControl.