bruce-cesium 7.5.2 → 7.5.4

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.
@@ -1,6 +1,6 @@
1
1
  "use strict";
2
2
  Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.TilesetStyler = exports.isOutlineChanged = void 0;
3
+ exports.TilesetStyler = exports.isOutlineChanged = exports.getBakedAttributes = void 0;
4
4
  const bruce_models_1 = require("bruce-models");
5
5
  const Cesium = require("cesium");
6
6
  const cesium_entity_styler_1 = require("../utils/cesium-entity-styler");
@@ -24,6 +24,25 @@ function correctStyle(style) {
24
24
  }
25
25
  return style;
26
26
  }
27
+ /**
28
+ * Reads the baked attribute declaration from a loaded tileset, keyed by path.
29
+ * @param cTileset
30
+ */
31
+ function getBakedAttributes(cTileset) {
32
+ var _a, _b;
33
+ const result = new Map();
34
+ const declared = (_b = (_a = cTileset === null || cTileset === void 0 ? void 0 : cTileset.extras) === null || _a === void 0 ? void 0 : _a.bruce) === null || _b === void 0 ? void 0 : _b.bakedAttributes;
35
+ if (!Array.isArray(declared)) {
36
+ return result;
37
+ }
38
+ for (const baked of declared) {
39
+ if (Array.isArray(baked === null || baked === void 0 ? void 0 : baked.path) && baked.path.length && typeof baked.property == "string") {
40
+ result.set(JSON.stringify(baked.path), baked);
41
+ }
42
+ }
43
+ return result;
44
+ }
45
+ exports.getBakedAttributes = getBakedAttributes;
27
46
  function colorToCColor(color) {
28
47
  return new Cesium.Color(color.red ? color.red / 255 : 0, color.green ? color.green / 255 : 0, color.blue ? color.blue / 255 : 0, color.alpha);
29
48
  }
@@ -95,6 +114,10 @@ class TilesetStyler {
95
114
  // When false the Entity data is still gathered and the regos still updated, but no colour is
96
115
  // applied. A historic item that did not ask for styling needs the first without the second.
97
116
  this.applyStyles = true;
117
+ // Attribute values the tiles carry per feature, keyed by JSON path. Empty for a tileset without them.
118
+ this.bakedAttributes = new Map();
119
+ // Entities changed since the tileset was generated, so their baked values can no longer be trusted.
120
+ this.bakedStaleIds = new Set();
98
121
  this.reRenderState = new entity_rerender_maintain_state_1.EntityReRenderMaintainState();
99
122
  // More expensive process.
100
123
  // When an Entity is styled, the rego is reviewed and updated if needed.
@@ -136,6 +159,7 @@ class TilesetStyler {
136
159
  this.viewer = viewer;
137
160
  this.api = api;
138
161
  this.cTileset = cTileset;
162
+ this.bakedAttributes = getBakedAttributes(cTileset);
139
163
  this.register = register;
140
164
  this.menuItemId = menuItemId;
141
165
  this.historic = Boolean(historic);
@@ -214,6 +238,7 @@ class TilesetStyler {
214
238
  for (const [internalId, entityId] of this.styledByInternalId) {
215
239
  if (bruce_models_1.RecordChangeFeed.isEntityInternalIdInRangeString(rangeStr, internalId)) {
216
240
  this.feedPendingRestyleIds.add(entityId);
241
+ this.bakedStaleIds.add(entityId);
217
242
  }
218
243
  }
219
244
  if (this.feedPendingRestyleIds.size && !this.feedRestyleThrottleTimer) {
@@ -453,8 +478,6 @@ class TilesetStyler {
453
478
  console.error(e);
454
479
  }
455
480
  // Before we start the loop we'll do a single request for the needed Entity Types.
456
- // This will be aimed at rows that don't specify a Style and if the default fallback-
457
- //is set to 0 (using the default of the Entity Type).
458
481
  const typeMap = new Map();
459
482
  const typeIds = styleMapping.map(x => x.StyleID == -1 || Boolean(x.style) ? null : x.EntityTypeID).filter(x => !!x);
460
483
  if (typeIds.length) {
@@ -520,23 +543,7 @@ class TilesetStyler {
520
543
  }
521
544
  this.styleMappingsLoaded.set(styleMap.EntityTypeID, true);
522
545
  if (this.loaded) {
523
- // If we have a bunch of Entities that were waiting for the style to load,
524
- // then we can pass them to the gatherer now.
525
- const relatedIds = this.stylePendingEntityIds.get(styleMap.EntityTypeID);
526
- if (relatedIds) {
527
- if (this.getTilesetFeatureNeedsFullData(styleMap.EntityTypeID)) {
528
- this.entityGatherer.Queue(Array.from(relatedIds));
529
- }
530
- else {
531
- relatedIds.forEach(id => {
532
- const rego = this.getEntityRego(id);
533
- if (rego) {
534
- this.styleTilesetFeature(rego);
535
- }
536
- });
537
- }
538
- this.stylePendingEntityIds.delete(styleMap.EntityTypeID);
539
- }
546
+ this.flushPendingForType(styleMap.EntityTypeID);
540
547
  }
541
548
  }
542
549
  if (this.loadingCounter != counter) {
@@ -552,22 +559,63 @@ class TilesetStyler {
552
559
  for (const key of pendingKeys) {
553
560
  const relatedIds = this.stylePendingEntityIds.get(key);
554
561
  if (relatedIds) {
555
- if (this.getTilesetFeatureNeedsFullData(key)) {
556
- this.entityGatherer.Queue(Array.from(relatedIds));
557
- }
558
- else {
559
- relatedIds.forEach(id => {
560
- const rego = this.getEntityRego(id);
561
- if (rego) {
562
- this.styleTilesetFeature(rego);
563
- }
564
- });
565
- }
562
+ this.styleOrGatherIds(key, relatedIds);
566
563
  }
567
564
  }
568
565
  this.stylePendingEntityIds.clear();
569
566
  }
570
567
  }
568
+ /**
569
+ * Passes the Entities waiting on an Entity Type's style on to be styled, now that the style is known.
570
+ * @param entityTypeId
571
+ */
572
+ flushPendingForType(entityTypeId) {
573
+ const relatedIds = this.stylePendingEntityIds.get(entityTypeId);
574
+ if (!relatedIds) {
575
+ return;
576
+ }
577
+ this.styleOrGatherIds(entityTypeId, relatedIds);
578
+ this.stylePendingEntityIds.delete(entityTypeId);
579
+ }
580
+ hasMappingRow(entityTypeId) {
581
+ var _a;
582
+ return Boolean((_a = this.styleMapping) === null || _a === void 0 ? void 0 : _a.some(x => x.EntityTypeID == entityTypeId));
583
+ }
584
+ /**
585
+ * Loads the default style of an Entity Type that the style mapping does not list.
586
+ * @param entityTypeId
587
+ */
588
+ async loadEntityTypeDefaultStyle(entityTypeId) {
589
+ const counter = this.loadingCounter;
590
+ const styleMap = { EntityTypeID: entityTypeId, StyleID: 0, style: null };
591
+ this.styleMapping.push(styleMap);
592
+ try {
593
+ const { entityType } = await bruce_models_1.EntityType.Get({
594
+ api: this.api,
595
+ entityTypeId
596
+ });
597
+ const styleId = entityType === null || entityType === void 0 ? void 0 : entityType["DisplaySetting.ID"];
598
+ if (styleId && styleId != -1) {
599
+ const { style } = await bruce_models_1.Style.Get({
600
+ api: this.api,
601
+ styleId
602
+ });
603
+ if (style) {
604
+ styleMap.style = style;
605
+ styleMap.StyleID = styleId;
606
+ }
607
+ }
608
+ }
609
+ catch (e) {
610
+ console.error(e);
611
+ }
612
+ // A reload in the meantime resolves the row itself, or replaces the mapping and re-queues everything.
613
+ if (this.disposed || this.loadingCounter != counter) {
614
+ return;
615
+ }
616
+ this.styleMappingsLoaded.set(entityTypeId, true);
617
+ this.flushPendingForType(entityTypeId);
618
+ }
571
619
  disposeGatherer() {
572
620
  if (this.feedRestyleThrottleTimer) {
573
621
  clearTimeout(this.feedRestyleThrottleTimer);
@@ -606,21 +654,15 @@ class TilesetStyler {
606
654
  this.overrideFeatureColor.set(rego.entityId, false);
607
655
  }
608
656
  const typeId = rego.entityTypeId || "";
609
- if (this.styleMappingLoaded || this.styleMappingsLoaded.get(typeId)) {
610
- if (this.getTilesetFeatureNeedsFullData(typeId)) {
611
- needsDataIds.push(rego.entityId);
612
- }
613
- else {
614
- this.styleTilesetFeature(rego);
615
- }
657
+ // With no fallback style to use instead, a type the mapping does not list falls back to its own default.
658
+ if (this.styleMappingLoaded && typeId && !this.fallbackStyle && !this.hasMappingRow(typeId)) {
659
+ this.loadEntityTypeDefaultStyle(typeId);
660
+ }
661
+ if (this.styleMappingsLoaded.get(typeId) || (this.styleMappingLoaded && !this.hasMappingRow(typeId))) {
662
+ this.styleOrCollect(rego, typeId, needsDataIds);
616
663
  }
617
664
  else if (!this.styleMappingsLoaded.has(typeId) && this.styleFallbackLoaded) {
618
- if (this.getTilesetFeatureNeedsFullData(typeId)) {
619
- needsDataIds.push(rego.entityId);
620
- }
621
- else {
622
- this.styleTilesetFeature(rego);
623
- }
665
+ this.styleOrCollect(rego, typeId, needsDataIds);
624
666
  }
625
667
  else {
626
668
  if (!this.stylePendingEntityIds.has(typeId)) {
@@ -633,6 +675,96 @@ class TilesetStyler {
633
675
  this.entityGatherer.Queue(needsDataIds, highPriority);
634
676
  }
635
677
  }
678
+ /**
679
+ * Styles each Entity waiting on a type's style, gathering the records of those that need one.
680
+ * @param entityTypeId
681
+ * @param entityIds
682
+ */
683
+ styleOrGatherIds(entityTypeId, entityIds) {
684
+ const gatherIds = [];
685
+ for (const id of entityIds) {
686
+ const rego = this.getEntityRego(id);
687
+ if (rego) {
688
+ this.styleOrCollect(rego, entityTypeId, gatherIds);
689
+ }
690
+ }
691
+ if (gatherIds.length) {
692
+ this.entityGatherer.Queue(gatherIds);
693
+ }
694
+ }
695
+ /**
696
+ * Styles a feature now when its style reads no record, or reads only values its tile carries, and otherwise collects it for gathering.
697
+ * @param rego
698
+ * @param entityTypeId
699
+ * @param gatherIds Receives the Entity ID when its record is needed.
700
+ */
701
+ styleOrCollect(rego, entityTypeId, gatherIds) {
702
+ if (!this.getTilesetFeatureNeedsFullData(entityTypeId)) {
703
+ this.styleTilesetFeature(rego);
704
+ return;
705
+ }
706
+ const record = this.canStyleFromBaked(rego.entityId, entityTypeId) ? this.readBakedRecord(rego.visual) : null;
707
+ if (!record) {
708
+ gatherIds.push(rego.entityId);
709
+ return;
710
+ }
711
+ this.styleTilesetFeatureFullData(rego, record, []);
712
+ // A later edit has to reach the record path, and the change feed finds Entities by Internal ID.
713
+ if (rego.internalId != null) {
714
+ this.styledByInternalId.set(rego.internalId, rego.entityId);
715
+ }
716
+ }
717
+ /**
718
+ * Returns if the tile's baked values hold everything this Entity's style would read from its record.
719
+ * @param entityId
720
+ * @param entityTypeId
721
+ */
722
+ canStyleFromBaked(entityId, entityTypeId) {
723
+ var _a, _b, _c;
724
+ // Baked values are the base record at generation time, which a scenario, a point in time or merged sources all differ from.
725
+ if (!this.bakedAttributes.size || this.historic || !!this.scenario || this.expandSources) {
726
+ return false;
727
+ }
728
+ if (this.bakedStaleIds.has(entityId) || ((_a = this.entityGatherer) === null || _a === void 0 ? void 0 : _a.HasEntityDataOverride(entityId))) {
729
+ return false;
730
+ }
731
+ const paths = bruce_models_1.Calculator.GetFieldPaths((_c = (_b = this.getTilesetFeatureStyle(entityTypeId)) === null || _b === void 0 ? void 0 : _b.modelStyle) === null || _c === void 0 ? void 0 : _c.fillColor);
732
+ return paths != null && paths.every(path => this.bakedAttributes.has(JSON.stringify(path)));
733
+ }
734
+ /**
735
+ * Builds a stand-in record from a feature's baked values, holding only the attributes that have one.
736
+ * Returns null when the feature's tile lacks a declared column, so the record is gathered instead.
737
+ * @param visual
738
+ */
739
+ readBakedRecord(visual) {
740
+ if (!(visual instanceof Cesium.Cesium3DTileFeature)) {
741
+ return null;
742
+ }
743
+ const record = {};
744
+ for (const baked of this.bakedAttributes.values()) {
745
+ if (!visual.hasProperty(baked.property)) {
746
+ return null;
747
+ }
748
+ let value = visual.getProperty(baked.property);
749
+ if (value == null) {
750
+ continue;
751
+ }
752
+ // Booleans travel as 0/1 because a boolean column has no way to say "no value".
753
+ if (baked.type == "BOOLEAN") {
754
+ value = value != 0;
755
+ }
756
+ let target = record;
757
+ for (let i = 0; i < baked.path.length - 1; i++) {
758
+ const segment = baked.path[i];
759
+ if (target[segment] == null || typeof target[segment] != "object") {
760
+ target[segment] = {};
761
+ }
762
+ target = target[segment];
763
+ }
764
+ target[baked.path[baked.path.length - 1]] = value;
765
+ }
766
+ return record;
767
+ }
636
768
  styleTilesetFeature(rego) {
637
769
  this.styleTilesetFeatureFullData(rego, null, []);
638
770
  }
@@ -1 +1 @@
1
- {"version":3,"file":"tileset-styler.js","sourceRoot":"","sources":["../../../src/rendering/tileset-styler.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"tileset-styler.js","sourceRoot":"","sources":["../../../src/rendering/tileset-styler.ts"],"names":[],"mappings":"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"}
@@ -457,6 +457,8 @@ var VisualsRegister;
457
457
  // Caches GetIsIsolatedAny(). `null` means "unknown, recompute".
458
458
  // Invalidated on any write that could affect isolation.
459
459
  this.isolatedAnyCache = null;
460
+ // Set when isolation or opacity changes, so the next update checks whether anything is still dimmed.
461
+ this.dimmingDirty = false;
460
462
  // Caches GetIsolationOpacity(). `undefined` means "unknown, recompute", `null` means
461
463
  // "isolation (if any) is the legacy boolean/full-hide kind, not a numeric dim".
462
464
  // Invalidated alongside isolatedAnyCache.
@@ -725,6 +727,7 @@ var VisualsRegister;
725
727
  this.updateQueueInterval = null;
726
728
  return;
727
729
  }
730
+ this.syncDimming();
728
731
  const batch = this.updateQueue.splice(0, BATCH_SIZE);
729
732
  const cache = {};
730
733
  for (let i = 0; i < batch.length; i++) {
@@ -959,6 +962,9 @@ var VisualsRegister;
959
962
  this.isolatedAnyCache = null;
960
963
  this.isolationOpacityCache = undefined;
961
964
  }
965
+ if (keys.includes("isolated") || keys.includes("opacity")) {
966
+ this.dimmingDirty = true;
967
+ }
962
968
  let changed = false;
963
969
  const eStates = this.states[entityId] || {};
964
970
  this.states[entityId] = eStates;
@@ -1390,8 +1396,36 @@ var VisualsRegister;
1390
1396
  const { rego } = params;
1391
1397
  markEntity(this, rego, rego.visual, false);
1392
1398
  }
1399
+ /**
1400
+ * Tells the styler whether this register dims anything, by isolation or opacity.
1401
+ */
1402
+ syncDimming() {
1403
+ var _a, _b;
1404
+ if (!this.dimmingDirty) {
1405
+ return;
1406
+ }
1407
+ this.dimmingDirty = false;
1408
+ const dimming = Object.values(this.states).some(states => Object.values(states).some(state => state.isolated || (state.opacity != null && state.opacity < 1)));
1409
+ if (!cesium_entity_styler_1.CesiumEntityStyler.SetDimming(this.viewer, this.id, dimming)) {
1410
+ return;
1411
+ }
1412
+ const entityIds = new Set([...this.GetSelected(), ...this.GetHighlighted()]);
1413
+ for (const entityId of entityIds) {
1414
+ for (const rego of (_a = this.rego[entityId]) !== null && _a !== void 0 ? _a : []) {
1415
+ if (cesium_entity_styler_1.CesiumEntityStyler.IsModel(rego.visual)) {
1416
+ cesium_entity_styler_1.CesiumEntityStyler.Refresh({
1417
+ viewer: this.viewer,
1418
+ entity: rego.visual,
1419
+ requestRender: false
1420
+ });
1421
+ }
1422
+ }
1423
+ }
1424
+ (_b = this.viewer.scene) === null || _b === void 0 ? void 0 : _b.requestRender();
1425
+ }
1393
1426
  Dispose() {
1394
1427
  var _a, _b, _c, _d, _e;
1428
+ cesium_entity_styler_1.CesiumEntityStyler.SetDimming(this.viewer, this.id, false);
1395
1429
  this.ClearLabelHover();
1396
1430
  clearTimeout(this.hoverRingReset);
1397
1431
  this.hoverRingState = {};
@@ -2020,6 +2054,7 @@ var VisualsRegister;
2020
2054
  // Mutated `isolated` directly rather than through setStateValues().
2021
2055
  this.isolatedAnyCache = false;
2022
2056
  this.isolationOpacityCache = null;
2057
+ this.dimmingDirty = true;
2023
2058
  }
2024
2059
  if (changed && (params === null || params === void 0 ? void 0 : params.doUpdate) !== false) {
2025
2060
  this.updateAllEntities({
@@ -2756,6 +2791,7 @@ var VisualsRegister;
2756
2791
  }
2757
2792
  }
2758
2793
  async updateAllEntities(params) {
2794
+ this.syncDimming();
2759
2795
  const ids = Object.keys(this.rego);
2760
2796
  const interval = setInterval(() => {
2761
2797
  const batch = ids.splice(0, 3000);
@@ -2850,6 +2886,7 @@ var VisualsRegister;
2850
2886
  const clearedIds = new Set();
2851
2887
  this.ForEachState((state) => {
2852
2888
  if (!clearedIds.has(state.entityId) && state.opacity != null) {
2889
+ this.dimmingDirty = true;
2853
2890
  this.markLazyExclusion(state.entityId);
2854
2891
  this.queueUpdate({
2855
2892
  entityId: state.entityId,