@openglobus/og 0.16.3 → 0.17.0

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 (181) 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 +0 -4
  11. package/src/og/Extent.js +5 -9
  12. package/src/og/Globe.js +92 -55
  13. package/src/og/ImageCanvas.js +12 -5
  14. package/src/og/Lock.js +44 -48
  15. package/src/og/LonLat.js +0 -4
  16. package/src/og/Object3d.js +1 -1
  17. package/src/og/Stack.js +49 -53
  18. package/src/og/astro/earth.js +112 -116
  19. package/src/og/astro/jd.js +514 -518
  20. package/src/og/astro/orbit.js +119 -123
  21. package/src/og/astro/rotation.js +36 -40
  22. package/src/og/bv/Box.js +77 -81
  23. package/src/og/bv/Sphere.js +57 -61
  24. package/src/og/camera/Camera.js +20 -7
  25. package/src/og/camera/PlanetCamera.js +8 -15
  26. package/src/og/control/Atmosphere.js +0 -4
  27. package/src/og/control/Control.js +9 -8
  28. package/src/og/control/DebugInfo.js +0 -4
  29. package/src/og/control/DrawingSwitcher.js +117 -0
  30. package/src/og/control/EarthCoordinates.js +214 -214
  31. package/src/og/control/GeoImageDragControl.js +0 -4
  32. package/src/og/control/KeyboardNavigation.js +0 -4
  33. package/src/og/control/LayerAnimation.js +0 -4
  34. package/src/og/control/LayerSwitcher.js +2 -4
  35. package/src/og/control/Lighting.js +11 -15
  36. package/src/og/control/MouseNavigation.js +0 -4
  37. package/src/og/control/MouseWheelZoomControl.js +0 -4
  38. package/src/og/control/RulerSwitcher.js +0 -4
  39. package/src/og/control/ScaleControl.js +2 -6
  40. package/src/og/control/ShowFps.js +40 -44
  41. package/src/og/control/SimpleNavigation.js +10 -10
  42. package/src/og/control/SimpleSkyBackground.js +0 -4
  43. package/src/og/control/Sun.js +0 -4
  44. package/src/og/control/ToggleWireframe.js +35 -39
  45. package/src/og/control/ZoomControl.js +0 -4
  46. package/src/og/control/drawing/DrawingControl.js +51 -0
  47. package/src/og/control/drawing/LineStringDrawingScene.js +203 -0
  48. package/src/og/control/drawing/PolygonDrawingScene.js +785 -0
  49. package/src/og/control/elevationProfile/ElevationProfile.js +275 -0
  50. package/src/og/control/index.js +5 -1
  51. package/src/og/control/ruler/Ruler.js +0 -4
  52. package/src/og/control/ruler/RulerScene.js +3 -2
  53. package/src/og/control/selection/Selection.js +0 -4
  54. package/src/og/control/selection/SelectionScene.js +2 -4
  55. package/src/og/control/timeline/TimelineControl.js +4 -4
  56. package/src/og/control/timeline/TimelineModel.js +2 -2
  57. package/src/og/control/timeline/TimelineView.js +1 -0
  58. package/src/og/control/visibleExtent/Segment.js +5 -5
  59. package/src/og/control/visibleExtent/drawnode.js +0 -4
  60. package/src/og/ellipsoid/Ellipsoid.js +205 -275
  61. package/src/og/ellipsoid/wgs84.js +0 -4
  62. package/src/og/entity/BaseBillboard.js +375 -379
  63. package/src/og/entity/Billboard.js +0 -4
  64. package/src/og/entity/BillboardHandler.js +0 -4
  65. package/src/og/entity/Entity.js +22 -22
  66. package/src/og/entity/EntityCollection.js +7 -11
  67. package/src/og/entity/GeoObject.js +0 -4
  68. package/src/og/entity/GeoObjectHandler.js +0 -4
  69. package/src/og/entity/Geometry.js +5 -4
  70. package/src/og/entity/GeometryHandler.js +3 -4
  71. package/src/og/entity/Label.js +0 -4
  72. package/src/og/entity/LabelHandler.js +0 -4
  73. package/src/og/entity/PointCloud.js +0 -4
  74. package/src/og/entity/PointCloudHandler.js +122 -126
  75. package/src/og/entity/Polyline.js +4 -6
  76. package/src/og/entity/PolylineHandler.js +104 -108
  77. package/src/og/entity/Ray.js +29 -29
  78. package/src/og/entity/Strip.js +1 -1
  79. package/src/og/index.js +3 -1
  80. package/src/og/input/KeyboardHandler.js +128 -132
  81. package/src/og/input/MouseHandler.js +94 -98
  82. package/src/og/input/TouchHandler.js +59 -63
  83. package/src/og/input/input.js +44 -48
  84. package/src/og/layer/BaseGeoImage.js +5 -8
  85. package/src/og/layer/CanvasTiles.js +0 -4
  86. package/src/og/layer/GeoImage.js +0 -4
  87. package/src/og/layer/GeoTexture2d.js +0 -4
  88. package/src/og/layer/GeoVideo.js +0 -4
  89. package/src/og/layer/KML.js +1 -0
  90. package/src/og/layer/Layer.js +22 -26
  91. package/src/og/layer/Material.js +0 -4
  92. package/src/og/layer/Vector.js +23 -20
  93. package/src/og/layer/WMS.js +182 -186
  94. package/src/og/layer/XYZ.js +0 -4
  95. package/src/og/light/LightSource.js +0 -4
  96. package/src/og/math/Line2.js +28 -32
  97. package/src/og/math/Mat3.js +152 -156
  98. package/src/og/math/Ray.js +0 -4
  99. package/src/og/math/Vec2.js +0 -4
  100. package/src/og/math/Vec3.js +0 -4
  101. package/src/og/math/Vec4.js +0 -4
  102. package/src/og/math/coder.js +104 -104
  103. package/src/og/math.js +39 -7
  104. package/src/og/proj/EPSG3857.js +13 -13
  105. package/src/og/proj/Proj.js +59 -63
  106. package/src/og/quadTree/EPSG4326QuadTreeStrategy.js +1 -0
  107. package/src/og/quadTree/EarthQuadTreeStrategy.js +1 -0
  108. package/src/og/quadTree/EntityCollectionNode.js +12 -16
  109. package/src/og/quadTree/MarsQuadTreeStrategy.js +1 -0
  110. package/src/og/quadTree/QuadTreeStrategy.js +1 -0
  111. package/src/og/quadTree/Wgs84QuadTreeStrategy.js +1 -0
  112. package/src/og/renderer/Renderer.js +109 -22
  113. package/src/og/renderer/RendererEvents.js +0 -4
  114. package/src/og/scene/Axes.js +74 -78
  115. package/src/og/scene/BaseNode.js +0 -4
  116. package/src/og/scene/Planet.js +114 -112
  117. package/src/og/scene/RenderNode.js +11 -3
  118. package/src/og/scene/SkyBox.js +104 -108
  119. package/src/og/segment/Segment.js +8 -4
  120. package/src/og/segment/SegmentLonLat.js +2 -6
  121. package/src/og/segment/segmentHelper.js +229 -225
  122. package/src/og/shaders/billboard.js +0 -4
  123. package/src/og/shaders/drawnode.js +5 -9
  124. package/src/og/shaders/geoObject.js +0 -4
  125. package/src/og/shaders/label.js +0 -4
  126. package/src/og/shaders/pickingMask.js +0 -4
  127. package/src/og/shaders/pointCloud.js +0 -4
  128. package/src/og/shaders/polyline.js +0 -4
  129. package/src/og/shaders/ray.js +0 -4
  130. package/src/og/shaders/skybox.js +0 -4
  131. package/src/og/terrain/EmptyTerrain.js +0 -4
  132. package/src/og/utils/FontAtlas.js +0 -4
  133. package/src/og/utils/GeoImageCreator.js +1 -2
  134. package/src/og/utils/NormalMapCreator.js +8 -9
  135. package/src/og/utils/VectorTileCreator.js +3 -9
  136. package/src/og/utils/shared.js +20 -1
  137. package/src/og/webgl/Framebuffer.js +0 -4
  138. package/src/og/webgl/Handler.js +45 -19
  139. package/src/og/webgl/Multisample.js +0 -4
  140. package/src/og/webgl/Program.js +0 -4
  141. package/src/og/webgl/ProgramController.js +2 -2
  142. package/types/Clock.d.ts +1 -1
  143. package/types/Extent.d.ts +5 -5
  144. package/types/Globe.d.ts +15 -1
  145. package/types/ImageCanvas.d.ts +5 -0
  146. package/types/bv/Box.d.ts +1 -1
  147. package/types/bv/Sphere.d.ts +3 -3
  148. package/types/camera/Camera.d.ts +3 -2
  149. package/types/camera/PlanetCamera.d.ts +4 -4
  150. package/types/control/DrawingSwitcher.d.ts +13 -0
  151. package/types/control/EarthCoordinates.d.ts +1 -1
  152. package/types/control/Lighting.d.ts +8 -8
  153. package/types/control/drawing/DrawingControl.d.ts +14 -0
  154. package/types/control/drawing/LineStringDrawingScene.d.ts +5 -0
  155. package/types/control/drawing/PolygonDrawingScene.d.ts +99 -0
  156. package/types/control/index.d.ts +3 -1
  157. package/types/control/ruler/RulerScene.d.ts +0 -1
  158. package/types/control/selection/SelectionScene.d.ts +0 -1
  159. package/types/ellipsoid/Ellipsoid.d.ts +50 -63
  160. package/types/entity/Entity.d.ts +3 -2
  161. package/types/entity/Geometry.d.ts +5 -0
  162. package/types/entity/Polyline.d.ts +1 -1
  163. package/types/entity/Ray.d.ts +1 -0
  164. package/types/index.d.ts +1 -0
  165. package/types/layer/BaseGeoImage.d.ts +1 -1
  166. package/types/layer/CanvasTiles.d.ts +1 -1
  167. package/types/layer/Layer.d.ts +1 -1
  168. package/types/layer/Vector.d.ts +1 -0
  169. package/types/math.d.ts +7 -0
  170. package/types/renderer/Renderer.d.ts +7 -1
  171. package/types/scene/Axes.d.ts +0 -1
  172. package/types/scene/Planet.d.ts +26 -24
  173. package/types/scene/RenderNode.d.ts +2 -0
  174. package/types/scene/SkyBox.d.ts +0 -1
  175. package/types/segment/Segment.d.ts +3 -2
  176. package/types/segment/SegmentLonLat.d.ts +0 -1
  177. package/types/utils/GeoImageCreator.d.ts +1 -1
  178. package/types/utils/NormalMapCreator.d.ts +1 -1
  179. package/types/utils/VectorTileCreator.d.ts +2 -2
  180. package/types/utils/shared.d.ts +2 -0
  181. 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 (var i = i0; i < size - 1 - i1; i++) {
25
+ for (var 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 (var 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 (var 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 (var 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 (var 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 (var 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 (var 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 (var 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 (var i = 0; i <= size; i++) {
167
+ for (var 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 (var 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
  }
@@ -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
  }
@@ -1,7 +1,3 @@
1
- /**
2
- * @module og/utils/NormalMapCreator
3
- */
4
-
5
1
  "use strict";
6
2
 
7
3
  import { Lock } from "../Lock.js";
@@ -19,7 +15,7 @@ export class NormalMapCreator {
19
15
  this._maxTableSize = options.maxTableSize || 8;
20
16
 
21
17
  this._planet = planet;
22
- this._handler = planet.renderer.handler;
18
+ this._handler = null;
23
19
  this._verticesBufferArray = [];
24
20
  this._indexBufferArray = [];
25
21
  this._positionBuffer = null;
@@ -32,12 +28,15 @@ export class NormalMapCreator {
32
28
  this._queue = new QueueArray(1024);
33
29
 
34
30
  this._lock = new Lock();
35
-
36
- this._init();
37
31
  }
38
32
 
39
- _init() {
40
- var isWebkit = false; //('WebkitAppearance' in document.documentElement.style) && !/^((?!chrome).)*safari/i.test(navigator.userAgent);
33
+ init() {
34
+
35
+ this._maxTableSize = this._planet._maxGridSize || 8;
36
+
37
+ this._handler = this._planet.renderer.handler;
38
+
39
+ let isWebkit = false; //('WebkitAppearance' in document.documentElement.style) && !/^((?!chrome).)*safari/i.test(navigator.userAgent);
41
40
 
42
41
  /*==================================================================================
43
42
  * http://www.sunsetlakesoftware.com/2013/10/21/optimizing-gaussian-blurs-mobile-gpu