@openglobus/og 0.13.7 → 0.13.10

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 (106) hide show
  1. package/README.md +1 -1
  2. package/css/og.css +388 -129
  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 +20 -19
  9. package/src/og/Globe.js +15 -16
  10. package/src/og/Object3d.js +417 -0
  11. package/src/og/arial.js +1705 -1703
  12. package/src/og/camera/Camera.js +640 -640
  13. package/src/og/control/EarthCoordinates.js +1 -1
  14. package/src/og/control/GeoImageDragControl.js +102 -75
  15. package/src/og/control/LayerAnimation.js +383 -0
  16. package/src/og/control/LayerSwitcher.js +506 -159
  17. package/src/og/control/Lighting.js +27 -27
  18. package/src/og/control/MouseNavigation.js +460 -460
  19. package/src/og/control/RulerSwitcher.js +69 -0
  20. package/src/og/control/Sun.js +170 -170
  21. package/src/og/control/UIhelpers.js +146 -0
  22. package/src/og/control/ZoomControl.js +0 -2
  23. package/src/og/control/index.js +5 -1
  24. package/src/og/control/ruler/Ruler.js +43 -0
  25. package/src/og/control/ruler/RulerScene.js +374 -0
  26. package/src/og/control/visibleExtent/Segment.js +3 -5
  27. package/src/og/ellipsoid/Ellipsoid.js +19 -0
  28. package/src/og/ellipsoid/wgs84.js +1 -1
  29. package/src/og/entity/Entity.js +1 -1
  30. package/src/og/entity/GeoObject.js +1 -1
  31. package/src/og/entity/LabelHandler.js +6 -2
  32. package/src/og/entity/LabelWorker.js +38 -53
  33. package/src/og/layer/BaseGeoImage.js +347 -312
  34. package/src/og/layer/CanvasTiles.js +312 -290
  35. package/src/og/layer/GeoImage.js +222 -214
  36. package/src/og/layer/GeoVideo.js +291 -291
  37. package/src/og/layer/Layer.js +94 -70
  38. package/src/og/layer/Material.js +109 -109
  39. package/src/og/layer/Vector.js +81 -14
  40. package/src/og/layer/XYZ.js +23 -11
  41. package/src/og/light/LightSource.js +364 -363
  42. package/src/og/math/Vec3.js +1 -1
  43. package/src/og/math.js +6 -6
  44. package/src/og/quadTree/Node.js +8 -6
  45. package/src/og/renderer/Renderer.js +2 -3
  46. package/src/og/res/images.js +0 -2
  47. package/src/og/scene/Planet.js +106 -44
  48. package/src/og/segment/Segment.js +34 -64
  49. package/src/og/segment/Slice.js +1 -1
  50. package/src/og/shaders/drawnode.js +1 -1
  51. package/src/og/shaders/label.js +30 -42
  52. package/src/og/terrain/GlobusTerrain.js +31 -20
  53. package/src/og/terrain/MapboxTerrain.js +1 -1
  54. package/src/og/utils/BaseWorker.js +46 -0
  55. package/src/og/utils/FontAtlas.js +1 -2
  56. package/src/og/utils/GeoImageCreator.js +164 -161
  57. package/src/og/utils/Loader.js +187 -153
  58. package/src/og/utils/NormalMapCreator.js +403 -412
  59. package/src/og/utils/PlainSegmentWorker.js +29 -55
  60. package/src/og/utils/TerrainWorker.js +572 -589
  61. package/src/og/utils/VectorTileCreator.js +1 -1
  62. package/src/og/utils/functionComposition.js +13 -0
  63. package/src/og/webgl/Handler.js +42 -41
  64. package/src/og/webgl/ProgramController.js +143 -143
  65. package/types/Object3d.d.ts +22 -0
  66. package/types/arial.d.ts +1 -0
  67. package/types/camera/PlanetCamera.d.ts +4 -0
  68. package/types/control/GeoImageDragControl.d.ts +2 -0
  69. package/types/control/LayerAnimation.d.ts +73 -0
  70. package/types/control/LayerSwitcher.d.ts +55 -11
  71. package/types/control/MouseNavigation.d.ts +1 -0
  72. package/types/control/MouseWheelZoomControl.d.ts +1 -0
  73. package/types/control/Sun.d.ts +2 -1
  74. package/types/control/TouchNavigation.d.ts +1 -0
  75. package/types/control/UIhelpers.d.ts +13 -0
  76. package/types/control/index.d.ts +3 -1
  77. package/types/control/ruler/Ruler.d.ts +13 -0
  78. package/types/control/ruler/RulerScene.d.ts +48 -0
  79. package/types/ellipsoid/Ellipsoid.d.ts +8 -0
  80. package/types/entity/LabelHandler.d.ts +2 -0
  81. package/types/entity/LabelWorker.d.ts +5 -7
  82. package/types/layer/BaseGeoImage.d.ts +9 -1
  83. package/types/layer/CanvasTiles.d.ts +5 -1
  84. package/types/layer/GeoImage.d.ts +1 -0
  85. package/types/layer/GeoTexture2d.d.ts +1 -0
  86. package/types/layer/Layer.d.ts +28 -32
  87. package/types/layer/Vector.d.ts +9 -0
  88. package/types/layer/WMS.d.ts +1 -0
  89. package/types/layer/XYZ.d.ts +8 -5
  90. package/types/math.d.ts +2 -2
  91. package/types/quadTree/EntityCollectionNode.d.ts +7 -0
  92. package/types/quadTree/Node.d.ts +1 -2
  93. package/types/renderer/Renderer.d.ts +1 -1
  94. package/types/renderer/RendererEvents.d.ts +16 -0
  95. package/types/res/images.d.ts +0 -1
  96. package/types/scene/Planet.d.ts +21 -6
  97. package/types/segment/SegmentLonLat.d.ts +2 -0
  98. package/types/terrain/BilTerrain.d.ts +6 -0
  99. package/types/terrain/GlobusTerrain.d.ts +7 -0
  100. package/types/terrain/MapboxTerrain.d.ts +8 -0
  101. package/types/utils/BaseWorker.d.ts +14 -0
  102. package/types/utils/Loader.d.ts +4 -1
  103. package/types/utils/PlainSegmentWorker.d.ts +4 -6
  104. package/types/utils/TerrainWorker.d.ts +4 -6
  105. package/types/utils/functionComposition.d.ts +5 -0
  106. package/types/webgl/Handler.d.ts +4 -1
@@ -76,11 +76,6 @@ class XYZ extends Layer {
76
76
  */
77
77
  this.maxNativeZoom = options.maxNativeZoom || 19;
78
78
 
79
- /**
80
- * @protected
81
- */
82
- this._crossOrigin = options.crossOrigin === undefined ? "" : options.crossOrigin;
83
-
84
79
  /**
85
80
  * Rewrites imagery tile url query.
86
81
  * @private
@@ -90,6 +85,16 @@ class XYZ extends Layer {
90
85
  * @returns {string} - Url query string.
91
86
  */
92
87
  this._urlRewriteCallback = options.urlRewrite || null;
88
+
89
+ this._requestsPeerSubdomian = 4;
90
+ this._requestCount = 0;
91
+ }
92
+
93
+ /**
94
+ * @warning Use XYZ.isIdle in requesAnimationFrame(after setVisibility)
95
+ */
96
+ get isIdle() {
97
+ return super.isIdle && this._planet._tileLoader.getRequestCounter(this) === 0;
93
98
  }
94
99
 
95
100
  get instanceName() {
@@ -102,7 +107,7 @@ class XYZ extends Layer {
102
107
  */
103
108
  abortLoading() {
104
109
  if (this._planet) {
105
- this._planet._tileLoader.abort();
110
+ this._planet._tileLoader.abort(this);
106
111
  }
107
112
  }
108
113
 
@@ -114,13 +119,17 @@ class XYZ extends Layer {
114
119
  setVisibility(visibility) {
115
120
  if (visibility !== this._visibility) {
116
121
  super.setVisibility(visibility);
117
-
118
122
  if (!visibility) {
119
123
  this.abortLoading();
120
124
  }
121
125
  }
122
126
  }
123
127
 
128
+ remove() {
129
+ this.abortLoading();
130
+ super.remove();
131
+ }
132
+
124
133
  /**
125
134
  * Sets imagery tiles url source template.
126
135
  * @public
@@ -144,6 +153,7 @@ class XYZ extends Layer {
144
153
  * @param {Material} material - Loads current material.
145
154
  */
146
155
  loadMaterial(material, forceLoading) {
156
+
147
157
  let seg = material.segment;
148
158
 
149
159
  if (this._isBaseLayer) {
@@ -212,7 +222,9 @@ class XYZ extends Layer {
212
222
  }
213
223
 
214
224
  _getSubdomain() {
215
- return this._s[Math.floor(Math.random() * this._s.length)];
225
+ this._requestCount++;
226
+ return this._s[Math.floor(this._requestCount % (this._requestsPeerSubdomian * this._s.length) / this._requestsPeerSubdomian)];
227
+
216
228
  }
217
229
 
218
230
  /**
@@ -236,7 +248,7 @@ class XYZ extends Layer {
236
248
  this._urlRewriteCallback = ur;
237
249
  }
238
250
 
239
- applyMaterial(material) {
251
+ applyMaterial(material, forceLoading) {
240
252
  if (material.isReady) {
241
253
  return material.texOffset;
242
254
  } else if (material.segment.tileZoom <= this.minNativeZoom) {
@@ -263,7 +275,7 @@ class XYZ extends Layer {
263
275
  if (pn.segment.tileZoom === maxNativeZoom) {
264
276
  material.textureNotExists();
265
277
  } else if (material.segment.tileZoom <= maxNativeZoom) {
266
- !material.isLoading && !material.isReady && this.loadMaterial(material);
278
+ !material.isLoading && !material.isReady && this.loadMaterial(material, forceLoading);
267
279
  } else {
268
280
  let pn = segment.node;
269
281
  while (pn.segment.tileZoom > material.layer.maxNativeZoom) {
@@ -305,7 +317,7 @@ class XYZ extends Layer {
305
317
  clearMaterial(material) {
306
318
  if (material.isReady && material.textureExists) {
307
319
  !material.texture.default &&
308
- material.segment.handler.gl.deleteTexture(material.texture);
320
+ material.segment.handler.gl.deleteTexture(material.texture);
309
321
  material.texture = null;
310
322
 
311
323
  if (material.image) {