bruce-cesium 1.1.9 → 1.2.0

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, Color, HeightReference, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Primitive, Cesium3DTileFeature, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, OrthographicFrustum, JulianDate, Cesium3DTileColorBlendMode, HeadingPitchRange, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, Matrix4, Cesium3DTileStyle, Cesium3DTileset, IonResource, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, CallbackProperty, createOsmBuildings, KmlDataSource } from 'cesium';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Cartesian3, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cesium3DTileColorBlendMode, HeadingPitchRange, OrthographicFrustum, JulianDate, Matrix4, Cesium3DTileStyle, Cesium3DTileset, IonResource, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, PolygonPipeline, CallbackProperty, ColorMaterialProperty, Rectangle, Matrix3, EasingFunction, GeometryInstance, EllipsoidGeodesic, sampleTerrainMostDetailed, KmlDataSource, createOsmBuildings } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -4050,9 +4050,10 @@ var TilesetRenderEngine;
4050
4050
  TilesetRenderEngine.ApplySettings = ApplySettings;
4051
4051
  function Render(params) {
4052
4052
  var api = params.apiGetter.getApi(params.apiGetter.accountId);
4053
+ var loadUrl = params.tileset.loadUrl;
4053
4054
  if (params.tileset.type == Tileset.EType.Cad) {
4054
4055
  var cTileset_1 = new Cesium3DTileset({
4055
- url: Tileset.GetPublicFileUrl({
4056
+ url: loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4056
4057
  api: api,
4057
4058
  tilesetId: params.tileset.id,
4058
4059
  file: "tileset.json"
@@ -4089,7 +4090,7 @@ var TilesetRenderEngine;
4089
4090
  }
4090
4091
  else if (params.tileset.type === Tileset.EType.EntitiesSet) {
4091
4092
  var cTileset = new Cesium3DTileset({
4092
- url: Tileset.GetPublicFileUrl({
4093
+ url: loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4093
4094
  api: api,
4094
4095
  tilesetId: params.tileset.id,
4095
4096
  file: "tileset.json"
@@ -4100,7 +4101,7 @@ var TilesetRenderEngine;
4100
4101
  }
4101
4102
  else if (params.tileset.type == Tileset.EType.PointCloud) {
4102
4103
  var cTileset_2 = new Cesium3DTileset({
4103
- url: Tileset.GetPublicFileUrl({
4104
+ url: loadUrl ? loadUrl : Tileset.GetPublicFileUrl({
4104
4105
  api: api,
4105
4106
  tilesetId: params.tileset.id,
4106
4107
  file: "tileset.json"
@@ -4142,36 +4143,33 @@ var TilesetRenderEngine;
4142
4143
  TilesetRenderEngine.Render = Render;
4143
4144
  function RenderLegacy(params) {
4144
4145
  return __awaiter(this, void 0, void 0, function () {
4145
- var apiGetter, viewer, tileset, ionId, settings, visual, etc, loadUrl, api, cTileset;
4146
+ var apiGetter, viewer, tileset, ionId, loadUrl, settings, visual, etc, api, cTileset;
4146
4147
  return __generator(this, function (_a) {
4147
4148
  switch (_a.label) {
4148
4149
  case 0:
4149
- apiGetter = params.apiGetter, viewer = params.viewer, tileset = params.tileset, ionId = params.ionId;
4150
+ apiGetter = params.apiGetter, viewer = params.viewer, tileset = params.tileset, ionId = params.ionId, loadUrl = params.loadUrl;
4150
4151
  settings = tileset === null || tileset === void 0 ? void 0 : tileset.Settings;
4151
4152
  settings = __assign({}, settings);
4152
4153
  visual = settings.visual;
4153
4154
  visual = __assign({}, visual);
4154
4155
  etc = settings.etc;
4155
4156
  etc = __assign({}, etc);
4156
- loadUrl = null;
4157
4157
  if (!ionId) return [3 /*break*/, 2];
4158
4158
  return [4 /*yield*/, IonResource.fromAssetId(EnsureNumber(ionId))];
4159
4159
  case 1:
4160
4160
  // TODO: Can cause issues with menu-item dispose race conditions.
4161
- loadUrl = _a.sent();
4161
+ loadUrl = (_a.sent());
4162
4162
  return [3 /*break*/, 3];
4163
4163
  case 2:
4164
- if (tileset) {
4165
- if (etc === null || etc === void 0 ? void 0 : etc.ExternalTilesetURL) {
4166
- loadUrl = etc.ExternalTilesetURL;
4167
- }
4168
- else {
4169
- api = apiGetter.getApi(apiGetter.accountId);
4170
- loadUrl = api.GetBaseUrl() + ("ui.tileset/" + tileset.ID + "/file/tileset.json");
4171
- }
4164
+ if (etc === null || etc === void 0 ? void 0 : etc.ExternalTilesetURL) {
4165
+ loadUrl = etc.ExternalTilesetURL;
4172
4166
  }
4173
4167
  _a.label = 3;
4174
4168
  case 3:
4169
+ if (!loadUrl && tileset) {
4170
+ api = apiGetter.getApi(apiGetter.accountId);
4171
+ loadUrl = api.GetBaseUrl() + ("ui.tileset/" + tileset.ID + "/file/tileset.json");
4172
+ }
4175
4173
  cTileset = new Cesium3DTileset({
4176
4174
  url: loadUrl
4177
4175
  });
@@ -5617,6 +5615,7 @@ var TilesetArbRenderManager;
5617
5615
  this.viewer = params.viewer;
5618
5616
  this.apiGetter = params.apiGetter;
5619
5617
  this.item = params.item;
5618
+ this.visualsManager = params.register;
5620
5619
  }
5621
5620
  Object.defineProperty(Manager.prototype, "Disposed", {
5622
5621
  get: function () {
@@ -5635,12 +5634,12 @@ var TilesetArbRenderManager;
5635
5634
  Manager.prototype.Init = function () {
5636
5635
  var _a, _b, _c;
5637
5636
  return __awaiter(this, void 0, void 0, function () {
5638
- var itemUrl, tileset, legacyTileset, _d, _e;
5637
+ var loadUrlOverride, itemUrl, url, urlParts, tilesetId, accountId, tileset, legacyTileset, _d, _e;
5639
5638
  var _this = this;
5640
5639
  return __generator(this, function (_f) {
5641
5640
  switch (_f.label) {
5642
5641
  case 0:
5643
- // Horrid backwards compatibility.
5642
+ loadUrlOverride = null;
5644
5643
  if (this.item.tileset) {
5645
5644
  itemUrl = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetURL;
5646
5645
  if (itemUrl && itemUrl.includes("cc3d.api")) {
@@ -5649,6 +5648,19 @@ var TilesetArbRenderManager;
5649
5648
  else if ((_b = this.item.IonResource) === null || _b === void 0 ? void 0 : _b.AssetID) {
5650
5649
  this.item.tileset.ClientAccountID = "cc3d";
5651
5650
  }
5651
+ // Try fix a legacy record.
5652
+ // Eg: https://my3dcity.api.nextspace-uat-us.net/ui.tileset/0838d707-38af-4592-a2d4-5028997cab85/file/tileset.json
5653
+ if (!this.item.tileset.TilesetID && this.item.tileset.TilesetURL) {
5654
+ loadUrlOverride = this.item.tileset.TilesetURL;
5655
+ url = this.item.tileset.TilesetURL;
5656
+ urlParts = url.split("/");
5657
+ if (urlParts.length > 5) {
5658
+ tilesetId = urlParts[urlParts.length - 3];
5659
+ accountId = urlParts[urlParts.length - 5].split(".")[0];
5660
+ this.item.tileset.TilesetID = tilesetId;
5661
+ this.item.tileset.ClientAccountID = accountId;
5662
+ }
5663
+ }
5652
5664
  }
5653
5665
  return [4 /*yield*/, getTileset({
5654
5666
  apiGetter: this.apiGetter,
@@ -5656,6 +5668,9 @@ var TilesetArbRenderManager;
5656
5668
  })];
5657
5669
  case 1:
5658
5670
  tileset = _f.sent();
5671
+ if (tileset && loadUrlOverride) {
5672
+ tileset.loadUrl = loadUrlOverride;
5673
+ }
5659
5674
  if (!(tileset === null || tileset === void 0 ? void 0 : tileset.type)) return [3 /*break*/, 2];
5660
5675
  this.cTileset = TilesetRenderEngine.Render({
5661
5676
  apiGetter: this.apiGetter,
@@ -5685,7 +5700,8 @@ var TilesetArbRenderManager;
5685
5700
  apiGetter: this.apiGetter,
5686
5701
  tileset: legacyTileset,
5687
5702
  viewer: this.viewer,
5688
- ionId: (_c = this.item.IonResource) === null || _c === void 0 ? void 0 : _c.AssetID
5703
+ ionId: (_c = this.item.IonResource) === null || _c === void 0 ? void 0 : _c.AssetID,
5704
+ loadUrl: loadUrlOverride
5689
5705
  })];
5690
5706
  case 6:
5691
5707
  _e.cTileset = _f.sent();