bruce-cesium 1.5.7 → 1.5.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.
@@ -1,5 +1,5 @@
1
1
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, ObjectUtils, DelayQueue, Entity as Entity$1, BatchedDataGetter, EntityRelationType, Tileset, EntityCoords, EntityFilterGetter, EntitySource, MenuItem, EntityRelation, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, EllipsoidTerrainProvider, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, SceneMode, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, Rectangle, KmlDataSource, CallbackProperty, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, OrthographicFrustum, JulianDate, Matrix4, Cesium3DTileset, IonResource, EllipsoidGeodesic, sampleTerrainMostDetailed, ColorMaterialProperty, Matrix3, EasingFunction, GeometryInstance, PolygonPipeline } from 'cesium';
2
+ import { Cartesian2, Cartographic, Math as Math$1, SceneMode, Cartesian3, Color, HeightReference, EllipsoidTerrainProvider, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, HeadingPitchRange, Cesium3DTileColorBlendMode, createOsmBuildings, Cesium3DTileStyle, Rectangle, KmlDataSource, CallbackProperty, Cesium3DTileset, Matrix4, IonResource, createWorldTerrain, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ColorMaterialProperty, Matrix3, EasingFunction, GeometryInstance, JulianDate, OrthographicFrustum } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -4276,6 +4276,28 @@ function correctStyle(style) {
4276
4276
  }
4277
4277
  return style;
4278
4278
  }
4279
+ /**
4280
+ * Creates and returns a tileset instance from a given url.
4281
+ * This is made to handle the difference between old and new cesium versions.
4282
+ * New versions use fromUrl whereas old versions pass the url as a property.
4283
+ * @param url
4284
+ * @param props
4285
+ * @returns
4286
+ */
4287
+ function createTileset(url, props) {
4288
+ return __awaiter(this, void 0, void 0, function () {
4289
+ var C3DT;
4290
+ return __generator(this, function (_a) {
4291
+ C3DT = Cesium3DTileset;
4292
+ if (C3DT.fromUrl) {
4293
+ // New cesium is running.
4294
+ return [2 /*return*/, C3DT.fromUrl(url, __assign({}, props))];
4295
+ }
4296
+ // Old cesium is running.
4297
+ return [2 /*return*/, new C3DT(__assign({ url: url }, props))];
4298
+ });
4299
+ });
4300
+ }
4279
4301
  var TilesetRenderEngine;
4280
4302
  (function (TilesetRenderEngine) {
4281
4303
  function ApplyPosition(params) {
@@ -4407,96 +4429,101 @@ var TilesetRenderEngine;
4407
4429
  }
4408
4430
  TilesetRenderEngine.ApplySettings = ApplySettings;
4409
4431
  function Render(params) {
4410
- var api = params.apiGetter.getApi(params.apiGetter.accountId);
4411
- var loadUrl = params.tileset.loadUrl;
4412
- if (params.tileset.type == Tileset.EType.Cad) {
4413
- var cTileset_1 = new Cesium3DTileset({
4414
- url: loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4415
- api: api,
4416
- tilesetId: params.tileset.id,
4417
- file: "tileset.json"
4418
- }) + "?generation=" + params.tileset.generateVersion
4419
- });
4420
- params.viewer.scene.primitives.add(cTileset_1);
4421
- cTileset_1.readyPromise.then(function () {
4422
- var _a, _b, _c;
4423
- try {
4424
- if (!isAlive(params.viewer, cTileset_1)) {
4425
- return;
4426
- }
4427
- var settings = params.tileset.settings;
4428
- ApplySettings({
4429
- cTileset: cTileset_1,
4430
- settings: {
4431
- maxScreenSpaceError: settings.maximumScreenSpaceError
4432
- }
4433
- });
4434
- ApplyPosition({
4435
- cTileset: cTileset_1,
4436
- position: {
4437
- ucs: (_a = params.coords) === null || _a === void 0 ? void 0 : _a.ucs,
4438
- location: ((_b = params.coords) === null || _b === void 0 ? void 0 : _b.location) == null ? settings.location : params.coords.location,
4439
- transform: ((_c = params.coords) === null || _c === void 0 ? void 0 : _c.transform) == null ? settings.transform : params.coords.transform
4440
- }
4441
- });
4442
- }
4443
- catch (e) {
4444
- console.error(e);
4445
- }
4446
- });
4447
- return cTileset_1;
4448
- }
4449
- else if (params.tileset.type === Tileset.EType.EntitiesSet) {
4450
- var cTileset = new Cesium3DTileset({
4451
- url: loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4452
- api: api,
4453
- tilesetId: params.tileset.id,
4454
- file: "tileset.json"
4455
- }) + "?generation=" + params.tileset.generateVersion
4456
- });
4457
- params.viewer.scene.primitives.add(cTileset);
4458
- return cTileset;
4459
- }
4460
- else if (params.tileset.type == Tileset.EType.PointCloud) {
4461
- var cTileset_2 = new Cesium3DTileset({
4462
- url: loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4463
- api: api,
4464
- tilesetId: params.tileset.id,
4465
- file: "tileset.json"
4466
- }) + "?generation=" + params.tileset.generateVersion
4467
- });
4468
- params.viewer.scene.primitives.add(cTileset_2);
4469
- cTileset_2.readyPromise.then(function () {
4470
- try {
4471
- if (!isAlive(params.viewer, cTileset_2)) {
4472
- return;
4473
- }
4474
- var settings = params.tileset.settings;
4475
- ApplySettings({
4476
- cTileset: cTileset_2,
4477
- settings: {
4478
- attenuation: settings.attenuation,
4479
- maximumAttenuation: settings.attenuationMax,
4480
- maxScreenSpaceError: settings.maximumScreenSpaceError
4481
- }
4482
- });
4483
- ApplyPosition({
4484
- cTileset: cTileset_2,
4485
- position: {
4486
- location: settings.location,
4487
- transform: settings.transform
4488
- }
4489
- });
4490
- }
4491
- catch (e) {
4492
- console.error(e);
4432
+ return __awaiter(this, void 0, void 0, function () {
4433
+ var api, loadUrl, cTileset_1, cTileset, cTileset_2;
4434
+ return __generator(this, function (_a) {
4435
+ switch (_a.label) {
4436
+ case 0:
4437
+ api = params.apiGetter.getApi(params.apiGetter.accountId);
4438
+ loadUrl = params.tileset.loadUrl;
4439
+ if (!(params.tileset.type == Tileset.EType.Cad)) return [3 /*break*/, 2];
4440
+ return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4441
+ api: api,
4442
+ tilesetId: params.tileset.id,
4443
+ file: "tileset.json"
4444
+ }) + "?generation=" + params.tileset.generateVersion, null)];
4445
+ case 1:
4446
+ cTileset_1 = _a.sent();
4447
+ params.viewer.scene.primitives.add(cTileset_1);
4448
+ cTileset_1.readyPromise.then(function () {
4449
+ var _a, _b, _c;
4450
+ try {
4451
+ if (!isAlive(params.viewer, cTileset_1)) {
4452
+ return;
4453
+ }
4454
+ var settings = params.tileset.settings;
4455
+ ApplySettings({
4456
+ cTileset: cTileset_1,
4457
+ settings: {
4458
+ maxScreenSpaceError: settings.maximumScreenSpaceError
4459
+ }
4460
+ });
4461
+ ApplyPosition({
4462
+ cTileset: cTileset_1,
4463
+ position: {
4464
+ ucs: (_a = params.coords) === null || _a === void 0 ? void 0 : _a.ucs,
4465
+ location: ((_b = params.coords) === null || _b === void 0 ? void 0 : _b.location) == null ? settings.location : params.coords.location,
4466
+ transform: ((_c = params.coords) === null || _c === void 0 ? void 0 : _c.transform) == null ? settings.transform : params.coords.transform
4467
+ }
4468
+ });
4469
+ }
4470
+ catch (e) {
4471
+ console.error(e);
4472
+ }
4473
+ });
4474
+ return [2 /*return*/, cTileset_1];
4475
+ case 2:
4476
+ if (!(params.tileset.type === Tileset.EType.EntitiesSet)) return [3 /*break*/, 4];
4477
+ return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4478
+ api: api,
4479
+ tilesetId: params.tileset.id,
4480
+ file: "tileset.json"
4481
+ }) + "?generation=" + params.tileset.generateVersion, null)];
4482
+ case 3:
4483
+ cTileset = _a.sent();
4484
+ params.viewer.scene.primitives.add(cTileset);
4485
+ return [2 /*return*/, cTileset];
4486
+ case 4:
4487
+ if (!(params.tileset.type == Tileset.EType.PointCloud)) return [3 /*break*/, 6];
4488
+ return [4 /*yield*/, createTileset(loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4489
+ api: api,
4490
+ tilesetId: params.tileset.id,
4491
+ file: "tileset.json"
4492
+ }) + "?generation=" + params.tileset.generateVersion, null)];
4493
+ case 5:
4494
+ cTileset_2 = _a.sent();
4495
+ params.viewer.scene.primitives.add(cTileset_2);
4496
+ cTileset_2.readyPromise.then(function () {
4497
+ try {
4498
+ if (!isAlive(params.viewer, cTileset_2)) {
4499
+ return;
4500
+ }
4501
+ var settings = params.tileset.settings;
4502
+ ApplySettings({
4503
+ cTileset: cTileset_2,
4504
+ settings: {
4505
+ attenuation: settings.attenuation,
4506
+ maximumAttenuation: settings.attenuationMax,
4507
+ maxScreenSpaceError: settings.maximumScreenSpaceError
4508
+ }
4509
+ });
4510
+ ApplyPosition({
4511
+ cTileset: cTileset_2,
4512
+ position: {
4513
+ location: settings.location,
4514
+ transform: settings.transform
4515
+ }
4516
+ });
4517
+ }
4518
+ catch (e) {
4519
+ console.error(e);
4520
+ }
4521
+ });
4522
+ return [2 /*return*/, cTileset_2];
4523
+ case 6: throw ("Not implemented.");
4493
4524
  }
4494
4525
  });
4495
- return cTileset_2;
4496
- }
4497
- else {
4498
- throw ("Not implemented.");
4499
- }
4526
+ });
4500
4527
  }
4501
4528
  TilesetRenderEngine.Render = Render;
4502
4529
  function RenderLegacy(params) {
@@ -4539,9 +4566,9 @@ var TilesetRenderEngine;
4539
4566
  .replace("<ACCOUNT>", accountId);
4540
4567
  }
4541
4568
  }
4542
- cTileset = new Cesium3DTileset({
4543
- url: loadUrl
4544
- });
4569
+ return [4 /*yield*/, createTileset(loadUrl, null)];
4570
+ case 4:
4571
+ cTileset = _a.sent();
4545
4572
  viewer.scene.primitives.add(cTileset);
4546
4573
  cTileset.readyPromise.then(function () {
4547
4574
  try {
@@ -5030,10 +5057,10 @@ var TilesetCadRenderManager;
5030
5057
  Manager.prototype.Init = function () {
5031
5058
  var _a;
5032
5059
  return __awaiter(this, void 0, void 0, function () {
5033
- var tilesetId, api, tileset, settings, rootId, coords, cTileset;
5060
+ var tilesetId, api, tileset, settings, rootId, coords, cTileset, _b;
5034
5061
  var _this = this;
5035
- return __generator(this, function (_b) {
5036
- switch (_b.label) {
5062
+ return __generator(this, function (_c) {
5063
+ switch (_c.label) {
5037
5064
  case 0:
5038
5065
  tilesetId = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetID;
5039
5066
  if (!tilesetId) {
@@ -5045,7 +5072,7 @@ var TilesetCadRenderManager;
5045
5072
  tilesetId: tilesetId
5046
5073
  })];
5047
5074
  case 1:
5048
- tileset = (_b.sent()).tileset;
5075
+ tileset = (_c.sent()).tileset;
5049
5076
  if (!tileset) {
5050
5077
  return [2 /*return*/];
5051
5078
  }
@@ -5056,13 +5083,16 @@ var TilesetCadRenderManager;
5056
5083
  rootEntityId: rootId
5057
5084
  })];
5058
5085
  case 2:
5059
- coords = (_b.sent()).coords;
5060
- cTileset = this.cTileset = TilesetRenderEngine.Render({
5061
- apiGetter: this.apiGetter,
5062
- tileset: tileset,
5063
- viewer: this.viewer,
5064
- coords: coords
5065
- });
5086
+ coords = (_c.sent()).coords;
5087
+ _b = this;
5088
+ return [4 /*yield*/, TilesetRenderEngine.Render({
5089
+ apiGetter: this.apiGetter,
5090
+ tileset: tileset,
5091
+ viewer: this.viewer,
5092
+ coords: coords
5093
+ })];
5094
+ case 3:
5095
+ cTileset = _b.cTileset = _c.sent();
5066
5096
  cTileset.readyPromise.then(function () {
5067
5097
  try {
5068
5098
  if (_this.disposed || cTileset.isDestroyed()) {
@@ -5663,10 +5693,10 @@ var TilesetEntitiesRenderManager;
5663
5693
  Manager.prototype.Init = function () {
5664
5694
  var _a;
5665
5695
  return __awaiter(this, void 0, void 0, function () {
5666
- var tilesetId, api, tileset, cTileset;
5696
+ var tilesetId, api, tileset, cTileset, _b;
5667
5697
  var _this = this;
5668
- return __generator(this, function (_b) {
5669
- switch (_b.label) {
5698
+ return __generator(this, function (_c) {
5699
+ switch (_c.label) {
5670
5700
  case 0:
5671
5701
  tilesetId = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetID;
5672
5702
  if (!tilesetId) {
@@ -5678,16 +5708,19 @@ var TilesetEntitiesRenderManager;
5678
5708
  tilesetId: tilesetId
5679
5709
  })];
5680
5710
  case 1:
5681
- tileset = (_b.sent()).tileset;
5711
+ tileset = (_c.sent()).tileset;
5682
5712
  if (!tileset) {
5683
5713
  return [2 /*return*/];
5684
5714
  }
5685
5715
  this.typeId = tileset.settings.entityTypeId;
5686
- cTileset = this.cTileset = TilesetRenderEngine.Render({
5687
- apiGetter: this.apiGetter,
5688
- tileset: tileset,
5689
- viewer: this.viewer
5690
- });
5716
+ _b = this;
5717
+ return [4 /*yield*/, TilesetRenderEngine.Render({
5718
+ apiGetter: this.apiGetter,
5719
+ tileset: tileset,
5720
+ viewer: this.viewer
5721
+ })];
5722
+ case 2:
5723
+ cTileset = _b.cTileset = _c.sent();
5691
5724
  cTileset.readyPromise.then(function () {
5692
5725
  try {
5693
5726
  if (_this.disposed || _this.viewer.isDestroyed()) {
@@ -5797,10 +5830,10 @@ var TilesetPointcloudRenderManager;
5797
5830
  Manager.prototype.Init = function () {
5798
5831
  var _a;
5799
5832
  return __awaiter(this, void 0, void 0, function () {
5800
- var tilesetId, api, tileset, cTileset;
5833
+ var tilesetId, api, tileset, cTileset, _b;
5801
5834
  var _this = this;
5802
- return __generator(this, function (_b) {
5803
- switch (_b.label) {
5835
+ return __generator(this, function (_c) {
5836
+ switch (_c.label) {
5804
5837
  case 0:
5805
5838
  tilesetId = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetID;
5806
5839
  if (!tilesetId) {
@@ -5812,16 +5845,19 @@ var TilesetPointcloudRenderManager;
5812
5845
  tilesetId: tilesetId
5813
5846
  })];
5814
5847
  case 1:
5815
- tileset = (_b.sent()).tileset;
5848
+ tileset = (_c.sent()).tileset;
5816
5849
  if (!tileset) {
5817
5850
  return [2 /*return*/];
5818
5851
  }
5819
- cTileset = this.cTileset = TilesetRenderEngine.Render({
5820
- apiGetter: this.apiGetter,
5821
- tileset: tileset,
5822
- viewer: this.viewer,
5823
- coords: null
5824
- });
5852
+ _b = this;
5853
+ return [4 /*yield*/, TilesetRenderEngine.Render({
5854
+ apiGetter: this.apiGetter,
5855
+ tileset: tileset,
5856
+ viewer: this.viewer,
5857
+ coords: null
5858
+ })];
5859
+ case 2:
5860
+ cTileset = _b.cTileset = _c.sent();
5825
5861
  cTileset.readyPromise.then(function () {
5826
5862
  try {
5827
5863
  if (_this.disposed || _this.viewer.isDestroyed()) {
@@ -6050,10 +6086,10 @@ var TilesetArbRenderManager;
6050
6086
  Manager.prototype.Init = function () {
6051
6087
  var _a, _b, _c, _d, _e, _f;
6052
6088
  return __awaiter(this, void 0, void 0, function () {
6053
- var loadUrlOverride, itemUrl, url, urlParts, tilesetId_1, accountId, tilesetId, _g, tileset, type, _h, LEGACY_TYPES, legacyTileset, _j, accountId, _k;
6089
+ var loadUrlOverride, itemUrl, url, urlParts, tilesetId_1, accountId, tilesetId, _g, tileset, type, _h, LEGACY_TYPES, legacyTileset, _j, accountId, _k, _l;
6054
6090
  var _this = this;
6055
- return __generator(this, function (_l) {
6056
- switch (_l.label) {
6091
+ return __generator(this, function (_m) {
6092
+ switch (_m.label) {
6057
6093
  case 0:
6058
6094
  loadUrlOverride = null;
6059
6095
  if (this.item.tileset) {
@@ -6085,11 +6121,11 @@ var TilesetArbRenderManager;
6085
6121
  menuItem: this.item
6086
6122
  })];
6087
6123
  case 1:
6088
- _h = _l.sent();
6124
+ _h = _m.sent();
6089
6125
  return [3 /*break*/, 3];
6090
6126
  case 2:
6091
6127
  _h = { tileset: null, type: null };
6092
- _l.label = 3;
6128
+ _m.label = 3;
6093
6129
  case 3:
6094
6130
  _g = _h, tileset = _g.tileset, type = _g.type;
6095
6131
  if (tileset && loadUrlOverride) {
@@ -6108,11 +6144,11 @@ var TilesetArbRenderManager;
6108
6144
  tileset: tileset
6109
6145
  })];
6110
6146
  case 4:
6111
- _j = _l.sent();
6147
+ _j = _m.sent();
6112
6148
  return [3 /*break*/, 6];
6113
6149
  case 5:
6114
6150
  _j = null;
6115
- _l.label = 6;
6151
+ _m.label = 6;
6116
6152
  case 6:
6117
6153
  legacyTileset = _j;
6118
6154
  accountId = (_e = (_d = this.item) === null || _d === void 0 ? void 0 : _d.tileset) === null || _e === void 0 ? void 0 : _e.ClientAccountID;
@@ -6130,19 +6166,21 @@ var TilesetArbRenderManager;
6130
6166
  viaCdn: true
6131
6167
  })];
6132
6168
  case 7:
6133
- _k.cTileset = _l.sent();
6134
- return [3 /*break*/, 9];
6169
+ _k.cTileset = _m.sent();
6170
+ return [3 /*break*/, 10];
6135
6171
  case 8:
6136
- if (tileset) {
6137
- this.cTileset = TilesetRenderEngine.Render({
6172
+ if (!tileset) return [3 /*break*/, 10];
6173
+ _l = this;
6174
+ return [4 /*yield*/, TilesetRenderEngine.Render({
6138
6175
  apiGetter: this.apiGetter,
6139
6176
  tileset: tileset,
6140
6177
  viewer: this.viewer,
6141
6178
  coords: null
6142
- });
6143
- }
6144
- _l.label = 9;
6179
+ })];
6145
6180
  case 9:
6181
+ _l.cTileset = _m.sent();
6182
+ _m.label = 10;
6183
+ case 10:
6146
6184
  this.cTileset.readyPromise.then(function () {
6147
6185
  try {
6148
6186
  if (_this.item.ApplyStyles ||
@@ -7480,6 +7518,19 @@ function prepareFileExt(ext) {
7480
7518
  ext = ext.replace(".", "");
7481
7519
  return ext;
7482
7520
  }
7521
+ /**
7522
+ * Creates an imagery layer from a given provider.
7523
+ * This exists because the constructor for it has changed between cesium versions.
7524
+ * @param provider
7525
+ * @returns
7526
+ */
7527
+ function createImageryLayer(provider) {
7528
+ var CIL = ImageryLayer;
7529
+ if (CIL.length == 2) {
7530
+ return new CIL(provider, {});
7531
+ }
7532
+ return new CIL(provider);
7533
+ }
7483
7534
  var TileRenderEngine;
7484
7535
  (function (TileRenderEngine) {
7485
7536
  /**
@@ -7517,7 +7568,7 @@ var TileRenderEngine;
7517
7568
  case 2:
7518
7569
  provider = _c.sent();
7519
7570
  if (provider) {
7520
- layer = new ImageryLayer(provider);
7571
+ layer = createImageryLayer(provider);
7521
7572
  }
7522
7573
  return [3 /*break*/, 13];
7523
7574
  case 3:
@@ -7590,7 +7641,7 @@ var TileRenderEngine;
7590
7641
  return [3 /*break*/, 12];
7591
7642
  case 12:
7592
7643
  if (provider) {
7593
- layer = new ImageryLayer(provider);
7644
+ layer = createImageryLayer(provider);
7594
7645
  }
7595
7646
  _c.label = 13;
7596
7647
  case 13: