bruce-cesium 0.9.4 → 0.9.6

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 (77) hide show
  1. package/dist/bruce-cesium.es5.js +1222 -354
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +1219 -351
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +1 -1
  6. package/dist/lib/bruce-cesium.js.map +1 -1
  7. package/dist/lib/rendering/entity-render-engine.js +39 -14
  8. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  9. package/dist/lib/rendering/{render-helper.js → menu-item-creator.js} +46 -21
  10. package/dist/lib/rendering/menu-item-creator.js.map +1 -0
  11. package/dist/lib/rendering/menu-item-manager.js +67 -9
  12. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  13. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +2 -1
  14. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +1 -1
  15. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +26 -11
  16. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  17. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +26 -11
  18. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  19. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +29 -12
  20. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  21. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +26 -11
  22. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  23. package/dist/lib/rendering/render-managers/render-manager.js +46 -40
  24. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
  25. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js +289 -0
  26. package/dist/lib/rendering/render-managers/tilesets/tileset-arb-render-manager.js.map +1 -0
  27. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +16 -8
  28. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  29. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +12 -4
  30. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
  31. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +22 -12
  32. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
  33. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +2 -1
  34. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
  35. package/dist/lib/rendering/tile-render-engine.js +19 -19
  36. package/dist/lib/rendering/tile-render-engine.js.map +1 -1
  37. package/dist/lib/rendering/tileset-render-engine.js +152 -0
  38. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  39. package/dist/lib/rendering/view-render-engine.js +17 -13
  40. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  41. package/dist/lib/rendering/visuals-register.js +338 -145
  42. package/dist/lib/rendering/visuals-register.js.map +1 -1
  43. package/dist/lib/utils/drawing-utils.js +14 -5
  44. package/dist/lib/utils/drawing-utils.js.map +1 -1
  45. package/dist/lib/utils/entity-utils.js +20 -8
  46. package/dist/lib/utils/entity-utils.js.map +1 -1
  47. package/dist/lib/utils/measure-utils.js +41 -3
  48. package/dist/lib/utils/measure-utils.js.map +1 -1
  49. package/dist/lib/utils/view-utils.js +11 -5
  50. package/dist/lib/utils/view-utils.js.map +1 -1
  51. package/dist/lib/viewer/viewer-utils.js +5 -3
  52. package/dist/lib/viewer/viewer-utils.js.map +1 -1
  53. package/dist/types/bruce-cesium.d.ts +1 -1
  54. package/dist/types/rendering/entity-render-engine.d.ts +4 -1
  55. package/dist/types/rendering/{render-helper.d.ts → menu-item-creator.d.ts} +24 -7
  56. package/dist/types/rendering/menu-item-manager.d.ts +1 -1
  57. package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +5 -1
  58. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +7 -1
  59. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +7 -1
  60. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +8 -1
  61. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +7 -1
  62. package/dist/types/rendering/render-managers/render-manager.d.ts +12 -15
  63. package/dist/types/rendering/render-managers/tilesets/tileset-arb-render-manager.d.ts +29 -0
  64. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +6 -1
  65. package/dist/types/rendering/render-managers/tilesets/tileset-entities-render-manager.d.ts +6 -1
  66. package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +7 -1
  67. package/dist/types/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.d.ts +5 -1
  68. package/dist/types/rendering/tile-render-engine.d.ts +4 -4
  69. package/dist/types/rendering/tileset-render-engine.d.ts +27 -1
  70. package/dist/types/rendering/visuals-register.d.ts +100 -28
  71. package/dist/types/utils/drawing-utils.d.ts +7 -1
  72. package/dist/types/utils/entity-utils.d.ts +23 -6
  73. package/dist/types/utils/measure-utils.d.ts +11 -1
  74. package/dist/types/utils/view-utils.d.ts +10 -2
  75. package/dist/types/viewer/viewer-utils.d.ts +6 -2
  76. package/package.json +3 -3
  77. package/dist/lib/rendering/render-helper.js.map +0 -1
@@ -1,5 +1,5 @@
1
1
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
2
- import { Color, HeightReference, Cartographic, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Math as Math$1, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cartesian2, Cesium3DTileColorBlendMode, HeadingPitchRange, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Matrix4, Cesium3DTileset, OrthographicFrustum, JulianDate, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, EllipsoidGeodesic, createOsmBuildings, Cesium3DTileStyle, KmlDataSource } from 'cesium';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, OrthographicFrustum, JulianDate, Matrix4, Cesium3DTileset, Cesium3DTileStyle, IonResource, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, PolygonPipeline, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, createOsmBuildings, KmlDataSource } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -233,14 +233,15 @@ var ViewerUtils;
233
233
  * Destroys all the junk that cesium viewer ships with.
234
234
  * @param viewer
235
235
  */
236
- function InitViewer(viewer) {
236
+ function InitViewer(params) {
237
+ var viewer = params.viewer;
237
238
  ViewerUtils.DestroyWidget(viewer.timeline);
238
239
  ViewerUtils.DestroyWidget(viewer.vrButton);
239
240
  ViewerUtils.DestroyWidget(viewer.sceneModePicker);
240
241
  ViewerUtils.DestroyWidget(viewer.homeButton);
241
242
  ViewerUtils.DestroyWidget(viewer.fullscreenButton);
242
243
  ViewerUtils.DestroyWidget(viewer.baseLayerPicker);
243
- ViewerUtils.StyleContainer(viewer);
244
+ ViewerUtils.StyleContainer({ viewer: viewer });
244
245
  }
245
246
  ViewerUtils.InitViewer = InitViewer;
246
247
  function DestroyWidget(widget) {
@@ -253,8 +254,9 @@ var ViewerUtils;
253
254
  * Hides all unnecessary elements from the Cesium viewer container.
254
255
  * @param viewer
255
256
  */
256
- function StyleContainer(viewer) {
257
+ function StyleContainer(params) {
257
258
  var _a;
259
+ var viewer = params.viewer;
258
260
  var container = viewer.container;
259
261
  var genContainer = (_a = container.getElementsByClassName("cesium-viewer")) === null || _a === void 0 ? void 0 : _a[0];
260
262
  if (genContainer) {
@@ -363,7 +365,8 @@ var DrawingUtils;
363
365
  * @param distance
364
366
  * @returns
365
367
  */
366
- function PointAcrossPolyline(viewer, positions, distance) {
368
+ function PointAcrossPolyline(params) {
369
+ var viewer = params.viewer, positions = params.posses, distance = params.distance;
367
370
  if (positions.length > 1) {
368
371
  var currentDistance = 0;
369
372
  for (var i = 0; i < positions.length - 1; i++) {
@@ -374,7 +377,9 @@ var DrawingUtils;
374
377
  var geodesic = new EllipsoidGeodesic(carto1, carto2, viewer.scene.globe.ellipsoid);
375
378
  var position = geodesic.interpolateUsingSurfaceDistance(distance - currentDistance);
376
379
  var height = (carto1.height + carto2.height) / 2;
377
- return Cartesian3.fromRadians(position.longitude, position.latitude, height);
380
+ return {
381
+ point: Cartesian3.fromRadians(position.longitude, position.latitude, height)
382
+ };
378
383
  }
379
384
  else {
380
385
  currentDistance += length_1;
@@ -382,12 +387,18 @@ var DrawingUtils;
382
387
  }
383
388
  }
384
389
  else if (positions.length > 0) {
385
- return positions[0];
390
+ return {
391
+ point: positions[0]
392
+ };
386
393
  }
387
394
  else {
388
- return null;
395
+ return {
396
+ point: null
397
+ };
389
398
  }
390
- return positions[positions.length - 1];
399
+ return {
400
+ point: positions[positions.length - 1]
401
+ };
391
402
  }
392
403
  DrawingUtils.PointAcrossPolyline = PointAcrossPolyline;
393
404
  })(DrawingUtils || (DrawingUtils = {}));
@@ -400,9 +411,12 @@ var MeasureUtils;
400
411
  * @param posses
401
412
  * @returns
402
413
  */
403
- function MeasurePolyline(posses) {
414
+ function MeasurePolyline(params) {
415
+ var posses = params.posses;
404
416
  if (posses.length < 2) {
405
- return 0;
417
+ return {
418
+ totalLength: 0
419
+ };
406
420
  }
407
421
  var totalLength = 0;
408
422
  var pos1 = null;
@@ -418,9 +432,43 @@ var MeasureUtils;
418
432
  pos2 = null;
419
433
  }
420
434
  }
421
- return totalLength;
435
+ return {
436
+ totalLength: totalLength
437
+ };
422
438
  }
423
439
  MeasureUtils.MeasurePolyline = MeasurePolyline;
440
+ function MeasurePolygon(params) {
441
+ var posses = params.posses;
442
+ posses = [].concat(posses);
443
+ if (!Cartes.IsRing3Closed(posses)) {
444
+ posses.push(posses[0].clone());
445
+ }
446
+ if (posses.length < 3) {
447
+ return {
448
+ area: 0,
449
+ perimeter: 0
450
+ };
451
+ }
452
+ var area = 0;
453
+ var indices = PolygonPipeline.triangulate(posses, []);
454
+ for (var i = 0; i < indices.length; i += 3) {
455
+ var vector1 = posses[indices[i]];
456
+ var vector2 = posses[indices[i + 1]];
457
+ var vector3 = posses[indices[i + 2]];
458
+ var vectorC = Cartesian3.subtract(vector2, vector1, new Cartesian3());
459
+ var vectorD = Cartesian3.subtract(vector3, vector1, new Cartesian3());
460
+ var areaVector = Cartesian3.cross(vectorC, vectorD, new Cartesian3());
461
+ area += Cartesian3.magnitude(areaVector) / 2.0;
462
+ }
463
+ var perimeter = MeasurePolyline({
464
+ posses: posses
465
+ }).totalLength;
466
+ return {
467
+ area: area,
468
+ perimeter: perimeter
469
+ };
470
+ }
471
+ MeasureUtils.MeasurePolygon = MeasurePolygon;
424
472
  })(MeasureUtils || (MeasureUtils = {}));
425
473
 
426
474
  /**
@@ -569,7 +617,8 @@ var EntityUtils;
569
617
  * @param entity
570
618
  * @returns
571
619
  */
572
- function GetPos(viewer, entity) {
620
+ function GetPos(params) {
621
+ var viewer = params.viewer, entity = params.entity;
573
622
  function evaluate() {
574
623
  if (entity.location && Carto.ValidateCarto(entity.location)) {
575
624
  var location_1 = entity.location;
@@ -589,9 +638,15 @@ var EntityUtils;
589
638
  var points = Geometry.ParsePoints(lineStr);
590
639
  if (points.length > 0) {
591
640
  var posses = points.map(function (x) { return Cartesian3.fromDegrees(EnsureNumber(x.longitude), EnsureNumber(x.latitude), EnsureNumber(x.altitude)); });
592
- var length_1 = MeasureUtils.MeasurePolyline(posses);
641
+ var length_1 = MeasureUtils.MeasurePolyline({
642
+ posses: posses
643
+ }).totalLength;
593
644
  if (length_1 > 0) {
594
- var point = DrawingUtils.PointAcrossPolyline(viewer, posses, length_1 / 2);
645
+ var point = DrawingUtils.PointAcrossPolyline({
646
+ viewer: viewer,
647
+ posses: posses,
648
+ distance: length_1 / 2
649
+ }).point;
595
650
  if (point && Cartes.ValidateCartes3(point)) {
596
651
  return point;
597
652
  }
@@ -632,7 +687,8 @@ var EntityUtils;
632
687
  * Returns entity and any associated parent/sibling entities as a flat array.
633
688
  * @param entity
634
689
  */
635
- function GatherEntity(entity) {
690
+ function GatherEntity(params) {
691
+ var entity = params.entity;
636
692
  if (entity instanceof Entity) {
637
693
  var cEntity = entity;
638
694
  var items = [];
@@ -647,7 +703,8 @@ var EntityUtils;
647
703
  * @param viewer
648
704
  * @param entities
649
705
  */
650
- function LookAtEntities(viewer, entities) {
706
+ function LookAtEntities(params) {
707
+ var viewer = params.viewer, entities = params.entities;
651
708
  var _a = [Rectangle, Cartographic, Cartesian3, Matrix3, Matrix4, EasingFunction], C3 = _a[2], M4 = _a[4];
652
709
  var cutoffDistance = 2000;
653
710
  var hoverHeight = 2000;
@@ -737,7 +794,8 @@ var EntityUtils;
737
794
  * @param entity
738
795
  * @param opacity
739
796
  */
740
- function SetOpacity(viewer, entity, opacity) {
797
+ function SetOpacity(params) {
798
+ var viewer = params.viewer, entity = params.entity, opacity = params.opacity;
741
799
  applyOpacityToEntity(viewer, opacity, entity);
742
800
  }
743
801
  EntityUtils.SetOpacity = SetOpacity;
@@ -747,7 +805,8 @@ var EntityUtils;
747
805
  * @param viewer
748
806
  * @param entity
749
807
  */
750
- function RevertOpacity(viewer, entity) {
808
+ function RevertOpacity(params) {
809
+ var viewer = params.viewer, entity = params.entity;
751
810
  revertAppliedEntityOpacity(viewer, entity);
752
811
  }
753
812
  EntityUtils.RevertOpacity = RevertOpacity;
@@ -758,7 +817,8 @@ var EntityUtils;
758
817
  * @param viewer
759
818
  * @param entity
760
819
  */
761
- function GetOpacity(entity) {
820
+ function GetOpacity(params) {
821
+ var entity = params.entity;
762
822
  return findOpacity(entity);
763
823
  }
764
824
  EntityUtils.GetOpacity = GetOpacity;
@@ -766,53 +826,59 @@ var EntityUtils;
766
826
 
767
827
  var RenderManager;
768
828
  (function (RenderManager) {
769
- var Utils;
770
- (function (Utils) {
771
- function DetermineZoomItem(viewer, entity, zoomControl) {
772
- var pos = EntityUtils.GetPos(viewer, entity);
773
- if (!pos) {
774
- return null;
775
- }
776
- var cameraPos = viewer.camera.position;
777
- if (!Cartes.ValidateCartes3(cameraPos)) {
778
- return null;
779
- }
780
- var distance = Cartesian3.distance(pos, cameraPos);
781
- return (!distance && distance != 0) ? null : GetZoomControlFromDistance(zoomControl, distance);
829
+ function DetermineZoomItem(params) {
830
+ var viewer = params.viewer, entity = params.entity, zoomControl = params.zoomControl;
831
+ var pos = EntityUtils.GetPos({
832
+ viewer: viewer,
833
+ entity: entity
834
+ });
835
+ if (!pos) {
836
+ return null;
782
837
  }
783
- Utils.DetermineZoomItem = DetermineZoomItem;
784
- function GetZoomControlFromDistance(zoomControl, distance) {
785
- for (var i = 0; i < zoomControl.length; i++) {
786
- var zoomItem = zoomControl[i];
787
- if ((distance >= EnsureNumber(zoomItem.MinZoom)) && (distance <= EnsureNumber(zoomItem.MaxZoom))) {
788
- return zoomItem;
789
- }
790
- }
838
+ var cameraPos = viewer.camera.position;
839
+ if (!Cartes.ValidateCartes3(cameraPos)) {
791
840
  return null;
792
841
  }
793
- Utils.GetZoomControlFromDistance = GetZoomControlFromDistance;
794
- function GetZoomMinMax(zoomControl) {
795
- var min = 0;
796
- var max = 100;
797
- for (var i = 0; i < zoomControl.length; i++) {
798
- var zoomItem = zoomControl[i];
799
- zoomItem.MinZoom = EnsureNumber(zoomItem.MinZoom);
800
- zoomItem.MaxZoom = EnsureNumber(zoomItem.MaxZoom);
801
- if (zoomItem.MinZoom != null) {
802
- if (zoomItem.MinZoom < min) {
803
- min = zoomItem.MinZoom;
804
- }
842
+ var distance = Cartesian3.distance(pos, cameraPos);
843
+ return (!distance && distance != 0) ? null : GetZoomControlFromDistance({
844
+ zoomControl: zoomControl,
845
+ distance: distance
846
+ });
847
+ }
848
+ RenderManager.DetermineZoomItem = DetermineZoomItem;
849
+ function GetZoomControlFromDistance(params) {
850
+ var zoomControl = params.zoomControl, distance = params.distance;
851
+ for (var i = 0; i < zoomControl.length; i++) {
852
+ var zoomItem = zoomControl[i];
853
+ if ((distance >= EnsureNumber(zoomItem.MinZoom)) && (distance <= EnsureNumber(zoomItem.MaxZoom))) {
854
+ return zoomItem;
855
+ }
856
+ }
857
+ return null;
858
+ }
859
+ RenderManager.GetZoomControlFromDistance = GetZoomControlFromDistance;
860
+ function GetZoomMinMax(params) {
861
+ var zoomControl = params.zoomControl;
862
+ var min = 0;
863
+ var max = 100;
864
+ for (var i = 0; i < zoomControl.length; i++) {
865
+ var zoomItem = zoomControl[i];
866
+ zoomItem.MinZoom = EnsureNumber(zoomItem.MinZoom);
867
+ zoomItem.MaxZoom = EnsureNumber(zoomItem.MaxZoom);
868
+ if (zoomItem.MinZoom != null) {
869
+ if (zoomItem.MinZoom < min) {
870
+ min = zoomItem.MinZoom;
805
871
  }
806
- if (zoomItem.MaxZoom != null) {
807
- if (zoomItem.MaxZoom > max) {
808
- max = zoomItem.MaxZoom;
809
- }
872
+ }
873
+ if (zoomItem.MaxZoom != null) {
874
+ if (zoomItem.MaxZoom > max) {
875
+ max = zoomItem.MaxZoom;
810
876
  }
811
877
  }
812
- return [min, max];
813
878
  }
814
- Utils.GetZoomMinMax = GetZoomMinMax;
815
- })(Utils = RenderManager.Utils || (RenderManager.Utils = {}));
879
+ return [min, max];
880
+ }
881
+ RenderManager.GetZoomMinMax = GetZoomMinMax;
816
882
  })(RenderManager || (RenderManager = {}));
817
883
 
818
884
  function colorToCColor(color) {
@@ -981,7 +1047,11 @@ var EntityRenderEngine;
981
1047
  for (i = 0; i < params.entities.length; i++) {
982
1048
  entity = params.entities[i];
983
1049
  id = entity.Bruce.ID;
984
- zoomItem = RenderManager.Utils.DetermineZoomItem(params.viewer, entity, params.zoomControl);
1050
+ zoomItem = RenderManager.DetermineZoomItem({
1051
+ viewer: params.viewer,
1052
+ entity: entity,
1053
+ zoomControl: params.zoomControl
1054
+ });
985
1055
  displayType = zoomItem === null || zoomItem === void 0 ? void 0 : zoomItem.DisplayType;
986
1056
  if (!displayType) {
987
1057
  displayType = ZoomControl.EDisplayType.Hidden;
@@ -992,7 +1062,10 @@ var EntityRenderEngine;
992
1062
  }
993
1063
  if (displayType != ZoomControl.EDisplayType.Hidden) {
994
1064
  newRenderId = getRenderGroupId(zoomItem);
995
- existingRego = params.visualRegister.GetRego(id, params.menuItemId);
1065
+ existingRego = params.visualRegister.GetRego({
1066
+ entityId: id,
1067
+ menuItemId: params.menuItemId
1068
+ });
996
1069
  oldRenderId = (_a = existingRego === null || existingRego === void 0 ? void 0 : existingRego.visual) === null || _a === void 0 ? void 0 : _a._renderGroup;
997
1070
  if (newRenderId == oldRenderId && !(existingRego === null || existingRego === void 0 ? void 0 : existingRego.stale)) {
998
1071
  cEntities[id] = existingRego.visual;
@@ -1082,17 +1155,24 @@ var EntityRenderEngine;
1082
1155
  });
1083
1156
  }
1084
1157
  EntityRenderEngine.Render = Render;
1085
- function Remove(viewer, entity) {
1158
+ function Remove(params) {
1159
+ var viewer = params.viewer, entity = params.entity;
1086
1160
  if (viewer.isDestroyed()) {
1087
1161
  return;
1088
1162
  }
1089
1163
  if (entity._parentEntity) {
1090
- Remove(viewer, entity._parentEntity);
1164
+ Remove({
1165
+ viewer: viewer,
1166
+ entity: entity._parentEntity
1167
+ });
1091
1168
  }
1092
1169
  if (entity._siblingGraphics) {
1093
1170
  for (var i = 0; i < entity._siblingGraphics.length; i++) {
1094
1171
  var sibling = entity._siblingGraphics[i];
1095
- Remove(viewer, sibling);
1172
+ Remove({
1173
+ viewer: viewer,
1174
+ entity: sibling
1175
+ });
1096
1176
  }
1097
1177
  }
1098
1178
  if (viewer.entities.contains(entity)) {
@@ -1146,7 +1226,10 @@ var EntityRenderEngine;
1146
1226
  heightReference: getHeightRef(style),
1147
1227
  scale: iconScale
1148
1228
  },
1149
- position: EntityUtils.GetPos(params.viewer, entity),
1229
+ position: EntityUtils.GetPos({
1230
+ viewer: params.viewer,
1231
+ entity: entity
1232
+ }),
1150
1233
  show: false
1151
1234
  });
1152
1235
  }
@@ -1170,7 +1253,10 @@ var EntityRenderEngine;
1170
1253
  color: cColor,
1171
1254
  heightReference: getHeightRef(style)
1172
1255
  },
1173
- position: EntityUtils.GetPos(params.viewer, entity),
1256
+ position: EntityUtils.GetPos({
1257
+ viewer: params.viewer,
1258
+ entity: entity
1259
+ }),
1174
1260
  show: false
1175
1261
  });
1176
1262
  }
@@ -1288,7 +1374,10 @@ var EntityRenderEngine;
1288
1374
  zIndex: getZIndex(style, entity, params.tags),
1289
1375
  clampToGround: heightRef == HeightReference.CLAMP_TO_GROUND
1290
1376
  },
1291
- position: EntityUtils.GetPos(params.viewer, entity),
1377
+ position: EntityUtils.GetPos({
1378
+ viewer: params.viewer,
1379
+ entity: entity
1380
+ }),
1292
1381
  show: false
1293
1382
  });
1294
1383
  params.viewer.entities.add(cEntity);
@@ -1392,7 +1481,10 @@ var EntityRenderEngine;
1392
1481
  perPositionHeight: heightRef == HeightReference.CLAMP_TO_GROUND ? false : true,
1393
1482
  zIndex: zIndex
1394
1483
  },
1395
- position: EntityUtils.GetPos(params.viewer, entity),
1484
+ position: EntityUtils.GetPos({
1485
+ viewer: params.viewer,
1486
+ entity: entity
1487
+ }),
1396
1488
  show: false
1397
1489
  });
1398
1490
  cEntity._siblingGraphics = [];
@@ -1491,7 +1583,10 @@ var EntityRenderEngine;
1491
1583
  scale *= styleScale;
1492
1584
  var hpr = new HeadingPitchRoll(Math$1.toRadians(heading), Math$1.toRadians(pitch), Math$1.toRadians(roll));
1493
1585
  var heightRef = getHeightRef(style);
1494
- var pos = EntityUtils.GetPos(params.viewer, entity);
1586
+ var pos = EntityUtils.GetPos({
1587
+ viewer: params.viewer,
1588
+ entity: entity
1589
+ });
1495
1590
  if (heightRef == HeightReference.CLAMP_TO_GROUND) {
1496
1591
  var carto = Cartographic.fromCartesian(pos);
1497
1592
  pos = Cartesian3.fromRadians(EnsureNumber(carto.longitude), EnsureNumber(carto.latitude), 0);
@@ -1672,7 +1767,7 @@ var EntityRenderEngine;
1672
1767
  var EntitiesRenderManager;
1673
1768
  (function (EntitiesRenderManager) {
1674
1769
  var Manager = /** @class */ (function () {
1675
- function Manager(viewer, visualsManager, apiGetter, monitor, item, sharedGetters) {
1770
+ function Manager(params) {
1676
1771
  this.getter = null;
1677
1772
  this.getterSub = null;
1678
1773
  this.disposed = false;
@@ -1682,6 +1777,7 @@ var EntitiesRenderManager;
1682
1777
  this.entityCheckRemoval = null;
1683
1778
  this.isRunningCheck = false;
1684
1779
  this.viewMonitorRemoval = null;
1780
+ var viewer = params.viewer, apiGetter = params.apiGetter, monitor = params.monitor, item = params.item, visualsManager = params.register, sharedGetters = params.sharedGetters;
1685
1781
  this.viewer = viewer;
1686
1782
  this.sharedGetters = sharedGetters;
1687
1783
  this.monitor = monitor;
@@ -1713,7 +1809,9 @@ var EntitiesRenderManager;
1713
1809
  typeId: this.item.BruceEntity["EntityType.ID"],
1714
1810
  monitor: this.monitor
1715
1811
  });
1716
- minMax = RenderManager.Utils.GetZoomMinMax(this.item.CameraZoomSettings);
1812
+ minMax = RenderManager.GetZoomMinMax({
1813
+ zoomControl: this.item.CameraZoomSettings
1814
+ });
1717
1815
  this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
1718
1816
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1719
1817
  _this.onGetterUpdate(entities);
@@ -1739,7 +1837,9 @@ var EntitiesRenderManager;
1739
1837
  this.getter.ExcludeMenuItem(this.item.id);
1740
1838
  }
1741
1839
  this.disposed = true;
1742
- this.visualsManager.RemoveByMenuItemId(this.item.id);
1840
+ this.visualsManager.RemoveRegos({
1841
+ menuItemId: this.item.id
1842
+ });
1743
1843
  (_b = this.entityCheckRemoval) === null || _b === void 0 ? void 0 : _b.call(this);
1744
1844
  (_c = this.viewMonitorRemoval) === null || _c === void 0 ? void 0 : _c.call(this);
1745
1845
  };
@@ -1751,7 +1851,10 @@ var EntitiesRenderManager;
1751
1851
  if (entityIds == null) {
1752
1852
  entityIds = Object.keys(this.renderedEntities);
1753
1853
  }
1754
- this.visualsManager.MarkStale(entityIds, [this.item.id]);
1854
+ this.visualsManager.MarkStale({
1855
+ entityIds: entityIds,
1856
+ menuItemIds: [this.item.id]
1857
+ });
1755
1858
  return [4 /*yield*/, this.doEntityCheck(entityIds)];
1756
1859
  case 1:
1757
1860
  _a.sent();
@@ -1864,19 +1967,28 @@ var EntitiesRenderManager;
1864
1967
  cEntity = cEntities[id];
1865
1968
  this.renderedEntities[id] = !!cEntity;
1866
1969
  if (cEntity) {
1867
- visual = (_b = this.visualsManager.GetRego(id, this.item.id)) === null || _b === void 0 ? void 0 : _b.visual;
1970
+ visual = (_b = this.visualsManager.GetRego({
1971
+ entityId: id,
1972
+ menuItemId: this.item.id
1973
+ })) === null || _b === void 0 ? void 0 : _b.visual;
1868
1974
  if (!visual || visual != cEntity) {
1869
- this.visualsManager.Add({
1870
- entityId: id,
1871
- menuItemId: this.item.id,
1872
- visual: cEntity,
1873
- priority: 0,
1874
- entityTypeId: entity.Bruce["EntityType.ID"]
1975
+ this.visualsManager.AddRego({
1976
+ rego: {
1977
+ entityId: id,
1978
+ menuItemId: this.item.id,
1979
+ visual: cEntity,
1980
+ priority: 0,
1981
+ entityTypeId: entity.Bruce["EntityType.ID"],
1982
+ accountId: this.apiGetter.accountId
1983
+ }
1875
1984
  });
1876
1985
  }
1877
1986
  }
1878
1987
  else {
1879
- this.visualsManager.Remove(id, this.item.id);
1988
+ this.visualsManager.RemoveRegos({
1989
+ entityId: id,
1990
+ menuItemId: this.item.id
1991
+ });
1880
1992
  }
1881
1993
  }
1882
1994
  return [3 /*break*/, 3];
@@ -1902,11 +2014,12 @@ var EntitiesRenderManager;
1902
2014
  var EntitiesLoadedRenderManager;
1903
2015
  (function (EntitiesLoadedRenderManager) {
1904
2016
  var Manager = /** @class */ (function () {
1905
- function Manager(viewer, visualsManager, apiGetter, monitor, item) {
2017
+ function Manager(params) {
1906
2018
  this.getter = null;
1907
2019
  this.getterSub = null;
1908
2020
  this.disposed = false;
1909
2021
  this.renderedEntities = {};
2022
+ var viewer = params.viewer, apiGetter = params.apiGetter, monitor = params.monitor, item = params.item, visualsManager = params.register;
1910
2023
  this.viewer = viewer;
1911
2024
  this.apiGetter = apiGetter;
1912
2025
  this.monitor = monitor;
@@ -1944,7 +2057,9 @@ var EntitiesLoadedRenderManager;
1944
2057
  (_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
1945
2058
  this.getterSub = null;
1946
2059
  this.disposed = true;
1947
- this.visualsManager.RemoveByMenuItemId(this.item.id);
2060
+ this.visualsManager.RemoveRegos({
2061
+ menuItemId: this.item.id
2062
+ });
1948
2063
  };
1949
2064
  Manager.prototype.ReRender = function (entityIds) {
1950
2065
  return __awaiter(this, void 0, void 0, function () {
@@ -1960,7 +2075,10 @@ var EntitiesLoadedRenderManager;
1960
2075
  return (_b = (_a = _this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a.Entities) === null || _b === void 0 ? void 0 : _b.find(function (y) { var _a; return ((_a = y === null || y === void 0 ? void 0 : y.Bruce) === null || _a === void 0 ? void 0 : _a.ID) == x; });
1961
2076
  });
1962
2077
  }
1963
- this.visualsManager.MarkStale(entityIds, [this.item.id]);
2078
+ this.visualsManager.MarkStale({
2079
+ entityIds: entityIds,
2080
+ menuItemIds: [this.item.id]
2081
+ });
1964
2082
  this.doEntityCheck(entityIds);
1965
2083
  return [2 /*return*/];
1966
2084
  });
@@ -2046,19 +2164,28 @@ var EntitiesLoadedRenderManager;
2046
2164
  cEntity = cEntities[id];
2047
2165
  this.renderedEntities[id] = !!cEntity;
2048
2166
  if (cEntity) {
2049
- visual = (_a = this.visualsManager.GetRego(id, this.item.id)) === null || _a === void 0 ? void 0 : _a.visual;
2167
+ visual = (_a = this.visualsManager.GetRego({
2168
+ entityId: id,
2169
+ menuItemId: this.item.id
2170
+ })) === null || _a === void 0 ? void 0 : _a.visual;
2050
2171
  if (!visual || visual != cEntity) {
2051
- this.visualsManager.Add({
2052
- entityId: id,
2053
- menuItemId: this.item.id,
2054
- visual: cEntity,
2055
- priority: 0,
2056
- entityTypeId: entity.Bruce["EntityType.ID"]
2172
+ this.visualsManager.AddRego({
2173
+ rego: {
2174
+ entityId: id,
2175
+ menuItemId: this.item.id,
2176
+ visual: cEntity,
2177
+ priority: 0,
2178
+ entityTypeId: entity.Bruce["EntityType.ID"],
2179
+ accountId: this.apiGetter.accountId
2180
+ }
2057
2181
  });
2058
2182
  }
2059
2183
  }
2060
2184
  else {
2061
- this.visualsManager.Remove(id, this.item.id);
2185
+ this.visualsManager.RemoveRegos({
2186
+ entityId: id,
2187
+ menuItemId: this.item.id
2188
+ });
2062
2189
  }
2063
2190
  }
2064
2191
  return [3 /*break*/, 3];
@@ -2079,7 +2206,10 @@ var EntitiesLoadedRenderManager;
2079
2206
  function removeEntity(viewer, visual) {
2080
2207
  unmarkEntity(visual);
2081
2208
  if (visual instanceof Entity) {
2082
- EntityRenderEngine.Remove(viewer, visual);
2209
+ EntityRenderEngine.Remove({
2210
+ viewer: viewer,
2211
+ entity: visual
2212
+ });
2083
2213
  }
2084
2214
  else if (visual instanceof Primitive) {
2085
2215
  if (viewer.scene.primitives.contains(visual)) {
@@ -2134,8 +2264,12 @@ function updateEntityShow(viewer, visual, show) {
2134
2264
  function updateEntity(viewer, entityId, register) {
2135
2265
  var isolatedIds = register.GetIsolated();
2136
2266
  var isIsolated = isolatedIds.includes(entityId);
2137
- var isHidden = register.IsHidden(entityId);
2138
- var regos = register.GetRegos(entityId);
2267
+ var isHidden = register.GetIsHidden({
2268
+ entityId: entityId
2269
+ });
2270
+ var regos = register.GetRegos({
2271
+ entityId: entityId
2272
+ });
2139
2273
  var highestPriority = null;
2140
2274
  for (var i = 0; i < regos.length; i++) {
2141
2275
  var rego = regos[i];
@@ -2194,7 +2328,9 @@ function select(viewer, visual) {
2194
2328
  var _a;
2195
2329
  var color = Color.fromAlpha(Color.YELLOW, 0.5);
2196
2330
  if (visual instanceof Entity) {
2197
- var entities = EntityUtils.GatherEntity(visual);
2331
+ var entities = EntityUtils.GatherEntity({
2332
+ entity: visual
2333
+ });
2198
2334
  var keyMapping = {
2199
2335
  "point": "color",
2200
2336
  "polygon": "material",
@@ -2234,14 +2370,22 @@ function select(viewer, visual) {
2234
2370
  }
2235
2371
  visual.color = color.clone();
2236
2372
  }
2237
- var opacity = EntityUtils.GetOpacity(visual);
2373
+ var opacity = EntityUtils.GetOpacity({
2374
+ entity: visual
2375
+ });
2238
2376
  if (opacity != null) {
2239
- EntityUtils.SetOpacity(viewer, visual, opacity);
2377
+ EntityUtils.SetOpacity({
2378
+ viewer: viewer,
2379
+ entity: visual,
2380
+ opacity: opacity
2381
+ });
2240
2382
  }
2241
2383
  }
2242
2384
  function deselect(viewer, visual) {
2243
2385
  if (visual instanceof Entity) {
2244
- var entities = EntityUtils.GatherEntity(visual);
2386
+ var entities = EntityUtils.GatherEntity({
2387
+ entity: visual
2388
+ });
2245
2389
  var keyMapping = {
2246
2390
  "point": "color",
2247
2391
  "polygon": "material",
@@ -2273,9 +2417,15 @@ function deselect(viewer, visual) {
2273
2417
  visual.color = orgColor;
2274
2418
  }
2275
2419
  }
2276
- var opacity = EntityUtils.GetOpacity(visual);
2420
+ var opacity = EntityUtils.GetOpacity({
2421
+ entity: visual
2422
+ });
2277
2423
  if (opacity != null) {
2278
- EntityUtils.SetOpacity(viewer, visual, opacity);
2424
+ EntityUtils.SetOpacity({
2425
+ viewer: viewer,
2426
+ entity: visual,
2427
+ opacity: opacity
2428
+ });
2279
2429
  }
2280
2430
  }
2281
2431
  /**
@@ -2284,6 +2434,12 @@ function deselect(viewer, visual) {
2284
2434
  */
2285
2435
  var VisualsRegister;
2286
2436
  (function (VisualsRegister) {
2437
+ var EVisualUpdateType;
2438
+ (function (EVisualUpdateType) {
2439
+ EVisualUpdateType["Add"] = "ADD";
2440
+ EVisualUpdateType["Remove"] = "REMOVE";
2441
+ EVisualUpdateType["Update"] = "UPDATE";
2442
+ })(EVisualUpdateType = VisualsRegister.EVisualUpdateType || (VisualsRegister.EVisualUpdateType = {}));
2287
2443
  var Register = /** @class */ (function () {
2288
2444
  function Register(viewer) {
2289
2445
  this.id = ObjectUtils.UId();
@@ -2292,6 +2448,8 @@ var VisualsRegister;
2292
2448
  this.selectedIds = [];
2293
2449
  this.isolatedIds = [];
2294
2450
  this.hiddenIds = [];
2451
+ // Entity id -> opacity for visual.
2452
+ this.opacity = {};
2295
2453
  this.viewer = viewer;
2296
2454
  }
2297
2455
  Object.defineProperty(Register.prototype, "Id", {
@@ -2301,6 +2459,13 @@ var VisualsRegister;
2301
2459
  enumerable: false,
2302
2460
  configurable: true
2303
2461
  });
2462
+ Object.defineProperty(Register.prototype, "Viewer", {
2463
+ get: function () {
2464
+ return this.viewer;
2465
+ },
2466
+ enumerable: false,
2467
+ configurable: true
2468
+ });
2304
2469
  Object.defineProperty(Register.prototype, "OnUpdate", {
2305
2470
  get: function () {
2306
2471
  if (!this.onUpdate) {
@@ -2311,37 +2476,52 @@ var VisualsRegister;
2311
2476
  enumerable: false,
2312
2477
  configurable: true
2313
2478
  });
2314
- Register.prototype.Select = function (id, refreshIfSelected) {
2315
- if (refreshIfSelected === void 0) { refreshIfSelected = false; }
2316
- var doSelect = refreshIfSelected;
2317
- if (this.selectedIds.indexOf(id) === -1) {
2318
- this.selectedIds.push(id);
2319
- doSelect = true;
2320
- }
2321
- if (doSelect) {
2322
- var regos = this.rego[id];
2323
- if (regos) {
2324
- for (var i = 0; i < regos.length; i++) {
2325
- var rego = regos[i];
2326
- select(this.viewer, rego.visual);
2479
+ Register.prototype.SetSelected = function (params) {
2480
+ var _a;
2481
+ var entityIds = params.entityIds, selected = params.selected, refreshIfSelected = params.refreshIfSelected;
2482
+ if (refreshIfSelected == null) {
2483
+ refreshIfSelected = true;
2484
+ }
2485
+ for (var i = 0; i < entityIds.length; i++) {
2486
+ var id = entityIds[i];
2487
+ if (selected) {
2488
+ var doSelect = refreshIfSelected;
2489
+ if (this.selectedIds.indexOf(id) === -1) {
2490
+ this.selectedIds.push(id);
2491
+ doSelect = true;
2492
+ }
2493
+ if (doSelect) {
2494
+ var regos = this.rego[id];
2495
+ if (regos) {
2496
+ for (var i_1 = 0; i_1 < regos.length; i_1++) {
2497
+ var rego = regos[i_1];
2498
+ select(this.viewer, rego.visual);
2499
+ }
2500
+ }
2327
2501
  }
2328
2502
  }
2329
- }
2330
- };
2331
- Register.prototype.Deselect = function (id) {
2332
- var index = this.selectedIds.indexOf(id);
2333
- if (index !== -1) {
2334
- this.selectedIds.splice(index, 1);
2335
- var regos = this.rego[id];
2336
- if (regos) {
2337
- for (var i = 0; i < regos.length; i++) {
2338
- var rego = regos[i];
2339
- deselect(this.viewer, rego.visual);
2503
+ else {
2504
+ var index = this.selectedIds.indexOf(id);
2505
+ if (index !== -1) {
2506
+ this.selectedIds.splice(index, 1);
2507
+ var regos = this.rego[id];
2508
+ if (regos) {
2509
+ for (var i_2 = 0; i_2 < regos.length; i_2++) {
2510
+ var rego = regos[i_2];
2511
+ deselect(this.viewer, rego.visual);
2512
+ }
2513
+ }
2340
2514
  }
2341
2515
  }
2516
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
2517
+ entityId: id,
2518
+ type: EVisualUpdateType.Update,
2519
+ selected: selected
2520
+ });
2342
2521
  }
2343
2522
  };
2344
- Register.prototype.IsSelected = function (id) {
2523
+ Register.prototype.GetIsSelected = function (params) {
2524
+ var id = params.entityId;
2345
2525
  return this.selectedIds.indexOf(id) !== -1;
2346
2526
  };
2347
2527
  Register.prototype.ClearSelected = function () {
@@ -2349,8 +2529,8 @@ var VisualsRegister;
2349
2529
  var id = this.selectedIds[i];
2350
2530
  var regos = this.rego[id];
2351
2531
  if (regos) {
2352
- for (var i_1 = 0; i_1 < regos.length; i_1++) {
2353
- var rego = regos[i_1];
2532
+ for (var i_3 = 0; i_3 < regos.length; i_3++) {
2533
+ var rego = regos[i_3];
2354
2534
  deselect(this.viewer, rego.visual);
2355
2535
  }
2356
2536
  }
@@ -2360,20 +2540,32 @@ var VisualsRegister;
2360
2540
  Register.prototype.GetSelected = function () {
2361
2541
  return this.selectedIds;
2362
2542
  };
2363
- Register.prototype.Isolate = function (id) {
2364
- if (this.isolatedIds.indexOf(id) === -1) {
2365
- this.isolatedIds.push(id);
2366
- }
2367
- this.updateAllEntities();
2368
- };
2369
- Register.prototype.Deisolate = function (id) {
2370
- var index = this.isolatedIds.indexOf(id);
2371
- if (index !== -1) {
2372
- this.isolatedIds.splice(index, 1);
2543
+ Register.prototype.SetIsolate = function (params) {
2544
+ var _a;
2545
+ var entityIds = params.entityIds, isolate = params.isolated;
2546
+ for (var i = 0; i < entityIds.length; i++) {
2547
+ var id = entityIds[i];
2548
+ if (isolate) {
2549
+ if (this.isolatedIds.indexOf(id) === -1) {
2550
+ this.isolatedIds.push(id);
2551
+ }
2552
+ }
2553
+ else {
2554
+ var index = this.isolatedIds.indexOf(id);
2555
+ if (index !== -1) {
2556
+ this.isolatedIds.splice(index, 1);
2557
+ }
2558
+ }
2559
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
2560
+ entityId: id,
2561
+ type: EVisualUpdateType.Update,
2562
+ isolated: isolate
2563
+ });
2373
2564
  }
2374
2565
  this.updateAllEntities();
2375
2566
  };
2376
- Register.prototype.IsIsolated = function (id) {
2567
+ Register.prototype.GetIsIsolated = function (params) {
2568
+ var id = params.entityId;
2377
2569
  return this.isolatedIds.indexOf(id) !== -1;
2378
2570
  };
2379
2571
  Register.prototype.GetIsolated = function () {
@@ -2383,42 +2575,80 @@ var VisualsRegister;
2383
2575
  this.isolatedIds = [];
2384
2576
  this.updateAllEntities();
2385
2577
  };
2386
- Register.prototype.Hide = function (id) {
2387
- if (this.hiddenIds.indexOf(id) === -1) {
2388
- this.hiddenIds.push(id);
2389
- }
2390
- updateEntity(this.viewer, id, this);
2391
- };
2392
- Register.prototype.Show = function (id) {
2393
- var index = this.hiddenIds.indexOf(id);
2394
- if (index !== -1) {
2395
- this.hiddenIds.splice(index, 1);
2578
+ Register.prototype.SetHide = function (params) {
2579
+ var _a;
2580
+ var entityIds = params.entityIds, hidden = params.hidden;
2581
+ for (var i = 0; i < entityIds.length; i++) {
2582
+ var id = entityIds[i];
2583
+ if (hidden) {
2584
+ if (this.hiddenIds.indexOf(id) === -1) {
2585
+ this.hiddenIds.push(id);
2586
+ }
2587
+ updateEntity(this.viewer, id, this);
2588
+ }
2589
+ else {
2590
+ var index = this.hiddenIds.indexOf(id);
2591
+ if (index !== -1) {
2592
+ this.hiddenIds.splice(index, 1);
2593
+ }
2594
+ updateEntity(this.viewer, id, this);
2595
+ }
2596
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
2597
+ entityId: id,
2598
+ type: EVisualUpdateType.Update,
2599
+ hidden: hidden
2600
+ });
2396
2601
  }
2397
- updateEntity(this.viewer, id, this);
2398
2602
  };
2399
- Register.prototype.IsHidden = function (id) {
2603
+ Register.prototype.GetIsHidden = function (params) {
2604
+ var id = params.entityId;
2400
2605
  return this.hiddenIds.indexOf(id) !== -1;
2401
2606
  };
2402
2607
  Register.prototype.GetHidden = function () {
2403
2608
  return this.hiddenIds;
2404
2609
  };
2405
2610
  Register.prototype.ClearHidden = function () {
2611
+ var _a;
2406
2612
  this.hiddenIds = [];
2407
2613
  this.updateAllEntities();
2614
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
2615
+ type: EVisualUpdateType.Update,
2616
+ hidden: false
2617
+ });
2408
2618
  };
2409
- Register.prototype.Add = function (rego) {
2619
+ Register.prototype.AddRego = function (params) {
2410
2620
  var _a, _b;
2411
- this.Remove(rego.entityId, rego.menuItemId, false);
2621
+ var rego = params.rego;
2622
+ this.RemoveRegos({
2623
+ entityId: rego.entityId,
2624
+ menuItemId: rego.menuItemId,
2625
+ doUpdate: false
2626
+ });
2412
2627
  var entityId = rego.entityId;
2413
2628
  var entityRegos = (_a = this.rego[entityId]) !== null && _a !== void 0 ? _a : [];
2414
2629
  entityRegos.push(rego);
2415
2630
  this.rego[entityId] = entityRegos;
2416
2631
  markEntity(this, rego, rego.visual);
2417
2632
  updateEntity(this.viewer, entityId, this);
2418
- if (this.selectedIds.includes(entityId)) {
2633
+ var selected = this.selectedIds.includes(entityId);
2634
+ if (selected) {
2419
2635
  select(this.viewer, rego.visual);
2420
2636
  }
2421
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ rego: rego, isAdding: true });
2637
+ var opacity = this.opacity[entityId];
2638
+ if (opacity != null && opacity != 100) {
2639
+ EntityUtils.SetOpacity({
2640
+ entity: rego.visual,
2641
+ opacity: opacity,
2642
+ viewer: this.viewer
2643
+ });
2644
+ }
2645
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({
2646
+ rego: rego,
2647
+ type: EVisualUpdateType.Add,
2648
+ entityId: rego.entityId,
2649
+ opacity: opacity,
2650
+ selected: selected
2651
+ });
2422
2652
  };
2423
2653
  /**
2424
2654
  * Locates a visual corresponding to a given entity id.
@@ -2427,7 +2657,8 @@ var VisualsRegister;
2427
2657
  * @param menuItemId
2428
2658
  * @returns
2429
2659
  */
2430
- Register.prototype.GetRego = function (entityId, menuItemId) {
2660
+ Register.prototype.GetRego = function (params) {
2661
+ var entityId = params.entityId, menuItemId = params.menuItemId;
2431
2662
  var entityRegos = this.rego[entityId];
2432
2663
  if (!entityRegos) {
2433
2664
  return [];
@@ -2437,94 +2668,104 @@ var VisualsRegister;
2437
2668
  }
2438
2669
  return entityRegos.find(function (x) { return x.best; });
2439
2670
  };
2440
- Register.prototype.GetRegos = function (entityId) {
2441
- var entityRegos = this.rego[entityId];
2442
- if (!entityRegos) {
2443
- return [];
2444
- }
2445
- return entityRegos;
2446
- };
2447
- Register.prototype.GetMenuItemRegos = function (menuItemId) {
2448
- var visuals = [];
2449
- for (var entityId in this.rego) {
2450
- var entityRegos = this.rego[entityId];
2451
- if (entityRegos) {
2452
- var rego = entityRegos.find(function (r) { return r.menuItemId === menuItemId; });
2453
- if (rego) {
2454
- visuals.push(rego);
2455
- }
2671
+ /**
2672
+ * Returns regos matching given criteria.
2673
+ * Either entityId or menuItemId must be provided.
2674
+ * @param params
2675
+ * @returns
2676
+ */
2677
+ Register.prototype.GetRegos = function (params) {
2678
+ // TODO: refactor.
2679
+ // Currently this was made by merging two functions.
2680
+ var entityId = params.entityId, menuItemId = params.menuItemId;
2681
+ if (entityId) {
2682
+ var entityId_1 = params.entityId;
2683
+ var entityRegos = this.rego[entityId_1];
2684
+ if (!entityRegos) {
2685
+ return [];
2456
2686
  }
2457
- }
2458
- return visuals;
2459
- };
2460
- Register.prototype.RemoveByEntityId = function (id) {
2461
- var _a;
2462
- var entityRegos = this.rego[id];
2463
- if (!entityRegos) {
2464
- return;
2465
- }
2466
- for (var i = 0; i < entityRegos.length; i++) {
2467
- var rego = entityRegos[i];
2468
- (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ rego: rego, isAdding: false });
2469
- removeEntity(this.viewer, rego.visual);
2470
- }
2471
- this.rego[id] = [];
2472
- delete this.rego[id];
2473
- };
2474
- Register.prototype.RemoveByMenuItemId = function (id) {
2475
- var _a;
2476
- for (var entityId in this.rego) {
2477
- var entityRegos = this.rego[entityId];
2478
- if (entityRegos) {
2479
- var rego = entityRegos.find(function (r) { return r.menuItemId === id; });
2480
- if (!rego) {
2481
- continue;
2482
- }
2483
- (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ rego: rego, isAdding: false });
2484
- removeEntity(this.viewer, rego.visual);
2485
- var doesInclude = this.rego[entityId].find(function (r) { return r.menuItemId === id; });
2486
- if (doesInclude) {
2487
- this.rego[entityId] = entityRegos.filter(function (r) { return r.menuItemId !== id; });
2488
- updateEntity(this.viewer, entityId, this);
2687
+ return menuItemId ? entityRegos.filter(function (x) { return x.menuItemId == menuItemId; }) : entityRegos;
2688
+ }
2689
+ else if (menuItemId) {
2690
+ var menuItemId_1 = params.menuItemId;
2691
+ var visuals = [];
2692
+ for (var entityId_2 in this.rego) {
2693
+ var entityRegos = this.rego[entityId_2];
2694
+ if (entityRegos) {
2695
+ var rego = entityRegos.find(function (r) { return r.menuItemId === menuItemId_1; });
2696
+ if (rego) {
2697
+ visuals.push(rego);
2698
+ }
2489
2699
  }
2490
2700
  }
2701
+ return visuals;
2491
2702
  }
2492
2703
  };
2493
2704
  /**
2494
- *
2495
- * @param entityId
2496
- * @param menuItemId if not supplied it will affect all menu items.
2497
- * @param _doUpdate if menu item id is not supplied, then this will be ignored.
2705
+ * Removes regos matching given criteria.
2706
+ * Either entityId or menuItemId must be provided.
2707
+ * @param params
2498
2708
  * @returns
2499
2709
  */
2500
- Register.prototype.Remove = function (entityId, menuItemId, _doUpdate) {
2501
- var _a;
2502
- if (_doUpdate == null) {
2503
- _doUpdate = true;
2504
- }
2505
- var entityRegos = this.rego[entityId];
2506
- if (!entityRegos) {
2507
- return;
2710
+ Register.prototype.RemoveRegos = function (params) {
2711
+ var _a, _b;
2712
+ var entityId = params.entityId, menuItemId = params.menuItemId, doUpdate = params.doUpdate;
2713
+ if (doUpdate == null) {
2714
+ doUpdate = true;
2715
+ }
2716
+ // TODO: refactor.
2717
+ // Currently this was made by merging two functions.
2718
+ if (menuItemId && !entityId) {
2719
+ for (var entityId_3 in this.rego) {
2720
+ var entityRegos = this.rego[entityId_3];
2721
+ if (entityRegos) {
2722
+ var rego = entityRegos.find(function (r) { return r.menuItemId === menuItemId; });
2723
+ if (!rego) {
2724
+ continue;
2725
+ }
2726
+ removeEntity(this.viewer, rego.visual);
2727
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
2728
+ type: EVisualUpdateType.Remove,
2729
+ entityId: rego.entityId,
2730
+ rego: rego
2731
+ });
2732
+ var doesInclude = this.rego[entityId_3].find(function (r) { return r.menuItemId === menuItemId; });
2733
+ if (doesInclude) {
2734
+ this.rego[entityId_3] = entityRegos.filter(function (r) { return r.menuItemId !== menuItemId; });
2735
+ updateEntity(this.viewer, entityId_3, this);
2736
+ }
2737
+ }
2738
+ }
2508
2739
  }
2509
- var menuItems = menuItemId ? menuItemId : Object.keys(entityRegos);
2510
- var _loop_3 = function (i) {
2511
- var menuItemId_1 = menuItems[i];
2512
- var rego = entityRegos.find(function (r) { return r.menuItemId === menuItemId_1; });
2513
- if (!rego) {
2514
- return { value: void 0 };
2740
+ else if (entityId) {
2741
+ var entityRegos = this.rego[entityId];
2742
+ if (!entityRegos) {
2743
+ return;
2515
2744
  }
2516
- (_a = this_1.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ rego: rego, isAdding: false });
2517
- removeEntity(this_1.viewer, rego.visual);
2518
- this_1.rego[entityId] = entityRegos.filter(function (r) { return r.menuItemId !== menuItemId_1; });
2519
- if (_doUpdate && menuItemId_1) {
2520
- updateEntity(this_1.viewer, entityId, this_1);
2745
+ var menuItems = menuItemId ? menuItemId : Object.keys(entityRegos);
2746
+ var _loop_3 = function (i) {
2747
+ var menuItemId_2 = menuItems[i];
2748
+ var rego = entityRegos.find(function (r) { return r.menuItemId === menuItemId_2; });
2749
+ if (!rego) {
2750
+ return { value: void 0 };
2751
+ }
2752
+ removeEntity(this_1.viewer, rego.visual);
2753
+ (_b = this_1.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({
2754
+ type: EVisualUpdateType.Remove,
2755
+ entityId: rego.entityId,
2756
+ rego: rego
2757
+ });
2758
+ this_1.rego[entityId] = entityRegos.filter(function (r) { return r.menuItemId !== menuItemId_2; });
2759
+ if (doUpdate && menuItemId_2) {
2760
+ updateEntity(this_1.viewer, entityId, this_1);
2761
+ }
2762
+ };
2763
+ var this_1 = this;
2764
+ for (var i = 0; i < menuItems.length; i++) {
2765
+ var state_1 = _loop_3(i);
2766
+ if (typeof state_1 === "object")
2767
+ return state_1.value;
2521
2768
  }
2522
- };
2523
- var this_1 = this;
2524
- for (var i = 0; i < menuItems.length; i++) {
2525
- var state_1 = _loop_3(i);
2526
- if (typeof state_1 === "object")
2527
- return state_1.value;
2528
2769
  }
2529
2770
  };
2530
2771
  /**
@@ -2533,10 +2774,15 @@ var VisualsRegister;
2533
2774
  * @param cursor
2534
2775
  * @returns
2535
2776
  */
2536
- Register.prototype.GetFromCursor = function (cursor) {
2777
+ Register.prototype.GetRegosFromCursor = function (params) {
2537
2778
  var _a;
2779
+ var cursor = params.cursor;
2538
2780
  var found = [];
2539
- var picked = this.viewer.scene.drillPick(new Cartesian2(cursor.x, cursor.y), 5);
2781
+ var width = Math.ceil(EnsureNumber(params.width, 5));
2782
+ var height = Math.ceil(EnsureNumber(params.height, 5));
2783
+ var x = Math.ceil(cursor.x - width / 2);
2784
+ var y = Math.ceil(cursor.y - height / 2);
2785
+ var picked = this.viewer.scene.drillPick(new Cartesian2(x, y), 5, width, height);
2540
2786
  for (var i = 0; i < picked.length; i++) {
2541
2787
  var object = picked[i];
2542
2788
  var entity = (object && object.id && object.id instanceof Entity ? object.id : object);
@@ -2545,12 +2791,14 @@ var VisualsRegister;
2545
2791
  found.push(visual._rego);
2546
2792
  }
2547
2793
  }
2548
- return found;
2794
+ return {
2795
+ regos: found
2796
+ };
2549
2797
  };
2550
2798
  /**
2551
2799
  * Returns all registered entity ids.
2552
2800
  */
2553
- Register.prototype.GetIds = function () {
2801
+ Register.prototype.GetEntityIds = function () {
2554
2802
  var ids = [];
2555
2803
  for (var entityId in this.rego) {
2556
2804
  var regos = this.rego[entityId];
@@ -2564,10 +2812,10 @@ var VisualsRegister;
2564
2812
  * Marks regos corresponding to given entity ids as stale.
2565
2813
  * This will cause them to be updated on the next update cycle.
2566
2814
  * Optionally include menu item ids to restrict the filter.
2567
- * @param entityIds
2568
- * @param menuItemIds
2815
+ * @param params
2569
2816
  */
2570
- Register.prototype.MarkStale = function (entityIds, menuItemIds) {
2817
+ Register.prototype.MarkStale = function (params) {
2818
+ var entityIds = params.entityIds, menuItemIds = params.menuItemIds;
2571
2819
  for (var _i = 0, entityIds_1 = entityIds; _i < entityIds_1.length; _i++) {
2572
2820
  var entityId = entityIds_1[_i];
2573
2821
  var regos = this.rego[entityId];
@@ -2589,6 +2837,77 @@ var VisualsRegister;
2589
2837
  }
2590
2838
  }
2591
2839
  };
2840
+ /**
2841
+ * Sets opacity for given set of entities.
2842
+ * 100% opacity is treated as "use original".
2843
+ * @param params
2844
+ */
2845
+ Register.prototype.SetOpacity = function (params) {
2846
+ var _a;
2847
+ var entityIds = params.entityIds, menuItemIds = params.menuItemId;
2848
+ for (var _i = 0, entityIds_2 = entityIds; _i < entityIds_2.length; _i++) {
2849
+ var entityId = entityIds_2[_i];
2850
+ var regos = this.rego[entityId];
2851
+ if (regos && regos.length) {
2852
+ for (var _b = 0, regos_2 = regos; _b < regos_2.length; _b++) {
2853
+ var rego = regos_2[_b];
2854
+ if (rego.visual &&
2855
+ (!menuItemIds || menuItemIds.includes(rego.menuItemId))) {
2856
+ if (params.opacity == 100) {
2857
+ EntityUtils.RevertOpacity({
2858
+ entity: rego.visual,
2859
+ viewer: this.viewer
2860
+ });
2861
+ }
2862
+ else {
2863
+ EntityUtils.SetOpacity({
2864
+ entity: rego.visual,
2865
+ opacity: params.opacity,
2866
+ viewer: this.viewer
2867
+ });
2868
+ }
2869
+ this.opacity[rego.entityId] = params.opacity;
2870
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({
2871
+ rego: rego,
2872
+ type: EVisualUpdateType.Update,
2873
+ entityId: rego.entityId,
2874
+ opacity: params.opacity
2875
+ });
2876
+ }
2877
+ }
2878
+ }
2879
+ }
2880
+ };
2881
+ /**
2882
+ * Returns opacity for given entity/s.
2883
+ * If multiple entities are supplied, then the average is returned.
2884
+ * Unknown opacity is treated as 100% opacity.
2885
+ * @param params
2886
+ * @returns
2887
+ */
2888
+ Register.prototype.GetOpacity = function (params) {
2889
+ var totalOpacity = null;
2890
+ var totalTicks = 0;
2891
+ var entityIds = params.entityIds, menuItemIds = params.menuItemIds;
2892
+ for (var _i = 0, entityIds_3 = entityIds; _i < entityIds_3.length; _i++) {
2893
+ var entityId = entityIds_3[_i];
2894
+ var regos = this.rego[entityId];
2895
+ if (regos && regos.length) {
2896
+ for (var _a = 0, regos_3 = regos; _a < regos_3.length; _a++) {
2897
+ var rego = regos_3[_a];
2898
+ if (rego.visual &&
2899
+ (!menuItemIds || menuItemIds.includes(rego.menuItemId))) {
2900
+ var opacity = this.opacity[rego.entityId];
2901
+ if (opacity != null) {
2902
+ totalOpacity += opacity;
2903
+ totalTicks += 1;
2904
+ }
2905
+ }
2906
+ }
2907
+ }
2908
+ }
2909
+ return totalOpacity ? totalOpacity / totalTicks : 100;
2910
+ };
2592
2911
  return Register;
2593
2912
  }());
2594
2913
  VisualsRegister.Register = Register;
@@ -2601,11 +2920,12 @@ var VisualsRegister;
2601
2920
  var EntitiesIdsRenderManager;
2602
2921
  (function (EntitiesIdsRenderManager) {
2603
2922
  var Manager = /** @class */ (function () {
2604
- function Manager(viewer, visualsManager, apiGetter, monitor, item) {
2923
+ function Manager(params) {
2605
2924
  this.getter = null;
2606
2925
  this.getterSub = null;
2607
2926
  this.disposed = false;
2608
2927
  this.renderedEntities = {};
2928
+ var viewer = params.viewer, apiGetter = params.apiGetter, monitor = params.monitor, item = params.item, visualsManager = params.register;
2609
2929
  this.viewer = viewer;
2610
2930
  this.apiGetter = apiGetter;
2611
2931
  this.monitor = monitor;
@@ -2643,7 +2963,9 @@ var EntitiesIdsRenderManager;
2643
2963
  (_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
2644
2964
  this.getterSub = null;
2645
2965
  this.disposed = true;
2646
- this.visualsManager.RemoveByMenuItemId(this.item.id);
2966
+ this.visualsManager.RemoveRegos({
2967
+ menuItemId: this.item.id
2968
+ });
2647
2969
  };
2648
2970
  Manager.prototype.ReRender = function (entityIds) {
2649
2971
  return __awaiter(this, void 0, void 0, function () {
@@ -2659,7 +2981,10 @@ var EntitiesIdsRenderManager;
2659
2981
  return (_a = _this.item.BruceEntity) === null || _a === void 0 ? void 0 : _a.EntityIds.includes(x);
2660
2982
  });
2661
2983
  }
2662
- this.visualsManager.MarkStale(entityIds, [this.item.id]);
2984
+ this.visualsManager.MarkStale({
2985
+ entityIds: entityIds,
2986
+ menuItemIds: [this.item.id]
2987
+ });
2663
2988
  this.onGetterUpdate(entityIds);
2664
2989
  return [2 /*return*/];
2665
2990
  });
@@ -2701,19 +3026,28 @@ var EntitiesIdsRenderManager;
2701
3026
  cEntity = cEntities[id];
2702
3027
  this.renderedEntities[id] = !!cEntity;
2703
3028
  if (cEntity) {
2704
- visual = (_a = this.visualsManager.GetRego(id, this.item.id)) === null || _a === void 0 ? void 0 : _a.visual;
3029
+ visual = (_a = this.visualsManager.GetRego({
3030
+ entityId: id,
3031
+ menuItemId: this.item.id
3032
+ })) === null || _a === void 0 ? void 0 : _a.visual;
2705
3033
  if (!visual || visual != cEntity) {
2706
- this.visualsManager.Add({
2707
- entityId: id,
2708
- menuItemId: this.item.id,
2709
- visual: cEntity,
2710
- priority: 0,
2711
- entityTypeId: entity.Bruce["EntityType.ID"]
3034
+ this.visualsManager.AddRego({
3035
+ rego: {
3036
+ entityId: id,
3037
+ menuItemId: this.item.id,
3038
+ visual: cEntity,
3039
+ priority: 0,
3040
+ entityTypeId: entity.Bruce["EntityType.ID"],
3041
+ accountId: this.apiGetter.accountId
3042
+ }
2712
3043
  });
2713
3044
  }
2714
3045
  }
2715
3046
  else {
2716
- this.visualsManager.Remove(id, this.item.id);
3047
+ this.visualsManager.RemoveRegos({
3048
+ entityId: id,
3049
+ menuItemId: this.item.id
3050
+ });
2717
3051
  }
2718
3052
  }
2719
3053
  return [3 /*break*/, 5];
@@ -2737,10 +3071,11 @@ var EntitiesIdsRenderManager;
2737
3071
  var EntityRenderManager;
2738
3072
  (function (EntityRenderManager) {
2739
3073
  var Manager = /** @class */ (function () {
2740
- function Manager(viewer, visualsManager, apiGetter, monitor, item) {
3074
+ function Manager(params) {
2741
3075
  this.getter = null;
2742
3076
  this.getterSub = null;
2743
3077
  this.disposed = false;
3078
+ var viewer = params.viewer, apiGetter = params.apiGetter, monitor = params.monitor, item = params.item, visualsManager = params.register;
2744
3079
  this.viewer = viewer;
2745
3080
  this.apiGetter = apiGetter;
2746
3081
  this.monitor = monitor;
@@ -2778,7 +3113,9 @@ var EntityRenderManager;
2778
3113
  this.disposed = true;
2779
3114
  (_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
2780
3115
  this.getterSub = null;
2781
- this.visualsManager.RemoveByMenuItemId(this.item.id);
3116
+ this.visualsManager.RemoveRegos({
3117
+ menuItemId: this.item.id
3118
+ });
2782
3119
  };
2783
3120
  Manager.prototype.ReRender = function (entityIds) {
2784
3121
  return __awaiter(this, void 0, void 0, function () {
@@ -2788,7 +3125,10 @@ var EntityRenderManager;
2788
3125
  if (entityIds && !entityIds.includes(this.item.BruceEntity.EntityId)) {
2789
3126
  return [2 /*return*/];
2790
3127
  }
2791
- this.visualsManager.MarkStale(entityIds, [this.item.id]);
3128
+ this.visualsManager.MarkStale({
3129
+ entityIds: entityIds,
3130
+ menuItemIds: [this.item.id]
3131
+ });
2792
3132
  return [4 /*yield*/, this.onGetterUpdate(this.item.BruceEntity.EntityId)];
2793
3133
  case 1:
2794
3134
  _a.sent();
@@ -2827,19 +3167,28 @@ var EntityRenderManager;
2827
3167
  cEntities = _b.sent();
2828
3168
  cEntity = cEntities[id];
2829
3169
  if (cEntity) {
2830
- visual = (_a = this.visualsManager.GetRego(id, this.item.id)) === null || _a === void 0 ? void 0 : _a.visual;
3170
+ visual = (_a = this.visualsManager.GetRego({
3171
+ entityId: id,
3172
+ menuItemId: this.item.id
3173
+ })) === null || _a === void 0 ? void 0 : _a.visual;
2831
3174
  if (!visual || visual != cEntity) {
2832
- this.visualsManager.Add({
2833
- entityId: entity.Bruce.ID,
2834
- menuItemId: this.item.id,
2835
- visual: cEntity,
2836
- priority: 0,
2837
- entityTypeId: entity.Bruce["EntityType.ID"]
3175
+ this.visualsManager.AddRego({
3176
+ rego: {
3177
+ entityId: entity.Bruce.ID,
3178
+ menuItemId: this.item.id,
3179
+ visual: cEntity,
3180
+ priority: 0,
3181
+ entityTypeId: entity.Bruce["EntityType.ID"],
3182
+ accountId: this.apiGetter.accountId
3183
+ }
2838
3184
  });
2839
3185
  }
2840
3186
  }
2841
3187
  else {
2842
- this.visualsManager.Remove(id, this.item.id);
3188
+ this.visualsManager.RemoveRegos({
3189
+ entityId: id,
3190
+ menuItemId: this.item.id
3191
+ });
2843
3192
  }
2844
3193
  return [3 /*break*/, 4];
2845
3194
  case 3:
@@ -2917,6 +3266,15 @@ var TilesetRenderEngine;
2917
3266
  root.transform = Matrix4.multiplyByTranslation(root.transform, new Cartesian3(EnsureNumber(transform.x), EnsureNumber(transform.y), EnsureNumber(transform.z)), root.transform);
2918
3267
  // Force matrix to update
2919
3268
  root.updateTransform();
3269
+ // Store data in the tileset as we can't interpret it using the cesium primitive later.
3270
+ var cTilesetExt = cTileset;
3271
+ cTilesetExt._bruceCoords = __assign({}, cTilesetExt._bruceCoords);
3272
+ cTilesetExt._bruceCoords.ucs = coords.ucs ? {
3273
+ location: coords.ucs.location ? JSON.parse(JSON.stringify(coords.ucs.location)) : null,
3274
+ transform: null
3275
+ } : null;
3276
+ cTilesetExt._bruceCoords.location = location ? JSON.parse(JSON.stringify(location)) : null;
3277
+ cTilesetExt._bruceCoords.transform = transform ? JSON.parse(JSON.stringify(transform)) : null;
2920
3278
  }
2921
3279
  TilesetRenderEngine.ApplyPosition = ApplyPosition;
2922
3280
  function ApplySettings(cTileset, tileset) {
@@ -3011,6 +3369,149 @@ var TilesetRenderEngine;
3011
3369
  }
3012
3370
  }
3013
3371
  TilesetRenderEngine.Render = Render;
3372
+ function ApplyLegacyPosition(params) {
3373
+ var cTileset = params.cTileset, tileset = params.tileset;
3374
+ var settings = tileset.Settings;
3375
+ settings = __assign({}, settings);
3376
+ var origin = settings.origin;
3377
+ origin = __assign({}, origin);
3378
+ var etc = settings.etc;
3379
+ etc = __assign({}, etc);
3380
+ var root = cTileset.root;
3381
+ var transform = etc.dontTransform != true;
3382
+ if (!transform) {
3383
+ return;
3384
+ }
3385
+ if (origin.usingBoundingBox == null) {
3386
+ origin.usingBoundingBox = true;
3387
+ }
3388
+ var getCurPos3d = function () {
3389
+ if (origin.usingBoundingBox == false) {
3390
+ return Matrix4.getTranslation(root.transform, new Cartesian3());
3391
+ }
3392
+ else {
3393
+ return Cartesian3.clone(root.boundingSphere.center);
3394
+ }
3395
+ };
3396
+ var pos3d;
3397
+ if (origin.latitude != null && origin.longitude != null) {
3398
+ pos3d = Cartesian3.fromDegrees(EnsureNumber(origin.longitude), EnsureNumber(origin.latitude), EnsureNumber(origin.altitude));
3399
+ }
3400
+ if (!pos3d) {
3401
+ pos3d = getCurPos3d();
3402
+ }
3403
+ // Store data in the tileset as we can't interpret it using the cesium primitive later.
3404
+ var cTilesetExt = cTileset;
3405
+ cTilesetExt._bruceCoords.transform = null;
3406
+ var rotate = etc.dontRotate != true;
3407
+ if (rotate) {
3408
+ var rotation = settings.rotation;
3409
+ var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(rotation.z), EnsureNumber(rotation.x), EnsureNumber(rotation.y), new HeadingPitchRoll());
3410
+ root.transform = Transforms.headingPitchRollToFixedFrame(pos3d, hpr);
3411
+ root.updateTransform();
3412
+ cTilesetExt._bruceCoords.transform = {
3413
+ heading: rotation.z,
3414
+ pitch: rotation.x,
3415
+ roll: rotation.y,
3416
+ scale: 1
3417
+ };
3418
+ }
3419
+ var curPos3d = getCurPos3d();
3420
+ var newTransform = Matrix4.pack(root.transform.clone(new Matrix4()), []);
3421
+ newTransform[12] += pos3d.x - curPos3d.x;
3422
+ newTransform[13] += pos3d.y - curPos3d.y;
3423
+ newTransform[14] += pos3d.z - curPos3d.z;
3424
+ root.transform = Matrix4.unpack(newTransform);
3425
+ root.updateTransform();
3426
+ var carto = Cartographic.fromCartesian(pos3d);
3427
+ cTilesetExt._bruceCoords.location = carto ? {
3428
+ altitude: carto.height,
3429
+ latitude: carto.latitude,
3430
+ longitude: carto.longitude
3431
+ } : null;
3432
+ cTilesetExt._bruceCoords.legacy = true;
3433
+ cTilesetExt._bruceCoords.legacyUsingBoundingBox = origin.usingBoundingBox;
3434
+ }
3435
+ TilesetRenderEngine.ApplyLegacyPosition = ApplyLegacyPosition;
3436
+ function ApplyLegacySettings(params) {
3437
+ var cTileset = params.cTileset, tileset = params.tileset;
3438
+ var settings = tileset.Settings;
3439
+ settings = __assign({}, settings);
3440
+ var visual = settings.visual;
3441
+ visual = __assign({}, visual);
3442
+ cTileset.maximumScreenSpaceError = EnsureNumber(visual.maximumScreenSpaceError, 5);
3443
+ cTileset.pointCloudShading.attenuation = visual.attenuation != false;
3444
+ cTileset.pointCloudShading.maximumAttenuation = EnsureNumber(visual.attenuationMax, 4);
3445
+ var colorMask = visual.colorMask;
3446
+ if (colorMask && (tileset.Type == "S" || tileset.Type == "X")) {
3447
+ tileset.style = new Cesium3DTileStyle({
3448
+ color: colorMask
3449
+ });
3450
+ }
3451
+ }
3452
+ TilesetRenderEngine.ApplyLegacySettings = ApplyLegacySettings;
3453
+ function RenderLegacy(params) {
3454
+ return __awaiter(this, void 0, void 0, function () {
3455
+ var apiGetter, viewer, tileset, ionId, settings, visual, etc, loadUrl, api, cTileset;
3456
+ return __generator(this, function (_a) {
3457
+ switch (_a.label) {
3458
+ case 0:
3459
+ apiGetter = params.apiGetter, viewer = params.viewer, tileset = params.tileset, ionId = params.ionId;
3460
+ settings = tileset === null || tileset === void 0 ? void 0 : tileset.Settings;
3461
+ settings = __assign({}, settings);
3462
+ visual = settings.visual;
3463
+ visual = __assign({}, visual);
3464
+ etc = settings.etc;
3465
+ etc = __assign({}, etc);
3466
+ loadUrl = null;
3467
+ if (!ionId) return [3 /*break*/, 2];
3468
+ return [4 /*yield*/, IonResource.fromAssetId(EnsureNumber(ionId))];
3469
+ case 1:
3470
+ // TODO: Can cause issues with menu-item dispose race conditions.
3471
+ loadUrl = _a.sent();
3472
+ return [3 /*break*/, 3];
3473
+ case 2:
3474
+ if (tileset) {
3475
+ if (etc === null || etc === void 0 ? void 0 : etc.ExternalTilesetURL) {
3476
+ loadUrl = etc.ExternalTilesetURL;
3477
+ }
3478
+ else {
3479
+ api = apiGetter.getApi(apiGetter.accountId);
3480
+ loadUrl = api.GetBaseUrl() + ("ui.tileset/" + tileset.id + "/file/tileset.json");
3481
+ }
3482
+ }
3483
+ _a.label = 3;
3484
+ case 3:
3485
+ cTileset = this.cTileset = new Cesium3DTileset({
3486
+ url: loadUrl
3487
+ });
3488
+ this.viewer.scene.primitives.add(cTileset);
3489
+ cTileset.readyPromise.then(function () {
3490
+ try {
3491
+ if (!isAlive(viewer, cTileset)) {
3492
+ return;
3493
+ }
3494
+ if (tileset) {
3495
+ ApplyLegacySettings({
3496
+ cTileset: cTileset,
3497
+ tileset: tileset
3498
+ });
3499
+ ApplyLegacyPosition({
3500
+ cTileset: cTileset,
3501
+ tileset: tileset
3502
+ });
3503
+ }
3504
+ }
3505
+ catch (e) {
3506
+ console.error(e);
3507
+ }
3508
+ });
3509
+ return [2 /*return*/, cTileset];
3510
+ }
3511
+ });
3512
+ });
3513
+ }
3514
+ TilesetRenderEngine.RenderLegacy = RenderLegacy;
3014
3515
  var CadStyler = /** @class */ (function () {
3015
3516
  function CadStyler(api, cTileset, fallbackStyleId, styleMapping) {
3016
3517
  this.disposed = false;
@@ -3405,10 +3906,11 @@ var TilesetRenderEngine;
3405
3906
  var TilesetCadRenderManager;
3406
3907
  (function (TilesetCadRenderManager) {
3407
3908
  var Manager = /** @class */ (function () {
3408
- function Manager(viewer, visualsManager, apiGetter, item) {
3909
+ function Manager(params) {
3409
3910
  this.disposed = false;
3410
3911
  this.cTileset = null;
3411
3912
  this.styler = null;
3913
+ var viewer = params.viewer, visualsManager = params.register, apiGetter = params.apiGetter, item = params.item;
3412
3914
  this.viewer = viewer;
3413
3915
  this.apiGetter = apiGetter;
3414
3916
  this.item = item;
@@ -3507,13 +4009,13 @@ var TilesetCadRenderManager;
3507
4009
  for (var i = 0; i < content.featuresLength; i++) {
3508
4010
  var feature = content.getFeature(i);
3509
4011
  var rego = this.mapTilesetFeature(feature);
3510
- if (rego === null || rego === void 0 ? void 0 : rego.entityId) {
4012
+ if ((rego === null || rego === void 0 ? void 0 : rego.entityId) && this.styler) {
3511
4013
  this.styler.QueueEntities([rego]);
3512
4014
  }
3513
4015
  }
3514
4016
  };
3515
4017
  Manager.prototype.mapTilesetFeature = function (feature) {
3516
- var _a, _b, _c, _d;
4018
+ var _a, _b, _c, _d, _e, _f;
3517
4019
  var version = (_c = (_b = (_a = feature === null || feature === void 0 ? void 0 : feature.tileset) === null || _a === void 0 ? void 0 : _a.extensions) === null || _b === void 0 ? void 0 : _b.modelTree) === null || _c === void 0 ? void 0 : _c.version;
3518
4020
  if (!version) {
3519
4021
  version = 1;
@@ -3523,7 +4025,8 @@ var TilesetCadRenderManager;
3523
4025
  entityTypeId: null,
3524
4026
  menuItemId: this.item.id,
3525
4027
  priority: 0,
3526
- visual: feature
4028
+ visual: feature,
4029
+ accountId: (_e = (_d = this.item.tileset) === null || _d === void 0 ? void 0 : _d.ClientAccountID) !== null && _e !== void 0 ? _e : this.apiGetter.accountId
3527
4030
  };
3528
4031
  if (version == 1) {
3529
4032
  var pathStr = feature.getProperty("BrucePath");
@@ -3552,7 +4055,7 @@ var TilesetCadRenderManager;
3552
4055
  }
3553
4056
  // Optional menu item restriction.
3554
4057
  // Allows only showing certain entities from a tileset.
3555
- var onlyIds = (_d = this.item.BruceEntity) === null || _d === void 0 ? void 0 : _d.EntityIds;
4058
+ var onlyIds = (_f = this.item.BruceEntity) === null || _f === void 0 ? void 0 : _f.EntityIds;
3556
4059
  if ((onlyIds === null || onlyIds === void 0 ? void 0 : onlyIds.length) && !onlyIds.includes(rego.entityId)) {
3557
4060
  if (this.item.BruceEntity.Ghosts) {
3558
4061
  feature.color = Color.WHITE.clone().withAlpha(0.5);
@@ -3562,7 +4065,9 @@ var TilesetCadRenderManager;
3562
4065
  }
3563
4066
  return null;
3564
4067
  }
3565
- this.visualsManager.Add(rego);
4068
+ this.visualsManager.AddRego({
4069
+ rego: rego
4070
+ });
3566
4071
  return rego;
3567
4072
  };
3568
4073
  Manager.prototype.getMetaByGeomId = function (geomId, tileset) {
@@ -3635,7 +4140,9 @@ var TilesetCadRenderManager;
3635
4140
  this.cTileset = null;
3636
4141
  }
3637
4142
  (_a = this.styler) === null || _a === void 0 ? void 0 : _a.Dispose();
3638
- this.visualsManager.RemoveByMenuItemId(this.item.id);
4143
+ this.visualsManager.RemoveRegos({
4144
+ menuItemId: this.item.id
4145
+ });
3639
4146
  };
3640
4147
  Manager.prototype.ReRender = function (entityIds) {
3641
4148
  return __awaiter(this, void 0, void 0, function () {
@@ -3644,7 +4151,9 @@ var TilesetCadRenderManager;
3644
4151
  if (!this.styler) {
3645
4152
  return [2 /*return*/];
3646
4153
  }
3647
- regos = this.visualsManager.GetMenuItemRegos(this.item.id);
4154
+ regos = this.visualsManager.GetRegos({
4155
+ menuItemId: this.item.id
4156
+ });
3648
4157
  if (entityIds != null) {
3649
4158
  regos = regos.filter(function (r) { return entityIds.indexOf(r.entityId) >= 0; });
3650
4159
  }
@@ -3693,7 +4202,7 @@ var MAX_RANGE = 3000;
3693
4202
  var TilesetOsmRenderManager;
3694
4203
  (function (TilesetOsmRenderManager) {
3695
4204
  var Manager = /** @class */ (function () {
3696
- function Manager(viewer, visualsManager, apiGetter, monitor, item) {
4205
+ function Manager(params) {
3697
4206
  this.disposed = false;
3698
4207
  this.cTileset = null;
3699
4208
  this.counter = 0;
@@ -3704,6 +4213,7 @@ var TilesetOsmRenderManager;
3704
4213
  this.entityTypeId = null;
3705
4214
  this.queueCheckInterval = null;
3706
4215
  this.processingQueue = 0;
4216
+ var viewer = params.viewer, visualsManager = params.register, apiGetter = params.apiGetter, monitor = params.monitor, item = params.item;
3707
4217
  this.viewer = viewer;
3708
4218
  this.apiGetter = apiGetter;
3709
4219
  this.item = item;
@@ -3744,7 +4254,9 @@ var TilesetOsmRenderManager;
3744
4254
  }
3745
4255
  this.cTileset = null;
3746
4256
  }
3747
- this.visualsManager.RemoveByMenuItemId(this.item.id);
4257
+ this.visualsManager.RemoveRegos({
4258
+ menuItemId: this.item.id
4259
+ });
3748
4260
  this.featureQueue = [];
3749
4261
  };
3750
4262
  Manager.prototype.Init = function () {
@@ -3908,7 +4420,7 @@ var TilesetOsmRenderManager;
3908
4420
  };
3909
4421
  Manager.prototype.mapTileBatch = function (features) {
3910
4422
  return __awaiter(this, void 0, void 0, function () {
3911
- var featureIds, featureMap, _loop_1, this_1, i, api, bIds, i, id, bId, feature, rego;
4423
+ var featureIds, featureMap, _loop_1, this_1, i, api, bIds, i, osmId, bruceId, feature, rego;
3912
4424
  return __generator(this, function (_a) {
3913
4425
  switch (_a.label) {
3914
4426
  case 0:
@@ -3939,25 +4451,29 @@ var TilesetOsmRenderManager;
3939
4451
  case 1:
3940
4452
  bIds = (_a.sent()).idMapping;
3941
4453
  for (i = 0; i < featureIds.length; i++) {
3942
- id = featureIds[i];
3943
- bId = bIds[id];
3944
- if (!bId) {
3945
- bId = ObjectUtils.UId();
4454
+ osmId = featureIds[i];
4455
+ bruceId = bIds[osmId];
4456
+ if (!bruceId) {
4457
+ bruceId = ObjectUtils.UId();
3946
4458
  }
3947
4459
  feature = featureMap[i];
3948
4460
  if (this.item.ghostLoading == true) {
3949
4461
  feature.color = feature._orgColor;
3950
4462
  }
3951
4463
  rego = {
3952
- entityId: bId,
4464
+ entityId: bruceId,
3953
4465
  menuItemId: this.item.id,
3954
4466
  priority: 0,
3955
4467
  visual: feature,
3956
4468
  entityTypeId: this.entityTypeId,
3957
- sourceId: this.sourceId
4469
+ sourceId: this.sourceId,
4470
+ sourceEntityId: osmId,
4471
+ accountId: this.apiGetter.accountId
3958
4472
  };
3959
- this.visualsManager.Add(rego);
3960
- this._loadedCesiumEntities[bId] = rego;
4473
+ this.visualsManager.AddRego({
4474
+ rego: rego
4475
+ });
4476
+ this._loadedCesiumEntities[bruceId] = rego;
3961
4477
  }
3962
4478
  return [2 /*return*/];
3963
4479
  }
@@ -3972,7 +4488,10 @@ var TilesetOsmRenderManager;
3972
4488
  var rego = this._loadedCesiumEntities[key];
3973
4489
  if (rego) {
3974
4490
  if (!this.getIsVisualWithinRange(rego.visual, MAX_RANGE)) {
3975
- this.visualsManager.Remove(rego.entityId, this.item.id);
4491
+ this.visualsManager.RemoveRegos({
4492
+ entityId: rego.entityId,
4493
+ menuItemId: this.item.id
4494
+ });
3976
4495
  this._loadedCesiumEntities[key] = null;
3977
4496
  delete this._loadedCesiumEntities[key];
3978
4497
  this.totalLoaded -= 1;
@@ -4000,9 +4519,10 @@ var TilesetOsmRenderManager;
4000
4519
  var TilesetEntitiesRenderManager;
4001
4520
  (function (TilesetEntitiesRenderManager) {
4002
4521
  var Manager = /** @class */ (function () {
4003
- function Manager(viewer, visualsManager, apiGetter, item) {
4522
+ function Manager(params) {
4004
4523
  this.disposed = false;
4005
4524
  this.cTileset = null;
4525
+ var viewer = params.viewer, visualsManager = params.register, apiGetter = params.apiGetter, item = params.item;
4006
4526
  this.viewer = viewer;
4007
4527
  this.apiGetter = apiGetter;
4008
4528
  this.item = item;
@@ -4082,7 +4602,9 @@ var TilesetEntitiesRenderManager;
4082
4602
  }
4083
4603
  this.cTileset = null;
4084
4604
  }
4085
- this.visualsManager.RemoveByMenuItemId(this.item.id);
4605
+ this.visualsManager.RemoveRegos({
4606
+ menuItemId: this.item.id
4607
+ });
4086
4608
  };
4087
4609
  Manager.prototype.onCTilesetLoad = function () {
4088
4610
  if (this.item.FlyTo) {
@@ -4100,6 +4622,7 @@ var TilesetEntitiesRenderManager;
4100
4622
  }
4101
4623
  };
4102
4624
  Manager.prototype.mapTilesetFeature = function (feature) {
4625
+ var _a, _b, _c;
4103
4626
  var id = feature.getProperty("BruceId");
4104
4627
  if (id) {
4105
4628
  var rego = {
@@ -4107,9 +4630,13 @@ var TilesetEntitiesRenderManager;
4107
4630
  entityTypeId: this.typeId,
4108
4631
  menuItemId: this.item.id,
4109
4632
  priority: 0,
4110
- visual: feature
4633
+ visual: feature,
4634
+ tilesetId: (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetID,
4635
+ accountId: (_c = (_b = this.item.tileset) === null || _b === void 0 ? void 0 : _b.ClientAccountID) !== null && _c !== void 0 ? _c : this.apiGetter.accountId
4111
4636
  };
4112
- this.visualsManager.Add(rego);
4637
+ this.visualsManager.AddRego({
4638
+ rego: rego
4639
+ });
4113
4640
  }
4114
4641
  };
4115
4642
  Manager.prototype.ReRender = function (entityIds) {
@@ -4127,9 +4654,10 @@ var TilesetEntitiesRenderManager;
4127
4654
  var TilesetPointcloudRenderManager;
4128
4655
  (function (TilesetPointcloudRenderManager) {
4129
4656
  var Manager = /** @class */ (function () {
4130
- function Manager(viewer, apiGetter, item) {
4657
+ function Manager(params) {
4131
4658
  this.disposed = false;
4132
4659
  this.cTileset = null;
4660
+ var viewer = params.viewer, apiGetter = params.apiGetter, item = params.item;
4133
4661
  this.viewer = viewer;
4134
4662
  this.apiGetter = apiGetter;
4135
4663
  this.item = item;
@@ -4226,9 +4754,10 @@ var TilesetPointcloudRenderManager;
4226
4754
  var DataSourceStaticKmlManager;
4227
4755
  (function (DataSourceStaticKmlManager) {
4228
4756
  var Manager = /** @class */ (function () {
4229
- function Manager(viewer, apiGetter, item) {
4757
+ function Manager(params) {
4230
4758
  this.disposed = false;
4231
4759
  this.dataSource = null;
4760
+ var viewer = params.viewer, apiGetter = params.apiGetter, item = params.item;
4232
4761
  this.viewer = viewer;
4233
4762
  this.apiGetter = apiGetter;
4234
4763
  this.item = item;
@@ -4285,6 +4814,253 @@ var DataSourceStaticKmlManager;
4285
4814
  DataSourceStaticKmlManager.Manager = Manager;
4286
4815
  })(DataSourceStaticKmlManager || (DataSourceStaticKmlManager = {}));
4287
4816
 
4817
+ function getLegacyTileset(params) {
4818
+ return __awaiter(this, void 0, void 0, function () {
4819
+ var apiGetter, menuItem, tileset, api, legacyTileset, e_1;
4820
+ return __generator(this, function (_a) {
4821
+ switch (_a.label) {
4822
+ case 0:
4823
+ apiGetter = params.apiGetter, menuItem = params.menuItem, tileset = params.tileset;
4824
+ _a.label = 1;
4825
+ case 1:
4826
+ _a.trys.push([1, 3, , 4]);
4827
+ api = apiGetter.getApi(menuItem.tileset.ClientAccountID);
4828
+ return [4 /*yield*/, api.GET("ui.tileset/" + tileset.id)];
4829
+ case 2:
4830
+ legacyTileset = _a.sent();
4831
+ return [2 /*return*/, legacyTileset];
4832
+ case 3:
4833
+ e_1 = _a.sent();
4834
+ console.log(e_1);
4835
+ return [3 /*break*/, 4];
4836
+ case 4: return [2 /*return*/];
4837
+ }
4838
+ });
4839
+ });
4840
+ }
4841
+ function getTileset(params) {
4842
+ return __awaiter(this, void 0, void 0, function () {
4843
+ var apiGetter, menuItem, api, tileset, e_2;
4844
+ return __generator(this, function (_a) {
4845
+ switch (_a.label) {
4846
+ case 0:
4847
+ apiGetter = params.apiGetter, menuItem = params.menuItem;
4848
+ _a.label = 1;
4849
+ case 1:
4850
+ _a.trys.push([1, 3, , 4]);
4851
+ api = apiGetter.getApi(menuItem.tileset.ClientAccountID);
4852
+ return [4 /*yield*/, Tileset.Get({
4853
+ api: api,
4854
+ tilesetId: menuItem.tileset.TilesetID
4855
+ })];
4856
+ case 2:
4857
+ tileset = (_a.sent()).tileset;
4858
+ return [2 /*return*/, tileset];
4859
+ case 3:
4860
+ e_2 = _a.sent();
4861
+ console.error(e_2);
4862
+ return [3 /*break*/, 4];
4863
+ case 4: return [2 /*return*/];
4864
+ }
4865
+ });
4866
+ });
4867
+ }
4868
+ var TilesetArbRenderManager;
4869
+ (function (TilesetArbRenderManager) {
4870
+ var Manager = /** @class */ (function () {
4871
+ function Manager(params) {
4872
+ this.disposed = false;
4873
+ this.cTileset = null;
4874
+ this.styler = null;
4875
+ this.viewer = params.viewer;
4876
+ this.apiGetter = params.apiGetter;
4877
+ this.item = params.item;
4878
+ }
4879
+ Object.defineProperty(Manager.prototype, "Disposed", {
4880
+ get: function () {
4881
+ return this.disposed;
4882
+ },
4883
+ enumerable: false,
4884
+ configurable: true
4885
+ });
4886
+ Object.defineProperty(Manager.prototype, "Tileset", {
4887
+ get: function () {
4888
+ return this.cTileset;
4889
+ },
4890
+ enumerable: false,
4891
+ configurable: true
4892
+ });
4893
+ Manager.prototype.Init = function () {
4894
+ var _a, _b, _c;
4895
+ return __awaiter(this, void 0, void 0, function () {
4896
+ var itemUrl, tileset, legacyTileset, _d;
4897
+ var _this = this;
4898
+ return __generator(this, function (_e) {
4899
+ switch (_e.label) {
4900
+ case 0:
4901
+ itemUrl = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetURL;
4902
+ if (itemUrl && itemUrl.includes("cc3d.api")) {
4903
+ this.item.tileset.ClientAccountID = "cc3d";
4904
+ }
4905
+ else if ((_b = this.item.IonResource) === null || _b === void 0 ? void 0 : _b.AssetID) {
4906
+ this.item.tileset.ClientAccountID = "cc3d";
4907
+ }
4908
+ return [4 /*yield*/, getTileset({
4909
+ apiGetter: this.apiGetter,
4910
+ menuItem: this.item
4911
+ })];
4912
+ case 1:
4913
+ tileset = _e.sent();
4914
+ if (!(tileset === null || tileset === void 0 ? void 0 : tileset.type)) return [3 /*break*/, 2];
4915
+ this.cTileset = TilesetRenderEngine.Render({
4916
+ apiGetter: this.apiGetter,
4917
+ tileset: tileset,
4918
+ viewer: this.viewer,
4919
+ coords: null
4920
+ });
4921
+ return [3 /*break*/, 5];
4922
+ case 2: return [4 /*yield*/, getLegacyTileset({
4923
+ apiGetter: this.apiGetter,
4924
+ menuItem: this.item,
4925
+ tileset: tileset
4926
+ })];
4927
+ case 3:
4928
+ legacyTileset = _e.sent();
4929
+ _d = this;
4930
+ return [4 /*yield*/, TilesetRenderEngine.RenderLegacy({
4931
+ apiGetter: this.apiGetter,
4932
+ tileset: legacyTileset,
4933
+ viewer: this.viewer,
4934
+ ionId: (_c = this.item.IonResource) === null || _c === void 0 ? void 0 : _c.AssetID
4935
+ })];
4936
+ case 4:
4937
+ _d.cTileset = _e.sent();
4938
+ _e.label = 5;
4939
+ case 5:
4940
+ this.cTileset.readyPromise.then(function () {
4941
+ try {
4942
+ if (_this.item.ApplyStyles) {
4943
+ var api = _this.apiGetter.getApi();
4944
+ _this.styler = new TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
4945
+ _this.onCTilesetLoad();
4946
+ }
4947
+ }
4948
+ catch (e) {
4949
+ console.error(e);
4950
+ }
4951
+ });
4952
+ this.cTileset.tileLoad.addEventListener(function (tile) {
4953
+ try {
4954
+ _this.mapCTile(tile);
4955
+ }
4956
+ catch (e) {
4957
+ console.error(e);
4958
+ }
4959
+ });
4960
+ return [2 /*return*/];
4961
+ }
4962
+ });
4963
+ });
4964
+ };
4965
+ Manager.prototype.onCTilesetLoad = function () {
4966
+ if (this.item.FlyTo) {
4967
+ this.viewer.zoomTo(this.cTileset, new HeadingPitchRange(0.0, -0.5, this.cTileset.boundingSphere.radius / 4.0));
4968
+ }
4969
+ };
4970
+ Manager.prototype.Dispose = function () {
4971
+ var _a;
4972
+ if (this.disposed) {
4973
+ return;
4974
+ }
4975
+ this.disposed = true;
4976
+ if (this.cTileset) {
4977
+ var viewer = this.viewer;
4978
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
4979
+ this.cTileset.show = false;
4980
+ this.viewer.scene.primitives.remove(this.cTileset);
4981
+ }
4982
+ this.cTileset = null;
4983
+ }
4984
+ (_a = this.styler) === null || _a === void 0 ? void 0 : _a.Dispose();
4985
+ this.visualsManager.RemoveRegos({
4986
+ menuItemId: this.item.id
4987
+ });
4988
+ };
4989
+ Manager.prototype.ReRender = function (entityIds) {
4990
+ return __awaiter(this, void 0, void 0, function () {
4991
+ var regos;
4992
+ return __generator(this, function (_a) {
4993
+ if (!this.styler) {
4994
+ return [2 /*return*/];
4995
+ }
4996
+ regos = this.visualsManager.GetRegos({
4997
+ menuItemId: this.item.id
4998
+ });
4999
+ if (entityIds != null) {
5000
+ regos = regos.filter(function (r) { return entityIds.indexOf(r.entityId) >= 0; });
5001
+ }
5002
+ this.styler.QueueEntities(regos);
5003
+ return [2 /*return*/];
5004
+ });
5005
+ });
5006
+ };
5007
+ Manager.prototype.mapCTile = function (tile) {
5008
+ var content = tile === null || tile === void 0 ? void 0 : tile.content;
5009
+ if (!content) {
5010
+ return;
5011
+ }
5012
+ for (var i = 0; i < content.featuresLength; i++) {
5013
+ var feature = content.getFeature(i);
5014
+ var rego = this.mapTilesetFeature(feature);
5015
+ if ((rego === null || rego === void 0 ? void 0 : rego.entityId) && this.styler) {
5016
+ this.styler.QueueEntities([rego]);
5017
+ }
5018
+ }
5019
+ };
5020
+ Manager.prototype.mapTilesetFeature = function (feature) {
5021
+ var _a, _b, _c;
5022
+ var rego = {
5023
+ entityId: null,
5024
+ entityTypeId: null,
5025
+ menuItemId: this.item.id,
5026
+ priority: 0,
5027
+ visual: feature,
5028
+ accountId: (_b = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.ClientAccountID) !== null && _b !== void 0 ? _b : this.apiGetter.accountId
5029
+ };
5030
+ var props = feature.getPropertyNames([]);
5031
+ if (props.find(function (x) { return x == "BrucePath"; })) {
5032
+ var path = (_c = feature.getProperty("BrucePath")) === null || _c === void 0 ? void 0 : _c.split("|");
5033
+ if (path === null || path === void 0 ? void 0 : path.length) {
5034
+ rego.entityId = path[path.length - 1];
5035
+ }
5036
+ }
5037
+ if (!rego.entityId) {
5038
+ var ACCEPTABLE_PROPS = [
5039
+ "Building_ID", "BuildingID", "BruceId"
5040
+ ];
5041
+ for (var _i = 0, ACCEPTABLE_PROPS_1 = ACCEPTABLE_PROPS; _i < ACCEPTABLE_PROPS_1.length; _i++) {
5042
+ var acceptableId = ACCEPTABLE_PROPS_1[_i];
5043
+ if (props.indexOf(acceptableId) > -1) {
5044
+ rego.entityId = feature.getProperty(acceptableId);
5045
+ if (rego.entityId) {
5046
+ break;
5047
+ }
5048
+ }
5049
+ }
5050
+ }
5051
+ if (!rego.entityId) {
5052
+ return null;
5053
+ }
5054
+ this.visualsManager.AddRego({
5055
+ rego: rego
5056
+ });
5057
+ return rego;
5058
+ };
5059
+ return Manager;
5060
+ }());
5061
+ TilesetArbRenderManager.Manager = Manager;
5062
+ })(TilesetArbRenderManager || (TilesetArbRenderManager = {}));
5063
+
4288
5064
  /**
4289
5065
  * Utility to keep track of enabled menu items within a Cesium viewer.
4290
5066
  */
@@ -4359,31 +5135,88 @@ var MenuItemManager;
4359
5135
  }
4360
5136
  switch (params.item.Type) {
4361
5137
  case MenuItem.EType.Entities:
4362
- rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
5138
+ rItem.renderManager = new EntitiesRenderManager.Manager({
5139
+ viewer: this.viewer,
5140
+ register: this.visualsRegister,
5141
+ apiGetter: params.apiGetter,
5142
+ monitor: this.sharedMonitor,
5143
+ item: params.item,
5144
+ sharedGetters: this.sharedGetters
5145
+ });
4363
5146
  break;
4364
5147
  case MenuItem.EType.EntitiesLoaded:
4365
- rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
5148
+ rItem.renderManager = new EntitiesLoadedRenderManager.Manager({
5149
+ viewer: this.viewer,
5150
+ register: this.visualsRegister,
5151
+ apiGetter: params.apiGetter,
5152
+ monitor: this.sharedMonitor,
5153
+ item: params.item
5154
+ });
4366
5155
  break;
4367
5156
  case MenuItem.EType.EntitiesIds:
4368
- rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
5157
+ rItem.renderManager = new EntitiesIdsRenderManager.Manager({
5158
+ viewer: this.viewer,
5159
+ register: this.visualsRegister,
5160
+ apiGetter: params.apiGetter,
5161
+ monitor: this.sharedMonitor,
5162
+ item: params.item
5163
+ });
4369
5164
  break;
4370
5165
  case MenuItem.EType.Entity:
4371
- rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
5166
+ rItem.renderManager = new EntityRenderManager.Manager({
5167
+ viewer: this.viewer,
5168
+ register: this.visualsRegister,
5169
+ apiGetter: params.apiGetter,
5170
+ monitor: this.sharedMonitor,
5171
+ item: params.item
5172
+ });
4372
5173
  break;
4373
5174
  case MenuItem.EType.CadTileset:
4374
- rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
5175
+ rItem.renderManager = new TilesetCadRenderManager.Manager({
5176
+ viewer: this.viewer,
5177
+ register: this.visualsRegister,
5178
+ apiGetter: params.apiGetter,
5179
+ item: params.item
5180
+ });
4375
5181
  break;
4376
5182
  case MenuItem.EType.Osm:
4377
- rItem.renderManager = new TilesetOsmRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
5183
+ rItem.renderManager = new TilesetOsmRenderManager.Manager({
5184
+ viewer: this.viewer,
5185
+ register: this.visualsRegister,
5186
+ apiGetter: params.apiGetter,
5187
+ monitor: this.sharedMonitor,
5188
+ item: params.item
5189
+ });
4378
5190
  break;
4379
5191
  case MenuItem.EType.PointCloud:
4380
- rItem.renderManager = new TilesetPointcloudRenderManager.Manager(this.viewer, params.apiGetter, params.item);
5192
+ rItem.renderManager = new TilesetPointcloudRenderManager.Manager({
5193
+ viewer: this.viewer,
5194
+ apiGetter: params.apiGetter,
5195
+ item: params.item
5196
+ });
4381
5197
  break;
4382
5198
  case MenuItem.EType.EntityTileset:
4383
- rItem.renderManager = new TilesetEntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
5199
+ rItem.renderManager = new TilesetEntitiesRenderManager.Manager({
5200
+ viewer: this.viewer,
5201
+ register: this.visualsRegister,
5202
+ apiGetter: params.apiGetter,
5203
+ item: params.item
5204
+ });
4384
5205
  break;
4385
5206
  case MenuItem.EType.Kml:
4386
- rItem.renderManager = new DataSourceStaticKmlManager.Manager(this.viewer, params.apiGetter, params.item);
5207
+ rItem.renderManager = new DataSourceStaticKmlManager.Manager({
5208
+ viewer: this.viewer,
5209
+ apiGetter: params.apiGetter,
5210
+ item: params.item
5211
+ });
5212
+ break;
5213
+ case MenuItem.EType.ArbTileset:
5214
+ rItem.renderManager = new TilesetArbRenderManager.Manager({
5215
+ apiGetter: params.apiGetter,
5216
+ item: params.item,
5217
+ viewer: this.viewer,
5218
+ register: this.visualsRegister
5219
+ });
4387
5220
  break;
4388
5221
  // Any "none" type can be ignored. These are just containers for other items.
4389
5222
  case MenuItem.EType.None:
@@ -4531,11 +5364,11 @@ var MenuItemManager;
4531
5364
  /**
4532
5365
  * Utility to help generate menu items for rendering various data.
4533
5366
  */
4534
- var RenderHelper;
4535
- (function (RenderHelper) {
5367
+ var MenuItemCreator;
5368
+ (function (MenuItemCreator) {
4536
5369
  function RenderEntities(params) {
4537
5370
  return __awaiter(this, void 0, void 0, function () {
4538
- var entityIds, item;
5371
+ var entityIds, item, renderedId;
4539
5372
  return __generator(this, function (_a) {
4540
5373
  switch (_a.label) {
4541
5374
  case 0:
@@ -4563,26 +5396,33 @@ var RenderHelper;
4563
5396
  apiGetter: params.apiGetter,
4564
5397
  item: item
4565
5398
  })];
4566
- case 1: return [2 /*return*/, _a.sent()];
5399
+ case 1:
5400
+ renderedId = _a.sent();
5401
+ return [2 /*return*/, {
5402
+ menuItemIds: [renderedId],
5403
+ menuItems: [item]
5404
+ }];
4567
5405
  }
4568
5406
  });
4569
5407
  });
4570
5408
  }
4571
- RenderHelper.RenderEntities = RenderEntities;
5409
+ MenuItemCreator.RenderEntities = RenderEntities;
4572
5410
  function RenderEntityTypes(params) {
4573
5411
  return __awaiter(this, void 0, void 0, function () {
4574
- var typeIds, renderedItemIds, i, typeId, menuItem, itemId;
5412
+ var typeIds, renderedItemIds, menuItems, i, typeId, menuItem, itemId;
4575
5413
  return __generator(this, function (_a) {
4576
5414
  switch (_a.label) {
4577
5415
  case 0:
4578
5416
  typeIds = params.entityTypeIds;
4579
5417
  renderedItemIds = [];
5418
+ menuItems = [];
4580
5419
  i = 0;
4581
5420
  _a.label = 1;
4582
5421
  case 1:
4583
5422
  if (!(i < typeIds.length)) return [3 /*break*/, 4];
4584
5423
  typeId = typeIds[i];
4585
5424
  menuItem = MenuItem.CreateFromTypeId(typeId, 0);
5425
+ menuItems.push(menuItem);
4586
5426
  return [4 /*yield*/, params.manager.RenderItem({
4587
5427
  apiGetter: params.apiGetter,
4588
5428
  item: menuItem
@@ -4594,15 +5434,18 @@ var RenderHelper;
4594
5434
  case 3:
4595
5435
  i++;
4596
5436
  return [3 /*break*/, 1];
4597
- case 4: return [2 /*return*/, renderedItemIds];
5437
+ case 4: return [2 /*return*/, {
5438
+ menuItemIds: renderedItemIds,
5439
+ menuItems: menuItems
5440
+ }];
4598
5441
  }
4599
5442
  });
4600
5443
  });
4601
5444
  }
4602
- RenderHelper.RenderEntityTypes = RenderEntityTypes;
5445
+ MenuItemCreator.RenderEntityTypes = RenderEntityTypes;
4603
5446
  function RenderEntityFilter(params) {
4604
5447
  return __awaiter(this, void 0, void 0, function () {
4605
- var filter, item;
5448
+ var filter, item, renderedIds;
4606
5449
  return __generator(this, function (_a) {
4607
5450
  switch (_a.label) {
4608
5451
  case 0:
@@ -4634,12 +5477,17 @@ var RenderHelper;
4634
5477
  apiGetter: params.apiGetter,
4635
5478
  item: item
4636
5479
  })];
4637
- case 1: return [2 /*return*/, _a.sent()];
5480
+ case 1:
5481
+ renderedIds = _a.sent();
5482
+ return [2 /*return*/, {
5483
+ menuItemIds: [renderedIds],
5484
+ menuItems: [item]
5485
+ }];
4638
5486
  }
4639
5487
  });
4640
5488
  });
4641
5489
  }
4642
- RenderHelper.RenderEntityFilter = RenderEntityFilter;
5490
+ MenuItemCreator.RenderEntityFilter = RenderEntityFilter;
4643
5491
  function RenderMenuItems(params) {
4644
5492
  return __awaiter(this, void 0, void 0, function () {
4645
5493
  var menuItems, renderedItemIds, i, menuItem, itemId;
@@ -4664,15 +5512,17 @@ var RenderHelper;
4664
5512
  case 3:
4665
5513
  i++;
4666
5514
  return [3 /*break*/, 1];
4667
- case 4: return [2 /*return*/, renderedItemIds];
5515
+ case 4: return [2 /*return*/, {
5516
+ menuItemIds: renderedItemIds
5517
+ }];
4668
5518
  }
4669
5519
  });
4670
5520
  });
4671
5521
  }
4672
- RenderHelper.RenderMenuItems = RenderMenuItems;
5522
+ MenuItemCreator.RenderMenuItems = RenderMenuItems;
4673
5523
  function RenderTileset(params) {
4674
5524
  return __awaiter(this, void 0, void 0, function () {
4675
- var tilesetId, api, tileset, _a, menuItem;
5525
+ var tilesetId, api, tileset, _a, menuItem, renderedIds;
4676
5526
  return __generator(this, function (_b) {
4677
5527
  switch (_b.label) {
4678
5528
  case 0:
@@ -4706,13 +5556,18 @@ var RenderHelper;
4706
5556
  item: menuItem,
4707
5557
  apiGetter: params.apiGetter
4708
5558
  })];
4709
- case 4: return [2 /*return*/, _b.sent()];
5559
+ case 4:
5560
+ renderedIds = _b.sent();
5561
+ return [2 /*return*/, {
5562
+ menuItems: [menuItem],
5563
+ menuItemIds: [renderedIds]
5564
+ }];
4710
5565
  case 5: throw (new Error("Tileset type not supported."));
4711
5566
  }
4712
5567
  });
4713
5568
  });
4714
5569
  }
4715
- RenderHelper.RenderTileset = RenderTileset;
5570
+ MenuItemCreator.RenderTileset = RenderTileset;
4716
5571
  function RenderBookmarkItems(params) {
4717
5572
  return __awaiter(this, void 0, void 0, function () {
4718
5573
  var viewId, bookmarkId, api, view, _a, bookmark, _b, enabledIds, menuItems, version, vSettings, bSettings, vSettings, bSettings, renderedItemIds, traverseItems_1, i;
@@ -4811,13 +5666,16 @@ var RenderHelper;
4811
5666
  case 9:
4812
5667
  i++;
4813
5668
  return [3 /*break*/, 7];
4814
- case 10: return [2 /*return*/, renderedItemIds];
5669
+ case 10: return [2 /*return*/, {
5670
+ menuItemIds: renderedItemIds,
5671
+ menuItems: menuItems
5672
+ }];
4815
5673
  }
4816
5674
  });
4817
5675
  });
4818
5676
  }
4819
- RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
4820
- })(RenderHelper || (RenderHelper = {}));
5677
+ MenuItemCreator.RenderBookmarkItems = RenderBookmarkItems;
5678
+ })(MenuItemCreator || (MenuItemCreator = {}));
4821
5679
 
4822
5680
  var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
4823
5681
  var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
@@ -5192,8 +6050,8 @@ var TileRenderEngine;
5192
6050
  TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
5193
6051
  var Map;
5194
6052
  (function (Map) {
5195
- var V1;
5196
- (function (V1) {
6053
+ var LegacyNavigator;
6054
+ (function (LegacyNavigator) {
5197
6055
  function Render(params) {
5198
6056
  return __awaiter(this, void 0, void 0, function () {
5199
6057
  var enabled, tile, bId, layer, defaultId, provider, provider, min, max, _a, mapboxKey, _b;
@@ -5302,7 +6160,7 @@ var TileRenderEngine;
5302
6160
  });
5303
6161
  });
5304
6162
  }
5305
- V1.Render = Render;
6163
+ LegacyNavigator.Render = Render;
5306
6164
  function RenderView(params) {
5307
6165
  var _a;
5308
6166
  return __awaiter(this, void 0, void 0, function () {
@@ -5432,10 +6290,10 @@ var TileRenderEngine;
5432
6290
  });
5433
6291
  });
5434
6292
  }
5435
- V1.RenderView = RenderView;
5436
- })(V1 = Map.V1 || (Map.V1 = {}));
5437
- var V2;
5438
- (function (V2) {
6293
+ LegacyNavigator.RenderView = RenderView;
6294
+ })(LegacyNavigator = Map.LegacyNavigator || (Map.LegacyNavigator = {}));
6295
+ var Navigator;
6296
+ (function (Navigator) {
5439
6297
  function GetOrCreateLayer(viewer, apiGetter, meta) {
5440
6298
  return __awaiter(this, void 0, void 0, function () {
5441
6299
  var enabled, i, layer, layerMeta, defaultImg, provider, api, tileset, settings, _a, _b, _c, _d, mapboxKey, _e, layer;
@@ -5551,7 +6409,7 @@ var TileRenderEngine;
5551
6409
  });
5552
6410
  });
5553
6411
  }
5554
- V2.GetOrCreateLayer = GetOrCreateLayer;
6412
+ Navigator.GetOrCreateLayer = GetOrCreateLayer;
5555
6413
  function Render(params) {
5556
6414
  return __awaiter(this, void 0, void 0, function () {
5557
6415
  var i, enabled, curEnabled, toDisable, curEnabledArr, _loop_2, i, i, _loop_3, i;
@@ -5615,13 +6473,13 @@ var TileRenderEngine;
5615
6473
  });
5616
6474
  });
5617
6475
  }
5618
- V2.Render = Render;
5619
- })(V2 = Map.V2 || (Map.V2 = {}));
6476
+ Navigator.Render = Render;
6477
+ })(Navigator = Map.Navigator || (Map.Navigator = {}));
5620
6478
  })(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
5621
6479
  var Terrain;
5622
6480
  (function (Terrain) {
5623
- var V1;
5624
- (function (V1) {
6481
+ var LegacyNavigator;
6482
+ (function (LegacyNavigator) {
5625
6483
  function Render(params) {
5626
6484
  var _a;
5627
6485
  var bId = createLegacyTerrId(params.data);
@@ -5647,7 +6505,7 @@ var TileRenderEngine;
5647
6505
  params.viewer.terrainProvider = provider;
5648
6506
  }
5649
6507
  }
5650
- V1.Render = Render;
6508
+ LegacyNavigator.Render = Render;
5651
6509
  function RenderView(params) {
5652
6510
  var _a, _b;
5653
6511
  return __awaiter(this, void 0, void 0, function () {
@@ -5709,10 +6567,10 @@ var TileRenderEngine;
5709
6567
  });
5710
6568
  });
5711
6569
  }
5712
- V1.RenderView = RenderView;
5713
- })(V1 = Terrain.V1 || (Terrain.V1 = {}));
5714
- var V2;
5715
- (function (V2) {
6570
+ LegacyNavigator.RenderView = RenderView;
6571
+ })(LegacyNavigator = Terrain.LegacyNavigator || (Terrain.LegacyNavigator = {}));
6572
+ var Navigator;
6573
+ (function (Navigator) {
5716
6574
  function Render(params) {
5717
6575
  var _a;
5718
6576
  return __awaiter(this, void 0, void 0, function () {
@@ -5775,15 +6633,15 @@ var TileRenderEngine;
5775
6633
  });
5776
6634
  });
5777
6635
  }
5778
- V2.Render = Render;
5779
- })(V2 = Terrain.V2 || (Terrain.V2 = {}));
6636
+ Navigator.Render = Render;
6637
+ })(Navigator = Terrain.Navigator || (Terrain.Navigator = {}));
5780
6638
  })(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
5781
6639
  })(TileRenderEngine || (TileRenderEngine = {}));
5782
6640
 
5783
6641
  // TODO: Move these to the data model.
5784
6642
  var MIN_SHADOW_SIZE = 2048;
5785
6643
  var MAX_SHADOW_SIZE = 32768;
5786
- function renderV1(params, bookmark, view) {
6644
+ function renderLegacyNavigator(params, bookmark, view) {
5787
6645
  var _a, _b;
5788
6646
  return __awaiter(this, void 0, void 0, function () {
5789
6647
  var vSettings, bSettings, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
@@ -5792,7 +6650,7 @@ function renderV1(params, bookmark, view) {
5792
6650
  case 0:
5793
6651
  vSettings = view.Settings;
5794
6652
  bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
5795
- return [4 /*yield*/, TileRenderEngine.Terrain.V1.RenderView({
6653
+ return [4 /*yield*/, TileRenderEngine.Terrain.LegacyNavigator.RenderView({
5796
6654
  apiGetter: params.apiGetter,
5797
6655
  bookmarkId: params.bookmarkId,
5798
6656
  viewer: params.manager.Viewer,
@@ -5800,7 +6658,7 @@ function renderV1(params, bookmark, view) {
5800
6658
  })];
5801
6659
  case 1:
5802
6660
  _c.sent();
5803
- return [4 /*yield*/, TileRenderEngine.Map.V1.RenderView({
6661
+ return [4 /*yield*/, TileRenderEngine.Map.LegacyNavigator.RenderView({
5804
6662
  apiGetter: params.apiGetter,
5805
6663
  bookmarkId: params.bookmarkId,
5806
6664
  viewer: params.manager.Viewer,
@@ -5856,7 +6714,7 @@ function renderV1(params, bookmark, view) {
5856
6714
  }
5857
6715
  }
5858
6716
  if (!params.bookmarkId) return [3 /*break*/, 4];
5859
- return [4 /*yield*/, RenderHelper.RenderBookmarkItems({
6717
+ return [4 /*yield*/, MenuItemCreator.RenderBookmarkItems({
5860
6718
  apiGetter: params.apiGetter,
5861
6719
  manager: params.manager,
5862
6720
  view: view,
@@ -5870,7 +6728,7 @@ function renderV1(params, bookmark, view) {
5870
6728
  });
5871
6729
  });
5872
6730
  }
5873
- function renderV2(params, bookmark, view) {
6731
+ function renderNavigator(params, bookmark, view) {
5874
6732
  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;
5875
6733
  return __awaiter(this, void 0, void 0, function () {
5876
6734
  var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, gOcclusion, hillShades, baseColor, shadows, size, ambientOcclusion, AO, lighting, light, quality, fxaa, dateTime, clock, terrain, selectedIds, i, id, imagery, curEnabled, newItemIds, _i, curEnabled_1, id;
@@ -6041,7 +6899,7 @@ function renderV2(params, bookmark, view) {
6041
6899
  }
6042
6900
  terrain = (_w = bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain) !== null && _w !== void 0 ? _w : (_x = defaults.settings) === null || _x === void 0 ? void 0 : _x.terrain;
6043
6901
  if (!terrain) return [3 /*break*/, 2];
6044
- return [4 /*yield*/, TileRenderEngine.Terrain.V2.Render({
6902
+ return [4 /*yield*/, TileRenderEngine.Terrain.Navigator.Render({
6045
6903
  apiGetter: params.apiGetter,
6046
6904
  tile: terrain,
6047
6905
  viewer: params.manager.Viewer,
@@ -6058,7 +6916,11 @@ function renderV2(params, bookmark, view) {
6058
6916
  params.manager.VisualsRegister.ClearSelected();
6059
6917
  for (i = 0; i < selectedIds.length; i++) {
6060
6918
  id = selectedIds[i];
6061
- params.manager.VisualsRegister.Select(id, false);
6919
+ params.manager.VisualsRegister.SetSelected({
6920
+ selected: true,
6921
+ entityIds: [id],
6922
+ refreshIfSelected: false
6923
+ });
6062
6924
  }
6063
6925
  }
6064
6926
  imagery = (_z = bSettings.imagery) !== null && _z !== void 0 ? _z : (_0 = defaults.settings) === null || _0 === void 0 ? void 0 : _0.imagery;
@@ -6077,7 +6939,7 @@ function renderV2(params, bookmark, view) {
6077
6939
  }
6078
6940
  ];
6079
6941
  }
6080
- return [4 /*yield*/, TileRenderEngine.Map.V2.Render({
6942
+ return [4 /*yield*/, TileRenderEngine.Map.Navigator.Render({
6081
6943
  apiGetter: params.apiGetter,
6082
6944
  tiles: imagery,
6083
6945
  viewer: params.manager.Viewer,
@@ -6101,7 +6963,7 @@ function renderV2(params, bookmark, view) {
6101
6963
  return [3 /*break*/, 4];
6102
6964
  case 7:
6103
6965
  if (!params.bookmarkId) return [3 /*break*/, 9];
6104
- return [4 /*yield*/, RenderHelper.RenderBookmarkItems({
6966
+ return [4 /*yield*/, MenuItemCreator.RenderBookmarkItems({
6105
6967
  apiGetter: params.apiGetter,
6106
6968
  manager: params.manager,
6107
6969
  view: view,
@@ -6162,12 +7024,12 @@ var ViewRenderEngine;
6162
7024
  throw new Error("View and bookmark settings version mismatch.");
6163
7025
  }
6164
7026
  version = view.DataVersion;
6165
- if (!(version === 2)) return [3 /*break*/, 9];
6166
- return [4 /*yield*/, renderV2(params, bookmark, view)];
7027
+ if (!(version == 1)) return [3 /*break*/, 9];
7028
+ return [4 /*yield*/, renderLegacyNavigator(params, bookmark, view)];
6167
7029
  case 8:
6168
7030
  _c.sent();
6169
7031
  return [3 /*break*/, 11];
6170
- case 9: return [4 /*yield*/, renderV1(params, bookmark, view)];
7032
+ case 9: return [4 /*yield*/, renderNavigator(params, bookmark, view)];
6171
7033
  case 10:
6172
7034
  _c.sent();
6173
7035
  _c.label = 11;
@@ -6209,7 +7071,8 @@ var ViewUtils;
6209
7071
  return "flatterrain";
6210
7072
  }
6211
7073
  ViewUtils.GatherLegacyTerrainTile = GatherLegacyTerrainTile;
6212
- function GatherMapTiles(viewer) {
7074
+ function GatherMapTiles(params) {
7075
+ var viewer = params.viewer;
6213
7076
  var imagery = viewer.imageryLayers;
6214
7077
  var tiles = [];
6215
7078
  var _loop_1 = function (i) {
@@ -6233,15 +7096,20 @@ var ViewUtils;
6233
7096
  for (var i = 0; i < imagery.length; i++) {
6234
7097
  _loop_1(i);
6235
7098
  }
6236
- return tiles;
7099
+ return {
7100
+ imagery: tiles
7101
+ };
6237
7102
  }
6238
7103
  ViewUtils.GatherMapTiles = GatherMapTiles;
6239
- function GatherTerrainTile(viewer) {
7104
+ function GatherTerrainTile(params) {
7105
+ var viewer = params.viewer;
6240
7106
  var provider = viewer.terrainProvider;
6241
7107
  if (provider._bMeta) {
6242
7108
  return {
6243
- accountId: provider._bMeta.accountId,
6244
- tilesetId: provider._bMeta.tilesetId,
7109
+ terrain: {
7110
+ accountId: provider._bMeta.accountId,
7111
+ tilesetId: provider._bMeta.tilesetId,
7112
+ }
6245
7113
  };
6246
7114
  }
6247
7115
  return null;
@@ -6249,5 +7117,5 @@ var ViewUtils;
6249
7117
  ViewUtils.GatherTerrainTile = GatherTerrainTile;
6250
7118
  })(ViewUtils || (ViewUtils = {}));
6251
7119
 
6252
- export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, SharedGetters, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils };
7120
+ export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, MenuItemCreator, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, TilesetRenderEngine, SharedGetters, ViewUtils, DrawingUtils, MeasureUtils, EntityUtils };
6253
7121
  //# sourceMappingURL=bruce-cesium.es5.js.map