@shapediver/viewer.session-engine.session-engine 2.7.10 → 2.8.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.
@@ -22,7 +22,6 @@ var __classPrivateFieldSet = (this && this.__classPrivateFieldSet) || function (
22
22
  var _SessionEngine_customizationProcess, _SessionEngine_parameterHistory, _SessionEngine_parameterHistoryCall, _SessionEngine_parameterHistoryForward;
23
23
  Object.defineProperty(exports, "__esModule", { value: true });
24
24
  exports.SessionEngine = void 0;
25
- const tsyringe_1 = require("tsyringe");
26
25
  const viewer_shared_services_1 = require("@shapediver/viewer.shared.services");
27
26
  const OutputDelayException_1 = require("./OutputDelayException");
28
27
  const OutputLoader_1 = require("./OutputLoader");
@@ -46,21 +45,21 @@ class SessionEngine {
46
45
  */
47
46
  constructor(properties) {
48
47
  // #region Properties (40)
49
- this._converter = tsyringe_1.container.resolve(viewer_shared_services_1.Converter);
50
- this._eventEngine = tsyringe_1.container.resolve(viewer_shared_services_1.EventEngine);
48
+ this._converter = viewer_shared_services_1.Converter.instance;
49
+ this._eventEngine = viewer_shared_services_1.EventEngine.instance;
51
50
  this._exports = {};
52
- this._httpClient = tsyringe_1.container.resolve(viewer_shared_services_1.HttpClient);
53
- this._logger = tsyringe_1.container.resolve(viewer_shared_services_1.Logger);
51
+ this._httpClient = viewer_shared_services_1.HttpClient.instance;
52
+ this._logger = viewer_shared_services_1.Logger.instance;
54
53
  this._outputs = {};
55
54
  this._outputsFreeze = {};
56
55
  this._parameterValues = {};
57
56
  this._parameters = {};
58
- this._performanceEvaluator = tsyringe_1.container.resolve(viewer_shared_services_1.PerformanceEvaluator);
59
- this._sceneTree = tsyringe_1.container.resolve(viewer_shared_node_tree_1.Tree);
60
- this._sessionEngineId = tsyringe_1.container.resolve(viewer_shared_services_1.UuidGenerator).create();
57
+ this._performanceEvaluator = viewer_shared_services_1.PerformanceEvaluator.instance;
58
+ this._sceneTree = viewer_shared_node_tree_1.Tree.instance;
59
+ this._sessionEngineId = (viewer_shared_services_1.UuidGenerator.instance).create();
61
60
  this._settingsEngine = new viewer_shared_services_1.SettingsEngine();
62
- this._stateEngine = tsyringe_1.container.resolve(viewer_shared_services_1.StateEngine);
63
- this._uuidGenerator = tsyringe_1.container.resolve(viewer_shared_services_1.UuidGenerator);
61
+ this._stateEngine = viewer_shared_services_1.StateEngine.instance;
62
+ this._uuidGenerator = viewer_shared_services_1.UuidGenerator.instance;
64
63
  this._automaticSceneUpdate = true;
65
64
  this._closeOnFailure = () => __awaiter(this, void 0, void 0, function* () { });
66
65
  this._closed = false;
@@ -68,7 +67,7 @@ class SessionEngine {
68
67
  this._dataCache = {};
69
68
  this._excludeViewports = [];
70
69
  this._headers = {
71
- "X-ShapeDiver-Origin": tsyringe_1.container.resolve(viewer_shared_services_1.SystemInfo).origin,
70
+ "X-ShapeDiver-Origin": (viewer_shared_services_1.SystemInfo.instance).origin,
72
71
  "X-ShapeDiver-SessionEngineId": this._sessionEngineId,
73
72
  "X-ShapeDiver-BuildVersion": '',
74
73
  "X-ShapeDiver-BuildDate": ''
@@ -100,7 +99,7 @@ class SessionEngine {
100
99
  }
101
100
  set automaticSceneUpdate(value) {
102
101
  this._automaticSceneUpdate = value;
103
- value ? this._sceneTree.addNode(this._node) : this._sceneTree.removeNode(this._node);
102
+ value ? this.addToSceneTree(this._node) : this.removeFromSceneTree(this._node);
104
103
  }
105
104
  get bearerToken() {
106
105
  return this._bearerToken;
@@ -182,129 +181,120 @@ class SessionEngine {
182
181
  // #endregion Public Accessors (23)
183
182
  // #region Public Methods (22)
184
183
  applySettings(response, sections) {
184
+ sections = sections || {};
185
+ if (sections.session === undefined) {
186
+ sections.session = {
187
+ parameter: { displayname: false, order: false, hidden: false },
188
+ export: { displayname: false, order: false, hidden: false }
189
+ };
190
+ }
191
+ if (sections.session.parameter === undefined)
192
+ sections.session.parameter = { displayname: false, order: false, hidden: false, value: false };
193
+ if (sections.session.export === undefined)
194
+ sections.session.export = { displayname: false, order: false, hidden: false };
195
+ if (sections.viewport === undefined)
196
+ sections.viewport = { ar: false, scene: false, camera: false, light: false, environment: false, general: false };
197
+ let config;
198
+ if (response.viewer !== undefined) {
199
+ config = response.viewer.config;
200
+ }
201
+ else {
202
+ throw new viewer_shared_services_1.ShapeDiverViewerSettingsError('Session.applySettings: No config object available.');
203
+ }
185
204
  try {
186
- sections = sections || {};
187
- if (sections.session === undefined) {
188
- sections.session = {
189
- parameter: { displayname: false, order: false, hidden: false },
190
- export: { displayname: false, order: false, hidden: false }
191
- };
192
- }
193
- if (sections.session.parameter === undefined)
194
- sections.session.parameter = { displayname: false, order: false, hidden: false, value: false };
195
- if (sections.session.export === undefined)
196
- sections.session.export = { displayname: false, order: false, hidden: false };
197
- if (sections.viewport === undefined)
198
- sections.viewport = { ar: false, scene: false, camera: false, light: false, environment: false, general: false };
199
- let config;
200
- if (response.viewer !== undefined) {
201
- config = response.viewer.config;
202
- }
203
- else {
204
- const error = new viewer_shared_services_1.ShapeDiverViewerSettingsError('Session.applySettings: No config object available.');
205
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SETTINGS, 'Session.applySettings', error);
206
- }
207
- try {
208
- (0, viewer_settings_1.validate)(config);
209
- }
210
- catch (e) {
211
- const error = new viewer_shared_services_1.ShapeDiverViewerSettingsError('Session.applySettings: Was not able to validate config object.');
212
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SETTINGS, 'Session.applySettings', error);
213
- }
214
- const settings = (0, viewer_settings_1.convert)(config, viewer_settings_1.latestVersion);
215
- const exportMappingUid = {};
216
- if (sections.session.export.displayname || sections.session.export.order || sections.session.export.hidden)
217
- if (response.exports)
218
- for (let exportId in response.exports)
219
- if (response.exports[exportId].uid !== undefined)
220
- exportMappingUid[response.exports[exportId].uid] = exportId;
221
- const currentSettings = this._settingsEngine.settings;
222
- // apply parameter settings
223
- if (sections.session.parameter.displayname || sections.session.parameter.order || sections.session.parameter.hidden || sections.session.parameter.value) {
224
- for (let p in this.parameters) {
225
- if (settings.session[p]) {
226
- if (sections.session.parameter.displayname)
227
- this.parameters[p].displayname = settings.session[p].displayname;
228
- if (sections.session.parameter.order)
229
- this.parameters[p].order = settings.session[p].order;
230
- if (sections.session.parameter.hidden)
231
- this.parameters[p].hidden = settings.session[p].hidden || false;
232
- }
233
- if (response.parameters && response.parameters[p]) {
234
- if (sections.session.parameter.value)
235
- this.parameters[p].value = response.parameters[p].defval !== undefined ? response.parameters[p].defval : this.parameters[p].value;
236
- }
205
+ (0, viewer_settings_1.validate)(config);
206
+ }
207
+ catch (e) {
208
+ throw new viewer_shared_services_1.ShapeDiverViewerSettingsError('Session.applySettings: Was not able to validate config object.');
209
+ }
210
+ const settings = (0, viewer_settings_1.convert)(config, viewer_settings_1.latestVersion);
211
+ const exportMappingUid = {};
212
+ if (sections.session.export.displayname || sections.session.export.order || sections.session.export.hidden)
213
+ if (response.exports)
214
+ for (let exportId in response.exports)
215
+ if (response.exports[exportId].uid !== undefined)
216
+ exportMappingUid[response.exports[exportId].uid] = exportId;
217
+ const currentSettings = this._settingsEngine.settings;
218
+ // apply parameter settings
219
+ if (sections.session.parameter.displayname || sections.session.parameter.order || sections.session.parameter.hidden || sections.session.parameter.value) {
220
+ for (let p in this.parameters) {
221
+ if (settings.session[p]) {
222
+ if (sections.session.parameter.displayname)
223
+ this.parameters[p].displayname = settings.session[p].displayname;
224
+ if (sections.session.parameter.order)
225
+ this.parameters[p].order = settings.session[p].order;
226
+ if (sections.session.parameter.hidden)
227
+ this.parameters[p].hidden = settings.session[p].hidden || false;
237
228
  }
238
- }
239
- // apply export settings
240
- if (sections.session.export.displayname || sections.session.export.order || sections.session.export.hidden) {
241
- for (let p in this.exports) {
242
- let idForSettings = '';
243
- if (settings.session[p]) {
244
- idForSettings = p;
245
- }
246
- else {
247
- const uid = this.exports[p].uid;
248
- if (!uid)
249
- continue;
250
- if (!exportMappingUid[uid])
251
- continue;
252
- idForSettings = exportMappingUid[uid];
253
- }
254
- if (settings.session[idForSettings]) {
255
- if (sections.session.export.displayname)
256
- this.exports[p].displayname = settings.session[idForSettings].displayname;
257
- if (sections.session.export.order)
258
- this.exports[p].order = settings.session[idForSettings].order;
259
- if (sections.session.export.hidden)
260
- this.exports[p].hidden = settings.session[idForSettings].hidden || false;
261
- }
229
+ if (response.parameters && response.parameters[p]) {
230
+ if (sections.session.parameter.value)
231
+ this.parameters[p].value = response.parameters[p].defval !== undefined ? response.parameters[p].defval : this.parameters[p].value;
262
232
  }
263
233
  }
264
- // apply ar settings
265
- if (sections.viewport.ar) {
266
- currentSettings.ar = settings.ar;
267
- currentSettings.general.transformation = settings.general.transformation;
268
- }
269
- // apply camera settings
270
- if (sections.viewport.camera)
271
- currentSettings.camera = settings.camera;
272
- // apply light settings
273
- if (sections.viewport.light)
274
- currentSettings.light = settings.light;
275
- // apply scene settings
276
- if (sections.viewport.scene) {
277
- currentSettings.environmentGeometry.gridColor = settings.environmentGeometry.gridColor;
278
- currentSettings.environmentGeometry.gridVisibility = settings.environmentGeometry.gridVisibility;
279
- currentSettings.environmentGeometry.groundPlaneColor = settings.environmentGeometry.groundPlaneColor;
280
- currentSettings.environmentGeometry.groundPlaneVisibility = settings.environmentGeometry.groundPlaneVisibility;
281
- currentSettings.environmentGeometry.groundPlaneColor = settings.environmentGeometry.groundPlaneColor;
282
- currentSettings.environmentGeometry.groundPlaneShadowColor = settings.environmentGeometry.groundPlaneShadowColor;
283
- currentSettings.rendering.shadows = settings.rendering.shadows;
284
- currentSettings.rendering.ambientOcclusion = settings.rendering.ambientOcclusion;
285
- currentSettings.rendering.automaticColorAdjustment = settings.rendering.automaticColorAdjustment;
286
- currentSettings.rendering.textureEncoding = settings.rendering.textureEncoding;
287
- currentSettings.rendering.outputEncoding = settings.rendering.outputEncoding;
288
- currentSettings.rendering.physicallyCorrectLights = settings.rendering.physicallyCorrectLights;
289
- currentSettings.rendering.toneMapping = settings.rendering.toneMapping;
290
- currentSettings.rendering.toneMappingExposure = settings.rendering.toneMappingExposure;
291
- }
292
- if (sections.viewport.general) {
293
- currentSettings.general.commitParameters = settings.general.commitParameters;
294
- currentSettings.general.pointSize = settings.general.pointSize;
295
- }
296
- // apply environment settings
297
- if (sections.viewport.environment) {
298
- currentSettings.environment.clearAlpha = settings.environment.clearAlpha;
299
- currentSettings.environment.clearColor = settings.environment.clearColor;
300
- currentSettings.environment.map = settings.environment.map;
301
- currentSettings.environment.mapAsBackground = settings.environment.mapAsBackground;
234
+ }
235
+ // apply export settings
236
+ if (sections.session.export.displayname || sections.session.export.order || sections.session.export.hidden) {
237
+ for (let p in this.exports) {
238
+ let idForSettings = '';
239
+ if (settings.session[p]) {
240
+ idForSettings = p;
241
+ }
242
+ else {
243
+ const uid = this.exports[p].uid;
244
+ if (!uid)
245
+ continue;
246
+ if (!exportMappingUid[uid])
247
+ continue;
248
+ idForSettings = exportMappingUid[uid];
249
+ }
250
+ if (settings.session[idForSettings]) {
251
+ if (sections.session.export.displayname)
252
+ this.exports[p].displayname = settings.session[idForSettings].displayname;
253
+ if (sections.session.export.order)
254
+ this.exports[p].order = settings.session[idForSettings].order;
255
+ if (sections.session.export.hidden)
256
+ this.exports[p].hidden = settings.session[idForSettings].hidden || false;
257
+ }
302
258
  }
303
259
  }
304
- catch (e) {
305
- if (e instanceof viewer_shared_services_1.ShapeDiverViewerError || e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverError)
306
- throw e;
307
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.GENERAL, 'Session.applySettings', e);
260
+ // apply ar settings
261
+ if (sections.viewport.ar) {
262
+ currentSettings.ar = settings.ar;
263
+ currentSettings.general.transformation = settings.general.transformation;
264
+ }
265
+ // apply camera settings
266
+ if (sections.viewport.camera)
267
+ currentSettings.camera = settings.camera;
268
+ // apply light settings
269
+ if (sections.viewport.light)
270
+ currentSettings.light = settings.light;
271
+ // apply scene settings
272
+ if (sections.viewport.scene) {
273
+ currentSettings.environmentGeometry.gridColor = settings.environmentGeometry.gridColor;
274
+ currentSettings.environmentGeometry.gridVisibility = settings.environmentGeometry.gridVisibility;
275
+ currentSettings.environmentGeometry.groundPlaneColor = settings.environmentGeometry.groundPlaneColor;
276
+ currentSettings.environmentGeometry.groundPlaneVisibility = settings.environmentGeometry.groundPlaneVisibility;
277
+ currentSettings.environmentGeometry.groundPlaneColor = settings.environmentGeometry.groundPlaneColor;
278
+ currentSettings.environmentGeometry.groundPlaneShadowColor = settings.environmentGeometry.groundPlaneShadowColor;
279
+ currentSettings.rendering.shadows = settings.rendering.shadows;
280
+ currentSettings.rendering.ambientOcclusion = settings.rendering.ambientOcclusion;
281
+ currentSettings.rendering.automaticColorAdjustment = settings.rendering.automaticColorAdjustment;
282
+ currentSettings.rendering.textureEncoding = settings.rendering.textureEncoding;
283
+ currentSettings.rendering.outputEncoding = settings.rendering.outputEncoding;
284
+ currentSettings.rendering.physicallyCorrectLights = settings.rendering.physicallyCorrectLights;
285
+ currentSettings.rendering.toneMapping = settings.rendering.toneMapping;
286
+ currentSettings.rendering.toneMappingExposure = settings.rendering.toneMappingExposure;
287
+ }
288
+ if (sections.viewport.general) {
289
+ currentSettings.general.commitParameters = settings.general.commitParameters;
290
+ currentSettings.general.pointSize = settings.general.pointSize;
291
+ }
292
+ // apply environment settings
293
+ if (sections.viewport.environment) {
294
+ currentSettings.environment.clearAlpha = settings.environment.clearAlpha;
295
+ currentSettings.environment.clearColor = settings.environment.clearColor;
296
+ currentSettings.environment.map = settings.environment.map;
297
+ currentSettings.environment.mapAsBackground = settings.environment.mapAsBackground;
308
298
  }
309
299
  }
310
300
  canGoBack() {
@@ -322,11 +312,11 @@ class SessionEngine {
322
312
  this._httpClient.removeDataLoading(this._sessionId);
323
313
  yield this._sdk.session.close(this._sessionId);
324
314
  if (this._automaticSceneUpdate)
325
- this._sceneTree.removeNode(this._node);
315
+ this.removeFromSceneTree(this._node);
326
316
  this._closed = true;
327
317
  }
328
318
  catch (e) {
329
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.close', e, retry);
319
+ yield this.handleError(e, retry);
330
320
  return yield this.close(true);
331
321
  }
332
322
  });
@@ -355,7 +345,7 @@ class SessionEngine {
355
345
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, eventStart);
356
346
  const oldNode = this.node.cloneInstance();
357
347
  __classPrivateFieldSet(this, _SessionEngine_customizationProcess, customizationId, "f");
358
- this._logger.debugLow(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize: Customizing session.`);
348
+ this._logger.debugLow(`Session(${this.id}).customize: Customizing session.`);
359
349
  for (let r in this._stateEngine.renderingEngines)
360
350
  this._stateEngine.renderingEngines[r].busy.push(customizationId);
361
351
  const eventFileUpload = { type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION, id: eventId, progress: 0.1, data: { sessionId: this.id }, status: 'Uploading file parameters' };
@@ -370,7 +360,7 @@ class SessionEngine {
370
360
  for (let r in this._stateEngine.renderingEngines)
371
361
  if (this._stateEngine.renderingEngines[r].busy.includes(customizationId))
372
362
  this._stateEngine.renderingEngines[r].busy.splice(this._stateEngine.renderingEngines[r].busy.indexOf(customizationId), 1);
373
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize: Session customization was exceeded by other customization request.`);
363
+ this._logger.debug(`Session(${this.id}).customize: Session customization was exceeded by other customization request.`);
374
364
  const eventCancel1a = { type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION, id: eventId, progress: 1, data: { sessionId: this.id }, status: 'Session customization was exceeded by other customization request' };
375
365
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, eventCancel1a);
376
366
  return new SessionTreeNode_1.SessionTreeNode();
@@ -384,7 +374,7 @@ class SessionEngine {
384
374
  this._stateEngine.renderingEngines[r].busy.splice(this._stateEngine.renderingEngines[r].busy.indexOf(customizationId), 1);
385
375
  const eventCancel1b = { type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION, id: eventId, progress: 1, data: { sessionId: this.id }, status: 'Session customization was exceeded by other customization request' };
386
376
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, eventCancel1b);
387
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize: Session customization was exceeded by other customization request.`);
377
+ this._logger.debug(`Session(${this.id}).customize: Session customization was exceeded by other customization request.`);
388
378
  return new SessionTreeNode_1.SessionTreeNode();
389
379
  }
390
380
  // assign the uploaded parameters
@@ -401,7 +391,7 @@ class SessionEngine {
401
391
  // update the session engine parameter values if everything succeeded
402
392
  for (const parameterId in this.parameters)
403
393
  this.parameterValues[parameterId] = parameterSet[parameterId].valueString;
404
- this._logger.info(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize: Customizing session with parameters ${JSON.stringify(this.parameterValues)}.`);
394
+ this._logger.info(`Session(${this.id}).customize: Customizing session with parameters ${JSON.stringify(this.parameterValues)}.`);
405
395
  const eventRequest = { type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION, id: eventId, progress: 0.25, data: { sessionId: this.id }, status: 'Sending customization request' };
406
396
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_PROCESS, eventRequest);
407
397
  const newNode = yield this.customizeInternal(() => __classPrivateFieldGet(this, _SessionEngine_customizationProcess, "f") !== customizationId);
@@ -414,7 +404,7 @@ class SessionEngine {
414
404
  this._stateEngine.renderingEngines[r].busy.splice(this._stateEngine.renderingEngines[r].busy.indexOf(customizationId), 1);
415
405
  const eventCancel2 = { type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION, id: eventId, progress: 1, data: { sessionId: this.id }, status: 'Session customization was exceeded by other customization request' };
416
406
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, eventCancel2);
417
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize: Session customization was exceeded by other customization request.`);
407
+ this._logger.debug(`Session(${this.id}).customize: Session customization was exceeded by other customization request.`);
418
408
  return newNode;
419
409
  }
420
410
  // if this is not a call by the goBack or goForward functions, add the parameter values to the history and delete the forward history
@@ -423,11 +413,11 @@ class SessionEngine {
423
413
  __classPrivateFieldSet(this, _SessionEngine_parameterHistoryForward, [], "f");
424
414
  }
425
415
  if (this.automaticSceneUpdate)
426
- this._sceneTree.removeNode(this.node);
416
+ this.removeFromSceneTree(this.node);
427
417
  this._node = newNode;
428
418
  if (this.automaticSceneUpdate)
429
- this._sceneTree.addNode(this.node);
430
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize: Customization request finished, updating geometry.`);
419
+ this.addToSceneTree(this.node);
420
+ this._logger.debug(`Session(${this.id}).customize: Customization request finished, updating geometry.`);
431
421
  // set the session values to the current ones in all parameters
432
422
  for (const parameterId in this.parameters)
433
423
  this.parameters[parameterId].sessionValue = parameterSet[parameterId].value;
@@ -444,7 +434,7 @@ class SessionEngine {
444
434
  for (let r in this._stateEngine.renderingEngines)
445
435
  if (this._stateEngine.renderingEngines[r].busy.includes(customizationId))
446
436
  this._stateEngine.renderingEngines[r].busy.splice(this._stateEngine.renderingEngines[r].busy.indexOf(customizationId), 1);
447
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize: Session customized.`);
437
+ this._logger.debug(`Session(${this.id}).customize: Session customized.`);
448
438
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.SESSION.SESSION_CUSTOMIZED, { sessionId: this.id });
449
439
  const eventEnd = { type: viewer_shared_types_1.TASK_TYPE.SESSION_CUSTOMIZATION, id: eventId, progress: 1, data: { sessionId: this.id }, status: 'Session customized' };
450
440
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, eventEnd);
@@ -456,34 +446,25 @@ class SessionEngine {
456
446
  for (let r in this._stateEngine.renderingEngines)
457
447
  if (this._stateEngine.renderingEngines[r].busy.includes(customizationId))
458
448
  this._stateEngine.renderingEngines[r].busy.splice(this._stateEngine.renderingEngines[r].busy.indexOf(customizationId), 1);
459
- if (e instanceof viewer_shared_services_1.ShapeDiverViewerError || e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverError)
460
- throw e;
461
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize`, e);
449
+ throw e;
462
450
  }
463
451
  });
464
452
  }
465
453
  customizeParallel(parameterValues) {
466
454
  return __awaiter(this, void 0, void 0, function* () {
467
- try {
468
- const parameterSet = {};
469
- // create a set of the current validated parameter values
470
- for (const parameterId in this.parameters)
471
- parameterSet[parameterId] = parameterValues[parameterId] !== undefined ? (' ' + parameterValues[parameterId]).slice(1) : this.parameters[parameterId].stringify();
472
- const newNode = yield this.customizeSession(parameterSet, () => false, true);
473
- newNode.excludeViewports = JSON.parse(JSON.stringify(this._excludeViewports));
474
- return newNode;
475
- }
476
- catch (e) {
477
- if (e instanceof viewer_shared_services_1.ShapeDiverViewerError || e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverError)
478
- throw e;
479
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).customize`, e);
480
- }
455
+ const parameterSet = {};
456
+ // create a set of the current validated parameter values
457
+ for (const parameterId in this.parameters)
458
+ parameterSet[parameterId] = parameterValues[parameterId] !== undefined ? (' ' + parameterValues[parameterId]).slice(1) : this.parameters[parameterId].stringify();
459
+ const newNode = yield this.customizeSession(parameterSet, () => false, true);
460
+ newNode.excludeViewports = JSON.parse(JSON.stringify(this._excludeViewports));
461
+ return newNode;
481
462
  });
482
463
  }
483
464
  goBack() {
484
465
  return __awaiter(this, void 0, void 0, function* () {
485
466
  if (!this.canGoBack()) {
486
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).goBack: Cannot go further back.`);
467
+ this._logger.debug(`Session(${this.id}).goBack: Cannot go further back.`);
487
468
  return new viewer_shared_node_tree_1.TreeNode();
488
469
  }
489
470
  // get the current parameter set and store it in the forward history later on
@@ -504,7 +485,7 @@ class SessionEngine {
504
485
  goForward() {
505
486
  return __awaiter(this, void 0, void 0, function* () {
506
487
  if (!this.canGoForward()) {
507
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).goForward: Cannot go further forward.`);
488
+ this._logger.debug(`Session(${this.id}).goForward: Cannot go further forward.`);
508
489
  return new viewer_shared_node_tree_1.TreeNode();
509
490
  }
510
491
  // get the last undone parameter set and apply the values to the parameters
@@ -528,10 +509,8 @@ class SessionEngine {
528
509
  init(parameterValues, retry = false) {
529
510
  var _a, _b;
530
511
  return __awaiter(this, void 0, void 0, function* () {
531
- if (this._initialized === true) {
532
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError('Session.init: Session already initialized.');
533
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.init', error);
534
- }
512
+ if (this._initialized === true)
513
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError('Session.init: Session already initialized.');
535
514
  try {
536
515
  this._performanceEvaluator.startSection('sessionResponse');
537
516
  const parameterSet = {};
@@ -556,7 +535,7 @@ class SessionEngine {
556
535
  this._initialized = true;
557
536
  }
558
537
  catch (e) {
559
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.init', e, retry);
538
+ yield this.handleError(e, retry);
560
539
  return yield this.init(parameterValues, true);
561
540
  }
562
541
  });
@@ -591,7 +570,7 @@ class SessionEngine {
591
570
  yield this.timeout(e.delay);
592
571
  }
593
572
  else {
594
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.loadOutputsParallel', e, retry);
573
+ yield this.handleError(e, retry);
595
574
  if (cancelRequest())
596
575
  return new SessionTreeNode_1.SessionTreeNode();
597
576
  return yield this.loadOutputsParallel(responseDto, cancelRequest, true);
@@ -609,7 +588,7 @@ class SessionEngine {
609
588
  return yield this.loadOutputsParallel(responseDto, cancelRequest);
610
589
  }
611
590
  catch (e) {
612
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.loadOutputsParallel', e, retry);
591
+ yield this.handleError(e, retry);
613
592
  if (cancelRequest())
614
593
  return new SessionTreeNode_1.SessionTreeNode();
615
594
  return yield this.loadOutputsParallel(responseDto, cancelRequest, true);
@@ -637,10 +616,10 @@ class SessionEngine {
637
616
  if (cancelRequest())
638
617
  return node;
639
618
  if (this._automaticSceneUpdate)
640
- this._sceneTree.removeNode(this._node);
619
+ this.removeFromSceneTree(this._node);
641
620
  this._node = node;
642
621
  if (this._automaticSceneUpdate)
643
- this._sceneTree.addNode(this._node);
622
+ this.addToSceneTree(this._node);
644
623
  this.node.excludeViewports = JSON.parse(JSON.stringify(this._excludeViewports));
645
624
  return node;
646
625
  }
@@ -649,7 +628,7 @@ class SessionEngine {
649
628
  yield this.timeout(e.delay);
650
629
  }
651
630
  else {
652
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.loadOutputs', e, retry);
631
+ yield this.handleError(e, retry);
653
632
  if (cancelRequest())
654
633
  return new SessionTreeNode_1.SessionTreeNode();
655
634
  return yield this.loadOutputs(cancelRequest, true);
@@ -667,7 +646,7 @@ class SessionEngine {
667
646
  return yield this.loadOutputs(cancelRequest);
668
647
  }
669
648
  catch (e) {
670
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.loadOutputs', e, retry);
649
+ yield this.handleError(e, retry);
671
650
  if (cancelRequest())
672
651
  return new SessionTreeNode_1.SessionTreeNode();
673
652
  return yield this.loadOutputs(cancelRequest, true);
@@ -687,57 +666,40 @@ class SessionEngine {
687
666
  return this.exports[exportId];
688
667
  }
689
668
  catch (e) {
690
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.requestExport', e, retry);
669
+ yield this.handleError(e, retry);
691
670
  return yield this.requestExport(exportId, parameters, maxWaitTime, true);
692
671
  }
693
672
  });
694
673
  }
695
674
  resetSettings(sections) {
696
- if (!this._responseDto) {
697
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.resetSettings: responseDto not available.`);
698
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.resetSettings', error);
699
- }
700
- try {
701
- sections = sections || {};
702
- if (sections.session === undefined) {
703
- sections.session = {
704
- parameter: { displayname: true, order: true, hidden: true },
705
- export: { displayname: true, order: true, hidden: true }
706
- };
707
- }
708
- if (sections.session.parameter === undefined)
709
- sections.session.parameter = { displayname: true, order: true, hidden: true, value: true };
710
- if (sections.session.export === undefined)
711
- sections.session.export = { displayname: true, order: true, hidden: true };
712
- if (sections.viewport === undefined)
713
- sections.viewport = { ar: true, scene: true, camera: true, light: true, environment: true, general: true };
714
- return this.applySettings(this._responseDto, sections);
715
- }
716
- catch (e) {
717
- if (e instanceof viewer_shared_services_1.ShapeDiverViewerError || e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverError)
718
- throw e;
719
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.GENERAL, 'Session.resetSettings', e);
675
+ if (!this._responseDto)
676
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.resetSettings: responseDto not available.`);
677
+ sections = sections || {};
678
+ if (sections.session === undefined) {
679
+ sections.session = {
680
+ parameter: { displayname: true, order: true, hidden: true },
681
+ export: { displayname: true, order: true, hidden: true }
682
+ };
720
683
  }
684
+ if (sections.session.parameter === undefined)
685
+ sections.session.parameter = { displayname: true, order: true, hidden: true, value: true };
686
+ if (sections.session.export === undefined)
687
+ sections.session.export = { displayname: true, order: true, hidden: true };
688
+ if (sections.viewport === undefined)
689
+ sections.viewport = { ar: true, scene: true, camera: true, light: true, environment: true, general: true };
690
+ return this.applySettings(this._responseDto, sections);
721
691
  }
722
692
  saveDefaultParameterValues() {
723
693
  return __awaiter(this, void 0, void 0, function* () {
724
- try {
725
- this._logger.debugLow(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveDefaultParameters: Saving default parameters.`);
726
- const response = yield this.saveDefaultParameters();
727
- if (response) {
728
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveDefaultParameters: Saved default parameters.`);
729
- }
730
- else {
731
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session(${this.id}).saveDefaultParameters: Could not save default parameters.`);
732
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveDefaultParameters`, error);
733
- }
734
- return response;
694
+ this._logger.debugLow(`Session(${this.id}).saveDefaultParameters: Saving default parameters.`);
695
+ const response = yield this.saveDefaultParameters();
696
+ if (response) {
697
+ this._logger.debug(`Session(${this.id}).saveDefaultParameters: Saved default parameters.`);
735
698
  }
736
- catch (e) {
737
- if (e instanceof viewer_shared_services_1.ShapeDiverViewerError || e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverError)
738
- throw e;
739
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveDefaultParameters`, e);
699
+ else {
700
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session(${this.id}).saveDefaultParameters: Could not save default parameters.`);
740
701
  }
702
+ return response;
741
703
  });
742
704
  }
743
705
  saveDefaultParameters(retry = false) {
@@ -748,7 +710,7 @@ class SessionEngine {
748
710
  return true;
749
711
  }
750
712
  catch (e) {
751
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.saveDefaultParameters', e, retry);
713
+ yield this.handleError(e, retry);
752
714
  return yield this.saveDefaultParameters(true);
753
715
  }
754
716
  });
@@ -767,7 +729,7 @@ class SessionEngine {
767
729
  return true;
768
730
  }
769
731
  catch (e) {
770
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.saveExportProperties', e, retry);
732
+ yield this.handleError(e, retry);
771
733
  return yield this.saveExportProperties(exports, true);
772
734
  }
773
735
  });
@@ -786,7 +748,7 @@ class SessionEngine {
786
748
  return true;
787
749
  }
788
750
  catch (e) {
789
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.saveOutputProperties', e, retry);
751
+ yield this.handleError(e, retry);
790
752
  return yield this.saveOutputProperties(outputs, true);
791
753
  }
792
754
  });
@@ -805,7 +767,7 @@ class SessionEngine {
805
767
  return true;
806
768
  }
807
769
  catch (e) {
808
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.saveParameterProperties', e, retry);
770
+ yield this.handleError(e, retry);
809
771
  return yield this.saveParameterProperties(parameters, true);
810
772
  }
811
773
  });
@@ -817,70 +779,62 @@ class SessionEngine {
817
779
  (0, viewer_settings_1.validate)(json, this._viewerSettingsVersion);
818
780
  }
819
781
  catch (e) {
820
- const error = new viewer_shared_services_1.ShapeDiverViewerSettingsError('Session.saveSettings: Settings could not be validated. ' + e.message, e);
821
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SETTINGS, 'Session.applySettings', error);
782
+ throw new viewer_shared_services_1.ShapeDiverViewerSettingsError('Session.saveSettings: Settings could not be validated. ' + e.message, e);
822
783
  }
823
784
  try {
824
785
  yield this._sdk.model.updateConfig(this._modelId, json);
825
786
  return true;
826
787
  }
827
788
  catch (e) {
828
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.saveSettings', e, retry);
789
+ yield this.handleError(e, retry);
829
790
  return yield this.saveSettings(json, true);
830
791
  }
831
792
  });
832
793
  }
833
794
  saveUiProperties(saveInSettings = true) {
834
795
  return __awaiter(this, void 0, void 0, function* () {
835
- try {
836
- this._logger.debugLow(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveSessionProperties: Saving session properties.`);
837
- // settings saving
838
- this._saveSessionSettings();
839
- let properties = {};
840
- for (let p in this.parameters) {
841
- properties[p] = {
842
- displayname: this.parameters[p].displayname !== undefined ? this.parameters[p].displayname : '',
843
- hidden: this.parameters[p].hidden !== undefined ? this.parameters[p].hidden : false,
844
- order: this.parameters[p].order !== undefined ? this.parameters[p].order : 0,
845
- tooltip: this.parameters[p].tooltip !== undefined ? this.parameters[p].tooltip : '',
846
- };
847
- }
848
- const responseP = Object.values(properties).length !== 0 ? yield this.saveParameterProperties(properties) : true;
849
- properties = {};
850
- for (let e in this.exports) {
851
- properties[e] = {
852
- displayname: this.exports[e].displayname !== undefined ? this.exports[e].displayname : '',
853
- hidden: this.exports[e].hidden !== undefined ? this.exports[e].hidden : false,
854
- order: this.exports[e].order !== undefined ? this.exports[e].order : 0,
855
- tooltip: this.exports[e].tooltip !== undefined ? this.exports[e].tooltip : '',
856
- };
857
- }
858
- const responseE = Object.values(properties).length !== 0 ? yield this.saveExportProperties(properties) : true;
859
- properties = {};
860
- for (let o in this.outputs) {
861
- properties[o] = {
862
- displayname: this.outputs[o].displayname !== undefined ? this.outputs[o].displayname : '',
863
- hidden: this.outputs[o].hidden !== undefined ? this.outputs[o].hidden : false,
864
- order: this.outputs[o].order !== undefined ? this.outputs[o].order : 0,
865
- tooltip: this.outputs[o].tooltip !== undefined ? this.outputs[o].tooltip : '',
866
- };
867
- }
868
- const responseO = Object.values(properties).length !== 0 ? yield this.saveOutputProperties(properties) : true;
869
- // save partial settings
870
- const response = saveInSettings ? yield this.saveSettings(this._settingsEngine.convertToTargetVersion()) : true;
871
- if (response && responseP && responseO && responseE) {
872
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveSessionProperties: Saved session properties.`);
873
- }
874
- else {
875
- this._logger.warn(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveSessionProperties: Could not save session properties.`);
876
- }
877
- return response && responseP && responseO && responseE;
796
+ this._logger.debugLow(`Session(${this.id}).saveSessionProperties: Saving session properties.`);
797
+ // settings saving
798
+ this._saveSessionSettings();
799
+ let properties = {};
800
+ for (let p in this.parameters) {
801
+ properties[p] = {
802
+ displayname: this.parameters[p].displayname !== undefined ? this.parameters[p].displayname : '',
803
+ hidden: this.parameters[p].hidden !== undefined ? this.parameters[p].hidden : false,
804
+ order: this.parameters[p].order !== undefined ? this.parameters[p].order : 0,
805
+ tooltip: this.parameters[p].tooltip !== undefined ? this.parameters[p].tooltip : '',
806
+ };
878
807
  }
879
- catch (e) {
880
- if (e instanceof viewer_shared_services_1.ShapeDiverViewerError || e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverError)
881
- throw e;
882
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).saveSessionProperties`, e);
808
+ const responseP = Object.values(properties).length !== 0 ? yield this.saveParameterProperties(properties) : true;
809
+ properties = {};
810
+ for (let e in this.exports) {
811
+ properties[e] = {
812
+ displayname: this.exports[e].displayname !== undefined ? this.exports[e].displayname : '',
813
+ hidden: this.exports[e].hidden !== undefined ? this.exports[e].hidden : false,
814
+ order: this.exports[e].order !== undefined ? this.exports[e].order : 0,
815
+ tooltip: this.exports[e].tooltip !== undefined ? this.exports[e].tooltip : '',
816
+ };
817
+ }
818
+ const responseE = Object.values(properties).length !== 0 ? yield this.saveExportProperties(properties) : true;
819
+ properties = {};
820
+ for (let o in this.outputs) {
821
+ properties[o] = {
822
+ displayname: this.outputs[o].displayname !== undefined ? this.outputs[o].displayname : '',
823
+ hidden: this.outputs[o].hidden !== undefined ? this.outputs[o].hidden : false,
824
+ order: this.outputs[o].order !== undefined ? this.outputs[o].order : 0,
825
+ tooltip: this.outputs[o].tooltip !== undefined ? this.outputs[o].tooltip : '',
826
+ };
827
+ }
828
+ const responseO = Object.values(properties).length !== 0 ? yield this.saveOutputProperties(properties) : true;
829
+ // save partial settings
830
+ const response = saveInSettings ? yield this.saveSettings(this._settingsEngine.convertToTargetVersion()) : true;
831
+ if (response && responseP && responseO && responseE) {
832
+ this._logger.debug(`Session(${this.id}).saveSessionProperties: Saved session properties.`);
833
+ }
834
+ else {
835
+ this._logger.warn(`Session(${this.id}).saveSessionProperties: Could not save session properties.`);
883
836
  }
837
+ return response && responseP && responseO && responseE;
884
838
  });
885
839
  }
886
840
  updateOutputs() {
@@ -891,7 +845,7 @@ class SessionEngine {
891
845
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_START, eventStart);
892
846
  const oldNode = this.node.cloneInstance();
893
847
  __classPrivateFieldSet(this, _SessionEngine_customizationProcess, customizationId, "f");
894
- this._logger.debugLow(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).updateOutputs: Updating Outputs.`);
848
+ this._logger.debugLow(`Session(${this.id}).updateOutputs: Updating Outputs.`);
895
849
  for (let r in this._stateEngine.renderingEngines)
896
850
  this._stateEngine.renderingEngines[r].busy.push(customizationId);
897
851
  const eventRequest = { type: viewer_shared_types_1.TASK_TYPE.SESSION_OUTPUTS_UPDATE, id: eventId, progress: 0.25, data: { sessionId: this.id }, status: 'Loading outputs' };
@@ -906,15 +860,15 @@ class SessionEngine {
906
860
  this._stateEngine.renderingEngines[r].busy.splice(this._stateEngine.renderingEngines[r].busy.indexOf(customizationId), 1);
907
861
  const eventCancel1 = { type: viewer_shared_types_1.TASK_TYPE.SESSION_OUTPUTS_UPDATE, id: eventId, progress: 1, data: { sessionId: this.id }, status: 'Output updating was exceeded by other customization request' };
908
862
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_CANCEL, eventCancel1);
909
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).updateOutputs: Output updating was exceeded by other request.`);
863
+ this._logger.debug(`Session(${this.id}).updateOutputs: Output updating was exceeded by other request.`);
910
864
  return newNode;
911
865
  }
912
866
  if (this.automaticSceneUpdate)
913
- this._sceneTree.removeNode(this.node);
867
+ this.removeFromSceneTree(this.node);
914
868
  this._node = newNode;
915
869
  if (this.automaticSceneUpdate)
916
- this._sceneTree.addNode(this.node);
917
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).updateOutputs: Updating outputs finished, updating geometry.`);
870
+ this.addToSceneTree(this.node);
871
+ this._logger.debug(`Session(${this.id}).updateOutputs: Updating outputs finished, updating geometry.`);
918
872
  if (this._updateCallback)
919
873
  this._updateCallback(newNode, oldNode);
920
874
  // set the output content to what has been updated
@@ -929,7 +883,7 @@ class SessionEngine {
929
883
  for (let r in this._stateEngine.renderingEngines)
930
884
  if (this._stateEngine.renderingEngines[r].busy.includes(customizationId))
931
885
  this._stateEngine.renderingEngines[r].busy.splice(this._stateEngine.renderingEngines[r].busy.indexOf(customizationId), 1);
932
- this._logger.debug(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `Session(${this.id}).updateOutputs: Updated outputs.`);
886
+ this._logger.debug(`Session(${this.id}).updateOutputs: Updated outputs.`);
933
887
  const eventEnd = { type: viewer_shared_types_1.TASK_TYPE.SESSION_OUTPUTS_UPDATE, id: eventId, progress: 1, data: { sessionId: this.id }, status: 'Outputs updated' };
934
888
  this._eventEngine.emitEvent(viewer_shared_services_1.EVENTTYPE.TASK.TASK_END, eventEnd);
935
889
  return this.node;
@@ -948,12 +902,11 @@ class SessionEngine {
948
902
  return fileAsset.id;
949
903
  }
950
904
  else {
951
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.uploadFile: Upload reply has not the required format.`);
952
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.uploadFile', error);
905
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.uploadFile: Upload reply has not the required format.`);
953
906
  }
954
907
  }
955
908
  catch (e) {
956
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.uploadFile', e, retry);
909
+ yield this.handleError(e, retry);
957
910
  return yield this.uploadFile(parameterId, data, type, true);
958
911
  }
959
912
  });
@@ -963,14 +916,12 @@ class SessionEngine {
963
916
  this.checkAvailability('gltf-upload');
964
917
  try {
965
918
  const responseDto = yield this._sdk.gltf.upload(this._sessionId, yield blob.arrayBuffer(), 'model/gltf-binary', conversion);
966
- if (!responseDto || !responseDto.gltf || !responseDto.gltf.href) {
967
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.uploadGLTF: Upload reply has not the required format.`);
968
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.uploadGLTF', error);
969
- }
919
+ if (!responseDto || !responseDto.gltf || !responseDto.gltf.href)
920
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.uploadGLTF: Upload reply has not the required format.`);
970
921
  return responseDto;
971
922
  }
972
923
  catch (e) {
973
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.uploadGLTF', e, retry);
924
+ yield this.handleError(e, retry);
974
925
  return yield this.uploadGLTF(blob, conversion, true);
975
926
  }
976
927
  });
@@ -1021,7 +972,7 @@ class SessionEngine {
1021
972
  if (this.outputs[outputId].status_computation && this.outputs[outputId].status_computation !== sdk_geometry_api_sdk_v2_1.ShapeDiverResponseModelComputationStatus.SUCCESS)
1022
973
  warning += `\n\t- status_computation is ${this.outputs[outputId].status_computation}`;
1023
974
  if (warning)
1024
- this._logger.warn(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `\nOutput(${outputId}):${warning}`);
975
+ this._logger.warn(`\nOutput(${outputId}):${warning}`);
1025
976
  }
1026
977
  // set the export definitions
1027
978
  for (const exportId in this.exports) {
@@ -1033,32 +984,22 @@ class SessionEngine {
1033
984
  if (this.exports[exportId].status_computation && this.exports[exportId].status_computation !== sdk_geometry_api_sdk_v2_1.ShapeDiverResponseModelComputationStatus.SUCCESS)
1034
985
  warning += `\n\t- status_computation is ${this.exports[exportId].status_computation}`;
1035
986
  if (warning)
1036
- this._logger.warn(viewer_shared_services_1.LOGGING_TOPIC.SESSION, `\nExport(${exportId}):${warning}`);
987
+ this._logger.warn(`\nExport(${exportId}):${warning}`);
1037
988
  }
1038
989
  }
1039
990
  checkAvailability(action, checkForModelId = false) {
1040
991
  var _a;
1041
- if (!this._responseDto) {
1042
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: responseDto not available.`);
1043
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.checkAvailability', error);
1044
- }
1045
- if (!this._sessionId) {
1046
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: sessionId not available.`);
1047
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.checkAvailability', error);
1048
- }
1049
- if (checkForModelId && !this._modelId) {
1050
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: modelId not available.`);
1051
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.checkAvailability', error);
1052
- }
1053
- if (action && !this._responseDto.actions) {
1054
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: actions not available.`);
1055
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.checkAvailability', error);
1056
- }
992
+ if (!this._responseDto)
993
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: responseDto not available.`);
994
+ if (!this._sessionId)
995
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: sessionId not available.`);
996
+ if (checkForModelId && !this._modelId)
997
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: modelId not available.`);
998
+ if (action && !this._responseDto.actions)
999
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: actions not available.`);
1057
1000
  const responseDtoAction = (_a = this._responseDto.actions) === null || _a === void 0 ? void 0 : _a.find(a => a.name === action);
1058
- if (action && !responseDtoAction) {
1059
- const error = new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: action ${action} not available.`);
1060
- throw this._logger.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.checkAvailability', error);
1061
- }
1001
+ if (action && !responseDtoAction)
1002
+ throw new viewer_shared_services_1.ShapeDiverViewerSessionError(`Session.checkAvailability: action ${action} not available.`);
1062
1003
  }
1063
1004
  customizeInternal(cancelRequest) {
1064
1005
  return __awaiter(this, void 0, void 0, function* () {
@@ -1079,41 +1020,34 @@ class SessionEngine {
1079
1020
  return parallel === false ? this.loadOutputs(cancelRequest) : this.loadOutputsParallel(responseDto, cancelRequest);
1080
1021
  }
1081
1022
  catch (e) {
1082
- yield this.handleError(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Session.customizeSession', e, retry);
1023
+ yield this.handleError(e, retry);
1083
1024
  if (cancelRequest())
1084
1025
  return new SessionTreeNode_1.SessionTreeNode();
1085
1026
  return yield this.customizeSession(parameters, cancelRequest, parallel, true);
1086
1027
  }
1087
1028
  });
1088
1029
  }
1089
- handleError(topic, scope, e, retry = false) {
1030
+ handleError(e, retry = false) {
1090
1031
  return __awaiter(this, void 0, void 0, function* () {
1091
1032
  if (e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverResponseError) {
1092
1033
  if (e.error === sdk_geometry_api_sdk_v2_1.ShapeDiverResponseErrorType.SESSION_GONE_ERROR) {
1093
1034
  // case 1: the session is no longer available
1094
1035
  // we try to re-initialize the session 3 times, if that does not work, we close it
1095
- this._logger.warn(topic, `The session has been closed, trying to re-initialize.`);
1036
+ this._logger.warn(`The session has been closed, trying to re-initialize.`);
1096
1037
  if (this._retryCounter < 3) {
1097
1038
  // we retry this 3 times, the `retry` option in the init function is set to true and passed on
1098
1039
  this._retryCounter = retry ? this._retryCounter + 1 : 1;
1099
- try {
1100
- this._initialized = false;
1101
- yield this.init(this.parameterValues, true);
1102
- }
1103
- catch (e) {
1104
- if (e instanceof viewer_shared_services_1.ShapeDiverViewerError || e instanceof sdk_geometry_api_sdk_v2_1.ShapeDiverError)
1105
- throw e;
1106
- throw this._logger.handleError(topic, scope, e);
1107
- }
1040
+ this._initialized = false;
1041
+ yield this.init(this.parameterValues, true);
1108
1042
  }
1109
1043
  else {
1110
1044
  // the retries were exceeded, we close the session
1111
- this._logger.warn(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Tried to retry the connect multiple times, bearer token still not valid. Closing Session.');
1045
+ this._logger.warn('Tried to retry the connect multiple times, bearer token still not valid. Closing Session.');
1112
1046
  try {
1113
1047
  yield this._closeOnFailure();
1114
1048
  }
1115
1049
  catch (e) { }
1116
- throw this._logger.handleError(topic, scope, e);
1050
+ throw e;
1117
1051
  }
1118
1052
  }
1119
1053
  else if (e.error === sdk_geometry_api_sdk_v2_1.ShapeDiverResponseErrorType.JWT_VALIDATION_ERROR) {
@@ -1123,34 +1057,34 @@ class SessionEngine {
1123
1057
  if (this._refreshBearerToken) {
1124
1058
  this.bearerToken = yield this._refreshBearerToken();
1125
1059
  this._retryCounter = retry ? this._retryCounter + 1 : 1;
1126
- this._logger.warn(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Re-trying with new bearer token.');
1060
+ this._logger.warn('Re-trying with new bearer token.');
1127
1061
  }
1128
1062
  else {
1129
1063
  // no bearer tokens are supplied, we close the session
1130
- this._logger.warn(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'No retry possible, no new bearer token was supplied. Closing Session.');
1064
+ this._logger.warn('No retry possible, no new bearer token was supplied. Closing Session.');
1131
1065
  try {
1132
1066
  yield this._closeOnFailure();
1133
1067
  }
1134
1068
  catch (e) { }
1135
- throw this._logger.handleError(topic, scope, e);
1069
+ throw e;
1136
1070
  }
1137
1071
  }
1138
1072
  else {
1139
1073
  // the retries were exceeded, we close the session
1140
- this._logger.warn(viewer_shared_services_1.LOGGING_TOPIC.SESSION, 'Tried to retry the connect multiple times, bearer token still not valid. Closing Session.');
1074
+ this._logger.warn('Tried to retry the connect multiple times, bearer token still not valid. Closing Session.');
1141
1075
  try {
1142
1076
  yield this._closeOnFailure();
1143
1077
  }
1144
1078
  catch (e) { }
1145
- throw this._logger.handleError(topic, scope, e);
1079
+ throw e;
1146
1080
  }
1147
1081
  }
1148
1082
  else {
1149
- throw this._logger.handleError(topic, scope, e);
1083
+ throw e;
1150
1084
  }
1151
1085
  }
1152
1086
  else {
1153
- throw this._logger.handleError(topic, scope, e);
1087
+ throw e;
1154
1088
  }
1155
1089
  });
1156
1090
  }
@@ -1250,6 +1184,14 @@ class SessionEngine {
1250
1184
  }
1251
1185
  }
1252
1186
  }
1187
+ addToSceneTree(node) {
1188
+ this._sceneTree.addNode(node);
1189
+ this._sceneTree.root.updateVersion();
1190
+ }
1191
+ removeFromSceneTree(node) {
1192
+ this._sceneTree.removeNode(node);
1193
+ this._sceneTree.root.updateVersion();
1194
+ }
1253
1195
  }
1254
1196
  exports.SessionEngine = SessionEngine;
1255
1197
  _SessionEngine_customizationProcess = new WeakMap(), _SessionEngine_parameterHistory = new WeakMap(), _SessionEngine_parameterHistoryCall = new WeakMap(), _SessionEngine_parameterHistoryForward = new WeakMap();