@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
@@ -2,50 +2,27 @@
2
2
 
3
3
  // import { QueueArray } from '../QueueArray.js';
4
4
  import { EPSG4326 } from "../proj/EPSG4326.js";
5
+ import { BaseWorker } from "./BaseWorker.js";
5
6
 
6
- class PlainSegmentWorker {
7
+ class PlainSegmentWorker extends BaseWorker {
7
8
  constructor(numWorkers = 2) {
8
- this._id = 0;
9
- this._segments = {};
10
-
11
- this._workerQueue = [];
12
-
13
- var elevationProgramm = new Blob([_programm], { type: "application/javascript" });
14
-
15
- let _this = this;
16
-
17
- for (let i = 0; i < numWorkers; i++) {
18
- let w = new Worker(URL.createObjectURL(elevationProgramm));
19
-
20
- w.onmessage = function (e) {
21
- _this._segments[e.data.id]._plainSegmentWorkerCallback(e.data);
22
-
23
- e.data.plainVertices = null;
24
- e.data.plainVerticesHigh = null;
25
- e.data.plainVerticesLow = null;
26
- e.data.plainNormals = null;
27
- e.data.normalMapNormals = null;
28
- e.data.normalMapVertices = null;
29
- e.data.normalMapVerticesHigh = null;
30
- e.data.normalMapVerticesLow = null;
31
-
32
- _this._segments[e.data.id] = null;
33
- delete _this._segments[e.data.id];
34
-
35
- _this._workerQueue.unshift(this);
36
- _this.check();
37
- };
9
+ super(numWorkers, _programm);
10
+ this._segments = new Map();
11
+ }
38
12
 
39
- this._workerQueue.push(w);
40
- }
13
+ _onMessage(e) {
14
+ this._segments.get(e.data.id)._plainSegmentWorkerCallback(e.data);
41
15
 
42
- this._pendingQueue = [];
43
- }
16
+ e.data.plainVertices = null;
17
+ e.data.plainVerticesHigh = null;
18
+ e.data.plainVerticesLow = null;
19
+ e.data.plainNormals = null;
20
+ e.data.normalMapNormals = null;
21
+ e.data.normalMapVertices = null;
22
+ e.data.normalMapVerticesHigh = null;
23
+ e.data.normalMapVerticesLow = null;
44
24
 
45
- check() {
46
- if (this._pendingQueue.length) {
47
- this.make(this._pendingQueue.pop());
48
- }
25
+ this._segments.delete(e.data.id)
49
26
  }
50
27
 
51
28
  setGeoid(geoid) {
@@ -68,21 +45,19 @@ class PlainSegmentWorker {
68
45
  let rawfile = new Uint8Array(m.rawfile.length);
69
46
  rawfile.set(m.rawfile);
70
47
 
71
- w.postMessage(
72
- {
48
+ w.postMessage({
73
49
  model: model,
74
50
  rawfile: rawfile
75
- },
76
- [rawfile.buffer]
51
+ }, [
52
+ rawfile.buffer
53
+ ]
77
54
  );
78
55
  });
79
56
  } else {
80
57
  this._workerQueue.forEach((w) => {
81
- w.postMessage(
82
- {
83
- model: null
84
- }
85
- );
58
+ w.postMessage({
59
+ model: null
60
+ });
86
61
  });
87
62
  }
88
63
  }
@@ -92,7 +67,7 @@ class PlainSegmentWorker {
92
67
  if (this._workerQueue.length) {
93
68
  let w = this._workerQueue.pop();
94
69
 
95
- this._segments[this._id] = segment;
70
+ this._segments.set(this._id, segment);
96
71
 
97
72
  let params = new Float64Array([
98
73
  this._id++,
@@ -111,12 +86,11 @@ class PlainSegmentWorker {
111
86
  segment.planet._heightFactor
112
87
  ]);
113
88
 
114
- w.postMessage(
115
- {
116
- params: params
117
- },
118
- [params.buffer]
119
- );
89
+ w.postMessage({
90
+ params: params
91
+ }, [
92
+ params.buffer
93
+ ]);
120
94
  } else {
121
95
  this._pendingQueue.push(segment);
122
96
  }