@openglobus/og 0.13.12 → 0.14.2
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/README.md +1 -4
- package/css/og.css +1 -1
- package/dist/@openglobus/og.css +1 -1
- 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 +2 -2
- package/src/og/Globe.js +14 -4
- package/src/og/camera/Camera.js +7 -7
- package/src/og/camera/PlanetCamera.js +1 -1
- package/src/og/control/LayerSwitcher.js +48 -31
- package/src/og/control/MouseNavigation.js +2 -2
- package/src/og/control/ScaleControl.js +30 -10
- package/src/og/control/SimpleSkyBackground.js +184 -0
- package/src/og/control/Sun.js +3 -2
- package/src/og/ellipsoid/Ellipsoid.js +119 -92
- package/src/og/ellipsoid/wgs84.js +13 -13
- package/src/og/entity/Entity.js +3 -3
- package/src/og/entity/GeometryHandler.js +1341 -1337
- package/src/og/entity/Polyline.js +0 -16
- package/src/og/entity/Ray.js +0 -10
- package/src/og/entity/RayHandler.js +3 -44
- package/src/og/entity/Strip.js +1 -6
- package/src/og/index.js +106 -95
- package/src/og/layer/GeoVideo.js +1 -0
- package/src/og/layer/Layer.js +62 -3
- package/src/og/layer/XYZ.js +4 -3
- package/src/og/math/Line3.js +140 -139
- package/src/og/math/Plane.js +118 -117
- package/src/og/math/Ray.js +242 -239
- package/src/og/math/Vec3.js +56 -37
- package/src/og/math/Vec4.js +3 -4
- package/src/og/math.js +21 -21
- package/src/og/quadTree/EarthQuadTreeStrategy.js +29 -0
- package/src/og/quadTree/MarsQuadTreeStrategy.js +27 -0
- package/src/og/quadTree/Node.js +55 -218
- package/src/og/quadTree/QuadTreeStrategy.js +93 -0
- package/src/og/quadTree/Wgs84QuadTreeStrategy.js +26 -0
- package/src/og/renderer/Renderer.js +13 -12
- package/src/og/renderer/RendererEvents.js +1065 -1065
- package/src/og/scene/Planet.js +84 -280
- package/src/og/segment/Segment.js +18 -25
- package/src/og/segment/SegmentLonLat.js +34 -31
- package/src/og/segment/SegmentLonLatWgs84.js +41 -0
- package/src/og/shaders/ray.js +13 -6
- package/src/og/shaders/toneMapping.js +5 -5
- package/src/og/terrain/GlobusTerrain.js +3 -2
- package/src/og/terrain/MapboxTerrain.js +231 -52
- package/src/og/utils/quadTreeType.js +11 -0
- package/src/og/utils/shared.js +942 -942
- package/src/og/webgl/Handler.js +22 -9
- package/types/Globe.d.ts +7 -0
- package/types/camera/Camera.d.ts +3 -3
- package/types/camera/PlanetCamera.d.ts +1 -1
- package/types/control/LayerSwitcher.d.ts +1 -1
- package/types/control/ScaleControl.d.ts +2 -1
- package/types/control/SimpleSkyBackground.d.ts +11 -0
- package/types/control/Sun.d.ts +2 -1
- package/types/ellipsoid/Ellipsoid.d.ts +3 -2
- package/types/entity/Ray.d.ts +0 -3
- package/types/entity/RayHandler.d.ts +0 -4
- package/types/index.d.ts +6 -1
- package/types/layer/Layer.d.ts +8 -0
- package/types/math/Vec3.d.ts +19 -16
- package/types/math/Vec4.d.ts +2 -3
- package/types/math.d.ts +20 -20
- package/types/quadTree/EarthQuadTreeStrategy.d.ts +3 -0
- package/types/quadTree/MarsQuadTreeStrategy.d.ts +3 -0
- package/types/quadTree/Node.d.ts +0 -1
- package/types/quadTree/QuadTreeStrategy.d.ts +21 -0
- package/types/quadTree/Wgs84QuadTreeStrategy.d.ts +3 -0
- package/types/renderer/Renderer.d.ts +1 -1
- package/types/scene/Planet.d.ts +6 -24
- package/types/segment/Segment.d.ts +4 -4
- package/types/segment/SegmentLonLat.d.ts +6 -2
- package/types/segment/SegmentLonLatWgs84.d.ts +4 -0
- package/types/terrain/MapboxTerrain.d.ts +2 -1
- package/types/utils/quadTreeType.d.ts +8 -0
- package/types/webgl/Handler.d.ts +4 -1
|
@@ -14,6 +14,10 @@ import * as segmentHelper from "../segment/segmentHelper.js";
|
|
|
14
14
|
import { getMatrixSubArray } from "../utils/shared.js";
|
|
15
15
|
import { Slice } from "./Slice.js";
|
|
16
16
|
|
|
17
|
+
export const TILEGROUP_COMMON = 0;
|
|
18
|
+
export const TILEGROUP_NORTH = 1;
|
|
19
|
+
export const TILEGROUP_SOUTH = 2;
|
|
20
|
+
|
|
17
21
|
var _tempHigh = new Vec3();
|
|
18
22
|
var _tempLow = new Vec3();
|
|
19
23
|
|
|
@@ -57,7 +61,7 @@ class Segment {
|
|
|
57
61
|
constructor(node, planet, tileZoom, extent) {
|
|
58
62
|
this.isPole = false;
|
|
59
63
|
|
|
60
|
-
this._tileGroup =
|
|
64
|
+
this._tileGroup = TILEGROUP_COMMON;
|
|
61
65
|
|
|
62
66
|
this._projection = EPSG3857;
|
|
63
67
|
|
|
@@ -246,6 +250,10 @@ class Segment {
|
|
|
246
250
|
this.plainProcessing = false;
|
|
247
251
|
}
|
|
248
252
|
|
|
253
|
+
checkZoom() {
|
|
254
|
+
return this.tileZoom < this.planet.terrain._maxNodeZoom;
|
|
255
|
+
}
|
|
256
|
+
|
|
249
257
|
/**
|
|
250
258
|
* Returns entity terrain point.
|
|
251
259
|
* @public
|
|
@@ -890,19 +898,10 @@ class Segment {
|
|
|
890
898
|
this.deleteElevations();
|
|
891
899
|
}
|
|
892
900
|
|
|
893
|
-
/**
|
|
894
|
-
* Removes cache records.
|
|
895
|
-
*/
|
|
896
|
-
_freeCache() {
|
|
897
|
-
this.planet._quadTreeNodesCacheMerc[this.tileIndex] = null;
|
|
898
|
-
delete this.planet._quadTreeNodesCacheMerc[this.tileIndex];
|
|
899
|
-
}
|
|
900
|
-
|
|
901
901
|
/**
|
|
902
902
|
* Clear and destroy all segment data.
|
|
903
903
|
*/
|
|
904
904
|
destroySegment() {
|
|
905
|
-
this._freeCache();
|
|
906
905
|
|
|
907
906
|
this.clearSegment();
|
|
908
907
|
|
|
@@ -1206,7 +1205,9 @@ class Segment {
|
|
|
1206
1205
|
}
|
|
1207
1206
|
|
|
1208
1207
|
_assignTileIndexes() {
|
|
1209
|
-
|
|
1208
|
+
|
|
1209
|
+
this._tileGroup = TILEGROUP_COMMON;
|
|
1210
|
+
|
|
1210
1211
|
var tileZoom = this.tileZoom;
|
|
1211
1212
|
var extent = this._extent;
|
|
1212
1213
|
var pole = mercator.POLE;
|
|
@@ -1224,25 +1225,17 @@ class Segment {
|
|
|
1224
1225
|
this.tileYS = this.tileY + 1;
|
|
1225
1226
|
|
|
1226
1227
|
this.tileIndex = Layer.getTileIndex(this.tileX, this.tileY, tileZoom);
|
|
1227
|
-
this.planet._quadTreeNodesCacheMerc[this.tileIndex] = this.node;
|
|
1228
1228
|
}
|
|
1229
1229
|
|
|
1230
1230
|
initialize() {
|
|
1231
1231
|
var p = this.planet;
|
|
1232
1232
|
var n = this.node;
|
|
1233
1233
|
|
|
1234
|
-
|
|
1235
|
-
|
|
1236
|
-
n.sideSize[2] =
|
|
1237
|
-
n.sideSize[3] =
|
|
1238
|
-
this.gridSize =
|
|
1239
|
-
p.terrain.gridSizeByZoom[this.tileZoom] || p.terrain.plainGridSize;
|
|
1234
|
+
this.gridSize =
|
|
1235
|
+
p.terrain.gridSizeByZoom[this.tileZoom] || p.terrain.plainGridSize;
|
|
1240
1236
|
|
|
1241
|
-
n.sideSizeLog2[0] =
|
|
1242
|
-
|
|
1243
|
-
n.sideSizeLog2[2] =
|
|
1244
|
-
n.sideSizeLog2[3] =
|
|
1245
|
-
Math.log2(p.terrain.gridSizeByZoom[this.tileZoom] || p.terrain.plainGridSize);
|
|
1237
|
+
n.sideSizeLog2[0] = n.sideSizeLog2[1] = n.sideSizeLog2[2] = n.sideSizeLog2[3] =
|
|
1238
|
+
Math.log2(this.gridSize);
|
|
1246
1239
|
|
|
1247
1240
|
if (this.tileZoom <= p.terrain.maxZoom) {
|
|
1248
1241
|
var nmc = this.planet._normalMapCreator;
|
|
@@ -1628,8 +1621,8 @@ class Segment {
|
|
|
1628
1621
|
}
|
|
1629
1622
|
|
|
1630
1623
|
_getIndexBuffer() {
|
|
1631
|
-
|
|
1632
|
-
|
|
1624
|
+
let s = this.node.sideSizeLog2;
|
|
1625
|
+
let cache = this.planet._indexesCache[Math.log2(this.gridSize)][s[0]][s[1]][s[2]][s[3]];
|
|
1633
1626
|
if (!cache.buffer) {
|
|
1634
1627
|
let indexes = segmentHelper.getInstance().createSegmentIndexes(Math.log2(this.gridSize), [s[0], s[1], s[2], s[3]]);
|
|
1635
1628
|
cache.buffer = this.planet.renderer.handler.createElementArrayBuffer(indexes, 1);
|
|
@@ -7,11 +7,10 @@ import { Vec3 } from "../math/Vec3.js";
|
|
|
7
7
|
import * as mercator from "../mercator.js";
|
|
8
8
|
import { EPSG4326 } from "../proj/EPSG4326.js";
|
|
9
9
|
import * as quadTree from "../quadTree/quadTree.js";
|
|
10
|
-
import { Segment } from "./Segment.js";
|
|
10
|
+
import { Segment, TILEGROUP_NORTH, TILEGROUP_SOUTH } from "./Segment.js";
|
|
11
11
|
|
|
12
|
-
const
|
|
13
|
-
const
|
|
14
|
-
const _pieceSize = _heightLat / Math.pow(2, _maxPoleZoom);
|
|
12
|
+
const MAX_POLE_ZOOM = 7;
|
|
13
|
+
export const POLE_PIECE_SIZE = (90.0 - mercator.MAX_LAT) / Math.pow(2, MAX_POLE_ZOOM);
|
|
15
14
|
|
|
16
15
|
let _tempHigh = new Vec3(),
|
|
17
16
|
_tempLow = new Vec3();
|
|
@@ -35,16 +34,19 @@ class SegmentLonLat extends Segment {
|
|
|
35
34
|
constructor(node, planet, tileZoom, extent) {
|
|
36
35
|
super(node, planet, tileZoom, extent);
|
|
37
36
|
|
|
38
|
-
// TODO:
|
|
39
|
-
// be carefull with functions in constructor _assignTileIndexes
|
|
40
|
-
// this._isNorth = false;
|
|
41
|
-
|
|
42
37
|
this._projection = EPSG4326;
|
|
43
38
|
|
|
44
39
|
this._extentMerc = new Extent(
|
|
45
40
|
extent.southWest.forwardMercatorEPS01(),
|
|
46
41
|
extent.northEast.forwardMercatorEPS01()
|
|
47
42
|
);
|
|
43
|
+
|
|
44
|
+
if (this._extent.northEast.lat > 0) {
|
|
45
|
+
this._isNorth = true;
|
|
46
|
+
} else {
|
|
47
|
+
this._isNorth = false;
|
|
48
|
+
}
|
|
49
|
+
|
|
48
50
|
this.isPole = true;
|
|
49
51
|
}
|
|
50
52
|
|
|
@@ -64,56 +66,56 @@ class SegmentLonLat extends Segment {
|
|
|
64
66
|
return xyz.length() - res.length();
|
|
65
67
|
}
|
|
66
68
|
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
var lat = this._extent.northEast.lat;
|
|
69
|
+
_getMaxZoom() {
|
|
70
|
+
let maxPoleZoom = 0;
|
|
70
71
|
if (this._isNorth) {
|
|
71
72
|
//north pole limits
|
|
72
|
-
let Yz = Math.floor((90.0 - lat) /
|
|
73
|
+
let Yz = Math.floor((90.0 - this._extent.northEast.lat) / POLE_PIECE_SIZE);
|
|
73
74
|
maxPoleZoom = Math.floor(Yz / 16) + 7;
|
|
74
75
|
} else {
|
|
75
76
|
//south pole limits
|
|
76
|
-
let Yz = Math.floor((mercator.MIN_LAT - lat) /
|
|
77
|
+
let Yz = Math.floor((mercator.MIN_LAT - this._extent.northEast.lat) / POLE_PIECE_SIZE);
|
|
77
78
|
maxPoleZoom = 12 - Math.floor(Yz / 16);
|
|
78
79
|
}
|
|
79
|
-
return
|
|
80
|
-
|
|
81
|
-
|
|
80
|
+
return maxPoleZoom;
|
|
81
|
+
}
|
|
82
|
+
|
|
83
|
+
checkZoom() {
|
|
84
|
+
return super.checkZoom() && this.tileZoom <= this._getMaxZoom();
|
|
82
85
|
}
|
|
83
86
|
|
|
84
87
|
_assignTileIndexes() {
|
|
85
|
-
|
|
86
|
-
|
|
88
|
+
this._assignTileXIndexes(this._extent);
|
|
89
|
+
this._assignTileYIndexes(this._extent);
|
|
90
|
+
this.tileIndex = Layer.getTileIndex(this.tileX, this.tileY, this.tileZoom);
|
|
91
|
+
}
|
|
87
92
|
|
|
93
|
+
_assignTileXIndexes(extent) {
|
|
88
94
|
this.tileX = Math.round(
|
|
89
95
|
Math.abs(-180.0 - extent.southWest.lon) / (extent.northEast.lon - extent.southWest.lon)
|
|
90
96
|
);
|
|
91
97
|
|
|
92
|
-
|
|
98
|
+
let p2 = 1 << this.tileZoom;
|
|
99
|
+
this.tileXE = (this.tileX + 1) % p2;
|
|
100
|
+
this.tileXW = (p2 + this.tileX - 1) % p2;
|
|
101
|
+
}
|
|
93
102
|
|
|
103
|
+
_assignTileYIndexes(extent) {
|
|
104
|
+
var lat = extent.northEast.lat;
|
|
94
105
|
if (lat > 0) {
|
|
95
|
-
|
|
96
|
-
this._isNorth = true;
|
|
97
|
-
this._tileGroup = 1;
|
|
106
|
+
this._tileGroup = TILEGROUP_NORTH;
|
|
98
107
|
this.tileY = Math.round((90.0 - lat) / (extent.northEast.lat - extent.southWest.lat));
|
|
99
108
|
} else {
|
|
100
|
-
|
|
101
|
-
this._tileGroup = 2;
|
|
109
|
+
this._tileGroup = TILEGROUP_SOUTH;
|
|
102
110
|
this.tileY = Math.round(
|
|
103
111
|
(mercator.MIN_LAT - lat) / (extent.northEast.lat - extent.southWest.lat)
|
|
104
112
|
);
|
|
105
113
|
}
|
|
106
|
-
|
|
107
|
-
var p2 = 1 << tileZoom;
|
|
108
|
-
this.tileXE = (this.tileX + 1) % p2;
|
|
109
|
-
this.tileXW = (p2 + this.tileX - 1) % p2;
|
|
110
|
-
|
|
111
114
|
this.tileYN = this.tileY - 1;
|
|
112
115
|
this.tileYS = this.tileY + 1;
|
|
113
|
-
|
|
114
|
-
this.tileIndex = Layer.getTileIndex(this.tileX, this.tileY, tileZoom);
|
|
115
116
|
}
|
|
116
117
|
|
|
118
|
+
|
|
117
119
|
_createPlainVertices() {
|
|
118
120
|
var gridSize = this.planet.terrain.gridSizeByZoom[this.tileZoom];
|
|
119
121
|
|
|
@@ -292,4 +294,5 @@ class SegmentLonLat extends Segment {
|
|
|
292
294
|
//empty for a time
|
|
293
295
|
}
|
|
294
296
|
}
|
|
297
|
+
|
|
295
298
|
export { SegmentLonLat };
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
|
|
3
|
+
import { POLE_PIECE_SIZE, SegmentLonLat } from "./SegmentLonLat.js";
|
|
4
|
+
import { Segment, TILEGROUP_COMMON } from "./Segment.js";
|
|
5
|
+
import * as mercator from "../mercator.js";
|
|
6
|
+
|
|
7
|
+
export class SegmentLonLatWgs84 extends SegmentLonLat {
|
|
8
|
+
constructor(node, planet, tileZoom, extent) {
|
|
9
|
+
super(node, planet, tileZoom, extent);
|
|
10
|
+
this.isPole = false;
|
|
11
|
+
this._tileGroup = TILEGROUP_COMMON;
|
|
12
|
+
}
|
|
13
|
+
|
|
14
|
+
_getMaxZoom() {
|
|
15
|
+
return 150;
|
|
16
|
+
// let lat = 0;
|
|
17
|
+
// if (this._isNorth) {
|
|
18
|
+
// lat = this._extent.northEast.lat;
|
|
19
|
+
// } else {
|
|
20
|
+
// lat = Math.abs(this._extent.southWest.lat);
|
|
21
|
+
// }
|
|
22
|
+
// let Yz = Math.floor((90 - lat) / POLE_PIECE_SIZE);
|
|
23
|
+
// return Math.floor(Yz / 16) + 7;
|
|
24
|
+
}
|
|
25
|
+
|
|
26
|
+
_assignTileYIndexes(extent) {
|
|
27
|
+
this.tileY = Math.round((90.0 - extent.northEast.lat) / (extent.northEast.lat - extent.southWest.lat));
|
|
28
|
+
this.tileYN = this.tileY - 1;
|
|
29
|
+
this.tileYS = this.tileY + 1;
|
|
30
|
+
}
|
|
31
|
+
|
|
32
|
+
_assignTileXIndexes(extent) {
|
|
33
|
+
this.tileX = Math.round(
|
|
34
|
+
Math.abs(-180.0 - extent.southWest.lon) / (extent.northEast.lon - extent.southWest.lon)
|
|
35
|
+
);
|
|
36
|
+
|
|
37
|
+
let p2 = (1 << this.tileZoom) * 2;
|
|
38
|
+
this.tileXE = (this.tileX + 1) % p2;
|
|
39
|
+
this.tileXW = (p2 + this.tileX - 1) % p2;
|
|
40
|
+
}
|
|
41
|
+
}
|
package/src/og/shaders/ray.js
CHANGED
|
@@ -22,7 +22,6 @@ export function rayScreen() {
|
|
|
22
22
|
a_startPosLow: "vec3",
|
|
23
23
|
a_endPosHigh: "vec3",
|
|
24
24
|
a_endPosLow: "vec3",
|
|
25
|
-
a_length: "float",
|
|
26
25
|
a_thickness: "float",
|
|
27
26
|
a_rgba: "vec4"
|
|
28
27
|
},
|
|
@@ -34,7 +33,6 @@ export function rayScreen() {
|
|
|
34
33
|
attribute vec3 a_endPosHigh;
|
|
35
34
|
attribute vec3 a_endPosLow;
|
|
36
35
|
attribute float a_thickness;
|
|
37
|
-
attribute float a_length;
|
|
38
36
|
attribute vec4 a_rgba;
|
|
39
37
|
|
|
40
38
|
varying vec4 v_rgba;
|
|
@@ -53,8 +51,9 @@ export function rayScreen() {
|
|
|
53
51
|
vec3 camPos = eyePositionHigh + eyePositionLow;
|
|
54
52
|
|
|
55
53
|
vec3 startPos = a_startPosHigh + a_startPosLow;
|
|
54
|
+
float length = length((a_endPosHigh + a_endPosLow) - startPos);
|
|
56
55
|
vec3 direction = normalize((a_endPosHigh + a_endPosLow) - startPos);
|
|
57
|
-
vec3 vertPos = startPos + a_vertices.y * direction *
|
|
56
|
+
vec3 vertPos = startPos + a_vertices.y * direction * length;
|
|
58
57
|
|
|
59
58
|
vec3 look = vertPos - camPos;
|
|
60
59
|
vec3 up = normalize(direction);
|
|
@@ -62,10 +61,18 @@ export function rayScreen() {
|
|
|
62
61
|
|
|
63
62
|
float dist = dot(camPos - vertPos, vec3(viewMatrix[0][2], viewMatrix[1][2], viewMatrix[2][2]));
|
|
64
63
|
float focalSize = 2.0 * dist * resolution;
|
|
65
|
-
vec3 rr = right * a_thickness * focalSize * a_vertices.x
|
|
64
|
+
vec3 rr = right * a_thickness * focalSize * a_vertices.x;
|
|
66
65
|
|
|
67
|
-
vec3 highDiff =
|
|
68
|
-
vec3 lowDiff =
|
|
66
|
+
vec3 highDiff = -eyePositionHigh;
|
|
67
|
+
vec3 lowDiff = rr - eyePositionLow;
|
|
68
|
+
|
|
69
|
+
if(a_vertices.y == 0.0){
|
|
70
|
+
highDiff += a_startPosHigh;
|
|
71
|
+
lowDiff += a_startPosLow;
|
|
72
|
+
}else{
|
|
73
|
+
highDiff += a_endPosHigh;
|
|
74
|
+
lowDiff += a_endPosLow;
|
|
75
|
+
}
|
|
69
76
|
|
|
70
77
|
mat4 viewMatrixRTE = viewMatrix;
|
|
71
78
|
viewMatrixRTE[3] = vec4(0.0, 0.0, 0.0, 1.0);
|
|
@@ -75,16 +75,16 @@ export function toneMapping() {
|
|
|
75
75
|
layout(location = 0) out vec4 fragColor;
|
|
76
76
|
|
|
77
77
|
void main(void) {
|
|
78
|
-
|
|
78
|
+
vec4 hdrColor = texture(hdrBuffer, tc).rgba;
|
|
79
79
|
|
|
80
80
|
float oneByGamma = gamma / gamma;
|
|
81
81
|
float oneByWhitePoint = whitepoint / whitepoint;
|
|
82
|
-
vec3 mapped = ReinhardToneMapping2(hdrColor) * oneByGamma * oneByWhitePoint;
|
|
83
|
-
//vec3 mapped = ACESFilmicToneMapping(hdrColor) * oneByGamma * oneByWhitePoint;
|
|
82
|
+
vec3 mapped = ReinhardToneMapping2(hdrColor.rgb) * oneByGamma * oneByWhitePoint;
|
|
83
|
+
//vec3 mapped = ACESFilmicToneMapping(hdrColor.rgb) * oneByGamma * oneByWhitePoint;
|
|
84
84
|
|
|
85
85
|
mapped = pow(mapped, vec3(1.0 / gamma));
|
|
86
|
-
|
|
87
|
-
fragColor = vec4(mapped,
|
|
86
|
+
|
|
87
|
+
fragColor = vec4(mapped, hdrColor.a);
|
|
88
88
|
}`
|
|
89
89
|
});
|
|
90
90
|
}
|
|
@@ -369,7 +369,8 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
369
369
|
let heights = this._createHeights(response.data,
|
|
370
370
|
segment.tileIndex,
|
|
371
371
|
segment.tileX, segment.tileY, segment.tileZoom,
|
|
372
|
-
segment.getExtent()
|
|
372
|
+
segment.getExtent(),
|
|
373
|
+
segment.tileZoom === this.maxZoom
|
|
373
374
|
);
|
|
374
375
|
|
|
375
376
|
this._elevationCache[segment.tileIndex] = {
|
|
@@ -399,7 +400,7 @@ class GlobusTerrain extends EmptyTerrain {
|
|
|
399
400
|
|
|
400
401
|
_getSubdomain() {
|
|
401
402
|
this._requestCount++;
|
|
402
|
-
return
|
|
403
|
+
return this._s[Math.floor(this._requestCount % (this._requestsPeerSubdomian * this._s.length) / this._requestsPeerSubdomian)];
|
|
403
404
|
}
|
|
404
405
|
|
|
405
406
|
_buildURL(x, y, z) {
|