@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,7 +1,3 @@
1
- /**
2
- * @module og/entity/Billboard
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { BaseBillboard } from "./BaseBillboard.js";
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/BillboardHandler
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import * as shaders from "../shaders/billboard.js";
@@ -95,7 +91,7 @@ class BillboardHandler {
95
91
  }
96
92
 
97
93
  static concArr(dest, curr) {
98
- for (var i = 0; i < curr.length; i++) {
94
+ for (let i = 0; i < curr.length; i++) {
99
95
  dest.push(curr[i]);
100
96
  }
101
97
  }
@@ -467,7 +463,7 @@ class BillboardHandler {
467
463
 
468
464
  reindexBillbordsArray(startIndex) {
469
465
  var b = this._billboards;
470
- for (var i = startIndex; i < b.length; i++) {
466
+ for (let i = startIndex; i < b.length; i++) {
471
467
  b[i]._handlerIndex = i;
472
468
  }
473
469
  }
@@ -870,7 +866,7 @@ class BillboardHandler {
870
866
  var bc = this._entityCollection;
871
867
  if (bc && this._renderer) {
872
868
  var ta = this._renderer.billboardsTextureAtlas;
873
- for (var i = 0; i < this._billboards.length; i++) {
869
+ for (let i = 0; i < this._billboards.length; i++) {
874
870
  var bi = this._billboards[i];
875
871
  var img = bi._image;
876
872
  if (img) {
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/Entity
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Extent } from "../Extent.js";
@@ -90,14 +86,14 @@ class Entity {
90
86
  * @protected
91
87
  * @type {LonLat}
92
88
  */
93
- this._lonlat = utils.createLonLat(options.lonlat);
89
+ this._lonLat = utils.createLonLat(options.lonlat);
94
90
 
95
91
  /**
96
92
  * World Mercator entity coordinates.
97
93
  * @protected
98
94
  * @type {LonLat}
99
95
  */
100
- this._lonlatMerc = null;
96
+ this._lonLatMerc = null;
101
97
 
102
98
  /**
103
99
  * Entity visible terrain altitude.
@@ -227,6 +223,10 @@ class Entity {
227
223
  this._counter = n;
228
224
  }
229
225
 
226
+ get layerIndex() {
227
+ return this._layerIndex;
228
+ }
229
+
230
230
  get instanceName() {
231
231
  return "Entity";
232
232
  }
@@ -343,12 +343,12 @@ class Entity {
343
343
  let ec = this._entityCollection;
344
344
 
345
345
  if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
346
- this._lonlat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
346
+ this._lonLat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
347
347
 
348
- if (Math.abs(this._lonlat.lat) < mercator.MAX_LAT) {
349
- this._lonlatMerc = this._lonlat.forwardMercator();
348
+ if (Math.abs(this._lonLat.lat) < mercator.MAX_LAT) {
349
+ this._lonLatMerc = this._lonLat.forwardMercator();
350
350
  } else {
351
- this._lonlatMerc = null;
351
+ this._lonLatMerc = null;
352
352
  }
353
353
  }
354
354
 
@@ -384,12 +384,12 @@ class Entity {
384
384
  let ec = this._entityCollection;
385
385
 
386
386
  if (!skipLonLat && ec && ec.renderNode && ec.renderNode.ellipsoid) {
387
- this._lonlat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
387
+ this._lonLat = ec.renderNode.ellipsoid.cartesianToLonLat(p);
388
388
 
389
- if (Math.abs(this._lonlat.lat) < mercator.MAX_LAT) {
390
- this._lonlatMerc = this._lonlat.forwardMercator();
389
+ if (Math.abs(this._lonLat.lat) < mercator.MAX_LAT) {
390
+ this._lonLatMerc = this._lonLat.forwardMercator();
391
391
  } else {
392
- this._lonlatMerc = null;
392
+ this._lonLatMerc = null;
393
393
  }
394
394
  }
395
395
  }
@@ -400,7 +400,7 @@ class Entity {
400
400
  * @returns {LonLat} -
401
401
  */
402
402
  getLonLat() {
403
- return this._lonlat.clone();
403
+ return this._lonLat.clone();
404
404
  }
405
405
 
406
406
  /**
@@ -409,7 +409,7 @@ class Entity {
409
409
  * @param {LonLat} lonlat - WGS84 coordinates.
410
410
  */
411
411
  setLonLat(lonlat) {
412
- let l = this._lonlat;
412
+ let l = this._lonLat;
413
413
 
414
414
  l.lon = lonlat.lon;
415
415
  l.lat = lonlat.lat;
@@ -418,9 +418,9 @@ class Entity {
418
418
  let ec = this._entityCollection;
419
419
  if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
420
420
  if (Math.abs(l.lat) < mercator.MAX_LAT) {
421
- this._lonlatMerc = l.forwardMercator();
421
+ this._lonLatMerc = l.forwardMercator();
422
422
  } else {
423
- this._lonlatMerc = null;
423
+ this._lonLatMerc = null;
424
424
  }
425
425
 
426
426
  ec.renderNode.ellipsoid.lonLatToCartesianRes(l, this._cartesian);
@@ -436,7 +436,7 @@ class Entity {
436
436
  * @param {number} [height] - Height
437
437
  */
438
438
  setLonLat2(lon, lat, height) {
439
- let l = this._lonlat;
439
+ let l = this._lonLat;
440
440
 
441
441
  l.lon = lon;
442
442
  l.lat = lat;
@@ -445,9 +445,9 @@ class Entity {
445
445
  let ec = this._entityCollection;
446
446
  if (ec && ec.renderNode && ec.renderNode.ellipsoid) {
447
447
  if (Math.abs(l.lat) < mercator.MAX_LAT) {
448
- this._lonlatMerc = l.forwardMercator();
448
+ this._lonLatMerc = l.forwardMercator();
449
449
  } else {
450
- this._lonlatMerc = null;
450
+ this._lonLatMerc = null;
451
451
  }
452
452
 
453
453
  ec.renderNode.ellipsoid.lonLatToCartesianRes(l, this._cartesian);
@@ -683,7 +683,7 @@ class Entity {
683
683
  */
684
684
  getExtent() {
685
685
  let res;
686
- let c = this._lonlat;
686
+ let c = this._lonLat;
687
687
  if (this.billboard || this.label) {
688
688
  res = new Extent(new LonLat(c.lon, c.lat), new LonLat(c.lon, c.lat));
689
689
  } else {
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/EntityCollection
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Events } from "../Events.js";
@@ -213,10 +209,6 @@ class EntityCollection {
213
209
  this._counter = n;
214
210
  }
215
211
 
216
- // setPolygonOffset(factor, units) {
217
- // this.polygonOffsetUnits = units;
218
- // }
219
-
220
212
  /**
221
213
  * Sets collection visibility.
222
214
  * @public
@@ -311,7 +303,7 @@ class EntityCollection {
311
303
 
312
304
  this.events.dispatch(this.events.entityadd, entity);
313
305
 
314
- for (var i = 0; i < entity.childrenNodes.length; i++) {
306
+ for (let i = 0; i < entity.childrenNodes.length; i++) {
315
307
  entity.childrenNodes[i]._entityCollection = this;
316
308
  entity.childrenNodes[i]._entityCollectionIndex = entity._entityCollectionIndex;
317
309
  entity.childrenNodes[i]._pickingColor = entity._pickingColor;
@@ -334,7 +326,7 @@ class EntityCollection {
334
326
  if (rn) {
335
327
  rn.renderer && rn.renderer.assignPickingColor(entity);
336
328
  if (rn.ellipsoid && entity._cartesian.isZero()) {
337
- entity.setCartesian3v(rn.ellipsoid.lonLatToCartesian(entity._lonlat));
329
+ entity.setCartesian3v(rn.ellipsoid.lonLatToCartesian(entity._lonLat));
338
330
  }
339
331
  }
340
332
  this._addRecursively(entity);
@@ -394,7 +386,7 @@ class EntityCollection {
394
386
  // geoObject
395
387
  entity.geoObject && this.geoObjectHandler.remove(entity.geoObject);
396
388
 
397
- for (var i = 0; i < entity.childrenNodes.length; i++) {
389
+ for (let i = 0; i < entity.childrenNodes.length; i++) {
398
390
  this._removeRecursively(entity.childrenNodes[i]);
399
391
  }
400
392
  }
@@ -442,7 +434,7 @@ class EntityCollection {
442
434
  */
443
435
  createPickingColors() {
444
436
  var e = this._entities;
445
- for (var i = 0; i < e.length; i++) {
437
+ for (let i = 0; i < e.length; i++) {
446
438
  if (!e[i].parent) {
447
439
  this.renderNode.renderer.assignPickingColor(e[i]);
448
440
  e[i].setPickingColor();
@@ -457,7 +449,7 @@ class EntityCollection {
457
449
  */
458
450
  reindexEntitiesArray(startIndex) {
459
451
  var e = this._entities;
460
- for (var i = startIndex; i < e.length; i++) {
452
+ for (let i = startIndex; i < e.length; i++) {
461
453
  e[i]._entityCollectionIndex = i;
462
454
  }
463
455
  }
@@ -472,10 +464,12 @@ class EntityCollection {
472
464
  addTo(renderNode, isHidden) {
473
465
  if (!this.renderNode) {
474
466
  this.renderNode = renderNode;
467
+
475
468
  if (!isHidden) {
476
469
  this._renderNodeIndex = renderNode.entityCollections.length;
477
470
  renderNode.entityCollections.push(this);
478
471
  }
472
+
479
473
  renderNode.ellipsoid && this._updateGeodeticCoordinates(renderNode.ellipsoid);
480
474
 
481
475
  this.bindRenderNode(renderNode);
@@ -490,10 +484,12 @@ class EntityCollection {
490
484
  * @param {RenderNode} renderNode
491
485
  */
492
486
  bindRenderNode(renderNode) {
493
- if (renderNode.renderer) {
487
+ if (renderNode.renderer && renderNode.renderer.isInitialized()) {
488
+
494
489
  this.billboardHandler.setRenderer(renderNode.renderer);
495
490
  this.labelHandler.setRenderer(renderNode.renderer);
496
491
  this.rayHandler.setRenderer(renderNode.renderer);
492
+
497
493
  this.geoObjectHandler.setRenderNode(renderNode);
498
494
  this.polylineHandler.setRenderNode(renderNode);
499
495
  this.pointCloudHandler.setRenderNode(renderNode);
@@ -515,7 +511,7 @@ class EntityCollection {
515
511
  var i = e.length;
516
512
  while (i--) {
517
513
  var ei = e[i];
518
- ei._lonlat && ei.setCartesian3v(ellipsoid.lonLatToCartesian(ei._lonlat));
514
+ ei._lonLat && ei.setCartesian3v(ellipsoid.lonLatToCartesian(ei._lonLat));
519
515
  }
520
516
  }
521
517
 
@@ -525,7 +521,7 @@ class EntityCollection {
525
521
  */
526
522
  updateBillboardsTextureAtlas() {
527
523
  var b = this.billboardHandler._billboards;
528
- for (var i = 0; i < b.length; i++) {
524
+ for (let i = 0; i < b.length; i++) {
529
525
  b[i].setSrc(b[i]._src);
530
526
  }
531
527
  }
@@ -538,7 +534,7 @@ class EntityCollection {
538
534
  if (this.renderNode) {
539
535
  var l = [].concat(this.labelHandler._billboards);
540
536
  this.labelHandler._billboards = [];
541
- for (var i = 0; i < l.length; i++) {
537
+ for (let i = 0; i < l.length; i++) {
542
538
  this.labelHandler.assignFontAtlas(l[i]);
543
539
  }
544
540
  }
@@ -625,7 +621,7 @@ class EntityCollection {
625
621
  _clearEntity(entity) {
626
622
  entity._entityCollection = null;
627
623
  entity._entityCollectionIndex = -1;
628
- for (var i = 0; i < entity.childrenNodes.length; i++) {
624
+ for (let i = 0; i < entity.childrenNodes.length; i++) {
629
625
  this._clearEntity(entity.childrenNodes[i]);
630
626
  }
631
627
  }
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/GeoObject
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Quat, Vec3 } from "../math/index.js";
@@ -236,10 +232,12 @@ class GeoObject {
236
232
  }
237
233
 
238
234
  updateDirection() {
239
- this._qNorthFrame = Planet.getBearingNorthRotationQuat(this._position);
240
- let qq = Quat.yRotation(this._yaw).mul(this._qNorthFrame).conjugate();
241
- this._direction = qq.mulVec3(new Vec3(0.0, 0.0, -1.0)).normalize();
242
- this._handler && this._handler.setDirectionArr(this._tagData, this._tagDataIndex, this._direction);
235
+ if (this._handler && this._handler._planet) {
236
+ this._qNorthFrame = this._handler._planet.getNorthFrameRotation(this._position);
237
+ let qq = Quat.yRotation(this._yaw).mul(this._qNorthFrame).conjugate();
238
+ this._direction = qq.mulVec3(new Vec3(0.0, 0.0, -1.0)).normalize();
239
+ this._handler.setDirectionArr(this._tagData, this._tagDataIndex, this._direction);
240
+ }
243
241
  }
244
242
  }
245
243
 
@@ -1,9 +1,5 @@
1
1
  "use strict";
2
2
 
3
- /**
4
- * @module og/entity/GeoObjectHandler
5
- */
6
-
7
3
  import * as shaders from "../shaders/geoObject.js";
8
4
  import { concatArrays, loadImage, makeArrayTyped, spliceArray } from "../utils/shared.js";
9
5
 
@@ -116,24 +112,33 @@ class InstanceData {
116
112
  this._visibleArr = [];
117
113
  this._texCoordArr = [];
118
114
 
119
- let h = this._geoObjectHandler._planet.renderer.handler, gl = h.gl;
120
-
121
- h.deleteTexture(this._texture);
115
+ this._deleteBuffers();
122
116
 
123
- this._texture = null;
117
+ this.isFree = false;
118
+ this._geoObjectHandler = null;
119
+ }
124
120
 
125
- gl.deleteBuffer(this._pitchRollBuffer);
126
- gl.deleteBuffer(this._sizeBuffer);
127
- gl.deleteBuffer(this._vertexBuffer);
128
- gl.deleteBuffer(this._positionHighBuffer);
129
- gl.deleteBuffer(this._positionLowBuffer);
130
- gl.deleteBuffer(this._directionBuffer);
131
- gl.deleteBuffer(this._rgbaBuffer);
132
- gl.deleteBuffer(this._normalsBuffer);
133
- gl.deleteBuffer(this._indicesBuffer);
134
- gl.deleteBuffer(this._pickingColorBuffer);
135
- gl.deleteBuffer(this._visibleBuffer);
136
- gl.deleteBuffer(this._texCoordBuffer);
121
+ _deleteBuffers() {
122
+ if (this._geoObjectHandler && this._geoObjectHandler._planet && this._geoObjectHandler._planet.renderer) {
123
+ let h = this._geoObjectHandler._planet.renderer.handler,
124
+ gl = h.gl;
125
+
126
+ h.deleteTexture(this._texture);
127
+ this._texture = null;
128
+
129
+ gl.deleteBuffer(this._pitchRollBuffer);
130
+ gl.deleteBuffer(this._sizeBuffer);
131
+ gl.deleteBuffer(this._vertexBuffer);
132
+ gl.deleteBuffer(this._positionHighBuffer);
133
+ gl.deleteBuffer(this._positionLowBuffer);
134
+ gl.deleteBuffer(this._directionBuffer);
135
+ gl.deleteBuffer(this._rgbaBuffer);
136
+ gl.deleteBuffer(this._normalsBuffer);
137
+ gl.deleteBuffer(this._indicesBuffer);
138
+ gl.deleteBuffer(this._pickingColorBuffer);
139
+ gl.deleteBuffer(this._visibleBuffer);
140
+ gl.deleteBuffer(this._texCoordBuffer);
141
+ }
137
142
 
138
143
  this._pitchRollBuffer = null;
139
144
  this._sizeBuffer = null;
@@ -147,9 +152,6 @@ class InstanceData {
147
152
  this._pickingColorBuffer = null;
148
153
  this._visibleBuffer = null;
149
154
  this._texCoordBuffer = null;
150
-
151
- this.isFree = false;
152
- this._geoObjectHandler = null;
153
155
  }
154
156
 
155
157
  createVertexBuffer() {
@@ -349,6 +351,10 @@ class GeoObjectHandler {
349
351
  this._loadDataTagTexture(this._instanceDataMapValues[i]);
350
352
  }
351
353
 
354
+ for (let i = 0; i < this._geoObjects.length; i++) {
355
+ this._geoObjects[i].updateDirection();
356
+ }
357
+
352
358
  this.update();
353
359
  }
354
360
 
@@ -639,7 +645,7 @@ class GeoObjectHandler {
639
645
  this._geoObjects.length = 0;
640
646
  this._geoObjects = [];
641
647
 
642
- for (let i = 0; this._instanceDataMapValues.length; i++) {
648
+ for (let i = 0; i < this._instanceDataMapValues.length; i++) {
643
649
  this._instanceDataMapValues[i].clear();
644
650
  }
645
651
 
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/Geometry
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Extent } from "../Extent.js";
@@ -192,6 +188,11 @@ class Geometry {
192
188
  return res;
193
189
  }
194
190
 
191
+ /**
192
+ * @todo ASAP need test for this method
193
+ * @param geoJson
194
+ * @returns {Geometry}
195
+ */
195
196
  setGeometry(geoJson) {
196
197
  var h = this._handler;
197
198
  this.remove();
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/GeometryHandler
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { doubleToTwoFloatsV2 } from "../math/coder.js";
@@ -167,7 +163,7 @@ class GeometryHandler {
167
163
  sc = [strokeColor.x, strokeColor.y, strokeColor.z, strokeColor.w],
168
164
  p = [pickingColor.x, pickingColor.y, pickingColor.z, 1.0];
169
165
 
170
- for (var j = 0; j < pathArr.length; j++) {
166
+ for (let j = 0; j < pathArr.length; j++) {
171
167
  var path = pathArr[j];
172
168
 
173
169
  if (path.length === 0) {
@@ -292,7 +288,7 @@ class GeometryHandler {
292
288
  p[3]
293
289
  );
294
290
 
295
- for (var i = 0; i < path.length; i++) {
291
+ for (let i = 0; i < path.length; i++) {
296
292
  var cur = path[i];
297
293
 
298
294
  doubleToTwoFloats(cur, tempHigh, tempLow);
@@ -527,6 +523,9 @@ class GeometryHandler {
527
523
  assignHandler(handler) {
528
524
  this._handler = handler;
529
525
  this.refresh();
526
+ if (handler.isInitialized()) {
527
+ this.update();
528
+ }
530
529
  }
531
530
 
532
531
  /**
@@ -555,7 +554,7 @@ class GeometryHandler {
555
554
  let ci = [];
556
555
  for (let j = 0; j < coordinates.length; j++) {
557
556
  ci[j] = [];
558
- for (var k = 0; k < coordinates[j].length; k++) {
557
+ for (let k = 0; k < coordinates[j].length; k++) {
559
558
  ci[j][k] = [
560
559
  mercator.forward_lon(coordinates[j][k][0]),
561
560
  mercator.forward_lat(coordinates[j][k][1])
@@ -654,7 +653,7 @@ class GeometryHandler {
654
653
  geometry._lineColorsHandlerIndex = this._lineColors.length;
655
654
  geometry._lineThicknessHandlerIndex = this._lineThickness.length;
656
655
 
657
- for (var i = 0; i < coordinates.length; i++) {
656
+ for (let i = 0; i < coordinates.length; i++) {
658
657
  let cci = coordinates[i];
659
658
  let ci = [];
660
659
  for (let j = 0; j < cci.length; j++) {
@@ -884,7 +883,7 @@ class GeometryHandler {
884
883
  geometry._polyIndexesLength
885
884
  );
886
885
  var di = geometry._polyVerticesLength * 0.5;
887
- for (var i = geometry._polyIndexesHandlerIndex; i < this._polyIndexes.length; i++) {
886
+ for (let i = geometry._polyIndexesHandlerIndex; i < this._polyIndexes.length; i++) {
888
887
  this._polyIndexes[i] -= di;
889
888
  }
890
889
 
@@ -976,7 +975,7 @@ class GeometryHandler {
976
975
  _refreshRecursevely(geometry, treeNode) {
977
976
  if (treeNode.ready) {
978
977
  var lid = this._layer._id;
979
- for (var i = 0; i < treeNode.nodes.length; i++) {
978
+ for (let i = 0; i < treeNode.nodes.length; i++) {
980
979
  var ni = treeNode.nodes[i];
981
980
  if (geometry._extent.overlaps(ni.segment.getExtentLonLat())) {
982
981
  this._refreshRecursevely(geometry, ni);
@@ -1000,7 +999,7 @@ class GeometryHandler {
1000
999
  _refreshRecursevelyExt(extent, treeNode) {
1001
1000
  if (treeNode.ready) {
1002
1001
  var lid = this._layer._id;
1003
- for (var i = 0; i < treeNode.nodes.length; i++) {
1002
+ for (let i = 0; i < treeNode.nodes.length; i++) {
1004
1003
  var ni = treeNode.nodes[i];
1005
1004
  if (extent.overlaps(ni.segment.getExtentLonLat())) {
1006
1005
  this._refreshRecursevelyExt(extent, ni);
@@ -1077,7 +1076,7 @@ class GeometryHandler {
1077
1076
 
1078
1077
  var l = geometry._polyVerticesLength;
1079
1078
  var ind = geometry._polyVerticesHandlerIndex;
1080
- for (var i = 0; i < l; i++) {
1079
+ for (let i = 0; i < l; i++) {
1081
1080
  a[ind + i] = geometry._polyVerticesHighMerc[i] * v;
1082
1081
  b[ind + i] = geometry._polyVerticesLowMerc[i] * v;
1083
1082
  }
@@ -1086,7 +1085,7 @@ class GeometryHandler {
1086
1085
  b = this._lineVerticesLowMerc;
1087
1086
  l = geometry._lineVerticesLength;
1088
1087
  ind = geometry._lineVerticesHandlerIndex;
1089
- for (i = 0; i < l; i++) {
1088
+ for (let i = 0; i < l; i++) {
1090
1089
  a[ind + i] = geometry._lineVerticesHighMerc[i] * v;
1091
1090
  b[ind + i] = geometry._lineVerticesLowMerc[i] * v;
1092
1091
  }
@@ -1102,7 +1101,7 @@ class GeometryHandler {
1102
1101
  var index = geometry._polyVerticesHandlerIndex * 2, // ... / 2 * 4
1103
1102
  size = index + geometry._polyVerticesLength * 2; // ... / 2 * 4
1104
1103
  var a = this._polyColors;
1105
- for (var i = index; i < size; i += 4) {
1104
+ for (let i = index; i < size; i += 4) {
1106
1105
  a[i] = color.x;
1107
1106
  a[i + 1] = color.y;
1108
1107
  a[i + 2] = color.z;
@@ -1117,7 +1116,7 @@ class GeometryHandler {
1117
1116
  var index = geometry._lineColorsHandlerIndex,
1118
1117
  size = index + geometry._lineColorsLength;
1119
1118
  var a = this._lineStrokeColors;
1120
- for (var i = index; i < size; i += 4) {
1119
+ for (let i = index; i < size; i += 4) {
1121
1120
  a[i] = color.x;
1122
1121
  a[i + 1] = color.y;
1123
1122
  a[i + 2] = color.z;
@@ -1132,7 +1131,7 @@ class GeometryHandler {
1132
1131
  var index = geometry._lineColorsHandlerIndex,
1133
1132
  size = index + geometry._lineColorsLength;
1134
1133
  var a = this._lineColors;
1135
- for (var i = index; i < size; i += 4) {
1134
+ for (let i = index; i < size; i += 4) {
1136
1135
  a[i] = color.x;
1137
1136
  a[i + 1] = color.y;
1138
1137
  a[i + 2] = color.z;
@@ -1147,7 +1146,7 @@ class GeometryHandler {
1147
1146
  var index = geometry._lineStrokesHandlerIndex,
1148
1147
  size = index + geometry._lineStrokesLength;
1149
1148
  var a = this._lineStrokes;
1150
- for (var i = index; i < size; i++) {
1149
+ for (let i = index; i < size; i++) {
1151
1150
  a[i] = width;
1152
1151
  }
1153
1152
  this._changedBuffers[LINESTROKES_BUFFER] = true;
@@ -1159,7 +1158,7 @@ class GeometryHandler {
1159
1158
  var index = geometry._lineThicknessHandlerIndex,
1160
1159
  size = index + geometry._lineThicknessLength;
1161
1160
  var a = this._lineThickness;
1162
- for (var i = index; i < size; i++) {
1161
+ for (let i = index; i < size; i++) {
1163
1162
  a[i] = width;
1164
1163
  }
1165
1164
  this._changedBuffers[LINETHICKNESS_BUFFER] = true;
@@ -1180,7 +1179,7 @@ class GeometryHandler {
1180
1179
  this._geometries.splice(geometry._handlerIndex, 1);
1181
1180
 
1182
1181
  var g = this._geometries;
1183
- for (var i = geometry._handlerIndex; i < g.length; i++) {
1182
+ for (let i = geometry._handlerIndex; i < g.length; i++) {
1184
1183
  var gi = g[i];
1185
1184
  gi._handlerIndex = i;
1186
1185
  gi._polyIndexesHandlerIndex -= geometry._polyIndexesLength;
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/Label
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Vec4 } from "../math/Vec4.js";
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/entity/LabelHandler
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import * as shaders from "../shaders/label.js";
@@ -514,7 +510,7 @@ class LabelHandler extends BillboardHandler {
514
510
  yl = positionLow.y,
515
511
  zl = positionLow.z;
516
512
 
517
- for (var q = 0; q < this._maxLetters; q++) {
513
+ for (let q = 0; q < this._maxLetters; q++) {
518
514
  var j = i + q * 18;
519
515
  a[j] = x;
520
516
  a[j + 1] = y;
@@ -576,7 +572,7 @@ class LabelHandler extends BillboardHandler {
576
572
  y = color.y / 255,
577
573
  z = color.z / 255;
578
574
 
579
- for (var q = 0; q < this._maxLetters; q++) {
575
+ for (let q = 0; q < this._maxLetters; q++) {
580
576
  var j = i + q * 18;
581
577
  a[j] = x;
582
578
  a[j + 1] = y;
@@ -610,7 +606,7 @@ class LabelHandler extends BillboardHandler {
610
606
  var i = index * 6 * this._maxLetters;
611
607
  var a = this._sizeArr;
612
608
 
613
- for (var q = 0; q < this._maxLetters; q++) {
609
+ for (let q = 0; q < this._maxLetters; q++) {
614
610
  var j = i + q * 6;
615
611
  a[j] = size;
616
612
  a[j + 1] = size;
@@ -630,7 +626,7 @@ class LabelHandler extends BillboardHandler {
630
626
  y = offset.y,
631
627
  z = offset.z;
632
628
 
633
- for (var q = 0; q < this._maxLetters; q++) {
629
+ for (let q = 0; q < this._maxLetters; q++) {
634
630
  var j = i + q * 18;
635
631
  a[j] = x;
636
632
  a[j + 1] = y;
@@ -668,7 +664,7 @@ class LabelHandler extends BillboardHandler {
668
664
  z = rgba.z,
669
665
  w = rgba.w;
670
666
 
671
- for (var q = 0; q < this._maxLetters; q++) {
667
+ for (let q = 0; q < this._maxLetters; q++) {
672
668
  var j = i + q * 24;
673
669
 
674
670
  a[j] = x;
@@ -713,7 +709,7 @@ class LabelHandler extends BillboardHandler {
713
709
  z = rgba.z,
714
710
  w = rgba.w;
715
711
 
716
- for (var q = 0; q < this._maxLetters; q++) {
712
+ for (let q = 0; q < this._maxLetters; q++) {
717
713
  var j = i + q * 24;
718
714
 
719
715
  a[j] = x;
@@ -754,7 +750,7 @@ class LabelHandler extends BillboardHandler {
754
750
  var i = index * 6 * this._maxLetters;
755
751
  var a = this._outlineArr;
756
752
 
757
- for (var q = 0; q < this._maxLetters; q++) {
753
+ for (let q = 0; q < this._maxLetters; q++) {
758
754
  var j = i + q * 6;
759
755
  a[j] = outline;
760
756
  a[j + 1] = outline;
@@ -771,7 +767,7 @@ class LabelHandler extends BillboardHandler {
771
767
  var i = index * 6 * this._maxLetters;
772
768
  var a = this._rotationArr;
773
769
 
774
- for (var q = 0; q < this._maxLetters; q++) {
770
+ for (let q = 0; q < this._maxLetters; q++) {
775
771
  var j = i + q * 6;
776
772
  a[j] = rotation;
777
773
  a[j + 1] = rotation;
@@ -798,7 +794,7 @@ class LabelHandler extends BillboardHandler {
798
794
  var i = index * 12 * this._maxLetters;
799
795
  var a = this._vertexArr;
800
796
 
801
- for (var q = 0; q < this._maxLetters; q++) {
797
+ for (let q = 0; q < this._maxLetters; q++) {
802
798
  var j = i + q * 12;
803
799
 
804
800
  a[j] = vertexArr[0];
@@ -827,7 +823,7 @@ class LabelHandler extends BillboardHandler {
827
823
  var i = index * 6 * this._maxLetters;
828
824
  var a = this._fontIndexArr;
829
825
 
830
- for (var q = 0; q < this._maxLetters; q++) {
826
+ for (let q = 0; q < this._maxLetters; q++) {
831
827
  var j = i + q * 6;
832
828
  a[j] = fontIndex;
833
829
  a[j + 1] = fontIndex;