bruce-cesium 1.2.3 → 1.2.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
1
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, EntityRelationType, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, EntityRelation, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, Rectangle, KmlDataSource, CallbackProperty, OrthographicFrustum, JulianDate, EllipsoidGeodesic, EllipsoidTerrainProvider, sampleTerrainMostDetailed, Matrix4, Cesium3DTileset, IonResource, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, PolygonPipeline, ColorMaterialProperty, Matrix3, EasingFunction, GeometryInstance } from 'cesium';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Color, HeightReference, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, KmlDataSource, createOsmBuildings, Cesium3DTileStyle, Rectangle, CallbackProperty, OrthographicFrustum, JulianDate, Matrix4, Cesium3DTileset, IonResource, EllipsoidGeodesic, EllipsoidTerrainProvider, sampleTerrainMostDetailed, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, PolygonPipeline, ColorMaterialProperty, Matrix3, EasingFunction, GeometryInstance } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -1942,19 +1942,42 @@ var EntitiesRenderManager;
1942
1942
  enumerable: false,
1943
1943
  configurable: true
1944
1944
  });
1945
- Manager.prototype.Init = function () {
1946
- var _a;
1945
+ Manager.prototype.Init = function (params) {
1946
+ var _a, _b, _c, _d, _e;
1947
1947
  return __awaiter(this, void 0, void 0, function () {
1948
- var api, minMax;
1948
+ var isTagItem, tagsToRender, shouldRender, api, minMax;
1949
1949
  var _this = this;
1950
- return __generator(this, function (_b) {
1950
+ return __generator(this, function (_f) {
1951
1951
  if (this.disposed) {
1952
1952
  throw (new Error("This item is disposed."));
1953
1953
  }
1954
+ if (params === null || params === void 0 ? void 0 : params.item) {
1955
+ this.item = params.item;
1956
+ }
1957
+ isTagItem = Boolean(this.item.BruceEntity.SelectedExpandLayers);
1958
+ tagsToRender = isTagItem ? this.item.BruceEntity.SelectedExpandLayers : null;
1959
+ if (!tagsToRender) {
1960
+ tagsToRender = [];
1961
+ }
1962
+ shouldRender = !isTagItem || tagsToRender.length > 0;
1963
+ (_a = this.getter) === null || _a === void 0 ? void 0 : _a.ExcludeMenuItem(this.item.id);
1964
+ this.getter = null;
1965
+ (_b = this.getterSub) === null || _b === void 0 ? void 0 : _b.call(this);
1966
+ this.getterSub = null;
1967
+ (_c = this.viewMonitorRemoval) === null || _c === void 0 ? void 0 : _c.call(this);
1968
+ this.viewMonitorRemoval = null;
1969
+ (_d = this.entityCheckQueue) === null || _d === void 0 ? void 0 : _d.Dispose();
1970
+ this.entityCheckQueue = null;
1971
+ this.visualsManager.RemoveRegos({
1972
+ menuItemId: this.item.id
1973
+ });
1974
+ if (!shouldRender) {
1975
+ return [2 /*return*/];
1976
+ }
1954
1977
  api = this.apiGetter.getApi();
1955
1978
  this.getter = this.sharedGetters.GetOrCreateFilterGetter({
1956
1979
  api: api,
1957
- attrFilter: (_a = this.item.BruceEntity.Filter) !== null && _a !== void 0 ? _a : {},
1980
+ attrFilter: (_e = this.item.BruceEntity.Filter) !== null && _e !== void 0 ? _e : {},
1958
1981
  batchSize: 500,
1959
1982
  typeId: this.item.BruceEntity["EntityType.ID"],
1960
1983
  monitor: this.monitor
@@ -1962,9 +1985,22 @@ var EntitiesRenderManager;
1962
1985
  minMax = RenderManager.GetZoomMinMax({
1963
1986
  zoomControl: this.item.CameraZoomSettings
1964
1987
  });
1965
- this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
1988
+ this.getter.IncludeMenuItem(this.item.id, isTagItem ? tagsToRender : [], minMax[0], minMax[1]);
1966
1989
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1967
- _this.onGetterUpdate(entities);
1990
+ if (isTagItem) {
1991
+ _this.onGetterUpdate(entities.filter(function (entity) {
1992
+ var entityTags = entity.Bruce["Layer.ID"];
1993
+ if (!entityTags) {
1994
+ entityTags = [];
1995
+ }
1996
+ return entityTags.some(function (tag) {
1997
+ return tagsToRender.indexOf(tag) !== -1;
1998
+ });
1999
+ }));
2000
+ }
2001
+ else {
2002
+ _this.onGetterUpdate(entities);
2003
+ }
1968
2004
  });
1969
2005
  this.viewMonitorRemoval = this.monitor.Updated().Subscribe(function () {
1970
2006
  _this.entityCheckQueue.Call();
@@ -2087,13 +2123,13 @@ var EntitiesRenderManager;
2087
2123
  }
2088
2124
  };
2089
2125
  Manager.prototype.onGetterUpdate = function (entities) {
2090
- var _a, _b;
2126
+ var _a, _b, _c;
2091
2127
  return __awaiter(this, void 0, void 0, function () {
2092
- var typeId_1, cEntities, i, entity, id, cEntity, visual, e_2;
2093
- return __generator(this, function (_c) {
2094
- switch (_c.label) {
2128
+ var typeId_1, cEntities, i, entity, id, cEntity, visual, tagIds, e_2;
2129
+ return __generator(this, function (_d) {
2130
+ switch (_d.label) {
2095
2131
  case 0:
2096
- _c.trys.push([0, 2, , 3]);
2132
+ _d.trys.push([0, 2, , 3]);
2097
2133
  if (this.disposed || this.viewer.isDestroyed()) {
2098
2134
  return [2 /*return*/];
2099
2135
  }
@@ -2110,7 +2146,7 @@ var EntitiesRenderManager;
2110
2146
  zoomControl: this.item.CameraZoomSettings
2111
2147
  })];
2112
2148
  case 1:
2113
- cEntities = _c.sent();
2149
+ cEntities = _d.sent();
2114
2150
  for (i = 0; i < entities.length; i++) {
2115
2151
  entity = entities[i];
2116
2152
  id = entity.Bruce.ID;
@@ -2122,6 +2158,7 @@ var EntitiesRenderManager;
2122
2158
  menuItemId: this.item.id
2123
2159
  })) === null || _b === void 0 ? void 0 : _b.visual;
2124
2160
  if (!visual || visual != cEntity) {
2161
+ tagIds = (_c = entity.Bruce) === null || _c === void 0 ? void 0 : _c["Layer.ID"];
2125
2162
  this.visualsManager.AddRego({
2126
2163
  rego: {
2127
2164
  entityId: id,
@@ -2129,7 +2166,8 @@ var EntitiesRenderManager;
2129
2166
  visual: cEntity,
2130
2167
  priority: 0,
2131
2168
  entityTypeId: entity.Bruce["EntityType.ID"],
2132
- accountId: this.apiGetter.accountId
2169
+ accountId: this.apiGetter.accountId,
2170
+ tagIds: tagIds ? tagIds : []
2133
2171
  }
2134
2172
  });
2135
2173
  }
@@ -2143,7 +2181,7 @@ var EntitiesRenderManager;
2143
2181
  }
2144
2182
  return [3 /*break*/, 3];
2145
2183
  case 2:
2146
- e_2 = _c.sent();
2184
+ e_2 = _d.sent();
2147
2185
  console.error(e_2);
2148
2186
  return [3 /*break*/, 3];
2149
2187
  case 3: return [2 /*return*/];
@@ -5625,8 +5663,14 @@ var TilesetArbRenderManager;
5625
5663
  this.styler = null;
5626
5664
  this.viewer = params.viewer;
5627
5665
  this.apiGetter = params.apiGetter;
5628
- this.item = params.item;
5629
5666
  this.visualsManager = params.register;
5667
+ // We modify the object due to a lot of backwards compatibility.
5668
+ try {
5669
+ this.item = params.item ? JSON.parse(JSON.stringify(params.item)) : {};
5670
+ }
5671
+ catch (e) {
5672
+ console.error(e);
5673
+ }
5630
5674
  }
5631
5675
  Object.defineProperty(Manager.prototype, "Disposed", {
5632
5676
  get: function () {
@@ -5643,12 +5687,12 @@ var TilesetArbRenderManager;
5643
5687
  configurable: true
5644
5688
  });
5645
5689
  Manager.prototype.Init = function () {
5646
- var _a, _b, _c;
5690
+ var _a, _b, _c, _d;
5647
5691
  return __awaiter(this, void 0, void 0, function () {
5648
- var loadUrlOverride, itemUrl, url, urlParts, tilesetId, accountId, _d, tileset, type, LEGACY_TYPES, legacyTileset, _e, _f;
5692
+ var loadUrlOverride, itemUrl, url, urlParts, tilesetId_1, accountId, tilesetId, _e, tileset, type, _f, LEGACY_TYPES, legacyTileset, _g, _h;
5649
5693
  var _this = this;
5650
- return __generator(this, function (_g) {
5651
- switch (_g.label) {
5694
+ return __generator(this, function (_j) {
5695
+ switch (_j.label) {
5652
5696
  case 0:
5653
5697
  loadUrlOverride = null;
5654
5698
  if (this.item.tileset) {
@@ -5666,19 +5710,27 @@ var TilesetArbRenderManager;
5666
5710
  url = this.item.tileset.TilesetURL;
5667
5711
  urlParts = url.split("/");
5668
5712
  if (urlParts.length > 5) {
5669
- tilesetId = urlParts[urlParts.length - 3];
5713
+ tilesetId_1 = urlParts[urlParts.length - 3];
5670
5714
  accountId = urlParts[urlParts.length - 5].split(".")[0];
5671
- this.item.tileset.TilesetID = tilesetId;
5715
+ this.item.tileset.TilesetID = tilesetId_1;
5672
5716
  this.item.tileset.ClientAccountID = accountId;
5673
5717
  }
5674
5718
  }
5675
5719
  }
5720
+ tilesetId = (_c = this.item.tileset) === null || _c === void 0 ? void 0 : _c.TilesetID;
5721
+ if (!tilesetId) return [3 /*break*/, 2];
5676
5722
  return [4 /*yield*/, getTileset({
5677
5723
  apiGetter: this.apiGetter,
5678
5724
  menuItem: this.item
5679
5725
  })];
5680
5726
  case 1:
5681
- _d = _g.sent(), tileset = _d.tileset, type = _d.type;
5727
+ _f = _j.sent();
5728
+ return [3 /*break*/, 3];
5729
+ case 2:
5730
+ _f = null;
5731
+ _j.label = 3;
5732
+ case 3:
5733
+ _e = _f, tileset = _e.tileset, type = _e.type;
5682
5734
  if (tileset && loadUrlOverride) {
5683
5735
  tileset.loadUrl = loadUrlOverride;
5684
5736
  }
@@ -5687,33 +5739,33 @@ var TilesetArbRenderManager;
5687
5739
  Tileset.EType.LegacyExternal,
5688
5740
  Tileset.EType.LegacyStatic
5689
5741
  ];
5690
- if (!LEGACY_TYPES.includes(type)) return [3 /*break*/, 6];
5691
- if (!tileset) return [3 /*break*/, 3];
5742
+ if (!(!type || LEGACY_TYPES.includes(type))) return [3 /*break*/, 8];
5743
+ if (!tileset) return [3 /*break*/, 5];
5692
5744
  return [4 /*yield*/, getLegacyTileset({
5693
5745
  apiGetter: this.apiGetter,
5694
5746
  menuItem: this.item,
5695
5747
  tileset: tileset
5696
5748
  })];
5697
- case 2:
5698
- _e = _g.sent();
5699
- return [3 /*break*/, 4];
5700
- case 3:
5701
- _e = null;
5702
- _g.label = 4;
5703
5749
  case 4:
5704
- legacyTileset = _e;
5705
- _f = this;
5750
+ _g = _j.sent();
5751
+ return [3 /*break*/, 6];
5752
+ case 5:
5753
+ _g = null;
5754
+ _j.label = 6;
5755
+ case 6:
5756
+ legacyTileset = _g;
5757
+ _h = this;
5706
5758
  return [4 /*yield*/, TilesetRenderEngine.RenderLegacy({
5707
5759
  apiGetter: this.apiGetter,
5708
5760
  tileset: legacyTileset,
5709
5761
  viewer: this.viewer,
5710
- ionId: (_c = this.item.IonResource) === null || _c === void 0 ? void 0 : _c.AssetID,
5762
+ ionId: (_d = this.item.IonResource) === null || _d === void 0 ? void 0 : _d.AssetID,
5711
5763
  loadUrl: loadUrlOverride
5712
5764
  })];
5713
- case 5:
5714
- _f.cTileset = _g.sent();
5715
- return [3 /*break*/, 7];
5716
- case 6:
5765
+ case 7:
5766
+ _h.cTileset = _j.sent();
5767
+ return [3 /*break*/, 9];
5768
+ case 8:
5717
5769
  if (tileset) {
5718
5770
  this.cTileset = TilesetRenderEngine.Render({
5719
5771
  apiGetter: this.apiGetter,
@@ -5722,8 +5774,8 @@ var TilesetArbRenderManager;
5722
5774
  coords: null
5723
5775
  });
5724
5776
  }
5725
- _g.label = 7;
5726
- case 7:
5777
+ _j.label = 9;
5778
+ case 9:
5727
5779
  this.cTileset.readyPromise.then(function () {
5728
5780
  try {
5729
5781
  if (_this.item.ApplyStyles) {
@@ -5750,7 +5802,7 @@ var TilesetArbRenderManager;
5750
5802
  });
5751
5803
  };
5752
5804
  Manager.prototype.onCTilesetLoad = function () {
5753
- {
5805
+ if (this.item.FlyTo) {
5754
5806
  this.viewer.zoomTo(this.cTileset, new HeadingPitchRange(0.0, -0.5, this.cTileset.boundingSphere.radius / 4.0));
5755
5807
  }
5756
5808
  };
@@ -6049,6 +6101,13 @@ var MenuItemManager;
6049
6101
  enumerable: false,
6050
6102
  configurable: true
6051
6103
  });
6104
+ Object.defineProperty(Manager.prototype, "Monitor", {
6105
+ get: function () {
6106
+ return this.sharedMonitor;
6107
+ },
6108
+ enumerable: false,
6109
+ configurable: true
6110
+ });
6052
6111
  /**
6053
6112
  * Renders a given menu item and all its children.
6054
6113
  * Will return the enabled item id.
@@ -6427,10 +6486,7 @@ var MenuItemCreator;
6427
6486
  }
6428
6487
  ],
6429
6488
  id: ObjectUtils.UId(),
6430
- Children: [],
6431
- showAllLayers: true,
6432
- showAllLayersExcludeBelow: false,
6433
- tagIds: []
6489
+ Children: []
6434
6490
  };
6435
6491
  return [4 /*yield*/, params.manager.RenderItem({
6436
6492
  apiGetter: params.apiGetter,