@xtctwins/tctwins-core 1.0.16 → 1.0.17

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.
@@ -2956,8 +2956,10 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._cornerDot.s
2956
2956
  * @param {*} [cfg] Configuration
2957
2957
  * @param {PointerLens} [cfg.pointerLens] A PointerLens to use to provide a magnified view of the cursor when snapping is enabled.
2958
2958
  * @param {boolean} [cfg.snapping=true] Whether to initially enable snap-to-vertex and snap-to-edge for this AngleMeasurementsMouseControl.
2959
- */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)
2960
- _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","myAngleMeasureMarker");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("myAngleMeasureMarker");element.parentNode.removeChild(element);this.markerDiv=null;}}},{key:"_attachPlugin",value:function _attachPlugin(angleMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
2959
+ * @param {_offsetX} [cfg._offsetX] _offsetX of the mouse
2960
+ * @param {_offsetY} [cfg._offsetY] _offsetY of the mouse
2961
+ * */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)
2962
+ _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);_this18._offsetX=cfg._offsetX|0;_this18._offsetY=cfg._offsetY|0;return _this18;}_createClass(AngleMeasurementsMouseControl,[{key:"_initMarkerDiv",value:function _initMarkerDiv(){var markerDiv=document.createElement("div");markerDiv.setAttribute("id","myAngleMeasureMarker");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("myAngleMeasureMarker");element.parentNode.removeChild(element);this.markerDiv=null;}}},{key:"_attachPlugin",value:function _attachPlugin(angleMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
2961
2963
  * The {@link AngleMeasurementsPlugin} that owns this AngleMeasurementsMouseControl.
2962
2964
  *
2963
2965
  * @type {AngleMeasurementsPlugin}
@@ -2966,10 +2968,18 @@ _this18._initMarkerDiv();_this18._onMouseHoverSurface=null;_this18._onHoverNothi
2966
2968
  *
2967
2969
  * @type {AngleMeasurementsPlugin}
2968
2970
  */this.plugin=angleMeasurementsPlugin;}/**
2971
+ * @param {number} offsetX
2972
+ */},{key:"offsetX",get:/**
2973
+ * @return {number} mouse offset
2974
+ */function get(){return this._offsetX;}/**
2975
+ * @param {number} offsetX
2976
+ */,set:function set(offsetX){this._offsetX=offsetX;}},{key:"offsetY",get:/**
2977
+ * @return {number} mouse offset
2978
+ */function get(){return this._offsetY;}/**
2969
2979
  * Gets if this AngleMeasurementsMouseControl is currently active, where it is responding to input.
2970
2980
  *
2971
2981
  * @returns {boolean}
2972
- */},{key:"active",get:function get(){return this._active;}/**
2982
+ */,set:function set(offsetY){this._offsetY=offsetY;}},{key:"active",get:function get(){return this._active;}/**
2973
2983
  * Sets whether snap-to-vertex and snap-to-edge are enabled for this AngleMeasurementsMouseControl.
2974
2984
  *
2975
2985
  * This is `true` by default.
@@ -2988,7 +2998,7 @@ _this18._initMarkerDiv();_this18._onMouseHoverSurface=null;_this18._onHoverNothi
2988
2998
  */function get(){return this._snapping;}/**
2989
2999
  * Activates this AngleMeasurementsMouseControl, ready to respond to input.
2990
3000
  */,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
2991
- }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 hoveredEntity=null;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;hoveredEntity=event.entity;mouseWorldPos.set(event.worldPos);mouseHoverCanvasPos.set(canvasPos);switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=scrollLeft;var canvasTopEdge=scrollTop;_this19.markerDiv.style.marginLeft="".concat(canvasLeftEdge+canvasPos[0]-5,"px");_this19.markerDiv.style.marginTop="".concat(canvasTopEdge+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._currentAngleMeasurement.corner.entity=event.entity;}_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._currentAngleMeasurement.target.entity=event.entity;}_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:{worldPos:mouseWorldPos},corner:{worldPos:mouseWorldPos},target:{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._currentAngleMeasurement.origin.entity=hoveredEntity;_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._currentAngleMeasurement.corner.entity=hoveredEntity;_this19._mouseState=MOUSE_FINDING_TARGET;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;hoveredEntity=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.target.entity=hoveredEntity;_this19._currentAngleMeasurement.clickable=true;hoveredEntity=null;_this19.angleMeasurementsPlugin.fire("measurementEnd",_this19._currentAngleMeasurement);_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;hoveredEntity=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;}/**
3001
+ }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 hoveredEntity=null;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;hoveredEntity=event.entity;mouseWorldPos.set(event.worldPos);mouseHoverCanvasPos.set(canvasPos);switch(_this19._mouseState){case MOUSE_FINDING_ORIGIN:canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=scrollLeft;var canvasTopEdge=scrollTop;_this19.markerDiv.style.marginLeft="".concat(_this19._offsetX+canvasLeftEdge+canvasPos[0]-5,"px");_this19.markerDiv.style.marginTop="".concat(_this19._offsetY+canvasTopEdge+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._currentAngleMeasurement.corner.entity=event.entity;}_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._currentAngleMeasurement.target.entity=event.entity;}_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:{worldPos:mouseWorldPos},corner:{worldPos:mouseWorldPos},target:{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._currentAngleMeasurement.origin.entity=hoveredEntity;_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._currentAngleMeasurement.corner.entity=hoveredEntity;_this19._mouseState=MOUSE_FINDING_TARGET;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;hoveredEntity=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.target.entity=hoveredEntity;_this19._currentAngleMeasurement.clickable=true;hoveredEntity=null;_this19.angleMeasurementsPlugin.fire("measurementEnd",_this19._currentAngleMeasurement);_this19._currentAngleMeasurement=null;_this19._mouseState=MOUSE_FINDING_ORIGIN;}else{if(_this19._currentAngleMeasurement){_this19._currentAngleMeasurement.destroy();_this19._currentAngleMeasurement=null;hoveredEntity=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;}/**
2992
3002
  * Deactivates this AngleMeasurementsMouseControl, making it unresponsive to input.
2993
3003
  *
2994
3004
  * Destroys any {@link AngleMeasurement} under construction by this AngleMeasurementsMouseControl.
@@ -2998,7 +3008,7 @@ _this18._initMarkerDiv();_this18._onMouseHoverSurface=null;_this18._onHoverNothi
2998
3008
  * Destroys any {@link AngleMeasurement} under construction by this AngleMeasurementsMouseControl.
2999
3009
  *
3000
3010
  * Does nothing if the AngleMeasurementsMouseControl is not active.
3001
- */},{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;}/**
3011
+ */},{key:"reset",value:function reset(){if(!this._active){return;}this._destroyMarkerDiv();this._initMarkerDiv();if(this._currentAngleMeasurement){this.angleMeasurementsPlugin.fire("measurementCancel",this._currentAngleMeasurement);this._currentAngleMeasurement.destroy();this._currentAngleMeasurement=null;}this._mouseState=MOUSE_FINDING_ORIGIN;}/**
3002
3012
  * Destroys this AngleMeasurementsMouseControl.
3003
3013
  */},{key:"destroy",value:function destroy(){this.deactivate();_get(_getPrototypeOf(AngleMeasurementsMouseControl.prototype),"destroy",this).call(this);}}]);return AngleMeasurementsMouseControl;}(AngleMeasurementsControl);/**
3004
3014
  * {@link Viewer} plugin for measuring angles.
@@ -4878,554 +4888,551 @@ this._occlusionTester.unbindRenderBuf();}};/**
4878
4888
  * myViewer.scene.input.setKeyboardEnabled(true)
4879
4889
  * ````
4880
4890
  */var Input=/*#__PURE__*/function(_Component8){_inherits(Input,_Component8);var _super13=_createSuper(Input);/**
4881
- * @private
4882
- */function Input(owner){var _this32;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Input);_this32=_super13.call(this,owner,cfg);/**
4883
- * Code for the BACKSPACE key.
4884
- * @property KEY_BACKSPACE
4885
- * @final
4886
- * @type {Number}
4887
- */_this32.KEY_BACKSPACE=8;/**
4888
- * Code for the TAB key.
4889
- * @property KEY_TAB
4890
- * @final
4891
- * @type {Number}
4892
- */_this32.KEY_TAB=9;/**
4893
- * Code for the ENTER key.
4894
- * @property KEY_ENTER
4895
- * @final
4896
- * @type {Number}
4897
- */_this32.KEY_ENTER=13;/**
4898
- * Code for the SHIFT key.
4899
- * @property KEY_SHIFT
4900
- * @final
4901
- * @type {Number}
4902
- */_this32.KEY_SHIFT=16;/**
4903
- * Code for the CTRL key.
4904
- * @property KEY_CTRL
4905
- * @final
4906
- * @type {Number}
4907
- */_this32.KEY_CTRL=17;/**
4908
- * Code for the ALT key.
4909
- * @property KEY_ALT
4910
- * @final
4911
- * @type {Number}
4912
- */_this32.KEY_ALT=18;/**
4913
- * Code for the PAUSE_BREAK key.
4914
- * @property KEY_PAUSE_BREAK
4915
- * @final
4916
- * @type {Number}
4917
- */_this32.KEY_PAUSE_BREAK=19;/**
4918
- * Code for the CAPS_LOCK key.
4919
- * @property KEY_CAPS_LOCK
4920
- * @final
4921
- * @type {Number}
4922
- */_this32.KEY_CAPS_LOCK=20;/**
4923
- * Code for the ESCAPE key.
4924
- * @property KEY_ESCAPE
4925
- * @final
4926
- * @type {Number}
4927
- */_this32.KEY_ESCAPE=27;/**
4928
- * Code for the PAGE_UP key.
4929
- * @property KEY_PAGE_UP
4930
- * @final
4931
- * @type {Number}
4932
- */_this32.KEY_PAGE_UP=33;/**
4933
- * Code for the PAGE_DOWN key.
4934
- * @property KEY_PAGE_DOWN
4935
- * @final
4936
- * @type {Number}
4937
- */_this32.KEY_PAGE_DOWN=34;/**
4938
- * Code for the END key.
4939
- * @property KEY_END
4940
- * @final
4941
- * @type {Number}
4942
- */_this32.KEY_END=35;/**
4943
- * Code for the HOME key.
4944
- * @property KEY_HOME
4945
- * @final
4946
- * @type {Number}
4947
- */_this32.KEY_HOME=36;/**
4948
- * Code for the LEFT_ARROW key.
4949
- * @property KEY_LEFT_ARROW
4950
- * @final
4951
- * @type {Number}
4952
- */_this32.KEY_LEFT_ARROW=37;/**
4953
- * Code for the UP_ARROW key.
4954
- * @property KEY_UP_ARROW
4955
- * @final
4956
- * @type {Number}
4957
- */_this32.KEY_UP_ARROW=38;/**
4958
- * Code for the RIGHT_ARROW key.
4959
- * @property KEY_RIGHT_ARROW
4960
- * @final
4961
- * @type {Number}
4962
- */_this32.KEY_RIGHT_ARROW=39;/**
4963
- * Code for the DOWN_ARROW key.
4964
- * @property KEY_DOWN_ARROW
4965
- * @final
4966
- * @type {Number}
4967
- */_this32.KEY_DOWN_ARROW=40;/**
4968
- * Code for the INSERT key.
4969
- * @property KEY_INSERT
4970
- * @final
4971
- * @type {Number}
4972
- */_this32.KEY_INSERT=45;/**
4973
- * Code for the DELETE key.
4974
- * @property KEY_DELETE
4975
- * @final
4976
- * @type {Number}
4977
- */_this32.KEY_DELETE=46;/**
4978
- * Code for the 0 key.
4979
- * @property KEY_NUM_0
4980
- * @final
4981
- * @type {Number}
4982
- */_this32.KEY_NUM_0=48;/**
4983
- * Code for the 1 key.
4984
- * @property KEY_NUM_1
4985
- * @final
4986
- * @type {Number}
4987
- */_this32.KEY_NUM_1=49;/**
4988
- * Code for the 2 key.
4989
- * @property KEY_NUM_2
4990
- * @final
4991
- * @type {Number}
4992
- */_this32.KEY_NUM_2=50;/**
4993
- * Code for the 3 key.
4994
- * @property KEY_NUM_3
4995
- * @final
4996
- * @type {Number}
4997
- */_this32.KEY_NUM_3=51;/**
4998
- * Code for the 4 key.
4999
- * @property KEY_NUM_4
5000
- * @final
5001
- * @type {Number}
5002
- */_this32.KEY_NUM_4=52;/**
5003
- * Code for the 5 key.
5004
- * @property KEY_NUM_5
5005
- * @final
5006
- * @type {Number}
5007
- */_this32.KEY_NUM_5=53;/**
5008
- * Code for the 6 key.
5009
- * @property KEY_NUM_6
5010
- * @final
5011
- * @type {Number}
5012
- */_this32.KEY_NUM_6=54;/**
5013
- * Code for the 7 key.
5014
- * @property KEY_NUM_7
5015
- * @final
5016
- * @type {Number}
5017
- */_this32.KEY_NUM_7=55;/**
5018
- * Code for the 8 key.
5019
- * @property KEY_NUM_8
5020
- * @final
5021
- * @type {Number}
5022
- */_this32.KEY_NUM_8=56;/**
5023
- * Code for the 9 key.
5024
- * @property KEY_NUM_9
5025
- * @final
5026
- * @type {Number}
5027
- */_this32.KEY_NUM_9=57;/**
5028
- * Code for the A key.
5029
- * @property KEY_A
5030
- * @final
5031
- * @type {Number}
5032
- */_this32.KEY_A=65;/**
5033
- * Code for the B key.
5034
- * @property KEY_B
5035
- * @final
5036
- * @type {Number}
5037
- */_this32.KEY_B=66;/**
5038
- * Code for the C key.
5039
- * @property KEY_C
5040
- * @final
5041
- * @type {Number}
5042
- */_this32.KEY_C=67;/**
5043
- * Code for the D key.
5044
- * @property KEY_D
5045
- * @final
5046
- * @type {Number}
5047
- */_this32.KEY_D=68;/**
5048
- * Code for the E key.
5049
- * @property KEY_E
5050
- * @final
5051
- * @type {Number}
5052
- */_this32.KEY_E=69;/**
5053
- * Code for the F key.
5054
- * @property KEY_F
5055
- * @final
5056
- * @type {Number}
5057
- */_this32.KEY_F=70;/**
5058
- * Code for the G key.
5059
- * @property KEY_G
5060
- * @final
5061
- * @type {Number}
5062
- */_this32.KEY_G=71;/**
5063
- * Code for the H key.
5064
- * @property KEY_H
5065
- * @final
5066
- * @type {Number}
5067
- */_this32.KEY_H=72;/**
5068
- * Code for the I key.
5069
- * @property KEY_I
5070
- * @final
5071
- * @type {Number}
5072
- */_this32.KEY_I=73;/**
5073
- * Code for the J key.
5074
- * @property KEY_J
5075
- * @final
5076
- * @type {Number}
5077
- */_this32.KEY_J=74;/**
5078
- * Code for the K key.
5079
- * @property KEY_K
5080
- * @final
5081
- * @type {Number}
5082
- */_this32.KEY_K=75;/**
5083
- * Code for the L key.
5084
- * @property KEY_L
5085
- * @final
5086
- * @type {Number}
5087
- */_this32.KEY_L=76;/**
5088
- * Code for the M key.
5089
- * @property KEY_M
5090
- * @final
5091
- * @type {Number}
5092
- */_this32.KEY_M=77;/**
5093
- * Code for the N key.
5094
- * @property KEY_N
5095
- * @final
5096
- * @type {Number}
5097
- */_this32.KEY_N=78;/**
5098
- * Code for the O key.
5099
- * @property KEY_O
5100
- * @final
5101
- * @type {Number}
5102
- */_this32.KEY_O=79;/**
5103
- * Code for the P key.
5104
- * @property KEY_P
5105
- * @final
5106
- * @type {Number}
5107
- */_this32.KEY_P=80;/**
5108
- * Code for the Q key.
5109
- * @property KEY_Q
5110
- * @final
5111
- * @type {Number}
5112
- */_this32.KEY_Q=81;/**
5113
- * Code for the R key.
5114
- * @property KEY_R
5115
- * @final
5116
- * @type {Number}
5117
- */_this32.KEY_R=82;/**
5118
- * Code for the S key.
5119
- * @property KEY_S
5120
- * @final
5121
- * @type {Number}
5122
- */_this32.KEY_S=83;/**
5123
- * Code for the T key.
5124
- * @property KEY_T
5125
- * @final
5126
- * @type {Number}
5127
- */_this32.KEY_T=84;/**
5128
- * Code for the U key.
5129
- * @property KEY_U
5130
- * @final
5131
- * @type {Number}
5132
- */_this32.KEY_U=85;/**
5133
- * Code for the V key.
5134
- * @property KEY_V
5135
- * @final
5136
- * @type {Number}
5137
- */_this32.KEY_V=86;/**
5138
- * Code for the W key.
5139
- * @property KEY_W
5140
- * @final
5141
- * @type {Number}
5142
- */_this32.KEY_W=87;/**
5143
- * Code for the X key.
5144
- * @property KEY_X
5145
- * @final
5146
- * @type {Number}
5147
- */_this32.KEY_X=88;/**
5148
- * Code for the Y key.
5149
- * @property KEY_Y
5150
- * @final
5151
- * @type {Number}
5152
- */_this32.KEY_Y=89;/**
5153
- * Code for the Z key.
5154
- * @property KEY_Z
5155
- * @final
5156
- * @type {Number}
5157
- */_this32.KEY_Z=90;/**
5158
- * Code for the LEFT_WINDOW key.
5159
- * @property KEY_LEFT_WINDOW
5160
- * @final
5161
- * @type {Number}
5162
- */_this32.KEY_LEFT_WINDOW=91;/**
5163
- * Code for the RIGHT_WINDOW key.
5164
- * @property KEY_RIGHT_WINDOW
5165
- * @final
5166
- * @type {Number}
5167
- */_this32.KEY_RIGHT_WINDOW=92;/**
5168
- * Code for the SELECT key.
5169
- * @property KEY_SELECT
5170
- * @final
5171
- * @type {Number}
5172
- */_this32.KEY_SELECT_KEY=93;/**
5173
- * Code for the number pad 0 key.
5174
- * @property KEY_NUMPAD_0
5175
- * @final
5176
- * @type {Number}
5177
- */_this32.KEY_NUMPAD_0=96;/**
5178
- * Code for the number pad 1 key.
5179
- * @property KEY_NUMPAD_1
5180
- * @final
5181
- * @type {Number}
5182
- */_this32.KEY_NUMPAD_1=97;/**
5183
- * Code for the number pad 2 key.
5184
- * @property KEY_NUMPAD 2
5185
- * @final
5186
- * @type {Number}
5187
- */_this32.KEY_NUMPAD_2=98;/**
5188
- * Code for the number pad 3 key.
5189
- * @property KEY_NUMPAD_3
5190
- * @final
5191
- * @type {Number}
5192
- */_this32.KEY_NUMPAD_3=99;/**
5193
- * Code for the number pad 4 key.
5194
- * @property KEY_NUMPAD_4
5195
- * @final
5196
- * @type {Number}
5197
- */_this32.KEY_NUMPAD_4=100;/**
5198
- * Code for the number pad 5 key.
5199
- * @property KEY_NUMPAD_5
5200
- * @final
5201
- * @type {Number}
5202
- */_this32.KEY_NUMPAD_5=101;/**
5203
- * Code for the number pad 6 key.
5204
- * @property KEY_NUMPAD_6
5205
- * @final
5206
- * @type {Number}
5207
- */_this32.KEY_NUMPAD_6=102;/**
5208
- * Code for the number pad 7 key.
5209
- * @property KEY_NUMPAD_7
5210
- * @final
5211
- * @type {Number}
5212
- */_this32.KEY_NUMPAD_7=103;/**
5213
- * Code for the number pad 8 key.
5214
- * @property KEY_NUMPAD_8
5215
- * @final
5216
- * @type {Number}
5217
- */_this32.KEY_NUMPAD_8=104;/**
5218
- * Code for the number pad 9 key.
5219
- * @property KEY_NUMPAD_9
5220
- * @final
5221
- * @type {Number}
5222
- */_this32.KEY_NUMPAD_9=105;/**
5223
- * Code for the MULTIPLY key.
5224
- * @property KEY_MULTIPLY
5225
- * @final
5226
- * @type {Number}
5227
- */_this32.KEY_MULTIPLY=106;/**
5228
- * Code for the ADD key.
5229
- * @property KEY_ADD
5230
- * @final
5231
- * @type {Number}
5232
- */_this32.KEY_ADD=107;/**
5233
- * Code for the SUBTRACT key.
5234
- * @property KEY_SUBTRACT
5235
- * @final
5236
- * @type {Number}
5237
- */_this32.KEY_SUBTRACT=109;/**
5238
- * Code for the DECIMAL POINT key.
5239
- * @property KEY_DECIMAL_POINT
5240
- * @final
5241
- * @type {Number}
5242
- */_this32.KEY_DECIMAL_POINT=110;/**
5243
- * Code for the DIVIDE key.
5244
- * @property KEY_DIVIDE
5245
- * @final
5246
- * @type {Number}
5247
- */_this32.KEY_DIVIDE=111;/**
5248
- * Code for the F1 key.
5249
- * @property KEY_F1
5250
- * @final
5251
- * @type {Number}
5252
- */_this32.KEY_F1=112;/**
5253
- * Code for the F2 key.
5254
- * @property KEY_F2
5255
- * @final
5256
- * @type {Number}
5257
- */_this32.KEY_F2=113;/**
5258
- * Code for the F3 key.
5259
- * @property KEY_F3
5260
- * @final
5261
- * @type {Number}
5262
- */_this32.KEY_F3=114;/**
5263
- * Code for the F4 key.
5264
- * @property KEY_F4
5265
- * @final
5266
- * @type {Number}
5267
- */_this32.KEY_F4=115;/**
5268
- * Code for the F5 key.
5269
- * @property KEY_F5
5270
- * @final
5271
- * @type {Number}
5272
- */_this32.KEY_F5=116;/**
5273
- * Code for the F6 key.
5274
- * @property KEY_F6
5275
- * @final
5276
- * @type {Number}
5277
- */_this32.KEY_F6=117;/**
5278
- * Code for the F7 key.
5279
- * @property KEY_F7
5280
- * @final
5281
- * @type {Number}
5282
- */_this32.KEY_F7=118;/**
5283
- * Code for the F8 key.
5284
- * @property KEY_F8
5285
- * @final
5286
- * @type {Number}
5287
- */_this32.KEY_F8=119;/**
5288
- * Code for the F9 key.
5289
- * @property KEY_F9
5290
- * @final
5291
- * @type {Number}
5292
- */_this32.KEY_F9=120;/**
5293
- * Code for the F10 key.
5294
- * @property KEY_F10
5295
- * @final
5296
- * @type {Number}
5297
- */_this32.KEY_F10=121;/**
5298
- * Code for the F11 key.
5299
- * @property KEY_F11
5300
- * @final
5301
- * @type {Number}
5302
- */_this32.KEY_F11=122;/**
5303
- * Code for the F12 key.
5304
- * @property KEY_F12
5305
- * @final
5306
- * @type {Number}
5307
- */_this32.KEY_F12=123;/**
5308
- * Code for the NUM_LOCK key.
5309
- * @property KEY_NUM_LOCK
5310
- * @final
5311
- * @type {Number}
5312
- */_this32.KEY_NUM_LOCK=144;/**
5313
- * Code for the SCROLL_LOCK key.
5314
- * @property KEY_SCROLL_LOCK
5315
- * @final
5316
- * @type {Number}
5317
- */_this32.KEY_SCROLL_LOCK=145;/**
5318
- * Code for the SEMI_COLON key.
5319
- * @property KEY_SEMI_COLON
5320
- * @final
5321
- * @type {Number}
5322
- */_this32.KEY_SEMI_COLON=186;/**
5323
- * Code for the EQUAL_SIGN key.
5324
- * @property KEY_EQUAL_SIGN
5325
- * @final
5326
- * @type {Number}
5327
- */_this32.KEY_EQUAL_SIGN=187;/**
5328
- * Code for the COMMA key.
5329
- * @property KEY_COMMA
5330
- * @final
5331
- * @type {Number}
5332
- */_this32.KEY_COMMA=188;/**
5333
- * Code for the DASH key.
5334
- * @property KEY_DASH
5335
- * @final
5336
- * @type {Number}
5337
- */_this32.KEY_DASH=189;/**
5338
- * Code for the PERIOD key.
5339
- * @property KEY_PERIOD
5340
- * @final
5341
- * @type {Number}
5342
- */_this32.KEY_PERIOD=190;/**
5343
- * Code for the FORWARD_SLASH key.
5344
- * @property KEY_FORWARD_SLASH
5345
- * @final
5346
- * @type {Number}
5347
- */_this32.KEY_FORWARD_SLASH=191;/**
5348
- * Code for the GRAVE_ACCENT key.
5349
- * @property KEY_GRAVE_ACCENT
5350
- * @final
5351
- * @type {Number}
5352
- */_this32.KEY_GRAVE_ACCENT=192;/**
5353
- * Code for the OPEN_BRACKET key.
5354
- * @property KEY_OPEN_BRACKET
5355
- * @final
5356
- * @type {Number}
5357
- */_this32.KEY_OPEN_BRACKET=219;/**
5358
- * Code for the BACK_SLASH key.
5359
- * @property KEY_BACK_SLASH
5360
- * @final
5361
- * @type {Number}
5362
- */_this32.KEY_BACK_SLASH=220;/**
5363
- * Code for the CLOSE_BRACKET key.
5364
- * @property KEY_CLOSE_BRACKET
5365
- * @final
5366
- * @type {Number}
5367
- */_this32.KEY_CLOSE_BRACKET=221;/**
5368
- * Code for the SINGLE_QUOTE key.
5369
- * @property KEY_SINGLE_QUOTE
5370
- * @final
5371
- * @type {Number}
5372
- */_this32.KEY_SINGLE_QUOTE=222;/**
5373
- * Code for the SPACE key.
5374
- * @property KEY_SPACE
5375
- * @final
5376
- * @type {Number}
5377
- */_this32.KEY_SPACE=32;/**
5378
- * The canvas element that mouse and keyboards are bound to.
5379
- *
5380
- * @final
5381
- * @type {HTMLCanvasElement}
5382
- */_this32.element=cfg.element;/** True whenever ALT key is down.
5383
- *
5384
- * @type {boolean}
5385
- */_this32.altDown=false;/** True whenever CTRL key is down.
5386
- *
5387
- * @type {boolean}
5388
- */_this32.ctrlDown=false;/** True whenever left mouse button is down.
5389
- *
5390
- * @type {boolean}
5391
- */_this32.mouseDownLeft=false;/**
5392
- * True whenever middle mouse button is down.
5393
- *
5394
- * @type {boolean}
5395
- */_this32.mouseDownMiddle=false;/**
5396
- * True whenever the right mouse button is down.
5397
- *
5398
- * @type {boolean}
5399
- */_this32.mouseDownRight=false;/**
5400
- * Flag for each key that's down.
5401
- *
5402
- * @type {boolean[]}
5403
- */_this32.keyDown=[];/** True while input enabled
5404
- *
5405
- * @type {boolean}
5406
- */_this32.enabled=true;/** True while keyboard input is enabled.
5407
- *
5408
- * Default value is ````true````.
5409
- *
5410
- * {@link CameraControl} will not respond to keyboard events while this is ````false````.
5411
- *
5412
- * @type {boolean}
5413
- */_this32.keyboardEnabled=true;/** True while the mouse is over the canvas.
5414
- *
5415
- * @type {boolean}
5416
- */_this32.mouseover=false;/**
5417
- * Current mouse position within the canvas.
5418
- * @type {Number[]}
5419
- */_this32.mouseCanvasPos=math.vec2();_this32._keyboardEventsElement=cfg.keyboardEventsElement||document;_this32._bindEvents();return _this32;}_createClass(Input,[{key:"_bindEvents",value:function _bindEvents(){var _this33=this;if(this._eventsBound){return;}this._keyboardEventsElement.addEventListener("keydown",this._keyDownListener=function(e){if(!_this33.enabled||!_this33.keyboardEnabled){return;}if(e.target.tagName!=="INPUT"&&e.target.tagName!=="TEXTAREA"){if(e.keyCode===_this33.KEY_CTRL){_this33.ctrlDown=true;}else if(e.keyCode===_this33.KEY_ALT){_this33.altDown=true;}else if(e.keyCode===_this33.KEY_SHIFT){_this33.shiftDown=true;}_this33.keyDown[e.keyCode]=true;_this33.fire("keydown",e.keyCode,true);}},false);this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=function(e){if(!_this33.enabled||!_this33.keyboardEnabled){return;}if(e.target.tagName!=="INPUT"&&e.target.tagName!=="TEXTAREA"){if(e.keyCode===_this33.KEY_CTRL){_this33.ctrlDown=false;}else if(e.keyCode===_this33.KEY_ALT){_this33.altDown=false;}else if(e.keyCode===_this33.KEY_SHIFT){_this33.shiftDown=false;}_this33.keyDown[e.keyCode]=false;_this33.fire("keyup",e.keyCode,true);}});this.element.addEventListener("mouseenter",this._mouseEnterListener=function(e){if(!_this33.enabled){return;}_this33.mouseover=true;_this33._getMouseCanvasPos(e);_this33.fire("mouseenter",_this33.mouseCanvasPos,true);});this.element.addEventListener("mouseleave",this._mouseLeaveListener=function(e){if(!_this33.enabled){return;}_this33.mouseover=false;_this33._getMouseCanvasPos(e);_this33.fire("mouseleave",_this33.mouseCanvasPos,true);});this.element.addEventListener("mousedown",this._mouseDownListener=function(e){if(!_this33.enabled){return;}switch(e.which){case 1:// Left button
4891
+ * @private
4892
+ */function Input(owner){var _this32;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,Input);_this32=_super13.call(this,owner,cfg);/**
4893
+ * Code for the BACKSPACE key.
4894
+ * @property KEY_BACKSPACE
4895
+ * @final
4896
+ * @type {Number}
4897
+ */_this32.KEY_BACKSPACE=8;/**
4898
+ * Code for the TAB key.
4899
+ * @property KEY_TAB
4900
+ * @final
4901
+ * @type {Number}
4902
+ */_this32.KEY_TAB=9;/**
4903
+ * Code for the ENTER key.
4904
+ * @property KEY_ENTER
4905
+ * @final
4906
+ * @type {Number}
4907
+ */_this32.KEY_ENTER=13;/**
4908
+ * Code for the SHIFT key.
4909
+ * @property KEY_SHIFT
4910
+ * @final
4911
+ * @type {Number}
4912
+ */_this32.KEY_SHIFT=16;/**
4913
+ * Code for the CTRL key.
4914
+ * @property KEY_CTRL
4915
+ * @final
4916
+ * @type {Number}
4917
+ */_this32.KEY_CTRL=17;/**
4918
+ * Code for the ALT key.
4919
+ * @property KEY_ALT
4920
+ * @final
4921
+ * @type {Number}
4922
+ */_this32.KEY_ALT=18;/**
4923
+ * Code for the PAUSE_BREAK key.
4924
+ * @property KEY_PAUSE_BREAK
4925
+ * @final
4926
+ * @type {Number}
4927
+ */_this32.KEY_PAUSE_BREAK=19;/**
4928
+ * Code for the CAPS_LOCK key.
4929
+ * @property KEY_CAPS_LOCK
4930
+ * @final
4931
+ * @type {Number}
4932
+ */_this32.KEY_CAPS_LOCK=20;/**
4933
+ * Code for the ESCAPE key.
4934
+ * @property KEY_ESCAPE
4935
+ * @final
4936
+ * @type {Number}
4937
+ */_this32.KEY_ESCAPE=27;/**
4938
+ * Code for the PAGE_UP key.
4939
+ * @property KEY_PAGE_UP
4940
+ * @final
4941
+ * @type {Number}
4942
+ */_this32.KEY_PAGE_UP=33;/**
4943
+ * Code for the PAGE_DOWN key.
4944
+ * @property KEY_PAGE_DOWN
4945
+ * @final
4946
+ * @type {Number}
4947
+ */_this32.KEY_PAGE_DOWN=34;/**
4948
+ * Code for the END key.
4949
+ * @property KEY_END
4950
+ * @final
4951
+ * @type {Number}
4952
+ */_this32.KEY_END=35;/**
4953
+ * Code for the HOME key.
4954
+ * @property KEY_HOME
4955
+ * @final
4956
+ * @type {Number}
4957
+ */_this32.KEY_HOME=36;/**
4958
+ * Code for the LEFT_ARROW key.
4959
+ * @property KEY_LEFT_ARROW
4960
+ * @final
4961
+ * @type {Number}
4962
+ */_this32.KEY_LEFT_ARROW=37;/**
4963
+ * Code for the UP_ARROW key.
4964
+ * @property KEY_UP_ARROW
4965
+ * @final
4966
+ * @type {Number}
4967
+ */_this32.KEY_UP_ARROW=38;/**
4968
+ * Code for the RIGHT_ARROW key.
4969
+ * @property KEY_RIGHT_ARROW
4970
+ * @final
4971
+ * @type {Number}
4972
+ */_this32.KEY_RIGHT_ARROW=39;/**
4973
+ * Code for the DOWN_ARROW key.
4974
+ * @property KEY_DOWN_ARROW
4975
+ * @final
4976
+ * @type {Number}
4977
+ */_this32.KEY_DOWN_ARROW=40;/**
4978
+ * Code for the INSERT key.
4979
+ * @property KEY_INSERT
4980
+ * @final
4981
+ * @type {Number}
4982
+ */_this32.KEY_INSERT=45;/**
4983
+ * Code for the DELETE key.
4984
+ * @property KEY_DELETE
4985
+ * @final
4986
+ * @type {Number}
4987
+ */_this32.KEY_DELETE=46;/**
4988
+ * Code for the 0 key.
4989
+ * @property KEY_NUM_0
4990
+ * @final
4991
+ * @type {Number}
4992
+ */_this32.KEY_NUM_0=48;/**
4993
+ * Code for the 1 key.
4994
+ * @property KEY_NUM_1
4995
+ * @final
4996
+ * @type {Number}
4997
+ */_this32.KEY_NUM_1=49;/**
4998
+ * Code for the 2 key.
4999
+ * @property KEY_NUM_2
5000
+ * @final
5001
+ * @type {Number}
5002
+ */_this32.KEY_NUM_2=50;/**
5003
+ * Code for the 3 key.
5004
+ * @property KEY_NUM_3
5005
+ * @final
5006
+ * @type {Number}
5007
+ */_this32.KEY_NUM_3=51;/**
5008
+ * Code for the 4 key.
5009
+ * @property KEY_NUM_4
5010
+ * @final
5011
+ * @type {Number}
5012
+ */_this32.KEY_NUM_4=52;/**
5013
+ * Code for the 5 key.
5014
+ * @property KEY_NUM_5
5015
+ * @final
5016
+ * @type {Number}
5017
+ */_this32.KEY_NUM_5=53;/**
5018
+ * Code for the 6 key.
5019
+ * @property KEY_NUM_6
5020
+ * @final
5021
+ * @type {Number}
5022
+ */_this32.KEY_NUM_6=54;/**
5023
+ * Code for the 7 key.
5024
+ * @property KEY_NUM_7
5025
+ * @final
5026
+ * @type {Number}
5027
+ */_this32.KEY_NUM_7=55;/**
5028
+ * Code for the 8 key.
5029
+ * @property KEY_NUM_8
5030
+ * @final
5031
+ * @type {Number}
5032
+ */_this32.KEY_NUM_8=56;/**
5033
+ * Code for the 9 key.
5034
+ * @property KEY_NUM_9
5035
+ * @final
5036
+ * @type {Number}
5037
+ */_this32.KEY_NUM_9=57;/**
5038
+ * Code for the A key.
5039
+ * @property KEY_A
5040
+ * @final
5041
+ * @type {Number}
5042
+ */_this32.KEY_A=65;/**
5043
+ * Code for the B key.
5044
+ * @property KEY_B
5045
+ * @final
5046
+ * @type {Number}
5047
+ */_this32.KEY_B=66;/**
5048
+ * Code for the C key.
5049
+ * @property KEY_C
5050
+ * @final
5051
+ * @type {Number}
5052
+ */_this32.KEY_C=67;/**
5053
+ * Code for the D key.
5054
+ * @property KEY_D
5055
+ * @final
5056
+ * @type {Number}
5057
+ */_this32.KEY_D=68;/**
5058
+ * Code for the E key.
5059
+ * @property KEY_E
5060
+ * @final
5061
+ * @type {Number}
5062
+ */_this32.KEY_E=69;/**
5063
+ * Code for the F key.
5064
+ * @property KEY_F
5065
+ * @final
5066
+ * @type {Number}
5067
+ */_this32.KEY_F=70;/**
5068
+ * Code for the G key.
5069
+ * @property KEY_G
5070
+ * @final
5071
+ * @type {Number}
5072
+ */_this32.KEY_G=71;/**
5073
+ * Code for the H key.
5074
+ * @property KEY_H
5075
+ * @final
5076
+ * @type {Number}
5077
+ */_this32.KEY_H=72;/**
5078
+ * Code for the I key.
5079
+ * @property KEY_I
5080
+ * @final
5081
+ * @type {Number}
5082
+ */_this32.KEY_I=73;/**
5083
+ * Code for the J key.
5084
+ * @property KEY_J
5085
+ * @final
5086
+ * @type {Number}
5087
+ */_this32.KEY_J=74;/**
5088
+ * Code for the K key.
5089
+ * @property KEY_K
5090
+ * @final
5091
+ * @type {Number}
5092
+ */_this32.KEY_K=75;/**
5093
+ * Code for the L key.
5094
+ * @property KEY_L
5095
+ * @final
5096
+ * @type {Number}
5097
+ */_this32.KEY_L=76;/**
5098
+ * Code for the M key.
5099
+ * @property KEY_M
5100
+ * @final
5101
+ * @type {Number}
5102
+ */_this32.KEY_M=77;/**
5103
+ * Code for the N key.
5104
+ * @property KEY_N
5105
+ * @final
5106
+ * @type {Number}
5107
+ */_this32.KEY_N=78;/**
5108
+ * Code for the O key.
5109
+ * @property KEY_O
5110
+ * @final
5111
+ * @type {Number}
5112
+ */_this32.KEY_O=79;/**
5113
+ * Code for the P key.
5114
+ * @property KEY_P
5115
+ * @final
5116
+ * @type {Number}
5117
+ */_this32.KEY_P=80;/**
5118
+ * Code for the Q key.
5119
+ * @property KEY_Q
5120
+ * @final
5121
+ * @type {Number}
5122
+ */_this32.KEY_Q=81;/**
5123
+ * Code for the R key.
5124
+ * @property KEY_R
5125
+ * @final
5126
+ * @type {Number}
5127
+ */_this32.KEY_R=82;/**
5128
+ * Code for the S key.
5129
+ * @property KEY_S
5130
+ * @final
5131
+ * @type {Number}
5132
+ */_this32.KEY_S=83;/**
5133
+ * Code for the T key.
5134
+ * @property KEY_T
5135
+ * @final
5136
+ * @type {Number}
5137
+ */_this32.KEY_T=84;/**
5138
+ * Code for the U key.
5139
+ * @property KEY_U
5140
+ * @final
5141
+ * @type {Number}
5142
+ */_this32.KEY_U=85;/**
5143
+ * Code for the V key.
5144
+ * @property KEY_V
5145
+ * @final
5146
+ * @type {Number}
5147
+ */_this32.KEY_V=86;/**
5148
+ * Code for the W key.
5149
+ * @property KEY_W
5150
+ * @final
5151
+ * @type {Number}
5152
+ */_this32.KEY_W=87;/**
5153
+ * Code for the X key.
5154
+ * @property KEY_X
5155
+ * @final
5156
+ * @type {Number}
5157
+ */_this32.KEY_X=88;/**
5158
+ * Code for the Y key.
5159
+ * @property KEY_Y
5160
+ * @final
5161
+ * @type {Number}
5162
+ */_this32.KEY_Y=89;/**
5163
+ * Code for the Z key.
5164
+ * @property KEY_Z
5165
+ * @final
5166
+ * @type {Number}
5167
+ */_this32.KEY_Z=90;/**
5168
+ * Code for the LEFT_WINDOW key.
5169
+ * @property KEY_LEFT_WINDOW
5170
+ * @final
5171
+ * @type {Number}
5172
+ */_this32.KEY_LEFT_WINDOW=91;/**
5173
+ * Code for the RIGHT_WINDOW key.
5174
+ * @property KEY_RIGHT_WINDOW
5175
+ * @final
5176
+ * @type {Number}
5177
+ */_this32.KEY_RIGHT_WINDOW=92;/**
5178
+ * Code for the SELECT key.
5179
+ * @property KEY_SELECT
5180
+ * @final
5181
+ * @type {Number}
5182
+ */_this32.KEY_SELECT_KEY=93;/**
5183
+ * Code for the number pad 0 key.
5184
+ * @property KEY_NUMPAD_0
5185
+ * @final
5186
+ * @type {Number}
5187
+ */_this32.KEY_NUMPAD_0=96;/**
5188
+ * Code for the number pad 1 key.
5189
+ * @property KEY_NUMPAD_1
5190
+ * @final
5191
+ * @type {Number}
5192
+ */_this32.KEY_NUMPAD_1=97;/**
5193
+ * Code for the number pad 2 key.
5194
+ * @property KEY_NUMPAD 2
5195
+ * @final
5196
+ * @type {Number}
5197
+ */_this32.KEY_NUMPAD_2=98;/**
5198
+ * Code for the number pad 3 key.
5199
+ * @property KEY_NUMPAD_3
5200
+ * @final
5201
+ * @type {Number}
5202
+ */_this32.KEY_NUMPAD_3=99;/**
5203
+ * Code for the number pad 4 key.
5204
+ * @property KEY_NUMPAD_4
5205
+ * @final
5206
+ * @type {Number}
5207
+ */_this32.KEY_NUMPAD_4=100;/**
5208
+ * Code for the number pad 5 key.
5209
+ * @property KEY_NUMPAD_5
5210
+ * @final
5211
+ * @type {Number}
5212
+ */_this32.KEY_NUMPAD_5=101;/**
5213
+ * Code for the number pad 6 key.
5214
+ * @property KEY_NUMPAD_6
5215
+ * @final
5216
+ * @type {Number}
5217
+ */_this32.KEY_NUMPAD_6=102;/**
5218
+ * Code for the number pad 7 key.
5219
+ * @property KEY_NUMPAD_7
5220
+ * @final
5221
+ * @type {Number}
5222
+ */_this32.KEY_NUMPAD_7=103;/**
5223
+ * Code for the number pad 8 key.
5224
+ * @property KEY_NUMPAD_8
5225
+ * @final
5226
+ * @type {Number}
5227
+ */_this32.KEY_NUMPAD_8=104;/**
5228
+ * Code for the number pad 9 key.
5229
+ * @property KEY_NUMPAD_9
5230
+ * @final
5231
+ * @type {Number}
5232
+ */_this32.KEY_NUMPAD_9=105;/**
5233
+ * Code for the MULTIPLY key.
5234
+ * @property KEY_MULTIPLY
5235
+ * @final
5236
+ * @type {Number}
5237
+ */_this32.KEY_MULTIPLY=106;/**
5238
+ * Code for the ADD key.
5239
+ * @property KEY_ADD
5240
+ * @final
5241
+ * @type {Number}
5242
+ */_this32.KEY_ADD=107;/**
5243
+ * Code for the SUBTRACT key.
5244
+ * @property KEY_SUBTRACT
5245
+ * @final
5246
+ * @type {Number}
5247
+ */_this32.KEY_SUBTRACT=109;/**
5248
+ * Code for the DECIMAL POINT key.
5249
+ * @property KEY_DECIMAL_POINT
5250
+ * @final
5251
+ * @type {Number}
5252
+ */_this32.KEY_DECIMAL_POINT=110;/**
5253
+ * Code for the DIVIDE key.
5254
+ * @property KEY_DIVIDE
5255
+ * @final
5256
+ * @type {Number}
5257
+ */_this32.KEY_DIVIDE=111;/**
5258
+ * Code for the F1 key.
5259
+ * @property KEY_F1
5260
+ * @final
5261
+ * @type {Number}
5262
+ */_this32.KEY_F1=112;/**
5263
+ * Code for the F2 key.
5264
+ * @property KEY_F2
5265
+ * @final
5266
+ * @type {Number}
5267
+ */_this32.KEY_F2=113;/**
5268
+ * Code for the F3 key.
5269
+ * @property KEY_F3
5270
+ * @final
5271
+ * @type {Number}
5272
+ */_this32.KEY_F3=114;/**
5273
+ * Code for the F4 key.
5274
+ * @property KEY_F4
5275
+ * @final
5276
+ * @type {Number}
5277
+ */_this32.KEY_F4=115;/**
5278
+ * Code for the F5 key.
5279
+ * @property KEY_F5
5280
+ * @final
5281
+ * @type {Number}
5282
+ */_this32.KEY_F5=116;/**
5283
+ * Code for the F6 key.
5284
+ * @property KEY_F6
5285
+ * @final
5286
+ * @type {Number}
5287
+ */_this32.KEY_F6=117;/**
5288
+ * Code for the F7 key.
5289
+ * @property KEY_F7
5290
+ * @final
5291
+ * @type {Number}
5292
+ */_this32.KEY_F7=118;/**
5293
+ * Code for the F8 key.
5294
+ * @property KEY_F8
5295
+ * @final
5296
+ * @type {Number}
5297
+ */_this32.KEY_F8=119;/**
5298
+ * Code for the F9 key.
5299
+ * @property KEY_F9
5300
+ * @final
5301
+ * @type {Number}
5302
+ */_this32.KEY_F9=120;/**
5303
+ * Code for the F10 key.
5304
+ * @property KEY_F10
5305
+ * @final
5306
+ * @type {Number}
5307
+ */_this32.KEY_F10=121;/**
5308
+ * Code for the F11 key.
5309
+ * @property KEY_F11
5310
+ * @final
5311
+ * @type {Number}
5312
+ */_this32.KEY_F11=122;/**
5313
+ * Code for the F12 key.
5314
+ * @property KEY_F12
5315
+ * @final
5316
+ * @type {Number}
5317
+ */_this32.KEY_F12=123;/**
5318
+ * Code for the NUM_LOCK key.
5319
+ * @property KEY_NUM_LOCK
5320
+ * @final
5321
+ * @type {Number}
5322
+ */_this32.KEY_NUM_LOCK=144;/**
5323
+ * Code for the SCROLL_LOCK key.
5324
+ * @property KEY_SCROLL_LOCK
5325
+ * @final
5326
+ * @type {Number}
5327
+ */_this32.KEY_SCROLL_LOCK=145;/**
5328
+ * Code for the SEMI_COLON key.
5329
+ * @property KEY_SEMI_COLON
5330
+ * @final
5331
+ * @type {Number}
5332
+ */_this32.KEY_SEMI_COLON=186;/**
5333
+ * Code for the EQUAL_SIGN key.
5334
+ * @property KEY_EQUAL_SIGN
5335
+ * @final
5336
+ * @type {Number}
5337
+ */_this32.KEY_EQUAL_SIGN=187;/**
5338
+ * Code for the COMMA key.
5339
+ * @property KEY_COMMA
5340
+ * @final
5341
+ * @type {Number}
5342
+ */_this32.KEY_COMMA=188;/**
5343
+ * Code for the DASH key.
5344
+ * @property KEY_DASH
5345
+ * @final
5346
+ * @type {Number}
5347
+ */_this32.KEY_DASH=189;/**
5348
+ * Code for the PERIOD key.
5349
+ * @property KEY_PERIOD
5350
+ * @final
5351
+ * @type {Number}
5352
+ */_this32.KEY_PERIOD=190;/**
5353
+ * Code for the FORWARD_SLASH key.
5354
+ * @property KEY_FORWARD_SLASH
5355
+ * @final
5356
+ * @type {Number}
5357
+ */_this32.KEY_FORWARD_SLASH=191;/**
5358
+ * Code for the GRAVE_ACCENT key.
5359
+ * @property KEY_GRAVE_ACCENT
5360
+ * @final
5361
+ * @type {Number}
5362
+ */_this32.KEY_GRAVE_ACCENT=192;/**
5363
+ * Code for the OPEN_BRACKET key.
5364
+ * @property KEY_OPEN_BRACKET
5365
+ * @final
5366
+ * @type {Number}
5367
+ */_this32.KEY_OPEN_BRACKET=219;/**
5368
+ * Code for the BACK_SLASH key.
5369
+ * @property KEY_BACK_SLASH
5370
+ * @final
5371
+ * @type {Number}
5372
+ */_this32.KEY_BACK_SLASH=220;/**
5373
+ * Code for the CLOSE_BRACKET key.
5374
+ * @property KEY_CLOSE_BRACKET
5375
+ * @final
5376
+ * @type {Number}
5377
+ */_this32.KEY_CLOSE_BRACKET=221;/**
5378
+ * Code for the SINGLE_QUOTE key.
5379
+ * @property KEY_SINGLE_QUOTE
5380
+ * @final
5381
+ * @type {Number}
5382
+ */_this32.KEY_SINGLE_QUOTE=222;/**
5383
+ * Code for the SPACE key.
5384
+ * @property KEY_SPACE
5385
+ * @final
5386
+ * @type {Number}
5387
+ */_this32.KEY_SPACE=32;/**
5388
+ * The canvas element that mouse and keyboards are bound to.
5389
+ *
5390
+ * @final
5391
+ * @type {HTMLCanvasElement}
5392
+ */_this32.element=cfg.element;/** True whenever ALT key is down.
5393
+ *
5394
+ * @type {boolean}
5395
+ */_this32.altDown=false;/** True whenever CTRL key is down.
5396
+ *
5397
+ * @type {boolean}
5398
+ */_this32.ctrlDown=false;/** True whenever left mouse button is down.
5399
+ *
5400
+ * @type {boolean}
5401
+ */_this32.mouseDownLeft=false;/**
5402
+ * True whenever middle mouse button is down.
5403
+ *
5404
+ * @type {boolean}
5405
+ */_this32.mouseDownMiddle=false;/**
5406
+ * True whenever the right mouse button is down.
5407
+ *
5408
+ * @type {boolean}
5409
+ */_this32.mouseDownRight=false;/**
5410
+ * Flag for each key that's down.
5411
+ *
5412
+ * @type {boolean[]}
5413
+ */_this32.keyDown=[];/** True while input enabled
5414
+ *
5415
+ * @type {boolean}
5416
+ */_this32.enabled=true;/** True while keyboard input is enabled.
5417
+ *
5418
+ * Default value is ````true````.
5419
+ *
5420
+ * {@link CameraControl} will not respond to keyboard events while this is ````false````.
5421
+ *
5422
+ * @type {boolean}
5423
+ */_this32.keyboardEnabled=true;/** True while the mouse is over the canvas.
5424
+ *
5425
+ * @type {boolean}
5426
+ */_this32.mouseover=false;/**
5427
+ * Current mouse position within the canvas.
5428
+ * @type {Number[]}
5429
+ */_this32.mouseCanvasPos=math.vec2();_this32._keyboardEventsElement=cfg.keyboardEventsElement||document;_this32._bindEvents();return _this32;}_createClass(Input,[{key:"_bindEvents",value:function _bindEvents(){var _this33=this;if(this._eventsBound){return;}this._keyboardEventsElement.addEventListener("keydown",this._keyDownListener=function(e){if(!_this33.enabled||!_this33.keyboardEnabled){return;}if(e.target.tagName!=="INPUT"&&e.target.tagName!=="TEXTAREA"){if(e.keyCode===_this33.KEY_CTRL){_this33.ctrlDown=true;}else if(e.keyCode===_this33.KEY_ALT){_this33.altDown=true;}else if(e.keyCode===_this33.KEY_SHIFT){_this33.shiftDown=true;}_this33.keyDown[e.keyCode]=true;_this33.fire("keydown",e.keyCode,true);}},false);this._keyboardEventsElement.addEventListener("keyup",this._keyUpListener=function(e){if(!_this33.enabled||!_this33.keyboardEnabled){return;}if(e.target.tagName!=="INPUT"&&e.target.tagName!=="TEXTAREA"){if(e.keyCode===_this33.KEY_CTRL){_this33.ctrlDown=false;}else if(e.keyCode===_this33.KEY_ALT){_this33.altDown=false;}else if(e.keyCode===_this33.KEY_SHIFT){_this33.shiftDown=false;}_this33.keyDown[e.keyCode]=false;_this33.fire("keyup",e.keyCode,true);}});this.element.addEventListener("mouseenter",this._mouseEnterListener=function(e){if(!_this33.enabled){return;}_this33.mouseover=true;_this33._getMouseCanvasPos(e);_this33.fire("mouseenter",_this33.mouseCanvasPos,true);});this.element.addEventListener("mouseleave",this._mouseLeaveListener=function(e){if(!_this33.enabled){return;}_this33.mouseover=false;_this33._getMouseCanvasPos(e);_this33.fire("mouseleave",_this33.mouseCanvasPos,true);});this.element.addEventListener("mousedown",this._mouseDownListener=function(e){if(!_this33.enabled){return;}switch(e.which){case 1:// Left button
5420
5430
  _this33.mouseDownLeft=true;break;case 2:// Middle/both buttons
5421
5431
  _this33.mouseDownMiddle=true;break;case 3:// Right button
5422
5432
  _this33.mouseDownRight=true;break;}_this33._getMouseCanvasPos(e);_this33.element.focus();_this33.fire("mousedown",_this33.mouseCanvasPos,true);if(_this33.mouseover){e.preventDefault();}});document.addEventListener("mouseup",this._mouseUpListener=function(e){if(!_this33.enabled){return;}switch(e.which){case 1:// Left button
5423
5433
  _this33.mouseDownLeft=false;break;case 2:// Middle/both buttons
5424
5434
  _this33.mouseDownMiddle=false;break;case 3:// Right button
5425
- _this33.mouseDownRight=false;break;}_this33.fire("mouseup",_this33.mouseCanvasPos,true);// if (this.mouseover) {
5426
- // e.preventDefault();
5427
- // }
5428
- },true);document.addEventListener("click",this._clickListener=function(e){if(!_this33.enabled){return;}switch(e.which){case 1:// Left button
5435
+ _this33.mouseDownRight=false;break;}_this33.fire("mouseup",_this33.mouseCanvasPos,true);if(_this33.mouseover){e.preventDefault();}},true);document.addEventListener("click",this._clickListener=function(e){if(!_this33.enabled){return;}switch(e.which){case 1:// Left button
5429
5436
  _this33.mouseDownLeft=false;_this33.mouseDownRight=false;break;case 2:// Middle/both buttons
5430
5437
  _this33.mouseDownMiddle=false;break;case 3:// Right button
5431
5438
  _this33.mouseDownLeft=false;_this33.mouseDownRight=false;break;}_this33._getMouseCanvasPos(e);_this33.fire("click",_this33.mouseCanvasPos,true);if(_this33.mouseover){e.preventDefault();}});document.addEventListener("dblclick",this._dblClickListener=function(e){if(!_this33.enabled){return;}switch(e.which){case 1:// Left button
@@ -5433,37 +5440,37 @@ _this33.mouseDownLeft=false;_this33.mouseDownRight=false;break;case 2:// Middle/
5433
5440
  _this33.mouseDownMiddle=false;break;case 3:// Right button
5434
5441
  _this33.mouseDownLeft=false;_this33.mouseDownRight=false;break;}_this33._getMouseCanvasPos(e);_this33.fire("dblclick",_this33.mouseCanvasPos,true);if(_this33.mouseover){e.preventDefault();}});var tickifedMouseMoveFn=this.scene.tickify(function(){return _this33.fire("mousemove",_this33.mouseCanvasPos,true);});this.element.addEventListener("mousemove",this._mouseMoveListener=function(e){if(!_this33.enabled){return;}_this33._getMouseCanvasPos(e);tickifedMouseMoveFn();if(_this33.mouseover){e.preventDefault();}});var tickifiedMouseWheelFn=this.scene.tickify(function(delta){_this33.fire("mousewheel",delta,true);});this.element.addEventListener("wheel",this._mouseWheelListener=function(e,d){if(!_this33.enabled){return;}var delta=Math.max(-1,Math.min(1,-e.deltaY*40));tickifiedMouseWheelFn(delta);},{passive:true});// mouseclicked
5435
5442
  {var downX;var downY;// Tolerance between down and up positions for a mouse click
5436
- var tolerance=2;this.on("mousedown",function(params){downX=params[0];downY=params[1];});this.on("mouseup",function(params){if(downX>=params[0]-tolerance&&downX<=params[0]+tolerance&&downY>=params[1]-tolerance&&downY<=params[1]+tolerance){_this33.fire("mouseclicked",params,true);}});}this._eventsBound=true;}},{key:"_unbindEvents",value:function _unbindEvents(){if(!this._eventsBound){return;}this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener);this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener);this.element.removeEventListener("mouseenter",this._mouseEnterListener);this.element.removeEventListener("mouseleave",this._mouseLeaveListener);this.element.removeEventListener("mousedown",this._mouseDownListener);document.removeEventListener("mouseup",this._mouseDownListener);document.removeEventListener("click",this._clickListener);document.removeEventListener("dblclick",this._dblClickListener);this.element.removeEventListener("mousemove",this._mouseMoveListener);this.element.removeEventListener("wheel",this._mouseWheelListener);if(window.OrientationChangeEvent){window.removeEventListener('orientationchange',this._orientationchangedListener);}if(window.DeviceMotionEvent){window.removeEventListener('devicemotion',this._deviceMotionListener);}if(window.DeviceOrientationEvent){window.removeEventListener("deviceorientation",this._deviceOrientListener);}this._eventsBound=false;}},{key:"_getMouseCanvasPos",value:function _getMouseCanvasPos(event){if(!event){event=window.event;this.mouseCanvasPos[0]=event.x;this.mouseCanvasPos[1]=event.y;}else{var element=event.target;var totalOffsetLeft=0;var totalOffsetTop=0;while(element.offsetParent){totalOffsetLeft+=element.offsetLeft;totalOffsetTop+=element.offsetTop;element=element.offsetParent;}this.mouseCanvasPos[0]=event.pageX-totalOffsetLeft;this.mouseCanvasPos[1]=event.pageY-totalOffsetTop;}}/**
5437
- * Sets whether input handlers are enabled.
5438
- *
5439
- * Default value is ````true````.
5440
- *
5441
- * @param {Boolean} enable Indicates if input handlers are enabled.
5442
- */},{key:"setEnabled",value:function setEnabled(enable){if(this.enabled!==enable){this.fire("enabled",this.enabled=enable);}}/**
5443
- * Gets whether input handlers are enabled.
5444
- *
5445
- * Default value is ````true````.
5446
- *
5447
- * @returns {Boolean} Indicates if input handlers are enabled.
5448
- */},{key:"getEnabled",value:function getEnabled(){return this.enabled;}/**
5449
- * Sets whether or not keyboard input is enabled.
5450
- *
5451
- * Default value is ````true````.
5452
- *
5453
- * {@link CameraControl} will not respond to keyboard events while this is set ````false````.
5454
- *
5455
- * @param {Boolean} value Indicates whether keyboard input is enabled.
5456
- */},{key:"setKeyboardEnabled",value:function setKeyboardEnabled(value){this.keyboardEnabled=value;}/**
5457
- * Gets whether keyboard input is enabled.
5458
- *
5459
- * Default value is ````true````.
5460
- *
5461
- * {@link CameraControl} will not respond to keyboard events while this is set ````false````.
5462
- *
5463
- * @returns {Boolean} Returns whether keyboard input is enabled.
5464
- */},{key:"getKeyboardEnabled",value:function getKeyboardEnabled(){return this.keyboardEnabled;}/**
5465
- * @private
5466
- */},{key:"destroy",value:function destroy(){_get(_getPrototypeOf(Input.prototype),"destroy",this).call(this);this._unbindEvents();}}]);return Input;}(Component);var ids$3=new Map$1({});/**
5443
+ var tolerance=2;this.on("mousedown",function(params){downX=params[0];downY=params[1];});this.on("mouseup",function(params){if(downX>=params[0]-tolerance&&downX<=params[0]+tolerance&&downY>=params[1]-tolerance&&downY<=params[1]+tolerance){_this33.fire("mouseclicked",params,true);}});}this._eventsBound=true;}},{key:"_unbindEvents",value:function _unbindEvents(){if(!this._eventsBound){return;}this._keyboardEventsElement.removeEventListener("keydown",this._keyDownListener);this._keyboardEventsElement.removeEventListener("keyup",this._keyUpListener);this.element.removeEventListener("mouseenter",this._mouseEnterListener);this.element.removeEventListener("mouseleave",this._mouseLeaveListener);this.element.removeEventListener("mousedown",this._mouseDownListener);document.removeEventListener("mouseup",this._mouseDownListener);document.removeEventListener("click",this._clickListener);document.removeEventListener("dblclick",this._dblClickListener);this.element.removeEventListener("mousemove",this._mouseMoveListener);this.element.removeEventListener("wheel",this._mouseWheelListener);if(window.OrientationChangeEvent){window.removeEventListener("orientationchange",this._orientationchangedListener);}if(window.DeviceMotionEvent){window.removeEventListener("devicemotion",this._deviceMotionListener);}if(window.DeviceOrientationEvent){window.removeEventListener("deviceorientation",this._deviceOrientListener);}this._eventsBound=false;}},{key:"_getMouseCanvasPos",value:function _getMouseCanvasPos(event){if(!event){event=window.event;this.mouseCanvasPos[0]=event.x;this.mouseCanvasPos[1]=event.y;}else{var element=event.target;var totalOffsetLeft=0;var totalOffsetTop=0;while(element.offsetParent){totalOffsetLeft+=element.offsetLeft;totalOffsetTop+=element.offsetTop;element=element.offsetParent;}this.mouseCanvasPos[0]=event.pageX-totalOffsetLeft;this.mouseCanvasPos[1]=event.pageY-totalOffsetTop;}}/**
5444
+ * Sets whether input handlers are enabled.
5445
+ *
5446
+ * Default value is ````true````.
5447
+ *
5448
+ * @param {Boolean} enable Indicates if input handlers are enabled.
5449
+ */},{key:"setEnabled",value:function setEnabled(enable){if(this.enabled!==enable){this.fire("enabled",this.enabled=enable);}}/**
5450
+ * Gets whether input handlers are enabled.
5451
+ *
5452
+ * Default value is ````true````.
5453
+ *
5454
+ * @returns {Boolean} Indicates if input handlers are enabled.
5455
+ */},{key:"getEnabled",value:function getEnabled(){return this.enabled;}/**
5456
+ * Sets whether or not keyboard input is enabled.
5457
+ *
5458
+ * Default value is ````true````.
5459
+ *
5460
+ * {@link CameraControl} will not respond to keyboard events while this is set ````false````.
5461
+ *
5462
+ * @param {Boolean} value Indicates whether keyboard input is enabled.
5463
+ */},{key:"setKeyboardEnabled",value:function setKeyboardEnabled(value){this.keyboardEnabled=value;}/**
5464
+ * Gets whether keyboard input is enabled.
5465
+ *
5466
+ * Default value is ````true````.
5467
+ *
5468
+ * {@link CameraControl} will not respond to keyboard events while this is set ````false````.
5469
+ *
5470
+ * @returns {Boolean} Returns whether keyboard input is enabled.
5471
+ */},{key:"getKeyboardEnabled",value:function getKeyboardEnabled(){return this.keyboardEnabled;}/**
5472
+ * @private
5473
+ */},{key:"destroy",value:function destroy(){_get(_getPrototypeOf(Input.prototype),"destroy",this).call(this);this._unbindEvents();}}]);return Input;}(Component);var ids$3=new Map$1({});/**
5467
5474
  * @desc Represents a chunk of state changes applied by the {@link Scene}'s renderer while it renders a frame.
5468
5475
  *
5469
5476
  * * Contains properties that represent the state changes.
@@ -18957,17 +18964,27 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._targetDot.s
18957
18964
  * @param [cfg] Configuration
18958
18965
  * @param {PointerLens} [cfg.pointerLens] A PointerLens to use to provide a magnified view of the cursor when snapping is enabled.
18959
18966
  * @param {boolean} [cfg.snapping=true] Whether to initially enable snap-to-vertex and snap-to-edge for this DistanceMeasurementsMouseControl.
18960
- */function DistanceMeasurementsMouseControl(distanceMeasurementsPlugin){var _this81;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,DistanceMeasurementsMouseControl);_this81=_super117.call(this,distanceMeasurementsPlugin.viewer.scene);_this81.pointerLens=cfg.pointerLens;_this81._active=false;_this81._currentDistanceMeasurement=null;_this81._currentDistanceMeasurementInitState={wireVisible:null,axisVisible:null,xAxisVisible:null,yaxisVisible:null,zAxisVisible:null,targetVisible:null};_this81._initMarkerDiv();_this81._onCameraControlHoverSnapOrSurface=null;_this81._onCameraControlHoverSnapOrSurfaceOff=null;_this81._onMouseDown=null;_this81._onMouseUp=null;_this81._onCanvasTouchStart=null;_this81._onCanvasTouchEnd=null;_this81._snapping=cfg.snapping!==false;_this81._mouseState=MOUSE_FIRST_CLICK_EXPECTED;_this81._attachPlugin(distanceMeasurementsPlugin,cfg);return _this81;}_createClass(DistanceMeasurementsMouseControl,[{key:"_initMarkerDiv",value:function _initMarkerDiv(){var markerDiv=document.createElement("div");markerDiv.setAttribute("id","myDistanceMarker");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("myDistanceMarker");element.parentNode.removeChild(element);this._markerDiv=null;}}},{key:"_attachPlugin",value:function _attachPlugin(distanceMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
18967
+ * @param {_offsetX} [cfg._offsetX] _offsetX of the mouse
18968
+ * @param {_offsetY} [cfg._offsetY] _offsetY of the mouse
18969
+ */function DistanceMeasurementsMouseControl(distanceMeasurementsPlugin){var _this81;var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};_classCallCheck(this,DistanceMeasurementsMouseControl);_this81=_super117.call(this,distanceMeasurementsPlugin.viewer.scene);_this81.pointerLens=cfg.pointerLens;_this81._active=false;_this81._currentDistanceMeasurement=null;_this81._currentDistanceMeasurementInitState={wireVisible:null,axisVisible:null,xAxisVisible:null,yaxisVisible:null,zAxisVisible:null,targetVisible:null};_this81._initMarkerDiv();_this81._onCameraControlHoverSnapOrSurface=null;_this81._onCameraControlHoverSnapOrSurfaceOff=null;_this81._onMouseDown=null;_this81._onMouseUp=null;_this81._onCanvasTouchStart=null;_this81._onCanvasTouchEnd=null;_this81._snapping=cfg.snapping!==false;_this81._mouseState=MOUSE_FIRST_CLICK_EXPECTED;_this81._attachPlugin(distanceMeasurementsPlugin,cfg);_this81._offsetX=cfg._offsetX|0;_this81._offsetY=cfg._offsetY|0;return _this81;}_createClass(DistanceMeasurementsMouseControl,[{key:"_initMarkerDiv",value:function _initMarkerDiv(){var markerDiv=document.createElement("div");markerDiv.setAttribute("id","myDistanceMarker");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("myDistanceMarker");element.parentNode.removeChild(element);this._markerDiv=null;}}},{key:"_attachPlugin",value:function _attachPlugin(distanceMeasurementsPlugin){var cfg=arguments.length>1&&arguments[1]!==undefined?arguments[1]:{};/**
18961
18970
  * The {@link DistanceMeasurementsPlugin} that owns this DistanceMeasurementsMouseControl.
18962
18971
  * @type {DistanceMeasurementsPlugin}
18963
18972
  */this.distanceMeasurementsPlugin=distanceMeasurementsPlugin;/**
18964
18973
  * The {@link DistanceMeasurementsPlugin} that owns this DistanceMeasurementsMouseControl.
18965
18974
  * @type {DistanceMeasurementsPlugin}
18966
18975
  */this.plugin=distanceMeasurementsPlugin;}/**
18976
+ * @param {number} offsetX
18977
+ */},{key:"offsetX",get:/**
18978
+ * @return {number} mouse offset
18979
+ */function get(){return this._offsetX;}/**
18980
+ * @param {number} offsetX
18981
+ */,set:function set(offsetX){this._offsetX=offsetX;}},{key:"offsetY",get:/**
18982
+ * @return {number} mouse offset
18983
+ */function get(){return this._offsetY;}/**
18967
18984
  * Gets if this DistanceMeasurementsMouseControl is currently active, where it is responding to input.
18968
18985
  *
18969
18986
  * @returns {boolean} True if this DistanceMeasurementsMouseControl is active.
18970
- */},{key:"active",get:function get(){return this._active;}/**
18987
+ */,set:function set(offsetY){this._offsetY=offsetY;}},{key:"active",get:function get(){return this._active;}/**
18971
18988
  * Sets whether snap-to-vertex and snap-to-edge are enabled for this DistanceMeasurementsMouseControl.
18972
18989
  *
18973
18990
  * This is `true` by default.
@@ -18985,7 +19002,7 @@ this._originDot.setVisible(this._visible&&this._originVisible);this._targetDot.s
18985
19002
  * @returns {boolean} Whether snap-to-vertex and snap-to-edge are enabled for this DistanceMeasurementsMouseControl.
18986
19003
  */function get(){return this._snapping;}/**
18987
19004
  * Activates this DistanceMeasurementsMouseControl, ready to respond to input.
18988
- */,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 _this82=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;var hoveredEntity=null;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(_this82._mouseState===MOUSE_FIRST_CLICK_EXPECTED){canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=scrollLeft;var canvasTopEdge=scrollTop;_this82._markerDiv.style.marginLeft="".concat(canvasLeftEdge+canvasPos[0]-5,"px");_this82._markerDiv.style.marginTop="".concat(canvasTopEdge+canvasPos[1]-5,"px");_this82._markerDiv.style.background="pink";if(event.snappedToVertex||event.snappedToEdge){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;_this82.pointerLens.snapped=true;}_this82._markerDiv.style.background="greenyellow";_this82._markerDiv.style.border="2px solid green";}else{if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.canvasPos;_this82.pointerLens.snapped=false;}_this82._markerDiv.style.background="pink";_this82._markerDiv.style.border="2px solid red";}hoveredEntity=event.entity;}else{_this82._markerDiv.style.marginLeft="-10000px";_this82._markerDiv.style.marginTop="-10000px";}canvas.style.cursor="pointer";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=_this82._currentDistanceMeasurementInitState.wireVisible;_this82._currentDistanceMeasurement.axisVisible=_this82._currentDistanceMeasurementInitState.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurement.xAxisVisible=_this82._currentDistanceMeasurementInitState.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurement.yAxisVisible=_this82._currentDistanceMeasurementInitState.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurement.zAxisVisible=_this82._currentDistanceMeasurementInitState.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurement.targetVisible=_this82._currentDistanceMeasurementInitState.targetVisible;_this82._currentDistanceMeasurement.target.worldPos=pointerWorldPos.slice();_this82._markerDiv.style.marginLeft="-10000px";_this82._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(_this82._currentDistanceMeasurement){if(mouseHovering){_this82._currentDistanceMeasurement.target.entity=hoveredEntity;hoveredEntity=null;_this82._currentDistanceMeasurement.clickable=true;_this82.distanceMeasurementsPlugin.fire("measurementEnd",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;}else{_this82._currentDistanceMeasurement.destroy();_this82.distanceMeasurementsPlugin.fire("measurementCancel",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;hoveredEntity=null;}}else{if(mouseHovering){_this82._currentDistanceMeasurement=distanceMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:pointerWorldPos.slice()},target:{worldPos:pointerWorldPos.slice()},approximate:true});_this82._currentDistanceMeasurementInitState.axisVisible=_this82._currentDistanceMeasurement.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurementInitState.xAxisVisible=_this82._currentDistanceMeasurement.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurementInitState.yAxisVisible=_this82._currentDistanceMeasurement.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurementInitState.zAxisVisible=_this82._currentDistanceMeasurement.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurementInitState.wireVisible=_this82._currentDistanceMeasurement.wireVisible;_this82._currentDistanceMeasurementInitState.targetVisible=_this82._currentDistanceMeasurement.targetVisible;_this82._currentDistanceMeasurement.clickable=false;_this82._currentDistanceMeasurement.origin.entity=hoveredEntity;hoveredEntity=null;_this82.fire("measurementStart",_this82._currentDistanceMeasurement);}}});this._onCameraControlHoverSnapOrSurfaceOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;}mouseHovering=false;_this82._markerDiv.style.marginLeft="-100px";_this82._markerDiv.style.marginTop="-100px";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=false;_this82._currentDistanceMeasurement.targetVisible=false;_this82._currentDistanceMeasurement.axisVisible=false;}canvas.style.cursor="default";});this._active=true;}/**
19005
+ */,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 _this82=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;var hoveredEntity=null;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(_this82._mouseState===MOUSE_FIRST_CLICK_EXPECTED){canvas.getBoundingClientRect();var scrollLeft=window.pageXOffset||document.documentElement.scrollLeft;var scrollTop=window.pageYOffset||document.documentElement.scrollTop;var canvasLeftEdge=scrollLeft;var canvasTopEdge=scrollTop;_this82._markerDiv.style.marginLeft="".concat(_this82._offsetX+canvasLeftEdge+canvasPos[0]-5,"px");_this82._markerDiv.style.marginTop="".concat(_this82._offsetY+canvasTopEdge+canvasPos[1]-5,"px");_this82._markerDiv.style.background="pink";if(event.snappedToVertex||event.snappedToEdge){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;_this82.pointerLens.snapped=true;}_this82._markerDiv.style.background="greenyellow";_this82._markerDiv.style.border="2px solid green";}else{if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.canvasPos;_this82.pointerLens.snapped=false;}_this82._markerDiv.style.background="pink";_this82._markerDiv.style.border="2px solid red";}hoveredEntity=event.entity;}else{_this82._markerDiv.style.marginLeft="-10000px";_this82._markerDiv.style.marginTop="-10000px";}canvas.style.cursor="pointer";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=_this82._currentDistanceMeasurementInitState.wireVisible;_this82._currentDistanceMeasurement.axisVisible=_this82._currentDistanceMeasurementInitState.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurement.xAxisVisible=_this82._currentDistanceMeasurementInitState.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurement.yAxisVisible=_this82._currentDistanceMeasurementInitState.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurement.zAxisVisible=_this82._currentDistanceMeasurementInitState.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurement.targetVisible=_this82._currentDistanceMeasurementInitState.targetVisible;_this82._currentDistanceMeasurement.target.worldPos=pointerWorldPos.slice();_this82._markerDiv.style.marginLeft="-10000px";_this82._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(_this82._currentDistanceMeasurement){if(mouseHovering){_this82._currentDistanceMeasurement.target.entity=hoveredEntity;hoveredEntity=null;_this82._currentDistanceMeasurement.clickable=true;_this82.distanceMeasurementsPlugin.fire("measurementEnd",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;}else{_this82._currentDistanceMeasurement.destroy();_this82.distanceMeasurementsPlugin.fire("measurementCancel",_this82._currentDistanceMeasurement);_this82._currentDistanceMeasurement=null;hoveredEntity=null;}}else{if(mouseHovering){_this82._currentDistanceMeasurement=distanceMeasurementsPlugin.createMeasurement({id:math.createUUID(),origin:{worldPos:pointerWorldPos.slice()},target:{worldPos:pointerWorldPos.slice()},approximate:true});_this82._currentDistanceMeasurementInitState.axisVisible=_this82._currentDistanceMeasurement.axisVisible&&_this82.distanceMeasurementsPlugin.defaultAxisVisible;_this82._currentDistanceMeasurementInitState.xAxisVisible=_this82._currentDistanceMeasurement.xAxisVisible&&_this82.distanceMeasurementsPlugin.defaultXAxisVisible;_this82._currentDistanceMeasurementInitState.yAxisVisible=_this82._currentDistanceMeasurement.yAxisVisible&&_this82.distanceMeasurementsPlugin.defaultYAxisVisible;_this82._currentDistanceMeasurementInitState.zAxisVisible=_this82._currentDistanceMeasurement.zAxisVisible&&_this82.distanceMeasurementsPlugin.defaultZAxisVisible;_this82._currentDistanceMeasurementInitState.wireVisible=_this82._currentDistanceMeasurement.wireVisible;_this82._currentDistanceMeasurementInitState.targetVisible=_this82._currentDistanceMeasurement.targetVisible;_this82._currentDistanceMeasurement.clickable=false;_this82._currentDistanceMeasurement.origin.entity=hoveredEntity;hoveredEntity=null;_this82.fire("measurementStart",_this82._currentDistanceMeasurement);}}});this._onCameraControlHoverSnapOrSurfaceOff=cameraControl.on(this._snapping?"hoverSnapOrSurfaceOff":"hoverOff",function(event){if(_this82.pointerLens){_this82.pointerLens.visible=true;_this82.pointerLens.canvasPos=event.canvasPos;_this82.pointerLens.snappedCanvasPos=event.snappedCanvasPos||event.canvasPos;}mouseHovering=false;_this82._markerDiv.style.marginLeft="-100px";_this82._markerDiv.style.marginTop="-100px";if(_this82._currentDistanceMeasurement){_this82._currentDistanceMeasurement.wireVisible=false;_this82._currentDistanceMeasurement.targetVisible=false;_this82._currentDistanceMeasurement.axisVisible=false;}canvas.style.cursor="default";});this._active=true;}/**
18989
19006
  * Deactivates this DistanceMeasurementsMouseControl, making it unresponsive to input.
18990
19007
  *
18991
19008
  * Destroys any {@link DistanceMeasurement} under construction by this DistanceMeasurementsMouseControl.