@combeenation/3d-viewer 4.0.0-beta1 → 4.0.0-beta2

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 (57) hide show
  1. package/README.md +1 -0
  2. package/dist/lib-cjs/api/classes/element.d.ts +12 -16
  3. package/dist/lib-cjs/api/classes/element.js +129 -194
  4. package/dist/lib-cjs/api/classes/element.js.map +1 -1
  5. package/dist/lib-cjs/api/classes/event.d.ts +1 -15
  6. package/dist/lib-cjs/api/classes/event.js +1 -15
  7. package/dist/lib-cjs/api/classes/event.js.map +1 -1
  8. package/dist/lib-cjs/api/classes/parameter.d.ts +7 -101
  9. package/dist/lib-cjs/api/classes/parameter.js +21 -141
  10. package/dist/lib-cjs/api/classes/parameter.js.map +1 -1
  11. package/dist/lib-cjs/api/classes/parameterObservable.js +36 -11
  12. package/dist/lib-cjs/api/classes/parameterObservable.js.map +1 -1
  13. package/dist/lib-cjs/api/classes/placementAnimation.d.ts +2 -2
  14. package/dist/lib-cjs/api/classes/placementAnimation.js +0 -11
  15. package/dist/lib-cjs/api/classes/placementAnimation.js.map +1 -1
  16. package/dist/lib-cjs/api/classes/variant.d.ts +14 -48
  17. package/dist/lib-cjs/api/classes/variant.js +56 -320
  18. package/dist/lib-cjs/api/classes/variant.js.map +1 -1
  19. package/dist/lib-cjs/api/classes/variantInstance.d.ts +1 -5
  20. package/dist/lib-cjs/api/classes/variantInstance.js +0 -10
  21. package/dist/lib-cjs/api/classes/variantInstance.js.map +1 -1
  22. package/dist/lib-cjs/api/classes/viewer.d.ts +3 -6
  23. package/dist/lib-cjs/api/classes/viewer.js +59 -133
  24. package/dist/lib-cjs/api/classes/viewer.js.map +1 -1
  25. package/dist/lib-cjs/api/internal/sceneSetup.d.ts +1 -5
  26. package/dist/lib-cjs/api/internal/sceneSetup.js +71 -75
  27. package/dist/lib-cjs/api/internal/sceneSetup.js.map +1 -1
  28. package/dist/lib-cjs/api/util/babylonHelper.d.ts +4 -54
  29. package/dist/lib-cjs/api/util/babylonHelper.js +8 -160
  30. package/dist/lib-cjs/api/util/babylonHelper.js.map +1 -1
  31. package/dist/lib-cjs/api/util/globalTypes.d.ts +12 -62
  32. package/dist/lib-cjs/api/util/resourceHelper.d.ts +8 -8
  33. package/dist/lib-cjs/api/util/resourceHelper.js +24 -63
  34. package/dist/lib-cjs/api/util/resourceHelper.js.map +1 -1
  35. package/dist/lib-cjs/index.d.ts +22 -24
  36. package/dist/lib-cjs/index.js +38 -42
  37. package/dist/lib-cjs/index.js.map +1 -1
  38. package/package.json +1 -1
  39. package/src/api/classes/element.ts +117 -146
  40. package/src/api/classes/{parameterizable.ts → elementParameterizable.ts} +1 -12
  41. package/src/api/classes/event.ts +1 -16
  42. package/src/api/classes/parameter.ts +22 -153
  43. package/src/api/classes/parameterObservable.ts +31 -9
  44. package/src/api/classes/placementAnimation.ts +0 -10
  45. package/src/api/classes/variant.ts +51 -187
  46. package/src/api/classes/variantInstance.ts +1 -8
  47. package/src/api/classes/viewer.ts +11 -68
  48. package/src/api/internal/sceneSetup.ts +109 -99
  49. package/src/api/util/babylonHelper.ts +10 -171
  50. package/src/api/util/globalTypes.ts +14 -71
  51. package/src/api/util/resourceHelper.ts +23 -31
  52. package/src/dev.ts +6 -2
  53. package/src/index.ts +23 -27
  54. package/src/pagesconfig.json +13 -8
  55. package/src/api/classes/variantParameterizable.ts +0 -73
  56. package/src/api/classes/viewerLight.ts +0 -330
  57. package/src/api/util/stringHelper.ts +0 -26
package/README.md CHANGED
@@ -33,6 +33,7 @@
33
33
  options: {
34
34
  preserveDrawingBuffer: true,
35
35
  stencil: true,
36
+ xrCompatible: false, // required to fix WebXR issue in Safari 15 as mentioned in the BabylonJS Forum: https://forum.babylonjs.com/t/safari-15-0-breaks-every-babylonjs-application/23973
36
37
  },
37
38
  },
38
39
  scene: {
@@ -1,8 +1,8 @@
1
1
  import { HighlightLayer } from '@babylonjs/core/Layers/highlightLayer';
2
2
  import { Mesh } from '@babylonjs/core/Meshes/mesh';
3
3
  import { TransformNode } from '@babylonjs/core/Meshes/transformNode';
4
- import { VariantParameterizable } from './../classes/variantParameterizable';
5
4
  import { DottedPath } from './dottedPath';
5
+ import { ElementParameterizable } from './elementParameterizable';
6
6
  import { Variant } from './variant';
7
7
  /**
8
8
  * An {@link Element} of a {@link Variant}. Acts as a container for diverse definitions. Lives only in the context of a
@@ -11,20 +11,18 @@ import { Variant } from './variant';
11
11
  * When used in typings, refer to via its alias {@link VariantElement} to prevent name clashes with the web APIs
12
12
  * [Element](https://developer.mozilla.org/en-US/docs/Web/API/Element) class
13
13
  */
14
- export declare class Element extends VariantParameterizable {
14
+ export declare class Element extends ElementParameterizable {
15
15
  readonly variant: Variant;
16
16
  readonly name: string;
17
- readonly nodes: TransformNode[];
18
17
  protected readonly _dottedNodes: Map<DottedPath, TransformNode>;
18
+ protected readonly _parameterObservers: Map<string, ParameterObserver[]>;
19
19
  protected _highlightLayer?: HighlightLayer;
20
+ protected _paintableTextureId: number;
21
+ readonly nodes: TransformNode[];
20
22
  /**
21
23
  * Constructor.
22
24
  */
23
- protected constructor(variant: Variant, name: string);
24
- /**
25
- * Creates an {@link Element} with given name.
26
- */
27
- static create(variant: Variant, name: string): Promise<Element>;
25
+ constructor(variant: Variant, name: string);
28
26
  /**
29
27
  * The {@link DottedPath} in the built tree of {@link Element}s.
30
28
  * E.g. "_.top-1.sub-2.sub-sub-3.el-1"
@@ -89,19 +87,21 @@ export declare class Element extends VariantParameterizable {
89
87
  */
90
88
  getTraceableNode(name: string): TransformNode;
91
89
  /**
92
- * @see {@link VariantParameterizable.commitParameters}
90
+ * Places the given {@link ParameterBag} in the {@link Element}'s parameters, replaces all patterns in the
91
+ * {@link StructureJson} and broadcasts all {@link ParameterObserver}s.
92
+ *
93
93
  * @emit {@link Event.ELEMENT_PARAMETER_COMMITTED}
94
94
  */
95
- commitParameters(parameters?: ParameterBag): Promise<VariantParameterizable>;
95
+ commitParameters(parameters?: ParameterBag): Promise<Element>;
96
96
  /**
97
97
  * Adds an observer function for camera matrix changes.
98
98
  * The `observer` gets 2 parameters: the `AbstractMesh` and a `ClientRect` object.
99
99
  */
100
100
  addTraceableObserver(traceable: string, observer: CallableFunction, payload?: any): Element;
101
101
  /**
102
- * Draws a `ImageBitmap` or `OffscreenCanvas` onto a `paintable` defined via {@link PaintableDefinition}.
102
+ * Draws a image onto a `paintable` defined via {@link PaintableDefinition}.
103
103
  */
104
- drawPaintable(paintable: string, imageSource: CanvasImageSource): Element;
104
+ drawPaintable(paintable: string, imageSource: string): Promise<Element>;
105
105
  /**
106
106
  * Draws a SVG string onto a `paintable` defined via {@link PaintableDefinition}.
107
107
  */
@@ -123,8 +123,4 @@ export declare class Element extends VariantParameterizable {
123
123
  * @protected
124
124
  */
125
125
  protected assertPathDefinitions(): void;
126
- /**
127
- * Handles callback for given light parameter.
128
- */
129
- private castShadowValueHandler;
130
126
  }
@@ -5,17 +5,19 @@ var tslib_1 = require("tslib");
5
5
  var highlightLayer_1 = require("@babylonjs/core/Layers/highlightLayer");
6
6
  var material_1 = require("@babylonjs/core/Materials/material");
7
7
  var standardMaterial_1 = require("@babylonjs/core/Materials/standardMaterial");
8
- var dynamicTexture_1 = require("@babylonjs/core/Materials/Textures/dynamicTexture");
8
+ var math_axis_1 = require("@babylonjs/core/Maths/math.axis");
9
9
  var math_color_1 = require("@babylonjs/core/Maths/math.color");
10
10
  var abstractMesh_1 = require("@babylonjs/core/Meshes/abstractMesh");
11
11
  var instancedMesh_1 = require("@babylonjs/core/Meshes/instancedMesh");
12
12
  var mesh_1 = require("@babylonjs/core/Meshes/mesh");
13
13
  var transformNode_1 = require("@babylonjs/core/Meshes/transformNode");
14
+ var texture_1 = require("@babylonjs/core/Materials/Textures/texture");
14
15
  var lodash_es_1 = require("lodash-es");
15
16
  var babylonHelper_1 = require("../util/babylonHelper");
16
17
  var resourceHelper_1 = require("../util/resourceHelper");
17
- var variantParameterizable_1 = require("./../classes/variantParameterizable");
18
18
  var dottedPath_1 = require("./dottedPath");
19
+ var elementParameterizable_1 = require("./elementParameterizable");
20
+ var event_1 = require("./event");
19
21
  var parameter_1 = require("./parameter");
20
22
  /**
21
23
  * An {@link Element} of a {@link Variant}. Acts as a container for diverse definitions. Lives only in the context of a
@@ -31,11 +33,13 @@ var Element = /** @class */ (function (_super) {
31
33
  */
32
34
  function Element(variant, name) {
33
35
  var _a;
34
- var _this = _super.call(this, variant, name) || this;
36
+ var _this = _super.call(this) || this;
35
37
  _this.variant = variant;
36
38
  _this.name = name;
37
- _this.nodes = [];
38
39
  _this._dottedNodes = new Map();
40
+ _this._parameterObservers = new Map();
41
+ _this._paintableTextureId = 0;
42
+ _this.nodes = [];
39
43
  if ((_a = process.env.NODE_ENV) === null || _a === void 0 ? void 0 : _a.toLowerCase().includes('dev')) {
40
44
  _this.assertPathDefinitions();
41
45
  }
@@ -45,16 +49,6 @@ var Element = /** @class */ (function (_super) {
45
49
  _this.addParameterObservers();
46
50
  return _this;
47
51
  }
48
- /**
49
- * Creates an {@link Element} with given name.
50
- */
51
- Element.create = function (variant, name) {
52
- return tslib_1.__awaiter(this, void 0, void 0, function () {
53
- return tslib_1.__generator(this, function (_a) {
54
- return [2 /*return*/, new Element(variant, name)];
55
- });
56
- });
57
- };
58
52
  Object.defineProperty(Element.prototype, "dottedPath", {
59
53
  /**
60
54
  * The {@link DottedPath} in the built tree of {@link Element}s.
@@ -222,13 +216,52 @@ var Element = /** @class */ (function (_super) {
222
216
  return this.getNode(this.getTraceableDefinition(name).path);
223
217
  };
224
218
  /**
225
- * @see {@link VariantParameterizable.commitParameters}
219
+ * Places the given {@link ParameterBag} in the {@link Element}'s parameters, replaces all patterns in the
220
+ * {@link StructureJson} and broadcasts all {@link ParameterObserver}s.
221
+ *
226
222
  * @emit {@link Event.ELEMENT_PARAMETER_COMMITTED}
227
223
  */
228
224
  Element.prototype.commitParameters = function (parameters) {
229
225
  return tslib_1.__awaiter(this, void 0, void 0, function () {
226
+ var oldParameters, observerPromises, _loop_1, this_1, parameter;
227
+ var _this = this;
230
228
  return tslib_1.__generator(this, function (_a) {
231
- return [2 /*return*/, _super.prototype.commitParameters.call(this, parameters)];
229
+ switch (_a.label) {
230
+ case 0:
231
+ if (!parameters) {
232
+ parameters = {};
233
+ }
234
+ oldParameters = lodash_es_1.cloneDeep(this.parameters);
235
+ lodash_es_1.merge(this.parameters, parameters);
236
+ observerPromises = [];
237
+ _loop_1 = function (parameter) {
238
+ var oldParameterValue = oldParameters[parameter];
239
+ var newParameterValue = this_1.parameters[parameter];
240
+ this_1.variant.assertParameter(this_1.variant.inheritedParameterDeclaration, parameter, newParameterValue);
241
+ if (oldParameterValue === newParameterValue) {
242
+ return "continue";
243
+ }
244
+ // parameter changed
245
+ var parameterObservers = resourceHelper_1.mergeMaps(this_1._parameterObservers, this_1.parameterObservers);
246
+ if (parameterObservers.has(parameter)) {
247
+ var observers = parameterObservers.get(parameter);
248
+ observerPromises = lodash_es_1.concat(observerPromises, observers.map(function (observer) {
249
+ var observerResult = observer(_this, oldParameterValue, newParameterValue);
250
+ return Promise.resolve(observerResult).then(function () {
251
+ _this.broadcastEvent(event_1.Event.ELEMENT_PARAMETER_COMMITTED, _this, parameter, oldParameterValue, newParameterValue);
252
+ });
253
+ }));
254
+ }
255
+ };
256
+ this_1 = this;
257
+ for (parameter in this.parameters) {
258
+ _loop_1(parameter);
259
+ }
260
+ return [4 /*yield*/, Promise.all(observerPromises)];
261
+ case 1:
262
+ _a.sent();
263
+ return [2 /*return*/, this];
264
+ }
232
265
  });
233
266
  });
234
267
  };
@@ -259,58 +292,59 @@ var Element = /** @class */ (function (_super) {
259
292
  return this;
260
293
  };
261
294
  /**
262
- * Draws a `ImageBitmap` or `OffscreenCanvas` onto a `paintable` defined via {@link PaintableDefinition}.
295
+ * Draws a image onto a `paintable` defined via {@link PaintableDefinition}.
263
296
  */
264
297
  Element.prototype.drawPaintable = function (paintable, imageSource) {
265
- var paintableDefinition = this.getPaintableDefinition(paintable);
266
- var node = this.getPaintableNode(paintable);
267
- if (!(node instanceof abstractMesh_1.AbstractMesh)) {
268
- throw new Error("The path must be an instance of \"AbstractMesh\" for paintable \"" + paintable + "\" " +
269
- ("in element \"" + this.id + "\"."));
270
- }
271
- if (node.material && !lodash_es_1.has(node.metadata, 'dirty.material')) {
272
- babylonHelper_1.cloneTransformNodeMaterial(node);
273
- }
274
- if (!node.material) {
275
- node.material = new standardMaterial_1.StandardMaterial(this.id + "." + paintable + ".material", this.variant.viewer.scene);
276
- }
277
- node.material.transparencyMode = material_1.Material.MATERIAL_ALPHATESTANDBLEND;
278
- if (!lodash_es_1.has(node.metadata, 'dirty.material.texture')) {
279
- // inject initial value and mark as dirty
280
- babylonHelper_1.injectNodeMetadata(node, { dirty: { material: { texture: true } } });
281
- }
282
- var widthAndHeight = {
283
- width: imageSource.width,
284
- height: imageSource.height
285
- };
286
- if (lodash_es_1.isNumber(paintableDefinition.textureOptions)) {
287
- widthAndHeight.width = paintableDefinition.textureOptions;
288
- widthAndHeight.height = paintableDefinition.textureOptions;
289
- }
290
- else if (lodash_es_1.isPlainObject(paintableDefinition.textureOptions)) {
291
- widthAndHeight.width = paintableDefinition.textureOptions.width;
292
- widthAndHeight.height = paintableDefinition.textureOptions.height;
293
- }
294
- var texture = new dynamicTexture_1.DynamicTexture(this.id + "." + paintable + ".texture", widthAndHeight, this.variant.viewer.scene, false);
295
- babylonHelper_1.setMaterialTexture(node, texture, false);
296
- var ctx = texture.getContext();
297
- // flip texture context horizontal with translate and scale
298
- ctx.drawImage(imageSource, 0, 0);
299
- texture.update(false);
300
- return this;
298
+ return tslib_1.__awaiter(this, void 0, void 0, function () {
299
+ var node;
300
+ var _this = this;
301
+ return tslib_1.__generator(this, function (_a) {
302
+ switch (_a.label) {
303
+ case 0:
304
+ node = this.getPaintableNode(paintable);
305
+ if (!(node instanceof abstractMesh_1.AbstractMesh)) {
306
+ throw new Error("The path must be an instance of \"AbstractMesh\" for paintable \"" + paintable + "\" " +
307
+ ("in element \"" + this.id + "\"."));
308
+ }
309
+ if (node.material && !lodash_es_1.get(node.metadata, 'dirty.material')) {
310
+ babylonHelper_1.cloneTransformNodeMaterial(node);
311
+ }
312
+ if (!node.material) {
313
+ node.material = new standardMaterial_1.StandardMaterial(this.id + "." + paintable + ".material", this.variant.viewer.scene);
314
+ }
315
+ node.material.transparencyMode = material_1.Material.MATERIAL_ALPHATESTANDBLEND;
316
+ if (!lodash_es_1.get(node.metadata, 'dirty.material.texture')) {
317
+ // inject initial value and mark as dirty
318
+ babylonHelper_1.injectTransformNodeMetadata(node, { dirty: { material: { texture: true } } }, false);
319
+ }
320
+ return [4 /*yield*/, new Promise(function (resolve) {
321
+ var paintableTexture = texture_1.Texture.CreateFromBase64String(imageSource, _this.id + "." + paintable + ".texture." + _this._paintableTextureId, _this.variant.viewer.scene, undefined, false, undefined, function () {
322
+ babylonHelper_1.setMaterialTexture(node, paintableTexture, false);
323
+ resolve();
324
+ });
325
+ // NOTE: Paintable texture need an individual id, otherwise the already existing texture on this id does not get overwritten
326
+ // Maybe think of a disposal logic here in the future
327
+ _this._paintableTextureId++;
328
+ })];
329
+ case 1:
330
+ _a.sent();
331
+ return [2 /*return*/, this];
332
+ }
333
+ });
334
+ });
301
335
  };
302
336
  /**
303
337
  * Draws a SVG string onto a `paintable` defined via {@link PaintableDefinition}.
304
338
  */
305
339
  Element.prototype.drawPaintableFromSvg = function (paintable, svgSource) {
306
340
  return tslib_1.__awaiter(this, void 0, void 0, function () {
307
- var source;
341
+ var imageUrl;
308
342
  return tslib_1.__generator(this, function (_a) {
309
343
  switch (_a.label) {
310
- case 0: return [4 /*yield*/, resourceHelper_1.createImageBitmapFromSvg(svgSource)];
344
+ case 0: return [4 /*yield*/, resourceHelper_1.createImageUrlFromSvg(svgSource)];
311
345
  case 1:
312
- source = _a.sent();
313
- return [2 /*return*/, this.drawPaintable(paintable, source)];
346
+ imageUrl = _a.sent();
347
+ return [2 /*return*/, this.drawPaintable(paintable, imageUrl)];
314
348
  }
315
349
  });
316
350
  });
@@ -320,14 +354,8 @@ var Element = /** @class */ (function (_super) {
320
354
  */
321
355
  Element.prototype.drawPaintableFromImgSrc = function (paintable, imgSource) {
322
356
  return tslib_1.__awaiter(this, void 0, void 0, function () {
323
- var source;
324
357
  return tslib_1.__generator(this, function (_a) {
325
- switch (_a.label) {
326
- case 0: return [4 /*yield*/, resourceHelper_1.createImageBitmapFromImgSrc(imgSource)];
327
- case 1:
328
- source = _a.sent();
329
- return [2 /*return*/, this.drawPaintable(paintable, source)];
330
- }
358
+ return [2 /*return*/, this.drawPaintable(paintable, imgSource)];
331
359
  });
332
360
  });
333
361
  };
@@ -348,13 +376,13 @@ var Element = /** @class */ (function (_super) {
348
376
  }
349
377
  if (visible === true) {
350
378
  element.nodes.forEach(function (node) {
351
- babylonHelper_1.injectNodeMetadata(node, { visibility: node.isEnabled() });
379
+ babylonHelper_1.injectTransformNodeMetadata(node, { visibility: node.isEnabled() });
352
380
  babylonHelper_1.activateTransformNode(node);
353
381
  });
354
382
  }
355
383
  else if (visible === false) {
356
384
  element.nodes.forEach(function (node) {
357
- babylonHelper_1.injectNodeMetadata(node, { visibility: node.isEnabled() });
385
+ babylonHelper_1.injectTransformNodeMetadata(node, { visibility: node.isEnabled() });
358
386
  babylonHelper_1.deactivateTransformNode(node);
359
387
  });
360
388
  }
@@ -403,12 +431,12 @@ var Element = /** @class */ (function (_super) {
403
431
  ("Tried to change node \"" + node.id + "\" on element \"" + element.id + "\"."));
404
432
  }
405
433
  });
406
- if (!lodash_es_1.has(node.metadata, 'dirty.material')) {
434
+ if (!lodash_es_1.get(node.metadata, 'dirty.material')) {
407
435
  babylonHelper_1.cloneTransformNodeMaterial(node);
408
436
  }
409
- if (!lodash_es_1.has(node.metadata, 'dirty.material.color')) {
437
+ if (!lodash_es_1.get(node.metadata, 'dirty.material.color')) {
410
438
  // inject initial value and mark as dirty
411
- babylonHelper_1.injectNodeMetadata(node, { dirty: { material: { color: oldValue } } });
439
+ babylonHelper_1.injectTransformNodeMetadata(node, { dirty: { material: { color: oldValue } } });
412
440
  }
413
441
  babylonHelper_1.setMaterialColor(node, color);
414
442
  });
@@ -429,12 +457,12 @@ var Element = /** @class */ (function (_super) {
429
457
  ("Tried to change node \"" + node.id + "\" on element \"" + element.id + "\"."));
430
458
  }
431
459
  });
432
- if (!lodash_es_1.has(node.metadata, 'dirty.material')) {
460
+ if (!lodash_es_1.get(node.metadata, 'dirty.material')) {
433
461
  babylonHelper_1.cloneTransformNodeMaterial(node);
434
462
  }
435
- if (!lodash_es_1.has(node.metadata, 'dirty.material.metallness')) {
463
+ if (!lodash_es_1.get(node.metadata, 'dirty.material.metallness')) {
436
464
  // inject initial value and mark as dirty
437
- babylonHelper_1.injectNodeMetadata(node, { dirty: { material: { metallness: oldValue } } });
465
+ babylonHelper_1.injectTransformNodeMetadata(node, { dirty: { material: { metallness: oldValue } } });
438
466
  }
439
467
  babylonHelper_1.setMaterialMetallness(node, metallness);
440
468
  });
@@ -455,12 +483,12 @@ var Element = /** @class */ (function (_super) {
455
483
  ("Tried to change node \"" + node.id + "\" on element \"" + element.id + "\"."));
456
484
  }
457
485
  });
458
- if (!lodash_es_1.has(node.metadata, 'dirty.material')) {
486
+ if (!lodash_es_1.get(node.metadata, 'dirty.material')) {
459
487
  babylonHelper_1.cloneTransformNodeMaterial(node);
460
488
  }
461
- if (!lodash_es_1.has(node.metadata, 'dirty.material.roughness')) {
489
+ if (!lodash_es_1.get(node.metadata, 'dirty.material.roughness')) {
462
490
  // inject initial value and mark as dirty
463
- babylonHelper_1.injectNodeMetadata(node, { dirty: { material: { roughness: oldValue } } });
491
+ babylonHelper_1.injectTransformNodeMetadata(node, { dirty: { material: { roughness: oldValue } } });
464
492
  }
465
493
  babylonHelper_1.setMaterialRoughness(node, roughness);
466
494
  });
@@ -559,7 +587,18 @@ var Element = /** @class */ (function (_super) {
559
587
  function (element, oldValue, newValue) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
560
588
  return tslib_1.__generator(this, function (_a) {
561
589
  // we have to deal just with root nodes here due to relative impacts in a node tree
562
- element.nodes.forEach(function (node) { return babylonHelper_1.moveTransformNode(node, parameter_1.Parameter.parseVector(newValue)); });
590
+ element.nodes.forEach(function (node) {
591
+ // remember absolute position and reset it before translating
592
+ if (!lodash_es_1.get(node.metadata, 'position')) {
593
+ node.metadata.position = node.absolutePosition.clone();
594
+ }
595
+ node.setAbsolutePosition(node.metadata.position);
596
+ // move
597
+ var distance = parameter_1.Parameter.parseVector(newValue);
598
+ node.translate(math_axis_1.Axis.X, distance.x, math_axis_1.Space.WORLD);
599
+ node.translate(math_axis_1.Axis.Y, distance.y, math_axis_1.Space.WORLD);
600
+ node.translate(math_axis_1.Axis.Z, distance.z, math_axis_1.Space.WORLD);
601
+ });
563
602
  return [2 /*return*/];
564
603
  });
565
604
  }); }
@@ -567,83 +606,19 @@ var Element = /** @class */ (function (_super) {
567
606
  this._parameterObservers.set(parameter_1.Parameter.ROTATION, [
568
607
  function (element, oldValue, newValue) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
569
608
  return tslib_1.__generator(this, function (_a) {
570
- switch (_a.label) {
571
- case 0:
572
- if (!(parameter_1.Parameter.POSITION in element.inheritedParameters)) return [3 /*break*/, 2];
573
- return [4 /*yield*/, element.commitParameter(parameter_1.Parameter.POSITION, element.inheritedParameters[parameter_1.Parameter.POSITION])];
574
- case 1:
575
- _a.sent();
576
- _a.label = 2;
577
- case 2:
578
- // we have to deal just with root nodes here due to relative impacts in a node tree
579
- element.nodes.forEach(function (node) { return babylonHelper_1.rotateTransformNode(node, parameter_1.Parameter.parseRotation(newValue)); });
580
- return [2 /*return*/];
581
- }
582
- });
583
- }); }
584
- ]);
585
- this._parameterObservers.set(parameter_1.Parameter.CAST_SHADOW, [
586
- function (element, oldValue, newValue) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
587
- var castShadow, lightCsl;
588
- return tslib_1.__generator(this, function (_a) {
589
- switch (_a.label) {
590
- case 0:
591
- try {
592
- castShadow = parameter_1.Parameter.parseBoolean(newValue);
593
- }
594
- catch (e) {
595
- return [2 /*return*/];
596
- }
597
- lightCsl = element.inheritedParameters[parameter_1.Parameter.CAST_SHADOW_FROM_LIGHTS];
598
- if (!lightCsl) {
599
- lightCsl = element.variant.inheritedViewerLights.map(function (l) { return l.name; }).join(',');
600
- }
601
- if (!(castShadow === true)) return [3 /*break*/, 2];
602
- return [4 /*yield*/, this.castShadowValueHandler(lightCsl, babylonHelper_1.addToShadowGenerator)];
603
- case 1:
604
- _a.sent();
605
- _a.label = 2;
606
- case 2:
607
- if (!(castShadow === false)) return [3 /*break*/, 4];
608
- return [4 /*yield*/, this.castShadowValueHandler(lightCsl, babylonHelper_1.removeFromShadowGenerator)];
609
- case 3:
610
- _a.sent();
611
- _a.label = 4;
612
- case 4: return [2 /*return*/];
613
- }
614
- });
615
- }); }
616
- ]);
617
- this._parameterObservers.set(parameter_1.Parameter.CAST_SHADOW_FROM_LIGHTS, [
618
- function (element, oldValue, newValue) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
619
- var lightCsl;
620
- return tslib_1.__generator(this, function (_a) {
621
- switch (_a.label) {
622
- case 0:
623
- lightCsl = element.variant.inheritedViewerLights.map(function (l) { return l.name; }).join(',');
624
- // cleanup all shadow generators
625
- return [4 /*yield*/, this.castShadowValueHandler(lightCsl, babylonHelper_1.removeFromShadowGenerator)];
626
- case 1:
627
- // cleanup all shadow generators
628
- _a.sent();
629
- if (!(element.castShadow === true)) return [3 /*break*/, 3];
630
- // if newValue is undefined or '' then set newValue to lightCsl (use all lights)
631
- if (!newValue) {
632
- newValue = lightCsl;
633
- }
634
- return [4 /*yield*/, this.castShadowValueHandler(newValue, babylonHelper_1.addToShadowGenerator)];
635
- case 2:
636
- _a.sent();
637
- _a.label = 3;
638
- case 3: return [2 /*return*/];
639
- }
640
- });
641
- }); }
642
- ]);
643
- this._parameterObservers.set(parameter_1.Parameter.RECEIVE_SHADOWS, [
644
- function (element, oldValue, newValue) { return tslib_1.__awaiter(_this, void 0, void 0, function () {
645
- return tslib_1.__generator(this, function (_a) {
646
- element.nodes.forEach(function (node) { return babylonHelper_1.setReceiveShadows(node, parameter_1.Parameter.parseBoolean(newValue)); });
609
+ // we have to deal just with root nodes here due to relative impacts in a node tree
610
+ element.nodes.forEach(function (node) {
611
+ // remember absolute rotation and reset it before translating
612
+ if (!lodash_es_1.get(node.metadata, 'rotation')) {
613
+ node.metadata.rotation = node.rotation.clone();
614
+ }
615
+ node.rotation = node.metadata.rotation;
616
+ // rotate
617
+ var rotation = parameter_1.Parameter.parseRotation(newValue);
618
+ node.rotate(math_axis_1.Axis.X, rotation.x, math_axis_1.Space.WORLD);
619
+ node.rotate(math_axis_1.Axis.Y, rotation.y, math_axis_1.Space.WORLD);
620
+ node.rotate(math_axis_1.Axis.Z, rotation.z, math_axis_1.Space.WORLD);
621
+ });
647
622
  return [2 /*return*/];
648
623
  });
649
624
  }); }
@@ -694,47 +669,7 @@ var Element = /** @class */ (function (_super) {
694
669
  }
695
670
  });
696
671
  };
697
- /**
698
- * Handles callback for given light parameter.
699
- */
700
- Element.prototype.castShadowValueHandler = function (lightCsl, mutator) {
701
- return tslib_1.__awaiter(this, void 0, void 0, function () {
702
- var lights, _i, _a, lightName, viewerLight, shadowGenerators;
703
- var _this = this;
704
- return tslib_1.__generator(this, function (_b) {
705
- switch (_b.label) {
706
- case 0:
707
- lights = [];
708
- _i = 0, _a = parameter_1.Parameter.parseCommaSeparatedList(lightCsl);
709
- _b.label = 1;
710
- case 1:
711
- if (!(_i < _a.length)) return [3 /*break*/, 4];
712
- lightName = _a[_i];
713
- return [4 /*yield*/, this.variant.getViewerLight(lightName)];
714
- case 2:
715
- viewerLight = _b.sent();
716
- if (viewerLight) {
717
- lights.push(viewerLight.light);
718
- }
719
- _b.label = 3;
720
- case 3:
721
- _i++;
722
- return [3 /*break*/, 1];
723
- case 4:
724
- shadowGenerators = lights
725
- .map(function (light) { return light === null || light === void 0 ? void 0 : light.getShadowGenerator(); })
726
- .filter(Boolean);
727
- shadowGenerators.forEach(function (generator) {
728
- _this.nodes.forEach(function (node) {
729
- mutator(generator, node);
730
- });
731
- });
732
- return [2 /*return*/];
733
- }
734
- });
735
- });
736
- };
737
672
  return Element;
738
- }(variantParameterizable_1.VariantParameterizable));
673
+ }(elementParameterizable_1.ElementParameterizable));
739
674
  exports.Element = Element;
740
675
  //# sourceMappingURL=element.js.map
@@ -1 +1 @@
1
- {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../../src/api/classes/element.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"element.js","sourceRoot":"","sources":["../../../../src/api/classes/element.ts"],"names":[],"mappings":"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"}