bruce-cesium 0.0.3 → 0.0.5

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,5 +1,5 @@
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';
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';
1
+ import { Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
2
+ import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, EntityFilterGetter, BatchedDataGetter, ObjectUtils, Tileset, MenuItem, ProjectView, ProjectViewBookmark } from 'bruce-models';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -757,7 +757,7 @@ var EntityRenderEngine;
757
757
  _a.label = 2;
758
758
  case 2:
759
759
  if (!(polygons.length > 0)) return [3 /*break*/, 4];
760
- pParams = __assign(__assign({}, groupRenderParams), { entities: models });
760
+ pParams = __assign(__assign({}, groupRenderParams), { entities: polygons });
761
761
  return [4 /*yield*/, Polygon.RenderGroup(pParams)];
762
762
  case 3:
763
763
  pEntities = _a.sent();
@@ -774,7 +774,7 @@ var EntityRenderEngine;
774
774
  _a.label = 4;
775
775
  case 4:
776
776
  if (!(polylines.length > 0)) return [3 /*break*/, 6];
777
- pParams = __assign(__assign({}, groupRenderParams), { entities: models });
777
+ pParams = __assign(__assign({}, groupRenderParams), { entities: polylines });
778
778
  return [4 /*yield*/, Polyline.RenderGroup(pParams)];
779
779
  case 5:
780
780
  pEntities = _a.sent();
@@ -791,7 +791,7 @@ var EntityRenderEngine;
791
791
  _a.label = 6;
792
792
  case 6:
793
793
  if (!(points.length > 0)) return [3 /*break*/, 8];
794
- pParams = __assign(__assign({}, groupRenderParams), { entities: models });
794
+ pParams = __assign(__assign({}, groupRenderParams), { entities: points });
795
795
  return [4 /*yield*/, Point.RenderGroup(pParams)];
796
796
  case 7:
797
797
  pEntities = _a.sent();
@@ -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.
@@ -2828,7 +2846,7 @@ var RenderHelper;
2828
2846
  });
2829
2847
  }
2830
2848
  RenderHelper.RenderEntityTypes = RenderEntityTypes;
2831
- function RenderEntityFilter(viewer, api, filter) {
2849
+ function RenderEntityFilter(manager, api, filter) {
2832
2850
  return __awaiter(this, void 0, void 0, function () {
2833
2851
  return __generator(this, function (_a) {
2834
2852
  throw (new Error("Not implemented."));
@@ -2836,14 +2854,47 @@ var RenderHelper;
2836
2854
  });
2837
2855
  }
2838
2856
  RenderHelper.RenderEntityFilter = RenderEntityFilter;
2839
- function RenderBookmark(viewer, api, viewId, bookmarkId) {
2857
+ function RenderBookmarkItems(manager, api, viewId, bookmarkId) {
2858
+ var _a, _b, _c, _d;
2840
2859
  return __awaiter(this, void 0, void 0, function () {
2841
- return __generator(this, function (_a) {
2842
- throw (new Error("Not implemented."));
2860
+ function traverseItems(item) {
2861
+ var _a;
2862
+ if (enabledItemIds.includes(item.id)) {
2863
+ (_a = groupItem.Children) === null || _a === void 0 ? void 0 : _a.push(item);
2864
+ }
2865
+ if (item.Children) {
2866
+ for (var i = 0; i < item.Children.length; i++) {
2867
+ traverseItems(item.Children[i]);
2868
+ }
2869
+ }
2870
+ }
2871
+ var view, bookmark, items, enabledItemIds, groupItem, i;
2872
+ return __generator(this, function (_e) {
2873
+ switch (_e.label) {
2874
+ case 0: return [4 /*yield*/, ProjectView.Get(api, viewId)];
2875
+ case 1:
2876
+ view = _e.sent();
2877
+ return [4 /*yield*/, ProjectViewBookmark.Get(api, viewId, bookmarkId)];
2878
+ case 2:
2879
+ bookmark = _e.sent();
2880
+ items = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.LayersMenu) !== null && _b !== void 0 ? _b : [];
2881
+ enabledItemIds = (_d = (_c = bookmark.Settings) === null || _c === void 0 ? void 0 : _c.selectedItemIds) !== null && _d !== void 0 ? _d : [];
2882
+ groupItem = {
2883
+ Caption: "Rendering Bookmark",
2884
+ Type: MenuItem.EType.None,
2885
+ id: ObjectUtils.UId(),
2886
+ Children: []
2887
+ };
2888
+ for (i = 0; i < items.length; i++) {
2889
+ traverseItems(items[i]);
2890
+ }
2891
+ return [4 /*yield*/, manager.RenderItem(api, groupItem)];
2892
+ case 3: return [2 /*return*/, _e.sent()];
2893
+ }
2843
2894
  });
2844
2895
  });
2845
2896
  }
2846
- RenderHelper.RenderBookmark = RenderBookmark;
2897
+ RenderHelper.RenderBookmarkItems = RenderBookmarkItems;
2847
2898
  function RenderMenuItems(manager, api, menuItems) {
2848
2899
  var _a;
2849
2900
  return __awaiter(this, void 0, void 0, function () {