@openglobus/og 0.13.8 → 0.13.12

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 (85) 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 +33 -0
  11. package/src/og/control/GeoImageDragControl.js +102 -75
  12. package/src/og/control/LayerAnimation.js +306 -38
  13. package/src/og/control/LayerSwitcher.js +506 -159
  14. package/src/og/control/Lighting.js +27 -27
  15. package/src/og/control/RulerSwitcher.js +69 -0
  16. package/src/og/control/UIhelpers.js +146 -0
  17. package/src/og/control/index.js +3 -1
  18. package/src/og/control/ruler/RulerScene.js +6 -2
  19. package/src/og/control/visibleExtent/Segment.js +2 -1
  20. package/src/og/ellipsoid/wgs84.js +1 -1
  21. package/src/og/entity/LabelHandler.js +2 -2
  22. package/src/og/entity/LabelWorker.js +36 -54
  23. package/src/og/layer/BaseGeoImage.js +347 -312
  24. package/src/og/layer/CanvasTiles.js +312 -290
  25. package/src/og/layer/GeoImage.js +222 -214
  26. package/src/og/layer/GeoVideo.js +291 -291
  27. package/src/og/layer/Layer.js +71 -30
  28. package/src/og/layer/Material.js +109 -109
  29. package/src/og/layer/Vector.js +1 -0
  30. package/src/og/layer/XYZ.js +20 -12
  31. package/src/og/light/LightSource.js +364 -363
  32. package/src/og/math.js +2 -2
  33. package/src/og/quadTree/Node.js +7 -5
  34. package/src/og/renderer/Renderer.js +1 -1
  35. package/src/og/scene/Planet.js +103 -42
  36. package/src/og/segment/Segment.js +34 -56
  37. package/src/og/segment/Slice.js +1 -1
  38. package/src/og/shaders/drawnode.js +1 -1
  39. package/src/og/terrain/GlobusTerrain.js +31 -20
  40. package/src/og/terrain/MapboxTerrain.js +1 -1
  41. package/src/og/utils/BaseWorker.js +46 -0
  42. package/src/og/utils/GeoImageCreator.js +164 -161
  43. package/src/og/utils/Loader.js +60 -33
  44. package/src/og/utils/NormalMapCreator.js +403 -412
  45. package/src/og/utils/PlainSegmentWorker.js +29 -55
  46. package/src/og/utils/TerrainWorker.js +572 -589
  47. package/src/og/utils/functionComposition.js +13 -0
  48. package/src/og/webgl/Handler.js +42 -41
  49. package/types/Object3d.d.ts +1 -0
  50. package/types/camera/PlanetCamera.d.ts +4 -0
  51. package/types/control/GeoImageDragControl.d.ts +2 -0
  52. package/types/control/LayerAnimation.d.ts +73 -0
  53. package/types/control/LayerSwitcher.d.ts +55 -11
  54. package/types/control/MouseNavigation.d.ts +1 -0
  55. package/types/control/MouseWheelZoomControl.d.ts +1 -0
  56. package/types/control/Sun.d.ts +1 -0
  57. package/types/control/TouchNavigation.d.ts +1 -0
  58. package/types/control/UIhelpers.d.ts +13 -0
  59. package/types/control/index.d.ts +2 -1
  60. package/types/entity/LabelHandler.d.ts +2 -0
  61. package/types/entity/LabelWorker.d.ts +5 -7
  62. package/types/layer/BaseGeoImage.d.ts +9 -1
  63. package/types/layer/CanvasTiles.d.ts +5 -1
  64. package/types/layer/GeoImage.d.ts +1 -0
  65. package/types/layer/GeoTexture2d.d.ts +1 -0
  66. package/types/layer/Layer.d.ts +5 -1
  67. package/types/layer/Vector.d.ts +7 -0
  68. package/types/layer/WMS.d.ts +1 -0
  69. package/types/layer/XYZ.d.ts +8 -6
  70. package/types/math.d.ts +1 -1
  71. package/types/quadTree/EntityCollectionNode.d.ts +7 -0
  72. package/types/quadTree/Node.d.ts +1 -2
  73. package/types/renderer/Renderer.d.ts +1 -1
  74. package/types/renderer/RendererEvents.d.ts +16 -0
  75. package/types/scene/Planet.d.ts +19 -4
  76. package/types/segment/SegmentLonLat.d.ts +2 -0
  77. package/types/terrain/BilTerrain.d.ts +6 -0
  78. package/types/terrain/GlobusTerrain.d.ts +7 -0
  79. package/types/terrain/MapboxTerrain.d.ts +8 -0
  80. package/types/utils/BaseWorker.d.ts +14 -0
  81. package/types/utils/Loader.d.ts +3 -1
  82. package/types/utils/PlainSegmentWorker.d.ts +4 -6
  83. package/types/utils/TerrainWorker.d.ts +4 -6
  84. package/types/utils/functionComposition.d.ts +5 -0
  85. 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
  }