bruce-cesium 6.8.1 → 6.8.3
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 +628 -248
- package/dist/bruce-cesium.es5.js.map +1 -1
- package/dist/bruce-cesium.umd.js +626 -246
- package/dist/bruce-cesium.umd.js.map +1 -1
- package/dist/lib/bruce-cesium.js +1 -1
- package/dist/lib/rendering/menu-item-manager.js +15 -0
- package/dist/lib/rendering/menu-item-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +61 -1
- package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +127 -42
- package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +10 -9
- package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +9 -8
- package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js +39 -23
- package/dist/lib/rendering/render-managers/tilesets/tileset-google-photos-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +157 -73
- package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +30 -0
- package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
- package/dist/lib/rendering/visual-register-culler.js +1 -1
- package/dist/lib/rendering/visual-register-culler.js.map +1 -1
- package/dist/lib/rendering/visuals-register.js +176 -88
- package/dist/lib/rendering/visuals-register.js.map +1 -1
- package/dist/types/bruce-cesium.d.ts +1 -1
- package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +6 -1
- package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +6 -1
- package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +1 -1
- package/dist/types/rendering/render-managers/tilesets/tileset-google-photos-render-manager.d.ts +6 -1
- package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +6 -1
- package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +5 -1
- package/dist/types/rendering/visuals-register.d.ts +17 -12
- package/package.json +8 -11
package/dist/bruce-cesium.umd.js
CHANGED
|
@@ -6132,7 +6132,7 @@
|
|
|
6132
6132
|
terrChangeRemoval = null;
|
|
6133
6133
|
clearTimeout(terrChangeTimeout);
|
|
6134
6134
|
terrChangeTimeout = null;
|
|
6135
|
-
checkInterval
|
|
6135
|
+
clearInterval(checkInterval);
|
|
6136
6136
|
checkInterval = null;
|
|
6137
6137
|
checkWaiting = false;
|
|
6138
6138
|
checkQueue === null || checkQueue === void 0 ? void 0 : checkQueue.Dispose();
|
|
@@ -6528,6 +6528,7 @@
|
|
|
6528
6528
|
// skipped by the applier so a live user action always wins.
|
|
6529
6529
|
this.lazyOverrideExclusions = new Set();
|
|
6530
6530
|
this.lazyOverrideInterval = null;
|
|
6531
|
+
this.activeChunkedIntervals = new Set();
|
|
6531
6532
|
this.onUpdate = null;
|
|
6532
6533
|
// Entity ID -> Menu Item ID -> State.
|
|
6533
6534
|
// When no Menu Item ID is set, then the second key is a blank string.
|
|
@@ -7124,6 +7125,31 @@
|
|
|
7124
7125
|
}
|
|
7125
7126
|
this.viewer.scene.requestRender();
|
|
7126
7127
|
}
|
|
7128
|
+
runChunked(items, perItem, onComplete) {
|
|
7129
|
+
const BATCH_SIZE = 5000;
|
|
7130
|
+
let index = 0;
|
|
7131
|
+
const interval = setInterval(() => {
|
|
7132
|
+
if (this.Disposed) {
|
|
7133
|
+
clearInterval(interval);
|
|
7134
|
+
this.activeChunkedIntervals.delete(interval);
|
|
7135
|
+
return;
|
|
7136
|
+
}
|
|
7137
|
+
const end = Math.min(index + BATCH_SIZE, items.length);
|
|
7138
|
+
for (; index < end; index++) {
|
|
7139
|
+
perItem(items[index]);
|
|
7140
|
+
}
|
|
7141
|
+
this.viewer.scene.requestRender();
|
|
7142
|
+
if (index >= items.length) {
|
|
7143
|
+
clearInterval(interval);
|
|
7144
|
+
this.activeChunkedIntervals.delete(interval);
|
|
7145
|
+
onComplete === null || onComplete === void 0 ? void 0 : onComplete();
|
|
7146
|
+
}
|
|
7147
|
+
}, 10);
|
|
7148
|
+
this.activeChunkedIntervals.add(interval);
|
|
7149
|
+
}
|
|
7150
|
+
startLazyRemoval(entityIds, removeOne, onComplete) {
|
|
7151
|
+
this.runChunked(entityIds, removeOne, onComplete);
|
|
7152
|
+
}
|
|
7127
7153
|
/**
|
|
7128
7154
|
* Cancels any in-flight lazy OverrideStates() apply.
|
|
7129
7155
|
*/
|
|
@@ -7196,9 +7222,7 @@
|
|
|
7196
7222
|
}, 10);
|
|
7197
7223
|
}
|
|
7198
7224
|
/**
|
|
7199
|
-
* Returns all states
|
|
7200
|
-
* This is a utility function for returning settings for apps that don't support the newer state settings.
|
|
7201
|
-
* @deprecated Use GetStates() or GetState().
|
|
7225
|
+
* Returns all states keyed by entity id, without regard to menu item id.
|
|
7202
7226
|
* @returns
|
|
7203
7227
|
*/
|
|
7204
7228
|
GetStatesLegacy() {
|
|
@@ -7224,7 +7248,7 @@
|
|
|
7224
7248
|
const entityId = entityIds[i];
|
|
7225
7249
|
const state = this.GetState({
|
|
7226
7250
|
entityId: entityId,
|
|
7227
|
-
//
|
|
7251
|
+
// Most-recently-set Menu Item for this entity, if any.
|
|
7228
7252
|
menuItemId: entityIdsMenuItem[entityId]
|
|
7229
7253
|
});
|
|
7230
7254
|
states[entityId] = state;
|
|
@@ -7280,6 +7304,10 @@
|
|
|
7280
7304
|
clearInterval(this.lazyOverrideInterval);
|
|
7281
7305
|
this.lazyOverrideInterval = null;
|
|
7282
7306
|
this.lazyOverrideActive = false;
|
|
7307
|
+
for (const interval of this.activeChunkedIntervals) {
|
|
7308
|
+
clearInterval(interval);
|
|
7309
|
+
}
|
|
7310
|
+
this.activeChunkedIntervals.clear();
|
|
7283
7311
|
this.disposed = true;
|
|
7284
7312
|
}
|
|
7285
7313
|
ForceUpdate(params) {
|
|
@@ -7370,8 +7398,7 @@
|
|
|
7370
7398
|
}
|
|
7371
7399
|
}
|
|
7372
7400
|
/**
|
|
7373
|
-
* Returns all labelled entity ids.
|
|
7374
|
-
* @deprecated Use GetStates() or GetState().
|
|
7401
|
+
* Returns all labelled entity ids, without regard to menu item id.
|
|
7375
7402
|
*/
|
|
7376
7403
|
GetLabelled() {
|
|
7377
7404
|
const labelledIds = [];
|
|
@@ -7522,7 +7549,7 @@
|
|
|
7522
7549
|
}
|
|
7523
7550
|
}
|
|
7524
7551
|
/**
|
|
7525
|
-
*
|
|
7552
|
+
* Returns all selected entity ids, without regard to menu item id.
|
|
7526
7553
|
* @returns
|
|
7527
7554
|
*/
|
|
7528
7555
|
GetSelected() {
|
|
@@ -7657,7 +7684,7 @@
|
|
|
7657
7684
|
}
|
|
7658
7685
|
}
|
|
7659
7686
|
/**
|
|
7660
|
-
*
|
|
7687
|
+
* Returns all highlighted entity ids, without regard to menu item id.
|
|
7661
7688
|
* @returns
|
|
7662
7689
|
*/
|
|
7663
7690
|
GetHighlighted() {
|
|
@@ -7718,7 +7745,7 @@
|
|
|
7718
7745
|
return this.isolatedAnyCache;
|
|
7719
7746
|
}
|
|
7720
7747
|
/**
|
|
7721
|
-
*
|
|
7748
|
+
* Returns all isolated entity ids, without regard to menu item id.
|
|
7722
7749
|
* @returns
|
|
7723
7750
|
*/
|
|
7724
7751
|
GetIsolated() {
|
|
@@ -7776,7 +7803,7 @@
|
|
|
7776
7803
|
return state.hidden === true;
|
|
7777
7804
|
}
|
|
7778
7805
|
/**
|
|
7779
|
-
*
|
|
7806
|
+
* Returns all hidden entity ids, without regard to menu item id.
|
|
7780
7807
|
* @returns
|
|
7781
7808
|
*/
|
|
7782
7809
|
GetHidden() {
|
|
@@ -7863,8 +7890,8 @@
|
|
|
7863
7890
|
* Re-parents every rego registered under one menu item id to a different menu item id.
|
|
7864
7891
|
*/
|
|
7865
7892
|
ReassignMenuItem(params) {
|
|
7866
|
-
var _a
|
|
7867
|
-
const { fromMenuItemId, toMenuItemId, toMenuItemType, toPriority, requestRender, source } = params;
|
|
7893
|
+
var _a;
|
|
7894
|
+
const { fromMenuItemId, toMenuItemId, toMenuItemType, toPriority, requestRender, source, lazy, onBatch, onComplete } = params;
|
|
7868
7895
|
if (!fromMenuItemId || !toMenuItemId || fromMenuItemId === toMenuItemId) {
|
|
7869
7896
|
return;
|
|
7870
7897
|
}
|
|
@@ -7872,37 +7899,44 @@
|
|
|
7872
7899
|
if (!entityIds) {
|
|
7873
7900
|
return;
|
|
7874
7901
|
}
|
|
7875
|
-
|
|
7876
|
-
|
|
7902
|
+
const idsSnapshot = Array.from(entityIds);
|
|
7903
|
+
const regoSnapshot = new Map();
|
|
7904
|
+
for (const entityId of idsSnapshot) {
|
|
7905
|
+
const snapRego = (_a = this.rego[entityId]) === null || _a === void 0 ? void 0 : _a.find(r => r.menuItemId === fromMenuItemId);
|
|
7906
|
+
if (snapRego) {
|
|
7907
|
+
regoSnapshot.set(entityId, snapRego);
|
|
7908
|
+
}
|
|
7909
|
+
}
|
|
7910
|
+
const reassignOne = (entityId) => {
|
|
7911
|
+
var _a, _b;
|
|
7877
7912
|
const regos = this.rego[entityId];
|
|
7878
7913
|
if (!regos) {
|
|
7879
|
-
|
|
7914
|
+
return null;
|
|
7880
7915
|
}
|
|
7881
|
-
|
|
7882
|
-
|
|
7883
|
-
|
|
7884
|
-
|
|
7885
|
-
|
|
7886
|
-
|
|
7887
|
-
|
|
7888
|
-
|
|
7889
|
-
|
|
7890
|
-
|
|
7891
|
-
|
|
7892
|
-
|
|
7893
|
-
|
|
7894
|
-
|
|
7895
|
-
|
|
7896
|
-
|
|
7897
|
-
|
|
7898
|
-
|
|
7899
|
-
|
|
7900
|
-
|
|
7901
|
-
|
|
7902
|
-
|
|
7903
|
-
|
|
7904
|
-
|
|
7905
|
-
}
|
|
7916
|
+
const rego = regos.find(r => r.menuItemId === fromMenuItemId);
|
|
7917
|
+
if (!rego || rego !== regoSnapshot.get(entityId)) {
|
|
7918
|
+
return null;
|
|
7919
|
+
}
|
|
7920
|
+
if (source !== EUpdateSource.TREE_CASCADE) {
|
|
7921
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
|
|
7922
|
+
type: EVisualUpdateType.Remove,
|
|
7923
|
+
entityId,
|
|
7924
|
+
rego: { ...rego, menuItemId: fromMenuItemId },
|
|
7925
|
+
source
|
|
7926
|
+
});
|
|
7927
|
+
}
|
|
7928
|
+
rego.menuItemId = toMenuItemId;
|
|
7929
|
+
rego.menuItemType = toMenuItemType;
|
|
7930
|
+
if (toPriority != null) {
|
|
7931
|
+
rego.priority = toPriority;
|
|
7932
|
+
}
|
|
7933
|
+
if (source !== EUpdateSource.TREE_CASCADE) {
|
|
7934
|
+
(_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({
|
|
7935
|
+
type: EVisualUpdateType.Add,
|
|
7936
|
+
entityId,
|
|
7937
|
+
rego,
|
|
7938
|
+
source
|
|
7939
|
+
});
|
|
7906
7940
|
}
|
|
7907
7941
|
const eStates = this.states[entityId];
|
|
7908
7942
|
const movingState = eStates === null || eStates === void 0 ? void 0 : eStates[fromMenuItemId];
|
|
@@ -7922,11 +7956,50 @@
|
|
|
7922
7956
|
entityId,
|
|
7923
7957
|
refresh: true
|
|
7924
7958
|
});
|
|
7959
|
+
return rego;
|
|
7960
|
+
};
|
|
7961
|
+
if (lazy) {
|
|
7962
|
+
this.startLazyReassign(idsSnapshot, reassignOne, requestRender, onBatch, onComplete);
|
|
7963
|
+
return;
|
|
7964
|
+
}
|
|
7965
|
+
for (const entityId of idsSnapshot) {
|
|
7966
|
+
reassignOne(entityId);
|
|
7925
7967
|
}
|
|
7926
7968
|
if (requestRender != false) {
|
|
7927
7969
|
this.viewer.scene.requestRender();
|
|
7928
7970
|
}
|
|
7929
7971
|
}
|
|
7972
|
+
startLazyReassign(entityIds, reassignOne, requestRender, onBatch, onComplete) {
|
|
7973
|
+
const BATCH_SIZE = 5000;
|
|
7974
|
+
let index = 0;
|
|
7975
|
+
const interval = setInterval(() => {
|
|
7976
|
+
if (this.Disposed) {
|
|
7977
|
+
clearInterval(interval);
|
|
7978
|
+
this.activeChunkedIntervals.delete(interval);
|
|
7979
|
+
return;
|
|
7980
|
+
}
|
|
7981
|
+
const end = Math.min(index + BATCH_SIZE, entityIds.length);
|
|
7982
|
+
const batch = [];
|
|
7983
|
+
for (; index < end; index++) {
|
|
7984
|
+
const rego = reassignOne(entityIds[index]);
|
|
7985
|
+
if (rego) {
|
|
7986
|
+
batch.push(rego);
|
|
7987
|
+
}
|
|
7988
|
+
}
|
|
7989
|
+
if (batch.length) {
|
|
7990
|
+
onBatch === null || onBatch === void 0 ? void 0 : onBatch(batch);
|
|
7991
|
+
}
|
|
7992
|
+
if (requestRender != false) {
|
|
7993
|
+
this.viewer.scene.requestRender();
|
|
7994
|
+
}
|
|
7995
|
+
if (index >= entityIds.length) {
|
|
7996
|
+
clearInterval(interval);
|
|
7997
|
+
this.activeChunkedIntervals.delete(interval);
|
|
7998
|
+
onComplete === null || onComplete === void 0 ? void 0 : onComplete();
|
|
7999
|
+
}
|
|
8000
|
+
}, 10);
|
|
8001
|
+
this.activeChunkedIntervals.add(interval);
|
|
8002
|
+
}
|
|
7930
8003
|
/**
|
|
7931
8004
|
* Locates a visual corresponding to a given entity id.
|
|
7932
8005
|
* If no menu item id is provided, then it will pick the "best" one.
|
|
@@ -7969,6 +8042,7 @@
|
|
|
7969
8042
|
GetRegos(params) {
|
|
7970
8043
|
// TODO: refactor.
|
|
7971
8044
|
// Currently this was made by merging two functions.
|
|
8045
|
+
var _a;
|
|
7972
8046
|
const { entityId, menuItemId, styleId, styleEffectiveFilter } = params;
|
|
7973
8047
|
const matchesStyleFilters = (rego) => {
|
|
7974
8048
|
if (styleId != null && rego.styleId !== styleId) {
|
|
@@ -7992,10 +8066,10 @@
|
|
|
7992
8066
|
}
|
|
7993
8067
|
else if (menuItemId) {
|
|
7994
8068
|
const visuals = [];
|
|
7995
|
-
|
|
7996
|
-
|
|
7997
|
-
|
|
7998
|
-
const rego =
|
|
8069
|
+
const eIds = this.entityIdsByMenuItem[menuItemId];
|
|
8070
|
+
if (eIds) {
|
|
8071
|
+
for (const eId of eIds) {
|
|
8072
|
+
const rego = (_a = this.rego[eId]) === null || _a === void 0 ? void 0 : _a.find(r => r.menuItemId === menuItemId);
|
|
7999
8073
|
if (rego && matchesStyleFilters(rego)) {
|
|
8000
8074
|
visuals.push(rego);
|
|
8001
8075
|
}
|
|
@@ -8027,7 +8101,7 @@
|
|
|
8027
8101
|
*/
|
|
8028
8102
|
RemoveRegos(params) {
|
|
8029
8103
|
var _a, _b, _c;
|
|
8030
|
-
let { entityId, menuItemId, doUpdate, relation, retainTagIds, requestRender, doRemove, source } = params;
|
|
8104
|
+
let { entityId, menuItemId, doUpdate, relation, retainTagIds, requestRender, doRemove, source, lazy, onComplete } = params;
|
|
8031
8105
|
if (doUpdate == null || doUpdate === undefined) {
|
|
8032
8106
|
doUpdate = true;
|
|
8033
8107
|
}
|
|
@@ -8038,50 +8112,65 @@
|
|
|
8038
8112
|
// Currently this was made by merging two functions.
|
|
8039
8113
|
if (menuItemId && !entityId) {
|
|
8040
8114
|
// Entities registered under this menu item, keyed via entityIdsByMenuItem.
|
|
8041
|
-
// Snapshot to an array since removals below mutate the backing set.
|
|
8042
8115
|
const entityIds = this.entityIdsByMenuItem[menuItemId] ? Array.from(this.entityIdsByMenuItem[menuItemId]) : [];
|
|
8043
|
-
|
|
8116
|
+
const regoSnapshot = new Map();
|
|
8117
|
+
for (const snapEntityId of entityIds) {
|
|
8118
|
+
const snapRego = (_a = this.rego[snapEntityId]) === null || _a === void 0 ? void 0 : _a.find(r => r.menuItemId === menuItemId);
|
|
8119
|
+
if (snapRego) {
|
|
8120
|
+
regoSnapshot.set(snapEntityId, snapRego);
|
|
8121
|
+
}
|
|
8122
|
+
}
|
|
8123
|
+
const removeOne = (entityId) => {
|
|
8124
|
+
var _a;
|
|
8044
8125
|
const entityRegos = this.rego[entityId];
|
|
8045
|
-
if (entityRegos) {
|
|
8046
|
-
|
|
8047
|
-
|
|
8048
|
-
|
|
8049
|
-
|
|
8050
|
-
|
|
8051
|
-
|
|
8052
|
-
|
|
8053
|
-
|
|
8054
|
-
|
|
8055
|
-
|
|
8056
|
-
|
|
8126
|
+
if (!entityRegos) {
|
|
8127
|
+
return;
|
|
8128
|
+
}
|
|
8129
|
+
const rego = entityRegos.find(r => r.menuItemId === menuItemId);
|
|
8130
|
+
if (!rego || rego !== regoSnapshot.get(entityId)) {
|
|
8131
|
+
return;
|
|
8132
|
+
}
|
|
8133
|
+
const regoTagIds = rego.tagIds ? rego.tagIds : [];
|
|
8134
|
+
const shouldRetain = regoTagIds.some(tagId => retainTagIds.includes(tagId));
|
|
8135
|
+
if (shouldRetain) {
|
|
8136
|
+
return;
|
|
8137
|
+
}
|
|
8138
|
+
exports.EntityLabel.Detatch({
|
|
8139
|
+
rego
|
|
8140
|
+
});
|
|
8141
|
+
if (doRemove != false) {
|
|
8142
|
+
removeEntity(this.viewer, rego.visual);
|
|
8143
|
+
}
|
|
8144
|
+
rego.visual = null;
|
|
8145
|
+
const doesInclude = this.rego[entityId].find(r => r.menuItemId === menuItemId);
|
|
8146
|
+
if (doesInclude) {
|
|
8147
|
+
this.rego[entityId] = entityRegos.filter(r => r.menuItemId !== menuItemId);
|
|
8148
|
+
this.unindexMenuItemEntityIfAbsent(menuItemId, entityId);
|
|
8149
|
+
}
|
|
8150
|
+
const update = {
|
|
8151
|
+
type: EVisualUpdateType.Remove,
|
|
8152
|
+
entityId: rego.entityId,
|
|
8153
|
+
rego: rego
|
|
8154
|
+
};
|
|
8155
|
+
if (source) {
|
|
8156
|
+
update.source = source;
|
|
8157
|
+
}
|
|
8158
|
+
if (source !== EUpdateSource.TREE_CASCADE) {
|
|
8159
|
+
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(update);
|
|
8160
|
+
}
|
|
8161
|
+
if (doesInclude) {
|
|
8162
|
+
this.queueUpdate({
|
|
8163
|
+
entityId: entityId,
|
|
8164
|
+
refresh: false
|
|
8057
8165
|
});
|
|
8058
|
-
if (doRemove != false) {
|
|
8059
|
-
removeEntity(this.viewer, rego.visual);
|
|
8060
|
-
}
|
|
8061
|
-
rego.visual = null;
|
|
8062
|
-
const doesInclude = this.rego[entityId].find(r => r.menuItemId === menuItemId);
|
|
8063
|
-
if (doesInclude) {
|
|
8064
|
-
this.rego[entityId] = entityRegos.filter(r => r.menuItemId !== menuItemId);
|
|
8065
|
-
this.unindexMenuItemEntityIfAbsent(menuItemId, entityId);
|
|
8066
|
-
}
|
|
8067
|
-
const update = {
|
|
8068
|
-
type: EVisualUpdateType.Remove,
|
|
8069
|
-
entityId: rego.entityId,
|
|
8070
|
-
rego: rego
|
|
8071
|
-
};
|
|
8072
|
-
if (source) {
|
|
8073
|
-
update.source = source;
|
|
8074
|
-
}
|
|
8075
|
-
if (source !== EUpdateSource.TREE_CASCADE) {
|
|
8076
|
-
(_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger(update);
|
|
8077
|
-
}
|
|
8078
|
-
if (doesInclude) {
|
|
8079
|
-
this.queueUpdate({
|
|
8080
|
-
entityId: entityId,
|
|
8081
|
-
refresh: false
|
|
8082
|
-
});
|
|
8083
|
-
}
|
|
8084
8166
|
}
|
|
8167
|
+
};
|
|
8168
|
+
if (lazy) {
|
|
8169
|
+
this.startLazyRemoval(entityIds, removeOne, onComplete);
|
|
8170
|
+
return;
|
|
8171
|
+
}
|
|
8172
|
+
for (const entityId of entityIds) {
|
|
8173
|
+
removeOne(entityId);
|
|
8085
8174
|
}
|
|
8086
8175
|
}
|
|
8087
8176
|
else if (entityId) {
|
|
@@ -8404,10 +8493,9 @@
|
|
|
8404
8493
|
});
|
|
8405
8494
|
}
|
|
8406
8495
|
/**
|
|
8407
|
-
* Returns a dictionary containing entityId -> opacity values
|
|
8408
|
-
* Opacity 1 = 100%.
|
|
8496
|
+
* Returns a dictionary containing entityId -> opacity values, without regard to
|
|
8497
|
+
* menu item id. Opacity 1 = 100%.
|
|
8409
8498
|
* @returns
|
|
8410
|
-
* @deprecated Use GetStates() or GetState().
|
|
8411
8499
|
*/
|
|
8412
8500
|
GetOpacityMap() {
|
|
8413
8501
|
const map = {};
|
|
@@ -9369,7 +9457,7 @@
|
|
|
9369
9457
|
return new Cesium.Color(color.red ? color.red / 255 : 0, color.green ? color.green / 255 : 0, color.blue ? color.blue / 255 : 0, color.alpha);
|
|
9370
9458
|
}
|
|
9371
9459
|
function getShowDebugBounds() {
|
|
9372
|
-
if (
|
|
9460
|
+
if (typeof window === "undefined") {
|
|
9373
9461
|
return false;
|
|
9374
9462
|
}
|
|
9375
9463
|
let showBounds = window === null || window === void 0 ? void 0 : window.ENTITIES_RENDER_MANAGER_SHOW_BOUNDS;
|
|
@@ -9441,52 +9529,17 @@
|
|
|
9441
9529
|
this.item = params.item;
|
|
9442
9530
|
}
|
|
9443
9531
|
(async () => {
|
|
9444
|
-
var _a, _b, _c, _d
|
|
9532
|
+
var _a, _b, _c, _d;
|
|
9445
9533
|
if (this.disposed) {
|
|
9446
9534
|
return;
|
|
9447
9535
|
}
|
|
9448
9536
|
try {
|
|
9449
|
-
|
|
9450
|
-
if (((_a = this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a["EntityType.ID"]) && !this.allowedTypeIDs.includes((_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"])) {
|
|
9451
|
-
this.allowedTypeIDs = [];
|
|
9452
|
-
if ((_c = this.item.BruceEntity) === null || _c === void 0 ? void 0 : _c["EntityType.ID"]) {
|
|
9453
|
-
this.allowedTypeIDs.push((_d = this.item.BruceEntity) === null || _d === void 0 ? void 0 : _d["EntityType.ID"]);
|
|
9454
|
-
}
|
|
9455
|
-
}
|
|
9537
|
+
const { tagsToRender, shouldRender } = this.applyItemSettings();
|
|
9456
9538
|
if (this.disposed) {
|
|
9457
9539
|
return;
|
|
9458
9540
|
}
|
|
9459
|
-
this.zoomControl = this.item.CameraZoomSettings;
|
|
9460
|
-
if (!((_e = this.zoomControl) === null || _e === void 0 ? void 0 : _e.length)) {
|
|
9461
|
-
this.zoomControl = [
|
|
9462
|
-
{
|
|
9463
|
-
MinZoom: 0,
|
|
9464
|
-
MaxZoom: 200000,
|
|
9465
|
-
DisplayType: BModels.ZoomControl.EDisplayType.Model3D,
|
|
9466
|
-
LODCategoryID: "glb",
|
|
9467
|
-
LODLevel: 0,
|
|
9468
|
-
StyleID: 0
|
|
9469
|
-
}
|
|
9470
|
-
];
|
|
9471
|
-
}
|
|
9472
|
-
this.renderPriority = this.item.renderPriority;
|
|
9473
|
-
if (this.renderPriority == null) {
|
|
9474
|
-
this.renderPriority = 1;
|
|
9475
|
-
}
|
|
9476
|
-
if (this.useGeojson && this.zoomControl.length > 1) {
|
|
9477
|
-
console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
|
|
9478
|
-
this.zoomControl = [this.zoomControl[0]];
|
|
9479
|
-
}
|
|
9480
|
-
this.scenario = (_f = this.item.BruceEntity) === null || _f === void 0 ? void 0 : _f.Scenario;
|
|
9481
|
-
const isTagItem = Boolean(this.item.BruceEntity.ExpandLayers);
|
|
9482
|
-
let tagsToRender = isTagItem ? this.item.BruceEntity.SelectedExpandLayers : null;
|
|
9483
|
-
if (!tagsToRender) {
|
|
9484
|
-
tagsToRender = [];
|
|
9485
|
-
}
|
|
9486
|
-
tagsToRender = [].concat(tagsToRender);
|
|
9487
|
-
const shouldRender = !isTagItem || tagsToRender.length > 0;
|
|
9488
9541
|
this.unsetGetter();
|
|
9489
|
-
(
|
|
9542
|
+
(_a = this.viewMonitorRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
9490
9543
|
this.viewMonitorRemoval = null;
|
|
9491
9544
|
clearInterval(this.renderQueueInterval);
|
|
9492
9545
|
this.renderQueueInterval = null;
|
|
@@ -9498,17 +9551,17 @@
|
|
|
9498
9551
|
menuItemId: this.item.id,
|
|
9499
9552
|
retainTagIds: tagsToRender
|
|
9500
9553
|
});
|
|
9501
|
-
(
|
|
9554
|
+
(_b = this.clustering) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
9502
9555
|
}
|
|
9503
9556
|
else {
|
|
9504
9557
|
this.visualsManager.RemoveRegos({
|
|
9505
9558
|
menuItemId: this.item.id
|
|
9506
9559
|
});
|
|
9507
|
-
(
|
|
9560
|
+
(_c = this.clustering) === null || _c === void 0 ? void 0 : _c.Dispose();
|
|
9508
9561
|
return;
|
|
9509
9562
|
}
|
|
9510
9563
|
if (this.item.enableClustering) {
|
|
9511
|
-
this.clustering = new PointClustering(this.visualsManager, this.item.id, (
|
|
9564
|
+
this.clustering = new PointClustering(this.visualsManager, this.item.id, (_d = this.item) === null || _d === void 0 ? void 0 : _d.clustering);
|
|
9512
9565
|
}
|
|
9513
9566
|
this.setGetter();
|
|
9514
9567
|
this.viewMonitorRemoval = this.monitor.Updated().Subscribe(() => {
|
|
@@ -9521,6 +9574,46 @@
|
|
|
9521
9574
|
}
|
|
9522
9575
|
})();
|
|
9523
9576
|
}
|
|
9577
|
+
applyItemSettings() {
|
|
9578
|
+
var _a, _b, _c, _d, _e, _f;
|
|
9579
|
+
// Reset allowed list if there's change.
|
|
9580
|
+
if (((_a = this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a["EntityType.ID"]) && !this.allowedTypeIDs.includes((_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"])) {
|
|
9581
|
+
this.allowedTypeIDs = [];
|
|
9582
|
+
if ((_c = this.item.BruceEntity) === null || _c === void 0 ? void 0 : _c["EntityType.ID"]) {
|
|
9583
|
+
this.allowedTypeIDs.push((_d = this.item.BruceEntity) === null || _d === void 0 ? void 0 : _d["EntityType.ID"]);
|
|
9584
|
+
}
|
|
9585
|
+
}
|
|
9586
|
+
this.zoomControl = this.item.CameraZoomSettings;
|
|
9587
|
+
if (!((_e = this.zoomControl) === null || _e === void 0 ? void 0 : _e.length)) {
|
|
9588
|
+
this.zoomControl = [
|
|
9589
|
+
{
|
|
9590
|
+
MinZoom: 0,
|
|
9591
|
+
MaxZoom: 200000,
|
|
9592
|
+
DisplayType: BModels.ZoomControl.EDisplayType.Model3D,
|
|
9593
|
+
LODCategoryID: "glb",
|
|
9594
|
+
LODLevel: 0,
|
|
9595
|
+
StyleID: 0
|
|
9596
|
+
}
|
|
9597
|
+
];
|
|
9598
|
+
}
|
|
9599
|
+
this.renderPriority = this.item.renderPriority;
|
|
9600
|
+
if (this.renderPriority == null) {
|
|
9601
|
+
this.renderPriority = 1;
|
|
9602
|
+
}
|
|
9603
|
+
if (this.useGeojson && this.zoomControl.length > 1) {
|
|
9604
|
+
console.warn("Geojson rendering does not support multiple zoom controls. Only the first one will be used.");
|
|
9605
|
+
this.zoomControl = [this.zoomControl[0]];
|
|
9606
|
+
}
|
|
9607
|
+
this.scenario = (_f = this.item.BruceEntity) === null || _f === void 0 ? void 0 : _f.Scenario;
|
|
9608
|
+
const isTagItem = Boolean(this.item.BruceEntity.ExpandLayers);
|
|
9609
|
+
let tagsToRender = isTagItem ? this.item.BruceEntity.SelectedExpandLayers : null;
|
|
9610
|
+
if (!tagsToRender) {
|
|
9611
|
+
tagsToRender = [];
|
|
9612
|
+
}
|
|
9613
|
+
tagsToRender = [].concat(tagsToRender);
|
|
9614
|
+
const shouldRender = !isTagItem || tagsToRender.length > 0;
|
|
9615
|
+
return { isTagItem, tagsToRender, shouldRender };
|
|
9616
|
+
}
|
|
9524
9617
|
/**
|
|
9525
9618
|
* Updates allowedTypeIDs values based in incoming data.
|
|
9526
9619
|
* We might request 'x' Entity Type, but get 'y' Entities due to local Data Sources.
|
|
@@ -10505,6 +10598,86 @@
|
|
|
10505
10598
|
this.clustering.Update();
|
|
10506
10599
|
}
|
|
10507
10600
|
}
|
|
10601
|
+
get HandoffKey() {
|
|
10602
|
+
return Manager.GetHandoffKey(this.item);
|
|
10603
|
+
}
|
|
10604
|
+
static GetHandoffKey(item) {
|
|
10605
|
+
var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o;
|
|
10606
|
+
if (item.renderAsGeojson || item.enableClustering) {
|
|
10607
|
+
return null;
|
|
10608
|
+
}
|
|
10609
|
+
const isTagItem = Boolean((_a = item.BruceEntity) === null || _a === void 0 ? void 0 : _a.ExpandLayers);
|
|
10610
|
+
const tags = isTagItem ? [].concat((_c = (_b = item.BruceEntity) === null || _b === void 0 ? void 0 : _b.SelectedExpandLayers) !== null && _c !== void 0 ? _c : []).sort() : [];
|
|
10611
|
+
return JSON.stringify({
|
|
10612
|
+
typeId: ((_d = item.BruceEntity) === null || _d === void 0 ? void 0 : _d["EntityType.ID"]) || "",
|
|
10613
|
+
filter: (_f = (_e = item.BruceEntity) === null || _e === void 0 ? void 0 : _e.Filter) !== null && _f !== void 0 ? _f : {},
|
|
10614
|
+
isTagItem,
|
|
10615
|
+
tags,
|
|
10616
|
+
scenario: (_h = (_g = item.BruceEntity) === null || _g === void 0 ? void 0 : _g.Scenario) !== null && _h !== void 0 ? _h : "",
|
|
10617
|
+
historic: Boolean((_j = item.BruceEntity) === null || _j === void 0 ? void 0 : _j.historic),
|
|
10618
|
+
historicAttrKey: ((_k = item.BruceEntity) === null || _k === void 0 ? void 0 : _k.historicAttrKey) || "",
|
|
10619
|
+
historicInterpolation: Boolean(item.historicInterpolation),
|
|
10620
|
+
schemaId: ((_l = item.BruceEntity) === null || _l === void 0 ? void 0 : _l.schemaId) || "",
|
|
10621
|
+
cdnEnabled: Boolean(item.cdnEnabled),
|
|
10622
|
+
optimizeGeometry: Boolean(item.optimizeGeometry),
|
|
10623
|
+
optimizeMinPoints: (_m = item.optimizeMinPoints) !== null && _m !== void 0 ? _m : "",
|
|
10624
|
+
optimizeTolerance: (_o = item.optimizeTolerance) !== null && _o !== void 0 ? _o : ""
|
|
10625
|
+
});
|
|
10626
|
+
}
|
|
10627
|
+
PrepareHandoff() {
|
|
10628
|
+
var _a;
|
|
10629
|
+
if (this.disposed || this.useGeojson || this.item.enableClustering) {
|
|
10630
|
+
return null;
|
|
10631
|
+
}
|
|
10632
|
+
const payload = {
|
|
10633
|
+
renderedEntities: this.renderedEntities,
|
|
10634
|
+
renderedByInternalId: new Map(this.renderedByInternalId),
|
|
10635
|
+
internalByEntityId: new Map(this.internalByEntityId),
|
|
10636
|
+
allowedTypeIDs: [...this.allowedTypeIDs],
|
|
10637
|
+
renderQueue: [...this.renderQueue],
|
|
10638
|
+
sourceMenuItemId: this.item.id
|
|
10639
|
+
};
|
|
10640
|
+
this.unsetGetter();
|
|
10641
|
+
(_a = this.viewMonitorRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
10642
|
+
this.viewMonitorRemoval = null;
|
|
10643
|
+
clearInterval(this.renderQueueInterval);
|
|
10644
|
+
this.renderQueueInterval = null;
|
|
10645
|
+
this.renderQueue = [];
|
|
10646
|
+
this.disposed = true;
|
|
10647
|
+
return payload;
|
|
10648
|
+
}
|
|
10649
|
+
AdoptHandoff(payload) {
|
|
10650
|
+
var _a;
|
|
10651
|
+
const { shouldRender } = this.applyItemSettings();
|
|
10652
|
+
this.visualsManager.ReassignMenuItem({
|
|
10653
|
+
fromMenuItemId: payload.sourceMenuItemId,
|
|
10654
|
+
toMenuItemId: this.item.id,
|
|
10655
|
+
toMenuItemType: this.item.Type,
|
|
10656
|
+
toPriority: this.renderPriority,
|
|
10657
|
+
requestRender: false
|
|
10658
|
+
});
|
|
10659
|
+
if (!shouldRender) {
|
|
10660
|
+
this.renderedEntities = payload.renderedEntities;
|
|
10661
|
+
this.renderedByInternalId = payload.renderedByInternalId;
|
|
10662
|
+
this.internalByEntityId = payload.internalByEntityId;
|
|
10663
|
+
this.allowedTypeIDs = payload.allowedTypeIDs;
|
|
10664
|
+
return;
|
|
10665
|
+
}
|
|
10666
|
+
this.setGetter();
|
|
10667
|
+
this.viewMonitorRemoval = this.monitor.Updated().Subscribe(() => {
|
|
10668
|
+
var _a;
|
|
10669
|
+
(_a = this.entityCheckQueue) === null || _a === void 0 ? void 0 : _a.Call();
|
|
10670
|
+
});
|
|
10671
|
+
this.renderedEntities = payload.renderedEntities;
|
|
10672
|
+
this.renderedByInternalId = payload.renderedByInternalId;
|
|
10673
|
+
this.internalByEntityId = payload.internalByEntityId;
|
|
10674
|
+
this.allowedTypeIDs = payload.allowedTypeIDs;
|
|
10675
|
+
if ((_a = payload.renderQueue) === null || _a === void 0 ? void 0 : _a.length) {
|
|
10676
|
+
this.distributeForRender(payload.renderQueue);
|
|
10677
|
+
}
|
|
10678
|
+
this.doEntityCheck(Object.keys(this.renderedEntities));
|
|
10679
|
+
this.viewer.scene.requestRender();
|
|
10680
|
+
}
|
|
10508
10681
|
}
|
|
10509
10682
|
EntitiesRenderManager.Manager = Manager;
|
|
10510
10683
|
})(exports.EntitiesRenderManager || (exports.EntitiesRenderManager = {}));
|
|
@@ -14385,14 +14558,6 @@
|
|
|
14385
14558
|
if (this.renderPriority == null) {
|
|
14386
14559
|
this.renderPriority = 0;
|
|
14387
14560
|
}
|
|
14388
|
-
// Same visuals, same registrations - just re-keyed onto this menu item.
|
|
14389
|
-
this.visualsManager.ReassignMenuItem({
|
|
14390
|
-
fromMenuItemId: payload.sourceMenuItemId,
|
|
14391
|
-
toMenuItemId: this.item.id,
|
|
14392
|
-
toMenuItemType: this.item.Type,
|
|
14393
|
-
toPriority: this.renderPriority,
|
|
14394
|
-
requestRender: false
|
|
14395
|
-
});
|
|
14396
14561
|
this.tileLoadRemoval = this.cTileset.tileLoad.addEventListener((tile) => {
|
|
14397
14562
|
try {
|
|
14398
14563
|
this.queueTile(tile, true);
|
|
@@ -14409,6 +14574,14 @@
|
|
|
14409
14574
|
console.error(e);
|
|
14410
14575
|
}
|
|
14411
14576
|
});
|
|
14577
|
+
// Same visuals, same registrations so just re-keyed onto this menu item.
|
|
14578
|
+
this.visualsManager.ReassignMenuItem({
|
|
14579
|
+
fromMenuItemId: payload.sourceMenuItemId,
|
|
14580
|
+
toMenuItemId: this.item.id,
|
|
14581
|
+
toMenuItemType: this.item.Type,
|
|
14582
|
+
toPriority: this.renderPriority,
|
|
14583
|
+
requestRender: false
|
|
14584
|
+
});
|
|
14412
14585
|
this.onCTilesetLoad();
|
|
14413
14586
|
this.styler.Init({
|
|
14414
14587
|
viewer: this.viewer,
|
|
@@ -15016,7 +15189,8 @@
|
|
|
15016
15189
|
this.visualsManager.RemoveRegos({
|
|
15017
15190
|
menuItemId: this.item.id,
|
|
15018
15191
|
doRemove: false,
|
|
15019
|
-
source: exports.VisualsRegister.EUpdateSource.TILESET_DISPOSE
|
|
15192
|
+
source: exports.VisualsRegister.EUpdateSource.TILESET_DISPOSE,
|
|
15193
|
+
lazy: true
|
|
15020
15194
|
});
|
|
15021
15195
|
this.viewerDateTimeDispose();
|
|
15022
15196
|
}
|
|
@@ -16509,7 +16683,7 @@
|
|
|
16509
16683
|
}
|
|
16510
16684
|
setGetter(queryItems) {
|
|
16511
16685
|
this.unsetGetter();
|
|
16512
|
-
|
|
16686
|
+
const getter = new EntityFilterGetter.Getter({
|
|
16513
16687
|
api: this.apiGetter.getApi(),
|
|
16514
16688
|
attrFilter: {},
|
|
16515
16689
|
batchSize: BATCH_SIZE$3,
|
|
@@ -16520,6 +16694,10 @@
|
|
|
16520
16694
|
queryItems: queryItems !== null && queryItems !== void 0 ? queryItems : []
|
|
16521
16695
|
}
|
|
16522
16696
|
});
|
|
16697
|
+
this.attachGetter(getter);
|
|
16698
|
+
}
|
|
16699
|
+
attachGetter(getter) {
|
|
16700
|
+
this.getter = getter;
|
|
16523
16701
|
const minMax = exports.RenderManager.GetZoomMinMax({
|
|
16524
16702
|
zoomControl: this.zoomControl
|
|
16525
16703
|
});
|
|
@@ -16860,6 +17038,62 @@
|
|
|
16860
17038
|
console.error("Failed to render DataLab entities:", e);
|
|
16861
17039
|
}
|
|
16862
17040
|
}
|
|
17041
|
+
get HandoffKey() {
|
|
17042
|
+
return Manager.GetHandoffKey(this.item);
|
|
17043
|
+
}
|
|
17044
|
+
static GetHandoffKey(item) {
|
|
17045
|
+
const queryId = item === null || item === void 0 ? void 0 : item.DataLabQueryID;
|
|
17046
|
+
if (!queryId) {
|
|
17047
|
+
return null;
|
|
17048
|
+
}
|
|
17049
|
+
return `datalab:${queryId}`;
|
|
17050
|
+
}
|
|
17051
|
+
PrepareHandoff() {
|
|
17052
|
+
var _a, _b, _c;
|
|
17053
|
+
if (this.disposed || !this.getter) {
|
|
17054
|
+
return null;
|
|
17055
|
+
}
|
|
17056
|
+
this.getter.ExcludeMenuItem(this.item.id);
|
|
17057
|
+
(_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
17058
|
+
this.getterSub = null;
|
|
17059
|
+
const getter = this.getter;
|
|
17060
|
+
this.getter = null;
|
|
17061
|
+
(_b = this.viewMonitorRemoval) === null || _b === void 0 ? void 0 : _b.call(this);
|
|
17062
|
+
this.viewMonitorRemoval = null;
|
|
17063
|
+
(_c = this.entityCheckQueue) === null || _c === void 0 ? void 0 : _c.Dispose();
|
|
17064
|
+
this.entityCheckQueue = null;
|
|
17065
|
+
clearInterval(this.renderQueueInterval);
|
|
17066
|
+
this.renderQueueInterval = null;
|
|
17067
|
+
const payload = {
|
|
17068
|
+
getter,
|
|
17069
|
+
renderedEntities: this.renderedEntities,
|
|
17070
|
+
renderQueue: [...this.renderQueue],
|
|
17071
|
+
sourceMenuItemId: this.item.id
|
|
17072
|
+
};
|
|
17073
|
+
this.renderQueue = [];
|
|
17074
|
+
this.queryLoadId += 1;
|
|
17075
|
+
this.disposed = true;
|
|
17076
|
+
return payload;
|
|
17077
|
+
}
|
|
17078
|
+
AdoptHandoff(payload) {
|
|
17079
|
+
var _a;
|
|
17080
|
+
this.ensureSettings();
|
|
17081
|
+
this.renderedEntities = payload.renderedEntities;
|
|
17082
|
+
this.visualsManager.ReassignMenuItem({
|
|
17083
|
+
fromMenuItemId: payload.sourceMenuItemId,
|
|
17084
|
+
toMenuItemId: this.item.id,
|
|
17085
|
+
toMenuItemType: this.item.Type,
|
|
17086
|
+
toPriority: this.renderPriority,
|
|
17087
|
+
requestRender: false
|
|
17088
|
+
});
|
|
17089
|
+
this.attachGetter(payload.getter);
|
|
17090
|
+
this.setEntityCheckQueue();
|
|
17091
|
+
if ((_a = payload.renderQueue) === null || _a === void 0 ? void 0 : _a.length) {
|
|
17092
|
+
this.distributeForRender(payload.renderQueue);
|
|
17093
|
+
}
|
|
17094
|
+
this.doEntityCheck(Object.keys(this.renderedEntities));
|
|
17095
|
+
this.viewer.scene.requestRender();
|
|
17096
|
+
}
|
|
16863
17097
|
}
|
|
16864
17098
|
DataLabRenderManager.Manager = Manager;
|
|
16865
17099
|
})(exports.DataLabRenderManager || (exports.DataLabRenderManager = {}));
|
|
@@ -17279,6 +17513,7 @@
|
|
|
17279
17513
|
this.queueCheckInterval = null;
|
|
17280
17514
|
this.processingQueue = 0;
|
|
17281
17515
|
this._osmIdToBruceId = {};
|
|
17516
|
+
this.tileLoadRemoval = null;
|
|
17282
17517
|
const { viewer, register: visualsManager, getters: apiGetter, monitor, item } = params;
|
|
17283
17518
|
this.viewer = viewer;
|
|
17284
17519
|
this.getters = apiGetter;
|
|
@@ -17287,11 +17522,14 @@
|
|
|
17287
17522
|
this.monitor = monitor;
|
|
17288
17523
|
}
|
|
17289
17524
|
Dispose() {
|
|
17525
|
+
var _a;
|
|
17290
17526
|
if (this.disposed) {
|
|
17291
17527
|
return;
|
|
17292
17528
|
}
|
|
17293
17529
|
this.disposed = true;
|
|
17294
17530
|
clearInterval(this.queueCheckInterval);
|
|
17531
|
+
(_a = this.tileLoadRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
17532
|
+
this.tileLoadRemoval = null;
|
|
17295
17533
|
if (this.cTileset) {
|
|
17296
17534
|
const viewer = this.viewer;
|
|
17297
17535
|
if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
|
|
@@ -17305,7 +17543,8 @@
|
|
|
17305
17543
|
this.cTileset = null;
|
|
17306
17544
|
}
|
|
17307
17545
|
this.visualsManager.RemoveRegos({
|
|
17308
|
-
menuItemId: this.item.id
|
|
17546
|
+
menuItemId: this.item.id,
|
|
17547
|
+
lazy: true
|
|
17309
17548
|
});
|
|
17310
17549
|
this.featureQueue = [];
|
|
17311
17550
|
}
|
|
@@ -17318,84 +17557,89 @@
|
|
|
17318
17557
|
this.sourceId = EnsureNumber((_a = menuItem.BruceEntity) === null || _a === void 0 ? void 0 : _a.SourceId, 0);
|
|
17319
17558
|
this.entityTypeId = (_b = menuItem.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
|
|
17320
17559
|
(async () => {
|
|
17321
|
-
|
|
17322
|
-
|
|
17323
|
-
|
|
17324
|
-
else if (this.cTileset) {
|
|
17325
|
-
// Already exists, no need to re-initialize.
|
|
17326
|
-
return;
|
|
17327
|
-
}
|
|
17328
|
-
let validToken;
|
|
17329
|
-
if (Cesium.Ion.defaultServer) {
|
|
17330
|
-
// Proxy server was set after verifying Ion availability upstream
|
|
17331
|
-
// (including template account fallback) — trust that check.
|
|
17332
|
-
validToken = true;
|
|
17333
|
-
}
|
|
17334
|
-
else {
|
|
17335
|
-
// No proxy; validate the legacy access token directly.
|
|
17336
|
-
validToken = await exports.ViewerUtils.AssertIonToken(Cesium.Ion.defaultAccessToken);
|
|
17337
|
-
}
|
|
17338
|
-
if (!validToken) {
|
|
17339
|
-
console.warn("'tileset-osm-render-manager.ts' could not locate a valid Cesium Ion token.");
|
|
17340
|
-
return;
|
|
17341
|
-
}
|
|
17342
|
-
const CESIUM = Cesium;
|
|
17343
|
-
let cTileset;
|
|
17344
|
-
// Newer versions of Cesium have this function be async.
|
|
17345
|
-
if (CESIUM["createOsmBuildingsAsync"]) {
|
|
17346
|
-
cTileset = await CESIUM.createOsmBuildingsAsync({});
|
|
17347
|
-
}
|
|
17348
|
-
// Older versions of Cesium have this function be sync.
|
|
17349
|
-
else if (CESIUM["createOsmBuildings"]) {
|
|
17350
|
-
cTileset = CESIUM.createOsmBuildings();
|
|
17351
|
-
}
|
|
17352
|
-
else {
|
|
17353
|
-
console.warn("'tileset-osm-render-manager.ts' could not locate a create function for OSM buildings.");
|
|
17354
|
-
return;
|
|
17355
|
-
}
|
|
17356
|
-
// See if we already have a cTileset set.
|
|
17357
|
-
// Happens if we re-initialized in quick succession.
|
|
17358
|
-
if (this.cTileset) {
|
|
17359
|
-
cTileset.destroy();
|
|
17360
|
-
return;
|
|
17361
|
-
}
|
|
17362
|
-
this.cTileset = cTileset;
|
|
17363
|
-
if (this.disposed) {
|
|
17364
|
-
if (this.cTileset && !this.cTileset.isDestroyed()) {
|
|
17365
|
-
this.cTileset.destroy();
|
|
17366
|
-
this.cTileset = null;
|
|
17560
|
+
try {
|
|
17561
|
+
if (this.disposed) {
|
|
17562
|
+
return;
|
|
17367
17563
|
}
|
|
17368
|
-
|
|
17369
|
-
|
|
17370
|
-
|
|
17371
|
-
if (menuItem.ghostLoading == true) {
|
|
17372
|
-
this.cTileset.style = new Cesium.Cesium3DTileStyle({
|
|
17373
|
-
color: "rgba(255, 255, 250, 0.98)"
|
|
17374
|
-
});
|
|
17564
|
+
else if (this.cTileset) {
|
|
17565
|
+
// Already exists, no need to re-initialize.
|
|
17566
|
+
return;
|
|
17375
17567
|
}
|
|
17376
|
-
|
|
17377
|
-
|
|
17378
|
-
|
|
17379
|
-
|
|
17380
|
-
|
|
17381
|
-
|
|
17382
|
-
|
|
17383
|
-
|
|
17384
|
-
|
|
17385
|
-
|
|
17568
|
+
let validToken;
|
|
17569
|
+
if (Cesium.Ion.defaultServer) {
|
|
17570
|
+
// Proxy server was set after verifying Ion availability upstream
|
|
17571
|
+
// (including template account fallback) — trust that check.
|
|
17572
|
+
validToken = true;
|
|
17573
|
+
}
|
|
17574
|
+
else {
|
|
17575
|
+
// No proxy; validate the legacy access token directly.
|
|
17576
|
+
validToken = await exports.ViewerUtils.AssertIonToken(Cesium.Ion.defaultAccessToken);
|
|
17577
|
+
}
|
|
17578
|
+
if (!validToken) {
|
|
17579
|
+
console.warn("'tileset-osm-render-manager.ts' could not locate a valid Cesium Ion token.");
|
|
17580
|
+
return;
|
|
17581
|
+
}
|
|
17582
|
+
const CESIUM = Cesium;
|
|
17583
|
+
let cTileset;
|
|
17584
|
+
// Newer versions of Cesium have this function be async.
|
|
17585
|
+
if (CESIUM["createOsmBuildingsAsync"]) {
|
|
17586
|
+
cTileset = await CESIUM.createOsmBuildingsAsync({});
|
|
17587
|
+
}
|
|
17588
|
+
// Older versions of Cesium have this function be sync.
|
|
17589
|
+
else if (CESIUM["createOsmBuildings"]) {
|
|
17590
|
+
cTileset = CESIUM.createOsmBuildings();
|
|
17591
|
+
}
|
|
17592
|
+
else {
|
|
17593
|
+
console.warn("'tileset-osm-render-manager.ts' could not locate a create function for OSM buildings.");
|
|
17594
|
+
return;
|
|
17595
|
+
}
|
|
17596
|
+
// See if we already have a cTileset set.
|
|
17597
|
+
// Happens if we re-initialized in quick succession.
|
|
17598
|
+
if (this.cTileset) {
|
|
17599
|
+
cTileset.destroy();
|
|
17600
|
+
return;
|
|
17601
|
+
}
|
|
17602
|
+
this.cTileset = cTileset;
|
|
17603
|
+
if (this.disposed) {
|
|
17604
|
+
if (this.cTileset && !this.cTileset.isDestroyed()) {
|
|
17605
|
+
this.cTileset.destroy();
|
|
17606
|
+
this.cTileset = null;
|
|
17386
17607
|
}
|
|
17387
|
-
|
|
17388
|
-
|
|
17389
|
-
|
|
17390
|
-
|
|
17608
|
+
return;
|
|
17609
|
+
}
|
|
17610
|
+
if (this.sourceId) {
|
|
17611
|
+
if (menuItem.ghostLoading == true) {
|
|
17612
|
+
this.cTileset.style = new Cesium.Cesium3DTileStyle({
|
|
17613
|
+
color: "rgba(255, 255, 250, 0.98)"
|
|
17614
|
+
});
|
|
17391
17615
|
}
|
|
17392
|
-
|
|
17616
|
+
this.viewer.scene.primitives.add(this.cTileset);
|
|
17617
|
+
this.tileLoadRemoval = this.cTileset.tileLoad.addEventListener((tile) => {
|
|
17618
|
+
if (this.disposed) {
|
|
17619
|
+
return;
|
|
17620
|
+
}
|
|
17621
|
+
try {
|
|
17622
|
+
this.mapCTile(tile);
|
|
17623
|
+
}
|
|
17624
|
+
catch (e) {
|
|
17625
|
+
console.error(e);
|
|
17626
|
+
}
|
|
17627
|
+
});
|
|
17628
|
+
this.queueCheckInterval = setInterval(() => {
|
|
17629
|
+
if (this.featureQueue.length > 0) {
|
|
17630
|
+
this.processQueue();
|
|
17631
|
+
}
|
|
17632
|
+
}, 5000);
|
|
17633
|
+
}
|
|
17634
|
+
else {
|
|
17635
|
+
this.viewer.scene.primitives.add(this.cTileset);
|
|
17636
|
+
}
|
|
17637
|
+
this.cTileset.show = true;
|
|
17638
|
+
this.viewer.scene.requestRender();
|
|
17393
17639
|
}
|
|
17394
|
-
|
|
17395
|
-
|
|
17640
|
+
catch (e) {
|
|
17641
|
+
console.error("Failed to load OSM Buildings tileset:", e);
|
|
17396
17642
|
}
|
|
17397
|
-
this.cTileset.show = true;
|
|
17398
|
-
this.viewer.scene.requestRender();
|
|
17399
17643
|
})();
|
|
17400
17644
|
}
|
|
17401
17645
|
async mapCTile(tile) {
|
|
@@ -17630,6 +17874,80 @@
|
|
|
17630
17874
|
}
|
|
17631
17875
|
async ReRender(params) {
|
|
17632
17876
|
}
|
|
17877
|
+
get HandoffKey() {
|
|
17878
|
+
return Manager.GetHandoffKey(this.item);
|
|
17879
|
+
}
|
|
17880
|
+
static GetHandoffKey(item) {
|
|
17881
|
+
var _a, _b;
|
|
17882
|
+
const sourceId = EnsureNumber((_a = item.BruceEntity) === null || _a === void 0 ? void 0 : _a.SourceId, 0);
|
|
17883
|
+
const entityTypeId = ((_b = item.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"]) || "";
|
|
17884
|
+
return `osm:${sourceId}:${entityTypeId}`;
|
|
17885
|
+
}
|
|
17886
|
+
PrepareHandoff() {
|
|
17887
|
+
var _a;
|
|
17888
|
+
if (this.disposed || !this.cTileset || this.cTileset.isDestroyed()) {
|
|
17889
|
+
return null;
|
|
17890
|
+
}
|
|
17891
|
+
clearInterval(this.queueCheckInterval);
|
|
17892
|
+
this.queueCheckInterval = null;
|
|
17893
|
+
(_a = this.tileLoadRemoval) === null || _a === void 0 ? void 0 : _a.call(this);
|
|
17894
|
+
this.tileLoadRemoval = null;
|
|
17895
|
+
const payload = {
|
|
17896
|
+
cTileset: this.cTileset,
|
|
17897
|
+
loadedCesiumEntities: this._loadedCesiumEntities,
|
|
17898
|
+
featureQueue: this.featureQueue,
|
|
17899
|
+
osmIdToBruceId: this._osmIdToBruceId,
|
|
17900
|
+
totalLoaded: this.totalLoaded,
|
|
17901
|
+
sourceMenuItemId: this.item.id
|
|
17902
|
+
};
|
|
17903
|
+
this.cTileset = null;
|
|
17904
|
+
this.disposed = true;
|
|
17905
|
+
return payload;
|
|
17906
|
+
}
|
|
17907
|
+
AdoptHandoff(payload) {
|
|
17908
|
+
var _a, _b;
|
|
17909
|
+
this.sourceId = EnsureNumber((_a = this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a.SourceId, 0);
|
|
17910
|
+
this.entityTypeId = (_b = this.item.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
|
|
17911
|
+
this.cTileset = payload.cTileset;
|
|
17912
|
+
this._loadedCesiumEntities = payload.loadedCesiumEntities;
|
|
17913
|
+
this.featureQueue = payload.featureQueue;
|
|
17914
|
+
this._osmIdToBruceId = payload.osmIdToBruceId;
|
|
17915
|
+
this.totalLoaded = payload.totalLoaded;
|
|
17916
|
+
if (this.sourceId) {
|
|
17917
|
+
if (this.item.ghostLoading == true) {
|
|
17918
|
+
this.cTileset.style = new Cesium.Cesium3DTileStyle({
|
|
17919
|
+
color: "rgba(255, 255, 250, 0.98)"
|
|
17920
|
+
});
|
|
17921
|
+
}
|
|
17922
|
+
else {
|
|
17923
|
+
this.cTileset.style = undefined;
|
|
17924
|
+
}
|
|
17925
|
+
this.visualsManager.ReassignMenuItem({
|
|
17926
|
+
fromMenuItemId: payload.sourceMenuItemId,
|
|
17927
|
+
toMenuItemId: this.item.id,
|
|
17928
|
+
toMenuItemType: this.item.Type,
|
|
17929
|
+
requestRender: false
|
|
17930
|
+
});
|
|
17931
|
+
this.tileLoadRemoval = this.cTileset.tileLoad.addEventListener((tile) => {
|
|
17932
|
+
if (this.disposed) {
|
|
17933
|
+
return;
|
|
17934
|
+
}
|
|
17935
|
+
try {
|
|
17936
|
+
this.mapCTile(tile);
|
|
17937
|
+
}
|
|
17938
|
+
catch (e) {
|
|
17939
|
+
console.error(e);
|
|
17940
|
+
}
|
|
17941
|
+
});
|
|
17942
|
+
this.queueCheckInterval = setInterval(() => {
|
|
17943
|
+
if (this.featureQueue.length > 0) {
|
|
17944
|
+
this.processQueue();
|
|
17945
|
+
}
|
|
17946
|
+
}, 5000);
|
|
17947
|
+
}
|
|
17948
|
+
this.cTileset.show = true;
|
|
17949
|
+
this.viewer.scene.requestRender();
|
|
17950
|
+
}
|
|
17633
17951
|
}
|
|
17634
17952
|
TilesetOsmRenderManager.Manager = Manager;
|
|
17635
17953
|
})(exports.TilesetOsmRenderManager || (exports.TilesetOsmRenderManager = {}));
|
|
@@ -17977,7 +18295,8 @@
|
|
|
17977
18295
|
}
|
|
17978
18296
|
(_b = this.styler) === null || _b === void 0 ? void 0 : _b.Dispose();
|
|
17979
18297
|
this.visualsManager.RemoveRegos({
|
|
17980
|
-
menuItemId: this.item.id
|
|
18298
|
+
menuItemId: this.item.id,
|
|
18299
|
+
lazy: true
|
|
17981
18300
|
});
|
|
17982
18301
|
}
|
|
17983
18302
|
onCTilesetLoad() {
|
|
@@ -18044,13 +18363,6 @@
|
|
|
18044
18363
|
if (this.renderPriority == null) {
|
|
18045
18364
|
this.renderPriority = 0;
|
|
18046
18365
|
}
|
|
18047
|
-
this.visualsManager.ReassignMenuItem({
|
|
18048
|
-
fromMenuItemId: payload.sourceMenuItemId,
|
|
18049
|
-
toMenuItemId: this.item.id,
|
|
18050
|
-
toMenuItemType: this.item.Type,
|
|
18051
|
-
toPriority: this.renderPriority,
|
|
18052
|
-
requestRender: false
|
|
18053
|
-
});
|
|
18054
18366
|
this.tileLoadRemoval = this.cTileset.tileLoad.addEventListener((tile) => {
|
|
18055
18367
|
try {
|
|
18056
18368
|
this.queueTile(tile, true);
|
|
@@ -18067,6 +18379,13 @@
|
|
|
18067
18379
|
console.error(e);
|
|
18068
18380
|
}
|
|
18069
18381
|
});
|
|
18382
|
+
this.visualsManager.ReassignMenuItem({
|
|
18383
|
+
fromMenuItemId: payload.sourceMenuItemId,
|
|
18384
|
+
toMenuItemId: this.item.id,
|
|
18385
|
+
toMenuItemType: this.item.Type,
|
|
18386
|
+
toPriority: this.renderPriority,
|
|
18387
|
+
requestRender: false
|
|
18388
|
+
});
|
|
18070
18389
|
if (this.item.ApplyStyles) {
|
|
18071
18390
|
this.styler.Init({
|
|
18072
18391
|
viewer: this.viewer,
|
|
@@ -18351,6 +18670,36 @@
|
|
|
18351
18670
|
}
|
|
18352
18671
|
async ReRender(params) {
|
|
18353
18672
|
}
|
|
18673
|
+
get HandoffKey() {
|
|
18674
|
+
return Manager.GetHandoffKey(this.item);
|
|
18675
|
+
}
|
|
18676
|
+
static GetHandoffKey(item) {
|
|
18677
|
+
var _a, _b;
|
|
18678
|
+
const tilesetId = (_a = item === null || item === void 0 ? void 0 : item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetID;
|
|
18679
|
+
if (!tilesetId) {
|
|
18680
|
+
return null;
|
|
18681
|
+
}
|
|
18682
|
+
const accountId = ((_b = item.tileset) === null || _b === void 0 ? void 0 : _b.ClientAccountID) || "";
|
|
18683
|
+
return `${accountId}:${tilesetId}`;
|
|
18684
|
+
}
|
|
18685
|
+
PrepareHandoff() {
|
|
18686
|
+
var _a;
|
|
18687
|
+
if (this.disposed || !this.cTileset || this.cTileset.isDestroyed()) {
|
|
18688
|
+
return null;
|
|
18689
|
+
}
|
|
18690
|
+
const payload = {
|
|
18691
|
+
cTileset: this.cTileset
|
|
18692
|
+
};
|
|
18693
|
+
(_a = this.initQueue) === null || _a === void 0 ? void 0 : _a.Remove(this);
|
|
18694
|
+
this.cTileset = null;
|
|
18695
|
+
this.disposed = true;
|
|
18696
|
+
return payload;
|
|
18697
|
+
}
|
|
18698
|
+
AdoptHandoff(payload) {
|
|
18699
|
+
this.cTileset = payload.cTileset;
|
|
18700
|
+
this.onCTilesetLoad();
|
|
18701
|
+
this.viewer.scene.requestRender();
|
|
18702
|
+
}
|
|
18354
18703
|
}
|
|
18355
18704
|
TilesetPointcloudRenderManager.Manager = Manager;
|
|
18356
18705
|
})(exports.TilesetPointcloudRenderManager || (exports.TilesetPointcloudRenderManager = {}));
|
|
@@ -19645,19 +19994,7 @@
|
|
|
19645
19994
|
var _a, _b, _c;
|
|
19646
19995
|
// If the tileset already exists then we just need to update the style.
|
|
19647
19996
|
if (this.cTileset) {
|
|
19648
|
-
|
|
19649
|
-
if (colorCss) {
|
|
19650
|
-
this.cTileset.style = new Cesium.Cesium3DTileStyle({
|
|
19651
|
-
color: {
|
|
19652
|
-
conditions: [
|
|
19653
|
-
["true", `color("${colorCss}")`]
|
|
19654
|
-
]
|
|
19655
|
-
}
|
|
19656
|
-
});
|
|
19657
|
-
}
|
|
19658
|
-
else {
|
|
19659
|
-
this.cTileset.style = undefined;
|
|
19660
|
-
}
|
|
19997
|
+
this.applyColorMask();
|
|
19661
19998
|
this.viewer.scene.requestRender();
|
|
19662
19999
|
return;
|
|
19663
20000
|
}
|
|
@@ -19746,21 +20083,49 @@
|
|
|
19746
20083
|
return;
|
|
19747
20084
|
}
|
|
19748
20085
|
this.viewer.scene.primitives.add(this.cTileset);
|
|
19749
|
-
|
|
19750
|
-
if (colorCss) {
|
|
19751
|
-
this.cTileset.style = new Cesium.Cesium3DTileStyle({
|
|
19752
|
-
color: {
|
|
19753
|
-
conditions: [
|
|
19754
|
-
["true", `color("${colorCss}")`]
|
|
19755
|
-
]
|
|
19756
|
-
}
|
|
19757
|
-
});
|
|
19758
|
-
}
|
|
20086
|
+
this.applyColorMask();
|
|
19759
20087
|
this.viewer.scene.requestRender();
|
|
19760
20088
|
})();
|
|
19761
20089
|
}
|
|
20090
|
+
applyColorMask() {
|
|
20091
|
+
const colorCss = this.item.colorMask;
|
|
20092
|
+
if (colorCss) {
|
|
20093
|
+
this.cTileset.style = new Cesium.Cesium3DTileStyle({
|
|
20094
|
+
color: {
|
|
20095
|
+
conditions: [
|
|
20096
|
+
["true", `color("${colorCss}")`]
|
|
20097
|
+
]
|
|
20098
|
+
}
|
|
20099
|
+
});
|
|
20100
|
+
}
|
|
20101
|
+
else {
|
|
20102
|
+
this.cTileset.style = undefined;
|
|
20103
|
+
}
|
|
20104
|
+
}
|
|
19762
20105
|
async ReRender(params) {
|
|
19763
20106
|
}
|
|
20107
|
+
get HandoffKey() {
|
|
20108
|
+
return Manager.GetHandoffKey();
|
|
20109
|
+
}
|
|
20110
|
+
static GetHandoffKey() {
|
|
20111
|
+
return "google-photorealistic-3d";
|
|
20112
|
+
}
|
|
20113
|
+
PrepareHandoff() {
|
|
20114
|
+
if (this.disposed || !this.cTileset || this.cTileset.isDestroyed()) {
|
|
20115
|
+
return null;
|
|
20116
|
+
}
|
|
20117
|
+
const payload = {
|
|
20118
|
+
cTileset: this.cTileset
|
|
20119
|
+
};
|
|
20120
|
+
this.cTileset = null;
|
|
20121
|
+
this.disposed = true;
|
|
20122
|
+
return payload;
|
|
20123
|
+
}
|
|
20124
|
+
AdoptHandoff(payload) {
|
|
20125
|
+
this.cTileset = payload.cTileset;
|
|
20126
|
+
this.applyColorMask();
|
|
20127
|
+
this.viewer.scene.requestRender();
|
|
20128
|
+
}
|
|
19764
20129
|
}
|
|
19765
20130
|
TilesetGooglePhotosRenderManager.Manager = Manager;
|
|
19766
20131
|
})(exports.TilesetGooglePhotosRenderManager || (exports.TilesetGooglePhotosRenderManager = {}));
|
|
@@ -22139,6 +22504,21 @@
|
|
|
22139
22504
|
if (item.Type === BModels.MenuItem.EType.EntityTileset) {
|
|
22140
22505
|
return exports.TilesetEntitiesRenderManager.Manager.GetHandoffKey(item);
|
|
22141
22506
|
}
|
|
22507
|
+
if (item.Type === BModels.MenuItem.EType.PointCloud) {
|
|
22508
|
+
return exports.TilesetPointcloudRenderManager.Manager.GetHandoffKey(item);
|
|
22509
|
+
}
|
|
22510
|
+
if (item.Type === BModels.MenuItem.EType.GooglePhotoTileset) {
|
|
22511
|
+
return exports.TilesetGooglePhotosRenderManager.Manager.GetHandoffKey();
|
|
22512
|
+
}
|
|
22513
|
+
if (item.Type === BModels.MenuItem.EType.Osm) {
|
|
22514
|
+
return exports.TilesetOsmRenderManager.Manager.GetHandoffKey(item);
|
|
22515
|
+
}
|
|
22516
|
+
if (item.Type === BModels.MenuItem.EType.Entities) {
|
|
22517
|
+
return exports.EntitiesRenderManager.Manager.GetHandoffKey(item);
|
|
22518
|
+
}
|
|
22519
|
+
if (item.Type === BModels.MenuItem.EType.DataLab) {
|
|
22520
|
+
return exports.DataLabRenderManager.Manager.GetHandoffKey(item);
|
|
22521
|
+
}
|
|
22142
22522
|
return null;
|
|
22143
22523
|
}
|
|
22144
22524
|
// Claims a pooled manager for the same resource, if one exists and both sides opt in.
|
|
@@ -37064,7 +37444,7 @@
|
|
|
37064
37444
|
StyleUtils.ApplyTypeStyle = ApplyTypeStyle;
|
|
37065
37445
|
})(exports.StyleUtils || (exports.StyleUtils = {}));
|
|
37066
37446
|
|
|
37067
|
-
const VERSION = "6.8.
|
|
37447
|
+
const VERSION = "6.8.3";
|
|
37068
37448
|
/**
|
|
37069
37449
|
* Updates the environment instance used by bruce-cesium to one specified.
|
|
37070
37450
|
* This can be used to ensure that the instance a parent is referencing is shared between bruce-cesium, bruce-models, and the parent app.
|