bruce-cesium 1.2.2 → 1.2.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.
@@ -1,5 +1,5 @@
1
1
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, EntityRelationType, ObjectUtils, Tileset, EntityCoords, EntityFilterGetter, EntitySource, EntityRelation, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTile, ProjectViewLegacyTile, ProgramKey, Camera } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Color, HeightReference, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, Cesium3DTileColorBlendMode, HeadingPitchRange, KmlDataSource, CallbackProperty, OrthographicFrustum, JulianDate, createOsmBuildings, Cesium3DTileStyle, Rectangle, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, PolygonPipeline, Matrix4, Cesium3DTileset, IonResource, ColorMaterialProperty, Matrix3, EasingFunction, GeometryInstance, EllipsoidGeodesic, sampleTerrainMostDetailed } 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, Cesium3DTileColorBlendMode, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, Rectangle, KmlDataSource, CallbackProperty, OrthographicFrustum, JulianDate, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, ColorMaterialProperty, Matrix3, Matrix4, EasingFunction, GeometryInstance, Cesium3DTileset, IonResource } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -3942,79 +3942,81 @@ var TilesetRenderEngine;
3942
3942
  if (legacy_1.usingBoundingBox == null) {
3943
3943
  legacy_1.usingBoundingBox = true;
3944
3944
  }
3945
- var offsetPoint_1 = function (pos, distance, bearing) {
3946
- // radius of earth
3947
- var radius = 6371e3;
3948
- var δ = distance / radius;
3949
- var θ = Math$1.toRadians(bearing);
3950
- var φ1 = Math$1.toRadians(pos.latitude);
3951
- var λ1 = Math$1.toRadians(pos.longitude);
3952
- var sinφ2 = Math.sin(φ1) * Math.cos(δ) + Math.cos(φ1) * Math.sin(δ) * Math.cos(θ);
3953
- var φ2 = Math.asin(sinφ2);
3954
- var y = Math.sin(θ) * Math.sin(δ) * Math.cos(φ1);
3955
- var x = Math.cos(δ) - Math.sin(φ1) * sinφ2;
3956
- var λ2 = λ1 + Math.atan2(y, x);
3957
- var finalPos = new Cartographic(λ2, φ2, pos.height);
3958
- finalPos.latitude = Math$1.toDegrees(finalPos.latitude);
3959
- finalPos.longitude = Math$1.toDegrees(finalPos.longitude);
3960
- return finalPos;
3961
- };
3962
- var getOffset = function (pos, n, e, alt) {
3963
- if (n == 0 && e == 0 && alt == 0) {
3964
- return new Cartesian3(0, 0, 0);
3965
- }
3966
- var carto = Cartographic.fromCartesian(pos);
3967
- carto.latitude = Math$1.toDegrees(carto.latitude);
3968
- carto.longitude = Math$1.toDegrees(carto.longitude);
3969
- // North
3970
- if (n != 0) {
3971
- carto = offsetPoint_1(carto, Number(n), 0);
3945
+ if (legacy_1.transform) {
3946
+ var offsetPoint_1 = function (pos, distance, bearing) {
3947
+ // radius of earth
3948
+ var radius = 6371e3;
3949
+ var δ = distance / radius;
3950
+ var θ = Math$1.toRadians(bearing);
3951
+ var φ1 = Math$1.toRadians(pos.latitude);
3952
+ var λ1 = Math$1.toRadians(pos.longitude);
3953
+ var sinφ2 = Math.sin1) * Math.cos(δ) + Math.cos(φ1) * Math.sin(δ) * Math.cos(θ);
3954
+ var φ2 = Math.asin(sinφ2);
3955
+ var y = Math.sin(θ) * Math.sin(δ) * Math.cos(φ1);
3956
+ var x = Math.cos(δ) - Math.sin(φ1) * sinφ2;
3957
+ var λ2 = λ1 + Math.atan2(y, x);
3958
+ var finalPos = new Cartographic(λ2, φ2, pos.height);
3959
+ finalPos.latitude = Math$1.toDegrees(finalPos.latitude);
3960
+ finalPos.longitude = Math$1.toDegrees(finalPos.longitude);
3961
+ return finalPos;
3962
+ };
3963
+ var getOffset = function (pos, n, e, alt) {
3964
+ if (n == 0 && e == 0 && alt == 0) {
3965
+ return new Cartesian3(0, 0, 0);
3966
+ }
3967
+ var carto = Cartographic.fromCartesian(pos);
3968
+ carto.latitude = Math$1.toDegrees(carto.latitude);
3969
+ carto.longitude = Math$1.toDegrees(carto.longitude);
3970
+ // North
3971
+ if (n != 0) {
3972
+ carto = offsetPoint_1(carto, Number(n), 0);
3973
+ }
3974
+ // East
3975
+ if (e != 0) {
3976
+ carto = offsetPoint_1(carto, Number(e), 90);
3977
+ }
3978
+ // Altitude
3979
+ carto.height += Number(alt);
3980
+ var finalOffset = Cartesian3.fromDegrees(carto.longitude, carto.latitude, carto.height);
3981
+ finalOffset.x -= pos.x;
3982
+ finalOffset.y -= pos.y;
3983
+ finalOffset.z -= pos.z;
3984
+ return finalOffset;
3985
+ };
3986
+ var getCurPos3d = function () {
3987
+ if (legacy_1.usingBoundingBox == false) {
3988
+ return Matrix4.getTranslation(root.transform, new Cartesian3());
3989
+ }
3990
+ else {
3991
+ return Cartesian3.clone(root.boundingSphere.center);
3992
+ }
3993
+ };
3994
+ var pos3d = void 0;
3995
+ if (location.latitude != null && location.longitude != null) {
3996
+ pos3d = Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
3972
3997
  }
3973
- // East
3974
- if (e != 0) {
3975
- carto = offsetPoint_1(carto, Number(e), 90);
3998
+ if (!pos3d) {
3999
+ pos3d = getCurPos3d();
3976
4000
  }
3977
- // Altitude
3978
- carto.height += Number(alt);
3979
- var finalOffset = Cartesian3.fromDegrees(carto.longitude, carto.latitude, carto.height);
3980
- finalOffset.x -= pos.x;
3981
- finalOffset.y -= pos.y;
3982
- finalOffset.z -= pos.z;
3983
- return finalOffset;
3984
- };
3985
- var getCurPos3d = function () {
3986
- if (legacy_1.usingBoundingBox == false) {
3987
- return Matrix4.getTranslation(root.transform, new Cartesian3());
4001
+ var offset = getOffset(pos3d, transform.x, transform.y, transform.z);
4002
+ if (Cartes.ValidateCartes3(offset)) {
4003
+ pos3d.x += offset.x;
4004
+ pos3d.y += offset.y;
4005
+ pos3d.z += offset.z;
3988
4006
  }
3989
- else {
3990
- return Cartesian3.clone(root.boundingSphere.center);
4007
+ if (legacy_1.rotate) {
4008
+ var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new HeadingPitchRoll());
4009
+ root.transform = Transforms.headingPitchRollToFixedFrame(pos3d, hpr);
4010
+ root.updateTransform();
3991
4011
  }
3992
- };
3993
- var pos3d = void 0;
3994
- if (location.latitude != null && location.longitude != null) {
3995
- pos3d = Cartesian3.fromDegrees(EnsureNumber(location.longitude), EnsureNumber(location.latitude), EnsureNumber(location.altitude));
3996
- }
3997
- if (!pos3d) {
3998
- pos3d = getCurPos3d();
3999
- }
4000
- var offset = getOffset(pos3d, transform.x, transform.y, transform.z);
4001
- if (Cartes.ValidateCartes3(offset)) {
4002
- pos3d.x += offset.x;
4003
- pos3d.y += offset.y;
4004
- pos3d.z += offset.z;
4005
- }
4006
- if (legacy_1.rotate) {
4007
- var hpr = HeadingPitchRoll.fromDegrees(EnsureNumber(transform.heading), EnsureNumber(transform.pitch), EnsureNumber(transform.roll), new HeadingPitchRoll());
4008
- root.transform = Transforms.headingPitchRollToFixedFrame(pos3d, hpr);
4012
+ var curPos3d = getCurPos3d();
4013
+ var newTransform = Matrix4.pack(root.transform.clone(new Matrix4()), []);
4014
+ newTransform[12] += pos3d.x - curPos3d.x;
4015
+ newTransform[13] += pos3d.y - curPos3d.y;
4016
+ newTransform[14] += pos3d.z - curPos3d.z;
4017
+ root.transform = Matrix4.unpack(newTransform);
4009
4018
  root.updateTransform();
4010
4019
  }
4011
- var curPos3d = getCurPos3d();
4012
- var newTransform = Matrix4.pack(root.transform.clone(new Matrix4()), []);
4013
- newTransform[12] += pos3d.x - curPos3d.x;
4014
- newTransform[13] += pos3d.y - curPos3d.y;
4015
- newTransform[14] += pos3d.z - curPos3d.z;
4016
- root.transform = Matrix4.unpack(newTransform);
4017
- root.updateTransform();
4018
4020
  }
4019
4021
  else {
4020
4022
  if (!(location === null || location === void 0 ? void 0 : location.latitude)) {
@@ -4398,7 +4400,7 @@ var TilesetRenderEngine;
4398
4400
  }
4399
4401
  }
4400
4402
  catch (e) {
4401
- console.log(e);
4403
+ console.error(e);
4402
4404
  }
4403
4405
  }
4404
4406
  i = 0;
@@ -5571,7 +5573,7 @@ function getLegacyTileset(params) {
5571
5573
  return [2 /*return*/, legacyTileset];
5572
5574
  case 3:
5573
5575
  e_1 = _a.sent();
5574
- console.log(e_1);
5576
+ console.error(e_1);
5575
5577
  return [3 /*break*/, 4];
5576
5578
  case 4: return [2 /*return*/];
5577
5579
  }
@@ -5580,14 +5582,14 @@ function getLegacyTileset(params) {
5580
5582
  }
5581
5583
  function getTileset(params) {
5582
5584
  return __awaiter(this, void 0, void 0, function () {
5583
- var apiGetter, menuItem, api, tileset, e_2;
5585
+ var apiGetter, menuItem, api, tileset, typeMapping, e_2;
5584
5586
  return __generator(this, function (_a) {
5585
5587
  switch (_a.label) {
5586
5588
  case 0:
5587
5589
  apiGetter = params.apiGetter, menuItem = params.menuItem;
5588
5590
  _a.label = 1;
5589
5591
  case 1:
5590
- _a.trys.push([1, 3, , 4]);
5592
+ _a.trys.push([1, 4, , 5]);
5591
5593
  api = apiGetter.getApi(menuItem.tileset.ClientAccountID);
5592
5594
  return [4 /*yield*/, Tileset.Get({
5593
5595
  api: api,
@@ -5595,12 +5597,21 @@ function getTileset(params) {
5595
5597
  })];
5596
5598
  case 2:
5597
5599
  tileset = (_a.sent()).tileset;
5598
- return [2 /*return*/, tileset];
5600
+ return [4 /*yield*/, Tileset.GetTypes({
5601
+ api: api,
5602
+ tilesetIds: [menuItem.tileset.TilesetID]
5603
+ })];
5599
5604
  case 3:
5605
+ typeMapping = (_a.sent()).typeMapping;
5606
+ return [2 /*return*/, {
5607
+ tileset: tileset,
5608
+ type: typeMapping[menuItem.tileset.TilesetID]
5609
+ }];
5610
+ case 4:
5600
5611
  e_2 = _a.sent();
5601
5612
  console.error(e_2);
5602
- return [3 /*break*/, 4];
5603
- case 4: return [2 /*return*/];
5613
+ return [3 /*break*/, 5];
5614
+ case 5: return [2 /*return*/];
5604
5615
  }
5605
5616
  });
5606
5617
  });
@@ -5614,8 +5625,14 @@ var TilesetArbRenderManager;
5614
5625
  this.styler = null;
5615
5626
  this.viewer = params.viewer;
5616
5627
  this.apiGetter = params.apiGetter;
5617
- this.item = params.item;
5618
5628
  this.visualsManager = params.register;
5629
+ // We modify the object due to a lot of backwards compatibility.
5630
+ try {
5631
+ this.item = params.item ? JSON.parse(JSON.stringify(params.item)) : {};
5632
+ }
5633
+ catch (e) {
5634
+ console.error(e);
5635
+ }
5619
5636
  }
5620
5637
  Object.defineProperty(Manager.prototype, "Disposed", {
5621
5638
  get: function () {
@@ -5632,12 +5649,12 @@ var TilesetArbRenderManager;
5632
5649
  configurable: true
5633
5650
  });
5634
5651
  Manager.prototype.Init = function () {
5635
- var _a, _b, _c;
5652
+ var _a, _b, _c, _d;
5636
5653
  return __awaiter(this, void 0, void 0, function () {
5637
- var loadUrlOverride, itemUrl, url, urlParts, tilesetId, accountId, tileset, legacyTileset, _d, _e;
5654
+ var loadUrlOverride, itemUrl, url, urlParts, tilesetId_1, accountId, tilesetId, _e, tileset, type, _f, LEGACY_TYPES, legacyTileset, _g, _h;
5638
5655
  var _this = this;
5639
- return __generator(this, function (_f) {
5640
- switch (_f.label) {
5656
+ return __generator(this, function (_j) {
5657
+ switch (_j.label) {
5641
5658
  case 0:
5642
5659
  loadUrlOverride = null;
5643
5660
  if (this.item.tileset) {
@@ -5655,65 +5672,79 @@ var TilesetArbRenderManager;
5655
5672
  url = this.item.tileset.TilesetURL;
5656
5673
  urlParts = url.split("/");
5657
5674
  if (urlParts.length > 5) {
5658
- tilesetId = urlParts[urlParts.length - 3];
5675
+ tilesetId_1 = urlParts[urlParts.length - 3];
5659
5676
  accountId = urlParts[urlParts.length - 5].split(".")[0];
5660
- this.item.tileset.TilesetID = tilesetId;
5677
+ this.item.tileset.TilesetID = tilesetId_1;
5661
5678
  this.item.tileset.ClientAccountID = accountId;
5662
5679
  }
5663
5680
  }
5664
5681
  }
5682
+ tilesetId = (_c = this.item.tileset) === null || _c === void 0 ? void 0 : _c.TilesetID;
5683
+ if (!tilesetId) return [3 /*break*/, 2];
5665
5684
  return [4 /*yield*/, getTileset({
5666
5685
  apiGetter: this.apiGetter,
5667
5686
  menuItem: this.item
5668
5687
  })];
5669
5688
  case 1:
5670
- tileset = _f.sent();
5689
+ _f = _j.sent();
5690
+ return [3 /*break*/, 3];
5691
+ case 2:
5692
+ _f = null;
5693
+ _j.label = 3;
5694
+ case 3:
5695
+ _e = _f, tileset = _e.tileset, type = _e.type;
5671
5696
  if (tileset && loadUrlOverride) {
5672
5697
  tileset.loadUrl = loadUrlOverride;
5673
5698
  }
5674
- if (!(tileset === null || tileset === void 0 ? void 0 : tileset.type)) return [3 /*break*/, 2];
5675
- this.cTileset = TilesetRenderEngine.Render({
5676
- apiGetter: this.apiGetter,
5677
- tileset: tileset,
5678
- viewer: this.viewer,
5679
- coords: null
5680
- });
5681
- return [3 /*break*/, 7];
5682
- case 2:
5683
- if (!tileset) return [3 /*break*/, 7];
5684
- if (!tileset) return [3 /*break*/, 4];
5699
+ LEGACY_TYPES = [
5700
+ Tileset.EType.LegacyEntitiesSet,
5701
+ Tileset.EType.LegacyExternal,
5702
+ Tileset.EType.LegacyStatic
5703
+ ];
5704
+ if (!(!type || LEGACY_TYPES.includes(type))) return [3 /*break*/, 8];
5705
+ if (!tileset) return [3 /*break*/, 5];
5685
5706
  return [4 /*yield*/, getLegacyTileset({
5686
5707
  apiGetter: this.apiGetter,
5687
5708
  menuItem: this.item,
5688
5709
  tileset: tileset
5689
5710
  })];
5690
- case 3:
5691
- _d = _f.sent();
5692
- return [3 /*break*/, 5];
5693
5711
  case 4:
5694
- _d = null;
5695
- _f.label = 5;
5712
+ _g = _j.sent();
5713
+ return [3 /*break*/, 6];
5696
5714
  case 5:
5697
- legacyTileset = _d;
5698
- _e = this;
5715
+ _g = null;
5716
+ _j.label = 6;
5717
+ case 6:
5718
+ legacyTileset = _g;
5719
+ _h = this;
5699
5720
  return [4 /*yield*/, TilesetRenderEngine.RenderLegacy({
5700
5721
  apiGetter: this.apiGetter,
5701
5722
  tileset: legacyTileset,
5702
5723
  viewer: this.viewer,
5703
- ionId: (_c = this.item.IonResource) === null || _c === void 0 ? void 0 : _c.AssetID,
5724
+ ionId: (_d = this.item.IonResource) === null || _d === void 0 ? void 0 : _d.AssetID,
5704
5725
  loadUrl: loadUrlOverride
5705
5726
  })];
5706
- case 6:
5707
- _e.cTileset = _f.sent();
5708
- _f.label = 7;
5709
5727
  case 7:
5728
+ _h.cTileset = _j.sent();
5729
+ return [3 /*break*/, 9];
5730
+ case 8:
5731
+ if (tileset) {
5732
+ this.cTileset = TilesetRenderEngine.Render({
5733
+ apiGetter: this.apiGetter,
5734
+ tileset: tileset,
5735
+ viewer: this.viewer,
5736
+ coords: null
5737
+ });
5738
+ }
5739
+ _j.label = 9;
5740
+ case 9:
5710
5741
  this.cTileset.readyPromise.then(function () {
5711
5742
  try {
5712
5743
  if (_this.item.ApplyStyles) {
5713
5744
  var api = _this.apiGetter.getApi();
5714
5745
  _this.styler = new TilesetRenderEngine.CadStyler(api, _this.cTileset, _this.item.styleId, _this.item.StyleMapping);
5715
- _this.onCTilesetLoad();
5716
5746
  }
5747
+ _this.onCTilesetLoad();
5717
5748
  }
5718
5749
  catch (e) {
5719
5750
  console.error(e);