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
@@ -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, Entity, Primitive, Cesium3DTileFeature, JulianDate, HeightReference, DistanceDisplayCondition, NearFarScalar, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, CornerType, ShadowMode, PolygonHierarchy, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Model, SceneMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, KmlDataSource, SceneTransforms, OrthographicFrustum, EasingFunction, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Cesium3DTileset, Matrix4, Matrix3, IonResource, Ion, CesiumInspector, defined, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ColorMaterialProperty, GeometryInstance, ScreenSpaceEventHandler, ScreenSpaceEventType, 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
  });
@@ -8909,21 +8975,20 @@ var TilesetRenderEngine;
8909
8975
  }
8910
8976
  }
8911
8977
  else {
8912
- if (!(location === null || location === void 0 ? void 0 : location.latitude)) {
8913
- return;
8978
+ if ((location === null || location === void 0 ? void 0 : location.latitude) || (location === null || location === void 0 ? void 0 : location.longitude)) {
8979
+ var translationMatrix = Matrix4.fromTranslation(new Cartesian3(EnsureNumber(transform.x), EnsureNumber(transform.y), EnsureNumber(transform.z)), new Matrix4());
8980
+ var pos3d = Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
8981
+ var m1 = Transforms.eastNorthUpToFixedFrame(pos3d);
8982
+ var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new HeadingPitchRoll());
8983
+ var hprRotation = Matrix3.fromHeadingPitchRoll(hpr);
8984
+ var scaleMatrix = Matrix4.fromUniformScale(EnsureNumber(transform.scale), new Matrix4());
8985
+ var combinedMatrix = Matrix4.multiply(m1, translationMatrix, new Matrix4());
8986
+ combinedMatrix = Matrix4.multiply(combinedMatrix, Matrix4.fromRotation(hprRotation), new Matrix4());
8987
+ combinedMatrix = Matrix4.multiply(combinedMatrix, scaleMatrix, new Matrix4());
8988
+ root.transform = combinedMatrix;
8989
+ // Force matrix to update
8990
+ root.updateTransform();
8914
8991
  }
8915
- var translationMatrix = Matrix4.fromTranslation(new Cartesian3(EnsureNumber(transform.x), EnsureNumber(transform.y), EnsureNumber(transform.z)), new Matrix4());
8916
- var pos3d = Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
8917
- var m1 = Transforms.eastNorthUpToFixedFrame(pos3d);
8918
- var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new HeadingPitchRoll());
8919
- var hprRotation = Matrix3.fromHeadingPitchRoll(hpr);
8920
- var scaleMatrix = Matrix4.fromUniformScale(EnsureNumber(transform.scale), new Matrix4());
8921
- var combinedMatrix = Matrix4.multiply(m1, translationMatrix, new Matrix4());
8922
- combinedMatrix = Matrix4.multiply(combinedMatrix, Matrix4.fromRotation(hprRotation), new Matrix4());
8923
- combinedMatrix = Matrix4.multiply(combinedMatrix, scaleMatrix, new Matrix4());
8924
- root.transform = combinedMatrix;
8925
- // Force matrix to update
8926
- root.updateTransform();
8927
8992
  }
8928
8993
  // Store data in the tileset as we can't interpret it using the cesium primitive later.
8929
8994
  var cTilesetExt = cTileset;
@@ -10518,6 +10583,10 @@ var SharedGetters;
10518
10583
  if (!getter) {
10519
10584
  getter = new EntityFilterGetter.Getter(params.api, params.monitor, params.typeId, params.batchSize, params.attrFilter, params.cdn);
10520
10585
  this.data[cacheKey] = getter;
10586
+ /**
10587
+ * Debug option.
10588
+ * This will display the bounds of the cells that are being fetched.
10589
+ */
10521
10590
  if (params.viewer && params.debugShowBounds) {
10522
10591
  // Cell id -> entity.
10523
10592
  var cellCache_1 = {};
@@ -12106,6 +12175,10 @@ var RelationsRenderManager;
12106
12175
  if (cEntity && !_this.viewer.isDestroyed() && _this.viewer.entities.contains(cEntity)) {
12107
12176
  _this.viewer.entities.remove(cEntity);
12108
12177
  }
12178
+ if (cEntity === null || cEntity === void 0 ? void 0 : cEntity._dispose) {
12179
+ cEntity._dispose();
12180
+ cEntity._dispose = null;
12181
+ }
12109
12182
  };
12110
12183
  return [4 /*yield*/, RelationRenderEngine.Render({
12111
12184
  apiGetter: this.apiGetter,
@@ -12518,6 +12591,10 @@ var LegacyRelationsRenderManager;
12518
12591
  if (cEntity && !_this.viewer.isDestroyed() && _this.viewer.entities.contains(cEntity)) {
12519
12592
  _this.viewer.entities.remove(cEntity);
12520
12593
  }
12594
+ if (cEntity === null || cEntity === void 0 ? void 0 : cEntity._dispose) {
12595
+ cEntity._dispose();
12596
+ cEntity._dispose = null;
12597
+ }
12521
12598
  };
12522
12599
  return [4 /*yield*/, RelationRenderEngine.Render({
12523
12600
  apiGetter: this.apiGetter,
@@ -15377,7 +15454,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15377
15454
  params.manager.VisualsRegister.SetSelected({
15378
15455
  selected: true,
15379
15456
  entityIds: selectedIds,
15380
- refreshIfSelected: false
15457
+ refreshIfSelected: false,
15458
+ requestRender: false
15381
15459
  });
15382
15460
  }
15383
15461
  params.manager.VisualsRegister.ClearHidden();
@@ -15388,7 +15466,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15388
15466
  if (hiddenIds != null) {
15389
15467
  params.manager.VisualsRegister.SetHidden({
15390
15468
  hidden: true,
15391
- entityIds: hiddenIds
15469
+ entityIds: hiddenIds,
15470
+ requestRender: false
15392
15471
  });
15393
15472
  }
15394
15473
  params.manager.VisualsRegister.ClearIsolated();
@@ -15399,7 +15478,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15399
15478
  if (isolatedIds != null) {
15400
15479
  params.manager.VisualsRegister.SetIsolated({
15401
15480
  isolated: true,
15402
- entityIds: isolatedIds
15481
+ entityIds: isolatedIds,
15482
+ requestRender: false
15403
15483
  });
15404
15484
  }
15405
15485
  labelledIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.labelledEntityIds;
@@ -15407,7 +15487,9 @@ function renderNavigator(iteration, params, bookmark, view) {
15407
15487
  labelledIds = (_2 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _2 === void 0 ? void 0 : _2.labelledEntityIds;
15408
15488
  }
15409
15489
  if (!(labelledIds === null || labelledIds === void 0 ? void 0 : labelledIds.length)) {
15410
- params.manager.VisualsRegister.ClearLabelled();
15490
+ params.manager.VisualsRegister.ClearLabelled({
15491
+ requestRender: false
15492
+ });
15411
15493
  }
15412
15494
  else {
15413
15495
  curLabelledIds = params.manager.VisualsRegister.GetLabelled();
@@ -15419,7 +15501,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15419
15501
  toUnLabel = curLabelledIds.filter(function (id) { return labelledIds.indexOf(id) === -1; });
15420
15502
  params.manager.VisualsRegister.SetLabelled({
15421
15503
  labelled: false,
15422
- entityIds: toUnLabel
15504
+ entityIds: toUnLabel,
15505
+ requestRender: false
15423
15506
  });
15424
15507
  }
15425
15508
  params.manager.VisualsRegister.ClearOpacity();
@@ -15433,7 +15516,8 @@ function renderNavigator(iteration, params, bookmark, view) {
15433
15516
  if (opacity != 1) {
15434
15517
  params.manager.VisualsRegister.SetOpacity({
15435
15518
  entityIds: [entityId],
15436
- opacity: opacity
15519
+ opacity: opacity,
15520
+ requestRender: false
15437
15521
  });
15438
15522
  }
15439
15523
  }
@@ -15468,6 +15552,7 @@ function renderNavigator(iteration, params, bookmark, view) {
15468
15552
  if (!relations) {
15469
15553
  relations = [];
15470
15554
  }
15555
+ viewer.scene.requestRender();
15471
15556
  curEnabled = params.manager.GetEnabledItemIds();
15472
15557
  newItemIds = (_5 = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _5 !== void 0 ? _5 : [];
15473
15558
  for (_i = 0, curEnabled_1 = curEnabled; _i < curEnabled_1.length; _i++) {
@@ -18456,7 +18541,7 @@ var ViewerUtils;
18456
18541
  ViewerUtils.CreateWidgets = CreateWidgets;
18457
18542
  })(ViewerUtils || (ViewerUtils = {}));
18458
18543
 
18459
- var VERSION$1 = "3.0.7";
18544
+ var VERSION$1 = "3.0.9";
18460
18545
 
18461
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 };
18462
18547
  //# sourceMappingURL=bruce-cesium.es5.js.map