bruce-cesium 0.2.2 → 0.2.3

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 { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, EntityFilterGetter, BatchedDataGetter, ObjectUtils, Tileset, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, HeadingPitchRange, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
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, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, Cartesian3, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, 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;
@@ -117,6 +117,7 @@ var CesiumViewMonitor = /** @class */ (function () {
117
117
  clearInterval(this.checkInterval);
118
118
  };
119
119
  CesiumViewMonitor.prototype.tryDoUpdate = function () {
120
+ var _a;
120
121
  var viewRect = null;
121
122
  var center = null;
122
123
  var camera = this.viewer.camera;
@@ -177,6 +178,7 @@ var CesiumViewMonitor = /** @class */ (function () {
177
178
  viewRect.west = Math.min(viewRect.west, centerLong - (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
178
179
  viewRect.south = Math.min(viewRect.south, centerLat - (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
179
180
  viewRect.north = Math.max(viewRect.north, centerLat + (MINIMUM_VIEW_AREA_SIZE_DEGREES / 2));
181
+ viewRect.alt = (_a = this.viewer.scene.camera.positionCartographic) === null || _a === void 0 ? void 0 : _a.height;
180
182
  }
181
183
  if (center && viewRect) {
182
184
  if ((!this.target || (this.target && !arePosEqual(this.target, center))) ||
@@ -552,6 +554,25 @@ var RenderManager;
552
554
  return null;
553
555
  }
554
556
  Utils.GetZoomControlFromDistance = GetZoomControlFromDistance;
557
+ function GetZoomMinMax(zoomControl) {
558
+ var min = 0;
559
+ var max = 100;
560
+ for (var i = 0; i < zoomControl.length; i++) {
561
+ var zoomItem = zoomControl[i];
562
+ if (zoomItem.MinZoom != null) {
563
+ if (zoomItem.MinZoom < min) {
564
+ min = zoomItem.MinZoom;
565
+ }
566
+ }
567
+ if (zoomItem.MaxZoom != null) {
568
+ if (zoomItem.MaxZoom > max) {
569
+ max = zoomItem.MaxZoom;
570
+ }
571
+ }
572
+ }
573
+ return [min, max];
574
+ }
575
+ Utils.GetZoomMinMax = GetZoomMinMax;
555
576
  })(Utils = RenderManager.Utils || (RenderManager.Utils = {}));
556
577
  })(RenderManager || (RenderManager = {}));
557
578
 
@@ -1355,7 +1376,7 @@ var EntityRenderEngine;
1355
1376
  var EntitiesRenderManager;
1356
1377
  (function (EntitiesRenderManager) {
1357
1378
  var Manager = /** @class */ (function () {
1358
- function Manager(viewer, visualsManager, apiGetter, item) {
1379
+ function Manager(viewer, visualsManager, apiGetter, item, sharedGetters) {
1359
1380
  this.getter = null;
1360
1381
  this.getterSub = null;
1361
1382
  this.disposed = false;
@@ -1365,6 +1386,7 @@ var EntitiesRenderManager;
1365
1386
  this.isRunningCheck = false;
1366
1387
  this.viewMonitorRemoval = null;
1367
1388
  this.viewer = viewer;
1389
+ this.sharedGetters = sharedGetters;
1368
1390
  this.apiGetter = apiGetter;
1369
1391
  this.item = item;
1370
1392
  this.visualsManager = visualsManager;
@@ -1378,15 +1400,21 @@ var EntitiesRenderManager;
1378
1400
  });
1379
1401
  Manager.prototype.Init = function () {
1380
1402
  return __awaiter(this, void 0, void 0, function () {
1381
- var api;
1403
+ var api, minMax;
1382
1404
  var _this = this;
1383
1405
  return __generator(this, function (_a) {
1384
1406
  if (this.disposed) {
1385
1407
  throw (new Error("This item is disposed."));
1386
1408
  }
1387
1409
  api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
1388
- this.getter = new EntityFilterGetter.Getter(api, new CesiumViewMonitor(this.viewer), this.item.BruceEntity["EntityType.ID"], 500, {});
1389
- this.getter.IncludeMenuItem(this.item.id, [], 0, 100000);
1410
+ this.getter = this.sharedGetters.GetOrCreateFilterGetter({
1411
+ api: api,
1412
+ attrFilter: {},
1413
+ batchSize: 500,
1414
+ typeId: this.item.BruceEntity["EntityType.ID"]
1415
+ });
1416
+ minMax = RenderManager.Utils.GetZoomMinMax(this.item.CameraZoomSettings);
1417
+ this.getter.IncludeMenuItem(this.item.id, [], minMax[0], minMax[1]);
1390
1418
  this.getterSub = this.getter.OnUpdate.Subscribe(function (entities) {
1391
1419
  _this.onGetterUpdate(entities);
1392
1420
  });
@@ -1407,6 +1435,9 @@ var EntitiesRenderManager;
1407
1435
  }
1408
1436
  (_a = this.getterSub) === null || _a === void 0 ? void 0 : _a.call(this);
1409
1437
  this.getterSub = null;
1438
+ if (this.getter) {
1439
+ this.getter.ExcludeMenuItem(this.item.id);
1440
+ }
1410
1441
  this.disposed = true;
1411
1442
  this.visualsManager.RemoveByMenuItemId(this.item.id);
1412
1443
  (_b = this.entityCheckRemoval) === null || _b === void 0 ? void 0 : _b.call(this);
@@ -2828,6 +2859,35 @@ var TilesetCadRenderManager;
2828
2859
  TilesetCadRenderManager.Manager = Manager;
2829
2860
  })(TilesetCadRenderManager || (TilesetCadRenderManager = {}));
2830
2861
 
2862
+ function createFilterGetterCacheKey(params) {
2863
+ var cacheKey = "";
2864
+ cacheKey += params.api.GetBaseUrl();
2865
+ cacheKey += params.typeId;
2866
+ cacheKey += params.batchSize;
2867
+ cacheKey += JSON.stringify(params.attrFilter);
2868
+ return cacheKey;
2869
+ }
2870
+ var SharedGetters;
2871
+ (function (SharedGetters) {
2872
+ var Cache = /** @class */ (function () {
2873
+ function Cache(viewer) {
2874
+ this.data = {};
2875
+ this.viewer = viewer;
2876
+ }
2877
+ Cache.prototype.GetOrCreateFilterGetter = function (params) {
2878
+ var cacheKey = createFilterGetterCacheKey(params);
2879
+ var getter = this.data[cacheKey];
2880
+ if (!getter) {
2881
+ getter = new EntityFilterGetter.Getter(params.api, new CesiumViewMonitor(this.viewer), params.typeId, params.batchSize, params.attrFilter);
2882
+ this.data[cacheKey] = getter;
2883
+ }
2884
+ return getter;
2885
+ };
2886
+ return Cache;
2887
+ }());
2888
+ SharedGetters.Cache = Cache;
2889
+ })(SharedGetters || (SharedGetters = {}));
2890
+
2831
2891
  /**
2832
2892
  * Utility to keep track of enabled menu items within a Cesium viewer.
2833
2893
  */
@@ -2842,6 +2902,7 @@ var MenuItemManager;
2842
2902
  visualsRegister = new VisualsRegister.Register(viewer);
2843
2903
  }
2844
2904
  this.visualsRegister = visualsRegister;
2905
+ this.sharedGetters = new SharedGetters.Cache(this.viewer);
2845
2906
  }
2846
2907
  Object.defineProperty(Manager.prototype, "Viewer", {
2847
2908
  get: function () {
@@ -2892,7 +2953,7 @@ var MenuItemManager;
2892
2953
  };
2893
2954
  switch (params.item.Type) {
2894
2955
  case MenuItem.EType.Entities:
2895
- rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2956
+ rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item, this.sharedGetters);
2896
2957
  break;
2897
2958
  case MenuItem.EType.EntitiesLoaded:
2898
2959
  rItem.renderManager = new EntitiesLoadedRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
@@ -3087,8 +3148,38 @@ var RenderHelper;
3087
3148
  RenderHelper.RenderEntityTypes = RenderEntityTypes;
3088
3149
  function RenderEntityFilter(params, filter) {
3089
3150
  return __awaiter(this, void 0, void 0, function () {
3151
+ var item;
3090
3152
  return __generator(this, function (_a) {
3091
- throw (new Error("Not implemented."));
3153
+ switch (_a.label) {
3154
+ case 0:
3155
+ item = {
3156
+ BruceEntity: {
3157
+ "EntityType.ID": filter.entityTypeId
3158
+ },
3159
+ Type: MenuItem.EType.Entities,
3160
+ Caption: "Rendering Filtered Entities",
3161
+ CameraZoomSettings: [
3162
+ {
3163
+ DisplayType: ZoomControl.EDisplayType.Model3D,
3164
+ LODCategoryID: "glb",
3165
+ LODLevel: 0,
3166
+ MaxZoom: 100000,
3167
+ MinZoom: 0,
3168
+ StyleID: 0 // 0 = Attempt to get entity type's default.
3169
+ }
3170
+ ],
3171
+ id: ObjectUtils.UId(),
3172
+ Children: [],
3173
+ showAllLayers: true,
3174
+ showAllLayersExcludeBelow: false,
3175
+ tagIds: []
3176
+ };
3177
+ return [4 /*yield*/, params.manager.RenderItem({
3178
+ apiGetter: params.apiGetter,
3179
+ item: item
3180
+ })];
3181
+ case 1: return [2 /*return*/, _a.sent()];
3182
+ }
3092
3183
  });
3093
3184
  });
3094
3185
  }
@@ -3961,5 +4052,5 @@ var MeasureAddon = /** @class */ (function () {
3961
4052
  return MeasureAddon;
3962
4053
  }());
3963
4054
 
3964
- export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon };
4055
+ export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine, MeasureAddon, SharedGetters };
3965
4056
  //# sourceMappingURL=bruce-cesium.es5.js.map