bruce-cesium 2.4.8 → 2.5.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.
- package/dist/bruce-cesium.es5.js +235 -83
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +234 -82
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/entity-render-engine.js +23 -3
- package/dist/lib/rendering/entity-render-engine.js.map +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
|
@@ -2583,11 +2583,29 @@
|
|
|
2583
2583
|
});
|
|
2584
2584
|
cEntity._siblingGraphics = [];
|
|
2585
2585
|
if (width > 0 && cLineColor) {
|
|
2586
|
-
var
|
|
2586
|
+
var borderHeight = undefined;
|
|
2587
|
+
if (heightRef != Cesium.HeightReference.CLAMP_TO_GROUND) {
|
|
2588
|
+
if (flattenPoints) {
|
|
2589
|
+
borderHeight = 0;
|
|
2590
|
+
}
|
|
2591
|
+
// Set height to smallest height value from points.
|
|
2592
|
+
else {
|
|
2593
|
+
for (var i = 0; i < points.length; i++) {
|
|
2594
|
+
var point = points[i];
|
|
2595
|
+
if (!borderHeight || point.altitude < borderHeight) {
|
|
2596
|
+
borderHeight = point.altitude;
|
|
2597
|
+
}
|
|
2598
|
+
}
|
|
2599
|
+
}
|
|
2600
|
+
}
|
|
2601
|
+
var borderPosses = [];
|
|
2587
2602
|
if (flattenPoints) {
|
|
2588
2603
|
borderPosses = points.map(function (x) { return Cesium.Cartesian3.fromDegrees(EnsureNumber(x.longitude), EnsureNumber(x.latitude), EnsureNumber(0)); });
|
|
2589
2604
|
bruceModels.Cartes.CloseRing3(borderPosses);
|
|
2590
2605
|
}
|
|
2606
|
+
else {
|
|
2607
|
+
borderPosses = posses.map(function (x) { return x.clone ? x.clone() : __assign({}, x); });
|
|
2608
|
+
}
|
|
2591
2609
|
var cEntityBorder = new Cesium.Entity({
|
|
2592
2610
|
// polyline: new Cesium.PolylineGraphics({
|
|
2593
2611
|
// positions: borderPosses,
|
|
@@ -2603,11 +2621,12 @@
|
|
|
2603
2621
|
positions: borderPosses,
|
|
2604
2622
|
material: cLineColor,
|
|
2605
2623
|
heightReference: heightRef,
|
|
2624
|
+
height: borderHeight,
|
|
2606
2625
|
width: width,
|
|
2607
2626
|
fill: true,
|
|
2608
2627
|
zIndex: zIndex + 1,
|
|
2609
2628
|
cornerType: Cesium.CornerType.MITERED,
|
|
2610
|
-
classificationType: Cesium.ClassificationType.
|
|
2629
|
+
classificationType: Cesium.ClassificationType.BOTH,
|
|
2611
2630
|
distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance, width),
|
|
2612
2631
|
shadows: Cesium.ShadowMode.ENABLED
|
|
2613
2632
|
},
|
|
@@ -2634,11 +2653,12 @@
|
|
|
2634
2653
|
positions: borderPosses,
|
|
2635
2654
|
material: cLineColor,
|
|
2636
2655
|
heightReference: heightRef,
|
|
2656
|
+
height: borderHeight,
|
|
2637
2657
|
width: width,
|
|
2638
2658
|
fill: true,
|
|
2639
2659
|
zIndex: zIndex + 1,
|
|
2640
2660
|
cornerType: Cesium.CornerType.MITERED,
|
|
2641
|
-
classificationType: Cesium.ClassificationType.
|
|
2661
|
+
classificationType: Cesium.ClassificationType.BOTH,
|
|
2642
2662
|
distanceDisplayCondition: getDisplayCondition(params.minDistance, params.maxDistance, width),
|
|
2643
2663
|
shadows: Cesium.ShadowMode.ENABLED,
|
|
2644
2664
|
},
|
|
@@ -9611,6 +9631,26 @@
|
|
|
9611
9631
|
MenuItemCreator.RenderBookmarkItems = RenderBookmarkItems;
|
|
9612
9632
|
})(exports.MenuItemCreator || (exports.MenuItemCreator = {}));
|
|
9613
9633
|
|
|
9634
|
+
// Used to track if a current in-progress render is the latest.
|
|
9635
|
+
// If we're midway through an async function that is rendering 10 imageries and this changes, then we stop the function.
|
|
9636
|
+
var ITERATION_KEY = "nextspace-tile-render-engine-iteration";
|
|
9637
|
+
function newIteration(viewer, tile) {
|
|
9638
|
+
// Create key specific to the kind of tile we're rendering.
|
|
9639
|
+
var key = ITERATION_KEY + tile;
|
|
9640
|
+
// Generate a new iteration ID, include the tile type in it so we can identify it easier.
|
|
9641
|
+
var value = bruceModels.ObjectUtils.UId() + tile;
|
|
9642
|
+
viewer[key] = value;
|
|
9643
|
+
return value;
|
|
9644
|
+
}
|
|
9645
|
+
/**
|
|
9646
|
+
* Checks if a given iteration is still the active one for a given viewer.
|
|
9647
|
+
* @param viewer
|
|
9648
|
+
* @param iteration
|
|
9649
|
+
*/
|
|
9650
|
+
function assertIteration(viewer, iteration) {
|
|
9651
|
+
var suffix = iteration.includes("imagery") ? "imagery" : "terrain";
|
|
9652
|
+
return viewer[ITERATION_KEY + suffix] === iteration;
|
|
9653
|
+
}
|
|
9614
9654
|
var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
|
|
9615
9655
|
var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
|
|
9616
9656
|
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 +10189,14 @@
|
|
|
10149
10189
|
function RenderView(params) {
|
|
10150
10190
|
var _a;
|
|
10151
10191
|
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;
|
|
10192
|
+
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
10193
|
return __generator(this, function (_b) {
|
|
10154
10194
|
switch (_b.label) {
|
|
10155
10195
|
case 0:
|
|
10156
10196
|
if (!params.apiGetter) {
|
|
10157
10197
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10158
10198
|
}
|
|
10199
|
+
iteration = newIteration(params.viewer, "imagery");
|
|
10159
10200
|
api = params.apiGetter.getApi();
|
|
10160
10201
|
return [4 /*yield*/, bruceModels.ProjectView.Get({
|
|
10161
10202
|
api: api,
|
|
@@ -10163,6 +10204,9 @@
|
|
|
10163
10204
|
})];
|
|
10164
10205
|
case 1:
|
|
10165
10206
|
view = (_b.sent()).view;
|
|
10207
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10208
|
+
return [2 /*return*/];
|
|
10209
|
+
}
|
|
10166
10210
|
bookmark = null;
|
|
10167
10211
|
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
10168
10212
|
return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get({
|
|
@@ -10172,6 +10216,9 @@
|
|
|
10172
10216
|
})];
|
|
10173
10217
|
case 2:
|
|
10174
10218
|
bookmark = (_b.sent()).bookmark;
|
|
10219
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10220
|
+
return [2 /*return*/];
|
|
10221
|
+
}
|
|
10175
10222
|
_b.label = 3;
|
|
10176
10223
|
case 3:
|
|
10177
10224
|
vSettings = view.Settings;
|
|
@@ -10195,6 +10242,9 @@
|
|
|
10195
10242
|
})];
|
|
10196
10243
|
case 4:
|
|
10197
10244
|
_b.sent();
|
|
10245
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10246
|
+
return [2 /*return*/];
|
|
10247
|
+
}
|
|
10198
10248
|
for (i = 0; i < dataNames.length; i++) {
|
|
10199
10249
|
name_1 = dataNames[i];
|
|
10200
10250
|
for (j = 0; j < tiles.length; j++) {
|
|
@@ -10241,6 +10291,9 @@
|
|
|
10241
10291
|
if (layer) {
|
|
10242
10292
|
layers.push(layer);
|
|
10243
10293
|
}
|
|
10294
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10295
|
+
return [2 /*return*/];
|
|
10296
|
+
}
|
|
10244
10297
|
_b.label = 7;
|
|
10245
10298
|
case 7:
|
|
10246
10299
|
i++;
|
|
@@ -10452,13 +10505,66 @@
|
|
|
10452
10505
|
Navigator.GetOrCreateLayer = GetOrCreateLayer;
|
|
10453
10506
|
function Render(params) {
|
|
10454
10507
|
return __awaiter(this, void 0, void 0, function () {
|
|
10455
|
-
var i,
|
|
10508
|
+
var tmpTiles, _loop_2, i, organize, iteration, curEnabled, toDisable, _loop_3, i, i, organized, i, enabled;
|
|
10456
10509
|
return __generator(this, function (_a) {
|
|
10457
10510
|
switch (_a.label) {
|
|
10458
10511
|
case 0:
|
|
10459
10512
|
if (!params.apiGetter) {
|
|
10460
10513
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10461
10514
|
}
|
|
10515
|
+
tmpTiles = [];
|
|
10516
|
+
_loop_2 = function (i) {
|
|
10517
|
+
var tile = params.tiles[i];
|
|
10518
|
+
if (!tmpTiles.find(function (x) { return (x.accountId == tile.accountId) && (x.tilesetId == tile.tilesetId); })) {
|
|
10519
|
+
tmpTiles.push(tile);
|
|
10520
|
+
}
|
|
10521
|
+
};
|
|
10522
|
+
for (i = 0; i < params.tiles.length; i++) {
|
|
10523
|
+
_loop_2(i);
|
|
10524
|
+
}
|
|
10525
|
+
params.tiles = tmpTiles;
|
|
10526
|
+
organize = function () {
|
|
10527
|
+
var curEnabledArr = [];
|
|
10528
|
+
for (var i = 0; i < curEnabled.length; i++) {
|
|
10529
|
+
var layer = curEnabled.get(i);
|
|
10530
|
+
curEnabledArr.push(layer);
|
|
10531
|
+
}
|
|
10532
|
+
var _loop_4 = function (i) {
|
|
10533
|
+
var enabled = params.tiles[i];
|
|
10534
|
+
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; });
|
|
10535
|
+
if (layer) {
|
|
10536
|
+
params.viewer.imageryLayers.raiseToTop(layer);
|
|
10537
|
+
layer.alpha = EnsureNumber(enabled.alpha == null ? 1 : enabled.alpha);
|
|
10538
|
+
layer.brightness = EnsureNumber(enabled.brightness == null ? 1 : enabled.brightness);
|
|
10539
|
+
layer.contrast = EnsureNumber(enabled.contrast == null ? 1 : enabled.contrast);
|
|
10540
|
+
layer.hue = EnsureNumber(enabled.hue == null ? 0 : enabled.hue);
|
|
10541
|
+
layer.saturation = EnsureNumber(enabled.saturation == null ? 1 : enabled.saturation);
|
|
10542
|
+
layer.gamma = EnsureNumber(enabled.gamma == null ? 1 : enabled.gamma);
|
|
10543
|
+
}
|
|
10544
|
+
};
|
|
10545
|
+
for (var i = 0; i < params.tiles.length; i++) {
|
|
10546
|
+
_loop_4(i);
|
|
10547
|
+
}
|
|
10548
|
+
params.viewer.scene.requestRender();
|
|
10549
|
+
};
|
|
10550
|
+
iteration = newIteration(params.viewer, "imagery");
|
|
10551
|
+
curEnabled = params.viewer.imageryLayers;
|
|
10552
|
+
toDisable = [];
|
|
10553
|
+
_loop_3 = function (i) {
|
|
10554
|
+
var layer = curEnabled.get(i);
|
|
10555
|
+
var meta = layer === null || layer === void 0 ? void 0 : layer._bMeta;
|
|
10556
|
+
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); });
|
|
10557
|
+
if (disable) {
|
|
10558
|
+
toDisable.push(layer);
|
|
10559
|
+
}
|
|
10560
|
+
};
|
|
10561
|
+
for (i = 0; i < curEnabled.length; i++) {
|
|
10562
|
+
_loop_3(i);
|
|
10563
|
+
}
|
|
10564
|
+
for (i = 0; i < toDisable.length; i++) {
|
|
10565
|
+
params.viewer.imageryLayers.remove(toDisable[i]);
|
|
10566
|
+
}
|
|
10567
|
+
organized = false;
|
|
10462
10568
|
i = 0;
|
|
10463
10569
|
_a.label = 1;
|
|
10464
10570
|
case 1:
|
|
@@ -10474,48 +10580,21 @@
|
|
|
10474
10580
|
})];
|
|
10475
10581
|
case 2:
|
|
10476
10582
|
_a.sent();
|
|
10583
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10584
|
+
return [2 /*return*/];
|
|
10585
|
+
}
|
|
10586
|
+
// Organize as we load in case there are lots of imageries.
|
|
10587
|
+
// We want to ensure what the user sees is as close to correct as we can get.
|
|
10588
|
+
organize();
|
|
10589
|
+
organized = true;
|
|
10477
10590
|
_a.label = 3;
|
|
10478
10591
|
case 3:
|
|
10479
10592
|
i++;
|
|
10480
10593
|
return [3 /*break*/, 1];
|
|
10481
10594
|
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);
|
|
10595
|
+
if (!organized) {
|
|
10596
|
+
organize();
|
|
10498
10597
|
}
|
|
10499
|
-
for (i = 0; i < toDisable.length; i++) {
|
|
10500
|
-
params.viewer.imageryLayers.remove(toDisable[i]);
|
|
10501
|
-
}
|
|
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
10598
|
return [2 /*return*/];
|
|
10520
10599
|
}
|
|
10521
10600
|
});
|
|
@@ -10572,13 +10651,14 @@
|
|
|
10572
10651
|
function RenderView(params) {
|
|
10573
10652
|
var _a, _b;
|
|
10574
10653
|
return __awaiter(this, void 0, void 0, function () {
|
|
10575
|
-
var api, view, bookmark, vSettings, bSettings, terrainTiles, terrainTile, terrainTileName, i, tile;
|
|
10654
|
+
var iteration, api, view, bookmark, vSettings, bSettings, terrainTiles, terrainTile, terrainTileName, i, tile;
|
|
10576
10655
|
return __generator(this, function (_c) {
|
|
10577
10656
|
switch (_c.label) {
|
|
10578
10657
|
case 0:
|
|
10579
10658
|
if (!params.apiGetter) {
|
|
10580
10659
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10581
10660
|
}
|
|
10661
|
+
iteration = newIteration(params.viewer, "terrain");
|
|
10582
10662
|
api = params.apiGetter.getApi();
|
|
10583
10663
|
return [4 /*yield*/, bruceModels.ProjectView.Get({
|
|
10584
10664
|
api: api,
|
|
@@ -10587,6 +10667,9 @@
|
|
|
10587
10667
|
case 1:
|
|
10588
10668
|
view = (_c.sent()).view;
|
|
10589
10669
|
bookmark = null;
|
|
10670
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10671
|
+
return [2 /*return*/];
|
|
10672
|
+
}
|
|
10590
10673
|
if (!params.bookmarkId) return [3 /*break*/, 3];
|
|
10591
10674
|
return [4 /*yield*/, bruceModels.ProjectViewBookmark.Get({
|
|
10592
10675
|
api: api,
|
|
@@ -10595,6 +10678,9 @@
|
|
|
10595
10678
|
})];
|
|
10596
10679
|
case 2:
|
|
10597
10680
|
bookmark = (_c.sent()).bookmark;
|
|
10681
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10682
|
+
return [2 /*return*/];
|
|
10683
|
+
}
|
|
10598
10684
|
_c.label = 3;
|
|
10599
10685
|
case 3:
|
|
10600
10686
|
vSettings = view.Settings;
|
|
@@ -10615,6 +10701,9 @@
|
|
|
10615
10701
|
})];
|
|
10616
10702
|
case 4:
|
|
10617
10703
|
_c.sent();
|
|
10704
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10705
|
+
return [2 /*return*/];
|
|
10706
|
+
}
|
|
10618
10707
|
for (i = 0; i < terrainTiles.length; i++) {
|
|
10619
10708
|
tile = terrainTiles[i];
|
|
10620
10709
|
if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
|
|
@@ -10629,6 +10718,9 @@
|
|
|
10629
10718
|
})];
|
|
10630
10719
|
case 5:
|
|
10631
10720
|
_c.sent();
|
|
10721
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10722
|
+
return [2 /*return*/];
|
|
10723
|
+
}
|
|
10632
10724
|
_c.label = 6;
|
|
10633
10725
|
case 6:
|
|
10634
10726
|
params.viewer.scene.requestRender();
|
|
@@ -10644,13 +10736,14 @@
|
|
|
10644
10736
|
function Render(params) {
|
|
10645
10737
|
var _a;
|
|
10646
10738
|
return __awaiter(this, void 0, void 0, function () {
|
|
10647
|
-
var enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
|
|
10739
|
+
var iteration, enabledMeta, provider_1, leave, defaultTerr, provider, api, tileset, url, vertexes, settings;
|
|
10648
10740
|
return __generator(this, function (_b) {
|
|
10649
10741
|
switch (_b.label) {
|
|
10650
10742
|
case 0:
|
|
10651
10743
|
if (!params.apiGetter) {
|
|
10652
10744
|
params.apiGetter = bruceModels.ENVIRONMENT.Api().GetBruceGetter();
|
|
10653
10745
|
}
|
|
10746
|
+
iteration = newIteration(params.viewer, "terrain");
|
|
10654
10747
|
enabledMeta = (_a = params.viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a._bMeta;
|
|
10655
10748
|
if ((enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.tilesetId) === params.tile.tilesetId &&
|
|
10656
10749
|
(enabledMeta === null || enabledMeta === void 0 ? void 0 : enabledMeta.accountId) === params.tile.accountId) {
|
|
@@ -10664,8 +10757,9 @@
|
|
|
10664
10757
|
provider_1 instanceof Cesium.EllipsoidTerrainProvider) {
|
|
10665
10758
|
leave = true;
|
|
10666
10759
|
}
|
|
10667
|
-
// TODO:
|
|
10760
|
+
// TODO: Also check for "cesium world terrain" if we can easily determine that it's enabled.
|
|
10668
10761
|
if (leave) {
|
|
10762
|
+
// Mark it so we don't have to do this magic logic again.
|
|
10669
10763
|
provider_1._bMeta = {
|
|
10670
10764
|
tilesetId: params.tile.tilesetId,
|
|
10671
10765
|
accountId: params.tile.accountId
|
|
@@ -10691,12 +10785,18 @@
|
|
|
10691
10785
|
// When loading stuff in the same account as the default it's likely already loaded,
|
|
10692
10786
|
// but if we just made an API instance for some external account then it won't be loaded yet.
|
|
10693
10787
|
_b.sent();
|
|
10788
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10789
|
+
return [2 /*return*/];
|
|
10790
|
+
}
|
|
10694
10791
|
return [4 /*yield*/, bruceModels.Tileset.Get({
|
|
10695
10792
|
api: api,
|
|
10696
10793
|
tilesetId: params.tile.tilesetId
|
|
10697
10794
|
})];
|
|
10698
10795
|
case 4:
|
|
10699
10796
|
tileset = (_b.sent()).tileset;
|
|
10797
|
+
if (!assertIteration(params.viewer, iteration)) {
|
|
10798
|
+
return [2 /*return*/];
|
|
10799
|
+
}
|
|
10700
10800
|
url = void 0;
|
|
10701
10801
|
vertexes = true;
|
|
10702
10802
|
if (tileset.type === bruceModels.Tileset.EType.Terrain) {
|
|
@@ -10821,6 +10921,14 @@
|
|
|
10821
10921
|
}
|
|
10822
10922
|
};
|
|
10823
10923
|
}
|
|
10924
|
+
else if (provider instanceof Cesium.EllipsoidTerrainProvider) {
|
|
10925
|
+
return {
|
|
10926
|
+
terrain: {
|
|
10927
|
+
tilesetId: bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain,
|
|
10928
|
+
accountId: null
|
|
10929
|
+
}
|
|
10930
|
+
};
|
|
10931
|
+
}
|
|
10824
10932
|
return null;
|
|
10825
10933
|
}
|
|
10826
10934
|
ViewUtils.GatherTerrainTile = GatherTerrainTile;
|
|
@@ -11236,13 +11344,34 @@
|
|
|
11236
11344
|
var MIN_SHADOW_SIZE = 2048;
|
|
11237
11345
|
var MAX_SHADOW_SIZE = 32768;
|
|
11238
11346
|
var RELATION_MENU_ITEM_ID = "BOOKMARK_ENTITY_RELATIONS";
|
|
11347
|
+
// Used to track if a current in-progress render is the latest.
|
|
11348
|
+
// If we're midway through an async function that is rendering a bookmark and this changes, then we stop the function.
|
|
11349
|
+
var ITERATION_KEY$1 = "nextspace-view-render-engine-iteration";
|
|
11350
|
+
/**
|
|
11351
|
+
* Creates a new iteration state.
|
|
11352
|
+
* This will stop any existing renders from processing to their end.
|
|
11353
|
+
* @param viewer
|
|
11354
|
+
* @returns
|
|
11355
|
+
*/
|
|
11356
|
+
function newIteration$1(viewer) {
|
|
11357
|
+
viewer[ITERATION_KEY$1] = bruceModels.ObjectUtils.UId();
|
|
11358
|
+
return viewer[ITERATION_KEY$1];
|
|
11359
|
+
}
|
|
11360
|
+
/**
|
|
11361
|
+
* Checks if a given iteration is still the active one for a given viewer.
|
|
11362
|
+
* @param viewer
|
|
11363
|
+
* @param iteration
|
|
11364
|
+
*/
|
|
11365
|
+
function assertIteration$1(viewer, iteration) {
|
|
11366
|
+
return viewer[ITERATION_KEY$1] == iteration;
|
|
11367
|
+
}
|
|
11239
11368
|
/**
|
|
11240
11369
|
* Renders DATA_VERSION = 1 navigator.
|
|
11241
11370
|
* @param params
|
|
11242
11371
|
* @param bookmark
|
|
11243
11372
|
* @param view
|
|
11244
11373
|
*/
|
|
11245
|
-
function renderLegacyNavigator(params, bookmark, view) {
|
|
11374
|
+
function renderLegacyNavigator(iteration, params, bookmark, view) {
|
|
11246
11375
|
var _a, _b, _c, _d, _e;
|
|
11247
11376
|
return __awaiter(this, void 0, void 0, function () {
|
|
11248
11377
|
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 +11391,17 @@
|
|
|
11262
11391
|
})];
|
|
11263
11392
|
case 1:
|
|
11264
11393
|
_f.sent();
|
|
11265
|
-
|
|
11266
|
-
|
|
11267
|
-
|
|
11268
|
-
|
|
11269
|
-
|
|
11270
|
-
|
|
11271
|
-
|
|
11272
|
-
|
|
11273
|
-
|
|
11394
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11395
|
+
return [2 /*return*/];
|
|
11396
|
+
}
|
|
11397
|
+
// We don't wait for imageries to load, this does not affect rendering other things.
|
|
11398
|
+
exports.TileRenderEngine.Map.LegacyNavigator.RenderView({
|
|
11399
|
+
apiGetter: params.apiGetter,
|
|
11400
|
+
bookmarkId: params.bookmarkId,
|
|
11401
|
+
viewer: manager.Viewer,
|
|
11402
|
+
viewId: params.viewId,
|
|
11403
|
+
ignoreIds: []
|
|
11404
|
+
});
|
|
11274
11405
|
baseColor = bSettings === null || bSettings === void 0 ? void 0 : bSettings.globeColor;
|
|
11275
11406
|
if (baseColor == null) {
|
|
11276
11407
|
// TODO: Need global default.
|
|
@@ -11344,7 +11475,7 @@
|
|
|
11344
11475
|
});
|
|
11345
11476
|
}
|
|
11346
11477
|
}
|
|
11347
|
-
if (!bookmark) return [3 /*break*/,
|
|
11478
|
+
if (!bookmark) return [3 /*break*/, 3];
|
|
11348
11479
|
return [4 /*yield*/, exports.MenuItemCreator.RenderBookmarkItems({
|
|
11349
11480
|
apiGetter: params.apiGetter,
|
|
11350
11481
|
getters: params.getters,
|
|
@@ -11352,11 +11483,14 @@
|
|
|
11352
11483
|
view: view,
|
|
11353
11484
|
bookmark: bookmark
|
|
11354
11485
|
})];
|
|
11355
|
-
case
|
|
11486
|
+
case 2:
|
|
11356
11487
|
_f.sent();
|
|
11357
|
-
|
|
11358
|
-
|
|
11359
|
-
|
|
11488
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11489
|
+
return [2 /*return*/];
|
|
11490
|
+
}
|
|
11491
|
+
_f.label = 3;
|
|
11492
|
+
case 3:
|
|
11493
|
+
if (!((_e = bSettings === null || bSettings === void 0 ? void 0 : bSettings.drawnRelationEntityIDs) === null || _e === void 0 ? void 0 : _e.length)) return [3 /*break*/, 5];
|
|
11360
11494
|
menuItem = {
|
|
11361
11495
|
id: RELATION_MENU_ITEM_ID,
|
|
11362
11496
|
Caption: "Entity relations",
|
|
@@ -11370,10 +11504,13 @@
|
|
|
11370
11504
|
getters: params.getters,
|
|
11371
11505
|
item: menuItem
|
|
11372
11506
|
})];
|
|
11373
|
-
case
|
|
11507
|
+
case 4:
|
|
11374
11508
|
_f.sent();
|
|
11375
|
-
|
|
11376
|
-
|
|
11509
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11510
|
+
return [2 /*return*/];
|
|
11511
|
+
}
|
|
11512
|
+
_f.label = 5;
|
|
11513
|
+
case 5: return [2 /*return*/];
|
|
11377
11514
|
}
|
|
11378
11515
|
});
|
|
11379
11516
|
});
|
|
@@ -11384,7 +11521,7 @@
|
|
|
11384
11521
|
* @param bookmark
|
|
11385
11522
|
* @param view
|
|
11386
11523
|
*/
|
|
11387
|
-
function renderNavigator(params, bookmark, view) {
|
|
11524
|
+
function renderNavigator(iteration, params, bookmark, view) {
|
|
11388
11525
|
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
11526
|
return __awaiter(this, void 0, void 0, function () {
|
|
11390
11527
|
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 +11587,9 @@
|
|
|
11450
11587
|
})];
|
|
11451
11588
|
case 1:
|
|
11452
11589
|
_6.sent();
|
|
11590
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11591
|
+
return [2 /*return*/];
|
|
11592
|
+
}
|
|
11453
11593
|
_6.label = 2;
|
|
11454
11594
|
case 2:
|
|
11455
11595
|
hillShades = (_o = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _o === void 0 ? void 0 : _o.hillShades;
|
|
@@ -11648,13 +11788,12 @@
|
|
|
11648
11788
|
}
|
|
11649
11789
|
];
|
|
11650
11790
|
}
|
|
11651
|
-
|
|
11652
|
-
|
|
11653
|
-
|
|
11654
|
-
|
|
11655
|
-
|
|
11656
|
-
|
|
11657
|
-
_6.sent();
|
|
11791
|
+
// We don't wait for imageries to load, this does not affect rendering other things.
|
|
11792
|
+
exports.TileRenderEngine.Map.Navigator.Render({
|
|
11793
|
+
apiGetter: params.apiGetter,
|
|
11794
|
+
tiles: imagery,
|
|
11795
|
+
viewer: params.manager.Viewer,
|
|
11796
|
+
});
|
|
11658
11797
|
renderedRelationEntityIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.renderedEntityRelations;
|
|
11659
11798
|
if (!renderedRelationEntityIds) {
|
|
11660
11799
|
renderedRelationEntityIds = [];
|
|
@@ -11670,18 +11809,21 @@
|
|
|
11670
11809
|
});
|
|
11671
11810
|
}
|
|
11672
11811
|
}
|
|
11673
|
-
if (!bookmark) return [3 /*break*/,
|
|
11812
|
+
if (!bookmark) return [3 /*break*/, 4];
|
|
11674
11813
|
return [4 /*yield*/, exports.MenuItemCreator.RenderBookmarkItems({
|
|
11675
11814
|
getters: params.getters,
|
|
11676
11815
|
manager: params.manager,
|
|
11677
11816
|
view: view,
|
|
11678
11817
|
bookmark: bookmark
|
|
11679
11818
|
})];
|
|
11680
|
-
case
|
|
11819
|
+
case 3:
|
|
11681
11820
|
_6.sent();
|
|
11682
|
-
|
|
11683
|
-
|
|
11684
|
-
|
|
11821
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11822
|
+
return [2 /*return*/];
|
|
11823
|
+
}
|
|
11824
|
+
_6.label = 4;
|
|
11825
|
+
case 4:
|
|
11826
|
+
if (!(renderedRelationEntityIds.length > 0)) return [3 /*break*/, 6];
|
|
11685
11827
|
menuItem = {
|
|
11686
11828
|
id: RELATION_MENU_ITEM_ID,
|
|
11687
11829
|
Caption: "Entity relations",
|
|
@@ -11694,10 +11836,13 @@
|
|
|
11694
11836
|
getters: params.getters,
|
|
11695
11837
|
item: menuItem
|
|
11696
11838
|
})];
|
|
11697
|
-
case
|
|
11839
|
+
case 5:
|
|
11698
11840
|
_6.sent();
|
|
11699
|
-
|
|
11700
|
-
|
|
11841
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11842
|
+
return [2 /*return*/];
|
|
11843
|
+
}
|
|
11844
|
+
_6.label = 6;
|
|
11845
|
+
case 6:
|
|
11701
11846
|
gOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.groundOcclusion;
|
|
11702
11847
|
if (gOcclusion == null) {
|
|
11703
11848
|
gOcclusion = (_5 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _5 === void 0 ? void 0 : _5.groundOcclusion;
|
|
@@ -11716,7 +11861,7 @@
|
|
|
11716
11861
|
function Render(params) {
|
|
11717
11862
|
var _a;
|
|
11718
11863
|
return __awaiter(this, void 0, void 0, function () {
|
|
11719
|
-
var api, view, _b, bookmark, bookmarkId, _c, version, bWidget;
|
|
11864
|
+
var iteration, api, view, _b, bookmark, bookmarkId, _c, version, bWidget;
|
|
11720
11865
|
return __generator(this, function (_d) {
|
|
11721
11866
|
switch (_d.label) {
|
|
11722
11867
|
case 0:
|
|
@@ -11729,6 +11874,7 @@
|
|
|
11729
11874
|
else if (!params.viewer && params.manager) {
|
|
11730
11875
|
params.viewer = params.manager.Viewer;
|
|
11731
11876
|
}
|
|
11877
|
+
iteration = newIteration$1(params.viewer);
|
|
11732
11878
|
if (!params.getters) {
|
|
11733
11879
|
params.getters = bruceModels.ENVIRONMENT.Api();
|
|
11734
11880
|
}
|
|
@@ -11773,17 +11919,23 @@
|
|
|
11773
11919
|
bookmark = _c;
|
|
11774
11920
|
_d.label = 7;
|
|
11775
11921
|
case 7:
|
|
11922
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11923
|
+
return [2 /*return*/];
|
|
11924
|
+
}
|
|
11776
11925
|
version = view.DataVersion;
|
|
11777
11926
|
if (!(version == 1)) return [3 /*break*/, 9];
|
|
11778
|
-
return [4 /*yield*/, renderLegacyNavigator(params, bookmark, view)];
|
|
11927
|
+
return [4 /*yield*/, renderLegacyNavigator(iteration, params, bookmark, view)];
|
|
11779
11928
|
case 8:
|
|
11780
11929
|
_d.sent();
|
|
11781
11930
|
return [3 /*break*/, 11];
|
|
11782
|
-
case 9: return [4 /*yield*/, renderNavigator(params, bookmark, view)];
|
|
11931
|
+
case 9: return [4 /*yield*/, renderNavigator(iteration, params, bookmark, view)];
|
|
11783
11932
|
case 10:
|
|
11784
11933
|
_d.sent();
|
|
11785
11934
|
_d.label = 11;
|
|
11786
11935
|
case 11:
|
|
11936
|
+
if (!assertIteration$1(params.viewer, iteration)) {
|
|
11937
|
+
return [2 /*return*/];
|
|
11938
|
+
}
|
|
11787
11939
|
bWidget = (_a = params.viewer) === null || _a === void 0 ? void 0 : _a[VIEWER_BOOKMARKS_WIDGET_KEY];
|
|
11788
11940
|
if (bWidget) {
|
|
11789
11941
|
bWidget.ViewId = params.viewId ? params.viewId : view === null || view === void 0 ? void 0 : view.ID;
|
|
@@ -14605,7 +14757,7 @@
|
|
|
14605
14757
|
ViewerUtils.CreateWidgets = CreateWidgets;
|
|
14606
14758
|
})(exports.ViewerUtils || (exports.ViewerUtils = {}));
|
|
14607
14759
|
|
|
14608
|
-
var VERSION$1 = "2.
|
|
14760
|
+
var VERSION$1 = "2.5.0";
|
|
14609
14761
|
|
|
14610
14762
|
exports.VERSION = VERSION$1;
|
|
14611
14763
|
exports.CesiumViewMonitor = CesiumViewMonitor;
|