bruce-cesium 2.4.8 → 2.4.9
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/bruce-cesium.es5.js +212 -80
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +211 -79
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/tile-render-engine.js +121 -41
- package/dist/lib/rendering/tile-render-engine.js.map +1 -1
- package/dist/lib/rendering/view-render-engine.js +81 -37
- package/dist/lib/rendering/view-render-engine.js.map +1 -1
- package/dist/lib/utils/view-utils.js +9 -0
- package/dist/lib/utils/view-utils.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/package.json +1 -1
package/dist/bruce-cesium.umd.js
CHANGED
|
@@ -9611,6 +9611,26 @@
|
|
|
9611
9611
|
MenuItemCreator.RenderBookmarkItems = RenderBookmarkItems;
|
|
9612
9612
|
})(exports.MenuItemCreator || (exports.MenuItemCreator = {}));
|
|
9613
9613
|
|
|
9614
|
+
// Used to track if a current in-progress render is the latest.
|
|
9615
|
+
// If we're midway through an async function that is rendering 10 imageries and this changes, then we stop the function.
|
|
9616
|
+
var ITERATION_KEY = "nextspace-tile-render-engine-iteration";
|
|
9617
|
+
function newIteration(viewer, tile) {
|
|
9618
|
+
// Create key specific to the kind of tile we're rendering.
|
|
9619
|
+
var key = ITERATION_KEY + tile;
|
|
9620
|
+
// Generate a new iteration ID, include the tile type in it so we can identify it easier.
|
|
9621
|
+
var value = bruceModels.ObjectUtils.UId() + tile;
|
|
9622
|
+
viewer[key] = value;
|
|
9623
|
+
return value;
|
|
9624
|
+
}
|
|
9625
|
+
/**
|
|
9626
|
+
* Checks if a given iteration is still the active one for a given viewer.
|
|
9627
|
+
* @param viewer
|
|
9628
|
+
* @param iteration
|
|
9629
|
+
*/
|
|
9630
|
+
function assertIteration(viewer, iteration) {
|
|
9631
|
+
var suffix = iteration.includes("imagery") ? "imagery" : "terrain";
|
|
9632
|
+
return viewer[ITERATION_KEY + suffix] === iteration;
|
|
9633
|
+
}
|
|
9614
9634
|
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
9615
9635
|
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
9616
9636
|
var re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
|
|
@@ -10149,13 +10169,14 @@
|
|
|
10149
10169
|
function RenderView(params) {
|
|
10150
10170
|
var _a;
|
|
10151
10171
|
return __awaiter(this, void 0, void 0, function () {
|
|
10152
|
-
var api, view, bookmark, vSettings, bSettings, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
|
|
10172
|
+
var iteration, api, view, bookmark, vSettings, bSettings, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
|
|
10153
10173
|
return __generator(this, function (_b) {
|
|
10154
10174
|
switch (_b.label) {
|
|
10155
10175
|
case 0:
|
|
10156
10176
|
if (!params.apiGetter) {
|
|
10157
10177
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10158
10178
|
}
|
|
10179
|
+
iteration = newIteration(params.viewer, "imagery");
|
|
10159
10180
|
api = params.apiGetter.getApi();
|
|
10160
10181
|
return [4 /*yield*/, bruceModels.ProjectView.Get({
|
|
10161
10182
|
api: api,
|
|
@@ -10163,6 +10184,9 @@
|
|
|
10163
10184
|
})];
|
|
10164
10185
|
case 1:
|
|
10165
10186
|
view = (_b.sent()).view;
|
|
10187
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10188
|
+
return [2 /*return*/];
|
|
10189
|
+
}
|
|
10166
10190
|
bookmark = null;
|
|
10167
10191
|
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
10168
10192
|
return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get({
|
|
@@ -10172,6 +10196,9 @@
|
|
|
10172
10196
|
})];
|
|
10173
10197
|
case 2:
|
|
10174
10198
|
bookmark = (_b.sent()).bookmark;
|
|
10199
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10200
|
+
return [2 /*return*/];
|
|
10201
|
+
}
|
|
10175
10202
|
_b.label = 3;
|
|
10176
10203
|
case 3:
|
|
10177
10204
|
vSettings = view.Settings;
|
|
@@ -10195,6 +10222,9 @@
|
|
|
10195
10222
|
})];
|
|
10196
10223
|
case 4:
|
|
10197
10224
|
_b.sent();
|
|
10225
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10226
|
+
return [2 /*return*/];
|
|
10227
|
+
}
|
|
10198
10228
|
for (i = 0; i < dataNames.length; i++) {
|
|
10199
10229
|
name_1 = dataNames[i];
|
|
10200
10230
|
for (j = 0; j < tiles.length; j++) {
|
|
@@ -10241,6 +10271,9 @@
|
|
|
10241
10271
|
if (layer) {
|
|
10242
10272
|
layers.push(layer);
|
|
10243
10273
|
}
|
|
10274
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10275
|
+
return [2 /*return*/];
|
|
10276
|
+
}
|
|
10244
10277
|
_b.label = 7;
|
|
10245
10278
|
case 7:
|
|
10246
10279
|
i++;
|
|
@@ -10452,13 +10485,66 @@
|
|
|
10452
10485
|
Navigator.GetOrCreateLayer = GetOrCreateLayer;
|
|
10453
10486
|
function Render(params) {
|
|
10454
10487
|
return __awaiter(this, void 0, void 0, function () {
|
|
10455
|
-
var i,
|
|
10488
|
+
var tmpTiles, _loop_2, i, organize, iteration, curEnabled, toDisable, _loop_3, i, i, organized, i, enabled;
|
|
10456
10489
|
return __generator(this, function (_a) {
|
|
10457
10490
|
switch (_a.label) {
|
|
10458
10491
|
case 0:
|
|
10459
10492
|
if (!params.apiGetter) {
|
|
10460
10493
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10461
10494
|
}
|
|
10495
|
+
tmpTiles = [];
|
|
10496
|
+
_loop_2 = function (i) {
|
|
10497
|
+
var tile = params.tiles[i];
|
|
10498
|
+
if (!tmpTiles.find(function (x) { return (x.accountId == tile.accountId) && (x.tilesetId == tile.tilesetId); })) {
|
|
10499
|
+
tmpTiles.push(tile);
|
|
10500
|
+
}
|
|
10501
|
+
};
|
|
10502
|
+
for (i = 0; i < params.tiles.length; i++) {
|
|
10503
|
+
_loop_2(i);
|
|
10504
|
+
}
|
|
10505
|
+
params.tiles = tmpTiles;
|
|
10506
|
+
organize = function () {
|
|
10507
|
+
var curEnabledArr = [];
|
|
10508
|
+
for (var i = 0; i < curEnabled.length; i++) {
|
|
10509
|
+
var layer = curEnabled.get(i);
|
|
10510
|
+
curEnabledArr.push(layer);
|
|
10511
|
+
}
|
|
10512
|
+
var _loop_4 = function (i) {
|
|
10513
|
+
var enabled = params.tiles[i];
|
|
10514
|
+
var layer = curEnabledArr.find(function (x) { var _a, _b; return ((_a = x._bMeta) === null || _a === void 0 ? void 0 : _a.accountId) === enabled.accountId && ((_b = x._bMeta) === null || _b === void 0 ? void 0 : _b.tilesetId) === enabled.tilesetId; });
|
|
10515
|
+
if (layer) {
|
|
10516
|
+
params.viewer.imageryLayers.raiseToTop(layer);
|
|
10517
|
+
layer.alpha = EnsureNumber(enabled.alpha == null ? 1 : enabled.alpha);
|
|
10518
|
+
layer.brightness = EnsureNumber(enabled.brightness == null ? 1 : enabled.brightness);
|
|
10519
|
+
layer.contrast = EnsureNumber(enabled.contrast == null ? 1 : enabled.contrast);
|
|
10520
|
+
layer.hue = EnsureNumber(enabled.hue == null ? 0 : enabled.hue);
|
|
10521
|
+
layer.saturation = EnsureNumber(enabled.saturation == null ? 1 : enabled.saturation);
|
|
10522
|
+
layer.gamma = EnsureNumber(enabled.gamma == null ? 1 : enabled.gamma);
|
|
10523
|
+
}
|
|
10524
|
+
};
|
|
10525
|
+
for (var i = 0; i < params.tiles.length; i++) {
|
|
10526
|
+
_loop_4(i);
|
|
10527
|
+
}
|
|
10528
|
+
params.viewer.scene.requestRender();
|
|
10529
|
+
};
|
|
10530
|
+
iteration = newIteration(params.viewer, "imagery");
|
|
10531
|
+
curEnabled = params.viewer.imageryLayers;
|
|
10532
|
+
toDisable = [];
|
|
10533
|
+
_loop_3 = function (i) {
|
|
10534
|
+
var layer = curEnabled.get(i);
|
|
10535
|
+
var meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
|
|
10536
|
+
var disable = !params.tiles.find(function (x) { return x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId); });
|
|
10537
|
+
if (disable) {
|
|
10538
|
+
toDisable.push(layer);
|
|
10539
|
+
}
|
|
10540
|
+
};
|
|
10541
|
+
for (i = 0; i < curEnabled.length; i++) {
|
|
10542
|
+
_loop_3(i);
|
|
10543
|
+
}
|
|
10544
|
+
for (i = 0; i < toDisable.length; i++) {
|
|
10545
|
+
params.viewer.imageryLayers.remove(toDisable[i]);
|
|
10546
|
+
}
|
|
10547
|
+
organized = false;
|
|
10462
10548
|
i = 0;
|
|
10463
10549
|
_a.label = 1;
|
|
10464
10550
|
case 1:
|
|
@@ -10474,48 +10560,21 @@
|
|
|
10474
10560
|
})];
|
|
10475
10561
|
case 2:
|
|
10476
10562
|
_a.sent();
|
|
10563
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10564
|
+
return [2 /*return*/];
|
|
10565
|
+
}
|
|
10566
|
+
// Organize as we load in case there are lots of imageries.
|
|
10567
|
+
// We want to ensure what the user sees is as close to correct as we can get.
|
|
10568
|
+
organize();
|
|
10569
|
+
organized = true;
|
|
10477
10570
|
_a.label = 3;
|
|
10478
10571
|
case 3:
|
|
10479
10572
|
i++;
|
|
10480
10573
|
return [3 /*break*/, 1];
|
|
10481
10574
|
case 4:
|
|
10482
|
-
|
|
10483
|
-
|
|
10484
|
-
curEnabledArr = [];
|
|
10485
|
-
_loop_2 = function (i) {
|
|
10486
|
-
var layer = curEnabled.get(i);
|
|
10487
|
-
var meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
|
|
10488
|
-
var disable = !params.tiles.find(function (x) { return x.accountId === (meta === null || meta === void 0 ? void 0 : meta.accountId) && x.tilesetId === (meta === null || meta === void 0 ? void 0 : meta.tilesetId); });
|
|
10489
|
-
if (disable) {
|
|
10490
|
-
toDisable.push(layer);
|
|
10491
|
-
}
|
|
10492
|
-
else {
|
|
10493
|
-
curEnabledArr.push(layer);
|
|
10494
|
-
}
|
|
10495
|
-
};
|
|
10496
|
-
for (i = 0; i < curEnabled.length; i++) {
|
|
10497
|
-
_loop_2(i);
|
|
10498
|
-
}
|
|
10499
|
-
for (i = 0; i < toDisable.length; i++) {
|
|
10500
|
-
params.viewer.imageryLayers.remove(toDisable[i]);
|
|
10575
|
+
if (!organized) {
|
|
10576
|
+
organize();
|
|
10501
10577
|
}
|
|
10502
|
-
_loop_3 = function (i) {
|
|
10503
|
-
var enabled = params.tiles[i];
|
|
10504
|
-
var layer = curEnabledArr.find(function (x) { var _a, _b; return ((_a = x._bMeta) === null || _a === void 0 ? void 0 : _a.accountId) === enabled.accountId && ((_b = x._bMeta) === null || _b === void 0 ? void 0 : _b.tilesetId) === enabled.tilesetId; });
|
|
10505
|
-
if (layer) {
|
|
10506
|
-
params.viewer.imageryLayers.raiseToTop(layer);
|
|
10507
|
-
layer.alpha = EnsureNumber(enabled.alpha == null ? 1 : enabled.alpha);
|
|
10508
|
-
layer.brightness = EnsureNumber(enabled.brightness == null ? 1 : enabled.brightness);
|
|
10509
|
-
layer.contrast = EnsureNumber(enabled.contrast == null ? 1 : enabled.contrast);
|
|
10510
|
-
layer.hue = EnsureNumber(enabled.hue == null ? 0 : enabled.hue);
|
|
10511
|
-
layer.saturation = EnsureNumber(enabled.saturation == null ? 1 : enabled.saturation);
|
|
10512
|
-
layer.gamma = EnsureNumber(enabled.gamma == null ? 1 : enabled.gamma);
|
|
10513
|
-
}
|
|
10514
|
-
};
|
|
10515
|
-
for (i = 0; i < params.tiles.length; i++) {
|
|
10516
|
-
_loop_3(i);
|
|
10517
|
-
}
|
|
10518
|
-
params.viewer.scene.requestRender();
|
|
10519
10578
|
return [2 /*return*/];
|
|
10520
10579
|
}
|
|
10521
10580
|
});
|
|
@@ -10572,13 +10631,14 @@
|
|
|
10572
10631
|
function RenderView(params) {
|
|
10573
10632
|
var _a, _b;
|
|
10574
10633
|
return __awaiter(this, void 0, void 0, function () {
|
|
10575
|
-
var api, view, bookmark, vSettings, bSettings, terrainTiles, terrainTile, terrainTileName, i, tile;
|
|
10634
|
+
var iteration, api, view, bookmark, vSettings, bSettings, terrainTiles, terrainTile, terrainTileName, i, tile;
|
|
10576
10635
|
return __generator(this, function (_c) {
|
|
10577
10636
|
switch (_c.label) {
|
|
10578
10637
|
case 0:
|
|
10579
10638
|
if (!params.apiGetter) {
|
|
10580
10639
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10581
10640
|
}
|
|
10641
|
+
iteration = newIteration(params.viewer, "terrain");
|
|
10582
10642
|
api = params.apiGetter.getApi();
|
|
10583
10643
|
return [4 /*yield*/, bruceModels.ProjectView.Get({
|
|
10584
10644
|
api: api,
|
|
@@ -10587,6 +10647,9 @@
|
|
|
10587
10647
|
case 1:
|
|
10588
10648
|
view = (_c.sent()).view;
|
|
10589
10649
|
bookmark = null;
|
|
10650
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10651
|
+
return [2 /*return*/];
|
|
10652
|
+
}
|
|
10590
10653
|
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
10591
10654
|
return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get({
|
|
10592
10655
|
api: api,
|
|
@@ -10595,6 +10658,9 @@
|
|
|
10595
10658
|
})];
|
|
10596
10659
|
case 2:
|
|
10597
10660
|
bookmark = (_c.sent()).bookmark;
|
|
10661
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10662
|
+
return [2 /*return*/];
|
|
10663
|
+
}
|
|
10598
10664
|
_c.label = 3;
|
|
10599
10665
|
case 3:
|
|
10600
10666
|
vSettings = view.Settings;
|
|
@@ -10615,6 +10681,9 @@
|
|
|
10615
10681
|
})];
|
|
10616
10682
|
case 4:
|
|
10617
10683
|
_c.sent();
|
|
10684
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10685
|
+
return [2 /*return*/];
|
|
10686
|
+
}
|
|
10618
10687
|
for (i = 0; i < terrainTiles.length; i++) {
|
|
10619
10688
|
tile = terrainTiles[i];
|
|
10620
10689
|
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
@@ -10629,6 +10698,9 @@
|
|
|
10629
10698
|
})];
|
|
10630
10699
|
case 5:
|
|
10631
10700
|
_c.sent();
|
|
10701
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10702
|
+
return [2 /*return*/];
|
|
10703
|
+
}
|
|
10632
10704
|
_c.label = 6;
|
|
10633
10705
|
case 6:
|
|
10634
10706
|
params.viewer.scene.requestRender();
|
|
@@ -10644,13 +10716,14 @@
|
|
|
10644
10716
|
function Render(params) {
|
|
10645
10717
|
var _a;
|
|
10646
10718
|
return __awaiter(this, void 0, void 0, function () {
|
|
10647
|
-
var enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
|
|
10719
|
+
var iteration, enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
|
|
10648
10720
|
return __generator(this, function (_b) {
|
|
10649
10721
|
switch (_b.label) {
|
|
10650
10722
|
case 0:
|
|
10651
10723
|
if (!params.apiGetter) {
|
|
10652
10724
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10653
10725
|
}
|
|
10726
|
+
iteration = newIteration(params.viewer, "terrain");
|
|
10654
10727
|
enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
|
|
10655
10728
|
if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
|
|
10656
10729
|
(enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
|
|
@@ -10664,8 +10737,9 @@
|
|
|
10664
10737
|
provider_1 instanceof Cesium.EllipsoidTerrainProvider) {
|
|
10665
10738
|
leave = true;
|
|
10666
10739
|
}
|
|
10667
|
-
// TODO:
|
|
10740
|
+
// TODO: Also check for "cesium world terrain" if we can easily determine that it's enabled.
|
|
10668
10741
|
if (leave) {
|
|
10742
|
+
// Mark it so we don't have to do this magic logic again.
|
|
10669
10743
|
provider_1._bMeta = {
|
|
10670
10744
|
tilesetId: params.tile.tilesetId,
|
|
10671
10745
|
accountId: params.tile.accountId
|
|
@@ -10691,12 +10765,18 @@
|
|
|
10691
10765
|
// When loading stuff in the same account as the default it's likely already loaded,
|
|
10692
10766
|
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
10693
10767
|
_b.sent();
|
|
10768
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10769
|
+
return [2 /*return*/];
|
|
10770
|
+
}
|
|
10694
10771
|
return [4 /*yield*/, bruceModels.Tileset.Get({
|
|
10695
10772
|
api: api,
|
|
10696
10773
|
tilesetId: params.tile.tilesetId
|
|
10697
10774
|
})];
|
|
10698
10775
|
case 4:
|
|
10699
10776
|
tileset = (_b.sent()).tileset;
|
|
10777
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10778
|
+
return [2 /*return*/];
|
|
10779
|
+
}
|
|
10700
10780
|
url = void 0;
|
|
10701
10781
|
vertexes = true;
|
|
10702
10782
|
if (tileset.type === bruceModels.Tileset.EType.Terrain) {
|
|
@@ -10821,6 +10901,14 @@
|
|
|
10821
10901
|
}
|
|
10822
10902
|
};
|
|
10823
10903
|
}
|
|
10904
|
+
else if (provider instanceof Cesium.EllipsoidTerrainProvider) {
|
|
10905
|
+
return {
|
|
10906
|
+
terrain: {
|
|
10907
|
+
tilesetId: bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain,
|
|
10908
|
+
accountId: null
|
|
10909
|
+
}
|
|
10910
|
+
};
|
|
10911
|
+
}
|
|
10824
10912
|
return null;
|
|
10825
10913
|
}
|
|
10826
10914
|
ViewUtils.GatherTerrainTile = GatherTerrainTile;
|
|
@@ -11236,13 +11324,34 @@
|
|
|
11236
11324
|
var MIN_SHADOW_SIZE = 2048;
|
|
11237
11325
|
var MAX_SHADOW_SIZE = 32768;
|
|
11238
11326
|
var RELATION_MENU_ITEM_ID = "BOOKMARK_ENTITY_RELATIONS";
|
|
11327
|
+
// Used to track if a current in-progress render is the latest.
|
|
11328
|
+
// If we're midway through an async function that is rendering a bookmark and this changes, then we stop the function.
|
|
11329
|
+
var ITERATION_KEY$1 = "nextspace-view-render-engine-iteration";
|
|
11330
|
+
/**
|
|
11331
|
+
* Creates a new iteration state.
|
|
11332
|
+
* This will stop any existing renders from processing to their end.
|
|
11333
|
+
* @param viewer
|
|
11334
|
+
* @returns
|
|
11335
|
+
*/
|
|
11336
|
+
function newIteration$1(viewer) {
|
|
11337
|
+
viewer[ITERATION_KEY$1] = bruceModels.ObjectUtils.UId();
|
|
11338
|
+
return viewer[ITERATION_KEY$1];
|
|
11339
|
+
}
|
|
11340
|
+
/**
|
|
11341
|
+
* Checks if a given iteration is still the active one for a given viewer.
|
|
11342
|
+
* @param viewer
|
|
11343
|
+
* @param iteration
|
|
11344
|
+
*/
|
|
11345
|
+
function assertIteration$1(viewer, iteration) {
|
|
11346
|
+
return viewer[ITERATION_KEY$1] == iteration;
|
|
11347
|
+
}
|
|
11239
11348
|
/**
|
|
11240
11349
|
* Renders DATA_VERSION = 1 navigator.
|
|
11241
11350
|
* @param params
|
|
11242
11351
|
* @param bookmark
|
|
11243
11352
|
* @param view
|
|
11244
11353
|
*/
|
|
11245
|
-
function renderLegacyNavigator(params, bookmark, view) {
|
|
11354
|
+
function renderLegacyNavigator(iteration, params, bookmark, view) {
|
|
11246
11355
|
var _a, _b, _c, _d, _e;
|
|
11247
11356
|
return __awaiter(this, void 0, void 0, function () {
|
|
11248
11357
|
var vSettings, bSettings, manager, VR, scene, baseColor, frustum, curFrustum, camera, pos, go, fxaa, pointer, clock, timeStr, enabledItems, newItemIds, _i, enabledItems_1, id, menuItem;
|
|
@@ -11262,15 +11371,17 @@
|
|
|
11262
11371
|
})];
|
|
11263
11372
|
case 1:
|
|
11264
11373
|
_f.sent();
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11271
|
-
|
|
11272
|
-
|
|
11273
|
-
|
|
11374
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11375
|
+
return [2 /*return*/];
|
|
11376
|
+
}
|
|
11377
|
+
// We don't wait for imageries to load, this does not affect rendering other things.
|
|
11378
|
+
exports.TileRenderEngine.Map.LegacyNavigator.RenderView({
|
|
11379
|
+
apiGetter: params.apiGetter,
|
|
11380
|
+
bookmarkId: params.bookmarkId,
|
|
11381
|
+
viewer: manager.Viewer,
|
|
11382
|
+
viewId: params.viewId,
|
|
11383
|
+
ignoreIds: []
|
|
11384
|
+
});
|
|
11274
11385
|
baseColor = bSettings === null || bSettings === void 0 ? void 0 : bSettings.globeColor;
|
|
11275
11386
|
if (baseColor == null) {
|
|
11276
11387
|
// TODO: Need global default.
|
|
@@ -11344,7 +11455,7 @@
|
|
|
11344
11455
|
});
|
|
11345
11456
|
}
|
|
11346
11457
|
}
|
|
11347
|
-
if (!bookmark) return [3 /*break*/,
|
|
11458
|
+
if (!bookmark) return [3 /*break*/, 3];
|
|
11348
11459
|
return [4 /*yield*/, exports.MenuItemCreator.RenderBookmarkItems({
|
|
11349
11460
|
apiGetter: params.apiGetter,
|
|
11350
11461
|
getters: params.getters,
|
|
@@ -11352,11 +11463,14 @@
|
|
|
11352
11463
|
view: view,
|
|
11353
11464
|
bookmark: bookmark
|
|
11354
11465
|
})];
|
|
11355
|
-
case
|
|
11466
|
+
case 2:
|
|
11356
11467
|
_f.sent();
|
|
11357
|
-
|
|
11358
|
-
|
|
11359
|
-
|
|
11468
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11469
|
+
return [2 /*return*/];
|
|
11470
|
+
}
|
|
11471
|
+
_f.label = 3;
|
|
11472
|
+
case 3:
|
|
11473
|
+
if (!((_e = bSettings === null || bSettings === void 0 ? void 0 : bSettings.drawnRelationEntityIDs) === null || _e === void 0 ? void 0 : _e.length)) return [3 /*break*/, 5];
|
|
11360
11474
|
menuItem = {
|
|
11361
11475
|
id: RELATION_MENU_ITEM_ID,
|
|
11362
11476
|
Caption: "Entity relations",
|
|
@@ -11370,10 +11484,13 @@
|
|
|
11370
11484
|
getters: params.getters,
|
|
11371
11485
|
item: menuItem
|
|
11372
11486
|
})];
|
|
11373
|
-
case
|
|
11487
|
+
case 4:
|
|
11374
11488
|
_f.sent();
|
|
11375
|
-
|
|
11376
|
-
|
|
11489
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11490
|
+
return [2 /*return*/];
|
|
11491
|
+
}
|
|
11492
|
+
_f.label = 5;
|
|
11493
|
+
case 5: return [2 /*return*/];
|
|
11377
11494
|
}
|
|
11378
11495
|
});
|
|
11379
11496
|
});
|
|
@@ -11384,7 +11501,7 @@
|
|
|
11384
11501
|
* @param bookmark
|
|
11385
11502
|
* @param view
|
|
11386
11503
|
*/
|
|
11387
|
-
function renderNavigator(params, bookmark, view) {
|
|
11504
|
+
function renderNavigator(iteration, params, bookmark, view) {
|
|
11388
11505
|
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
|
|
11389
11506
|
return __awaiter(this, void 0, void 0, function () {
|
|
11390
11507
|
var viewer, scene, vSettings, bSettings, defaults, camera, newLens, shouldBe2d, curIs2d, transition, pos, terrain, hillShades, baseColor, globeHidden, terrainWireframe, globeAlpha, shadows, size, ambientOcclusion, AO, lighting, light, quality, fxaa, dateTime, clock, selectedIds, hiddenIds, isolatedIds, entityOpacityMap, entityId, opacity, imagery, renderedRelationEntityIds, curEnabled, newItemIds, _i, curEnabled_1, id, menuItem, gOcclusion;
|
|
@@ -11450,6 +11567,9 @@
|
|
|
11450
11567
|
})];
|
|
11451
11568
|
case 1:
|
|
11452
11569
|
_6.sent();
|
|
11570
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11571
|
+
return [2 /*return*/];
|
|
11572
|
+
}
|
|
11453
11573
|
_6.label = 2;
|
|
11454
11574
|
case 2:
|
|
11455
11575
|
hillShades = (_o = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _o === void 0 ? void 0 : _o.hillShades;
|
|
@@ -11648,13 +11768,12 @@
|
|
|
11648
11768
|
}
|
|
11649
11769
|
];
|
|
11650
11770
|
}
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
11655
|
-
|
|
11656
|
-
|
|
11657
|
-
_6.sent();
|
|
11771
|
+
// We don't wait for imageries to load, this does not affect rendering other things.
|
|
11772
|
+
exports.TileRenderEngine.Map.Navigator.Render({
|
|
11773
|
+
apiGetter: params.apiGetter,
|
|
11774
|
+
tiles: imagery,
|
|
11775
|
+
viewer: params.manager.Viewer,
|
|
11776
|
+
});
|
|
11658
11777
|
renderedRelationEntityIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.renderedEntityRelations;
|
|
11659
11778
|
if (!renderedRelationEntityIds) {
|
|
11660
11779
|
renderedRelationEntityIds = [];
|
|
@@ -11670,18 +11789,21 @@
|
|
|
11670
11789
|
});
|
|
11671
11790
|
}
|
|
11672
11791
|
}
|
|
11673
|
-
if (!bookmark) return [3 /*break*/,
|
|
11792
|
+
if (!bookmark) return [3 /*break*/, 4];
|
|
11674
11793
|
return [4 /*yield*/, exports.MenuItemCreator.RenderBookmarkItems({
|
|
11675
11794
|
getters: params.getters,
|
|
11676
11795
|
manager: params.manager,
|
|
11677
11796
|
view: view,
|
|
11678
11797
|
bookmark: bookmark
|
|
11679
11798
|
})];
|
|
11680
|
-
case
|
|
11799
|
+
case 3:
|
|
11681
11800
|
_6.sent();
|
|
11682
|
-
|
|
11683
|
-
|
|
11684
|
-
|
|
11801
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11802
|
+
return [2 /*return*/];
|
|
11803
|
+
}
|
|
11804
|
+
_6.label = 4;
|
|
11805
|
+
case 4:
|
|
11806
|
+
if (!(renderedRelationEntityIds.length > 0)) return [3 /*break*/, 6];
|
|
11685
11807
|
menuItem = {
|
|
11686
11808
|
id: RELATION_MENU_ITEM_ID,
|
|
11687
11809
|
Caption: "Entity relations",
|
|
@@ -11694,10 +11816,13 @@
|
|
|
11694
11816
|
getters: params.getters,
|
|
11695
11817
|
item: menuItem
|
|
11696
11818
|
})];
|
|
11697
|
-
case
|
|
11819
|
+
case 5:
|
|
11698
11820
|
_6.sent();
|
|
11699
|
-
|
|
11700
|
-
|
|
11821
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11822
|
+
return [2 /*return*/];
|
|
11823
|
+
}
|
|
11824
|
+
_6.label = 6;
|
|
11825
|
+
case 6:
|
|
11701
11826
|
gOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.groundOcclusion;
|
|
11702
11827
|
if (gOcclusion == null) {
|
|
11703
11828
|
gOcclusion = (_5 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _5 === void 0 ? void 0 : _5.groundOcclusion;
|
|
@@ -11716,7 +11841,7 @@
|
|
|
11716
11841
|
function Render(params) {
|
|
11717
11842
|
var _a;
|
|
11718
11843
|
return __awaiter(this, void 0, void 0, function () {
|
|
11719
|
-
var api, view, _b, bookmark, bookmarkId, _c, version, bWidget;
|
|
11844
|
+
var iteration, api, view, _b, bookmark, bookmarkId, _c, version, bWidget;
|
|
11720
11845
|
return __generator(this, function (_d) {
|
|
11721
11846
|
switch (_d.label) {
|
|
11722
11847
|
case 0:
|
|
@@ -11729,6 +11854,7 @@
|
|
|
11729
11854
|
else if (!params.viewer && params.manager) {
|
|
11730
11855
|
params.viewer = params.manager.Viewer;
|
|
11731
11856
|
}
|
|
11857
|
+
iteration = newIteration$1(params.viewer);
|
|
11732
11858
|
if (!params.getters) {
|
|
11733
11859
|
params.getters = bruceModels.ENVIRONMENT.Api();
|
|
11734
11860
|
}
|
|
@@ -11773,17 +11899,23 @@
|
|
|
11773
11899
|
bookmark = _c;
|
|
11774
11900
|
_d.label = 7;
|
|
11775
11901
|
case 7:
|
|
11902
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11903
|
+
return [2 /*return*/];
|
|
11904
|
+
}
|
|
11776
11905
|
version = view.DataVersion;
|
|
11777
11906
|
if (!(version == 1)) return [3 /*break*/, 9];
|
|
11778
|
-
return [4 /*yield*/, renderLegacyNavigator(params, bookmark, view)];
|
|
11907
|
+
return [4 /*yield*/, renderLegacyNavigator(iteration, params, bookmark, view)];
|
|
11779
11908
|
case 8:
|
|
11780
11909
|
_d.sent();
|
|
11781
11910
|
return [3 /*break*/, 11];
|
|
11782
|
-
case 9: return [4 /*yield*/, renderNavigator(params, bookmark, view)];
|
|
11911
|
+
case 9: return [4 /*yield*/, renderNavigator(iteration, params, bookmark, view)];
|
|
11783
11912
|
case 10:
|
|
11784
11913
|
_d.sent();
|
|
11785
11914
|
_d.label = 11;
|
|
11786
11915
|
case 11:
|
|
11916
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11917
|
+
return [2 /*return*/];
|
|
11918
|
+
}
|
|
11787
11919
|
bWidget = (_a = params.viewer) === null || _a === void 0 ? void 0 : _a[VIEWER_BOOKMARKS_WIDGET_KEY];
|
|
11788
11920
|
if (bWidget) {
|
|
11789
11921
|
bWidget.ViewId = params.viewId ? params.viewId : view === null || view === void 0 ? void 0 : view.ID;
|
|
@@ -14605,7 +14737,7 @@
|
|
|
14605
14737
|
ViewerUtils.CreateWidgets = CreateWidgets;
|
|
14606
14738
|
})(exports.ViewerUtils || (exports.ViewerUtils = {}));
|
|
14607
14739
|
|
|
14608
|
-
var VERSION$1 = "2.4.
|
|
14740
|
+
var VERSION$1 = "2.4.9";
|
|
14609
14741
|
|
|
14610
14742
|
exports.VERSION = VERSION$1;
|
|
14611
14743
|
exports.CesiumViewMonitor = CesiumViewMonitor;
|