bruce-cesium 7.0.2 → 7.0.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.
Files changed (80) hide show
  1. package/dist/bruce-cesium.es5.js +1370 -243
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +1368 -241
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/internal/cesium-show-gate.js +100 -0
  7. package/dist/lib/internal/cesium-show-gate.js.map +1 -0
  8. package/dist/lib/internal/cesium-utils.js +207 -1
  9. package/dist/lib/internal/cesium-utils.js.map +1 -1
  10. package/dist/lib/internal/js-utils.js +25 -1
  11. package/dist/lib/internal/js-utils.js.map +1 -1
  12. package/dist/lib/rendering/cesium-animated-in-out.js +66 -7
  13. package/dist/lib/rendering/cesium-animated-in-out.js.map +1 -1
  14. package/dist/lib/rendering/entity-render-engine-model3d.js +17 -8
  15. package/dist/lib/rendering/entity-render-engine-model3d.js.map +1 -1
  16. package/dist/lib/rendering/entity-render-engine-point.js +46 -12
  17. package/dist/lib/rendering/entity-render-engine-point.js.map +1 -1
  18. package/dist/lib/rendering/entity-render-engine-polygon.js +107 -35
  19. package/dist/lib/rendering/entity-render-engine-polygon.js.map +1 -1
  20. package/dist/lib/rendering/entity-render-engine-polyline.js +27 -8
  21. package/dist/lib/rendering/entity-render-engine-polyline.js.map +1 -1
  22. package/dist/lib/rendering/entity-render-engine.js +86 -14
  23. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  24. package/dist/lib/rendering/menu-item-manager.js +30 -2
  25. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  26. package/dist/lib/rendering/relation-render-engine.js +2 -1
  27. package/dist/lib/rendering/relation-render-engine.js.map +1 -1
  28. package/dist/lib/rendering/render-managers/common/entity-label.js +10 -2
  29. package/dist/lib/rendering/render-managers/common/entity-label.js.map +1 -1
  30. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js +45 -3
  31. package/dist/lib/rendering/render-managers/entities/entities-datalab-render-manager.js.map +1 -1
  32. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +26 -15
  33. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  34. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +50 -3
  35. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  36. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +3 -2
  37. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +1 -1
  38. package/dist/lib/rendering/render-managers/other/relations-render-manager.js +3 -2
  39. package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -1
  40. package/dist/lib/rendering/render-managers/render-manager.js +67 -3
  41. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
  42. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +2 -0
  43. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -1
  44. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +2 -0
  45. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  46. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +2 -0
  47. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
  48. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +4 -1
  49. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
  50. package/dist/lib/rendering/texture-frame-series-animator.js +7 -0
  51. package/dist/lib/rendering/texture-frame-series-animator.js.map +1 -1
  52. package/dist/lib/rendering/tileset-render-engine.js +18 -0
  53. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  54. package/dist/lib/rendering/visual-register-culler.js +191 -97
  55. package/dist/lib/rendering/visual-register-culler.js.map +1 -1
  56. package/dist/lib/rendering/visuals-register.js +263 -25
  57. package/dist/lib/rendering/visuals-register.js.map +1 -1
  58. package/dist/lib/utils/cesium-entity-styler.js +7 -3
  59. package/dist/lib/utils/cesium-entity-styler.js.map +1 -1
  60. package/dist/types/bruce-cesium.d.ts +1 -1
  61. package/dist/types/internal/cesium-show-gate.d.ts +29 -0
  62. package/dist/types/internal/cesium-utils.d.ts +63 -0
  63. package/dist/types/internal/js-utils.d.ts +10 -0
  64. package/dist/types/rendering/cesium-animated-in-out.d.ts +5 -0
  65. package/dist/types/rendering/entity-render-engine-model3d.d.ts +2 -0
  66. package/dist/types/rendering/entity-render-engine-point.d.ts +2 -0
  67. package/dist/types/rendering/entity-render-engine-polygon.d.ts +2 -0
  68. package/dist/types/rendering/entity-render-engine-polyline.d.ts +2 -0
  69. package/dist/types/rendering/entity-render-engine.d.ts +17 -1
  70. package/dist/types/rendering/menu-item-manager.d.ts +6 -0
  71. package/dist/types/rendering/render-managers/entities/entities-datalab-render-manager.d.ts +11 -0
  72. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +12 -0
  73. package/dist/types/rendering/render-managers/render-manager.d.ts +33 -0
  74. package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +3 -0
  75. package/dist/types/rendering/texture-frame-series-animator.d.ts +5 -0
  76. package/dist/types/rendering/tileset-render-engine.d.ts +14 -0
  77. package/dist/types/rendering/visual-register-culler.d.ts +7 -0
  78. package/dist/types/rendering/visuals-register.d.ts +65 -1
  79. package/dist/types/utils/cesium-entity-styler.d.ts +1 -0
  80. package/package.json +1 -1
@@ -1 +1 @@
1
- {"version":3,"file":"visual-register-culler.js","sourceRoot":"","sources":["../../../src/rendering/visual-register-culler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"visual-register-culler.js","sourceRoot":"","sources":["../../../src/rendering/visual-register-culler.ts"],"names":[],"mappings":"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"}
@@ -4,6 +4,8 @@ exports.VisualsRegister = void 0;
4
4
  const bruce_models_1 = require("bruce-models");
5
5
  const Cesium = require("cesium");
6
6
  const js_utils_1 = require("../internal/js-utils");
7
+ const cesium_show_gate_1 = require("../internal/cesium-show-gate");
8
+ const cesium_utils_1 = require("../internal/cesium-utils");
7
9
  const entity_label_1 = require("../rendering/render-managers/common/entity-label");
8
10
  const cesium_entity_styler_1 = require("../utils/cesium-entity-styler");
9
11
  const entity_render_engine_1 = require("./entity-render-engine");
@@ -35,7 +37,7 @@ function isAlive(viewer, visual) {
35
37
  return false;
36
38
  }
37
39
  if (visual instanceof Cesium.Entity) {
38
- return viewer.entities.contains(visual);
40
+ return (0, cesium_utils_1.IsCEntityInScene)(viewer, visual);
39
41
  }
40
42
  else if (visual instanceof Cesium.Primitive) {
41
43
  return viewer.scene.primitives.contains(visual);
@@ -62,6 +64,32 @@ function removeEntity(viewer, visual) {
62
64
  viewer
63
65
  });
64
66
  }
67
+ /**
68
+ * Returns the highest zIndex across a graphic and its siblings, or null when none of them set one.
69
+ * @param viewer
70
+ * @param visual
71
+ */
72
+ function getHighestZIndex(viewer, visual) {
73
+ if (!(visual instanceof Cesium.Entity)) {
74
+ return null;
75
+ }
76
+ let highest = null;
77
+ const parts = entity_utils_1.EntityUtils.GatherEntity({
78
+ entity: visual
79
+ });
80
+ for (const part of parts) {
81
+ if (!(part instanceof Cesium.Entity)) {
82
+ continue;
83
+ }
84
+ for (const graphic of [part.polygon, part.polyline, part.corridor, part.ellipse, part.rectangle]) {
85
+ const zIndex = graphic ? (0, cesium_utils_1.GetCValue)(viewer, graphic.zIndex) : null;
86
+ if (zIndex != null && !isNaN(zIndex) && (highest == null || zIndex > highest)) {
87
+ highest = zIndex;
88
+ }
89
+ }
90
+ }
91
+ return highest;
92
+ }
65
93
  const MAX_SHOW_DEPTH = 10;
66
94
  function updateCEntityShow(viewer, visual, rego, show, ignoreParent, depth = 0) {
67
95
  if (depth > MAX_SHOW_DEPTH) {
@@ -80,26 +108,24 @@ function updateCEntityShow(viewer, visual, rego, show, ignoreParent, depth = 0)
80
108
  updateCEntityShow(viewer, sibling, rego, show, true, depth + 1);
81
109
  }
82
110
  }
83
- /**
84
- * Do NOT use ".show" as it causes crashes in Cesium polylines that are clamped to ground.
85
- * We could target them specifically here but we may be getting overall performance gain by just removing stuff from the scene.
86
- */
87
- if (rego.collection) {
88
- if (!show && rego.collection.contains(visual)) {
89
- rego.collection.remove(visual);
90
- }
91
- else if (show && !rego.collection.contains(visual)) {
92
- rego.collection.add(visual);
111
+ if (show) {
112
+ // Always restore membership on the way back in. Something else may have evicted this graphic while it
113
+ // was hidden (the culler removes outright), and `show` alone would leave it invisible.
114
+ (0, cesium_utils_1.AddCEntityToScene)(viewer, visual, rego.collection);
115
+ if (visual.show !== true) {
116
+ visual.show = true;
93
117
  }
118
+ return;
94
119
  }
95
- else {
96
- if (!show && viewer.entities.contains(visual)) {
97
- viewer.entities.remove(visual);
98
- }
99
- else if (show && !viewer.entities.contains(visual)) {
100
- viewer.entities.add(visual);
120
+ // Hiding via `show` only updates a per-instance attribute, where leaving the collection rebuilds the whole
121
+ // geometry batch. But it is not safe for every graphic, see CanToggleShowSafely for exactly why.
122
+ if ((0, cesium_utils_1.CanToggleShowSafely)([visual])) {
123
+ if (visual.show !== false) {
124
+ visual.show = false;
101
125
  }
126
+ return;
102
127
  }
128
+ (0, cesium_utils_1.RemoveCEntityFromScene)(viewer, visual);
103
129
  }
104
130
  function updateEntityShow(viewer, rego, show) {
105
131
  const visual = rego.visual;
@@ -412,12 +438,128 @@ var VisualsRegister;
412
438
  // This lets us modify the update without re-adding the item to the queue if it's already in it.
413
439
  this.updateQueueSettings = {};
414
440
  this.updateQueueInterval = null;
441
+ // Per menu item collections so we can refresh sets of Entities without affecting others.
442
+ this.menuItemSources = new Map();
443
+ // Set when the data source order no longer matches the zIndexes seen, so it is re-applied once.
444
+ this.sourceOrderDirty = false;
445
+ /*
446
+ * Tilesets in the scene, keyed by the tileset itself.
447
+ */
448
+ this.tilesets = new Map();
415
449
  this.viewer = params.viewer;
416
450
  this.apiGetters = params.apiGetters;
417
451
  this.cameraCullerDispose = visual_register_culler_1.VisualRegisterCuller.Monitor({
418
452
  register: this
419
453
  });
420
454
  }
455
+ /**
456
+ * Returns the collection a menu item's visuals belong in, creating its data source on first use.
457
+ * Returns null when there is nothing to key off, leaving the caller on the viewer's own collection.
458
+ * @param menuItemId
459
+ */
460
+ ensureMenuItemCollection(menuItemId) {
461
+ var _a;
462
+ if (!menuItemId || this.disposed || !((_a = this.viewer) === null || _a === void 0 ? void 0 : _a.dataSources)) {
463
+ return null;
464
+ }
465
+ const existing = this.menuItemSources.get(menuItemId);
466
+ if (existing) {
467
+ return existing.source.entities;
468
+ }
469
+ const source = new Cesium.CustomDataSource(`menu-item-${menuItemId}`);
470
+ const record = {
471
+ source,
472
+ maxZIndex: 0,
473
+ added: false
474
+ };
475
+ (0, cesium_utils_1.MarkCCollectionOwned)(source.entities);
476
+ this.menuItemSources.set(menuItemId, record);
477
+ // Adding is asynchronous, so ordering has to wait until it is actually in the collection.
478
+ Promise.resolve(this.viewer.dataSources.add(source))
479
+ .then(() => {
480
+ record.added = true;
481
+ this.applySourceOrder();
482
+ })
483
+ .catch((e) => {
484
+ console.error(e);
485
+ });
486
+ return source.entities;
487
+ }
488
+ /**
489
+ * Notes the highest zIndex seen for a menu item, since that is what its data source has to sort by.
490
+ * zIndex orders geometry within a data source but not between them, so a whole layer stacks by the
491
+ * highest value anything in it asked for.
492
+ * @param menuItemId
493
+ * @param visual
494
+ */
495
+ trackSourceZIndex(menuItemId, visual) {
496
+ const record = this.menuItemSources.get(menuItemId);
497
+ if (!record) {
498
+ return;
499
+ }
500
+ const zIndex = getHighestZIndex(this.viewer, visual);
501
+ if (zIndex == null || zIndex <= record.maxZIndex) {
502
+ return;
503
+ }
504
+ record.maxZIndex = zIndex;
505
+ this.sourceOrderDirty = true;
506
+ this.applySourceOrder();
507
+ }
508
+ /**
509
+ * Re-stacks the menu item data sources so a higher zIndex sits above a lower one.
510
+ */
511
+ applySourceOrder() {
512
+ var _a;
513
+ if (this.disposed || !this.sourceOrderDirty || !((_a = this.viewer) === null || _a === void 0 ? void 0 : _a.dataSources)) {
514
+ return;
515
+ }
516
+ const records = Array.from(this.menuItemSources.values()).filter(x => x.added);
517
+ if (records.length < 2) {
518
+ // Nothing to order against yet, so leave the flag set for when there is.
519
+ return;
520
+ }
521
+ this.sourceOrderDirty = false;
522
+ // Raising each in ascending order leaves the highest on top.
523
+ records.sort((a, b) => a.maxZIndex - b.maxZIndex);
524
+ for (const record of records) {
525
+ try {
526
+ this.viewer.dataSources.raiseToTop(record.source);
527
+ }
528
+ catch (e) {
529
+ console.error(e);
530
+ }
531
+ }
532
+ }
533
+ /**
534
+ * Drops a menu item's data source once nothing is registered under it any more.
535
+ * @param menuItemId
536
+ */
537
+ releaseMenuItemCollection(menuItemId) {
538
+ var _a, _b, _c;
539
+ const record = this.menuItemSources.get(menuItemId);
540
+ if (!record) {
541
+ return;
542
+ }
543
+ if ((_a = this.entityIdsByMenuItem[menuItemId]) === null || _a === void 0 ? void 0 : _a.size) {
544
+ return;
545
+ }
546
+ this.menuItemSources.delete(menuItemId);
547
+ try {
548
+ (_c = (_b = this.viewer) === null || _b === void 0 ? void 0 : _b.dataSources) === null || _c === void 0 ? void 0 : _c.remove(record.source, true);
549
+ }
550
+ catch (e) {
551
+ console.error(e);
552
+ }
553
+ }
554
+ /** Every collection a bulk pass over this register's visuals could mutate. */
555
+ allSceneCollections() {
556
+ var _a;
557
+ const collections = [(_a = this.viewer) === null || _a === void 0 ? void 0 : _a.entities];
558
+ for (const record of Array.from(this.menuItemSources.values())) {
559
+ collections.push(record.source.entities);
560
+ }
561
+ return collections;
562
+ }
421
563
  indexMenuItemEntity(menuItemId, entityId) {
422
564
  if (!menuItemId) {
423
565
  return;
@@ -1007,9 +1149,11 @@ var VisualsRegister;
1007
1149
  return;
1008
1150
  }
1009
1151
  const end = Math.min(index + BATCH_SIZE, items.length);
1010
- for (; index < end; index++) {
1011
- perItem(items[index]);
1012
- }
1152
+ (0, cesium_utils_1.WithSuspendedCCollections)(this.allSceneCollections(), () => {
1153
+ for (; index < end; index++) {
1154
+ perItem(items[index]);
1155
+ }
1156
+ });
1013
1157
  this.viewer.scene.requestRender();
1014
1158
  if (index >= items.length) {
1015
1159
  clearInterval(interval);
@@ -1166,7 +1310,7 @@ var VisualsRegister;
1166
1310
  markEntity(this, rego, rego.visual, false);
1167
1311
  }
1168
1312
  Dispose() {
1169
- var _a;
1313
+ var _a, _b, _c, _d;
1170
1314
  (_a = this.cameraCullerDispose) === null || _a === void 0 ? void 0 : _a.call(this, {
1171
1315
  uncull: false
1172
1316
  });
@@ -1181,6 +1325,20 @@ var VisualsRegister;
1181
1325
  }
1182
1326
  this.activeChunkedIntervals.clear();
1183
1327
  this.disposed = true;
1328
+ for (const record of Array.from(this.menuItemSources.values())) {
1329
+ try {
1330
+ (_c = (_b = this.viewer) === null || _b === void 0 ? void 0 : _b.dataSources) === null || _c === void 0 ? void 0 : _c.remove(record.source, true);
1331
+ }
1332
+ catch (e) {
1333
+ console.error(e);
1334
+ }
1335
+ }
1336
+ this.menuItemSources.clear();
1337
+ // Hand every tileset's show flag back to its owner, holding whatever the owner last asked for.
1338
+ for (const rego of Array.from(this.tilesets.values())) {
1339
+ (_d = rego.gate) === null || _d === void 0 ? void 0 : _d.Release();
1340
+ }
1341
+ this.tilesets.clear();
1184
1342
  }
1185
1343
  ForceUpdate(params) {
1186
1344
  var _a;
@@ -1778,6 +1936,14 @@ var VisualsRegister;
1778
1936
  });
1779
1937
  }
1780
1938
  const entityId = rego.entityId;
1939
+ // Scope this visual to its menu item's own data source, so a rebuild of it cannot re-tessellate
1940
+ // other layers. A caller that already picked a collection (eg. geojson) keeps its own.
1941
+ if (!rego.collection && rego.menuItemId) {
1942
+ const collection = this.ensureMenuItemCollection(rego.menuItemId);
1943
+ if (collection) {
1944
+ rego.collection = collection;
1945
+ }
1946
+ }
1781
1947
  // Add the new visual to the register.
1782
1948
  const entityRegos = (_a = this.rego[entityId]) !== null && _a !== void 0 ? _a : [];
1783
1949
  entityRegos.push(rego);
@@ -1785,6 +1951,7 @@ var VisualsRegister;
1785
1951
  this.indexMenuItemEntity(rego.menuItemId, entityId);
1786
1952
  // Mark the visual as part of this register so selection works.
1787
1953
  markEntity(this, rego, rego.visual, false);
1954
+ this.trackSourceZIndex(rego.menuItemId, rego.visual);
1788
1955
  // Run any updates on the visual based on the calculated state.
1789
1956
  // Eg: visibility, opacity, selection, etc.
1790
1957
  this.queueUpdate({
@@ -2089,9 +2256,13 @@ var VisualsRegister;
2089
2256
  this.startLazyRemoval(entityIds, removeOne, onComplete);
2090
2257
  return;
2091
2258
  }
2092
- for (const entityId of entityIds) {
2093
- removeOne(entityId);
2094
- }
2259
+ (0, cesium_utils_1.WithSuspendedCCollections)(this.allSceneCollections(), () => {
2260
+ for (const entityId of entityIds) {
2261
+ removeOne(entityId);
2262
+ }
2263
+ });
2264
+ this.releaseMenuItemCollection(menuItemId);
2265
+ this.RemoveTilesetsByMenuItem(menuItemId);
2095
2266
  }
2096
2267
  else if (entityId) {
2097
2268
  const entityRegos = this.rego[entityId];
@@ -2274,8 +2445,75 @@ var VisualsRegister;
2274
2445
  };
2275
2446
  }
2276
2447
  /**
2277
- * Returns all registered entity ids.
2448
+ * Registers a tileset so the register can decide when it is worth drawing.
2449
+ * @param params
2450
+ */
2451
+ AddTileset(params) {
2452
+ const { tileset, menuItemId } = params;
2453
+ if (!tileset || this.disposed) {
2454
+ return;
2455
+ }
2456
+ const existing = this.tilesets.get(tileset);
2457
+ if (existing) {
2458
+ existing.menuItemId = menuItemId !== null && menuItemId !== void 0 ? menuItemId : existing.menuItemId;
2459
+ return;
2460
+ }
2461
+ this.tilesets.set(tileset, {
2462
+ tileset,
2463
+ menuItemId,
2464
+ // Null when the property could not be intercepted, in which case this tileset simply never gets
2465
+ // culled rather than us fighting its owner over the same field.
2466
+ gate: (0, cesium_show_gate_1.InstallShowGate)(tileset),
2467
+ culled: false
2468
+ });
2469
+ }
2470
+ /**
2471
+ * Stops tracking a tileset and hands its show flag back to its owner.
2472
+ * @param tileset
2278
2473
  */
2474
+ RemoveTileset(tileset) {
2475
+ var _a;
2476
+ const rego = this.tilesets.get(tileset);
2477
+ if (!rego) {
2478
+ return;
2479
+ }
2480
+ this.tilesets.delete(tileset);
2481
+ (_a = rego.gate) === null || _a === void 0 ? void 0 : _a.Release();
2482
+ }
2483
+ /**
2484
+ * Stops tracking every tileset belonging to a menu item.
2485
+ * @param menuItemId
2486
+ */
2487
+ RemoveTilesetsByMenuItem(menuItemId) {
2488
+ if (!menuItemId) {
2489
+ return;
2490
+ }
2491
+ for (const rego of Array.from(this.tilesets.values())) {
2492
+ if (rego.menuItemId === menuItemId) {
2493
+ this.RemoveTileset(rego.tileset);
2494
+ }
2495
+ }
2496
+ }
2497
+ /**
2498
+ * Every tileset currently tracked.
2499
+ */
2500
+ GetTilesets() {
2501
+ return Array.from(this.tilesets.values());
2502
+ }
2503
+ /**
2504
+ * Suppresses or restores a tileset.
2505
+ * Returns whether its effective visibility changed, so a caller can skip requesting a render when nothing did.
2506
+ * @param tileset
2507
+ * @param culled
2508
+ */
2509
+ SetTilesetCulled(tileset, culled) {
2510
+ const rego = this.tilesets.get(tileset);
2511
+ if (!(rego === null || rego === void 0 ? void 0 : rego.gate)) {
2512
+ return false;
2513
+ }
2514
+ rego.culled = Boolean(culled);
2515
+ return rego.gate.SetSuppressed(rego.culled);
2516
+ }
2279
2517
  GetEntityIds() {
2280
2518
  const ids = [];
2281
2519
  for (const entityId in this.rego) {