@openglobus/og 0.16.3 → 0.17.1

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.
Files changed (197) hide show
  1. package/README.md +1 -1
  2. package/css/og.css +24 -2
  3. package/dist/@openglobus/og.css +1 -1
  4. package/dist/@openglobus/og.esm.js +2 -2
  5. package/dist/@openglobus/og.esm.js.map +1 -1
  6. package/dist/@openglobus/og.umd.js +2 -2
  7. package/dist/@openglobus/og.umd.js.map +1 -1
  8. package/package.json +1 -1
  9. package/src/og/Clock.js +1 -5
  10. package/src/og/Events.js +2 -6
  11. package/src/og/Extent.js +5 -9
  12. package/src/og/Globe.js +93 -56
  13. package/src/og/ImageCanvas.js +13 -6
  14. package/src/og/Lock.js +44 -48
  15. package/src/og/LonLat.js +1 -5
  16. package/src/og/Object3d.js +2 -2
  17. package/src/og/QueueArray.js +1 -1
  18. package/src/og/Stack.js +49 -53
  19. package/src/og/astro/earth.js +112 -116
  20. package/src/og/astro/jd.js +514 -518
  21. package/src/og/astro/orbit.js +119 -123
  22. package/src/og/astro/rotation.js +36 -40
  23. package/src/og/bv/Box.js +77 -81
  24. package/src/og/bv/Sphere.js +57 -61
  25. package/src/og/camera/Camera.js +20 -7
  26. package/src/og/camera/Frustum.js +4 -4
  27. package/src/og/camera/PlanetCamera.js +15 -22
  28. package/src/og/cons.js +1 -1
  29. package/src/og/control/Atmosphere.js +0 -4
  30. package/src/og/control/Control.js +9 -8
  31. package/src/og/control/DebugInfo.js +3 -7
  32. package/src/og/control/DrawingSwitcher.js +117 -0
  33. package/src/og/control/EarthCoordinates.js +214 -214
  34. package/src/og/control/EarthNavigation.js +6 -13
  35. package/src/og/control/GeoImageDragControl.js +0 -4
  36. package/src/og/control/KeyboardNavigation.js +0 -4
  37. package/src/og/control/LayerAnimation.js +0 -4
  38. package/src/og/control/LayerSwitcher.js +2 -4
  39. package/src/og/control/Lighting.js +12 -16
  40. package/src/og/control/MouseNavigation.js +1 -5
  41. package/src/og/control/MouseWheelZoomControl.js +0 -4
  42. package/src/og/control/RulerSwitcher.js +0 -4
  43. package/src/og/control/ScaleControl.js +2 -6
  44. package/src/og/control/ShowFps.js +40 -44
  45. package/src/og/control/SimpleNavigation.js +10 -10
  46. package/src/og/control/SimpleSkyBackground.js +0 -4
  47. package/src/og/control/Sun.js +0 -4
  48. package/src/og/control/ToggleWireframe.js +35 -39
  49. package/src/og/control/ZoomControl.js +0 -4
  50. package/src/og/control/drawing/DrawingControl.js +51 -0
  51. package/src/og/control/drawing/LineStringDrawingScene.js +203 -0
  52. package/src/og/control/drawing/PolygonDrawingScene.js +785 -0
  53. package/src/og/control/elevationProfile/ElevationProfile.js +275 -0
  54. package/src/og/control/index.js +5 -1
  55. package/src/og/control/ruler/Ruler.js +0 -4
  56. package/src/og/control/ruler/RulerScene.js +3 -2
  57. package/src/og/control/selection/Selection.js +0 -4
  58. package/src/og/control/selection/SelectionScene.js +2 -4
  59. package/src/og/control/timeline/TimelineControl.js +4 -4
  60. package/src/og/control/timeline/TimelineModel.js +2 -2
  61. package/src/og/control/timeline/TimelineView.js +1 -0
  62. package/src/og/control/visibleExtent/Segment.js +7 -7
  63. package/src/og/control/visibleExtent/drawnode.js +0 -4
  64. package/src/og/ellipsoid/Ellipsoid.js +236 -325
  65. package/src/og/ellipsoid/wgs84.js +0 -4
  66. package/src/og/entity/BaseBillboard.js +375 -379
  67. package/src/og/entity/Billboard.js +0 -4
  68. package/src/og/entity/BillboardHandler.js +3 -7
  69. package/src/og/entity/Entity.js +22 -22
  70. package/src/og/entity/EntityCollection.js +14 -18
  71. package/src/og/entity/GeoObject.js +6 -8
  72. package/src/og/entity/GeoObjectHandler.js +30 -24
  73. package/src/og/entity/Geometry.js +5 -4
  74. package/src/og/entity/GeometryHandler.js +18 -19
  75. package/src/og/entity/Label.js +0 -4
  76. package/src/og/entity/LabelHandler.js +10 -14
  77. package/src/og/entity/LabelWorker.js +1 -1
  78. package/src/og/entity/PointCloud.js +2 -6
  79. package/src/og/entity/PointCloudHandler.js +122 -126
  80. package/src/og/entity/Polyline.js +15 -17
  81. package/src/og/entity/PolylineHandler.js +104 -108
  82. package/src/og/entity/Ray.js +29 -29
  83. package/src/og/entity/RayHandler.js +2 -2
  84. package/src/og/entity/Strip.js +1 -1
  85. package/src/og/entity/StripHandler.js +2 -2
  86. package/src/og/index.js +3 -1
  87. package/src/og/input/KeyboardHandler.js +128 -132
  88. package/src/og/input/MouseHandler.js +94 -98
  89. package/src/og/input/TouchHandler.js +59 -63
  90. package/src/og/input/input.js +44 -48
  91. package/src/og/layer/BaseGeoImage.js +6 -9
  92. package/src/og/layer/CanvasTiles.js +1 -5
  93. package/src/og/layer/GeoImage.js +0 -4
  94. package/src/og/layer/GeoTexture2d.js +0 -4
  95. package/src/og/layer/GeoVideo.js +0 -4
  96. package/src/og/layer/KML.js +1 -0
  97. package/src/og/layer/Layer.js +22 -26
  98. package/src/og/layer/Material.js +0 -4
  99. package/src/og/layer/Vector.js +25 -22
  100. package/src/og/layer/WMS.js +182 -186
  101. package/src/og/layer/XYZ.js +0 -4
  102. package/src/og/light/LightSource.js +0 -4
  103. package/src/og/math/Line2.js +28 -32
  104. package/src/og/math/Mat3.js +152 -156
  105. package/src/og/math/Ray.js +0 -4
  106. package/src/og/math/Vec2.js +0 -4
  107. package/src/og/math/Vec3.js +5 -4
  108. package/src/og/math/Vec4.js +0 -4
  109. package/src/og/math/coder.js +104 -104
  110. package/src/og/math.js +42 -10
  111. package/src/og/mercator.js +1 -1
  112. package/src/og/proj/EPSG3857.js +13 -13
  113. package/src/og/proj/Proj.js +59 -63
  114. package/src/og/quadTree/EPSG4326QuadTreeStrategy.js +1 -0
  115. package/src/og/quadTree/EarthQuadTreeStrategy.js +1 -0
  116. package/src/og/quadTree/EntityCollectionNode.js +12 -16
  117. package/src/og/quadTree/MarsQuadTreeStrategy.js +1 -0
  118. package/src/og/quadTree/Node.js +15 -14
  119. package/src/og/quadTree/QuadTreeStrategy.js +1 -0
  120. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +1 -0
  121. package/src/og/renderer/Renderer.js +114 -27
  122. package/src/og/renderer/RendererEvents.js +0 -4
  123. package/src/og/scene/Axes.js +74 -78
  124. package/src/og/scene/BaseNode.js +1 -5
  125. package/src/og/scene/Planet.js +127 -130
  126. package/src/og/scene/RenderNode.js +20 -12
  127. package/src/og/scene/SkyBox.js +104 -108
  128. package/src/og/segment/Segment.js +10 -6
  129. package/src/og/segment/SegmentLonLat.js +3 -7
  130. package/src/og/segment/segmentHelper.js +229 -225
  131. package/src/og/shaders/atmos.js +1 -1
  132. package/src/og/shaders/billboard.js +0 -4
  133. package/src/og/shaders/drawnode.js +5 -9
  134. package/src/og/shaders/geoObject.js +0 -4
  135. package/src/og/shaders/label.js +0 -4
  136. package/src/og/shaders/pickingMask.js +0 -4
  137. package/src/og/shaders/pointCloud.js +0 -4
  138. package/src/og/shaders/polyline.js +0 -4
  139. package/src/og/shaders/ray.js +0 -4
  140. package/src/og/shaders/skybox.js +0 -4
  141. package/src/og/terrain/EmptyTerrain.js +0 -4
  142. package/src/og/utils/FontAtlas.js +0 -4
  143. package/src/og/utils/GeoImageCreator.js +2 -3
  144. package/src/og/utils/NormalMapCreator.js +11 -12
  145. package/src/og/utils/PlainSegmentWorker.js +9 -9
  146. package/src/og/utils/TerrainWorker.js +2 -2
  147. package/src/og/utils/TextureAtlas.js +1 -1
  148. package/src/og/utils/VectorTileCreator.js +3 -9
  149. package/src/og/utils/earcut.js +8 -8
  150. package/src/og/utils/shared.js +30 -11
  151. package/src/og/webgl/Framebuffer.js +2 -6
  152. package/src/og/webgl/Handler.js +46 -20
  153. package/src/og/webgl/Multisample.js +2 -6
  154. package/src/og/webgl/Program.js +4 -8
  155. package/src/og/webgl/ProgramController.js +2 -2
  156. package/types/Clock.d.ts +1 -1
  157. package/types/Extent.d.ts +5 -5
  158. package/types/Globe.d.ts +15 -1
  159. package/types/ImageCanvas.d.ts +5 -0
  160. package/types/bv/Box.d.ts +1 -1
  161. package/types/bv/Sphere.d.ts +3 -3
  162. package/types/camera/Camera.d.ts +3 -2
  163. package/types/camera/PlanetCamera.d.ts +4 -4
  164. package/types/control/DrawingSwitcher.d.ts +13 -0
  165. package/types/control/EarthCoordinates.d.ts +1 -1
  166. package/types/control/Lighting.d.ts +8 -8
  167. package/types/control/drawing/DrawingControl.d.ts +14 -0
  168. package/types/control/drawing/LineStringDrawingScene.d.ts +5 -0
  169. package/types/control/drawing/PolygonDrawingScene.d.ts +99 -0
  170. package/types/control/index.d.ts +3 -1
  171. package/types/control/ruler/RulerScene.d.ts +0 -1
  172. package/types/control/selection/SelectionScene.d.ts +0 -1
  173. package/types/ellipsoid/Ellipsoid.d.ts +53 -64
  174. package/types/entity/Entity.d.ts +3 -2
  175. package/types/entity/GeoObject.d.ts +1 -2
  176. package/types/entity/Geometry.d.ts +5 -0
  177. package/types/entity/Polyline.d.ts +1 -1
  178. package/types/entity/Ray.d.ts +1 -0
  179. package/types/index.d.ts +1 -0
  180. package/types/layer/BaseGeoImage.d.ts +1 -1
  181. package/types/layer/CanvasTiles.d.ts +1 -1
  182. package/types/layer/Layer.d.ts +1 -1
  183. package/types/layer/Vector.d.ts +1 -0
  184. package/types/math/Vec3.d.ts +2 -0
  185. package/types/math.d.ts +7 -0
  186. package/types/renderer/Renderer.d.ts +7 -1
  187. package/types/scene/Axes.d.ts +0 -1
  188. package/types/scene/Planet.d.ts +27 -26
  189. package/types/scene/RenderNode.d.ts +2 -0
  190. package/types/scene/SkyBox.d.ts +0 -1
  191. package/types/segment/Segment.d.ts +3 -2
  192. package/types/segment/SegmentLonLat.d.ts +0 -1
  193. package/types/utils/GeoImageCreator.d.ts +1 -1
  194. package/types/utils/NormalMapCreator.d.ts +1 -1
  195. package/types/utils/VectorTileCreator.d.ts +2 -2
  196. package/types/utils/shared.d.ts +2 -0
  197. package/types/webgl/Handler.d.ts +6 -4
@@ -1,12 +1,8 @@
1
- /**
2
- * @module og/entity/BaseBillboard
3
- */
4
-
5
1
  "use strict";
6
2
 
7
- import { Vec3 } from "../math/Vec3.js";
3
+ import {Vec3} from "../math/Vec3.js";
8
4
  import * as utils from "../utils/shared.js";
9
- import { Entity } from "./Entity.js";
5
+ import {Entity} from "./Entity.js";
10
6
 
11
7
  /**
12
8
  * Ray class.
@@ -99,11 +95,15 @@ class Ray {
99
95
  this._startPositionLow
100
96
  );
101
97
  this._handler &&
102
- this._handler.setStartPositionArr(
103
- this._handlerIndex,
104
- this._startPositionHigh,
105
- this._startPositionLow
106
- );
98
+ this._handler.setStartPositionArr(
99
+ this._handlerIndex,
100
+ this._startPositionHigh,
101
+ this._startPositionLow
102
+ );
103
+ }
104
+
105
+ getLength() {
106
+ return this._startPosition.distance(this._endPosition);
107
107
  }
108
108
 
109
109
  /**
@@ -121,11 +121,11 @@ class Ray {
121
121
  this._startPositionLow
122
122
  );
123
123
  this._handler &&
124
- this._handler.setStartPositionArr(
125
- this._handlerIndex,
126
- this._startPositionHigh,
127
- this._startPositionLow
128
- );
124
+ this._handler.setStartPositionArr(
125
+ this._handlerIndex,
126
+ this._startPositionHigh,
127
+ this._startPositionLow
128
+ );
129
129
  }
130
130
 
131
131
  /**
@@ -141,11 +141,11 @@ class Ray {
141
141
  this._endPosition.z = z;
142
142
  Vec3.doubleToTwoFloats(this._endPosition, this._endPositionHigh, this._endPositionLow);
143
143
  this._handler &&
144
- this._handler.setEndPositionArr(
145
- this._handlerIndex,
146
- this._endPositionHigh,
147
- this._endPositionLow
148
- );
144
+ this._handler.setEndPositionArr(
145
+ this._handlerIndex,
146
+ this._endPositionHigh,
147
+ this._endPositionLow
148
+ );
149
149
  }
150
150
 
151
151
  /**
@@ -159,11 +159,11 @@ class Ray {
159
159
  this._endPosition.z = position.z;
160
160
  Vec3.doubleToTwoFloats(this._endPosition, this._endPositionHigh, this._endPositionLow);
161
161
  this._handler &&
162
- this._handler.setEndPositionArr(
163
- this._handlerIndex,
164
- this._endPositionHigh,
165
- this._endPositionLow
166
- );
162
+ this._handler.setEndPositionArr(
163
+ this._handlerIndex,
164
+ this._endPositionHigh,
165
+ this._endPositionLow
166
+ );
167
167
  }
168
168
 
169
169
  setThickness(thickness) {
@@ -187,7 +187,7 @@ class Ray {
187
187
  }
188
188
 
189
189
  this._handler &&
190
- this._handler.setRgbaArr(this._handlerIndex, this._startColor, this._endColor);
190
+ this._handler.setRgbaArr(this._handlerIndex, this._startColor, this._endColor);
191
191
  }
192
192
 
193
193
  setColorsHTML(startColor, endColor) {
@@ -200,7 +200,7 @@ class Ray {
200
200
  }
201
201
 
202
202
  this._handler &&
203
- this._handler.setRgbaArr(this._handlerIndex, this._startColor, this._endColor);
203
+ this._handler.setRgbaArr(this._handlerIndex, this._startColor, this._endColor);
204
204
  }
205
205
 
206
206
  /**
@@ -259,4 +259,4 @@ class Ray {
259
259
  }
260
260
  }
261
261
 
262
- export { Ray };
262
+ export {Ray};
@@ -74,7 +74,7 @@ class RayHandler {
74
74
  }
75
75
 
76
76
  static concArr(dest, curr) {
77
- for (var i = 0; i < curr.length; i++) {
77
+ for (let i = 0; i < curr.length; i++) {
78
78
  dest.push(curr[i]);
79
79
  }
80
80
  }
@@ -457,7 +457,7 @@ class RayHandler {
457
457
 
458
458
  reindexRaysArray(startIndex) {
459
459
  var r = this._rays;
460
- for (var i = startIndex; i < r.length; i++) {
460
+ for (let i = startIndex; i < r.length; i++) {
461
461
  r[i]._handlerIndex = i;
462
462
  }
463
463
  }
@@ -316,7 +316,7 @@ class Strip {
316
316
  }
317
317
 
318
318
  _createBuffers() {
319
- if (this._renderNode && this._renderNode.renderer) {
319
+ if (this._renderNode && this._renderNode.renderer && this._renderNode.renderer.isInitialized()) {
320
320
  var gl = this._renderNode.renderer.handler.gl;
321
321
 
322
322
  gl.deleteBuffer(this._indexBuffer);
@@ -93,7 +93,7 @@ class StripHandler {
93
93
  setRenderNode(renderNode) {
94
94
  this._renderer = renderNode.renderer;
95
95
  this._initProgram();
96
- for (var i = 0; i < this._strips.length; i++) {
96
+ for (let i = 0; i < this._strips.length; i++) {
97
97
  this._strips[i].setRenderNode(renderNode);
98
98
  }
99
99
  }
@@ -122,7 +122,7 @@ class StripHandler {
122
122
 
123
123
  reindexStripArray(startIndex) {
124
124
  var pc = this._strips;
125
- for (var i = startIndex; i < pc.length; i++) {
125
+ for (let i = startIndex; i < pc.length; i++) {
126
126
  pc[i]._handlerIndex = i;
127
127
  }
128
128
  }
package/src/og/index.js CHANGED
@@ -51,8 +51,9 @@ import { Object3d } from './Object3d.js';
51
51
  const { Handler } = webgl, { Control } = control;
52
52
  const { Layer, Vector, XYZ, CanvasTiles} = layer;
53
53
  const {
54
+ Polyline,
54
55
  EntityCollection,
55
- Entity
56
+ Entity,
56
57
  } = entity;
57
58
 
58
59
  export {
@@ -78,6 +79,7 @@ export {
78
79
  PlanetCamera,
79
80
  Globe,
80
81
  LightSource,
82
+ Polyline,
81
83
  EntityCollection,
82
84
  Handler,
83
85
  Renderer,
@@ -1,132 +1,128 @@
1
- /**
2
- * @module og/input/KeyboardHandler
3
- */
4
-
5
- 'use strict';
6
-
7
- import { input } from './input.js';
8
-
9
- class KeyboardHandler {
10
-
11
- constructor() {
12
- var _currentlyPressedKeys = {};
13
- var _pressedKeysCallbacks = {};
14
- var _unpressedKeysCallbacks = {};
15
- var _charkeysCallbacks = {};
16
- var _that = this;
17
- var _anykeyCallback = null;
18
- var _event = null;
19
-
20
- var _active = true;
21
-
22
- if (KeyboardHandler.prototype._instance) {
23
- return KeyboardHandler.prototype._instance;
24
- } else {
25
- KeyboardHandler.prototype._instance = this;
26
-
27
- document.onkeydown = function (event) { _event = event; _active && _that.handleKeyDown(); };
28
- document.onkeyup = function (event) { _event = event; _active && _that.handleKeyUp(); };
29
- }
30
-
31
- var _sortByPriority = function (a, b) {
32
- return a.priority < b.priority;
33
- };
34
-
35
- this.removeEvent = function (events, callback) {
36
- //
37
- // TODO:...
38
- //
39
- };
40
-
41
- this.setActivity = function (activity) {
42
- _active = activity;
43
- };
44
-
45
- this.releaseKeys = function () {
46
- _currentlyPressedKeys = {};
47
- }
48
-
49
- this.addEvent = function (event, sender, callback, keyCode, priority) {
50
- if (priority === undefined) {
51
- priority = 1600;
52
- }
53
- switch (event) {
54
- case "keyfree":
55
- if (!_unpressedKeysCallbacks[keyCode]) {
56
- _unpressedKeysCallbacks[keyCode] = [];
57
- }
58
- _unpressedKeysCallbacks[keyCode].push({ callback: callback, sender: sender, priority: priority });
59
- _unpressedKeysCallbacks[keyCode].sort(_sortByPriority);
60
- break;
61
-
62
- case "keypress":
63
- if (keyCode == null) {
64
- _anykeyCallback = { callback: callback, sender: sender || _that };
65
- } else {
66
- if (!_pressedKeysCallbacks[keyCode]) {
67
- _pressedKeysCallbacks[keyCode] = [];
68
- }
69
- _pressedKeysCallbacks[keyCode].push({ callback: callback, sender: sender, priority: priority });
70
- _pressedKeysCallbacks[keyCode].sort(_sortByPriority);
71
- }
72
- break;
73
-
74
- case "charkeypress":
75
- if (!_charkeysCallbacks[keyCode]) {
76
- _charkeysCallbacks[keyCode] = [];
77
- }
78
- _charkeysCallbacks[keyCode].push({ callback: callback, sender: sender, priority: priority });
79
- _charkeysCallbacks[keyCode].sort(_sortByPriority);
80
- break;
81
- }
82
- };
83
-
84
- this.isKeyPressed = function (keyCode) {
85
- return _currentlyPressedKeys[keyCode];
86
- };
87
-
88
- this.handleKeyDown = function () {
89
- _anykeyCallback && _anykeyCallback.callback.call(_anykeyCallback.sender, _event);
90
- _currentlyPressedKeys[_event.keyCode] = true;
91
- for (var ch in _charkeysCallbacks) {
92
- if (String.fromCharCode(_event.keyCode) == String.fromCharCode(ch)) {
93
- var ccl = _charkeysCallbacks[ch];
94
- for (var i = 0; i < ccl.length; i++) {
95
- ccl[i].callback.call(ccl[i].sender, _event);
96
- }
97
- }
98
- }
99
-
100
- if (_event.keyCode == input.KEY_ALT || _event.keyCode == input.KEY_SHIFT) {
101
- _event.preventDefault();
102
- }
103
- };
104
-
105
- this.handleKeyUp = function () {
106
- if (_currentlyPressedKeys[_event.keyCode] || _event.keyCode === input.KEY_PRINTSCREEN) {
107
- for (var pk in _unpressedKeysCallbacks) {
108
- if (_currentlyPressedKeys[pk] || _event.keyCode === input.KEY_PRINTSCREEN && pk == input.KEY_PRINTSCREEN) {
109
- var cpk = _unpressedKeysCallbacks[pk];
110
- for (var i = 0; i < cpk.length; i++) {
111
- cpk[i].callback.call(cpk[i].sender, _event);
112
- }
113
- }
114
- }
115
- }
116
- _currentlyPressedKeys[_event.keyCode] = false;
117
- };
118
-
119
- this.handleEvents = function () {
120
- for (var pk in _pressedKeysCallbacks) {
121
- if (_currentlyPressedKeys[pk]) {
122
- var cpk = _pressedKeysCallbacks[pk];
123
- for (var i = 0; i < cpk.length; i++) {
124
- cpk[i].callback.call(cpk[i].sender, _event);
125
- }
126
- }
127
- }
128
- };
129
- }
130
- }
131
-
132
- export { KeyboardHandler };
1
+ 'use strict';
2
+
3
+ import { input } from './input.js';
4
+
5
+ class KeyboardHandler {
6
+
7
+ constructor() {
8
+ var _currentlyPressedKeys = {};
9
+ var _pressedKeysCallbacks = {};
10
+ var _unpressedKeysCallbacks = {};
11
+ var _charkeysCallbacks = {};
12
+ var _that = this;
13
+ var _anykeyCallback = null;
14
+ var _event = null;
15
+
16
+ var _active = true;
17
+
18
+ if (KeyboardHandler.prototype._instance) {
19
+ return KeyboardHandler.prototype._instance;
20
+ } else {
21
+ KeyboardHandler.prototype._instance = this;
22
+
23
+ document.onkeydown = function (event) { _event = event; _active && _that.handleKeyDown(); };
24
+ document.onkeyup = function (event) { _event = event; _active && _that.handleKeyUp(); };
25
+ }
26
+
27
+ var _sortByPriority = function (a, b) {
28
+ return a.priority < b.priority;
29
+ };
30
+
31
+ this.removeEvent = function (events, callback) {
32
+ //
33
+ // TODO:...
34
+ //
35
+ };
36
+
37
+ this.setActivity = function (activity) {
38
+ _active = activity;
39
+ };
40
+
41
+ this.releaseKeys = function () {
42
+ _currentlyPressedKeys = {};
43
+ }
44
+
45
+ this.addEvent = function (event, sender, callback, keyCode, priority) {
46
+ if (priority === undefined) {
47
+ priority = 1600;
48
+ }
49
+ switch (event) {
50
+ case "keyfree":
51
+ if (!_unpressedKeysCallbacks[keyCode]) {
52
+ _unpressedKeysCallbacks[keyCode] = [];
53
+ }
54
+ _unpressedKeysCallbacks[keyCode].push({ callback: callback, sender: sender, priority: priority });
55
+ _unpressedKeysCallbacks[keyCode].sort(_sortByPriority);
56
+ break;
57
+
58
+ case "keypress":
59
+ if (keyCode == null) {
60
+ _anykeyCallback = { callback: callback, sender: sender || _that };
61
+ } else {
62
+ if (!_pressedKeysCallbacks[keyCode]) {
63
+ _pressedKeysCallbacks[keyCode] = [];
64
+ }
65
+ _pressedKeysCallbacks[keyCode].push({ callback: callback, sender: sender, priority: priority });
66
+ _pressedKeysCallbacks[keyCode].sort(_sortByPriority);
67
+ }
68
+ break;
69
+
70
+ case "charkeypress":
71
+ if (!_charkeysCallbacks[keyCode]) {
72
+ _charkeysCallbacks[keyCode] = [];
73
+ }
74
+ _charkeysCallbacks[keyCode].push({ callback: callback, sender: sender, priority: priority });
75
+ _charkeysCallbacks[keyCode].sort(_sortByPriority);
76
+ break;
77
+ }
78
+ };
79
+
80
+ this.isKeyPressed = function (keyCode) {
81
+ return _currentlyPressedKeys[keyCode];
82
+ };
83
+
84
+ this.handleKeyDown = function () {
85
+ _anykeyCallback && _anykeyCallback.callback.call(_anykeyCallback.sender, _event);
86
+ _currentlyPressedKeys[_event.keyCode] = true;
87
+ for (let ch in _charkeysCallbacks) {
88
+ if (String.fromCharCode(_event.keyCode) == String.fromCharCode(ch)) {
89
+ var ccl = _charkeysCallbacks[ch];
90
+ for (let i = 0; i < ccl.length; i++) {
91
+ ccl[i].callback.call(ccl[i].sender, _event);
92
+ }
93
+ }
94
+ }
95
+
96
+ if (_event.keyCode == input.KEY_ALT || _event.keyCode == input.KEY_SHIFT) {
97
+ _event.preventDefault();
98
+ }
99
+ };
100
+
101
+ this.handleKeyUp = function () {
102
+ if (_currentlyPressedKeys[_event.keyCode] || _event.keyCode === input.KEY_PRINTSCREEN) {
103
+ for (let pk in _unpressedKeysCallbacks) {
104
+ if (_currentlyPressedKeys[pk] || _event.keyCode === input.KEY_PRINTSCREEN && pk == input.KEY_PRINTSCREEN) {
105
+ var cpk = _unpressedKeysCallbacks[pk];
106
+ for (let i = 0; i < cpk.length; i++) {
107
+ cpk[i].callback.call(cpk[i].sender, _event);
108
+ }
109
+ }
110
+ }
111
+ }
112
+ _currentlyPressedKeys[_event.keyCode] = false;
113
+ };
114
+
115
+ this.handleEvents = function () {
116
+ for (let pk in _pressedKeysCallbacks) {
117
+ if (_currentlyPressedKeys[pk]) {
118
+ var cpk = _pressedKeysCallbacks[pk];
119
+ for (let i = 0; i < cpk.length; i++) {
120
+ cpk[i].callback.call(cpk[i].sender, _event);
121
+ }
122
+ }
123
+ }
124
+ };
125
+ }
126
+ }
127
+
128
+ export { KeyboardHandler };
@@ -1,98 +1,94 @@
1
- /**
2
- * @module og/input/MouseHandler
3
- */
4
-
5
- 'use strict';
6
-
7
- class MouseHandler {
8
-
9
- constructor(htmlObject) {
10
- this._htmlObject = htmlObject;
11
- }
12
-
13
- setEvent(event, sender, callback) {
14
- switch (event) {
15
- case "mousewheel":
16
- this._htmlObject.addEventListener('mousewheel', function (evt) {
17
- var delta = evt.deltaY || evt.detail || evt.wheelDelta;
18
- if (evt.wheelDelta == undefined) {
19
- evt.wheelDelta = delta * (-120);
20
- }
21
- callback.call(sender, evt);
22
- evt.preventDefault();
23
- }, false);
24
-
25
- this._htmlObject.addEventListener('wheel', function (evt) {
26
- var delta = evt.deltaY || evt.detail || evt.wheelDelta;
27
- if (evt.wheelDelta == undefined) {
28
- evt.wheelDelta = delta * (-120);
29
- }
30
- callback.call(sender, evt);
31
- evt.preventDefault();
32
- }, false);
33
- break;
34
-
35
- case "mousedown":
36
- this._htmlObject.addEventListener('mousedown', function (event) {
37
- var rect = this.getBoundingClientRect();
38
- callback.call(sender, {
39
- button: event.button,
40
- clientX: event.clientX - rect.left,
41
- clientY: event.clientY - rect.top
42
- }, event);
43
- });
44
- this._htmlObject.addEventListener('contextmenu', function (event) {
45
- event.preventDefault();
46
- return false;
47
- });
48
- break;
49
-
50
- case "mouseup":
51
- this._htmlObject.addEventListener('mouseup', function (event) {
52
- var rect = this.getBoundingClientRect();
53
- callback.call(sender, {
54
- button: event.button,
55
- clientX: event.clientX - rect.left,
56
- clientY: event.clientY - rect.top
57
- }, event);
58
- });
59
- break;
60
-
61
- case "mousemove":
62
- this._htmlObject.addEventListener('mousemove', function (event) {
63
- var rect = this.getBoundingClientRect();
64
- callback.call(sender, {
65
- clientX: event.clientX - rect.left,
66
- clientY: event.clientY - rect.top
67
- }, event);
68
- });
69
- break;
70
-
71
- case "mouseleave":
72
- this._htmlObject.addEventListener('mouseleave', function (event) {
73
- callback.call(sender, event);
74
- });
75
- break;
76
-
77
- case "mouseout":
78
- this._htmlObject.addEventListener('mouseout', function (event) {
79
- callback.call(sender, event);
80
- });
81
- break;
82
-
83
- case "mouseover":
84
- this._htmlObject.addEventListener('mouseover', function (event) {
85
- callback.call(sender, event);
86
- });
87
- break;
88
-
89
- case "mouseenter":
90
- this._htmlObject.addEventListener('mouseenter', function (event) {
91
- callback.call(sender, event);
92
- });
93
- break;
94
- }
95
- }
96
- }
97
-
98
- export { MouseHandler };
1
+ 'use strict';
2
+
3
+ class MouseHandler {
4
+
5
+ constructor(htmlObject) {
6
+ this._htmlObject = htmlObject;
7
+ }
8
+
9
+ setEvent(event, sender, callback) {
10
+ switch (event) {
11
+ case "mousewheel":
12
+ this._htmlObject.addEventListener('mousewheel', function (evt) {
13
+ var delta = evt.deltaY || evt.detail || evt.wheelDelta;
14
+ if (evt.wheelDelta == undefined) {
15
+ evt.wheelDelta = delta * (-120);
16
+ }
17
+ callback.call(sender, evt);
18
+ evt.preventDefault();
19
+ }, false);
20
+
21
+ this._htmlObject.addEventListener('wheel', function (evt) {
22
+ var delta = evt.deltaY || evt.detail || evt.wheelDelta;
23
+ if (evt.wheelDelta == undefined) {
24
+ evt.wheelDelta = delta * (-120);
25
+ }
26
+ callback.call(sender, evt);
27
+ evt.preventDefault();
28
+ }, false);
29
+ break;
30
+
31
+ case "mousedown":
32
+ this._htmlObject.addEventListener('mousedown', function (event) {
33
+ var rect = this.getBoundingClientRect();
34
+ callback.call(sender, {
35
+ button: event.button,
36
+ clientX: event.clientX - rect.left,
37
+ clientY: event.clientY - rect.top
38
+ }, event);
39
+ });
40
+ this._htmlObject.addEventListener('contextmenu', function (event) {
41
+ event.preventDefault();
42
+ return false;
43
+ });
44
+ break;
45
+
46
+ case "mouseup":
47
+ this._htmlObject.addEventListener('mouseup', function (event) {
48
+ var rect = this.getBoundingClientRect();
49
+ callback.call(sender, {
50
+ button: event.button,
51
+ clientX: event.clientX - rect.left,
52
+ clientY: event.clientY - rect.top
53
+ }, event);
54
+ });
55
+ break;
56
+
57
+ case "mousemove":
58
+ this._htmlObject.addEventListener('mousemove', function (event) {
59
+ var rect = this.getBoundingClientRect();
60
+ callback.call(sender, {
61
+ clientX: event.clientX - rect.left,
62
+ clientY: event.clientY - rect.top
63
+ }, event);
64
+ });
65
+ break;
66
+
67
+ case "mouseleave":
68
+ this._htmlObject.addEventListener('mouseleave', function (event) {
69
+ callback.call(sender, event);
70
+ });
71
+ break;
72
+
73
+ case "mouseout":
74
+ this._htmlObject.addEventListener('mouseout', function (event) {
75
+ callback.call(sender, event);
76
+ });
77
+ break;
78
+
79
+ case "mouseover":
80
+ this._htmlObject.addEventListener('mouseover', function (event) {
81
+ callback.call(sender, event);
82
+ });
83
+ break;
84
+
85
+ case "mouseenter":
86
+ this._htmlObject.addEventListener('mouseenter', function (event) {
87
+ callback.call(sender, event);
88
+ });
89
+ break;
90
+ }
91
+ }
92
+ }
93
+
94
+ export { MouseHandler };