bruce-cesium 0.2.9 → 0.3.1

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 (78) hide show
  1. package/README.md +0 -0
  2. package/dist/bruce-cesium.es5.js +355 -42
  3. package/dist/bruce-cesium.es5.js.map +1 -1
  4. package/dist/bruce-cesium.umd.js +353 -40
  5. package/dist/bruce-cesium.umd.js.map +1 -1
  6. package/dist/lib/bruce-cesium.js +30 -30
  7. package/dist/lib/bruce-cesium.js.map +0 -0
  8. package/dist/lib/rendering/entity-render-engine.js +848 -848
  9. package/dist/lib/rendering/entity-render-engine.js.map +0 -0
  10. package/dist/lib/rendering/menu-item-manager.js +249 -247
  11. package/dist/lib/rendering/menu-item-manager.js.map +1 -1
  12. package/dist/lib/rendering/render-addons/measure-addon.js +186 -186
  13. package/dist/lib/rendering/render-addons/measure-addon.js.map +0 -0
  14. package/dist/lib/rendering/render-addons/render-addon.js +2 -2
  15. package/dist/lib/rendering/render-addons/render-addon.js.map +0 -0
  16. package/dist/lib/rendering/render-helper.js +279 -279
  17. package/dist/lib/rendering/render-helper.js.map +0 -0
  18. package/dist/lib/rendering/render-managers/common/shared-getters.js +31 -31
  19. package/dist/lib/rendering/render-managers/common/shared-getters.js.map +0 -0
  20. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +144 -144
  21. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js.map +0 -0
  22. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +141 -141
  23. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js.map +0 -0
  24. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +232 -232
  25. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js.map +0 -0
  26. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +138 -138
  27. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js.map +0 -0
  28. package/dist/lib/rendering/render-managers/render-manager.js +50 -50
  29. package/dist/lib/rendering/render-managers/render-manager.js.map +1 -1
  30. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +230 -230
  31. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js.map +0 -0
  32. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +321 -0
  33. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js.map +1 -0
  34. package/dist/lib/rendering/tile-render-engine.js +542 -492
  35. package/dist/lib/rendering/tile-render-engine.js.map +1 -1
  36. package/dist/lib/rendering/tileset-render-engine.js +472 -472
  37. package/dist/lib/rendering/tileset-render-engine.js.map +0 -0
  38. package/dist/lib/rendering/view-render-engine.js +138 -156
  39. package/dist/lib/rendering/view-render-engine.js.map +1 -1
  40. package/dist/lib/rendering/visuals-register.js +394 -394
  41. package/dist/lib/rendering/visuals-register.js.map +1 -1
  42. package/dist/lib/utils/drawing-utils.js +42 -42
  43. package/dist/lib/utils/drawing-utils.js.map +0 -0
  44. package/dist/lib/utils/entity-utils.js +99 -99
  45. package/dist/lib/utils/entity-utils.js.map +0 -0
  46. package/dist/lib/utils/measure-utils.js +34 -34
  47. package/dist/lib/utils/measure-utils.js.map +0 -0
  48. package/dist/lib/utils/view-utils.js +34 -34
  49. package/dist/lib/utils/view-utils.js.map +0 -0
  50. package/dist/lib/viewer/cesium-view-monitor.js +227 -227
  51. package/dist/lib/viewer/cesium-view-monitor.js.map +0 -0
  52. package/dist/lib/viewer/viewer-utils.js +85 -85
  53. package/dist/lib/viewer/viewer-utils.js.map +0 -0
  54. package/dist/types/bruce-cesium.d.ts +0 -0
  55. package/dist/types/rendering/entity-render-engine.d.ts +0 -0
  56. package/dist/types/rendering/menu-item-manager.d.ts +0 -0
  57. package/dist/types/rendering/render-addons/measure-addon.d.ts +0 -0
  58. package/dist/types/rendering/render-addons/render-addon.d.ts +0 -0
  59. package/dist/types/rendering/render-helper.d.ts +0 -0
  60. package/dist/types/rendering/render-managers/common/shared-getters.d.ts +0 -0
  61. package/dist/types/rendering/render-managers/entities/entities-ids-render-manager.d.ts +0 -0
  62. package/dist/types/rendering/render-managers/entities/entities-loaded-render-manager.d.ts +0 -0
  63. package/dist/types/rendering/render-managers/entities/entities-render-manager.d.ts +0 -0
  64. package/dist/types/rendering/render-managers/entities/entity-render-manager.d.ts +0 -0
  65. package/dist/types/rendering/render-managers/render-manager.d.ts +2 -1
  66. package/dist/types/rendering/render-managers/tilesets/tileset-cad-render-manager.d.ts +0 -0
  67. package/dist/types/rendering/render-managers/tilesets/tileset-osm-render-manager.d.ts +35 -0
  68. package/dist/types/rendering/tile-render-engine.d.ts +8 -0
  69. package/dist/types/rendering/tileset-render-engine.d.ts +0 -0
  70. package/dist/types/rendering/view-render-engine.d.ts +0 -0
  71. package/dist/types/rendering/visuals-register.d.ts +1 -0
  72. package/dist/types/utils/drawing-utils.d.ts +0 -0
  73. package/dist/types/utils/entity-utils.d.ts +0 -0
  74. package/dist/types/utils/measure-utils.d.ts +0 -0
  75. package/dist/types/utils/view-utils.d.ts +0 -0
  76. package/dist/types/viewer/cesium-view-monitor.d.ts +0 -0
  77. package/dist/types/viewer/viewer-utils.d.ts +0 -0
  78. package/package.json +73 -73
package/README.md CHANGED
File without changes
@@ -1,5 +1,5 @@
1
- import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityFilterGetter, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
2
- import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, Cartesian3, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, OrthographicFrustum, HeadingPitchRange, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
1
+ import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, BatchedDataGetter, ObjectUtils, Tileset, EntityFilterGetter, EntitySource, MenuItem, ProjectView, ProjectViewBookmark, ProjectViewTileSource, Camera, MathUtils } from 'bruce-models';
2
+ import { Color, HeightReference, Cartographic, Cartesian3, Entity, HorizontalOrigin, VerticalOrigin, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Cartesian2, Math as Math$1, Primitive, Cesium3DTileFeature, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, OrthographicFrustum, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, GridImageryProvider, GeographicTilingScheme, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, HeadingPitchRange, createOsmBuildings, Cesium3DTileStyle, Rectangle, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -2897,6 +2897,286 @@ var SharedGetters;
2897
2897
  SharedGetters.Cache = Cache;
2898
2898
  })(SharedGetters || (SharedGetters = {}));
2899
2899
 
2900
+ var MAX_BATCHES = 2;
2901
+ var BATCH_SIZE = 30;
2902
+ var BATCH_DELAY = 200;
2903
+ var MAX_RANGE = 3000;
2904
+ var TilesetOsmRenderManager;
2905
+ (function (TilesetOsmRenderManager) {
2906
+ var Manager = /** @class */ (function () {
2907
+ function Manager(viewer, visualsManager, apiGetter, monitor, item) {
2908
+ this.disposed = false;
2909
+ this.cTileset = null;
2910
+ this.counter = 0;
2911
+ this._loadedCesiumEntities = {};
2912
+ this.totalLoaded = 0;
2913
+ this.featureQueue = [];
2914
+ this.sourceId = null;
2915
+ this.entityTypeId = null;
2916
+ this.queueCheckInterval = null;
2917
+ this.processingQueue = 0;
2918
+ this.viewer = viewer;
2919
+ this.apiGetter = apiGetter;
2920
+ this.item = item;
2921
+ this.visualsManager = visualsManager;
2922
+ this.monitor = monitor;
2923
+ }
2924
+ Object.defineProperty(Manager.prototype, "Disposed", {
2925
+ get: function () {
2926
+ return this.disposed;
2927
+ },
2928
+ enumerable: false,
2929
+ configurable: true
2930
+ });
2931
+ Object.defineProperty(Manager.prototype, "count", {
2932
+ get: function () {
2933
+ return ++this.counter;
2934
+ },
2935
+ enumerable: false,
2936
+ configurable: true
2937
+ });
2938
+ Manager.prototype.Dispose = function () {
2939
+ if (this.disposed) {
2940
+ return;
2941
+ }
2942
+ clearInterval(this.queueCheckInterval);
2943
+ if (this.cTileset) {
2944
+ this.cTileset.show = false;
2945
+ }
2946
+ this.visualsManager.RemoveByMenuItemId(this.item.id);
2947
+ this.featureQueue = [];
2948
+ };
2949
+ Manager.prototype.Init = function () {
2950
+ var _a, _b;
2951
+ return __awaiter(this, void 0, void 0, function () {
2952
+ var menuItem;
2953
+ var _this = this;
2954
+ return __generator(this, function (_c) {
2955
+ menuItem = this.item;
2956
+ this.sourceId = (_a = menuItem.BruceEntity) === null || _a === void 0 ? void 0 : _a.SourceId;
2957
+ this.entityTypeId = (_b = menuItem.BruceEntity) === null || _b === void 0 ? void 0 : _b["EntityType.ID"];
2958
+ this.cTileset = createOsmBuildings();
2959
+ this.cTileset.show = true;
2960
+ if (this.sourceId) {
2961
+ if (menuItem.ghostLoading == true) {
2962
+ this.cTileset.style = new Cesium3DTileStyle({
2963
+ color: "rgba(255, 255, 250, 0.98)"
2964
+ });
2965
+ }
2966
+ this.viewer.scene.primitives.add(this.cTileset);
2967
+ this.cTileset.tileLoad.addEventListener(function (tile) {
2968
+ _this.mapCTile(tile);
2969
+ });
2970
+ this.queueCheckInterval = setInterval(function () {
2971
+ if (_this.featureQueue.length > 0) {
2972
+ _this.processQueue();
2973
+ }
2974
+ }, 5000);
2975
+ }
2976
+ else {
2977
+ this.viewer.scene.primitives.add(this.cTileset);
2978
+ }
2979
+ return [2 /*return*/];
2980
+ });
2981
+ });
2982
+ };
2983
+ Manager.prototype.mapCTile = function (tile) {
2984
+ return __awaiter(this, void 0, void 0, function () {
2985
+ var content, i, feature;
2986
+ return __generator(this, function (_a) {
2987
+ if (this.sourceId) {
2988
+ content = tile.content;
2989
+ for (i = 0; i < content.featuresLength; i++) {
2990
+ feature = content.getFeature(i);
2991
+ if (feature._counter == null) {
2992
+ feature._counter = this.count;
2993
+ }
2994
+ if (feature._orgColor == null) {
2995
+ feature._orgColor = feature.color;
2996
+ }
2997
+ this.featureQueue.push(feature);
2998
+ }
2999
+ this.processQueue();
3000
+ }
3001
+ return [2 /*return*/];
3002
+ });
3003
+ });
3004
+ };
3005
+ Manager.prototype.processQueue = function () {
3006
+ return __awaiter(this, void 0, void 0, function () {
3007
+ var batch, rerun, e_1;
3008
+ var _this = this;
3009
+ return __generator(this, function (_a) {
3010
+ switch (_a.label) {
3011
+ case 0:
3012
+ if (this.processingQueue >= MAX_BATCHES) {
3013
+ return [2 /*return*/];
3014
+ }
3015
+ else if (this.Disposed) {
3016
+ return [2 /*return*/];
3017
+ }
3018
+ this.processingQueue += 1;
3019
+ batch = [];
3020
+ rerun = false;
3021
+ _a.label = 1;
3022
+ case 1:
3023
+ _a.trys.push([1, 4, 5, 6]);
3024
+ batch = this.getVisualsForBatch();
3025
+ if (!(batch.length > 0)) return [3 /*break*/, 3];
3026
+ return [4 /*yield*/, this.mapTileBatch(batch)];
3027
+ case 2:
3028
+ _a.sent();
3029
+ _a.label = 3;
3030
+ case 3:
3031
+ if (this.totalLoaded > 8000) {
3032
+ rerun = this.removeFarAwayBatch();
3033
+ }
3034
+ else {
3035
+ rerun = this.featureQueue.length > 0 && batch.length > 0;
3036
+ }
3037
+ return [3 /*break*/, 6];
3038
+ case 4:
3039
+ e_1 = _a.sent();
3040
+ console.error(e_1);
3041
+ return [3 /*break*/, 6];
3042
+ case 5:
3043
+ setTimeout(function () {
3044
+ _this.processingQueue -= 1;
3045
+ if (rerun) {
3046
+ _this.processQueue();
3047
+ }
3048
+ }, BATCH_DELAY);
3049
+ return [7 /*endfinally*/];
3050
+ case 6: return [2 /*return*/];
3051
+ }
3052
+ });
3053
+ });
3054
+ };
3055
+ Manager.prototype.getVisualsForBatch = function () {
3056
+ var batch = [];
3057
+ var features = this.featureQueue;
3058
+ var bounds = this.monitor.GetBounds();
3059
+ var rect = (bounds === null || bounds === void 0 ? void 0 : bounds.east) ? new Rectangle(Math$1.toRadians(bounds.west), Math$1.toRadians(bounds.south), Math$1.toRadians(bounds.east), Math$1.toRadians(bounds.north)) : null;
3060
+ if (rect) {
3061
+ for (var i = 0; i < features.length; i++) {
3062
+ var feature = features[i];
3063
+ if (feature) {
3064
+ var featureLon = feature.getProperty("cesium#longitude");
3065
+ var featureLat = feature.getProperty("cesium#latitude");
3066
+ if (featureLon && featureLat) {
3067
+ var carto = Cartographic.fromDegrees(featureLon, featureLat, 0);
3068
+ var isIn = Rectangle.contains(rect, carto);
3069
+ if (isIn) {
3070
+ var isClose = this.getIsVisualWithinRange(feature, MAX_RANGE);
3071
+ if (isClose) {
3072
+ batch.push(feature);
3073
+ if (batch.length >= BATCH_SIZE) {
3074
+ return batch;
3075
+ }
3076
+ }
3077
+ }
3078
+ }
3079
+ }
3080
+ }
3081
+ }
3082
+ return batch;
3083
+ };
3084
+ Manager.prototype.getIsVisualWithinRange = function (visual, range) {
3085
+ var featureLon = visual.getProperty("cesium#longitude");
3086
+ var featureLat = visual.getProperty("cesium#latitude");
3087
+ if (featureLon && featureLat) {
3088
+ var pos = Cartesian3.fromDegrees(featureLon, featureLat, 0);
3089
+ var camPoint = this.monitor.GetTarget();
3090
+ var camPos = (camPoint === null || camPoint === void 0 ? void 0 : camPoint.latitude) ? Cartesian3.fromDegrees(camPoint.longitude, camPoint.latitude, camPoint.altitude) : null;
3091
+ if (camPos && Cartes.ValidateCartes3(camPos) && Cartes.ValidateCartes3(pos)) {
3092
+ var distance = Cartesian3.distance(pos, camPos);
3093
+ if (distance != null && distance <= range) {
3094
+ return true;
3095
+ }
3096
+ }
3097
+ }
3098
+ return false;
3099
+ };
3100
+ Manager.prototype.mapTileBatch = function (features) {
3101
+ return __awaiter(this, void 0, void 0, function () {
3102
+ var featureIds, featureMap, _loop_1, this_1, i, api, bIds, i, id, bId, feature, rego;
3103
+ return __generator(this, function (_a) {
3104
+ switch (_a.label) {
3105
+ case 0:
3106
+ featureIds = [];
3107
+ featureMap = [];
3108
+ _loop_1 = function (i) {
3109
+ var feature = features[i];
3110
+ var featureId = feature.getProperty("elementId");
3111
+ if (featureId) {
3112
+ featureMap.push(feature);
3113
+ featureIds.push(featureId + "");
3114
+ }
3115
+ var index = this_1.featureQueue.findIndex(function (x) { return x._counter == feature._counter; });
3116
+ if (index > -1) {
3117
+ this_1.featureQueue.splice(index, 1);
3118
+ }
3119
+ };
3120
+ this_1 = this;
3121
+ for (i = 0; i < features.length; i++) {
3122
+ _loop_1(i);
3123
+ }
3124
+ api = this.apiGetter.getApi(this.apiGetter.accountId, this.apiGetter.env);
3125
+ return [4 /*yield*/, EntitySource.GetEntityIdsBySourceKeys(api, this.sourceId, featureIds)];
3126
+ case 1:
3127
+ bIds = _a.sent();
3128
+ for (i = 0; i < featureIds.length; i++) {
3129
+ id = featureIds[i];
3130
+ bId = bIds[id];
3131
+ if (!bId) {
3132
+ bId = ObjectUtils.UId();
3133
+ }
3134
+ feature = featureMap[i];
3135
+ if (this.item.ghostLoading == true) {
3136
+ feature.color = feature._orgColor;
3137
+ }
3138
+ rego = {
3139
+ entityId: bId,
3140
+ menuItemId: this.item.id,
3141
+ priority: 0,
3142
+ visual: feature,
3143
+ entityTypeId: this.entityTypeId,
3144
+ sourceId: this.sourceId
3145
+ };
3146
+ this.visualsManager.Add(rego);
3147
+ this._loadedCesiumEntities[bId] = rego;
3148
+ }
3149
+ return [2 /*return*/];
3150
+ }
3151
+ });
3152
+ });
3153
+ };
3154
+ Manager.prototype.removeFarAwayBatch = function () {
3155
+ var removed = 0;
3156
+ var keys = Object.keys(this._loadedCesiumEntities);
3157
+ for (var i = 0; i < keys.length; i++) {
3158
+ var key = keys[i];
3159
+ var rego = this._loadedCesiumEntities[key];
3160
+ if (rego) {
3161
+ if (!this.getIsVisualWithinRange(rego.visual, MAX_RANGE)) {
3162
+ this.visualsManager.Remove(rego.entityId, this.item.id);
3163
+ this._loadedCesiumEntities[key] = null;
3164
+ delete this._loadedCesiumEntities[key];
3165
+ this.totalLoaded -= 1;
3166
+ removed += 1;
3167
+ if (removed >= BATCH_SIZE) {
3168
+ return true;
3169
+ }
3170
+ }
3171
+ }
3172
+ }
3173
+ return removed > 0;
3174
+ };
3175
+ return Manager;
3176
+ }());
3177
+ TilesetOsmRenderManager.Manager = Manager;
3178
+ })(TilesetOsmRenderManager || (TilesetOsmRenderManager = {}));
3179
+
2900
3180
  /**
2901
3181
  * Utility to keep track of enabled menu items within a Cesium viewer.
2902
3182
  */
@@ -2978,6 +3258,7 @@ var MenuItemManager;
2978
3258
  rItem.renderManager = new TilesetCadRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, params.item);
2979
3259
  break;
2980
3260
  case MenuItem.EType.Osm:
3261
+ rItem.renderManager = new TilesetOsmRenderManager.Manager(this.viewer, this.visualsRegister, params.apiGetter, this.sharedMonitor, params.item);
2981
3262
  // TODO;
2982
3263
  break;
2983
3264
  case MenuItem.EType.PointCloud:
@@ -3616,6 +3897,7 @@ var TileRenderEngine;
3616
3897
  }
3617
3898
  return layer;
3618
3899
  }
3900
+ Map.RenderLegacy = RenderLegacy;
3619
3901
  function RenderLegacyView(params) {
3620
3902
  var _a, _b, _c, _d, _e;
3621
3903
  return __awaiter(this, void 0, void 0, function () {
@@ -3636,7 +3918,7 @@ var TileRenderEngine;
3636
3918
  case 3:
3637
3919
  data = [];
3638
3920
  dataNames = [];
3639
- if ((_a = bookmark.Settings) === null || _a === void 0 ? void 0 : _a.imagery) {
3921
+ if ((_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _a === void 0 ? void 0 : _a.imagery) {
3640
3922
  for (i = 0; i < bookmark.Settings.imagery.length; i++) {
3641
3923
  source = bookmark.Settings.imagery[i];
3642
3924
  dataNames.push(source.title);
@@ -3773,54 +4055,85 @@ var TileRenderEngine;
3773
4055
  }
3774
4056
  }
3775
4057
  Terrain.RenderLegacy = RenderLegacy;
4058
+ function RenderLegacyView(params) {
4059
+ var _a, _b, _c, _d, _e;
4060
+ return __awaiter(this, void 0, void 0, function () {
4061
+ var api, view, bookmark, terrainTiles, terrainTile, terrainTileName, i, tile;
4062
+ return __generator(this, function (_f) {
4063
+ switch (_f.label) {
4064
+ case 0:
4065
+ api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
4066
+ return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
4067
+ case 1:
4068
+ view = _f.sent();
4069
+ bookmark = null;
4070
+ if (!params.bookmarkId) return [3 /*break*/, 3];
4071
+ return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
4072
+ case 2:
4073
+ bookmark = _f.sent();
4074
+ _f.label = 3;
4075
+ case 3:
4076
+ terrainTiles = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.CesiumTerrainSources) !== null && _b !== void 0 ? _b : [];
4077
+ terrainTile = null;
4078
+ terrainTileName = null;
4079
+ if ((_c = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _c === void 0 ? void 0 : _c.terrain) {
4080
+ terrainTileName = bookmark.Settings.terrain;
4081
+ }
4082
+ else {
4083
+ terrainTileName = (_d = view.Settings) === null || _d === void 0 ? void 0 : _d.DefaultTerrain;
4084
+ }
4085
+ return [4 /*yield*/, ProjectViewTileSource.MergeTerrainTemplateData(params.apiGetter, terrainTiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumTerrainSources) == null)];
4086
+ case 4:
4087
+ _f.sent();
4088
+ for (i = 0; i < terrainTiles.length; i++) {
4089
+ tile = terrainTiles[i];
4090
+ if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
4091
+ terrainTile = tile;
4092
+ break;
4093
+ }
4094
+ }
4095
+ if (terrainTile) {
4096
+ TileRenderEngine.Terrain.RenderLegacy({
4097
+ data: terrainTile,
4098
+ viewer: params.viewer,
4099
+ });
4100
+ }
4101
+ return [2 /*return*/];
4102
+ }
4103
+ });
4104
+ });
4105
+ }
4106
+ Terrain.RenderLegacyView = RenderLegacyView;
3776
4107
  })(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
3777
4108
  })(TileRenderEngine || (TileRenderEngine = {}));
3778
4109
 
3779
4110
  var ViewRenderEngine;
3780
4111
  (function (ViewRenderEngine) {
3781
4112
  function Render(params) {
3782
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k;
4113
+ var _a, _b, _c, _d, _e;
3783
4114
  return __awaiter(this, void 0, void 0, function () {
3784
- var api, view, bookmark, terrainTiles, terrainTile, terrainTileName, i, tile, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
3785
- return __generator(this, function (_l) {
3786
- switch (_l.label) {
4115
+ var api, view, bookmark, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
4116
+ return __generator(this, function (_f) {
4117
+ switch (_f.label) {
3787
4118
  case 0:
3788
4119
  api = params.apiGetter.getApi(params.apiGetter.accountId, params.apiGetter.env);
3789
4120
  return [4 /*yield*/, ProjectView.Get(api, params.viewId)];
3790
4121
  case 1:
3791
- view = _l.sent();
4122
+ view = _f.sent();
3792
4123
  bookmark = null;
3793
4124
  if (!params.bookmarkId) return [3 /*break*/, 3];
3794
4125
  return [4 /*yield*/, ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
3795
4126
  case 2:
3796
- bookmark = _l.sent();
3797
- _l.label = 3;
3798
- case 3:
3799
- terrainTiles = (_b = (_a = view.Settings) === null || _a === void 0 ? void 0 : _a.CesiumTerrainSources) !== null && _b !== void 0 ? _b : [];
3800
- terrainTile = null;
3801
- terrainTileName = null;
3802
- if ((_c = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _c === void 0 ? void 0 : _c.terrain) {
3803
- terrainTileName = bookmark.Settings.terrain;
3804
- }
3805
- else {
3806
- terrainTileName = (_d = view.Settings) === null || _d === void 0 ? void 0 : _d.DefaultTerrain;
3807
- }
3808
- return [4 /*yield*/, ProjectViewTileSource.MergeTerrainTemplateData(params.apiGetter, terrainTiles, ((_e = view.Settings) === null || _e === void 0 ? void 0 : _e.CesiumTerrainSources) == null)];
4127
+ bookmark = _f.sent();
4128
+ _f.label = 3;
4129
+ case 3: return [4 /*yield*/, TileRenderEngine.Terrain.RenderLegacyView({
4130
+ apiGetter: params.apiGetter,
4131
+ bookmarkId: params.bookmarkId,
4132
+ viewer: params.manager.Viewer,
4133
+ viewId: params.viewId,
4134
+ })];
3809
4135
  case 4:
3810
- _l.sent();
3811
- for (i = 0; i < terrainTiles.length; i++) {
3812
- tile = terrainTiles[i];
3813
- if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
3814
- terrainTile = tile;
3815
- break;
3816
- }
3817
- }
3818
- if (terrainTile) {
3819
- TileRenderEngine.Terrain.RenderLegacy({
3820
- data: terrainTile,
3821
- viewer: params.manager.Viewer,
3822
- });
3823
- }
4136
+ _f.sent();
3824
4137
  return [4 /*yield*/, TileRenderEngine.Map.RenderLegacyView({
3825
4138
  apiGetter: params.apiGetter,
3826
4139
  bookmarkId: params.bookmarkId,
@@ -3829,8 +4142,8 @@ var ViewRenderEngine;
3829
4142
  ignoreIds: []
3830
4143
  })];
3831
4144
  case 5:
3832
- _l.sent();
3833
- frustum = (_f = bookmark.Settings) === null || _f === void 0 ? void 0 : _f.cameraFrustum;
4145
+ _f.sent();
4146
+ frustum = (_a = bookmark.Settings) === null || _a === void 0 ? void 0 : _a.cameraFrustum;
3834
4147
  if (frustum == null) {
3835
4148
  frustum = Camera.EFrustum.Perspective;
3836
4149
  }
@@ -3858,16 +4171,16 @@ var ViewRenderEngine;
3858
4171
  },
3859
4172
  duration: params.skipTransition ? 0 : 2
3860
4173
  });
3861
- go = (_g = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _g === void 0 ? void 0 : _g.groundOcclusion;
4174
+ go = (_b = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _b === void 0 ? void 0 : _b.groundOcclusion;
3862
4175
  if (go == null) {
3863
- go = (_h = view.Settings) === null || _h === void 0 ? void 0 : _h.GroundOcclusion;
4176
+ go = (_c = view.Settings) === null || _c === void 0 ? void 0 : _c.GroundOcclusion;
3864
4177
  }
3865
4178
  if (go == null) {
3866
4179
  go = false;
3867
4180
  }
3868
4181
  params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
3869
4182
  enabledItems = params.manager.GetEnabledItemIds();
3870
- newItemIds = (_k = (_j = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _j === void 0 ? void 0 : _j.selectedItemIds) !== null && _k !== void 0 ? _k : [];
4183
+ newItemIds = (_e = (_d = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _d === void 0 ? void 0 : _d.selectedItemIds) !== null && _e !== void 0 ? _e : [];
3871
4184
  for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
3872
4185
  id = enabledItems_1[_i];
3873
4186
  if (newItemIds.indexOf(id) === -1) {
@@ -3880,8 +4193,8 @@ var ViewRenderEngine;
3880
4193
  manager: params.manager,
3881
4194
  }, params.viewId, params.bookmarkId)];
3882
4195
  case 6:
3883
- _l.sent();
3884
- _l.label = 7;
4196
+ _f.sent();
4197
+ _f.label = 7;
3885
4198
  case 7: return [2 /*return*/];
3886
4199
  }
3887
4200
  });