bruce-cesium 1.1.8 → 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, OrthographicFrustum, JulianDate, Cesium3DTileColorBlendMode, HeadingPitchRange, createWorldTerrain, EllipsoidTerrainProvider, CesiumTerrainProvider, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, MapboxStyleImageryProvider, ArcGisMapServerImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, IonImageryProvider, Matrix4, Cesium3DTileStyle, Cesium3DTileset, IonResource, EllipsoidGeodesic, sampleTerrainMostDetailed, PolygonPipeline, 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,37 +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
- console.log("RENDER LEGACY", JSON.parse(JSON.stringify(params.tileset)));
4150
+ apiGetter = params.apiGetter, viewer = params.viewer, tileset = params.tileset, ionId = params.ionId, loadUrl = params.loadUrl;
4151
4151
  settings = tileset === null || tileset === void 0 ? void 0 : tileset.Settings;
4152
4152
  settings = __assign({}, settings);
4153
4153
  visual = settings.visual;
4154
4154
  visual = __assign({}, visual);
4155
4155
  etc = settings.etc;
4156
4156
  etc = __assign({}, etc);
4157
- loadUrl = null;
4158
4157
  if (!ionId) return [3 /*break*/, 2];
4159
4158
  return [4 /*yield*/, IonResource.fromAssetId(EnsureNumber(ionId))];
4160
4159
  case 1:
4161
4160
  // TODO: Can cause issues with menu-item dispose race conditions.
4162
- loadUrl = _a.sent();
4161
+ loadUrl = (_a.sent());
4163
4162
  return [3 /*break*/, 3];
4164
4163
  case 2:
4165
- if (tileset) {
4166
- if (etc === null || etc === void 0 ? void 0 : etc.ExternalTilesetURL) {
4167
- loadUrl = etc.ExternalTilesetURL;
4168
- }
4169
- else {
4170
- api = apiGetter.getApi(apiGetter.accountId);
4171
- loadUrl = api.GetBaseUrl() + ("ui.tileset/" + tileset.ID + "/file/tileset.json");
4172
- }
4164
+ if (etc === null || etc === void 0 ? void 0 : etc.ExternalTilesetURL) {
4165
+ loadUrl = etc.ExternalTilesetURL;
4173
4166
  }
4174
4167
  _a.label = 3;
4175
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
+ }
4176
4173
  cTileset = new Cesium3DTileset({
4177
4174
  url: loadUrl
4178
4175
  });
@@ -5618,6 +5615,7 @@ var TilesetArbRenderManager;
5618
5615
  this.viewer = params.viewer;
5619
5616
  this.apiGetter = params.apiGetter;
5620
5617
  this.item = params.item;
5618
+ this.visualsManager = params.register;
5621
5619
  }
5622
5620
  Object.defineProperty(Manager.prototype, "Disposed", {
5623
5621
  get: function () {
@@ -5636,24 +5634,43 @@ var TilesetArbRenderManager;
5636
5634
  Manager.prototype.Init = function () {
5637
5635
  var _a, _b, _c;
5638
5636
  return __awaiter(this, void 0, void 0, function () {
5639
- var itemUrl, tileset, legacyTileset, _d;
5637
+ var loadUrlOverride, itemUrl, url, urlParts, tilesetId, accountId, tileset, legacyTileset, _d, _e;
5640
5638
  var _this = this;
5641
- return __generator(this, function (_e) {
5642
- switch (_e.label) {
5639
+ return __generator(this, function (_f) {
5640
+ switch (_f.label) {
5643
5641
  case 0:
5644
- itemUrl = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetURL;
5645
- if (itemUrl && itemUrl.includes("cc3d.api")) {
5646
- this.item.tileset.ClientAccountID = "cc3d";
5647
- }
5648
- else if ((_b = this.item.IonResource) === null || _b === void 0 ? void 0 : _b.AssetID) {
5649
- this.item.tileset.ClientAccountID = "cc3d";
5642
+ loadUrlOverride = null;
5643
+ if (this.item.tileset) {
5644
+ itemUrl = (_a = this.item.tileset) === null || _a === void 0 ? void 0 : _a.TilesetURL;
5645
+ if (itemUrl && itemUrl.includes("cc3d.api")) {
5646
+ this.item.tileset.ClientAccountID = "cc3d";
5647
+ }
5648
+ else if ((_b = this.item.IonResource) === null || _b === void 0 ? void 0 : _b.AssetID) {
5649
+ this.item.tileset.ClientAccountID = "cc3d";
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
+ }
5650
5664
  }
5651
5665
  return [4 /*yield*/, getTileset({
5652
5666
  apiGetter: this.apiGetter,
5653
5667
  menuItem: this.item
5654
5668
  })];
5655
5669
  case 1:
5656
- tileset = _e.sent();
5670
+ tileset = _f.sent();
5671
+ if (tileset && loadUrlOverride) {
5672
+ tileset.loadUrl = loadUrlOverride;
5673
+ }
5657
5674
  if (!(tileset === null || tileset === void 0 ? void 0 : tileset.type)) return [3 /*break*/, 2];
5658
5675
  this.cTileset = TilesetRenderEngine.Render({
5659
5676
  apiGetter: this.apiGetter,
@@ -5661,25 +5678,35 @@ var TilesetArbRenderManager;
5661
5678
  viewer: this.viewer,
5662
5679
  coords: null
5663
5680
  });
5664
- return [3 /*break*/, 5];
5665
- case 2: return [4 /*yield*/, getLegacyTileset({
5666
- apiGetter: this.apiGetter,
5667
- menuItem: this.item,
5668
- tileset: tileset
5669
- })];
5681
+ return [3 /*break*/, 7];
5682
+ case 2:
5683
+ if (!tileset) return [3 /*break*/, 7];
5684
+ if (!tileset) return [3 /*break*/, 4];
5685
+ return [4 /*yield*/, getLegacyTileset({
5686
+ apiGetter: this.apiGetter,
5687
+ menuItem: this.item,
5688
+ tileset: tileset
5689
+ })];
5670
5690
  case 3:
5671
- legacyTileset = _e.sent();
5672
- _d = this;
5691
+ _d = _f.sent();
5692
+ return [3 /*break*/, 5];
5693
+ case 4:
5694
+ _d = null;
5695
+ _f.label = 5;
5696
+ case 5:
5697
+ legacyTileset = _d;
5698
+ _e = this;
5673
5699
  return [4 /*yield*/, TilesetRenderEngine.RenderLegacy({
5674
5700
  apiGetter: this.apiGetter,
5675
5701
  tileset: legacyTileset,
5676
5702
  viewer: this.viewer,
5677
- 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
5678
5705
  })];
5679
- case 4:
5680
- _d.cTileset = _e.sent();
5681
- _e.label = 5;
5682
- case 5:
5706
+ case 6:
5707
+ _e.cTileset = _f.sent();
5708
+ _f.label = 7;
5709
+ case 7:
5683
5710
  this.cTileset.readyPromise.then(function () {
5684
5711
  try {
5685
5712
  if (_this.item.ApplyStyles) {