@openglobus/og 0.17.0 → 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.
- package/dist/@openglobus/og.esm.js +2 -2
- package/dist/@openglobus/og.esm.js.map +1 -1
- package/dist/@openglobus/og.umd.js +2 -2
- package/dist/@openglobus/og.umd.js.map +1 -1
- package/package.json +1 -1
- package/src/og/Events.js +2 -2
- package/src/og/Globe.js +1 -1
- package/src/og/ImageCanvas.js +2 -2
- package/src/og/LonLat.js +1 -1
- package/src/og/Object3d.js +1 -1
- package/src/og/QueueArray.js +1 -1
- package/src/og/Stack.js +1 -1
- package/src/og/astro/earth.js +3 -3
- package/src/og/camera/Frustum.js +4 -4
- package/src/og/camera/PlanetCamera.js +7 -7
- package/src/og/cons.js +1 -1
- package/src/og/control/DebugInfo.js +3 -3
- package/src/og/control/EarthNavigation.js +6 -13
- package/src/og/control/Lighting.js +1 -1
- package/src/og/control/MouseNavigation.js +1 -1
- package/src/og/control/visibleExtent/Segment.js +2 -2
- package/src/og/ellipsoid/Ellipsoid.js +31 -50
- package/src/og/entity/BillboardHandler.js +3 -3
- package/src/og/entity/EntityCollection.js +7 -7
- package/src/og/entity/GeoObject.js +6 -4
- package/src/og/entity/GeoObjectHandler.js +30 -20
- package/src/og/entity/GeometryHandler.js +15 -15
- package/src/og/entity/LabelHandler.js +10 -10
- package/src/og/entity/LabelWorker.js +1 -1
- package/src/og/entity/PointCloud.js +2 -2
- package/src/og/entity/PointCloudHandler.js +2 -2
- package/src/og/entity/Polyline.js +11 -11
- package/src/og/entity/PolylineHandler.js +2 -2
- package/src/og/entity/RayHandler.js +2 -2
- package/src/og/entity/StripHandler.js +2 -2
- package/src/og/input/KeyboardHandler.js +6 -6
- package/src/og/layer/BaseGeoImage.js +1 -1
- package/src/og/layer/CanvasTiles.js +1 -1
- package/src/og/layer/Vector.js +2 -2
- package/src/og/math/Vec3.js +5 -0
- package/src/og/math.js +3 -3
- package/src/og/mercator.js +1 -1
- package/src/og/quadTree/Node.js +15 -14
- package/src/og/renderer/Renderer.js +5 -5
- package/src/og/scene/BaseNode.js +1 -1
- package/src/og/scene/Planet.js +16 -21
- package/src/og/scene/RenderNode.js +9 -9
- package/src/og/segment/Segment.js +2 -2
- package/src/og/segment/SegmentLonLat.js +1 -1
- package/src/og/segment/segmentHelper.js +12 -12
- package/src/og/shaders/atmos.js +1 -1
- package/src/og/utils/GeoImageCreator.js +1 -1
- package/src/og/utils/NormalMapCreator.js +3 -3
- package/src/og/utils/PlainSegmentWorker.js +9 -9
- package/src/og/utils/TerrainWorker.js +2 -2
- package/src/og/utils/TextureAtlas.js +1 -1
- package/src/og/utils/earcut.js +8 -8
- package/src/og/utils/shared.js +10 -10
- package/src/og/webgl/Framebuffer.js +2 -2
- package/src/og/webgl/Handler.js +1 -1
- package/src/og/webgl/Multisample.js +2 -2
- package/src/og/webgl/Program.js +4 -4
- package/types/ImageCanvas.d.ts +1 -1
- package/types/ellipsoid/Ellipsoid.d.ts +3 -1
- package/types/entity/GeoObject.d.ts +1 -2
- package/types/math/Vec3.d.ts +2 -0
- package/types/scene/Planet.d.ts +1 -2
package/src/og/quadTree/Node.js
CHANGED
|
@@ -76,16 +76,17 @@ class Node {
|
|
|
76
76
|
createChildrenNodes() {
|
|
77
77
|
this.ready = true;
|
|
78
78
|
|
|
79
|
-
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
79
|
+
const p = this.planet;
|
|
80
|
+
const ps = this.segment;
|
|
81
|
+
const ext = ps._extent;
|
|
82
|
+
const z = ps.tileZoom + 1;
|
|
83
|
+
const size_x = ext.getWidth() * 0.5;
|
|
84
|
+
const size_y = ext.getHeight() * 0.5;
|
|
85
|
+
const ne = ext.northEast;
|
|
86
|
+
const sw = ext.southWest;
|
|
87
|
+
const id = this.nodeId * 4 + 1;
|
|
88
|
+
const c = new LonLat(sw.lon + size_x, sw.lat + size_y);
|
|
89
|
+
const nd = this.nodes;
|
|
89
90
|
|
|
90
91
|
nd[NW] = new Node(this.SegmentPrototype, p, NW, this, id, z, new Extent(new LonLat(sw.lon, sw.lat + size_y), new LonLat(sw.lon + size_x, ne.lat)));
|
|
91
92
|
nd[NE] = new Node(this.SegmentPrototype, p, NE, this, id, z, new Extent(c, new LonLat(ne.lon, ne.lat)));
|
|
@@ -333,7 +334,7 @@ class Node {
|
|
|
333
334
|
|
|
334
335
|
var nodes = this.planet._renderedNodes;
|
|
335
336
|
|
|
336
|
-
for (
|
|
337
|
+
for (let i = nodes.length - 1; i >= 0; --i) {
|
|
337
338
|
var ni = nodes[i];
|
|
338
339
|
|
|
339
340
|
var cs = this.getCommonSide(ni);
|
|
@@ -597,7 +598,7 @@ class Node {
|
|
|
597
598
|
tempVerticesHigh = new Float32Array(3 * _vertOrder.length);
|
|
598
599
|
tempVerticesLow = new Float32Array(3 * _vertOrder.length);
|
|
599
600
|
|
|
600
|
-
for (
|
|
601
|
+
for (let i = 0; i < _vertOrder.length; i++) {
|
|
601
602
|
let vi_y = _vertOrder[i].y + t_i0, vi_x = _vertOrder[i].x + t_j0;
|
|
602
603
|
|
|
603
604
|
let vi_x_is = vi_x * gridSize, vi_y_is = vi_y * gridSize;
|
|
@@ -725,7 +726,7 @@ class Node {
|
|
|
725
726
|
if (state === NOTRENDERING || state === RENDERING) {
|
|
726
727
|
this.destroyBranches();
|
|
727
728
|
} else {
|
|
728
|
-
for (
|
|
729
|
+
for (let i = 0; i < this.nodes.length; i++) {
|
|
729
730
|
this.nodes[i] && this.nodes[i].clearTree();
|
|
730
731
|
}
|
|
731
732
|
}
|
|
@@ -763,7 +764,7 @@ class Node {
|
|
|
763
764
|
traverseTree(callback) {
|
|
764
765
|
callback(this);
|
|
765
766
|
if (this.ready) {
|
|
766
|
-
for (
|
|
767
|
+
for (let i = 0; i < this.nodes.length; i++) {
|
|
767
768
|
this.nodes[i].traverseTree(callback);
|
|
768
769
|
}
|
|
769
770
|
}
|
|
@@ -265,7 +265,7 @@ class Renderer {
|
|
|
265
265
|
}
|
|
266
266
|
|
|
267
267
|
removeDepthCallback(id) {
|
|
268
|
-
for (
|
|
268
|
+
for (let i = 0; i < this._depthCallbacks.length; i++) {
|
|
269
269
|
if (id === this._depthCallbacks[i].id) {
|
|
270
270
|
this._depthCallbacks.splice(i, 1);
|
|
271
271
|
break;
|
|
@@ -282,7 +282,7 @@ class Renderer {
|
|
|
282
282
|
}
|
|
283
283
|
|
|
284
284
|
removeDistanceCallback(id) {
|
|
285
|
-
for (
|
|
285
|
+
for (let i = 0; i < this._distanceCallbacks.length; i++) {
|
|
286
286
|
if (id === this._distanceCallbacks[i].id) {
|
|
287
287
|
this._distanceCallbacks.splice(i, 1);
|
|
288
288
|
break;
|
|
@@ -310,7 +310,7 @@ class Renderer {
|
|
|
310
310
|
* @param {Number} id - Handler id to remove.
|
|
311
311
|
*/
|
|
312
312
|
removePickingCallback(id) {
|
|
313
|
-
for (
|
|
313
|
+
for (let i = 0; i < this._pickingCallbacks.length; i++) {
|
|
314
314
|
if (id === this._pickingCallbacks[i].id) {
|
|
315
315
|
this._pickingCallbacks.splice(i, 1);
|
|
316
316
|
break;
|
|
@@ -414,7 +414,7 @@ class Renderer {
|
|
|
414
414
|
* @param {Array.<control.Control>} cArr - Control array.
|
|
415
415
|
*/
|
|
416
416
|
addControls(cArr) {
|
|
417
|
-
for (
|
|
417
|
+
for (let i = 0; i < cArr.length; i++) {
|
|
418
418
|
cArr[i].addTo(this);
|
|
419
419
|
}
|
|
420
420
|
}
|
|
@@ -676,7 +676,7 @@ class Renderer {
|
|
|
676
676
|
* @param {Array.<scene.RenderNode>} nodesArr - Render nodes array.
|
|
677
677
|
*/
|
|
678
678
|
addNodes(nodesArr) {
|
|
679
|
-
for (
|
|
679
|
+
for (let i = 0; i < nodesArr.length; i++) {
|
|
680
680
|
this.addNode(nodesArr[i]);
|
|
681
681
|
}
|
|
682
682
|
}
|
package/src/og/scene/BaseNode.js
CHANGED
package/src/og/scene/Planet.js
CHANGED
|
@@ -206,9 +206,9 @@ export class Planet extends RenderNode {
|
|
|
206
206
|
*/
|
|
207
207
|
this.camera = new PlanetCamera(this, {
|
|
208
208
|
frustums: this._cameraFrustums,
|
|
209
|
-
eye: new Vec3(
|
|
210
|
-
look:
|
|
211
|
-
up:
|
|
209
|
+
eye: new Vec3(25000000, 0, 0),
|
|
210
|
+
look: Vec3.ZERO,
|
|
211
|
+
up: Vec3.NORTH,
|
|
212
212
|
minAltitude: this._minAltitude,
|
|
213
213
|
maxAltitude: this._maxAltitude
|
|
214
214
|
});
|
|
@@ -438,13 +438,8 @@ export class Planet extends RenderNode {
|
|
|
438
438
|
this._atmosphereMaxMinOpacity = new Float32Array([1.0, 0.41]);
|
|
439
439
|
}
|
|
440
440
|
|
|
441
|
-
|
|
442
|
-
|
|
443
|
-
// TODO: fix normal for ellipsoid
|
|
444
|
-
//
|
|
445
|
-
let n = cartesian.normal();
|
|
446
|
-
let t = Vec3.proj_b_to_plane(Vec3.UNIT_Y, n);
|
|
447
|
-
return Quat.getLookRotation(t, n);
|
|
441
|
+
getNorthFrameRotation(cartesian) {
|
|
442
|
+
return this.ellipsoid.getNorthFrameRotation(cartesian);
|
|
448
443
|
}
|
|
449
444
|
|
|
450
445
|
set atmosphereMaxOpacity(opacity) {
|
|
@@ -532,7 +527,7 @@ export class Planet extends RenderNode {
|
|
|
532
527
|
* @param {Array.<control.Control>} cArr - Control array.
|
|
533
528
|
*/
|
|
534
529
|
addControls(cArr) {
|
|
535
|
-
for (
|
|
530
|
+
for (let i = 0; i < cArr.length; i++) {
|
|
536
531
|
this.addControl(cArr[i]);
|
|
537
532
|
}
|
|
538
533
|
}
|
|
@@ -773,15 +768,15 @@ export class Planet extends RenderNode {
|
|
|
773
768
|
|
|
774
769
|
let kk = 0;
|
|
775
770
|
// Initialization indexes buffers cache. It takes about 120mb RAM!
|
|
776
|
-
for (
|
|
771
|
+
for (let i = 0; i <= TABLESIZE; i++) {
|
|
777
772
|
!this._indexesCache[i] && (this._indexesCache[i] = new Array(TABLESIZE));
|
|
778
|
-
for (
|
|
773
|
+
for (let j = 0; j <= TABLESIZE; j++) {
|
|
779
774
|
!this._indexesCache[i][j] && (this._indexesCache[i][j] = new Array(TABLESIZE));
|
|
780
|
-
for (
|
|
775
|
+
for (let k = 0; k <= TABLESIZE; k++) {
|
|
781
776
|
!this._indexesCache[i][j][k] && (this._indexesCache[i][j][k] = new Array(TABLESIZE));
|
|
782
|
-
for (
|
|
777
|
+
for (let m = 0; m <= TABLESIZE; m++) {
|
|
783
778
|
!this._indexesCache[i][j][k][m] && (this._indexesCache[i][j][k][m] = new Array(TABLESIZE));
|
|
784
|
-
for (
|
|
779
|
+
for (let q = 0; q <= TABLESIZE; q++) {
|
|
785
780
|
let ptr = {
|
|
786
781
|
buffer: null
|
|
787
782
|
};
|
|
@@ -1103,7 +1098,7 @@ export class Planet extends RenderNode {
|
|
|
1103
1098
|
this._clearRenderNodesInFrustum();
|
|
1104
1099
|
this._renderedNodes = [];
|
|
1105
1100
|
|
|
1106
|
-
for (
|
|
1101
|
+
for (let i = 0, len = temp.length; i < len; i++) {
|
|
1107
1102
|
var ri = temp[i];
|
|
1108
1103
|
let ht = ri.segment.centerNormal.dot(cam._b);
|
|
1109
1104
|
if (ri.segment.tileZoom === this.maxCurrZoom || ht < HORIZON_TANGENT) {
|
|
@@ -1301,7 +1296,7 @@ export class Planet extends RenderNode {
|
|
|
1301
1296
|
|
|
1302
1297
|
if (sl.length) {
|
|
1303
1298
|
let sli = sl[0];
|
|
1304
|
-
for (
|
|
1299
|
+
for (let i = sli.length - 1; i >= 0; --i) {
|
|
1305
1300
|
let li = sli[i];
|
|
1306
1301
|
if (li._fading && firstPass && li._refreshFadingOpacity()) {
|
|
1307
1302
|
sli.splice(i, 1);
|
|
@@ -1310,7 +1305,7 @@ export class Planet extends RenderNode {
|
|
|
1310
1305
|
}
|
|
1311
1306
|
|
|
1312
1307
|
let isEq = this.terrain.equalizeVertices;
|
|
1313
|
-
i = rn.length;
|
|
1308
|
+
var i = rn.length;
|
|
1314
1309
|
while (i--) {
|
|
1315
1310
|
let s = rn[i].segment;
|
|
1316
1311
|
isEq && s.equalize();
|
|
@@ -1423,7 +1418,7 @@ export class Planet extends RenderNode {
|
|
|
1423
1418
|
|
|
1424
1419
|
if (sl.length) {
|
|
1425
1420
|
let sli = sl[0];
|
|
1426
|
-
for (
|
|
1421
|
+
for (let i = sli.length - 1; i >= 0; --i) {
|
|
1427
1422
|
let li = sli[i];
|
|
1428
1423
|
if (li._fading && firstPass && li._refreshFadingOpacity()) {
|
|
1429
1424
|
sli.splice(i, 1);
|
|
@@ -1432,7 +1427,7 @@ export class Planet extends RenderNode {
|
|
|
1432
1427
|
}
|
|
1433
1428
|
|
|
1434
1429
|
let isEq = this.terrain.equalizeVertices;
|
|
1435
|
-
i = rn.length;
|
|
1430
|
+
var i = rn.length;
|
|
1436
1431
|
while (i--) {
|
|
1437
1432
|
let s = rn[i].segment;
|
|
1438
1433
|
isEq && s.equalize();
|
|
@@ -112,7 +112,7 @@ class RenderNode extends BaseNode {
|
|
|
112
112
|
delete r.renderNodes[n];
|
|
113
113
|
}
|
|
114
114
|
|
|
115
|
-
for (
|
|
115
|
+
for (let i = 0; i < r._renderNodesArr.length; i++) {
|
|
116
116
|
if (r._renderNodesArr[i].isEqual(this)) {
|
|
117
117
|
r._renderNodesArr.splice(i, 1);
|
|
118
118
|
break;
|
|
@@ -224,7 +224,7 @@ class RenderNode extends BaseNode {
|
|
|
224
224
|
}
|
|
225
225
|
}
|
|
226
226
|
|
|
227
|
-
for (
|
|
227
|
+
for (let i = 0; i < this.childNodes.length; i++) {
|
|
228
228
|
this.childNodes[i].setActive(isActive);
|
|
229
229
|
}
|
|
230
230
|
}
|
|
@@ -236,7 +236,7 @@ class RenderNode extends BaseNode {
|
|
|
236
236
|
*/
|
|
237
237
|
setDrawMode(mode) {
|
|
238
238
|
this.drawMode = mode;
|
|
239
|
-
for (
|
|
239
|
+
for (let i = 0; i < this.childNodes.length; i++) {
|
|
240
240
|
this.childNodes[i].setDrawMode(mode);
|
|
241
241
|
}
|
|
242
242
|
}
|
|
@@ -247,7 +247,7 @@ class RenderNode extends BaseNode {
|
|
|
247
247
|
*/
|
|
248
248
|
transformLights() {
|
|
249
249
|
var r = this.renderer;
|
|
250
|
-
for (
|
|
250
|
+
for (let i = 0; i < this._lights.length; i++) {
|
|
251
251
|
var ii = i * 3;
|
|
252
252
|
var tp;
|
|
253
253
|
tp = this._lights[i]._position;
|
|
@@ -256,7 +256,7 @@ class RenderNode extends BaseNode {
|
|
|
256
256
|
this._lightsPositions[ii + 2] = tp.z;
|
|
257
257
|
}
|
|
258
258
|
|
|
259
|
-
// for (
|
|
259
|
+
// for (let i = 0; i < this._lights.length; i++) {
|
|
260
260
|
// var ii = i * 4;
|
|
261
261
|
// var tp;
|
|
262
262
|
// if (this._lights[i].directional) {
|
|
@@ -273,13 +273,13 @@ class RenderNode extends BaseNode {
|
|
|
273
273
|
}
|
|
274
274
|
|
|
275
275
|
updateBillboardsTexCoords() {
|
|
276
|
-
for (
|
|
276
|
+
for (let i = 0; i < this.entityCollections.length; i++) {
|
|
277
277
|
this.entityCollections[i].billboardHandler.refreshTexCoordsArr();
|
|
278
278
|
}
|
|
279
279
|
}
|
|
280
280
|
|
|
281
281
|
updateGeoObjectsTexCoords() {
|
|
282
|
-
for (
|
|
282
|
+
for (let i = 0; i < this.entityCollections.length; i++) {
|
|
283
283
|
this.entityCollections[i].geoObjectHandler.refreshTexCoordsArr();
|
|
284
284
|
}
|
|
285
285
|
}
|
|
@@ -296,7 +296,7 @@ class RenderNode extends BaseNode {
|
|
|
296
296
|
* @private
|
|
297
297
|
*/
|
|
298
298
|
_preDrawNodes() {
|
|
299
|
-
for (
|
|
299
|
+
for (let i = 0; i < this.childNodes.length; i++) {
|
|
300
300
|
if (this.childNodes[i]._isActive) {
|
|
301
301
|
this.childNodes[i]._preDrawNodes();
|
|
302
302
|
}
|
|
@@ -313,7 +313,7 @@ class RenderNode extends BaseNode {
|
|
|
313
313
|
* @private
|
|
314
314
|
*/
|
|
315
315
|
_drawNodes() {
|
|
316
|
-
for (
|
|
316
|
+
for (let i = 0; i < this.childNodes.length; i++) {
|
|
317
317
|
if (this.childNodes[i]._isActive) {
|
|
318
318
|
this.childNodes[i]._drawNodes();
|
|
319
319
|
}
|
|
@@ -817,7 +817,7 @@ class Segment {
|
|
|
817
817
|
*/
|
|
818
818
|
deleteMaterials() {
|
|
819
819
|
var m = this.materials;
|
|
820
|
-
for (
|
|
820
|
+
for (let i = 0; i < m.length; i++) {
|
|
821
821
|
var mi = m[i];
|
|
822
822
|
if (mi) {
|
|
823
823
|
mi.clear();
|
|
@@ -1321,7 +1321,7 @@ class Segment {
|
|
|
1321
1321
|
nmVertsLow = this.normalMapVerticesLow,
|
|
1322
1322
|
nmNorms = this.normalMapNormals;
|
|
1323
1323
|
|
|
1324
|
-
for (
|
|
1324
|
+
for (let k = 0; k < gsgs; k++) {
|
|
1325
1325
|
var j = k % gs,
|
|
1326
1326
|
i = ~~(k / gs);
|
|
1327
1327
|
|
|
@@ -21,8 +21,8 @@ function createCenterBodyIndexes(size) {
|
|
|
21
21
|
j1 = 1;
|
|
22
22
|
|
|
23
23
|
var ind1, ind2, nr;
|
|
24
|
-
for (
|
|
25
|
-
for (
|
|
24
|
+
for (let i = i0; i < size - 1 - i1; i++) {
|
|
25
|
+
for (let j = j0; j < size - j1; j++) {
|
|
26
26
|
ind1 = i * size + j;
|
|
27
27
|
nr = (i + 1) * size;
|
|
28
28
|
ind2 = nr + j;
|
|
@@ -40,7 +40,7 @@ function createWestNeighborSkirt(size, deltaGr) {
|
|
|
40
40
|
var grCount = (size - 1) / deltaGr;
|
|
41
41
|
var b = size * size - size;
|
|
42
42
|
var k = 0;
|
|
43
|
-
for (
|
|
43
|
+
for (let i = 0; i < size - 2; i++) {
|
|
44
44
|
if (i % grCount === 0) {
|
|
45
45
|
k = i;
|
|
46
46
|
}
|
|
@@ -61,7 +61,7 @@ function createNorthNeighborSkirt(size, deltaGr) {
|
|
|
61
61
|
let indexes = [];
|
|
62
62
|
var grCount = (size - 1) / deltaGr;
|
|
63
63
|
var k = 0;
|
|
64
|
-
for (
|
|
64
|
+
for (let i = 0; i < size - 2; i++) {
|
|
65
65
|
if (i % grCount === 0) {
|
|
66
66
|
k = i;
|
|
67
67
|
}
|
|
@@ -82,7 +82,7 @@ function createEastNeighborSkirt(size, deltaGr) {
|
|
|
82
82
|
let indexes = [];
|
|
83
83
|
var grCount = (size - 1) / deltaGr;
|
|
84
84
|
var k = 0;
|
|
85
|
-
for (
|
|
85
|
+
for (let i = 0; i < size - 2; i++) {
|
|
86
86
|
if (i % grCount === 0) {
|
|
87
87
|
k = i;
|
|
88
88
|
}
|
|
@@ -105,7 +105,7 @@ function createSouthNeighborSkirt(size, deltaGr) {
|
|
|
105
105
|
var k = 0;
|
|
106
106
|
var rb = size * (size - 1) - 2;
|
|
107
107
|
var lb = size * size - 1;
|
|
108
|
-
for (
|
|
108
|
+
for (let i = 0; i < size - 2; i++) {
|
|
109
109
|
if (i % grCount === 0) {
|
|
110
110
|
k = i;
|
|
111
111
|
}
|
|
@@ -130,7 +130,7 @@ function initIndexesBodySkirts(pow) {
|
|
|
130
130
|
table[S] = [];
|
|
131
131
|
table[E] = [];
|
|
132
132
|
|
|
133
|
-
for (
|
|
133
|
+
for (let i = 0; i <= pow; i++) {
|
|
134
134
|
var d = Math.pow(2, i),
|
|
135
135
|
d1 = d + 1;
|
|
136
136
|
|
|
@@ -139,7 +139,7 @@ function initIndexesBodySkirts(pow) {
|
|
|
139
139
|
table[S][i] = [];
|
|
140
140
|
table[E][i] = [];
|
|
141
141
|
|
|
142
|
-
for (
|
|
142
|
+
for (let j = 0; j <= pow; j++) {
|
|
143
143
|
var dd = Math.pow(2, j);
|
|
144
144
|
table[W][i][j] = createWestNeighborSkirt(d1, dd);
|
|
145
145
|
table[N][i][j] = createNorthNeighborSkirt(d1, dd);
|
|
@@ -153,7 +153,7 @@ function initIndexesBodySkirts(pow) {
|
|
|
153
153
|
|
|
154
154
|
function initIndexBodiesTable(pow) {
|
|
155
155
|
var table = [];
|
|
156
|
-
for (
|
|
156
|
+
for (let i = 0; i <= pow; i++) {
|
|
157
157
|
var d = Math.pow(2, i);
|
|
158
158
|
table[i] = createCenterBodyIndexes(d + 1);
|
|
159
159
|
}
|
|
@@ -163,8 +163,8 @@ function initIndexBodiesTable(pow) {
|
|
|
163
163
|
function createTextureCoords(size) {
|
|
164
164
|
var texCoords = new Uint16Array((size + 1) * (size + 1) * 2);
|
|
165
165
|
let k = 0;
|
|
166
|
-
for (
|
|
167
|
-
for (
|
|
166
|
+
for (let i = 0; i <= size; i++) {
|
|
167
|
+
for (let j = 0; j <= size; j++) {
|
|
168
168
|
texCoords[k++] = j / size * 0xFFFF;
|
|
169
169
|
texCoords[k++] = i / size * 0xFFFF;
|
|
170
170
|
}
|
|
@@ -215,7 +215,7 @@ class SegmentHelper {
|
|
|
215
215
|
|
|
216
216
|
initTextureCoordsTable(pow) {
|
|
217
217
|
var table = [];
|
|
218
|
-
for (
|
|
218
|
+
for (let i = 0; i <= pow; i++) {
|
|
219
219
|
var d = Math.pow(2, i);
|
|
220
220
|
table[i] = createTextureCoords(d);
|
|
221
221
|
}
|
package/src/og/shaders/atmos.js
CHANGED
|
@@ -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,
|
|
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;
|
|
@@ -122,13 +122,13 @@ export class NormalMapCreator {
|
|
|
122
122
|
this._normalMapVerticesTexture = this._handler.createEmptyTexture_l(this._width, this._height);
|
|
123
123
|
|
|
124
124
|
//create vertices hasharray for different grid size segments from 2^4(16) to 2^7(128)
|
|
125
|
-
for (
|
|
125
|
+
for (let p = this._minTabelSize; p <= this._maxTableSize; p++) {
|
|
126
126
|
var gs = Math.pow(2, p);
|
|
127
127
|
var gs2 = gs / 2;
|
|
128
128
|
var vertices = new Float32Array((gs + 1) * (gs + 1) * 2);
|
|
129
129
|
|
|
130
|
-
for (
|
|
131
|
-
for (
|
|
130
|
+
for (let i = 0; i <= gs; i++) {
|
|
131
|
+
for (let j = 0; j <= gs; j++) {
|
|
132
132
|
let ind = (i * (gs + 1) + j) * 2;
|
|
133
133
|
vertices[ind] = -1 + j / gs2;
|
|
134
134
|
vertices[ind + 1] = -1 + i / gs2;
|
|
@@ -193,7 +193,7 @@ const _programm = `
|
|
|
193
193
|
this.z = z;
|
|
194
194
|
};
|
|
195
195
|
|
|
196
|
-
var
|
|
196
|
+
var geodeticToCartesian = function (lon, lat, heightFactor, res) {
|
|
197
197
|
|
|
198
198
|
let h = getHeightMSL(lon, lat) * heightFactor;
|
|
199
199
|
|
|
@@ -204,14 +204,14 @@ const _programm = `
|
|
|
204
204
|
|
|
205
205
|
let N = A / Math.sqrt(1.0 - E2 * slt * slt);
|
|
206
206
|
let nc = (N + h) * Math.cos(latrad);
|
|
207
|
-
|
|
208
|
-
res.x = nc * Math.
|
|
209
|
-
res.y =
|
|
210
|
-
res.z =
|
|
207
|
+
|
|
208
|
+
res.x = nc * Math.cos(lonrad);
|
|
209
|
+
res.y = nc * Math.sin(lonrad);
|
|
210
|
+
res.z = (N * (1 - E2) + h) * slt;
|
|
211
211
|
};
|
|
212
212
|
|
|
213
|
-
var
|
|
214
|
-
|
|
213
|
+
var geodeticToCartesianInverse = function (lon, lat, heightFactor, res){
|
|
214
|
+
geodeticToCartesian(
|
|
215
215
|
lon * INV_POLE_BY_180,
|
|
216
216
|
INV_PI_BY_360 * Math.atan(Math.exp(lat * PI_BY_POLE)) - INV_PI_BY_180_HALF_PI,
|
|
217
217
|
heightFactor,
|
|
@@ -279,9 +279,9 @@ const _programm = `
|
|
|
279
279
|
let heightFactor = msg.data.params[13];
|
|
280
280
|
|
|
281
281
|
if(msg.data.params[1] === 0.0){
|
|
282
|
-
_projFunc =
|
|
282
|
+
_projFunc = geodeticToCartesianInverse;
|
|
283
283
|
}else{
|
|
284
|
-
_projFunc =
|
|
284
|
+
_projFunc = geodeticToCartesian;
|
|
285
285
|
}
|
|
286
286
|
|
|
287
287
|
let maxFgs = Math.max(fgs, gridSize);
|
|
@@ -232,7 +232,7 @@ const _programm =
|
|
|
232
232
|
normalMapVerticesHigh = new Float32Array(fileGridSize_one_x2 * 3);
|
|
233
233
|
normalMapVerticesLow = new Float32Array(fileGridSize_one_x2 * 3);
|
|
234
234
|
|
|
235
|
-
for (
|
|
235
|
+
for (let k = 0; k < fileGridSize_one_x2; k++) {
|
|
236
236
|
|
|
237
237
|
var j = k % fileGridSize_one,
|
|
238
238
|
i = ~~(k / fileGridSize_one);
|
|
@@ -502,7 +502,7 @@ const _programm =
|
|
|
502
502
|
normalMapVerticesHigh.set(terrainVerticesHigh);
|
|
503
503
|
normalMapVerticesLow.set(terrainVerticesLow);
|
|
504
504
|
|
|
505
|
-
for(
|
|
505
|
+
for (let k = 0; k < gsgs; k++) {
|
|
506
506
|
|
|
507
507
|
var j = k % gs,
|
|
508
508
|
i = ~~(k / gs);
|
|
@@ -168,7 +168,7 @@ class TextureAtlas {
|
|
|
168
168
|
this.clearCanvas();
|
|
169
169
|
|
|
170
170
|
var newNodes = new Map();
|
|
171
|
-
for (
|
|
171
|
+
for (let i = 0; i < im.length; i++) {
|
|
172
172
|
this._completeNode(newNodes, this._btree.insert(im[i]));
|
|
173
173
|
}
|
|
174
174
|
this.nodes = null;
|
package/src/og/utils/earcut.js
CHANGED
|
@@ -45,7 +45,7 @@ function earcut(data, holeIndices, dim) {
|
|
|
45
45
|
minX = maxX = data[0];
|
|
46
46
|
minY = maxY = data[1];
|
|
47
47
|
|
|
48
|
-
for (
|
|
48
|
+
for (let i = dim; i < outerLen; i += dim) {
|
|
49
49
|
x = data[i];
|
|
50
50
|
y = data[i + 1];
|
|
51
51
|
if (x < minX) minX = x;
|
|
@@ -610,7 +610,7 @@ function deviation(data, holeIndices, dim, triangles) {
|
|
|
610
610
|
|
|
611
611
|
var polygonArea = Math.abs(signedArea(data, 0, outerLen, dim));
|
|
612
612
|
if (hasHoles) {
|
|
613
|
-
for (
|
|
613
|
+
for (let i = 0, len = holeIndices.length; i < len; i++) {
|
|
614
614
|
var start = holeIndices[i] * dim;
|
|
615
615
|
var end = i < len - 1 ? holeIndices[i + 1] * dim : data.length;
|
|
616
616
|
polygonArea -= Math.abs(signedArea(data, start, end, dim));
|
|
@@ -618,7 +618,7 @@ function deviation(data, holeIndices, dim, triangles) {
|
|
|
618
618
|
}
|
|
619
619
|
|
|
620
620
|
var trianglesArea = 0;
|
|
621
|
-
for (i = 0; i < triangles.length; i += 3) {
|
|
621
|
+
for (let i = 0; i < triangles.length; i += 3) {
|
|
622
622
|
var a = triangles[i] * dim;
|
|
623
623
|
var b = triangles[i + 1] * dim;
|
|
624
624
|
var c = triangles[i + 2] * dim;
|
|
@@ -633,7 +633,7 @@ function deviation(data, holeIndices, dim, triangles) {
|
|
|
633
633
|
|
|
634
634
|
function signedArea(data, start, end, dim) {
|
|
635
635
|
var sum = 0;
|
|
636
|
-
for (
|
|
636
|
+
for (let i = start, j = end - dim; i < end; i += dim) {
|
|
637
637
|
sum += (data[j] - data[i]) * (data[i + 1] + data[j + 1]);
|
|
638
638
|
j = i;
|
|
639
639
|
}
|
|
@@ -646,9 +646,9 @@ function flatten(data) {
|
|
|
646
646
|
result = { vertices: [], holes: [], dimensions: dim },
|
|
647
647
|
holeIndex = 0;
|
|
648
648
|
|
|
649
|
-
for (
|
|
650
|
-
for (
|
|
651
|
-
for (
|
|
649
|
+
for (let i = 0; i < data.length; i++) {
|
|
650
|
+
for (let j = 0; j < data[i].length; j++) {
|
|
651
|
+
for (let d = 0; d < dim; d++) result.vertices.push(data[i][j][d]);
|
|
652
652
|
}
|
|
653
653
|
if (i > 0) {
|
|
654
654
|
holeIndex += data[i - 1].length;
|
|
@@ -658,4 +658,4 @@ function flatten(data) {
|
|
|
658
658
|
return result;
|
|
659
659
|
}
|
|
660
660
|
|
|
661
|
-
export { earcut, flatten };
|
|
661
|
+
export { earcut, flatten };
|
package/src/og/utils/shared.js
CHANGED
|
@@ -152,7 +152,7 @@ export function parseHTML(htmlStr) {
|
|
|
152
152
|
var p = document.createElement("div");
|
|
153
153
|
p.innerHTML = htmlStr;
|
|
154
154
|
var domArr = [];
|
|
155
|
-
for (
|
|
155
|
+
for (let i = 0; i < p.childNodes.length; i++) {
|
|
156
156
|
domArr.push(p.childNodes[i]);
|
|
157
157
|
p.removeChild(p.childNodes[i]);
|
|
158
158
|
}
|
|
@@ -419,7 +419,7 @@ export function xmlToJson(xml) {
|
|
|
419
419
|
// do attributes
|
|
420
420
|
if (xml.attributes.length > 0) {
|
|
421
421
|
obj["@attributes"] = {};
|
|
422
|
-
for (
|
|
422
|
+
for (let j = 0; j < xml.attributes.length; j++) {
|
|
423
423
|
var attribute = xml.attributes.item(j);
|
|
424
424
|
obj["@attributes"][attribute.nodeName] = attribute.nodeValue;
|
|
425
425
|
}
|
|
@@ -431,7 +431,7 @@ export function xmlToJson(xml) {
|
|
|
431
431
|
|
|
432
432
|
// do children
|
|
433
433
|
if (xml.hasChildNodes()) {
|
|
434
|
-
for (
|
|
434
|
+
for (let i = 0; i < xml.childNodes.length; i++) {
|
|
435
435
|
var item = xml.childNodes.item(i);
|
|
436
436
|
var nodeName = item.nodeName;
|
|
437
437
|
if (typeof obj[nodeName] === "undefined") {
|
|
@@ -511,12 +511,12 @@ export function base64toBlob(base64Data, contentType) {
|
|
|
511
511
|
var slicesCount = Math.ceil(bytesLength / sliceSize);
|
|
512
512
|
var byteArrays = new Array(slicesCount);
|
|
513
513
|
|
|
514
|
-
for (
|
|
514
|
+
for (let sliceIndex = 0; sliceIndex < slicesCount; ++sliceIndex) {
|
|
515
515
|
var begin = sliceIndex * sliceSize;
|
|
516
516
|
var end = Math.min(begin + sliceSize, bytesLength);
|
|
517
517
|
|
|
518
518
|
var bytes = new Array(end - begin);
|
|
519
|
-
for (
|
|
519
|
+
for (let offset = begin, i = 0; offset < end; ++i, ++offset) {
|
|
520
520
|
bytes[i] = byteCharacters[offset].charCodeAt(0);
|
|
521
521
|
}
|
|
522
522
|
byteArrays[sliceIndex] = new Uint8Array(bytes);
|
|
@@ -751,7 +751,7 @@ export function concatArrays(a = [], b) {
|
|
|
751
751
|
if (ArrayBuffer.isView(a)) {
|
|
752
752
|
return concatTypedArrays(a, b);
|
|
753
753
|
} else {
|
|
754
|
-
for (
|
|
754
|
+
for (let i = 0; i < b.length; i++) {
|
|
755
755
|
a.push(b[i]);
|
|
756
756
|
}
|
|
757
757
|
return a;
|
|
@@ -858,8 +858,8 @@ export function getMatrixSubArray(sourceArr, gridSize, i0, j0, size) {
|
|
|
858
858
|
var res = new Float64Array(size_1 * size_1 * 3);
|
|
859
859
|
|
|
860
860
|
var vInd = 0;
|
|
861
|
-
for (
|
|
862
|
-
for (
|
|
861
|
+
for (let i = i0; i < i0size; i++) {
|
|
862
|
+
for (let j = j0; j < j0size; j++) {
|
|
863
863
|
var ind = 3 * (i * (gridSize + 1) + j);
|
|
864
864
|
|
|
865
865
|
res[vInd++] = sourceArr[ind];
|
|
@@ -902,8 +902,8 @@ export function getMatrixSubArrayBoundsExt(
|
|
|
902
902
|
gridSize += 1;
|
|
903
903
|
var vInd = 0,
|
|
904
904
|
nInd = 0;
|
|
905
|
-
for (
|
|
906
|
-
for (
|
|
905
|
+
for (let i = i0; i < i0size; i++) {
|
|
906
|
+
for (let j = j0; j < j0size; j++) {
|
|
907
907
|
let indBy3 = i * gridSize + j,
|
|
908
908
|
ind = 3 * indBy3;
|
|
909
909
|
|