@openglobus/og 0.11.2 → 0.11.7

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 (273) hide show
  1. package/package.json +13 -13
  2. package/src/og/Clock.js +10 -10
  3. package/src/og/Events.js +8 -6
  4. package/src/og/Extent.js +82 -41
  5. package/src/og/Globe.js +25 -13
  6. package/src/og/ImageCanvas.js +22 -16
  7. package/src/og/LonLat.js +16 -13
  8. package/src/og/Popup.js +21 -14
  9. package/src/og/QueueArray.js +6 -2
  10. package/src/og/Rectangle.js +11 -6
  11. package/src/og/Stack.js +5 -2
  12. package/src/og/ajax.js +21 -33
  13. package/src/og/astro/astro.js +5 -5
  14. package/src/og/astro/earth.js +22 -16
  15. package/src/og/astro/jd.js +23 -18
  16. package/src/og/astro/orbit.js +13 -11
  17. package/src/og/astro/rotation.js +17 -8
  18. package/src/og/bv/Box.js +7 -3
  19. package/src/og/bv/Sphere.js +14 -11
  20. package/src/og/camera/Camera.js +51 -54
  21. package/src/og/camera/Frustum.js +29 -18
  22. package/src/og/camera/PlanetCamera.js +32 -23
  23. package/src/og/control/CompassButton.js +5 -1
  24. package/src/og/control/Control.js +12 -10
  25. package/src/og/control/DebugInfo.js +4 -1
  26. package/src/og/control/EarthCoordinates.js +54 -33
  27. package/src/og/control/KeyboardNavigation.js +10 -10
  28. package/src/og/control/LayerSwitcher.js +22 -21
  29. package/src/og/control/Lighting.js +34 -3
  30. package/src/og/control/MouseNavigation.js +1 -1
  31. package/src/og/control/ScaleControl.js +1 -1
  32. package/src/og/control/SegmentBoundVisualization.js +6 -7
  33. package/src/og/control/ShowFps.js +13 -8
  34. package/src/og/control/SimpleNavigation.js +6 -8
  35. package/src/og/control/Sun.js +25 -15
  36. package/src/og/control/ToggleWireframe.js +4 -4
  37. package/src/og/control/TouchNavigation.js +44 -33
  38. package/src/og/control/ZoomControl.js +41 -25
  39. package/src/og/ellipsoid/Ellipsoid.js +162 -66
  40. package/src/og/ellipsoid/wgs84.js +4 -4
  41. package/src/og/entity/BaseBillboard.js +100 -56
  42. package/src/og/entity/Billboard.js +14 -10
  43. package/src/og/entity/BillboardHandler.js +317 -60
  44. package/src/og/entity/Entity.js +100 -68
  45. package/src/og/entity/EntityCollection.js +70 -47
  46. package/src/og/entity/GeoObject.js +228 -0
  47. package/src/og/entity/GeoObjectHandler.js +910 -0
  48. package/src/og/entity/Geometry.js +27 -24
  49. package/src/og/entity/GeometryHandler.js +596 -124
  50. package/src/og/entity/Label.js +80 -49
  51. package/src/og/entity/LabelHandler.js +45 -244
  52. package/src/og/entity/LabelWorker.js +218 -0
  53. package/src/og/entity/Object3d.js +504 -0
  54. package/src/og/entity/PointCloud.js +80 -32
  55. package/src/og/entity/PointCloudHandler.js +8 -8
  56. package/src/og/entity/Polyline.js +16 -16
  57. package/src/og/entity/Ray.js +60 -27
  58. package/src/og/entity/Strip.js +77 -48
  59. package/src/og/entity/StripHandler.js +26 -26
  60. package/src/og/entity/index.js +8 -16
  61. package/src/og/layer/BaseGeoImage.js +54 -23
  62. package/src/og/layer/CanvasTiles.js +24 -24
  63. package/src/og/layer/GeoImage.js +9 -9
  64. package/src/og/layer/GeoVideo.js +3 -3
  65. package/src/og/layer/KML.js +63 -37
  66. package/src/og/layer/Layer.js +44 -21
  67. package/src/og/layer/Material.js +23 -20
  68. package/src/og/layer/Vector.js +114 -68
  69. package/src/og/layer/WMS.js +34 -17
  70. package/src/og/layer/XYZ.js +48 -46
  71. package/src/og/light/LightSource.js +46 -39
  72. package/src/og/math/Mat3.js +34 -22
  73. package/src/og/math/Mat4.js +603 -459
  74. package/src/og/math/Plane.js +21 -20
  75. package/src/og/math/Quat.js +182 -139
  76. package/src/og/math/Ray.js +38 -33
  77. package/src/og/math/Vec2.js +85 -75
  78. package/src/og/math/Vec3.js +142 -112
  79. package/src/og/math/Vec4.js +27 -31
  80. package/src/og/math/coder.js +10 -10
  81. package/src/og/math.js +12 -12
  82. package/src/og/proj/EPSG3857.js +4 -4
  83. package/src/og/proj/EPSG4326.js +4 -4
  84. package/src/og/proj/Proj.js +4 -6
  85. package/src/og/quadTree/Node.js +8 -8
  86. package/src/og/renderer/Renderer.js +59 -52
  87. package/src/og/renderer/RendererEvents.js +50 -27
  88. package/src/og/scene/BaseNode.js +7 -8
  89. package/src/og/scene/Planet.js +102 -103
  90. package/src/og/scene/RenderNode.js +28 -21
  91. package/src/og/segment/Segment.js +26 -21
  92. package/src/og/segment/SegmentLonLat.js +5 -5
  93. package/src/og/shaders/drawnode.js +135 -142
  94. package/src/og/shaders/geoObject.js +211 -0
  95. package/src/og/shaders/pointCloud.js +41 -41
  96. package/src/og/shaders/shape.js +12 -18
  97. package/src/og/shaders/skybox.js +36 -36
  98. package/src/og/shaders/toneMapping.js +1 -0
  99. package/src/og/shapes/BaseShape.js +126 -54
  100. package/src/og/shapes/Icosphere.js +29 -14
  101. package/src/og/shapes/Sphere.js +12 -15
  102. package/src/og/terrain/BilTerrain.js +1 -0
  103. package/src/og/terrain/EmptyTerrain.js +2 -2
  104. package/src/og/terrain/GlobusTerrain.js +9 -9
  105. package/src/og/utils/FontAtlas.js +6 -2
  106. package/src/og/utils/TextureAtlas.js +22 -24
  107. package/src/og/utils/VectorTileCreator.js +1 -3
  108. package/src/og/utils/shared.js +16 -16
  109. package/src/og/webgl/Framebuffer.js +88 -40
  110. package/src/og/webgl/Handler.js +243 -169
  111. package/src/og/webgl/Multisample.js +47 -19
  112. package/src/og/webgl/Program.js +79 -34
  113. package/src/og/webgl/ProgramController.js +17 -13
  114. package/src/og/webgl/callbacks.js +8 -8
  115. package/src/og/inherits.js +0 -8
  116. package/src/og/utils/polylabel.js +0 -176
  117. package/types/Clock.d.ts +0 -90
  118. package/types/Deferred.d.ts +0 -6
  119. package/types/Events.d.ts +0 -73
  120. package/types/Extent.d.ts +0 -166
  121. package/types/Globe.d.ts +0 -75
  122. package/types/ImageCanvas.d.ts +0 -121
  123. package/types/Lock.d.ts +0 -12
  124. package/types/LonLat.d.ts +0 -108
  125. package/types/Popup.d.ts +0 -38
  126. package/types/QueueArray.d.ts +0 -15
  127. package/types/Rectangle.d.ts +0 -74
  128. package/types/Stack.d.ts +0 -15
  129. package/types/ajax.d.ts +0 -24
  130. package/types/arial.d.ts +0 -48
  131. package/types/astro/astro.d.ts +0 -38
  132. package/types/astro/earth.d.ts +0 -6
  133. package/types/astro/jd.d.ts +0 -254
  134. package/types/bv/Box.d.ts +0 -25
  135. package/types/bv/Sphere.d.ts +0 -38
  136. package/types/bv/index.d.ts +0 -3
  137. package/types/camera/Camera.d.ts +0 -303
  138. package/types/camera/Frustum.d.ts +0 -129
  139. package/types/camera/PlanetCamera.d.ts +0 -223
  140. package/types/camera/index.d.ts +0 -3
  141. package/types/cons.d.ts +0 -40
  142. package/types/control/CompassButton.d.ts +0 -18
  143. package/types/control/Control.d.ts +0 -101
  144. package/types/control/DebugInfo.d.ts +0 -16
  145. package/types/control/EarthCoordinates.d.ts +0 -47
  146. package/types/control/EarthNavigation.d.ts +0 -42
  147. package/types/control/GeoImageDragControl.d.ts +0 -6
  148. package/types/control/KeyboardNavigation.d.ts +0 -22
  149. package/types/control/LayerSwitcher.d.ts +0 -23
  150. package/types/control/Lighting.d.ts +0 -16
  151. package/types/control/MouseNavigation.d.ts +0 -51
  152. package/types/control/ScaleControl.d.ts +0 -22
  153. package/types/control/ShowFps.d.ts +0 -12
  154. package/types/control/SimpleNavigation.d.ts +0 -28
  155. package/types/control/Sun.d.ts +0 -52
  156. package/types/control/ToggleWireframe.d.ts +0 -12
  157. package/types/control/TouchNavigation.d.ts +0 -50
  158. package/types/control/ZoomControl.d.ts +0 -28
  159. package/types/control/index.d.ts +0 -17
  160. package/types/ellipsoid/Ellipsoid.d.ts +0 -142
  161. package/types/ellipsoid/index.d.ts +0 -3
  162. package/types/ellipsoid/wgs84.d.ts +0 -5
  163. package/types/entity/BaseBillboard.d.ts +0 -208
  164. package/types/entity/Billboard.d.ts +0 -94
  165. package/types/entity/BillboardHandler.d.ts +0 -74
  166. package/types/entity/Entity.d.ts +0 -331
  167. package/types/entity/EntityCollection.d.ts +0 -303
  168. package/types/entity/Geometry.d.ts +0 -73
  169. package/types/entity/GeometryHandler.d.ts +0 -76
  170. package/types/entity/Label.d.ts +0 -194
  171. package/types/entity/LabelHandler.d.ts +0 -24
  172. package/types/entity/PointCloud.d.ts +0 -174
  173. package/types/entity/PointCloudHandler.d.ts +0 -38
  174. package/types/entity/Polyline.d.ts +0 -304
  175. package/types/entity/PolylineHandler.d.ts +0 -18
  176. package/types/entity/Ray.d.ts +0 -123
  177. package/types/entity/RayHandler.d.ts +0 -67
  178. package/types/entity/ShapeHandler.d.ts +0 -22
  179. package/types/entity/Strip.d.ts +0 -118
  180. package/types/entity/StripHandler.d.ts +0 -38
  181. package/types/entity/index.d.ts +0 -8
  182. package/types/index.core.d.ts +0 -65
  183. package/types/index.d.ts +0 -45
  184. package/types/index.webgl.d.ts +0 -7
  185. package/types/inherits.d.ts +0 -4
  186. package/types/input/KeyboardHandler.d.ts +0 -10
  187. package/types/input/MouseHandler.d.ts +0 -5
  188. package/types/input/TouchHandler.d.ts +0 -5
  189. package/types/input/input.d.ts +0 -34
  190. package/types/layer/BaseGeoImage.d.ts +0 -107
  191. package/types/layer/CanvasTiles.d.ts +0 -75
  192. package/types/layer/GeoImage.d.ts +0 -65
  193. package/types/layer/GeoTexture2d.d.ts +0 -8
  194. package/types/layer/GeoVideo.d.ts +0 -80
  195. package/types/layer/KML.d.ts +0 -58
  196. package/types/layer/Layer.d.ts +0 -321
  197. package/types/layer/Material.d.ts +0 -48
  198. package/types/layer/Vector.d.ts +0 -228
  199. package/types/layer/WMS.d.ts +0 -66
  200. package/types/layer/XYZ.d.ts +0 -130
  201. package/types/layer/index.d.ts +0 -10
  202. package/types/light/LightSource.d.ts +0 -177
  203. package/types/math/Line2.d.ts +0 -11
  204. package/types/math/Line3.d.ts +0 -10
  205. package/types/math/Mat3.d.ts +0 -63
  206. package/types/math/Mat4.d.ts +0 -173
  207. package/types/math/Plane.d.ts +0 -17
  208. package/types/math/Quat.d.ts +0 -376
  209. package/types/math/Ray.d.ts +0 -81
  210. package/types/math/Vec2.d.ts +0 -308
  211. package/types/math/Vec3.d.ts +0 -459
  212. package/types/math/Vec4.d.ts +0 -161
  213. package/types/math/coder.d.ts +0 -42
  214. package/types/math/index.d.ts +0 -11
  215. package/types/math.d.ts +0 -261
  216. package/types/mercator.d.ts +0 -92
  217. package/types/proj/EPSG3857.d.ts +0 -5
  218. package/types/proj/EPSG4326.d.ts +0 -5
  219. package/types/proj/Proj.d.ts +0 -42
  220. package/types/quadTree/EntityCollectionNode.d.ts +0 -34
  221. package/types/quadTree/Node.d.ts +0 -61
  222. package/types/quadTree/quadTree.d.ts +0 -40
  223. package/types/renderer/Renderer.d.ts +0 -296
  224. package/types/renderer/RendererEvents.d.ts +0 -230
  225. package/types/res/images.d.ts +0 -3
  226. package/types/scene/Axes.d.ts +0 -11
  227. package/types/scene/BaseNode.d.ts +0 -60
  228. package/types/scene/Planet.d.ts +0 -574
  229. package/types/scene/RenderNode.d.ts +0 -143
  230. package/types/scene/SkyBox.d.ts +0 -10
  231. package/types/scene/index.d.ts +0 -4
  232. package/types/segment/Segment.d.ts +0 -271
  233. package/types/segment/SegmentLonLat.d.ts +0 -62
  234. package/types/segment/segmentHelper.d.ts +0 -13
  235. package/types/shaders/billboard.d.ts +0 -3
  236. package/types/shaders/depth.d.ts +0 -2
  237. package/types/shaders/drawnode.d.ts +0 -7
  238. package/types/shaders/label.d.ts +0 -4
  239. package/types/shaders/pointCloud.d.ts +0 -2
  240. package/types/shaders/polyline.d.ts +0 -3
  241. package/types/shaders/ray.d.ts +0 -2
  242. package/types/shaders/screenFrame.d.ts +0 -2
  243. package/types/shaders/shape.d.ts +0 -4
  244. package/types/shaders/skybox.d.ts +0 -2
  245. package/types/shaders/toneMapping.d.ts +0 -2
  246. package/types/shapes/BaseShape.d.ts +0 -247
  247. package/types/shapes/Sphere.d.ts +0 -41
  248. package/types/terrain/BilTerrain.d.ts +0 -8
  249. package/types/terrain/EmptyTerrain.d.ts +0 -72
  250. package/types/terrain/Geoid.d.ts +0 -26
  251. package/types/terrain/GlobusTerrain.d.ts +0 -153
  252. package/types/terrain/MapboxTerrain.d.ts +0 -8
  253. package/types/terrain/index.d.ts +0 -5
  254. package/types/utils/FontAtlas.d.ts +0 -14
  255. package/types/utils/GeoImageCreator.d.ts +0 -30
  256. package/types/utils/ImagesCacheManager.d.ts +0 -10
  257. package/types/utils/Loader.d.ts +0 -25
  258. package/types/utils/NormalMapCreator.d.ts +0 -39
  259. package/types/utils/PlainSegmentWorker.d.ts +0 -10
  260. package/types/utils/TerrainWorker.d.ts +0 -9
  261. package/types/utils/TextureAtlas.d.ts +0 -111
  262. package/types/utils/VectorTileCreator.d.ts +0 -16
  263. package/types/utils/colorTable.d.ts +0 -143
  264. package/types/utils/earcut.d.ts +0 -6
  265. package/types/utils/shared.d.ts +0 -230
  266. package/types/webgl/Framebuffer.d.ts +0 -135
  267. package/types/webgl/Handler.d.ts +0 -372
  268. package/types/webgl/Multisample.d.ts +0 -89
  269. package/types/webgl/Program.d.ts +0 -155
  270. package/types/webgl/ProgramController.d.ts +0 -84
  271. package/types/webgl/callbacks.d.ts +0 -1
  272. package/types/webgl/index.d.ts +0 -6
  273. package/types/webgl/types.d.ts +0 -2
@@ -2,7 +2,7 @@
2
2
  * @module og/control/Control
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
7
  /**
8
8
  * Base control class for implementing renderer controls.
@@ -12,6 +12,9 @@
12
12
  * @param {Boolean} [options.autoActivated=true] - If true - calls initialize function after the renderer assigning.
13
13
  */
14
14
  class Control {
15
+ /**
16
+ * @param {Object} [options] - Control activation options:
17
+ */
15
18
  constructor(options) {
16
19
  options = options || {};
17
20
 
@@ -29,7 +32,7 @@ class Control {
29
32
  /**
30
33
  * Assigned renderer.
31
34
  * @public
32
- * @type {og.Renderer}
35
+ * @type {Renderer}
33
36
  */
34
37
  this.renderer = null;
35
38
 
@@ -73,40 +76,40 @@ class Control {
73
76
  * @public
74
77
  * @virtual
75
78
  */
76
- oninit() { }
79
+ oninit() {}
77
80
 
78
81
  /**
79
82
  * Control renderer assigning function have to be overriden.
80
83
  * @public
81
84
  * @virtual
82
85
  */
83
- onadd() { }
86
+ onadd() {}
84
87
 
85
88
  /**
86
89
  * Control remove function have to be overriden.
87
90
  * @public
88
91
  * @virtual
89
92
  */
90
- onremove() { }
93
+ onremove() {}
91
94
 
92
95
  /**
93
96
  * Control activation function have to be overriden.
94
97
  * @public
95
98
  * @virtual
96
99
  */
97
- onactivate() { }
100
+ onactivate() {}
98
101
 
99
102
  /**
100
103
  * Control deactivation function have to be overriden.
101
104
  * @public
102
105
  * @virtual
103
106
  */
104
- ondeactivate() { }
107
+ ondeactivate() {}
105
108
 
106
109
  /**
107
110
  * Assign renderer to the control.
108
111
  * @public
109
- * @type {og.Renderer}
112
+ * @type {Renderer}
110
113
  */
111
114
  addTo(renderer) {
112
115
  if (renderer) {
@@ -126,7 +129,6 @@ class Control {
126
129
  * @public
127
130
  */
128
131
  remove() {
129
-
130
132
  this.onremove && this.onremove();
131
133
 
132
134
  let r = this.renderer,
@@ -183,4 +185,4 @@ class Control {
183
185
  }
184
186
  }
185
187
 
186
- export { Control };
188
+ export { Control };
@@ -9,10 +9,13 @@ import { Control } from "./Control.js";
9
9
  /**
10
10
  * Debug information
11
11
  * @class
12
- * @extends {og.control.Control}
12
+ * @extends {Control}
13
13
  * @param {Object} [options] - Control options.
14
14
  */
15
15
  class DebugInfo extends Control {
16
+ /**
17
+ * @param {Object} [options] - Control options.
18
+ */
16
19
  constructor(options) {
17
20
  options = options || {};
18
21
  if (!options.name || options.name === "") {
@@ -2,26 +2,31 @@
2
2
  * @module og/control/EarthCoordinates
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import { Control } from './Control.js';
7
+ import { Control } from "./Control.js";
8
8
 
9
9
  function dec2deg(base) {
10
10
  var t;
11
11
  var degrees = base < 0 ? Math.ceil(base) : Math.floor(base);
12
- var minutes = Math.floor(t = Math.abs((base - degrees)) * 60);
12
+ var minutes = Math.floor((t = Math.abs(base - degrees) * 60));
13
13
  var seconds = Math.floor((t - minutes) * 6000);
14
- seconds = seconds / 100.00;
15
- return (numToFixedString(degrees, 3) + "\u00B0" +
16
- numToFixedString(minutes, 2) + "\u0027" +
17
- numToFixedString(seconds.toFixed(2), 2) + "\u0022");
14
+ seconds = seconds / 100.0;
15
+ return (
16
+ numToFixedString(degrees, 3) +
17
+ "\u00B0" +
18
+ numToFixedString(minutes, 2) +
19
+ "\u0027" +
20
+ numToFixedString(seconds.toFixed(2), 2) +
21
+ "\u0022"
22
+ );
18
23
  }
19
24
 
20
25
  function numToFixedString(num, fixed) {
21
- var dl = num.toString().split('.')[0].length;
26
+ var dl = num.toString().split(".")[0].length;
22
27
  var white = "&nbsp;";
23
28
  for (var i = dl; i < fixed; i++) {
24
- white += '&nbsp;&nbsp;';
29
+ white += "&nbsp;&nbsp;";
25
30
  }
26
31
  return white + num.toString();
27
32
  }
@@ -39,21 +44,21 @@ function toMercator(ll) {
39
44
  return m.lat.toFixed(5) + ", " + m.lon.toFixed(5);
40
45
  }
41
46
 
42
- const DisplayTypesConverters = [
43
- toDecimal,
44
- toDegrees,
45
- toMercator
46
- ];
47
+ const DisplayTypesConverters = [toDecimal, toDegrees, toMercator];
47
48
 
48
49
  /**
49
50
  * Control displays mouse or screen center Earth coordinates.
50
51
  * @class
51
- * @extends {og.control.Control}
52
+ * @extends {Control}
52
53
  * @param {Object} [options] - Options:
53
54
  * @param {Boolean} [options.center] - Earth coordiantes by screen center otherwise mouse pointer. False is default.
54
55
  * @param {Boolean} [options.type] - Coordinates shown: 0 - is decimal degrees, 1 - degrees, 2 - mercator geodetic coordinates.
55
56
  */
56
57
  class EarthCoordinates extends Control {
58
+ /**
59
+ *
60
+ * @param {Object} [options] - Options:
61
+ */
57
62
  constructor(options) {
58
63
  super(options);
59
64
 
@@ -87,27 +92,32 @@ class EarthCoordinates extends Control {
87
92
  */
88
93
 
89
94
  var pad = false;
90
- if (/Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(navigator.userAgent)) {
95
+ if (
96
+ /Android|webOS|iPhone|iPad|iPod|BlackBerry|IEMobile|Opera Mini/i.test(
97
+ navigator.userAgent
98
+ )
99
+ ) {
91
100
  pad = true;
92
101
  }
93
102
 
94
103
  this._center = options.center || pad;
95
104
 
105
+ this._centerDiv = null;
106
+
96
107
  /**
97
108
  * Current position.
98
109
  * @public
99
- * @type {og.Vec3}
110
+ * @type {Vec3}
100
111
  */
101
112
  this.position = null;
102
113
  }
103
114
 
104
115
  oninit() {
105
- this._display = document.createElement('div');
106
- this._display.className = 'ogEarthCoordinatesControl';
116
+ this._display = document.createElement("div");
117
+ this._display.className = "ogEarthCoordinatesControl";
107
118
  var that = this;
108
119
 
109
120
  function _refresh(el) {
110
-
111
121
  if (that._displayType >= DisplayTypesConverters.length) {
112
122
  that._displayType = 0;
113
123
  }
@@ -132,19 +142,19 @@ class EarthCoordinates extends Control {
132
142
 
133
143
  _refresh(this._display);
134
144
 
135
- let centerDiv = document.createElement('div');
136
- centerDiv.className = 'ogCenterIcon';
137
- centerDiv.innerHTML = '<svg width="12" height="12"><g><path stroke-width="1" stroke-opacity="1" d="M6 0L6 12M0 6L12 6" stroke="#009DFF"></path></g></svg>';
138
- this.renderer.div.appendChild(centerDiv);
145
+ this._centerDiv = document.createElement("div");
146
+ this._centerDiv.className = "ogCenterIcon";
147
+ this._centerDiv.innerHTML =
148
+ '<svg width="12" height="12"><g><path stroke-width="1" stroke-opacity="1" d="M6 0L6 12M0 6L12 6" stroke="#009DFF"></path></g></svg>';
149
+ this.renderer.div.appendChild(this._centerDiv);
139
150
 
140
151
  if (this._center) {
141
152
  this.renderer.activeCamera.events.on("moveend", this._grabCoordinates, this);
142
- centerDiv.style.display = "block";
153
+ this._centerDiv.style.display = "block";
143
154
  } else {
144
155
  this.renderer.events.on("mousemove", this._onMouseMove, this);
145
- centerDiv.style.display = "none";
156
+ this._centerDiv.style.display = "none";
146
157
  }
147
-
148
158
  }
149
159
 
150
160
  /**
@@ -158,19 +168,28 @@ class EarthCoordinates extends Control {
158
168
  if (center) {
159
169
  this.renderer.events.off("mousemove", this._onMouseMove);
160
170
  this.renderer.activeCamera.events.on("moveend", this._grabCoordinates, this);
161
- centerDiv.style.display = "block";
171
+ this._centerDiv.style.display = "block";
162
172
  } else {
163
173
  this.renderer.events.off("draw", this._draw);
164
174
  this.renderer.events.on("mousemove", this._onMouseMove, this);
165
- centerDiv.style.display = "none";
175
+ this._centerDiv.style.display = "none";
166
176
  }
167
177
  }
168
178
  }
169
179
 
170
180
  _showPosition() {
171
181
  if (this.position) {
172
- this.position.height = ((this.position.height > 10000 || this.position.height < -10000) ? 0 : this.position.height);
173
- this._display.innerHTML = "Lat/Lon: " + this._converter(this.position) + " h(m): " + (this.position.height > 0 ? "~" + (Math.round(this.position.height) / 1000).toFixed(3) * 1000 : "-");
182
+ this.position.height =
183
+ this.position.height > 10000 || this.position.height < -10000
184
+ ? 0
185
+ : this.position.height;
186
+ this._display.innerHTML =
187
+ "Lat/Lon: " +
188
+ this._converter(this.position) +
189
+ " h(m): " +
190
+ (this.position.height > 0
191
+ ? "~" + (Math.round(this.position.height) / 1000).toFixed(3) * 1000
192
+ : "-");
174
193
  } else {
175
194
  this._display.innerHTML = "Lat/Lon: " + "_____________________";
176
195
  }
@@ -185,9 +204,11 @@ class EarthCoordinates extends Control {
185
204
  _onMouseMove() {
186
205
  var r = this.renderer;
187
206
  var ms = r.events.mouseState;
188
- if (!(ms.leftButtonDown || ms.rightButtonDown) &&
207
+ if (
208
+ !(ms.leftButtonDown || ms.rightButtonDown) &&
189
209
  r.controlsBag.scaleRot <= 0 &&
190
- !r.activeCamera._flying) {
210
+ !r.activeCamera._flying
211
+ ) {
191
212
  this.position = this.planet.getLonLatFromPixelTerrain(ms, true);
192
213
  this._showPosition();
193
214
  }
@@ -2,17 +2,17 @@
2
2
  * @module og/control/KeyboardNavigation
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import * as math from '../math.js';
8
- import { Control } from './Control.js';
9
- import { input } from '../input/input.js';
10
- import { Vec3 } from '../math/Vec3.js';
7
+ import * as math from "../math.js";
8
+ import { Control } from "./Control.js";
9
+ import { input } from "../input/input.js";
10
+ import { Vec3 } from "../math/Vec3.js";
11
11
 
12
12
  /**
13
13
  * Planet camera keyboard navigation. Use W,S,A,D and left shift key for fly around a planet.
14
14
  * @class
15
- * @extends {og.control.Control}
15
+ * @extends {Control}
16
16
  * @param {Object} [options] - Control options.
17
17
  */
18
18
 
@@ -69,7 +69,7 @@ class KeyboardNavigation extends Control {
69
69
  if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
70
70
  cam.pitch(15 / this.renderer.handler.deltaTime);
71
71
  } else {
72
- cam.rotateVertical(cam._lonLat.height / 3000000 * math.RADIANS, Vec3.ZERO);
72
+ cam.rotateVertical((cam._lonLat.height / 3000000) * math.RADIANS, Vec3.ZERO);
73
73
  }
74
74
  cam.update();
75
75
  }
@@ -79,7 +79,7 @@ class KeyboardNavigation extends Control {
79
79
  if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
80
80
  cam.pitch(-15 / this.renderer.handler.deltaTime);
81
81
  } else {
82
- cam.rotateVertical(-cam._lonLat.height / 3000000 * math.RADIANS, Vec3.ZERO);
82
+ cam.rotateVertical((-cam._lonLat.height / 3000000) * math.RADIANS, Vec3.ZERO);
83
83
  }
84
84
  cam.update();
85
85
  }
@@ -89,7 +89,7 @@ class KeyboardNavigation extends Control {
89
89
  if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
90
90
  cam.yaw(15 / this.renderer.handler.deltaTime);
91
91
  } else {
92
- cam.rotateHorizontal(cam._lonLat.height / 3000000 * math.RADIANS, false, Vec3.ZERO);
92
+ cam.rotateHorizontal((cam._lonLat.height / 3000000) * math.RADIANS, false, Vec3.ZERO);
93
93
  }
94
94
  cam.update();
95
95
  }
@@ -99,7 +99,7 @@ class KeyboardNavigation extends Control {
99
99
  if (this.renderer.events.isKeyPressed(input.KEY_SHIFT)) {
100
100
  cam.yaw(-15 / this.renderer.handler.deltaTime);
101
101
  } else {
102
- cam.rotateHorizontal(-cam._lonLat.height / 3000000 * math.RADIANS, false, Vec3.ZERO);
102
+ cam.rotateHorizontal((-cam._lonLat.height / 3000000) * math.RADIANS, false, Vec3.ZERO);
103
103
  }
104
104
  cam.update();
105
105
  }
@@ -2,14 +2,14 @@
2
2
  * @module og/control/LayerSwitcher
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import { Control } from './Control.js';
7
+ import { Control } from "./Control.js";
8
8
 
9
9
  /**
10
10
  * Simple(OpenLayers like)layer switcher, includes base layers, overlays, geo images etc. groups.
11
11
  * @class
12
- * @extends {og.control.Control}
12
+ * @extends {Control}
13
13
  * @param {Object} [options] - Control options.
14
14
  */
15
15
  class LayerSwitcher extends Control {
@@ -56,16 +56,16 @@ class LayerSwitcher extends Control {
56
56
  }
57
57
 
58
58
  addSwitcher(type, obj, container, id) {
59
- var lineDiv = document.createElement('div');
59
+ var lineDiv = document.createElement("div");
60
60
 
61
61
  var that = this;
62
- var center = document.createElement('div');
63
- center.classList.add('ogViewExtentBtn');
62
+ var center = document.createElement("div");
63
+ center.classList.add("ogViewExtentBtn");
64
64
  center.onclick = function () {
65
65
  that.planet.flyExtent(obj.getExtent());
66
66
  };
67
67
 
68
- var inp = document.createElement('input');
68
+ var inp = document.createElement("input");
69
69
  inp.type = type;
70
70
  inp.name = "ogBaseLayerRadiosId" + (id || "");
71
71
  inp.checked = obj.getVisibility();
@@ -74,11 +74,12 @@ class LayerSwitcher extends Control {
74
74
  obj.setVisibility(this.checked);
75
75
  };
76
76
 
77
- obj.events && obj.events.on("visibilitychange", function (e) {
78
- inp.checked = e.getVisibility();
79
- });
77
+ obj.events &&
78
+ obj.events.on("visibilitychange", function (e) {
79
+ inp.checked = e.getVisibility();
80
+ });
80
81
 
81
- var lbl = document.createElement('label');
82
+ var lbl = document.createElement("label");
82
83
  lbl.className = "ogLayerSwitcherLabel";
83
84
  lbl.innerHTML = (obj.name || obj.src || "noname") + "</br>";
84
85
 
@@ -94,35 +95,35 @@ class LayerSwitcher extends Control {
94
95
  }
95
96
 
96
97
  createBaseLayersContainer() {
97
- var layersDiv = document.createElement('div');
98
+ var layersDiv = document.createElement("div");
98
99
  layersDiv.className = "layersDiv";
99
100
  this.dialog.appendChild(layersDiv);
100
101
 
101
- var baseLayersLbl = document.createElement('div');
102
+ var baseLayersLbl = document.createElement("div");
102
103
  baseLayersLbl.className = "layersDiv";
103
104
  baseLayersLbl.innerHTML = "Base Layer";
104
105
  layersDiv.appendChild(baseLayersLbl);
105
106
 
106
- this.baseLayersDiv = document.createElement('div');
107
+ this.baseLayersDiv = document.createElement("div");
107
108
  layersDiv.appendChild(this.baseLayersDiv);
108
109
  }
109
110
 
110
111
  createOverlaysContainer() {
111
- var overlaysDiv = document.createElement('div');
112
+ var overlaysDiv = document.createElement("div");
112
113
  overlaysDiv.className = "layersDiv";
113
114
  this.dialog.appendChild(overlaysDiv);
114
115
 
115
- var overlaysLbl = document.createElement('div');
116
+ var overlaysLbl = document.createElement("div");
116
117
  overlaysLbl.className = "layersDiv";
117
118
  overlaysLbl.innerHTML = "Overlays";
118
119
  overlaysDiv.appendChild(overlaysLbl);
119
120
 
120
- this.overlaysDiv = document.createElement('div');
121
+ this.overlaysDiv = document.createElement("div");
121
122
  overlaysDiv.appendChild(this.overlaysDiv);
122
123
  }
123
124
 
124
125
  createDialog() {
125
- this.dialog = document.createElement('div');
126
+ this.dialog = document.createElement("div");
126
127
  this.dialog.id = "ogLayerSwitcherDialog";
127
128
  this.dialog.className = "displayNone";
128
129
  this.renderer.div.appendChild(this.dialog);
@@ -138,8 +139,8 @@ class LayerSwitcher extends Control {
138
139
  }
139
140
 
140
141
  createSwitcher() {
141
- var button = document.createElement('div');
142
- button.className = 'ogLayerSwitcherButton';
142
+ var button = document.createElement("div");
143
+ button.className = "ogLayerSwitcherButton";
143
144
  button.id = "ogLayerSwitcherButtonMaximize";
144
145
  var that = this;
145
146
  button.onclick = function (e) {
@@ -155,4 +156,4 @@ class LayerSwitcher extends Control {
155
156
  }
156
157
  }
157
158
 
158
- export { LayerSwitcher };
159
+ export { LayerSwitcher };
@@ -10,6 +10,11 @@ import { parseHTML } from "../utils/shared.js";
10
10
  const TEMPLATE = `<div class="og-lighing">
11
11
 
12
12
  <div class="og-screen-options">
13
+
14
+ <div class="og-option">
15
+ <div class="og-caption">Lighting enabled<input type="checkbox" id="lighting" name="light"/></div>
16
+ </div>
17
+
13
18
  <div class="og-option">
14
19
  <div class="og-caption">Gamma</div>
15
20
  <div class="og-slider">
@@ -32,6 +37,14 @@ const TEMPLATE = `<div class="og-lighing">
32
37
  </div>
33
38
 
34
39
  <div class="og-color-options">
40
+ <div class="og-caption">Opacity</div>
41
+ <div class="og-option">
42
+ <div class="og-label">A</div>
43
+ <div class="og-slider">
44
+ <input type="range" id="opacity" name="opacity" value="0.0" min="0.0" max="2.0" step="0.01" />
45
+ </div>
46
+ <div class="og-value opacity"></div>
47
+ </div>
35
48
  <div class="og-caption">Ambient</div>
36
49
  <div class="og-option">
37
50
  <div class="og-label">R</div>
@@ -115,7 +128,7 @@ const TEMPLATE = `<div class="og-lighing">
115
128
  /**
116
129
  * Helps to setup lighting.
117
130
  * @class
118
- * @extends {og.control.Control}
131
+ * @extends {Control}
119
132
  * @param {Object} [options] -
120
133
  */
121
134
  class Lighting extends Control {
@@ -128,6 +141,8 @@ class Lighting extends Control {
128
141
  bindLayer(layer) {
129
142
  this._selectedLayer = layer;
130
143
 
144
+ document.getElementById("opacity").value = layer.opacity;
145
+
131
146
  document.getElementById("ambient-r").value = layer.ambient.x;
132
147
  document.getElementById("ambient-g").value = layer.ambient.y;
133
148
  document.getElementById("ambient-b").value = layer.ambient.z;
@@ -142,6 +157,8 @@ class Lighting extends Control {
142
157
 
143
158
  document.getElementById("shininess").value = layer.shininess;
144
159
 
160
+ document.querySelector(".og-value.opacity").innerHTML = layer.opacity.toString();
161
+
145
162
  document.querySelector(".og-value.ambient-r").innerHTML = layer.ambient.x.toString();
146
163
  document.querySelector(".og-value.ambient-g").innerHTML = layer.ambient.y.toString();
147
164
  document.querySelector(".og-value.ambient-b").innerHTML = layer.ambient.z.toString();
@@ -163,8 +180,15 @@ class Lighting extends Control {
163
180
 
164
181
  var _this = this;
165
182
 
183
+ document.getElementById("lighting").checked = this.planet.lightEnabled;
184
+
185
+ document.getElementById("lighting").addEventListener("change", (e) => {
186
+ _this.planet.lightEnabled = e.target.checked;
187
+ });
188
+
166
189
  document.getElementById("layers").addEventListener("change", (e) => {
167
- this._selectedLayer = _this.planet.getLayerByName(e.target.value);
190
+ //this._selectedLayer = _this.planet.getLayerByName(e.target.value);
191
+ this.bindLayer(_this.planet.getLayerByName(e.target.value));
168
192
  });
169
193
 
170
194
  document.getElementById("gamma").addEventListener("input", function (e) {
@@ -183,6 +207,13 @@ class Lighting extends Control {
183
207
  document.getElementById("gamma").value = this.planet.renderer.gamma;
184
208
  document.getElementById("exposure").value = this.planet.renderer.exposure;
185
209
 
210
+ document.getElementById("opacity").addEventListener("input", function (e) {
211
+ if (_this._selectedLayer) {
212
+ _this._selectedLayer.opacity = Number(this.value);
213
+ }
214
+ document.querySelector(".og-value.opacity").innerHTML = this.value;
215
+ });
216
+
186
217
  document.getElementById("ambient-r").addEventListener("input", function (e) {
187
218
  if (_this._selectedLayer) {
188
219
  _this._selectedLayer.ambient.x = Number(this.value);
@@ -272,7 +303,7 @@ class Lighting extends Control {
272
303
  document.getElementById("layers").value = e.name;
273
304
  }
274
305
 
275
- _onLayerRemove(e) {}
306
+ _onLayerRemove(e) { }
276
307
  }
277
308
 
278
309
  export function lighting(options) {
@@ -18,7 +18,7 @@ import { Vec3 } from "../math/Vec3.js";
18
18
  /**
19
19
  * Mouse planet camera dragging control.
20
20
  * @class
21
- * @extends {og.control.Control}
21
+ * @extends {Control}
22
22
  * @param {Object} [options] - Control options.
23
23
  */
24
24
  class MouseNavigation extends Control {
@@ -21,7 +21,7 @@ const TEMPLATE = `<div class="og-scale-container">
21
21
  /**
22
22
  * Planet zoom buttons control.
23
23
  * @class
24
- * @extends {og.control.Control}
24
+ * @extends {Control}
25
25
  * @params {Object} [options] - Control options.
26
26
  */
27
27
  class ScaleControl extends Control {
@@ -1,13 +1,13 @@
1
- 'use strict';
1
+ "use strict";
2
2
 
3
- import { Control } from './Control.js';
4
- import { EntityCollection } from '../entity/EntityCollection.js';
5
- import { Entity } from '../entity/Entity.js';
3
+ import { Control } from "./Control.js";
4
+ import { EntityCollection } from "../entity/EntityCollection.js";
5
+ import { Entity } from "../entity/Entity.js";
6
6
 
7
7
  /**
8
8
  * Frame per second(FPS) display control.
9
9
  * @class
10
- * @extends {og.control.Control}
10
+ * @extends {Control}
11
11
  * @param {Object} [options] - Control options.
12
12
  */
13
13
  class SegmentBoundVisualization extends Control {
@@ -18,7 +18,6 @@ class SegmentBoundVisualization extends Control {
18
18
  }
19
19
 
20
20
  oninit() {
21
-
22
21
  this.planet.addEntityCollection(this._boundingSphereCollection);
23
22
 
24
23
  this.renderer.events.on("draw", this._predraw, this);
@@ -28,7 +27,7 @@ class SegmentBoundVisualization extends Control {
28
27
  _predraw() {
29
28
  this._boundingSphereCollection.clear();
30
29
  }
31
-
30
+
32
31
  _draw() {
33
32
  for (let i = 0; i < this.planet._renderedNodes.length; i++) {
34
33
  let si = this.planet._renderedNodes[i].segment;
@@ -2,15 +2,15 @@
2
2
  * @module og/control/ShowFps
3
3
  */
4
4
 
5
- 'use strict';
5
+ "use strict";
6
6
 
7
- import { Control } from './Control.js';
8
- import { print2d } from '../utils/shared.js';
7
+ import { Control } from "./Control.js";
8
+ import { print2d } from "../utils/shared.js";
9
9
 
10
10
  /**
11
11
  * Frame per second(FPS) display control.
12
12
  * @class
13
- * @extends {og.control.Control}
13
+ * @extends {Control}
14
14
  * @param {Object} [options] - Control options.
15
15
  */
16
16
  class ShowFps extends Control {
@@ -19,15 +19,20 @@ class ShowFps extends Control {
19
19
  }
20
20
 
21
21
  oninit() {
22
- var d = document.createElement('div');
23
- d.className = 'defaultText ';
22
+ var d = document.createElement("div");
23
+ d.className = "defaultText ";
24
24
  d.id = "ogShowFpsControl";
25
25
  document.body.appendChild(d);
26
26
  this.renderer.events.on("draw", this._draw, this);
27
27
  }
28
-
28
+
29
29
  _draw() {
30
- print2d("ogShowFpsControl", (1000.0 / this.renderer.handler.deltaTime).toFixed(1), this.renderer.handler.canvas.clientWidth - 60, 0);
30
+ print2d(
31
+ "ogShowFpsControl",
32
+ (1000.0 / this.renderer.handler.deltaTime).toFixed(1),
33
+ this.renderer.handler.canvas.clientWidth - 60,
34
+ 0
35
+ );
31
36
  }
32
37
  }
33
38