bruce-cesium 0.0.3 → 0.0.4

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1,4 +1,4 @@
1
- import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Color, HeightReference, Cartesian3, Entity, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
1
+ import { Color, HeightReference, Cartographic, Cartesian3, Entity, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Primitive, Cesium3DTileFeature, Cartesian2, HeadingPitchRange, Math as Math$1, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
2
2
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, EntityFilterGetter, BatchedDataGetter, ObjectUtils, Tileset, MenuItem } from 'bruce-models';
3
3
 
4
4
  var TIME_LAG = 300;
@@ -2612,159 +2612,177 @@ var TilesetCadRenderManager;
2612
2612
  /**
2613
2613
  * Utility to keep track of enabled menu items within a Cesium viewer.
2614
2614
  */
2615
- var MenuItemManager = /** @class */ (function () {
2616
- function MenuItemManager(viewer, visualsRegister) {
2617
- this.items = [];
2618
- this.viewer = viewer;
2619
- if (!visualsRegister) {
2620
- visualsRegister = new VisualsRegister.Register(viewer);
2615
+ var MenuItemManager;
2616
+ (function (MenuItemManager) {
2617
+ var Manager = /** @class */ (function () {
2618
+ function Manager(viewer, visualsRegister) {
2619
+ this.items = [];
2620
+ this.onUpdate = null;
2621
+ this.viewer = viewer;
2622
+ if (!visualsRegister) {
2623
+ visualsRegister = new VisualsRegister.Register(viewer);
2624
+ }
2625
+ this.visualsRegister = visualsRegister;
2621
2626
  }
2622
- this.visualsRegister = visualsRegister;
2623
- }
2624
- Object.defineProperty(MenuItemManager.prototype, "VisualsRegister", {
2625
- get: function () {
2626
- return this.visualsRegister;
2627
- },
2628
- enumerable: false,
2629
- configurable: true
2630
- });
2631
- /**
2632
- * Renders a given menu item and all ids children.
2633
- * Will return the enabled item id.
2634
- * @param api
2635
- * @param item
2636
- * @returns
2637
- */
2638
- MenuItemManager.prototype.RenderItem = function (api, item) {
2639
- var _a;
2640
- return __awaiter(this, void 0, void 0, function () {
2641
- var rItem, i, childId;
2642
- return __generator(this, function (_b) {
2643
- switch (_b.label) {
2644
- case 0:
2645
- rItem = {
2646
- id: (_a = item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
2647
- childIds: [],
2648
- item: item,
2649
- renderManager: null,
2650
- type: item.Type
2651
- };
2652
- switch (item.Type) {
2653
- case MenuItem.EType.Entities:
2654
- rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2655
- break;
2656
- case MenuItem.EType.EntitiesLoaded:
2657
- rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2658
- break;
2659
- case MenuItem.EType.EntitiesIds:
2660
- rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2661
- break;
2662
- case MenuItem.EType.Entity:
2663
- rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2664
- case MenuItem.EType.CadTileset:
2665
- rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2666
- break;
2667
- case MenuItem.EType.Osm:
2668
- // TODO;
2669
- break;
2670
- case MenuItem.EType.PointCloud:
2671
- // TODO;
2672
- break;
2673
- case MenuItem.EType.EntityTileset:
2674
- // TODO;
2675
- break;
2676
- case MenuItem.EType.Kml:
2677
- // TODO;
2678
- break;
2679
- // Any "none" type can be ignored. These are just containers for other items.
2680
- case MenuItem.EType.None:
2681
- case "":
2682
- case null:
2683
- break;
2684
- default:
2685
- throw ("Menu item type is not implemented.");
2686
- }
2687
- if (!rItem.renderManager) return [3 /*break*/, 2];
2688
- return [4 /*yield*/, rItem.renderManager.Init()];
2689
- case 1:
2690
- _b.sent();
2691
- _b.label = 2;
2692
- case 2:
2693
- this.items.push(rItem);
2694
- if (!item.Children) return [3 /*break*/, 6];
2695
- i = 0;
2696
- _b.label = 3;
2697
- case 3:
2698
- if (!(i < item.Children.length)) return [3 /*break*/, 6];
2699
- return [4 /*yield*/, this.RenderItem(api, item.Children[i])];
2700
- case 4:
2701
- childId = _b.sent();
2702
- rItem.childIds.push(childId);
2703
- _b.label = 5;
2704
- case 5:
2705
- i++;
2706
- return [3 /*break*/, 3];
2707
- case 6: return [2 /*return*/, rItem.id];
2708
- }
2709
- });
2627
+ Object.defineProperty(Manager.prototype, "VisualsRegister", {
2628
+ get: function () {
2629
+ return this.visualsRegister;
2630
+ },
2631
+ enumerable: false,
2632
+ configurable: true
2710
2633
  });
2711
- };
2712
- /**
2713
- * Disables a menu item by ids id.
2714
- * This will disable all children as well.
2715
- * @param id
2716
- */
2717
- MenuItemManager.prototype.RemoveItemById = function (id) {
2718
- return __awaiter(this, void 0, void 0, function () {
2719
- var item, _loop_1, this_1, i;
2720
- return __generator(this, function (_a) {
2721
- switch (_a.label) {
2722
- case 0:
2723
- item = this.items.find(function (x) { return x.id === id; });
2724
- if (!item) return [3 /*break*/, 5];
2725
- _loop_1 = function (i) {
2726
- var child;
2727
- return __generator(this, function (_a) {
2728
- switch (_a.label) {
2729
- case 0:
2730
- child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
2731
- if (!child) return [3 /*break*/, 2];
2732
- return [4 /*yield*/, this_1.RemoveItemById(child.id)];
2733
- case 1:
2734
- _a.sent();
2735
- _a.label = 2;
2736
- case 2: return [2 /*return*/];
2737
- }
2738
- });
2739
- };
2740
- this_1 = this;
2741
- i = 0;
2742
- _a.label = 1;
2743
- case 1:
2744
- if (!(i < item.childIds.length)) return [3 /*break*/, 4];
2745
- return [5 /*yield**/, _loop_1(i)];
2746
- case 2:
2747
- _a.sent();
2748
- _a.label = 3;
2749
- case 3:
2750
- i++;
2751
- return [3 /*break*/, 1];
2752
- case 4:
2753
- try {
2754
- item.renderManager.Dispose();
2755
- }
2756
- catch (e) {
2757
- console.error(e);
2758
- }
2759
- this.items = this.items.filter(function (x) { return x.id !== id; });
2760
- _a.label = 5;
2761
- case 5: return [2 /*return*/];
2762
- }
2763
- });
2634
+ Object.defineProperty(Manager.prototype, "OnUpdate", {
2635
+ get: function () {
2636
+ return this.onUpdate;
2637
+ },
2638
+ enumerable: false,
2639
+ configurable: true
2764
2640
  });
2765
- };
2766
- return MenuItemManager;
2767
- }());
2641
+ /**
2642
+ * Renders a given menu item and all ids children.
2643
+ * Will return the enabled item id.
2644
+ * @param api
2645
+ * @param item
2646
+ * @returns
2647
+ */
2648
+ Manager.prototype.RenderItem = function (api, item) {
2649
+ var _a, _b;
2650
+ return __awaiter(this, void 0, void 0, function () {
2651
+ var rItem, i, childId;
2652
+ return __generator(this, function (_c) {
2653
+ switch (_c.label) {
2654
+ case 0:
2655
+ rItem = {
2656
+ id: (_a = item.id) !== null && _a !== void 0 ? _a : ObjectUtils.UId(),
2657
+ childIds: [],
2658
+ item: item,
2659
+ renderManager: null,
2660
+ type: item.Type
2661
+ };
2662
+ switch (item.Type) {
2663
+ case MenuItem.EType.Entities:
2664
+ rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2665
+ break;
2666
+ case MenuItem.EType.EntitiesLoaded:
2667
+ rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2668
+ break;
2669
+ case MenuItem.EType.EntitiesIds:
2670
+ rItem.renderManager = new EntitiesIdsRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2671
+ break;
2672
+ case MenuItem.EType.Entity:
2673
+ rItem.renderManager = new EntityRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2674
+ case MenuItem.EType.CadTileset:
2675
+ rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, api, item);
2676
+ break;
2677
+ case MenuItem.EType.Osm:
2678
+ // TODO;
2679
+ break;
2680
+ case MenuItem.EType.PointCloud:
2681
+ // TODO;
2682
+ break;
2683
+ case MenuItem.EType.EntityTileset:
2684
+ // TODO;
2685
+ break;
2686
+ case MenuItem.EType.Kml:
2687
+ // TODO;
2688
+ break;
2689
+ // Any "none" type can be ignored. These are just containers for other items.
2690
+ case MenuItem.EType.None:
2691
+ case "":
2692
+ case null:
2693
+ break;
2694
+ default:
2695
+ throw ("Menu item type is not implemented.");
2696
+ }
2697
+ (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
2698
+ if (!rItem.renderManager) return [3 /*break*/, 2];
2699
+ return [4 /*yield*/, rItem.renderManager.Init()];
2700
+ case 1:
2701
+ _c.sent();
2702
+ _c.label = 2;
2703
+ case 2:
2704
+ this.items.push(rItem);
2705
+ if (!item.Children) return [3 /*break*/, 6];
2706
+ i = 0;
2707
+ _c.label = 3;
2708
+ case 3:
2709
+ if (!(i < item.Children.length)) return [3 /*break*/, 6];
2710
+ return [4 /*yield*/, this.RenderItem(api, item.Children[i])];
2711
+ case 4:
2712
+ childId = _c.sent();
2713
+ rItem.childIds.push(childId);
2714
+ _c.label = 5;
2715
+ case 5:
2716
+ i++;
2717
+ return [3 /*break*/, 3];
2718
+ case 6: return [2 /*return*/, rItem.id];
2719
+ }
2720
+ });
2721
+ });
2722
+ };
2723
+ /**
2724
+ * Disables a menu item by ids id.
2725
+ * This will disable all children as well.
2726
+ * @param id
2727
+ */
2728
+ Manager.prototype.RemoveItemById = function (id) {
2729
+ var _a;
2730
+ return __awaiter(this, void 0, void 0, function () {
2731
+ var item, _loop_1, this_1, i;
2732
+ return __generator(this, function (_b) {
2733
+ switch (_b.label) {
2734
+ case 0:
2735
+ item = this.items.find(function (x) { return x.id === id; });
2736
+ if (!item) return [3 /*break*/, 5];
2737
+ (_a = this.onUpdate) === null || _a === void 0 ? void 0 : _a.Trigger({ isEnabling: false, itemId: item.id });
2738
+ _loop_1 = function (i) {
2739
+ var child;
2740
+ return __generator(this, function (_a) {
2741
+ switch (_a.label) {
2742
+ case 0:
2743
+ child = this_1.items.find(function (x) { return x.id === item.childIds[i]; });
2744
+ if (!child) return [3 /*break*/, 2];
2745
+ return [4 /*yield*/, this_1.RemoveItemById(child.id)];
2746
+ case 1:
2747
+ _a.sent();
2748
+ _a.label = 2;
2749
+ case 2: return [2 /*return*/];
2750
+ }
2751
+ });
2752
+ };
2753
+ this_1 = this;
2754
+ i = 0;
2755
+ _b.label = 1;
2756
+ case 1:
2757
+ if (!(i < item.childIds.length)) return [3 /*break*/, 4];
2758
+ return [5 /*yield**/, _loop_1(i)];
2759
+ case 2:
2760
+ _b.sent();
2761
+ _b.label = 3;
2762
+ case 3:
2763
+ i++;
2764
+ return [3 /*break*/, 1];
2765
+ case 4:
2766
+ try {
2767
+ item.renderManager.Dispose();
2768
+ }
2769
+ catch (e) {
2770
+ console.error(e);
2771
+ }
2772
+ this.items = this.items.filter(function (x) { return x.id !== id; });
2773
+ _b.label = 5;
2774
+ case 5: return [2 /*return*/];
2775
+ }
2776
+ });
2777
+ });
2778
+ };
2779
+ Manager.prototype.GetEnabledItemIds = function () {
2780
+ return this.items.map(function (x) { return x.id; });
2781
+ };
2782
+ return Manager;
2783
+ }());
2784
+ MenuItemManager.Manager = Manager;
2785
+ })(MenuItemManager || (MenuItemManager = {}));
2768
2786
 
2769
2787
  /**
2770
2788
  * Utility to help generate menu items for rendering various data.