bruce-cesium 0.4.1 → 0.4.2

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 (31) hide show
  1. package/dist/bruce-cesium.es5.js +9 -1
  2. package/dist/bruce-cesium.es5.js.map +1 -1
  3. package/dist/bruce-cesium.umd.js +8 -0
  4. package/dist/bruce-cesium.umd.js.map +1 -1
  5. package/dist/lib/bruce-cesium.js +30 -30
  6. package/dist/lib/rendering/entity-render-engine.js +848 -848
  7. package/dist/lib/rendering/menu-item-manager.js +252 -252
  8. package/dist/lib/rendering/render-addons/measure-addon.js +186 -186
  9. package/dist/lib/rendering/render-addons/render-addon.js +2 -2
  10. package/dist/lib/rendering/render-helper.js +296 -296
  11. package/dist/lib/rendering/render-managers/common/shared-getters.js +31 -31
  12. package/dist/lib/rendering/render-managers/entities/entities-ids-render-manager.js +146 -146
  13. package/dist/lib/rendering/render-managers/entities/entities-loaded-render-manager.js +143 -143
  14. package/dist/lib/rendering/render-managers/entities/entities-render-manager.js +234 -234
  15. package/dist/lib/rendering/render-managers/entities/entity-render-manager.js +139 -139
  16. package/dist/lib/rendering/render-managers/render-manager.js +50 -50
  17. package/dist/lib/rendering/render-managers/tilesets/tileset-cad-render-manager.js +236 -236
  18. package/dist/lib/rendering/render-managers/tilesets/tileset-osm-render-manager.js +320 -320
  19. package/dist/lib/rendering/tile-render-engine.js +815 -815
  20. package/dist/lib/rendering/tileset-render-engine.js +499 -499
  21. package/dist/lib/rendering/view-render-engine.js +305 -305
  22. package/dist/lib/rendering/visuals-register.js +402 -394
  23. package/dist/lib/rendering/visuals-register.js.map +1 -1
  24. package/dist/lib/utils/drawing-utils.js +42 -42
  25. package/dist/lib/utils/entity-utils.js +99 -99
  26. package/dist/lib/utils/measure-utils.js +34 -34
  27. package/dist/lib/utils/view-utils.js +72 -72
  28. package/dist/lib/viewer/cesium-view-monitor.js +231 -231
  29. package/dist/lib/viewer/viewer-utils.js +85 -85
  30. package/dist/types/rendering/visuals-register.d.ts +2 -0
  31. package/package.json +76 -76
@@ -1,306 +1,306 @@
1
- "use strict";
2
- var __assign = (this && this.__assign) || function () {
3
- __assign = Object.assign || function(t) {
4
- for (var s, i = 1, n = arguments.length; i < n; i++) {
5
- s = arguments[i];
6
- for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
- t[p] = s[p];
8
- }
9
- return t;
10
- };
11
- return __assign.apply(this, arguments);
12
- };
13
- var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
- function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
- return new (P || (P = Promise))(function (resolve, reject) {
16
- function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
- function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
- function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
- step((generator = generator.apply(thisArg, _arguments || [])).next());
20
- });
21
- };
22
- var __generator = (this && this.__generator) || function (thisArg, body) {
23
- var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
- return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
- function verb(n) { return function (v) { return step([n, v]); }; }
26
- function step(op) {
27
- if (f) throw new TypeError("Generator is already executing.");
28
- while (_) try {
29
- if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
- if (y = 0, t) op = [op[0] & 2, t.value];
31
- switch (op[0]) {
32
- case 0: case 1: t = op; break;
33
- case 4: _.label++; return { value: op[1], done: false };
34
- case 5: _.label++; y = op[1]; op = [0]; continue;
35
- case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
- default:
37
- if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
- if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
- if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
- if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
- if (t[2]) _.ops.pop();
42
- _.trys.pop(); continue;
43
- }
44
- op = body.call(thisArg, _);
45
- } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
- if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
- }
48
- };
49
- Object.defineProperty(exports, "__esModule", { value: true });
50
- exports.ViewRenderEngine = void 0;
51
- var bruce_models_1 = require("bruce-models");
52
- var render_helper_1 = require("./render-helper");
53
- var Cesium = require("cesium");
54
- var tile_render_engine_1 = require("./tile-render-engine");
55
- function renderV1(params, bookmark, view) {
56
- var _a, _b;
57
- return __awaiter(this, void 0, void 0, function () {
58
- var vSettings, bSettings, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
59
- return __generator(this, function (_c) {
60
- switch (_c.label) {
61
- case 0:
62
- vSettings = view.Settings;
63
- bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
64
- return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Terrain.V1.RenderView({
65
- apiGetter: params.apiGetter,
66
- bookmarkId: params.bookmarkId,
67
- viewer: params.manager.Viewer,
68
- viewId: params.viewId,
69
- })];
70
- case 1:
71
- _c.sent();
72
- return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Map.V1.RenderView({
73
- apiGetter: params.apiGetter,
74
- bookmarkId: params.bookmarkId,
75
- viewer: params.manager.Viewer,
76
- viewId: params.viewId,
77
- ignoreIds: []
78
- })];
79
- case 2:
80
- _c.sent();
81
- frustum = bSettings === null || bSettings === void 0 ? void 0 : bSettings.cameraFrustum;
82
- if (frustum == null) {
83
- frustum = bruce_models_1.Camera.EFrustum.Perspective;
84
- }
85
- scene = params.manager.Viewer.scene;
86
- curFrustum = scene.camera.frustum instanceof Cesium.OrthographicFrustum ? bruce_models_1.Camera.EFrustum.Orthographic : bruce_models_1.Camera.EFrustum.Perspective;
87
- if (curFrustum != frustum) {
88
- if (frustum == bruce_models_1.Camera.EFrustum.Perspective) {
89
- scene.camera.switchToPerspectiveFrustum();
90
- scene.screenSpaceCameraController.enableTilt = true;
91
- }
92
- else {
93
- scene.camera.switchToOrthographicFrustum();
94
- scene.screenSpaceCameraController.enableTilt = false;
95
- }
96
- params.skipTransition = true;
97
- }
98
- camera = bookmark.Camera;
99
- pos = Cesium.Cartesian3.fromDegrees(+camera.position.longitude, +camera.position.latitude, +camera.position.height);
100
- params.manager.Viewer.scene.camera.flyTo({
101
- destination: pos,
102
- orientation: {
103
- heading: +camera.heading,
104
- pitch: +camera.pitch,
105
- roll: +camera.roll
106
- },
107
- duration: params.skipTransition ? 0 : 2
108
- });
109
- go = (_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _a === void 0 ? void 0 : _a.groundOcclusion;
110
- if (go == null) {
111
- go = vSettings === null || vSettings === void 0 ? void 0 : vSettings.GroundOcclusion;
112
- }
113
- if (go == null) {
114
- go = false;
115
- }
116
- params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
117
- enabledItems = params.manager.GetEnabledItemIds();
118
- newItemIds = (_b = bSettings === null || bSettings === void 0 ? void 0 : bSettings.selectedItemIds) !== null && _b !== void 0 ? _b : [];
119
- for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
120
- id = enabledItems_1[_i];
121
- if (newItemIds.indexOf(id) === -1) {
122
- params.manager.RemoveItemById(id);
123
- }
124
- }
125
- if (!params.bookmarkId) return [3 /*break*/, 4];
126
- return [4 /*yield*/, render_helper_1.RenderHelper.RenderBookmarkItems({
127
- apiGetter: params.apiGetter,
128
- manager: params.manager,
129
- }, params.viewId, params.bookmarkId)];
130
- case 3:
131
- _c.sent();
132
- _c.label = 4;
133
- case 4: return [2 /*return*/];
134
- }
135
- });
136
- });
137
- }
138
- function renderV2(params, bookmark, view) {
139
- var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
140
- return __awaiter(this, void 0, void 0, function () {
141
- var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, gOcclusion, terrain, imagery, curEnabled, newItemIds, _i, curEnabled_1, id;
142
- return __generator(this, function (_t) {
143
- switch (_t.label) {
144
- case 0:
145
- viewer = params.manager.Viewer;
146
- scene = viewer.scene;
147
- vSettings = view.Settings;
148
- bSettings = ((_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) !== null && _a !== void 0 ? _a : {});
149
- defaults = (_b = vSettings.defaults) !== null && _b !== void 0 ? _b : {};
150
- camera = ((_c = bookmark.Camera) !== null && _c !== void 0 ? _c : {});
151
- if (!bruce_models_1.Carto.ValidateCarto(camera)) {
152
- camera = __assign(__assign({}, camera), { altitude: (_d = defaults.camera) === null || _d === void 0 ? void 0 : _d.altitude, latitude: (_e = defaults.camera) === null || _e === void 0 ? void 0 : _e.latitude, longitude: (_f = defaults.camera) === null || _f === void 0 ? void 0 : _f.longitude, heading: (_g = defaults.camera) === null || _g === void 0 ? void 0 : _g.heading, pitch: (_h = defaults.camera) === null || _h === void 0 ? void 0 : _h.pitch, roll: (_j = defaults.camera) === null || _j === void 0 ? void 0 : _j.roll });
153
- }
154
- newLens = camera.cameraFrustum;
155
- if (newLens == null) {
156
- newLens = (_k = defaults.camera) === null || _k === void 0 ? void 0 : _k.cameraFrustum;
157
- }
158
- if (newLens == null) {
159
- // TODO: Need global default.
160
- newLens = bruce_models_1.Camera.EFrustum.Perspective;
161
- }
162
- curLens = scene.camera.frustum instanceof Cesium.OrthographicFrustum ?
163
- bruce_models_1.Camera.EFrustum.Orthographic :
164
- bruce_models_1.Camera.EFrustum.Perspective;
165
- if (newLens != curLens) {
166
- if (newLens == bruce_models_1.Camera.EFrustum.Perspective) {
167
- scene.camera.switchToPerspectiveFrustum();
168
- scene.screenSpaceCameraController.enableTilt = true;
169
- }
170
- else {
171
- scene.camera.switchToOrthographicFrustum();
172
- scene.screenSpaceCameraController.enableTilt = false;
173
- }
174
- }
175
- transition = params.skipTransition ? 0 : curLens === newLens ? camera.transition : 0;
176
- if (transition == null) {
177
- transition = (_l = defaults.camera) === null || _l === void 0 ? void 0 : _l.transition;
178
- }
179
- if (transition == null) {
180
- // TODO: Need global default.
181
- transition = 2000;
182
- }
183
- if (bruce_models_1.Carto.ValidateCarto(camera)) {
184
- pos = Cesium.Cartesian3.fromDegrees(+camera.longitude, +camera.latitude, +camera.altitude);
185
- scene.camera.flyTo({
186
- destination: pos,
187
- orientation: {
188
- heading: Cesium.Math.toRadians(+camera.heading),
189
- pitch: Cesium.Math.toRadians(+camera.pitch),
190
- roll: Cesium.Math.toRadians(+camera.roll)
191
- },
192
- duration: transition != 0 ? transition / 1000 : 0
193
- });
194
- }
195
- gOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.groundOcclusion;
196
- if (gOcclusion == null) {
197
- gOcclusion = (_m = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _m === void 0 ? void 0 : _m.groundOcclusion;
198
- }
199
- if (gOcclusion == null) {
200
- // TODO: Need global default.
201
- gOcclusion = true;
202
- }
203
- scene.globe.depthTestAgainstTerrain = Boolean(gOcclusion);
204
- terrain = (_o = bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain) !== null && _o !== void 0 ? _o : (_p = defaults.settings) === null || _p === void 0 ? void 0 : _p.terrain;
205
- if (!terrain) return [3 /*break*/, 2];
206
- return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Terrain.V2.Render({
207
- apiGetter: params.apiGetter,
208
- tile: terrain,
209
- viewer: params.manager.Viewer,
210
- })];
211
- case 1:
212
- _t.sent();
213
- _t.label = 2;
214
- case 2:
215
- imagery = (_q = bSettings.imagery) !== null && _q !== void 0 ? _q : (_r = defaults.settings) === null || _r === void 0 ? void 0 : _r.imagery;
216
- if (imagery == null) {
217
- // TODO: Need global default.
218
- imagery = [
219
- {
220
- accountId: null,
221
- tilesetId: bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite,
222
- alpha: 1,
223
- brightness: 1,
224
- contrast: 1,
225
- gamma: 1,
226
- hue: 0,
227
- saturation: 1
228
- }
229
- ];
230
- }
231
- return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Map.V2.Render({
232
- apiGetter: params.apiGetter,
233
- tiles: imagery,
234
- viewer: params.manager.Viewer,
235
- })];
236
- case 3:
237
- _t.sent();
238
- curEnabled = params.manager.GetEnabledItemIds();
239
- newItemIds = (_s = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _s !== void 0 ? _s : [];
240
- _i = 0, curEnabled_1 = curEnabled;
241
- _t.label = 4;
242
- case 4:
243
- if (!(_i < curEnabled_1.length)) return [3 /*break*/, 7];
244
- id = curEnabled_1[_i];
245
- if (!(newItemIds.indexOf(id) === -1)) return [3 /*break*/, 6];
246
- return [4 /*yield*/, params.manager.RemoveItemById(id)];
247
- case 5:
248
- _t.sent();
249
- _t.label = 6;
250
- case 6:
251
- _i++;
252
- return [3 /*break*/, 4];
253
- case 7:
254
- if (!params.bookmarkId) return [3 /*break*/, 9];
255
- return [4 /*yield*/, render_helper_1.RenderHelper.RenderBookmarkItems({
256
- apiGetter: params.apiGetter,
257
- manager: params.manager,
258
- }, params.viewId, params.bookmarkId)];
259
- case 8:
260
- _t.sent();
261
- _t.label = 9;
262
- case 9: return [2 /*return*/];
263
- }
264
- });
265
- });
266
- }
267
- var ViewRenderEngine;
268
- (function (ViewRenderEngine) {
269
- function Render(params) {
270
- return __awaiter(this, void 0, void 0, function () {
271
- var api, view, bookmark, version;
272
- return __generator(this, function (_a) {
273
- switch (_a.label) {
274
- case 0:
275
- api = params.apiGetter.getApi();
276
- return [4 /*yield*/, bruce_models_1.ProjectView.Get(api, params.viewId)];
277
- case 1:
278
- view = _a.sent();
279
- bookmark = null;
280
- if (!params.bookmarkId) return [3 /*break*/, 3];
281
- return [4 /*yield*/, bruce_models_1.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
282
- case 2:
283
- bookmark = _a.sent();
284
- _a.label = 3;
285
- case 3:
286
- if (bookmark && view.DataVersion != bookmark.DataVersion) {
287
- throw new Error("View and bookmark settings version mismatch.");
288
- }
289
- version = view.DataVersion;
290
- if (!(version === 2)) return [3 /*break*/, 5];
291
- return [4 /*yield*/, renderV2(params, bookmark, view)];
292
- case 4:
293
- _a.sent();
294
- return [3 /*break*/, 7];
295
- case 5: return [4 /*yield*/, renderV1(params, bookmark, view)];
296
- case 6:
297
- _a.sent();
298
- _a.label = 7;
299
- case 7: return [2 /*return*/];
300
- }
301
- });
302
- });
303
- }
304
- ViewRenderEngine.Render = Render;
305
- })(ViewRenderEngine = exports.ViewRenderEngine || (exports.ViewRenderEngine = {}));
1
+ "use strict";
2
+ var __assign = (this && this.__assign) || function () {
3
+ __assign = Object.assign || function(t) {
4
+ for (var s, i = 1, n = arguments.length; i < n; i++) {
5
+ s = arguments[i];
6
+ for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))
7
+ t[p] = s[p];
8
+ }
9
+ return t;
10
+ };
11
+ return __assign.apply(this, arguments);
12
+ };
13
+ var __awaiter = (this && this.__awaiter) || function (thisArg, _arguments, P, generator) {
14
+ function adopt(value) { return value instanceof P ? value : new P(function (resolve) { resolve(value); }); }
15
+ return new (P || (P = Promise))(function (resolve, reject) {
16
+ function fulfilled(value) { try { step(generator.next(value)); } catch (e) { reject(e); } }
17
+ function rejected(value) { try { step(generator["throw"](value)); } catch (e) { reject(e); } }
18
+ function step(result) { result.done ? resolve(result.value) : adopt(result.value).then(fulfilled, rejected); }
19
+ step((generator = generator.apply(thisArg, _arguments || [])).next());
20
+ });
21
+ };
22
+ var __generator = (this && this.__generator) || function (thisArg, body) {
23
+ var _ = { label: 0, sent: function() { if (t[0] & 1) throw t[1]; return t[1]; }, trys: [], ops: [] }, f, y, t, g;
24
+ return g = { next: verb(0), "throw": verb(1), "return": verb(2) }, typeof Symbol === "function" && (g[Symbol.iterator] = function() { return this; }), g;
25
+ function verb(n) { return function (v) { return step([n, v]); }; }
26
+ function step(op) {
27
+ if (f) throw new TypeError("Generator is already executing.");
28
+ while (_) try {
29
+ if (f = 1, y && (t = op[0] & 2 ? y["return"] : op[0] ? y["throw"] || ((t = y["return"]) && t.call(y), 0) : y.next) && !(t = t.call(y, op[1])).done) return t;
30
+ if (y = 0, t) op = [op[0] & 2, t.value];
31
+ switch (op[0]) {
32
+ case 0: case 1: t = op; break;
33
+ case 4: _.label++; return { value: op[1], done: false };
34
+ case 5: _.label++; y = op[1]; op = [0]; continue;
35
+ case 7: op = _.ops.pop(); _.trys.pop(); continue;
36
+ default:
37
+ if (!(t = _.trys, t = t.length > 0 && t[t.length - 1]) && (op[0] === 6 || op[0] === 2)) { _ = 0; continue; }
38
+ if (op[0] === 3 && (!t || (op[1] > t[0] && op[1] < t[3]))) { _.label = op[1]; break; }
39
+ if (op[0] === 6 && _.label < t[1]) { _.label = t[1]; t = op; break; }
40
+ if (t && _.label < t[2]) { _.label = t[2]; _.ops.push(op); break; }
41
+ if (t[2]) _.ops.pop();
42
+ _.trys.pop(); continue;
43
+ }
44
+ op = body.call(thisArg, _);
45
+ } catch (e) { op = [6, e]; y = 0; } finally { f = t = 0; }
46
+ if (op[0] & 5) throw op[1]; return { value: op[0] ? op[1] : void 0, done: true };
47
+ }
48
+ };
49
+ Object.defineProperty(exports, "__esModule", { value: true });
50
+ exports.ViewRenderEngine = void 0;
51
+ var bruce_models_1 = require("bruce-models");
52
+ var render_helper_1 = require("./render-helper");
53
+ var Cesium = require("cesium");
54
+ var tile_render_engine_1 = require("./tile-render-engine");
55
+ function renderV1(params, bookmark, view) {
56
+ var _a, _b;
57
+ return __awaiter(this, void 0, void 0, function () {
58
+ var vSettings, bSettings, frustum, scene, curFrustum, camera, pos, go, enabledItems, newItemIds, _i, enabledItems_1, id;
59
+ return __generator(this, function (_c) {
60
+ switch (_c.label) {
61
+ case 0:
62
+ vSettings = view.Settings;
63
+ bSettings = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings;
64
+ return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Terrain.V1.RenderView({
65
+ apiGetter: params.apiGetter,
66
+ bookmarkId: params.bookmarkId,
67
+ viewer: params.manager.Viewer,
68
+ viewId: params.viewId,
69
+ })];
70
+ case 1:
71
+ _c.sent();
72
+ return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Map.V1.RenderView({
73
+ apiGetter: params.apiGetter,
74
+ bookmarkId: params.bookmarkId,
75
+ viewer: params.manager.Viewer,
76
+ viewId: params.viewId,
77
+ ignoreIds: []
78
+ })];
79
+ case 2:
80
+ _c.sent();
81
+ frustum = bSettings === null || bSettings === void 0 ? void 0 : bSettings.cameraFrustum;
82
+ if (frustum == null) {
83
+ frustum = bruce_models_1.Camera.EFrustum.Perspective;
84
+ }
85
+ scene = params.manager.Viewer.scene;
86
+ curFrustum = scene.camera.frustum instanceof Cesium.OrthographicFrustum ? bruce_models_1.Camera.EFrustum.Orthographic : bruce_models_1.Camera.EFrustum.Perspective;
87
+ if (curFrustum != frustum) {
88
+ if (frustum == bruce_models_1.Camera.EFrustum.Perspective) {
89
+ scene.camera.switchToPerspectiveFrustum();
90
+ scene.screenSpaceCameraController.enableTilt = true;
91
+ }
92
+ else {
93
+ scene.camera.switchToOrthographicFrustum();
94
+ scene.screenSpaceCameraController.enableTilt = false;
95
+ }
96
+ params.skipTransition = true;
97
+ }
98
+ camera = bookmark.Camera;
99
+ pos = Cesium.Cartesian3.fromDegrees(+camera.position.longitude, +camera.position.latitude, +camera.position.height);
100
+ params.manager.Viewer.scene.camera.flyTo({
101
+ destination: pos,
102
+ orientation: {
103
+ heading: +camera.heading,
104
+ pitch: +camera.pitch,
105
+ roll: +camera.roll
106
+ },
107
+ duration: params.skipTransition ? 0 : 2
108
+ });
109
+ go = (_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) === null || _a === void 0 ? void 0 : _a.groundOcclusion;
110
+ if (go == null) {
111
+ go = vSettings === null || vSettings === void 0 ? void 0 : vSettings.GroundOcclusion;
112
+ }
113
+ if (go == null) {
114
+ go = false;
115
+ }
116
+ params.manager.Viewer.scene.globe.depthTestAgainstTerrain = go;
117
+ enabledItems = params.manager.GetEnabledItemIds();
118
+ newItemIds = (_b = bSettings === null || bSettings === void 0 ? void 0 : bSettings.selectedItemIds) !== null && _b !== void 0 ? _b : [];
119
+ for (_i = 0, enabledItems_1 = enabledItems; _i < enabledItems_1.length; _i++) {
120
+ id = enabledItems_1[_i];
121
+ if (newItemIds.indexOf(id) === -1) {
122
+ params.manager.RemoveItemById(id);
123
+ }
124
+ }
125
+ if (!params.bookmarkId) return [3 /*break*/, 4];
126
+ return [4 /*yield*/, render_helper_1.RenderHelper.RenderBookmarkItems({
127
+ apiGetter: params.apiGetter,
128
+ manager: params.manager,
129
+ }, params.viewId, params.bookmarkId)];
130
+ case 3:
131
+ _c.sent();
132
+ _c.label = 4;
133
+ case 4: return [2 /*return*/];
134
+ }
135
+ });
136
+ });
137
+ }
138
+ function renderV2(params, bookmark, view) {
139
+ var _a, _b, _c, _d, _e, _f, _g, _h, _j, _k, _l, _m, _o, _p, _q, _r, _s;
140
+ return __awaiter(this, void 0, void 0, function () {
141
+ var viewer, scene, vSettings, bSettings, defaults, camera, newLens, curLens, transition, pos, gOcclusion, terrain, imagery, curEnabled, newItemIds, _i, curEnabled_1, id;
142
+ return __generator(this, function (_t) {
143
+ switch (_t.label) {
144
+ case 0:
145
+ viewer = params.manager.Viewer;
146
+ scene = viewer.scene;
147
+ vSettings = view.Settings;
148
+ bSettings = ((_a = bookmark === null || bookmark === void 0 ? void 0 : bookmark.Settings) !== null && _a !== void 0 ? _a : {});
149
+ defaults = (_b = vSettings.defaults) !== null && _b !== void 0 ? _b : {};
150
+ camera = ((_c = bookmark.Camera) !== null && _c !== void 0 ? _c : {});
151
+ if (!bruce_models_1.Carto.ValidateCarto(camera)) {
152
+ camera = __assign(__assign({}, camera), { altitude: (_d = defaults.camera) === null || _d === void 0 ? void 0 : _d.altitude, latitude: (_e = defaults.camera) === null || _e === void 0 ? void 0 : _e.latitude, longitude: (_f = defaults.camera) === null || _f === void 0 ? void 0 : _f.longitude, heading: (_g = defaults.camera) === null || _g === void 0 ? void 0 : _g.heading, pitch: (_h = defaults.camera) === null || _h === void 0 ? void 0 : _h.pitch, roll: (_j = defaults.camera) === null || _j === void 0 ? void 0 : _j.roll });
153
+ }
154
+ newLens = camera.cameraFrustum;
155
+ if (newLens == null) {
156
+ newLens = (_k = defaults.camera) === null || _k === void 0 ? void 0 : _k.cameraFrustum;
157
+ }
158
+ if (newLens == null) {
159
+ // TODO: Need global default.
160
+ newLens = bruce_models_1.Camera.EFrustum.Perspective;
161
+ }
162
+ curLens = scene.camera.frustum instanceof Cesium.OrthographicFrustum ?
163
+ bruce_models_1.Camera.EFrustum.Orthographic :
164
+ bruce_models_1.Camera.EFrustum.Perspective;
165
+ if (newLens != curLens) {
166
+ if (newLens == bruce_models_1.Camera.EFrustum.Perspective) {
167
+ scene.camera.switchToPerspectiveFrustum();
168
+ scene.screenSpaceCameraController.enableTilt = true;
169
+ }
170
+ else {
171
+ scene.camera.switchToOrthographicFrustum();
172
+ scene.screenSpaceCameraController.enableTilt = false;
173
+ }
174
+ }
175
+ transition = params.skipTransition ? 0 : curLens === newLens ? camera.transition : 0;
176
+ if (transition == null) {
177
+ transition = (_l = defaults.camera) === null || _l === void 0 ? void 0 : _l.transition;
178
+ }
179
+ if (transition == null) {
180
+ // TODO: Need global default.
181
+ transition = 2000;
182
+ }
183
+ if (bruce_models_1.Carto.ValidateCarto(camera)) {
184
+ pos = Cesium.Cartesian3.fromDegrees(+camera.longitude, +camera.latitude, +camera.altitude);
185
+ scene.camera.flyTo({
186
+ destination: pos,
187
+ orientation: {
188
+ heading: Cesium.Math.toRadians(+camera.heading),
189
+ pitch: Cesium.Math.toRadians(+camera.pitch),
190
+ roll: Cesium.Math.toRadians(+camera.roll)
191
+ },
192
+ duration: transition != 0 ? transition / 1000 : 0
193
+ });
194
+ }
195
+ gOcclusion = bSettings === null || bSettings === void 0 ? void 0 : bSettings.groundOcclusion;
196
+ if (gOcclusion == null) {
197
+ gOcclusion = (_m = defaults === null || defaults === void 0 ? void 0 : defaults.settings) === null || _m === void 0 ? void 0 : _m.groundOcclusion;
198
+ }
199
+ if (gOcclusion == null) {
200
+ // TODO: Need global default.
201
+ gOcclusion = true;
202
+ }
203
+ scene.globe.depthTestAgainstTerrain = Boolean(gOcclusion);
204
+ terrain = (_o = bSettings === null || bSettings === void 0 ? void 0 : bSettings.terrain) !== null && _o !== void 0 ? _o : (_p = defaults.settings) === null || _p === void 0 ? void 0 : _p.terrain;
205
+ if (!terrain) return [3 /*break*/, 2];
206
+ return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Terrain.V2.Render({
207
+ apiGetter: params.apiGetter,
208
+ tile: terrain,
209
+ viewer: params.manager.Viewer,
210
+ })];
211
+ case 1:
212
+ _t.sent();
213
+ _t.label = 2;
214
+ case 2:
215
+ imagery = (_q = bSettings.imagery) !== null && _q !== void 0 ? _q : (_r = defaults.settings) === null || _r === void 0 ? void 0 : _r.imagery;
216
+ if (imagery == null) {
217
+ // TODO: Need global default.
218
+ imagery = [
219
+ {
220
+ accountId: null,
221
+ tilesetId: bruce_models_1.ProjectViewTile.EDefaultImagery.MapboxSatellite,
222
+ alpha: 1,
223
+ brightness: 1,
224
+ contrast: 1,
225
+ gamma: 1,
226
+ hue: 0,
227
+ saturation: 1
228
+ }
229
+ ];
230
+ }
231
+ return [4 /*yield*/, tile_render_engine_1.TileRenderEngine.Map.V2.Render({
232
+ apiGetter: params.apiGetter,
233
+ tiles: imagery,
234
+ viewer: params.manager.Viewer,
235
+ })];
236
+ case 3:
237
+ _t.sent();
238
+ curEnabled = params.manager.GetEnabledItemIds();
239
+ newItemIds = (_s = bSettings === null || bSettings === void 0 ? void 0 : bSettings.menuItemIds) !== null && _s !== void 0 ? _s : [];
240
+ _i = 0, curEnabled_1 = curEnabled;
241
+ _t.label = 4;
242
+ case 4:
243
+ if (!(_i < curEnabled_1.length)) return [3 /*break*/, 7];
244
+ id = curEnabled_1[_i];
245
+ if (!(newItemIds.indexOf(id) === -1)) return [3 /*break*/, 6];
246
+ return [4 /*yield*/, params.manager.RemoveItemById(id)];
247
+ case 5:
248
+ _t.sent();
249
+ _t.label = 6;
250
+ case 6:
251
+ _i++;
252
+ return [3 /*break*/, 4];
253
+ case 7:
254
+ if (!params.bookmarkId) return [3 /*break*/, 9];
255
+ return [4 /*yield*/, render_helper_1.RenderHelper.RenderBookmarkItems({
256
+ apiGetter: params.apiGetter,
257
+ manager: params.manager,
258
+ }, params.viewId, params.bookmarkId)];
259
+ case 8:
260
+ _t.sent();
261
+ _t.label = 9;
262
+ case 9: return [2 /*return*/];
263
+ }
264
+ });
265
+ });
266
+ }
267
+ var ViewRenderEngine;
268
+ (function (ViewRenderEngine) {
269
+ function Render(params) {
270
+ return __awaiter(this, void 0, void 0, function () {
271
+ var api, view, bookmark, version;
272
+ return __generator(this, function (_a) {
273
+ switch (_a.label) {
274
+ case 0:
275
+ api = params.apiGetter.getApi();
276
+ return [4 /*yield*/, bruce_models_1.ProjectView.Get(api, params.viewId)];
277
+ case 1:
278
+ view = _a.sent();
279
+ bookmark = null;
280
+ if (!params.bookmarkId) return [3 /*break*/, 3];
281
+ return [4 /*yield*/, bruce_models_1.ProjectViewBookmark.Get(api, params.viewId, params.bookmarkId)];
282
+ case 2:
283
+ bookmark = _a.sent();
284
+ _a.label = 3;
285
+ case 3:
286
+ if (bookmark && view.DataVersion != bookmark.DataVersion) {
287
+ throw new Error("View and bookmark settings version mismatch.");
288
+ }
289
+ version = view.DataVersion;
290
+ if (!(version === 2)) return [3 /*break*/, 5];
291
+ return [4 /*yield*/, renderV2(params, bookmark, view)];
292
+ case 4:
293
+ _a.sent();
294
+ return [3 /*break*/, 7];
295
+ case 5: return [4 /*yield*/, renderV1(params, bookmark, view)];
296
+ case 6:
297
+ _a.sent();
298
+ _a.label = 7;
299
+ case 7: return [2 /*return*/];
300
+ }
301
+ });
302
+ });
303
+ }
304
+ ViewRenderEngine.Render = Render;
305
+ })(ViewRenderEngine = exports.ViewRenderEngine || (exports.ViewRenderEngine = {}));
306
306
  //# sourceMappingURL=view-render-engine.js.map