bruce-cesium 0.6.3 → 0.6.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.
Files changed (28) hide show
  1. package/dist/bruce-cesium.es5.js +128 -31
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +127 -30
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/rendering/entity-render-engine.js +3 -0
  6. package/dist/lib/rendering/entity-render-engine.js.map +1 -1
  7. package/dist/lib/rendering/menu-item-manager.js +9 -0
  8. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  9. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +13 -5
  10. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +1 -1
  11. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +9 -3
  12. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +1 -1
  13. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +9 -3
  14. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +1 -1
  15. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +9 -3
  16. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +1 -1
  17. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +15 -5
  18. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +1 -1
  19. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js +8 -3
  20. package/dist/lib/rendering/render-managers/tilesets/tileset-entities-render-manager.js.map +1 -1
  21. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +6 -1
  22. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -1
  23. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js +8 -3
  24. package/dist/lib/rendering/render-managers/tilesets/tileset-pointcloud-render-manager.js.map +1 -1
  25. package/dist/lib/rendering/tileset-render-engine.js +38 -4
  26. package/dist/lib/rendering/tileset-render-engine.js.map +1 -1
  27. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  28. package/package.json +1 -1
@@ -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, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, OrthographicFrustum, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, JulianDate, createOsmBuildings, Cesium3DTileStyle } 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, HeadingPitchRange, OrthographicFrustum, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, Matrix4, Cesium3DTileset, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, JulianDate, createOsmBuildings, Cesium3DTileStyle } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -1056,6 +1056,9 @@ var EntityRenderEngine;
1056
1056
  }
1057
1057
  EntityRenderEngine.Render = Render;
1058
1058
  function Remove(viewer, entity) {
1059
+ if (viewer.isDestroyed()) {
1060
+ return;
1061
+ }
1059
1062
  if (entity._parentEntity) {
1060
1063
  Remove(viewer, entity._parentEntity);
1061
1064
  }
@@ -1735,11 +1738,12 @@ var EntitiesRenderManager;
1735
1738
  Manager.prototype.onGetterUpdate = function (entities) {
1736
1739
  var _a;
1737
1740
  return __awaiter(this, void 0, void 0, function () {
1738
- var cEntities, i, entity, id, cEntity, visual;
1741
+ var cEntities, i, entity, id, cEntity, visual, e_2;
1739
1742
  return __generator(this, function (_b) {
1740
1743
  switch (_b.label) {
1741
1744
  case 0:
1742
- if (this.disposed) {
1745
+ _b.trys.push([0, 2, , 3]);
1746
+ if (this.disposed || this.viewer.isDestroyed()) {
1743
1747
  return [2 /*return*/];
1744
1748
  }
1745
1749
  return [4 /*yield*/, EntityRenderEngine.Render({
@@ -1773,7 +1777,12 @@ var EntitiesRenderManager;
1773
1777
  this.visualsManager.Remove(id, this.item.id);
1774
1778
  }
1775
1779
  }
1776
- return [2 /*return*/];
1780
+ return [3 /*break*/, 3];
1781
+ case 2:
1782
+ e_2 = _b.sent();
1783
+ console.error(e_2);
1784
+ return [3 /*break*/, 3];
1785
+ case 3: return [2 /*return*/];
1777
1786
  }
1778
1787
  });
1779
1788
  });
@@ -1838,11 +1847,12 @@ var EntitiesLoadedRenderManager;
1838
1847
  Manager.prototype.onGetterUpdate = function (entities) {
1839
1848
  var _a;
1840
1849
  return __awaiter(this, void 0, void 0, function () {
1841
- var cEntities, i, entity, id, cEntity, visual;
1850
+ var cEntities, i, entity, id, cEntity, visual, e_1;
1842
1851
  return __generator(this, function (_b) {
1843
1852
  switch (_b.label) {
1844
1853
  case 0:
1845
- if (this.disposed) {
1854
+ _b.trys.push([0, 2, , 3]);
1855
+ if (this.disposed || this.viewer.isDestroyed()) {
1846
1856
  return [2 /*return*/];
1847
1857
  }
1848
1858
  return [4 /*yield*/, EntityRenderEngine.Render({
@@ -1876,7 +1886,12 @@ var EntitiesLoadedRenderManager;
1876
1886
  this.visualsManager.Remove(id, this.item.id);
1877
1887
  }
1878
1888
  }
1879
- return [2 /*return*/];
1889
+ return [3 /*break*/, 3];
1890
+ case 2:
1891
+ e_1 = _b.sent();
1892
+ console.error(e_1);
1893
+ return [3 /*break*/, 3];
1894
+ case 3: return [2 /*return*/];
1880
1895
  }
1881
1896
  });
1882
1897
  });
@@ -2416,16 +2431,19 @@ var EntitiesIdsRenderManager;
2416
2431
  Manager.prototype.onGetterUpdate = function (entityIds) {
2417
2432
  var _a;
2418
2433
  return __awaiter(this, void 0, void 0, function () {
2419
- var api, entities, cEntities, i, entity, id, cEntity, visual;
2434
+ var api, entities, cEntities, i, entity, id, cEntity, visual, e_1;
2420
2435
  return __generator(this, function (_b) {
2421
2436
  switch (_b.label) {
2422
2437
  case 0:
2423
- if (this.disposed) {
2438
+ if (this.disposed || this.viewer.isDestroyed()) {
2424
2439
  return [2 /*return*/];
2425
2440
  }
2441
+ _b.label = 1;
2442
+ case 1:
2443
+ _b.trys.push([1, 4, , 5]);
2426
2444
  api = this.apiGetter.getApi();
2427
2445
  return [4 /*yield*/, Entity$1.GetListByIds(api, entityIds)];
2428
- case 1:
2446
+ case 2:
2429
2447
  entities = _b.sent();
2430
2448
  return [4 /*yield*/, EntityRenderEngine.Render({
2431
2449
  viewer: this.viewer,
@@ -2435,7 +2453,7 @@ var EntitiesIdsRenderManager;
2435
2453
  visualRegister: this.visualsManager,
2436
2454
  zoomControl: this.item.CameraZoomSettings
2437
2455
  })];
2438
- case 2:
2456
+ case 3:
2439
2457
  cEntities = _b.sent();
2440
2458
  for (i = 0; i < entities.length; i++) {
2441
2459
  entity = entities[i];
@@ -2458,7 +2476,12 @@ var EntitiesIdsRenderManager;
2458
2476
  this.visualsManager.Remove(id, this.item.id);
2459
2477
  }
2460
2478
  }
2461
- return [2 /*return*/];
2479
+ return [3 /*break*/, 5];
2480
+ case 4:
2481
+ e_1 = _b.sent();
2482
+ console.error(e_1);
2483
+ return [3 /*break*/, 5];
2484
+ case 5: return [2 /*return*/];
2462
2485
  }
2463
2486
  });
2464
2487
  });
@@ -2520,11 +2543,12 @@ var EntityRenderManager;
2520
2543
  Manager.prototype.onGetterUpdate = function (id) {
2521
2544
  var _a;
2522
2545
  return __awaiter(this, void 0, void 0, function () {
2523
- var api, entity, cEntities, cEntity, visual;
2546
+ var api, entity, cEntities, cEntity, visual, e_1;
2524
2547
  return __generator(this, function (_b) {
2525
2548
  switch (_b.label) {
2526
2549
  case 0:
2527
- if (this.disposed) {
2550
+ _b.trys.push([0, 3, , 4]);
2551
+ if (this.disposed || this.viewer.isDestroyed()) {
2528
2552
  return [2 /*return*/];
2529
2553
  }
2530
2554
  api = this.apiGetter.getApi();
@@ -2557,7 +2581,12 @@ var EntityRenderManager;
2557
2581
  else {
2558
2582
  this.visualsManager.Remove(id, this.item.id);
2559
2583
  }
2560
- return [2 /*return*/];
2584
+ return [3 /*break*/, 4];
2585
+ case 3:
2586
+ e_1 = _b.sent();
2587
+ console.error(e_1);
2588
+ return [3 /*break*/, 4];
2589
+ case 4: return [2 /*return*/];
2561
2590
  }
2562
2591
  });
2563
2592
  });
@@ -2570,6 +2599,24 @@ var EntityRenderManager;
2570
2599
  function colorToCColor$1(color) {
2571
2600
  return new Color(color.red ? color.red / 255 : 0, color.green ? color.green / 255 : 0, color.blue ? color.blue / 255 : 0, color.alpha);
2572
2601
  }
2602
+ /**
2603
+ * Returns if a given tileset is alive and in the scene.
2604
+ * @param viewer
2605
+ * @param cTileset
2606
+ * @returns
2607
+ */
2608
+ function isAlive(viewer, cTileset) {
2609
+ if (viewer.isDestroyed()) {
2610
+ return false;
2611
+ }
2612
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.scene)) {
2613
+ return false;
2614
+ }
2615
+ if (cTileset.isDestroyed()) {
2616
+ return false;
2617
+ }
2618
+ return viewer.scene.primitives.contains(cTileset);
2619
+ }
2573
2620
  var TilesetRenderEngine;
2574
2621
  (function (TilesetRenderEngine) {
2575
2622
  function ApplyPosition(cTileset, tileset, coords) {
@@ -2647,8 +2694,16 @@ var TilesetRenderEngine;
2647
2694
  });
2648
2695
  params.viewer.scene.primitives.add(cTileset_1);
2649
2696
  cTileset_1.readyPromise.then(function () {
2650
- ApplySettings(cTileset_1, params.tileset);
2651
- ApplyPosition(cTileset_1, params.tileset, params.coords);
2697
+ try {
2698
+ if (!isAlive(params.viewer, cTileset_1)) {
2699
+ return;
2700
+ }
2701
+ ApplySettings(cTileset_1, params.tileset);
2702
+ ApplyPosition(cTileset_1, params.tileset, params.coords);
2703
+ }
2704
+ catch (e) {
2705
+ console.error(e);
2706
+ }
2652
2707
  });
2653
2708
  return cTileset_1;
2654
2709
  }
@@ -2665,8 +2720,16 @@ var TilesetRenderEngine;
2665
2720
  });
2666
2721
  params.viewer.scene.primitives.add(cTileset_2);
2667
2722
  cTileset_2.readyPromise.then(function () {
2668
- ApplySettings(cTileset_2, params.tileset);
2669
- ApplyPosition(cTileset_2, params.tileset, null);
2723
+ try {
2724
+ if (!isAlive(params.viewer, cTileset_2)) {
2725
+ return;
2726
+ }
2727
+ ApplySettings(cTileset_2, params.tileset);
2728
+ ApplyPosition(cTileset_2, params.tileset, null);
2729
+ }
2730
+ catch (e) {
2731
+ console.error(e);
2732
+ }
2670
2733
  });
2671
2734
  return cTileset_2;
2672
2735
  }
@@ -3104,14 +3167,24 @@ var TilesetCadRenderManager;
3104
3167
  coords: coords
3105
3168
  });
3106
3169
  cTileset.readyPromise.then(function () {
3107
- if (_this.disposed) {
3108
- return;
3170
+ try {
3171
+ if (_this.disposed || cTileset.isDestroyed()) {
3172
+ return;
3173
+ }
3174
+ _this.onCTilesetLoad();
3175
+ _this.styler = new TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
3176
+ }
3177
+ catch (e) {
3178
+ console.error(e);
3109
3179
  }
3110
- _this.onCTilesetLoad();
3111
- _this.styler = new TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
3112
3180
  });
3113
3181
  cTileset.tileLoad.addEventListener(function (tile) {
3114
- _this.mapCTile(tile);
3182
+ try {
3183
+ _this.mapCTile(tile);
3184
+ }
3185
+ catch (e) {
3186
+ console.error(e);
3187
+ }
3115
3188
  });
3116
3189
  return [2 /*return*/];
3117
3190
  }
@@ -3345,7 +3418,12 @@ var TilesetOsmRenderManager;
3345
3418
  }
3346
3419
  this.viewer.scene.primitives.add(this.cTileset);
3347
3420
  this.cTileset.tileLoad.addEventListener(function (tile) {
3348
- _this.mapCTile(tile);
3421
+ try {
3422
+ _this.mapCTile(tile);
3423
+ }
3424
+ catch (e) {
3425
+ console.error(e);
3426
+ }
3349
3427
  });
3350
3428
  this.queueCheckInterval = setInterval(function () {
3351
3429
  if (_this.featureQueue.length > 0) {
@@ -3604,10 +3682,15 @@ var TilesetEntitiesRenderManager;
3604
3682
  viewer: this.viewer
3605
3683
  });
3606
3684
  cTileset.readyPromise.then(function () {
3607
- if (_this.disposed) {
3608
- return;
3685
+ try {
3686
+ if (_this.disposed || _this.viewer.isDestroyed()) {
3687
+ return;
3688
+ }
3689
+ _this.onCTilesetLoad();
3690
+ }
3691
+ catch (e) {
3692
+ console.error(e);
3609
3693
  }
3610
- _this.onCTilesetLoad();
3611
3694
  });
3612
3695
  cTileset.tileLoad.addEventListener(function (tile) {
3613
3696
  _this.mapCTile(tile);
@@ -3703,10 +3786,15 @@ var TilesetPointcloudRenderManager;
3703
3786
  coords: null
3704
3787
  });
3705
3788
  cTileset.readyPromise.then(function () {
3706
- if (_this.disposed) {
3707
- return;
3789
+ try {
3790
+ if (_this.disposed || _this.viewer.isDestroyed()) {
3791
+ return;
3792
+ }
3793
+ _this.onCTilesetLoad();
3794
+ }
3795
+ catch (e) {
3796
+ console.error(e);
3708
3797
  }
3709
- _this.onCTilesetLoad();
3710
3798
  });
3711
3799
  return [2 /*return*/];
3712
3800
  }
@@ -3788,6 +3876,9 @@ var MenuItemManager;
3788
3876
  return __generator(this, function (_c) {
3789
3877
  switch (_c.label) {
3790
3878
  case 0:
3879
+ if (this.viewer.isDestroyed()) {
3880
+ return [2 /*return*/, null];
3881
+ }
3791
3882
  rItem = this.items.find(function (x) { return x.id == params.item.id; });
3792
3883
  if (!!rItem) return [3 /*break*/, 2];
3793
3884
  rItem = {
@@ -3798,6 +3889,9 @@ var MenuItemManager;
3798
3889
  type: params.item.Type
3799
3890
  };
3800
3891
  this.items.push(rItem);
3892
+ if (!params.item.Type) {
3893
+ params.item.Type = MenuItem.EType.None;
3894
+ }
3801
3895
  switch (params.item.Type) {
3802
3896
  case MenuItem.EType.Entities:
3803
3897
  rItem.renderManager = new EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
@@ -3872,6 +3966,9 @@ var MenuItemManager;
3872
3966
  return __generator(this, function (_c) {
3873
3967
  switch (_c.label) {
3874
3968
  case 0:
3969
+ if (this.viewer.isDestroyed()) {
3970
+ return [2 /*return*/];
3971
+ }
3875
3972
  item = this.items.find(function (x) { return x.id === id; });
3876
3973
  if (!item) return [3 /*break*/, 5];
3877
3974
  if (!recursive) return [3 /*break*/, 4];