bruce-cesium 0.6.6 → 0.6.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 (20) hide show
  1. package/dist/bruce-cesium.es5.js +90 -16
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +89 -15
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/rendering/menu-item-manager.js +14 -11
  6. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  7. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js +93 -0
  8. package/dist/lib/rendering/render-managers/data-source/data-source-static-kml-manager.js.map +1 -0
  9. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
  10. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +6 -1
  11. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  12. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +6 -1
  13. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
  14. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +6 -1
  15. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
  16. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +6 -1
  17. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
  18. package/dist/types/rendering/render-managers/data-source/data-source-static-kml-manager.d.ts +16 -0
  19. package/dist/types/rendering/render-managers/render-manager.d.ts +3 -1
  20. package/package.json +3 -3
@@ -1,5 +1,5 @@
1
1
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, TilesetExtMapTiles, ProgramKey, Camera } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Entity, Primitive, Cesium3DTileFeature, Color, Cartesian3, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, HeadingPitchRange, OrthographicFrustum, JulianDate, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, createOsmBuildings, Cesium3DTileStyle } from 'cesium';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, JulianDate, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Matrix4, Cesium3DTileset, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, EllipsoidGeodesic, KmlDataSource, createOsmBuildings, Cesium3DTileStyle } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -3321,7 +3321,12 @@ var TilesetCadRenderManager;
3321
3321
  }
3322
3322
  this.disposed = true;
3323
3323
  if (this.cTileset) {
3324
- this.cTileset.show = false;
3324
+ var viewer = this.viewer;
3325
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
3326
+ this.cTileset.show = false;
3327
+ this.viewer.scene.primitives.remove(this.cTileset);
3328
+ }
3329
+ this.cTileset = null;
3325
3330
  }
3326
3331
  (_a = this.styler) === null || _a === void 0 ? void 0 : _a.Dispose();
3327
3332
  this.visualsManager.RemoveByMenuItemId(this.item.id);
@@ -3403,7 +3408,12 @@ var TilesetOsmRenderManager;
3403
3408
  }
3404
3409
  clearInterval(this.queueCheckInterval);
3405
3410
  if (this.cTileset) {
3406
- this.cTileset.show = false;
3411
+ var viewer = this.viewer;
3412
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
3413
+ this.cTileset.show = false;
3414
+ this.viewer.scene.primitives.remove(this.cTileset);
3415
+ }
3416
+ this.cTileset = null;
3407
3417
  }
3408
3418
  this.visualsManager.RemoveByMenuItemId(this.item.id);
3409
3419
  this.featureQueue = [];
@@ -3715,7 +3725,12 @@ var TilesetEntitiesRenderManager;
3715
3725
  }
3716
3726
  this.disposed = true;
3717
3727
  if (this.cTileset) {
3718
- this.cTileset.show = false;
3728
+ var viewer = this.viewer;
3729
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
3730
+ this.cTileset.show = false;
3731
+ this.viewer.scene.primitives.remove(this.cTileset);
3732
+ }
3733
+ this.cTileset = null;
3719
3734
  }
3720
3735
  this.visualsManager.RemoveByMenuItemId(this.item.id);
3721
3736
  };
@@ -3821,7 +3836,12 @@ var TilesetPointcloudRenderManager;
3821
3836
  }
3822
3837
  this.disposed = true;
3823
3838
  if (this.cTileset) {
3824
- this.cTileset.show = false;
3839
+ var viewer = this.viewer;
3840
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.isDestroyed()) && this.viewer.scene.primitives.contains(this.cTileset)) {
3841
+ this.cTileset.show = false;
3842
+ this.viewer.scene.primitives.remove(this.cTileset);
3843
+ }
3844
+ this.cTileset = null;
3825
3845
  }
3826
3846
  };
3827
3847
  return Manager;
@@ -3829,6 +3849,58 @@ var TilesetPointcloudRenderManager;
3829
3849
  TilesetPointcloudRenderManager.Manager = Manager;
3830
3850
  })(TilesetPointcloudRenderManager || (TilesetPointcloudRenderManager = {}));
3831
3851
 
3852
+ var DataSourceStaticKmlManager;
3853
+ (function (DataSourceStaticKmlManager) {
3854
+ var Manager = /** @class */ (function () {
3855
+ function Manager(viewer, apiGetter, item) {
3856
+ this.disposed = false;
3857
+ this.dataSource = null;
3858
+ this.viewer = viewer;
3859
+ this.apiGetter = apiGetter;
3860
+ this.item = item;
3861
+ }
3862
+ Object.defineProperty(Manager.prototype, "Disposed", {
3863
+ get: function () {
3864
+ return this.disposed;
3865
+ },
3866
+ enumerable: false,
3867
+ configurable: true
3868
+ });
3869
+ Manager.prototype.Init = function () {
3870
+ var _a, _b;
3871
+ return __awaiter(this, void 0, void 0, function () {
3872
+ var fileId, api, fileUrl;
3873
+ return __generator(this, function (_c) {
3874
+ fileId = (_b = (_a = this.item.KML) === null || _a === void 0 ? void 0 : _a.ClientFile) === null || _b === void 0 ? void 0 : _b.ID;
3875
+ if (!fileId) {
3876
+ return [2 /*return*/];
3877
+ }
3878
+ api = this.apiGetter.getApi();
3879
+ fileUrl = ClientFile.GetUrl(api, fileId);
3880
+ this.dataSource = new KmlDataSource();
3881
+ this.dataSource.load(fileUrl);
3882
+ this.viewer.dataSources.add(this.dataSource);
3883
+ return [2 /*return*/];
3884
+ });
3885
+ });
3886
+ };
3887
+ Manager.prototype.Dispose = function () {
3888
+ var _a;
3889
+ if (this.disposed) {
3890
+ return;
3891
+ }
3892
+ this.disposed = true;
3893
+ if (this.dataSource &&
3894
+ !((_a = this.viewer) === null || _a === void 0 ? void 0 : _a.isDestroyed()) &&
3895
+ this.viewer.dataSources.contains(this.dataSource)) {
3896
+ this.viewer.dataSources.remove(this.dataSource);
3897
+ }
3898
+ };
3899
+ return Manager;
3900
+ }());
3901
+ DataSourceStaticKmlManager.Manager = Manager;
3902
+ })(DataSourceStaticKmlManager || (DataSourceStaticKmlManager = {}));
3903
+
3832
3904
  /**
3833
3905
  * Utility to keep track of enabled menu items within a Cesium viewer.
3834
3906
  */
@@ -3878,12 +3950,12 @@ var MenuItemManager;
3878
3950
  * @returns
3879
3951
  */
3880
3952
  Manager.prototype.RenderItem = function (params, recursive) {
3881
- var _a, _b;
3953
+ var _a, _b, _c;
3882
3954
  if (recursive === void 0) { recursive = true; }
3883
3955
  return __awaiter(this, void 0, void 0, function () {
3884
3956
  var rItem, i, childId;
3885
- return __generator(this, function (_c) {
3886
- switch (_c.label) {
3957
+ return __generator(this, function (_d) {
3958
+ switch (_d.label) {
3887
3959
  case 0:
3888
3960
  if (this.viewer.isDestroyed()) {
3889
3961
  return [2 /*return*/, null];
@@ -3927,7 +3999,7 @@ var MenuItemManager;
3927
3999
  rItem.renderManager = new TilesetEntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
3928
4000
  break;
3929
4001
  case MenuItem.EType.Kml:
3930
- // TODO;
4002
+ rItem.renderManager = new DataSourceStaticKmlManager.Manager(this.viewer, params.apiGetter, params.item);
3931
4003
  break;
3932
4004
  // Any "none" type can be ignored. These are just containers for other items.
3933
4005
  case MenuItem.EType.None:
@@ -3935,27 +4007,29 @@ var MenuItemManager;
3935
4007
  default:
3936
4008
  console.error("Menu item type is not implemented.", params.item.Type);
3937
4009
  }
3938
- if (!rItem.renderManager) return [3 /*break*/, 2];
4010
+ if (!(rItem.renderManager && !rItem.renderManager.Disposed)) return [3 /*break*/, 2];
3939
4011
  return [4 /*yield*/, rItem.renderManager.Init()];
3940
4012
  case 1:
3941
- _c.sent();
3942
- _c.label = 2;
4013
+ _d.sent();
4014
+ _d.label = 2;
3943
4015
  case 2:
3944
4016
  if (!(params.item.Children && recursive)) return [3 /*break*/, 6];
3945
4017
  i = 0;
3946
- _c.label = 3;
4018
+ _d.label = 3;
3947
4019
  case 3:
3948
4020
  if (!(i < params.item.Children.length)) return [3 /*break*/, 6];
3949
4021
  return [4 /*yield*/, this.RenderItem(__assign(__assign({}, params), { item: params.item.Children[i] }))];
3950
4022
  case 4:
3951
- childId = _c.sent();
4023
+ childId = _d.sent();
3952
4024
  rItem.childIds.push(childId);
3953
- _c.label = 5;
4025
+ _d.label = 5;
3954
4026
  case 5:
3955
4027
  i++;
3956
4028
  return [3 /*break*/, 3];
3957
4029
  case 6:
3958
- (_b = this.onUpdate) === null || _b === void 0 ? void 0 : _b.Trigger({ isEnabling: true, itemId: rItem.id });
4030
+ if (!rItem.renderManager || !((_b = rItem.renderManager) === null || _b === void 0 ? void 0 : _b.Disposed)) {
4031
+ (_c = this.onUpdate) === null || _c === void 0 ? void 0 : _c.Trigger({ isEnabling: true, itemId: rItem.id });
4032
+ }
3959
4033
  return [2 /*return*/, rItem.id];
3960
4034
  }
3961
4035
  });