x_ite 8.6.9 → 8.6.11

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 (92) hide show
  1. package/Makefile +12 -12
  2. package/build/bin/version.pl +6 -0
  3. package/dist/assets/components/Annotation.js +13 -13
  4. package/dist/assets/components/Annotation.min.js +1 -1
  5. package/dist/assets/components/CADGeometry.js +13 -13
  6. package/dist/assets/components/CADGeometry.min.js +1 -1
  7. package/dist/assets/components/CubeMapTexturing.js +25 -25
  8. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  9. package/dist/assets/components/DIS.js +13 -13
  10. package/dist/assets/components/DIS.min.js +1 -1
  11. package/dist/assets/components/EventUtilities.js +9 -9
  12. package/dist/assets/components/EventUtilities.min.js +1 -1
  13. package/dist/assets/components/Geometry2D.js +19 -19
  14. package/dist/assets/components/Geometry2D.min.js +1 -1
  15. package/dist/assets/components/Geospatial.js +40 -58
  16. package/dist/assets/components/Geospatial.min.js +1 -1
  17. package/dist/assets/components/HAnim.js +18 -18
  18. package/dist/assets/components/HAnim.min.js +1 -1
  19. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  20. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  21. package/dist/assets/components/Layout.js +27 -27
  22. package/dist/assets/components/Layout.min.js +1 -1
  23. package/dist/assets/components/NURBS.js +28 -34
  24. package/dist/assets/components/NURBS.min.js +1 -1
  25. package/dist/assets/components/ParticleSystems.js +27 -26
  26. package/dist/assets/components/ParticleSystems.min.js +1 -1
  27. package/dist/assets/components/Picking.js +19 -19
  28. package/dist/assets/components/Picking.min.js +1 -1
  29. package/dist/assets/components/RigidBodyPhysics.js +19 -19
  30. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  31. package/dist/assets/components/Scripting.js +28 -28
  32. package/dist/assets/components/Scripting.min.js +1 -1
  33. package/dist/assets/components/Text.js +24 -24
  34. package/dist/assets/components/Text.min.js +1 -1
  35. package/dist/assets/components/TextureProjector.js +14 -14
  36. package/dist/assets/components/TextureProjector.min.js +1 -1
  37. package/dist/assets/components/Texturing3D.js +30 -30
  38. package/dist/assets/components/Texturing3D.min.js +1 -1
  39. package/dist/assets/components/VolumeRendering.js +19 -19
  40. package/dist/assets/components/VolumeRendering.min.js +1 -1
  41. package/dist/assets/components/X_ITE.js +9 -9
  42. package/dist/assets/components/X_ITE.min.js +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +431 -487
  45. package/dist/x_ite.min.js +1 -1
  46. package/dist/x_ite.zip +0 -0
  47. package/docs/_config.yml +1 -1
  48. package/docs/_posts/getting-started.md +1 -1
  49. package/docs/laboratory/gltf-sample-viewer.html +4 -2
  50. package/package.json +1 -1
  51. package/src/assets/shaders/webgl1/include/Fragment.glsl.js +10 -2
  52. package/src/assets/shaders/webgl2/include/Fragment.glsl.js +10 -2
  53. package/src/standard/Math/Algorithm.js +8 -1
  54. package/src/standard/Utility/BitSet.js +33 -0
  55. package/src/tests.js +1 -1
  56. package/src/x_ite/Browser/Core/BrowserTimings.js +7 -1
  57. package/src/x_ite/Browser/Core/Context.js +5 -3
  58. package/src/x_ite/Browser/Rendering/GeometryContext.js +2 -0
  59. package/src/x_ite/Browser/Shape/AlphaMode.js +1 -1
  60. package/src/x_ite/Browser/VERSION.js +1 -1
  61. package/src/x_ite/Browser/X3DBrowser.js +2 -2
  62. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +115 -139
  63. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +1 -1
  64. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +10 -31
  65. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +3 -6
  66. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +7 -25
  67. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +1 -1
  68. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +4 -10
  69. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +0 -10
  70. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +4 -3
  71. package/src/x_ite/Components/Rendering/IndexedLineSet.js +11 -33
  72. package/src/x_ite/Components/Rendering/LineSet.js +12 -37
  73. package/src/x_ite/Components/Rendering/PointSet.js +11 -24
  74. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +14 -39
  75. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +1 -1
  76. package/src/x_ite/Components/Shape/Appearance.js +9 -5
  77. package/src/x_ite/Components/Shape/Material.js +1 -2
  78. package/src/x_ite/Components/Shape/PhysicalMaterial.js +1 -2
  79. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +1 -1
  80. package/src/x_ite/Components/Shape/UnlitMaterial.js +1 -1
  81. package/src/x_ite/Components/Shape/X3DMaterialNode.js +24 -9
  82. package/src/x_ite/Components/Shape/X3DShapeNode.js +1 -2
  83. package/src/x_ite/Components/Texturing/ImageTexture.js +8 -3
  84. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +2 -0
  85. package/src/x_ite/Fields/SFImage.js +9 -9
  86. package/src/x_ite/Fields/SFInt32.js +2 -2
  87. package/src/x_ite/Rendering/X3DRenderObject.js +0 -2
  88. package/src/x_ite.html +1 -1
  89. package/x_ite.min.html +2 -2
  90. /package/docs/assets/X3D/{Michroma-Regular.ttf → teaser/Michroma-Regular.ttf} +0 -0
  91. /package/docs/assets/X3D/{peakpx.jpg → teaser/peakpx.jpg} +0 -0
  92. /package/docs/assets/X3D/{teaser.x3d → teaser/teaser.x3d} +0 -0
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v8.6.9 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v8.6.11 */(function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if(typeof define === 'function' && define.amd)
@@ -11,11 +11,11 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 599:
14
+ /***/ 382:
15
15
  /***/ (function(module, exports, __webpack_require__) {
16
16
 
17
17
  "use strict";
18
- /* provided dependency */ var jQuery = __webpack_require__(998);
18
+ /* provided dependency */ var jQuery = __webpack_require__(2);
19
19
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
20
20
 
21
21
  /**
@@ -387,10 +387,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
387
387
 
388
388
  /***/ }),
389
389
 
390
- /***/ 774:
390
+ /***/ 440:
391
391
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
392
392
 
393
- /* provided dependency */ var jQuery = __webpack_require__(998);
393
+ /* provided dependency */ var jQuery = __webpack_require__(2);
394
394
  /**
395
395
  * @preserve jquery.fullscreen 1.1.5
396
396
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -586,7 +586,7 @@ installFullScreenHandlers();
586
586
 
587
587
  /***/ }),
588
588
 
589
- /***/ 136:
589
+ /***/ 11:
590
590
  /***/ ((module, exports, __webpack_require__) => {
591
591
 
592
592
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -600,7 +600,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
600
600
  (function (factory) {
601
601
  if ( true ) {
602
602
  // AMD. Register as an anonymous module.
603
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(998)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
603
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(2)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
604
604
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
605
605
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
606
606
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -811,7 +811,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
811
811
 
812
812
  /***/ }),
813
813
 
814
- /***/ 998:
814
+ /***/ 2:
815
815
  /***/ (function(module, exports) {
816
816
 
817
817
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11812,7 +11812,7 @@ return jQuery;
11812
11812
 
11813
11813
  /***/ }),
11814
11814
 
11815
- /***/ 422:
11815
+ /***/ 735:
11816
11816
  /***/ ((module) => {
11817
11817
 
11818
11818
  /**
@@ -16591,7 +16591,7 @@ if (true) {
16591
16591
 
16592
16592
  /***/ }),
16593
16593
 
16594
- /***/ 978:
16594
+ /***/ 250:
16595
16595
  /***/ (function(__unused_webpack_module, exports) {
16596
16596
 
16597
16597
 
@@ -19836,7 +19836,7 @@ if (true) {
19836
19836
 
19837
19837
  /***/ }),
19838
19838
 
19839
- /***/ 921:
19839
+ /***/ 423:
19840
19840
  /***/ (function(module, exports) {
19841
19841
 
19842
19842
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -23619,7 +23619,14 @@ const Algorithm_default_ = class Algorithm
23619
23619
  if (this .isPowerOfTwo (n))
23620
23620
  return n;
23621
23621
 
23622
- return 1 << 32 - Math .clz32 (n);
23622
+ return 1 << (32 - Math .clz32 (n));
23623
+ }
23624
+
23625
+ static bitCount (n)
23626
+ {
23627
+ n = n - ((n >>> 1) & 0x55555555);
23628
+ n = (n & 0x33333333) + ((n >>> 2) & 0x33333333);
23629
+ return ((n + (n >>> 4) & 0xF0F0F0F) * 0x1010101) >>> 24;
23623
23630
  }
23624
23631
 
23625
23632
  static cmp (lhs, rhs)
@@ -24921,7 +24928,7 @@ x_ite_Namespace.set ("x_ite/Fields/SFFloat", SFFloat_default_);
24921
24928
 
24922
24929
  function SFInt32 (value)
24923
24930
  {
24924
- return Base_X3DField.call (this, ~~value);
24931
+ return Base_X3DField.call (this, value|0);
24925
24932
  }
24926
24933
 
24927
24934
  SFInt32 .prototype = Object .assign (Object .create (Base_X3DField.prototype),
@@ -24945,7 +24952,7 @@ SFInt32 .prototype = Object .assign (Object .create (Base_X3DField.prototype),
24945
24952
  },
24946
24953
  set: function (value)
24947
24954
  {
24948
- Base_X3DField.prototype.set.call (this, ~~value);
24955
+ Base_X3DField.prototype.set.call (this, value|0);
24949
24956
  },
24950
24957
  valueOf: Base_X3DField.prototype.getValue,
24951
24958
  toStream: function (generator)
@@ -33823,9 +33830,9 @@ function Image (width, height, comp, array)
33823
33830
  {
33824
33831
  const MFInt32 = Fields_ArrayFields.MFInt32;
33825
33832
 
33826
- this .width = ~~width;
33827
- this .height = ~~height;
33828
- this .comp = ~~comp;
33833
+ this .width = width|0;
33834
+ this .height = height|0;
33835
+ this .comp = comp|0;
33829
33836
  this .array = new MFInt32 ();
33830
33837
  this .array .setValue (array);
33831
33838
  this .array .length = this .width * this .height;
@@ -33854,14 +33861,14 @@ Image .prototype =
33854
33861
  },
33855
33862
  set: function (width, height, comp, array)
33856
33863
  {
33857
- this .width = ~~width;
33858
- this .height = ~~height;
33859
- this .comp = ~~comp;
33864
+ this .width = width|0;
33865
+ this .height = height|0;
33866
+ this .comp = comp|0;
33860
33867
  this .array .assign (array);
33861
33868
  },
33862
33869
  setWidth: function (value)
33863
33870
  {
33864
- this .width = ~~value;
33871
+ this .width = value|0;
33865
33872
  this .array .length = this .width * this .height;
33866
33873
  },
33867
33874
  getWidth: function ()
@@ -33870,7 +33877,7 @@ Image .prototype =
33870
33877
  },
33871
33878
  setHeight: function (value)
33872
33879
  {
33873
- this .height = ~~value;
33880
+ this .height = value|0;
33874
33881
  this .array .length = this .width * this .height;
33875
33882
  },
33876
33883
  getHeight: function ()
@@ -33879,7 +33886,7 @@ Image .prototype =
33879
33886
  },
33880
33887
  setComp: function (value)
33881
33888
  {
33882
- this .comp = ~~value;
33889
+ this .comp = value|0;
33883
33890
  },
33884
33891
  getComp: function ()
33885
33892
  {
@@ -34949,7 +34956,7 @@ x_ite_Namespace.set ("x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34949
34956
  *
34950
34957
  ******************************************************************************/
34951
34958
 
34952
- const VERSION_default_ = "8.6.9";
34959
+ const VERSION_default_ = "8.6.11";
34953
34960
  ;
34954
34961
 
34955
34962
  x_ite_Namespace.set ("x_ite/Browser/VERSION", VERSION_default_);
@@ -35205,10 +35212,12 @@ const Context =
35205
35212
  // Async functions
35206
35213
 
35207
35214
  Object .assign (gl, gl .getVersion () === 1
35208
- ? {
35215
+ ?
35216
+ {
35209
35217
  readPixelsAsync: gl .readPixels,
35210
35218
  }
35211
- : {
35219
+ :
35220
+ {
35212
35221
  clientWaitAsync: function (sync, flags, timeout)
35213
35222
  {
35214
35223
  return new Promise ((resolve, reject) =>
@@ -35237,7 +35246,7 @@ const Context =
35237
35246
  }
35238
35247
  };
35239
35248
 
35240
- check ();
35249
+ setTimeout (check, 0);
35241
35250
  });
35242
35251
  },
35243
35252
  getBufferSubDataAsync: async function (target, buffer, srcByteOffset, dstBuffer, /* optional */ dstOffset, /* optional */ length)
@@ -35851,7 +35860,7 @@ const gettext_default_ = gettext;
35851
35860
  x_ite_Namespace.set ("locale/gettext", gettext_default_);
35852
35861
  /* harmony default export */ const locale_gettext = (gettext_default_);
35853
35862
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
35854
- /* provided dependency */ var $ = __webpack_require__(998);
35863
+ /* provided dependency */ var $ = __webpack_require__(2);
35855
35864
  /*******************************************************************************
35856
35865
  *
35857
35866
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -35932,6 +35941,8 @@ BrowserTimings .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
35932
35941
  {
35933
35942
  Base_X3DBaseNode.prototype.initialize.call (this);
35934
35943
 
35944
+ this .getBrowser () .getBrowserOptions () ._ContextMenu .addInterest ("set_enabled__", this);
35945
+
35935
35946
  this .localStorage .addDefaultValues ({ type: "LESS" });
35936
35947
 
35937
35948
  this .element = $("<div></div>") .hide () .addClass ("x_ite-private-browser-timings") .appendTo (this .getBrowser () .getSurface ());
@@ -35957,7 +35968,11 @@ BrowserTimings .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
35957
35968
 
35958
35969
  this .enabled = enabled;
35959
35970
 
35960
- if (enabled)
35971
+ this .set_enabled__ ();
35972
+ },
35973
+ set_enabled__: function ()
35974
+ {
35975
+ if (this .enabled && this .getBrowser () .getBrowserOption ("ContextMenu"))
35961
35976
  {
35962
35977
  this .element .stop (true, true) .fadeIn ();
35963
35978
  this .fps .reset ();
@@ -36813,7 +36828,7 @@ const RenderingProperties_default_ = RenderingProperties;
36813
36828
  x_ite_Namespace.set ("x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
36814
36829
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
36815
36830
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
36816
- /* provided dependency */ var Notification_$ = __webpack_require__(998);
36831
+ /* provided dependency */ var Notification_$ = __webpack_require__(2);
36817
36832
  /*******************************************************************************
36818
36833
  *
36819
36834
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36935,8 +36950,8 @@ const Notification_default_ = Notification;
36935
36950
  x_ite_Namespace.set ("x_ite/Browser/Core/Notification", Notification_default_);
36936
36951
  /* harmony default export */ const Core_Notification = (Notification_default_);
36937
36952
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
36938
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(774);
36939
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(998);
36953
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(440);
36954
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(2);
36940
36955
  /*******************************************************************************
36941
36956
  *
36942
36957
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -41924,7 +41939,7 @@ const X3DUrlObject_default_ = X3DUrlObject;
41924
41939
  x_ite_Namespace.set ("x_ite/Components/Networking/X3DUrlObject", X3DUrlObject_default_);
41925
41940
  /* harmony default export */ const Networking_X3DUrlObject = (X3DUrlObject_default_);
41926
41941
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
41927
- /* provided dependency */ var X3DParser_$ = __webpack_require__(998);
41942
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(2);
41928
41943
  /*******************************************************************************
41929
41944
  *
41930
41945
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45101,7 +45116,7 @@ const VRMLParser_default_ = VRMLParser;
45101
45116
  x_ite_Namespace.set ("x_ite/Parser/VRMLParser", VRMLParser_default_);
45102
45117
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
45103
45118
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
45104
- /* provided dependency */ var XMLParser_$ = __webpack_require__(998);
45119
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(2);
45105
45120
  /*******************************************************************************
45106
45121
  *
45107
45122
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47144,7 +47159,7 @@ const URLs_default_ = URLs;
47144
47159
  x_ite_Namespace.set ("x_ite/Browser/Networking/URLs", URLs_default_);
47145
47160
  /* harmony default export */ const Networking_URLs = (URLs_default_);
47146
47161
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
47147
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(998);
47162
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(2);
47148
47163
  /*******************************************************************************
47149
47164
  *
47150
47165
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49589,7 +49604,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
49589
49604
  x_ite_Namespace.set ("x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
49590
49605
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
49591
49606
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
49592
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(998);
49607
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(2);
49593
49608
  /*******************************************************************************
49594
49609
  *
49595
49610
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49742,7 +49757,7 @@ const GLB2Parser_default_ = GLB2Parser;
49742
49757
  x_ite_Namespace.set ("x_ite/Parser/GLB2Parser", GLB2Parser_default_);
49743
49758
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
49744
49759
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
49745
- /* provided dependency */ var OBJParser_$ = __webpack_require__(998);
49760
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(2);
49746
49761
  /*******************************************************************************
49747
49762
  *
49748
49763
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52195,8 +52210,8 @@ const MatrixStack_default_ = MatrixStack;
52195
52210
  x_ite_Namespace.set ("standard/Math/Utility/MatrixStack", MatrixStack_default_);
52196
52211
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
52197
52212
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52198
- /* provided dependency */ var SVGParser_$ = __webpack_require__(998);
52199
- /* provided dependency */ var libtess = __webpack_require__(422);
52213
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(2);
52214
+ /* provided dependency */ var libtess = __webpack_require__(735);
52200
52215
  /*******************************************************************************
52201
52216
  *
52202
52217
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54965,7 +54980,7 @@ const SVGParser_default_ = SVGParser;
54965
54980
  x_ite_Namespace.set ("x_ite/Parser/SVGParser", SVGParser_default_);
54966
54981
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
54967
54982
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
54968
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(998);
54983
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(2);
54969
54984
  /*******************************************************************************
54970
54985
  *
54971
54986
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -55294,7 +55309,7 @@ const Plane3_default_ = Plane3;
55294
55309
  x_ite_Namespace.set ("standard/Math/Geometry/Plane3", Plane3_default_);
55295
55310
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
55296
55311
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
55297
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(422);
55312
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(735);
55298
55313
  /*******************************************************************************
55299
55314
  *
55300
55315
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -58471,7 +58486,6 @@ X3DRenderObject .prototype =
58471
58486
  gl .depthMask (true);
58472
58487
  gl .enable (gl .DEPTH_TEST);
58473
58488
  gl .disable (gl .BLEND);
58474
- gl .colorMask (true, true, true, false);
58475
58489
 
58476
58490
  const opaqueShapes = this .opaqueShapes;
58477
58491
 
@@ -58493,7 +58507,6 @@ X3DRenderObject .prototype =
58493
58507
 
58494
58508
  gl .depthMask (false);
58495
58509
  gl .enable (gl .BLEND);
58496
- gl .colorMask (true, true, true, true);
58497
58510
 
58498
58511
  const transparentShapes = this .transparentShapes;
58499
58512
 
@@ -59623,7 +59636,7 @@ X3DFogObject .prototype =
59623
59636
  this .set_color__ ();
59624
59637
  this .set_visibilityRange__ ();
59625
59638
  },
59626
- getHidden: function ()
59639
+ isHidden: function ()
59627
59640
  {
59628
59641
  return this .hidden;
59629
59642
  },
@@ -61113,6 +61126,69 @@ const X3DGeometryNode_default_ = X3DGeometryNode;
61113
61126
 
61114
61127
  x_ite_Namespace.set ("x_ite/Components/Rendering/X3DGeometryNode", X3DGeometryNode_default_);
61115
61128
  /* harmony default export */ const Rendering_X3DGeometryNode = (X3DGeometryNode_default_);
61129
+ ;// CONCATENATED MODULE: ./src/x_ite/Browser/Shape/AlphaMode.js
61130
+ /*******************************************************************************
61131
+ *
61132
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
61133
+ *
61134
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
61135
+ *
61136
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
61137
+ *
61138
+ * The copyright notice above does not evidence any actual of intended
61139
+ * publication of such source code, and is an unpublished work by create3000.
61140
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
61141
+ * create3000.
61142
+ *
61143
+ * No permission is granted to copy, distribute, or create derivative works from
61144
+ * the contents of this software, in whole or in part, without the prior written
61145
+ * permission of create3000.
61146
+ *
61147
+ * NON-MILITARY USE ONLY
61148
+ *
61149
+ * All create3000 software are effectively free software with a non-military use
61150
+ * restriction. It is free. Well commented source is provided. You may reuse the
61151
+ * source in any way you please with the exception anything that uses it must be
61152
+ * marked to indicate is contains 'non-military use only' components.
61153
+ *
61154
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
61155
+ *
61156
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
61157
+ *
61158
+ * This file is part of the X_ITE Project.
61159
+ *
61160
+ * X_ITE is free software: you can redistribute it and/or modify it under the
61161
+ * terms of the GNU General Public License version 3 only, as published by the
61162
+ * Free Software Foundation.
61163
+ *
61164
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
61165
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
61166
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
61167
+ * details (a copy is included in the LICENSE file that accompanied this code).
61168
+ *
61169
+ * You should have received a copy of the GNU General Public License version 3
61170
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
61171
+ * copy of the GPLv3 License.
61172
+ *
61173
+ * For Silvio, Joy and Adi.
61174
+ *
61175
+ ******************************************************************************/
61176
+
61177
+ let AlphaMode_i = 0;
61178
+
61179
+ const AlphaMode =
61180
+ {
61181
+ AUTO: AlphaMode_i ++, // Must be zero!
61182
+ OPAQUE: AlphaMode_i ++,
61183
+ MASK: AlphaMode_i ++,
61184
+ BLEND: AlphaMode_i ++,
61185
+ };
61186
+
61187
+ const AlphaMode_default_ = AlphaMode;
61188
+ ;
61189
+
61190
+ x_ite_Namespace.set ("x_ite/Browser/Shape/AlphaMode", AlphaMode_default_);
61191
+ /* harmony default export */ const Shape_AlphaMode = (AlphaMode_default_);
61116
61192
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/GeometryContext.js
61117
61193
  /*******************************************************************************
61118
61194
  *
@@ -61163,10 +61239,12 @@ x_ite_Namespace.set ("x_ite/Components/Rendering/X3DGeometryNode", X3DGeometryNo
61163
61239
 
61164
61240
 
61165
61241
 
61242
+
61166
61243
  function GeometryContext (options = { })
61167
61244
  {
61168
61245
  Object .assign (this,
61169
61246
  {
61247
+ alphaMode: Shape_AlphaMode.OPAQUE,
61170
61248
  geometryType: 3,
61171
61249
  hasFogCoords: false,
61172
61250
  colorMaterial: false,
@@ -61248,6 +61326,8 @@ x_ite_Namespace.set ("x_ite/Browser/Rendering/GeometryContext", GeometryContext_
61248
61326
  *
61249
61327
  ******************************************************************************/
61250
61328
 
61329
+
61330
+
61251
61331
  function BitSet (value = 0)
61252
61332
  {
61253
61333
  this .value = value;
@@ -61256,6 +61336,21 @@ function BitSet (value = 0)
61256
61336
  BitSet .prototype =
61257
61337
  {
61258
61338
  constructor: BitSet,
61339
+ [Symbol .iterator]: function* ()
61340
+ {
61341
+ let
61342
+ value = this .value,
61343
+ index = 0;
61344
+
61345
+ while (value)
61346
+ {
61347
+ if (value & 1)
61348
+ yield index;
61349
+
61350
+ value >>>= 1;
61351
+ index += 1;
61352
+ }
61353
+ },
61259
61354
  get: function (index)
61260
61355
  {
61261
61356
  const mask = 1 << index;
@@ -61275,6 +61370,11 @@ BitSet .prototype =
61275
61370
  {
61276
61371
  this .value = 0;
61277
61372
  },
61373
+ entries: function* ()
61374
+ {
61375
+ for (const i of this)
61376
+ yield [i, i];
61377
+ },
61278
61378
  valueOf: function ()
61279
61379
  {
61280
61380
  return this .value;
@@ -61285,6 +61385,17 @@ BitSet .prototype =
61285
61385
  },
61286
61386
  };
61287
61387
 
61388
+ BitSet .prototype .keys = BitSet .prototype [Symbol .iterator];
61389
+ BitSet .prototype .values = BitSet .prototype [Symbol .iterator];
61390
+
61391
+ Object .defineProperty (BitSet .prototype, "size",
61392
+ {
61393
+ get: function ()
61394
+ {
61395
+ return Algorithm.bitCount (this .value);
61396
+ },
61397
+ });
61398
+
61288
61399
  const BitSet_default_ = BitSet;
61289
61400
  ;
61290
61401
 
@@ -61364,8 +61475,6 @@ function X3DBackgroundNode (executionContext)
61364
61475
  this ._skyAngle .setUnit ("angle");
61365
61476
  this ._groundAngle .setUnit ("angle");
61366
61477
 
61367
- const browser = this .getBrowser ();
61368
-
61369
61478
  this .hidden = false;
61370
61479
  this .projectionMatrixArray = new Float32Array (16);
61371
61480
  this .modelMatrix = new Numbers_Matrix4 ();
@@ -61373,9 +61482,12 @@ function X3DBackgroundNode (executionContext)
61373
61482
  this .clipPlanes = [ ];
61374
61483
  this .colors = [ ];
61375
61484
  this .sphere = [ ];
61485
+ this .textureNodes = new Array (6);
61376
61486
  this .textureBits = new Utility_BitSet ();
61377
61487
  this .sphereContext = new Rendering_GeometryContext ({ colorMaterial: true });
61488
+ this .sphereAlphaContext = new Rendering_GeometryContext ({ colorMaterial: true, alphaMode: Shape_AlphaMode.BLEND });
61378
61489
  this .texturesContext = new Rendering_GeometryContext ({ textureNode: true });
61490
+ this .texturesAlphaContext = new Rendering_GeometryContext ({ textureNode: true, alphaMode: Shape_AlphaMode.BLEND });
61379
61491
  }
61380
61492
 
61381
61493
  X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableNode.prototype),
@@ -61389,32 +61501,22 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61389
61501
  browser = this .getBrowser (),
61390
61502
  gl = browser .getContext ();
61391
61503
 
61392
- this .colorBuffer = gl .createBuffer ();
61393
- this .sphereBuffer = gl .createBuffer ();
61394
- this .texCoordBuffers = new Array (browser .getMaxTextures ()) .fill (gl .createBuffer ());
61395
- this .frontBuffer = gl .createBuffer ();
61396
- this .backBuffer = gl .createBuffer ();
61397
- this .leftBuffer = gl .createBuffer ();
61398
- this .rightBuffer = gl .createBuffer ();
61399
- this .topBuffer = gl .createBuffer ();
61400
- this .bottomBuffer = gl .createBuffer ();
61401
- this .sphereArrayObject = new Rendering_VertexArray (gl);
61402
- this .frontArrayObject = new Rendering_VertexArray (gl);
61403
- this .backArrayObject = new Rendering_VertexArray (gl);
61404
- this .leftArrayObject = new Rendering_VertexArray (gl);
61405
- this .rightArrayObject = new Rendering_VertexArray (gl);
61406
- this .topArrayObject = new Rendering_VertexArray (gl);
61407
- this .bottomArrayObject = new Rendering_VertexArray (gl);
61408
-
61409
- this ._groundAngle .addInterest ("build", this);
61410
- this ._groundColor .addInterest ("build", this);
61411
- this ._skyAngle .addInterest ("build", this);
61412
- this ._skyColor .addInterest ("build", this);
61504
+ this .colorBuffer = gl .createBuffer ();
61505
+ this .sphereBuffer = gl .createBuffer ();
61506
+ this .texCoordBuffers = [gl .createBuffer ()];
61507
+ this .textureBuffers = Array .from ({length: 6}, () => gl .createBuffer ());
61508
+ this .sphereArrayObject = new Rendering_VertexArray (gl);
61509
+ this .textureArrayObjects = Array .from ({length: 6}, () => new Rendering_VertexArray (gl));
61510
+
61511
+ this ._groundAngle .addInterest ("build", this);
61512
+ this ._groundColor .addInterest ("build", this);
61513
+ this ._skyAngle .addInterest ("build", this);
61514
+ this ._skyColor .addInterest ("build", this);
61413
61515
 
61414
61516
  this .build ();
61415
61517
  this .transferRectangle ();
61416
61518
  },
61417
- getHidden: function ()
61519
+ isHidden: function ()
61418
61520
  {
61419
61521
  return this .hidden;
61420
61522
  },
@@ -61424,36 +61526,54 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61424
61526
 
61425
61527
  this .getBrowser () .addBrowserEvent ();
61426
61528
  },
61529
+ isTransparent: function ()
61530
+ {
61531
+ if (this .hidden)
61532
+ return true;
61533
+
61534
+ if (this ._transparency .getValue () <= 0)
61535
+ return false;
61536
+
61537
+ if (this .textureBits .size !== 6)
61538
+ return true;
61539
+
61540
+ for (const i of this .textureBits)
61541
+ {
61542
+ if (this .textureNodes [i] ._transparent .getValue ())
61543
+ return true;
61544
+ }
61545
+
61546
+ return false;
61547
+ },
61427
61548
  set_frontTexture__: function (value)
61428
61549
  {
61429
- this .updateTexture ("frontTexture", value, 0);
61550
+ this .updateTexture (0, value);
61430
61551
  },
61431
61552
  set_backTexture__: function (value)
61432
61553
  {
61433
- this .updateTexture ("backTexture", value, 1);
61554
+ this .updateTexture (1, value);
61434
61555
  },
61435
61556
  set_leftTexture__: function (value)
61436
61557
  {
61437
- this .updateTexture ("leftTexture", value, 2);
61558
+ this .updateTexture (2, value);
61438
61559
  },
61439
61560
  set_rightTexture__: function (value)
61440
61561
  {
61441
- this .updateTexture ("rightTexture", value, 3);
61562
+ this .updateTexture (3, value);
61442
61563
  },
61443
61564
  set_topTexture__: function (value)
61444
61565
  {
61445
- this .updateTexture ("topTexture", value, 4);
61566
+ this .updateTexture (4, value);
61446
61567
  },
61447
61568
  set_bottomTexture__: function (value)
61448
61569
  {
61449
- this .updateTexture ("bottomTexture", value, 5);
61570
+ this .updateTexture (5, value);
61450
61571
  },
61451
- updateTexture: function (name, textureNode, index)
61572
+ updateTexture: function (index, textureNode)
61452
61573
  {
61453
- if (this [name])
61454
- this [name] ._loadState .removeInterest ("setTextureBit", this);
61574
+ this .textureNodes [index]?._loadState .removeInterest ("setTextureBit", this);
61455
61575
 
61456
- this [name] = textureNode;
61576
+ this .textureNodes [index] = textureNode;
61457
61577
 
61458
61578
  if (textureNode)
61459
61579
  {
@@ -61470,34 +61590,6 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61470
61590
  {
61471
61591
  this .textureBits .set (bit, loadState .getValue () === Base_X3DConstants.COMPLETE_STATE || textureNode .getWidth ());
61472
61592
  },
61473
- isTransparent: function ()
61474
- {
61475
- if (this .hidden)
61476
- return true;
61477
-
61478
- if (this ._transparency .getValue () === 0)
61479
- return false;
61480
-
61481
- if (! this .frontTexture || this .frontTexture ._transparent .getValue ())
61482
- return true;
61483
-
61484
- if (! this .backTexture || this .backTexture ._transparent .getValue ())
61485
- return true;
61486
-
61487
- if (! this .leftTexture || this .leftTexture ._transparent .getValue ())
61488
- return true;
61489
-
61490
- if (! this .rightTexture || this .rightTexture ._transparent .getValue ())
61491
- return true;
61492
-
61493
- if (! this .topTexture || this .topTexture ._transparent .getValue ())
61494
- return true;
61495
-
61496
- if (! this .bottomTexture || this .bottomTexture ._transparent .getValue ())
61497
- return true;
61498
-
61499
- return false;
61500
- },
61501
61593
  getColor: function (theta, color, angle)
61502
61594
  {
61503
61595
  const index = Algorithm.upperBound (angle, 0, angle .length, theta);
@@ -61530,10 +61622,10 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61530
61622
  -s, -s, s, 1, s, -s, s, 1, -s, -s, -s, 1, // Bottom
61531
61623
  -s, -s, -s, 1, s, -s, s, 1, s, -s, -s, 1);
61532
61624
 
61533
- const c = this ._skyColor [0];
61625
+ const color = this ._skyColor [0];
61534
61626
 
61535
61627
  for (let i = 0, vertices = this .sphere .vertices; i < vertices; ++ i)
61536
- this .colors .push (c .r, c .g, c .b, 1);
61628
+ this .colors .push (... color, 1);
61537
61629
  }
61538
61630
  else
61539
61631
  {
@@ -61630,13 +61722,13 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61630
61722
 
61631
61723
  // Triangle 1 and 2
61632
61724
 
61633
- this .colors .push (c1 .r, c1 .g, c1 .b, 1,
61634
- c2 .r, c2 .g, c2 .b, 1,
61635
- c2 .r, c2 .g, c2 .b, 1,
61725
+ this .colors .push (... c1, 1,
61726
+ ... c2, 1,
61727
+ ... c2, 1,
61636
61728
  // Triangle 2
61637
- c1 .r, c1 .g, c1 .b, 1,
61638
- c1 .r, c1 .g, c1 .b, 1,
61639
- c2 .r, c2 .g, c2 .b, 1);
61729
+ ... c1, 1,
61730
+ ... c1, 1,
61731
+ ... c2, 1);
61640
61732
 
61641
61733
  this .sphere .push (y1 .imag, z1 .real, y1 .real, 1,
61642
61734
  y3 .imag, z2 .real, y3 .real, 1,
@@ -61669,67 +61761,76 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61669
61761
  {
61670
61762
  const s = SIZE;
61671
61763
 
61672
- const texCoords = [
61764
+ const texCoords = new Float32Array ([
61673
61765
  1, 1, 0, 1,
61674
61766
  0, 1, 0, 1,
61675
61767
  0, 0, 0, 1,
61676
61768
  1, 1, 0, 1,
61677
61769
  0, 0, 0, 1,
61678
61770
  1, 0, 0, 1,
61679
- ];
61771
+ ]);
61680
61772
 
61681
- const frontVertices = [
61773
+ const frontVertices = new Float32Array ([
61682
61774
  s, s, -s, 1,
61683
61775
  -s, s, -s, 1,
61684
61776
  -s, -s, -s, 1,
61685
61777
  s, s, -s, 1,
61686
61778
  -s, -s, -s, 1,
61687
61779
  s, -s, -s, 1,
61688
- ];
61780
+ ]);
61689
61781
 
61690
- const backVertices = [
61782
+ const backVertices = new Float32Array ([
61691
61783
  -s, s, s, 1,
61692
61784
  s, s, s, 1,
61693
61785
  s, -s, s, 1,
61694
61786
  -s, s, s, 1,
61695
61787
  s, -s, s, 1,
61696
61788
  -s, -s, s, 1,
61697
- ];
61789
+ ]);
61698
61790
 
61699
- const leftVertices = [
61791
+ const leftVertices = new Float32Array ([
61700
61792
  -s, s, -s, 1,
61701
61793
  -s, s, s, 1,
61702
61794
  -s, -s, s, 1,
61703
61795
  -s, s, -s, 1,
61704
61796
  -s, -s, s, 1,
61705
61797
  -s, -s, -s, 1,
61706
- ];
61798
+ ]);
61707
61799
 
61708
- const rightVertices = [
61800
+ const rightVertices = new Float32Array ([
61709
61801
  s, s, s, 1,
61710
61802
  s, s, -s, 1,
61711
61803
  s, -s, -s, 1,
61712
61804
  s, s, s, 1,
61713
61805
  s, -s, -s, 1,
61714
61806
  s, -s, s, 1,
61715
- ];
61807
+ ]);
61716
61808
 
61717
- const topVertices = [
61809
+ const topVertices = new Float32Array ([
61718
61810
  s, s, s, 1,
61719
61811
  -s, s, s, 1,
61720
61812
  -s, s, -s, 1,
61721
61813
  s, s, s, 1,
61722
61814
  -s, s, -s, 1,
61723
61815
  s, s, -s, 1,
61724
- ];
61816
+ ]);
61725
61817
 
61726
- const bottomVertices = [
61818
+ const bottomVertices = new Float32Array ([
61727
61819
  s, -s, -s, 1,
61728
61820
  -s, -s, -s, 1,
61729
61821
  -s, -s, s, 1,
61730
61822
  s, -s, -s, 1,
61731
61823
  -s, -s, s, 1,
61732
61824
  s, -s, s, 1,
61825
+ ]);
61826
+
61827
+ const vertices = [
61828
+ frontVertices,
61829
+ backVertices,
61830
+ leftVertices,
61831
+ rightVertices,
61832
+ topVertices,
61833
+ bottomVertices,
61733
61834
  ];
61734
61835
 
61735
61836
  return function ()
@@ -61739,27 +61840,15 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61739
61840
  // Transfer texCoords.
61740
61841
 
61741
61842
  gl .bindBuffer (gl .ARRAY_BUFFER, this .texCoordBuffers [0]);
61742
- gl .bufferData (gl .ARRAY_BUFFER, new Float32Array (texCoords), gl .DYNAMIC_DRAW);
61843
+ gl .bufferData (gl .ARRAY_BUFFER, texCoords, gl .DYNAMIC_DRAW);
61743
61844
 
61744
61845
  // Transfer rectangle.
61745
61846
 
61746
- gl .bindBuffer (gl .ARRAY_BUFFER, this .frontBuffer);
61747
- gl .bufferData (gl .ARRAY_BUFFER, new Float32Array (frontVertices), gl .DYNAMIC_DRAW);
61748
-
61749
- gl .bindBuffer (gl .ARRAY_BUFFER, this .backBuffer);
61750
- gl .bufferData (gl .ARRAY_BUFFER, new Float32Array (backVertices), gl .DYNAMIC_DRAW);
61751
-
61752
- gl .bindBuffer (gl .ARRAY_BUFFER, this .leftBuffer);
61753
- gl .bufferData (gl .ARRAY_BUFFER, new Float32Array (leftVertices), gl .DYNAMIC_DRAW);
61754
-
61755
- gl .bindBuffer (gl .ARRAY_BUFFER, this .rightBuffer);
61756
- gl .bufferData (gl .ARRAY_BUFFER, new Float32Array (rightVertices), gl .DYNAMIC_DRAW);
61757
-
61758
- gl .bindBuffer (gl .ARRAY_BUFFER, this .topBuffer);
61759
- gl .bufferData (gl .ARRAY_BUFFER, new Float32Array (topVertices), gl .DYNAMIC_DRAW);
61760
-
61761
- gl .bindBuffer (gl .ARRAY_BUFFER, this .bottomBuffer);
61762
- gl .bufferData (gl .ARRAY_BUFFER, new Float32Array (bottomVertices), gl .DYNAMIC_DRAW);
61847
+ for (let i = 0; i < 6; ++ i)
61848
+ {
61849
+ gl .bindBuffer (gl .ARRAY_BUFFER, this .textureBuffers [i]);
61850
+ gl .bufferData (gl .ARRAY_BUFFER, vertices [i], gl .DYNAMIC_DRAW);
61851
+ }
61763
61852
  };
61764
61853
  })(),
61765
61854
  traverse: function (type, renderObject)
@@ -61776,21 +61865,21 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61776
61865
  case Rendering_TraverseType.DISPLAY:
61777
61866
  {
61778
61867
  const
61779
- sourceObjects = renderObject .getLocalObjects (),
61780
- destObjects = this .clipPlanes;
61868
+ localObjects = renderObject .getLocalObjects (),
61869
+ clipPlanes = this .clipPlanes;
61781
61870
 
61782
- let d = 0;
61871
+ let c = 0;
61783
61872
 
61784
- for (let s = 0, length = sourceObjects .length; s < length; ++ s)
61873
+ for (let l = 0, length = localObjects .length; l < length; ++ l)
61785
61874
  {
61786
- if (sourceObjects [s] .isClipped)
61787
- destObjects [d ++] = sourceObjects [s];
61875
+ if (localObjects [l] .isClipped)
61876
+ clipPlanes [c ++] = localObjects [l];
61788
61877
  }
61789
61878
 
61790
- destObjects .length = d;
61879
+ clipPlanes .length = c;
61791
61880
 
61792
- this .sphereContext .objectsCount [0] = destObjects .length;
61793
- this .texturesContext .objectsCount [0] = destObjects .length;
61881
+ this .sphereContext .objectsCount [0] = clipPlanes .length;
61882
+ this .texturesContext .objectsCount [0] = clipPlanes .length;
61794
61883
  return;
61795
61884
  }
61796
61885
  }
@@ -61839,15 +61928,15 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61839
61928
  })(),
61840
61929
  drawSphere: function (renderObject)
61841
61930
  {
61842
- const transparency = this ._transparency .getValue ();
61931
+ const transparency = Algorithm.clamp (this ._transparency .getValue (), 0, 1);
61843
61932
 
61844
- if (transparency >= 1)
61933
+ if (transparency === 1)
61845
61934
  return;
61846
61935
 
61847
61936
  const
61848
61937
  browser = this .getBrowser (),
61849
61938
  gl = browser .getContext (),
61850
- shaderNode = browser .getDefaultMaterial () .getShader (this .sphereContext);
61939
+ shaderNode = browser .getDefaultMaterial () .getShader (transparency ? this .sphereAlphaContext : this .sphereContext);
61851
61940
 
61852
61941
  shaderNode .enable (gl);
61853
61942
  shaderNode .setClipPlanes (gl, this .clipPlanes);
@@ -61884,9 +61973,10 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61884
61973
  return function (renderObject)
61885
61974
  {
61886
61975
  const
61887
- browser = this .getBrowser (),
61888
- gl = browser .getContext (),
61889
- shaderNode = browser .getDefaultMaterial () .getShader (this .texturesContext);
61976
+ browser = this .getBrowser (),
61977
+ gl = browser .getContext (),
61978
+ shaderNode = browser .getDefaultMaterial () .getShader (this .texturesContext),
61979
+ alphaShaderNode = browser .getDefaultMaterial () .getShader (this .texturesAlphaContext);
61890
61980
 
61891
61981
  shaderNode .enable (gl);
61892
61982
  shaderNode .setClipPlanes (gl, this .clipPlanes);
@@ -61903,37 +61993,34 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61903
61993
 
61904
61994
  // Draw all textures.
61905
61995
 
61906
- this .drawRectangle (gl, browser, shaderNode, renderObject, this .frontTexture, this .frontBuffer, this .frontArrayObject);
61907
- this .drawRectangle (gl, browser, shaderNode, renderObject, this .backTexture, this .backBuffer, this .backArrayObject);
61908
- this .drawRectangle (gl, browser, shaderNode, renderObject, this .leftTexture, this .leftBuffer, this .leftArrayObject);
61909
- this .drawRectangle (gl, browser, shaderNode, renderObject, this .rightTexture, this .rightBuffer, this .rightArrayObject);
61910
- this .drawRectangle (gl, browser, shaderNode, renderObject, this .topTexture, this .topBuffer, this .topArrayObject);
61911
- this .drawRectangle (gl, browser, shaderNode, renderObject, this .bottomTexture, this .bottomBuffer, this .bottomArrayObject);
61996
+ for (const i of this .textureBits)
61997
+ {
61998
+ const textureNode = this .textureNodes [i];
61999
+
62000
+ this .drawRectangle (gl, browser, textureNode ._transparent .getValue () ? alphaShaderNode : shaderNode, renderObject, textureNode, this .textureBuffers [i], this .textureArrayObjects [i]);
62001
+ }
61912
62002
  };
61913
62003
  })(),
61914
62004
  drawRectangle: function (gl, browser, shaderNode, renderObject, textureNode, buffer, vertexArray)
61915
62005
  {
61916
- if (textureNode && (textureNode .checkLoadState () === Base_X3DConstants.COMPLETE_STATE || textureNode .getWidth ()))
61917
- {
61918
- textureNode .setShaderUniforms (gl, shaderNode, renderObject);
62006
+ textureNode .setShaderUniforms (gl, shaderNode, renderObject);
61919
62007
 
61920
- if (vertexArray .enable (gl, shaderNode))
61921
- {
61922
- shaderNode .enableTexCoordAttribute (gl, this .texCoordBuffers, 0, 0);
61923
- shaderNode .enableVertexAttribute (gl, buffer, 0, 0);
61924
- }
62008
+ if (vertexArray .enable (gl, shaderNode))
62009
+ {
62010
+ shaderNode .enableTexCoordAttribute (gl, this .texCoordBuffers, 0, 0);
62011
+ shaderNode .enableVertexAttribute (gl, buffer, 0, 0);
62012
+ }
61925
62013
 
61926
- // Draw.
62014
+ // Draw.
61927
62015
 
61928
- if (textureNode ._transparent .getValue ())
61929
- gl .enable (gl .BLEND);
61930
- else
61931
- gl .disable (gl .BLEND);
62016
+ if (textureNode ._transparent .getValue ())
62017
+ gl .enable (gl .BLEND);
62018
+ else
62019
+ gl .disable (gl .BLEND);
61932
62020
 
61933
- gl .drawArrays (gl .TRIANGLES, 0, 6);
62021
+ gl .drawArrays (gl .TRIANGLES, 0, 6);
61934
62022
 
61935
- browser .resetTextureUnits ();
61936
- }
62023
+ browser .resetTextureUnits ();
61937
62024
  },
61938
62025
  });
61939
62026
 
@@ -62473,8 +62560,10 @@ X3DTexture2DNode .prototype = Object .assign (Object .create (Texturing_X3DSingl
62473
62560
 
62474
62561
  gl .bindTexture (gl .TEXTURE_2D, this .getTexture ());
62475
62562
  gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, flipY);
62563
+ //gl .pixelStorei (gl .UNPACK_COLORSPACE_CONVERSION_WEBGL, colorspace ? gl .BROWSER_DEFAULT_WEBGL : gl .NONE);
62476
62564
  gl .texImage2D (gl .TEXTURE_2D, 0, gl .RGBA, width, height, 0, gl .RGBA, gl .UNSIGNED_BYTE, data);
62477
62565
  gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, false);
62566
+ //gl .pixelStorei (gl .UNPACK_COLORSPACE_CONVERSION_WEBGL, gl .BROWSER_DEFAULT_WEBGL);
62478
62567
 
62479
62568
  this .setTransparent (transparent);
62480
62569
  this .updateTextureParameters ();
@@ -62522,7 +62611,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62522
62611
  x_ite_Namespace.set ("x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
62523
62612
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
62524
62613
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62525
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(998);
62614
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(2);
62526
62615
  /*******************************************************************************
62527
62616
  *
62528
62617
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -62717,7 +62806,7 @@ ImageTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
62717
62806
  // Determine image alpha.
62718
62807
 
62719
62808
  const
62720
- data = cx .getImageData (0, 0, width, height, { premultipliedAlpha: false }) .data,
62809
+ data = cx .getImageData (0, 0, width, height) .data,
62721
62810
  transparent = this .isImageTransparent (data);
62722
62811
 
62723
62812
  // Upload image to GPU.
@@ -62733,9 +62822,14 @@ ImageTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
62733
62822
  width = image .width,
62734
62823
  height = image .height;
62735
62824
 
62825
+ // Flip Y if needed.
62826
+
62827
+ if (!this ._flipVertically .getValue ())
62828
+ this .flipImage (data, width, height, 4);
62829
+
62736
62830
  // Upload image to GPU.
62737
62831
 
62738
- this .setTexture (width, height, transparent, data, !this ._flipVertically .getValue ());
62832
+ this .setTexture (width, height, transparent, data, false);
62739
62833
  this .setLoadState (Base_X3DConstants.COMPLETE_STATE);
62740
62834
  }
62741
62835
  }
@@ -62776,7 +62870,7 @@ ImageTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
62776
62870
  flipImage (data, width, height, components)
62777
62871
  {
62778
62872
  const
62779
- height1_2 = height >> 1,
62873
+ height1_2 = height >>> 1,
62780
62874
  bytesPerRow = width * components,
62781
62875
  tmp = new Uint8Array (bytesPerRow);
62782
62876
 
@@ -64896,11 +64990,6 @@ X3DViewpointNode .prototype = Object .assign (Object .create (Core_X3DBindableNo
64896
64990
  if (this ._viewAll .getValue ())
64897
64991
  this .viewAll (layerNode .getBBox (new Geometry_Box3 ()));
64898
64992
 
64899
- if (this .getBrowser () .getBrowserOption ("StraightenHorizon"))
64900
- {
64901
- this ._orientationOffset = this .straightenHorizon (this .getUserOrientation ()) .multLeft (this .getOrientation () .copy () .inverse ());
64902
- }
64903
-
64904
64993
  // Handle NavigationInfo.
64905
64994
 
64906
64995
  const
@@ -64999,11 +65088,6 @@ X3DViewpointNode .prototype = Object .assign (Object .create (Core_X3DBindableNo
64999
65088
  this ._centerOfRotationOffset = Numbers_Vector3.Zero;
65000
65089
  this ._fieldOfViewScale = 1;
65001
65090
 
65002
- if (this .getBrowser () .getBrowserOption ("StraightenHorizon"))
65003
- {
65004
- this ._orientationOffset = this .straightenHorizon (this .getUserOrientation ()) .multLeft (this .getOrientation () .copy () .inverse ());
65005
- }
65006
-
65007
65091
  this .set_nearDistance__ ();
65008
65092
  this .set_farDistance__ ();
65009
65093
  },
@@ -65645,7 +65729,7 @@ X3DGroupingNode .prototype = Object .assign (Object .create (Core_X3DChildNode.p
65645
65729
 
65646
65730
  return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
65647
65731
  },
65648
- getHidden: function ()
65732
+ isHidden: function ()
65649
65733
  {
65650
65734
  return this .hidden;
65651
65735
  },
@@ -66823,7 +66907,7 @@ const X3DWorld_default_ = X3DWorld;
66823
66907
  x_ite_Namespace.set ("x_ite/Execution/X3DWorld", X3DWorld_default_);
66824
66908
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
66825
66909
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66826
- /* provided dependency */ var FileLoader_$ = __webpack_require__(998);
66910
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(2);
66827
66911
  /*******************************************************************************
66828
66912
  *
66829
66913
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -68997,7 +69081,7 @@ const X3DExecutionContext_default_ = X3DExecutionContext;
68997
69081
  x_ite_Namespace.set ("x_ite/Execution/X3DExecutionContext", X3DExecutionContext_default_);
68998
69082
  /* harmony default export */ const Execution_X3DExecutionContext = (X3DExecutionContext_default_);
68999
69083
  ;// CONCATENATED MODULE: ./src/x_ite/Configuration/ComponentInfo.js
69000
- /* provided dependency */ var ComponentInfo_$ = __webpack_require__(998);
69084
+ /* provided dependency */ var ComponentInfo_$ = __webpack_require__(2);
69001
69085
  /*******************************************************************************
69002
69086
  *
69003
69087
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -70968,7 +71052,7 @@ const DataStorage_default_ = DataStorage;
70968
71052
  x_ite_Namespace.set ("standard/Utility/DataStorage", DataStorage_default_);
70969
71053
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
70970
71054
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
70971
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(998);
71055
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(2);
70972
71056
  /*******************************************************************************
70973
71057
  *
70974
71058
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -72054,69 +72138,47 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72054
72138
  },
72055
72139
  set_fogCoord__: function ()
72056
72140
  {
72057
- if (this .fogCoordNode)
72058
- this .fogCoordNode .removeInterest ("requestRebuild", this);
72141
+ this .fogCoordNode?.removeInterest ("requestRebuild", this);
72059
72142
 
72060
72143
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
72061
72144
 
72062
- if (this .fogCoordNode)
72063
- this .fogCoordNode .addInterest ("requestRebuild", this);
72145
+ this .fogCoordNode?.addInterest ("requestRebuild", this);
72064
72146
  },
72065
72147
  set_color__: function ()
72066
72148
  {
72067
- if (this .colorNode)
72068
- {
72069
- this .colorNode .removeInterest ("requestRebuild", this);
72070
- this .colorNode ._transparent .removeInterest ("set_transparent__", this);
72071
- }
72149
+ this .colorNode?.removeInterest ("requestRebuild", this);
72072
72150
 
72073
72151
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
72074
72152
 
72075
- if (this .colorNode)
72076
- {
72077
- this .colorNode .addInterest ("requestRebuild", this);
72078
- this .colorNode ._transparent .addInterest ("set_transparent__", this);
72153
+ this .colorNode?.addInterest ("requestRebuild", this);
72079
72154
 
72080
- this .set_transparent__ ();
72081
- }
72082
- else
72083
- this .setTransparent (false);
72084
- },
72085
- set_transparent__: function ()
72086
- {
72087
- this .setTransparent (this .colorNode .isTransparent ());
72155
+ this .setTransparent (this .colorNode?.isTransparent () ?? false);
72088
72156
  },
72089
72157
  set_texCoord__: function ()
72090
72158
  {
72091
- if (this .texCoordNode)
72092
- this .texCoordNode .removeInterest ("requestRebuild", this);
72159
+ this .texCoordNode?.removeInterest ("requestRebuild", this);
72093
72160
 
72094
72161
  this .texCoordNode = Base_X3DCast (Base_X3DConstants.X3DTextureCoordinateNode, this ._texCoord);
72095
72162
 
72096
- if (this .texCoordNode)
72097
- this .texCoordNode .addInterest ("requestRebuild", this);
72163
+ this .texCoordNode?.addInterest ("requestRebuild", this);
72098
72164
 
72099
72165
  this .setTextureCoordinate (this .texCoordNode);
72100
72166
  },
72101
72167
  set_normal__: function ()
72102
72168
  {
72103
- if (this .normalNode)
72104
- this .normalNode .removeInterest ("requestRebuild", this);
72169
+ this .normalNode?.removeInterest ("requestRebuild", this);
72105
72170
 
72106
72171
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
72107
72172
 
72108
- if (this .normalNode)
72109
- this .normalNode .addInterest ("requestRebuild", this);
72173
+ this .normalNode?.addInterest ("requestRebuild", this);
72110
72174
  },
72111
72175
  set_coord__: function ()
72112
72176
  {
72113
- if (this .coordNode)
72114
- this .coordNode .removeInterest ("requestRebuild", this);
72177
+ this .coordNode?.removeInterest ("requestRebuild", this);
72115
72178
 
72116
72179
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
72117
72180
 
72118
- if (this .coordNode)
72119
- this .coordNode .addInterest ("requestRebuild", this);
72181
+ this .coordNode?.addInterest ("requestRebuild", this);
72120
72182
  },
72121
72183
  getPolygonIndex: function (index)
72122
72184
  {
@@ -72153,8 +72215,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72153
72215
  normalArray = this .getNormals (),
72154
72216
  vertexArray = this .getVertices ();
72155
72217
 
72156
- if (texCoordNode)
72157
- texCoordNode .init (multiTexCoordArray);
72218
+ texCoordNode?.init (multiTexCoordArray);
72158
72219
 
72159
72220
  // Fill GeometryNode
72160
72221
 
@@ -72167,8 +72228,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72167
72228
  for (let a = 0; a < numAttribNodes; ++ a)
72168
72229
  attribNodes [a] .addValue (index, attribArrays [a]);
72169
72230
 
72170
- if (fogCoordNode)
72171
- fogCoordNode .addDepth (index, fogDepthArray);
72231
+ fogCoordNode?.addDepth (index, fogDepthArray);
72172
72232
 
72173
72233
  if (colorNode)
72174
72234
  {
@@ -72178,8 +72238,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72178
72238
  colorNode .addColor (face, colorArray);
72179
72239
  }
72180
72240
 
72181
- if (texCoordNode)
72182
- texCoordNode .addPoint (index, multiTexCoordArray);
72241
+ texCoordNode?.addPoint (index, multiTexCoordArray);
72183
72242
 
72184
72243
  if (normalNode)
72185
72244
  {
@@ -72475,8 +72534,7 @@ IndexedFaceSet .prototype = Object .assign (Object .create (Rendering_X3DCompose
72475
72534
  normalArray = this .getNormals (),
72476
72535
  vertexArray = this .getVertices ();
72477
72536
 
72478
- if (texCoordNode)
72479
- texCoordNode .init (multiTexCoordArray);
72537
+ texCoordNode?.init (multiTexCoordArray);
72480
72538
 
72481
72539
  for (const polygon of polygons)
72482
72540
  {
@@ -72491,8 +72549,7 @@ IndexedFaceSet .prototype = Object .assign (Object .create (Rendering_X3DCompose
72491
72549
  for (let a = 0; a < numAttribNodes; ++ a)
72492
72550
  attribNodes [a] .addValue (index, attribArrays [a]);
72493
72551
 
72494
- if (fogCoordNode)
72495
- fogCoordNode .addDepth (index, fogDepthArray);
72552
+ fogCoordNode?.addDepth (index, fogDepthArray);
72496
72553
 
72497
72554
  if (colorNode)
72498
72555
  {
@@ -72502,8 +72559,7 @@ IndexedFaceSet .prototype = Object .assign (Object .create (Rendering_X3DCompose
72502
72559
  colorNode .addColor (this .getColorIndex (face), colorArray);
72503
72560
  }
72504
72561
 
72505
- if (texCoordNode)
72506
- texCoordNode .addPoint (this .getTexCoordPerVertexIndex (i), multiTexCoordArray);
72562
+ texCoordNode?.addPoint (this .getTexCoordPerVertexIndex (i), multiTexCoordArray);
72507
72563
 
72508
72564
  if (normalNode)
72509
72565
  {
@@ -74171,69 +74227,6 @@ const X3DGeometry3DContext_default_ = X3DGeometry3DContext;
74171
74227
 
74172
74228
  x_ite_Namespace.set ("x_ite/Browser/Geometry3D/X3DGeometry3DContext", X3DGeometry3DContext_default_);
74173
74229
  /* harmony default export */ const Geometry3D_X3DGeometry3DContext = (X3DGeometry3DContext_default_);
74174
- ;// CONCATENATED MODULE: ./src/x_ite/Browser/Shape/AlphaMode.js
74175
- /*******************************************************************************
74176
- *
74177
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
74178
- *
74179
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
74180
- *
74181
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
74182
- *
74183
- * The copyright notice above does not evidence any actual of intended
74184
- * publication of such source code, and is an unpublished work by create3000.
74185
- * This material contains CONFIDENTIAL INFORMATION that is the property of
74186
- * create3000.
74187
- *
74188
- * No permission is granted to copy, distribute, or create derivative works from
74189
- * the contents of this software, in whole or in part, without the prior written
74190
- * permission of create3000.
74191
- *
74192
- * NON-MILITARY USE ONLY
74193
- *
74194
- * All create3000 software are effectively free software with a non-military use
74195
- * restriction. It is free. Well commented source is provided. You may reuse the
74196
- * source in any way you please with the exception anything that uses it must be
74197
- * marked to indicate is contains 'non-military use only' components.
74198
- *
74199
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
74200
- *
74201
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
74202
- *
74203
- * This file is part of the X_ITE Project.
74204
- *
74205
- * X_ITE is free software: you can redistribute it and/or modify it under the
74206
- * terms of the GNU General Public License version 3 only, as published by the
74207
- * Free Software Foundation.
74208
- *
74209
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
74210
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
74211
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
74212
- * details (a copy is included in the LICENSE file that accompanied this code).
74213
- *
74214
- * You should have received a copy of the GNU General Public License version 3
74215
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
74216
- * copy of the GPLv3 License.
74217
- *
74218
- * For Silvio, Joy and Adi.
74219
- *
74220
- ******************************************************************************/
74221
-
74222
- let AlphaMode_i = 0;
74223
-
74224
- const AlphaMode =
74225
- {
74226
- AUTO: AlphaMode_i ++,
74227
- OPAQUE: AlphaMode_i ++,
74228
- MASK: AlphaMode_i ++,
74229
- BLEND: AlphaMode_i ++,
74230
- };
74231
-
74232
- const AlphaMode_default_ = AlphaMode;
74233
- ;
74234
-
74235
- x_ite_Namespace.set ("x_ite/Browser/Shape/AlphaMode", AlphaMode_default_);
74236
- /* harmony default export */ const Shape_AlphaMode = (AlphaMode_default_);
74237
74230
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/X3DShapeNode.js
74238
74231
  /*******************************************************************************
74239
74232
  *
@@ -74414,8 +74407,7 @@ X3DShapeNode .prototype = Object .assign (Object .create (Core_X3DChildNode.prot
74414
74407
  {
74415
74408
  if (this .apparanceNode .getAlphaMode () === Shape_AlphaMode.AUTO)
74416
74409
  {
74417
- this .transparent = this .apparanceNode .isTransparent () ||
74418
- (this .geometryNode && this .geometryNode .isTransparent ());
74410
+ this .transparent = !!(this .apparanceNode .isTransparent () || this .geometryNode?.isTransparent ());
74419
74411
  }
74420
74412
  else
74421
74413
  {
@@ -75345,57 +75337,37 @@ IndexedLineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeo
75345
75337
  },
75346
75338
  set_fogCoord__: function ()
75347
75339
  {
75348
- if (this .fogCoordNode)
75349
- this .fogCoordNode .removeInterest ("requestRebuild", this);
75340
+ this .fogCoordNode?.removeInterest ("requestRebuild", this);
75350
75341
 
75351
75342
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
75352
75343
 
75353
- if (this .fogCoordNode)
75354
- this .fogCoordNode .addInterest ("requestRebuild", this);
75344
+ this .fogCoordNode?.addInterest ("requestRebuild", this);
75355
75345
  },
75356
75346
  set_color__: function ()
75357
75347
  {
75358
- if (this .colorNode)
75359
- {
75360
- this .colorNode .removeInterest ("requestRebuild", this);
75361
- this .colorNode ._transparent .removeInterest ("set_transparent__", this);
75362
- }
75348
+ this .colorNode?.removeInterest ("requestRebuild", this);
75363
75349
 
75364
75350
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
75365
75351
 
75366
- if (this .colorNode)
75367
- {
75368
- this .colorNode .addInterest ("requestRebuild", this);
75369
- this .colorNode ._transparent .addInterest ("set_transparent__", this);
75352
+ this .colorNode?.addInterest ("requestRebuild", this);
75370
75353
 
75371
- this .set_transparent__ ();
75372
- }
75373
- else
75374
- this .setTransparent (false);
75375
- },
75376
- set_transparent__: function ()
75377
- {
75378
- this .setTransparent (this .colorNode .isTransparent ());
75354
+ this .setTransparent (this .colorNode?.isTransparent () ?? false);
75379
75355
  },
75380
75356
  set_normal__: function ()
75381
75357
  {
75382
- if (this .normalNode)
75383
- this .normalNode .removeInterest ("requestRebuild", this);
75358
+ this .normalNode?.removeInterest ("requestRebuild", this);
75384
75359
 
75385
75360
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
75386
75361
 
75387
- if (this .normalNode)
75388
- this .normalNode .addInterest ("requestRebuild", this);
75362
+ this .normalNode?.addInterest ("requestRebuild", this);
75389
75363
  },
75390
75364
  set_coord__: function ()
75391
75365
  {
75392
- if (this .coordNode)
75393
- this .coordNode .removeInterest ("requestRebuild", this);
75366
+ this .coordNode?.removeInterest ("requestRebuild", this);
75394
75367
 
75395
75368
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
75396
75369
 
75397
- if (this .coordNode)
75398
- this .coordNode .addInterest ("requestRebuild", this);
75370
+ this .coordNode?.addInterest ("requestRebuild", this);
75399
75371
  },
75400
75372
  getColorPerVertexIndex: function (index)
75401
75373
  {
@@ -75489,8 +75461,7 @@ IndexedLineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeo
75489
75461
  for (let a = 0; a < numAttribNodes; ++ a)
75490
75462
  attribNodes [a] .addValue (index, attribArrays [a]);
75491
75463
 
75492
- if (fogCoordNode)
75493
- fogCoordNode .addDepth (index, fogDepthArray);
75464
+ fogCoordNode?.addDepth (index, fogDepthArray);
75494
75465
 
75495
75466
  if (colorNode)
75496
75467
  {
@@ -75500,8 +75471,7 @@ IndexedLineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeo
75500
75471
  colorNode .addColor (this .getColorIndex (face), colorArray);
75501
75472
  }
75502
75473
 
75503
- if (normalNode)
75504
- normalNode .addVector (index, normalArray);
75474
+ normalNode?.addVector (index, normalArray);
75505
75475
 
75506
75476
  coordNode .addPoint (index, vertexArray);
75507
75477
  }
@@ -77446,8 +77416,8 @@ const OrientationChaser_default_ = OrientationChaser;
77446
77416
  x_ite_Namespace.set ("x_ite/Components/Followers/OrientationChaser", OrientationChaser_default_);
77447
77417
  /* harmony default export */ const Followers_OrientationChaser = (OrientationChaser_default_);
77448
77418
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
77449
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(136);
77450
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(998);
77419
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(11);
77420
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(2);
77451
77421
  /*******************************************************************************
77452
77422
  *
77453
77423
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -78311,8 +78281,8 @@ const ExamineViewer_default_ = ExamineViewer;
78311
78281
  x_ite_Namespace.set ("x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
78312
78282
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
78313
78283
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
78314
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(136);
78315
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(998);
78284
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(11);
78285
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(2);
78316
78286
  /*******************************************************************************
78317
78287
  *
78318
78288
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79262,8 +79232,8 @@ const FlyViewer_default_ = FlyViewer;
79262
79232
  x_ite_Namespace.set ("x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
79263
79233
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
79264
79234
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
79265
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(136);
79266
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(998);
79235
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(11);
79236
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(2);
79267
79237
  /*******************************************************************************
79268
79238
  *
79269
79239
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79572,8 +79542,8 @@ const NoneViewer_default_ = NoneViewer;
79572
79542
  x_ite_Namespace.set ("x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
79573
79543
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
79574
79544
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
79575
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(136);
79576
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(998);
79545
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(11);
79546
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(2);
79577
79547
  /*******************************************************************************
79578
79548
  *
79579
79549
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -81176,8 +81146,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
81176
81146
  x_ite_Namespace.set ("x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
81177
81147
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
81178
81148
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
81179
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(136);
81180
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(998);
81149
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(11);
81150
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(2);
81181
81151
  /*******************************************************************************
81182
81152
  *
81183
81153
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -82199,8 +82169,8 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
82199
82169
  x_ite_Namespace.set ("x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
82200
82170
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
82201
82171
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
82202
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(998);
82203
- /* provided dependency */ var ResizeSensor = __webpack_require__(599);
82172
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(2);
82173
+ /* provided dependency */ var ResizeSensor = __webpack_require__(382);
82204
82174
  /*******************************************************************************
82205
82175
  *
82206
82176
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -82751,8 +82721,16 @@ fragment_main ()
82751
82721
  finalColor .rgb = getFogColor (finalColor .rgb);
82752
82722
  #endif
82753
82723
 
82754
- if (finalColor .a < x3d_AlphaCutoff)
82755
- discard;
82724
+ #if defined (X3D_ALPHA_MODE_OPAQUE)
82725
+ finalColor .a = 1.0;
82726
+ #endif
82727
+
82728
+ #if defined (X3D_ALPHA_MODE_MASK)
82729
+ if (finalColor .a < x3d_AlphaCutoff)
82730
+ discard;
82731
+
82732
+ finalColor .a = 1.0;
82733
+ #endif
82756
82734
 
82757
82735
  gl_FragColor = finalColor;
82758
82736
 
@@ -84277,8 +84255,16 @@ fragment_main ()
84277
84255
  finalColor .rgb = getFogColor (finalColor .rgb);
84278
84256
  #endif
84279
84257
 
84280
- if (finalColor .a < x3d_AlphaCutoff)
84281
- discard;
84258
+ #if defined (X3D_ALPHA_MODE_OPAQUE)
84259
+ finalColor .a = 1.0;
84260
+ #endif
84261
+
84262
+ #if defined (X3D_ALPHA_MODE_MASK)
84263
+ if (finalColor .a < x3d_AlphaCutoff)
84264
+ discard;
84265
+
84266
+ finalColor .a = 1.0;
84267
+ #endif
84282
84268
 
84283
84269
  x3d_FragColor = finalColor;
84284
84270
 
@@ -90851,7 +90837,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
90851
90837
  x_ite_Namespace.set ("x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
90852
90838
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
90853
90839
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
90854
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(998);
90840
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(2);
90855
90841
  /*******************************************************************************
90856
90842
  *
90857
90843
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -91500,6 +91486,10 @@ Appearance .prototype = Object .assign (Object .create (Shape_X3DAppearanceNode.
91500
91486
  {
91501
91487
  return this .alphaMode;
91502
91488
  },
91489
+ getNormalizedAlphaMode: function (transparent)
91490
+ {
91491
+ return this .alphaMode || (transparent ? Shape_AlphaMode.BLEND : Shape_AlphaMode.OPAQUE);
91492
+ },
91503
91493
  getAlphaCutoff: function ()
91504
91494
  {
91505
91495
  return this .alphaCutoff;
@@ -91773,11 +91763,11 @@ Appearance .prototype = Object .assign (Object .create (Shape_X3DAppearanceNode.
91773
91763
  switch (this .alphaMode)
91774
91764
  {
91775
91765
  case Shape_AlphaMode.AUTO:
91776
- this .setTransparent (Boolean (this .stylePropertiesNode [3] && this .stylePropertiesNode [3] .isTransparent () ||
91777
- (this .materialNode && this .materialNode .isTransparent ()) ||
91778
- (this .backMaterialNode && this .backMaterialNode .isTransparent ()) ||
91779
- (this .textureNode && this .textureNode .isTransparent ()) ||
91780
- this .blendModeNode));
91766
+ this .setTransparent (!!(this .stylePropertiesNode [3]?.isTransparent () ||
91767
+ this .materialNode?.isTransparent () ||
91768
+ this .backMaterialNode?.isTransparent () ||
91769
+ this .textureNode?.isTransparent () ||
91770
+ this .blendModeNode));
91781
91771
  break;
91782
91772
  case Shape_AlphaMode.OPAQUE:
91783
91773
  this .setTransparent (false);
@@ -92181,6 +92171,7 @@ x_ite_Namespace.set ("x_ite/Components/Shape/LineProperties", LineProperties_def
92181
92171
 
92182
92172
 
92183
92173
 
92174
+
92184
92175
  function X3DMaterialNode (executionContext)
92185
92176
  {
92186
92177
  Shape_X3DAppearanceChildNode.call (this, executionContext);
@@ -92244,13 +92235,17 @@ X3DMaterialNode .prototype = Object .assign (Object .create (Shape_X3DAppearance
92244
92235
 
92245
92236
  if (renderContext)
92246
92237
  {
92247
- const { renderObject, shadows, fogNode, shapeNode, appearanceNode, textureNode, objectsCount } = renderContext;
92238
+ const { renderObject, transparent, shadows, fogNode, shapeNode, appearanceNode, textureNode, objectsCount } = renderContext;
92248
92239
 
92249
92240
  key += this .logarithmicDepthBuffer || renderObject .getViewpoint () .getLogarithmicDepthBuffer () ? 1 : 0;
92241
+ key += appearanceNode .getNormalizedAlphaMode (transparent);
92242
+ key += this .getMaterialKey (shadows);
92250
92243
  key += shadows ? 1 : 0;
92251
- key += fogNode ? fogNode .getFogType () : 0;
92244
+ key += fogNode?.getFogType () ?? 0;
92252
92245
  key += shapeNode .getShapeKey ();
92253
92246
  key += appearanceNode .getStyleProperties (geometryContext .geometryType) ? 1 : 0;
92247
+ key += appearanceNode .getTextureTransformMapping () .size || 1;
92248
+ key += geometryContext .textureCoordinateMapping .size || 1;
92254
92249
  key += ".";
92255
92250
  key += objectsCount [0]; // Clip planes
92256
92251
  key += ".";
@@ -92259,17 +92254,16 @@ X3DMaterialNode .prototype = Object .assign (Object .create (Shape_X3DAppearance
92259
92254
  key += objectsCount [2]; // Texture projectors
92260
92255
  key += ".";
92261
92256
  key += textureNode ? 1 : appearanceNode .getTextureBits () .toString (4);
92262
- key += ".";
92263
- key += appearanceNode .getTextureTransformMapping () .size || 1;
92264
- key += geometryContext .textureCoordinateMapping .size || 1;
92265
- key += this .getMaterialKey (shadows);
92266
92257
  }
92267
92258
  else
92268
92259
  {
92269
92260
  const { textureNode, objectsCount } = geometryContext;
92270
92261
 
92271
92262
  key += this .logarithmicDepthBuffer ? 1 : 0;
92272
- key += "0000.";
92263
+ key += geometryContext .alphaMode;
92264
+ key += this .getMaterialKey (false);
92265
+ key += "000011";
92266
+ key += ".";
92273
92267
  key += objectsCount [0]; // Clip planes
92274
92268
  key += ".";
92275
92269
  key += objectsCount [1]; // Lights
@@ -92277,8 +92271,6 @@ X3DMaterialNode .prototype = Object .assign (Object .create (Shape_X3DAppearance
92277
92271
  key += objectsCount [2]; // Texture projectors
92278
92272
  key += ".";
92279
92273
  key += textureNode ? 1 : 0;
92280
- key += ".11";
92281
- key += this .getMaterialKey (false);
92282
92274
  }
92283
92275
 
92284
92276
  return this .shaderNodes .get (key) || this .createShader (key, geometryContext, renderContext);
@@ -92307,6 +92299,19 @@ X3DMaterialNode .prototype = Object .assign (Object .create (Shape_X3DAppearance
92307
92299
  if (this .logarithmicDepthBuffer || renderObject .getViewpoint () .getLogarithmicDepthBuffer ())
92308
92300
  options .push ("X3D_LOGARITHMIC_DEPTH_BUFFER");
92309
92301
 
92302
+ switch (appearanceNode .getNormalizedAlphaMode (renderContext .transparent))
92303
+ {
92304
+ case Shape_AlphaMode.OPAQUE:
92305
+ options .push ("X3D_ALPHA_MODE_OPAQUE");
92306
+ break;
92307
+ case Shape_AlphaMode.MASK:
92308
+ options .push ("X3D_ALPHA_MODE_MASK");
92309
+ break;
92310
+ case Shape_AlphaMode.BLEND:
92311
+ options .push ("X3D_ALPHA_MODE_BLEND");
92312
+ break;
92313
+ }
92314
+
92310
92315
  if (renderContext .shadows)
92311
92316
  options .push ("X3D_SHADOWS", "X3D_PCF_FILTERING");
92312
92317
 
@@ -92748,7 +92753,7 @@ UnlitMaterial .prototype = Object .assign (Object .create (Shape_X3DOneSidedMate
92748
92753
  set_transparent__: function ()
92749
92754
  {
92750
92755
  this .setTransparent (!!(this .getTransparency () ||
92751
- (this .getEmissiveTexture () && this .getEmissiveTexture () .isTransparent ())));
92756
+ this .getEmissiveTexture ()?.isTransparent ()));
92752
92757
  },
92753
92758
  getMaterialKey: function ()
92754
92759
  {
@@ -99450,59 +99455,39 @@ ElevationGrid .prototype = Object .assign (Object .create (Rendering_X3DGeometry
99450
99455
  },
99451
99456
  set_fogCoord__: function ()
99452
99457
  {
99453
- if (this .fogCoordNode)
99454
- this .fogCoordNode .removeInterest ("requestRebuild", this);
99458
+ this .fogCoordNode?.removeInterest ("requestRebuild", this);
99455
99459
 
99456
99460
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
99457
99461
 
99458
- if (this .fogCoordNode)
99459
- this .fogCoordNode .addInterest ("requestRebuild", this);
99462
+ this .fogCoordNode?.addInterest ("requestRebuild", this);
99460
99463
  },
99461
99464
  set_color__: function ()
99462
99465
  {
99463
- if (this .colorNode)
99464
- {
99465
- this .colorNode .removeInterest ("requestRebuild", this);
99466
- this .colorNode ._transparent .removeInterest ("set_transparent__", this);
99467
- }
99466
+ this .colorNode?.removeInterest ("requestRebuild", this);
99468
99467
 
99469
99468
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
99470
99469
 
99471
- if (this .colorNode)
99472
- {
99473
- this .colorNode .addInterest ("requestRebuild", this);
99474
- this .colorNode ._transparent .addInterest ("set_transparent__", this);
99470
+ this .colorNode?.addInterest ("requestRebuild", this);
99475
99471
 
99476
- this .set_transparent__ ();
99477
- }
99478
- else
99479
- this .setTransparent (false);
99480
- },
99481
- set_transparent__: function ()
99482
- {
99483
- this .setTransparent (this .colorNode .isTransparent ());
99472
+ this .setTransparent (this .colorNode?.isTransparent () ?? false);
99484
99473
  },
99485
99474
  set_texCoord__: function ()
99486
99475
  {
99487
- if (this .texCoordNode)
99488
- this .texCoordNode .removeInterest ("requestRebuild", this);
99476
+ this .texCoordNode?.removeInterest ("requestRebuild", this);
99489
99477
 
99490
99478
  this .texCoordNode = Base_X3DCast (Base_X3DConstants.X3DTextureCoordinateNode, this ._texCoord);
99491
99479
 
99492
- if (this .texCoordNode)
99493
- this .texCoordNode .addInterest ("requestRebuild", this);
99480
+ this .texCoordNode?.addInterest ("requestRebuild", this);
99494
99481
 
99495
99482
  this .setTextureCoordinate (this .texCoordNode);
99496
99483
  },
99497
99484
  set_normal__: function ()
99498
99485
  {
99499
- if (this .normalNode)
99500
- this .normalNode .removeInterest ("requestRebuild", this);
99486
+ this .normalNode?.removeInterest ("requestRebuild", this);
99501
99487
 
99502
99488
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
99503
99489
 
99504
- if (this .normalNode)
99505
- this .normalNode .addInterest ("requestRebuild", this);
99490
+ this .normalNode?.addInterest ("requestRebuild", this);
99506
99491
  },
99507
99492
  getColor: function ()
99508
99493
  {
@@ -99680,8 +99665,7 @@ ElevationGrid .prototype = Object .assign (Object .create (Rendering_X3DGeometry
99680
99665
  for (let a = 0; a < numAttribNodes; ++ a)
99681
99666
  attribNodes [a] .addValue (index, attribArrays [a]);
99682
99667
 
99683
- if (fogCoordNode)
99684
- fogCoordNode .addDepth (index, fogDepthArray);
99668
+ fogCoordNode?.addDepth (index, fogDepthArray);
99685
99669
 
99686
99670
  if (colorNode)
99687
99671
  {
@@ -108827,57 +108811,37 @@ LineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeometryNo
108827
108811
  },
108828
108812
  set_fogCoord__: function ()
108829
108813
  {
108830
- if (this .fogCoordNode)
108831
- this .fogCoordNode .removeInterest ("requestRebuild", this);
108814
+ this .fogCoordNode?.removeInterest ("requestRebuild", this);
108832
108815
 
108833
108816
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
108834
108817
 
108835
- if (this .fogCoordNode)
108836
- this .fogCoordNode .addInterest ("requestRebuild", this);
108818
+ this .fogCoordNode?.addInterest ("requestRebuild", this);
108837
108819
  },
108838
108820
  set_color__: function ()
108839
108821
  {
108840
- if (this .colorNode)
108841
- {
108842
- this .colorNode .removeInterest ("requestRebuild", this);
108843
- this .colorNode ._transparent .removeInterest ("set_transparent__", this);
108844
- }
108822
+ this .colorNode?.removeInterest ("requestRebuild", this);
108845
108823
 
108846
108824
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
108847
108825
 
108848
- if (this .colorNode)
108849
- {
108850
- this .colorNode .addInterest ("requestRebuild", this);
108851
- this .colorNode ._transparent .addInterest ("set_transparent__", this);
108826
+ this .colorNode?.addInterest ("requestRebuild", this);
108852
108827
 
108853
- this .set_transparent__ ();
108854
- }
108855
- else
108856
- this .setTransparent (false);
108857
- },
108858
- set_transparent__: function ()
108859
- {
108860
- this .setTransparent (this .colorNode .isTransparent ());
108828
+ this .setTransparent (this .colorNode?.isTransparent () ?? false);
108861
108829
  },
108862
108830
  set_normal__: function ()
108863
108831
  {
108864
- if (this .normalNode)
108865
- this .normalNode .removeInterest ("requestRebuild", this);
108832
+ this .normalNode?.removeInterest ("requestRebuild", this);
108866
108833
 
108867
108834
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
108868
108835
 
108869
- if (this .normalNode)
108870
- this .normalNode .addInterest ("requestRebuild", this);
108836
+ this .normalNode?.addInterest ("requestRebuild", this);
108871
108837
  },
108872
108838
  set_coord__: function ()
108873
108839
  {
108874
- if (this .coordNode)
108875
- this .coordNode .removeInterest ("requestRebuild", this);
108840
+ this .coordNode?.removeInterest ("requestRebuild", this);
108876
108841
 
108877
108842
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
108878
108843
 
108879
- if (this .coordNode)
108880
- this .coordNode .addInterest ("requestRebuild", this);
108844
+ this .coordNode?.addInterest ("requestRebuild", this);
108881
108845
  },
108882
108846
  build: function ()
108883
108847
  {
@@ -108917,14 +108881,9 @@ LineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeometryNo
108917
108881
  for (let a = 0; a < numAttribNodes; ++ a)
108918
108882
  attribNodes [a] .addValue (index, attribArrays [a]);
108919
108883
 
108920
- if (fogCoordNode)
108921
- fogCoordNode .addDepth (index, fogDepthArray);
108922
-
108923
- if (colorNode)
108924
- colorNode .addColor (index, colorArray);
108925
-
108926
- if (normalNode)
108927
- normalNode .addVector (index, normalArray);
108884
+ fogCoordNode?.addDepth (index, fogDepthArray);
108885
+ colorNode ?.addColor (index, colorArray);
108886
+ normalNode ?.addVector (index, normalArray);
108928
108887
 
108929
108888
  coordNode .addPoint (index, vertexArray);
108930
108889
  }
@@ -109504,43 +109463,35 @@ PointSet .prototype = Object .assign (Object .create (Rendering_X3DPointGeometry
109504
109463
  },
109505
109464
  set_fogCoord__: function ()
109506
109465
  {
109507
- if (this .fogCoordNode)
109508
- this .fogCoordNode .removeInterest ("requestRebuild", this);
109466
+ this .fogCoordNode?.removeInterest ("requestRebuild", this);
109509
109467
 
109510
109468
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
109511
109469
 
109512
- if (this .fogCoordNode)
109513
- this .fogCoordNode .addInterest ("requestRebuild", this);
109470
+ this .fogCoordNode?.addInterest ("requestRebuild", this);
109514
109471
  },
109515
109472
  set_color__: function ()
109516
109473
  {
109517
- if (this .colorNode)
109518
- this .colorNode .removeInterest ("requestRebuild", this);
109474
+ this .colorNode?.removeInterest ("requestRebuild", this);
109519
109475
 
109520
109476
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
109521
109477
 
109522
- if (this .colorNode)
109523
- this .colorNode .addInterest ("requestRebuild", this);
109478
+ this .colorNode?.addInterest ("requestRebuild", this);
109524
109479
  },
109525
109480
  set_normal__: function ()
109526
109481
  {
109527
- if (this .normalNode)
109528
- this .normalNode .removeInterest ("requestRebuild", this);
109482
+ this .normalNode?.removeInterest ("requestRebuild", this);
109529
109483
 
109530
109484
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
109531
109485
 
109532
- if (this .normalNode)
109533
- this .normalNode .addInterest ("requestRebuild", this);
109486
+ this .normalNode?.addInterest ("requestRebuild", this);
109534
109487
  },
109535
109488
  set_coord__: function ()
109536
109489
  {
109537
- if (this .coordNode)
109538
- this .coordNode .removeInterest ("requestRebuild", this);
109490
+ this .coordNode?.removeInterest ("requestRebuild", this);
109539
109491
 
109540
109492
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
109541
109493
 
109542
- if (this .coordNode)
109543
- this .coordNode .addInterest ("requestRebuild", this);
109494
+ this .coordNode?.addInterest ("requestRebuild", this);
109544
109495
  },
109545
109496
  build: function ()
109546
109497
  {
@@ -109567,14 +109518,9 @@ PointSet .prototype = Object .assign (Object .create (Rendering_X3DPointGeometry
109567
109518
  attribNodes [a] .addValue (i, attribArrays [a]);
109568
109519
  }
109569
109520
 
109570
- if (fogCoordNode)
109571
- fogCoordNode .addDepths (fogDepthArray, numPoints);
109572
-
109573
- if (colorNode)
109574
- colorNode .addColors (colorArray, numPoints);
109575
-
109576
- if (normalNode)
109577
- normalNode .addNormals (normalArray, numPoints);
109521
+ fogCoordNode?.addDepths (fogDepthArray, numPoints);
109522
+ colorNode ?.addColors (colorArray, numPoints);
109523
+ normalNode ?.addNormals (normalArray, numPoints);
109578
109524
 
109579
109525
  coordNode .addPoints (vertexArray, numPoints);
109580
109526
  },
@@ -111462,8 +111408,7 @@ Material .prototype = Object .assign (Object .create (Shape_X3DOneSidedMaterialN
111462
111408
  },
111463
111409
  set_transparent__: function ()
111464
111410
  {
111465
- this .setTransparent (!!(this .getTransparency () ||
111466
- (this .diffuseTextureNode && this .diffuseTextureNode .isTransparent ())));
111411
+ this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode?.isTransparent ()));
111467
111412
  },
111468
111413
  getBaseTexture: function ()
111469
111414
  {
@@ -111825,8 +111770,7 @@ PhysicalMaterial .prototype = Object .assign (Object .create (Shape_X3DOneSidedM
111825
111770
  },
111826
111771
  set_transparent__: function ()
111827
111772
  {
111828
- this .setTransparent (!!(this .getTransparency () ||
111829
- (this .baseTextureNode && this .baseTextureNode .isTransparent ())));
111773
+ this .setTransparent (!!(this .getTransparency () || this .baseTextureNode?.isTransparent ()));
111830
111774
  },
111831
111775
  getBaseTexture: function ()
111832
111776
  {
@@ -112201,7 +112145,7 @@ TwoSidedMaterial .prototype = Object .assign (Object .create (Shape_X3DMaterialN
112201
112145
  },
112202
112146
  set_transparent__: function ()
112203
112147
  {
112204
- this .setTransparent (Boolean (this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ())));
112148
+ this .setTransparent (!!(this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ())));
112205
112149
  },
112206
112150
  getBaseTexture: Shape_Material.prototype.getBaseTexture,
112207
112151
  getMaterialKey: Shape_Material.prototype.getMaterialKey,
@@ -112744,7 +112688,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
112744
112688
  x_ite_Namespace.set ("x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
112745
112689
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
112746
112690
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
112747
- /* provided dependency */ var AudioClip_$ = __webpack_require__(998);
112691
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(2);
112748
112692
  /*******************************************************************************
112749
112693
  *
112750
112694
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115559,8 +115503,8 @@ const GIFMedia_default_ = GifMedia;
115559
115503
  x_ite_Namespace.set ("x_ite/Browser/Texturing/GIFMedia", GIFMedia_default_);
115560
115504
  /* harmony default export */ const GIFMedia = (GIFMedia_default_);
115561
115505
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
115562
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(998);
115563
- /* provided dependency */ var SuperGif = __webpack_require__(921);
115506
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(2);
115507
+ /* provided dependency */ var SuperGif = __webpack_require__(423);
115564
115508
  /*******************************************************************************
115565
115509
  *
115566
115510
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116508,7 +116452,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
116508
116452
  x_ite_Namespace.set ("x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
116509
116453
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
116510
116454
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
116511
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(998);
116455
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(2);
116512
116456
  /*******************************************************************************
116513
116457
  *
116514
116458
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117211,7 +117155,7 @@ const Components_default_ = Components;
117211
117155
  x_ite_Namespace.set ("x_ite/Components", Components_default_);
117212
117156
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
117213
117157
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
117214
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(998);
117158
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(2);
117215
117159
  /*******************************************************************************
117216
117160
  * MIT License
117217
117161
  *
@@ -118448,7 +118392,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
118448
118392
  x_ite_Namespace.set ("x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
118449
118393
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
118450
118394
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
118451
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(998);
118395
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(2);
118452
118396
  /*******************************************************************************
118453
118397
  *
118454
118398
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118637,8 +118581,8 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
118637
118581
  },
118638
118582
  getComponent: function (name, level)
118639
118583
  {
118640
- name = String (name);
118641
- level = ~~level;
118584
+ name = String (name);
118585
+ level |= 0;
118642
118586
 
118643
118587
  const component = Configuration_SupportedComponents.get (name);
118644
118588
 
@@ -119393,7 +119337,7 @@ const X3DBrowser_default_ = X3DBrowser;
119393
119337
  x_ite_Namespace.set ("x_ite/Browser/X3DBrowser", X3DBrowser_default_);
119394
119338
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
119395
119339
  ;// CONCATENATED MODULE: ./src/x_ite/Fallback.js
119396
- /* provided dependency */ var Fallback_$ = __webpack_require__(998);
119340
+ /* provided dependency */ var Fallback_$ = __webpack_require__(2);
119397
119341
  /*******************************************************************************
119398
119342
  *
119399
119343
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119572,8 +119516,8 @@ const MicroTime_default_ = undefined;
119572
119516
  x_ite_Namespace.set ("standard/Time/MicroTime", MicroTime_default_);
119573
119517
  /* harmony default export */ const MicroTime = ((/* unused pure expression or super */ null && (MicroTime_default_)));
119574
119518
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
119575
- /* provided dependency */ var jquery_$ = __webpack_require__(998);
119576
- /* provided dependency */ var pako = __webpack_require__(978);
119519
+ /* provided dependency */ var jquery_$ = __webpack_require__(2);
119520
+ /* provided dependency */ var pako = __webpack_require__(250);
119577
119521
  jquery_$.decodeText = function (input)
119578
119522
  {
119579
119523
  if (typeof input === "string")
@@ -119600,14 +119544,14 @@ const jquery_default_ = jquery_$;
119600
119544
  x_ite_Namespace.set ("lib/jquery", jquery_default_);
119601
119545
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
119602
119546
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
119603
- /* provided dependency */ var libtess_libtess = __webpack_require__(422);
119547
+ /* provided dependency */ var libtess_libtess = __webpack_require__(735);
119604
119548
  const libtess_default_ = libtess_libtess;
119605
119549
  ;
119606
119550
 
119607
119551
  x_ite_Namespace.set ("lib/libtess", libtess_default_);
119608
119552
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
119609
119553
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
119610
- /* provided dependency */ var X3D_$ = __webpack_require__(998);
119554
+ /* provided dependency */ var X3D_$ = __webpack_require__(2);
119611
119555
  /*******************************************************************************
119612
119556
  *
119613
119557
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119863,7 +119807,7 @@ const X3D_default_ = X3D;
119863
119807
  x_ite_Namespace.set ("x_ite/X3D", X3D_default_);
119864
119808
  /* harmony default export */ const x_ite_X3D = (X3D_default_);
119865
119809
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvas.js
119866
- /* provided dependency */ var X3DCanvas_$ = __webpack_require__(998);
119810
+ /* provided dependency */ var X3DCanvas_$ = __webpack_require__(2);
119867
119811
  /*******************************************************************************
119868
119812
  *
119869
119813
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120123,7 +120067,7 @@ x_ite_Namespace.set ("shim", shim_default_);
120123
120067
 
120124
120068
  // Assign X3D to global namespace.
120125
120069
 
120126
- window [Symbol .for ("X_ITE.X3D-8.6.9")] = x_ite_X3D;
120070
+ window [Symbol .for ("X_ITE.X3D-8.6.11")] = x_ite_X3D;
120127
120071
 
120128
120072
  x_ite_X3DCanvas.define ();
120129
120073