x_ite 9.3.0 → 9.3.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 (50) hide show
  1. package/dist/assets/components/Annotation.js +13 -13
  2. package/dist/assets/components/Annotation.min.js +1 -1
  3. package/dist/assets/components/CADGeometry.js +16 -16
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +25 -25
  6. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  7. package/dist/assets/components/DIS.js +13 -13
  8. package/dist/assets/components/DIS.min.js +1 -1
  9. package/dist/assets/components/EventUtilities.js +9 -9
  10. package/dist/assets/components/EventUtilities.min.js +1 -1
  11. package/dist/assets/components/Geometry2D.js +31 -23
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +36 -36
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +23 -23
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +27 -27
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +23 -23
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +31 -28
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +19 -19
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +20 -20
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +38 -38
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +28 -26
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjection.js +15 -15
  34. package/dist/assets/components/TextureProjection.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +30 -30
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +36 -28
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +8 -8
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/assets/lib/draco_decoder_gltf.js +1 -1
  42. package/dist/assets/lib/libktx.js +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.d.ts +4 -0
  45. package/dist/x_ite.js +1580 -807
  46. package/dist/x_ite.min.js +1 -1
  47. package/dist/x_ite.min.mjs +1 -1
  48. package/dist/x_ite.mjs +1580 -807
  49. package/dist/x_ite.zip +0 -0
  50. package/package.json +2 -2
package/dist/x_ite.mjs CHANGED
@@ -1,9 +1,9 @@
1
- /* X_ITE v9.3.0 */var __webpack_modules__ = ({
1
+ /* X_ITE v9.3.2 */var __webpack_modules__ = ({
2
2
 
3
- /***/ 944:
3
+ /***/ 403:
4
4
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
5
5
 
6
- /* provided dependency */ var jQuery = __webpack_require__(52);
6
+ /* provided dependency */ var jQuery = __webpack_require__(183);
7
7
  /**
8
8
  * @preserve jquery.fullscreen 1.1.5
9
9
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -199,7 +199,7 @@ installFullScreenHandlers();
199
199
 
200
200
  /***/ }),
201
201
 
202
- /***/ 82:
202
+ /***/ 287:
203
203
  /***/ ((module, exports, __webpack_require__) => {
204
204
 
205
205
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -213,7 +213,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
213
213
  (function (factory) {
214
214
  if ( true ) {
215
215
  // AMD. Register as an anonymous module.
216
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(52)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
216
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(183)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
217
217
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
218
218
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
219
219
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -424,7 +424,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
424
424
 
425
425
  /***/ }),
426
426
 
427
- /***/ 52:
427
+ /***/ 183:
428
428
  /***/ (function(module, exports) {
429
429
 
430
430
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11148,7 +11148,7 @@ return jQuery;
11148
11148
 
11149
11149
  /***/ }),
11150
11150
 
11151
- /***/ 177:
11151
+ /***/ 972:
11152
11152
  /***/ ((module) => {
11153
11153
 
11154
11154
  /**
@@ -15927,7 +15927,7 @@ if (true) {
15927
15927
 
15928
15928
  /***/ }),
15929
15929
 
15930
- /***/ 776:
15930
+ /***/ 935:
15931
15931
  /***/ (function(__unused_webpack_module, exports) {
15932
15932
 
15933
15933
 
@@ -19172,7 +19172,7 @@ if (true) {
19172
19172
 
19173
19173
  /***/ }),
19174
19174
 
19175
- /***/ 247:
19175
+ /***/ 432:
19176
19176
  /***/ (function(module, exports) {
19177
19177
 
19178
19178
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20299,7 +20299,7 @@ Object .defineProperty (Namespace, "add",
20299
20299
  }
20300
20300
  else
20301
20301
  {
20302
- const X3D = window [Symbol .for ("X_ITE.X3D-9.3.0")];
20302
+ const X3D = window [Symbol .for ("X_ITE.X3D-9.3.2")];
20303
20303
 
20304
20304
  if (X3D)
20305
20305
  X3D [name] = module;
@@ -20529,10 +20529,12 @@ const Algorithm =
20529
20529
  {
20530
20530
  radians (value)
20531
20531
  {
20532
+ // Convert degrees to radians.
20532
20533
  return value * (Math .PI / 180);
20533
20534
  },
20534
20535
  degrees (value)
20535
20536
  {
20537
+ // Convert radians to degrees.
20536
20538
  return value * (180 / Math .PI);
20537
20539
  },
20538
20540
  random (min, max)
@@ -22986,8 +22988,8 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22986
22988
 
22987
22989
  for (const field of this [_fieldInterests])
22988
22990
  {
22989
- if (event .has (field))
22990
- continue;
22991
+ if (event .has (field))
22992
+ continue;
22991
22993
 
22992
22994
  if (first)
22993
22995
  {
@@ -29177,13 +29179,12 @@ const SFNode_handler =
29177
29179
  return value;
29178
29180
 
29179
29181
  const
29180
- node = target .getValue (),
29181
- field = node .getField (key),
29182
- accessType = field .getAccessType ();
29182
+ node = target .getValue (),
29183
+ field = node .getField (key);
29183
29184
 
29184
29185
  // Specification conform would be: accessType & X3DConstants .outputOnly.
29185
29186
  // But we allow read access to plain fields, too.
29186
- if (accessType === Base_X3DConstants .inputOnly)
29187
+ if (field .getAccessType () === Base_X3DConstants .inputOnly)
29187
29188
  return undefined;
29188
29189
 
29189
29190
  return field .valueOf ();
@@ -29383,6 +29384,15 @@ Object .assign (Object .setPrototypeOf (SFNode .prototype, Base_X3DField .protot
29383
29384
 
29384
29385
  throw new Error ("SFNode.getNodeType: node is null.");
29385
29386
  },
29387
+ getFieldDefinition (name)
29388
+ {
29389
+ const fieldDefinition = this .getFieldDefinitions () .get (name);
29390
+
29391
+ if (fieldDefinition)
29392
+ return fieldDefinition;
29393
+
29394
+ throw new Error (`Unknown field '${name}' in node class ${this .getNodeTypeName ()}.`);
29395
+ },
29386
29396
  getFieldDefinitions ()
29387
29397
  {
29388
29398
  const
@@ -31086,7 +31096,7 @@ function X3DObjectArrayField (values)
31086
31096
  this [X3DObjectArrayField_proxy] = proxy;
31087
31097
 
31088
31098
  for (const value of values)
31089
- this .push (value);
31099
+ this .push (value);
31090
31100
 
31091
31101
  return proxy;
31092
31102
  }
@@ -31665,7 +31675,7 @@ function X3DTypedArrayField (values)
31665
31675
  }
31666
31676
 
31667
31677
  for (const value of values)
31668
- this .push (value);
31678
+ this .push (value);
31669
31679
 
31670
31680
  return proxy;
31671
31681
  }
@@ -32465,8 +32475,19 @@ function createValue (target, index, components, valueType)
32465
32475
  internalValue = value .getValue (),
32466
32476
  i = index * components;
32467
32477
 
32468
- value .addEvent = addEvent .bind (target, i, components, internalValue);
32469
- value .getValue = getValue .bind (target, i, components, internalValue);
32478
+ Object .defineProperties (value,
32479
+ {
32480
+ addEvent:
32481
+ {
32482
+ value: addEvent .bind (target, i, components, internalValue),
32483
+ configurable: true,
32484
+ },
32485
+ getValue:
32486
+ {
32487
+ value: getValue .bind (target, i, components, internalValue),
32488
+ configurable: true,
32489
+ },
32490
+ });
32470
32491
 
32471
32492
  return value;
32472
32493
  }
@@ -32806,8 +32827,8 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32806
32827
  else
32807
32828
  {
32808
32829
  generator .string += '[';
32809
- generator .string += generator .TidySpace ();
32810
- generator .string += ']';
32830
+ generator .string += generator .TidySpace ();
32831
+ generator .string += ']';
32811
32832
  }
32812
32833
  },
32813
32834
  dispose ()
@@ -33159,10 +33180,10 @@ Object .assign (Object .setPrototypeOf (SFImage .prototype, Base_X3DField .proto
33159
33180
  },
33160
33181
  *[Symbol .iterator] ()
33161
33182
  {
33162
- yield this .width;
33163
- yield this .height;
33164
- yield this .comp;
33165
- yield this .array;
33183
+ yield this .width;
33184
+ yield this .height;
33185
+ yield this .comp;
33186
+ yield* this .array;
33166
33187
  },
33167
33188
  copy ()
33168
33189
  {
@@ -33771,7 +33792,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33771
33792
  /// Sets the own live state of this node. Setting the live state to false
33772
33793
  /// temporarily disables this node completely.
33773
33794
 
33774
- this [_live] = value .valueOf ();
33795
+ this [_live] = !!value .valueOf ();
33775
33796
 
33776
33797
  this [_set_live__] ();
33777
33798
  },
@@ -33900,7 +33921,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33900
33921
  {
33901
33922
  get () { return field; },
33902
33923
  set (value) { field .setValue (value); },
33903
- configurable: true,
33924
+ configurable: true,
33904
33925
  });
33905
33926
  },
33906
33927
  addAlias (alias, field)
@@ -34213,7 +34234,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34213
34234
  x_ite_Namespace .add ("X3DBaseNode", "x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34214
34235
  /* harmony default export */ const Base_X3DBaseNode = (X3DBaseNode_default_);
34215
34236
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34216
- /* provided dependency */ var $ = __webpack_require__(52);
34237
+ /* provided dependency */ var $ = __webpack_require__(183);
34217
34238
  /*******************************************************************************
34218
34239
  *
34219
34240
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34350,7 +34371,7 @@ x_ite_Namespace .add ("Legacy", "x_ite/Browser/Legacy", Legacy_default_);
34350
34371
  *
34351
34372
  ******************************************************************************/
34352
34373
 
34353
- const BROWSER_VERSION_default_ = "9.3.0";
34374
+ const BROWSER_VERSION_default_ = "9.3.2";
34354
34375
  ;
34355
34376
 
34356
34377
  x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSION_default_);
@@ -34407,6 +34428,9 @@ x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSIO
34407
34428
 
34408
34429
 
34409
34430
 
34431
+
34432
+ const _metaDataCallbacks = Symbol ();
34433
+
34410
34434
  function X3DNode (executionContext)
34411
34435
  {
34412
34436
  Base_X3DBaseNode .call (this, executionContext);
@@ -34589,6 +34613,350 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34589
34613
  return null;
34590
34614
  },
34591
34615
  traverse () { },
34616
+ hasMetaData (path)
34617
+ {
34618
+ const names = path .split ("/");
34619
+
34620
+ if (names .length < 2)
34621
+ return false;
34622
+
34623
+ const
34624
+ last = names .pop (),
34625
+ metadataSet = this .getMetadataSet (names),
34626
+ metadataObject = metadataSet ?.getValue () .getMetaValue (last);
34627
+
34628
+ return !!metadataObject;
34629
+ },
34630
+ getMetaData (path, field)
34631
+ {
34632
+ const names = path .split ("/");
34633
+
34634
+ if (names .length < 2)
34635
+ return;
34636
+
34637
+ const
34638
+ last = names .pop (),
34639
+ metadataSet = this .getMetadataSet (names),
34640
+ metadataObject = metadataSet ?.getValue () .getMetaValue (last);
34641
+
34642
+ if (field instanceof Base_X3DField)
34643
+ {
34644
+ if (!metadataObject)
34645
+ return field;
34646
+
34647
+ switch (field .getType ())
34648
+ {
34649
+ case Base_X3DConstants .SFBool:
34650
+ case Base_X3DConstants .SFDouble:
34651
+ case Base_X3DConstants .SFFloat:
34652
+ case Base_X3DConstants .SFInt32:
34653
+ case Base_X3DConstants .SFString:
34654
+ case Base_X3DConstants .SFTime:
34655
+ {
34656
+ field .setValue (metadataObject .value [0]);
34657
+ break;
34658
+ }
34659
+ case Base_X3DConstants .SFColor:
34660
+ case Base_X3DConstants .SFColorRGBA:
34661
+ case Base_X3DConstants .SFMatrix3d:
34662
+ case Base_X3DConstants .SFMatrix3f:
34663
+ case Base_X3DConstants .SFMatrix4d:
34664
+ case Base_X3DConstants .SFMatrix4f:
34665
+ case Base_X3DConstants .SFRotation:
34666
+ case Base_X3DConstants .SFVec2d:
34667
+ case Base_X3DConstants .SFVec2f:
34668
+ case Base_X3DConstants .SFVec3d:
34669
+ case Base_X3DConstants .SFVec3f:
34670
+ case Base_X3DConstants .SFVec4d:
34671
+ case Base_X3DConstants .SFVec4f:
34672
+ {
34673
+ const value = metadataObject .value;
34674
+
34675
+ let i = 0;
34676
+
34677
+ for (const key in field)
34678
+ field [key] = value [i ++];
34679
+
34680
+ break;
34681
+ }
34682
+ case Base_X3DConstants .SFImage:
34683
+ {
34684
+ const
34685
+ value = metadataObject .value,
34686
+ array = field .array;
34687
+
34688
+ field .width = value [0];
34689
+ field .height = value [1];
34690
+ field .comp = value [2];
34691
+
34692
+ const l = array .length;
34693
+
34694
+ for (let i = 0; i < l; ++ i)
34695
+ array [i] = value [3 + i];
34696
+
34697
+ break;
34698
+ }
34699
+ case Base_X3DConstants .SFNode:
34700
+ case Base_X3DConstants .MFNode:
34701
+ {
34702
+ throw new Error ("SFNode and MFNode are not supported as metadata value.");
34703
+ }
34704
+ case Base_X3DConstants .MFBool:
34705
+ case Base_X3DConstants .MFDouble:
34706
+ case Base_X3DConstants .MFFloat:
34707
+ case Base_X3DConstants .MFInt32:
34708
+ case Base_X3DConstants .MFString:
34709
+ case Base_X3DConstants .MFTime:
34710
+ {
34711
+ field .length = 0;
34712
+
34713
+ for (const v of metadataObject .value)
34714
+ field .push (v);
34715
+
34716
+ break;
34717
+ }
34718
+ case Base_X3DConstants .MFColor:
34719
+ case Base_X3DConstants .MFColorRGBA:
34720
+ case Base_X3DConstants .MFMatrix3d:
34721
+ case Base_X3DConstants .MFMatrix3f:
34722
+ case Base_X3DConstants .MFMatrix4d:
34723
+ case Base_X3DConstants .MFMatrix4f:
34724
+ case Base_X3DConstants .MFRotation:
34725
+ case Base_X3DConstants .MFVec2d:
34726
+ case Base_X3DConstants .MFVec2f:
34727
+ case Base_X3DConstants .MFVec3d:
34728
+ case Base_X3DConstants .MFVec3f:
34729
+ case Base_X3DConstants .MFVec4d:
34730
+ case Base_X3DConstants .MFVec4f:
34731
+ {
34732
+ const
34733
+ value = metadataObject .value,
34734
+ length = value .length;
34735
+
34736
+ field .length = 0;
34737
+
34738
+ for (let i = 0; i < length;)
34739
+ {
34740
+ const f = field [field .length];
34741
+
34742
+ for (const key in f)
34743
+ f [key] = value [i ++];
34744
+ }
34745
+
34746
+ break;
34747
+ }
34748
+ case Base_X3DConstants .MFImage:
34749
+ {
34750
+ const
34751
+ value = metadataObject .value,
34752
+ length = value .length;
34753
+
34754
+ field .length = 0;
34755
+
34756
+ for (let i = 0; i < length;)
34757
+ {
34758
+ const
34759
+ f = field [field .length],
34760
+ a = f .array;
34761
+
34762
+ f .width = value [i ++];
34763
+ f .height = value [i ++];
34764
+ f .comp = value [i ++];
34765
+
34766
+ const l = a .length;
34767
+
34768
+ for (let k = 0; k < l; ++ k)
34769
+ a [k] = value [i ++];
34770
+ }
34771
+
34772
+ break;
34773
+ }
34774
+ }
34775
+
34776
+ return field;
34777
+ }
34778
+
34779
+ return metadataObject ? Array .from (metadataObject .value) : [ ];
34780
+ },
34781
+ setMetaData (path, value)
34782
+ {
34783
+ const names = path .split ("/");
34784
+
34785
+ if (names .length < 2)
34786
+ return;
34787
+
34788
+ const
34789
+ last = names .pop (),
34790
+ metadataSet = this .getMetadataSet (names, true);
34791
+
34792
+ if (value instanceof Base_X3DField)
34793
+ {
34794
+ const field = value;
34795
+
34796
+ switch (value .getType ())
34797
+ {
34798
+ case Base_X3DConstants .SFBool:
34799
+ case Base_X3DConstants .SFDouble:
34800
+ case Base_X3DConstants .SFFloat:
34801
+ case Base_X3DConstants .SFInt32:
34802
+ case Base_X3DConstants .SFString:
34803
+ case Base_X3DConstants .SFTime:
34804
+ {
34805
+ value = [field .valueOf ()];
34806
+ break;
34807
+ }
34808
+ case Base_X3DConstants .SFNode:
34809
+ case Base_X3DConstants .MFNode:
34810
+ throw new Error ("SFNode and MFNode are not supported as metadata value.");
34811
+ default:
34812
+ {
34813
+ value = Array .from (field, f => f instanceof Base_X3DField ? Array .from (f) : f) .flat ();
34814
+ break;
34815
+ }
34816
+ }
34817
+
34818
+ switch (field .getType ())
34819
+ {
34820
+ case Base_X3DConstants .SFBool:
34821
+ case Base_X3DConstants .MFBool:
34822
+ value .type = "boolean";
34823
+ break;
34824
+ case Base_X3DConstants .SFDouble:
34825
+ case Base_X3DConstants .SFMatrix3d:
34826
+ case Base_X3DConstants .SFMatrix4d:
34827
+ case Base_X3DConstants .SFRotation:
34828
+ case Base_X3DConstants .SFTime:
34829
+ case Base_X3DConstants .SFVec2d:
34830
+ case Base_X3DConstants .SFVec3d:
34831
+ case Base_X3DConstants .SFVec4d:
34832
+ case Base_X3DConstants .MFDouble:
34833
+ case Base_X3DConstants .MFMatrix3d:
34834
+ case Base_X3DConstants .MFMatrix4d:
34835
+ case Base_X3DConstants .MFRotation:
34836
+ case Base_X3DConstants .MFTime:
34837
+ case Base_X3DConstants .MFVec2d:
34838
+ case Base_X3DConstants .MFVec3d:
34839
+ case Base_X3DConstants .MFVec4d:
34840
+ value .type = "double";
34841
+ break;
34842
+ case Base_X3DConstants .SFColor:
34843
+ case Base_X3DConstants .SFColorRGBA:
34844
+ case Base_X3DConstants .SFFloat:
34845
+ case Base_X3DConstants .SFMatrix3f:
34846
+ case Base_X3DConstants .SFMatrix4f:
34847
+ case Base_X3DConstants .SFVec2f:
34848
+ case Base_X3DConstants .SFVec3f:
34849
+ case Base_X3DConstants .SFVec4f:
34850
+ case Base_X3DConstants .MFColor:
34851
+ case Base_X3DConstants .MFColorRGBA:
34852
+ case Base_X3DConstants .MFFloat:
34853
+ case Base_X3DConstants .MFMatrix3f:
34854
+ case Base_X3DConstants .MFMatrix4f:
34855
+ case Base_X3DConstants .MFVec2f:
34856
+ case Base_X3DConstants .MFVec3f:
34857
+ case Base_X3DConstants .MFVec4f:
34858
+ value .type = "float";
34859
+ break;
34860
+ case Base_X3DConstants .SFInt32:
34861
+ case Base_X3DConstants .SFImage:
34862
+ case Base_X3DConstants .MFInt32:
34863
+ case Base_X3DConstants .MFImage:
34864
+ value .type = "integer";
34865
+ break;
34866
+ case Base_X3DConstants .SFString:
34867
+ case Base_X3DConstants .MFString:
34868
+ value .type = "string";
34869
+ break;
34870
+ }
34871
+ }
34872
+
34873
+ metadataSet .getValue () .setMetaValue (last, value);
34874
+
34875
+ this .processMetaDataCallback (path);
34876
+ },
34877
+ removeMetaData (path)
34878
+ {
34879
+ const names = path .split ("/");
34880
+
34881
+ if (names .length < 2)
34882
+ return;
34883
+
34884
+ function removeMetaData (metadataSet, names)
34885
+ {
34886
+ if (!metadataSet)
34887
+ return false;
34888
+
34889
+ const name = names .shift ();
34890
+
34891
+ if (!names .length || removeMetaData (metadataSet .getValue () .getMetadataObject ("MetadataSet", name), names))
34892
+ {
34893
+ metadataSet .getValue () .removeMetaValue (name);
34894
+ }
34895
+
34896
+ return !metadataSet .value .length;
34897
+ }
34898
+
34899
+ if (removeMetaData (this .getMetadataSet ([names .shift ()]), names))
34900
+ this ._metadata = null;
34901
+ },
34902
+ getMetadataSet (names, create = false)
34903
+ {
34904
+ const name = names .shift ();
34905
+
34906
+ let metadataSet = this ._metadata .valueOf ();
34907
+
34908
+ if (metadataSet ?.getNodeTypeName () !== "MetadataSet" || metadataSet ?.name !== name)
34909
+ {
34910
+ if (!create)
34911
+ return null;
34912
+
34913
+ this ._metadata = this .getExecutionContext () .createNode ("MetadataSet");
34914
+ metadataSet = this ._metadata .valueOf ();
34915
+
34916
+ metadataSet .reference = this .getBrowser () .getBrowserOption ("MetadataReference");
34917
+ metadataSet .name = name;
34918
+ }
34919
+
34920
+ for (const name of names)
34921
+ metadataSet = metadataSet .getValue () .getMetadataObject ("MetadataSet", name, create);
34922
+
34923
+ return metadataSet;
34924
+ },
34925
+ [_metaDataCallbacks]: new Map (),
34926
+ addMetaDataCallback (key, path, callback)
34927
+ {
34928
+ if (!this .hasOwnProperty (_metaDataCallbacks))
34929
+ this [_metaDataCallbacks] = new Map ();
34930
+
34931
+ let map = this [_metaDataCallbacks] .get (path);
34932
+
34933
+ if (!map)
34934
+ this [_metaDataCallbacks] .set (path, map = new Map ());
34935
+
34936
+ map .set (key, callback);
34937
+ },
34938
+ removeMetaDataCallback (key, path)
34939
+ {
34940
+ const map = this [_metaDataCallbacks] .get (path);
34941
+
34942
+ if (!map)
34943
+ return;
34944
+
34945
+ map .delete (key);
34946
+
34947
+ if (map .size === 0)
34948
+ this [_metaDataCallbacks] .delete (path);
34949
+ },
34950
+ processMetaDataCallback (path)
34951
+ {
34952
+ const map = this [_metaDataCallbacks] .get (path);
34953
+
34954
+ if (!map)
34955
+ return;
34956
+
34957
+ for (const callback of map .values ())
34958
+ callback ();
34959
+ },
34592
34960
  toStream (generator)
34593
34961
  {
34594
34962
  generator .string += this .getTypeName () + " { }";
@@ -36455,6 +36823,84 @@ Object .assign (Object .setPrototypeOf (MetadataSet .prototype, Core_X3DNode .pr
36455
36823
 
36456
36824
  return Core_X3DNode .prototype .getContainerField .call (this);
36457
36825
  },
36826
+ getMetaValue (name)
36827
+ {
36828
+ return this ._value .find (node => node .name === name);
36829
+ },
36830
+ setMetaValue (name, value)
36831
+ {
36832
+ if (!Array .isArray (value))
36833
+ value = [value];
36834
+
36835
+ switch (value .type ?? (typeof value [0]))
36836
+ {
36837
+ case "boolean":
36838
+ {
36839
+ this .getMetadataObject ("MetadataBoolean", name, true) .value = value;
36840
+ return;
36841
+ }
36842
+ case "number":
36843
+ {
36844
+ if (value .every (v => Number .isInteger (v)))
36845
+ this .getMetadataObject ("MetadataInteger", name, true) .value = value;
36846
+ else
36847
+ this .getMetadataObject ("MetadataDouble", name, true) .value = value;
36848
+
36849
+ return;
36850
+ }
36851
+ case "double":
36852
+ {
36853
+ this .getMetadataObject ("MetadataDouble", name, true) .value = value;
36854
+ break;
36855
+ }
36856
+ case "float":
36857
+ {
36858
+ this .getMetadataObject ("MetadataFloat", name, true) .value = value;
36859
+ break;
36860
+ }
36861
+ case "integer":
36862
+ {
36863
+ this .getMetadataObject ("MetadataInteger", name, true) .value = value;
36864
+ break;
36865
+ }
36866
+ case "string":
36867
+ {
36868
+ this .getMetadataObject ("MetadataString", name, true) .value = value;
36869
+ return;
36870
+ }
36871
+ }
36872
+ },
36873
+ removeMetaValue (name)
36874
+ {
36875
+ const index = this ._value .findIndex (node => node .name === name);
36876
+
36877
+ if (index < 0)
36878
+ return;
36879
+
36880
+ this ._value .splice (index, 1);
36881
+ },
36882
+ getMetadataObject (typeName, name, create = false)
36883
+ {
36884
+ let metadata = this .getMetaValue (name);
36885
+
36886
+ if (metadata ?.getNodeTypeName () === typeName)
36887
+ return metadata;
36888
+
36889
+ if (!create)
36890
+ return null;
36891
+
36892
+ if (metadata)
36893
+ this .removeMetaValue (name);
36894
+
36895
+ metadata = this .getExecutionContext () .createNode (typeName);
36896
+
36897
+ metadata .reference = "";
36898
+ metadata .name = name;
36899
+
36900
+ this ._value .push (metadata);
36901
+
36902
+ return metadata;
36903
+ },
36458
36904
  dispose ()
36459
36905
  {
36460
36906
  Core_X3DMetadataObject .prototype .dispose .call (this);
@@ -36695,7 +37141,7 @@ Object .assign (Object .setPrototypeOf (X3DChildNode .prototype, Core_X3DNode .p
36695
37141
  {
36696
37142
  setCameraObject (value)
36697
37143
  {
36698
- if (value !== this ._isCameraObject .getValue ())
37144
+ if (!!value !== this ._isCameraObject .getValue ())
36699
37145
  this ._isCameraObject = value;
36700
37146
  },
36701
37147
  isCameraObject ()
@@ -36704,16 +37150,21 @@ Object .assign (Object .setPrototypeOf (X3DChildNode .prototype, Core_X3DNode .p
36704
37150
  },
36705
37151
  setPickableObject (value)
36706
37152
  {
36707
- if (value !== this ._isPickableObject .getValue ())
37153
+ if (!!value !== this ._isPickableObject .getValue ())
36708
37154
  this ._isPickableObject = value;
36709
37155
  },
36710
37156
  isPickableObject ()
36711
37157
  {
36712
37158
  return this ._isPickableObject .getValue ();
36713
37159
  },
36714
- getMustDisplay ()
37160
+ /**
37161
+ * You will normally overload this function in your derived classes.
37162
+ * @returns {boolean} A boolean value indicating, whether this node
37163
+ * can be visually displayed and therefor should render.
37164
+ */
37165
+ isRenderingRequired ()
36715
37166
  {
36716
- return false
37167
+ return false;
36717
37168
  },
36718
37169
  });
36719
37170
 
@@ -36882,13 +37333,20 @@ Object .assign (Object .setPrototypeOf (WorldInfo .prototype, Core_X3DInfoNode .
36882
37333
  {
36883
37334
  Core_X3DInfoNode .prototype .initialize .call (this);
36884
37335
 
36885
- this .getExecutionContext () .addWorldInfo (this);
37336
+ if (this .isLive ())
37337
+ this .getExecutionContext () .addWorldInfo (this);
36886
37338
  },
36887
- dispose ()
37339
+ setLive (value)
36888
37340
  {
36889
- this .getExecutionContext () .removeWorldInfo (this);
37341
+ if (!!value .valueOf () === this .isLive ())
37342
+ return;
36890
37343
 
36891
- Core_X3DInfoNode .prototype .dispose .call (this);
37344
+ Core_X3DInfoNode .prototype .setLive .call (this, value);
37345
+
37346
+ if (this .isLive ())
37347
+ this .getExecutionContext () .addWorldInfo (this);
37348
+ else
37349
+ this .getExecutionContext () .removeWorldInfo (this);
36892
37350
  },
36893
37351
  });
36894
37352
 
@@ -38494,7 +38952,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
38494
38952
  x_ite_Namespace .add ("X3DProtoDeclaration", "x_ite/Prototype/X3DProtoDeclaration", X3DProtoDeclaration_default_);
38495
38953
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (X3DProtoDeclaration_default_);
38496
38954
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38497
- /* provided dependency */ var X3DParser_$ = __webpack_require__(52);
38955
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(183);
38498
38956
  /*******************************************************************************
38499
38957
  *
38500
38958
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38756,7 +39214,7 @@ const Expressions_default_ = Expressions;
38756
39214
  x_ite_Namespace .add ("Expressions", "x_ite/Parser/Expressions", Expressions_default_);
38757
39215
  /* harmony default export */ const Parser_Expressions = (Expressions_default_);
38758
39216
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
38759
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(52);
39217
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(183);
38760
39218
  /*******************************************************************************
38761
39219
  *
38762
39220
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38833,7 +39291,7 @@ const Grammar = Parser_Expressions ({
38833
39291
  Break: /\r?\n/g,
38834
39292
 
38835
39293
  // Header
38836
- Header: /^#(VRML|X3D) V(.*?) (utf8)(?:[ \t]+(.*?))?[ \t]*[\n\r]/gy,
39294
+ Header: /^#(VRML|X3D) V(.*?) (utf8)(?:[ \t]+(.*?))?[ \t]*[\n\r]/gy,
38837
39295
 
38838
39296
  // Keywords
38839
39297
  AS: /AS/gy,
@@ -41442,7 +41900,7 @@ const VRMLParser_default_ = VRMLParser;
41442
41900
  x_ite_Namespace .add ("VRMLParser", "x_ite/Parser/VRMLParser", VRMLParser_default_);
41443
41901
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41444
41902
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41445
- /* provided dependency */ var XMLParser_$ = __webpack_require__(52);
41903
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(183);
41446
41904
  /*******************************************************************************
41447
41905
  *
41448
41906
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42218,21 +42676,21 @@ Object .assign (Object .setPrototypeOf (XMLParser .prototype, Parser_X3DParser .
42218
42676
  }
42219
42677
  },
42220
42678
  scriptElement (element)
42221
- {
42222
- const
42223
- domParser = new DOMParser (),
42224
- scriptDocument = domParser .parseFromString (element .outerHTML, "application/xml"),
42225
- childNodes = scriptDocument .children [0] .childNodes;
42679
+ {
42680
+ const
42681
+ domParser = new DOMParser (),
42682
+ scriptDocument = domParser .parseFromString (element .outerHTML, "application/xml"),
42683
+ childNodes = scriptDocument .children [0] .childNodes;
42226
42684
 
42227
42685
  element .textContent = "// Content moved into childNodes.";
42228
42686
 
42229
- for (const childNode of childNodes)
42230
- {
42687
+ for (const childNode of childNodes)
42688
+ {
42231
42689
  // Add elements and cdata.
42232
- if (childNode .nodeType === 1 || childNode .nodeType === 4)
42690
+ if (childNode .nodeType === 1 || childNode .nodeType === 4)
42233
42691
  element .appendChild (childNode);
42234
- }
42235
- },
42692
+ }
42693
+ },
42236
42694
  routeElement (xmlElement)
42237
42695
  {
42238
42696
  try
@@ -43551,7 +44009,7 @@ const URLs_default_ = URLs;
43551
44009
  x_ite_Namespace .add ("URLs", "x_ite/Browser/Networking/URLs", URLs_default_);
43552
44010
  /* harmony default export */ const Networking_URLs = (URLs_default_);
43553
44011
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
43554
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(52);
44012
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(183);
43555
44013
  /*******************************************************************************
43556
44014
  *
43557
44015
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44290,7 +44748,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44290
44748
  [9729, "AVG_PIXEL"],
44291
44749
  ]);
44292
44750
 
44293
- const BoundaryModes = new Map ([
44751
+ const BoundaryModes = new Map ([
44294
44752
  [33071, "CLAMP_TO_EDGE"],
44295
44753
  [33648, "MIRRORED_REPEAT"],
44296
44754
  [10497, "REPEAT"],
@@ -46852,7 +47310,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
46852
47310
  x_ite_Namespace .add ("GLTF2Parser", "x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
46853
47311
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
46854
47312
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
46855
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(52);
47313
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(183);
46856
47314
  /*******************************************************************************
46857
47315
  *
46858
47316
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47004,7 +47462,7 @@ const GLB2Parser_default_ = GLB2Parser;
47004
47462
  x_ite_Namespace .add ("GLB2Parser", "x_ite/Parser/GLB2Parser", GLB2Parser_default_);
47005
47463
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
47006
47464
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
47007
- /* provided dependency */ var OBJParser_$ = __webpack_require__(52);
47465
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(183);
47008
47466
  /*******************************************************************************
47009
47467
  *
47010
47468
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47790,7 +48248,7 @@ Object .assign (MaterialParser .prototype,
47790
48248
  statements ()
47791
48249
  {
47792
48250
  while (this .statement ())
47793
- ;
48251
+ ;
47794
48252
  },
47795
48253
  statement ()
47796
48254
  {
@@ -50359,8 +50817,8 @@ const MatrixStack_default_ = MatrixStack;
50359
50817
  x_ite_Namespace .add ("MatrixStack", "standard/Math/Utility/MatrixStack", MatrixStack_default_);
50360
50818
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
50361
50819
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
50362
- /* provided dependency */ var SVGParser_$ = __webpack_require__(52);
50363
- /* provided dependency */ var libtess = __webpack_require__(177);
50820
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(183);
50821
+ /* provided dependency */ var libtess = __webpack_require__(972);
50364
50822
  /*******************************************************************************
50365
50823
  *
50366
50824
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -50726,7 +51184,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
50726
51184
  elements (xmlElement)
50727
51185
  {
50728
51186
  for (const childNode of xmlElement .childNodes)
50729
- this .element (childNode);
51187
+ this .element (childNode);
50730
51188
  },
50731
51189
  element (xmlElement)
50732
51190
  {
@@ -51471,7 +51929,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
51471
51929
  gradientChild (xmlElement, gradient)
51472
51930
  {
51473
51931
  if (xmlElement .nodeName === "stop")
51474
- return this .stopElement (xmlElement, gradient);
51932
+ return this .stopElement (xmlElement, gradient);
51475
51933
  },
51476
51934
  stopElement (xmlElement, gradient)
51477
51935
  {
@@ -51576,8 +52034,8 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
51576
52034
 
51577
52035
  if (name)
51578
52036
  {
51579
- scene .addNamedNode (scene .getUniqueName (name), node);
51580
- scene .addExportedNode (scene .getUniqueExportName (name), node);
52037
+ scene .addNamedNode (scene .getUniqueName (name), node);
52038
+ scene .addExportedNode (scene .getUniqueExportName (name), node);
51581
52039
  }
51582
52040
  },
51583
52041
  viewBoxAttribute (attribute, defaultValue)
@@ -52262,7 +52720,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
52262
52720
  }
52263
52721
 
52264
52722
  if (points .length > 2)
52265
- contours .push (Object .assign (points, { closed: false }));
52723
+ contours .push (Object .assign (points, { closed: false }));
52266
52724
 
52267
52725
  return !! contours .length;
52268
52726
  },
@@ -53128,7 +53586,7 @@ const SVGParser_default_ = SVGParser;
53128
53586
  x_ite_Namespace .add ("SVGParser", "x_ite/Parser/SVGParser", SVGParser_default_);
53129
53587
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
53130
53588
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
53131
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(52);
53589
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(183);
53132
53590
  /*******************************************************************************
53133
53591
  *
53134
53592
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53478,7 +53936,7 @@ const Plane3_default_ = Plane3;
53478
53936
  x_ite_Namespace .add ("Plane3", "standard/Math/Geometry/Plane3", Plane3_default_);
53479
53937
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
53480
53938
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
53481
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(177);
53939
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(972);
53482
53940
  /*******************************************************************************
53483
53941
  *
53484
53942
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -56760,15 +57218,15 @@ Object .assign (X3DRenderObject .prototype,
56760
57218
 
56761
57219
  //if (getBrowser () -> getBrowserOptions () -> animateStairWalks ())
56762
57220
  //{
56763
- // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
56764
- // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
57221
+ // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
57222
+ // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
56765
57223
  //
56766
- // Vector3f offset = Vector3f (0, step, 0) * up;
57224
+ // Vector3f offset = Vector3f (0, step, 0) * up;
56767
57225
  //
56768
- // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
56769
- // offset = translation;
57226
+ // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
57227
+ // offset = translation;
56770
57228
  //
56771
- // getViewpoint () -> positionOffset () += offset;
57229
+ // getViewpoint () -> positionOffset () += offset;
56772
57230
  //}
56773
57231
  //else
56774
57232
  viewpoint ._positionOffset = translation .add (viewpoint ._positionOffset .getValue ());
@@ -57693,19 +58151,18 @@ function X3DGroupingNode (executionContext)
57693
58151
  this .addType (Base_X3DConstants .X3DGroupingNode);
57694
58152
 
57695
58153
  this .allowedTypes = new Set ();
57696
- this .clipPlaneNodes = [ ];
57697
- this .localFogNodes = [ ];
57698
- this .lightNodes = [ ];
57699
- this .pointingDeviceSensorNodes = [ ];
57700
- this .maybeCameraObjects = [ ];
57701
- this .cameraObjects = [ ];
57702
- this .maybePickableSensorNodes = [ ];
57703
- this .pickableSensorNodes = [ ];
57704
- this .pickableObjects = [ ];
57705
- this .childNodes = [ ];
57706
- this .displayNodes = [ ];
57707
- this .visibleNodes = [ ];
57708
- this .boundedObjects = [ ];
58154
+ this .children = new Set ();
58155
+ this .pointingDeviceSensorNodes = new Set ();
58156
+ this .clipPlaneNodes = new Set ();
58157
+ this .displayNodes = new Set ();
58158
+ this .maybeCameraObjects = new Set ();
58159
+ this .cameraObjects = new Set ();
58160
+ this .maybePickableSensorNodes = new Set ();
58161
+ this .pickableSensorNodes = new Set ();
58162
+ this .pickableObjects = new Set ();
58163
+ this .childNodes = new Set ();
58164
+ this .visibleNodes = new Set ();
58165
+ this .boundedObjects = new Set ();
57709
58166
  this .sensors = [ ];
57710
58167
  }
57711
58168
 
@@ -57738,12 +58195,10 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57738
58195
  },
57739
58196
  setAllowedTypes (/* type, ... */)
57740
58197
  {
57741
- const allowedTypes = this .allowedTypes;
57742
-
57743
- allowedTypes .clear ();
58198
+ this .allowedTypes .clear ();
57744
58199
 
57745
58200
  for (const type of arguments)
57746
- allowedTypes .add (type);
58201
+ this .allowedTypes .add (type);
57747
58202
  },
57748
58203
  set_addChildren__ ()
57749
58204
  {
@@ -57751,7 +58206,13 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57751
58206
  return;
57752
58207
 
57753
58208
  this ._addChildren .setTainted (true);
57754
- this ._addChildren .assign (filter (this ._addChildren, this ._children));
58209
+
58210
+ const addChildren = new Set (this ._addChildren);
58211
+
58212
+ for (const node of this .children)
58213
+ addChildren .delete (node);
58214
+
58215
+ this .add (addChildren);
57755
58216
 
57756
58217
  if (!this ._children .isTainted ())
57757
58218
  {
@@ -57759,8 +58220,8 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57759
58220
  this ._children .addInterest ("connectChildren", this);
57760
58221
  }
57761
58222
 
57762
- this ._children .splice (this ._children .length, 0, ... this ._addChildren);
57763
- this .add (this ._addChildren);
58223
+ for (const child of addChildren)
58224
+ this ._children .push (child);
57764
58225
 
57765
58226
  this ._addChildren .length = 0;
57766
58227
  this ._addChildren .setTainted (false);
@@ -57774,14 +58235,15 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57774
58235
 
57775
58236
  if (this ._children .length > 0)
57776
58237
  {
58238
+ this .remove (this ._removeChildren);
58239
+
57777
58240
  if (!this ._children .isTainted ())
57778
58241
  {
57779
58242
  this ._children .removeInterest ("set_children__", this);
57780
58243
  this ._children .addInterest ("connectChildren", this);
57781
58244
  }
57782
58245
 
57783
- this ._children .assign (filter (this ._children, this ._removeChildren));
57784
- this .remove (this ._removeChildren);
58246
+ this ._children = Array .from (this ._children) .filter (child => this .children .has (child));
57785
58247
  }
57786
58248
 
57787
58249
  this ._removeChildren .length = 0;
@@ -57809,23 +58271,30 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57809
58271
 
57810
58272
  if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
57811
58273
  {
57812
- childNode ._display .removeInterest ("set_displays_", this);
58274
+ childNode ._display .removeInterest ("set_displays__", this);
57813
58275
  childNode ._bboxDisplay .removeInterest ("set_bboxDisplays__", this);
57814
58276
  }
57815
58277
  }
57816
58278
 
57817
- this .clipPlaneNodes .length = 0;
57818
- this .localFogNodes .length = 0;
57819
- this .lightNodes .length = 0;
57820
- this .pointingDeviceSensorNodes .length = 0;
57821
- this .maybeCameraObjects .length = 0;
57822
- this .maybePickableSensorNodes .length = 0;
57823
- this .childNodes .length = 0;
58279
+ this .children .clear ();
58280
+ this .pointingDeviceSensorNodes .clear ();
58281
+ this .clipPlaneNodes .clear ();
58282
+ this .displayNodes .clear ();
58283
+ this .maybeCameraObjects .clear ();
58284
+ this .cameraObjects .clear ();
58285
+ this .maybePickableSensorNodes .clear ();
58286
+ this .pickableSensorNodes .clear ();
58287
+ this .pickableObjects .clear ();
58288
+ this .childNodes .clear ();
58289
+ this .visibleNodes .clear ();
58290
+ this .boundedObjects .clear ();
57824
58291
  },
57825
58292
  add (children)
57826
58293
  {
57827
58294
  for (const child of children)
57828
58295
  {
58296
+ this .children .add (child);
58297
+
57829
58298
  const childNode = Base_X3DCast (Base_X3DConstants .X3DChildNode, child);
57830
58299
 
57831
58300
  if (!childNode)
@@ -57845,27 +58314,30 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57845
58314
  {
57846
58315
  case Base_X3DConstants .X3DPointingDeviceSensorNode:
57847
58316
  {
57848
- this .pointingDeviceSensorNodes .push (childNode);
58317
+ this .pointingDeviceSensorNodes .add (childNode);
57849
58318
  break;
57850
58319
  }
57851
58320
  case Base_X3DConstants .ClipPlane:
57852
58321
  {
57853
- this .clipPlaneNodes .push (childNode);
58322
+ this .clipPlaneNodes .add (childNode);
58323
+ this .displayNodes .add (childNode);
57854
58324
  break;
57855
58325
  }
57856
58326
  case Base_X3DConstants .LocalFog:
57857
58327
  {
57858
- this .localFogNodes .push (childNode);
58328
+ this .displayNodes .add (childNode);
57859
58329
  break;
57860
58330
  }
57861
58331
  case Base_X3DConstants .X3DLightNode:
57862
58332
  {
57863
- this .lightNodes .push (childNode);
58333
+ this .displayNodes .add (childNode);
57864
58334
  break;
57865
58335
  }
57866
58336
  case Base_X3DConstants .X3DBindableNode:
57867
58337
  {
57868
- this .maybeCameraObjects .push (childNode);
58338
+ this .maybeCameraObjects .add (childNode);
58339
+
58340
+ this .addCameraObject (childNode);
57869
58341
  break;
57870
58342
  }
57871
58343
  case Base_X3DConstants .TransformSensor:
@@ -57873,7 +58345,9 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57873
58345
  {
57874
58346
  childNode ._isPickableObject .addInterest ("set_pickableObjects__", this);
57875
58347
 
57876
- this .maybePickableSensorNodes .push (childNode);
58348
+ this .maybePickableSensorNodes .add (childNode);
58349
+
58350
+ this .addPickableSensorNode (childNode);
57877
58351
  break;
57878
58352
  }
57879
58353
  case Base_X3DConstants .Sound:
@@ -57886,12 +58360,17 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57886
58360
 
57887
58361
  if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
57888
58362
  {
57889
- childNode ._display .addInterest ("set_displays_", this);
58363
+ childNode ._display .addInterest ("set_displays__", this);
57890
58364
  childNode ._bboxDisplay .addInterest ("set_bboxDisplays__", this);
57891
58365
  }
57892
58366
 
57893
- this .maybeCameraObjects .push (childNode);
57894
- this .childNodes .push (childNode);
58367
+ this .maybeCameraObjects .add (childNode);
58368
+ this .childNodes .add (childNode);
58369
+
58370
+ this .addCameraObject (childNode);
58371
+ this .addPickableObject (childNode);
58372
+ this .addVisibleNode (childNode);
58373
+ this .addBoundedObject (childNode);
57895
58374
  break;
57896
58375
  }
57897
58376
  case Base_X3DConstants .BooleanFilter:
@@ -57917,38 +58396,27 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57917
58396
  continue;
57918
58397
  }
57919
58398
 
57920
- break;
57921
- }
58399
+ if (childNode .isRenderingRequired ())
58400
+ continue;
57922
58401
 
57923
- if (childNode .getMustDisplay ())
57924
- {
57925
- if (!this .childNodes .includes (childNode))
57926
- this .childNodes .push (childNode);
58402
+ break;
57927
58403
  }
57928
58404
  }
57929
58405
 
57930
- this .set_pickableObjects__ ()
57931
- this .set_displayNodes__ ()
57932
- this .set_displays_ ()
57933
- this .set_bboxDisplays__ ();
58406
+ this .setCameraObject (this .cameraObjects .size);
58407
+ this .set_transformSensors__ ();
57934
58408
  },
57935
58409
  remove (children)
57936
58410
  {
57937
58411
  for (const child of children)
57938
58412
  {
58413
+ this .children .delete (child);
58414
+
57939
58415
  const childNode = Base_X3DCast (Base_X3DConstants .X3DChildNode, child);
57940
58416
 
57941
58417
  if (!childNode)
57942
58418
  continue;
57943
58419
 
57944
- if (childNode .getMustDisplay ())
57945
- {
57946
- const index = this .childNodes .indexOf (childNode);
57947
-
57948
- if (index >= 0)
57949
- this .childNodes .splice (index, 1);
57950
- }
57951
-
57952
58420
  const type = childNode .getType ();
57953
58421
 
57954
58422
  for (let t = type .length - 1; t >= 0; -- t)
@@ -57957,47 +58425,29 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
57957
58425
  {
57958
58426
  case Base_X3DConstants .X3DPointingDeviceSensorNode:
57959
58427
  {
57960
- const index = this .pointingDeviceSensorNodes .indexOf (childNode);
57961
-
57962
- if (index >= 0)
57963
- this .pointingDeviceSensorNodes .splice (index, 1);
57964
-
58428
+ this .pointingDeviceSensorNodes .delete (childNode);
57965
58429
  break;
57966
58430
  }
57967
58431
  case Base_X3DConstants .ClipPlane:
57968
58432
  {
57969
- const index = this .clipPlaneNodes .indexOf (childNode);
57970
-
57971
- if (index >= 0)
57972
- this .clipPlaneNodes .splice (index, 1);
57973
-
58433
+ this .clipPlaneNodes .delete (childNode);
58434
+ this .displayNodes .delete (childNode);
57974
58435
  break;
57975
58436
  }
57976
58437
  case Base_X3DConstants .LocalFog:
57977
58438
  {
57978
- const index = this .localFogNodes .indexOf (childNode);
57979
-
57980
- if (index >= 0)
57981
- this .localFogNodes .splice (index, 1);
57982
-
58439
+ this .displayNodes .delete (childNode);
57983
58440
  break;
57984
58441
  }
57985
58442
  case Base_X3DConstants .X3DLightNode:
57986
58443
  {
57987
- const index = this .lightNodes .indexOf (childNode);
57988
-
57989
- if (index >= 0)
57990
- this .lightNodes .splice (index, 1);
57991
-
58444
+ this .displayNodes .delete (childNode);
57992
58445
  break;
57993
58446
  }
57994
58447
  case Base_X3DConstants .X3DBindableNode:
57995
58448
  {
57996
- const index = this .maybeCameraObjects .indexOf (childNode);
57997
-
57998
- if (index >= 0)
57999
- this .maybeCameraObjects .splice (index, 1);
58000
-
58449
+ this .maybeCameraObjects .delete (childNode);
58450
+ this .cameraObjects .delete (childNode);
58001
58451
  break;
58002
58452
  }
58003
58453
  case Base_X3DConstants .TransformSensor:
@@ -58005,11 +58455,8 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58005
58455
  {
58006
58456
  childNode ._isPickableObject .removeInterest ("set_pickableObjects__", this);
58007
58457
 
58008
- const index = this .maybePickableSensorNodes .indexOf (childNode);
58009
-
58010
- if (index >= 0)
58011
- this .maybePickableSensorNodes .splice (index, 1);
58012
-
58458
+ this .maybePickableSensorNodes .delete (childNode);
58459
+ this .pickableSensorNodes .delete (childNode);
58013
58460
  break;
58014
58461
  }
58015
58462
  case Base_X3DConstants .Sound:
@@ -58022,20 +58469,16 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58022
58469
 
58023
58470
  if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58024
58471
  {
58025
- childNode ._display .removeInterest ("set_displays_", this);
58472
+ childNode ._display .removeInterest ("set_displays__", this);
58026
58473
  childNode ._bboxDisplay .removeInterest ("set_bboxDisplays__", this);
58027
58474
  }
58028
58475
 
58029
- var index = this .maybeCameraObjects .indexOf (childNode);
58030
-
58031
- if (index >= 0)
58032
- this .maybeCameraObjects .splice (index, 1);
58033
-
58034
- var index = this .childNodes .indexOf (childNode);
58035
-
58036
- if (index >= 0)
58037
- this .childNodes .splice (index, 1);
58038
-
58476
+ this .maybeCameraObjects .delete (childNode);
58477
+ this .cameraObjects .delete (childNode);
58478
+ this .pickableObjects .delete (childNode);
58479
+ this .childNodes .delete (childNode);
58480
+ this .visibleNodes .delete (childNode);
58481
+ this .boundedObjects .delete (childNode);
58039
58482
  break;
58040
58483
  }
58041
58484
  case Base_X3DConstants .BooleanFilter:
@@ -58061,117 +58504,115 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58061
58504
  continue;
58062
58505
  }
58063
58506
 
58507
+ if (childNode .isRenderingRequired ())
58508
+ continue;
58509
+
58064
58510
  break;
58065
58511
  }
58066
58512
  }
58067
58513
 
58068
- this .set_displayNodes__ ();
58069
- this .set_displays_ ();
58070
- this .set_bboxDisplays__ ();
58514
+ this .setCameraObject (this .cameraObjects .size);
58515
+ this .set_transformSensors__ ();
58516
+ },
58517
+ set_displays__ ()
58518
+ {
58519
+ this .set_cameraObjects__ ();
58520
+ this .set_pickableObjects__ ();
58521
+ this .set_visibleNodes__ ();
58071
58522
  },
58072
58523
  set_cameraObjects__ ()
58073
58524
  {
58074
- const cameraObjects = this .cameraObjects;
58075
-
58076
- cameraObjects .length = 0;
58525
+ this .cameraObjects .clear ();
58077
58526
 
58078
58527
  for (const childNode of this .maybeCameraObjects)
58079
- {
58080
- if (!childNode .isCameraObject ())
58081
- continue;
58528
+ this .addCameraObject (childNode);
58082
58529
 
58083
- if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58084
- {
58085
- if (childNode ._display .getValue ())
58086
- cameraObjects .push (childNode);
58087
- }
58088
- else
58089
- {
58090
- cameraObjects .push (childNode);
58091
- }
58092
- }
58093
-
58094
- this .setCameraObject (!!(cameraObjects .length));
58530
+ this .setCameraObject (this .cameraObjects .size);
58095
58531
  },
58096
- set_pickableObjects__ ()
58532
+ addCameraObject (childNode)
58097
58533
  {
58098
- const
58099
- pickableSensorNodes = this .pickableSensorNodes,
58100
- pickableObjects = this .pickableObjects;
58101
-
58102
- pickableSensorNodes .length = 0;
58103
- pickableObjects .length = 0;
58534
+ if (!childNode .isCameraObject ())
58535
+ return;
58104
58536
 
58105
- for (const sensorNode of this .maybePickableSensorNodes)
58537
+ if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58106
58538
  {
58107
- if (sensorNode .isPickableObject ())
58108
- pickableSensorNodes .push (sensorNode);
58539
+ if (childNode ._display .getValue ())
58540
+ this .cameraObjects .add (childNode);
58109
58541
  }
58110
-
58111
- for (const childNode of this .visibleNodes)
58542
+ else
58112
58543
  {
58113
- if (childNode .isPickableObject ())
58114
- pickableObjects .push (childNode);
58544
+ this .cameraObjects .add (childNode);
58115
58545
  }
58546
+ },
58547
+ set_pickableObjects__ ()
58548
+ {
58549
+ this .pickableSensorNodes .clear ();
58550
+ this .pickableObjects .clear ();
58551
+
58552
+ for (const childNode of this .maybePickableSensorNodes)
58553
+ this .addPickableSensorNode (childNode);
58116
58554
 
58117
- this .set_transformSensors__ ()
58555
+ for (const childNode of this .childNodes)
58556
+ this .addPickableObject (childNode);
58557
+
58558
+ this .set_transformSensors__ ();
58118
58559
  },
58119
58560
  set_transformSensors__ ()
58120
58561
  {
58121
- this .setPickableObject (!!(this .getTransformSensors () .size || this .pickableSensorNodes .length || this .pickableObjects .length));
58562
+ this .setPickableObject (this .getTransformSensors () .size || this .pickableSensorNodes .size || this .pickableObjects .size);
58122
58563
  },
58123
- set_displayNodes__ ()
58564
+ addPickableSensorNode (childNode)
58124
58565
  {
58125
- const displayNodes = this .displayNodes;
58126
-
58127
- displayNodes .length = 0;
58128
-
58129
- for (const node of this .clipPlaneNodes)
58130
- displayNodes .push (node);
58131
-
58132
- for (const node of this .localFogNodes)
58133
- displayNodes .push (node);
58134
-
58135
- for (const node of this .lightNodes)
58136
- displayNodes .push (node);
58566
+ if (childNode .isPickableObject ())
58567
+ this .pickableSensorNodes .add (childNode);
58137
58568
  },
58138
- set_displays_ ()
58569
+ addPickableObject (childNode)
58139
58570
  {
58140
- const visibleNodes = this .visibleNodes;
58571
+ if (!childNode .isPickableObject ())
58572
+ return;
58141
58573
 
58142
- visibleNodes .length = 0;
58574
+ if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58575
+ {
58576
+ if (childNode ._display .getValue ())
58577
+ this .pickableObjects .add (childNode);
58578
+ }
58579
+ else
58580
+ {
58581
+ this .pickableObjects .add (childNode);
58582
+ }
58583
+ },
58584
+ set_visibleNodes__ ()
58585
+ {
58586
+ this .visibleNodes .clear ();
58143
58587
 
58144
58588
  for (const childNode of this .childNodes)
58589
+ this .addVisibleNode (childNode);
58590
+ },
58591
+ addVisibleNode (childNode)
58592
+ {
58593
+ if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58145
58594
  {
58146
- if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58147
- {
58148
- if (childNode ._display .getValue ())
58149
- visibleNodes .push (childNode);
58150
- }
58151
- else
58152
- {
58153
- visibleNodes .push (childNode);
58154
- }
58595
+ if (childNode ._display .getValue ())
58596
+ this .visibleNodes .add (childNode);
58597
+ }
58598
+ else
58599
+ {
58600
+ this .visibleNodes .add (childNode);
58155
58601
  }
58156
-
58157
- this .set_cameraObjects__ ();
58158
- this .set_pickableObjects__ ();
58159
58602
  },
58160
58603
  set_bboxDisplays__ ()
58161
58604
  {
58162
- const boundedObjects = this .boundedObjects;
58163
-
58164
- boundedObjects .length = 0;
58605
+ this .boundedObjects .clear ();
58165
58606
 
58166
58607
  for (const childNode of this .childNodes)
58608
+ this .addBoundedObject (childNode);
58609
+ },
58610
+ addBoundedObject (childNode)
58611
+ {
58612
+ if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58167
58613
  {
58168
- if (Base_X3DCast (Base_X3DConstants .X3DBoundedObject, childNode))
58169
- {
58170
- if (childNode ._bboxDisplay .getValue ())
58171
- {
58172
- boundedObjects .push (childNode);
58173
- }
58174
- }
58614
+ if (childNode ._bboxDisplay .getValue ())
58615
+ this .boundedObjects .add (childNode);
58175
58616
  }
58176
58617
  },
58177
58618
  traverse (type, renderObject)
@@ -58187,7 +58628,7 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58187
58628
 
58188
58629
  sensors .length = 0;
58189
58630
 
58190
- if (pointingDeviceSensorNodes .length)
58631
+ if (pointingDeviceSensorNodes .size)
58191
58632
  {
58192
58633
  for (const pointingDeviceSensorNode of pointingDeviceSensorNodes)
58193
58634
  pointingDeviceSensorNode .push (renderObject, sensors);
@@ -58309,13 +58750,6 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58309
58750
  },
58310
58751
  });
58311
58752
 
58312
- function filter (array, remove)
58313
- {
58314
- const set = new Set (remove);
58315
-
58316
- return array .filter (value => !set .has (value));
58317
- }
58318
-
58319
58753
  Object .defineProperties (X3DGroupingNode,
58320
58754
  {
58321
58755
  typeName:
@@ -59553,7 +59987,7 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
59553
59987
  },
59554
59988
  setTransparent (value)
59555
59989
  {
59556
- if (value !== this ._transparent .getValue ())
59990
+ if (!!value !== this ._transparent .getValue ())
59557
59991
  this ._transparent = value;
59558
59992
  },
59559
59993
  isTransparent ()
@@ -60049,7 +60483,9 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60049
60483
  })(),
60050
60484
  set_live__ ()
60051
60485
  {
60052
- if (this .getLive () .getValue ())
60486
+ const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
60487
+
60488
+ if (this .getLive () .getValue () || alwaysUpdate)
60053
60489
  this .getBrowser () .getBrowserOptions () ._Shading .addInterest ("set_shading__", this);
60054
60490
  else
60055
60491
  this .getBrowser () .getBrowserOptions () ._Shading .removeInterest ("set_shading__", this);
@@ -60958,7 +61394,7 @@ Object .assign (Object .setPrototypeOf (X3DBackgroundNode .prototype, Core_X3DBi
60958
61394
  vAngle .push (Math .PI);
60959
61395
 
60960
61396
  if (vAngle .length === 2)
60961
- vAngle .splice (1, 0, (vAngle [0] + vAngle [1]) / 2)
61397
+ vAngle .splice (1, 0, (vAngle [0] + vAngle [1]) / 2)
60962
61398
 
60963
61399
  this .buildSphere (RADIUS, vAngle, this ._skyAngle, this ._skyColor, false);
60964
61400
  }
@@ -61526,7 +61962,7 @@ Object .assign (Object .setPrototypeOf (X3DTextureNode .prototype, Shape_X3DAppe
61526
61962
  {
61527
61963
  setTransparent (value)
61528
61964
  {
61529
- if (value !== this ._transparent .getValue ())
61965
+ if (!!value !== this ._transparent .getValue ())
61530
61966
  this ._transparent = value;
61531
61967
  },
61532
61968
  isTransparent ()
@@ -61991,7 +62427,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
61991
62427
  x_ite_Namespace .add ("X3DTexture2DNode", "x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
61992
62428
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
61993
62429
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
61994
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(52);
62430
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(183);
61995
62431
  /*******************************************************************************
61996
62432
  *
61997
62433
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -65301,16 +65737,16 @@ Object .assign (Object .setPrototypeOf (LayerSet .prototype, Core_X3DNode .proto
65301
65737
  {
65302
65738
  return this .activeLayerNode;
65303
65739
  },
65740
+ getLayer0 ()
65741
+ {
65742
+ return this .layerNode0;
65743
+ },
65304
65744
  setLayer0 (value)
65305
65745
  {
65306
65746
  this .layerNode0 = value;
65307
65747
 
65308
65748
  this .set_layers__ ();
65309
65749
  },
65310
- getLayer0 ()
65311
- {
65312
- return this .layerNode0;
65313
- },
65314
65750
  getLayers ()
65315
65751
  {
65316
65752
  return this .layerNodes;
@@ -65592,7 +66028,7 @@ const X3DWorld_default_ = X3DWorld;
65592
66028
  x_ite_Namespace .add ("X3DWorld", "x_ite/Execution/X3DWorld", X3DWorld_default_);
65593
66029
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
65594
66030
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
65595
- /* provided dependency */ var FileLoader_$ = __webpack_require__(52);
66031
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(183);
65596
66032
  /*******************************************************************************
65597
66033
  *
65598
66034
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -66519,7 +66955,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
66519
66955
  x_ite_Namespace .add ("ProtoDeclarationArray", "x_ite/Prototype/ProtoDeclarationArray", ProtoDeclarationArray_default_);
66520
66956
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (ProtoDeclarationArray_default_);
66521
66957
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
66522
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(52);
66958
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(183);
66523
66959
  /*******************************************************************************
66524
66960
  *
66525
66961
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67123,12 +67559,12 @@ x_ite_Namespace .add ("RouteArray", "x_ite/Routing/RouteArray", RouteArray_defau
67123
67559
 
67124
67560
 
67125
67561
  const
67126
- _namedNodes = Symbol (),
67127
- _importedNodes = Symbol (),
67128
- _protos = Symbol (),
67129
- _externprotos = Symbol (),
67130
- X3DExecutionContext_routes = Symbol (),
67131
- _outerNode = Symbol ();
67562
+ _outerNode = Symbol (),
67563
+ _namedNodes = Symbol (),
67564
+ _importedNodes = Symbol (),
67565
+ _protos = Symbol (),
67566
+ _externprotos = Symbol (),
67567
+ X3DExecutionContext_routes = Symbol ();
67132
67568
 
67133
67569
  function X3DExecutionContext (executionContext, outerNode = null, browser = executionContext .getBrowser ())
67134
67570
  {
@@ -67762,10 +68198,13 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
67762
68198
  },
67763
68199
  removeWorldInfo (worldInfoNode)
67764
68200
  {
67765
- for (let i = this ._worldInfos .length - 1; i >= 0; -- i)
68201
+ for (const [i, worldInfo] of this ._worldInfos .entries ())
67766
68202
  {
67767
- if (this ._worldInfos [i] .getValue () === worldInfoNode)
67768
- this ._worldInfos .splice (i, 1);
68203
+ if (worldInfo .getValue () !== worldInfoNode)
68204
+ continue;
68205
+
68206
+ this ._worldInfos .splice (i, 1);
68207
+ break;
67769
68208
  }
67770
68209
  },
67771
68210
  toVRMLStream (generator)
@@ -68239,7 +68678,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68239
68678
  if (oldField .getModificationTime () === 0)
68240
68679
  {
68241
68680
  oldField .assign (newField);
68242
- oldField .setModificationTime (0);
68681
+ oldField .setModificationTime (0);
68243
68682
  }
68244
68683
  }
68245
68684
 
@@ -73722,7 +74161,9 @@ Object .assign (Object .setPrototypeOf (Cone .prototype, Rendering_X3DGeometryNo
73722
74161
  {
73723
74162
  Rendering_X3DGeometryNode .prototype .set_live__ .call (this);
73724
74163
 
73725
- if (this .getLive () .getValue ())
74164
+ const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
74165
+
74166
+ if (this .getLive () .getValue () || alwaysUpdate)
73726
74167
  this .getBrowser () .getConeOptions () .addInterest ("requestRebuild", this);
73727
74168
  else
73728
74169
  this .getBrowser () .getConeOptions () .removeInterest ("requestRebuild", this);
@@ -73933,7 +74374,9 @@ Object .assign (Object .setPrototypeOf (Cylinder .prototype, Rendering_X3DGeomet
73933
74374
  {
73934
74375
  Rendering_X3DGeometryNode .prototype .set_live__ .call (this);
73935
74376
 
73936
- if (this .getLive () .getValue ())
74377
+ const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
74378
+
74379
+ if (this .getLive () .getValue () || alwaysUpdate)
73937
74380
  this .getBrowser () .getCylinderOptions () .addInterest ("requestRebuild", this);
73938
74381
  else
73939
74382
  this .getBrowser () .getCylinderOptions () .removeInterest ("requestRebuild", this);
@@ -74231,7 +74674,7 @@ Object .assign (Object .setPrototypeOf (ElevationGrid .prototype, Rendering_X3DG
74231
74674
 
74232
74675
  this .colorNode ?.addInterest ("requestRebuild", this);
74233
74676
 
74234
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
74677
+ this .setTransparent (this .colorNode ?.isTransparent ());
74235
74678
  },
74236
74679
  set_texCoord__ ()
74237
74680
  {
@@ -75420,7 +75863,7 @@ Object .assign (Object .setPrototypeOf (X3DComposedGeometryNode .prototype, Rend
75420
75863
 
75421
75864
  this .colorNode ?.addInterest ("requestRebuild", this);
75422
75865
 
75423
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
75866
+ this .setTransparent (this .colorNode ?.isTransparent ());
75424
75867
  },
75425
75868
  set_texCoord__ ()
75426
75869
  {
@@ -76175,7 +76618,9 @@ Object .assign (Object .setPrototypeOf (Sphere .prototype, Rendering_X3DGeometry
76175
76618
  {
76176
76619
  Rendering_X3DGeometryNode .prototype .set_live__ .call (this);
76177
76620
 
76178
- if (this .getLive () .getValue ())
76621
+ const alwaysUpdate = this .isLive () && this .getBrowser () .getBrowserOption ("AlwaysUpdateGeometries");
76622
+
76623
+ if (this .getLive () .getValue () || alwaysUpdate)
76179
76624
  this .getBrowser () .getSphereOptions () .addInterest ("requestRebuild", this);
76180
76625
  else
76181
76626
  this .getBrowser () .getSphereOptions () .removeInterest ("requestRebuild", this);
@@ -76727,11 +77172,11 @@ Object .assign (Object .setPrototypeOf (Switch .prototype, Grouping_X3DGroupingN
76727
77172
  },
76728
77173
  set_cameraObject__ ()
76729
77174
  {
76730
- this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
77175
+ this .setCameraObject (this .visibleNode ?.isCameraObject ());
76731
77176
  },
76732
77177
  set_transformSensors__ ()
76733
77178
  {
76734
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
77179
+ this .setPickableObject (this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ());
76735
77180
  },
76736
77181
  set_display__ ()
76737
77182
  {
@@ -80487,8 +80932,8 @@ x_ite_Namespace .add ("EnvironmentLight", "x_ite/Components/Lighting/Environment
80487
80932
  // Shadow map layout
80488
80933
  // Compact layout:
80489
80934
  //
80490
- // xzXZ Char: Axis
80491
- // yyYY Case: Sign
80935
+ // xzXZ Char: Axis
80936
+ // yyYY Case: Sign
80492
80937
 
80493
80938
  const orientationMatrices = [
80494
80939
  new Numbers_Matrix4 () .setRotation (new Numbers_Rotation4 (new Numbers_Vector3 ( 1, 0, 0), Numbers_Vector3 .zAxis)), // left
@@ -81743,11 +82188,11 @@ Object .assign (Object .setPrototypeOf (LOD .prototype, Grouping_X3DGroupingNode
81743
82188
  },
81744
82189
  set_cameraObject__ ()
81745
82190
  {
81746
- this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
82191
+ this .setCameraObject (this .visibleNode ?.isCameraObject ());
81747
82192
  },
81748
82193
  set_transformSensors__ ()
81749
82194
  {
81750
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
82195
+ this .setPickableObject (this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ());
81751
82196
  },
81752
82197
  set_display__ ()
81753
82198
  {
@@ -85829,7 +86274,7 @@ Object .assign (Object .setPrototypeOf (X3DColorNode .prototype, Rendering_X3DGe
85829
86274
  {
85830
86275
  setTransparent (value)
85831
86276
  {
85832
- if (value !== this ._transparent .getValue ())
86277
+ if (!!value !== this ._transparent .getValue ())
85833
86278
  this ._transparent = value;
85834
86279
  },
85835
86280
  isTransparent ()
@@ -87197,7 +87642,7 @@ Object .assign (Object .setPrototypeOf (IndexedLineSet .prototype, Rendering_X3D
87197
87642
 
87198
87643
  this .colorNode ?.addInterest ("requestRebuild", this);
87199
87644
 
87200
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
87645
+ this .setTransparent (this .colorNode ?.isTransparent ());
87201
87646
  },
87202
87647
  set_normal__ ()
87203
87648
  {
@@ -87982,7 +88427,7 @@ Object .assign (Object .setPrototypeOf (LineSet .prototype, Rendering_X3DLineGeo
87982
88427
 
87983
88428
  this .colorNode ?.addInterest ("requestRebuild", this);
87984
88429
 
87985
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
88430
+ this .setTransparent (this .colorNode ?.isTransparent ());
87986
88431
  },
87987
88432
  set_normal__ ()
87988
88433
  {
@@ -89396,7 +89841,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
89396
89841
  x_ite_Namespace .add ("X3DShaderNode", "x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
89397
89842
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
89398
89843
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
89399
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(52);
89844
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(183);
89400
89845
  /*******************************************************************************
89401
89846
  *
89402
89847
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -92283,26 +92728,26 @@ const ShaderSource =
92283
92728
  {
92284
92729
  getSource (gl, browser, source, options)
92285
92730
  {
92286
- const
92287
- COMMENTS = "\\s+|/\\*[\\s\\S]*?\\*/|//.*?\\n",
92288
- LINE = "#line\\s+.*?\\n",
92289
- IF = "#if\\s+.*?\\n",
92290
- ELIF = "#elif\\s+.*?\\n",
92291
- IFDEF = "#ifdef\\s+.*?\\n",
92292
- IFNDEF = "#ifndef\\s+.*?\\n",
92293
- ELSE = "#else.*?\\n",
92294
- ENDIF = "#endif.*?\\n",
92295
- DEFINE = "#define\\s+(?:[^\\n\\\\]|\\\\[^\\r\\n]|\\\\\\r?\\n)*\\n",
92296
- UNDEF = "#undef\\s+.*?\\n",
92297
- PRAGMA = "#pragma\\s+.*?\\n",
92298
- PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
92299
- VERSION = "#version\\s+.*?\\n",
92300
- EXTENSION = "#extension\\s+.*?\\n",
92301
- ANY = ".*";
92302
-
92303
- const
92304
- GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
92305
- match = source .match (GLSL);
92731
+ const
92732
+ COMMENTS = "\\s+|/\\*[\\s\\S]*?\\*/|//.*?\\n",
92733
+ LINE = "#line\\s+.*?\\n",
92734
+ IF = "#if\\s+.*?\\n",
92735
+ ELIF = "#elif\\s+.*?\\n",
92736
+ IFDEF = "#ifdef\\s+.*?\\n",
92737
+ IFNDEF = "#ifndef\\s+.*?\\n",
92738
+ ELSE = "#else.*?\\n",
92739
+ ENDIF = "#endif.*?\\n",
92740
+ DEFINE = "#define\\s+(?:[^\\n\\\\]|\\\\[^\\r\\n]|\\\\\\r?\\n)*\\n",
92741
+ UNDEF = "#undef\\s+.*?\\n",
92742
+ PRAGMA = "#pragma\\s+.*?\\n",
92743
+ PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
92744
+ VERSION = "#version\\s+.*?\\n",
92745
+ EXTENSION = "#extension\\s+.*?\\n",
92746
+ ANY = ".*";
92747
+
92748
+ const
92749
+ GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
92750
+ match = source .match (GLSL);
92306
92751
 
92307
92752
  // const
92308
92753
  // COMMENTS = "\\s+|/\\*.*?\\*/|//.*?\\n",
@@ -95037,7 +95482,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95037
95482
  x_ite_Namespace .add ("ShaderCompiler", "x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
95038
95483
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
95039
95484
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95040
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(52);
95485
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(183);
95041
95486
  /*******************************************************************************
95042
95487
  *
95043
95488
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95665,7 +96110,7 @@ Object .assign (Object .setPrototypeOf (X3DAppearanceNode .prototype, Core_X3DNo
95665
96110
  {
95666
96111
  setTransparent (value)
95667
96112
  {
95668
- if (value !== this ._transparent .getValue ())
96113
+ if (!!value !== this ._transparent .getValue ())
95669
96114
  this ._transparent = value;
95670
96115
  },
95671
96116
  isTransparent ()
@@ -95694,7 +96139,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
95694
96139
  x_ite_Namespace .add ("X3DAppearanceNode", "x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
95695
96140
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
95696
96141
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
95697
- /* provided dependency */ var Appearance_$ = __webpack_require__(52);
96142
+ /* provided dependency */ var Appearance_$ = __webpack_require__(183);
95698
96143
  /*******************************************************************************
95699
96144
  *
95700
96145
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95774,8 +96219,8 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
95774
96219
 
95775
96220
  browser .getRenderingProperties () ._ContentScale .addInterest ("set_contentScale__", this);
95776
96221
 
95777
- this ._alphaMode .addInterest ("set_alphaMode__", this);
95778
- this ._alphaCutoff .addInterest ("set_alphaCutoff__", this);
96222
+ this ._alphaMode .addInterest ("set_alphaMode__", this);
96223
+ this ._alphaCutoff .addInterest ("set_alphaCutoff__", this);
95779
96224
  this ._pointProperties .addInterest ("set_pointProperties__", this);
95780
96225
  this ._lineProperties .addInterest ("set_lineProperties__", this);
95781
96226
  this ._fillProperties .addInterest ("set_fillProperties__", this);
@@ -96089,11 +96534,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96089
96534
  },
96090
96535
  set_transparent__ ()
96091
96536
  {
96092
- this .setTransparent (!!(this .stylePropertiesNode [3] ?.isTransparent () ||
96093
- this .materialNode ?.isTransparent () ||
96094
- this .backMaterialNode ?.isTransparent () ||
96095
- this .textureNode ?.isTransparent () ||
96096
- this .blendModeNode));
96537
+ this .setTransparent (this .stylePropertiesNode [3] ?.isTransparent () ||
96538
+ this .materialNode ?.isTransparent () ||
96539
+ this .backMaterialNode ?.isTransparent () ||
96540
+ this .textureNode ?.isTransparent () ||
96541
+ this .blendModeNode);
96097
96542
  },
96098
96543
  traverse (type, renderObject)
96099
96544
  {
@@ -96242,7 +96687,7 @@ Object .assign (Object .setPrototypeOf (FillProperties .prototype, Shape_X3DAppe
96242
96687
  {
96243
96688
  this .filled = this ._filled .getValue ();
96244
96689
 
96245
- this .setTransparent (! this .filled);
96690
+ this .setTransparent (!this .filled);
96246
96691
  },
96247
96692
  set_hatched__ ()
96248
96693
  {
@@ -96265,7 +96710,7 @@ Object .assign (Object .setPrototypeOf (FillProperties .prototype, Shape_X3DAppe
96265
96710
  },
96266
96711
  setTransparent (value)
96267
96712
  {
96268
- if (value !== this ._transparent .getValue ())
96713
+ if (!!value !== this ._transparent .getValue ())
96269
96714
  this ._transparent = value;
96270
96715
  },
96271
96716
  isTransparent ()
@@ -96595,7 +97040,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96595
97040
  {
96596
97041
  setTransparent (value)
96597
97042
  {
96598
- if (value !== this ._transparent .getValue ())
97043
+ if (!!value !== this ._transparent .getValue ())
96599
97044
  this ._transparent = value;
96600
97045
  },
96601
97046
  isTransparent ()
@@ -97015,7 +97460,7 @@ Object .assign (Object .setPrototypeOf (X3DOneSidedMaterialNode .prototype, Shap
97015
97460
  },
97016
97461
  set_transparent__ ()
97017
97462
  {
97018
- this .setTransparent (!! this .transparency);
97463
+ this .setTransparent (this .transparency);
97019
97464
  },
97020
97465
  getBaseTexture ()
97021
97466
  {
@@ -97343,7 +97788,7 @@ Object .assign (Object .setPrototypeOf (Material .prototype, Shape_X3DOneSidedMa
97343
97788
  },
97344
97789
  set_transparent__ ()
97345
97790
  {
97346
- this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode ?.isTransparent ()));
97791
+ this .setTransparent (this .getTransparency () || this .diffuseTextureNode ?.isTransparent ());
97347
97792
  },
97348
97793
  createShader (key, geometryContext, renderContext)
97349
97794
  {
@@ -97765,7 +98210,7 @@ Object .assign (Object .setPrototypeOf (PhysicalMaterial .prototype, Shape_X3DOn
97765
98210
  },
97766
98211
  set_transparent__ ()
97767
98212
  {
97768
- this .setTransparent (!!(this .getTransparency () || this .baseTextureNode ?.isTransparent ()));
98213
+ this .setTransparent (this .getTransparency () || this .baseTextureNode ?.isTransparent ());
97769
98214
  },
97770
98215
  createShader (key, geometryContext, renderContext)
97771
98216
  {
@@ -98223,7 +98668,7 @@ Object .assign (Object .setPrototypeOf (X3DShapeNode .prototype, Core_X3DChildNo
98223
98668
  },
98224
98669
  setTransparent (value)
98225
98670
  {
98226
- this .transparent = value;
98671
+ this .transparent = !!value;
98227
98672
  },
98228
98673
  getAlphaMode ()
98229
98674
  {
@@ -98445,7 +98890,9 @@ Object .assign (Object .setPrototypeOf (Shape .prototype, Shape_X3DShapeNode .pr
98445
98890
  {
98446
98891
  case Rendering_TraverseType .POINTER:
98447
98892
  {
98448
- renderObject .addPointingShape (this);
98893
+ if (this ._pointerEvents .getValue ())
98894
+ renderObject .addPointingShape (this);
98895
+
98449
98896
  break;
98450
98897
  }
98451
98898
  case Rendering_TraverseType .PICKING:
@@ -98535,14 +98982,15 @@ Object .defineProperties (Shape,
98535
98982
  fieldDefinitions:
98536
98983
  {
98537
98984
  value: new Base_FieldDefinitionArray ([
98538
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
98539
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "castShadow", new x_ite_Fields .SFBool (true)),
98540
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "visible", new x_ite_Fields .SFBool (true)),
98541
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "bboxDisplay", new x_ite_Fields .SFBool ()),
98542
- new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "bboxSize", new x_ite_Fields .SFVec3f (-1, -1, -1)),
98543
- new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "bboxCenter", new x_ite_Fields .SFVec3f ()),
98544
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "appearance", new x_ite_Fields .SFNode ()),
98545
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "geometry", new x_ite_Fields .SFNode ()),
98985
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
98986
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "pointerEvents", new x_ite_Fields .SFBool (true)), // skip test
98987
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "castShadow", new x_ite_Fields .SFBool (true)),
98988
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "visible", new x_ite_Fields .SFBool (true)),
98989
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "bboxDisplay", new x_ite_Fields .SFBool ()),
98990
+ new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "bboxSize", new x_ite_Fields .SFVec3f (-1, -1, -1)),
98991
+ new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "bboxCenter", new x_ite_Fields .SFVec3f ()),
98992
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "appearance", new x_ite_Fields .SFNode ()),
98993
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "geometry", new x_ite_Fields .SFNode ()),
98546
98994
  ]),
98547
98995
  enumerable: true,
98548
98996
  },
@@ -98773,7 +99221,7 @@ Object .assign (Object .setPrototypeOf (TwoSidedMaterial .prototype, Shape_X3DMa
98773
99221
  },
98774
99222
  set_transparent__ ()
98775
99223
  {
98776
- this .setTransparent (!!(this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ())));
99224
+ this .setTransparent (this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ()));
98777
99225
  },
98778
99226
  getMaterialKey: Shape_Material .prototype .getMaterialKey,
98779
99227
  getBaseTexture: Shape_Material .prototype .getBaseTexture,
@@ -98949,8 +99397,7 @@ Object .assign (Object .setPrototypeOf (UnlitMaterial .prototype, Shape_X3DOneSi
98949
99397
  },
98950
99398
  set_transparent__ ()
98951
99399
  {
98952
- this .setTransparent (!!(this .getTransparency () ||
98953
- this .getEmissiveTexture () ?.isTransparent ()));
99400
+ this .setTransparent (this .getTransparency () || this .getEmissiveTexture () ?.isTransparent ());
98954
99401
  },
98955
99402
  createShader (key, geometryContext, renderContext)
98956
99403
  {
@@ -99112,7 +99559,6 @@ const Components_Shape_default_ = {
99112
99559
  x_ite_Namespace .add ("Shape", "x_ite/Components/Shape", Components_Shape_default_);
99113
99560
  /* harmony default export */ const Components_Shape = (Components_Shape_default_);
99114
99561
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundProcessingNode.js
99115
- /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(52);
99116
99562
  /*******************************************************************************
99117
99563
  *
99118
99564
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -99166,6 +99612,7 @@ x_ite_Namespace .add ("Shape", "x_ite/Components/Shape", Components_Shape_defaul
99166
99612
 
99167
99613
 
99168
99614
 
99615
+
99169
99616
  function X3DSoundProcessingNode (executionContext)
99170
99617
  {
99171
99618
  Core_X3DChildNode .call (this, executionContext);
@@ -99173,13 +99620,13 @@ function X3DSoundProcessingNode (executionContext)
99173
99620
 
99174
99621
  this .addType (Base_X3DConstants .X3DSoundProcessingNode);
99175
99622
 
99176
- this .addChildObjects (Base_X3DConstants .inputOutput, "loop", new x_ite_Fields .SFBool (true),
99177
- Base_X3DConstants .inputOutput, "active", new x_ite_Fields .SFBool ());
99623
+ this .addChildObjects (Base_X3DConstants .inputOutput, "loop", new x_ite_Fields .SFBool (true));
99178
99624
 
99179
99625
  const audioContext = this .getBrowser () .getAudioContext ();
99180
99626
 
99181
- this .childNodes = [ ];
99182
- this .gainNode = new GainNode (audioContext);
99627
+ this .childNodes = [ ];
99628
+ this .audioDestination = new GainNode (audioContext, { gain: 0 });
99629
+ this .audioSource = new GainNode (audioContext, { gain: 1 });
99183
99630
  }
99184
99631
 
99185
99632
  Object .assign (Object .setPrototypeOf (X3DSoundProcessingNode .prototype, Core_X3DChildNode .prototype),
@@ -99190,35 +99637,63 @@ Object .assign (Object .setPrototypeOf (X3DSoundProcessingNode .prototype, Core_
99190
99637
  Core_X3DChildNode .prototype .initialize .call (this);
99191
99638
  Time_X3DTimeDependentNode .prototype .initialize .call (this);
99192
99639
 
99193
- this ._active .addInterest ("set_gain__", this);
99640
+ this ._enabled .addInterest ("set_enabled__", this);
99194
99641
  this ._gain .addInterest ("set_gain__", this);
99195
99642
  this ._channelCount .addInterest ("set_channelCount__", this);
99196
99643
  this ._channelCountMode .addInterest ("set_channelCountMode__", this);
99197
99644
  this ._channelInterpretation .addInterest ("set_channelInterpretation__", this);
99198
99645
  this ._children .addInterest ("set_children__", this);
99199
- this ._active .addInterest ("set_active__", this);
99200
99646
 
99647
+ this .set_enabled__ ();
99201
99648
  this .set_gain__ ();
99202
99649
  this .set_channelCount__ ();
99203
99650
  this .set_channelCountMode__ ();
99204
99651
  this .set_channelInterpretation__ ();
99205
99652
  this .set_children__ ();
99206
99653
  },
99654
+ getAudioDestination ()
99655
+ {
99656
+ return this .audioDestination;
99657
+ },
99207
99658
  getAudioSource ()
99208
99659
  {
99209
- return this .gainNode;
99660
+ return this .audioSource;
99210
99661
  },
99211
99662
  getSoundProcessor ()
99212
99663
  {
99213
- return this .gainNode;
99664
+ return this .audioSource;
99665
+ },
99666
+ set_enabled__ ()
99667
+ {
99668
+ this .audioDestination .disconnect ();
99669
+
99670
+ if (this ._enabled .getValue ())
99671
+ {
99672
+ this .set_gain__ ();
99673
+ this .set_channelCountMode__ ();
99674
+ this .set_channelInterpretation__ ();
99675
+
99676
+ this .audioDestination .connect (this .getSoundProcessor ());
99677
+ }
99678
+ else
99679
+ {
99680
+ this .audioDestination .gain .value = 1;
99681
+ this .audioDestination .channelCountMode = "max";
99682
+ this .audioDestination .channelInterpretation = "speakers";
99683
+
99684
+ this .audioDestination .connect (this .audioSource);
99685
+ }
99214
99686
  },
99215
99687
  set_gain__ ()
99216
99688
  {
99217
- this .gainNode .gain .value = this ._active .getValue () ? this ._gain .getValue () : 1;
99689
+ if (!this ._enabled .getValue ())
99690
+ return;
99691
+
99692
+ this .audioDestination .gain .value = this ._gain .getValue ();
99218
99693
  },
99219
99694
  set_channelCount__ ()
99220
99695
  {
99221
- this .getSoundProcessor () .channelCount = Math .max (this ._channelCount .getValue (), 1);
99696
+ this .audioDestination .channelCount = Math_Algorithm .clamp (this ._channelCount .getValue (), 1, 32);
99222
99697
  },
99223
99698
  set_channelCountMode__: (function ()
99224
99699
  {
@@ -99226,9 +99701,12 @@ Object .assign (Object .setPrototypeOf (X3DSoundProcessingNode .prototype, Core_
99226
99701
 
99227
99702
  return function ()
99228
99703
  {
99704
+ if (!this ._enabled .getValue ())
99705
+ return;
99706
+
99229
99707
  const channelCountMode = this ._channelCountMode .getValue () .toLowerCase () .replaceAll ("_", "-");
99230
99708
 
99231
- this .getSoundProcessor () .channelCountMode = channelCountModes .has (channelCountMode) ? channelCountMode : "max";
99709
+ this .audioDestination .channelCountMode = channelCountModes .has (channelCountMode) ? channelCountMode : "max";
99232
99710
  };
99233
99711
  })(),
99234
99712
  set_channelInterpretation__: (function ()
@@ -99237,14 +99715,18 @@ Object .assign (Object .setPrototypeOf (X3DSoundProcessingNode .prototype, Core_
99237
99715
 
99238
99716
  return function ()
99239
99717
  {
99718
+ if (!this ._enabled .getValue ())
99719
+ return;
99720
+
99240
99721
  const channelInterpretation = this ._channelInterpretation .getValue () .toLowerCase ();
99241
99722
 
99242
- this .getSoundProcessor () .channelInterpretation = channelInterpretations .has (channelInterpretation) ? channelInterpretation : "speakers";
99723
+ this .audioDestination .channelInterpretation = channelInterpretations .has (channelInterpretation) ? channelInterpretation : "speakers";
99243
99724
  };
99244
99725
  })(),
99245
99726
  set_children__ ()
99246
99727
  {
99247
- this .set_disconnect__ ();
99728
+ for (const childNode of this .childNodes)
99729
+ childNode .getAudioSource () .disconnect (this .audioDestination);
99248
99730
 
99249
99731
  this .childNodes .length = 0;
99250
99732
 
@@ -99274,50 +99756,8 @@ Object .assign (Object .setPrototypeOf (X3DSoundProcessingNode .prototype, Core_
99274
99756
  }
99275
99757
  }
99276
99758
 
99277
- this .set_active__ ();
99278
- },
99279
- set_disconnect__ ()
99280
- {
99281
- for (const childNode of this .childNodes)
99282
- X3DSoundProcessingNode_$.try (() => childNode .getAudioSource () .disconnect (this .gainNode));
99283
-
99284
99759
  for (const childNode of this .childNodes)
99285
- X3DSoundProcessingNode_$.try (() => childNode .getAudioSource () .disconnect (this .getSoundProcessor ()));
99286
- },
99287
- set_active__ ()
99288
- {
99289
- this .set_disconnect__ ();
99290
-
99291
- if (this ._active .getValue ())
99292
- {
99293
- for (const childNode of this .childNodes)
99294
- X3DSoundProcessingNode_$.try (() => childNode .getAudioSource () .connect (this .getSoundProcessor ()), true);
99295
- }
99296
- else
99297
- {
99298
- for (const childNode of this .childNodes)
99299
- X3DSoundProcessingNode_$.try (() => childNode .getAudioSource () .connect (this .gainNode), true);
99300
- }
99301
- },
99302
- set_start ()
99303
- {
99304
- if (!this ._active .getValue ())
99305
- this ._active = true;
99306
- },
99307
- set_pause ()
99308
- {
99309
- if (this ._active .getValue ())
99310
- this ._active = false;
99311
- },
99312
- set_resume ()
99313
- {
99314
- if (!this ._active .getValue ())
99315
- this ._active = true;
99316
- },
99317
- set_stop ()
99318
- {
99319
- if (this ._active .getValue ())
99320
- this ._active = false;
99760
+ childNode .getAudioSource () .connect (this .audioDestination);
99321
99761
  },
99322
99762
  set_time ()
99323
99763
  {
@@ -99412,11 +99852,12 @@ function Analyser (executionContext)
99412
99852
 
99413
99853
  const audioContext = this .getBrowser () .getAudioContext ();
99414
99854
 
99415
- this .analyzerNode = new AnalyserNode (audioContext);
99416
- this .byteFrequencyData = new Uint8Array (this .analyzerNode .frequencyBinCount);
99417
- this .byteTimeDomainData = new Uint8Array (this .analyzerNode .frequencyBinCount);
99855
+ this .analyserNode = new AnalyserNode (audioContext);
99856
+ this .byteFrequencyData = new Uint8Array (this .analyserNode .frequencyBinCount);
99857
+ this .byteTimeDomainData = new Uint8Array (this .analyserNode .frequencyBinCount);
99418
99858
 
99419
- this .analyzerNode .connect (this .getAudioSource ());
99859
+ this .getAudioDestination () .connect (this .analyserNode);
99860
+ this .analyserNode .connect (this .getAudioSource ());
99420
99861
  }
99421
99862
 
99422
99863
  Object .assign (Object .setPrototypeOf (Analyser .prototype, Sound_X3DSoundProcessingNode .prototype),
@@ -99436,13 +99877,13 @@ Object .assign (Object .setPrototypeOf (Analyser .prototype, Sound_X3DSoundProce
99436
99877
  },
99437
99878
  getSoundProcessor ()
99438
99879
  {
99439
- return this .analyzerNode;
99880
+ return this .analyserNode;
99440
99881
  },
99441
99882
  set_fftSize__ ()
99442
99883
  {
99443
- this .analyzerNode .fftSize = Math_Algorithm .clamp (Math_Algorithm .nextPowerOfTwo (this ._fftSize .getValue ()), 32, 32768);
99884
+ this .analyserNode .fftSize = Math_Algorithm .clamp (Math_Algorithm .nextPowerOfTwo (this ._fftSize .getValue ()), 32, 32768);
99444
99885
 
99445
- this ._frequencyBinCount = this .analyzerNode .frequencyBinCount;
99886
+ this ._frequencyBinCount = this .analyserNode .frequencyBinCount;
99446
99887
  },
99447
99888
  set_decibels__ ()
99448
99889
  {
@@ -99450,20 +99891,20 @@ Object .assign (Object .setPrototypeOf (Analyser .prototype, Sound_X3DSoundProce
99450
99891
  minDecibels = Math .min (this ._minDecibels .getValue (), 0),
99451
99892
  maxDecibels = Math .min (this ._maxDecibels .getValue (), 0);
99452
99893
 
99453
- this .analyzerNode .minDecibels = Math .min (minDecibels, maxDecibels);
99454
- this .analyzerNode .maxDecibels = Math .max (minDecibels, maxDecibels);
99894
+ this .analyserNode .minDecibels = Math .min (minDecibels, maxDecibels);
99895
+ this .analyserNode .maxDecibels = Math .max (minDecibels, maxDecibels);
99455
99896
  },
99456
99897
  set_smoothingTimeConstant__ ()
99457
99898
  {
99458
- this .analyzerNode .smoothingTimeConstant = Math_Algorithm .clamp (this ._smoothingTimeConstant .getValue (), 0, 1);
99899
+ this .analyserNode .smoothingTimeConstant = Math_Algorithm .clamp (this ._smoothingTimeConstant .getValue (), 0, 1);
99459
99900
  },
99460
99901
  set_time ()
99461
99902
  {
99462
99903
  Sound_X3DSoundProcessingNode .prototype .set_time .call (this);
99463
99904
 
99464
99905
  const
99465
- analyzerNode = this .analyzerNode,
99466
- frequencyBinCount = analyzerNode .frequencyBinCount;
99906
+ analyserNode = this .analyserNode,
99907
+ frequencyBinCount = analyserNode .frequencyBinCount;
99467
99908
 
99468
99909
  if (this .byteFrequencyData .length !== frequencyBinCount)
99469
99910
  {
@@ -99476,14 +99917,14 @@ Object .assign (Object .setPrototypeOf (Analyser .prototype, Sound_X3DSoundProce
99476
99917
  this ._floatFrequencyData .length = frequencyBinCount;
99477
99918
  this ._floatTimeDomainData .length = frequencyBinCount;
99478
99919
 
99479
- analyzerNode .getByteFrequencyData (this .byteFrequencyData);
99480
- analyzerNode .getByteTimeDomainData (this .byteTimeDomainData);
99920
+ analyserNode .getByteFrequencyData (this .byteFrequencyData);
99921
+ analyserNode .getByteTimeDomainData (this .byteTimeDomainData);
99481
99922
 
99482
99923
  this ._byteFrequencyData .getValue () .set (this .byteFrequencyData);
99483
99924
  this ._byteTimeDomainData .getValue () .set (this .byteTimeDomainData);
99484
99925
 
99485
- analyzerNode .getFloatFrequencyData (this ._floatFrequencyData .shrinkToFit ());
99486
- analyzerNode .getFloatTimeDomainData (this ._floatTimeDomainData .shrinkToFit ());
99926
+ analyserNode .getFloatFrequencyData (this ._floatFrequencyData .shrinkToFit ());
99927
+ analyserNode .getFloatTimeDomainData (this ._floatTimeDomainData .shrinkToFit ());
99487
99928
 
99488
99929
  this ._byteFrequencyData .addEvent ();
99489
99930
  this ._byteTimeDomainData .addEvent ();
@@ -99617,7 +100058,7 @@ function X3DSoundSourceNode (executionContext)
99617
100058
 
99618
100059
  const audioContext = this .getBrowser () .getAudioContext ();
99619
100060
 
99620
- this .gainNode = new GainNode (audioContext);
100061
+ this .audioSource = new GainNode (audioContext, { gain: 0 });
99621
100062
  this .mediaElement = null;
99622
100063
  }
99623
100064
 
@@ -99635,7 +100076,7 @@ Object .assign (Object .setPrototypeOf (X3DSoundSourceNode .prototype, Core_X3DC
99635
100076
  },
99636
100077
  getAudioSource ()
99637
100078
  {
99638
- return this .gainNode;
100079
+ return this .audioSource;
99639
100080
  },
99640
100081
  setMediaElement (value)
99641
100082
  {
@@ -99677,7 +100118,7 @@ Object .assign (Object .setPrototypeOf (X3DSoundSourceNode .prototype, Core_X3DC
99677
100118
  },
99678
100119
  set_gain__ ()
99679
100120
  {
99680
- this .gainNode .gain .value = this ._gain .getValue ();
100121
+ this .audioSource .gain .value = this ._gain .getValue ();
99681
100122
  },
99682
100123
  set_pitch ()
99683
100124
  { },
@@ -99752,7 +100193,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
99752
100193
  x_ite_Namespace .add ("X3DSoundSourceNode", "x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
99753
100194
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
99754
100195
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
99755
- /* provided dependency */ var AudioClip_$ = __webpack_require__(52);
100196
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(183);
99756
100197
  /*******************************************************************************
99757
100198
  *
99758
100199
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -100054,7 +100495,6 @@ const X3DSoundNode_default_ = X3DSoundNode;
100054
100495
  x_ite_Namespace .add ("X3DSoundNode", "x_ite/Components/Sound/X3DSoundNode", X3DSoundNode_default_);
100055
100496
  /* harmony default export */ const Sound_X3DSoundNode = (X3DSoundNode_default_);
100056
100497
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundDestinationNode.js
100057
- /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(52);
100058
100498
  /*******************************************************************************
100059
100499
  *
100060
100500
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -100106,6 +100546,7 @@ x_ite_Namespace .add ("X3DSoundNode", "x_ite/Components/Sound/X3DSoundNode", X3D
100106
100546
 
100107
100547
 
100108
100548
 
100549
+
100109
100550
  function X3DSoundDestinationNode (executionContext)
100110
100551
  {
100111
100552
  Sound_X3DSoundNode .call (this, executionContext);
@@ -100114,8 +100555,8 @@ function X3DSoundDestinationNode (executionContext)
100114
100555
 
100115
100556
  const audioContext = this .getBrowser () .getAudioContext ();
100116
100557
 
100117
- this .childNodes = [ ];
100118
- this .gainNode = new GainNode (audioContext);
100558
+ this .childNodes = [ ];
100559
+ this .audioDestination = new GainNode (audioContext, { gain: 0 });
100119
100560
  }
100120
100561
 
100121
100562
  Object .assign (Object .setPrototypeOf (X3DSoundDestinationNode .prototype, Sound_X3DSoundNode .prototype),
@@ -100126,50 +100567,40 @@ Object .assign (Object .setPrototypeOf (X3DSoundDestinationNode .prototype, Soun
100126
100567
 
100127
100568
  this .getLive () .addInterest ("set_enabled__", this);
100128
100569
 
100129
- this ._enabled .addInterest ("set_enabled__", this);
100130
- this ._gain .addInterest ("set_gain__", this);
100131
- this ._children .addInterest ("set_children__", this);
100570
+ this ._enabled .addInterest ("set_enabled__", this);
100571
+ this ._gain .addInterest ("set_gain__", this);
100572
+ this ._channelCount .addInterest ("set_channelCount__", this);
100573
+ this ._channelCountMode .addInterest ("set_channelCountMode__", this);
100574
+ this ._channelInterpretation .addInterest ("set_channelInterpretation__", this);
100575
+ this ._children .addInterest ("set_children__", this);
100132
100576
 
100133
100577
  this .set_enabled__ ();
100134
100578
  this .set_gain__ ();
100579
+ this .set_channelCount__ ();
100580
+ this .set_channelCountMode__ ();
100581
+ this .set_channelInterpretation__ ();
100135
100582
  this .set_children__ ();
100136
100583
  },
100137
- getAudioSource ()
100584
+ getAudioDestination ()
100138
100585
  {
100139
- return this .gainNode;
100586
+ return this .audioDestination;
100140
100587
  },
100141
100588
  set_enabled__ ()
100142
100589
  {
100143
100590
  if (this ._enabled .getValue () && this .getLive () .getValue ())
100144
- {
100145
- this ._channelCount .addInterest ("set_channelCount__", this);
100146
- this ._channelCountMode .addInterest ("set_channelCountMode__", this);
100147
- this ._channelInterpretation .addInterest ("set_channelInterpretation__", this);
100148
-
100149
- this .gainNode .connect (this .getSoundDestination ());
100150
-
100151
- this .set_channelCount__ ();
100152
- this .set_channelCountMode__ ();
100153
- this .set_channelInterpretation__ ();
100154
- }
100591
+ this .audioDestination .connect (this .getSoundDestination ());
100155
100592
  else
100156
- {
100157
- this ._channelCount .removeInterest ("set_channelCount__", this);
100158
- this ._channelCountMode .removeInterest ("set_channelCountMode__", this);
100159
- this ._channelInterpretation .removeInterest ("set_channelInterpretation__", this);
100160
-
100161
- this .gainNode .disconnect ();
100162
- }
100593
+ this .audioDestination .disconnect ();
100163
100594
 
100164
100595
  this ._isActive = this ._enabled;
100165
100596
  },
100166
100597
  set_gain__ ()
100167
100598
  {
100168
- this .gainNode .gain .value = this ._gain .getValue ();
100599
+ this .audioDestination .gain .value = this ._gain .getValue ();
100169
100600
  },
100170
100601
  set_channelCount__ ()
100171
100602
  {
100172
- this .getSoundDestination () .channelCount = Math .max (this ._channelCount .getValue (), 1);
100603
+ this .audioDestination .channelCount = Math_Algorithm .clamp (this ._channelCount .getValue (), 1, 32);
100173
100604
  },
100174
100605
  set_channelCountMode__: (function ()
100175
100606
  {
@@ -100179,7 +100610,7 @@ Object .assign (Object .setPrototypeOf (X3DSoundDestinationNode .prototype, Soun
100179
100610
  {
100180
100611
  const channelCountMode = this ._channelCountMode .getValue () .toLowerCase () .replaceAll ("_", "-");
100181
100612
 
100182
- this .getSoundDestination () .channelCountMode = channelCountModes .has (channelCountMode) ? channelCountMode : "max";
100613
+ this .audioDestination .channelCountMode = channelCountModes .has (channelCountMode) ? channelCountMode : "max";
100183
100614
  };
100184
100615
  })(),
100185
100616
  set_channelInterpretation__: (function ()
@@ -100190,13 +100621,13 @@ Object .assign (Object .setPrototypeOf (X3DSoundDestinationNode .prototype, Soun
100190
100621
  {
100191
100622
  const channelInterpretation = this ._channelInterpretation .getValue () .toLowerCase ();
100192
100623
 
100193
- this .getSoundDestination () .channelInterpretation = channelInterpretations .has (channelInterpretation) ? channelInterpretation : "speakers";
100624
+ this .audioDestination .channelInterpretation = channelInterpretations .has (channelInterpretation) ? channelInterpretation : "speakers";
100194
100625
  };
100195
100626
  })(),
100196
100627
  set_children__ ()
100197
100628
  {
100198
100629
  for (const childNode of this .childNodes)
100199
- X3DSoundDestinationNode_$.try (() => childNode .getAudioSource () .disconnect (this .gainNode));
100630
+ childNode .getAudioSource () .disconnect (this .audioDestination);
100200
100631
 
100201
100632
  this .childNodes .length = 0;
100202
100633
 
@@ -100227,7 +100658,7 @@ Object .assign (Object .setPrototypeOf (X3DSoundDestinationNode .prototype, Soun
100227
100658
  }
100228
100659
 
100229
100660
  for (const childNode of this .childNodes)
100230
- X3DSoundDestinationNode_$.try (() => childNode .getAudioSource () .connect (this .gainNode), true);
100661
+ childNode .getAudioSource () .connect (this .audioDestination);
100231
100662
  },
100232
100663
  });
100233
100664
 
@@ -100744,14 +101175,162 @@ x_ite_Namespace .add ("BufferAudioSource", "x_ite/Components/Sound/BufferAudioSo
100744
101175
 
100745
101176
 
100746
101177
 
101178
+
101179
+
100747
101180
  function X3DSoundChannelNode (executionContext)
100748
101181
  {
100749
101182
  Sound_X3DSoundNode .call (this, executionContext);
100750
101183
 
100751
101184
  this .addType (Base_X3DConstants .X3DSoundChannelNode);
101185
+
101186
+ const audioContext = this .getBrowser () .getAudioContext ();
101187
+
101188
+ this .childNodes = [ ];
101189
+ this .audioDestination = new GainNode (audioContext, { gain: 0 });
101190
+ this .audioSource = new GainNode (audioContext, { gain: 1 });
100752
101191
  }
100753
101192
 
100754
- Object .setPrototypeOf (X3DSoundChannelNode .prototype, Sound_X3DSoundNode .prototype);
101193
+ Object .assign (Object .setPrototypeOf (X3DSoundChannelNode .prototype, Sound_X3DSoundNode .prototype),
101194
+ {
101195
+ initialize ()
101196
+ {
101197
+ Sound_X3DSoundNode .prototype .initialize .call (this);
101198
+
101199
+ this ._enabled .addInterest ("set_enabled__", this);
101200
+ this ._gain .addInterest ("set_gain__", this);
101201
+ this ._channelCount .addInterest ("set_channelCount__", this);
101202
+ this ._channelCountMode .addInterest ("set_channelCountMode__", this);
101203
+ this ._channelInterpretation .addInterest ("set_channelInterpretation__", this);
101204
+ this ._children .addInterest ("set_children__", this);
101205
+
101206
+ this .set_enabled__ ();
101207
+ this .set_gain__ ();
101208
+ this .set_channelCount__ ();
101209
+ this .set_channelCountMode__ ();
101210
+ this .set_channelInterpretation__ ();
101211
+ this .set_children__ ();
101212
+ },
101213
+ getAudioDestination ()
101214
+ {
101215
+ return this .audioDestination;
101216
+ },
101217
+ getAudioSource ()
101218
+ {
101219
+ return this .audioSource;
101220
+ },
101221
+ getSoundProcessor ()
101222
+ {
101223
+ return this .audioSource;
101224
+ },
101225
+ set_enabled__ ()
101226
+ {
101227
+ this .audioDestination .disconnect ();
101228
+
101229
+ if (this ._enabled .getValue ())
101230
+ {
101231
+ this .set_gain__ ();
101232
+ this .set_channelCountMode__ ();
101233
+ this .set_channelInterpretation__ ();
101234
+
101235
+ this .audioDestination .connect (this .getSoundProcessor ());
101236
+ }
101237
+ else
101238
+ {
101239
+ this .audioDestination .gain .value = 1;
101240
+ this .audioDestination .channelCountMode = "max";
101241
+ this .audioDestination .channelInterpretation = "speakers";
101242
+
101243
+ this .audioDestination .connect (this .audioSource);
101244
+ }
101245
+ },
101246
+ set_gain__ ()
101247
+ {
101248
+ if (!this ._enabled .getValue ())
101249
+ return;
101250
+
101251
+ this .audioDestination .gain .value = this ._gain .getValue ();
101252
+ },
101253
+ set_channelCount__ ()
101254
+ {
101255
+ this .audioDestination .channelCount = Math_Algorithm .clamp (this ._channelCount .getValue (), 1, 32);
101256
+ },
101257
+ set_channelCountMode__: (function ()
101258
+ {
101259
+ const channelCountModes = new Set (["max", "clamped-max", "explicit"]);
101260
+
101261
+ return function ()
101262
+ {
101263
+ if (!this ._enabled .getValue ())
101264
+ return;
101265
+
101266
+ const channelCountMode = this ._channelCountMode .getValue () .toLowerCase () .replaceAll ("_", "-");
101267
+
101268
+ this .audioDestination .channelCountMode = channelCountModes .has (channelCountMode) ? channelCountMode : "max";
101269
+ };
101270
+ })(),
101271
+ set_channelInterpretation__: (function ()
101272
+ {
101273
+ const channelInterpretations = new Set (["speakers", "discrete"]);
101274
+
101275
+ return function ()
101276
+ {
101277
+ if (!this ._enabled .getValue ())
101278
+ return;
101279
+
101280
+ const channelInterpretation = this ._channelInterpretation .getValue () .toLowerCase ();
101281
+
101282
+ this .audioDestination .channelInterpretation = channelInterpretations .has (channelInterpretation) ? channelInterpretation : "speakers";
101283
+ };
101284
+ })(),
101285
+ set_children__ ()
101286
+ {
101287
+ for (const [i, childNode] of this .childNodes .entries ())
101288
+ this .disconnectChildNode (i, childNode);
101289
+
101290
+ this .childNodes .length = 0;
101291
+
101292
+ for (const child of this ._children)
101293
+ {
101294
+ const childNode = Base_X3DCast (Base_X3DConstants .X3DChildNode, child);
101295
+
101296
+ if (!childNode)
101297
+ continue;
101298
+
101299
+ const type = childNode .getType ();
101300
+
101301
+ for (let t = type .length - 1; t >= 0; -- t)
101302
+ {
101303
+ switch (type [t])
101304
+ {
101305
+ case Base_X3DConstants .X3DSoundChannelNode:
101306
+ case Base_X3DConstants .X3DSoundProcessingNode:
101307
+ case Base_X3DConstants .X3DSoundSourceNode:
101308
+ this .childNodes .push (childNode);
101309
+ break;
101310
+ default:
101311
+ continue;
101312
+ }
101313
+
101314
+ break;
101315
+ }
101316
+ }
101317
+
101318
+ this .setChildNodes (this .childNodes);
101319
+
101320
+ for (const [i, childNode] of this .childNodes .entries ())
101321
+ this .connectChildNode (i, childNode);
101322
+ },
101323
+ setChildNodes (childNodes)
101324
+ { },
101325
+ connectChildNode (i, childNode)
101326
+ {
101327
+ childNode .getAudioSource () .connect (this .audioDestination);
101328
+ },
101329
+ disconnectChildNode (i, childNode)
101330
+ {
101331
+ childNode .getAudioSource () .disconnect (this .audioDestination);
101332
+ },
101333
+ });
100755
101334
 
100756
101335
  Object .defineProperties (X3DSoundChannelNode,
100757
101336
  {
@@ -100826,6 +101405,7 @@ x_ite_Namespace .add ("X3DSoundChannelNode", "x_ite/Components/Sound/X3DSoundCha
100826
101405
 
100827
101406
 
100828
101407
 
101408
+
100829
101409
  function ChannelMerger (executionContext)
100830
101410
  {
100831
101411
  Sound_X3DSoundChannelNode .call (this, executionContext);
@@ -100833,7 +101413,59 @@ function ChannelMerger (executionContext)
100833
101413
  this .addType (Base_X3DConstants .ChannelMerger);
100834
101414
  }
100835
101415
 
100836
- Object .setPrototypeOf (ChannelMerger .prototype, Sound_X3DSoundChannelNode .prototype);
101416
+ Object .assign (Object .setPrototypeOf (ChannelMerger .prototype, Sound_X3DSoundChannelNode .prototype),
101417
+ {
101418
+ initialize ()
101419
+ {
101420
+ Sound_X3DSoundChannelNode .prototype .initialize .call (this);
101421
+
101422
+ this ._enabled .addInterest ("set_children__", this);
101423
+ },
101424
+ setChildNodes (childNodes)
101425
+ {
101426
+ this .channelMergerNode ?.disconnect ();
101427
+
101428
+ if (this ._enabled .getValue ())
101429
+ {
101430
+ const
101431
+ audioContext = this .getBrowser () .getAudioContext (),
101432
+ numberOfInputs = Math_Algorithm .clamp (childNodes .length, 1, 32);
101433
+
101434
+ if (this .channelMergerNode ?.numberOfInputs !== numberOfInputs)
101435
+ this .channelMergerNode = new ChannelMergerNode (audioContext, { numberOfInputs });
101436
+
101437
+ this .channelMergerNode .connect (this .getAudioDestination ());
101438
+ }
101439
+ else
101440
+ {
101441
+ this .channelMergerNode = null;
101442
+ }
101443
+ },
101444
+ connectChildNode (i, childNode)
101445
+ {
101446
+ if (this .channelMergerNode)
101447
+ {
101448
+ if (i < 32)
101449
+ childNode .getAudioSource () .connect (this .channelMergerNode, 0, i);
101450
+ }
101451
+ else
101452
+ {
101453
+ childNode .getAudioSource () .connect (this .getAudioDestination ());
101454
+ }
101455
+ },
101456
+ disconnectChildNode (i, childNode)
101457
+ {
101458
+ if (this .channelMergerNode)
101459
+ {
101460
+ if (i < 32)
101461
+ childNode .getAudioSource () .disconnect (this .channelMergerNode, 0, i);
101462
+ }
101463
+ else
101464
+ {
101465
+ childNode .getAudioSource () .disconnect (this .getAudioDestination ());
101466
+ }
101467
+ },
101468
+ });
100837
101469
 
100838
101470
  Object .defineProperties (ChannelMerger,
100839
101471
  {
@@ -100860,9 +101492,9 @@ Object .defineProperties (ChannelMerger,
100860
101492
  fieldDefinitions:
100861
101493
  {
100862
101494
  value: new Base_FieldDefinitionArray ([
100863
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
100864
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "description", new x_ite_Fields .SFString ()),
100865
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
101495
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
101496
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "description", new x_ite_Fields .SFString ()),
101497
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
100866
101498
 
100867
101499
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
100868
101500
 
@@ -100935,14 +101567,49 @@ x_ite_Namespace .add ("ChannelMerger", "x_ite/Components/Sound/ChannelMerger", C
100935
101567
 
100936
101568
 
100937
101569
 
101570
+
100938
101571
  function ChannelSelector (executionContext)
100939
101572
  {
100940
101573
  Sound_X3DSoundChannelNode .call (this, executionContext);
100941
101574
 
100942
101575
  this .addType (Base_X3DConstants .ChannelSelector);
101576
+
101577
+ const audioContext = this .getBrowser () .getAudioContext ();
101578
+
101579
+ this .channelSplitterNode = new ChannelSplitterNode (audioContext);
100943
101580
  }
100944
101581
 
100945
- Object .setPrototypeOf (ChannelSelector .prototype, Sound_X3DSoundChannelNode .prototype);
101582
+ Object .assign (Object .setPrototypeOf (ChannelSelector .prototype, Sound_X3DSoundChannelNode .prototype),
101583
+ {
101584
+ initialize ()
101585
+ {
101586
+ Sound_X3DSoundChannelNode .prototype .initialize .call (this);
101587
+
101588
+ this ._channelSelection .addInterest ("set_channelSelection__", this);
101589
+
101590
+ this .set_channelSelection__ ();
101591
+ },
101592
+ getSoundProcessor ()
101593
+ {
101594
+ return this .channelSplitterNode;
101595
+ },
101596
+ set_channelSelection__ ()
101597
+ {
101598
+ const
101599
+ audioContext = this .getBrowser () .getAudioContext (),
101600
+ channelSelection = Math_Algorithm .clamp (this ._channelSelection .getValue (), 0, 31),
101601
+ numberOfOutputs = channelSelection + 1;
101602
+
101603
+ this .channelSplitterNode .disconnect ();
101604
+
101605
+ if (this .channelSplitterNode .numberOfOutputs !== numberOfOutputs)
101606
+ this .channelSplitterNode = new ChannelSplitterNode (audioContext, { numberOfOutputs });
101607
+
101608
+ this .channelSplitterNode .connect (this .getAudioSource (), channelSelection);
101609
+
101610
+ this .set_enabled__ ();
101611
+ },
101612
+ });
100946
101613
 
100947
101614
  Object .defineProperties (ChannelSelector,
100948
101615
  {
@@ -100969,9 +101636,9 @@ Object .defineProperties (ChannelSelector,
100969
101636
  fieldDefinitions:
100970
101637
  {
100971
101638
  value: new Base_FieldDefinitionArray ([
100972
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
100973
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "description", new x_ite_Fields .SFString ()),
100974
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
101639
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
101640
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "description", new x_ite_Fields .SFString ()),
101641
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
100975
101642
 
100976
101643
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
100977
101644
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelSelection", new x_ite_Fields .SFInt32 (0)),
@@ -101045,14 +101712,101 @@ x_ite_Namespace .add ("ChannelSelector", "x_ite/Components/Sound/ChannelSelector
101045
101712
 
101046
101713
 
101047
101714
 
101715
+
101716
+
101048
101717
  function ChannelSplitter (executionContext)
101049
101718
  {
101050
101719
  Sound_X3DSoundChannelNode .call (this, executionContext);
101051
101720
 
101052
101721
  this .addType (Base_X3DConstants .ChannelSplitter);
101722
+
101723
+ this .outputNodes = [ ];
101053
101724
  }
101054
101725
 
101055
- Object .setPrototypeOf (ChannelSplitter .prototype, Sound_X3DSoundChannelNode .prototype);
101726
+ Object .assign (Object .setPrototypeOf (ChannelSplitter .prototype, Sound_X3DSoundChannelNode .prototype),
101727
+ {
101728
+ initialize ()
101729
+ {
101730
+ Sound_X3DSoundChannelNode .prototype .initialize .call (this);
101731
+
101732
+ this ._enabled .addInterest ("set_outputs__", this);
101733
+ this ._outputs .addInterest ("set_outputs__", this);
101734
+
101735
+ this .set_outputs__ ();
101736
+ },
101737
+ set_outputs__ ()
101738
+ {
101739
+ if (this .channelSplitterNode)
101740
+ {
101741
+ this .channelSplitterNode .disconnect ();
101742
+ }
101743
+ else
101744
+ {
101745
+ for (const outputNode of this .outputNodes)
101746
+ this .getAudioSource () .disconnect (outputNode .getAudioDestination ());
101747
+ }
101748
+
101749
+ this .outputNodes .length = 0;
101750
+
101751
+ for (const child of this ._outputs)
101752
+ {
101753
+ const outputNode = Base_X3DCast (Base_X3DConstants .X3DChildNode, child);
101754
+
101755
+ if (!outputNode)
101756
+ continue;
101757
+
101758
+ const type = outputNode .getType ();
101759
+
101760
+ for (let t = type .length - 1; t >= 0; -- t)
101761
+ {
101762
+ switch (type [t])
101763
+ {
101764
+ case Base_X3DConstants .X3DSoundChannelNode:
101765
+ case Base_X3DConstants .X3DSoundDestinationNode:
101766
+ case Base_X3DConstants .X3DSoundProcessingNode:
101767
+ this .outputNodes .push (outputNode);
101768
+ break;
101769
+ default:
101770
+ continue;
101771
+ }
101772
+
101773
+ break;
101774
+ }
101775
+ }
101776
+
101777
+ if (this .channelSplitterNode)
101778
+ this .getAudioSource () .disconnect (this .channelSplitterNode);
101779
+
101780
+ if (this ._enabled .getValue ())
101781
+ {
101782
+ const
101783
+ audioContext = this .getBrowser () .getAudioContext (),
101784
+ numberOfOutputs = Math_Algorithm .clamp (this .outputNodes .length, 1, 32);
101785
+
101786
+ if (this .channelSplitterNode ?.numberOfOutputs !== numberOfOutputs)
101787
+ this .channelSplitterNode = new ChannelSplitterNode (audioContext, { numberOfOutputs });
101788
+
101789
+ this .getAudioSource () .connect (this .channelSplitterNode);
101790
+ }
101791
+ else
101792
+ {
101793
+ this .channelSplitterNode = null;
101794
+ }
101795
+
101796
+ if (this .channelSplitterNode)
101797
+ {
101798
+ const length = Math .min (this .outputNodes .length, 32);
101799
+
101800
+ for (let i = 0; i < length; ++ i)
101801
+ this .channelSplitterNode .connect (this .outputNodes [i] .getAudioDestination (), i);
101802
+ }
101803
+ else
101804
+ {
101805
+ for (const outputNode of this .outputNodes)
101806
+ this .getAudioSource () .connect (outputNode .getAudioDestination ());
101807
+ }
101808
+ },
101809
+ });
101056
101810
 
101057
101811
  Object .defineProperties (ChannelSplitter,
101058
101812
  {
@@ -101079,9 +101833,9 @@ Object .defineProperties (ChannelSplitter,
101079
101833
  fieldDefinitions:
101080
101834
  {
101081
101835
  value: new Base_FieldDefinitionArray ([
101082
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
101083
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "description", new x_ite_Fields .SFString ()),
101084
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
101836
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "metadata", new x_ite_Fields .SFNode ()),
101837
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "description", new x_ite_Fields .SFString ()),
101838
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
101085
101839
 
101086
101840
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
101087
101841
 
@@ -101704,7 +102458,7 @@ const ListenerPointSource_default_ = ListenerPointSource;
101704
102458
  x_ite_Namespace .add ("ListenerPointSource", "x_ite/Components/Sound/ListenerPointSource", ListenerPointSource_default_);
101705
102459
  /* harmony default export */ const Sound_ListenerPointSource = (ListenerPointSource_default_);
101706
102460
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/MicrophoneSource.js
101707
- /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(52);
102461
+ /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(183);
101708
102462
  /*******************************************************************************
101709
102463
  *
101710
102464
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -101987,7 +102741,6 @@ function OscillatorSource (executionContext)
101987
102741
  const audioContext = this .getBrowser () .getAudioContext ();
101988
102742
 
101989
102743
  this .oscillatorNode = new OscillatorNode (audioContext);
101990
- this .mergerNode = new ChannelMergerNode (audioContext, { numberOfInputs: 2 });
101991
102744
  }
101992
102745
 
101993
102746
  Object .assign (Object .setPrototypeOf (OscillatorSource .prototype, Sound_X3DSoundSourceNode .prototype),
@@ -102033,11 +102786,11 @@ Object .assign (Object .setPrototypeOf (OscillatorSource .prototype, Sound_X3DSo
102033
102786
  })(),
102034
102787
  set_frequency__ ()
102035
102788
  {
102036
- this .oscillatorNode .frequency .value = this ._frequency .getValue ();
102789
+ this .oscillatorNode .frequency .value = Math .max (this ._frequency .getValue (), 0);
102037
102790
  },
102038
102791
  set_detune__ ()
102039
102792
  {
102040
- this .oscillatorNode .detune .value = this ._detune .getValue ();
102793
+ this .oscillatorNode .detune .value = Math .max (this ._detune .getValue (), 0);
102041
102794
  },
102042
102795
  set_periodicWave__ ()
102043
102796
  {
@@ -102064,19 +102817,16 @@ Object .assign (Object .setPrototypeOf (OscillatorSource .prototype, Sound_X3DSo
102064
102817
  this .set_frequency__ ();
102065
102818
  this .set_detune__ ();
102066
102819
 
102067
- this .oscillatorNode .connect (this .mergerNode, 0, 0);
102068
- this .oscillatorNode .connect (this .mergerNode, 0, 1);
102069
- this .mergerNode .connect (this .getAudioSource ());
102070
-
102820
+ this .oscillatorNode .connect (this .getAudioSource ());
102071
102821
  this .oscillatorNode .start ();
102072
102822
  },
102073
102823
  set_pause ()
102074
102824
  {
102075
- this .mergerNode .disconnect ();
102825
+ this .oscillatorNode .disconnect ();
102076
102826
  },
102077
102827
  set_resume ()
102078
102828
  {
102079
- this .mergerNode .connect (this .getAudioSource ());
102829
+ this .oscillatorNode .connect (this .getAudioSource ());
102080
102830
  },
102081
102831
  set_stop ()
102082
102832
  {
@@ -102352,28 +103102,37 @@ Object .assign (Object .setPrototypeOf (Sound .prototype, Sound_X3DSoundNode .pr
102352
103102
 
102353
103103
  const
102354
103104
  audioContext = this .getBrowser () .getAudioContext (),
103105
+ gainNode = new GainNode (audioContext, { gain: 0 }),
102355
103106
  splitterNode = new ChannelSplitterNode (audioContext, { numberOfOutputs: 2 }),
102356
103107
  mergerNode = new ChannelMergerNode (audioContext, { numberOfInputs: 2 }),
102357
103108
  gainLeftNode = new GainNode (audioContext, { gain: 0 }),
102358
103109
  gainRightNode = new GainNode (audioContext, { gain: 0 });
102359
103110
 
102360
- splitterNode .connect (gainLeftNode, 0);
103111
+ gainNode .channelCount = 2;
103112
+ gainNode .channelCountMode = "explicit";
103113
+ gainNode .channelInterpretation = "speakers";
103114
+
103115
+ gainNode .connect (splitterNode);
103116
+ splitterNode .connect (gainLeftNode, 0);
102361
103117
  splitterNode .connect (gainRightNode, 1);
102362
103118
  gainLeftNode .connect (mergerNode, 0, 0);
102363
103119
  gainRightNode .connect (mergerNode, 0, 1);
102364
103120
  mergerNode .connect (audioContext .destination);
102365
103121
 
103122
+ this .gainNode = gainNode;
102366
103123
  this .splitterNode = splitterNode;
102367
103124
  this .gainLeftNode = gainLeftNode;
102368
103125
  this .gainRightNode = gainRightNode;
102369
103126
 
102370
- this .getLive () .addInterest ("set_live__", this);
103127
+ this .getLive () .addInterest ("set_live__", this);
102371
103128
  this ._traversed .addInterest ("set_live__", this);
102372
103129
 
102373
- this ._source .addInterest ("set_children__", this);
102374
- this ._children .addInterest ("set_children__", this);
103130
+ this ._intensity .addInterest ("set_intensity__", this);
103131
+ this ._source .addInterest ("set_children__", this);
103132
+ this ._children .addInterest ("set_children__", this);
102375
103133
 
102376
103134
  this .set_live__ ();
103135
+ this .set_intensity__ ();
102377
103136
  this .set_children__ ();
102378
103137
  },
102379
103138
  setTraversed (value)
@@ -102395,10 +103154,10 @@ Object .assign (Object .setPrototypeOf (Sound .prototype, Sound_X3DSoundNode .pr
102395
103154
  {
102396
103155
  return this .currentTraversed;
102397
103156
  },
102398
- setVolume (volume, pan = 0.5)
103157
+ setGain (gain, pan = 0.5)
102399
103158
  {
102400
- this .gainLeftNode .gain .value = volume * (1 - pan ** 2);
102401
- this .gainRightNode .gain .value = volume * (1 - (1 - pan) ** 2);
103159
+ this .gainLeftNode .gain .value = gain * (1 - pan ** 2);
103160
+ this .gainRightNode .gain .value = gain * (1 - (1 - pan) ** 2);
102402
103161
  },
102403
103162
  set_live__ ()
102404
103163
  {
@@ -102409,13 +103168,17 @@ Object .assign (Object .setPrototypeOf (Sound .prototype, Sound_X3DSoundNode .pr
102409
103168
  else
102410
103169
  {
102411
103170
  this .getBrowser () .sensorEvents () .removeInterest ("update", this);
102412
- this .setVolume (0);
103171
+ this .setGain (0);
102413
103172
  }
102414
103173
  },
103174
+ set_intensity__ ()
103175
+ {
103176
+ this .gainNode .gain .value = Math_Algorithm .clamp (this ._intensity .getValue (), 0, 1);
103177
+ },
102415
103178
  set_children__ ()
102416
103179
  {
102417
103180
  for (const childNode of this .childNodes)
102418
- childNode .getAudioSource () .disconnect (this .splitterNode);
103181
+ childNode .getAudioSource () .disconnect (this .gainNode);
102419
103182
 
102420
103183
  this .childNodes .length = 0;
102421
103184
 
@@ -102451,12 +103214,12 @@ Object .assign (Object .setPrototypeOf (Sound .prototype, Sound_X3DSoundNode .pr
102451
103214
  }
102452
103215
 
102453
103216
  for (const childNode of this .childNodes)
102454
- childNode .getAudioSource () .connect (this .splitterNode);
103217
+ childNode .getAudioSource () .connect (this .gainNode);
102455
103218
  },
102456
103219
  update ()
102457
103220
  {
102458
103221
  if (!this .getTraversed ())
102459
- this .setVolume (0);
103222
+ this .setGain (0);
102460
103223
 
102461
103224
  this .setTraversed (false);
102462
103225
  },
@@ -102497,23 +103260,21 @@ Object .assign (Object .setPrototypeOf (Sound .prototype, Sound_X3DSoundNode .pr
102497
103260
 
102498
103261
  if (min .distance < 1) // Radius of normalized sphere is 1.
102499
103262
  {
102500
- this .setVolume (Math_Algorithm .clamp (this ._intensity .getValue (), 0, 1), pan);
103263
+ this .setGain (1, pan);
102501
103264
  }
102502
103265
  else
102503
103266
  {
102504
103267
  const
102505
- d1 = max .intersection .magnitude (), // Viewer is here at (0, 0, 0)
102506
- d2 = max .intersection .distance (min .intersection),
102507
- d = Math .min (d1 / d2, 1),
102508
- intensity = Math_Algorithm .clamp (this ._intensity .getValue (), 0, 1),
102509
- volume = intensity * d;
103268
+ d1 = max .intersection .magnitude (), // Viewer is here at (0, 0, 0)
103269
+ d2 = max .intersection .distance (min .intersection),
103270
+ d = Math .min (d1 / d2, 1);
102510
103271
 
102511
- this .setVolume (volume, pan);
103272
+ this .setGain (d, pan);
102512
103273
  }
102513
103274
  }
102514
103275
  else
102515
103276
  {
102516
- this .setVolume (0);
103277
+ this .setGain (0);
102517
103278
  }
102518
103279
  };
102519
103280
  })(),
@@ -103373,8 +104134,8 @@ const GifMedia_default_ = GifMedia;
103373
104134
  x_ite_Namespace .add ("GifMedia", "x_ite/Browser/Texturing/GifMedia", GifMedia_default_);
103374
104135
  /* harmony default export */ const Texturing_GifMedia = (GifMedia_default_);
103375
104136
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
103376
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(52);
103377
- /* provided dependency */ var SuperGif = __webpack_require__(247);
104137
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(183);
104138
+ /* provided dependency */ var SuperGif = __webpack_require__(432);
103378
104139
  /*******************************************************************************
103379
104140
  *
103380
104141
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106653,7 +107414,7 @@ const gettext_default_ = gettext;
106653
107414
  x_ite_Namespace .add ("gettext", "locale/gettext", gettext_default_);
106654
107415
  /* harmony default export */ const locale_gettext = (gettext_default_);
106655
107416
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106656
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(52);
107417
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(183);
106657
107418
  /*******************************************************************************
106658
107419
  *
106659
107420
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107083,7 +107844,7 @@ const TextureQuality_default_ = TextureQuality;
107083
107844
  x_ite_Namespace .add ("TextureQuality", "x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
107084
107845
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
107085
107846
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107086
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(52);
107847
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(183);
107087
107848
  /*******************************************************************************
107088
107849
  *
107089
107850
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107451,6 +108212,8 @@ Object .defineProperties (BrowserOptions,
107451
108212
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "QualityWhenMoving", new x_ite_Fields .SFString ("SAME")),
107452
108213
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Shading", new x_ite_Fields .SFString ("GOURAUD")),
107453
108214
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "MotionBlur", new x_ite_Fields .SFBool ()),
108215
+ // Always update geometries, even if browser is not live.
108216
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "AlwaysUpdateGeometries", new x_ite_Fields .SFBool ()),
107454
108217
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "AutoUpdate", new x_ite_Fields .SFBool ()),
107455
108218
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Cache", new x_ite_Fields .SFBool (true)),
107456
108219
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "ContentScale", new x_ite_Fields .SFDouble (1)),
@@ -107459,8 +108222,10 @@ Object .defineProperties (BrowserOptions,
107459
108222
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Gravity", new x_ite_Fields .SFDouble (9.80665)),
107460
108223
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "LoadUrlObjects", new x_ite_Fields .SFBool (true)),
107461
108224
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "LogarithmicDepthBuffer", new x_ite_Fields .SFBool ()),
107462
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Notifications", new x_ite_Fields .SFBool (true)),
108225
+ // A string, which is set to the *reference* field of metadata nodes, when they are created.
108226
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "MetadataReference", new x_ite_Fields .SFString ()),
107463
108227
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Multisampling", new x_ite_Fields .SFInt32 (4)),
108228
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Notifications", new x_ite_Fields .SFBool (true)),
107464
108229
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "OrderIndependentTransparency", new x_ite_Fields .SFBool ()),
107465
108230
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "StraightenHorizon", new x_ite_Fields .SFBool (true)),
107466
108231
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Timings", new x_ite_Fields .SFBool ()),
@@ -107673,7 +108438,7 @@ const RenderingProperties_default_ = RenderingProperties;
107673
108438
  x_ite_Namespace .add ("RenderingProperties", "x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
107674
108439
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
107675
108440
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
107676
- /* provided dependency */ var Notification_$ = __webpack_require__(52);
108441
+ /* provided dependency */ var Notification_$ = __webpack_require__(183);
107677
108442
  /*******************************************************************************
107678
108443
  *
107679
108444
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107796,8 +108561,8 @@ const Notification_default_ = Notification;
107796
108561
  x_ite_Namespace .add ("Notification", "x_ite/Browser/Core/Notification", Notification_default_);
107797
108562
  /* harmony default export */ const Core_Notification = (Notification_default_);
107798
108563
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
107799
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(944);
107800
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(52);
108564
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(403);
108565
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(183);
107801
108566
  /*******************************************************************************
107802
108567
  *
107803
108568
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108368,7 +109133,7 @@ Object .assign (Object .setPrototypeOf (ContextMenu .prototype, Base_X3DBaseNode
108368
109133
 
108369
109134
  // Reposition menu if to right or to low.
108370
109135
 
108371
- ul .offset ({ "left": event .pageX, "top": event .pageY }); // Do it again!
109136
+ ul .offset ({ "left": event .pageX, "top": event .pageY }); // Do it again!
108372
109137
 
108373
109138
  if (ul .offset () .left - ContextMenu_$(document) .scrollLeft () + ul .outerWidth () > ContextMenu_$(window) .width ())
108374
109139
  ul .offset ({ "left": ContextMenu_$(document) .scrollLeft () + Math .max (0, ContextMenu_$(window) .width () - ul .outerWidth ()) });
@@ -109600,13 +110365,18 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
109600
110365
  const values = this [_metadata] .get (name);
109601
110366
 
109602
110367
  if (values)
109603
- return Array .from (values);
110368
+ return values .slice ();
109604
110369
 
109605
110370
  return undefined;
109606
110371
  },
109607
110372
  getMetaDatas ()
109608
110373
  {
109609
- return new Map (this [_metadata]);
110374
+ const metadata = new Map ();
110375
+
110376
+ for (const [key, values] of this [_metadata])
110377
+ metadata .set (key, values .slice ());
110378
+
110379
+ return metadata;
109610
110380
  },
109611
110381
  addExportedNode (exportedName, node)
109612
110382
  {
@@ -109631,7 +110401,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
109631
110401
  throw new Error ("Couldn't update exported node: node must be of type X3DNode.");
109632
110402
 
109633
110403
  //if (node .getExecutionContext () !== this)
109634
- // throw new Error ("Couldn't update exported node: node does not belong to this execution context.");
110404
+ // throw new Error ("Couldn't update exported node: node does not belong to this execution context.");
109635
110405
 
109636
110406
  const exportedNode = new Execution_X3DExportedNode (this, exportedName, node);
109637
110407
 
@@ -110473,14 +111243,12 @@ const DataStorage_handler =
110473
111243
  if (property !== undefined)
110474
111244
  return property;
110475
111245
 
110476
- const string = target .getStorage () [target .getNameSpace () + key];
111246
+ const value = target .getStorage () [target .getNameSpace () + key];
110477
111247
 
110478
- if (string === undefined || string === "undefined" || string === null)
111248
+ if (String (value) .match (/^(?:undefined|null)$/))
110479
111249
  return target .getDefaultValue (key);
110480
111250
 
110481
- const value = JSON .parse (string);
110482
-
110483
- return value;
111251
+ return JSON .parse (value);
110484
111252
  },
110485
111253
  set (target, key, value)
110486
111254
  {
@@ -110549,7 +111317,7 @@ const DataStorage_default_ = DataStorage;
110549
111317
  x_ite_Namespace .add ("DataStorage", "standard/Utility/DataStorage", DataStorage_default_);
110550
111318
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
110551
111319
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
110552
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(52);
111320
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(183);
110553
111321
  /*******************************************************************************
110554
111322
  *
110555
111323
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113072,8 +113840,8 @@ const X3DViewer_default_ = X3DViewer;
113072
113840
  x_ite_Namespace .add ("X3DViewer", "x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
113073
113841
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
113074
113842
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
113075
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(82);
113076
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(52);
113843
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(287);
113844
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(183);
113077
113845
  /*******************************************************************************
113078
113846
  *
113079
113847
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113945,8 +114713,8 @@ const ExamineViewer_default_ = ExamineViewer;
113945
114713
  x_ite_Namespace .add ("ExamineViewer", "x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
113946
114714
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
113947
114715
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
113948
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(82);
113949
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(52);
114716
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(287);
114717
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(183);
113950
114718
  /*******************************************************************************
113951
114719
  *
113952
114720
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114955,8 +115723,8 @@ const FlyViewer_default_ = FlyViewer;
114955
115723
  x_ite_Namespace .add ("FlyViewer", "x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
114956
115724
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
114957
115725
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
114958
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(82);
114959
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(52);
115726
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(287);
115727
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(183);
114960
115728
  /*******************************************************************************
114961
115729
  *
114962
115730
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115287,8 +116055,8 @@ const NoneViewer_default_ = NoneViewer;
115287
116055
  x_ite_Namespace .add ("NoneViewer", "x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
115288
116056
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
115289
116057
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
115290
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(82);
115291
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(52);
116058
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(287);
116059
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(183);
115292
116060
  /*******************************************************************************
115293
116061
  *
115294
116062
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116427,8 +117195,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
116427
117195
  x_ite_Namespace .add ("X3DPickingContext", "x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
116428
117196
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
116429
117197
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
116430
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(82);
116431
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(52);
117198
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(287);
117199
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(183);
116432
117200
  /*******************************************************************************
116433
117201
  *
116434
117202
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117087,11 +117855,11 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117087
117855
  {
117088
117856
  return this [_hit];
117089
117857
  },
117090
- addPointingShape (pickingContext)
117858
+ addPointingShape (pointingContext)
117091
117859
  {
117092
117860
  const id = ++ this [_id];
117093
117861
 
117094
- this [_pointingContexts] [id] = pickingContext;
117862
+ this [_pointingContexts] [id] = pointingContext;
117095
117863
 
117096
117864
  return id;
117097
117865
  },
@@ -117168,18 +117936,18 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117168
117936
  if (Number .isInteger (hit .id) && hit .id > 0 && hit .id <= this [_id])
117169
117937
  {
117170
117938
  const
117171
- pickingContext = this [_pointingContexts] [hit .id],
117172
- shapeNode = pickingContext .shapeNode,
117939
+ pointingContext = this [_pointingContexts] [hit .id],
117940
+ shapeNode = pointingContext .shapeNode,
117173
117941
  appearanceNode = shapeNode .getAppearance (),
117174
117942
  geometryContext = shapeNode .getGeometryContext ();
117175
117943
 
117176
- hit .hitRay = pickingContext .renderObject .getHitRay ();
117177
- hit .sensors = pickingContext .sensors .slice ();
117178
- hit .layerNode = pickingContext .renderObject;
117944
+ hit .hitRay = pointingContext .renderObject .getHitRay ();
117945
+ hit .sensors = pointingContext .sensors .slice ();
117946
+ hit .layerNode = pointingContext .renderObject;
117179
117947
  hit .shapeNode = shapeNode;
117180
117948
 
117181
- hit .viewMatrix .assign (pickingContext .renderObject .getViewpoint () .getViewMatrix ());
117182
- hit .modelViewMatrix .assign (pickingContext .modelViewMatrix);
117949
+ hit .viewMatrix .assign (pointingContext .renderObject .getViewpoint () .getViewMatrix ());
117950
+ hit .modelViewMatrix .assign (pointingContext .modelViewMatrix);
117183
117951
 
117184
117952
  // A ParticleSystem has only a geometry context.
117185
117953
 
@@ -117576,10 +118344,12 @@ Object .assign (MultiSampleFrameBuffer .prototype,
117576
118344
  },
117577
118345
  clear ()
117578
118346
  {
117579
- const { context: gl, frameBuffer } = this;
118347
+ const { context: gl, frameBuffer, width, height } = this;
117580
118348
 
117581
118349
  gl .bindFramebuffer (gl .FRAMEBUFFER, frameBuffer);
117582
118350
 
118351
+ gl .viewport (0, 0, width, height);
118352
+ gl .scissor (0, 0, width, height);
117583
118353
  gl .clearColor (0, 0, 0, 0);
117584
118354
  gl .clear (gl .COLOR_BUFFER_BIT);
117585
118355
  },
@@ -117698,8 +118468,10 @@ Object .assign (Fallback .prototype,
117698
118468
  },
117699
118469
  clear ()
117700
118470
  {
117701
- const { context: gl } = this;
118471
+ const { context: gl, width, height } = this;
117702
118472
 
118473
+ gl .viewport (0, 0, width, height);
118474
+ gl .scissor (0, 0, width, height);
117703
118475
  gl .clearColor (0, 0, 0, 1);
117704
118476
  gl .clear (gl .COLOR_BUFFER_BIT);
117705
118477
  gl .blendFuncSeparate (gl .ONE, gl .ONE, gl .ZERO, gl .ONE_MINUS_SRC_ALPHA);
@@ -117715,7 +118487,7 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
117715
118487
  x_ite_Namespace .add ("MultiSampleFrameBuffer", "x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
117716
118488
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
117717
118489
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
117718
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(52);
118490
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(183);
117719
118491
  /*******************************************************************************
117720
118492
  *
117721
118493
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118617,7 +119389,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
118617
119389
  x_ite_Namespace .add ("X3DSoundContext", "x_ite/Browser/Sound/X3DSoundContext", X3DSoundContext_default_);
118618
119390
  /* harmony default export */ const Sound_X3DSoundContext = (X3DSoundContext_default_);
118619
119391
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
118620
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(52);
119392
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(183);
118621
119393
  const KTXDecoder_default_ = class KTXDecoder
118622
119394
  {
118623
119395
  constructor (gl, externalKtxlib, scriptDir)
@@ -120170,7 +120942,7 @@ const Components_default_ = Components;
120170
120942
  x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
120171
120943
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
120172
120944
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
120173
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(52);
120945
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(183);
120174
120946
  /*******************************************************************************
120175
120947
  * MIT License
120176
120948
  *
@@ -120202,355 +120974,355 @@ x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
120202
120974
 
120203
120975
  class DOMIntegration
120204
120976
  {
120205
- constructor (browser)
120206
- {
120207
- this .browser = browser;
120208
- this .rootElement = undefined;
120209
- this .canvasObserver = new MutationObserver (() => this .processCanvasMutation (browser));
120977
+ constructor (browser)
120978
+ {
120979
+ this .browser = browser;
120980
+ this .rootElement = undefined;
120981
+ this .canvasObserver = new MutationObserver (() => this .processCanvasMutation (browser));
120210
120982
 
120211
- this .canvasObserver .observe (browser .getElement () [0], {
120212
- childList: true,
120213
- });
120983
+ this .canvasObserver .observe (browser .getElement () [0], {
120984
+ childList: true,
120985
+ });
120214
120986
 
120215
- this .processCanvasMutation (browser)
120216
- }
120987
+ this .processCanvasMutation (browser)
120988
+ }
120217
120989
 
120218
- processCanvasMutation (browser)
120219
- {
120220
- this .processRootElement (browser, browser .getElement () .children ("X3D") .get (-1));
120221
- }
120990
+ processCanvasMutation (browser)
120991
+ {
120992
+ this .processRootElement (browser, browser .getElement () .children ("X3D") .get (-1));
120993
+ }
120222
120994
 
120223
- async processRootElement (browser, rootElement)
120224
- {
120225
- try
120226
- {
120227
- if (rootElement === this .rootElement)
120228
- return;
120995
+ async processRootElement (browser, rootElement)
120996
+ {
120997
+ try
120998
+ {
120999
+ if (rootElement === this .rootElement)
121000
+ return;
120229
121001
 
120230
- this .rootElement = rootElement;
121002
+ this .rootElement = rootElement;
120231
121003
 
120232
- if (rootElement)
120233
- {
120234
- // Display splash screen.
121004
+ if (rootElement)
121005
+ {
121006
+ // Display splash screen.
120235
121007
 
120236
- browser .setBrowserLoading (true);
120237
- browser .addLoadingObject (this);
121008
+ browser .setBrowserLoading (true);
121009
+ browser .addLoadingObject (this);
120238
121010
 
120239
- // Now also attached node property to each node element.
121011
+ // Now also attached node property to each node element.
120240
121012
 
120241
- const scene = browser .createScene ();
121013
+ const scene = browser .createScene ();
120242
121014
 
120243
- this .parser = new Parser_XMLParser (scene);
121015
+ this .parser = new Parser_XMLParser (scene);
120244
121016
 
120245
- this .parser .setInput (rootElement);
121017
+ this .parser .setInput (rootElement);
120246
121018
 
120247
- await new Promise (this .parser .parseIntoScene .bind (this .parser));
121019
+ await new Promise (this .parser .parseIntoScene .bind (this .parser));
120248
121020
 
120249
- browser .replaceWorld (scene);
121021
+ browser .replaceWorld (scene);
120250
121022
 
120251
- // Create an observer instance.
121023
+ // Create an observer instance.
120252
121024
 
120253
- this .observer = new MutationObserver (mutations =>
120254
- {
120255
- for (const mutation of mutations)
120256
- this .processMutation (mutation);
120257
- });
121025
+ this .observer = new MutationObserver (mutations =>
121026
+ {
121027
+ for (const mutation of mutations)
121028
+ this .processMutation (mutation);
121029
+ });
120258
121030
 
120259
- // Start observing, also catches inlined Inline elements.
121031
+ // Start observing, also catches inlined Inline elements.
120260
121032
 
120261
- this .observer .observe (rootElement, {
120262
- attributes: true,
120263
- childList: true,
120264
- characterData: false,
120265
- subtree: true,
120266
- attributeOldValue: true,
120267
- });
121033
+ this .observer .observe (rootElement, {
121034
+ attributes: true,
121035
+ childList: true,
121036
+ characterData: false,
121037
+ subtree: true,
121038
+ attributeOldValue: true,
121039
+ });
120268
121040
 
120269
- // Add Inline elements from initial scene, and connect to node events.
121041
+ // Add Inline elements from initial scene, and connect to node events.
120270
121042
 
120271
- this .processInlineElements (rootElement);
120272
- this .addEventDispatchersAll (rootElement);
121043
+ this .processInlineElements (rootElement);
121044
+ this .addEventDispatchersAll (rootElement);
120273
121045
 
120274
- browser .removeLoadingObject (this);
120275
- }
120276
- else
120277
- {
120278
- browser .replaceWorld (null);
120279
- }
120280
- }
120281
- catch (error)
120282
- {
120283
- console .error ("Error importing document:", error);
120284
- }
120285
- }
121046
+ browser .removeLoadingObject (this);
121047
+ }
121048
+ else
121049
+ {
121050
+ browser .replaceWorld (null);
121051
+ }
121052
+ }
121053
+ catch (error)
121054
+ {
121055
+ console .error ("Error importing document:", error);
121056
+ }
121057
+ }
120286
121058
 
120287
- processMutation (mutation)
120288
- {
120289
- switch (mutation .type)
120290
- {
120291
- case "attributes":
120292
- {
120293
- this .processAttribute (mutation, mutation .target);
120294
- break;
120295
- }
120296
- case "childList":
120297
- {
120298
- for (const node of mutation .addedNodes)
120299
- this .processAddedNode (node);
121059
+ processMutation (mutation)
121060
+ {
121061
+ switch (mutation .type)
121062
+ {
121063
+ case "attributes":
121064
+ {
121065
+ this .processAttribute (mutation, mutation .target);
121066
+ break;
121067
+ }
121068
+ case "childList":
121069
+ {
121070
+ for (const node of mutation .addedNodes)
121071
+ this .processAddedNode (node);
120300
121072
 
120301
- for (const node of mutation .removedNodes)
120302
- this .processRemovedNode (node);
121073
+ for (const node of mutation .removedNodes)
121074
+ this .processRemovedNode (node);
120303
121075
 
120304
- break;
120305
- }
120306
- }
120307
- }
121076
+ break;
121077
+ }
121078
+ }
121079
+ }
120308
121080
 
120309
- processAttribute (mutation, element)
120310
- {
120311
- const
120312
- parser = this .parser,
120313
- node = DOMIntegration_$.data (element, "node");
121081
+ processAttribute (mutation, element)
121082
+ {
121083
+ const
121084
+ parser = this .parser,
121085
+ node = DOMIntegration_$.data (element, "node");
120314
121086
 
120315
- if (node)
120316
- {
120317
- const
120318
- attributeName = mutation .attributeName,
120319
- attribute = element .attributes .getNamedItem (attributeName);
121087
+ if (node)
121088
+ {
121089
+ const
121090
+ attributeName = mutation .attributeName,
121091
+ attribute = element .attributes .getNamedItem (attributeName);
120320
121092
 
120321
- parser .nodeAttribute (attribute, node);
120322
- }
120323
- else
120324
- {
120325
- // Is an attribute of non-node child such as fieldValue (or ROUTE).
121093
+ parser .nodeAttribute (attribute, node);
121094
+ }
121095
+ else
121096
+ {
121097
+ // Is an attribute of non-node child such as fieldValue (or ROUTE).
120326
121098
 
120327
- const
120328
- parentNode = element .parentNode,
120329
- node = DOMIntegration_$.data (parentNode, "node");
121099
+ const
121100
+ parentNode = element .parentNode,
121101
+ node = DOMIntegration_$.data (parentNode, "node");
120330
121102
 
120331
- if (node)
120332
- {
120333
- parser .pushExecutionContext (node .getExecutionContext ());
120334
- parser .pushParent (node);
120335
- parser .childElement (element);
120336
- parser .popParent ();
120337
- parser .popExecutionContext ();
120338
- }
120339
- }
120340
- }
121103
+ if (node)
121104
+ {
121105
+ parser .pushExecutionContext (node .getExecutionContext ());
121106
+ parser .pushParent (node);
121107
+ parser .childElement (element);
121108
+ parser .popParent ();
121109
+ parser .popExecutionContext ();
121110
+ }
121111
+ }
121112
+ }
120341
121113
 
120342
- processAddedNode (element)
120343
- {
120344
- // Only process element nodes.
121114
+ processAddedNode (element)
121115
+ {
121116
+ // Only process element nodes.
120345
121117
 
120346
- if (element .nodeType !== Node .ELEMENT_NODE)
120347
- return;
121118
+ if (element .nodeType !== Node .ELEMENT_NODE)
121119
+ return;
120348
121120
 
120349
- if (element .nodeName === "X3D")
120350
- return;
121121
+ if (element .nodeName === "X3D")
121122
+ return;
120351
121123
 
120352
- if (DOMIntegration_$.data (element, "node"))
120353
- return;
121124
+ if (DOMIntegration_$.data (element, "node"))
121125
+ return;
120354
121126
 
120355
- const
120356
- parentNode = element .parentNode,
120357
- parser = this .parser;
121127
+ const
121128
+ parentNode = element .parentNode,
121129
+ parser = this .parser;
120358
121130
 
120359
- if (parentNode .nodeName .match (/^(?:Scene|SCENE)$/))
120360
- {
120361
- // Root scene or Inline scene.
121131
+ if (parentNode .nodeName .match (/^(?:Scene|SCENE)$/))
121132
+ {
121133
+ // Root scene or Inline scene.
120362
121134
 
120363
- const scene = DOMIntegration_$.data (parentNode, "node");
121135
+ const scene = DOMIntegration_$.data (parentNode, "node");
120364
121136
 
120365
- parser .pushExecutionContext (scene);
120366
- parser .childElement (element);
120367
- parser .popExecutionContext ();
120368
- }
120369
- else if (DOMIntegration_$.data (parentNode, "node"))
120370
- {
120371
- // Use parent's scene if non-root, works for Inline.
120372
-
120373
- const
120374
- node = DOMIntegration_$.data (parentNode, "node"),
120375
- executionContext = node .getExecutionContext ();
120376
-
120377
- parser .pushExecutionContext (executionContext);
120378
- parser .pushParent (node);
120379
- parser .childElement (element);
120380
- parser .popParent ();
120381
- parser .popExecutionContext ();
120382
- }
120383
- else
120384
- {
120385
- const scene = this .browser .currentScene;
121137
+ parser .pushExecutionContext (scene);
121138
+ parser .childElement (element);
121139
+ parser .popExecutionContext ();
121140
+ }
121141
+ else if (DOMIntegration_$.data (parentNode, "node"))
121142
+ {
121143
+ // Use parent's scene if non-root, works for Inline.
120386
121144
 
120387
- parser .pushExecutionContext (scene);
120388
- parser .childElement (element);
120389
- parser .popExecutionContext ();
120390
- }
121145
+ const
121146
+ node = DOMIntegration_$.data (parentNode, "node"),
121147
+ executionContext = node .getExecutionContext ();
120391
121148
 
120392
- // Now after creating nodes need to look again for Inline elements.
121149
+ parser .pushExecutionContext (executionContext);
121150
+ parser .pushParent (node);
121151
+ parser .childElement (element);
121152
+ parser .popParent ();
121153
+ parser .popExecutionContext ();
121154
+ }
121155
+ else
121156
+ {
121157
+ const scene = this .browser .currentScene;
120393
121158
 
120394
- this .processInlineElements (element);
121159
+ parser .pushExecutionContext (scene);
121160
+ parser .childElement (element);
121161
+ parser .popExecutionContext ();
121162
+ }
120395
121163
 
120396
- // Then attach event dispatchers.
121164
+ // Now after creating nodes need to look again for Inline elements.
120397
121165
 
120398
- this .addEventDispatchers (element);
120399
- this .addEventDispatchersAll (element);
120400
- }
121166
+ this .processInlineElements (element);
120401
121167
 
120402
- processRemovedNode (element)
120403
- {
120404
- // Works also for root nodes, as it has to be, since scene .rootNodes is effectively a MFNode in x-ite.
120405
- // Also removes ROUTE elements.
121168
+ // Then attach event dispatchers.
120406
121169
 
120407
- const node = DOMIntegration_$.data (element, "node");
121170
+ this .addEventDispatchers (element);
121171
+ this .addEventDispatchersAll (element);
121172
+ }
120408
121173
 
120409
- if (!node)
120410
- return;
121174
+ processRemovedNode (element)
121175
+ {
121176
+ // Works also for root nodes, as it has to be, since scene .rootNodes is effectively a MFNode in x-ite.
121177
+ // Also removes ROUTE elements.
120411
121178
 
120412
- node .dispose ();
121179
+ const node = DOMIntegration_$.data (element, "node");
120413
121180
 
120414
- DOMIntegration_$.data (element, "node", null);
120415
- }
121181
+ if (!node)
121182
+ return;
120416
121183
 
120417
- processInlineElements (element)
120418
- {
120419
- if (element .nodeName .match (/^(?:Inline|INLINE)$/))
120420
- this .processInlineElement (element);
121184
+ node .dispose ();
120421
121185
 
120422
- for (const inlineElement of element .querySelectorAll ("Inline"))
120423
- this .processInlineElement (inlineElement);
120424
- }
121186
+ DOMIntegration_$.data (element, "node", null);
121187
+ }
120425
121188
 
120426
- processInlineElement (element)
120427
- {
120428
- const node = DOMIntegration_$.data (element, "node");
121189
+ processInlineElements (element)
121190
+ {
121191
+ if (element .nodeName .match (/^(?:Inline|INLINE)$/))
121192
+ this .processInlineElement (element);
120429
121193
 
120430
- if (!node)
120431
- return;
121194
+ for (const inlineElement of element .querySelectorAll ("Inline"))
121195
+ this .processInlineElement (inlineElement);
121196
+ }
120432
121197
 
120433
- node ._loadState .addInterest ("appendInlineChildElement", this, element);
121198
+ processInlineElement (element)
121199
+ {
121200
+ const node = DOMIntegration_$.data (element, "node");
120434
121201
 
120435
- this .appendInlineChildElement (element);
120436
- }
121202
+ if (!node)
121203
+ return;
120437
121204
 
120438
- appendInlineChildElement (element)
120439
- {
120440
- const node = DOMIntegration_$.data (element, "node");
121205
+ node ._loadState .addInterest ("appendInlineChildElement", this, element);
120441
121206
 
120442
- switch (node .checkLoadState ())
120443
- {
120444
- case Base_X3DConstants .NOT_STARTED_STATE:
120445
- case Base_X3DConstants .FAILED_STATE:
120446
- {
120447
- // Remove all child nodes.
121207
+ this .appendInlineChildElement (element);
121208
+ }
120448
121209
 
120449
- while (element .firstChild)
120450
- element .removeChild (element .lastChild);
121210
+ appendInlineChildElement (element)
121211
+ {
121212
+ const node = DOMIntegration_$.data (element, "node");
120451
121213
 
120452
- break;
120453
- }
120454
- case Base_X3DConstants .COMPLETE_STATE:
120455
- {
120456
- // Remove all child nodes.
121214
+ switch (node .checkLoadState ())
121215
+ {
121216
+ case Base_X3DConstants .NOT_STARTED_STATE:
121217
+ case Base_X3DConstants .FAILED_STATE:
121218
+ {
121219
+ // Remove all child nodes.
120457
121220
 
120458
- while (element .firstChild)
120459
- element .removeChild (element .lastChild);
121221
+ while (element .firstChild)
121222
+ element .removeChild (element .lastChild);
120460
121223
 
120461
- // Add scene as child node of Inline element.
121224
+ break;
121225
+ }
121226
+ case Base_X3DConstants .COMPLETE_STATE:
121227
+ {
121228
+ // Remove all child nodes.
120462
121229
 
120463
- const X3DElement = DOMIntegration_$.data (node .getInternalScene (), "X3D");
121230
+ while (element .firstChild)
121231
+ element .removeChild (element .lastChild);
120464
121232
 
120465
- if (X3DElement)
120466
- element .appendChild (X3DElement);
121233
+ // Add scene as child node of Inline element.
120467
121234
 
120468
- // Add Inline elements, and connect to node events.
121235
+ const X3DElement = DOMIntegration_$.data (node .getInternalScene (), "X3D");
120469
121236
 
120470
- this .processInlineElements (X3DElement);
120471
- this .addEventDispatchersAll (X3DElement);
121237
+ if (X3DElement)
121238
+ element .appendChild (X3DElement);
120472
121239
 
120473
- break;
120474
- }
120475
- }
121240
+ // Add Inline elements, and connect to node events.
120476
121241
 
120477
- switch (node .checkLoadState ())
120478
- {
120479
- case Base_X3DConstants .COMPLETE_STATE:
120480
- {
120481
- const event = new CustomEvent ("load",
120482
- {
120483
- detail: { node: Fields_SFNodeCache .get (node) },
120484
- });
121242
+ this .processInlineElements (X3DElement);
121243
+ this .addEventDispatchersAll (X3DElement);
120485
121244
 
120486
- element .dispatchEvent (event);
120487
- break;
120488
- }
120489
- case Base_X3DConstants .FAILED_STATE:
120490
- {
120491
- const event = new CustomEvent ("error",
120492
- {
120493
- detail: { node: Fields_SFNodeCache .get (node) },
120494
- });
121245
+ break;
121246
+ }
121247
+ }
120495
121248
 
120496
- element .dispatchEvent (event);
120497
- break;
120498
- }
120499
- }
120500
- }
121249
+ switch (node .checkLoadState ())
121250
+ {
121251
+ case Base_X3DConstants .COMPLETE_STATE:
121252
+ {
121253
+ const event = new CustomEvent ("load",
121254
+ {
121255
+ detail: { node: Fields_SFNodeCache .get (node) },
121256
+ });
120501
121257
 
120502
- addEventDispatchersAll (element)
120503
- {
120504
- const childElements = element .querySelectorAll ("*");
121258
+ element .dispatchEvent (event);
121259
+ break;
121260
+ }
121261
+ case Base_X3DConstants .FAILED_STATE:
121262
+ {
121263
+ const event = new CustomEvent ("error",
121264
+ {
121265
+ detail: { node: Fields_SFNodeCache .get (node) },
121266
+ });
120505
121267
 
120506
- for (const childElement of childElements)
120507
- this .addEventDispatchers (childElement);
120508
- }
121268
+ element .dispatchEvent (event);
121269
+ break;
121270
+ }
121271
+ }
121272
+ }
120509
121273
 
120510
- addEventDispatchers (element)
120511
- {
120512
- // Check for USE nodes; they do not emit events.
121274
+ addEventDispatchersAll (element)
121275
+ {
121276
+ const childElements = element .querySelectorAll ("*");
120513
121277
 
120514
- if (element .nodeName === "ROUTE")
120515
- return;
121278
+ for (const childElement of childElements)
121279
+ this .addEventDispatchers (childElement);
121280
+ }
120516
121281
 
120517
- const node = DOMIntegration_$.data (element, "node");
121282
+ addEventDispatchers (element)
121283
+ {
121284
+ // Check for USE nodes; they do not emit events.
120518
121285
 
120519
- if (!node)
120520
- return;
121286
+ if (element .nodeName === "ROUTE")
121287
+ return;
120521
121288
 
120522
- for (const field of node .getPredefinedFields ())
120523
- this .bindFieldCallback (field, element);
121289
+ const node = DOMIntegration_$.data (element, "node");
120524
121290
 
120525
- for (const field of node .getUserDefinedFields ())
120526
- this .bindFieldCallback (field, element);
120527
- }
121291
+ if (!node)
121292
+ return;
120528
121293
 
120529
- bindFieldCallback (field, element)
120530
- {
120531
- if (!field .isOutput ())
120532
- return;
121294
+ for (const field of node .getPredefinedFields ())
121295
+ this .bindFieldCallback (field, element);
120533
121296
 
120534
- field .addInterest ("fieldCallback", this, element);
120535
- }
121297
+ for (const field of node .getUserDefinedFields ())
121298
+ this .bindFieldCallback (field, element);
121299
+ }
120536
121300
 
120537
- fieldCallback (element, field)
120538
- {
120539
- const node = DOMIntegration_$.data (element, "node");
121301
+ bindFieldCallback (field, element)
121302
+ {
121303
+ if (!field .isOutput ())
121304
+ return;
120540
121305
 
120541
- if (!node)
120542
- return;
121306
+ field .addInterest ("fieldCallback", this, element);
121307
+ }
120543
121308
 
120544
- const event = new CustomEvent (field .getName (),
120545
- {
120546
- detail: {
120547
- node: Fields_SFNodeCache .get (node),
120548
- value: field .valueOf (),
120549
- },
120550
- });
121309
+ fieldCallback (element, field)
121310
+ {
121311
+ const node = DOMIntegration_$.data (element, "node");
120551
121312
 
120552
- element .dispatchEvent (event);
120553
- }
121313
+ if (!node)
121314
+ return;
121315
+
121316
+ const event = new CustomEvent (field .getName (),
121317
+ {
121318
+ detail: {
121319
+ node: Fields_SFNodeCache .get (node),
121320
+ value: field .valueOf (),
121321
+ },
121322
+ });
121323
+
121324
+ element .dispatchEvent (event);
121325
+ }
120554
121326
  };
120555
121327
 
120556
121328
  const DOMIntegration_default_ = DOMIntegration;
@@ -121301,7 +122073,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
121301
122073
  x_ite_Namespace .add ("SupportedProfiles", "x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
121302
122074
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
121303
122075
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
121304
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(52);
122076
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(183);
121305
122077
  /*******************************************************************************
121306
122078
  *
121307
122079
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121754,6 +122526,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121754
122526
  return;
121755
122527
 
121756
122528
  loadCount .removeInterest ("checkLoadCount", this);
122529
+ this .touch (0, 0);
121757
122530
  this .setBrowserLoading (false);
121758
122531
  this .initialized () .set (this .getCurrentTime ());
121759
122532
  this .initialized () .processInterests ();
@@ -122392,7 +123165,7 @@ const X3DBrowser_default_ = X3DBrowser;
122392
123165
  x_ite_Namespace .add ("X3DBrowser", "x_ite/Browser/X3DBrowser", X3DBrowser_default_);
122393
123166
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
122394
123167
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
122395
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(52);
123168
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(183);
122396
123169
  /*******************************************************************************
122397
123170
  *
122398
123171
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122529,8 +123302,8 @@ const X3DCanvasElement_default_ = X3DCanvasElement;
122529
123302
  x_ite_Namespace .add ("X3DCanvasElement", "x_ite/X3DCanvasElement", X3DCanvasElement_default_);
122530
123303
  /* harmony default export */ const x_ite_X3DCanvasElement = (X3DCanvasElement_default_);
122531
123304
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
122532
- /* provided dependency */ var jquery_$ = __webpack_require__(52);
122533
- /* provided dependency */ var pako = __webpack_require__(776);
123305
+ /* provided dependency */ var jquery_$ = __webpack_require__(183);
123306
+ /* provided dependency */ var pako = __webpack_require__(935);
122534
123307
  Object .assign (jquery_$,
122535
123308
  {
122536
123309
  decodeText (input)
@@ -122607,14 +123380,14 @@ const jquery_default_ = jquery_$;
122607
123380
  x_ite_Namespace .add ("jquery", "lib/jquery", jquery_default_);
122608
123381
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
122609
123382
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
122610
- /* provided dependency */ var libtess_libtess = __webpack_require__(177);
123383
+ /* provided dependency */ var libtess_libtess = __webpack_require__(972);
122611
123384
  const libtess_default_ = libtess_libtess;
122612
123385
  ;
122613
123386
 
122614
123387
  x_ite_Namespace .add ("libtess", "lib/libtess", libtess_default_);
122615
123388
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
122616
123389
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
122617
- /* provided dependency */ var X3D_$ = __webpack_require__(52);
123390
+ /* provided dependency */ var X3D_$ = __webpack_require__(183);
122618
123391
  /*******************************************************************************
122619
123392
  *
122620
123393
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122922,7 +123695,7 @@ Object .assign (X3D,
122922
123695
 
122923
123696
  // Assign X3D to global namespace.
122924
123697
 
122925
- window [Symbol .for ("X_ITE.X3D-9.3.0")] = x_ite_X3D;
123698
+ window [Symbol .for ("X_ITE.X3D-9.3.2")] = x_ite_X3D;
122926
123699
 
122927
123700
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
122928
123701