@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,226 +1,230 @@
1
- 'use strict';
2
-
3
- import { N, W, S, E } from '../quadTree/quadTree.js';
4
-
5
- function NewIndexesTypedArray(arr) {
6
- return new Uint32Array(arr);
7
- }
8
-
9
- function createCenterBodyIndexes(size) {
10
-
11
- let indexes = [];
12
-
13
- var i0 = 1,
14
- j0 = 1;
15
-
16
- var i1 = 1,
17
- j1 = 1;
18
-
19
- var ind1, ind2, nr;
20
- for (var i = i0; i < size - 1 - i1; i++) {
21
- for (var j = j0; j < size - j1; j++) {
22
- ind1 = i * size + j;
23
- nr = (i + 1) * size;
24
- ind2 = nr + j;
25
- indexes.push(ind1, ind2);
26
- }
27
- indexes.push(ind2, nr + j0);
28
- }
29
- indexes.push(indexes[indexes.length - 1], size * size - size);
30
-
31
- return NewIndexesTypedArray(indexes);
32
- }
33
-
34
- function createWestNeighborSkirt(size, deltaGr) {
35
- let indexes = [];
36
- var grCount = (size - 1) / deltaGr;
37
- var b = size * size - size;
38
- var k = 0;
39
- for (var i = 0; i < size - 2; i++) {
40
- if (i % grCount === 0) {
41
- k = i;
42
- }
43
- var rind = b - size * i - size + 1,
44
- lind = b - size * k;
45
- indexes.push(lind, rind);
46
- }
47
-
48
- if (deltaGr === (size - 1)) {
49
- indexes.push(size);
50
- indexes.push(0);
51
- }
52
-
53
- return NewIndexesTypedArray(indexes);
54
- }
55
-
56
- function createNorthNeighborSkirt(size, deltaGr) {
57
- let indexes = [];
58
- var grCount = (size - 1) / deltaGr;
59
- var k = 0;
60
- for (var i = 0; i < size - 2; i++) {
61
- if (i % grCount === 0) {
62
- k = i;
63
- }
64
- var rind = size + i + 1,
65
- lind = k;
66
- indexes.push(lind, rind);
67
- }
68
-
69
- if (deltaGr === (size - 1)) {
70
- indexes.push(size - 2);
71
- indexes.push(size - 1);
72
- }
73
-
74
- return NewIndexesTypedArray(indexes);
75
- }
76
-
77
- function createEastNeighborSkirt(size, deltaGr) {
78
- let indexes = [];
79
- var grCount = (size - 1) / deltaGr;
80
- var k = 0;
81
- for (var i = 0; i < size - 2; i++) {
82
- if (i % grCount === 0) {
83
- k = i;
84
- }
85
- var rind = size * (i + 1) + size - 2,
86
- lind = size + size * k - 1;
87
- indexes.push(lind, rind);
88
- }
89
-
90
- if (deltaGr === (size - 1)) {
91
- indexes.push(size * (size - 1) - 1);
92
- indexes.push(size * size - 1);
93
- }
94
-
95
- return NewIndexesTypedArray(indexes);
96
- }
97
-
98
- function createSouthNeighborSkirt(size, deltaGr) {
99
- let indexes = [];
100
- var grCount = (size - 1) / deltaGr;
101
- var k = 0;
102
- var rb = size * (size - 1) - 2;
103
- var lb = size * size - 1;
104
- for (var i = 0; i < size - 2; i++) {
105
- if (i % grCount === 0) {
106
- k = i;
107
- }
108
- var rind = rb - i,
109
- lind = lb - k;
110
- indexes.push(lind, rind);
111
- }
112
-
113
- if (deltaGr === (size - 1)) {
114
- indexes.push(size * size - size + 1);
115
- }
116
- indexes.push(size * size - size);
117
-
118
- return NewIndexesTypedArray(indexes);
119
- }
120
-
121
- function initIndexesBodySkirts(pow) {
122
- var table = [];
123
-
124
- table[N] = [];
125
- table[W] = [];
126
- table[S] = [];
127
- table[E] = [];
128
-
129
- for (var i = 0; i <= pow; i++) {
130
- var d = Math.pow(2, i),
131
- d1 = d + 1;
132
-
133
- table[N][i] = [];
134
- table[W][i] = [];
135
- table[S][i] = [];
136
- table[E][i] = [];
137
-
138
- for (var j = 0; j <= pow; j++) {
139
- var dd = Math.pow(2, j);
140
- table[W][i][j] = createWestNeighborSkirt(d1, dd);
141
- table[N][i][j] = createNorthNeighborSkirt(d1, dd);
142
- table[E][i][j] = createEastNeighborSkirt(d1, dd);
143
- table[S][i][j] = createSouthNeighborSkirt(d1, dd);
144
-
145
- }
146
- }
147
- return table;
148
- }
149
-
150
- function initIndexBodiesTable(pow) {
151
- var table = [];
152
- for (var i = 0; i <= pow; i++) {
153
- var d = Math.pow(2, i);
154
- table[i] = createCenterBodyIndexes(d + 1);
155
- }
156
- return table;
157
- }
158
-
159
- function createTextureCoords(size) {
160
- var texCoords = new Uint16Array((size + 1) * (size + 1) * 2);
161
- let k = 0;
162
- for (var i = 0; i <= size; i++) {
163
- for (var j = 0; j <= size; j++) {
164
- texCoords[k++] = j / size * 0xFFFF;
165
- texCoords[k++] = i / size * 0xFFFF;
166
- }
167
- }
168
- return texCoords;
169
- }
170
-
171
- class SegmentHelper {
172
- constructor(maxGridSize = 0) {
173
- this._maxGridSize = maxGridSize;
174
- }
175
-
176
- get maxGridSize() {
177
- return this._maxGridSize;
178
- }
179
-
180
- init() {
181
- this.centerIndexesTable = initIndexBodiesTable(this._maxGridSize);
182
- this.skirtsIndexesTable = initIndexesBodySkirts(this._maxGridSize);
183
- }
184
-
185
- setMaxGridSize(gridSize) {
186
- this._maxGridSize = gridSize;
187
- this.init();
188
- }
189
-
190
- createSegmentIndexes(size, sidesSizes) {
191
- if (size) {
192
- let c = this.centerIndexesTable[size],
193
- w = this.skirtsIndexesTable[W][size][sidesSizes[W]],
194
- n = this.skirtsIndexesTable[N][size][sidesSizes[N]],
195
- e = this.skirtsIndexesTable[E][size][sidesSizes[E]],
196
- s = this.skirtsIndexesTable[S][size][sidesSizes[S]];
197
-
198
- let indexes = NewIndexesTypedArray(c.length + w.length + n.length + e.length + s.length);
199
-
200
- indexes.set(c, 0);
201
- indexes.set(w, c.length);
202
- indexes.set(n, c.length + w.length);
203
- indexes.set(e, c.length + w.length + n.length);
204
- indexes.set(s, c.length + w.length + n.length + e.length);
205
-
206
- return indexes;
207
- } else {
208
- return NewIndexesTypedArray([0, 2, 1, 3]);
209
- }
210
- }
211
-
212
- initTextureCoordsTable(pow) {
213
- var table = [];
214
- for (var i = 0; i <= pow; i++) {
215
- var d = Math.pow(2, i);
216
- table[i] = createTextureCoords(d);
217
- }
218
- return table;
219
- }
220
- }
221
-
222
- let instance = new SegmentHelper();
223
-
224
- export function getInstance() {
225
- return instance;
1
+ /**
2
+ * @module og/segment/SegmentHelper
3
+ */
4
+
5
+ 'use strict';
6
+
7
+ import { N, W, S, E } from '../quadTree/quadTree.js';
8
+
9
+ function NewIndexesTypedArray(arr) {
10
+ return new Uint32Array(arr);
11
+ }
12
+
13
+ function createCenterBodyIndexes(size) {
14
+
15
+ let indexes = [];
16
+
17
+ var i0 = 1,
18
+ j0 = 1;
19
+
20
+ var i1 = 1,
21
+ j1 = 1;
22
+
23
+ var ind1, ind2, nr;
24
+ for (let i = i0; i < size - 1 - i1; i++) {
25
+ for (let j = j0; j < size - j1; j++) {
26
+ ind1 = i * size + j;
27
+ nr = (i + 1) * size;
28
+ ind2 = nr + j;
29
+ indexes.push(ind1, ind2);
30
+ }
31
+ indexes.push(ind2, nr + j0);
32
+ }
33
+ indexes.push(indexes[indexes.length - 1], size * size - size);
34
+
35
+ return NewIndexesTypedArray(indexes);
36
+ }
37
+
38
+ function createWestNeighborSkirt(size, deltaGr) {
39
+ let indexes = [];
40
+ var grCount = (size - 1) / deltaGr;
41
+ var b = size * size - size;
42
+ var k = 0;
43
+ for (let i = 0; i < size - 2; i++) {
44
+ if (i % grCount === 0) {
45
+ k = i;
46
+ }
47
+ var rind = b - size * i - size + 1,
48
+ lind = b - size * k;
49
+ indexes.push(lind, rind);
50
+ }
51
+
52
+ if (deltaGr === (size - 1)) {
53
+ indexes.push(size);
54
+ indexes.push(0);
55
+ }
56
+
57
+ return NewIndexesTypedArray(indexes);
58
+ }
59
+
60
+ function createNorthNeighborSkirt(size, deltaGr) {
61
+ let indexes = [];
62
+ var grCount = (size - 1) / deltaGr;
63
+ var k = 0;
64
+ for (let i = 0; i < size - 2; i++) {
65
+ if (i % grCount === 0) {
66
+ k = i;
67
+ }
68
+ var rind = size + i + 1,
69
+ lind = k;
70
+ indexes.push(lind, rind);
71
+ }
72
+
73
+ if (deltaGr === (size - 1)) {
74
+ indexes.push(size - 2);
75
+ indexes.push(size - 1);
76
+ }
77
+
78
+ return NewIndexesTypedArray(indexes);
79
+ }
80
+
81
+ function createEastNeighborSkirt(size, deltaGr) {
82
+ let indexes = [];
83
+ var grCount = (size - 1) / deltaGr;
84
+ var k = 0;
85
+ for (let i = 0; i < size - 2; i++) {
86
+ if (i % grCount === 0) {
87
+ k = i;
88
+ }
89
+ var rind = size * (i + 1) + size - 2,
90
+ lind = size + size * k - 1;
91
+ indexes.push(lind, rind);
92
+ }
93
+
94
+ if (deltaGr === (size - 1)) {
95
+ indexes.push(size * (size - 1) - 1);
96
+ indexes.push(size * size - 1);
97
+ }
98
+
99
+ return NewIndexesTypedArray(indexes);
100
+ }
101
+
102
+ function createSouthNeighborSkirt(size, deltaGr) {
103
+ let indexes = [];
104
+ var grCount = (size - 1) / deltaGr;
105
+ var k = 0;
106
+ var rb = size * (size - 1) - 2;
107
+ var lb = size * size - 1;
108
+ for (let i = 0; i < size - 2; i++) {
109
+ if (i % grCount === 0) {
110
+ k = i;
111
+ }
112
+ var rind = rb - i,
113
+ lind = lb - k;
114
+ indexes.push(lind, rind);
115
+ }
116
+
117
+ if (deltaGr === (size - 1)) {
118
+ indexes.push(size * size - size + 1);
119
+ }
120
+ indexes.push(size * size - size);
121
+
122
+ return NewIndexesTypedArray(indexes);
123
+ }
124
+
125
+ function initIndexesBodySkirts(pow) {
126
+ var table = [];
127
+
128
+ table[N] = [];
129
+ table[W] = [];
130
+ table[S] = [];
131
+ table[E] = [];
132
+
133
+ for (let i = 0; i <= pow; i++) {
134
+ var d = Math.pow(2, i),
135
+ d1 = d + 1;
136
+
137
+ table[N][i] = [];
138
+ table[W][i] = [];
139
+ table[S][i] = [];
140
+ table[E][i] = [];
141
+
142
+ for (let j = 0; j <= pow; j++) {
143
+ var dd = Math.pow(2, j);
144
+ table[W][i][j] = createWestNeighborSkirt(d1, dd);
145
+ table[N][i][j] = createNorthNeighborSkirt(d1, dd);
146
+ table[E][i][j] = createEastNeighborSkirt(d1, dd);
147
+ table[S][i][j] = createSouthNeighborSkirt(d1, dd);
148
+
149
+ }
150
+ }
151
+ return table;
152
+ }
153
+
154
+ function initIndexBodiesTable(pow) {
155
+ var table = [];
156
+ for (let i = 0; i <= pow; i++) {
157
+ var d = Math.pow(2, i);
158
+ table[i] = createCenterBodyIndexes(d + 1);
159
+ }
160
+ return table;
161
+ }
162
+
163
+ function createTextureCoords(size) {
164
+ var texCoords = new Uint16Array((size + 1) * (size + 1) * 2);
165
+ let k = 0;
166
+ for (let i = 0; i <= size; i++) {
167
+ for (let j = 0; j <= size; j++) {
168
+ texCoords[k++] = j / size * 0xFFFF;
169
+ texCoords[k++] = i / size * 0xFFFF;
170
+ }
171
+ }
172
+ return texCoords;
173
+ }
174
+
175
+ class SegmentHelper {
176
+ constructor(maxGridSize = 0) {
177
+ this._maxGridSize = maxGridSize;
178
+ }
179
+
180
+ get maxGridSize() {
181
+ return this._maxGridSize;
182
+ }
183
+
184
+ init() {
185
+ this.centerIndexesTable = initIndexBodiesTable(this._maxGridSize);
186
+ this.skirtsIndexesTable = initIndexesBodySkirts(this._maxGridSize);
187
+ }
188
+
189
+ setMaxGridSize(gridSize) {
190
+ this._maxGridSize = gridSize;
191
+ this.init();
192
+ }
193
+
194
+ createSegmentIndexes(size, sidesSizes) {
195
+ if (size) {
196
+ let c = this.centerIndexesTable[size],
197
+ w = this.skirtsIndexesTable[W][size][sidesSizes[W]],
198
+ n = this.skirtsIndexesTable[N][size][sidesSizes[N]],
199
+ e = this.skirtsIndexesTable[E][size][sidesSizes[E]],
200
+ s = this.skirtsIndexesTable[S][size][sidesSizes[S]];
201
+
202
+ let indexes = NewIndexesTypedArray(c.length + w.length + n.length + e.length + s.length);
203
+
204
+ indexes.set(c, 0);
205
+ indexes.set(w, c.length);
206
+ indexes.set(n, c.length + w.length);
207
+ indexes.set(e, c.length + w.length + n.length);
208
+ indexes.set(s, c.length + w.length + n.length + e.length);
209
+
210
+ return indexes;
211
+ } else {
212
+ return NewIndexesTypedArray([0, 2, 1, 3]);
213
+ }
214
+ }
215
+
216
+ initTextureCoordsTable(pow) {
217
+ var table = [];
218
+ for (let i = 0; i <= pow; i++) {
219
+ var d = Math.pow(2, i);
220
+ table[i] = createTextureCoords(d);
221
+ }
222
+ return table;
223
+ }
224
+ }
225
+
226
+ let instance = new SegmentHelper();
227
+
228
+ export function getInstance() {
229
+ return instance;
226
230
  }
@@ -23,7 +23,7 @@ export const COMMON =
23
23
  const float TOP_RADIUS = 6356752.3142451793 + ATMOS_HEIGHT;
24
24
 
25
25
  // Ellipsoid
26
- const vec3 bottomRadii = vec3(6378137.0, 6356752.3142451793, 6378137.0);
26
+ const vec3 bottomRadii = vec3(6378137.0, 6378137.0, 6356752.3142451793);
27
27
  const vec3 topRadii = bottomRadii + ATMOS_HEIGHT;
28
28
 
29
29
  const vec3 SPHERE_TO_ELLIPSOID_SCALE = vec3(BOTTOM_RADIUS) / bottomRadii;
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/billboard
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Program } from '../webgl/Program.js';
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/drawnode
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Program } from "../webgl/Program.js";
@@ -799,30 +795,30 @@ export function drawnode_screen_wl_webgl2Atmos() {
799
795
 
800
796
  blend(diffuseColor, samplerArr[0], tileOffsetArr[0], layerOpacityArr[0]);
801
797
  if( samplerCount == 1 ) {
802
- diffuseColor = mix(diffuseColor * lightWeighting, atmosColor, fadingOpacity) + vec4(spec, 0.0);
798
+ diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
803
799
  return;
804
800
  }
805
801
 
806
802
  blend(diffuseColor, samplerArr[1], tileOffsetArr[1], layerOpacityArr[1]);
807
803
  if( samplerCount == 2 ) {
808
- diffuseColor = mix(diffuseColor * lightWeighting, atmosColor, fadingOpacity) + vec4(spec, 0.0);
804
+ diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
809
805
  return;
810
806
  }
811
807
 
812
808
  blend(diffuseColor, samplerArr[2], tileOffsetArr[2], layerOpacityArr[2]);
813
809
  if( samplerCount == 3 ) {
814
- diffuseColor = mix(diffuseColor * lightWeighting, atmosColor, fadingOpacity) + vec4(spec, 0.0);
810
+ diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
815
811
  return;
816
812
  }
817
813
 
818
814
  blend(diffuseColor, samplerArr[3], tileOffsetArr[3], layerOpacityArr[3]);
819
815
  if( samplerCount == 4 ) {
820
- diffuseColor = mix(diffuseColor * lightWeighting, atmosColor, fadingOpacity) + vec4(spec, 0.0);
816
+ diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
821
817
  return;
822
818
  }
823
819
 
824
820
  blend(diffuseColor, samplerArr[4], tileOffsetArr[4], layerOpacityArr[4]);
825
- diffuseColor = mix(diffuseColor * lightWeighting, atmosColor, fadingOpacity) + vec4(spec, 0.0);
821
+ diffuseColor = mix(diffuseColor * lightWeighting, atmosColor * diffuseColor.a, fadingOpacity) + vec4(spec, 0.0);
826
822
  }`
827
823
  });
828
824
  }
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/drawnode
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Program } from "../webgl/Program.js";
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/label
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Program } from '../webgl/Program.js';
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/pickingMask
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Program } from '../webgl/Program.js';
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/pointCloud
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Program } from '../webgl/Program.js';
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/polyline
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Program } from '../webgl/Program.js';
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/ray
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Program } from '../webgl/Program.js';
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/shaders/skybox
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Program } from '../webgl/Program.js';
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/terrainProvider/EmptyTerrain
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { binarySearchFast } from "../utils/shared.js";
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/utils/FontAtlas
3
- */
4
-
5
1
  'use strict';
6
2
 
7
3
  import { Deferred } from '../Deferred.js';
@@ -18,10 +18,9 @@ export class GeoImageCreator {
18
18
  this._currentFrame = 0;
19
19
  this._queue = [];
20
20
  this._animate = [];
21
- this._initialize();
22
21
  }
23
22
 
24
- _initialize() {
23
+ init() {
25
24
  this._initShaders();
26
25
  this._initBuffers();
27
26
  }
@@ -132,7 +131,7 @@ export class GeoImageCreator {
132
131
  } else {
133
132
  arr = this._queue;
134
133
  }
135
- for (var i = 0; i < arr.length; i++) {
134
+ for (let i = 0; i < arr.length; i++) {
136
135
  if (arr[i].isEqual(geoImage)) {
137
136
  arr.splice(i, 1);
138
137
  return;