bruce-cesium 0.2.6 → 0.2.8

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 +203 -200
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +198 -195
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/rendering/menu-item-manager.js +4 -4
  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 +1 -0
  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 +1 -0
  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 +1 -0
  16. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  17. package/dist/lib/rendering/tile-render-engine.js +3 -4
  18. package/dist/lib/rendering/tile-render-engine.js.map +1 -1
  19. package/dist/lib/utils/view-utils.js +35 -0
  20. package/dist/lib/utils/view-utils.js.map +1 -0
  21. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +2 -3
  22. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +3 -1
  23. package/dist/types/rendering/tile-render-engine.d.ts +2 -1
  24. package/dist/types/utils/view-utils.d.ts +6 -0
  25. package/package.json +2 -2
@@ -1372,7 +1372,7 @@
1372
1372
 
1373
1373
  (function (EntitiesRenderManager) {
1374
1374
  var Manager = /** @class */ (function () {
1375
- function Manager(viewer, visualsManager, apiGetter, item, sharedGetters) {
1375
+ function Manager(viewer, visualsManager, apiGetter, monitor, item, sharedGetters) {
1376
1376
  this.getter = null;
1377
1377
  this.getterSub = null;
1378
1378
  this.disposed = false;
@@ -1383,6 +1383,7 @@
1383
1383
  this.viewMonitorRemoval = null;
1384
1384
  this.viewer = viewer;
1385
1385
  this.sharedGetters = sharedGetters;
1386
+ this.monitor = monitor;
1386
1387
  this.apiGetter = apiGetter;
1387
1388
  this.item = item;
1388
1389
  this.visualsManager = visualsManager;
@@ -1408,14 +1409,15 @@
1408
1409
  api: api,
1409
1410
  attrFilter: (_a = this.item.BruceEntity.Filter) !== null && _a !== void 0 ? _a : {},
1410
1411
  batchSize: 500,
1411
- typeId: this.item.BruceEntity["EntityType.ID"]
1412
+ typeId: this.item.BruceEntity["EntityType.ID"],
1413
+ monitor: this.monitor
1412
1414
  });
1413
1415
  minMax = exports.RenderManager.Utils.GetZoomMinMax(this.item.CameraZoomSettings);
1414
1416
  this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
1415
1417
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1416
1418
  _this.onGetterUpdate(entities);
1417
1419
  });
1418
- this.viewMonitorRemoval = new CesiumViewMonitor(this.viewer).Updated().Subscribe(function () {
1420
+ this.viewMonitorRemoval = this.monitor.Updated().Subscribe(function () {
1419
1421
  _this.entityCheckQueue.Call();
1420
1422
  });
1421
1423
  this.entityCheckQueue = new bruceModels.DelayQueue(function () {
@@ -1585,6 +1587,7 @@
1585
1587
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1586
1588
  _this.onGetterUpdate(entities);
1587
1589
  });
1590
+ this.getter.Start();
1588
1591
  return [2 /*return*/];
1589
1592
  });
1590
1593
  });
@@ -2058,6 +2061,7 @@
2058
2061
  this.getterSub = this.getter.OnUpdate.Subscribe(function (ids) {
2059
2062
  _this.onGetterUpdate(ids);
2060
2063
  });
2064
+ this.getter.Start();
2061
2065
  return [2 /*return*/];
2062
2066
  });
2063
2067
  });
@@ -2155,6 +2159,7 @@
2155
2159
  this.getterSub = this.getter.OnUpdate.Subscribe(function (ids) {
2156
2160
  _this.onGetterUpdate(ids[0]);
2157
2161
  });
2162
+ this.getter.Start();
2158
2163
  return [2 /*return*/];
2159
2164
  });
2160
2165
  });
@@ -2844,15 +2849,14 @@
2844
2849
  }
2845
2850
  (function (SharedGetters) {
2846
2851
  var Cache = /** @class */ (function () {
2847
- function Cache(viewer) {
2852
+ function Cache() {
2848
2853
  this.data = {};
2849
- this.viewer = viewer;
2850
2854
  }
2851
2855
  Cache.prototype.GetOrCreateFilterGetter = function (params) {
2852
2856
  var cacheKey = createFilterGetterCacheKey(params);
2853
2857
  var getter = this.data[cacheKey];
2854
2858
  if (!getter) {
2855
- getter = new bruceModels.EntityFilterGetter.Getter(params.api, new CesiumViewMonitor(this.viewer), params.typeId, params.batchSize, params.attrFilter);
2859
+ getter = new bruceModels.EntityFilterGetter.Getter(params.api, params.monitor, params.typeId, params.batchSize, params.attrFilter);
2856
2860
  this.data[cacheKey] = getter;
2857
2861
  }
2858
2862
  return getter;
@@ -2862,6 +2866,191 @@
2862
2866
  SharedGetters.Cache = Cache;
2863
2867
  })(exports.SharedGetters || (exports.SharedGetters = {}));
2864
2868
 
2869
+ (function (MenuItemManager) {
2870
+ var Manager = /** @class */ (function () {
2871
+ function Manager(viewer, visualsRegister) {
2872
+ this.items = [];
2873
+ this.onUpdate = null;
2874
+ this.viewer = viewer;
2875
+ if (!visualsRegister) {
2876
+ visualsRegister = new exports.VisualsRegister.Register(viewer);
2877
+ }
2878
+ this.visualsRegister = visualsRegister;
2879
+ this.sharedGetters = new exports.SharedGetters.Cache();
2880
+ this.sharedMonitor = new CesiumViewMonitor(this.viewer);
2881
+ }
2882
+ Object.defineProperty(Manager.prototype, "Viewer", {
2883
+ get: function () {
2884
+ return this.viewer;
2885
+ },
2886
+ enumerable: false,
2887
+ configurable: true
2888
+ });
2889
+ Object.defineProperty(Manager.prototype, "VisualsRegister", {
2890
+ get: function () {
2891
+ return this.visualsRegister;
2892
+ },
2893
+ enumerable: false,
2894
+ configurable: true
2895
+ });
2896
+ Object.defineProperty(Manager.prototype, "OnUpdate", {
2897
+ get: function () {
2898
+ if (!this.onUpdate) {
2899
+ this.onUpdate = new bruceModels.BruceEvent();
2900
+ }
2901
+ return this.onUpdate;
2902
+ },
2903
+ enumerable: false,
2904
+ configurable: true
2905
+ });
2906
+ /**
2907
+ * Renders a given menu item and all ids children.
2908
+ * Will return the enabled item id.
2909
+ * @param params
2910
+ * @returns
2911
+ */
2912
+ Manager.prototype.RenderItem = function (params) {
2913
+ var _a, _b;
2914
+ return __awaiter(this, void 0, void 0, function () {
2915
+ var rItem, i, childId;
2916
+ return __generator(this, function (_c) {
2917
+ switch (_c.label) {
2918
+ case 0:
2919
+ if (this.items.find(function (x) { return x.id == params.item.id; })) {
2920
+ return [2 /*return*/, params.item.id];
2921
+ }
2922
+ rItem = {
2923
+ id: (_a = params.item.id) !== null && _a !== void 0 ? _a : bruceModels.ObjectUtils.UId(),
2924
+ childIds: [],
2925
+ item: params.item,
2926
+ renderManager: null,
2927
+ type: params.item.Type
2928
+ };
2929
+ switch (params.item.Type) {
2930
+ case bruceModels.MenuItem.EType.Entities:
2931
+ rItem.renderManager = new exports.EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
2932
+ break;
2933
+ case bruceModels.MenuItem.EType.EntitiesLoaded:
2934
+ rItem.renderManager = new exports.EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
2935
+ break;
2936
+ case bruceModels.MenuItem.EType.EntitiesIds:
2937
+ rItem.renderManager = new exports.EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
2938
+ break;
2939
+ case bruceModels.MenuItem.EType.Entity:
2940
+ rItem.renderManager = new exports.EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
2941
+ break;
2942
+ case bruceModels.MenuItem.EType.CadTileset:
2943
+ rItem.renderManager = new exports.TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2944
+ break;
2945
+ case bruceModels.MenuItem.EType.Osm:
2946
+ // TODO;
2947
+ break;
2948
+ case bruceModels.MenuItem.EType.PointCloud:
2949
+ // TODO;
2950
+ break;
2951
+ case bruceModels.MenuItem.EType.EntityTileset:
2952
+ // TODO;
2953
+ break;
2954
+ case bruceModels.MenuItem.EType.Kml:
2955
+ // TODO;
2956
+ break;
2957
+ // Any "none" type can be ignored. These are just containers for other items.
2958
+ case bruceModels.MenuItem.EType.None:
2959
+ break;
2960
+ default:
2961
+ console.error("Menu item type is not implemented.", params.item.Type);
2962
+ }
2963
+ if (!rItem.renderManager) return [3 /*break*/, 2];
2964
+ return [4 /*yield*/, rItem.renderManager.Init()];
2965
+ case 1:
2966
+ _c.sent();
2967
+ _c.label = 2;
2968
+ case 2:
2969
+ this.items.push(rItem);
2970
+ if (!params.item.Children) return [3 /*break*/, 6];
2971
+ i = 0;
2972
+ _c.label = 3;
2973
+ case 3:
2974
+ if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
2975
+ return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
2976
+ case 4:
2977
+ childId = _c.sent();
2978
+ rItem.childIds.push(childId);
2979
+ _c.label = 5;
2980
+ case 5:
2981
+ i++;
2982
+ return [3 /*break*/, 3];
2983
+ case 6:
2984
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
2985
+ return [2 /*return*/, rItem.id];
2986
+ }
2987
+ });
2988
+ });
2989
+ };
2990
+ /**
2991
+ * Disables a menu item by ids id.
2992
+ * This will disable all children as well.
2993
+ * @param id
2994
+ */
2995
+ Manager.prototype.RemoveItemById = function (id) {
2996
+ var _a, _b;
2997
+ return __awaiter(this, void 0, void 0, function () {
2998
+ var item, _loop_1, this_1, i;
2999
+ return __generator(this, function (_c) {
3000
+ switch (_c.label) {
3001
+ case 0:
3002
+ item = this.items.find(function (x) { return x.id === id; });
3003
+ if (!item) return [3 /*break*/, 5];
3004
+ _loop_1 = function (i) {
3005
+ var child;
3006
+ return __generator(this, function (_a) {
3007
+ switch (_a.label) {
3008
+ case 0:
3009
+ child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
3010
+ if (!child) return [3 /*break*/, 2];
3011
+ return [4 /*yield*/, this_1.RemoveItemById(child.id)];
3012
+ case 1:
3013
+ _a.sent();
3014
+ _a.label = 2;
3015
+ case 2: return [2 /*return*/];
3016
+ }
3017
+ });
3018
+ };
3019
+ this_1 = this;
3020
+ i = 0;
3021
+ _c.label = 1;
3022
+ case 1:
3023
+ if (!(i < item.childIds.length)) return [3 /*break*/, 4];
3024
+ return [5 /*yield**/, _loop_1(i)];
3025
+ case 2:
3026
+ _c.sent();
3027
+ _c.label = 3;
3028
+ case 3:
3029
+ i++;
3030
+ return [3 /*break*/, 1];
3031
+ case 4:
3032
+ try {
3033
+ (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
3034
+ }
3035
+ catch (e) {
3036
+ console.error(e);
3037
+ }
3038
+ this.items = this.items.filter(function (x) { return x.id !== id; });
3039
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
3040
+ _c.label = 5;
3041
+ case 5: return [2 /*return*/];
3042
+ }
3043
+ });
3044
+ });
3045
+ };
3046
+ Manager.prototype.GetEnabledItemIds = function () {
3047
+ return this.items.map(function (x) { return x.id; });
3048
+ };
3049
+ return Manager;
3050
+ }());
3051
+ MenuItemManager.Manager = Manager;
3052
+ })(exports.MenuItemManager || (exports.MenuItemManager = {}));
3053
+
2865
3054
  (function (RenderHelper) {
2866
3055
  function RenderEntities(params, entityIds) {
2867
3056
  return __awaiter(this, void 0, void 0, function () {
@@ -3211,10 +3400,6 @@
3211
3400
  TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
3212
3401
  var Map;
3213
3402
  (function (Map) {
3214
- function MarkProvider(provider, id) {
3215
- provider._bId = id;
3216
- }
3217
- Map.MarkProvider = MarkProvider;
3218
3403
  function Render(params) {
3219
3404
  throw ("Not implemented");
3220
3405
  }
@@ -3384,6 +3569,7 @@
3384
3569
  }
3385
3570
  if (layer) {
3386
3571
  layer._bId = bId;
3572
+ layer._bName = tile.Name;
3387
3573
  if (!params.viewer.imageryLayers.contains(layer)) {
3388
3574
  params.viewer.imageryLayers.add(layer);
3389
3575
  }
@@ -3507,6 +3693,7 @@
3507
3693
  }
3508
3694
  Terrain.Render = Render;
3509
3695
  function RenderLegacy(params) {
3696
+ var _a;
3510
3697
  var bId = createTerrainBId(params.data);
3511
3698
  var curProvider = params.viewer.terrainProvider;
3512
3699
  if (curProvider._bId && curProvider._bId === bId) {
@@ -3541,6 +3728,7 @@
3541
3728
  }
3542
3729
  if (provider) {
3543
3730
  provider._bId = bId;
3731
+ provider._bName = (_a = params.data) === null || _a === void 0 ? void 0 : _a.Name;
3544
3732
  params.viewer.terrainProvider = provider;
3545
3733
  }
3546
3734
  }
@@ -3838,191 +4026,6 @@
3838
4026
  return MeasureAddon;
3839
4027
  }());
3840
4028
 
3841
- (function (MenuItemManager) {
3842
- var Manager = /** @class */ (function () {
3843
- function Manager(viewer, visualsRegister) {
3844
- this.items = [];
3845
- this.onUpdate = null;
3846
- this.viewer = viewer;
3847
- if (!visualsRegister) {
3848
- visualsRegister = new exports.VisualsRegister.Register(viewer);
3849
- }
3850
- this.visualsRegister = visualsRegister;
3851
- this.sharedGetters = new exports.SharedGetters.Cache(this.viewer);
3852
- this.sharedMonitor = new CesiumViewMonitor(this.viewer);
3853
- }
3854
- Object.defineProperty(Manager.prototype, "Viewer", {
3855
- get: function () {
3856
- return this.viewer;
3857
- },
3858
- enumerable: false,
3859
- configurable: true
3860
- });
3861
- Object.defineProperty(Manager.prototype, "VisualsRegister", {
3862
- get: function () {
3863
- return this.visualsRegister;
3864
- },
3865
- enumerable: false,
3866
- configurable: true
3867
- });
3868
- Object.defineProperty(Manager.prototype, "OnUpdate", {
3869
- get: function () {
3870
- if (!this.onUpdate) {
3871
- this.onUpdate = new bruceModels.BruceEvent();
3872
- }
3873
- return this.onUpdate;
3874
- },
3875
- enumerable: false,
3876
- configurable: true
3877
- });
3878
- /**
3879
- * Renders a given menu item and all ids children.
3880
- * Will return the enabled item id.
3881
- * @param params
3882
- * @returns
3883
- */
3884
- Manager.prototype.RenderItem = function (params) {
3885
- var _a, _b;
3886
- return __awaiter(this, void 0, void 0, function () {
3887
- var rItem, i, childId;
3888
- return __generator(this, function (_c) {
3889
- switch (_c.label) {
3890
- case 0:
3891
- if (this.items.find(function (x) { return x.id == params.item.id; })) {
3892
- return [2 /*return*/, params.item.id];
3893
- }
3894
- rItem = {
3895
- id: (_a = params.item.id) !== null && _a !== void 0 ? _a : bruceModels.ObjectUtils.UId(),
3896
- childIds: [],
3897
- item: params.item,
3898
- renderManager: null,
3899
- type: params.item.Type
3900
- };
3901
- switch (params.item.Type) {
3902
- case bruceModels.MenuItem.EType.Entities:
3903
- rItem.renderManager = new exports.EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
3904
- break;
3905
- case bruceModels.MenuItem.EType.EntitiesLoaded:
3906
- rItem.renderManager = new exports.EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3907
- break;
3908
- case bruceModels.MenuItem.EType.EntitiesIds:
3909
- rItem.renderManager = new exports.EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3910
- break;
3911
- case bruceModels.MenuItem.EType.Entity:
3912
- rItem.renderManager = new exports.EntityRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
3913
- break;
3914
- case bruceModels.MenuItem.EType.CadTileset:
3915
- rItem.renderManager = new exports.TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
3916
- break;
3917
- case bruceModels.MenuItem.EType.Osm:
3918
- // TODO;
3919
- break;
3920
- case bruceModels.MenuItem.EType.PointCloud:
3921
- // TODO;
3922
- break;
3923
- case bruceModels.MenuItem.EType.EntityTileset:
3924
- // TODO;
3925
- break;
3926
- case bruceModels.MenuItem.EType.Kml:
3927
- // TODO;
3928
- break;
3929
- // Any "none" type can be ignored. These are just containers for other items.
3930
- case bruceModels.MenuItem.EType.None:
3931
- break;
3932
- default:
3933
- console.error("Menu item type is not implemented.", params.item.Type);
3934
- }
3935
- if (!rItem.renderManager) return [3 /*break*/, 2];
3936
- return [4 /*yield*/, rItem.renderManager.Init()];
3937
- case 1:
3938
- _c.sent();
3939
- _c.label = 2;
3940
- case 2:
3941
- this.items.push(rItem);
3942
- if (!params.item.Children) return [3 /*break*/, 6];
3943
- i = 0;
3944
- _c.label = 3;
3945
- case 3:
3946
- if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
3947
- return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
3948
- case 4:
3949
- childId = _c.sent();
3950
- rItem.childIds.push(childId);
3951
- _c.label = 5;
3952
- case 5:
3953
- i++;
3954
- return [3 /*break*/, 3];
3955
- case 6:
3956
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
3957
- return [2 /*return*/, rItem.id];
3958
- }
3959
- });
3960
- });
3961
- };
3962
- /**
3963
- * Disables a menu item by ids id.
3964
- * This will disable all children as well.
3965
- * @param id
3966
- */
3967
- Manager.prototype.RemoveItemById = function (id) {
3968
- var _a, _b;
3969
- return __awaiter(this, void 0, void 0, function () {
3970
- var item, _loop_1, this_1, i;
3971
- return __generator(this, function (_c) {
3972
- switch (_c.label) {
3973
- case 0:
3974
- item = this.items.find(function (x) { return x.id === id; });
3975
- if (!item) return [3 /*break*/, 5];
3976
- _loop_1 = function (i) {
3977
- var child;
3978
- return __generator(this, function (_a) {
3979
- switch (_a.label) {
3980
- case 0:
3981
- child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
3982
- if (!child) return [3 /*break*/, 2];
3983
- return [4 /*yield*/, this_1.RemoveItemById(child.id)];
3984
- case 1:
3985
- _a.sent();
3986
- _a.label = 2;
3987
- case 2: return [2 /*return*/];
3988
- }
3989
- });
3990
- };
3991
- this_1 = this;
3992
- i = 0;
3993
- _c.label = 1;
3994
- case 1:
3995
- if (!(i < item.childIds.length)) return [3 /*break*/, 4];
3996
- return [5 /*yield**/, _loop_1(i)];
3997
- case 2:
3998
- _c.sent();
3999
- _c.label = 3;
4000
- case 3:
4001
- i++;
4002
- return [3 /*break*/, 1];
4003
- case 4:
4004
- try {
4005
- (_a = item.renderManager) === null || _a === void 0 ? void 0 : _a.Dispose();
4006
- }
4007
- catch (e) {
4008
- console.error(e);
4009
- }
4010
- this.items = this.items.filter(function (x) { return x.id !== id; });
4011
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: false, itemId: item.id });
4012
- _c.label = 5;
4013
- case 5: return [2 /*return*/];
4014
- }
4015
- });
4016
- });
4017
- };
4018
- Manager.prototype.GetEnabledItemIds = function () {
4019
- return this.items.map(function (x) { return x.id; });
4020
- };
4021
- return Manager;
4022
- }());
4023
- MenuItemManager.Manager = Manager;
4024
- })(exports.MenuItemManager || (exports.MenuItemManager = {}));
4025
-
4026
4029
  exports.CesiumViewMonitor = CesiumViewMonitor;
4027
4030
  exports.MeasureAddon = MeasureAddon;
4028
4031