bruce-cesium 0.2.5 → 0.2.7

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 (25) hide show
  1. package/dist/bruce-cesium.es5.js +210 -201
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +205 -196
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/rendering/menu-item-manager.js +7 -5
  6. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  7. package/dist/lib/rendering/render-managers/common/shared-getters.js +2 -4
  8. package/dist/lib/rendering/render-managers/common/shared-getters.js.map +1 -1
  9. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +4 -3
  10. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  11. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +4 -3
  12. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  13. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +5 -4
  14. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  15. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +4 -3
  16. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  17. package/dist/lib/viewer/cesium-view-monitor.js +1 -0
  18. package/dist/lib/viewer/cesium-view-monitor.js.map +1 -1
  19. package/dist/types/rendering/menu-item-manager.d.ts +1 -0
  20. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +2 -3
  21. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +3 -1
  22. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +3 -1
  23. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +3 -1
  24. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +3 -1
  25. package/package.json +2 -2
@@ -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, EntityFilterGetter, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -83,6 +83,7 @@ var CesiumViewMonitor = /** @class */ (function () {
83
83
  this.disposed = false;
84
84
  this.updatedEvent = null;
85
85
  this.viewer = viewer;
86
+ this.tryEmitUpdate();
86
87
  this.checkInterval = setInterval(function () {
87
88
  _this.updateQueue();
88
89
  }, POSITION_CHECK_TIMER);
@@ -1376,7 +1377,7 @@ var EntityRenderEngine;
1376
1377
  var EntitiesRenderManager;
1377
1378
  (function (EntitiesRenderManager) {
1378
1379
  var Manager = /** @class */ (function () {
1379
- function Manager(viewer, visualsManager, apiGetter, item, sharedGetters) {
1380
+ function Manager(viewer, visualsManager, apiGetter, monitor, item, sharedGetters) {
1380
1381
  this.getter = null;
1381
1382
  this.getterSub = null;
1382
1383
  this.disposed = false;
@@ -1387,6 +1388,7 @@ var EntitiesRenderManager;
1387
1388
  this.viewMonitorRemoval = null;
1388
1389
  this.viewer = viewer;
1389
1390
  this.sharedGetters = sharedGetters;
1391
+ this.monitor = monitor;
1390
1392
  this.apiGetter = apiGetter;
1391
1393
  this.item = item;
1392
1394
  this.visualsManager = visualsManager;
@@ -1412,14 +1414,15 @@ var EntitiesRenderManager;
1412
1414
  api: api,
1413
1415
  attrFilter: (_a = this.item.BruceEntity.Filter) !== null && _a !== void 0 ? _a : {},
1414
1416
  batchSize: 500,
1415
- typeId: this.item.BruceEntity["EntityType.ID"]
1417
+ typeId: this.item.BruceEntity["EntityType.ID"],
1418
+ monitor: this.monitor
1416
1419
  });
1417
1420
  minMax = RenderManager.Utils.GetZoomMinMax(this.item.CameraZoomSettings);
1418
1421
  this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
1419
1422
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1420
1423
  _this.onGetterUpdate(entities);
1421
1424
  });
1422
- this.viewMonitorRemoval = new CesiumViewMonitor(this.viewer).Updated().Subscribe(function () {
1425
+ this.viewMonitorRemoval = this.monitor.Updated().Subscribe(function () {
1423
1426
  _this.entityCheckQueue.Call();
1424
1427
  });
1425
1428
  this.entityCheckQueue = new DelayQueue(function () {
@@ -1566,13 +1569,14 @@ var EntitiesRenderManager;
1566
1569
  var EntitiesLoadedRenderManager;
1567
1570
  (function (EntitiesLoadedRenderManager) {
1568
1571
  var Manager = /** @class */ (function () {
1569
- function Manager(viewer, visualsManager, apiGetter, item) {
1572
+ function Manager(viewer, visualsManager, apiGetter, monitor, item) {
1570
1573
  this.getter = null;
1571
1574
  this.getterSub = null;
1572
1575
  this.disposed = false;
1573
1576
  this.renderedEntities = {};
1574
1577
  this.viewer = viewer;
1575
1578
  this.apiGetter = apiGetter;
1579
+ this.monitor = monitor;
1576
1580
  this.item = item;
1577
1581
  this.visualsManager = visualsManager;
1578
1582
  }
@@ -1590,10 +1594,11 @@ var EntitiesLoadedRenderManager;
1590
1594
  if (this.disposed) {
1591
1595
  throw (new Error("This item is disposed."));
1592
1596
  }
1593
- this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.Entities, new CesiumViewMonitor(this.viewer), 500);
1597
+ this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.Entities, this.monitor, 500);
1594
1598
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1595
1599
  _this.onGetterUpdate(entities);
1596
1600
  });
1601
+ this.getter.Start();
1597
1602
  return [2 /*return*/];
1598
1603
  });
1599
1604
  });
@@ -2048,13 +2053,14 @@ var VisualsRegister;
2048
2053
  var EntitiesIdsRenderManager;
2049
2054
  (function (EntitiesIdsRenderManager) {
2050
2055
  var Manager = /** @class */ (function () {
2051
- function Manager(viewer, visualsManager, apiGetter, item) {
2056
+ function Manager(viewer, visualsManager, apiGetter, monitor, item) {
2052
2057
  this.getter = null;
2053
2058
  this.getterSub = null;
2054
2059
  this.disposed = false;
2055
2060
  this.renderedEntities = {};
2056
2061
  this.viewer = viewer;
2057
2062
  this.apiGetter = apiGetter;
2063
+ this.monitor = monitor;
2058
2064
  this.item = item;
2059
2065
  this.visualsManager = visualsManager;
2060
2066
  }
@@ -2072,10 +2078,11 @@ var EntitiesIdsRenderManager;
2072
2078
  if (this.disposed) {
2073
2079
  throw (new Error("This item is disposed."));
2074
2080
  }
2075
- this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.EntityIds, new CesiumViewMonitor(this.viewer), 500);
2081
+ this.getter = new BatchedDataGetter.Getter(this.item.BruceEntity.EntityIds, this.monitor, 500);
2076
2082
  this.getterSub = this.getter.OnUpdate.Subscribe(function (ids) {
2077
2083
  _this.onGetterUpdate(ids);
2078
2084
  });
2085
+ this.getter.Start();
2079
2086
  return [2 /*return*/];
2080
2087
  });
2081
2088
  });
@@ -2149,12 +2156,13 @@ var EntitiesIdsRenderManager;
2149
2156
  var EntityRenderManager;
2150
2157
  (function (EntityRenderManager) {
2151
2158
  var Manager = /** @class */ (function () {
2152
- function Manager(viewer, visualsManager, apiGetter, item) {
2159
+ function Manager(viewer, visualsManager, apiGetter, monitor, item) {
2153
2160
  this.getter = null;
2154
2161
  this.getterSub = null;
2155
2162
  this.disposed = false;
2156
2163
  this.viewer = viewer;
2157
2164
  this.apiGetter = apiGetter;
2165
+ this.monitor = monitor;
2158
2166
  this.item = item;
2159
2167
  this.visualsManager = visualsManager;
2160
2168
  }
@@ -2172,10 +2180,11 @@ var EntityRenderManager;
2172
2180
  if (this.disposed) {
2173
2181
  throw (new Error("This item is disposed."));
2174
2182
  }
2175
- this.getter = new BatchedDataGetter.Getter([this.item.BruceEntity.EntityId], new CesiumViewMonitor(this.viewer), 1);
2183
+ this.getter = new BatchedDataGetter.Getter([this.item.BruceEntity.EntityId], this.monitor, 1);
2176
2184
  this.getterSub = this.getter.OnUpdate.Subscribe(function (ids) {
2177
2185
  _this.onGetterUpdate(ids[0]);
2178
2186
  });
2187
+ this.getter.Start();
2179
2188
  return [2 /*return*/];
2180
2189
  });
2181
2190
  });
@@ -2871,15 +2880,14 @@ function createFilterGetterCacheKey(params) {
2871
2880
  var SharedGetters;
2872
2881
  (function (SharedGetters) {
2873
2882
  var Cache = /** @class */ (function () {
2874
- function Cache(viewer) {
2883
+ function Cache() {
2875
2884
  this.data = {};
2876
- this.viewer = viewer;
2877
2885
  }
2878
2886
  Cache.prototype.GetOrCreateFilterGetter = function (params) {
2879
2887
  var cacheKey = createFilterGetterCacheKey(params);
2880
2888
  var getter = this.data[cacheKey];
2881
2889
  if (!getter) {
2882
- getter = new EntityFilterGetter.Getter(params.api, new CesiumViewMonitor(this.viewer), params.typeId, params.batchSize, params.attrFilter);
2890
+ getter = new EntityFilterGetter.Getter(params.api, params.monitor, params.typeId, params.batchSize, params.attrFilter);
2883
2891
  this.data[cacheKey] = getter;
2884
2892
  }
2885
2893
  return getter;
@@ -2889,194 +2897,6 @@ var SharedGetters;
2889
2897
  SharedGetters.Cache = Cache;
2890
2898
  })(SharedGetters || (SharedGetters = {}));
2891
2899
 
2892
- /**
2893
- * Utility to keep track of enabled menu items within a Cesium viewer.
2894
- */
2895
- var MenuItemManager;
2896
- (function (MenuItemManager) {
2897
- var Manager = /** @class */ (function () {
2898
- function Manager(viewer, visualsRegister) {
2899
- this.items = [];
2900
- this.onUpdate = null;
2901
- this.viewer = viewer;
2902
- if (!visualsRegister) {
2903
- visualsRegister = new VisualsRegister.Register(viewer);
2904
- }
2905
- this.visualsRegister = visualsRegister;
2906
- this.sharedGetters = new SharedGetters.Cache(this.viewer);
2907
- }
2908
- Object.defineProperty(Manager.prototype, "Viewer", {
2909
- get: function () {
2910
- return this.viewer;
2911
- },
2912
- enumerable: false,
2913
- configurable: true
2914
- });
2915
- Object.defineProperty(Manager.prototype, "VisualsRegister", {
2916
- get: function () {
2917
- return this.visualsRegister;
2918
- },
2919
- enumerable: false,
2920
- configurable: true
2921
- });
2922
- Object.defineProperty(Manager.prototype, "OnUpdate", {
2923
- get: function () {
2924
- if (!this.onUpdate) {
2925
- this.onUpdate = new BruceEvent();
2926
- }
2927
- return this.onUpdate;
2928
- },
2929
- enumerable: false,
2930
- configurable: true
2931
- });
2932
- /**
2933
- * Renders a given menu item and all ids children.
2934
- * Will return the enabled item id.
2935
- * @param params
2936
- * @returns
2937
- */
2938
- Manager.prototype.RenderItem = function (params) {
2939
- var _a, _b;
2940
- return __awaiter(this, void 0, void 0, function () {
2941
- var rItem, i, childId;
2942
- return __generator(this, function (_c) {
2943
- switch (_c.label) {
2944
- case 0:
2945
- if (this.items.find(function (x) { return x.id == params.item.id; })) {
2946
- return [2 /*return*/, params.item.id];
2947
- }
2948
- rItem = {
2949
- id: (_a = params.item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
2950
- childIds: [],
2951
- item: params.item,
2952
- renderManager: null,
2953
- type: params.item.Type
2954
- };
2955
- switch (params.item.Type) {
2956
- case MenuItem.EType.Entities:
2957
- rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
2958
- break;
2959
- case MenuItem.EType.EntitiesLoaded:
2960
- rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2961
- break;
2962
- case MenuItem.EType.EntitiesIds:
2963
- rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2964
- break;
2965
- case MenuItem.EType.Entity:
2966
- rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2967
- break;
2968
- case MenuItem.EType.CadTileset:
2969
- rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2970
- break;
2971
- case MenuItem.EType.Osm:
2972
- // TODO;
2973
- break;
2974
- case MenuItem.EType.PointCloud:
2975
- // TODO;
2976
- break;
2977
- case MenuItem.EType.EntityTileset:
2978
- // TODO;
2979
- break;
2980
- case MenuItem.EType.Kml:
2981
- // TODO;
2982
- break;
2983
- // Any "none" type can be ignored. These are just containers for other items.
2984
- case MenuItem.EType.None:
2985
- break;
2986
- default:
2987
- console.error("Menu item type is not implemented.", params.item.Type);
2988
- }
2989
- if (!rItem.renderManager) return [3 /*break*/, 2];
2990
- return [4 /*yield*/, rItem.renderManager.Init()];
2991
- case 1:
2992
- _c.sent();
2993
- _c.label = 2;
2994
- case 2:
2995
- this.items.push(rItem);
2996
- if (!params.item.Children) return [3 /*break*/, 6];
2997
- i = 0;
2998
- _c.label = 3;
2999
- case 3:
3000
- if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
3001
- return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
3002
- case 4:
3003
- childId = _c.sent();
3004
- rItem.childIds.push(childId);
3005
- _c.label = 5;
3006
- case 5:
3007
- i++;
3008
- return [3 /*break*/, 3];
3009
- case 6:
3010
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
3011
- return [2 /*return*/, rItem.id];
3012
- }
3013
- });
3014
- });
3015
- };
3016
- /**
3017
- * Disables a menu item by ids id.
3018
- * This will disable all children as well.
3019
- * @param id
3020
- */
3021
- Manager.prototype.RemoveItemById = function (id) {
3022
- var _a, _b;
3023
- return __awaiter(this, void 0, void 0, function () {
3024
- var item, _loop_1, this_1, i;
3025
- return __generator(this, function (_c) {
3026
- switch (_c.label) {
3027
- case 0:
3028
- item = this.items.find(function (x) { return x.id === id; });
3029
- if (!item) return [3 /*break*/, 5];
3030
- _loop_1 = function (i) {
3031
- var child;
3032
- return __generator(this, function (_a) {
3033
- switch (_a.label) {
3034
- case 0:
3035
- child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
3036
- if (!child) return [3 /*break*/, 2];
3037
- return [4 /*yield*/, this_1.RemoveItemById(child.id)];
3038
- case 1:
3039
- _a.sent();
3040
- _a.label = 2;
3041
- case 2: return [2 /*return*/];
3042
- }
3043
- });
3044
- };
3045
- this_1 = this;
3046
- i = 0;
3047
- _c.label = 1;
3048
- case 1:
3049
- if (!(i < item.childIds.length)) return [3 /*break*/, 4];
3050
- return [5 /*yield**/, _loop_1(i)];
3051
- case 2:
3052
- _c.sent();
3053
- _c.label = 3;
3054
- case 3:
3055
- i++;
3056
- return [3 /*break*/, 1];
3057
- case 4:
3058
- try {
3059
- (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
3060
- }
3061
- catch (e) {
3062
- console.error(e);
3063
- }
3064
- this.items = this.items.filter(function (x) { return x.id !== id; });
3065
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
3066
- _c.label = 5;
3067
- case 5: return [2 /*return*/];
3068
- }
3069
- });
3070
- });
3071
- };
3072
- Manager.prototype.GetEnabledItemIds = function () {
3073
- return this.items.map(function (x) { return x.id; });
3074
- };
3075
- return Manager;
3076
- }());
3077
- MenuItemManager.Manager = Manager;
3078
- })(MenuItemManager || (MenuItemManager = {}));
3079
-
3080
2900
  /**
3081
2901
  * Utility to help generate menu items for rendering various data.
3082
2902
  */
@@ -4059,5 +3879,194 @@ var MeasureAddon = /** @class */ (function () {
4059
3879
  return MeasureAddon;
4060
3880
  }());
4061
3881
 
3882
+ /**
3883
+ * Utility to keep track of enabled menu items within a Cesium viewer.
3884
+ */
3885
+ var MenuItemManager;
3886
+ (function (MenuItemManager$$1) {
3887
+ var Manager = /** @class */ (function () {
3888
+ function Manager(viewer, visualsRegister) {
3889
+ this.items = [];
3890
+ this.onUpdate = null;
3891
+ this.viewer = viewer;
3892
+ if (!visualsRegister) {
3893
+ visualsRegister = new VisualsRegister.Register(viewer);
3894
+ }
3895
+ this.visualsRegister = visualsRegister;
3896
+ this.sharedGetters = new SharedGetters.Cache();
3897
+ this.sharedMonitor = new CesiumViewMonitor(this.viewer);
3898
+ }
3899
+ Object.defineProperty(Manager.prototype, "Viewer", {
3900
+ get: function () {
3901
+ return this.viewer;
3902
+ },
3903
+ enumerable: false,
3904
+ configurable: true
3905
+ });
3906
+ Object.defineProperty(Manager.prototype, "VisualsRegister", {
3907
+ get: function () {
3908
+ return this.visualsRegister;
3909
+ },
3910
+ enumerable: false,
3911
+ configurable: true
3912
+ });
3913
+ Object.defineProperty(Manager.prototype, "OnUpdate", {
3914
+ get: function () {
3915
+ if (!this.onUpdate) {
3916
+ this.onUpdate = new BruceEvent();
3917
+ }
3918
+ return this.onUpdate;
3919
+ },
3920
+ enumerable: false,
3921
+ configurable: true
3922
+ });
3923
+ /**
3924
+ * Renders a given menu item and all ids children.
3925
+ * Will return the enabled item id.
3926
+ * @param params
3927
+ * @returns
3928
+ */
3929
+ Manager.prototype.RenderItem = function (params) {
3930
+ var _a, _b;
3931
+ return __awaiter(this, void 0, void 0, function () {
3932
+ var rItem, i, childId;
3933
+ return __generator(this, function (_c) {
3934
+ switch (_c.label) {
3935
+ case 0:
3936
+ if (this.items.find(function (x) { return x.id == params.item.id; })) {
3937
+ return [2 /*return*/, params.item.id];
3938
+ }
3939
+ rItem = {
3940
+ id: (_a = params.item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
3941
+ childIds: [],
3942
+ item: params.item,
3943
+ renderManager: null,
3944
+ type: params.item.Type
3945
+ };
3946
+ switch (params.item.Type) {
3947
+ case MenuItem.EType.Entities:
3948
+ rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
3949
+ break;
3950
+ case MenuItem.EType.EntitiesLoaded:
3951
+ rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3952
+ break;
3953
+ case MenuItem.EType.EntitiesIds:
3954
+ rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3955
+ break;
3956
+ case MenuItem.EType.Entity:
3957
+ rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3958
+ break;
3959
+ case MenuItem.EType.CadTileset:
3960
+ rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
3961
+ break;
3962
+ case MenuItem.EType.Osm:
3963
+ // TODO;
3964
+ break;
3965
+ case MenuItem.EType.PointCloud:
3966
+ // TODO;
3967
+ break;
3968
+ case MenuItem.EType.EntityTileset:
3969
+ // TODO;
3970
+ break;
3971
+ case MenuItem.EType.Kml:
3972
+ // TODO;
3973
+ break;
3974
+ // Any "none" type can be ignored. These are just containers for other items.
3975
+ case MenuItem.EType.None:
3976
+ break;
3977
+ default:
3978
+ console.error("Menu item type is not implemented.", params.item.Type);
3979
+ }
3980
+ if (!rItem.renderManager) return [3 /*break*/, 2];
3981
+ return [4 /*yield*/, rItem.renderManager.Init()];
3982
+ case 1:
3983
+ _c.sent();
3984
+ _c.label = 2;
3985
+ case 2:
3986
+ this.items.push(rItem);
3987
+ if (!params.item.Children) return [3 /*break*/, 6];
3988
+ i = 0;
3989
+ _c.label = 3;
3990
+ case 3:
3991
+ if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
3992
+ return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
3993
+ case 4:
3994
+ childId = _c.sent();
3995
+ rItem.childIds.push(childId);
3996
+ _c.label = 5;
3997
+ case 5:
3998
+ i++;
3999
+ return [3 /*break*/, 3];
4000
+ case 6:
4001
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
4002
+ return [2 /*return*/, rItem.id];
4003
+ }
4004
+ });
4005
+ });
4006
+ };
4007
+ /**
4008
+ * Disables a menu item by ids id.
4009
+ * This will disable all children as well.
4010
+ * @param id
4011
+ */
4012
+ Manager.prototype.RemoveItemById = function (id) {
4013
+ var _a, _b;
4014
+ return __awaiter(this, void 0, void 0, function () {
4015
+ var item, _loop_1, this_1, i;
4016
+ return __generator(this, function (_c) {
4017
+ switch (_c.label) {
4018
+ case 0:
4019
+ item = this.items.find(function (x) { return x.id === id; });
4020
+ if (!item) return [3 /*break*/, 5];
4021
+ _loop_1 = function (i) {
4022
+ var child;
4023
+ return __generator(this, function (_a) {
4024
+ switch (_a.label) {
4025
+ case 0:
4026
+ child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
4027
+ if (!child) return [3 /*break*/, 2];
4028
+ return [4 /*yield*/, this_1.RemoveItemById(child.id)];
4029
+ case 1:
4030
+ _a.sent();
4031
+ _a.label = 2;
4032
+ case 2: return [2 /*return*/];
4033
+ }
4034
+ });
4035
+ };
4036
+ this_1 = this;
4037
+ i = 0;
4038
+ _c.label = 1;
4039
+ case 1:
4040
+ if (!(i < item.childIds.length)) return [3 /*break*/, 4];
4041
+ return [5 /*yield**/, _loop_1(i)];
4042
+ case 2:
4043
+ _c.sent();
4044
+ _c.label = 3;
4045
+ case 3:
4046
+ i++;
4047
+ return [3 /*break*/, 1];
4048
+ case 4:
4049
+ try {
4050
+ (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
4051
+ }
4052
+ catch (e) {
4053
+ console.error(e);
4054
+ }
4055
+ this.items = this.items.filter(function (x) { return x.id !== id; });
4056
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
4057
+ _c.label = 5;
4058
+ case 5: return [2 /*return*/];
4059
+ }
4060
+ });
4061
+ });
4062
+ };
4063
+ Manager.prototype.GetEnabledItemIds = function () {
4064
+ return this.items.map(function (x) { return x.id; });
4065
+ };
4066
+ return Manager;
4067
+ }());
4068
+ MenuItemManager$$1.Manager = Manager;
4069
+ })(MenuItemManager || (MenuItemManager = {}));
4070
+
4062
4071
  export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon, SharedGetters };
4063
4072
  //# sourceMappingURL=bruce-cesium.es5.js.map