bruce-cesium 3.0.8 → 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 (31) hide show
  1. package/dist/bruce-cesium.es5.js +130 -44
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +129 -43
  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/view-render-engine.js +14 -6
  19. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  20. package/dist/lib/rendering/visuals-register.js.map +1 -1
  21. package/dist/lib/utils/drawing-utils.js +25 -12
  22. package/dist/lib/utils/drawing-utils.js.map +1 -1
  23. package/dist/lib/utils/entity-utils.js +23 -17
  24. package/dist/lib/utils/entity-utils.js.map +1 -1
  25. package/dist/lib/utils/view-utils.js +1 -1
  26. package/dist/lib/utils/view-utils.js.map +1 -1
  27. package/dist/types/bruce-cesium.d.ts +1 -1
  28. package/dist/types/rendering/relation-render-engine.d.ts +1 -0
  29. package/dist/types/rendering/render-managers/common/cesium-parabola.d.ts +3 -0
  30. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +1 -1
  31. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { BruceEvent, Cartes, ProjectViewTile, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, Bounds, EntityRelationType, DelayQueue, EntityCoords, Api, EntitySource, MenuItem, EntityRelation, ENVIRONMENT, ProjectView, ProjectViewBookmark, ProjectViewLegacyTile, ProgramKey, Camera, AbstractApi, EntityAttachment, EntityAttachmentType, EntityAttribute } from 'bruce-models';
2
2
  import * as Cesium from 'cesium';
3
- import { Cartographic, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, JulianDate, SceneMode, Entity, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Model, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, EllipsoidTerrainProvider, CesiumInspector, defined, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, Cesium3DTileset, ScreenSpaceEventHandler, ScreenSpaceEventType, PolygonPipeline, Matrix4, Matrix3, IonResource, Ion, ColorMaterialProperty, GeometryInstance, BoundingSphere, Intersect } from 'cesium';
3
+ import { Cartographic, Cartesian2, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, JulianDate, SceneMode, HeightReference, DistanceDisplayCondition, NearFarScalar, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Model, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, defined, Cesium3DTileset, CesiumInspector, Matrix4, Matrix3, IonResource, Ion, ScreenSpaceEventHandler, ScreenSpaceEventType, PolygonPipeline, ColorMaterialProperty, GeometryInstance, BoundingSphere, Intersect } from 'cesium';
4
4
 
5
5
  var TIME_LAG = 300;
6
6
  var POSITION_CHECK_TIMER = 950;
@@ -507,15 +507,23 @@ var DrawingUtils;
507
507
  * @returns
508
508
  */
509
509
  function GetTerrainHeight(params) {
510
+ var _a;
510
511
  return __awaiter(this, void 0, void 0, function () {
511
- var pos3d, viewer, sample, height, e_1;
512
- return __generator(this, function (_a) {
513
- switch (_a.label) {
512
+ var pos3d, viewer, terrainProviderReady, sample, height, e_1;
513
+ return __generator(this, function (_b) {
514
+ switch (_b.label) {
514
515
  case 0:
515
516
  pos3d = params.pos3d, viewer = params.viewer;
516
- _a.label = 1;
517
+ _b.label = 1;
517
518
  case 1:
518
- _a.trys.push([1, 3, , 4]);
519
+ _b.trys.push([1, 3, , 4]);
520
+ terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
521
+ if (!terrainProviderReady) {
522
+ return [2 /*return*/, {
523
+ height: 0,
524
+ error: "Terrain provider not ready."
525
+ }];
526
+ }
519
527
  if (viewer.scene.terrainProvider instanceof EllipsoidTerrainProvider) {
520
528
  return [2 /*return*/, {
521
529
  height: 0
@@ -523,7 +531,7 @@ var DrawingUtils;
523
531
  }
524
532
  return [4 /*yield*/, sampleTerrainMostDetailed(viewer.scene.terrainProvider, [Cartographic.fromCartesian(pos3d)])];
525
533
  case 2:
526
- sample = _a.sent();
534
+ sample = _b.sent();
527
535
  height = (sample === null || sample === void 0 ? void 0 : sample.length) ? sample[0].height : null;
528
536
  if (isNaN(height)) {
529
537
  return [2 /*return*/, {
@@ -535,7 +543,7 @@ var DrawingUtils;
535
543
  height: height
536
544
  }];
537
545
  case 3:
538
- e_1 = _a.sent();
546
+ e_1 = _b.sent();
539
547
  return [2 /*return*/, {
540
548
  height: 0,
541
549
  error: e_1
@@ -706,12 +714,17 @@ var DrawingUtils;
706
714
  * @param minimumHeight height relative to ground
707
715
  */
708
716
  function RaisePos3d(viewer, pos3d, minimumHeight) {
717
+ var _a;
709
718
  if (minimumHeight === void 0) { minimumHeight = 0; }
710
719
  return __awaiter(this, void 0, void 0, function () {
711
- var carto, terrainCarto, sample, terrainHeight;
712
- return __generator(this, function (_a) {
713
- switch (_a.label) {
720
+ var terrainProviderReady, carto, terrainCarto, sample, terrainHeight;
721
+ return __generator(this, function (_b) {
722
+ switch (_b.label) {
714
723
  case 0:
724
+ terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
725
+ if (!terrainProviderReady) {
726
+ return [2 /*return*/, pos3d];
727
+ }
715
728
  carto = Cartographic.fromCartesian(pos3d);
716
729
  terrainCarto = carto.clone();
717
730
  terrainCarto.height = 0;
@@ -720,12 +733,12 @@ var DrawingUtils;
720
733
  return [3 /*break*/, 3];
721
734
  case 1: return [4 /*yield*/, sampleTerrainMostDetailed(viewer.scene.terrainProvider, [terrainCarto])];
722
735
  case 2:
723
- sample = _a.sent();
736
+ sample = _b.sent();
724
737
  terrainHeight = (sample === null || sample === void 0 ? void 0 : sample.length) ? sample[0].height : null;
725
738
  if (terrainHeight != null) {
726
739
  carto.height = Math.max(carto.height, terrainHeight + minimumHeight);
727
740
  }
728
- _a.label = 3;
741
+ _b.label = 3;
729
742
  case 3: return [2 /*return*/, Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height)];
730
743
  }
731
744
  });
@@ -806,7 +819,7 @@ var ViewUtils;
806
819
  function GatherTerrainTile(params) {
807
820
  var viewer = params.viewer;
808
821
  var provider = viewer.terrainProvider;
809
- if (provider._bMeta) {
822
+ if (provider === null || provider === void 0 ? void 0 : provider._bMeta) {
810
823
  return {
811
824
  terrain: {
812
825
  accountId: provider._bMeta.accountId,
@@ -1112,12 +1125,12 @@ var EntityUtils;
1112
1125
  * @param params
1113
1126
  */
1114
1127
  function GetLocation(params) {
1115
- var _a;
1128
+ var _a, _b;
1116
1129
  return __awaiter(this, void 0, void 0, function () {
1117
- 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;
1130
+ 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;
1118
1131
  var _this = this;
1119
- return __generator(this, function (_b) {
1120
- switch (_b.label) {
1132
+ return __generator(this, function (_c) {
1133
+ switch (_c.label) {
1121
1134
  case 0:
1122
1135
  api = params.api, viewer = params.viewer, samples = params.samples, visualRegister = params.visualRegister, minimumAlt = params.minimumAlt, paddingAlt = params.paddingAlt;
1123
1136
  if (!paddingAlt) {
@@ -1134,6 +1147,7 @@ var EntityUtils;
1134
1147
  if (MIN_RECT_DIAGONAL_LENGTH < 1500) {
1135
1148
  MIN_RECT_DIAGONAL_LENGTH = 1500;
1136
1149
  }
1150
+ terrainProviderReady = Boolean((_a = viewer === null || viewer === void 0 ? void 0 : viewer.terrainProvider) === null || _a === void 0 ? void 0 : _a.ready);
1137
1151
  data = {
1138
1152
  pos3d: null,
1139
1153
  rectangle: null
@@ -1143,11 +1157,12 @@ var EntityUtils;
1143
1157
  return __generator(this, function (_a) {
1144
1158
  switch (_a.label) {
1145
1159
  case 0:
1146
- if (!(!isNaN(minimumAlt) && minimumAlt != null)) return [3 /*break*/, 5];
1160
+ if (!(!isNaN(minimumAlt) && minimumAlt != null)) return [3 /*break*/, 7];
1147
1161
  carto = Cartographic.fromCartesian(pos3d);
1148
- if (!(carto === null || carto === void 0 ? void 0 : carto.latitude)) return [3 /*break*/, 4];
1162
+ if (!(carto === null || carto === void 0 ? void 0 : carto.latitude)) return [3 /*break*/, 6];
1149
1163
  baseHeight = 0;
1150
- if (!(heightRef == null || heightRef == HeightReference.RELATIVE_TO_GROUND || heightRef == HeightReference.NONE)) return [3 /*break*/, 3];
1164
+ if (!(heightRef == null || heightRef == HeightReference.RELATIVE_TO_GROUND || heightRef == HeightReference.NONE)) return [3 /*break*/, 5];
1165
+ if (!terrainProviderReady) return [3 /*break*/, 4];
1151
1166
  if (!(terrainSamples > MAX_TERRAIN_SAMPLES)) return [3 /*break*/, 1];
1152
1167
  baseHeight = viewer.scene.globe.getHeight(carto);
1153
1168
  return [3 /*break*/, 3];
@@ -1160,7 +1175,11 @@ var EntityUtils;
1160
1175
  baseHeight = terrData === null || terrData === void 0 ? void 0 : terrData.height;
1161
1176
  terrainSamples += 1;
1162
1177
  _a.label = 3;
1163
- case 3:
1178
+ case 3: return [3 /*break*/, 5];
1179
+ case 4:
1180
+ baseHeight = 0;
1181
+ _a.label = 5;
1182
+ case 5:
1164
1183
  if (baseHeight != undefined && !isNaN(baseHeight)) {
1165
1184
  height = baseHeight + minimumAlt;
1166
1185
  if (height > carto.height) {
@@ -1168,17 +1187,17 @@ var EntityUtils;
1168
1187
  }
1169
1188
  return [2 /*return*/, Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height + paddingAlt)];
1170
1189
  }
1171
- _a.label = 4;
1172
- case 4: return [3 /*break*/, 6];
1173
- case 5:
1190
+ _a.label = 6;
1191
+ case 6: return [3 /*break*/, 8];
1192
+ case 7:
1174
1193
  if (paddingAlt) {
1175
1194
  carto = Cartographic.fromCartesian(pos3d);
1176
1195
  if (carto === null || carto === void 0 ? void 0 : carto.latitude) {
1177
1196
  return [2 /*return*/, Cartesian3.fromRadians(carto.longitude, carto.latitude, carto.height + paddingAlt)];
1178
1197
  }
1179
1198
  }
1180
- _a.label = 6;
1181
- case 6: return [2 /*return*/, pos3d];
1199
+ _a.label = 8;
1200
+ case 8: return [2 /*return*/, pos3d];
1182
1201
  }
1183
1202
  });
1184
1203
  }); };
@@ -1545,13 +1564,13 @@ var EntityUtils;
1545
1564
  }); };
1546
1565
  allPosses = [];
1547
1566
  i = 0;
1548
- _b.label = 1;
1567
+ _c.label = 1;
1549
1568
  case 1:
1550
1569
  if (!(i < samples.length)) return [3 /*break*/, 4];
1551
1570
  sample = samples[i];
1552
1571
  return [4 /*yield*/, getEntityPositions(sample)];
1553
1572
  case 2:
1554
- samplePosses = _b.sent();
1573
+ samplePosses = _c.sent();
1555
1574
  if (samplePosses === null || samplePosses === void 0 ? void 0 : samplePosses.length) {
1556
1575
  valid = !(allPosses === null || allPosses === void 0 ? void 0 : allPosses.length);
1557
1576
  if (!valid) {
@@ -1578,7 +1597,7 @@ var EntityUtils;
1578
1597
  }
1579
1598
  }
1580
1599
  }
1581
- _b.label = 3;
1600
+ _c.label = 3;
1582
1601
  case 3:
1583
1602
  i++;
1584
1603
  return [3 /*break*/, 1];
@@ -1596,7 +1615,7 @@ var EntityUtils;
1596
1615
  terrData = ViewUtils.GatherTerrainTile({
1597
1616
  viewer: viewer
1598
1617
  });
1599
- if (((_a = terrData === null || terrData === void 0 ? void 0 : terrData.terrain) === null || _a === void 0 ? void 0 : _a.tilesetId) == ProjectViewTile.EDefaultTerrain.FlatTerrain) {
1618
+ if (((_b = terrData === null || terrData === void 0 ? void 0 : terrData.terrain) === null || _b === void 0 ? void 0 : _b.tilesetId) == ProjectViewTile.EDefaultTerrain.FlatTerrain) {
1600
1619
  MIN_RECT_DIAGONAL_LENGTH = 0;
1601
1620
  }
1602
1621
  posCarto = Cartographic.fromCartesian(allPosses[0]);
@@ -2964,6 +2983,11 @@ var EntityRenderEngine;
2964
2983
  if (viewer.isDestroyed()) {
2965
2984
  return;
2966
2985
  }
2986
+ // Entity relations have an embedded dispose method.
2987
+ if (entity === null || entity === void 0 ? void 0 : entity._dispose) {
2988
+ entity._dispose();
2989
+ entity._dispose = null;
2990
+ }
2967
2991
  if (entity._parentEntity && !ignoreParent) {
2968
2992
  doRemove({
2969
2993
  viewer: viewer,
@@ -3998,6 +4022,7 @@ var CesiumParabola = /** @class */ (function () {
3998
4022
  this.curPoints = [];
3999
4023
  this.animateInterval = null;
4000
4024
  this.retryTimeout = null;
4025
+ this.hidden = false;
4001
4026
  this.viewer = params.viewer;
4002
4027
  this.pos1 = params.pos1;
4003
4028
  this.pos2 = params.pos2;
@@ -4015,6 +4040,20 @@ var CesiumParabola = /** @class */ (function () {
4015
4040
  }
4016
4041
  this.prepareEntities();
4017
4042
  }
4043
+ Object.defineProperty(CesiumParabola.prototype, "Disposed", {
4044
+ get: function () {
4045
+ return this.disposed;
4046
+ },
4047
+ enumerable: false,
4048
+ configurable: true
4049
+ });
4050
+ Object.defineProperty(CesiumParabola.prototype, "Hidden", {
4051
+ set: function (value) {
4052
+ this.hidden = value;
4053
+ },
4054
+ enumerable: false,
4055
+ configurable: true
4056
+ });
4018
4057
  Object.defineProperty(CesiumParabola.prototype, "curPos1", {
4019
4058
  get: function () {
4020
4059
  return this.pos1 instanceof Function ? this.pos1() : this.pos1;
@@ -4037,7 +4076,10 @@ var CesiumParabola = /** @class */ (function () {
4037
4076
  return _this.curPoints;
4038
4077
  }, false),
4039
4078
  width: this.width,
4040
- material: Color.fromCssColorString(this.color)
4079
+ material: Color.fromCssColorString(this.color),
4080
+ show: new CallbackProperty(function () {
4081
+ return !_this.hidden;
4082
+ }, false)
4041
4083
  }
4042
4084
  });
4043
4085
  var p1Entity = new Entity({
@@ -4049,7 +4091,10 @@ var CesiumParabola = /** @class */ (function () {
4049
4091
  pixelSize: this.width * 1.3,
4050
4092
  color: Color.fromCssColorString(this.color),
4051
4093
  outlineColor: Color.WHITE,
4052
- outlineWidth: 2
4094
+ outlineWidth: 2,
4095
+ show: new CallbackProperty(function () {
4096
+ return !_this.hidden;
4097
+ }, false)
4053
4098
  }
4054
4099
  });
4055
4100
  var p2Entity = new Entity({
@@ -4061,7 +4106,10 @@ var CesiumParabola = /** @class */ (function () {
4061
4106
  pixelSize: this.width * 1.8,
4062
4107
  color: Color.fromCssColorString(this.color),
4063
4108
  outlineColor: Color.WHITE,
4064
- outlineWidth: 2
4109
+ outlineWidth: 2,
4110
+ show: new CallbackProperty(function () {
4111
+ return !_this.hidden;
4112
+ }, false)
4065
4113
  }
4066
4114
  });
4067
4115
  p1Entity.parent = parabola;
@@ -4069,7 +4117,9 @@ var CesiumParabola = /** @class */ (function () {
4069
4117
  var siblings = [p1Entity, p2Entity];
4070
4118
  this.parabola = parabola;
4071
4119
  this.siblings = siblings;
4072
- this.viewer.entities.add(this.parabola);
4120
+ // The parabola is hidden while this entity is not added.
4121
+ // If we avoid adding it now, then the parent can control if the parabola is visible at first or not.
4122
+ // this.viewer.entities.add(this.parabola);
4073
4123
  this.viewer.entities.add(p1Entity);
4074
4124
  this.viewer.entities.add(p2Entity);
4075
4125
  };
@@ -4498,7 +4548,7 @@ var RelationRenderEngine;
4498
4548
  function Render(params) {
4499
4549
  var _a;
4500
4550
  return __awaiter(this, void 0, void 0, function () {
4501
- var style, entity, bColor, cColor, width, duration, hDistanceRatio, fromPos, toPos, updatingPosses, updatePosses, parabola, cEntities, cEntity, i, sibling, updateInterval;
4551
+ var style, entity, bColor, cColor, width, duration, hDistanceRatio, fromPos, toPos, updatingPosses, updatePosses, parabola, cEntities, cEntity, i, sibling, updateInterval, disposed;
4502
4552
  var _this = this;
4503
4553
  return __generator(this, function (_b) {
4504
4554
  style = (_a = params.style) === null || _a === void 0 ? void 0 : _a.Settings;
@@ -4571,6 +4621,7 @@ var RelationRenderEngine;
4571
4621
  duration: duration,
4572
4622
  heightDistanceRatio: hDistanceRatio
4573
4623
  });
4624
+ parabola.Hidden = true;
4574
4625
  cEntities = parabola.Animate();
4575
4626
  cEntity = cEntities.parabola;
4576
4627
  cEntity._siblingGraphics = [];
@@ -4582,14 +4633,29 @@ var RelationRenderEngine;
4582
4633
  var _a;
4583
4634
  if (!((_a = params.viewer) === null || _a === void 0 ? void 0 : _a.scene) ||
4584
4635
  params.viewer.isDestroyed() ||
4585
- !params.viewer.entities.contains(cEntity)) {
4636
+ (!parabola || parabola.Disposed)) {
4586
4637
  clearInterval(updateInterval);
4587
4638
  parabola.Dispose();
4588
4639
  return;
4589
4640
  }
4641
+ if (parabola) {
4642
+ var visible = cEntity && cEntity.show != false && params.viewer.entities.contains(cEntity);
4643
+ parabola.Hidden = !visible;
4644
+ }
4590
4645
  updatePosses();
4591
4646
  params.viewer.scene.requestRender();
4592
4647
  }, 1000);
4648
+ disposed = false;
4649
+ cEntity._dispose = function () {
4650
+ if (disposed) {
4651
+ return;
4652
+ }
4653
+ disposed = true;
4654
+ clearInterval(updateInterval);
4655
+ if (parabola) {
4656
+ parabola.Dispose();
4657
+ }
4658
+ };
4593
4659
  return [2 /*return*/, cEntity];
4594
4660
  });
4595
4661
  });
@@ -10517,6 +10583,10 @@ var SharedGetters;
10517
10583
  if (!getter) {
10518
10584
  getter = new EntityFilterGetter.Getter(params.api, params.monitor, params.typeId, params.batchSize, params.attrFilter, params.cdn);
10519
10585
  this.data[cacheKey] = getter;
10586
+ /**
10587
+ * Debug option.
10588
+ * This will display the bounds of the cells that are being fetched.
10589
+ */
10520
10590
  if (params.viewer && params.debugShowBounds) {
10521
10591
  // Cell id -> entity.
10522
10592
  var cellCache_1 = {};
@@ -12105,6 +12175,10 @@ var RelationsRenderManager;
12105
12175
  if (cEntity && !_this.viewer.isDestroyed() && _this.viewer.entities.contains(cEntity)) {
12106
12176
  _this.viewer.entities.remove(cEntity);
12107
12177
  }
12178
+ if (cEntity === null || cEntity === void 0 ? void 0 : cEntity._dispose) {
12179
+ cEntity._dispose();
12180
+ cEntity._dispose = null;
12181
+ }
12108
12182
  };
12109
12183
  return [4 /*yield*/, RelationRenderEngine.Render({
12110
12184
  apiGetter: this.apiGetter,
@@ -12517,6 +12591,10 @@ var LegacyRelationsRenderManager;
12517
12591
  if (cEntity && !_this.viewer.isDestroyed() && _this.viewer.entities.contains(cEntity)) {
12518
12592
  _this.viewer.entities.remove(cEntity);
12519
12593
  }
12594
+ if (cEntity === null || cEntity === void 0 ? void 0 : cEntity._dispose) {
12595
+ cEntity._dispose();
12596
+ cEntity._dispose = null;
12597
+ }
12520
12598
  };
12521
12599
  return [4 /*yield*/, RelationRenderEngine.Render({
12522
12600
  apiGetter: this.apiGetter,
@@ -15376,7 +15454,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15376
15454
  params.manager.VisualsRegister.SetSelected({
15377
15455
  selected: true,
15378
15456
  entityIds: selectedIds,
15379
- refreshIfSelected: false
15457
+ refreshIfSelected: false,
15458
+ requestRender: false
15380
15459
  });
15381
15460
  }
15382
15461
  params.manager.VisualsRegister.ClearHidden();
@@ -15387,7 +15466,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15387
15466
  if (hiddenIds != null) {
15388
15467
  params.manager.VisualsRegister.SetHidden({
15389
15468
  hidden: true,
15390
- entityIds: hiddenIds
15469
+ entityIds: hiddenIds,
15470
+ requestRender: false
15391
15471
  });
15392
15472
  }
15393
15473
  params.manager.VisualsRegister.ClearIsolated();
@@ -15398,7 +15478,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15398
15478
  if (isolatedIds != null) {
15399
15479
  params.manager.VisualsRegister.SetIsolated({
15400
15480
  isolated: true,
15401
- entityIds: isolatedIds
15481
+ entityIds: isolatedIds,
15482
+ requestRender: false
15402
15483
  });
15403
15484
  }
15404
15485
  labelledIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.labelledEntityIds;
@@ -15406,7 +15487,9 @@ function renderNavigator(iteration, params, bookmark, view) {
15406
15487
  labelledIds = (_2 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _2 === void 0 ? void 0 : _2.labelledEntityIds;
15407
15488
  }
15408
15489
  if (!(labelledIds === null || labelledIds === void 0 ? void 0 : labelledIds.length)) {
15409
- params.manager.VisualsRegister.ClearLabelled();
15490
+ params.manager.VisualsRegister.ClearLabelled({
15491
+ requestRender: false
15492
+ });
15410
15493
  }
15411
15494
  else {
15412
15495
  curLabelledIds = params.manager.VisualsRegister.GetLabelled();
@@ -15418,7 +15501,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15418
15501
  toUnLabel = curLabelledIds.filter(function (id) { return labelledIds.indexOf(id) === -1; });
15419
15502
  params.manager.VisualsRegister.SetLabelled({
15420
15503
  labelled: false,
15421
- entityIds: toUnLabel
15504
+ entityIds: toUnLabel,
15505
+ requestRender: false
15422
15506
  });
15423
15507
  }
15424
15508
  params.manager.VisualsRegister.ClearOpacity();
@@ -15432,7 +15516,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15432
15516
  if (opacity != 1) {
15433
15517
  params.manager.VisualsRegister.SetOpacity({
15434
15518
  entityIds: [entityId],
15435
- opacity: opacity
15519
+ opacity: opacity,
15520
+ requestRender: false
15436
15521
  });
15437
15522
  }
15438
15523
  }
@@ -15467,6 +15552,7 @@ function renderNavigator(iteration, params, bookmark, view) {
15467
15552
  if (!relations) {
15468
15553
  relations = [];
15469
15554
  }
15555
+ viewer.scene.requestRender();
15470
15556
  curEnabled = params.manager.GetEnabledItemIds();
15471
15557
  newItemIds = (_5 = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _5 !== void 0 ? _5 : [];
15472
15558
  for (_i = 0, curEnabled_1 = curEnabled; _i < curEnabled_1.length; _i++) {
@@ -18455,7 +18541,7 @@ var ViewerUtils;
18455
18541
  ViewerUtils.CreateWidgets = CreateWidgets;
18456
18542
  })(ViewerUtils || (ViewerUtils = {}));
18457
18543
 
18458
- var VERSION$1 = "3.0.8";
18544
+ var VERSION$1 = "3.0.9";
18459
18545
 
18460
18546
  export { VERSION$1 as VERSION, CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, TilesetArbRenderManager, TilesetEntitiesRenderManager, TilesetOsmRenderManager, TilesetPointcloudRenderManager, TilesetGooglePhotosRenderManager, DataSourceStaticKmlManager, RelationsRenderManager, SharedGetters, CesiumParabola, EntityLabel, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, CESIUM_INSPECTOR_KEY, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils, Draw3dPolygon, Draw3dPolyline };
18461
18547
  //# sourceMappingURL=bruce-cesium.es5.js.map