x_ite 10.4.1 → 10.4.2

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (51) hide show
  1. package/README.md +4 -4
  2. package/dist/X3DUOM.xml +10 -0
  3. package/dist/assets/components/AnnotationComponent.js +2 -2
  4. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  5. package/dist/assets/components/CADGeometryComponent.js +2 -2
  6. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  7. package/dist/assets/components/CubeMapTexturingComponent.js +7 -7
  8. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  9. package/dist/assets/components/DISComponent.js +2 -2
  10. package/dist/assets/components/DISComponent.min.js +2 -2
  11. package/dist/assets/components/EventUtilitiesComponent.js +2 -2
  12. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  13. package/dist/assets/components/Geometry2DComponent.js +2 -2
  14. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  15. package/dist/assets/components/GeospatialComponent.js +2 -2
  16. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  17. package/dist/assets/components/HAnimComponent.js +2 -2
  18. package/dist/assets/components/HAnimComponent.min.js +2 -2
  19. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -2
  20. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  21. package/dist/assets/components/LayoutComponent.js +3 -3
  22. package/dist/assets/components/LayoutComponent.min.js +2 -2
  23. package/dist/assets/components/NURBSComponent.js +88 -76
  24. package/dist/assets/components/NURBSComponent.min.js +2 -2
  25. package/dist/assets/components/ParticleSystemsComponent.js +2 -2
  26. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  27. package/dist/assets/components/PickingComponent.js +2 -2
  28. package/dist/assets/components/PickingComponent.min.js +2 -2
  29. package/dist/assets/components/RigidBodyPhysicsComponent.js +2 -2
  30. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  31. package/dist/assets/components/ScriptingComponent.js +2 -2
  32. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  33. package/dist/assets/components/TextComponent.js +6 -8
  34. package/dist/assets/components/TextComponent.min.js +2 -2
  35. package/dist/assets/components/TextureProjectionComponent.js +14 -8
  36. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  37. package/dist/assets/components/Texturing3DComponent.js +16 -16
  38. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  39. package/dist/assets/components/VolumeRenderingComponent.js +2 -2
  40. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  41. package/dist/assets/components/X_ITEComponent.js +87 -54
  42. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  43. package/dist/example.html +1 -1
  44. package/dist/x_ite.css +1 -1
  45. package/dist/x_ite.d.ts +12 -0
  46. package/dist/x_ite.js +743 -877
  47. package/dist/x_ite.min.js +2 -2
  48. package/dist/x_ite.min.mjs +2 -2
  49. package/dist/x_ite.mjs +743 -877
  50. package/dist/x_ite.zip +0 -0
  51. package/package.json +3 -3
package/dist/x_ite.mjs CHANGED
@@ -1,10 +1,10 @@
1
- /* X_ITE v10.4.1 */
1
+ /* X_ITE v10.4.2 */
2
2
  var __webpack_modules__ = ({
3
3
 
4
- /***/ 74:
4
+ /***/ 123:
5
5
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
6
6
 
7
- /* provided dependency */ var jQuery = __webpack_require__(362);
7
+ /* provided dependency */ var jQuery = __webpack_require__(375);
8
8
  /**
9
9
  * @preserve jquery.fullscreen 1.1.5
10
10
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -200,7 +200,7 @@ installFullScreenHandlers();
200
200
 
201
201
  /***/ }),
202
202
 
203
- /***/ 48:
203
+ /***/ 415:
204
204
  /***/ ((module, exports, __webpack_require__) => {
205
205
 
206
206
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -214,7 +214,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
214
214
  (function (factory) {
215
215
  if ( true ) {
216
216
  // AMD. Register as an anonymous module.
217
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(362)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
217
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(375)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
218
218
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
219
219
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
220
220
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -425,7 +425,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
425
425
 
426
426
  /***/ }),
427
427
 
428
- /***/ 362:
428
+ /***/ 375:
429
429
  /***/ (function(module, exports) {
430
430
 
431
431
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11149,7 +11149,7 @@ return jQuery;
11149
11149
 
11150
11150
  /***/ }),
11151
11151
 
11152
- /***/ 555:
11152
+ /***/ 660:
11153
11153
  /***/ ((module) => {
11154
11154
 
11155
11155
  /**
@@ -15928,7 +15928,7 @@ if (true) {
15928
15928
 
15929
15929
  /***/ }),
15930
15930
 
15931
- /***/ 82:
15931
+ /***/ 671:
15932
15932
  /***/ (function(__unused_webpack_module, exports) {
15933
15933
 
15934
15934
 
@@ -19173,7 +19173,7 @@ if (true) {
19173
19173
 
19174
19174
  /***/ }),
19175
19175
 
19176
- /***/ 229:
19176
+ /***/ 776:
19177
19177
  /***/ (function(module, exports) {
19178
19178
 
19179
19179
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20297,7 +20297,7 @@ Object .defineProperty (Namespace, "add",
20297
20297
  return module;
20298
20298
  }
20299
20299
 
20300
- const X3D = window [Symbol .for ("X_ITE.X3D-10.4.1")];
20300
+ const X3D = window [Symbol .for ("X_ITE.X3D-10.4.2")];
20301
20301
 
20302
20302
  if (X3D)
20303
20303
  X3D [name] = module;
@@ -20857,37 +20857,10 @@ function Generator ({ style = "TIDY", indent = "", precision = 7, doublePrecisio
20857
20857
  this .html = html;
20858
20858
  this .closingTags = html || closingTags;
20859
20859
 
20860
- this .floatFormat = new Intl .NumberFormat ("en",
20861
- {
20862
- notation: "standard",
20863
- maximumSignificantDigits: this .precision,
20864
- useGrouping: false,
20865
- })
20866
- .format;
20867
-
20868
- this .floatExponentialFormat = new Intl .NumberFormat ("en",
20869
- {
20870
- notation: "scientific",
20871
- maximumSignificantDigits: this .precision,
20872
- useGrouping: false,
20873
- })
20874
- .format;
20875
-
20876
- this .doubleFormat = new Intl .NumberFormat ("en",
20877
- {
20878
- notation: "standard",
20879
- maximumSignificantDigits: this .doublePrecision,
20880
- useGrouping: false,
20881
- })
20882
- .format;
20883
-
20884
- this .doubleExponentialFormat = new Intl .NumberFormat ("en",
20885
- {
20886
- notation: "scientific",
20887
- maximumSignificantDigits: this .doublePrecision,
20888
- useGrouping: false,
20889
- })
20890
- .format;
20860
+ this .floatFormat = this .createFloatFormat (this .precision);
20861
+ this .floatExponentialFormat = this .createFloatExponentialFormat (this .precision);
20862
+ this .doubleFormat = this .createFloatFormat (this .doublePrecision);
20863
+ this .doubleExponentialFormat = this .createFloatExponentialFormat (this .doublePrecision);
20891
20864
 
20892
20865
  this .Style (style);
20893
20866
 
@@ -21034,6 +21007,26 @@ Object .assign (Generator .prototype,
21034
21007
 
21035
21008
  return "";
21036
21009
  },
21010
+ createFloatFormat (precision)
21011
+ {
21012
+ return new Intl .NumberFormat ("en",
21013
+ {
21014
+ notation: "standard",
21015
+ maximumSignificantDigits: precision,
21016
+ useGrouping: false,
21017
+ })
21018
+ .format;
21019
+ },
21020
+ createFloatExponentialFormat (precision)
21021
+ {
21022
+ return new Intl .NumberFormat ("en",
21023
+ {
21024
+ notation: "scientific",
21025
+ maximumSignificantDigits: precision,
21026
+ useGrouping: false,
21027
+ })
21028
+ .format;
21029
+ },
21037
21030
  FloatFormat (value)
21038
21031
  {
21039
21032
  if (Number .isFinite (value))
@@ -24685,7 +24678,7 @@ const SFInt32_default_ = SFInt32;
24685
24678
 
24686
24679
 
24687
24680
 
24688
- function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double)
24681
+ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double, properties = { })
24689
24682
  {
24690
24683
  const _formatter = double ? "DoubleFormat" : "FloatFormat";
24691
24684
 
@@ -24698,7 +24691,7 @@ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double)
24698
24691
  },
24699
24692
  });
24700
24693
 
24701
- return Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
24694
+ Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
24702
24695
  {
24703
24696
  *[Symbol .iterator] ()
24704
24697
  {
@@ -24858,7 +24851,33 @@ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double)
24858
24851
 
24859
24852
  generator .string += generator .JSONNumber (generator [_formatter] (value [last]));
24860
24853
  },
24861
- });
24854
+ },
24855
+ properties);
24856
+
24857
+ for (const key of Object .keys (Constructor .prototype))
24858
+ Object .defineProperty (Constructor .prototype, key, { enumerable: false });
24859
+
24860
+ function defineProperty (i)
24861
+ {
24862
+ Object .defineProperty (Constructor .prototype, i,
24863
+ {
24864
+ get ()
24865
+ {
24866
+ return this .getValue () [i];
24867
+ },
24868
+ set (value)
24869
+ {
24870
+ this .getValue () [i] = value;
24871
+ this .addEvent ();
24872
+ },
24873
+ enumerable: true,
24874
+ });
24875
+ }
24876
+
24877
+ for (let i = 0; i < Matrix .prototype .length; ++ i)
24878
+ defineProperty (i);
24879
+
24880
+ return Constructor;
24862
24881
  }
24863
24882
 
24864
24883
  const SFMatrixPrototypeTemplate_default_ = SFMatrixPrototypeTemplate;
@@ -26609,8 +26628,8 @@ function SFMatrix3Template (TypeName, double)
26609
26628
  r2 = arguments [2];
26610
26629
 
26611
26630
  Base_X3DField .call (this, new Numbers_Matrix3 (r0 .x, r0 .y, r0 .z,
26612
- r1 .x, r1 .y, r1 .z,
26613
- r2 .x, r2 .y, r2 .z));
26631
+ r1 .x, r1 .y, r1 .z,
26632
+ r2 .x, r2 .y, r2 .z));
26614
26633
 
26615
26634
  break;
26616
26635
  }
@@ -26627,7 +26646,7 @@ function SFMatrix3Template (TypeName, double)
26627
26646
  }
26628
26647
  }
26629
26648
 
26630
- Object .assign (Fields_SFMatrixPrototypeTemplate (SFMatrix3, TypeName, Numbers_Matrix3, double),
26649
+ return Fields_SFMatrixPrototypeTemplate (SFMatrix3, TypeName, Numbers_Matrix3, double,
26631
26650
  {
26632
26651
  setTransform: (function ()
26633
26652
  {
@@ -26651,31 +26670,6 @@ function SFMatrix3Template (TypeName, double)
26651
26670
  };
26652
26671
  })(),
26653
26672
  });
26654
-
26655
- for (const key of Object .keys (SFMatrix3 .prototype))
26656
- Object .defineProperty (SFMatrix3 .prototype, key, { enumerable: false });
26657
-
26658
- function defineProperty (i)
26659
- {
26660
- Object .defineProperty (SFMatrix3 .prototype, i,
26661
- {
26662
- get ()
26663
- {
26664
- return this .getValue () [i];
26665
- },
26666
- set (value)
26667
- {
26668
- this .getValue () [i] = +value;
26669
- this .addEvent ();
26670
- },
26671
- enumerable: true,
26672
- });
26673
- }
26674
-
26675
- for (let i = 0, length = Numbers_Matrix3 .prototype .length; i < length; ++ i)
26676
- defineProperty (i);
26677
-
26678
- return SFMatrix3;
26679
26673
  }
26680
26674
 
26681
26675
  const SFMatrix3 = {
@@ -29044,9 +29038,9 @@ function SFMatrix4Template (TypeName, double)
29044
29038
  r3 = arguments [3];
29045
29039
 
29046
29040
  Base_X3DField .call (this, new Numbers_Matrix4 (r0 .x, r0 .y, r0 .z, r0 .w,
29047
- r1 .x, r1 .y, r1 .z, r1 .w,
29048
- r2 .x, r2 .y, r2 .z, r2 .w,
29049
- r3 .x, r3 .y, r3 .z, r3 .w));
29041
+ r1 .x, r1 .y, r1 .z, r1 .w,
29042
+ r2 .x, r2 .y, r2 .z, r2 .w,
29043
+ r3 .x, r3 .y, r3 .z, r3 .w));
29050
29044
 
29051
29045
  break;
29052
29046
  }
@@ -29064,32 +29058,7 @@ function SFMatrix4Template (TypeName, double)
29064
29058
  }
29065
29059
  }
29066
29060
 
29067
- Fields_SFMatrixPrototypeTemplate (SFMatrix4, TypeName, Numbers_Matrix4, double);
29068
-
29069
- for (const key of Object .keys (SFMatrix4 .prototype))
29070
- Object .defineProperty (SFMatrix4 .prototype, key, { enumerable: false });
29071
-
29072
- function defineProperty (i)
29073
- {
29074
- Object .defineProperty (SFMatrix4 .prototype, i,
29075
- {
29076
- get ()
29077
- {
29078
- return this .getValue () [i];
29079
- },
29080
- set (value)
29081
- {
29082
- this .getValue () [i] = value;
29083
- this .addEvent ();
29084
- },
29085
- enumerable: true,
29086
- });
29087
- }
29088
-
29089
- for (let i = 0, length = Numbers_Matrix4 .prototype .length; i < length; ++ i)
29090
- defineProperty (i);
29091
-
29092
- return SFMatrix4;
29061
+ return Fields_SFMatrixPrototypeTemplate (SFMatrix4, TypeName, Numbers_Matrix4, double);
29093
29062
  }
29094
29063
 
29095
29064
  const SFMatrix4 = {
@@ -29724,7 +29693,7 @@ const SFNode_default_ = SFNode;
29724
29693
 
29725
29694
 
29726
29695
 
29727
- function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double)
29696
+ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double, properties = { })
29728
29697
  {
29729
29698
  const _formatter = double ? "DoubleFormat" : "FloatFormat";
29730
29699
 
@@ -29737,7 +29706,7 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double)
29737
29706
  },
29738
29707
  });
29739
29708
 
29740
- return Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
29709
+ Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
29741
29710
  {
29742
29711
  *[Symbol .iterator] ()
29743
29712
  {
@@ -29872,7 +29841,80 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double)
29872
29841
 
29873
29842
  generator .string += generator .JSONNumber (generator [_formatter] (generator .ToUnit (category, value [last])));
29874
29843
  },
29875
- });
29844
+ },
29845
+ properties);
29846
+
29847
+ for (const key of Object .keys (Constructor .prototype))
29848
+ Object .defineProperty (Constructor .prototype, key, { enumerable: false });
29849
+
29850
+ const x = {
29851
+ get ()
29852
+ {
29853
+ return this .getValue () .x;
29854
+ },
29855
+ set (value)
29856
+ {
29857
+ this .getValue () .x = +value;
29858
+ this .addEvent ();
29859
+ },
29860
+ };
29861
+
29862
+ const y = {
29863
+ get ()
29864
+ {
29865
+ return this .getValue () .y;
29866
+ },
29867
+ set (value)
29868
+ {
29869
+ this .getValue () .y = +value;
29870
+ this .addEvent ();
29871
+ },
29872
+ };
29873
+
29874
+ const z = {
29875
+ get ()
29876
+ {
29877
+ return this .getValue () .z;
29878
+ },
29879
+ set (value)
29880
+ {
29881
+ this .getValue () .z = +value;
29882
+ this .addEvent ();
29883
+ },
29884
+ };
29885
+
29886
+ const w = {
29887
+ get ()
29888
+ {
29889
+ return this .getValue () .w;
29890
+ },
29891
+ set (value)
29892
+ {
29893
+ this .getValue () .w = +value;
29894
+ this .addEvent ();
29895
+ },
29896
+ };
29897
+
29898
+ const indices = [
29899
+ [0, x],
29900
+ [1, y],
29901
+ [2, z],
29902
+ [3, w],
29903
+ ];
29904
+
29905
+ const props = [
29906
+ ["x", Object .assign ({ enumerable: true }, x)],
29907
+ ["y", Object .assign ({ enumerable: true }, y)],
29908
+ ["z", Object .assign ({ enumerable: true }, z)],
29909
+ ["w", Object .assign ({ enumerable: true }, w)],
29910
+ ];
29911
+
29912
+ indices .length = Vector .prototype .length;
29913
+ props .length = Vector .prototype .length;
29914
+
29915
+ Object .defineProperties (Constructor .prototype, Object .fromEntries (indices .concat (props)));
29916
+
29917
+ return Constructor;
29876
29918
  }
29877
29919
 
29878
29920
  const SFVecPrototypeTemplate_default_ = SFVecPrototypeTemplate;
@@ -29954,64 +29996,13 @@ function SFVec3Template (TypeName, double)
29954
29996
  }
29955
29997
  }
29956
29998
 
29957
- Object .assign (Fields_SFVecPrototypeTemplate (SFVec3, TypeName, Numbers_Vector3, double),
29999
+ return Fields_SFVecPrototypeTemplate (SFVec3, TypeName, Numbers_Vector3, double,
29958
30000
  {
29959
30001
  cross (vector)
29960
30002
  {
29961
30003
  return new (this .constructor) (this .getValue () .copy () .cross (vector .getValue ()));
29962
30004
  },
29963
30005
  });
29964
-
29965
- for (const key of Object .keys (SFVec3 .prototype))
29966
- Object .defineProperty (SFVec3 .prototype, key, { enumerable: false });
29967
-
29968
- const x = {
29969
- get ()
29970
- {
29971
- return this .getValue () .x;
29972
- },
29973
- set (value)
29974
- {
29975
- this .getValue () .x = +value;
29976
- this .addEvent ();
29977
- },
29978
- };
29979
-
29980
- const y = {
29981
- get ()
29982
- {
29983
- return this .getValue () .y;
29984
- },
29985
- set (value)
29986
- {
29987
- this .getValue () .y = +value;
29988
- this .addEvent ();
29989
- },
29990
- };
29991
-
29992
- const z = {
29993
- get ()
29994
- {
29995
- return this .getValue () .z;
29996
- },
29997
- set (value)
29998
- {
29999
- this .getValue () .z = +value;
30000
- this .addEvent ();
30001
- },
30002
- };
30003
-
30004
- Object .defineProperties (SFVec3 .prototype,
30005
- {
30006
- 0: x,
30007
- 1: y,
30008
- 2: z,
30009
- x: Object .assign ({ enumerable: true }, x),
30010
- y: Object .assign ({ enumerable: true }, y),
30011
- z: Object .assign ({ enumerable: true }, z),
30012
- });
30013
-
30014
- return SFVec3;
30015
30006
  }
30016
30007
 
30017
30008
  const SFVec3 = {
@@ -30647,44 +30638,7 @@ function SFVec2Template (TypeName, double)
30647
30638
  }
30648
30639
  }
30649
30640
 
30650
- Fields_SFVecPrototypeTemplate (SFVec2, TypeName, Numbers_Vector2, double);
30651
-
30652
- for (const key of Object .keys (SFVec2 .prototype))
30653
- Object .defineProperty (SFVec2 .prototype, key, { enumerable: false });
30654
-
30655
- const x = {
30656
- get ()
30657
- {
30658
- return this .getValue () .x;
30659
- },
30660
- set (value)
30661
- {
30662
- this .getValue () .x = +value;
30663
- this .addEvent ();
30664
- },
30665
- };
30666
-
30667
- const y = {
30668
- get ()
30669
- {
30670
- return this .getValue () .y;
30671
- },
30672
- set (value)
30673
- {
30674
- this .getValue () .y = +value;
30675
- this .addEvent ();
30676
- },
30677
- };
30678
-
30679
- Object .defineProperties (SFVec2 .prototype,
30680
- {
30681
- 0: x,
30682
- 1: y,
30683
- x: Object .assign ({ enumerable: true }, x),
30684
- y: Object .assign ({ enumerable: true }, y),
30685
- });
30686
-
30687
- return SFVec2;
30641
+ return Fields_SFVecPrototypeTemplate (SFVec2, TypeName, Numbers_Vector2, double);
30688
30642
  }
30689
30643
 
30690
30644
  const SFVec2 = {
@@ -30771,72 +30725,7 @@ function SFVec4Template (TypeName, double)
30771
30725
  }
30772
30726
  }
30773
30727
 
30774
- Fields_SFVecPrototypeTemplate (SFVec4, TypeName, Numbers_Vector4, double);
30775
-
30776
- for (const key of Object .keys (SFVec4 .prototype))
30777
- Object .defineProperty (SFVec4 .prototype, key, { enumerable: false });
30778
-
30779
- const x = {
30780
- get ()
30781
- {
30782
- return this .getValue () .x;
30783
- },
30784
- set (value)
30785
- {
30786
- this .getValue () .x = +value;
30787
- this .addEvent ();
30788
- },
30789
- };
30790
-
30791
- const y = {
30792
- get ()
30793
- {
30794
- return this .getValue () .y;
30795
- },
30796
- set (value)
30797
- {
30798
- this .getValue () .y = +value;
30799
- this .addEvent ();
30800
- },
30801
- };
30802
-
30803
- const z = {
30804
- get ()
30805
- {
30806
- return this .getValue () .z;
30807
- },
30808
- set (value)
30809
- {
30810
- this .getValue () .z = +value;
30811
- this .addEvent ();
30812
- },
30813
- };
30814
-
30815
- const w = {
30816
- get ()
30817
- {
30818
- return this .getValue () .w;
30819
- },
30820
- set (value)
30821
- {
30822
- this .getValue () .w = +value;
30823
- this .addEvent ();
30824
- },
30825
- };
30826
-
30827
- Object .defineProperties (SFVec4 .prototype,
30828
- {
30829
- 0: x,
30830
- 1: y,
30831
- 2: z,
30832
- 3: w,
30833
- x: Object .assign ({ enumerable: true }, x),
30834
- y: Object .assign ({ enumerable: true }, y),
30835
- z: Object .assign ({ enumerable: true }, z),
30836
- w: Object .assign ({ enumerable: true }, w),
30837
- });
30838
-
30839
- return SFVec4;
30728
+ return Fields_SFVecPrototypeTemplate (SFVec4, TypeName, Numbers_Vector4, double);
30840
30729
  }
30841
30730
 
30842
30731
  const SFVec4 = {
@@ -34244,7 +34133,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34244
34133
 
34245
34134
  /* harmony default export */ const Base_X3DBaseNode = (x_ite_Namespace .add ("X3DBaseNode", X3DBaseNode_default_));
34246
34135
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34247
- /* provided dependency */ var $ = __webpack_require__(362);
34136
+ /* provided dependency */ var $ = __webpack_require__(375);
34248
34137
  /*******************************************************************************
34249
34138
  *
34250
34139
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34380,7 +34269,7 @@ const Legacy_default_ = Legacy;
34380
34269
  *
34381
34270
  ******************************************************************************/
34382
34271
 
34383
- const BROWSER_VERSION_default_ = "10.4.1";
34272
+ const BROWSER_VERSION_default_ = "10.4.2";
34384
34273
  ;
34385
34274
 
34386
34275
  /* harmony default export */ const BROWSER_VERSION = (x_ite_Namespace .add ("BROWSER_VERSION", BROWSER_VERSION_default_));
@@ -35167,7 +35056,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35167
35056
 
35168
35057
  for (const reference of field .getReferences ())
35169
35058
  {
35170
- initializableReference = initializableReference || reference .isInitializable ();
35059
+ initializableReference ||= reference .isInitializable ();
35171
35060
 
35172
35061
  // Output user defined reference field
35173
35062
 
@@ -35230,7 +35119,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35230
35119
 
35231
35120
  for (const reference of field .getReferences ())
35232
35121
  {
35233
- initializableReference = initializableReference || reference .isInitializable ();
35122
+ initializableReference ||= reference .isInitializable ();
35234
35123
 
35235
35124
  // Output build in reference field
35236
35125
 
@@ -37405,7 +37294,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37405
37294
 
37406
37295
  /* harmony default export */ const Core_X3DBindableNode = (x_ite_Namespace .add ("X3DBindableNode", X3DBindableNode_default_));
37407
37296
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
37408
- /* provided dependency */ var libtess = __webpack_require__(555);
37297
+ /* provided dependency */ var libtess = __webpack_require__(660);
37409
37298
  /*******************************************************************************
37410
37299
  *
37411
37300
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39943,7 +39832,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
39943
39832
 
39944
39833
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (x_ite_Namespace .add ("X3DProtoDeclaration", X3DProtoDeclaration_default_));
39945
39834
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
39946
- /* provided dependency */ var X3DParser_$ = __webpack_require__(362);
39835
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(375);
39947
39836
  /*******************************************************************************
39948
39837
  *
39949
39838
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -40157,39 +40046,38 @@ const X3DParser_default_ = X3DParser;
40157
40046
  *
40158
40047
  ******************************************************************************/
40159
40048
 
40160
- function parse (parser)
40049
+ const functions =
40161
40050
  {
40162
- this .lastIndex = parser .lastIndex;
40163
-
40164
- parser .result = this .exec (parser .input);
40165
-
40166
- if (parser .result)
40051
+ parse (parser)
40167
40052
  {
40168
- parser .lastIndex = this .lastIndex;
40169
- return true;
40170
- }
40053
+ this .lastIndex = parser .lastIndex;
40171
40054
 
40172
- return false;
40173
- }
40055
+ parser .result = this .exec (parser .input);
40174
40056
 
40175
- function lookahead (parser)
40176
- {
40177
- const
40178
- lastIndex = parser .lastIndex,
40179
- result = this .parse (parser);
40057
+ if (parser .result)
40058
+ {
40059
+ parser .lastIndex = this .lastIndex;
40060
+ return true;
40061
+ }
40062
+
40063
+ return false;
40064
+ },
40065
+ lookahead (parser)
40066
+ {
40067
+ const
40068
+ lastIndex = parser .lastIndex,
40069
+ result = this .parse (parser);
40180
40070
 
40181
- parser .lastIndex = lastIndex;
40071
+ parser .lastIndex = lastIndex;
40182
40072
 
40183
- return result;
40184
- }
40073
+ return result;
40074
+ },
40075
+ };
40185
40076
 
40186
40077
  function Expressions (Grammar)
40187
40078
  {
40188
40079
  for (const value of Object .values (Grammar))
40189
- {
40190
- value .parse = parse;
40191
- value .lookahead = lookahead;
40192
- }
40080
+ Object .assign (value, functions);
40193
40081
 
40194
40082
  return Grammar;
40195
40083
  }
@@ -40199,7 +40087,7 @@ const Expressions_default_ = Expressions;
40199
40087
 
40200
40088
  /* harmony default export */ const Parser_Expressions = (x_ite_Namespace .add ("Expressions", Expressions_default_));
40201
40089
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
40202
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(362);
40090
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(375);
40203
40091
  /*******************************************************************************
40204
40092
  *
40205
40093
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42898,7 +42786,7 @@ const VRMLParser_default_ = VRMLParser;
42898
42786
 
42899
42787
  /* harmony default export */ const Parser_VRMLParser = (x_ite_Namespace .add ("VRMLParser", VRMLParser_default_));
42900
42788
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
42901
- /* provided dependency */ var XMLParser_$ = __webpack_require__(362);
42789
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(375);
42902
42790
  /*******************************************************************************
42903
42791
  *
42904
42792
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45071,7 +44959,7 @@ const URLs_default_ = URLs;
45071
44959
 
45072
44960
  /* harmony default export */ const Networking_URLs = (x_ite_Namespace .add ("URLs", URLs_default_));
45073
44961
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
45074
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(362);
44962
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(375);
45075
44963
  /*******************************************************************************
45076
44964
  *
45077
44965
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48715,7 +48603,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
48715
48603
 
48716
48604
  /* harmony default export */ const Parser_GLTF2Parser = (x_ite_Namespace .add ("GLTF2Parser", GLTF2Parser_default_));
48717
48605
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
48718
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(362);
48606
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(375);
48719
48607
  /*******************************************************************************
48720
48608
  *
48721
48609
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48866,7 +48754,7 @@ const GLB2Parser_default_ = GLB2Parser;
48866
48754
 
48867
48755
  /* harmony default export */ const Parser_GLB2Parser = (x_ite_Namespace .add ("GLB2Parser", GLB2Parser_default_));
48868
48756
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
48869
- /* provided dependency */ var OBJParser_$ = __webpack_require__(362);
48757
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(375);
48870
48758
  /*******************************************************************************
48871
48759
  *
48872
48760
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52131,70 +52019,76 @@ const Bezier_default_ = Bezier;
52131
52019
  *
52132
52020
  ******************************************************************************/
52133
52021
 
52134
- function MatrixStack (Type)
52022
+ class MatrixStack extends Array
52135
52023
  {
52136
- return Object .assign ([ new Type () ],
52024
+ #top = 0;
52025
+
52026
+ constructor (Type)
52137
52027
  {
52138
- top: 0,
52139
- set (matrix)
52140
- {
52141
- this [this .top] .assign (matrix);
52142
- },
52143
- get ()
52144
- {
52145
- return this [this .top];
52146
- },
52147
- push ()
52148
- {
52149
- const top = ++ this .top;
52028
+ super ();
52150
52029
 
52151
- if (top < this .length)
52152
- this [top] .assign (this [top - 1]);
52153
- else
52154
- this [top] = this [top - 1] .copy ();
52155
- },
52156
- pushMatrix (matrix)
52157
- {
52158
- const top = ++ this .top;
52030
+ this .push (new Type ());
52031
+ }
52159
52032
 
52160
- if (top < this .length)
52161
- this [top] .assign (matrix);
52162
- else
52163
- this [top] = matrix .copy ();
52164
- },
52165
- pop ()
52166
- {
52167
- -- this .top;
52168
- },
52169
- clear ()
52170
- {
52171
- this .top = 0;
52172
- },
52173
- size ()
52174
- {
52175
- return this .top + 1;
52176
- },
52177
- identity ()
52178
- {
52179
- this [this .top] .identity ();
52180
- },
52181
- multLeft (matrix)
52182
- {
52183
- this [this .top] .multLeft (matrix);
52184
- },
52185
- translate (vector)
52186
- {
52187
- this [this .top] .translate (vector);
52188
- },
52189
- rotate (rotation)
52190
- {
52191
- this [this .top] .rotate (rotation);
52192
- },
52193
- scale (vector)
52194
- {
52195
- this [this .top] .scale (vector);
52196
- },
52197
- });
52033
+ set (matrix)
52034
+ {
52035
+ this [this .#top] .assign (matrix);
52036
+ }
52037
+
52038
+ get ()
52039
+ {
52040
+ return this [this .#top];
52041
+ }
52042
+
52043
+ push (matrix = this [this .#top])
52044
+ {
52045
+ const top = ++ this .#top;
52046
+
52047
+ if (top < this .length)
52048
+ this [top] .assign (matrix);
52049
+ else
52050
+ this [top] = matrix .copy ();
52051
+ }
52052
+
52053
+ pop ()
52054
+ {
52055
+ -- this .#top;
52056
+ }
52057
+
52058
+ clear ()
52059
+ {
52060
+ this .#top = 0;
52061
+ }
52062
+
52063
+ size ()
52064
+ {
52065
+ return this .#top + 1;
52066
+ }
52067
+
52068
+ identity ()
52069
+ {
52070
+ this [this .#top] .identity ();
52071
+ }
52072
+
52073
+ multLeft (matrix)
52074
+ {
52075
+ this [this .#top] .multLeft (matrix);
52076
+ }
52077
+
52078
+ translate (vector)
52079
+ {
52080
+ this [this .#top] .translate (vector);
52081
+ }
52082
+
52083
+ rotate (rotation)
52084
+ {
52085
+ this [this .#top] .rotate (rotation);
52086
+ }
52087
+
52088
+ scale (vector)
52089
+ {
52090
+ this [this .#top] .scale (vector);
52091
+ }
52198
52092
  }
52199
52093
 
52200
52094
  const MatrixStack_default_ = MatrixStack;
@@ -52202,8 +52096,8 @@ const MatrixStack_default_ = MatrixStack;
52202
52096
 
52203
52097
  /* harmony default export */ const Utility_MatrixStack = (x_ite_Namespace .add ("MatrixStack", MatrixStack_default_));
52204
52098
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52205
- /* provided dependency */ var SVGParser_$ = __webpack_require__(362);
52206
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(555);
52099
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(375);
52100
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(660);
52207
52101
  /*******************************************************************************
52208
52102
  *
52209
52103
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54973,7 +54867,7 @@ const SVGParser_default_ = SVGParser;
54973
54867
 
54974
54868
  /* harmony default export */ const Parser_SVGParser = (x_ite_Namespace .add ("SVGParser", SVGParser_default_));
54975
54869
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
54976
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(362);
54870
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(375);
54977
54871
  /*******************************************************************************
54978
54872
  *
54979
54873
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -55405,55 +55299,20 @@ const Plane3_default_ = Plane3;
55405
55299
  * p0 -------- p1 near plane
55406
55300
  */
55407
55301
 
55408
- function ViewVolume (projectionMatrix, viewport, scissor)
55302
+ function ViewVolume (... args)
55409
55303
  {
55410
55304
  this .viewport = new Numbers_Vector4 ();
55411
55305
  this .scissor = new Numbers_Vector4 ();
55412
55306
 
55413
- this .points = [
55414
- new Numbers_Vector3 (),
55415
- new Numbers_Vector3 (),
55416
- new Numbers_Vector3 (),
55417
- new Numbers_Vector3 (),
55418
-
55419
- new Numbers_Vector3 (),
55420
- new Numbers_Vector3 (),
55421
- new Numbers_Vector3 (),
55422
- new Numbers_Vector3 (),
55423
- ];
55424
-
55425
- this .normals = [
55426
- new Numbers_Vector3 (), // front
55427
- new Numbers_Vector3 (), // left
55428
- new Numbers_Vector3 (), // right
55429
- new Numbers_Vector3 (), // top
55430
- new Numbers_Vector3 (), // bottom
55431
- new Numbers_Vector3 (), // back
55432
- ];
55433
-
55434
- this .edges = [
55435
- new Numbers_Vector3 (),
55436
- new Numbers_Vector3 (),
55437
- new Numbers_Vector3 (),
55438
- new Numbers_Vector3 (),
55439
-
55440
- new Numbers_Vector3 (),
55441
- new Numbers_Vector3 (),
55442
- new Numbers_Vector3 (),
55443
- new Numbers_Vector3 (),
55444
- ];
55307
+ this .points = Array .from ({ length: 8 }, () => new Numbers_Vector3 ());
55308
+ // front, left, right, top, bottom, back
55309
+ this .normals = Array .from ({ length: 6 }, () => new Numbers_Vector3 ());
55310
+ this .edges = Array .from ({ length: 8 }, () => new Numbers_Vector3 ());
55311
+ // front, left, right, top, bottom, back
55312
+ this .planes = Array .from ({ length: 6 }, () => new Geometry_Plane3 ());
55445
55313
 
55446
- this .planes = [
55447
- new Geometry_Plane3 (), // front
55448
- new Geometry_Plane3 (), // left
55449
- new Geometry_Plane3 (), // right
55450
- new Geometry_Plane3 (), // top
55451
- new Geometry_Plane3 (), // bottom
55452
- new Geometry_Plane3 (), // back
55453
- ];
55454
-
55455
- if (arguments .length)
55456
- this .set (projectionMatrix, viewport, scissor);
55314
+ if (args .length)
55315
+ this .set (... args);
55457
55316
  }
55458
55317
 
55459
55318
  Object .assign (ViewVolume .prototype,
@@ -55546,58 +55405,21 @@ Object .assign (ViewVolume .prototype,
55546
55405
  },
55547
55406
  intersectsSphere (radius, center)
55548
55407
  {
55549
- const [p0, p1 ,p2, p3, p4, p5, p6, p7] = this .planes;
55550
-
55551
- if (p0 .getDistanceToPoint (center) > radius)
55552
- return false;
55553
-
55554
- if (p1 .getDistanceToPoint (center) > radius)
55555
- return false;
55556
-
55557
- if (p2 .getDistanceToPoint (center) > radius)
55558
- return false;
55559
-
55560
- if (p3 .getDistanceToPoint (center) > radius)
55561
- return false;
55562
-
55563
- if (p4 .getDistanceToPoint (center) > radius)
55564
- return false;
55565
-
55566
- if (p5 .getDistanceToPoint (center) > radius)
55567
- return false;
55408
+ for (const plane of this .planes)
55409
+ {
55410
+ if (plane .getDistanceToPoint (center) > radius)
55411
+ return false;
55412
+ }
55568
55413
 
55569
55414
  return true;
55570
55415
  },
55571
55416
  intersectsBox: (() =>
55572
55417
  {
55573
- const points1 = [
55574
- new Numbers_Vector3 (),
55575
- new Numbers_Vector3 (),
55576
- new Numbers_Vector3 (),
55577
- new Numbers_Vector3 (),
55578
-
55579
- new Numbers_Vector3 (),
55580
- new Numbers_Vector3 (),
55581
- new Numbers_Vector3 (),
55582
- new Numbers_Vector3 (),
55583
- ];
55584
-
55585
- const normals1 = [
55586
- new Numbers_Vector3 (),
55587
- new Numbers_Vector3 (),
55588
- new Numbers_Vector3 (),
55589
- ];
55590
-
55591
- const axes1 = [
55592
- new Numbers_Vector3 (),
55593
- new Numbers_Vector3 (),
55594
- new Numbers_Vector3 (),
55595
- ];
55596
-
55597
- const axes = [ ];
55598
-
55599
- for (let i = 0; i < 3 * 8; ++ i)
55600
- axes .push (new Numbers_Vector3 ());
55418
+ const
55419
+ points1 = Array .from ({ length: 8 }, () => new Numbers_Vector3 ()),
55420
+ normals1 = Array .from ({ length: 3 }, () => new Numbers_Vector3 ()),
55421
+ axes1 = Array .from ({ length: 3 }, () => new Numbers_Vector3 ()),
55422
+ axes = Array .from ({ length: 3 * 8 }, () => new Numbers_Vector3 ());
55601
55423
 
55602
55424
  return function (box)
55603
55425
  {
@@ -55645,21 +55467,21 @@ Object .assign (ViewVolume,
55645
55467
  {
55646
55468
  const invModelViewProjectionMatrix = new Numbers_Matrix4 ();
55647
55469
 
55648
- return function (winx, winy, winz, modelViewMatrix, projectionMatrix, viewport, point)
55470
+ return function (winX, winY, winZ, modelViewMatrix, projectionMatrix, viewport, point)
55649
55471
  {
55650
- return this .unProjectPointMatrix (winx, winy, winz, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, point);
55472
+ return this .unProjectPointMatrix (winX, winY, winZ, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, point);
55651
55473
  };
55652
55474
  })(),
55653
55475
  unProjectPointMatrix: (() =>
55654
55476
  {
55655
55477
  const vin = new Numbers_Vector4 ();
55656
55478
 
55657
- return function (winx, winy, winz, invModelViewProjectionMatrix, viewport, point)
55479
+ return function (winX, winY, winZ, invModelViewProjectionMatrix, viewport, point)
55658
55480
  {
55659
55481
  // Transformation of normalized coordinates between -1 and 1
55660
- vin .set ((winx - viewport [0]) / viewport [2] * 2 - 1,
55661
- (winy - viewport [1]) / viewport [3] * 2 - 1,
55662
- winz * 2 - 1,
55482
+ vin .set ((winX - viewport [0]) / viewport [2] * 2 - 1,
55483
+ (winY - viewport [1]) / viewport [3] * 2 - 1,
55484
+ winZ * 2 - 1,
55663
55485
  1);
55664
55486
 
55665
55487
  //Objects coordinates
@@ -55674,9 +55496,9 @@ Object .assign (ViewVolume,
55674
55496
  {
55675
55497
  const invModelViewProjectionMatrix = new Numbers_Matrix4 ();
55676
55498
 
55677
- return function (winx, winy, modelViewMatrix, projectionMatrix, viewport, result)
55499
+ return function (winX, winY, modelViewMatrix, projectionMatrix, viewport, result)
55678
55500
  {
55679
- return this .unProjectRayMatrix (winx, winy, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, result);
55501
+ return this .unProjectRayMatrix (winX, winY, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, result);
55680
55502
  };
55681
55503
  })(),
55682
55504
  unProjectRayMatrix: (() =>
@@ -55685,10 +55507,10 @@ Object .assign (ViewVolume,
55685
55507
  near = new Numbers_Vector3 (),
55686
55508
  far = new Numbers_Vector3 ();
55687
55509
 
55688
- return function (winx, winy, invModelViewProjectionMatrix, viewport, result)
55510
+ return function (winX, winY, invModelViewProjectionMatrix, viewport, result)
55689
55511
  {
55690
- ViewVolume .unProjectPointMatrix (winx, winy, 0.0, invModelViewProjectionMatrix, viewport, near);
55691
- ViewVolume .unProjectPointMatrix (winx, winy, 0.9, invModelViewProjectionMatrix, viewport, far);
55512
+ ViewVolume .unProjectPointMatrix (winX, winY, 0.0, invModelViewProjectionMatrix, viewport, near);
55513
+ ViewVolume .unProjectPointMatrix (winX, winY, 0.9, invModelViewProjectionMatrix, viewport, far);
55692
55514
 
55693
55515
  return result .setPoints (near, far);
55694
55516
  };
@@ -55697,7 +55519,7 @@ Object .assign (ViewVolume,
55697
55519
  {
55698
55520
  const vin = new Numbers_Vector4 ();
55699
55521
 
55700
- return function (point, modelViewMatrix, projectionMatrix, viewport, vout)
55522
+ return function (point, modelViewMatrix, projectionMatrix, viewport, vOut)
55701
55523
  {
55702
55524
  if (point .length === 4)
55703
55525
  vin .assign (point);
@@ -55708,7 +55530,7 @@ Object .assign (ViewVolume,
55708
55530
 
55709
55531
  const d = 1 / (2 * vin .w);
55710
55532
 
55711
- return vout .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55533
+ return vOut .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55712
55534
  (vin .y * d + 0.5) * viewport [3] + viewport [1],
55713
55535
  (vin .z * d + 0.5));
55714
55536
  };
@@ -55717,7 +55539,7 @@ Object .assign (ViewVolume,
55717
55539
  {
55718
55540
  const vin = new Numbers_Vector4 ();
55719
55541
 
55720
- return function (point, modelViewProjectionMatrix, viewport, vout)
55542
+ return function (point, modelViewProjectionMatrix, viewport, vOut)
55721
55543
  {
55722
55544
  if (point .length === 4)
55723
55545
  vin .assign (point);
@@ -55728,7 +55550,7 @@ Object .assign (ViewVolume,
55728
55550
 
55729
55551
  const d = 1 / (2 * vin .w);
55730
55552
 
55731
- return vout .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55553
+ return vOut .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55732
55554
  (vin .y * d + 0.5) * viewport [3] + viewport [1],
55733
55555
  (vin .z * d + 0.5));
55734
55556
  };
@@ -56696,53 +56518,51 @@ function X3DRenderObject (executionContext)
56696
56518
  {
56697
56519
  const browser = executionContext .getBrowser ();
56698
56520
 
56699
- this .renderKey = "";
56700
- this .renderAndGlobalLightsKey = "";
56701
- this .renderCount = 0;
56702
- this .view = null;
56703
- this .viewVolumes = [ ];
56704
- this .projectionMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56705
- this .modelViewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56706
- this .viewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56707
- this .cameraSpaceMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56708
- this .viewportArray = new Int32Array (4);
56709
- this .projectionMatrixArray = new Float32Array (16);
56710
- this .viewMatrixArray = new Float32Array (16);
56711
- this .cameraSpaceMatrixArray = new Float32Array (16);
56712
- this .hitRay = new Geometry_Line3 (Numbers_Vector3 .Zero, Numbers_Vector3 .Zero);
56713
- this .sensors = [[ ]];
56714
- this .viewpointGroups = [ ];
56715
- this .lights = [ ];
56716
- this .globalLightsKeys = [ ];
56717
- this .globalLights = [ ];
56718
- this .localObjectsKeys = [ ];
56719
- this .localObjects = [ ];
56720
- this .globalShadows = [ false ];
56721
- this .globalShadow = false;
56722
- this .localShadows = [ false ];
56723
- this .localFogs = [ null ];
56724
- this .layouts = [ ];
56725
- this .humanoids = [ null ];
56726
- this .generatedCubeMapTextures = [ ];
56727
- this .collisions = [ ];
56728
- this .collisionTime = new Time_StopWatch ();
56729
- this .numPointingShapes = 0;
56730
- this .numCollisionShapes = 0;
56731
- this .numShadowShapes = 0;
56732
- this .numOpaqueShapes = 0;
56733
- this .numTransparentShapes = 0;
56734
- this .pointingShapes = [ ];
56735
- this .collisionShapes = [ ];
56736
- this .activeCollisions = [ ];
56737
- this .shadowShapes = [ ];
56738
- this .opaqueShapes = [ ];
56739
- this .transparentShapes = [ ];
56740
- this .transmissionOpaqueShapes = [ ];
56741
- this .transmissionTransparentShapes = [ ];
56742
- this .transparencySorter = new Algorithms_MergeSort (this .transparentShapes, (a, b) => a .distance < b .distance);
56743
- this .transmissionTransparencySorter = new Algorithms_MergeSort (this .transmissionTransparentShapes, (a, b) => a .distance < b .distance);
56744
- this .speed = 0;
56745
- this .depthBuffer = new Rendering_TextureBuffer (browser, DEPTH_BUFFER_SIZE, DEPTH_BUFFER_SIZE, true);
56521
+ this .renderKey = "";
56522
+ this .renderAndGlobalLightsKey = "";
56523
+ this .renderCount = 0;
56524
+ this .view = null;
56525
+ this .viewVolumes = [ ];
56526
+ this .projectionMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56527
+ this .modelViewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56528
+ this .viewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56529
+ this .cameraSpaceMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56530
+ this .viewportArray = new Int32Array (4);
56531
+ this .projectionMatrixArray = new Float32Array (16);
56532
+ this .viewMatrixArray = new Float32Array (16);
56533
+ this .cameraSpaceMatrixArray = new Float32Array (16);
56534
+ this .hitRay = new Geometry_Line3 (Numbers_Vector3 .Zero, Numbers_Vector3 .Zero);
56535
+ this .sensors = [[ ]];
56536
+ this .viewpointGroups = [ ];
56537
+ this .lights = [ ];
56538
+ this .globalLightsKeys = [ ];
56539
+ this .globalLights = [ ];
56540
+ this .localObjectsKeys = [ ];
56541
+ this .localObjects = [ ];
56542
+ this .globalShadows = [ false ];
56543
+ this .globalShadow = false;
56544
+ this .localShadows = [ false ];
56545
+ this .localFogs = [ null ];
56546
+ this .layouts = [ ];
56547
+ this .humanoids = [ null ];
56548
+ this .generatedCubeMapTextures = [ ];
56549
+ this .collisions = [ ];
56550
+ this .collisionTime = new Time_StopWatch ();
56551
+ this .numPointingShapes = 0;
56552
+ this .numCollisionShapes = 0;
56553
+ this .numShadowShapes = 0;
56554
+ this .numOpaqueShapes = 0;
56555
+ this .numTransparentShapes = 0;
56556
+ this .pointingShapes = [ ];
56557
+ this .collisionShapes = [ ];
56558
+ this .activeCollisions = [ ];
56559
+ this .shadowShapes = [ ];
56560
+ this .opaqueShapes = [ ];
56561
+ this .transparentShapes = [ ];
56562
+ this .transparencySorter = new Algorithms_MergeSort (this .transparentShapes, (a, b) => a .distance < b .distance);
56563
+ this .transmission = false;
56564
+ this .speed = 0;
56565
+ this .depthBuffer = new Rendering_TextureBuffer (browser, DEPTH_BUFFER_SIZE, DEPTH_BUFFER_SIZE, true);
56746
56566
  }
56747
56567
 
56748
56568
  Object .assign (X3DRenderObject .prototype,
@@ -56841,7 +56661,7 @@ Object .assign (X3DRenderObject .prototype,
56841
56661
 
56842
56662
  return function ()
56843
56663
  {
56844
- renderCount >>>= 0; // uintesize
56664
+ renderCount >>>= 0; // convert to uint
56845
56665
  this .renderCount = ++ renderCount;
56846
56666
  }
56847
56667
  })(),
@@ -57060,31 +56880,9 @@ Object .assign (X3DRenderObject .prototype,
57060
56880
  {
57061
56881
  return this .transparentShapes;
57062
56882
  },
57063
- getNumTransmissionOpaqueShapes ()
57064
- {
57065
- return this .transmissionOpaqueShapes .length;
57066
- },
57067
- setNumTransmissionOpaqueShapes (value)
57068
- {
57069
- // Needed for StaticGroup.
57070
- this .transmissionOpaqueShapes .length = value;
57071
- },
57072
- getTransmissionOpaqueShapes ()
57073
- {
57074
- return this .transmissionOpaqueShapes;
57075
- },
57076
- getNumTransmissionTransparentShapes ()
57077
- {
57078
- return this .transmissionTransparentShapes .length;
57079
- },
57080
- setNumTransmissionTransparentShapes (value)
57081
- {
57082
- // Needed for StaticGroup.
57083
- this .transmissionTransparentShapes .length = value;
57084
- },
57085
- getTransmissionTransparentShapes ()
56883
+ isTransmission ()
57086
56884
  {
57087
- return this .transmissionTransparentShapes;
56885
+ return this .transmission;
57088
56886
  },
57089
56887
  constrainTranslation (translation, stepBack)
57090
56888
  {
@@ -57170,7 +56968,7 @@ Object .assign (X3DRenderObject .prototype,
57170
56968
  cameraSpaceProjectionMatrix .multRight (projectionMatrix);
57171
56969
  cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
57172
56970
 
57173
- this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
56971
+ this .getProjectionMatrix () .push (cameraSpaceProjectionMatrix);
57174
56972
 
57175
56973
  const depth = this .getDepth (projectionMatrix);
57176
56974
 
@@ -57218,12 +57016,12 @@ Object .assign (X3DRenderObject .prototype,
57218
57016
  }
57219
57017
  case Rendering_TraverseType .COLLISION:
57220
57018
  {
57221
- // Collect for collide and gravite
57019
+ // Collect for collide and gravitate
57222
57020
  this .numCollisionShapes = 0;
57223
57021
 
57224
57022
  callback .call (group, type, this);
57225
57023
  this .collide ();
57226
- this .gravite ();
57024
+ this .gravitate ();
57227
57025
  break;
57228
57026
  }
57229
57027
  case Rendering_TraverseType .SHADOW:
@@ -57240,10 +57038,6 @@ Object .assign (X3DRenderObject .prototype,
57240
57038
  this .numOpaqueShapes = 0;
57241
57039
  this .numTransparentShapes = 0;
57242
57040
 
57243
- this .transmission = false;
57244
- this .transmissionOpaqueShapes .length = 0;
57245
- this .transmissionTransparentShapes .length = 0;
57246
-
57247
57041
  this .setGlobalFog (this .getFog ());
57248
57042
 
57249
57043
  callback .call (group, type, this);
@@ -57290,9 +57084,9 @@ Object .assign (X3DRenderObject .prototype,
57290
57084
  const pointingContext = this .pointingShapes [num];
57291
57085
 
57292
57086
  pointingContext .modelViewMatrix .set (modelViewMatrix);
57293
- pointingContext .shapeNode = shapeNode;
57294
57087
  pointingContext .scissor = viewVolume .getScissor ();
57295
57088
  pointingContext .humanoidNode = this .humanoids .at (-1);
57089
+ pointingContext .shapeNode = shapeNode;
57296
57090
 
57297
57091
  // Clip planes & sensors
57298
57092
 
@@ -57389,9 +57183,9 @@ Object .assign (X3DRenderObject .prototype,
57389
57183
  const depthContext = this .shadowShapes [num];
57390
57184
 
57391
57185
  depthContext .modelViewMatrix .set (modelViewMatrix);
57392
- depthContext .shapeNode = shapeNode;
57393
57186
  depthContext .scissor = viewVolume .getScissor ();
57394
57187
  depthContext .humanoidNode = this .humanoids .at (-1);
57188
+ depthContext .shapeNode = shapeNode;
57395
57189
 
57396
57190
  // Clip planes
57397
57191
 
@@ -57432,11 +57226,6 @@ Object .assign (X3DRenderObject .prototype,
57432
57226
  var renderContext = this .transparentShapes [num];
57433
57227
 
57434
57228
  renderContext .distance = bboxCenter .z;
57435
-
57436
- if (shapeNode .isTransmission ())
57437
- this .transmission = true;
57438
- else
57439
- this .transmissionTransparentShapes .push (renderContext);
57440
57229
  }
57441
57230
  else
57442
57231
  {
@@ -57446,20 +57235,17 @@ Object .assign (X3DRenderObject .prototype,
57446
57235
  this .opaqueShapes .push (this .createRenderContext (false));
57447
57236
 
57448
57237
  var renderContext = this .opaqueShapes [num];
57449
-
57450
- if (shapeNode .isTransmission ())
57451
- this .transmission = true;
57452
- else
57453
- this .transmissionOpaqueShapes .push (renderContext);
57454
57238
  }
57455
57239
 
57240
+ this .transmission ||= shapeNode .isTransmission ();
57241
+
57456
57242
  renderContext .modelViewMatrix .set (modelViewMatrix);
57457
57243
  renderContext .scissor .assign (viewVolume .getScissor ());
57458
- renderContext .shadows = this .localShadows .at (-1);
57459
- renderContext .fogNode = this .localFogs .at (-1);
57460
- renderContext .shapeNode = shapeNode;
57461
- renderContext .appearanceNode = shapeNode .getAppearance ();
57462
- renderContext .humanoidNode = this .humanoids .at (-1);
57244
+ renderContext .shadows = this .localShadows .at (-1);
57245
+ renderContext .fogNode = this .localFogs .at (-1);
57246
+ renderContext .humanoidNode = this .humanoids .at (-1);
57247
+ renderContext .shapeNode = shapeNode;
57248
+ renderContext .appearanceNode = shapeNode .getAppearance ();
57463
57249
 
57464
57250
  // Clip planes and local lights
57465
57251
 
@@ -57492,7 +57278,7 @@ Object .assign (X3DRenderObject .prototype,
57492
57278
  const
57493
57279
  browser = this .getBrowser (),
57494
57280
  gl = browser .getContext (),
57495
- viewport = this .getViewVolume () .getViewport (),
57281
+ viewport = this .viewVolumes .at (-1) .getViewport (),
57496
57282
  [x, y] = browser .getPointer ();
57497
57283
 
57498
57284
  // Configure depth shaders.
@@ -57607,7 +57393,7 @@ Object .assign (X3DRenderObject .prototype,
57607
57393
  collision .set_active (true);
57608
57394
  };
57609
57395
  })(),
57610
- gravite: (() =>
57396
+ gravitate: (() =>
57611
57397
  {
57612
57398
  const
57613
57399
  projectionMatrix = new Numbers_Matrix4 (),
@@ -57641,14 +57427,14 @@ Object .assign (X3DRenderObject .prototype,
57641
57427
  avatarHeight = navigationInfo .getAvatarHeight (),
57642
57428
  stepHeight = navigationInfo .getStepHeight ();
57643
57429
 
57644
- // Reshape viewpoint for gravite.
57430
+ // Reshape viewpoint for gravitate.
57645
57431
 
57646
57432
  Geometry_Camera .ortho (-collisionRadius,
57647
57433
  collisionRadius,
57648
57434
  -collisionRadius,
57649
57435
  collisionRadius,
57650
57436
  nearValue,
57651
- Math .max (collisionRadius * 2, avatarHeight * 2),
57437
+ Math .max (collisionRadius, avatarHeight) * 2,
57652
57438
  projectionMatrix);
57653
57439
 
57654
57440
  // Transform viewpoint to look down the up vector.
@@ -57665,13 +57451,13 @@ Object .assign (X3DRenderObject .prototype,
57665
57451
  cameraSpaceProjectionMatrix .multRight (projectionMatrix);
57666
57452
  cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
57667
57453
 
57668
- this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
57454
+ this .getProjectionMatrix () .push (cameraSpaceProjectionMatrix);
57669
57455
 
57670
57456
  let distance = -this .getDepth (projectionMatrix);
57671
57457
 
57672
57458
  this .getProjectionMatrix () .pop ();
57673
57459
 
57674
- // Gravite or step up.
57460
+ // gravitate or step up.
57675
57461
 
57676
57462
  distance -= avatarHeight;
57677
57463
 
@@ -57679,7 +57465,7 @@ Object .assign (X3DRenderObject .prototype,
57679
57465
 
57680
57466
  if (distance > 0)
57681
57467
  {
57682
- // Gravite and fall down the to the floor.
57468
+ // gravitate and fall down the to the floor.
57683
57469
 
57684
57470
  const currentFrameRate = this .speed ? browser .getCurrentFrameRate () : 1000000;
57685
57471
 
@@ -57735,7 +57521,7 @@ Object .assign (X3DRenderObject .prototype,
57735
57521
  const
57736
57522
  browser = this .getBrowser (),
57737
57523
  gl = browser .getContext (),
57738
- viewport = this .getViewVolume () .getViewport ();
57524
+ viewport = this .viewVolumes .at (-1) .getViewport ();
57739
57525
 
57740
57526
  // Configure depth shaders.
57741
57527
 
@@ -57789,7 +57575,7 @@ Object .assign (X3DRenderObject .prototype,
57789
57575
  gl = browser .getContext (),
57790
57576
  frameBuffers = this .getFrameBuffers (),
57791
57577
  numFrameBuffers = frameBuffers .length,
57792
- viewport = this .getViewVolume () .getViewport (),
57578
+ viewport = this .viewVolumes .at (-1) .getViewport (),
57793
57579
  lights = this .lights,
57794
57580
  globalLightsKeys = this .globalLightsKeys,
57795
57581
  globalLights = this .globalLights,
@@ -57812,14 +57598,6 @@ Object .assign (X3DRenderObject .prototype,
57812
57598
  generatedCubeMapTexture .renderTexture (this);
57813
57599
  }
57814
57600
 
57815
- // Set up shadow matrix for all lights, and matrix for all projective textures.
57816
-
57817
- if (headlight)
57818
- browser .getHeadlight () .setGlobalVariables (this);
57819
-
57820
- for (const light of lights)
57821
- light .setGlobalVariables (this);
57822
-
57823
57601
  this .renderAndGlobalLightsKey = `.${this .renderKey}.${globalLightsKeys .sort () .join ("")}.`;
57824
57602
  this .globalShadow = globalShadows .at (-1);
57825
57603
 
@@ -57837,14 +57615,23 @@ Object .assign (X3DRenderObject .prototype,
57837
57615
 
57838
57616
  this .viewportArray .set (viewport);
57839
57617
 
57840
- if (this .view)
57618
+ if (this .view && this .isActive ())
57841
57619
  {
57842
- this .projectionMatrixArray .set (this .isActive ()
57843
- ? this .view .projectionMatrix
57844
- : this .getProjectionMatrix () .get ());
57620
+ this .projectionMatrixArray .set (this .view .projectionMatrix);
57621
+
57622
+ if (browser .getBrowserOption ("XRMovementControl") === "VIEWPOINT")
57623
+ {
57624
+ this .cameraSpaceMatrixArray .set (this .getCameraSpaceMatrix () .get ());
57625
+ this .viewMatrixArray .set (this .getViewMatrix () .get ());
57845
57626
 
57846
- this .cameraSpaceMatrixArray .set (this .view .cameraSpaceMatrix);
57847
- this .viewMatrixArray .set (this .view .viewMatrix);
57627
+ Numbers_Matrix4 .prototype .multLeft (this .cameraSpaceMatrixArray, this .view .inverse);
57628
+ Numbers_Matrix4 .prototype .multRight (this .viewMatrixArray, this .view .matrix);
57629
+ }
57630
+ else
57631
+ {
57632
+ this .cameraSpaceMatrixArray .set (this .view .cameraSpaceMatrix);
57633
+ this .viewMatrixArray .set (this .view .viewMatrix);
57634
+ }
57848
57635
  }
57849
57636
  else
57850
57637
  {
@@ -57853,22 +57640,29 @@ Object .assign (X3DRenderObject .prototype,
57853
57640
  this .viewMatrixArray .set (this .getViewMatrix () .get ());
57854
57641
  }
57855
57642
 
57643
+ // Set up shadow matrix for all lights, and matrix for all projective textures.
57644
+
57645
+ if (headlight)
57646
+ browser .getHeadlight () .setGlobalVariables (this);
57647
+
57648
+ for (const light of lights)
57649
+ light .setGlobalVariables (this);
57650
+
57651
+ // Draw shapes.
57652
+
57856
57653
  if (independent && this .transmission)
57857
57654
  {
57858
57655
  // Transmission
57859
57656
 
57860
- const
57861
- transmissionBuffer = browser .getTransmissionBuffer (),
57862
- transmissionOpaqueShapes = this .transmissionOpaqueShapes,
57863
- transmissionTransparentShapes = this .transmissionTransparentShapes,
57864
- numTransmissionOpaqueShapes = transmissionOpaqueShapes .length,
57865
- numTransmissionTransparentShapes = transmissionTransparentShapes .length;
57657
+ const transmissionBuffer = browser .getTransmissionBuffer ();
57866
57658
 
57867
- this .drawShapes (gl, browser, transmissionBuffer, gl .COLOR_BUFFER_BIT, false, viewport, transmissionOpaqueShapes, numTransmissionOpaqueShapes, transmissionTransparentShapes, numTransmissionTransparentShapes, this .transmissionTransparencySorter);
57659
+ this .drawShapes (gl, browser, transmissionBuffer, gl .COLOR_BUFFER_BIT, false, viewport, this .opaqueShapes, this .numOpaqueShapes, this .transparentShapes, this .numTransparentShapes, this .transparencySorter);
57868
57660
 
57869
57661
  gl .bindTexture (gl .TEXTURE_2D, transmissionBuffer .getColorTexture ());
57870
57662
  gl .generateMipmap (gl .TEXTURE_2D);
57871
57663
 
57664
+ this .transmission = false;
57665
+
57872
57666
  // Draw with sorted blend or OIT.
57873
57667
 
57874
57668
  this .drawShapes (gl, browser, frameBuffer, 0, frameBuffer .getOIT (), viewport, this .opaqueShapes, this .numOpaqueShapes, this .transparentShapes, this .numTransparentShapes, this .transparencySorter);
@@ -57908,7 +57702,7 @@ Object .assign (X3DRenderObject .prototype,
57908
57702
  globalShadows .length = 1;
57909
57703
  generatedCubeMapTextures .length = 0;
57910
57704
  },
57911
- drawShapes (gl, browser, frameBuffer, clear, oit, viewport, opaqueShapes, numOpaqueShapes, transparentShapes, numTransparentShapes, transparencySorter)
57705
+ drawShapes (gl, browser, frameBuffer, clearBits, oit, viewport, opaqueShapes, numOpaqueShapes, transparentShapes, numTransparentShapes, transparencySorter)
57912
57706
  {
57913
57707
  frameBuffer .bind ();
57914
57708
 
@@ -57922,7 +57716,7 @@ Object .assign (X3DRenderObject .prototype,
57922
57716
  this .advanceRenderCount ();
57923
57717
 
57924
57718
  gl .clearColor (0, 0, 0, 0);
57925
- gl .clear (gl .DEPTH_BUFFER_BIT | clear);
57719
+ gl .clear (gl .DEPTH_BUFFER_BIT | clearBits);
57926
57720
  gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
57927
57721
 
57928
57722
  this .getBackground () .display (gl, this);
@@ -57973,10 +57767,7 @@ Object .assign (X3DRenderObject .prototype,
57973
57767
 
57974
57768
  function X3DRenderObject_assign (lhs, rhs)
57975
57769
  {
57976
- for (var i = 0, length = rhs .length; i < length; ++ i)
57977
- lhs [i] = rhs [i];
57978
-
57979
- lhs .length = length;
57770
+ Object .assign (lhs, rhs) .length = rhs .length;
57980
57771
  }
57981
57772
 
57982
57773
  const X3DRenderObject_default_ = X3DRenderObject;
@@ -59249,12 +59040,7 @@ const Group_default_ = Group;
59249
59040
 
59250
59041
 
59251
59042
 
59252
- const TransitionType =
59253
- {
59254
- TELEPORT: true,
59255
- LINEAR: true,
59256
- ANIMATE: true,
59257
- };
59043
+
59258
59044
 
59259
59045
  function NavigationInfo (executionContext)
59260
59046
  {
@@ -59269,7 +59055,7 @@ function NavigationInfo (executionContext)
59269
59055
 
59270
59056
  this ._avatarSize .setUnit ("length");
59271
59057
  this ._speed .setUnit ("speed");
59272
- this ._visibilityLimit .setUnit ("speed");
59058
+ this ._visibilityLimit .setUnit ("length");
59273
59059
  }
59274
59060
 
59275
59061
  Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBindableNode .prototype),
@@ -59280,12 +59066,14 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59280
59066
 
59281
59067
  this ._type .addInterest ("set_type__", this);
59282
59068
  this ._headlight .addInterest ("set_headlight__", this);
59069
+ this ._visibilityLimit .addInterest ("set_visibilityLimit__", this);
59283
59070
  this ._transitionStart .addInterest ("set_transitionStart__", this);
59284
59071
  this ._transitionComplete .addInterest ("set_transitionComplete__", this);
59285
59072
  this ._isBound .addInterest ("set_isBound__", this);
59286
59073
 
59287
59074
  this .set_type__ ();
59288
59075
  this .set_headlight__ ();
59076
+ this .set_visibilityLimit__ ();
59289
59077
  },
59290
59078
  getViewer ()
59291
59079
  {
@@ -59319,30 +59107,31 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59319
59107
  {
59320
59108
  const nearValue = this .getCollisionRadius ();
59321
59109
 
59322
- if (nearValue === 0)
59323
- return 1e-5;
59324
-
59325
- else
59326
- return nearValue / 2;
59110
+ return nearValue === 0 ? 1e-5 : nearValue / 2;
59327
59111
  },
59328
59112
  getFarValue (viewpoint)
59329
59113
  {
59330
- return this ._visibilityLimit .getValue ()
59331
- ? this ._visibilityLimit .getValue ()
59332
- : viewpoint .getMaxFarValue ();
59114
+ return this .visibilityLimit || viewpoint .getMaxFarValue ();
59333
59115
  },
59334
- getTransitionType ()
59116
+ getTransitionType: (function ()
59335
59117
  {
59336
- for (const value of this ._transitionType)
59337
- {
59338
- const transitionType = TransitionType [value];
59118
+ const TransitionTypes = new Set ([
59119
+ "TELEPORT",
59120
+ "LINEAR",
59121
+ "ANIMATE",
59122
+ ]);
59339
59123
 
59340
- if (transitionType)
59341
- return value;
59342
- }
59124
+ return function ()
59125
+ {
59126
+ for (const value of this ._transitionType)
59127
+ {
59128
+ if (TransitionTypes .has (value))
59129
+ return value;
59130
+ }
59343
59131
 
59344
- return "LINEAR";
59345
- },
59132
+ return "LINEAR";
59133
+ };
59134
+ })(),
59346
59135
  set_type__ ()
59347
59136
  {
59348
59137
  // Determine active viewer.
@@ -59383,7 +59172,7 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59383
59172
  noneViewer = false,
59384
59173
  lookAt = false;
59385
59174
 
59386
- if (! this ._type .length)
59175
+ if (!this ._type .length)
59387
59176
  {
59388
59177
  examineViewer = true;
59389
59178
  walkViewer = true;
@@ -59425,7 +59214,7 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59425
59214
  lookAt = true;
59426
59215
  break;
59427
59216
  default:
59428
- // Some string defaults to EXAMINE.
59217
+ // Some strings lead to:
59429
59218
  examineViewer = true;
59430
59219
  continue;
59431
59220
  }
@@ -59461,9 +59250,13 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59461
59250
  else
59462
59251
  this .enable = Function .prototype;
59463
59252
  },
59253
+ set_visibilityLimit__ ()
59254
+ {
59255
+ this .visibilityLimit = Math .max (this ._visibilityLimit .getValue (), 0);
59256
+ },
59464
59257
  set_transitionStart__ ()
59465
59258
  {
59466
- if (! this ._transitionActive .getValue ())
59259
+ if (!this ._transitionActive .getValue ())
59467
59260
  this ._transitionActive = true;
59468
59261
  },
59469
59262
  set_transitionComplete__ ()
@@ -59489,7 +59282,7 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59489
59282
 
59490
59283
  const headlight = this .getBrowser () .getHeadlight ();
59491
59284
 
59492
- renderObject .getGlobalLights () .push (headlight);
59285
+ renderObject .getGlobalLights () .push (headlight);
59493
59286
  renderObject .getGlobalLightsKeys () .push (headlight .lightNode .getLightKey ());
59494
59287
  },
59495
59288
  traverse (type, renderObject)
@@ -63089,7 +62882,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
63089
62882
 
63090
62883
  /* harmony default export */ const Texturing_X3DTexture2DNode = (x_ite_Namespace .add ("X3DTexture2DNode", X3DTexture2DNode_default_));
63091
62884
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
63092
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(362);
62885
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(375);
63093
62886
  /*******************************************************************************
63094
62887
  *
63095
62888
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -63569,6 +63362,7 @@ const Background_default_ = Background;
63569
63362
 
63570
63363
 
63571
63364
 
63365
+
63572
63366
  function X3DLayerNode (executionContext, defaultViewpoint, groupNode)
63573
63367
  {
63574
63368
  Core_X3DNode .call (this, executionContext);
@@ -63759,6 +63553,9 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63759
63553
  viewpointNode = this .getViewpoint (),
63760
63554
  bbox = this .getBBox (new Geometry_Box3 ()) .multRight (viewpointNode .getModelMatrix () .copy () .inverse ());
63761
63555
 
63556
+ if (bbox .size .equals (Numbers_Vector3 .Zero))
63557
+ return;
63558
+
63762
63559
  viewpointNode .lookAt (this, bbox .center, viewpointNode .getLookAtDistance (bbox), transitionTime, factor, straighten);
63763
63560
  },
63764
63561
  straightenView ()
@@ -63776,10 +63573,8 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63776
63573
  },
63777
63574
  set_viewport__ ()
63778
63575
  {
63779
- this .viewportNode = Base_X3DCast (Base_X3DConstants .X3DViewportNode, this ._viewport);
63780
-
63781
- if (!this .viewportNode)
63782
- this .viewportNode = this .getBrowser () .getDefaultViewport ();
63576
+ this .viewportNode = Base_X3DCast (Base_X3DConstants .X3DViewportNode, this ._viewport)
63577
+ ?? this .getBrowser () .getDefaultViewport ();
63783
63578
  },
63784
63579
  bindBindables (viewpointName)
63785
63580
  {
@@ -63805,21 +63600,31 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63805
63600
  },
63806
63601
  traverse (type, renderObject = this)
63807
63602
  {
63808
- const pose = this .getBrowser () .getPose ();
63603
+ const
63604
+ browser = this .getBrowser (),
63605
+ viewpointNode = this .getViewpoint (),
63606
+ pose = browser .getPose ();
63809
63607
 
63810
63608
  if (pose && this .active)
63811
63609
  {
63812
- this .getProjectionMatrix () .pushMatrix (pose .views [0] .projectionMatrix);
63813
- this .getCameraSpaceMatrix () .pushMatrix (pose .cameraSpaceMatrix);
63814
- this .getViewMatrix () .pushMatrix (pose .viewMatrix);
63610
+ this .getProjectionMatrix () .push (pose .views [0] .projectionMatrix);
63611
+
63612
+ if (browser .getBrowserOption ("XRMovementControl") === "VIEWPOINT")
63613
+ {
63614
+ this .getCameraSpaceMatrix () .push (viewpointNode .getCameraSpaceMatrix ());
63615
+ this .getViewMatrix () .push (viewpointNode .getViewMatrix ());
63616
+ }
63617
+ else
63618
+ {
63619
+ this .getCameraSpaceMatrix () .push (pose .cameraSpaceMatrix);
63620
+ this .getViewMatrix () .push (pose .viewMatrix);
63621
+ }
63815
63622
  }
63816
63623
  else
63817
63624
  {
63818
- const viewpointNode = this .getViewpoint ();
63819
-
63820
- this .getProjectionMatrix () .pushMatrix (viewpointNode .getProjectionMatrix (this));
63821
- this .getCameraSpaceMatrix () .pushMatrix (viewpointNode .getCameraSpaceMatrix ());
63822
- this .getViewMatrix () .pushMatrix (viewpointNode .getViewMatrix ());
63625
+ this .getProjectionMatrix () .push (viewpointNode .getProjectionMatrix (this));
63626
+ this .getCameraSpaceMatrix () .push (viewpointNode .getCameraSpaceMatrix ());
63627
+ this .getViewMatrix () .push (viewpointNode .getViewMatrix ());
63823
63628
  }
63824
63629
 
63825
63630
  switch (type)
@@ -63865,7 +63670,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63865
63670
 
63866
63671
  this .setHitRay (this .getProjectionMatrix () .get (), viewport, browser .getPointer ());
63867
63672
  this .getNavigationInfo () .enable (type, renderObject);
63868
- this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63673
+ this .getModelViewMatrix () .push (this .getViewMatrix () .get ());
63869
63674
 
63870
63675
  this .viewportNode .push (this);
63871
63676
  renderObject .render (type, this .groupNodes .traverse, this .groupNodes);
@@ -63877,7 +63682,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63877
63682
  {
63878
63683
  if (this ._display .getValue ())
63879
63684
  {
63880
- this .getModelViewMatrix () .pushMatrix (Numbers_Matrix4 .Identity);
63685
+ this .getModelViewMatrix () .push (Numbers_Matrix4 .Identity);
63881
63686
 
63882
63687
  this .viewportNode .push (this);
63883
63688
  this .groupNodes .traverse (type, renderObject);
@@ -63897,7 +63702,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63897
63702
  {
63898
63703
  if (this ._pickable .getValue ())
63899
63704
  {
63900
- this .getModelViewMatrix () .pushMatrix (Numbers_Matrix4 .Identity);
63705
+ this .getModelViewMatrix () .push (Numbers_Matrix4 .Identity);
63901
63706
 
63902
63707
  this .viewportNode .push (this);
63903
63708
  this .groupNodes .traverse (type, renderObject);
@@ -63926,8 +63731,8 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63926
63731
 
63927
63732
  Geometry_Camera .ortho (-size, size, -size, size, -size, size, projectionMatrix);
63928
63733
 
63929
- this .getProjectionMatrix () .pushMatrix (projectionMatrix);
63930
- this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63734
+ this .getProjectionMatrix () .push (projectionMatrix);
63735
+ this .getModelViewMatrix () .push (this .getViewMatrix () .get ());
63931
63736
 
63932
63737
  // Render
63933
63738
  this .viewportNode .push (this);
@@ -63944,7 +63749,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63944
63749
  if (this ._display .getValue ())
63945
63750
  {
63946
63751
  this .getNavigationInfo () .enable (type, renderObject);
63947
- this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63752
+ this .getModelViewMatrix () .push (this .getViewMatrix () .get ());
63948
63753
 
63949
63754
  this .viewportNode .push (this);
63950
63755
  renderObject .render (type, this .groupNodes .traverse, this .groupNodes);
@@ -65648,8 +65453,11 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
65648
65453
 
65649
65454
  this .lookAt (layerNode, point, minDistance, transitionTime, factor, straighten);
65650
65455
  },
65651
- lookAtBBox (layerNode, bbox, transitionTime = 1, factor, straighten)
65456
+ lookAtBBox (layerNode, bbox, transitionTime = 1, factor = 1, straighten = false)
65652
65457
  {
65458
+ if (bbox .size .equals (Numbers_Vector3 .Zero))
65459
+ return;
65460
+
65653
65461
  bbox = bbox .copy () .multRight (this .getModelMatrix () .copy () .inverse ());
65654
65462
 
65655
65463
  this .lookAt (layerNode, bbox .center, this .getLookAtDistance (bbox), transitionTime, factor, straighten);
@@ -65727,18 +65535,26 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
65727
65535
  {
65728
65536
  bbox .copy () .multRight (this .modelMatrix .copy () .inverse ());
65729
65537
 
65730
- const
65731
- direction = this .getUserPosition () .copy () .subtract (bbox .center) .normalize (),
65732
- distance = this .getLookAtDistance (bbox),
65733
- userPosition = bbox .center .copy () .add (direction .multiply (distance)),
65734
- userOrientation = this .getLookAtRotation (userPosition, bbox .center);
65538
+ if (bbox .size .equals (Numbers_Vector3 .Zero))
65539
+ {
65540
+ this .set_nearDistance__ ();
65541
+ this .set_farDistance__ ();
65542
+ }
65543
+ else
65544
+ {
65545
+ const
65546
+ direction = this .getUserPosition () .copy () .subtract (bbox .center) .normalize (),
65547
+ distance = this .getLookAtDistance (bbox),
65548
+ userPosition = bbox .center .copy () .add (direction .multiply (distance)),
65549
+ userOrientation = this .getLookAtRotation (userPosition, bbox .center);
65735
65550
 
65736
- this ._positionOffset = userPosition .subtract (this .getPosition ());
65737
- this ._orientationOffset = this .getOrientation () .copy () .inverse () .multRight (userOrientation);
65738
- this ._centerOfRotationOffset = bbox .center .copy () .subtract (this .getCenterOfRotation ());
65739
- this ._fieldOfViewScale = 1;
65740
- this .nearDistance = distance * (0.125 / 10);
65741
- this .farDistance = this .nearDistance * this .getMaxFarValue () / 0.125;
65551
+ this ._positionOffset = userPosition .subtract (this .getPosition ());
65552
+ this ._orientationOffset = this .getOrientation () .copy () .inverse () .multRight (userOrientation);
65553
+ this ._centerOfRotationOffset = bbox .center .copy () .subtract (this .getCenterOfRotation ());
65554
+ this ._fieldOfViewScale = 1;
65555
+ this .nearDistance = distance * (0.125 / 10);
65556
+ this .farDistance = this .nearDistance * this .getMaxFarValue () / 0.125;
65557
+ }
65742
65558
  },
65743
65559
  traverse (type, renderObject)
65744
65560
  {
@@ -66450,7 +66266,7 @@ const X3DWorld_default_ = X3DWorld;
66450
66266
 
66451
66267
  /* harmony default export */ const Execution_X3DWorld = (x_ite_Namespace .add ("X3DWorld", X3DWorld_default_));
66452
66268
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66453
- /* provided dependency */ var FileLoader_$ = __webpack_require__(362);
66269
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(375);
66454
66270
  /*******************************************************************************
66455
66271
  *
66456
66272
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67380,7 +67196,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67380
67196
 
67381
67197
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (x_ite_Namespace .add ("ProtoDeclarationArray", ProtoDeclarationArray_default_));
67382
67198
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
67383
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(362);
67199
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(375);
67384
67200
  /*******************************************************************************
67385
67201
  *
67386
67202
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -70852,7 +70668,8 @@ Object .assign (Object .setPrototypeOf (ProximitySensor .prototype, Environmenta
70852
70668
  if (this .layerNode)
70853
70669
  {
70854
70670
  const
70855
- pose = this .getBrowser () .getPose (),
70671
+ browser = this .getBrowser (),
70672
+ pose = browser .getPose (),
70856
70673
  viewpointNode = this .layerNode .getViewpoint (),
70857
70674
  invModelMatrix = this .modelMatrix .inverse ()
70858
70675
 
@@ -70862,7 +70679,7 @@ Object .assign (Object .setPrototypeOf (ProximitySensor .prototype, Environmenta
70862
70679
  .multRight (invModelMatrix)
70863
70680
  .get (centerOfRotation);
70864
70681
 
70865
- if (pose && this .layerNode .isActive ())
70682
+ if (pose && this .layerNode .isActive () && browser .getBrowserOption ("XRMovementControl") !== "VIEWPOINT")
70866
70683
  invModelMatrix .multLeft (pose .cameraSpaceMatrix);
70867
70684
  else
70868
70685
  invModelMatrix .multLeft (viewpointNode .getCameraSpaceMatrix ());
@@ -70883,7 +70700,7 @@ Object .assign (Object .setPrototypeOf (ProximitySensor .prototype, Environmenta
70883
70700
  else
70884
70701
  {
70885
70702
  this ._isActive = true;
70886
- this ._enterTime = this .getBrowser () .getCurrentTime ();
70703
+ this ._enterTime = browser .getCurrentTime ();
70887
70704
  this ._position_changed = position;
70888
70705
  this ._orientation_changed = orientation;
70889
70706
  this ._centerOfRotation_changed = centerOfRotation;
@@ -75098,7 +74915,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75098
74915
  .subtract (vector3 .assign (spine [length] .getValue ()) .subtract (s) .normalize ())
75099
74916
  .normalize ();
75100
74917
 
75101
- if (! SCPyAxis .equals (Numbers_Vector3 .Zero))
74918
+ if (!SCPyAxis .equals (Numbers_Vector3 .Zero))
75102
74919
  break;
75103
74920
  }
75104
74921
 
@@ -75109,7 +74926,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75109
74926
  .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
75110
74927
  .normalize ();
75111
74928
 
75112
- if (! SCPzAxis .equals (Numbers_Vector3 .Zero))
74929
+ if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
75113
74930
  break;
75114
74931
  }
75115
74932
  }
@@ -75120,7 +74937,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75120
74937
  {
75121
74938
  SCPyAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ()) .normalize ();
75122
74939
 
75123
- if (! SCPyAxis .equals (Numbers_Vector3 .Zero))
74940
+ if (!SCPyAxis .equals (Numbers_Vector3 .Zero))
75124
74941
  break;
75125
74942
  }
75126
74943
 
@@ -75131,7 +74948,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75131
74948
  .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
75132
74949
  .normalize ();
75133
74950
 
75134
- if (! SCPzAxis .equals (Numbers_Vector3 .Zero))
74951
+ if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
75135
74952
  break;
75136
74953
  }
75137
74954
  }
@@ -75249,7 +75066,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75249
75066
  return function ()
75250
75067
  {
75251
75068
  const
75252
- cw = ! this ._ccw .getValue (),
75069
+ cw = !this ._ccw .getValue (),
75253
75070
  crossSection = this ._crossSection,
75254
75071
  spine = this ._spine,
75255
75072
  numSpines = spine .length,
@@ -80175,7 +79992,9 @@ const TextureCoordinateGenerator_default_ = TextureCoordinateGenerator;
80175
79992
 
80176
79993
 
80177
79994
 
80178
- // No support for X3DBindableNode nodes, local lights. X3DLocalFog, local ClipPlane nodes, LOD, Billboard, Switch node.
79995
+ const CLONE_COUNT = 2; // Minimum number of shapes that must be cloned to become an InstancedShape.
79996
+
79997
+ // No support for X3DBindableNode nodes, local lights. X3DLocalFog, local ClipPlane nodes, LOD, Billboard node.
80179
79998
 
80180
79999
  function StaticGroup (executionContext)
80181
80000
  {
@@ -80229,35 +80048,43 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80229
80048
  for (const visibleNode of this .visibleNodes)
80230
80049
  visibleNode .traverse (type, renderObject);
80231
80050
  },
80232
- createStaticShapes: (() =>
80051
+ createStaticShapes (renderObject)
80233
80052
  {
80234
- const Statics = ["Opaque", "Transparent", "TransmissionOpaque", "TransmissionTransparent"];
80235
-
80236
- const viewVolume = new Geometry_ViewVolume ();
80053
+ // Check if scene is currently loading something.
80237
80054
 
80238
- viewVolume .intersectsSphere = () => true;
80055
+ const scene = this .getScene ();
80239
80056
 
80240
- return function (renderObject)
80057
+ if (scene ._loadCount .getValue ())
80241
80058
  {
80242
- // Check if scene is currently loading something.
80059
+ scene ._loadCount .addFieldCallback (this, () =>
80060
+ {
80061
+ if (scene ._loadCount .getValue ())
80062
+ return;
80243
80063
 
80244
- const scene = this .getScene ();
80064
+ scene ._loadCount .removeFieldCallback (this);
80245
80065
 
80246
- if (scene ._loadCount .getValue ())
80247
- {
80248
- scene ._loadCount .addFieldCallback (this, () =>
80249
- {
80250
- if (scene ._loadCount .getValue ())
80251
- return;
80066
+ this .set_children__ ();
80067
+ });
80068
+ }
80069
+ else
80070
+ {
80071
+ // Create static shapes.
80252
80072
 
80253
- scene ._loadCount .removeFieldCallback (this);
80073
+ this .optimizeGroups (this .createGroups (renderObject));
80074
+ }
80254
80075
 
80255
- this .set_children__ ();
80256
- });
80076
+ return [this .groupNode];
80077
+ },
80078
+ createGroups: (() =>
80079
+ {
80080
+ const Statics = ["Opaque", "Transparent"];
80257
80081
 
80258
- return [this .groupNode];
80259
- }
80082
+ const viewVolume = new Geometry_ViewVolume ();
80083
+
80084
+ viewVolume .intersectsSphere = () => true;
80260
80085
 
80086
+ return function (renderObject)
80087
+ {
80261
80088
  // Traverse Group node to get render contexts.
80262
80089
 
80263
80090
  const
@@ -80303,6 +80130,7 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80303
80130
  // Sort out TextureCoordinateGenerator nodes.
80304
80131
 
80305
80132
  const
80133
+ clonesIndex = new Map (renderContexts .map (({shapeNode}) => [shapeNode, [ ]])),
80306
80134
  groupsIndex = { },
80307
80135
  singlesIndex = { };
80308
80136
 
@@ -80333,32 +80161,37 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80333
80161
  key += shapeNode ._castShadow .getValue () ? 1 : 0;
80334
80162
  key += shapeNode ._bboxDisplay .getValue () ? 1 : 0;
80335
80163
 
80336
- const group = groupsIndex [key] ??= [ ];
80164
+ const
80165
+ clones = clonesIndex .get (shapeNode),
80166
+ group = groupsIndex [key] ??= [ ];
80337
80167
 
80338
- group .push (renderContext);
80168
+ clones .push (renderContext);
80169
+ group .push (renderContext);
80339
80170
  }
80340
80171
 
80341
- const
80342
- combineGroups = Object .values (groupsIndex),
80343
- singlesGroups = Object .values (singlesIndex);
80172
+ // Sort out shapes that are not cloned.
80344
80173
 
80345
- if (browser .getBrowserOption ("Debug"))
80174
+ for (const [id, group] of clonesIndex .entries ())
80346
80175
  {
80347
- console .info (`StaticGroup will create ${combineGroups .length + singlesGroups .length} static nodes from the previous ${renderContexts .length} nodes.`);
80176
+ if (group .length < CLONE_COUNT)
80177
+ clonesIndex .delete (id);
80348
80178
  }
80349
80179
 
80350
- // Create static shapes.
80351
-
80352
- if (DEVELOPMENT)
80353
- console .time ("StaticGroup");
80180
+ // Create arrays.
80354
80181
 
80355
- const visibleNodes = combineGroups .map (group => this .combineShapes (group))
80356
- .concat (singlesGroups .map (group => this .normalizeSingleShapes (group)));
80182
+ const
80183
+ clonesGroups = Array .from (clonesIndex .values ()),
80184
+ combineGroups = Object .values (groupsIndex)
80185
+ .map (group => group .filter (({shapeNode}) => !clonesIndex .has (shapeNode)))
80186
+ .filter (group => group .length),
80187
+ singlesGroups = Object .values (singlesIndex);
80357
80188
 
80358
- if (DEVELOPMENT)
80359
- console .timeEnd ("StaticGroup");
80189
+ if (browser .getBrowserOption ("Debug"))
80190
+ {
80191
+ console .info (`StaticGroup will create ${clonesGroups .length + combineGroups .length + singlesGroups .length} static nodes from the previous ${renderContexts .length} nodes.`);
80192
+ }
80360
80193
 
80361
- return visibleNodes;
80194
+ return { clonesGroups, combineGroups, singlesGroups };
80362
80195
  };
80363
80196
  })(),
80364
80197
  hasTextureCoordinateGenerator (geometryNode)
@@ -80376,7 +80209,68 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80376
80209
 
80377
80210
  return false;
80378
80211
  },
80379
- combineShapes (group)
80212
+ async optimizeGroups ({ clonesGroups, combineGroups, singlesGroups })
80213
+ {
80214
+ if (clonesGroups .length)
80215
+ await this .getBrowser () .loadComponents ("X_ITE");
80216
+
80217
+ // Create static shapes.
80218
+
80219
+ if (DEVELOPMENT)
80220
+ console .time ("StaticGroup");
80221
+
80222
+ const visibleNodes = [ ];
80223
+
80224
+ clonesGroups .forEach (group => this .combineClones (group, visibleNodes));
80225
+ combineGroups .forEach (group => this .combineShapes (group, visibleNodes));
80226
+ singlesGroups .forEach (group => this .normalizeSingleShapes (group, visibleNodes));
80227
+
80228
+ this .visibleNodes = visibleNodes;
80229
+
80230
+ if (DEVELOPMENT)
80231
+ console .timeEnd ("StaticGroup");
80232
+ },
80233
+ combineClones: (function ()
80234
+ {
80235
+ const
80236
+ modelMatrix = new Numbers_Matrix4 (),
80237
+ t = new Numbers_Vector3 (),
80238
+ r = new Numbers_Rotation4 (),
80239
+ s = new Numbers_Vector3 (),
80240
+ so = new Numbers_Rotation4 ();
80241
+
80242
+ return function (group, visibleNodes)
80243
+ {
80244
+ const
80245
+ browser = this .getBrowser (),
80246
+ executionContext = this .getExecutionContext (),
80247
+ InstancedShape = browser .getConcreteNodes () .get ("InstancedShape"),
80248
+ instancedShape = new InstancedShape (executionContext),
80249
+ shapeNode0 = group [0] .shapeNode;
80250
+
80251
+ for (const { modelViewMatrix } of group)
80252
+ {
80253
+ modelMatrix .assign (modelViewMatrix) .get (t, r, s, so);
80254
+
80255
+ instancedShape ._translations .push (t);
80256
+ instancedShape ._rotations .push (r);
80257
+ instancedShape ._scales .push (s);
80258
+ instancedShape ._scaleOrientations .push (so);
80259
+ }
80260
+
80261
+ instancedShape ._pointerEvents = shapeNode0 ._pointerEvents;
80262
+ instancedShape ._castShadow = shapeNode0 ._castShadow;
80263
+ instancedShape ._bboxDisplay = shapeNode0 ._bboxDisplay;
80264
+ instancedShape ._appearance = shapeNode0 ._appearance;
80265
+ instancedShape ._geometry = shapeNode0 ._geometry;
80266
+
80267
+ instancedShape .setPrivate (true);
80268
+ instancedShape .setup ();
80269
+
80270
+ visibleNodes .push (instancedShape);
80271
+ };
80272
+ })(),
80273
+ combineShapes (group, visibleNodes)
80380
80274
  {
80381
80275
  const
80382
80276
  executionContext = this .getExecutionContext (),
@@ -80583,7 +80477,7 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80583
80477
  newShapeNode .setPrivate (true);
80584
80478
  newShapeNode .setup ();
80585
80479
 
80586
- return newShapeNode;
80480
+ visibleNodes .push (newShapeNode);
80587
80481
  },
80588
80482
  normalizeGeometry: (function ()
80589
80483
  {
@@ -80825,34 +80719,37 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80825
80719
  return newGeometryNode;
80826
80720
  };
80827
80721
  })(),
80828
- normalizeSingleShapes (group)
80722
+ normalizeSingleShapes: (function ()
80829
80723
  {
80830
- const
80831
- executionContext = this .getExecutionContext (),
80832
- newTransformNode = new Grouping_Transform (executionContext),
80833
- modelMatrix = new Numbers_Matrix4 (... group [0] .modelViewMatrix);
80834
-
80835
80724
  const
80836
80725
  t = new Numbers_Vector3 (),
80837
80726
  r = new Numbers_Rotation4 (),
80838
80727
  s = new Numbers_Vector3 (),
80839
80728
  so = new Numbers_Rotation4 ();
80840
80729
 
80841
- modelMatrix .get (t, r, s, so);
80730
+ return function (group, visibleNodes)
80731
+ {
80732
+ const
80733
+ executionContext = this .getExecutionContext (),
80734
+ newTransformNode = new Grouping_Transform (executionContext),
80735
+ modelMatrix = new Numbers_Matrix4 (... group [0] .modelViewMatrix);
80736
+
80737
+ modelMatrix .get (t, r, s, so);
80842
80738
 
80843
- newTransformNode ._translation = t;
80844
- newTransformNode ._rotation = r;
80845
- newTransformNode ._scale = s;
80846
- newTransformNode ._scaleOrientation = so;
80739
+ newTransformNode ._translation = t;
80740
+ newTransformNode ._rotation = r;
80741
+ newTransformNode ._scale = s;
80742
+ newTransformNode ._scaleOrientation = so;
80847
80743
 
80848
- for (const { shapeNode } of group)
80849
- newTransformNode ._children .push (shapeNode);
80744
+ for (const { shapeNode } of group)
80745
+ newTransformNode ._children .push (shapeNode);
80850
80746
 
80851
- newTransformNode .setPrivate (true);
80852
- newTransformNode .setup ();
80747
+ newTransformNode .setPrivate (true);
80748
+ newTransformNode .setup ();
80853
80749
 
80854
- return newTransformNode;
80855
- },
80750
+ visibleNodes .push (newTransformNode);
80751
+ };
80752
+ })(),
80856
80753
  dispose ()
80857
80754
  {
80858
80755
  Grouping_X3DBoundedObject .prototype .dispose .call (this);
@@ -83535,7 +83432,7 @@ Object .assign (Object .setPrototypeOf (X3DLightNode .prototype, Core_X3DChildNo
83535
83432
  {
83536
83433
  const lightContainer = renderObject .getLightContainer ();
83537
83434
 
83538
- lightContainer .modelViewMatrix .pushMatrix (renderObject .getModelViewMatrix () .get ());
83435
+ lightContainer .modelViewMatrix .push (renderObject .getModelViewMatrix () .get ());
83539
83436
 
83540
83437
  if (this ._global .getValue ())
83541
83438
  {
@@ -83673,7 +83570,7 @@ Object .assign (DirectionalLightContainer .prototype,
83673
83570
  this .groupNode = groupNode;
83674
83571
  this .global = lightNode .getGlobal ();
83675
83572
 
83676
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
83573
+ this .modelViewMatrix .push (modelViewMatrix);
83677
83574
 
83678
83575
  // Get shadow buffer from browser.
83679
83576
 
@@ -83709,8 +83606,8 @@ Object .assign (DirectionalLightContainer .prototype,
83709
83606
  this .shadowBuffer .bind ();
83710
83607
 
83711
83608
  renderObject .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, viewport, viewport));
83712
- renderObject .getProjectionMatrix () .pushMatrix (projectionMatrix);
83713
- renderObject .getModelViewMatrix () .pushMatrix (invLightSpaceMatrix);
83609
+ renderObject .getProjectionMatrix () .push (projectionMatrix);
83610
+ renderObject .getModelViewMatrix () .push (invLightSpaceMatrix);
83714
83611
 
83715
83612
  renderObject .render (Rendering_TraverseType .SHADOW, Grouping_X3DGroupingNode .prototype .traverse, this .groupNode);
83716
83613
 
@@ -83730,7 +83627,10 @@ Object .assign (DirectionalLightContainer .prototype,
83730
83627
  if (!this .shadowBuffer)
83731
83628
  return;
83732
83629
 
83733
- this .shadowMatrix .assign (renderObject .getCameraSpaceMatrix () .get ()) .multRight (this .invLightSpaceProjectionMatrix);
83630
+ this .shadowMatrix
83631
+ .assign (renderObject .getCameraSpaceMatrixArray ())
83632
+ .multRight (this .invLightSpaceProjectionMatrix);
83633
+
83734
83634
  this .shadowMatrixArray .set (this .shadowMatrix);
83735
83635
  },
83736
83636
  setShaderUniforms (gl, shaderObject)
@@ -83934,7 +83834,7 @@ Object .assign (EnvironmentLightContainer .prototype,
83934
83834
  this .lightNode = lightNode;
83935
83835
  this .global = lightNode .getGlobal ();
83936
83836
 
83937
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
83837
+ this .modelViewMatrix .push (modelViewMatrix);
83938
83838
  },
83939
83839
  renderShadowMap (renderObject)
83940
83840
  { },
@@ -84225,7 +84125,7 @@ Object .assign (PointLightContainer .prototype,
84225
84125
 
84226
84126
  this .matrixArray .set (modelViewMatrix .submatrix .inverse ());
84227
84127
 
84228
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
84128
+ this .modelViewMatrix .push (modelViewMatrix);
84229
84129
 
84230
84130
  // Get shadow buffer from browser.
84231
84131
 
@@ -84263,8 +84163,8 @@ Object .assign (PointLightContainer .prototype,
84263
84163
  projectionMatrix = Geometry_Camera .perspective2 (Math_Algorithm .radians (90), 0.125, 10000, viewport [2], viewport [3], this .projectionMatrix); // Use higher far value for better precision.
84264
84164
 
84265
84165
  renderObject .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, viewport, viewport));
84266
- renderObject .getProjectionMatrix () .pushMatrix (this .projectionMatrix);
84267
- renderObject .getModelViewMatrix () .pushMatrix (orientationMatrices [i]);
84166
+ renderObject .getProjectionMatrix () .push (this .projectionMatrix);
84167
+ renderObject .getModelViewMatrix () .push (orientationMatrices [i]);
84268
84168
  renderObject .getModelViewMatrix () .multLeft (invLightSpaceMatrix);
84269
84169
 
84270
84170
  renderObject .render (Rendering_TraverseType .SHADOW, Grouping_X3DGroupingNode .prototype .traverse, this .groupNode);
@@ -84286,7 +84186,10 @@ Object .assign (PointLightContainer .prototype,
84286
84186
  if (!this .shadowBuffer)
84287
84187
  return;
84288
84188
 
84289
- this .shadowMatrix .assign (renderObject .getCameraSpaceMatrix () .get ()) .multRight (this .invLightSpaceProjectionMatrix);
84189
+ this .shadowMatrix
84190
+ .assign (renderObject .getCameraSpaceMatrixArray ())
84191
+ .multRight (this .invLightSpaceProjectionMatrix);
84192
+
84290
84193
  this .shadowMatrixArray .set (this .shadowMatrix);
84291
84194
  },
84292
84195
  setShaderUniforms (gl, shaderObject)
@@ -84530,7 +84433,7 @@ Object .assign (SpotLightContainer .prototype,
84530
84433
 
84531
84434
  this .matrixArray .set (modelViewMatrix .submatrix .inverse ());
84532
84435
 
84533
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
84436
+ this .modelViewMatrix .push (modelViewMatrix);
84534
84437
 
84535
84438
  // Get shadow buffer from browser.
84536
84439
 
@@ -84571,8 +84474,8 @@ Object .assign (SpotLightContainer .prototype,
84571
84474
  this .shadowBuffer .bind ();
84572
84475
 
84573
84476
  renderObject .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, viewport, viewport));
84574
- renderObject .getProjectionMatrix () .pushMatrix (projectionMatrix);
84575
- renderObject .getModelViewMatrix () .pushMatrix (invLightSpaceMatrix);
84477
+ renderObject .getProjectionMatrix () .push (projectionMatrix);
84478
+ renderObject .getModelViewMatrix () .push (invLightSpaceMatrix);
84576
84479
 
84577
84480
  renderObject .render (Rendering_TraverseType .SHADOW, Grouping_X3DGroupingNode .prototype .traverse, this .groupNode);
84578
84481
 
@@ -84597,7 +84500,10 @@ Object .assign (SpotLightContainer .prototype,
84597
84500
  if (!this .shadowBuffer)
84598
84501
  return;
84599
84502
 
84600
- this .shadowMatrix .assign (renderObject .getCameraSpaceMatrix () .get ()) .multRight (this .invLightSpaceProjectionMatrix);
84503
+ this .shadowMatrix
84504
+ .assign (renderObject .getCameraSpaceMatrixArray ())
84505
+ .multRight (this .invLightSpaceProjectionMatrix);
84506
+
84601
84507
  this .shadowMatrixArray .set (this .shadowMatrix);
84602
84508
  },
84603
84509
  setShaderUniforms (gl, shaderObject)
@@ -90553,7 +90459,7 @@ mediump samplerCube textureCube;
90553
90459
 
90554
90460
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90555
90461
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90556
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(362);
90462
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(375);
90557
90463
  /*******************************************************************************
90558
90464
  *
90559
90465
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -91753,7 +91659,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91753
91659
  if (location0 === -1)
91754
91660
  return;
91755
91661
 
91756
- stride = stride || 36;
91662
+ stride ||= 36;
91757
91663
 
91758
91664
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91759
91665
 
@@ -91772,7 +91678,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91772
91678
  if (location0 === -1)
91773
91679
  return;
91774
91680
 
91775
- stride = stride || 64;
91681
+ stride ||= 64;
91776
91682
 
91777
91683
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91778
91684
 
@@ -91895,7 +91801,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91895
91801
  {
91896
91802
  const location0 = this .x3d_InstanceMatrix;
91897
91803
 
91898
- stride = stride || 64; // 4 Bytes * 16
91804
+ stride ||= 64; // 4 Bytes * 16
91899
91805
 
91900
91806
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91901
91807
 
@@ -91912,7 +91818,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91912
91818
  {
91913
91819
  const location0 = this .x3d_InstanceNormalMatrix;
91914
91820
 
91915
- stride = stride || 36; // 4 Bytes * 9
91821
+ stride ||= 36; // 4 Bytes * 9
91916
91822
 
91917
91823
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91918
91824
 
@@ -93997,63 +93903,29 @@ return pointSize+1.0-step(pointSize,1.0);
93997
93903
 
93998
93904
  /* harmony default export */ const PointSize2_glsl = (x_ite_Namespace .add ("PointSize2.glsl", PointSize2_glsl_default_));
93999
93905
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl2/common/Shadow2.glsl.js
93906
+ const maxLights = 8;
93907
+
94000
93908
  const Shadow2_glsl_default_ = /* glsl */ `
94001
93909
  #if defined(X3D_FRAGMENT_SHADER)&&defined(X3D_SHADOWS)
94002
93910
  uniform sampler2D x3d_ShadowMap[X3D_NUM_LIGHTS];
94003
93911
  #if __VERSION__==100
94004
93912
  float getShadowDepth(const in int index,const in vec2 shadowCoord){
94005
- #if X3D_NUM_LIGHTS>0
94006
- if(index==0)return texture2D(x3d_ShadowMap[0],shadowCoord).r;
94007
- #endif
94008
- #if X3D_NUM_LIGHTS>1
94009
- if(index==1)return texture2D(x3d_ShadowMap[1],shadowCoord).r;
94010
- #endif
94011
- #if X3D_NUM_LIGHTS>2
94012
- if(index==2)return texture2D(x3d_ShadowMap[2],shadowCoord).r;
94013
- #endif
94014
- #if X3D_NUM_LIGHTS>3
94015
- if(index==3)return texture2D(x3d_ShadowMap[3],shadowCoord).r;
94016
- #endif
94017
- #if X3D_NUM_LIGHTS>4
94018
- if(index==4)return texture2D(x3d_ShadowMap[4],shadowCoord).r;
94019
- #endif
94020
- #if X3D_NUM_LIGHTS>5
94021
- if(index==5)return texture2D(x3d_ShadowMap[5],shadowCoord).r;
94022
- #endif
94023
- #if X3D_NUM_LIGHTS>6
94024
- if(index==6)return texture2D(x3d_ShadowMap[6],shadowCoord).r;
94025
- #endif
94026
- #if X3D_NUM_LIGHTS>7
94027
- if(index==7)return texture2D(x3d_ShadowMap[7],shadowCoord).r;
93913
+ ${Array .from ({ length: maxLights }, (_, i) => /* glsl */ `
93914
+ #if X3D_NUM_LIGHTS > ${i}
93915
+ if (index == ${i})
93916
+ return texture2D (x3d_ShadowMap [${i}], shadowCoord) .r;
94028
93917
  #endif
93918
+ `) .join ("\n")}
94029
93919
  return 0.0;}
94030
93920
  #else
94031
93921
  float getShadowDepth(const in int index,const in vec2 shadowCoord){switch(index){
94032
- #if X3D_NUM_LIGHTS>0
94033
- case 0:{return texture(x3d_ShadowMap[0],shadowCoord).r;}
94034
- #endif
94035
- #if X3D_NUM_LIGHTS>1
94036
- case 1:{return texture(x3d_ShadowMap[1],shadowCoord).r;}
94037
- #endif
94038
- #if X3D_NUM_LIGHTS>2
94039
- case 2:{return texture(x3d_ShadowMap[2],shadowCoord).r;}
94040
- #endif
94041
- #if X3D_NUM_LIGHTS>3
94042
- case 3:{return texture(x3d_ShadowMap[3],shadowCoord).r;}
94043
- #endif
94044
- #if X3D_NUM_LIGHTS>4
94045
- case 4:{return texture(x3d_ShadowMap[4],shadowCoord).r;}
94046
- #endif
94047
- #if X3D_NUM_LIGHTS>5
94048
- case 5:{return texture(x3d_ShadowMap[5],shadowCoord).r;}
94049
- #endif
94050
- #if X3D_NUM_LIGHTS>6
94051
- case 6:{return texture(x3d_ShadowMap[6],shadowCoord).r;}
94052
- #endif
94053
- #if X3D_NUM_LIGHTS>7
94054
- case 7:{return texture(x3d_ShadowMap[7],shadowCoord).r;}
93922
+ ${Array .from ({ length: maxLights }, (_, i) => /* glsl */ `
93923
+ #if X3D_NUM_LIGHTS > ${i}
93924
+ case ${i}:
93925
+ return texture (x3d_ShadowMap [${i}], shadowCoord) .r;
94055
93926
  #endif
94056
- default:{return 0.0;}}}
93927
+ `) .join ("\n")}
93928
+ }return 0.0;}
94057
93929
  #endif
94058
93930
  float texture2DCompare(const in int index,const in vec2 texCoord,const in float compare){float shadowDepth=getShadowDepth(index,texCoord);return(1.0-step(1.0,shadowDepth))*step(shadowDepth,compare);}float texture2DShadowLerp(const in int index,const in vec2 texelSize,const in float shadowMapSize,const in vec2 texCoord,const in float compare){const vec2 offset=vec2(0.0,1.0);vec2 centroidTexCoord=floor(texCoord*shadowMapSize+0.5)/shadowMapSize;float lb=texture2DCompare(index,centroidTexCoord+texelSize*offset.xx,compare);float lt=texture2DCompare(index,centroidTexCoord+texelSize*offset.xy,compare);float rb=texture2DCompare(index,centroidTexCoord+texelSize*offset.yx,compare);float rt=texture2DCompare(index,centroidTexCoord+texelSize*offset.yy,compare);vec2 f=fract(texCoord*shadowMapSize+0.5);float a=mix(lb,lt,f.y);float b=mix(rb,rt,f.y);float c=mix(a,b,f.x);return c;}vec2 cubeToUVCompact(in vec3 v,const float texelSizeY){vec3 absV=abs(v);float scaleToCube=1.0/max(absV.x,max(absV.y,absV.z));absV*=scaleToCube;v*=scaleToCube*(1.0-2.0*texelSizeY);vec2 planar=v.xy;float almostATexel=1.5*texelSizeY;float almostOne=1.0-almostATexel;if(absV.z>=almostOne){if(v.z>0.0)planar.x=4.0-v.x;}else if(absV.x>=almostOne){float signX=sign(v.x);planar.x=v.z*signX+2.0*signX;}else if(absV.y>=almostOne){float signY=sign(v.y);planar.x=(v.x+0.5+signY)*2.0;planar.y=v.z*signY-2.0;}return vec2(0.125,0.25)*planar+vec2(0.375,0.75);}mat4 getPointLightRotations(const in vec3 vector){mat4 rotations[6];rotations[0]=mat4(0,0,1,0,0,1,0,0,-1,0,0,0,0,0,0,1);rotations[1]=mat4(0,0,-1,0,0,1,0,0,1,0,0,0,0,0,0,1);rotations[2]=mat4(-1,0,0,0,0,1,0,0,0,0,-1,0,0,0,0,1);rotations[3]=mat4(1,0,0,0,0,1,0,0,0,0,1,0,0,0,0,1);rotations[4]=mat4(1,0,0,0,0,0,1,0,0,-1,0,0,0,0,0,1);rotations[5]=mat4(1,0,0,0,0,0,-1,0,0,1,0,0,0,0,0,1);vec3 a=abs(vector.xyz);if(a.x>a.y){if(a.x>a.z)return vector.x>0.0?rotations[1]:rotations[0];else return vector.z>0.0?rotations[2]:rotations[3];}else{if(a.y>a.z)return vector.y>0.0?rotations[5]:rotations[4];else return vector.z>0.0?rotations[2]:rotations[3];}return rotations[3];}float getShadowIntensity(const in int index,const in x3d_LightSourceParameters light){if(light.type==x3d_PointLight){const mat4 biasMatrix=mat4(0.5,0.0,0.0,0.0,0.0,0.5,0.0,0.0,0.0,0.0,0.5,0.0,0.5,0.5,0.5,1.0);const mat4 projectionMatrix=mat4(1.0,0.0,0.0,0.0,0.0,0.5,0.0,0.0,0.0,0.0,-1.000025000312504,-1.0,0,0.0,-0.25000312503906297,0.0);vec2 texelSize=vec2(1.0)/(float(light.shadowMapSize)*vec2(4.0,2.0));vec4 shadowCoord=light.shadowMatrix*vec4(vertex,1.0);vec3 lightToPosition=shadowCoord.xyz;shadowCoord=biasMatrix*(projectionMatrix*(getPointLightRotations(lightToPosition)*shadowCoord));shadowCoord.z-=light.shadowBias;shadowCoord.xyz/=shadowCoord.w;
94059
93931
  #if defined(X3D_PCF_FILTERING)||defined(X3D_PCF_SOFT_FILTERING)
@@ -95756,7 +95628,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95756
95628
 
95757
95629
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
95758
95630
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95759
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(362);
95631
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(375);
95760
95632
  /*******************************************************************************
95761
95633
  *
95762
95634
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96354,7 +96226,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96354
96226
 
96355
96227
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96356
96228
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96357
- /* provided dependency */ var Appearance_$ = __webpack_require__(362);
96229
+ /* provided dependency */ var Appearance_$ = __webpack_require__(375);
96358
96230
  /*******************************************************************************
96359
96231
  *
96360
96232
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96554,29 +96426,27 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96554
96426
  {
96555
96427
  this .stylePropertiesNode [0] = Base_X3DCast (Base_X3DConstants .PointProperties, this ._pointProperties);
96556
96428
 
96557
- if (!this .stylePropertiesNode [0])
96558
- {
96559
- const browser = this .getBrowser ();
96429
+ if (this .stylePropertiesNode [0])
96430
+ return;
96560
96431
 
96561
- if (browser .getRenderingProperty ("ContentScale") !== 1)
96562
- this .stylePropertiesNode [0] = browser .getDefaultPointProperties ();
96563
- }
96432
+ const browser = this .getBrowser ();
96433
+
96434
+ if (browser .getRenderingProperty ("ContentScale") !== 1)
96435
+ this .stylePropertiesNode [0] = browser .getDefaultPointProperties ();
96564
96436
  },
96565
96437
  set_lineProperties__ ()
96566
96438
  {
96567
- if (this .linePropertiesNode)
96568
- this .linePropertiesNode ._applied .removeInterest ("set_applied__", this);
96439
+ this .linePropertiesNode ?._applied .removeInterest ("set_applied__", this);
96569
96440
 
96570
96441
  this .linePropertiesNode = Base_X3DCast (Base_X3DConstants .LineProperties, this ._lineProperties);
96571
96442
 
96572
- if (this .linePropertiesNode)
96573
- this .linePropertiesNode ._applied .addInterest ("set_applied__", this);
96443
+ this .linePropertiesNode ?._applied .addInterest ("set_applied__", this);
96574
96444
 
96575
96445
  this .set_applied__ ();
96576
96446
  },
96577
96447
  set_applied__ ()
96578
96448
  {
96579
- if (this .linePropertiesNode && this .linePropertiesNode ._applied .getValue ())
96449
+ if (this .linePropertiesNode ?._applied .getValue ())
96580
96450
  {
96581
96451
  this .stylePropertiesNode [1] = this .linePropertiesNode;
96582
96452
  }
@@ -96592,13 +96462,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96592
96462
  },
96593
96463
  set_fillProperties__ ()
96594
96464
  {
96595
- if (this .stylePropertiesNode [2])
96596
- this .stylePropertiesNode [2] ._transparent .removeInterest ("set_transparent__", this);
96465
+ this .stylePropertiesNode [2] ?._transparent .removeInterest ("set_transparent__", this);
96597
96466
 
96598
96467
  this .stylePropertiesNode [2] = Base_X3DCast (Base_X3DConstants .FillProperties, this ._fillProperties);
96599
96468
 
96600
- if (this .stylePropertiesNode [2])
96601
- this .stylePropertiesNode [2] ._transparent .addInterest ("set_transparent__", this);
96469
+ this .stylePropertiesNode [2] ?._transparent .addInterest ("set_transparent__", this);
96602
96470
 
96603
96471
  this .stylePropertiesNode [3] = this .stylePropertiesNode [2];
96604
96472
  },
@@ -96610,16 +96478,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96610
96478
  this .materialNode ._transmission .removeInterest ("set_transmission__", this);
96611
96479
  }
96612
96480
 
96613
- this .materialNode = Base_X3DCast (Base_X3DConstants .X3DMaterialNode, this ._material);
96481
+ this .materialNode = Base_X3DCast (Base_X3DConstants .X3DMaterialNode, this ._material)
96482
+ ?? this .getBrowser () .getDefaultMaterial ();
96614
96483
 
96615
- if (!this .materialNode)
96616
- this .materialNode = this .getBrowser () .getDefaultMaterial ();
96617
-
96618
- if (this .materialNode)
96619
- {
96620
- this .materialNode ._transparent .addInterest ("set_transparent__", this);
96621
- this .materialNode ._transmission .addInterest ("set_transmission__", this);
96622
- }
96484
+ this .materialNode ._transparent .addInterest ("set_transparent__", this);
96485
+ this .materialNode ._transmission .addInterest ("set_transmission__", this);
96623
96486
 
96624
96487
  // Depreciated TwoSidedMaterial handling.
96625
96488
 
@@ -96628,13 +96491,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96628
96491
  },
96629
96492
  set_backMaterial__ ()
96630
96493
  {
96631
- if (this .backMaterialNode)
96632
- this .backMaterialNode ._transparent .removeInterest ("set_transparent__", this);
96494
+ this .backMaterialNode ?._transparent .removeInterest ("set_transparent__", this);
96633
96495
 
96634
96496
  this .backMaterialNode = Base_X3DCast (Base_X3DConstants .X3DOneSidedMaterialNode, this ._backMaterial);
96635
96497
 
96636
- if (this .backMaterialNode)
96637
- this .backMaterialNode ._transparent .addInterest ("set_transparent__", this);
96498
+ this .backMaterialNode ?._transparent .addInterest ("set_transparent__", this);
96638
96499
 
96639
96500
  // Depreciated TwoSidedMaterial handling.
96640
96501
 
@@ -96665,13 +96526,10 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96665
96526
  },
96666
96527
  set_textureTransform__ ()
96667
96528
  {
96668
- if (this .textureTransformNode)
96669
- this .textureTransformNode .removeInterest ("updateTextureTransformMapping", this);
96670
-
96671
- this .textureTransformNode = Base_X3DCast (Base_X3DConstants .X3DTextureTransformNode, this ._textureTransform);
96529
+ this .textureTransformNode ?.removeInterest ("updateTextureTransformMapping", this);
96672
96530
 
96673
- if (!this .textureTransformNode)
96674
- this .textureTransformNode = this .getBrowser () .getDefaultTextureTransform ();
96531
+ this .textureTransformNode = Base_X3DCast (Base_X3DConstants .X3DTextureTransformNode, this ._textureTransform)
96532
+ ?? this .getBrowser () .getDefaultTextureTransform ();
96675
96533
 
96676
96534
  this .textureTransformNode .addInterest ("updateTextureTransformMapping", this);
96677
96535
 
@@ -98739,18 +98597,12 @@ Object .assign (Object .setPrototypeOf (X3DShapeNode .prototype, Core_X3DChildNo
98739
98597
  this .appearanceNode ._transmission .removeInterest ("set_transmission__", this);
98740
98598
  }
98741
98599
 
98742
- this .appearanceNode = Base_X3DCast (Base_X3DConstants .X3DAppearanceNode, this ._appearance);
98600
+ this .appearanceNode = Base_X3DCast (Base_X3DConstants .X3DAppearanceNode, this ._appearance)
98601
+ ?? this .getBrowser () .getDefaultAppearance ();
98743
98602
 
98744
- if (this .appearanceNode)
98745
- {
98746
- this .appearanceNode ._alphaMode .addInterest ("set_transparent__", this);
98747
- this .appearanceNode ._transparent .addInterest ("set_transparent__", this);
98748
- this .appearanceNode ._transmission .addInterest ("set_transmission__", this);
98749
- }
98750
- else
98751
- {
98752
- this .appearanceNode = this .getBrowser () .getDefaultAppearance ();
98753
- }
98603
+ this .appearanceNode ._alphaMode .addInterest ("set_transparent__", this);
98604
+ this .appearanceNode ._transparent .addInterest ("set_transparent__", this);
98605
+ this .appearanceNode ._transmission .addInterest ("set_transmission__", this);
98754
98606
 
98755
98607
  this .set_transparent__ ();
98756
98608
  this .set_transmission__ ();
@@ -104609,8 +104461,8 @@ const GifMedia_default_ = GifMedia;
104609
104461
 
104610
104462
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
104611
104463
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
104612
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(362);
104613
- /* provided dependency */ var SuperGif = __webpack_require__(229);
104464
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(375);
104465
+ /* provided dependency */ var SuperGif = __webpack_require__(776);
104614
104466
  /*******************************************************************************
104615
104467
  *
104616
104468
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107078,7 +106930,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
107078
106930
 
107079
106931
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
107080
106932
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
107081
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(362);
106933
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(375);
107082
106934
  /*******************************************************************************
107083
106935
  *
107084
106936
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107708,7 +107560,7 @@ const TextCompression_default_ = TextCompression;
107708
107560
 
107709
107561
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
107710
107562
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107711
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(362);
107563
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(375);
107712
107564
  /*******************************************************************************
107713
107565
  *
107714
107566
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108355,7 +108207,7 @@ const RenderingProperties_default_ = RenderingProperties;
108355
108207
 
108356
108208
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108357
108209
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
108358
- /* provided dependency */ var Notification_$ = __webpack_require__(362);
108210
+ /* provided dependency */ var Notification_$ = __webpack_require__(375);
108359
108211
  /*******************************************************************************
108360
108212
  *
108361
108213
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108477,8 +108329,8 @@ const Notification_default_ = Notification;
108477
108329
 
108478
108330
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108479
108331
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
108480
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(74);
108481
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(362);
108332
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(123);
108333
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(375);
108482
108334
  /*******************************************************************************
108483
108335
  *
108484
108336
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111213,7 +111065,7 @@ const DataStorage_default_ = DataStorage;
111213
111065
 
111214
111066
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111215
111067
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
111216
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(362);
111068
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(375);
111217
111069
  /*******************************************************************************
111218
111070
  *
111219
111071
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113824,8 +113676,8 @@ const X3DViewer_default_ = X3DViewer;
113824
113676
 
113825
113677
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
113826
113678
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
113827
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(48);
113828
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(362);
113679
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(415);
113680
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(375);
113829
113681
  /*******************************************************************************
113830
113682
  *
113831
113683
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114740,8 +114592,8 @@ const ExamineViewer_default_ = ExamineViewer;
114740
114592
 
114741
114593
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
114742
114594
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
114743
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(48);
114744
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(362);
114595
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(415);
114596
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(375);
114745
114597
  /*******************************************************************************
114746
114598
  *
114747
114599
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115756,8 +115608,8 @@ const FlyViewer_default_ = FlyViewer;
115756
115608
 
115757
115609
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
115758
115610
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
115759
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(48);
115760
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(362);
115611
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(415);
115612
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(375);
115761
115613
  /*******************************************************************************
115762
115614
  *
115763
115615
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116086,8 +115938,8 @@ const NoneViewer_default_ = NoneViewer;
116086
115938
 
116087
115939
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
116088
115940
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
116089
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(48);
116090
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(362);
115941
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(415);
115942
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(375);
116091
115943
  /*******************************************************************************
116092
115944
  *
116093
115945
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117232,8 +117084,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117232
117084
 
117233
117085
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117234
117086
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
117235
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(48);
117236
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(362);
117087
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(415);
117088
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(375);
117237
117089
  /*******************************************************************************
117238
117090
  *
117239
117091
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118642,10 +118494,16 @@ class Lock
118642
118494
 
118643
118495
  const p = new Promise (async (resolve, reject) =>
118644
118496
  {
118645
- if (current .length)
118497
+ try
118498
+ {
118646
118499
  await Promise .allSettled (current);
118647
118500
 
118648
- callback () .then (resolve) .catch (reject);
118501
+ resolve (await callback ());
118502
+ }
118503
+ catch (error)
118504
+ {
118505
+ reject (error);
118506
+ }
118649
118507
  })
118650
118508
  .finally (() =>
118651
118509
  {
@@ -118666,7 +118524,7 @@ const Lock_default_ = Lock;
118666
118524
 
118667
118525
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
118668
118526
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
118669
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(362);
118527
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(375);
118670
118528
  /*******************************************************************************
118671
118529
  *
118672
118530
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119199,23 +119057,29 @@ Object .assign (X3DRenderingContext .prototype,
119199
119057
  if (this [_session] === window)
119200
119058
  return;
119201
119059
 
119202
- this .endEvents () .removeInterest ("endFrame", this);
119203
-
119204
- this [_session] .end () .catch (Function .prototype);
119205
-
119206
- for (const frameBuffer of this [_frameBuffers])
119207
- frameBuffer .dispose ();
119060
+ try
119061
+ {
119062
+ await this [_session] .end ();
119063
+ }
119064
+ catch
119065
+ { }
119066
+ finally
119067
+ {
119068
+ this .endEvents () .removeInterest ("endFrame", this);
119208
119069
 
119209
- this [_frameBuffers] .length = 0;
119070
+ for (const frameBuffer of this [_frameBuffers])
119071
+ frameBuffer .dispose ();
119210
119072
 
119211
- this [_session] = window;
119212
- this [_baseReferenceSpace] = null;
119213
- this [_referenceSpace] = null;
119214
- this [_baseLayer] = null;
119215
- this [_defaultFrameBuffer] = null;
119216
- this [_pose] = null;
119073
+ this [_frameBuffers] = [ ];
119074
+ this [_session] = window;
119075
+ this [_baseReferenceSpace] = null;
119076
+ this [_referenceSpace] = null;
119077
+ this [_baseLayer] = null;
119078
+ this [_defaultFrameBuffer] = null;
119079
+ this [_pose] = null;
119217
119080
 
119218
- this .reshape ();
119081
+ this .reshape ();
119082
+ }
119219
119083
  });
119220
119084
  },
119221
119085
  getSession ()
@@ -119276,12 +119140,14 @@ Object .assign (X3DRenderingContext .prototype,
119276
119140
  cameraSpaceMatrix: new Numbers_Matrix4 (),
119277
119141
  viewMatrix: new Numbers_Matrix4 (),
119278
119142
  matrix: new Numbers_Matrix4 (),
119143
+ inverse: new Numbers_Matrix4 (),
119279
119144
  };
119280
119145
 
119281
119146
  pv .projectionMatrix .assign (view .projectionMatrix);
119282
119147
  pv .cameraSpaceMatrix .assign (view .transform .matrix);
119283
119148
  pv .viewMatrix .assign (view .transform .inverse .matrix);
119284
119149
  pv .matrix .assign (pose .transform .matrix) .multRight (view .transform .inverse .matrix);
119150
+ pv .inverse .assign (pv .matrix) .inverse ();
119285
119151
 
119286
119152
  ++ v;
119287
119153
  }
@@ -119964,7 +119830,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
119964
119830
 
119965
119831
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
119966
119832
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
119967
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(362);
119833
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(375);
119968
119834
  const KTXDecoder_default_ = class KTXDecoder
119969
119835
  {
119970
119836
  constructor (gl, externalKtxlib, scriptDir)
@@ -121541,7 +121407,7 @@ const Components_default_ = Components;
121541
121407
 
121542
121408
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
121543
121409
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
121544
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(362);
121410
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(375);
121545
121411
  /*******************************************************************************
121546
121412
  * MIT License
121547
121413
  *
@@ -122807,7 +122673,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
122807
122673
 
122808
122674
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
122809
122675
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
122810
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(362);
122676
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(375);
122811
122677
  /*******************************************************************************
122812
122678
  *
122813
122679
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -123874,7 +123740,7 @@ const X3DBrowser_default_ = X3DBrowser;
123874
123740
 
123875
123741
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
123876
123742
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
123877
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(362);
123743
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(375);
123878
123744
  /*******************************************************************************
123879
123745
  *
123880
123746
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124141,8 +124007,8 @@ const QuickSort_default_ = QuickSort;
124141
124007
 
124142
124008
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124143
124009
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124144
- /* provided dependency */ var jquery_$ = __webpack_require__(362);
124145
- /* provided dependency */ var pako = __webpack_require__(82);
124010
+ /* provided dependency */ var jquery_$ = __webpack_require__(375);
124011
+ /* provided dependency */ var pako = __webpack_require__(671);
124146
124012
  Object .assign (jquery_$,
124147
124013
  {
124148
124014
  decodeText (input)
@@ -124218,13 +124084,13 @@ const jquery_default_ = jquery_$;
124218
124084
 
124219
124085
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124220
124086
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
124221
- /* provided dependency */ var libtess_libtess = __webpack_require__(555);
124087
+ /* provided dependency */ var libtess_libtess = __webpack_require__(660);
124222
124088
  const libtess_default_ = libtess_libtess;
124223
124089
  ;
124224
124090
 
124225
124091
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124226
124092
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
124227
- /* provided dependency */ var X3D_$ = __webpack_require__(362);
124093
+ /* provided dependency */ var X3D_$ = __webpack_require__(375);
124228
124094
  /*******************************************************************************
124229
124095
  *
124230
124096
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124528,7 +124394,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
124528
124394
 
124529
124395
  // Assign X3D to global namespace.
124530
124396
 
124531
- window [Symbol .for ("X_ITE.X3D-10.4.1")] = x_ite_X3D;
124397
+ window [Symbol .for ("X_ITE.X3D-10.4.2")] = x_ite_X3D;
124532
124398
 
124533
124399
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
124534
124400