x_ite 10.4.0 → 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.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v10.4.0 */
1
+ /* X_ITE v10.4.2 */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
4
  module.exports = factory();
@@ -12,10 +12,10 @@
12
12
  return /******/ (() => { // webpackBootstrap
13
13
  /******/ var __webpack_modules__ = ({
14
14
 
15
- /***/ 543:
15
+ /***/ 123:
16
16
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
17
17
 
18
- /* provided dependency */ var jQuery = __webpack_require__(723);
18
+ /* provided dependency */ var jQuery = __webpack_require__(375);
19
19
  /**
20
20
  * @preserve jquery.fullscreen 1.1.5
21
21
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -211,7 +211,7 @@ installFullScreenHandlers();
211
211
 
212
212
  /***/ }),
213
213
 
214
- /***/ 467:
214
+ /***/ 415:
215
215
  /***/ ((module, exports, __webpack_require__) => {
216
216
 
217
217
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -225,7 +225,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
225
225
  (function (factory) {
226
226
  if ( true ) {
227
227
  // AMD. Register as an anonymous module.
228
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(723)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
228
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(375)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
229
229
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
230
230
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
231
231
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -436,7 +436,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
436
436
 
437
437
  /***/ }),
438
438
 
439
- /***/ 723:
439
+ /***/ 375:
440
440
  /***/ (function(module, exports) {
441
441
 
442
442
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11160,7 +11160,7 @@ return jQuery;
11160
11160
 
11161
11161
  /***/ }),
11162
11162
 
11163
- /***/ 824:
11163
+ /***/ 660:
11164
11164
  /***/ ((module) => {
11165
11165
 
11166
11166
  /**
@@ -15939,7 +15939,7 @@ if (true) {
15939
15939
 
15940
15940
  /***/ }),
15941
15941
 
15942
- /***/ 771:
15942
+ /***/ 671:
15943
15943
  /***/ (function(__unused_webpack_module, exports) {
15944
15944
 
15945
15945
 
@@ -19184,7 +19184,7 @@ if (true) {
19184
19184
 
19185
19185
  /***/ }),
19186
19186
 
19187
- /***/ 372:
19187
+ /***/ 776:
19188
19188
  /***/ (function(module, exports) {
19189
19189
 
19190
19190
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20311,7 +20311,7 @@ Object .defineProperty (Namespace, "add",
20311
20311
  return module;
20312
20312
  }
20313
20313
 
20314
- const X3D = window [Symbol .for ("X_ITE.X3D-10.4.0")];
20314
+ const X3D = window [Symbol .for ("X_ITE.X3D-10.4.2")];
20315
20315
 
20316
20316
  if (X3D)
20317
20317
  X3D [name] = module;
@@ -20871,37 +20871,10 @@ function Generator ({ style = "TIDY", indent = "", precision = 7, doublePrecisio
20871
20871
  this .html = html;
20872
20872
  this .closingTags = html || closingTags;
20873
20873
 
20874
- this .floatFormat = new Intl .NumberFormat ("en",
20875
- {
20876
- notation: "standard",
20877
- maximumSignificantDigits: this .precision,
20878
- useGrouping: false,
20879
- })
20880
- .format;
20881
-
20882
- this .floatExponentialFormat = new Intl .NumberFormat ("en",
20883
- {
20884
- notation: "scientific",
20885
- maximumSignificantDigits: this .precision,
20886
- useGrouping: false,
20887
- })
20888
- .format;
20889
-
20890
- this .doubleFormat = new Intl .NumberFormat ("en",
20891
- {
20892
- notation: "standard",
20893
- maximumSignificantDigits: this .doublePrecision,
20894
- useGrouping: false,
20895
- })
20896
- .format;
20897
-
20898
- this .doubleExponentialFormat = new Intl .NumberFormat ("en",
20899
- {
20900
- notation: "scientific",
20901
- maximumSignificantDigits: this .doublePrecision,
20902
- useGrouping: false,
20903
- })
20904
- .format;
20874
+ this .floatFormat = this .createFloatFormat (this .precision);
20875
+ this .floatExponentialFormat = this .createFloatExponentialFormat (this .precision);
20876
+ this .doubleFormat = this .createFloatFormat (this .doublePrecision);
20877
+ this .doubleExponentialFormat = this .createFloatExponentialFormat (this .doublePrecision);
20905
20878
 
20906
20879
  this .Style (style);
20907
20880
 
@@ -21048,6 +21021,26 @@ Object .assign (Generator .prototype,
21048
21021
 
21049
21022
  return "";
21050
21023
  },
21024
+ createFloatFormat (precision)
21025
+ {
21026
+ return new Intl .NumberFormat ("en",
21027
+ {
21028
+ notation: "standard",
21029
+ maximumSignificantDigits: precision,
21030
+ useGrouping: false,
21031
+ })
21032
+ .format;
21033
+ },
21034
+ createFloatExponentialFormat (precision)
21035
+ {
21036
+ return new Intl .NumberFormat ("en",
21037
+ {
21038
+ notation: "scientific",
21039
+ maximumSignificantDigits: precision,
21040
+ useGrouping: false,
21041
+ })
21042
+ .format;
21043
+ },
21051
21044
  FloatFormat (value)
21052
21045
  {
21053
21046
  if (Number .isFinite (value))
@@ -24699,7 +24692,7 @@ const SFInt32_default_ = SFInt32;
24699
24692
 
24700
24693
 
24701
24694
 
24702
- function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double)
24695
+ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double, properties = { })
24703
24696
  {
24704
24697
  const _formatter = double ? "DoubleFormat" : "FloatFormat";
24705
24698
 
@@ -24712,7 +24705,7 @@ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double)
24712
24705
  },
24713
24706
  });
24714
24707
 
24715
- return Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
24708
+ Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
24716
24709
  {
24717
24710
  *[Symbol .iterator] ()
24718
24711
  {
@@ -24872,7 +24865,33 @@ function SFMatrixPrototypeTemplate (Constructor, TypeName, Matrix, double)
24872
24865
 
24873
24866
  generator .string += generator .JSONNumber (generator [_formatter] (value [last]));
24874
24867
  },
24875
- });
24868
+ },
24869
+ properties);
24870
+
24871
+ for (const key of Object .keys (Constructor .prototype))
24872
+ Object .defineProperty (Constructor .prototype, key, { enumerable: false });
24873
+
24874
+ function defineProperty (i)
24875
+ {
24876
+ Object .defineProperty (Constructor .prototype, i,
24877
+ {
24878
+ get ()
24879
+ {
24880
+ return this .getValue () [i];
24881
+ },
24882
+ set (value)
24883
+ {
24884
+ this .getValue () [i] = value;
24885
+ this .addEvent ();
24886
+ },
24887
+ enumerable: true,
24888
+ });
24889
+ }
24890
+
24891
+ for (let i = 0; i < Matrix .prototype .length; ++ i)
24892
+ defineProperty (i);
24893
+
24894
+ return Constructor;
24876
24895
  }
24877
24896
 
24878
24897
  const SFMatrixPrototypeTemplate_default_ = SFMatrixPrototypeTemplate;
@@ -26623,8 +26642,8 @@ function SFMatrix3Template (TypeName, double)
26623
26642
  r2 = arguments [2];
26624
26643
 
26625
26644
  Base_X3DField .call (this, new Numbers_Matrix3 (r0 .x, r0 .y, r0 .z,
26626
- r1 .x, r1 .y, r1 .z,
26627
- r2 .x, r2 .y, r2 .z));
26645
+ r1 .x, r1 .y, r1 .z,
26646
+ r2 .x, r2 .y, r2 .z));
26628
26647
 
26629
26648
  break;
26630
26649
  }
@@ -26641,7 +26660,7 @@ function SFMatrix3Template (TypeName, double)
26641
26660
  }
26642
26661
  }
26643
26662
 
26644
- Object .assign (Fields_SFMatrixPrototypeTemplate (SFMatrix3, TypeName, Numbers_Matrix3, double),
26663
+ return Fields_SFMatrixPrototypeTemplate (SFMatrix3, TypeName, Numbers_Matrix3, double,
26645
26664
  {
26646
26665
  setTransform: (function ()
26647
26666
  {
@@ -26665,31 +26684,6 @@ function SFMatrix3Template (TypeName, double)
26665
26684
  };
26666
26685
  })(),
26667
26686
  });
26668
-
26669
- for (const key of Object .keys (SFMatrix3 .prototype))
26670
- Object .defineProperty (SFMatrix3 .prototype, key, { enumerable: false });
26671
-
26672
- function defineProperty (i)
26673
- {
26674
- Object .defineProperty (SFMatrix3 .prototype, i,
26675
- {
26676
- get ()
26677
- {
26678
- return this .getValue () [i];
26679
- },
26680
- set (value)
26681
- {
26682
- this .getValue () [i] = +value;
26683
- this .addEvent ();
26684
- },
26685
- enumerable: true,
26686
- });
26687
- }
26688
-
26689
- for (let i = 0, length = Numbers_Matrix3 .prototype .length; i < length; ++ i)
26690
- defineProperty (i);
26691
-
26692
- return SFMatrix3;
26693
26687
  }
26694
26688
 
26695
26689
  const SFMatrix3 = {
@@ -29058,9 +29052,9 @@ function SFMatrix4Template (TypeName, double)
29058
29052
  r3 = arguments [3];
29059
29053
 
29060
29054
  Base_X3DField .call (this, new Numbers_Matrix4 (r0 .x, r0 .y, r0 .z, r0 .w,
29061
- r1 .x, r1 .y, r1 .z, r1 .w,
29062
- r2 .x, r2 .y, r2 .z, r2 .w,
29063
- r3 .x, r3 .y, r3 .z, r3 .w));
29055
+ r1 .x, r1 .y, r1 .z, r1 .w,
29056
+ r2 .x, r2 .y, r2 .z, r2 .w,
29057
+ r3 .x, r3 .y, r3 .z, r3 .w));
29064
29058
 
29065
29059
  break;
29066
29060
  }
@@ -29078,32 +29072,7 @@ function SFMatrix4Template (TypeName, double)
29078
29072
  }
29079
29073
  }
29080
29074
 
29081
- Fields_SFMatrixPrototypeTemplate (SFMatrix4, TypeName, Numbers_Matrix4, double);
29082
-
29083
- for (const key of Object .keys (SFMatrix4 .prototype))
29084
- Object .defineProperty (SFMatrix4 .prototype, key, { enumerable: false });
29085
-
29086
- function defineProperty (i)
29087
- {
29088
- Object .defineProperty (SFMatrix4 .prototype, i,
29089
- {
29090
- get ()
29091
- {
29092
- return this .getValue () [i];
29093
- },
29094
- set (value)
29095
- {
29096
- this .getValue () [i] = value;
29097
- this .addEvent ();
29098
- },
29099
- enumerable: true,
29100
- });
29101
- }
29102
-
29103
- for (let i = 0, length = Numbers_Matrix4 .prototype .length; i < length; ++ i)
29104
- defineProperty (i);
29105
-
29106
- return SFMatrix4;
29075
+ return Fields_SFMatrixPrototypeTemplate (SFMatrix4, TypeName, Numbers_Matrix4, double);
29107
29076
  }
29108
29077
 
29109
29078
  const SFMatrix4 = {
@@ -29738,7 +29707,7 @@ const SFNode_default_ = SFNode;
29738
29707
 
29739
29708
 
29740
29709
 
29741
- function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double)
29710
+ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double, properties = { })
29742
29711
  {
29743
29712
  const _formatter = double ? "DoubleFormat" : "FloatFormat";
29744
29713
 
@@ -29751,7 +29720,7 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double)
29751
29720
  },
29752
29721
  });
29753
29722
 
29754
- return Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
29723
+ Object .assign (Object .setPrototypeOf (Constructor .prototype, Base_X3DField .prototype),
29755
29724
  {
29756
29725
  *[Symbol .iterator] ()
29757
29726
  {
@@ -29886,7 +29855,80 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Vector, double)
29886
29855
 
29887
29856
  generator .string += generator .JSONNumber (generator [_formatter] (generator .ToUnit (category, value [last])));
29888
29857
  },
29889
- });
29858
+ },
29859
+ properties);
29860
+
29861
+ for (const key of Object .keys (Constructor .prototype))
29862
+ Object .defineProperty (Constructor .prototype, key, { enumerable: false });
29863
+
29864
+ const x = {
29865
+ get ()
29866
+ {
29867
+ return this .getValue () .x;
29868
+ },
29869
+ set (value)
29870
+ {
29871
+ this .getValue () .x = +value;
29872
+ this .addEvent ();
29873
+ },
29874
+ };
29875
+
29876
+ const y = {
29877
+ get ()
29878
+ {
29879
+ return this .getValue () .y;
29880
+ },
29881
+ set (value)
29882
+ {
29883
+ this .getValue () .y = +value;
29884
+ this .addEvent ();
29885
+ },
29886
+ };
29887
+
29888
+ const z = {
29889
+ get ()
29890
+ {
29891
+ return this .getValue () .z;
29892
+ },
29893
+ set (value)
29894
+ {
29895
+ this .getValue () .z = +value;
29896
+ this .addEvent ();
29897
+ },
29898
+ };
29899
+
29900
+ const w = {
29901
+ get ()
29902
+ {
29903
+ return this .getValue () .w;
29904
+ },
29905
+ set (value)
29906
+ {
29907
+ this .getValue () .w = +value;
29908
+ this .addEvent ();
29909
+ },
29910
+ };
29911
+
29912
+ const indices = [
29913
+ [0, x],
29914
+ [1, y],
29915
+ [2, z],
29916
+ [3, w],
29917
+ ];
29918
+
29919
+ const props = [
29920
+ ["x", Object .assign ({ enumerable: true }, x)],
29921
+ ["y", Object .assign ({ enumerable: true }, y)],
29922
+ ["z", Object .assign ({ enumerable: true }, z)],
29923
+ ["w", Object .assign ({ enumerable: true }, w)],
29924
+ ];
29925
+
29926
+ indices .length = Vector .prototype .length;
29927
+ props .length = Vector .prototype .length;
29928
+
29929
+ Object .defineProperties (Constructor .prototype, Object .fromEntries (indices .concat (props)));
29930
+
29931
+ return Constructor;
29890
29932
  }
29891
29933
 
29892
29934
  const SFVecPrototypeTemplate_default_ = SFVecPrototypeTemplate;
@@ -29968,64 +30010,13 @@ function SFVec3Template (TypeName, double)
29968
30010
  }
29969
30011
  }
29970
30012
 
29971
- Object .assign (Fields_SFVecPrototypeTemplate (SFVec3, TypeName, Numbers_Vector3, double),
30013
+ return Fields_SFVecPrototypeTemplate (SFVec3, TypeName, Numbers_Vector3, double,
29972
30014
  {
29973
30015
  cross (vector)
29974
30016
  {
29975
30017
  return new (this .constructor) (this .getValue () .copy () .cross (vector .getValue ()));
29976
30018
  },
29977
30019
  });
29978
-
29979
- for (const key of Object .keys (SFVec3 .prototype))
29980
- Object .defineProperty (SFVec3 .prototype, key, { enumerable: false });
29981
-
29982
- const x = {
29983
- get ()
29984
- {
29985
- return this .getValue () .x;
29986
- },
29987
- set (value)
29988
- {
29989
- this .getValue () .x = +value;
29990
- this .addEvent ();
29991
- },
29992
- };
29993
-
29994
- const y = {
29995
- get ()
29996
- {
29997
- return this .getValue () .y;
29998
- },
29999
- set (value)
30000
- {
30001
- this .getValue () .y = +value;
30002
- this .addEvent ();
30003
- },
30004
- };
30005
-
30006
- const z = {
30007
- get ()
30008
- {
30009
- return this .getValue () .z;
30010
- },
30011
- set (value)
30012
- {
30013
- this .getValue () .z = +value;
30014
- this .addEvent ();
30015
- },
30016
- };
30017
-
30018
- Object .defineProperties (SFVec3 .prototype,
30019
- {
30020
- 0: x,
30021
- 1: y,
30022
- 2: z,
30023
- x: Object .assign ({ enumerable: true }, x),
30024
- y: Object .assign ({ enumerable: true }, y),
30025
- z: Object .assign ({ enumerable: true }, z),
30026
- });
30027
-
30028
- return SFVec3;
30029
30020
  }
30030
30021
 
30031
30022
  const SFVec3 = {
@@ -30661,44 +30652,7 @@ function SFVec2Template (TypeName, double)
30661
30652
  }
30662
30653
  }
30663
30654
 
30664
- Fields_SFVecPrototypeTemplate (SFVec2, TypeName, Numbers_Vector2, double);
30665
-
30666
- for (const key of Object .keys (SFVec2 .prototype))
30667
- Object .defineProperty (SFVec2 .prototype, key, { enumerable: false });
30668
-
30669
- const x = {
30670
- get ()
30671
- {
30672
- return this .getValue () .x;
30673
- },
30674
- set (value)
30675
- {
30676
- this .getValue () .x = +value;
30677
- this .addEvent ();
30678
- },
30679
- };
30680
-
30681
- const y = {
30682
- get ()
30683
- {
30684
- return this .getValue () .y;
30685
- },
30686
- set (value)
30687
- {
30688
- this .getValue () .y = +value;
30689
- this .addEvent ();
30690
- },
30691
- };
30692
-
30693
- Object .defineProperties (SFVec2 .prototype,
30694
- {
30695
- 0: x,
30696
- 1: y,
30697
- x: Object .assign ({ enumerable: true }, x),
30698
- y: Object .assign ({ enumerable: true }, y),
30699
- });
30700
-
30701
- return SFVec2;
30655
+ return Fields_SFVecPrototypeTemplate (SFVec2, TypeName, Numbers_Vector2, double);
30702
30656
  }
30703
30657
 
30704
30658
  const SFVec2 = {
@@ -30785,72 +30739,7 @@ function SFVec4Template (TypeName, double)
30785
30739
  }
30786
30740
  }
30787
30741
 
30788
- Fields_SFVecPrototypeTemplate (SFVec4, TypeName, Numbers_Vector4, double);
30789
-
30790
- for (const key of Object .keys (SFVec4 .prototype))
30791
- Object .defineProperty (SFVec4 .prototype, key, { enumerable: false });
30792
-
30793
- const x = {
30794
- get ()
30795
- {
30796
- return this .getValue () .x;
30797
- },
30798
- set (value)
30799
- {
30800
- this .getValue () .x = +value;
30801
- this .addEvent ();
30802
- },
30803
- };
30804
-
30805
- const y = {
30806
- get ()
30807
- {
30808
- return this .getValue () .y;
30809
- },
30810
- set (value)
30811
- {
30812
- this .getValue () .y = +value;
30813
- this .addEvent ();
30814
- },
30815
- };
30816
-
30817
- const z = {
30818
- get ()
30819
- {
30820
- return this .getValue () .z;
30821
- },
30822
- set (value)
30823
- {
30824
- this .getValue () .z = +value;
30825
- this .addEvent ();
30826
- },
30827
- };
30828
-
30829
- const w = {
30830
- get ()
30831
- {
30832
- return this .getValue () .w;
30833
- },
30834
- set (value)
30835
- {
30836
- this .getValue () .w = +value;
30837
- this .addEvent ();
30838
- },
30839
- };
30840
-
30841
- Object .defineProperties (SFVec4 .prototype,
30842
- {
30843
- 0: x,
30844
- 1: y,
30845
- 2: z,
30846
- 3: w,
30847
- x: Object .assign ({ enumerable: true }, x),
30848
- y: Object .assign ({ enumerable: true }, y),
30849
- z: Object .assign ({ enumerable: true }, z),
30850
- w: Object .assign ({ enumerable: true }, w),
30851
- });
30852
-
30853
- return SFVec4;
30742
+ return Fields_SFVecPrototypeTemplate (SFVec4, TypeName, Numbers_Vector4, double);
30854
30743
  }
30855
30744
 
30856
30745
  const SFVec4 = {
@@ -34258,7 +34147,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34258
34147
 
34259
34148
  /* harmony default export */ const Base_X3DBaseNode = (x_ite_Namespace .add ("X3DBaseNode", X3DBaseNode_default_));
34260
34149
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34261
- /* provided dependency */ var $ = __webpack_require__(723);
34150
+ /* provided dependency */ var $ = __webpack_require__(375);
34262
34151
  /*******************************************************************************
34263
34152
  *
34264
34153
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34394,7 +34283,7 @@ const Legacy_default_ = Legacy;
34394
34283
  *
34395
34284
  ******************************************************************************/
34396
34285
 
34397
- const BROWSER_VERSION_default_ = "10.4.0";
34286
+ const BROWSER_VERSION_default_ = "10.4.2";
34398
34287
  ;
34399
34288
 
34400
34289
  /* harmony default export */ const BROWSER_VERSION = (x_ite_Namespace .add ("BROWSER_VERSION", BROWSER_VERSION_default_));
@@ -35181,7 +35070,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35181
35070
 
35182
35071
  for (const reference of field .getReferences ())
35183
35072
  {
35184
- initializableReference = initializableReference || reference .isInitializable ();
35073
+ initializableReference ||= reference .isInitializable ();
35185
35074
 
35186
35075
  // Output user defined reference field
35187
35076
 
@@ -35244,7 +35133,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35244
35133
 
35245
35134
  for (const reference of field .getReferences ())
35246
35135
  {
35247
- initializableReference = initializableReference || reference .isInitializable ();
35136
+ initializableReference ||= reference .isInitializable ();
35248
35137
 
35249
35138
  // Output build in reference field
35250
35139
 
@@ -37419,7 +37308,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37419
37308
 
37420
37309
  /* harmony default export */ const Core_X3DBindableNode = (x_ite_Namespace .add ("X3DBindableNode", X3DBindableNode_default_));
37421
37310
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
37422
- /* provided dependency */ var libtess = __webpack_require__(824);
37311
+ /* provided dependency */ var libtess = __webpack_require__(660);
37423
37312
  /*******************************************************************************
37424
37313
  *
37425
37314
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39957,7 +39846,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
39957
39846
 
39958
39847
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (x_ite_Namespace .add ("X3DProtoDeclaration", X3DProtoDeclaration_default_));
39959
39848
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
39960
- /* provided dependency */ var X3DParser_$ = __webpack_require__(723);
39849
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(375);
39961
39850
  /*******************************************************************************
39962
39851
  *
39963
39852
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -40171,39 +40060,38 @@ const X3DParser_default_ = X3DParser;
40171
40060
  *
40172
40061
  ******************************************************************************/
40173
40062
 
40174
- function parse (parser)
40063
+ const functions =
40175
40064
  {
40176
- this .lastIndex = parser .lastIndex;
40177
-
40178
- parser .result = this .exec (parser .input);
40179
-
40180
- if (parser .result)
40065
+ parse (parser)
40181
40066
  {
40182
- parser .lastIndex = this .lastIndex;
40183
- return true;
40184
- }
40067
+ this .lastIndex = parser .lastIndex;
40185
40068
 
40186
- return false;
40187
- }
40069
+ parser .result = this .exec (parser .input);
40188
40070
 
40189
- function lookahead (parser)
40190
- {
40191
- const
40192
- lastIndex = parser .lastIndex,
40193
- result = this .parse (parser);
40071
+ if (parser .result)
40072
+ {
40073
+ parser .lastIndex = this .lastIndex;
40074
+ return true;
40075
+ }
40076
+
40077
+ return false;
40078
+ },
40079
+ lookahead (parser)
40080
+ {
40081
+ const
40082
+ lastIndex = parser .lastIndex,
40083
+ result = this .parse (parser);
40194
40084
 
40195
- parser .lastIndex = lastIndex;
40085
+ parser .lastIndex = lastIndex;
40196
40086
 
40197
- return result;
40198
- }
40087
+ return result;
40088
+ },
40089
+ };
40199
40090
 
40200
40091
  function Expressions (Grammar)
40201
40092
  {
40202
40093
  for (const value of Object .values (Grammar))
40203
- {
40204
- value .parse = parse;
40205
- value .lookahead = lookahead;
40206
- }
40094
+ Object .assign (value, functions);
40207
40095
 
40208
40096
  return Grammar;
40209
40097
  }
@@ -40213,7 +40101,7 @@ const Expressions_default_ = Expressions;
40213
40101
 
40214
40102
  /* harmony default export */ const Parser_Expressions = (x_ite_Namespace .add ("Expressions", Expressions_default_));
40215
40103
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
40216
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(723);
40104
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(375);
40217
40105
  /*******************************************************************************
40218
40106
  *
40219
40107
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42912,7 +42800,7 @@ const VRMLParser_default_ = VRMLParser;
42912
42800
 
42913
42801
  /* harmony default export */ const Parser_VRMLParser = (x_ite_Namespace .add ("VRMLParser", VRMLParser_default_));
42914
42802
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
42915
- /* provided dependency */ var XMLParser_$ = __webpack_require__(723);
42803
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(375);
42916
42804
  /*******************************************************************************
42917
42805
  *
42918
42806
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45085,7 +44973,7 @@ const URLs_default_ = URLs;
45085
44973
 
45086
44974
  /* harmony default export */ const Networking_URLs = (x_ite_Namespace .add ("URLs", URLs_default_));
45087
44975
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
45088
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(723);
44976
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(375);
45089
44977
  /*******************************************************************************
45090
44978
  *
45091
44979
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48729,7 +48617,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
48729
48617
 
48730
48618
  /* harmony default export */ const Parser_GLTF2Parser = (x_ite_Namespace .add ("GLTF2Parser", GLTF2Parser_default_));
48731
48619
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
48732
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(723);
48620
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(375);
48733
48621
  /*******************************************************************************
48734
48622
  *
48735
48623
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48880,7 +48768,7 @@ const GLB2Parser_default_ = GLB2Parser;
48880
48768
 
48881
48769
  /* harmony default export */ const Parser_GLB2Parser = (x_ite_Namespace .add ("GLB2Parser", GLB2Parser_default_));
48882
48770
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
48883
- /* provided dependency */ var OBJParser_$ = __webpack_require__(723);
48771
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(375);
48884
48772
  /*******************************************************************************
48885
48773
  *
48886
48774
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52145,70 +52033,76 @@ const Bezier_default_ = Bezier;
52145
52033
  *
52146
52034
  ******************************************************************************/
52147
52035
 
52148
- function MatrixStack (Type)
52036
+ class MatrixStack extends Array
52149
52037
  {
52150
- return Object .assign ([ new Type () ],
52038
+ #top = 0;
52039
+
52040
+ constructor (Type)
52151
52041
  {
52152
- top: 0,
52153
- set (matrix)
52154
- {
52155
- this [this .top] .assign (matrix);
52156
- },
52157
- get ()
52158
- {
52159
- return this [this .top];
52160
- },
52161
- push ()
52162
- {
52163
- const top = ++ this .top;
52042
+ super ();
52164
52043
 
52165
- if (top < this .length)
52166
- this [top] .assign (this [top - 1]);
52167
- else
52168
- this [top] = this [top - 1] .copy ();
52169
- },
52170
- pushMatrix (matrix)
52171
- {
52172
- const top = ++ this .top;
52044
+ this .push (new Type ());
52045
+ }
52173
52046
 
52174
- if (top < this .length)
52175
- this [top] .assign (matrix);
52176
- else
52177
- this [top] = matrix .copy ();
52178
- },
52179
- pop ()
52180
- {
52181
- -- this .top;
52182
- },
52183
- clear ()
52184
- {
52185
- this .top = 0;
52186
- },
52187
- size ()
52188
- {
52189
- return this .top + 1;
52190
- },
52191
- identity ()
52192
- {
52193
- this [this .top] .identity ();
52194
- },
52195
- multLeft (matrix)
52196
- {
52197
- this [this .top] .multLeft (matrix);
52198
- },
52199
- translate (vector)
52200
- {
52201
- this [this .top] .translate (vector);
52202
- },
52203
- rotate (rotation)
52204
- {
52205
- this [this .top] .rotate (rotation);
52206
- },
52207
- scale (vector)
52208
- {
52209
- this [this .top] .scale (vector);
52210
- },
52211
- });
52047
+ set (matrix)
52048
+ {
52049
+ this [this .#top] .assign (matrix);
52050
+ }
52051
+
52052
+ get ()
52053
+ {
52054
+ return this [this .#top];
52055
+ }
52056
+
52057
+ push (matrix = this [this .#top])
52058
+ {
52059
+ const top = ++ this .#top;
52060
+
52061
+ if (top < this .length)
52062
+ this [top] .assign (matrix);
52063
+ else
52064
+ this [top] = matrix .copy ();
52065
+ }
52066
+
52067
+ pop ()
52068
+ {
52069
+ -- this .#top;
52070
+ }
52071
+
52072
+ clear ()
52073
+ {
52074
+ this .#top = 0;
52075
+ }
52076
+
52077
+ size ()
52078
+ {
52079
+ return this .#top + 1;
52080
+ }
52081
+
52082
+ identity ()
52083
+ {
52084
+ this [this .#top] .identity ();
52085
+ }
52086
+
52087
+ multLeft (matrix)
52088
+ {
52089
+ this [this .#top] .multLeft (matrix);
52090
+ }
52091
+
52092
+ translate (vector)
52093
+ {
52094
+ this [this .#top] .translate (vector);
52095
+ }
52096
+
52097
+ rotate (rotation)
52098
+ {
52099
+ this [this .#top] .rotate (rotation);
52100
+ }
52101
+
52102
+ scale (vector)
52103
+ {
52104
+ this [this .#top] .scale (vector);
52105
+ }
52212
52106
  }
52213
52107
 
52214
52108
  const MatrixStack_default_ = MatrixStack;
@@ -52216,8 +52110,8 @@ const MatrixStack_default_ = MatrixStack;
52216
52110
 
52217
52111
  /* harmony default export */ const Utility_MatrixStack = (x_ite_Namespace .add ("MatrixStack", MatrixStack_default_));
52218
52112
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52219
- /* provided dependency */ var SVGParser_$ = __webpack_require__(723);
52220
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(824);
52113
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(375);
52114
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(660);
52221
52115
  /*******************************************************************************
52222
52116
  *
52223
52117
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54987,7 +54881,7 @@ const SVGParser_default_ = SVGParser;
54987
54881
 
54988
54882
  /* harmony default export */ const Parser_SVGParser = (x_ite_Namespace .add ("SVGParser", SVGParser_default_));
54989
54883
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
54990
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(723);
54884
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(375);
54991
54885
  /*******************************************************************************
54992
54886
  *
54993
54887
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -55419,55 +55313,20 @@ const Plane3_default_ = Plane3;
55419
55313
  * p0 -------- p1 near plane
55420
55314
  */
55421
55315
 
55422
- function ViewVolume (projectionMatrix, viewport, scissor)
55316
+ function ViewVolume (... args)
55423
55317
  {
55424
55318
  this .viewport = new Numbers_Vector4 ();
55425
55319
  this .scissor = new Numbers_Vector4 ();
55426
55320
 
55427
- this .points = [
55428
- new Numbers_Vector3 (),
55429
- new Numbers_Vector3 (),
55430
- new Numbers_Vector3 (),
55431
- new Numbers_Vector3 (),
55432
-
55433
- new Numbers_Vector3 (),
55434
- new Numbers_Vector3 (),
55435
- new Numbers_Vector3 (),
55436
- new Numbers_Vector3 (),
55437
- ];
55438
-
55439
- this .normals = [
55440
- new Numbers_Vector3 (), // front
55441
- new Numbers_Vector3 (), // left
55442
- new Numbers_Vector3 (), // right
55443
- new Numbers_Vector3 (), // top
55444
- new Numbers_Vector3 (), // bottom
55445
- new Numbers_Vector3 (), // back
55446
- ];
55447
-
55448
- this .edges = [
55449
- new Numbers_Vector3 (),
55450
- new Numbers_Vector3 (),
55451
- new Numbers_Vector3 (),
55452
- new Numbers_Vector3 (),
55453
-
55454
- new Numbers_Vector3 (),
55455
- new Numbers_Vector3 (),
55456
- new Numbers_Vector3 (),
55457
- new Numbers_Vector3 (),
55458
- ];
55321
+ this .points = Array .from ({ length: 8 }, () => new Numbers_Vector3 ());
55322
+ // front, left, right, top, bottom, back
55323
+ this .normals = Array .from ({ length: 6 }, () => new Numbers_Vector3 ());
55324
+ this .edges = Array .from ({ length: 8 }, () => new Numbers_Vector3 ());
55325
+ // front, left, right, top, bottom, back
55326
+ this .planes = Array .from ({ length: 6 }, () => new Geometry_Plane3 ());
55459
55327
 
55460
- this .planes = [
55461
- new Geometry_Plane3 (), // front
55462
- new Geometry_Plane3 (), // left
55463
- new Geometry_Plane3 (), // right
55464
- new Geometry_Plane3 (), // top
55465
- new Geometry_Plane3 (), // bottom
55466
- new Geometry_Plane3 (), // back
55467
- ];
55468
-
55469
- if (arguments .length)
55470
- this .set (projectionMatrix, viewport, scissor);
55328
+ if (args .length)
55329
+ this .set (... args);
55471
55330
  }
55472
55331
 
55473
55332
  Object .assign (ViewVolume .prototype,
@@ -55560,58 +55419,21 @@ Object .assign (ViewVolume .prototype,
55560
55419
  },
55561
55420
  intersectsSphere (radius, center)
55562
55421
  {
55563
- const [p0, p1 ,p2, p3, p4, p5, p6, p7] = this .planes;
55564
-
55565
- if (p0 .getDistanceToPoint (center) > radius)
55566
- return false;
55567
-
55568
- if (p1 .getDistanceToPoint (center) > radius)
55569
- return false;
55570
-
55571
- if (p2 .getDistanceToPoint (center) > radius)
55572
- return false;
55573
-
55574
- if (p3 .getDistanceToPoint (center) > radius)
55575
- return false;
55576
-
55577
- if (p4 .getDistanceToPoint (center) > radius)
55578
- return false;
55579
-
55580
- if (p5 .getDistanceToPoint (center) > radius)
55581
- return false;
55422
+ for (const plane of this .planes)
55423
+ {
55424
+ if (plane .getDistanceToPoint (center) > radius)
55425
+ return false;
55426
+ }
55582
55427
 
55583
55428
  return true;
55584
55429
  },
55585
55430
  intersectsBox: (() =>
55586
55431
  {
55587
- const points1 = [
55588
- new Numbers_Vector3 (),
55589
- new Numbers_Vector3 (),
55590
- new Numbers_Vector3 (),
55591
- new Numbers_Vector3 (),
55592
-
55593
- new Numbers_Vector3 (),
55594
- new Numbers_Vector3 (),
55595
- new Numbers_Vector3 (),
55596
- new Numbers_Vector3 (),
55597
- ];
55598
-
55599
- const normals1 = [
55600
- new Numbers_Vector3 (),
55601
- new Numbers_Vector3 (),
55602
- new Numbers_Vector3 (),
55603
- ];
55604
-
55605
- const axes1 = [
55606
- new Numbers_Vector3 (),
55607
- new Numbers_Vector3 (),
55608
- new Numbers_Vector3 (),
55609
- ];
55610
-
55611
- const axes = [ ];
55612
-
55613
- for (let i = 0; i < 3 * 8; ++ i)
55614
- axes .push (new Numbers_Vector3 ());
55432
+ const
55433
+ points1 = Array .from ({ length: 8 }, () => new Numbers_Vector3 ()),
55434
+ normals1 = Array .from ({ length: 3 }, () => new Numbers_Vector3 ()),
55435
+ axes1 = Array .from ({ length: 3 }, () => new Numbers_Vector3 ()),
55436
+ axes = Array .from ({ length: 3 * 8 }, () => new Numbers_Vector3 ());
55615
55437
 
55616
55438
  return function (box)
55617
55439
  {
@@ -55659,21 +55481,21 @@ Object .assign (ViewVolume,
55659
55481
  {
55660
55482
  const invModelViewProjectionMatrix = new Numbers_Matrix4 ();
55661
55483
 
55662
- return function (winx, winy, winz, modelViewMatrix, projectionMatrix, viewport, point)
55484
+ return function (winX, winY, winZ, modelViewMatrix, projectionMatrix, viewport, point)
55663
55485
  {
55664
- return this .unProjectPointMatrix (winx, winy, winz, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, point);
55486
+ return this .unProjectPointMatrix (winX, winY, winZ, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, point);
55665
55487
  };
55666
55488
  })(),
55667
55489
  unProjectPointMatrix: (() =>
55668
55490
  {
55669
55491
  const vin = new Numbers_Vector4 ();
55670
55492
 
55671
- return function (winx, winy, winz, invModelViewProjectionMatrix, viewport, point)
55493
+ return function (winX, winY, winZ, invModelViewProjectionMatrix, viewport, point)
55672
55494
  {
55673
55495
  // Transformation of normalized coordinates between -1 and 1
55674
- vin .set ((winx - viewport [0]) / viewport [2] * 2 - 1,
55675
- (winy - viewport [1]) / viewport [3] * 2 - 1,
55676
- winz * 2 - 1,
55496
+ vin .set ((winX - viewport [0]) / viewport [2] * 2 - 1,
55497
+ (winY - viewport [1]) / viewport [3] * 2 - 1,
55498
+ winZ * 2 - 1,
55677
55499
  1);
55678
55500
 
55679
55501
  //Objects coordinates
@@ -55688,9 +55510,9 @@ Object .assign (ViewVolume,
55688
55510
  {
55689
55511
  const invModelViewProjectionMatrix = new Numbers_Matrix4 ();
55690
55512
 
55691
- return function (winx, winy, modelViewMatrix, projectionMatrix, viewport, result)
55513
+ return function (winX, winY, modelViewMatrix, projectionMatrix, viewport, result)
55692
55514
  {
55693
- return this .unProjectRayMatrix (winx, winy, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, result);
55515
+ return this .unProjectRayMatrix (winX, winY, invModelViewProjectionMatrix .assign (modelViewMatrix) .multRight (projectionMatrix) .inverse (), viewport, result);
55694
55516
  };
55695
55517
  })(),
55696
55518
  unProjectRayMatrix: (() =>
@@ -55699,10 +55521,10 @@ Object .assign (ViewVolume,
55699
55521
  near = new Numbers_Vector3 (),
55700
55522
  far = new Numbers_Vector3 ();
55701
55523
 
55702
- return function (winx, winy, invModelViewProjectionMatrix, viewport, result)
55524
+ return function (winX, winY, invModelViewProjectionMatrix, viewport, result)
55703
55525
  {
55704
- ViewVolume .unProjectPointMatrix (winx, winy, 0.0, invModelViewProjectionMatrix, viewport, near);
55705
- ViewVolume .unProjectPointMatrix (winx, winy, 0.9, invModelViewProjectionMatrix, viewport, far);
55526
+ ViewVolume .unProjectPointMatrix (winX, winY, 0.0, invModelViewProjectionMatrix, viewport, near);
55527
+ ViewVolume .unProjectPointMatrix (winX, winY, 0.9, invModelViewProjectionMatrix, viewport, far);
55706
55528
 
55707
55529
  return result .setPoints (near, far);
55708
55530
  };
@@ -55711,7 +55533,7 @@ Object .assign (ViewVolume,
55711
55533
  {
55712
55534
  const vin = new Numbers_Vector4 ();
55713
55535
 
55714
- return function (point, modelViewMatrix, projectionMatrix, viewport, vout)
55536
+ return function (point, modelViewMatrix, projectionMatrix, viewport, vOut)
55715
55537
  {
55716
55538
  if (point .length === 4)
55717
55539
  vin .assign (point);
@@ -55722,7 +55544,7 @@ Object .assign (ViewVolume,
55722
55544
 
55723
55545
  const d = 1 / (2 * vin .w);
55724
55546
 
55725
- return vout .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55547
+ return vOut .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55726
55548
  (vin .y * d + 0.5) * viewport [3] + viewport [1],
55727
55549
  (vin .z * d + 0.5));
55728
55550
  };
@@ -55731,7 +55553,7 @@ Object .assign (ViewVolume,
55731
55553
  {
55732
55554
  const vin = new Numbers_Vector4 ();
55733
55555
 
55734
- return function (point, modelViewProjectionMatrix, viewport, vout)
55556
+ return function (point, modelViewProjectionMatrix, viewport, vOut)
55735
55557
  {
55736
55558
  if (point .length === 4)
55737
55559
  vin .assign (point);
@@ -55742,7 +55564,7 @@ Object .assign (ViewVolume,
55742
55564
 
55743
55565
  const d = 1 / (2 * vin .w);
55744
55566
 
55745
- return vout .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55567
+ return vOut .set ((vin .x * d + 0.5) * viewport [2] + viewport [0],
55746
55568
  (vin .y * d + 0.5) * viewport [3] + viewport [1],
55747
55569
  (vin .z * d + 0.5));
55748
55570
  };
@@ -56710,53 +56532,51 @@ function X3DRenderObject (executionContext)
56710
56532
  {
56711
56533
  const browser = executionContext .getBrowser ();
56712
56534
 
56713
- this .renderKey = "";
56714
- this .renderAndGlobalLightsKey = "";
56715
- this .renderCount = 0;
56716
- this .view = null;
56717
- this .viewVolumes = [ ];
56718
- this .projectionMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56719
- this .modelViewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56720
- this .viewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56721
- this .cameraSpaceMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56722
- this .viewportArray = new Int32Array (4);
56723
- this .projectionMatrixArray = new Float32Array (16);
56724
- this .viewMatrixArray = new Float32Array (16);
56725
- this .cameraSpaceMatrixArray = new Float32Array (16);
56726
- this .hitRay = new Geometry_Line3 (Numbers_Vector3 .Zero, Numbers_Vector3 .Zero);
56727
- this .sensors = [[ ]];
56728
- this .viewpointGroups = [ ];
56729
- this .lights = [ ];
56730
- this .globalLightsKeys = [ ];
56731
- this .globalLights = [ ];
56732
- this .localObjectsKeys = [ ];
56733
- this .localObjects = [ ];
56734
- this .globalShadows = [ false ];
56735
- this .globalShadow = false;
56736
- this .localShadows = [ false ];
56737
- this .localFogs = [ null ];
56738
- this .layouts = [ ];
56739
- this .humanoids = [ null ];
56740
- this .generatedCubeMapTextures = [ ];
56741
- this .collisions = [ ];
56742
- this .collisionTime = new Time_StopWatch ();
56743
- this .numPointingShapes = 0;
56744
- this .numCollisionShapes = 0;
56745
- this .numShadowShapes = 0;
56746
- this .numOpaqueShapes = 0;
56747
- this .numTransparentShapes = 0;
56748
- this .pointingShapes = [ ];
56749
- this .collisionShapes = [ ];
56750
- this .activeCollisions = [ ];
56751
- this .shadowShapes = [ ];
56752
- this .opaqueShapes = [ ];
56753
- this .transparentShapes = [ ];
56754
- this .transmissionOpaqueShapes = [ ];
56755
- this .transmissionTransparentShapes = [ ];
56756
- this .transparencySorter = new Algorithms_MergeSort (this .transparentShapes, (a, b) => a .distance < b .distance);
56757
- this .transmissionTransparencySorter = new Algorithms_MergeSort (this .transmissionTransparentShapes, (a, b) => a .distance < b .distance);
56758
- this .speed = 0;
56759
- this .depthBuffer = new Rendering_TextureBuffer (browser, DEPTH_BUFFER_SIZE, DEPTH_BUFFER_SIZE, true);
56535
+ this .renderKey = "";
56536
+ this .renderAndGlobalLightsKey = "";
56537
+ this .renderCount = 0;
56538
+ this .view = null;
56539
+ this .viewVolumes = [ ];
56540
+ this .projectionMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56541
+ this .modelViewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56542
+ this .viewMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56543
+ this .cameraSpaceMatrix = new Utility_MatrixStack (Numbers_Matrix4);
56544
+ this .viewportArray = new Int32Array (4);
56545
+ this .projectionMatrixArray = new Float32Array (16);
56546
+ this .viewMatrixArray = new Float32Array (16);
56547
+ this .cameraSpaceMatrixArray = new Float32Array (16);
56548
+ this .hitRay = new Geometry_Line3 (Numbers_Vector3 .Zero, Numbers_Vector3 .Zero);
56549
+ this .sensors = [[ ]];
56550
+ this .viewpointGroups = [ ];
56551
+ this .lights = [ ];
56552
+ this .globalLightsKeys = [ ];
56553
+ this .globalLights = [ ];
56554
+ this .localObjectsKeys = [ ];
56555
+ this .localObjects = [ ];
56556
+ this .globalShadows = [ false ];
56557
+ this .globalShadow = false;
56558
+ this .localShadows = [ false ];
56559
+ this .localFogs = [ null ];
56560
+ this .layouts = [ ];
56561
+ this .humanoids = [ null ];
56562
+ this .generatedCubeMapTextures = [ ];
56563
+ this .collisions = [ ];
56564
+ this .collisionTime = new Time_StopWatch ();
56565
+ this .numPointingShapes = 0;
56566
+ this .numCollisionShapes = 0;
56567
+ this .numShadowShapes = 0;
56568
+ this .numOpaqueShapes = 0;
56569
+ this .numTransparentShapes = 0;
56570
+ this .pointingShapes = [ ];
56571
+ this .collisionShapes = [ ];
56572
+ this .activeCollisions = [ ];
56573
+ this .shadowShapes = [ ];
56574
+ this .opaqueShapes = [ ];
56575
+ this .transparentShapes = [ ];
56576
+ this .transparencySorter = new Algorithms_MergeSort (this .transparentShapes, (a, b) => a .distance < b .distance);
56577
+ this .transmission = false;
56578
+ this .speed = 0;
56579
+ this .depthBuffer = new Rendering_TextureBuffer (browser, DEPTH_BUFFER_SIZE, DEPTH_BUFFER_SIZE, true);
56760
56580
  }
56761
56581
 
56762
56582
  Object .assign (X3DRenderObject .prototype,
@@ -56855,7 +56675,7 @@ Object .assign (X3DRenderObject .prototype,
56855
56675
 
56856
56676
  return function ()
56857
56677
  {
56858
- renderCount >>>= 0; // uintesize
56678
+ renderCount >>>= 0; // convert to uint
56859
56679
  this .renderCount = ++ renderCount;
56860
56680
  }
56861
56681
  })(),
@@ -57074,31 +56894,9 @@ Object .assign (X3DRenderObject .prototype,
57074
56894
  {
57075
56895
  return this .transparentShapes;
57076
56896
  },
57077
- getNumTransmissionOpaqueShapes ()
57078
- {
57079
- return this .transmissionOpaqueShapes .length;
57080
- },
57081
- setNumTransmissionOpaqueShapes (value)
57082
- {
57083
- // Needed for StaticGroup.
57084
- this .transmissionOpaqueShapes .length = value;
57085
- },
57086
- getTransmissionOpaqueShapes ()
57087
- {
57088
- return this .transmissionOpaqueShapes;
57089
- },
57090
- getNumTransmissionTransparentShapes ()
57091
- {
57092
- return this .transmissionTransparentShapes .length;
57093
- },
57094
- setNumTransmissionTransparentShapes (value)
57095
- {
57096
- // Needed for StaticGroup.
57097
- this .transmissionTransparentShapes .length = value;
57098
- },
57099
- getTransmissionTransparentShapes ()
56897
+ isTransmission ()
57100
56898
  {
57101
- return this .transmissionTransparentShapes;
56899
+ return this .transmission;
57102
56900
  },
57103
56901
  constrainTranslation (translation, stepBack)
57104
56902
  {
@@ -57184,7 +56982,7 @@ Object .assign (X3DRenderObject .prototype,
57184
56982
  cameraSpaceProjectionMatrix .multRight (projectionMatrix);
57185
56983
  cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
57186
56984
 
57187
- this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
56985
+ this .getProjectionMatrix () .push (cameraSpaceProjectionMatrix);
57188
56986
 
57189
56987
  const depth = this .getDepth (projectionMatrix);
57190
56988
 
@@ -57232,12 +57030,12 @@ Object .assign (X3DRenderObject .prototype,
57232
57030
  }
57233
57031
  case Rendering_TraverseType .COLLISION:
57234
57032
  {
57235
- // Collect for collide and gravite
57033
+ // Collect for collide and gravitate
57236
57034
  this .numCollisionShapes = 0;
57237
57035
 
57238
57036
  callback .call (group, type, this);
57239
57037
  this .collide ();
57240
- this .gravite ();
57038
+ this .gravitate ();
57241
57039
  break;
57242
57040
  }
57243
57041
  case Rendering_TraverseType .SHADOW:
@@ -57254,10 +57052,6 @@ Object .assign (X3DRenderObject .prototype,
57254
57052
  this .numOpaqueShapes = 0;
57255
57053
  this .numTransparentShapes = 0;
57256
57054
 
57257
- this .transmission = false;
57258
- this .transmissionOpaqueShapes .length = 0;
57259
- this .transmissionTransparentShapes .length = 0;
57260
-
57261
57055
  this .setGlobalFog (this .getFog ());
57262
57056
 
57263
57057
  callback .call (group, type, this);
@@ -57304,9 +57098,9 @@ Object .assign (X3DRenderObject .prototype,
57304
57098
  const pointingContext = this .pointingShapes [num];
57305
57099
 
57306
57100
  pointingContext .modelViewMatrix .set (modelViewMatrix);
57307
- pointingContext .shapeNode = shapeNode;
57308
57101
  pointingContext .scissor = viewVolume .getScissor ();
57309
57102
  pointingContext .humanoidNode = this .humanoids .at (-1);
57103
+ pointingContext .shapeNode = shapeNode;
57310
57104
 
57311
57105
  // Clip planes & sensors
57312
57106
 
@@ -57403,9 +57197,9 @@ Object .assign (X3DRenderObject .prototype,
57403
57197
  const depthContext = this .shadowShapes [num];
57404
57198
 
57405
57199
  depthContext .modelViewMatrix .set (modelViewMatrix);
57406
- depthContext .shapeNode = shapeNode;
57407
57200
  depthContext .scissor = viewVolume .getScissor ();
57408
57201
  depthContext .humanoidNode = this .humanoids .at (-1);
57202
+ depthContext .shapeNode = shapeNode;
57409
57203
 
57410
57204
  // Clip planes
57411
57205
 
@@ -57446,11 +57240,6 @@ Object .assign (X3DRenderObject .prototype,
57446
57240
  var renderContext = this .transparentShapes [num];
57447
57241
 
57448
57242
  renderContext .distance = bboxCenter .z;
57449
-
57450
- if (shapeNode .isTransmission ())
57451
- this .transmission = true;
57452
- else
57453
- this .transmissionTransparentShapes .push (renderContext);
57454
57243
  }
57455
57244
  else
57456
57245
  {
@@ -57460,20 +57249,17 @@ Object .assign (X3DRenderObject .prototype,
57460
57249
  this .opaqueShapes .push (this .createRenderContext (false));
57461
57250
 
57462
57251
  var renderContext = this .opaqueShapes [num];
57463
-
57464
- if (shapeNode .isTransmission ())
57465
- this .transmission = true;
57466
- else
57467
- this .transmissionOpaqueShapes .push (renderContext);
57468
57252
  }
57469
57253
 
57254
+ this .transmission ||= shapeNode .isTransmission ();
57255
+
57470
57256
  renderContext .modelViewMatrix .set (modelViewMatrix);
57471
57257
  renderContext .scissor .assign (viewVolume .getScissor ());
57472
- renderContext .shadows = this .localShadows .at (-1);
57473
- renderContext .fogNode = this .localFogs .at (-1);
57474
- renderContext .shapeNode = shapeNode;
57475
- renderContext .appearanceNode = shapeNode .getAppearance ();
57476
- renderContext .humanoidNode = this .humanoids .at (-1);
57258
+ renderContext .shadows = this .localShadows .at (-1);
57259
+ renderContext .fogNode = this .localFogs .at (-1);
57260
+ renderContext .humanoidNode = this .humanoids .at (-1);
57261
+ renderContext .shapeNode = shapeNode;
57262
+ renderContext .appearanceNode = shapeNode .getAppearance ();
57477
57263
 
57478
57264
  // Clip planes and local lights
57479
57265
 
@@ -57506,7 +57292,7 @@ Object .assign (X3DRenderObject .prototype,
57506
57292
  const
57507
57293
  browser = this .getBrowser (),
57508
57294
  gl = browser .getContext (),
57509
- viewport = this .getViewVolume () .getViewport (),
57295
+ viewport = this .viewVolumes .at (-1) .getViewport (),
57510
57296
  [x, y] = browser .getPointer ();
57511
57297
 
57512
57298
  // Configure depth shaders.
@@ -57621,7 +57407,7 @@ Object .assign (X3DRenderObject .prototype,
57621
57407
  collision .set_active (true);
57622
57408
  };
57623
57409
  })(),
57624
- gravite: (() =>
57410
+ gravitate: (() =>
57625
57411
  {
57626
57412
  const
57627
57413
  projectionMatrix = new Numbers_Matrix4 (),
@@ -57655,14 +57441,14 @@ Object .assign (X3DRenderObject .prototype,
57655
57441
  avatarHeight = navigationInfo .getAvatarHeight (),
57656
57442
  stepHeight = navigationInfo .getStepHeight ();
57657
57443
 
57658
- // Reshape viewpoint for gravite.
57444
+ // Reshape viewpoint for gravitate.
57659
57445
 
57660
57446
  Geometry_Camera .ortho (-collisionRadius,
57661
57447
  collisionRadius,
57662
57448
  -collisionRadius,
57663
57449
  collisionRadius,
57664
57450
  nearValue,
57665
- Math .max (collisionRadius * 2, avatarHeight * 2),
57451
+ Math .max (collisionRadius, avatarHeight) * 2,
57666
57452
  projectionMatrix);
57667
57453
 
57668
57454
  // Transform viewpoint to look down the up vector.
@@ -57679,13 +57465,13 @@ Object .assign (X3DRenderObject .prototype,
57679
57465
  cameraSpaceProjectionMatrix .multRight (projectionMatrix);
57680
57466
  cameraSpaceProjectionMatrix .multLeft (viewpoint .getCameraSpaceMatrix ());
57681
57467
 
57682
- this .getProjectionMatrix () .pushMatrix (cameraSpaceProjectionMatrix);
57468
+ this .getProjectionMatrix () .push (cameraSpaceProjectionMatrix);
57683
57469
 
57684
57470
  let distance = -this .getDepth (projectionMatrix);
57685
57471
 
57686
57472
  this .getProjectionMatrix () .pop ();
57687
57473
 
57688
- // Gravite or step up.
57474
+ // gravitate or step up.
57689
57475
 
57690
57476
  distance -= avatarHeight;
57691
57477
 
@@ -57693,7 +57479,7 @@ Object .assign (X3DRenderObject .prototype,
57693
57479
 
57694
57480
  if (distance > 0)
57695
57481
  {
57696
- // Gravite and fall down the to the floor.
57482
+ // gravitate and fall down the to the floor.
57697
57483
 
57698
57484
  const currentFrameRate = this .speed ? browser .getCurrentFrameRate () : 1000000;
57699
57485
 
@@ -57749,7 +57535,7 @@ Object .assign (X3DRenderObject .prototype,
57749
57535
  const
57750
57536
  browser = this .getBrowser (),
57751
57537
  gl = browser .getContext (),
57752
- viewport = this .getViewVolume () .getViewport ();
57538
+ viewport = this .viewVolumes .at (-1) .getViewport ();
57753
57539
 
57754
57540
  // Configure depth shaders.
57755
57541
 
@@ -57803,7 +57589,7 @@ Object .assign (X3DRenderObject .prototype,
57803
57589
  gl = browser .getContext (),
57804
57590
  frameBuffers = this .getFrameBuffers (),
57805
57591
  numFrameBuffers = frameBuffers .length,
57806
- viewport = this .getViewVolume () .getViewport (),
57592
+ viewport = this .viewVolumes .at (-1) .getViewport (),
57807
57593
  lights = this .lights,
57808
57594
  globalLightsKeys = this .globalLightsKeys,
57809
57595
  globalLights = this .globalLights,
@@ -57826,14 +57612,6 @@ Object .assign (X3DRenderObject .prototype,
57826
57612
  generatedCubeMapTexture .renderTexture (this);
57827
57613
  }
57828
57614
 
57829
- // Set up shadow matrix for all lights, and matrix for all projective textures.
57830
-
57831
- if (headlight)
57832
- browser .getHeadlight () .setGlobalVariables (this);
57833
-
57834
- for (const light of lights)
57835
- light .setGlobalVariables (this);
57836
-
57837
57615
  this .renderAndGlobalLightsKey = `.${this .renderKey}.${globalLightsKeys .sort () .join ("")}.`;
57838
57616
  this .globalShadow = globalShadows .at (-1);
57839
57617
 
@@ -57851,14 +57629,23 @@ Object .assign (X3DRenderObject .prototype,
57851
57629
 
57852
57630
  this .viewportArray .set (viewport);
57853
57631
 
57854
- if (this .view)
57632
+ if (this .view && this .isActive ())
57855
57633
  {
57856
- this .projectionMatrixArray .set (this .isActive ()
57857
- ? this .view .projectionMatrix
57858
- : this .getProjectionMatrix () .get ());
57634
+ this .projectionMatrixArray .set (this .view .projectionMatrix);
57635
+
57636
+ if (browser .getBrowserOption ("XRMovementControl") === "VIEWPOINT")
57637
+ {
57638
+ this .cameraSpaceMatrixArray .set (this .getCameraSpaceMatrix () .get ());
57639
+ this .viewMatrixArray .set (this .getViewMatrix () .get ());
57859
57640
 
57860
- this .cameraSpaceMatrixArray .set (this .view .cameraSpaceMatrix);
57861
- this .viewMatrixArray .set (this .view .viewMatrix);
57641
+ Numbers_Matrix4 .prototype .multLeft (this .cameraSpaceMatrixArray, this .view .inverse);
57642
+ Numbers_Matrix4 .prototype .multRight (this .viewMatrixArray, this .view .matrix);
57643
+ }
57644
+ else
57645
+ {
57646
+ this .cameraSpaceMatrixArray .set (this .view .cameraSpaceMatrix);
57647
+ this .viewMatrixArray .set (this .view .viewMatrix);
57648
+ }
57862
57649
  }
57863
57650
  else
57864
57651
  {
@@ -57867,22 +57654,29 @@ Object .assign (X3DRenderObject .prototype,
57867
57654
  this .viewMatrixArray .set (this .getViewMatrix () .get ());
57868
57655
  }
57869
57656
 
57657
+ // Set up shadow matrix for all lights, and matrix for all projective textures.
57658
+
57659
+ if (headlight)
57660
+ browser .getHeadlight () .setGlobalVariables (this);
57661
+
57662
+ for (const light of lights)
57663
+ light .setGlobalVariables (this);
57664
+
57665
+ // Draw shapes.
57666
+
57870
57667
  if (independent && this .transmission)
57871
57668
  {
57872
57669
  // Transmission
57873
57670
 
57874
- const
57875
- transmissionBuffer = browser .getTransmissionBuffer (),
57876
- transmissionOpaqueShapes = this .transmissionOpaqueShapes,
57877
- transmissionTransparentShapes = this .transmissionTransparentShapes,
57878
- numTransmissionOpaqueShapes = transmissionOpaqueShapes .length,
57879
- numTransmissionTransparentShapes = transmissionTransparentShapes .length;
57671
+ const transmissionBuffer = browser .getTransmissionBuffer ();
57880
57672
 
57881
- this .drawShapes (gl, browser, transmissionBuffer, gl .COLOR_BUFFER_BIT, false, viewport, transmissionOpaqueShapes, numTransmissionOpaqueShapes, transmissionTransparentShapes, numTransmissionTransparentShapes, this .transmissionTransparencySorter);
57673
+ this .drawShapes (gl, browser, transmissionBuffer, gl .COLOR_BUFFER_BIT, false, viewport, this .opaqueShapes, this .numOpaqueShapes, this .transparentShapes, this .numTransparentShapes, this .transparencySorter);
57882
57674
 
57883
57675
  gl .bindTexture (gl .TEXTURE_2D, transmissionBuffer .getColorTexture ());
57884
57676
  gl .generateMipmap (gl .TEXTURE_2D);
57885
57677
 
57678
+ this .transmission = false;
57679
+
57886
57680
  // Draw with sorted blend or OIT.
57887
57681
 
57888
57682
  this .drawShapes (gl, browser, frameBuffer, 0, frameBuffer .getOIT (), viewport, this .opaqueShapes, this .numOpaqueShapes, this .transparentShapes, this .numTransparentShapes, this .transparencySorter);
@@ -57922,7 +57716,7 @@ Object .assign (X3DRenderObject .prototype,
57922
57716
  globalShadows .length = 1;
57923
57717
  generatedCubeMapTextures .length = 0;
57924
57718
  },
57925
- drawShapes (gl, browser, frameBuffer, clear, oit, viewport, opaqueShapes, numOpaqueShapes, transparentShapes, numTransparentShapes, transparencySorter)
57719
+ drawShapes (gl, browser, frameBuffer, clearBits, oit, viewport, opaqueShapes, numOpaqueShapes, transparentShapes, numTransparentShapes, transparencySorter)
57926
57720
  {
57927
57721
  frameBuffer .bind ();
57928
57722
 
@@ -57936,7 +57730,7 @@ Object .assign (X3DRenderObject .prototype,
57936
57730
  this .advanceRenderCount ();
57937
57731
 
57938
57732
  gl .clearColor (0, 0, 0, 0);
57939
- gl .clear (gl .DEPTH_BUFFER_BIT | clear);
57733
+ gl .clear (gl .DEPTH_BUFFER_BIT | clearBits);
57940
57734
  gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
57941
57735
 
57942
57736
  this .getBackground () .display (gl, this);
@@ -57987,10 +57781,7 @@ Object .assign (X3DRenderObject .prototype,
57987
57781
 
57988
57782
  function X3DRenderObject_assign (lhs, rhs)
57989
57783
  {
57990
- for (var i = 0, length = rhs .length; i < length; ++ i)
57991
- lhs [i] = rhs [i];
57992
-
57993
- lhs .length = length;
57784
+ Object .assign (lhs, rhs) .length = rhs .length;
57994
57785
  }
57995
57786
 
57996
57787
  const X3DRenderObject_default_ = X3DRenderObject;
@@ -59263,12 +59054,7 @@ const Group_default_ = Group;
59263
59054
 
59264
59055
 
59265
59056
 
59266
- const TransitionType =
59267
- {
59268
- TELEPORT: true,
59269
- LINEAR: true,
59270
- ANIMATE: true,
59271
- };
59057
+
59272
59058
 
59273
59059
  function NavigationInfo (executionContext)
59274
59060
  {
@@ -59283,7 +59069,7 @@ function NavigationInfo (executionContext)
59283
59069
 
59284
59070
  this ._avatarSize .setUnit ("length");
59285
59071
  this ._speed .setUnit ("speed");
59286
- this ._visibilityLimit .setUnit ("speed");
59072
+ this ._visibilityLimit .setUnit ("length");
59287
59073
  }
59288
59074
 
59289
59075
  Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBindableNode .prototype),
@@ -59294,12 +59080,14 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59294
59080
 
59295
59081
  this ._type .addInterest ("set_type__", this);
59296
59082
  this ._headlight .addInterest ("set_headlight__", this);
59083
+ this ._visibilityLimit .addInterest ("set_visibilityLimit__", this);
59297
59084
  this ._transitionStart .addInterest ("set_transitionStart__", this);
59298
59085
  this ._transitionComplete .addInterest ("set_transitionComplete__", this);
59299
59086
  this ._isBound .addInterest ("set_isBound__", this);
59300
59087
 
59301
59088
  this .set_type__ ();
59302
59089
  this .set_headlight__ ();
59090
+ this .set_visibilityLimit__ ();
59303
59091
  },
59304
59092
  getViewer ()
59305
59093
  {
@@ -59333,30 +59121,31 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59333
59121
  {
59334
59122
  const nearValue = this .getCollisionRadius ();
59335
59123
 
59336
- if (nearValue === 0)
59337
- return 1e-5;
59338
-
59339
- else
59340
- return nearValue / 2;
59124
+ return nearValue === 0 ? 1e-5 : nearValue / 2;
59341
59125
  },
59342
59126
  getFarValue (viewpoint)
59343
59127
  {
59344
- return this ._visibilityLimit .getValue ()
59345
- ? this ._visibilityLimit .getValue ()
59346
- : viewpoint .getMaxFarValue ();
59128
+ return this .visibilityLimit || viewpoint .getMaxFarValue ();
59347
59129
  },
59348
- getTransitionType ()
59130
+ getTransitionType: (function ()
59349
59131
  {
59350
- for (const value of this ._transitionType)
59351
- {
59352
- const transitionType = TransitionType [value];
59132
+ const TransitionTypes = new Set ([
59133
+ "TELEPORT",
59134
+ "LINEAR",
59135
+ "ANIMATE",
59136
+ ]);
59353
59137
 
59354
- if (transitionType)
59355
- return value;
59356
- }
59138
+ return function ()
59139
+ {
59140
+ for (const value of this ._transitionType)
59141
+ {
59142
+ if (TransitionTypes .has (value))
59143
+ return value;
59144
+ }
59357
59145
 
59358
- return "LINEAR";
59359
- },
59146
+ return "LINEAR";
59147
+ };
59148
+ })(),
59360
59149
  set_type__ ()
59361
59150
  {
59362
59151
  // Determine active viewer.
@@ -59397,7 +59186,7 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59397
59186
  noneViewer = false,
59398
59187
  lookAt = false;
59399
59188
 
59400
- if (! this ._type .length)
59189
+ if (!this ._type .length)
59401
59190
  {
59402
59191
  examineViewer = true;
59403
59192
  walkViewer = true;
@@ -59439,7 +59228,7 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59439
59228
  lookAt = true;
59440
59229
  break;
59441
59230
  default:
59442
- // Some string defaults to EXAMINE.
59231
+ // Some strings lead to:
59443
59232
  examineViewer = true;
59444
59233
  continue;
59445
59234
  }
@@ -59475,9 +59264,13 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59475
59264
  else
59476
59265
  this .enable = Function .prototype;
59477
59266
  },
59267
+ set_visibilityLimit__ ()
59268
+ {
59269
+ this .visibilityLimit = Math .max (this ._visibilityLimit .getValue (), 0);
59270
+ },
59478
59271
  set_transitionStart__ ()
59479
59272
  {
59480
- if (! this ._transitionActive .getValue ())
59273
+ if (!this ._transitionActive .getValue ())
59481
59274
  this ._transitionActive = true;
59482
59275
  },
59483
59276
  set_transitionComplete__ ()
@@ -59503,7 +59296,7 @@ Object .assign (Object .setPrototypeOf (NavigationInfo .prototype, Core_X3DBinda
59503
59296
 
59504
59297
  const headlight = this .getBrowser () .getHeadlight ();
59505
59298
 
59506
- renderObject .getGlobalLights () .push (headlight);
59299
+ renderObject .getGlobalLights () .push (headlight);
59507
59300
  renderObject .getGlobalLightsKeys () .push (headlight .lightNode .getLightKey ());
59508
59301
  },
59509
59302
  traverse (type, renderObject)
@@ -63103,7 +62896,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
63103
62896
 
63104
62897
  /* harmony default export */ const Texturing_X3DTexture2DNode = (x_ite_Namespace .add ("X3DTexture2DNode", X3DTexture2DNode_default_));
63105
62898
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
63106
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(723);
62899
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(375);
63107
62900
  /*******************************************************************************
63108
62901
  *
63109
62902
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -63583,6 +63376,7 @@ const Background_default_ = Background;
63583
63376
 
63584
63377
 
63585
63378
 
63379
+
63586
63380
  function X3DLayerNode (executionContext, defaultViewpoint, groupNode)
63587
63381
  {
63588
63382
  Core_X3DNode .call (this, executionContext);
@@ -63773,6 +63567,9 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63773
63567
  viewpointNode = this .getViewpoint (),
63774
63568
  bbox = this .getBBox (new Geometry_Box3 ()) .multRight (viewpointNode .getModelMatrix () .copy () .inverse ());
63775
63569
 
63570
+ if (bbox .size .equals (Numbers_Vector3 .Zero))
63571
+ return;
63572
+
63776
63573
  viewpointNode .lookAt (this, bbox .center, viewpointNode .getLookAtDistance (bbox), transitionTime, factor, straighten);
63777
63574
  },
63778
63575
  straightenView ()
@@ -63790,10 +63587,8 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63790
63587
  },
63791
63588
  set_viewport__ ()
63792
63589
  {
63793
- this .viewportNode = Base_X3DCast (Base_X3DConstants .X3DViewportNode, this ._viewport);
63794
-
63795
- if (!this .viewportNode)
63796
- this .viewportNode = this .getBrowser () .getDefaultViewport ();
63590
+ this .viewportNode = Base_X3DCast (Base_X3DConstants .X3DViewportNode, this ._viewport)
63591
+ ?? this .getBrowser () .getDefaultViewport ();
63797
63592
  },
63798
63593
  bindBindables (viewpointName)
63799
63594
  {
@@ -63819,21 +63614,31 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63819
63614
  },
63820
63615
  traverse (type, renderObject = this)
63821
63616
  {
63822
- const pose = this .getBrowser () .getPose ();
63617
+ const
63618
+ browser = this .getBrowser (),
63619
+ viewpointNode = this .getViewpoint (),
63620
+ pose = browser .getPose ();
63823
63621
 
63824
63622
  if (pose && this .active)
63825
63623
  {
63826
- this .getProjectionMatrix () .pushMatrix (pose .views [0] .projectionMatrix);
63827
- this .getCameraSpaceMatrix () .pushMatrix (pose .cameraSpaceMatrix);
63828
- this .getViewMatrix () .pushMatrix (pose .viewMatrix);
63624
+ this .getProjectionMatrix () .push (pose .views [0] .projectionMatrix);
63625
+
63626
+ if (browser .getBrowserOption ("XRMovementControl") === "VIEWPOINT")
63627
+ {
63628
+ this .getCameraSpaceMatrix () .push (viewpointNode .getCameraSpaceMatrix ());
63629
+ this .getViewMatrix () .push (viewpointNode .getViewMatrix ());
63630
+ }
63631
+ else
63632
+ {
63633
+ this .getCameraSpaceMatrix () .push (pose .cameraSpaceMatrix);
63634
+ this .getViewMatrix () .push (pose .viewMatrix);
63635
+ }
63829
63636
  }
63830
63637
  else
63831
63638
  {
63832
- const viewpointNode = this .getViewpoint ();
63833
-
63834
- this .getProjectionMatrix () .pushMatrix (viewpointNode .getProjectionMatrix (this));
63835
- this .getCameraSpaceMatrix () .pushMatrix (viewpointNode .getCameraSpaceMatrix ());
63836
- this .getViewMatrix () .pushMatrix (viewpointNode .getViewMatrix ());
63639
+ this .getProjectionMatrix () .push (viewpointNode .getProjectionMatrix (this));
63640
+ this .getCameraSpaceMatrix () .push (viewpointNode .getCameraSpaceMatrix ());
63641
+ this .getViewMatrix () .push (viewpointNode .getViewMatrix ());
63837
63642
  }
63838
63643
 
63839
63644
  switch (type)
@@ -63879,7 +63684,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63879
63684
 
63880
63685
  this .setHitRay (this .getProjectionMatrix () .get (), viewport, browser .getPointer ());
63881
63686
  this .getNavigationInfo () .enable (type, renderObject);
63882
- this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63687
+ this .getModelViewMatrix () .push (this .getViewMatrix () .get ());
63883
63688
 
63884
63689
  this .viewportNode .push (this);
63885
63690
  renderObject .render (type, this .groupNodes .traverse, this .groupNodes);
@@ -63891,7 +63696,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63891
63696
  {
63892
63697
  if (this ._display .getValue ())
63893
63698
  {
63894
- this .getModelViewMatrix () .pushMatrix (Numbers_Matrix4 .Identity);
63699
+ this .getModelViewMatrix () .push (Numbers_Matrix4 .Identity);
63895
63700
 
63896
63701
  this .viewportNode .push (this);
63897
63702
  this .groupNodes .traverse (type, renderObject);
@@ -63911,7 +63716,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63911
63716
  {
63912
63717
  if (this ._pickable .getValue ())
63913
63718
  {
63914
- this .getModelViewMatrix () .pushMatrix (Numbers_Matrix4 .Identity);
63719
+ this .getModelViewMatrix () .push (Numbers_Matrix4 .Identity);
63915
63720
 
63916
63721
  this .viewportNode .push (this);
63917
63722
  this .groupNodes .traverse (type, renderObject);
@@ -63940,8 +63745,8 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63940
63745
 
63941
63746
  Geometry_Camera .ortho (-size, size, -size, size, -size, size, projectionMatrix);
63942
63747
 
63943
- this .getProjectionMatrix () .pushMatrix (projectionMatrix);
63944
- this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63748
+ this .getProjectionMatrix () .push (projectionMatrix);
63749
+ this .getModelViewMatrix () .push (this .getViewMatrix () .get ());
63945
63750
 
63946
63751
  // Render
63947
63752
  this .viewportNode .push (this);
@@ -63958,7 +63763,7 @@ Object .assign (Object .setPrototypeOf (X3DLayerNode .prototype, Core_X3DNode .p
63958
63763
  if (this ._display .getValue ())
63959
63764
  {
63960
63765
  this .getNavigationInfo () .enable (type, renderObject);
63961
- this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63766
+ this .getModelViewMatrix () .push (this .getViewMatrix () .get ());
63962
63767
 
63963
63768
  this .viewportNode .push (this);
63964
63769
  renderObject .render (type, this .groupNodes .traverse, this .groupNodes);
@@ -65662,8 +65467,11 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
65662
65467
 
65663
65468
  this .lookAt (layerNode, point, minDistance, transitionTime, factor, straighten);
65664
65469
  },
65665
- lookAtBBox (layerNode, bbox, transitionTime = 1, factor, straighten)
65470
+ lookAtBBox (layerNode, bbox, transitionTime = 1, factor = 1, straighten = false)
65666
65471
  {
65472
+ if (bbox .size .equals (Numbers_Vector3 .Zero))
65473
+ return;
65474
+
65667
65475
  bbox = bbox .copy () .multRight (this .getModelMatrix () .copy () .inverse ());
65668
65476
 
65669
65477
  this .lookAt (layerNode, bbox .center, this .getLookAtDistance (bbox), transitionTime, factor, straighten);
@@ -65741,18 +65549,26 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
65741
65549
  {
65742
65550
  bbox .copy () .multRight (this .modelMatrix .copy () .inverse ());
65743
65551
 
65744
- const
65745
- direction = this .getUserPosition () .copy () .subtract (bbox .center) .normalize (),
65746
- distance = this .getLookAtDistance (bbox),
65747
- userPosition = bbox .center .copy () .add (direction .multiply (distance)),
65748
- userOrientation = this .getLookAtRotation (userPosition, bbox .center);
65552
+ if (bbox .size .equals (Numbers_Vector3 .Zero))
65553
+ {
65554
+ this .set_nearDistance__ ();
65555
+ this .set_farDistance__ ();
65556
+ }
65557
+ else
65558
+ {
65559
+ const
65560
+ direction = this .getUserPosition () .copy () .subtract (bbox .center) .normalize (),
65561
+ distance = this .getLookAtDistance (bbox),
65562
+ userPosition = bbox .center .copy () .add (direction .multiply (distance)),
65563
+ userOrientation = this .getLookAtRotation (userPosition, bbox .center);
65749
65564
 
65750
- this ._positionOffset = userPosition .subtract (this .getPosition ());
65751
- this ._orientationOffset = this .getOrientation () .copy () .inverse () .multRight (userOrientation);
65752
- this ._centerOfRotationOffset = bbox .center .copy () .subtract (this .getCenterOfRotation ());
65753
- this ._fieldOfViewScale = 1;
65754
- this .nearDistance = distance * (0.125 / 10);
65755
- this .farDistance = this .nearDistance * this .getMaxFarValue () / 0.125;
65565
+ this ._positionOffset = userPosition .subtract (this .getPosition ());
65566
+ this ._orientationOffset = this .getOrientation () .copy () .inverse () .multRight (userOrientation);
65567
+ this ._centerOfRotationOffset = bbox .center .copy () .subtract (this .getCenterOfRotation ());
65568
+ this ._fieldOfViewScale = 1;
65569
+ this .nearDistance = distance * (0.125 / 10);
65570
+ this .farDistance = this .nearDistance * this .getMaxFarValue () / 0.125;
65571
+ }
65756
65572
  },
65757
65573
  traverse (type, renderObject)
65758
65574
  {
@@ -66464,7 +66280,7 @@ const X3DWorld_default_ = X3DWorld;
66464
66280
 
66465
66281
  /* harmony default export */ const Execution_X3DWorld = (x_ite_Namespace .add ("X3DWorld", X3DWorld_default_));
66466
66282
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66467
- /* provided dependency */ var FileLoader_$ = __webpack_require__(723);
66283
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(375);
66468
66284
  /*******************************************************************************
66469
66285
  *
66470
66286
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67394,7 +67210,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67394
67210
 
67395
67211
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (x_ite_Namespace .add ("ProtoDeclarationArray", ProtoDeclarationArray_default_));
67396
67212
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
67397
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(723);
67213
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(375);
67398
67214
  /*******************************************************************************
67399
67215
  *
67400
67216
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -70866,7 +70682,8 @@ Object .assign (Object .setPrototypeOf (ProximitySensor .prototype, Environmenta
70866
70682
  if (this .layerNode)
70867
70683
  {
70868
70684
  const
70869
- pose = this .getBrowser () .getPose (),
70685
+ browser = this .getBrowser (),
70686
+ pose = browser .getPose (),
70870
70687
  viewpointNode = this .layerNode .getViewpoint (),
70871
70688
  invModelMatrix = this .modelMatrix .inverse ()
70872
70689
 
@@ -70876,7 +70693,7 @@ Object .assign (Object .setPrototypeOf (ProximitySensor .prototype, Environmenta
70876
70693
  .multRight (invModelMatrix)
70877
70694
  .get (centerOfRotation);
70878
70695
 
70879
- if (pose && this .layerNode .isActive ())
70696
+ if (pose && this .layerNode .isActive () && browser .getBrowserOption ("XRMovementControl") !== "VIEWPOINT")
70880
70697
  invModelMatrix .multLeft (pose .cameraSpaceMatrix);
70881
70698
  else
70882
70699
  invModelMatrix .multLeft (viewpointNode .getCameraSpaceMatrix ());
@@ -70897,7 +70714,7 @@ Object .assign (Object .setPrototypeOf (ProximitySensor .prototype, Environmenta
70897
70714
  else
70898
70715
  {
70899
70716
  this ._isActive = true;
70900
- this ._enterTime = this .getBrowser () .getCurrentTime ();
70717
+ this ._enterTime = browser .getCurrentTime ();
70901
70718
  this ._position_changed = position;
70902
70719
  this ._orientation_changed = orientation;
70903
70720
  this ._centerOfRotation_changed = centerOfRotation;
@@ -75112,7 +74929,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75112
74929
  .subtract (vector3 .assign (spine [length] .getValue ()) .subtract (s) .normalize ())
75113
74930
  .normalize ();
75114
74931
 
75115
- if (! SCPyAxis .equals (Numbers_Vector3 .Zero))
74932
+ if (!SCPyAxis .equals (Numbers_Vector3 .Zero))
75116
74933
  break;
75117
74934
  }
75118
74935
 
@@ -75123,7 +74940,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75123
74940
  .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
75124
74941
  .normalize ();
75125
74942
 
75126
- if (! SCPzAxis .equals (Numbers_Vector3 .Zero))
74943
+ if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
75127
74944
  break;
75128
74945
  }
75129
74946
  }
@@ -75134,7 +74951,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75134
74951
  {
75135
74952
  SCPyAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ()) .normalize ();
75136
74953
 
75137
- if (! SCPyAxis .equals (Numbers_Vector3 .Zero))
74954
+ if (!SCPyAxis .equals (Numbers_Vector3 .Zero))
75138
74955
  break;
75139
74956
  }
75140
74957
 
@@ -75145,7 +74962,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75145
74962
  .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
75146
74963
  .normalize ();
75147
74964
 
75148
- if (! SCPzAxis .equals (Numbers_Vector3 .Zero))
74965
+ if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
75149
74966
  break;
75150
74967
  }
75151
74968
  }
@@ -75263,7 +75080,7 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75263
75080
  return function ()
75264
75081
  {
75265
75082
  const
75266
- cw = ! this ._ccw .getValue (),
75083
+ cw = !this ._ccw .getValue (),
75267
75084
  crossSection = this ._crossSection,
75268
75085
  spine = this ._spine,
75269
75086
  numSpines = spine .length,
@@ -80189,7 +80006,9 @@ const TextureCoordinateGenerator_default_ = TextureCoordinateGenerator;
80189
80006
 
80190
80007
 
80191
80008
 
80192
- // No support for X3DBindableNode nodes, local lights. X3DLocalFog, local ClipPlane nodes, LOD, Billboard, Switch node.
80009
+ const CLONE_COUNT = 2; // Minimum number of shapes that must be cloned to become an InstancedShape.
80010
+
80011
+ // No support for X3DBindableNode nodes, local lights. X3DLocalFog, local ClipPlane nodes, LOD, Billboard node.
80193
80012
 
80194
80013
  function StaticGroup (executionContext)
80195
80014
  {
@@ -80243,35 +80062,43 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80243
80062
  for (const visibleNode of this .visibleNodes)
80244
80063
  visibleNode .traverse (type, renderObject);
80245
80064
  },
80246
- createStaticShapes: (() =>
80065
+ createStaticShapes (renderObject)
80247
80066
  {
80248
- const Statics = ["Opaque", "Transparent", "TransmissionOpaque", "TransmissionTransparent"];
80249
-
80250
- const viewVolume = new Geometry_ViewVolume ();
80067
+ // Check if scene is currently loading something.
80251
80068
 
80252
- viewVolume .intersectsSphere = () => true;
80069
+ const scene = this .getScene ();
80253
80070
 
80254
- return function (renderObject)
80071
+ if (scene ._loadCount .getValue ())
80255
80072
  {
80256
- // Check if scene is currently loading something.
80073
+ scene ._loadCount .addFieldCallback (this, () =>
80074
+ {
80075
+ if (scene ._loadCount .getValue ())
80076
+ return;
80257
80077
 
80258
- const scene = this .getScene ();
80078
+ scene ._loadCount .removeFieldCallback (this);
80259
80079
 
80260
- if (scene ._loadCount .getValue ())
80261
- {
80262
- scene ._loadCount .addFieldCallback (this, () =>
80263
- {
80264
- if (scene ._loadCount .getValue ())
80265
- return;
80080
+ this .set_children__ ();
80081
+ });
80082
+ }
80083
+ else
80084
+ {
80085
+ // Create static shapes.
80266
80086
 
80267
- scene ._loadCount .removeFieldCallback (this);
80087
+ this .optimizeGroups (this .createGroups (renderObject));
80088
+ }
80268
80089
 
80269
- this .visibleNodes = null;
80270
- });
80090
+ return [this .groupNode];
80091
+ },
80092
+ createGroups: (() =>
80093
+ {
80094
+ const Statics = ["Opaque", "Transparent"];
80271
80095
 
80272
- return [this .groupNode];
80273
- }
80096
+ const viewVolume = new Geometry_ViewVolume ();
80097
+
80098
+ viewVolume .intersectsSphere = () => true;
80274
80099
 
80100
+ return function (renderObject)
80101
+ {
80275
80102
  // Traverse Group node to get render contexts.
80276
80103
 
80277
80104
  const
@@ -80317,6 +80144,7 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80317
80144
  // Sort out TextureCoordinateGenerator nodes.
80318
80145
 
80319
80146
  const
80147
+ clonesIndex = new Map (renderContexts .map (({shapeNode}) => [shapeNode, [ ]])),
80320
80148
  groupsIndex = { },
80321
80149
  singlesIndex = { };
80322
80150
 
@@ -80347,32 +80175,37 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80347
80175
  key += shapeNode ._castShadow .getValue () ? 1 : 0;
80348
80176
  key += shapeNode ._bboxDisplay .getValue () ? 1 : 0;
80349
80177
 
80350
- const group = groupsIndex [key] ??= [ ];
80178
+ const
80179
+ clones = clonesIndex .get (shapeNode),
80180
+ group = groupsIndex [key] ??= [ ];
80351
80181
 
80352
- group .push (renderContext);
80182
+ clones .push (renderContext);
80183
+ group .push (renderContext);
80353
80184
  }
80354
80185
 
80355
- const
80356
- combineGroups = Object .values (groupsIndex),
80357
- singlesGroups = Object .values (singlesIndex);
80186
+ // Sort out shapes that are not cloned.
80358
80187
 
80359
- if (browser .getBrowserOption ("Debug"))
80188
+ for (const [id, group] of clonesIndex .entries ())
80360
80189
  {
80361
- console .info (`StaticGroup will create ${combineGroups .length + singlesGroups .length} static nodes from the previous ${renderContexts .length} nodes.`);
80190
+ if (group .length < CLONE_COUNT)
80191
+ clonesIndex .delete (id);
80362
80192
  }
80363
80193
 
80364
- // Create static shapes.
80365
-
80366
- if (DEVELOPMENT)
80367
- console .time ("StaticGroup");
80194
+ // Create arrays.
80368
80195
 
80369
- const visibleNodes = combineGroups .map (group => this .combineShapes (group))
80370
- .concat (singlesGroups .map (group => this .normalizeSingleShapes (group)));
80196
+ const
80197
+ clonesGroups = Array .from (clonesIndex .values ()),
80198
+ combineGroups = Object .values (groupsIndex)
80199
+ .map (group => group .filter (({shapeNode}) => !clonesIndex .has (shapeNode)))
80200
+ .filter (group => group .length),
80201
+ singlesGroups = Object .values (singlesIndex);
80371
80202
 
80372
- if (DEVELOPMENT)
80373
- console .timeEnd ("StaticGroup");
80203
+ if (browser .getBrowserOption ("Debug"))
80204
+ {
80205
+ console .info (`StaticGroup will create ${clonesGroups .length + combineGroups .length + singlesGroups .length} static nodes from the previous ${renderContexts .length} nodes.`);
80206
+ }
80374
80207
 
80375
- return visibleNodes;
80208
+ return { clonesGroups, combineGroups, singlesGroups };
80376
80209
  };
80377
80210
  })(),
80378
80211
  hasTextureCoordinateGenerator (geometryNode)
@@ -80390,7 +80223,68 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80390
80223
 
80391
80224
  return false;
80392
80225
  },
80393
- combineShapes (group)
80226
+ async optimizeGroups ({ clonesGroups, combineGroups, singlesGroups })
80227
+ {
80228
+ if (clonesGroups .length)
80229
+ await this .getBrowser () .loadComponents ("X_ITE");
80230
+
80231
+ // Create static shapes.
80232
+
80233
+ if (DEVELOPMENT)
80234
+ console .time ("StaticGroup");
80235
+
80236
+ const visibleNodes = [ ];
80237
+
80238
+ clonesGroups .forEach (group => this .combineClones (group, visibleNodes));
80239
+ combineGroups .forEach (group => this .combineShapes (group, visibleNodes));
80240
+ singlesGroups .forEach (group => this .normalizeSingleShapes (group, visibleNodes));
80241
+
80242
+ this .visibleNodes = visibleNodes;
80243
+
80244
+ if (DEVELOPMENT)
80245
+ console .timeEnd ("StaticGroup");
80246
+ },
80247
+ combineClones: (function ()
80248
+ {
80249
+ const
80250
+ modelMatrix = new Numbers_Matrix4 (),
80251
+ t = new Numbers_Vector3 (),
80252
+ r = new Numbers_Rotation4 (),
80253
+ s = new Numbers_Vector3 (),
80254
+ so = new Numbers_Rotation4 ();
80255
+
80256
+ return function (group, visibleNodes)
80257
+ {
80258
+ const
80259
+ browser = this .getBrowser (),
80260
+ executionContext = this .getExecutionContext (),
80261
+ InstancedShape = browser .getConcreteNodes () .get ("InstancedShape"),
80262
+ instancedShape = new InstancedShape (executionContext),
80263
+ shapeNode0 = group [0] .shapeNode;
80264
+
80265
+ for (const { modelViewMatrix } of group)
80266
+ {
80267
+ modelMatrix .assign (modelViewMatrix) .get (t, r, s, so);
80268
+
80269
+ instancedShape ._translations .push (t);
80270
+ instancedShape ._rotations .push (r);
80271
+ instancedShape ._scales .push (s);
80272
+ instancedShape ._scaleOrientations .push (so);
80273
+ }
80274
+
80275
+ instancedShape ._pointerEvents = shapeNode0 ._pointerEvents;
80276
+ instancedShape ._castShadow = shapeNode0 ._castShadow;
80277
+ instancedShape ._bboxDisplay = shapeNode0 ._bboxDisplay;
80278
+ instancedShape ._appearance = shapeNode0 ._appearance;
80279
+ instancedShape ._geometry = shapeNode0 ._geometry;
80280
+
80281
+ instancedShape .setPrivate (true);
80282
+ instancedShape .setup ();
80283
+
80284
+ visibleNodes .push (instancedShape);
80285
+ };
80286
+ })(),
80287
+ combineShapes (group, visibleNodes)
80394
80288
  {
80395
80289
  const
80396
80290
  executionContext = this .getExecutionContext (),
@@ -80597,7 +80491,7 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80597
80491
  newShapeNode .setPrivate (true);
80598
80492
  newShapeNode .setup ();
80599
80493
 
80600
- return newShapeNode;
80494
+ visibleNodes .push (newShapeNode);
80601
80495
  },
80602
80496
  normalizeGeometry: (function ()
80603
80497
  {
@@ -80839,34 +80733,37 @@ Object .assign (Object .setPrototypeOf (StaticGroup .prototype, Core_X3DChildNod
80839
80733
  return newGeometryNode;
80840
80734
  };
80841
80735
  })(),
80842
- normalizeSingleShapes (group)
80736
+ normalizeSingleShapes: (function ()
80843
80737
  {
80844
- const
80845
- executionContext = this .getExecutionContext (),
80846
- newTransformNode = new Grouping_Transform (executionContext),
80847
- modelMatrix = new Numbers_Matrix4 (... group [0] .modelViewMatrix);
80848
-
80849
80738
  const
80850
80739
  t = new Numbers_Vector3 (),
80851
80740
  r = new Numbers_Rotation4 (),
80852
80741
  s = new Numbers_Vector3 (),
80853
80742
  so = new Numbers_Rotation4 ();
80854
80743
 
80855
- modelMatrix .get (t, r, s, so);
80744
+ return function (group, visibleNodes)
80745
+ {
80746
+ const
80747
+ executionContext = this .getExecutionContext (),
80748
+ newTransformNode = new Grouping_Transform (executionContext),
80749
+ modelMatrix = new Numbers_Matrix4 (... group [0] .modelViewMatrix);
80750
+
80751
+ modelMatrix .get (t, r, s, so);
80856
80752
 
80857
- newTransformNode ._translation = t;
80858
- newTransformNode ._rotation = r;
80859
- newTransformNode ._scale = s;
80860
- newTransformNode ._scaleOrientation = so;
80753
+ newTransformNode ._translation = t;
80754
+ newTransformNode ._rotation = r;
80755
+ newTransformNode ._scale = s;
80756
+ newTransformNode ._scaleOrientation = so;
80861
80757
 
80862
- for (const { shapeNode } of group)
80863
- newTransformNode ._children .push (shapeNode);
80758
+ for (const { shapeNode } of group)
80759
+ newTransformNode ._children .push (shapeNode);
80864
80760
 
80865
- newTransformNode .setPrivate (true);
80866
- newTransformNode .setup ();
80761
+ newTransformNode .setPrivate (true);
80762
+ newTransformNode .setup ();
80867
80763
 
80868
- return newTransformNode;
80869
- },
80764
+ visibleNodes .push (newTransformNode);
80765
+ };
80766
+ })(),
80870
80767
  dispose ()
80871
80768
  {
80872
80769
  Grouping_X3DBoundedObject .prototype .dispose .call (this);
@@ -83549,7 +83446,7 @@ Object .assign (Object .setPrototypeOf (X3DLightNode .prototype, Core_X3DChildNo
83549
83446
  {
83550
83447
  const lightContainer = renderObject .getLightContainer ();
83551
83448
 
83552
- lightContainer .modelViewMatrix .pushMatrix (renderObject .getModelViewMatrix () .get ());
83449
+ lightContainer .modelViewMatrix .push (renderObject .getModelViewMatrix () .get ());
83553
83450
 
83554
83451
  if (this ._global .getValue ())
83555
83452
  {
@@ -83687,7 +83584,7 @@ Object .assign (DirectionalLightContainer .prototype,
83687
83584
  this .groupNode = groupNode;
83688
83585
  this .global = lightNode .getGlobal ();
83689
83586
 
83690
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
83587
+ this .modelViewMatrix .push (modelViewMatrix);
83691
83588
 
83692
83589
  // Get shadow buffer from browser.
83693
83590
 
@@ -83723,8 +83620,8 @@ Object .assign (DirectionalLightContainer .prototype,
83723
83620
  this .shadowBuffer .bind ();
83724
83621
 
83725
83622
  renderObject .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, viewport, viewport));
83726
- renderObject .getProjectionMatrix () .pushMatrix (projectionMatrix);
83727
- renderObject .getModelViewMatrix () .pushMatrix (invLightSpaceMatrix);
83623
+ renderObject .getProjectionMatrix () .push (projectionMatrix);
83624
+ renderObject .getModelViewMatrix () .push (invLightSpaceMatrix);
83728
83625
 
83729
83626
  renderObject .render (Rendering_TraverseType .SHADOW, Grouping_X3DGroupingNode .prototype .traverse, this .groupNode);
83730
83627
 
@@ -83744,7 +83641,10 @@ Object .assign (DirectionalLightContainer .prototype,
83744
83641
  if (!this .shadowBuffer)
83745
83642
  return;
83746
83643
 
83747
- this .shadowMatrix .assign (renderObject .getCameraSpaceMatrix () .get ()) .multRight (this .invLightSpaceProjectionMatrix);
83644
+ this .shadowMatrix
83645
+ .assign (renderObject .getCameraSpaceMatrixArray ())
83646
+ .multRight (this .invLightSpaceProjectionMatrix);
83647
+
83748
83648
  this .shadowMatrixArray .set (this .shadowMatrix);
83749
83649
  },
83750
83650
  setShaderUniforms (gl, shaderObject)
@@ -83948,7 +83848,7 @@ Object .assign (EnvironmentLightContainer .prototype,
83948
83848
  this .lightNode = lightNode;
83949
83849
  this .global = lightNode .getGlobal ();
83950
83850
 
83951
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
83851
+ this .modelViewMatrix .push (modelViewMatrix);
83952
83852
  },
83953
83853
  renderShadowMap (renderObject)
83954
83854
  { },
@@ -84239,7 +84139,7 @@ Object .assign (PointLightContainer .prototype,
84239
84139
 
84240
84140
  this .matrixArray .set (modelViewMatrix .submatrix .inverse ());
84241
84141
 
84242
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
84142
+ this .modelViewMatrix .push (modelViewMatrix);
84243
84143
 
84244
84144
  // Get shadow buffer from browser.
84245
84145
 
@@ -84277,8 +84177,8 @@ Object .assign (PointLightContainer .prototype,
84277
84177
  projectionMatrix = Geometry_Camera .perspective2 (Math_Algorithm .radians (90), 0.125, 10000, viewport [2], viewport [3], this .projectionMatrix); // Use higher far value for better precision.
84278
84178
 
84279
84179
  renderObject .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, viewport, viewport));
84280
- renderObject .getProjectionMatrix () .pushMatrix (this .projectionMatrix);
84281
- renderObject .getModelViewMatrix () .pushMatrix (orientationMatrices [i]);
84180
+ renderObject .getProjectionMatrix () .push (this .projectionMatrix);
84181
+ renderObject .getModelViewMatrix () .push (orientationMatrices [i]);
84282
84182
  renderObject .getModelViewMatrix () .multLeft (invLightSpaceMatrix);
84283
84183
 
84284
84184
  renderObject .render (Rendering_TraverseType .SHADOW, Grouping_X3DGroupingNode .prototype .traverse, this .groupNode);
@@ -84300,7 +84200,10 @@ Object .assign (PointLightContainer .prototype,
84300
84200
  if (!this .shadowBuffer)
84301
84201
  return;
84302
84202
 
84303
- this .shadowMatrix .assign (renderObject .getCameraSpaceMatrix () .get ()) .multRight (this .invLightSpaceProjectionMatrix);
84203
+ this .shadowMatrix
84204
+ .assign (renderObject .getCameraSpaceMatrixArray ())
84205
+ .multRight (this .invLightSpaceProjectionMatrix);
84206
+
84304
84207
  this .shadowMatrixArray .set (this .shadowMatrix);
84305
84208
  },
84306
84209
  setShaderUniforms (gl, shaderObject)
@@ -84544,7 +84447,7 @@ Object .assign (SpotLightContainer .prototype,
84544
84447
 
84545
84448
  this .matrixArray .set (modelViewMatrix .submatrix .inverse ());
84546
84449
 
84547
- this .modelViewMatrix .pushMatrix (modelViewMatrix);
84450
+ this .modelViewMatrix .push (modelViewMatrix);
84548
84451
 
84549
84452
  // Get shadow buffer from browser.
84550
84453
 
@@ -84585,8 +84488,8 @@ Object .assign (SpotLightContainer .prototype,
84585
84488
  this .shadowBuffer .bind ();
84586
84489
 
84587
84490
  renderObject .getViewVolumes () .push (this .viewVolume .set (projectionMatrix, viewport, viewport));
84588
- renderObject .getProjectionMatrix () .pushMatrix (projectionMatrix);
84589
- renderObject .getModelViewMatrix () .pushMatrix (invLightSpaceMatrix);
84491
+ renderObject .getProjectionMatrix () .push (projectionMatrix);
84492
+ renderObject .getModelViewMatrix () .push (invLightSpaceMatrix);
84590
84493
 
84591
84494
  renderObject .render (Rendering_TraverseType .SHADOW, Grouping_X3DGroupingNode .prototype .traverse, this .groupNode);
84592
84495
 
@@ -84611,7 +84514,10 @@ Object .assign (SpotLightContainer .prototype,
84611
84514
  if (!this .shadowBuffer)
84612
84515
  return;
84613
84516
 
84614
- this .shadowMatrix .assign (renderObject .getCameraSpaceMatrix () .get ()) .multRight (this .invLightSpaceProjectionMatrix);
84517
+ this .shadowMatrix
84518
+ .assign (renderObject .getCameraSpaceMatrixArray ())
84519
+ .multRight (this .invLightSpaceProjectionMatrix);
84520
+
84615
84521
  this .shadowMatrixArray .set (this .shadowMatrix);
84616
84522
  },
84617
84523
  setShaderUniforms (gl, shaderObject)
@@ -90567,7 +90473,7 @@ mediump samplerCube textureCube;
90567
90473
 
90568
90474
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90569
90475
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90570
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(723);
90476
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(375);
90571
90477
  /*******************************************************************************
90572
90478
  *
90573
90479
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -91767,7 +91673,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91767
91673
  if (location0 === -1)
91768
91674
  return;
91769
91675
 
91770
- stride = stride || 36;
91676
+ stride ||= 36;
91771
91677
 
91772
91678
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91773
91679
 
@@ -91786,7 +91692,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91786
91692
  if (location0 === -1)
91787
91693
  return;
91788
91694
 
91789
- stride = stride || 64;
91695
+ stride ||= 64;
91790
91696
 
91791
91697
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91792
91698
 
@@ -91909,7 +91815,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91909
91815
  {
91910
91816
  const location0 = this .x3d_InstanceMatrix;
91911
91817
 
91912
- stride = stride || 64; // 4 Bytes * 16
91818
+ stride ||= 64; // 4 Bytes * 16
91913
91819
 
91914
91820
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91915
91821
 
@@ -91926,7 +91832,7 @@ Object .assign (X3DProgrammableShaderObject .prototype,
91926
91832
  {
91927
91833
  const location0 = this .x3d_InstanceNormalMatrix;
91928
91834
 
91929
- stride = stride || 36; // 4 Bytes * 9
91835
+ stride ||= 36; // 4 Bytes * 9
91930
91836
 
91931
91837
  gl .bindBuffer (gl .ARRAY_BUFFER, buffer);
91932
91838
 
@@ -94011,63 +93917,29 @@ return pointSize+1.0-step(pointSize,1.0);
94011
93917
 
94012
93918
  /* harmony default export */ const PointSize2_glsl = (x_ite_Namespace .add ("PointSize2.glsl", PointSize2_glsl_default_));
94013
93919
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl2/common/Shadow2.glsl.js
93920
+ const maxLights = 8;
93921
+
94014
93922
  const Shadow2_glsl_default_ = /* glsl */ `
94015
93923
  #if defined(X3D_FRAGMENT_SHADER)&&defined(X3D_SHADOWS)
94016
93924
  uniform sampler2D x3d_ShadowMap[X3D_NUM_LIGHTS];
94017
93925
  #if __VERSION__==100
94018
93926
  float getShadowDepth(const in int index,const in vec2 shadowCoord){
94019
- #if X3D_NUM_LIGHTS>0
94020
- if(index==0)return texture2D(x3d_ShadowMap[0],shadowCoord).r;
94021
- #endif
94022
- #if X3D_NUM_LIGHTS>1
94023
- if(index==1)return texture2D(x3d_ShadowMap[1],shadowCoord).r;
94024
- #endif
94025
- #if X3D_NUM_LIGHTS>2
94026
- if(index==2)return texture2D(x3d_ShadowMap[2],shadowCoord).r;
94027
- #endif
94028
- #if X3D_NUM_LIGHTS>3
94029
- if(index==3)return texture2D(x3d_ShadowMap[3],shadowCoord).r;
94030
- #endif
94031
- #if X3D_NUM_LIGHTS>4
94032
- if(index==4)return texture2D(x3d_ShadowMap[4],shadowCoord).r;
94033
- #endif
94034
- #if X3D_NUM_LIGHTS>5
94035
- if(index==5)return texture2D(x3d_ShadowMap[5],shadowCoord).r;
94036
- #endif
94037
- #if X3D_NUM_LIGHTS>6
94038
- if(index==6)return texture2D(x3d_ShadowMap[6],shadowCoord).r;
94039
- #endif
94040
- #if X3D_NUM_LIGHTS>7
94041
- if(index==7)return texture2D(x3d_ShadowMap[7],shadowCoord).r;
93927
+ ${Array .from ({ length: maxLights }, (_, i) => /* glsl */ `
93928
+ #if X3D_NUM_LIGHTS > ${i}
93929
+ if (index == ${i})
93930
+ return texture2D (x3d_ShadowMap [${i}], shadowCoord) .r;
94042
93931
  #endif
93932
+ `) .join ("\n")}
94043
93933
  return 0.0;}
94044
93934
  #else
94045
93935
  float getShadowDepth(const in int index,const in vec2 shadowCoord){switch(index){
94046
- #if X3D_NUM_LIGHTS>0
94047
- case 0:{return texture(x3d_ShadowMap[0],shadowCoord).r;}
94048
- #endif
94049
- #if X3D_NUM_LIGHTS>1
94050
- case 1:{return texture(x3d_ShadowMap[1],shadowCoord).r;}
94051
- #endif
94052
- #if X3D_NUM_LIGHTS>2
94053
- case 2:{return texture(x3d_ShadowMap[2],shadowCoord).r;}
94054
- #endif
94055
- #if X3D_NUM_LIGHTS>3
94056
- case 3:{return texture(x3d_ShadowMap[3],shadowCoord).r;}
94057
- #endif
94058
- #if X3D_NUM_LIGHTS>4
94059
- case 4:{return texture(x3d_ShadowMap[4],shadowCoord).r;}
94060
- #endif
94061
- #if X3D_NUM_LIGHTS>5
94062
- case 5:{return texture(x3d_ShadowMap[5],shadowCoord).r;}
94063
- #endif
94064
- #if X3D_NUM_LIGHTS>6
94065
- case 6:{return texture(x3d_ShadowMap[6],shadowCoord).r;}
94066
- #endif
94067
- #if X3D_NUM_LIGHTS>7
94068
- case 7:{return texture(x3d_ShadowMap[7],shadowCoord).r;}
93936
+ ${Array .from ({ length: maxLights }, (_, i) => /* glsl */ `
93937
+ #if X3D_NUM_LIGHTS > ${i}
93938
+ case ${i}:
93939
+ return texture (x3d_ShadowMap [${i}], shadowCoord) .r;
94069
93940
  #endif
94070
- default:{return 0.0;}}}
93941
+ `) .join ("\n")}
93942
+ }return 0.0;}
94071
93943
  #endif
94072
93944
  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;
94073
93945
  #if defined(X3D_PCF_FILTERING)||defined(X3D_PCF_SOFT_FILTERING)
@@ -95770,7 +95642,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95770
95642
 
95771
95643
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
95772
95644
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95773
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(723);
95645
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(375);
95774
95646
  /*******************************************************************************
95775
95647
  *
95776
95648
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96368,7 +96240,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96368
96240
 
96369
96241
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96370
96242
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96371
- /* provided dependency */ var Appearance_$ = __webpack_require__(723);
96243
+ /* provided dependency */ var Appearance_$ = __webpack_require__(375);
96372
96244
  /*******************************************************************************
96373
96245
  *
96374
96246
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96568,29 +96440,27 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96568
96440
  {
96569
96441
  this .stylePropertiesNode [0] = Base_X3DCast (Base_X3DConstants .PointProperties, this ._pointProperties);
96570
96442
 
96571
- if (!this .stylePropertiesNode [0])
96572
- {
96573
- const browser = this .getBrowser ();
96443
+ if (this .stylePropertiesNode [0])
96444
+ return;
96574
96445
 
96575
- if (browser .getRenderingProperty ("ContentScale") !== 1)
96576
- this .stylePropertiesNode [0] = browser .getDefaultPointProperties ();
96577
- }
96446
+ const browser = this .getBrowser ();
96447
+
96448
+ if (browser .getRenderingProperty ("ContentScale") !== 1)
96449
+ this .stylePropertiesNode [0] = browser .getDefaultPointProperties ();
96578
96450
  },
96579
96451
  set_lineProperties__ ()
96580
96452
  {
96581
- if (this .linePropertiesNode)
96582
- this .linePropertiesNode ._applied .removeInterest ("set_applied__", this);
96453
+ this .linePropertiesNode ?._applied .removeInterest ("set_applied__", this);
96583
96454
 
96584
96455
  this .linePropertiesNode = Base_X3DCast (Base_X3DConstants .LineProperties, this ._lineProperties);
96585
96456
 
96586
- if (this .linePropertiesNode)
96587
- this .linePropertiesNode ._applied .addInterest ("set_applied__", this);
96457
+ this .linePropertiesNode ?._applied .addInterest ("set_applied__", this);
96588
96458
 
96589
96459
  this .set_applied__ ();
96590
96460
  },
96591
96461
  set_applied__ ()
96592
96462
  {
96593
- if (this .linePropertiesNode && this .linePropertiesNode ._applied .getValue ())
96463
+ if (this .linePropertiesNode ?._applied .getValue ())
96594
96464
  {
96595
96465
  this .stylePropertiesNode [1] = this .linePropertiesNode;
96596
96466
  }
@@ -96606,13 +96476,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96606
96476
  },
96607
96477
  set_fillProperties__ ()
96608
96478
  {
96609
- if (this .stylePropertiesNode [2])
96610
- this .stylePropertiesNode [2] ._transparent .removeInterest ("set_transparent__", this);
96479
+ this .stylePropertiesNode [2] ?._transparent .removeInterest ("set_transparent__", this);
96611
96480
 
96612
96481
  this .stylePropertiesNode [2] = Base_X3DCast (Base_X3DConstants .FillProperties, this ._fillProperties);
96613
96482
 
96614
- if (this .stylePropertiesNode [2])
96615
- this .stylePropertiesNode [2] ._transparent .addInterest ("set_transparent__", this);
96483
+ this .stylePropertiesNode [2] ?._transparent .addInterest ("set_transparent__", this);
96616
96484
 
96617
96485
  this .stylePropertiesNode [3] = this .stylePropertiesNode [2];
96618
96486
  },
@@ -96624,16 +96492,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96624
96492
  this .materialNode ._transmission .removeInterest ("set_transmission__", this);
96625
96493
  }
96626
96494
 
96627
- this .materialNode = Base_X3DCast (Base_X3DConstants .X3DMaterialNode, this ._material);
96495
+ this .materialNode = Base_X3DCast (Base_X3DConstants .X3DMaterialNode, this ._material)
96496
+ ?? this .getBrowser () .getDefaultMaterial ();
96628
96497
 
96629
- if (!this .materialNode)
96630
- this .materialNode = this .getBrowser () .getDefaultMaterial ();
96631
-
96632
- if (this .materialNode)
96633
- {
96634
- this .materialNode ._transparent .addInterest ("set_transparent__", this);
96635
- this .materialNode ._transmission .addInterest ("set_transmission__", this);
96636
- }
96498
+ this .materialNode ._transparent .addInterest ("set_transparent__", this);
96499
+ this .materialNode ._transmission .addInterest ("set_transmission__", this);
96637
96500
 
96638
96501
  // Depreciated TwoSidedMaterial handling.
96639
96502
 
@@ -96642,13 +96505,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96642
96505
  },
96643
96506
  set_backMaterial__ ()
96644
96507
  {
96645
- if (this .backMaterialNode)
96646
- this .backMaterialNode ._transparent .removeInterest ("set_transparent__", this);
96508
+ this .backMaterialNode ?._transparent .removeInterest ("set_transparent__", this);
96647
96509
 
96648
96510
  this .backMaterialNode = Base_X3DCast (Base_X3DConstants .X3DOneSidedMaterialNode, this ._backMaterial);
96649
96511
 
96650
- if (this .backMaterialNode)
96651
- this .backMaterialNode ._transparent .addInterest ("set_transparent__", this);
96512
+ this .backMaterialNode ?._transparent .addInterest ("set_transparent__", this);
96652
96513
 
96653
96514
  // Depreciated TwoSidedMaterial handling.
96654
96515
 
@@ -96679,13 +96540,10 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96679
96540
  },
96680
96541
  set_textureTransform__ ()
96681
96542
  {
96682
- if (this .textureTransformNode)
96683
- this .textureTransformNode .removeInterest ("updateTextureTransformMapping", this);
96684
-
96685
- this .textureTransformNode = Base_X3DCast (Base_X3DConstants .X3DTextureTransformNode, this ._textureTransform);
96543
+ this .textureTransformNode ?.removeInterest ("updateTextureTransformMapping", this);
96686
96544
 
96687
- if (!this .textureTransformNode)
96688
- this .textureTransformNode = this .getBrowser () .getDefaultTextureTransform ();
96545
+ this .textureTransformNode = Base_X3DCast (Base_X3DConstants .X3DTextureTransformNode, this ._textureTransform)
96546
+ ?? this .getBrowser () .getDefaultTextureTransform ();
96689
96547
 
96690
96548
  this .textureTransformNode .addInterest ("updateTextureTransformMapping", this);
96691
96549
 
@@ -98753,18 +98611,12 @@ Object .assign (Object .setPrototypeOf (X3DShapeNode .prototype, Core_X3DChildNo
98753
98611
  this .appearanceNode ._transmission .removeInterest ("set_transmission__", this);
98754
98612
  }
98755
98613
 
98756
- this .appearanceNode = Base_X3DCast (Base_X3DConstants .X3DAppearanceNode, this ._appearance);
98614
+ this .appearanceNode = Base_X3DCast (Base_X3DConstants .X3DAppearanceNode, this ._appearance)
98615
+ ?? this .getBrowser () .getDefaultAppearance ();
98757
98616
 
98758
- if (this .appearanceNode)
98759
- {
98760
- this .appearanceNode ._alphaMode .addInterest ("set_transparent__", this);
98761
- this .appearanceNode ._transparent .addInterest ("set_transparent__", this);
98762
- this .appearanceNode ._transmission .addInterest ("set_transmission__", this);
98763
- }
98764
- else
98765
- {
98766
- this .appearanceNode = this .getBrowser () .getDefaultAppearance ();
98767
- }
98617
+ this .appearanceNode ._alphaMode .addInterest ("set_transparent__", this);
98618
+ this .appearanceNode ._transparent .addInterest ("set_transparent__", this);
98619
+ this .appearanceNode ._transmission .addInterest ("set_transmission__", this);
98768
98620
 
98769
98621
  this .set_transparent__ ();
98770
98622
  this .set_transmission__ ();
@@ -104623,8 +104475,8 @@ const GifMedia_default_ = GifMedia;
104623
104475
 
104624
104476
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
104625
104477
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
104626
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(723);
104627
- /* provided dependency */ var SuperGif = __webpack_require__(372);
104478
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(375);
104479
+ /* provided dependency */ var SuperGif = __webpack_require__(776);
104628
104480
  /*******************************************************************************
104629
104481
  *
104630
104482
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107092,7 +106944,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
107092
106944
 
107093
106945
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
107094
106946
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
107095
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(723);
106947
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(375);
107096
106948
  /*******************************************************************************
107097
106949
  *
107098
106950
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107722,7 +107574,7 @@ const TextCompression_default_ = TextCompression;
107722
107574
 
107723
107575
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
107724
107576
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107725
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(723);
107577
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(375);
107726
107578
  /*******************************************************************************
107727
107579
  *
107728
107580
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108369,7 +108221,7 @@ const RenderingProperties_default_ = RenderingProperties;
108369
108221
 
108370
108222
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108371
108223
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
108372
- /* provided dependency */ var Notification_$ = __webpack_require__(723);
108224
+ /* provided dependency */ var Notification_$ = __webpack_require__(375);
108373
108225
  /*******************************************************************************
108374
108226
  *
108375
108227
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108491,8 +108343,8 @@ const Notification_default_ = Notification;
108491
108343
 
108492
108344
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108493
108345
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
108494
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(543);
108495
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(723);
108346
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(123);
108347
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(375);
108496
108348
  /*******************************************************************************
108497
108349
  *
108498
108350
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111227,7 +111079,7 @@ const DataStorage_default_ = DataStorage;
111227
111079
 
111228
111080
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111229
111081
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
111230
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(723);
111082
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(375);
111231
111083
  /*******************************************************************************
111232
111084
  *
111233
111085
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113838,8 +113690,8 @@ const X3DViewer_default_ = X3DViewer;
113838
113690
 
113839
113691
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
113840
113692
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
113841
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(467);
113842
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(723);
113693
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(415);
113694
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(375);
113843
113695
  /*******************************************************************************
113844
113696
  *
113845
113697
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114754,8 +114606,8 @@ const ExamineViewer_default_ = ExamineViewer;
114754
114606
 
114755
114607
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
114756
114608
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
114757
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(467);
114758
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(723);
114609
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(415);
114610
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(375);
114759
114611
  /*******************************************************************************
114760
114612
  *
114761
114613
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115770,8 +115622,8 @@ const FlyViewer_default_ = FlyViewer;
115770
115622
 
115771
115623
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
115772
115624
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
115773
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(467);
115774
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(723);
115625
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(415);
115626
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(375);
115775
115627
  /*******************************************************************************
115776
115628
  *
115777
115629
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116100,8 +115952,8 @@ const NoneViewer_default_ = NoneViewer;
116100
115952
 
116101
115953
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
116102
115954
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
116103
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(467);
116104
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(723);
115955
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(415);
115956
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(375);
116105
115957
  /*******************************************************************************
116106
115958
  *
116107
115959
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117246,8 +117098,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117246
117098
 
117247
117099
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117248
117100
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
117249
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(467);
117250
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(723);
117101
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(415);
117102
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(375);
117251
117103
  /*******************************************************************************
117252
117104
  *
117253
117105
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118656,10 +118508,16 @@ class Lock
118656
118508
 
118657
118509
  const p = new Promise (async (resolve, reject) =>
118658
118510
  {
118659
- if (current .length)
118511
+ try
118512
+ {
118660
118513
  await Promise .allSettled (current);
118661
118514
 
118662
- callback () .then (resolve) .catch (reject);
118515
+ resolve (await callback ());
118516
+ }
118517
+ catch (error)
118518
+ {
118519
+ reject (error);
118520
+ }
118663
118521
  })
118664
118522
  .finally (() =>
118665
118523
  {
@@ -118680,7 +118538,7 @@ const Lock_default_ = Lock;
118680
118538
 
118681
118539
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
118682
118540
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
118683
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(723);
118541
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(375);
118684
118542
  /*******************************************************************************
118685
118543
  *
118686
118544
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119213,23 +119071,29 @@ Object .assign (X3DRenderingContext .prototype,
119213
119071
  if (this [_session] === window)
119214
119072
  return;
119215
119073
 
119216
- this .endEvents () .removeInterest ("endFrame", this);
119217
-
119218
- this [_session] .end () .catch (Function .prototype);
119219
-
119220
- for (const frameBuffer of this [_frameBuffers])
119221
- frameBuffer .dispose ();
119074
+ try
119075
+ {
119076
+ await this [_session] .end ();
119077
+ }
119078
+ catch
119079
+ { }
119080
+ finally
119081
+ {
119082
+ this .endEvents () .removeInterest ("endFrame", this);
119222
119083
 
119223
- this [_frameBuffers] .length = 0;
119084
+ for (const frameBuffer of this [_frameBuffers])
119085
+ frameBuffer .dispose ();
119224
119086
 
119225
- this [_session] = window;
119226
- this [_baseReferenceSpace] = null;
119227
- this [_referenceSpace] = null;
119228
- this [_baseLayer] = null;
119229
- this [_defaultFrameBuffer] = null;
119230
- this [_pose] = null;
119087
+ this [_frameBuffers] = [ ];
119088
+ this [_session] = window;
119089
+ this [_baseReferenceSpace] = null;
119090
+ this [_referenceSpace] = null;
119091
+ this [_baseLayer] = null;
119092
+ this [_defaultFrameBuffer] = null;
119093
+ this [_pose] = null;
119231
119094
 
119232
- this .reshape ();
119095
+ this .reshape ();
119096
+ }
119233
119097
  });
119234
119098
  },
119235
119099
  getSession ()
@@ -119290,12 +119154,14 @@ Object .assign (X3DRenderingContext .prototype,
119290
119154
  cameraSpaceMatrix: new Numbers_Matrix4 (),
119291
119155
  viewMatrix: new Numbers_Matrix4 (),
119292
119156
  matrix: new Numbers_Matrix4 (),
119157
+ inverse: new Numbers_Matrix4 (),
119293
119158
  };
119294
119159
 
119295
119160
  pv .projectionMatrix .assign (view .projectionMatrix);
119296
119161
  pv .cameraSpaceMatrix .assign (view .transform .matrix);
119297
119162
  pv .viewMatrix .assign (view .transform .inverse .matrix);
119298
119163
  pv .matrix .assign (pose .transform .matrix) .multRight (view .transform .inverse .matrix);
119164
+ pv .inverse .assign (pv .matrix) .inverse ();
119299
119165
 
119300
119166
  ++ v;
119301
119167
  }
@@ -119978,7 +119844,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
119978
119844
 
119979
119845
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
119980
119846
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
119981
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(723);
119847
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(375);
119982
119848
  const KTXDecoder_default_ = class KTXDecoder
119983
119849
  {
119984
119850
  constructor (gl, externalKtxlib, scriptDir)
@@ -121555,7 +121421,7 @@ const Components_default_ = Components;
121555
121421
 
121556
121422
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
121557
121423
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
121558
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(723);
121424
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(375);
121559
121425
  /*******************************************************************************
121560
121426
  * MIT License
121561
121427
  *
@@ -122821,7 +122687,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
122821
122687
 
122822
122688
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
122823
122689
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
122824
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(723);
122690
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(375);
122825
122691
  /*******************************************************************************
122826
122692
  *
122827
122693
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -123888,7 +123754,7 @@ const X3DBrowser_default_ = X3DBrowser;
123888
123754
 
123889
123755
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
123890
123756
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
123891
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(723);
123757
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(375);
123892
123758
  /*******************************************************************************
123893
123759
  *
123894
123760
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124155,8 +124021,8 @@ const QuickSort_default_ = QuickSort;
124155
124021
 
124156
124022
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124157
124023
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124158
- /* provided dependency */ var jquery_$ = __webpack_require__(723);
124159
- /* provided dependency */ var pako = __webpack_require__(771);
124024
+ /* provided dependency */ var jquery_$ = __webpack_require__(375);
124025
+ /* provided dependency */ var pako = __webpack_require__(671);
124160
124026
  Object .assign (jquery_$,
124161
124027
  {
124162
124028
  decodeText (input)
@@ -124232,13 +124098,13 @@ const jquery_default_ = jquery_$;
124232
124098
 
124233
124099
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124234
124100
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
124235
- /* provided dependency */ var libtess_libtess = __webpack_require__(824);
124101
+ /* provided dependency */ var libtess_libtess = __webpack_require__(660);
124236
124102
  const libtess_default_ = libtess_libtess;
124237
124103
  ;
124238
124104
 
124239
124105
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124240
124106
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
124241
- /* provided dependency */ var X3D_$ = __webpack_require__(723);
124107
+ /* provided dependency */ var X3D_$ = __webpack_require__(375);
124242
124108
  /*******************************************************************************
124243
124109
  *
124244
124110
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124542,7 +124408,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
124542
124408
 
124543
124409
  // Assign X3D to global namespace.
124544
124410
 
124545
- window [Symbol .for ("X_ITE.X3D-10.4.0")] = x_ite_X3D;
124411
+ window [Symbol .for ("X_ITE.X3D-10.4.2")] = x_ite_X3D;
124546
124412
 
124547
124413
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
124548
124414