bruce-cesium 0.1.2 → 0.1.3

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
- import { Cartesian2, Cartographic, Math as Math$1, Color, HeightReference, Cartesian3, Entity, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Primitive, Cesium3DTileFeature, HeadingPitchRange, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
2
1
  import { BruceEvent, Cartes, Carto, Geometry, ZoomControl, Style, EntityTag, Calculator, EntityLod, EntityType, ClientFile, DelayQueue, Entity as Entity$1, EntityFilterGetter, BatchedDataGetter, ObjectUtils, Tileset, MenuItem, ProjectView, ProjectViewBookmark } from 'bruce-models';
2
+ import { Cartesian2, Cartographic, Math as Math$1, Viewer, ArcGisMapServerImageryProvider, ScreenSpaceEventType, Entity, Primitive, Cesium3DTileFeature, Color, HeightReference, Cartesian3, ClassificationType, ArcType, PolygonHierarchy, ShadowMode, PolylineGraphics, HeadingPitchRoll, Transforms, ColorBlendMode, HeadingPitchRange, BingMapsImageryProvider, BingMapsStyle, MapboxImageryProvider, OpenStreetMapImageryProvider, ImageryLayer, UrlTemplateImageryProvider, TileMapServiceImageryProvider, createWorldTerrain, CesiumTerrainProvider, EllipsoidTerrainProvider, Matrix4, Cesium3DTileset, EllipsoidGeodesic } from 'cesium';
3
3
 
4
4
  var TIME_LAG = 300;
5
5
  var POSITION_CHECK_TIMER = 950;
@@ -3124,5 +3124,452 @@ var RenderHelper;
3124
3124
  RenderHelper.RenderTileset = RenderTileset;
3125
3125
  })(RenderHelper || (RenderHelper = {}));
3126
3126
 
3127
- export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager };
3127
+ var re = /[\0-\x1F\x7F-\x9F\xAD\u0378\u0379\u037F-\u0383\u038B\u038D\u03A2\u0528-\u0530\u0557\u0558\u0560\u0588\u058B-\u058E\u0590\u05C8-\u05CF\u05EB-\u05EF\u05F5-\u0605\u061C\u061D\u06DD\u070E\u070F\u074B\u074C\u07B2-\u07BF\u07FB-\u07FF\u082E\u082F\u083F\u085C\u085D\u085F-\u089F\u08A1\u08AD-\u08E3\u08FF\u0978\u0980\u0984\u098D\u098E\u0991\u0992\u09A9\u09B1\u09B3-\u09B5\u09BA\u09BB\u09C5\u09C6\u09C9\u09CA\u09CF-\u09D6\u09D8-\u09DB\u09DE\u09E4\u09E5\u09FC-\u0A00\u0A04\u0A0B-\u0A0E\u0A11\u0A12\u0A29\u0A31\u0A34\u0A37\u0A3A\u0A3B\u0A3D\u0A43-\u0A46\u0A49\u0A4A\u0A4E-\u0A50\u0A52-\u0A58\u0A5D\u0A5F-\u0A65\u0A76-\u0A80\u0A84\u0A8E\u0A92\u0AA9\u0AB1\u0AB4\u0ABA\u0ABB\u0AC6\u0ACA\u0ACE\u0ACF\u0AD1-\u0ADF\u0AE4\u0AE5\u0AF2-\u0B00\u0B04\u0B0D\u0B0E\u0B11\u0B12\u0B29\u0B31\u0B34\u0B3A\u0B3B\u0B45\u0B46\u0B49\u0B4A\u0B4E-\u0B55\u0B58-\u0B5B\u0B5E\u0B64\u0B65\u0B78-\u0B81\u0B84\u0B8B-\u0B8D\u0B91\u0B96-\u0B98\u0B9B\u0B9D\u0BA0-\u0BA2\u0BA5-\u0BA7\u0BAB-\u0BAD\u0BBA-\u0BBD\u0BC3-\u0BC5\u0BC9\u0BCE\u0BCF\u0BD1-\u0BD6\u0BD8-\u0BE5\u0BFB-\u0C00\u0C04\u0C0D\u0C11\u0C29\u0C34\u0C3A-\u0C3C\u0C45\u0C49\u0C4E-\u0C54\u0C57\u0C5A-\u0C5F\u0C64\u0C65\u0C70-\u0C77\u0C80\u0C81\u0C84\u0C8D\u0C91\u0CA9\u0CB4\u0CBA\u0CBB\u0CC5\u0CC9\u0CCE-\u0CD4\u0CD7-\u0CDD\u0CDF\u0CE4\u0CE5\u0CF0\u0CF3-\u0D01\u0D04\u0D0D\u0D11\u0D3B\u0D3C\u0D45\u0D49\u0D4F-\u0D56\u0D58-\u0D5F\u0D64\u0D65\u0D76-\u0D78\u0D80\u0D81\u0D84\u0D97-\u0D99\u0DB2\u0DBC\u0DBE\u0DBF\u0DC7-\u0DC9\u0DCB-\u0DCE\u0DD5\u0DD7\u0DE0-\u0DF1\u0DF5-\u0E00\u0E3B-\u0E3E\u0E5C-\u0E80\u0E83\u0E85\u0E86\u0E89\u0E8B\u0E8C\u0E8E-\u0E93\u0E98\u0EA0\u0EA4\u0EA6\u0EA8\u0EA9\u0EAC\u0EBA\u0EBE\u0EBF\u0EC5\u0EC7\u0ECE\u0ECF\u0EDA\u0EDB\u0EE0-\u0EFF\u0F48\u0F6D-\u0F70\u0F98\u0FBD\u0FCD\u0FDB-\u0FFF\u10C6\u10C8-\u10CC\u10CE\u10CF\u1249\u124E\u124F\u1257\u1259\u125E\u125F\u1289\u128E\u128F\u12B1\u12B6\u12B7\u12BF\u12C1\u12C6\u12C7\u12D7\u1311\u1316\u1317\u135B\u135C\u137D-\u137F\u139A-\u139F\u13F5-\u13FF\u169D-\u169F\u16F1-\u16FF\u170D\u1715-\u171F\u1737-\u173F\u1754-\u175F\u176D\u1771\u1774-\u177F\u17DE\u17DF\u17EA-\u17EF\u17FA-\u17FF\u180F\u181A-\u181F\u1878-\u187F\u18AB-\u18AF\u18F6-\u18FF\u191D-\u191F\u192C-\u192F\u193C-\u193F\u1941-\u1943\u196E\u196F\u1975-\u197F\u19AC-\u19AF\u19CA-\u19CF\u19DB-\u19DD\u1A1C\u1A1D\u1A5F\u1A7D\u1A7E\u1A8A-\u1A8F\u1A9A-\u1A9F\u1AAE-\u1AFF\u1B4C-\u1B4F\u1B7D-\u1B7F\u1BF4-\u1BFB\u1C38-\u1C3A\u1C4A-\u1C4C\u1C80-\u1CBF\u1CC8-\u1CCF\u1CF7-\u1CFF\u1DE7-\u1DFB\u1F16\u1F17\u1F1E\u1F1F\u1F46\u1F47\u1F4E\u1F4F\u1F58\u1F5A\u1F5C\u1F5E\u1F7E\u1F7F\u1FB5\u1FC5\u1FD4\u1FD5\u1FDC\u1FF0\u1FF1\u1FF5\u1FFF\u200B-\u200F\u202A-\u202E\u2060-\u206F\u2072\u2073\u208F\u209D-\u209F\u20BB-\u20CF\u20F1-\u20FF\u218A-\u218F\u23F4-\u23FF\u2427-\u243F\u244B-\u245F\u2700\u2B4D-\u2B4F\u2B5A-\u2BFF\u2C2F\u2C5F\u2CF4-\u2CF8\u2D26\u2D28-\u2D2C\u2D2E\u2D2F\u2D68-\u2D6E\u2D71-\u2D7E\u2D97-\u2D9F\u2DA7\u2DAF\u2DB7\u2DBF\u2DC7\u2DCF\u2DD7\u2DDF\u2E3C-\u2E7F\u2E9A\u2EF4-\u2EFF\u2FD6-\u2FEF\u2FFC-\u2FFF\u3040\u3097\u3098\u3100-\u3104\u312E-\u3130\u318F\u31BB-\u31BF\u31E4-\u31EF\u321F\u32FF\u4DB6-\u4DBF\u9FCD-\u9FFF\uA48D-\uA48F\uA4C7-\uA4CF\uA62C-\uA63F\uA698-\uA69E\uA6F8-\uA6FF\uA78F\uA794-\uA79F\uA7AB-\uA7F7\uA82C-\uA82F\uA83A-\uA83F\uA878-\uA87F\uA8C5-\uA8CD\uA8DA-\uA8DF\uA8FC-\uA8FF\uA954-\uA95E\uA97D-\uA97F\uA9CE\uA9DA-\uA9DD\uA9E0-\uA9FF\uAA37-\uAA3F\uAA4E\uAA4F\uAA5A\uAA5B\uAA7C-\uAA7F\uAAC3-\uAADA\uAAF7-\uAB00\uAB07\uAB08\uAB0F\uAB10\uAB17-\uAB1F\uAB27\uAB2F-\uABBF\uABEE\uABEF\uABFA-\uABFF\uD7A4-\uD7AF\uD7C7-\uD7CA\uD7FC-\uF8FF\uFA6E\uFA6F\uFADA-\uFAFF\uFB07-\uFB12\uFB18-\uFB1C\uFB37\uFB3D\uFB3F\uFB42\uFB45\uFBC2-\uFBD2\uFD40-\uFD4F\uFD90\uFD91\uFDC8-\uFDEF\uFDFE\uFDFF\uFE1A-\uFE1F\uFE27-\uFE2F\uFE53\uFE67\uFE6C-\uFE6F\uFE75\uFEFD-\uFF00\uFFBF-\uFFC1\uFFC8\uFFC9\uFFD0\uFFD1\uFFD8\uFFD9\uFFDD-\uFFDF\uFFE7\uFFEF-\uFFFB\uFFFE\uFFFF]/g;
3128
+ function prepLegacyName(name) {
3129
+ if (!name) {
3130
+ return "";
3131
+ }
3132
+ name = name.replace(/" "/g, "");
3133
+ name = name.replace(re, "");
3134
+ name = name.toLowerCase();
3135
+ return name;
3136
+ }
3137
+ var DEFAULT_TERRAIN_NAMES = [
3138
+ "cesiumworldterrain",
3139
+ "linz",
3140
+ "flatterrain",
3141
+ "grid"
3142
+ ];
3143
+ function isDefaultTerrain(name) {
3144
+ name = prepLegacyName(name);
3145
+ return DEFAULT_TERRAIN_NAMES.includes(name);
3146
+ }
3147
+ function createTerrainBId(source) {
3148
+ if (!source) {
3149
+ return "";
3150
+ }
3151
+ if (isDefaultTerrain(source.Name)) {
3152
+ return source.Name;
3153
+ }
3154
+ if (source.SourceUrl) {
3155
+ return source.SourceUrl;
3156
+ }
3157
+ return "";
3158
+ }
3159
+ function createImageryBId(source) {
3160
+ if (!source) {
3161
+ return "";
3162
+ }
3163
+ if (isDefaultTerrain(source.Name)) {
3164
+ return source.Name;
3165
+ }
3166
+ if (source.SourceUrl) {
3167
+ return source.SourceUrl;
3168
+ }
3169
+ return "";
3170
+ }
3171
+ var DEFAULT_IMAGERY_NAMES = [
3172
+ "bingmapsaerial",
3173
+ "bingmapsaerialwithlabels",
3174
+ "bingmapsroads",
3175
+ "mapboxsatellite",
3176
+ "mapboxstreets",
3177
+ "mapboxstreetsclassic",
3178
+ "esriworldimagery",
3179
+ "esriworldstreetmap",
3180
+ "esrinationalgeographic",
3181
+ "openstreetmap",
3182
+ "stamenwatercolor",
3183
+ "stamentoner",
3184
+ "grid"
3185
+ ];
3186
+ function isDefaultImagery(name) {
3187
+ name = prepLegacyName(name);
3188
+ return DEFAULT_IMAGERY_NAMES.includes(name);
3189
+ }
3190
+ var DEFAULT_BING_KEY = "AqL0uYT5T84jiJeX55_b9zJeeP3MX2p1WLOHH4ljIEPZ7ZL2M81bYLzyYeSwuzzl";
3191
+ var DEFAULT_MAPBOX_KEY = "pk.eyJ1IjoiYWxleHRodW5kZXIiLCJhIjoiY2psbHJxbnN5MTBvbzNxczZwMHNpeTI0MCJ9.fdoj2QW_7n8RV4e0NCFgZA";
3192
+ function gatherEnabledImageries(viewer) {
3193
+ var collection = viewer.imageryLayers;
3194
+ var layers = [];
3195
+ for (var i = 0; i < collection.length; i++) {
3196
+ var layer = collection.get(i);
3197
+ layers.push(layer);
3198
+ }
3199
+ return layers;
3200
+ }
3201
+ var TileRenderEngine;
3202
+ (function (TileRenderEngine) {
3203
+ /**
3204
+ * Legacy data did name comparisons instead of ids.
3205
+ * We need to strip spacing, remove special characters, and make lowercase before comparison...
3206
+ * @param nameA
3207
+ * @param nameB
3208
+ */
3209
+ function CompareLegacyNames(nameA, nameB) {
3210
+ nameA = prepLegacyName(nameA);
3211
+ nameB = prepLegacyName(nameB);
3212
+ return nameA === nameB;
3213
+ }
3214
+ TileRenderEngine.CompareLegacyNames = CompareLegacyNames;
3215
+ var Map;
3216
+ (function (Map) {
3217
+ function MarkProvider(provider, id) {
3218
+ provider._bId = id;
3219
+ }
3220
+ Map.MarkProvider = MarkProvider;
3221
+ function Render(params) {
3222
+ throw ("Not implemented");
3223
+ }
3224
+ Map.Render = Render;
3225
+ function RenderLegacy(params) {
3226
+ var enabled = gatherEnabledImageries(params.viewer);
3227
+ var tile = params.data;
3228
+ var bId = createImageryBId(tile);
3229
+ var layer = enabled.find(function (x) { return x._bId == bId; });
3230
+ if (layer) ;
3231
+ else if (isDefaultImagery(tile.Name)) {
3232
+ var provider = null;
3233
+ // TODO: Rest of defaults.
3234
+ // TODO: Should be enum.
3235
+ switch (prepLegacyName(tile.Name)) {
3236
+ case "bingmapsaerial":
3237
+ // TODO: Read account key if available.
3238
+ provider = new BingMapsImageryProvider({
3239
+ url: "https://dev.virtualearth.net",
3240
+ mapStyle: BingMapsStyle.AERIAL,
3241
+ key: DEFAULT_BING_KEY
3242
+ });
3243
+ break;
3244
+ case "mapboxsatellite":
3245
+ // TODO: Read account key if available.
3246
+ provider = new MapboxImageryProvider({
3247
+ mapId: "mapbox.satellite",
3248
+ accessToken: DEFAULT_MAPBOX_KEY
3249
+ });
3250
+ break;
3251
+ case "openstreetmap":
3252
+ provider = new OpenStreetMapImageryProvider({
3253
+ url: "https://a.tile.openstreetmap.org/"
3254
+ });
3255
+ break;
3256
+ }
3257
+ if (provider) {
3258
+ layer = new ImageryLayer(provider);
3259
+ }
3260
+ }
3261
+ else if (tile.SourceUrl) {
3262
+ var provider = null;
3263
+ var min = tile.Minimum;
3264
+ var max = tile.Maximum;
3265
+ if (min != undefined && min <= -1) {
3266
+ min = undefined;
3267
+ }
3268
+ if (max != undefined && max <= -1) {
3269
+ max = undefined;
3270
+ }
3271
+ // TODO: Should be enum.
3272
+ switch (tile.Type) {
3273
+ case "BruceImagery":
3274
+ provider = new UrlTemplateImageryProvider({
3275
+ url: tile.SourceUrl,
3276
+ tileHeight: 256,
3277
+ tileWidth: 256
3278
+ });
3279
+ break;
3280
+ case "ArcGisImagery":
3281
+ provider = new OpenStreetMapImageryProvider({
3282
+ url: tile.SourceUrl,
3283
+ fileExtension: tile.FileExtension,
3284
+ minimumLevel: min,
3285
+ maximumLevel: max
3286
+ });
3287
+ break;
3288
+ case "TileMapImagery":
3289
+ provider = new TileMapServiceImageryProvider({
3290
+ url: tile.SourceUrl,
3291
+ fileExtension: tile.FileExtension,
3292
+ minimumLevel: min,
3293
+ maximumLevel: max
3294
+ });
3295
+ break;
3296
+ case "OpenStreetMapImagery":
3297
+ provider = new OpenStreetMapImageryProvider({
3298
+ url: tile.SourceUrl,
3299
+ fileExtension: tile.FileExtension,
3300
+ minimumLevel: min,
3301
+ maximumLevel: max
3302
+ });
3303
+ break;
3304
+ case "MapBoxImagery":
3305
+ // TODO: Read default account key when missing.
3306
+ provider = new UrlTemplateImageryProvider({
3307
+ url: "https://api.mapbox.com/styles/v1/"
3308
+ + tile.MapBoxUsername + "/" + tile.MapBoxID +
3309
+ "/tiles/256/{z}/{x}/{y}?access_token="
3310
+ + tile.ProgramKey
3311
+ });
3312
+ break;
3313
+ }
3314
+ if (provider) {
3315
+ layer = new ImageryLayer(provider);
3316
+ }
3317
+ }
3318
+ if (layer) {
3319
+ layer._bId = bId;
3320
+ if (!params.viewer.imageryLayers.contains(layer)) {
3321
+ params.viewer.imageryLayers.add(layer);
3322
+ }
3323
+ }
3324
+ return layer;
3325
+ }
3326
+ function RenderLegacyView(params) {
3327
+ var _a, _b, _c, _d;
3328
+ return __awaiter(this, void 0, void 0, function () {
3329
+ var view, bookmark, data, dataNames, i, source, tiles, i, name_1, j, tile, enabled, layers, _loop_1, i, i, tile, layer, i, layer;
3330
+ return __generator(this, function (_e) {
3331
+ switch (_e.label) {
3332
+ case 0: return [4 /*yield*/, ProjectView.Get(params.api, params.viewId)];
3333
+ case 1:
3334
+ view = _e.sent();
3335
+ bookmark = null;
3336
+ if (!params.bookmarkId) return [3 /*break*/, 3];
3337
+ return [4 /*yield*/, ProjectViewBookmark.Get(params.api, params.viewId, params.bookmarkId)];
3338
+ case 2:
3339
+ bookmark = _e.sent();
3340
+ _e.label = 3;
3341
+ case 3:
3342
+ data = [];
3343
+ dataNames = [];
3344
+ if ((_a = bookmark.Settings) === null || _a === void 0 ? void 0 : _a.imagery) {
3345
+ for (i = 0; i < bookmark.Settings.imagery.length; i++) {
3346
+ source = bookmark.Settings.imagery[i];
3347
+ dataNames.push(source.title);
3348
+ }
3349
+ }
3350
+ else if ((_b = view.Settings) === null || _b === void 0 ? void 0 : _b.DefaultMapTiles) {
3351
+ dataNames.push(view.Settings.DefaultMapTiles);
3352
+ }
3353
+ tiles = (_d = (_c = view.Settings) === null || _c === void 0 ? void 0 : _c.CesiumMapSources) !== null && _d !== void 0 ? _d : [];
3354
+ for (i = 0; i < dataNames.length; i++) {
3355
+ name_1 = dataNames[i];
3356
+ for (j = 0; j < tiles.length; j++) {
3357
+ tile = tiles[j];
3358
+ if (CompareLegacyNames(tile.Name, name_1)) {
3359
+ data.push(tile);
3360
+ break;
3361
+ }
3362
+ }
3363
+ }
3364
+ enabled = gatherEnabledImageries(params.viewer);
3365
+ layers = [];
3366
+ // Gather layers we want to render.
3367
+ // Any new layer is added to viewer at the bottom.
3368
+ if (params.ignoreIds) {
3369
+ _loop_1 = function (i) {
3370
+ var id = params.ignoreIds[i];
3371
+ var layer = enabled.find(function (x) {
3372
+ var layer = x;
3373
+ if (layer._bId === id) {
3374
+ return true;
3375
+ }
3376
+ });
3377
+ if (layer) {
3378
+ layers.push(layer);
3379
+ }
3380
+ };
3381
+ for (i = 0; i < params.ignoreIds.length; i++) {
3382
+ _loop_1(i);
3383
+ }
3384
+ }
3385
+ for (i = 0; i < tiles.length; i++) {
3386
+ tile = tiles[i];
3387
+ layer = RenderLegacy({
3388
+ api: params.api,
3389
+ viewer: params.viewer,
3390
+ data: tile,
3391
+ });
3392
+ if (layer) {
3393
+ layers.push(layer);
3394
+ }
3395
+ }
3396
+ // Sort currently enabled (after new ones added) to match desired order.
3397
+ enabled = gatherEnabledImageries(params.viewer);
3398
+ enabled.sort(function (a, b) {
3399
+ var indexA = layers.indexOf(a);
3400
+ var indexB = layers.indexOf(b);
3401
+ if (indexA < 0 && indexB < 0) {
3402
+ return 0;
3403
+ }
3404
+ if (indexA < 0) {
3405
+ return 1;
3406
+ }
3407
+ if (indexB < 0) {
3408
+ return -1;
3409
+ }
3410
+ return indexA - indexB;
3411
+ });
3412
+ // Move enabled layers to match desired order.
3413
+ // Remove any layers that aren't in enabled list.
3414
+ enabled = enabled.reverse();
3415
+ for (i = 0; i < enabled.length; i++) {
3416
+ layer = enabled[i];
3417
+ if (layers.includes(layer)) {
3418
+ params.viewer.imageryLayers.raiseToTop(layer);
3419
+ }
3420
+ else {
3421
+ params.viewer.imageryLayers.remove(layer);
3422
+ }
3423
+ }
3424
+ return [2 /*return*/];
3425
+ }
3426
+ });
3427
+ });
3428
+ }
3429
+ Map.RenderLegacyView = RenderLegacyView;
3430
+ })(Map = TileRenderEngine.Map || (TileRenderEngine.Map = {}));
3431
+ var Terrain;
3432
+ (function (Terrain) {
3433
+ function Render(params) {
3434
+ throw ("Not implemented");
3435
+ }
3436
+ Terrain.Render = Render;
3437
+ function RenderLegacy(params) {
3438
+ var bId = createTerrainBId(params.data);
3439
+ var curProvider = params.viewer.terrainProvider;
3440
+ if (curProvider._bId && curProvider._bId === bId) {
3441
+ return;
3442
+ }
3443
+ var provider = null;
3444
+ if (isDefaultTerrain(params.data.Name)) {
3445
+ var name_2 = prepLegacyName(params.data.Name);
3446
+ switch (name_2) {
3447
+ // TODO: Should be enum.
3448
+ case "cesiumworldterrain":
3449
+ provider = createWorldTerrain({
3450
+ requestVertexNormals: true
3451
+ });
3452
+ break;
3453
+ case "linz":
3454
+ provider = new CesiumTerrainProvider({
3455
+ url: "https://s3-ap-southeast-2.amazonaws.com/digitalnewzealand/PROD/Tilesets/nz-dem",
3456
+ requestVertexNormals: true
3457
+ });
3458
+ break;
3459
+ case "flatterrain":
3460
+ provider = new EllipsoidTerrainProvider();
3461
+ break;
3462
+ }
3463
+ }
3464
+ else if (params.data.SourceUrl) {
3465
+ provider = new CesiumTerrainProvider({
3466
+ url: params.data.SourceUrl,
3467
+ requestWaterMask: params.data.RequestWaterMask,
3468
+ requestVertexNormals: true
3469
+ });
3470
+ }
3471
+ if (provider) {
3472
+ provider._bId = bId;
3473
+ params.viewer.terrainProvider = provider;
3474
+ }
3475
+ }
3476
+ Terrain.RenderLegacy = RenderLegacy;
3477
+ })(Terrain = TileRenderEngine.Terrain || (TileRenderEngine.Terrain = {}));
3478
+ })(TileRenderEngine || (TileRenderEngine = {}));
3479
+
3480
+ var ViewRenderEngine;
3481
+ (function (ViewRenderEngine) {
3482
+ function Render(params) {
3483
+ var _a, _b, _c, _d, _e, _f, _g;
3484
+ return __awaiter(this, void 0, void 0, function () {
3485
+ var view, bookmark, terrainTile, terrainTileName, i, tile, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
3486
+ return __generator(this, function (_h) {
3487
+ switch (_h.label) {
3488
+ case 0: return [4 /*yield*/, TileRenderEngine.Map.RenderLegacyView({
3489
+ api: params.api,
3490
+ bookmarkId: params.bookmarkId,
3491
+ viewer: params.manager.Viewer,
3492
+ viewId: params.viewId,
3493
+ ignoreIds: []
3494
+ })];
3495
+ case 1:
3496
+ _h.sent();
3497
+ return [4 /*yield*/, ProjectView.Get(params.api, params.viewId)];
3498
+ case 2:
3499
+ view = _h.sent();
3500
+ bookmark = null;
3501
+ if (!params.bookmarkId) return [3 /*break*/, 4];
3502
+ return [4 /*yield*/, ProjectViewBookmark.Get(params.api, params.viewId, params.bookmarkId)];
3503
+ case 3:
3504
+ bookmark = _h.sent();
3505
+ _h.label = 4;
3506
+ case 4:
3507
+ terrainTile = null;
3508
+ terrainTileName = null;
3509
+ if ((_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _a === void 0 ? void 0 : _a.terrain) {
3510
+ terrainTileName = bookmark.Settings.terrain;
3511
+ }
3512
+ else {
3513
+ terrainTileName = (_b = view.Settings) === null || _b === void 0 ? void 0 : _b.DefaultTerrain;
3514
+ }
3515
+ if ((_c = view.Settings) === null || _c === void 0 ? void 0 : _c.CesiumTerrainSources) {
3516
+ for (i = 0; i < view.Settings.CesiumTerrainSources.length; i++) {
3517
+ tile = view.Settings.CesiumTerrainSources[i];
3518
+ if (TileRenderEngine.CompareLegacyNames(tile.Name, terrainTileName)) {
3519
+ terrainTile = tile;
3520
+ break;
3521
+ }
3522
+ }
3523
+ }
3524
+ if (terrainTile) {
3525
+ TileRenderEngine.Terrain.RenderLegacy({
3526
+ data: terrainTile,
3527
+ viewer: params.manager.Viewer,
3528
+ });
3529
+ }
3530
+ camera = bookmark.Camera;
3531
+ pos = Cartesian3.fromDegrees(+camera.position.longitude, +camera.position.latitude, +camera.position.height);
3532
+ params.manager.Viewer.scene.camera.flyTo({
3533
+ destination: pos,
3534
+ orientation: {
3535
+ heading: +camera.heading,
3536
+ pitch: +camera.pitch,
3537
+ roll: +camera.roll
3538
+ },
3539
+ duration: params.skipTransition ? 0 : 2
3540
+ });
3541
+ go = (_d = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _d === void 0 ? void 0 : _d.groundOcclusion;
3542
+ if (go == null) {
3543
+ go = (_e = view.Settings) === null || _e === void 0 ? void 0 : _e.GroundOcclusion;
3544
+ }
3545
+ if (go == null) {
3546
+ go = false;
3547
+ }
3548
+ params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
3549
+ enabledItems = params.manager.GetEnabledItemIds();
3550
+ newItemIds = (_g = (_f = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _f === void 0 ? void 0 : _f.selectedItemIds) !== null && _g !== void 0 ? _g : [];
3551
+ for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
3552
+ id = enabledItems_1[_i];
3553
+ if (newItemIds.indexOf(id) === -1) {
3554
+ params.manager.RemoveItemById(id);
3555
+ }
3556
+ }
3557
+ if (!params.bookmarkId) return [3 /*break*/, 6];
3558
+ return [4 /*yield*/, RenderHelper.RenderBookmarkItems({
3559
+ api: params.api,
3560
+ apiGetter: params.apiGetter,
3561
+ manager: params.manager,
3562
+ }, params.viewId, params.bookmarkId)];
3563
+ case 5:
3564
+ _h.sent();
3565
+ _h.label = 6;
3566
+ case 6: return [2 /*return*/];
3567
+ }
3568
+ });
3569
+ });
3570
+ }
3571
+ ViewRenderEngine.Render = Render;
3572
+ })(ViewRenderEngine || (ViewRenderEngine = {}));
3573
+
3574
+ export { CesiumViewMonitor, ViewerUtils, MenuItemManager, EntityRenderEngine, RenderHelper, VisualsRegister, RenderManager, EntitiesIdsRenderManager, EntitiesLoadedRenderManager, EntitiesRenderManager, EntityRenderManager, TilesetCadRenderManager, ViewRenderEngine, TileRenderEngine };
3128
3575
  //# sourceMappingURL=bruce-cesium.es5.js.map