bruce-cesium 1.9.2 → 1.9.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.
Files changed (26) hide show
  1. package/dist/bruce-cesium.es5.js +192 -95
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +191 -94
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/rendering/entity-render-engine.js +6 -6
  6. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  7. package/dist/lib/rendering/menu-item-manager.js +7 -3
  8. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  9. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +52 -17
  10. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  11. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +12 -3
  12. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  13. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +21 -8
  14. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  15. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +51 -17
  16. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  17. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
  18. package/dist/lib/rendering/view-render-engine.js +42 -40
  19. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  20. package/dist/types/rendering/menu-item-manager.d.ts +3 -2
  21. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +3 -1
  22. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +2 -1
  23. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +2 -1
  24. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +3 -1
  25. package/dist/types/rendering/render-managers/render-manager.d.ts +1 -0
  26. package/package.json +1 -1
@@ -1,6 +1,6 @@
1
1
  import { BruceEvent, Cartes, Carto, Entity as Entity$1, Geometry, Tileset, MathUtils, LRUCache, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, DelayQueue, BatchedDataGetter, EntityRelationType, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
2
2
  import * as Cesium from 'cesium';
3
- import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, HeightReference, EllipsoidTerrainProvider, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, SceneMode, HeadingPitchRange, Cesium3DTileColorBlendMode, createOsmBuildings, Cesium3DTileStyle, OrthographicFrustum, JulianDate, NearFarScalar, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, KmlDataSource, Cesium3DTileset, Matrix4, Matrix3, IonResource, PolygonPipeline, ColorMaterialProperty, EasingFunction, GeometryInstance } from 'cesium';
3
+ import { Cartesian2, Cartographic, CallbackProperty, Cartesian3, Color, Rectangle, Math as Math$1, Entity, Primitive, Cesium3DTileFeature, HeightReference, EllipsoidTerrainProvider, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, SceneMode, HeadingPitchRange, Cesium3DTileColorBlendMode, Cesium3DTileStyle, createOsmBuildings, KmlDataSource, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Cesium3DTileset, Matrix4, Matrix3, IonResource, PolygonPipeline, OrthographicFrustum, JulianDate, NearFarScalar, ColorMaterialProperty, EasingFunction, GeometryInstance, EllipsoidGeodesic, sampleTerrainMostDetailed } from 'cesium';
4
4
 
5
5
  var TIME_LAG = 300;
6
6
  var POSITION_CHECK_TIMER = 950;
@@ -1535,12 +1535,14 @@ function getStyle(api, entity, styleId) {
1535
1535
  });
1536
1536
  });
1537
1537
  }
1538
+ function shouldApplyFlatFix(terrain) {
1539
+ return terrain instanceof EllipsoidTerrainProvider;
1540
+ }
1538
1541
  function getRenderGroupId(zoomItem, terrain) {
1539
- var isFlatTerrain = terrain instanceof EllipsoidTerrainProvider;
1540
1542
  if (!zoomItem) {
1541
1543
  return null;
1542
1544
  }
1543
- return zoomItem.MinZoom + "-" + zoomItem.MaxZoom + "-" + isFlatTerrain;
1545
+ return zoomItem.MinZoom + "-" + zoomItem.MaxZoom + "-" + shouldApplyFlatFix(terrain);
1544
1546
  }
1545
1547
  var _fileValidationCache = {};
1546
1548
  var EntityRenderEngine;
@@ -2070,8 +2072,7 @@ var EntityRenderEngine;
2070
2072
  var flattenPoints = false;
2071
2073
  // We gain a lot of performance when not clamping.
2072
2074
  // If there is no terrain we can safely not clamp.
2073
- if (heightRef == HeightReference.CLAMP_TO_GROUND &&
2074
- ((_b = params.viewer) === null || _b === void 0 ? void 0 : _b.terrainProvider) instanceof EllipsoidTerrainProvider) {
2075
+ if (heightRef == HeightReference.CLAMP_TO_GROUND && shouldApplyFlatFix((_b = params.viewer) === null || _b === void 0 ? void 0 : _b.terrainProvider)) {
2075
2076
  heightRef = HeightReference.NONE;
2076
2077
  flattenPoints = true;
2077
2078
  }
@@ -2207,8 +2208,7 @@ var EntityRenderEngine;
2207
2208
  var extrusion = getPolygonExtrusion(entity, params.tags, outerRing, posses, heightRef, style);
2208
2209
  posses = extrusion.posses;
2209
2210
  var flattenPoints = false;
2210
- if (heightRef == HeightReference.CLAMP_TO_GROUND &&
2211
- ((_b = params.viewer) === null || _b === void 0 ? void 0 : _b.terrainProvider) instanceof EllipsoidTerrainProvider) {
2211
+ if (heightRef == HeightReference.CLAMP_TO_GROUND && shouldApplyFlatFix((_b = params.viewer) === null || _b === void 0 ? void 0 : _b.terrainProvider)) {
2212
2212
  heightRef = HeightReference.NONE;
2213
2213
  flattenPoints = true;
2214
2214
  }
@@ -2670,11 +2670,14 @@ var EntitiesRenderManager;
2670
2670
  };
2671
2671
  Manager.prototype.ReRender = function (params) {
2672
2672
  return __awaiter(this, void 0, void 0, function () {
2673
- var entityIds, force, data, e_1;
2673
+ var entityIds, force, entities, data, e_1;
2674
2674
  return __generator(this, function (_a) {
2675
2675
  switch (_a.label) {
2676
2676
  case 0:
2677
- entityIds = params.entityIds, force = params.force;
2677
+ entityIds = params.entityIds, force = params.force, entities = params.entities;
2678
+ if (entities && !entityIds) {
2679
+ entityIds = entities.map(function (x) { var _a; return (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID; });
2680
+ }
2678
2681
  if (entityIds == null) {
2679
2682
  entityIds = Object.keys(this.renderedEntities);
2680
2683
  }
@@ -2682,8 +2685,13 @@ var EntitiesRenderManager;
2682
2685
  entityIds: entityIds,
2683
2686
  menuItemIds: [this.item.id]
2684
2687
  });
2688
+ if (entities === null || entities === void 0 ? void 0 : entities.length) {
2689
+ entities = [].concat(entities).filter(function (x) { var _a; return entityIds.includes((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID); });
2690
+ }
2685
2691
  if (!force) return [3 /*break*/, 5];
2686
- _a.label = 1;
2692
+ if (!(entities === null || entities === void 0 ? void 0 : entities.length)) return [3 /*break*/, 1];
2693
+ this.renderEntities(entities, true);
2694
+ return [3 /*break*/, 4];
2687
2695
  case 1:
2688
2696
  _a.trys.push([1, 3, , 4]);
2689
2697
  return [4 /*yield*/, Entity$1.GetListByIds({
@@ -2698,12 +2706,16 @@ var EntitiesRenderManager;
2698
2706
  e_1 = _a.sent();
2699
2707
  console.error(e_1);
2700
2708
  return [3 /*break*/, 4];
2701
- case 4: return [3 /*break*/, 7];
2702
- case 5: return [4 /*yield*/, this.doEntityCheck(entityIds)];
2703
- case 6:
2709
+ case 4: return [3 /*break*/, 8];
2710
+ case 5:
2711
+ if (!(entities === null || entities === void 0 ? void 0 : entities.length)) return [3 /*break*/, 6];
2712
+ this.distributeForRender(entities);
2713
+ return [3 /*break*/, 8];
2714
+ case 6: return [4 /*yield*/, this.doEntityCheck(entityIds)];
2715
+ case 7:
2704
2716
  _a.sent();
2705
- _a.label = 7;
2706
- case 7: return [2 /*return*/];
2717
+ _a.label = 8;
2718
+ case 8: return [2 /*return*/];
2707
2719
  }
2708
2720
  });
2709
2721
  });
@@ -2850,6 +2862,7 @@ var EntitiesRenderManager;
2850
2862
  });
2851
2863
  }
2852
2864
  }
2865
+ this.viewer.scene.requestRender();
2853
2866
  return [3 /*break*/, 3];
2854
2867
  case 2:
2855
2868
  e_3 = _d.sent();
@@ -2919,10 +2932,13 @@ var EntitiesLoadedRenderManager;
2919
2932
  };
2920
2933
  Manager.prototype.ReRender = function (params) {
2921
2934
  return __awaiter(this, void 0, void 0, function () {
2922
- var entityIds, force;
2935
+ var entityIds, force, entities;
2923
2936
  var _this = this;
2924
2937
  return __generator(this, function (_a) {
2925
- entityIds = params.entityIds, force = params.force;
2938
+ entityIds = params.entityIds, force = params.force, entities = params.entities;
2939
+ if (entities && !entityIds) {
2940
+ entityIds = entities.map(function (x) { var _a; return (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID; });
2941
+ }
2926
2942
  if (entityIds == null) {
2927
2943
  entityIds = Object.keys(this.renderedEntities);
2928
2944
  }
@@ -2937,7 +2953,12 @@ var EntitiesLoadedRenderManager;
2937
2953
  entityIds: entityIds,
2938
2954
  menuItemIds: [this.item.id]
2939
2955
  });
2940
- this.doEntityCheck(entityIds, force);
2956
+ if (entities === null || entities === void 0 ? void 0 : entities.length) {
2957
+ this.onGetterUpdate([].concat(entities).filter(function (x) { var _a; return entityIds.includes((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID); }), force);
2958
+ }
2959
+ else {
2960
+ this.doEntityCheck(entityIds, force);
2961
+ }
2941
2962
  return [2 /*return*/];
2942
2963
  });
2943
2964
  });
@@ -3048,6 +3069,7 @@ var EntitiesLoadedRenderManager;
3048
3069
  });
3049
3070
  }
3050
3071
  }
3072
+ this.viewer.scene.requestRender();
3051
3073
  return [3 /*break*/, 3];
3052
3074
  case 2:
3053
3075
  e_2 = _b.sent();
@@ -4421,10 +4443,13 @@ var EntitiesIdsRenderManager;
4421
4443
  };
4422
4444
  Manager.prototype.ReRender = function (params) {
4423
4445
  return __awaiter(this, void 0, void 0, function () {
4424
- var entityIds, force;
4446
+ var entityIds, force, entities;
4425
4447
  var _this = this;
4426
4448
  return __generator(this, function (_a) {
4427
- entityIds = params.entityIds, force = params.force;
4449
+ entityIds = params.entityIds, force = params.force, entities = params.entities;
4450
+ if (entities && !entityIds) {
4451
+ entityIds = entities.map(function (x) { var _a; return (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID; });
4452
+ }
4428
4453
  if (entityIds == null) {
4429
4454
  entityIds = Object.keys(this.renderedEntities);
4430
4455
  }
@@ -4439,32 +4464,63 @@ var EntitiesIdsRenderManager;
4439
4464
  entityIds: entityIds,
4440
4465
  menuItemIds: [this.item.id]
4441
4466
  });
4442
- this.onGetterUpdate(entityIds, force);
4467
+ if (entities === null || entities === void 0 ? void 0 : entities.length) {
4468
+ this.renderEntities([].concat(entities).filter(function (x) { var _a; return entityIds.includes((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID); }), force);
4469
+ }
4470
+ else {
4471
+ this.onGetterUpdate(entityIds, force);
4472
+ }
4443
4473
  return [2 /*return*/];
4444
4474
  });
4445
4475
  });
4446
4476
  };
4447
4477
  Manager.prototype.onGetterUpdate = function (entityIds, force) {
4448
- var _a;
4449
4478
  if (force === void 0) { force = false; }
4450
4479
  return __awaiter(this, void 0, void 0, function () {
4451
- var api, entities, cEntities, i, entity, id, cEntity, visual, e_1;
4452
- return __generator(this, function (_b) {
4453
- switch (_b.label) {
4480
+ var api, entities, e_1;
4481
+ return __generator(this, function (_a) {
4482
+ switch (_a.label) {
4454
4483
  case 0:
4455
4484
  if (this.disposed || this.viewer.isDestroyed()) {
4456
4485
  return [2 /*return*/];
4457
4486
  }
4458
- _b.label = 1;
4487
+ _a.label = 1;
4459
4488
  case 1:
4460
- _b.trys.push([1, 4, , 5]);
4489
+ _a.trys.push([1, 4, , 5]);
4461
4490
  api = this.apiGetter.getApi();
4462
4491
  return [4 /*yield*/, Entity$1.GetListByIds({
4463
4492
  api: api,
4464
4493
  entityIds: entityIds
4465
4494
  })];
4466
4495
  case 2:
4467
- entities = (_b.sent()).entities;
4496
+ entities = (_a.sent()).entities;
4497
+ return [4 /*yield*/, this.renderEntities(entities, force)];
4498
+ case 3:
4499
+ _a.sent();
4500
+ return [3 /*break*/, 5];
4501
+ case 4:
4502
+ e_1 = _a.sent();
4503
+ console.error(e_1);
4504
+ return [3 /*break*/, 5];
4505
+ case 5: return [2 /*return*/];
4506
+ }
4507
+ });
4508
+ });
4509
+ };
4510
+ Manager.prototype.renderEntities = function (entities, force) {
4511
+ var _a;
4512
+ if (force === void 0) { force = false; }
4513
+ return __awaiter(this, void 0, void 0, function () {
4514
+ var cEntities, i, entity, id, cEntity, visual, e_2;
4515
+ return __generator(this, function (_b) {
4516
+ switch (_b.label) {
4517
+ case 0:
4518
+ if (this.disposed || this.viewer.isDestroyed()) {
4519
+ return [2 /*return*/];
4520
+ }
4521
+ _b.label = 1;
4522
+ case 1:
4523
+ _b.trys.push([1, 3, , 4]);
4468
4524
  return [4 /*yield*/, EntityRenderEngine.Render({
4469
4525
  viewer: this.viewer,
4470
4526
  apiGetter: this.apiGetter,
@@ -4474,7 +4530,7 @@ var EntitiesIdsRenderManager;
4474
4530
  zoomControl: this.item.CameraZoomSettings,
4475
4531
  force: force
4476
4532
  })];
4477
- case 3:
4533
+ case 2:
4478
4534
  cEntities = _b.sent();
4479
4535
  for (i = 0; i < entities.length; i++) {
4480
4536
  entity = entities[i];
@@ -4506,12 +4562,13 @@ var EntitiesIdsRenderManager;
4506
4562
  });
4507
4563
  }
4508
4564
  }
4509
- return [3 /*break*/, 5];
4510
- case 4:
4511
- e_1 = _b.sent();
4512
- console.error(e_1);
4513
- return [3 /*break*/, 5];
4514
- case 5: return [2 /*return*/];
4565
+ this.viewer.scene.requestRender();
4566
+ return [3 /*break*/, 4];
4567
+ case 3:
4568
+ e_2 = _b.sent();
4569
+ console.error(e_2);
4570
+ return [3 /*break*/, 4];
4571
+ case 4: return [2 /*return*/];
4515
4572
  }
4516
4573
  });
4517
4574
  });
@@ -4570,11 +4627,15 @@ var EntityRenderManager;
4570
4627
  };
4571
4628
  Manager.prototype.ReRender = function (params) {
4572
4629
  return __awaiter(this, void 0, void 0, function () {
4573
- var entityIds, force;
4630
+ var entityIds, force, entities;
4631
+ var _this = this;
4574
4632
  return __generator(this, function (_a) {
4575
4633
  switch (_a.label) {
4576
4634
  case 0:
4577
- entityIds = params.entityIds, force = params.force;
4635
+ entityIds = params.entityIds, force = params.force, entities = params.entities;
4636
+ if (entities && !entityIds) {
4637
+ entityIds = entities.map(function (x) { var _a; return (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID; });
4638
+ }
4578
4639
  if (entityIds && !entityIds.includes(this.item.BruceEntity.EntityId)) {
4579
4640
  return [2 /*return*/];
4580
4641
  }
@@ -4582,23 +4643,28 @@ var EntityRenderManager;
4582
4643
  entityIds: entityIds,
4583
4644
  menuItemIds: [this.item.id]
4584
4645
  });
4585
- return [4 /*yield*/, this.onGetterUpdate(this.item.BruceEntity.EntityId, force)];
4646
+ if (!(entities === null || entities === void 0 ? void 0 : entities.length)) return [3 /*break*/, 2];
4647
+ return [4 /*yield*/, this.renderEntity(entities.find(function (x) { var _a; return ((_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID) == _this.item.BruceEntity.EntityId; }), force)];
4586
4648
  case 1:
4587
4649
  _a.sent();
4588
- return [2 /*return*/];
4650
+ return [3 /*break*/, 4];
4651
+ case 2: return [4 /*yield*/, this.onGetterUpdate(this.item.BruceEntity.EntityId, force)];
4652
+ case 3:
4653
+ _a.sent();
4654
+ _a.label = 4;
4655
+ case 4: return [2 /*return*/];
4589
4656
  }
4590
4657
  });
4591
4658
  });
4592
4659
  };
4593
4660
  Manager.prototype.onGetterUpdate = function (id, force) {
4594
- var _a;
4595
4661
  if (force === void 0) { force = false; }
4596
4662
  return __awaiter(this, void 0, void 0, function () {
4597
- var api, entity, cEntities, cEntity, visual, e_1;
4598
- return __generator(this, function (_b) {
4599
- switch (_b.label) {
4663
+ var api, entity, e_1;
4664
+ return __generator(this, function (_a) {
4665
+ switch (_a.label) {
4600
4666
  case 0:
4601
- _b.trys.push([0, 3, , 4]);
4667
+ _a.trys.push([0, 2, , 3]);
4602
4668
  if (this.disposed || this.viewer.isDestroyed()) {
4603
4669
  return [2 /*return*/];
4604
4670
  }
@@ -4608,7 +4674,31 @@ var EntityRenderManager;
4608
4674
  entityId: id
4609
4675
  })];
4610
4676
  case 1:
4611
- entity = (_b.sent()).entity;
4677
+ entity = (_a.sent()).entity;
4678
+ this.renderEntity(entity, force);
4679
+ return [3 /*break*/, 3];
4680
+ case 2:
4681
+ e_1 = _a.sent();
4682
+ console.error(e_1);
4683
+ return [3 /*break*/, 3];
4684
+ case 3: return [2 /*return*/];
4685
+ }
4686
+ });
4687
+ });
4688
+ };
4689
+ Manager.prototype.renderEntity = function (entity, force) {
4690
+ var _a;
4691
+ if (force === void 0) { force = false; }
4692
+ return __awaiter(this, void 0, void 0, function () {
4693
+ var id, cEntities, cEntity, visual, e_2;
4694
+ return __generator(this, function (_b) {
4695
+ switch (_b.label) {
4696
+ case 0:
4697
+ _b.trys.push([0, 2, , 3]);
4698
+ if (this.disposed || this.viewer.isDestroyed()) {
4699
+ return [2 /*return*/];
4700
+ }
4701
+ id = entity.Bruce.ID;
4612
4702
  return [4 /*yield*/, EntityRenderEngine.Render({
4613
4703
  viewer: this.viewer,
4614
4704
  apiGetter: this.apiGetter,
@@ -4618,7 +4708,7 @@ var EntityRenderManager;
4618
4708
  zoomControl: this.item.CameraZoomSettings,
4619
4709
  force: force
4620
4710
  })];
4621
- case 2:
4711
+ case 1:
4622
4712
  cEntities = _b.sent();
4623
4713
  cEntity = cEntities[id];
4624
4714
  if (cEntity) {
@@ -4645,12 +4735,13 @@ var EntityRenderManager;
4645
4735
  menuItemId: this.item.id
4646
4736
  });
4647
4737
  }
4648
- return [3 /*break*/, 4];
4649
- case 3:
4650
- e_1 = _b.sent();
4651
- console.error(e_1);
4652
- return [3 /*break*/, 4];
4653
- case 4: return [2 /*return*/];
4738
+ this.viewer.scene.requestRender();
4739
+ return [3 /*break*/, 3];
4740
+ case 2:
4741
+ e_2 = _b.sent();
4742
+ console.error(e_2);
4743
+ return [3 /*break*/, 3];
4744
+ case 3: return [2 /*return*/];
4654
4745
  }
4655
4746
  });
4656
4747
  });
@@ -7375,14 +7466,17 @@ var MenuItemManager;
7375
7466
  */
7376
7467
  Manager.prototype.ReRender = function (params) {
7377
7468
  return __awaiter(this, void 0, void 0, function () {
7378
- var entityIds, menuItemIds, force, items, i, item;
7469
+ var entityIds, entities, menuItemIds, force, items, i, item;
7379
7470
  return __generator(this, function (_a) {
7380
7471
  switch (_a.label) {
7381
7472
  case 0:
7382
- entityIds = params.entityIds, menuItemIds = params.menuItemIds, force = params.force;
7383
- if (!(entityIds === null || entityIds === void 0 ? void 0 : entityIds.length)) {
7473
+ entityIds = params.entityIds, entities = params.entities, menuItemIds = params.menuItemIds, force = params.force;
7474
+ if (!(entityIds === null || entityIds === void 0 ? void 0 : entityIds.length) && !(entities === null || entities === void 0 ? void 0 : entities.length)) {
7384
7475
  return [2 /*return*/];
7385
7476
  }
7477
+ if (!entityIds && entities) {
7478
+ entityIds = entities.map(function (x) { var _a; return (_a = x.Bruce) === null || _a === void 0 ? void 0 : _a.ID; });
7479
+ }
7386
7480
  items = (menuItemIds === null || menuItemIds === void 0 ? void 0 : menuItemIds.length) ? this.items.filter(function (x) { return menuItemIds.includes(x.id); }) : this.items;
7387
7481
  i = 0;
7388
7482
  _a.label = 1;
@@ -7392,6 +7486,7 @@ var MenuItemManager;
7392
7486
  if (!item.renderManager) return [3 /*break*/, 3];
7393
7487
  return [4 /*yield*/, item.renderManager.ReRender({
7394
7488
  entityIds: entityIds,
7489
+ entities: entities,
7395
7490
  force: force
7396
7491
  })];
7397
7492
  case 2:
@@ -8971,11 +9066,11 @@ function renderLegacyNavigator(params, bookmark, view) {
8971
9066
  * @param view
8972
9067
  */
8973
9068
  function renderNavigator(params, bookmark, view) {
8974
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4;
9069
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s, _t, _u, _v, _w, _x, _y, _z, _0, _1, _2, _3, _4, _5;
8975
9070
  return __awaiter(this, void 0, void 0, function () {
8976
- var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, terrain, gOcclusion, hillShades, baseColor, globeHidden, globeAlpha, shadows, size, ambientOcclusion, AO, lighting, light, quality, fxaa, dateTime, clock, selectedIds, hiddenIds, isolatedIds, entityOpacityMap, entityId, opacity, imagery, renderedRelationEntityIds, curEnabled, newItemIds, _i, curEnabled_1, id, menuItem;
8977
- return __generator(this, function (_5) {
8978
- switch (_5.label) {
9071
+ var viewer, scene, vSettings, bSettings, defaults, camera, newLens, modePicker, is2d, curLens, modePicker_1, transition, pos, terrain, gOcclusion, hillShades, baseColor, globeHidden, globeAlpha, shadows, size, ambientOcclusion, AO, lighting, light, quality, fxaa, dateTime, clock, selectedIds, hiddenIds, isolatedIds, entityOpacityMap, entityId, opacity, imagery, renderedRelationEntityIds, curEnabled, newItemIds, _i, curEnabled_1, id, menuItem;
9072
+ return __generator(this, function (_6) {
9073
+ switch (_6.label) {
8979
9074
  case 0:
8980
9075
  viewer = params.manager.Viewer;
8981
9076
  scene = viewer.scene;
@@ -8994,23 +9089,25 @@ function renderNavigator(params, bookmark, view) {
8994
9089
  // TODO: Need global default.
8995
9090
  newLens = Camera.EFrustum.Perspective;
8996
9091
  }
8997
- curLens = scene.camera.frustum instanceof OrthographicFrustum ?
8998
- Camera.EFrustum.Orthographic :
8999
- Camera.EFrustum.Perspective;
9092
+ modePicker = viewer === null || viewer === void 0 ? void 0 : viewer.sceneModePicker;
9093
+ is2d = ((_l = modePicker === null || modePicker === void 0 ? void 0 : modePicker.viewModel) === null || _l === void 0 ? void 0 : _l.sceneMode) === SceneMode.SCENE2D;
9094
+ curLens = is2d ? Camera.EFrustum.Orthographic : Camera.EFrustum.Perspective;
9000
9095
  if (newLens != curLens) {
9001
- if (newLens == Camera.EFrustum.Perspective) {
9002
- scene.camera.switchToPerspectiveFrustum();
9003
- scene.screenSpaceCameraController.enableTilt = true;
9004
- }
9005
- else {
9006
- scene.camera.switchToOrthographicFrustum();
9007
- scene.screenSpaceCameraController.enableTilt = false;
9096
+ modePicker_1 = viewer === null || viewer === void 0 ? void 0 : viewer.sceneModePicker;
9097
+ if (modePicker_1) {
9098
+ modePicker_1.viewModel.duration = 0;
9099
+ if (newLens == Camera.EFrustum.Perspective) {
9100
+ modePicker_1.viewModel._morphTo3D();
9101
+ }
9102
+ else {
9103
+ modePicker_1.viewModel._morphTo2D();
9104
+ }
9008
9105
  }
9009
9106
  }
9010
9107
  if (!params.skipCamera) {
9011
9108
  transition = params.skipTransition ? 0 : curLens === newLens ? camera.transition : 0;
9012
9109
  if (transition == null) {
9013
- transition = (_l = defaults.camera) === null || _l === void 0 ? void 0 : _l.transition;
9110
+ transition = (_m = defaults.camera) === null || _m === void 0 ? void 0 : _m.transition;
9014
9111
  }
9015
9112
  if (transition == null) {
9016
9113
  // TODO: Need global default.
@@ -9029,7 +9126,7 @@ function renderNavigator(params, bookmark, view) {
9029
9126
  });
9030
9127
  }
9031
9128
  }
9032
- terrain = (bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain) != null ? bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain : (_m = defaults.settings) === null || _m === void 0 ? void 0 : _m.terrain;
9129
+ terrain = (bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain) != null ? bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain : (_o = defaults.settings) === null || _o === void 0 ? void 0 : _o.terrain;
9033
9130
  if (!terrain) return [3 /*break*/, 2];
9034
9131
  return [4 /*yield*/, TileRenderEngine.Terrain.Navigator.Render({
9035
9132
  apiGetter: params.apiGetter,
@@ -9037,21 +9134,21 @@ function renderNavigator(params, bookmark, view) {
9037
9134
  viewer: params.manager.Viewer,
9038
9135
  })];
9039
9136
  case 1:
9040
- _5.sent();
9041
- _5.label = 2;
9137
+ _6.sent();
9138
+ _6.label = 2;
9042
9139
  case 2:
9043
9140
  gOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.groundOcclusion;
9044
9141
  if (gOcclusion == null) {
9045
- gOcclusion = (_o = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _o === void 0 ? void 0 : _o.groundOcclusion;
9142
+ gOcclusion = (_p = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _p === void 0 ? void 0 : _p.groundOcclusion;
9046
9143
  }
9047
9144
  if (gOcclusion == null) {
9048
9145
  // TODO: Need global default.
9049
9146
  gOcclusion = true;
9050
9147
  }
9051
9148
  scene.globe.depthTestAgainstTerrain = Boolean(gOcclusion);
9052
- hillShades = (_p = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _p === void 0 ? void 0 : _p.hillShades;
9149
+ hillShades = (_q = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _q === void 0 ? void 0 : _q.hillShades;
9053
9150
  if (hillShades == null) {
9054
- hillShades = (_q = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _q === void 0 ? void 0 : _q.hillShades;
9151
+ hillShades = (_r = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _r === void 0 ? void 0 : _r.hillShades;
9055
9152
  }
9056
9153
  if (hillShades == null) {
9057
9154
  hillShades = true;
@@ -9059,7 +9156,7 @@ function renderNavigator(params, bookmark, view) {
9059
9156
  scene.globe.enableLighting = Boolean(hillShades);
9060
9157
  baseColor = bSettings === null || bSettings === void 0 ? void 0 : bSettings.globeColor;
9061
9158
  if (baseColor == null) {
9062
- baseColor = (_r = defaults.settings) === null || _r === void 0 ? void 0 : _r.globeColor;
9159
+ baseColor = (_s = defaults.settings) === null || _s === void 0 ? void 0 : _s.globeColor;
9063
9160
  }
9064
9161
  if (baseColor == null) {
9065
9162
  // TODO: Need global default.
@@ -9068,7 +9165,7 @@ function renderNavigator(params, bookmark, view) {
9068
9165
  scene.globe.baseColor = Color.fromCssColorString(baseColor);
9069
9166
  globeHidden = bSettings === null || bSettings === void 0 ? void 0 : bSettings.globeHidden;
9070
9167
  if (globeHidden == null) {
9071
- globeHidden = (_s = defaults.settings) === null || _s === void 0 ? void 0 : _s.globeHidden;
9168
+ globeHidden = (_t = defaults.settings) === null || _t === void 0 ? void 0 : _t.globeHidden;
9072
9169
  }
9073
9170
  if (globeHidden == null) {
9074
9171
  globeHidden = false;
@@ -9076,7 +9173,7 @@ function renderNavigator(params, bookmark, view) {
9076
9173
  scene.globe.show = !globeHidden;
9077
9174
  globeAlpha = +(bSettings === null || bSettings === void 0 ? void 0 : bSettings.globeAlpha);
9078
9175
  if (isNaN(globeAlpha)) {
9079
- globeAlpha = +((_t = defaults.settings) === null || _t === void 0 ? void 0 : _t.globeAlpha);
9176
+ globeAlpha = +((_u = defaults.settings) === null || _u === void 0 ? void 0 : _u.globeAlpha);
9080
9177
  }
9081
9178
  if (!scene.globe.translucency.enabled) {
9082
9179
  scene.globe.translucency.enabled = true;
@@ -9086,7 +9183,7 @@ function renderNavigator(params, bookmark, view) {
9086
9183
  scene.globe.translucency.frontFaceAlphaByDistance.nearValue = EnsureNumber(globeAlpha, 1);
9087
9184
  shadows = bSettings === null || bSettings === void 0 ? void 0 : bSettings.shadows;
9088
9185
  if (shadows == null) {
9089
- shadows = (_u = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _u === void 0 ? void 0 : _u.shadows;
9186
+ shadows = (_v = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _v === void 0 ? void 0 : _v.shadows;
9090
9187
  }
9091
9188
  if (shadows == null) {
9092
9189
  shadows = {
@@ -9113,7 +9210,7 @@ function renderNavigator(params, bookmark, view) {
9113
9210
  }
9114
9211
  ambientOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.ambientOcclusion;
9115
9212
  if (ambientOcclusion == null) {
9116
- ambientOcclusion = (_v = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _v === void 0 ? void 0 : _v.ambientOcclusion;
9213
+ ambientOcclusion = (_w = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _w === void 0 ? void 0 : _w.ambientOcclusion;
9117
9214
  }
9118
9215
  if (ambientOcclusion == null) {
9119
9216
  ambientOcclusion = {
@@ -9136,7 +9233,7 @@ function renderNavigator(params, bookmark, view) {
9136
9233
  }
9137
9234
  lighting = bSettings === null || bSettings === void 0 ? void 0 : bSettings.lighting;
9138
9235
  if (lighting == null) {
9139
- lighting = (_w = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _w === void 0 ? void 0 : _w.lighting;
9236
+ lighting = (_x = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _x === void 0 ? void 0 : _x.lighting;
9140
9237
  }
9141
9238
  if (lighting == null) {
9142
9239
  lighting = {
@@ -9151,7 +9248,7 @@ function renderNavigator(params, bookmark, view) {
9151
9248
  }
9152
9249
  quality = bSettings === null || bSettings === void 0 ? void 0 : bSettings.quality;
9153
9250
  if (quality == null) {
9154
- quality = (_x = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _x === void 0 ? void 0 : _x.quality;
9251
+ quality = (_y = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _y === void 0 ? void 0 : _y.quality;
9155
9252
  }
9156
9253
  if (quality == null) {
9157
9254
  quality = {
@@ -9162,7 +9259,7 @@ function renderNavigator(params, bookmark, view) {
9162
9259
  fxaa.enabled = Boolean(quality.fxaa);
9163
9260
  dateTime = bSettings === null || bSettings === void 0 ? void 0 : bSettings.dateTime;
9164
9261
  if (dateTime == null) {
9165
- dateTime = (_y = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _y === void 0 ? void 0 : _y.dateTime;
9262
+ dateTime = (_z = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _z === void 0 ? void 0 : _z.dateTime;
9166
9263
  }
9167
9264
  if (dateTime != null) {
9168
9265
  clock = viewer.clock;
@@ -9170,7 +9267,7 @@ function renderNavigator(params, bookmark, view) {
9170
9267
  }
9171
9268
  selectedIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.selectedEntityIds;
9172
9269
  if (selectedIds == null) {
9173
- selectedIds = (_z = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _z === void 0 ? void 0 : _z.selectedEntityIds;
9270
+ selectedIds = (_0 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _0 === void 0 ? void 0 : _0.selectedEntityIds;
9174
9271
  }
9175
9272
  if (selectedIds != null) {
9176
9273
  params.manager.VisualsRegister.ClearSelected();
@@ -9183,7 +9280,7 @@ function renderNavigator(params, bookmark, view) {
9183
9280
  params.manager.VisualsRegister.ClearHidden();
9184
9281
  hiddenIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.hiddenEntityIds;
9185
9282
  if (hiddenIds == null) {
9186
- hiddenIds = (_0 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _0 === void 0 ? void 0 : _0.hiddenEntityIds;
9283
+ hiddenIds = (_1 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _1 === void 0 ? void 0 : _1.hiddenEntityIds;
9187
9284
  }
9188
9285
  if (hiddenIds != null) {
9189
9286
  params.manager.VisualsRegister.SetHidden({
@@ -9194,7 +9291,7 @@ function renderNavigator(params, bookmark, view) {
9194
9291
  params.manager.VisualsRegister.ClearIsolated();
9195
9292
  isolatedIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.isolatedEntityIds;
9196
9293
  if (isolatedIds == null) {
9197
- isolatedIds = (_1 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _1 === void 0 ? void 0 : _1.isolatedEntityIds;
9294
+ isolatedIds = (_2 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _2 === void 0 ? void 0 : _2.isolatedEntityIds;
9198
9295
  }
9199
9296
  if (isolatedIds != null) {
9200
9297
  params.manager.VisualsRegister.SetIsolated({
@@ -9205,7 +9302,7 @@ function renderNavigator(params, bookmark, view) {
9205
9302
  params.manager.VisualsRegister.ClearOpacity();
9206
9303
  entityOpacityMap = bSettings === null || bSettings === void 0 ? void 0 : bSettings.entityOpacityMap;
9207
9304
  if (entityOpacityMap == null) {
9208
- entityOpacityMap = (_2 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _2 === void 0 ? void 0 : _2.entityOpacityMap;
9305
+ entityOpacityMap = (_3 = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _3 === void 0 ? void 0 : _3.entityOpacityMap;
9209
9306
  }
9210
9307
  if (entityOpacityMap != null) {
9211
9308
  for (entityId in entityOpacityMap) {
@@ -9218,7 +9315,7 @@ function renderNavigator(params, bookmark, view) {
9218
9315
  }
9219
9316
  }
9220
9317
  }
9221
- imagery = (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) != null ? bSettings.imagery : (_3 = defaults.settings) === null || _3 === void 0 ? void 0 : _3.imagery;
9318
+ imagery = (bSettings === null || bSettings === void 0 ? void 0 : bSettings.imagery) != null ? bSettings.imagery : (_4 = defaults.settings) === null || _4 === void 0 ? void 0 : _4.imagery;
9222
9319
  if (imagery == null) {
9223
9320
  // TODO: Need global default.
9224
9321
  imagery = [
@@ -9240,13 +9337,13 @@ function renderNavigator(params, bookmark, view) {
9240
9337
  viewer: params.manager.Viewer,
9241
9338
  })];
9242
9339
  case 3:
9243
- _5.sent();
9340
+ _6.sent();
9244
9341
  renderedRelationEntityIds = bSettings === null || bSettings === void 0 ? void 0 : bSettings.renderedEntityRelations;
9245
9342
  if (!renderedRelationEntityIds) {
9246
9343
  renderedRelationEntityIds = [];
9247
9344
  }
9248
9345
  curEnabled = params.manager.GetEnabledItemIds();
9249
- newItemIds = (_4 = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _4 !== void 0 ? _4 : [];
9346
+ newItemIds = (_5 = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _5 !== void 0 ? _5 : [];
9250
9347
  for (_i = 0, curEnabled_1 = curEnabled; _i < curEnabled_1.length; _i++) {
9251
9348
  id = curEnabled_1[_i];
9252
9349
  if (newItemIds.indexOf(id) === -1 ||
@@ -9264,8 +9361,8 @@ function renderNavigator(params, bookmark, view) {
9264
9361
  bookmark: bookmark
9265
9362
  })];
9266
9363
  case 4:
9267
- _5.sent();
9268
- _5.label = 5;
9364
+ _6.sent();
9365
+ _6.label = 5;
9269
9366
  case 5:
9270
9367
  if (!(renderedRelationEntityIds.length > 0)) return [3 /*break*/, 7];
9271
9368
  menuItem = {
@@ -9281,8 +9378,8 @@ function renderNavigator(params, bookmark, view) {
9281
9378
  item: menuItem
9282
9379
  })];
9283
9380
  case 6:
9284
- _5.sent();
9285
- _5.label = 7;
9381
+ _6.sent();
9382
+ _6.label = 7;
9286
9383
  case 7: return [2 /*return*/];
9287
9384
  }
9288
9385
  });