bruce-cesium 3.0.7 → 3.0.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (33) hide show
  1. package/dist/bruce-cesium.es5.js +143 -58
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +142 -57
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/rendering/entity-render-engine.js +5 -0
  7. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  8. package/dist/lib/rendering/relation-render-engine.js +18 -2
  9. package/dist/lib/rendering/relation-render-engine.js.map +1 -1
  10. package/dist/lib/rendering/render-managers/common/cesium-parabola.js +30 -4
  11. package/dist/lib/rendering/render-managers/common/cesium-parabola.js.map +1 -1
  12. package/dist/lib/rendering/render-managers/common/shared-getters.js +4 -0
  13. package/dist/lib/rendering/render-managers/common/shared-getters.js.map +1 -1
  14. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js +4 -0
  15. package/dist/lib/rendering/render-managers/other/legacy-relations-render-manager.js.map +1 -1
  16. package/dist/lib/rendering/render-managers/other/relations-render-manager.js +4 -0
  17. package/dist/lib/rendering/render-managers/other/relations-render-manager.js.map +1 -1
  18. package/dist/lib/rendering/tileset-render-engine.js +13 -14
  19. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  20. package/dist/lib/rendering/view-render-engine.js +14 -6
  21. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  22. package/dist/lib/rendering/visuals-register.js.map +1 -1
  23. package/dist/lib/utils/drawing-utils.js +25 -12
  24. package/dist/lib/utils/drawing-utils.js.map +1 -1
  25. package/dist/lib/utils/entity-utils.js +23 -17
  26. package/dist/lib/utils/entity-utils.js.map +1 -1
  27. package/dist/lib/utils/view-utils.js +1 -1
  28. package/dist/lib/utils/view-utils.js.map +1 -1
  29. package/dist/types/bruce-cesium.d.ts +1 -1
  30. package/dist/types/rendering/relation-render-engine.d.ts +1 -0
  31. package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +3 -0
  32. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +1 -1
  33. package/package.json +1 -1
@@ -506,15 +506,23 @@
506
506
  * @returns
507
507
  */
508
508
  function GetTerrainHeight(params) {
509
+ var _a;
509
510
  return __awaiter(this, void 0, void 0, function () {
510
- var pos3d, viewer, sample, height, e_1;
511
- return __generator(this, function (_a) {
512
- switch (_a.label) {
511
+ var pos3d, viewer, terrainProviderReady, sample, height, e_1;
512
+ return __generator(this, function (_b) {
513
+ switch (_b.label) {
513
514
  case 0:
514
515
  pos3d = params.pos3d, viewer = params.viewer;
515
- _a.label = 1;
516
+ _b.label = 1;
516
517
  case 1:
517
- _a.trys.push([1, 3, , 4]);
518
+ _b.trys.push([1, 3, , 4]);
519
+ terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
520
+ if (!terrainProviderReady) {
521
+ return [2 /*return*/, {
522
+ height: 0,
523
+ error: "Terrain provider not ready."
524
+ }];
525
+ }
518
526
  if (viewer.scene.terrainProvider instanceof Cesium.EllipsoidTerrainProvider) {
519
527
  return [2 /*return*/, {
520
528
  height: 0
@@ -522,7 +530,7 @@
522
530
  }
523
531
  return [4 /*yield*/, Cesium.sampleTerrainMostDetailed(viewer.scene.terrainProvider, [Cesium.Cartographic.fromCartesian(pos3d)])];
524
532
  case 2:
525
- sample = _a.sent();
533
+ sample = _b.sent();
526
534
  height = (sample === null || sample === void 0 ? void 0 : sample.length) ? sample[0].height : null;
527
535
  if (isNaN(height)) {
528
536
  return [2 /*return*/, {
@@ -534,7 +542,7 @@
534
542
  height: height
535
543
  }];
536
544
  case 3:
537
- e_1 = _a.sent();
545
+ e_1 = _b.sent();
538
546
  return [2 /*return*/, {
539
547
  height: 0,
540
548
  error: e_1
@@ -705,12 +713,17 @@
705
713
  * @param minimumHeight height relative to ground
706
714
  */
707
715
  function RaisePos3d(viewer, pos3d, minimumHeight) {
716
+ var _a;
708
717
  if (minimumHeight === void 0) { minimumHeight = 0; }
709
718
  return __awaiter(this, void 0, void 0, function () {
710
- var carto, terrainCarto, sample, terrainHeight;
711
- return __generator(this, function (_a) {
712
- switch (_a.label) {
719
+ var terrainProviderReady, carto, terrainCarto, sample, terrainHeight;
720
+ return __generator(this, function (_b) {
721
+ switch (_b.label) {
713
722
  case 0:
723
+ terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
724
+ if (!terrainProviderReady) {
725
+ return [2 /*return*/, pos3d];
726
+ }
714
727
  carto = Cesium.Cartographic.fromCartesian(pos3d);
715
728
  terrainCarto = carto.clone();
716
729
  terrainCarto.height = 0;
@@ -719,12 +732,12 @@
719
732
  return [3 /*break*/, 3];
720
733
  case 1: return [4 /*yield*/, Cesium.sampleTerrainMostDetailed(viewer.scene.terrainProvider, [terrainCarto])];
721
734
  case 2:
722
- sample = _a.sent();
735
+ sample = _b.sent();
723
736
  terrainHeight = (sample === null || sample === void 0 ? void 0 : sample.length) ? sample[0].height : null;
724
737
  if (terrainHeight != null) {
725
738
  carto.height = Math.max(carto.height, terrainHeight + minimumHeight);
726
739
  }
727
- _a.label = 3;
740
+ _b.label = 3;
728
741
  case 3: return [2 /*return*/, Cesium.Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height)];
729
742
  }
730
743
  });
@@ -804,7 +817,7 @@
804
817
  function GatherTerrainTile(params) {
805
818
  var viewer = params.viewer;
806
819
  var provider = viewer.terrainProvider;
807
- if (provider._bMeta) {
820
+ if (provider === null || provider === void 0 ? void 0 : provider._bMeta) {
808
821
  return {
809
822
  terrain: {
810
823
  accountId: provider._bMeta.accountId,
@@ -1109,12 +1122,12 @@
1109
1122
  * @param params
1110
1123
  */
1111
1124
  function GetLocation(params) {
1112
- var _a;
1125
+ var _a, _b;
1113
1126
  return __awaiter(this, void 0, void 0, function () {
1114
- var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples, MIN_RECT_DIAGONAL_LENGTH, data, processPosHeight, ensureHeightRefs, getEntityPositions, allPosses, i, sample, samplePosses, valid, j, samplePos, k, allPos, distance, rect, factor, marginX, marginY, diagonalLen, terrData, posCarto, height, MIN_POSSES_LEN;
1127
+ var api, viewer, samples, visualRegister, minimumAlt, paddingAlt, MAX_DISTANCE_BETWEEN_SAMPLES, MAX_TERRAIN_SAMPLES, terrainSamples, MAX_API_CALLS, apiCalls, MAX_VALID_SAMPLES, validSamples, MIN_RECT_DIAGONAL_LENGTH, terrainProviderReady, data, processPosHeight, ensureHeightRefs, getEntityPositions, allPosses, i, sample, samplePosses, valid, j, samplePos, k, allPos, distance, rect, factor, marginX, marginY, diagonalLen, terrData, posCarto, height, MIN_POSSES_LEN;
1115
1128
  var _this = this;
1116
- return __generator(this, function (_b) {
1117
- switch (_b.label) {
1129
+ return __generator(this, function (_c) {
1130
+ switch (_c.label) {
1118
1131
  case 0:
1119
1132
  api = params.api, viewer = params.viewer, samples = params.samples, visualRegister = params.visualRegister, minimumAlt = params.minimumAlt, paddingAlt = params.paddingAlt;
1120
1133
  if (!paddingAlt) {
@@ -1131,6 +1144,7 @@
1131
1144
  if (MIN_RECT_DIAGONAL_LENGTH < 1500) {
1132
1145
  MIN_RECT_DIAGONAL_LENGTH = 1500;
1133
1146
  }
1147
+ terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
1134
1148
  data = {
1135
1149
  pos3d: null,
1136
1150
  rectangle: null
@@ -1140,11 +1154,12 @@
1140
1154
  return __generator(this, function (_a) {
1141
1155
  switch (_a.label) {
1142
1156
  case 0:
1143
- if (!(!isNaN(minimumAlt) && minimumAlt != null)) return [3 /*break*/, 5];
1157
+ if (!(!isNaN(minimumAlt) && minimumAlt != null)) return [3 /*break*/, 7];
1144
1158
  carto = Cesium.Cartographic.fromCartesian(pos3d);
1145
- if (!(carto === null || carto === void 0 ? void 0 : carto.latitude)) return [3 /*break*/, 4];
1159
+ if (!(carto === null || carto === void 0 ? void 0 : carto.latitude)) return [3 /*break*/, 6];
1146
1160
  baseHeight = 0;
1147
- if (!(heightRef == null || heightRef == Cesium.HeightReference.RELATIVE_TO_GROUND || heightRef == Cesium.HeightReference.NONE)) return [3 /*break*/, 3];
1161
+ if (!(heightRef == null || heightRef == Cesium.HeightReference.RELATIVE_TO_GROUND || heightRef == Cesium.HeightReference.NONE)) return [3 /*break*/, 5];
1162
+ if (!terrainProviderReady) return [3 /*break*/, 4];
1148
1163
  if (!(terrainSamples > MAX_TERRAIN_SAMPLES)) return [3 /*break*/, 1];
1149
1164
  baseHeight = viewer.scene.globe.getHeight(carto);
1150
1165
  return [3 /*break*/, 3];
@@ -1157,7 +1172,11 @@
1157
1172
  baseHeight = terrData === null || terrData === void 0 ? void 0 : terrData.height;
1158
1173
  terrainSamples += 1;
1159
1174
  _a.label = 3;
1160
- case 3:
1175
+ case 3: return [3 /*break*/, 5];
1176
+ case 4:
1177
+ baseHeight = 0;
1178
+ _a.label = 5;
1179
+ case 5:
1161
1180
  if (baseHeight != undefined && !isNaN(baseHeight)) {
1162
1181
  height = baseHeight + minimumAlt;
1163
1182
  if (height > carto.height) {
@@ -1165,17 +1184,17 @@
1165
1184
  }
1166
1185
  return [2 /*return*/, Cesium.Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height + paddingAlt)];
1167
1186
  }
1168
- _a.label = 4;
1169
- case 4: return [3 /*break*/, 6];
1170
- case 5:
1187
+ _a.label = 6;
1188
+ case 6: return [3 /*break*/, 8];
1189
+ case 7:
1171
1190
  if (paddingAlt) {
1172
1191
  carto = Cesium.Cartographic.fromCartesian(pos3d);
1173
1192
  if (carto === null || carto === void 0 ? void 0 : carto.latitude) {
1174
1193
  return [2 /*return*/, Cesium.Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height + paddingAlt)];
1175
1194
  }
1176
1195
  }
1177
- _a.label = 6;
1178
- case 6: return [2 /*return*/, pos3d];
1196
+ _a.label = 8;
1197
+ case 8: return [2 /*return*/, pos3d];
1179
1198
  }
1180
1199
  });
1181
1200
  }); };
@@ -1542,13 +1561,13 @@
1542
1561
  }); };
1543
1562
  allPosses = [];
1544
1563
  i = 0;
1545
- _b.label = 1;
1564
+ _c.label = 1;
1546
1565
  case 1:
1547
1566
  if (!(i < samples.length)) return [3 /*break*/, 4];
1548
1567
  sample = samples[i];
1549
1568
  return [4 /*yield*/, getEntityPositions(sample)];
1550
1569
  case 2:
1551
- samplePosses = _b.sent();
1570
+ samplePosses = _c.sent();
1552
1571
  if (samplePosses === null || samplePosses === void 0 ? void 0 : samplePosses.length) {
1553
1572
  valid = !(allPosses === null || allPosses === void 0 ? void 0 : allPosses.length);
1554
1573
  if (!valid) {
@@ -1575,7 +1594,7 @@
1575
1594
  }
1576
1595
  }
1577
1596
  }
1578
- _b.label = 3;
1597
+ _c.label = 3;
1579
1598
  case 3:
1580
1599
  i++;
1581
1600
  return [3 /*break*/, 1];
@@ -1593,7 +1612,7 @@
1593
1612
  terrData = exports.ViewUtils.GatherTerrainTile({
1594
1613
  viewer: viewer
1595
1614
  });
1596
- if (((_a = terrData === null || terrData === void 0 ? void 0 : terrData.terrain) === null || _a === void 0 ? void 0 : _a.tilesetId) == bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain) {
1615
+ if (((_b = terrData === null || terrData === void 0 ? void 0 : terrData.terrain) === null || _b === void 0 ? void 0 : _b.tilesetId) == bruceModels.ProjectViewTile.EDefaultTerrain.FlatTerrain) {
1597
1616
  MIN_RECT_DIAGONAL_LENGTH = 0;
1598
1617
  }
1599
1618
  posCarto = Cesium.Cartographic.fromCartesian(allPosses[0]);
@@ -2959,6 +2978,11 @@
2959
2978
  if (viewer.isDestroyed()) {
2960
2979
  return;
2961
2980
  }
2981
+ // Entity relations have an embedded dispose method.
2982
+ if (entity === null || entity === void 0 ? void 0 : entity._dispose) {
2983
+ entity._dispose();
2984
+ entity._dispose = null;
2985
+ }
2962
2986
  if (entity._parentEntity && !ignoreParent) {
2963
2987
  doRemove({
2964
2988
  viewer: viewer,
@@ -3993,6 +4017,7 @@
3993
4017
  this.curPoints = [];
3994
4018
  this.animateInterval = null;
3995
4019
  this.retryTimeout = null;
4020
+ this.hidden = false;
3996
4021
  this.viewer = params.viewer;
3997
4022
  this.pos1 = params.pos1;
3998
4023
  this.pos2 = params.pos2;
@@ -4010,6 +4035,20 @@
4010
4035
  }
4011
4036
  this.prepareEntities();
4012
4037
  }
4038
+ Object.defineProperty(CesiumParabola.prototype, "Disposed", {
4039
+ get: function () {
4040
+ return this.disposed;
4041
+ },
4042
+ enumerable: false,
4043
+ configurable: true
4044
+ });
4045
+ Object.defineProperty(CesiumParabola.prototype, "Hidden", {
4046
+ set: function (value) {
4047
+ this.hidden = value;
4048
+ },
4049
+ enumerable: false,
4050
+ configurable: true
4051
+ });
4013
4052
  Object.defineProperty(CesiumParabola.prototype, "curPos1", {
4014
4053
  get: function () {
4015
4054
  return this.pos1 instanceof Function ? this.pos1() : this.pos1;
@@ -4032,7 +4071,10 @@
4032
4071
  return _this.curPoints;
4033
4072
  }, false),
4034
4073
  width: this.width,
4035
- material: Cesium.Color.fromCssColorString(this.color)
4074
+ material: Cesium.Color.fromCssColorString(this.color),
4075
+ show: new Cesium.CallbackProperty(function () {
4076
+ return !_this.hidden;
4077
+ }, false)
4036
4078
  }
4037
4079
  });
4038
4080
  var p1Entity = new Cesium.Entity({
@@ -4044,7 +4086,10 @@
4044
4086
  pixelSize: this.width * 1.3,
4045
4087
  color: Cesium.Color.fromCssColorString(this.color),
4046
4088
  outlineColor: Cesium.Color.WHITE,
4047
- outlineWidth: 2
4089
+ outlineWidth: 2,
4090
+ show: new Cesium.CallbackProperty(function () {
4091
+ return !_this.hidden;
4092
+ }, false)
4048
4093
  }
4049
4094
  });
4050
4095
  var p2Entity = new Cesium.Entity({
@@ -4056,7 +4101,10 @@
4056
4101
  pixelSize: this.width * 1.8,
4057
4102
  color: Cesium.Color.fromCssColorString(this.color),
4058
4103
  outlineColor: Cesium.Color.WHITE,
4059
- outlineWidth: 2
4104
+ outlineWidth: 2,
4105
+ show: new Cesium.CallbackProperty(function () {
4106
+ return !_this.hidden;
4107
+ }, false)
4060
4108
  }
4061
4109
  });
4062
4110
  p1Entity.parent = parabola;
@@ -4064,7 +4112,9 @@
4064
4112
  var siblings = [p1Entity, p2Entity];
4065
4113
  this.parabola = parabola;
4066
4114
  this.siblings = siblings;
4067
- this.viewer.entities.add(this.parabola);
4115
+ // The parabola is hidden while this entity is not added.
4116
+ // If we avoid adding it now, then the parent can control if the parabola is visible at first or not.
4117
+ // this.viewer.entities.add(this.parabola);
4068
4118
  this.viewer.entities.add(p1Entity);
4069
4119
  this.viewer.entities.add(p2Entity);
4070
4120
  };
@@ -4493,7 +4543,7 @@
4493
4543
  function Render(params) {
4494
4544
  var _a;
4495
4545
  return __awaiter(this, void 0, void 0, function () {
4496
- var style, entity, bColor, cColor, width, duration, hDistanceRatio, fromPos, toPos, updatingPosses, updatePosses, parabola, cEntities, cEntity, i, sibling, updateInterval;
4546
+ var style, entity, bColor, cColor, width, duration, hDistanceRatio, fromPos, toPos, updatingPosses, updatePosses, parabola, cEntities, cEntity, i, sibling, updateInterval, disposed;
4497
4547
  var _this = this;
4498
4548
  return __generator(this, function (_b) {
4499
4549
  style = (_a = params.style) === null || _a === void 0 ? void 0 : _a.Settings;
@@ -4566,6 +4616,7 @@
4566
4616
  duration: duration,
4567
4617
  heightDistanceRatio: hDistanceRatio
4568
4618
  });
4619
+ parabola.Hidden = true;
4569
4620
  cEntities = parabola.Animate();
4570
4621
  cEntity = cEntities.parabola;
4571
4622
  cEntity._siblingGraphics = [];
@@ -4577,14 +4628,29 @@
4577
4628
  var _a;
4578
4629
  if (!((_a = params.viewer) === null || _a === void 0 ? void 0 : _a.scene) ||
4579
4630
  params.viewer.isDestroyed() ||
4580
- !params.viewer.entities.contains(cEntity)) {
4631
+ (!parabola || parabola.Disposed)) {
4581
4632
  clearInterval(updateInterval);
4582
4633
  parabola.Dispose();
4583
4634
  return;
4584
4635
  }
4636
+ if (parabola) {
4637
+ var visible = cEntity && cEntity.show != false && params.viewer.entities.contains(cEntity);
4638
+ parabola.Hidden = !visible;
4639
+ }
4585
4640
  updatePosses();
4586
4641
  params.viewer.scene.requestRender();
4587
4642
  }, 1000);
4643
+ disposed = false;
4644
+ cEntity._dispose = function () {
4645
+ if (disposed) {
4646
+ return;
4647
+ }
4648
+ disposed = true;
4649
+ clearInterval(updateInterval);
4650
+ if (parabola) {
4651
+ parabola.Dispose();
4652
+ }
4653
+ };
4588
4654
  return [2 /*return*/, cEntity];
4589
4655
  });
4590
4656
  });
@@ -8874,21 +8940,20 @@
8874
8940
  }
8875
8941
  }
8876
8942
  else {
8877
- if (!(location === null || location === void 0 ? void 0 : location.latitude)) {
8878
- return;
8943
+ if ((location === null || location === void 0 ? void 0 : location.latitude) || (location === null || location === void 0 ? void 0 : location.longitude)) {
8944
+ var translationMatrix = Cesium.Matrix4.fromTranslation(new Cesium.Cartesian3(EnsureNumber(transform.x), EnsureNumber(transform.y), EnsureNumber(transform.z)), new Cesium.Matrix4());
8945
+ var pos3d = Cesium.Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
8946
+ var m1 = Cesium.Transforms.eastNorthUpToFixedFrame(pos3d);
8947
+ var hpr = Cesium.HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new Cesium.HeadingPitchRoll());
8948
+ var hprRotation = Cesium.Matrix3.fromHeadingPitchRoll(hpr);
8949
+ var scaleMatrix = Cesium.Matrix4.fromUniformScale(EnsureNumber(transform.scale), new Cesium.Matrix4());
8950
+ var combinedMatrix = Cesium.Matrix4.multiply(m1, translationMatrix, new Cesium.Matrix4());
8951
+ combinedMatrix = Cesium.Matrix4.multiply(combinedMatrix, Cesium.Matrix4.fromRotation(hprRotation), new Cesium.Matrix4());
8952
+ combinedMatrix = Cesium.Matrix4.multiply(combinedMatrix, scaleMatrix, new Cesium.Matrix4());
8953
+ root.transform = combinedMatrix;
8954
+ // Force matrix to update
8955
+ root.updateTransform();
8879
8956
  }
8880
- var translationMatrix = Cesium.Matrix4.fromTranslation(new Cesium.Cartesian3(EnsureNumber(transform.x), EnsureNumber(transform.y), EnsureNumber(transform.z)), new Cesium.Matrix4());
8881
- var pos3d = Cesium.Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
8882
- var m1 = Cesium.Transforms.eastNorthUpToFixedFrame(pos3d);
8883
- var hpr = Cesium.HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new Cesium.HeadingPitchRoll());
8884
- var hprRotation = Cesium.Matrix3.fromHeadingPitchRoll(hpr);
8885
- var scaleMatrix = Cesium.Matrix4.fromUniformScale(EnsureNumber(transform.scale), new Cesium.Matrix4());
8886
- var combinedMatrix = Cesium.Matrix4.multiply(m1, translationMatrix, new Cesium.Matrix4());
8887
- combinedMatrix = Cesium.Matrix4.multiply(combinedMatrix, Cesium.Matrix4.fromRotation(hprRotation), new Cesium.Matrix4());
8888
- combinedMatrix = Cesium.Matrix4.multiply(combinedMatrix, scaleMatrix, new Cesium.Matrix4());
8889
- root.transform = combinedMatrix;
8890
- // Force matrix to update
8891
- root.updateTransform();
8892
8957
  }
8893
8958
  // Store data in the tileset as we can't interpret it using the cesium primitive later.
8894
8959
  var cTilesetExt = cTileset;
@@ -10477,6 +10542,10 @@
10477
10542
  if (!getter) {
10478
10543
  getter = new EntityFilterGetter.Getter(params.api, params.monitor, params.typeId, params.batchSize, params.attrFilter, params.cdn);
10479
10544
  this.data[cacheKey] = getter;
10545
+ /**
10546
+ * Debug option.
10547
+ * This will display the bounds of the cells that are being fetched.
10548
+ */
10480
10549
  if (params.viewer && params.debugShowBounds) {
10481
10550
  // Cell id -> entity.
10482
10551
  var cellCache_1 = {};
@@ -12059,6 +12128,10 @@
12059
12128
  if (cEntity && !_this.viewer.isDestroyed() && _this.viewer.entities.contains(cEntity)) {
12060
12129
  _this.viewer.entities.remove(cEntity);
12061
12130
  }
12131
+ if (cEntity === null || cEntity === void 0 ? void 0 : cEntity._dispose) {
12132
+ cEntity._dispose();
12133
+ cEntity._dispose = null;
12134
+ }
12062
12135
  };
12063
12136
  return [4 /*yield*/, RelationRenderEngine.Render({
12064
12137
  apiGetter: this.apiGetter,
@@ -12470,6 +12543,10 @@
12470
12543
  if (cEntity && !_this.viewer.isDestroyed() && _this.viewer.entities.contains(cEntity)) {
12471
12544
  _this.viewer.entities.remove(cEntity);
12472
12545
  }
12546
+ if (cEntity === null || cEntity === void 0 ? void 0 : cEntity._dispose) {
12547
+ cEntity._dispose();
12548
+ cEntity._dispose = null;
12549
+ }
12473
12550
  };
12474
12551
  return [4 /*yield*/, RelationRenderEngine.Render({
12475
12552
  apiGetter: this.apiGetter,
@@ -15320,7 +15397,8 @@
15320
15397
  params.manager.VisualsRegister.SetSelected({
15321
15398
  selected: true,
15322
15399
  entityIds: selectedIds,
15323
- refreshIfSelected: false
15400
+ refreshIfSelected: false,
15401
+ requestRender: false
15324
15402
  });
15325
15403
  }
15326
15404
  params.manager.VisualsRegister.ClearHidden();
@@ -15331,7 +15409,8 @@
15331
15409
  if (hiddenIds != null) {
15332
15410
  params.manager.VisualsRegister.SetHidden({
15333
15411
  hidden: true,
15334
- entityIds: hiddenIds
15412
+ entityIds: hiddenIds,
15413
+ requestRender: false
15335
15414
  });
15336
15415
  }
15337
15416
  params.manager.VisualsRegister.ClearIsolated();
@@ -15342,7 +15421,8 @@
15342
15421
  if (isolatedIds != null) {
15343
15422
  params.manager.VisualsRegister.SetIsolated({
15344
15423
  isolated: true,
15345
- entityIds: isolatedIds
15424
+ entityIds: isolatedIds,
15425
+ requestRender: false
15346
15426
  });
15347
15427
  }
15348
15428
  labelledIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.labelledEntityIds;
@@ -15350,7 +15430,9 @@
15350
15430
  labelledIds = (_2 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _2 === void 0 ? void 0 : _2.labelledEntityIds;
15351
15431
  }
15352
15432
  if (!(labelledIds === null || labelledIds === void 0 ? void 0 : labelledIds.length)) {
15353
- params.manager.VisualsRegister.ClearLabelled();
15433
+ params.manager.VisualsRegister.ClearLabelled({
15434
+ requestRender: false
15435
+ });
15354
15436
  }
15355
15437
  else {
15356
15438
  curLabelledIds = params.manager.VisualsRegister.GetLabelled();
@@ -15362,7 +15444,8 @@
15362
15444
  toUnLabel = curLabelledIds.filter(function (id) { return labelledIds.indexOf(id) === -1; });
15363
15445
  params.manager.VisualsRegister.SetLabelled({
15364
15446
  labelled: false,
15365
- entityIds: toUnLabel
15447
+ entityIds: toUnLabel,
15448
+ requestRender: false
15366
15449
  });
15367
15450
  }
15368
15451
  params.manager.VisualsRegister.ClearOpacity();
@@ -15376,7 +15459,8 @@
15376
15459
  if (opacity != 1) {
15377
15460
  params.manager.VisualsRegister.SetOpacity({
15378
15461
  entityIds: [entityId],
15379
- opacity: opacity
15462
+ opacity: opacity,
15463
+ requestRender: false
15380
15464
  });
15381
15465
  }
15382
15466
  }
@@ -15411,6 +15495,7 @@
15411
15495
  if (!relations) {
15412
15496
  relations = [];
15413
15497
  }
15498
+ viewer.scene.requestRender();
15414
15499
  curEnabled = params.manager.GetEnabledItemIds();
15415
15500
  newItemIds = (_5 = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _5 !== void 0 ? _5 : [];
15416
15501
  for (_i = 0, curEnabled_1 = curEnabled; _i < curEnabled_1.length; _i++) {
@@ -18397,7 +18482,7 @@
18397
18482
  ViewerUtils.CreateWidgets = CreateWidgets;
18398
18483
  })(exports.ViewerUtils || (exports.ViewerUtils = {}));
18399
18484
 
18400
- var VERSION$1 = "3.0.7";
18485
+ var VERSION$1 = "3.0.9";
18401
18486
 
18402
18487
  exports.VERSION = VERSION$1;
18403
18488
  exports.CesiumParabola = CesiumParabola;