bruce-cesium 0.6.2 → 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 +140 -34
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +139 -33
  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 +19 -6
  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 +12 -4
  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 +10 -2
  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
@@ -1053,6 +1053,9 @@
1053
1053
  }
1054
1054
  EntityRenderEngine.Render = Render;
1055
1055
  function Remove(viewer, entity) {
1056
+ if (viewer.isDestroyed()) {
1057
+ return;
1058
+ }
1056
1059
  if (entity._parentEntity) {
1057
1060
  Remove(viewer, entity._parentEntity);
1058
1061
  }
@@ -1727,11 +1730,12 @@
1727
1730
  Manager.prototype.onGetterUpdate = function (entities) {
1728
1731
  var _a;
1729
1732
  return __awaiter(this, void 0, void 0, function () {
1730
- var cEntities, i, entity, id, cEntity, visual;
1733
+ var cEntities, i, entity, id, cEntity, visual, e_2;
1731
1734
  return __generator(this, function (_b) {
1732
1735
  switch (_b.label) {
1733
1736
  case 0:
1734
- if (this.disposed) {
1737
+ _b.trys.push([0, 2, , 3]);
1738
+ if (this.disposed || this.viewer.isDestroyed()) {
1735
1739
  return [2 /*return*/];
1736
1740
  }
1737
1741
  return [4 /*yield*/, exports.EntityRenderEngine.Render({
@@ -1765,7 +1769,12 @@
1765
1769
  this.visualsManager.Remove(id, this.item.id);
1766
1770
  }
1767
1771
  }
1768
- return [2 /*return*/];
1772
+ return [3 /*break*/, 3];
1773
+ case 2:
1774
+ e_2 = _b.sent();
1775
+ console.error(e_2);
1776
+ return [3 /*break*/, 3];
1777
+ case 3: return [2 /*return*/];
1769
1778
  }
1770
1779
  });
1771
1780
  });
@@ -1824,11 +1833,12 @@
1824
1833
  Manager.prototype.onGetterUpdate = function (entities) {
1825
1834
  var _a;
1826
1835
  return __awaiter(this, void 0, void 0, function () {
1827
- var cEntities, i, entity, id, cEntity, visual;
1836
+ var cEntities, i, entity, id, cEntity, visual, e_1;
1828
1837
  return __generator(this, function (_b) {
1829
1838
  switch (_b.label) {
1830
1839
  case 0:
1831
- if (this.disposed) {
1840
+ _b.trys.push([0, 2, , 3]);
1841
+ if (this.disposed || this.viewer.isDestroyed()) {
1832
1842
  return [2 /*return*/];
1833
1843
  }
1834
1844
  return [4 /*yield*/, exports.EntityRenderEngine.Render({
@@ -1862,7 +1872,12 @@
1862
1872
  this.visualsManager.Remove(id, this.item.id);
1863
1873
  }
1864
1874
  }
1865
- return [2 /*return*/];
1875
+ return [3 /*break*/, 3];
1876
+ case 2:
1877
+ e_1 = _b.sent();
1878
+ console.error(e_1);
1879
+ return [3 /*break*/, 3];
1880
+ case 3: return [2 /*return*/];
1866
1881
  }
1867
1882
  });
1868
1883
  });
@@ -2392,16 +2407,19 @@
2392
2407
  Manager.prototype.onGetterUpdate = function (entityIds) {
2393
2408
  var _a;
2394
2409
  return __awaiter(this, void 0, void 0, function () {
2395
- var api, entities, cEntities, i, entity, id, cEntity, visual;
2410
+ var api, entities, cEntities, i, entity, id, cEntity, visual, e_1;
2396
2411
  return __generator(this, function (_b) {
2397
2412
  switch (_b.label) {
2398
2413
  case 0:
2399
- if (this.disposed) {
2414
+ if (this.disposed || this.viewer.isDestroyed()) {
2400
2415
  return [2 /*return*/];
2401
2416
  }
2417
+ _b.label = 1;
2418
+ case 1:
2419
+ _b.trys.push([1, 4, , 5]);
2402
2420
  api = this.apiGetter.getApi();
2403
2421
  return [4 /*yield*/, bruceModels.Entity.GetListByIds(api, entityIds)];
2404
- case 1:
2422
+ case 2:
2405
2423
  entities = _b.sent();
2406
2424
  return [4 /*yield*/, exports.EntityRenderEngine.Render({
2407
2425
  viewer: this.viewer,
@@ -2411,7 +2429,7 @@
2411
2429
  visualRegister: this.visualsManager,
2412
2430
  zoomControl: this.item.CameraZoomSettings
2413
2431
  })];
2414
- case 2:
2432
+ case 3:
2415
2433
  cEntities = _b.sent();
2416
2434
  for (i = 0; i < entities.length; i++) {
2417
2435
  entity = entities[i];
@@ -2434,7 +2452,12 @@
2434
2452
  this.visualsManager.Remove(id, this.item.id);
2435
2453
  }
2436
2454
  }
2437
- return [2 /*return*/];
2455
+ return [3 /*break*/, 5];
2456
+ case 4:
2457
+ e_1 = _b.sent();
2458
+ console.error(e_1);
2459
+ return [3 /*break*/, 5];
2460
+ case 5: return [2 /*return*/];
2438
2461
  }
2439
2462
  });
2440
2463
  });
@@ -2492,11 +2515,12 @@
2492
2515
  Manager.prototype.onGetterUpdate = function (id) {
2493
2516
  var _a;
2494
2517
  return __awaiter(this, void 0, void 0, function () {
2495
- var api, entity, cEntities, cEntity, visual;
2518
+ var api, entity, cEntities, cEntity, visual, e_1;
2496
2519
  return __generator(this, function (_b) {
2497
2520
  switch (_b.label) {
2498
2521
  case 0:
2499
- if (this.disposed) {
2522
+ _b.trys.push([0, 3, , 4]);
2523
+ if (this.disposed || this.viewer.isDestroyed()) {
2500
2524
  return [2 /*return*/];
2501
2525
  }
2502
2526
  api = this.apiGetter.getApi();
@@ -2529,7 +2553,12 @@
2529
2553
  else {
2530
2554
  this.visualsManager.Remove(id, this.item.id);
2531
2555
  }
2532
- return [2 /*return*/];
2556
+ return [3 /*break*/, 4];
2557
+ case 3:
2558
+ e_1 = _b.sent();
2559
+ console.error(e_1);
2560
+ return [3 /*break*/, 4];
2561
+ case 4: return [2 /*return*/];
2533
2562
  }
2534
2563
  });
2535
2564
  });
@@ -2542,6 +2571,24 @@
2542
2571
  function colorToCColor$1(color) {
2543
2572
  return new Cesium.Color(color.red ? color.red / 255 : 0, color.green ? color.green / 255 : 0, color.blue ? color.blue / 255 : 0, color.alpha);
2544
2573
  }
2574
+ /**
2575
+ * Returns if a given tileset is alive and in the scene.
2576
+ * @param viewer
2577
+ * @param cTileset
2578
+ * @returns
2579
+ */
2580
+ function isAlive(viewer, cTileset) {
2581
+ if (viewer.isDestroyed()) {
2582
+ return false;
2583
+ }
2584
+ if (!(viewer === null || viewer === void 0 ? void 0 : viewer.scene)) {
2585
+ return false;
2586
+ }
2587
+ if (cTileset.isDestroyed()) {
2588
+ return false;
2589
+ }
2590
+ return viewer.scene.primitives.contains(cTileset);
2591
+ }
2545
2592
  (function (TilesetRenderEngine) {
2546
2593
  function ApplyPosition(cTileset, tileset, coords) {
2547
2594
  var location;
@@ -2618,8 +2665,16 @@
2618
2665
  });
2619
2666
  params.viewer.scene.primitives.add(cTileset_1);
2620
2667
  cTileset_1.readyPromise.then(function () {
2621
- ApplySettings(cTileset_1, params.tileset);
2622
- ApplyPosition(cTileset_1, params.tileset, params.coords);
2668
+ try {
2669
+ if (!isAlive(params.viewer, cTileset_1)) {
2670
+ return;
2671
+ }
2672
+ ApplySettings(cTileset_1, params.tileset);
2673
+ ApplyPosition(cTileset_1, params.tileset, params.coords);
2674
+ }
2675
+ catch (e) {
2676
+ console.error(e);
2677
+ }
2623
2678
  });
2624
2679
  return cTileset_1;
2625
2680
  }
@@ -2636,8 +2691,16 @@
2636
2691
  });
2637
2692
  params.viewer.scene.primitives.add(cTileset_2);
2638
2693
  cTileset_2.readyPromise.then(function () {
2639
- ApplySettings(cTileset_2, params.tileset);
2640
- ApplyPosition(cTileset_2, params.tileset, null);
2694
+ try {
2695
+ if (!isAlive(params.viewer, cTileset_2)) {
2696
+ return;
2697
+ }
2698
+ ApplySettings(cTileset_2, params.tileset);
2699
+ ApplyPosition(cTileset_2, params.tileset, null);
2700
+ }
2701
+ catch (e) {
2702
+ console.error(e);
2703
+ }
2641
2704
  });
2642
2705
  return cTileset_2;
2643
2706
  }
@@ -3070,14 +3133,24 @@
3070
3133
  coords: coords
3071
3134
  });
3072
3135
  cTileset.readyPromise.then(function () {
3073
- if (_this.disposed) {
3074
- return;
3136
+ try {
3137
+ if (_this.disposed || cTileset.isDestroyed()) {
3138
+ return;
3139
+ }
3140
+ _this.onCTilesetLoad();
3141
+ _this.styler = new exports.TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
3142
+ }
3143
+ catch (e) {
3144
+ console.error(e);
3075
3145
  }
3076
- _this.onCTilesetLoad();
3077
- _this.styler = new exports.TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
3078
3146
  });
3079
3147
  cTileset.tileLoad.addEventListener(function (tile) {
3080
- _this.mapCTile(tile);
3148
+ try {
3149
+ _this.mapCTile(tile);
3150
+ }
3151
+ catch (e) {
3152
+ console.error(e);
3153
+ }
3081
3154
  });
3082
3155
  return [2 /*return*/];
3083
3156
  }
@@ -3090,7 +3163,10 @@
3090
3163
  }
3091
3164
  };
3092
3165
  Manager.prototype.mapCTile = function (tile) {
3093
- var content = tile.content;
3166
+ var content = tile === null || tile === void 0 ? void 0 : tile.content;
3167
+ if (!content) {
3168
+ return;
3169
+ }
3094
3170
  for (var i = 0; i < content.featuresLength; i++) {
3095
3171
  var feature = content.getFeature(i);
3096
3172
  var rego = this.mapTilesetFeature(feature);
@@ -3307,7 +3383,12 @@
3307
3383
  }
3308
3384
  this.viewer.scene.primitives.add(this.cTileset);
3309
3385
  this.cTileset.tileLoad.addEventListener(function (tile) {
3310
- _this.mapCTile(tile);
3386
+ try {
3387
+ _this.mapCTile(tile);
3388
+ }
3389
+ catch (e) {
3390
+ console.error(e);
3391
+ }
3311
3392
  });
3312
3393
  this.queueCheckInterval = setInterval(function () {
3313
3394
  if (_this.featureQueue.length > 0) {
@@ -3327,7 +3408,10 @@
3327
3408
  var content, i, feature;
3328
3409
  return __generator(this, function (_a) {
3329
3410
  if (this.sourceId) {
3330
- content = tile.content;
3411
+ content = tile === null || tile === void 0 ? void 0 : tile.content;
3412
+ if (!content) {
3413
+ return [2 /*return*/];
3414
+ }
3331
3415
  for (i = 0; i < content.featuresLength; i++) {
3332
3416
  feature = content.getFeature(i);
3333
3417
  if (feature._counter == null) {
@@ -3563,10 +3647,15 @@
3563
3647
  viewer: this.viewer
3564
3648
  });
3565
3649
  cTileset.readyPromise.then(function () {
3566
- if (_this.disposed) {
3567
- return;
3650
+ try {
3651
+ if (_this.disposed || _this.viewer.isDestroyed()) {
3652
+ return;
3653
+ }
3654
+ _this.onCTilesetLoad();
3655
+ }
3656
+ catch (e) {
3657
+ console.error(e);
3568
3658
  }
3569
- _this.onCTilesetLoad();
3570
3659
  });
3571
3660
  cTileset.tileLoad.addEventListener(function (tile) {
3572
3661
  _this.mapCTile(tile);
@@ -3592,7 +3681,10 @@
3592
3681
  }
3593
3682
  };
3594
3683
  Manager.prototype.mapCTile = function (tile) {
3595
- var content = tile.content;
3684
+ var content = tile === null || tile === void 0 ? void 0 : tile.content;
3685
+ if (!content) {
3686
+ return;
3687
+ }
3596
3688
  for (var i = 0; i < content.featuresLength; i++) {
3597
3689
  var feature = content.getFeature(i);
3598
3690
  this.mapTilesetFeature(feature);
@@ -3659,10 +3751,15 @@
3659
3751
  coords: null
3660
3752
  });
3661
3753
  cTileset.readyPromise.then(function () {
3662
- if (_this.disposed) {
3663
- return;
3754
+ try {
3755
+ if (_this.disposed || _this.viewer.isDestroyed()) {
3756
+ return;
3757
+ }
3758
+ _this.onCTilesetLoad();
3759
+ }
3760
+ catch (e) {
3761
+ console.error(e);
3664
3762
  }
3665
- _this.onCTilesetLoad();
3666
3763
  });
3667
3764
  return [2 /*return*/];
3668
3765
  }
@@ -3740,6 +3837,9 @@
3740
3837
  return __generator(this, function (_c) {
3741
3838
  switch (_c.label) {
3742
3839
  case 0:
3840
+ if (this.viewer.isDestroyed()) {
3841
+ return [2 /*return*/, null];
3842
+ }
3743
3843
  rItem = this.items.find(function (x) { return x.id == params.item.id; });
3744
3844
  if (!!rItem) return [3 /*break*/, 2];
3745
3845
  rItem = {
@@ -3750,6 +3850,9 @@
3750
3850
  type: params.item.Type
3751
3851
  };
3752
3852
  this.items.push(rItem);
3853
+ if (!params.item.Type) {
3854
+ params.item.Type = bruceModels.MenuItem.EType.None;
3855
+ }
3753
3856
  switch (params.item.Type) {
3754
3857
  case bruceModels.MenuItem.EType.Entities:
3755
3858
  rItem.renderManager = new exports.EntitiesRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item, this.sharedGetters);
@@ -3824,6 +3927,9 @@
3824
3927
  return __generator(this, function (_c) {
3825
3928
  switch (_c.label) {
3826
3929
  case 0:
3930
+ if (this.viewer.isDestroyed()) {
3931
+ return [2 /*return*/];
3932
+ }
3827
3933
  item = this.items.find(function (x) { return x.id === id; });
3828
3934
  if (!item) return [3 /*break*/, 5];
3829
3935
  if (!recursive) return [3 /*break*/, 4];