x_ite 10.4.2 → 10.5.0

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 (49) hide show
  1. package/README.md +4 -4
  2. package/dist/assets/components/AnnotationComponent.js +2 -2
  3. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  4. package/dist/assets/components/CADGeometryComponent.js +2 -2
  5. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  6. package/dist/assets/components/CubeMapTexturingComponent.js +2 -2
  7. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  8. package/dist/assets/components/DISComponent.js +2 -2
  9. package/dist/assets/components/DISComponent.min.js +2 -2
  10. package/dist/assets/components/EventUtilitiesComponent.js +2 -2
  11. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  12. package/dist/assets/components/Geometry2DComponent.js +19 -23
  13. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  14. package/dist/assets/components/GeospatialComponent.js +2 -2
  15. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  16. package/dist/assets/components/HAnimComponent.js +2 -2
  17. package/dist/assets/components/HAnimComponent.min.js +2 -2
  18. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -2
  19. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  20. package/dist/assets/components/LayoutComponent.js +2 -6
  21. package/dist/assets/components/LayoutComponent.min.js +2 -2
  22. package/dist/assets/components/NURBSComponent.js +805 -770
  23. package/dist/assets/components/NURBSComponent.min.js +2 -2
  24. package/dist/assets/components/ParticleSystemsComponent.js +10 -13
  25. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  26. package/dist/assets/components/PickingComponent.js +2 -2
  27. package/dist/assets/components/PickingComponent.min.js +2 -2
  28. package/dist/assets/components/RigidBodyPhysicsComponent.js +2 -2
  29. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  30. package/dist/assets/components/ScriptingComponent.js +2 -2
  31. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  32. package/dist/assets/components/TextComponent.js +7 -13
  33. package/dist/assets/components/TextComponent.min.js +2 -2
  34. package/dist/assets/components/TextureProjectionComponent.js +2 -2
  35. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  36. package/dist/assets/components/Texturing3DComponent.js +10 -10
  37. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  38. package/dist/assets/components/VolumeRenderingComponent.js +2 -2
  39. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  40. package/dist/assets/components/X_ITEComponent.js +2 -2
  41. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  42. package/dist/example.html +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +483 -308
  45. package/dist/x_ite.min.js +2 -2
  46. package/dist/x_ite.min.mjs +2 -2
  47. package/dist/x_ite.mjs +483 -308
  48. package/dist/x_ite.zip +0 -0
  49. package/package.json +3 -3
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v10.4.2 */
1
+ /* X_ITE v10.5.0 */
2
2
  (function webpackUniversalModuleDefinition(root, factory) {
3
3
  if(typeof exports === 'object' && typeof module === 'object')
4
4
  module.exports = factory();
@@ -12,10 +12,10 @@
12
12
  return /******/ (() => { // webpackBootstrap
13
13
  /******/ var __webpack_modules__ = ({
14
14
 
15
- /***/ 123:
15
+ /***/ 306:
16
16
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
17
17
 
18
- /* provided dependency */ var jQuery = __webpack_require__(375);
18
+ /* provided dependency */ var jQuery = __webpack_require__(386);
19
19
  /**
20
20
  * @preserve jquery.fullscreen 1.1.5
21
21
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -211,7 +211,7 @@ installFullScreenHandlers();
211
211
 
212
212
  /***/ }),
213
213
 
214
- /***/ 415:
214
+ /***/ 336:
215
215
  /***/ ((module, exports, __webpack_require__) => {
216
216
 
217
217
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -225,7 +225,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
225
225
  (function (factory) {
226
226
  if ( true ) {
227
227
  // AMD. Register as an anonymous module.
228
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(375)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
228
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(386)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
229
229
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
230
230
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
231
231
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -436,7 +436,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
436
436
 
437
437
  /***/ }),
438
438
 
439
- /***/ 375:
439
+ /***/ 386:
440
440
  /***/ (function(module, exports) {
441
441
 
442
442
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11160,7 +11160,7 @@ return jQuery;
11160
11160
 
11161
11161
  /***/ }),
11162
11162
 
11163
- /***/ 660:
11163
+ /***/ 475:
11164
11164
  /***/ ((module) => {
11165
11165
 
11166
11166
  /**
@@ -15939,7 +15939,7 @@ if (true) {
15939
15939
 
15940
15940
  /***/ }),
15941
15941
 
15942
- /***/ 671:
15942
+ /***/ 514:
15943
15943
  /***/ (function(__unused_webpack_module, exports) {
15944
15944
 
15945
15945
 
@@ -19184,7 +19184,7 @@ if (true) {
19184
19184
 
19185
19185
  /***/ }),
19186
19186
 
19187
- /***/ 776:
19187
+ /***/ 141:
19188
19188
  /***/ (function(module, exports) {
19189
19189
 
19190
19190
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20311,7 +20311,7 @@ Object .defineProperty (Namespace, "add",
20311
20311
  return module;
20312
20312
  }
20313
20313
 
20314
- const X3D = window [Symbol .for ("X_ITE.X3D-10.4.2")];
20314
+ const X3D = window [Symbol .for ("X_ITE.X3D-10.5.0")];
20315
20315
 
20316
20316
  if (X3D)
20317
20317
  X3D [name] = module;
@@ -20567,6 +20567,10 @@ const Algorithm =
20567
20567
 
20568
20568
  return value;
20569
20569
  },
20570
+ project (value, fromLow, fromHigh, toLow, toHigh)
20571
+ {
20572
+ return toLow + ((value - fromLow) / (fromHigh - fromLow)) * (toHigh - toLow);
20573
+ },
20570
20574
  roundToMultiple (value, multiple)
20571
20575
  {
20572
20576
  return Math .ceil (value / multiple) * multiple;
@@ -24946,6 +24950,8 @@ const SFMatrixPrototypeTemplate_default_ = SFMatrixPrototypeTemplate;
24946
24950
  *
24947
24951
  ******************************************************************************/
24948
24952
 
24953
+
24954
+
24949
24955
  function Vector2 (x = 0, y = 0)
24950
24956
  {
24951
24957
  this .x = x;
@@ -25106,6 +25112,11 @@ Object .assign (Vector2 .prototype,
25106
25112
  this .y = y;
25107
25113
  return this;
25108
25114
  },
25115
+ clamp (min, max)
25116
+ {
25117
+ this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25118
+ this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25119
+ },
25109
25120
  toString ()
25110
25121
  {
25111
25122
  return this .x + " " +
@@ -25398,6 +25409,12 @@ Object .assign (Vector3 .prototype,
25398
25409
  this .z = z;
25399
25410
  return this;
25400
25411
  },
25412
+ clamp (min, max)
25413
+ {
25414
+ this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25415
+ this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25416
+ this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
25417
+ },
25401
25418
  toString ()
25402
25419
  {
25403
25420
  return this .x + " " +
@@ -26743,6 +26760,8 @@ const SFMatrix3_default_ = SFMatrix3;
26743
26760
  *
26744
26761
  ******************************************************************************/
26745
26762
 
26763
+
26764
+
26746
26765
  function Vector4 (x = 0, y = 0, z = 0, w = 0)
26747
26766
  {
26748
26767
  this .x = x;
@@ -26958,6 +26977,13 @@ Object .assign (Vector4 .prototype,
26958
26977
  this .w = w;
26959
26978
  return this;
26960
26979
  },
26980
+ clamp (min, max)
26981
+ {
26982
+ this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
26983
+ this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
26984
+ this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
26985
+ this .w = Math_Algorithm .clamp (this .w, min .w, max .w);
26986
+ },
26961
26987
  toString ()
26962
26988
  {
26963
26989
  return this .x + " " +
@@ -34147,7 +34173,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34147
34173
 
34148
34174
  /* harmony default export */ const Base_X3DBaseNode = (x_ite_Namespace .add ("X3DBaseNode", X3DBaseNode_default_));
34149
34175
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34150
- /* provided dependency */ var $ = __webpack_require__(375);
34176
+ /* provided dependency */ var $ = __webpack_require__(386);
34151
34177
  /*******************************************************************************
34152
34178
  *
34153
34179
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34283,7 +34309,7 @@ const Legacy_default_ = Legacy;
34283
34309
  *
34284
34310
  ******************************************************************************/
34285
34311
 
34286
- const BROWSER_VERSION_default_ = "10.4.2";
34312
+ const BROWSER_VERSION_default_ = "10.5.0";
34287
34313
  ;
34288
34314
 
34289
34315
  /* harmony default export */ const BROWSER_VERSION = (x_ite_Namespace .add ("BROWSER_VERSION", BROWSER_VERSION_default_));
@@ -37308,7 +37334,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37308
37334
 
37309
37335
  /* harmony default export */ const Core_X3DBindableNode = (x_ite_Namespace .add ("X3DBindableNode", X3DBindableNode_default_));
37310
37336
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
37311
- /* provided dependency */ var libtess = __webpack_require__(660);
37337
+ /* provided dependency */ var libtess = __webpack_require__(475);
37312
37338
  /*******************************************************************************
37313
37339
  *
37314
37340
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -37350,7 +37376,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37350
37376
  *
37351
37377
  * You should have received a copy of the GNU General Public License version 3
37352
37378
  * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
37353
- * copy of the GPLv3 License.
37379
+ * copy of the GPLc License.
37354
37380
  *
37355
37381
  * For Silvio, Joy and Adi.
37356
37382
  *
@@ -37360,6 +37386,13 @@ const X3DBindableNode_default_ = X3DBindableNode;
37360
37386
 
37361
37387
  const Triangle3 =
37362
37388
  {
37389
+ /**
37390
+ *
37391
+ * @param {Vector3} a first point of triangle
37392
+ * @param {Vector3} b second point of triangle
37393
+ * @param {Vector3} c third point of triangle
37394
+ * @returns
37395
+ */
37363
37396
  area: (() =>
37364
37397
  {
37365
37398
  const
@@ -37371,15 +37404,23 @@ const Triangle3 =
37371
37404
  return B .assign (b) .subtract (a) .cross (C .assign (c) .subtract (a)) .magnitude () / 2;
37372
37405
  };
37373
37406
  })(),
37374
- normal (v1, v2, v3, normal)
37407
+ /**
37408
+ *
37409
+ * @param {Vector3} a first point of triangle
37410
+ * @param {Vector3} b second point of triangle
37411
+ * @param {Vector3} c third point of triangle
37412
+ * @param {Vector3} normal resulting normal
37413
+ * @returns
37414
+ */
37415
+ normal (a, b, c, normal)
37375
37416
  {
37376
37417
  const
37377
- x1 = v3 .x - v2 .x,
37378
- y1 = v3 .y - v2 .y,
37379
- z1 = v3 .z - v2 .z,
37380
- x2 = v1 .x - v2 .x,
37381
- y2 = v1 .y - v2 .y,
37382
- z2 = v1 .z - v2 .z;
37418
+ x1 = c .x - b .x,
37419
+ y1 = c .y - b .y,
37420
+ z1 = c .z - b .z,
37421
+ x2 = a .x - b .x,
37422
+ y2 = a .y - b .y,
37423
+ z2 = a .z - b .z;
37383
37424
 
37384
37425
  normal .set (y1 * z2 - z1 * y2,
37385
37426
  z1 * x2 - x1 * z2,
@@ -37387,15 +37428,24 @@ const Triangle3 =
37387
37428
 
37388
37429
  return normal .normalize ();
37389
37430
  },
37390
- quadNormal (v1, v2, v3, v4, normal)
37431
+ /**
37432
+ *
37433
+ * @param {Vector3} a first point of quad
37434
+ * @param {Vector3} b second point of quad
37435
+ * @param {Vector3} c third point of quad
37436
+ * @param {Vector3} d third point of quad
37437
+ * @param {Vector3} normal resulting normal
37438
+ * @returns
37439
+ */
37440
+ quadNormal (a, b, c, d, normal)
37391
37441
  {
37392
37442
  const
37393
- x1 = v3 .x - v1 .x,
37394
- y1 = v3 .y - v1 .y,
37395
- z1 = v3 .z - v1 .z,
37396
- x2 = v4 .x - v2 .x,
37397
- y2 = v4 .y - v2 .y,
37398
- z2 = v4 .z - v2 .z;
37443
+ x1 = c .x - a .x,
37444
+ y1 = c .y - a .y,
37445
+ z1 = c .z - a .z,
37446
+ x2 = d .x - b .x,
37447
+ y2 = d .y - b .y,
37448
+ z2 = d .z - b .z;
37399
37449
 
37400
37450
  normal .set (y1 * z2 - z1 * y2,
37401
37451
  z1 * x2 - x1 * z2,
@@ -39846,7 +39896,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
39846
39896
 
39847
39897
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (x_ite_Namespace .add ("X3DProtoDeclaration", X3DProtoDeclaration_default_));
39848
39898
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
39849
- /* provided dependency */ var X3DParser_$ = __webpack_require__(375);
39899
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(386);
39850
39900
  /*******************************************************************************
39851
39901
  *
39852
39902
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -40101,7 +40151,7 @@ const Expressions_default_ = Expressions;
40101
40151
 
40102
40152
  /* harmony default export */ const Parser_Expressions = (x_ite_Namespace .add ("Expressions", Expressions_default_));
40103
40153
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
40104
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(375);
40154
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(386);
40105
40155
  /*******************************************************************************
40106
40156
  *
40107
40157
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42800,7 +42850,7 @@ const VRMLParser_default_ = VRMLParser;
42800
42850
 
42801
42851
  /* harmony default export */ const Parser_VRMLParser = (x_ite_Namespace .add ("VRMLParser", VRMLParser_default_));
42802
42852
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
42803
- /* provided dependency */ var XMLParser_$ = __webpack_require__(375);
42853
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(386);
42804
42854
  /*******************************************************************************
42805
42855
  *
42806
42856
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44973,7 +45023,7 @@ const URLs_default_ = URLs;
44973
45023
 
44974
45024
  /* harmony default export */ const Networking_URLs = (x_ite_Namespace .add ("URLs", URLs_default_));
44975
45025
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
44976
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(375);
45026
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(386);
44977
45027
  /*******************************************************************************
44978
45028
  *
44979
45029
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48617,7 +48667,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
48617
48667
 
48618
48668
  /* harmony default export */ const Parser_GLTF2Parser = (x_ite_Namespace .add ("GLTF2Parser", GLTF2Parser_default_));
48619
48669
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
48620
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(375);
48670
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(386);
48621
48671
  /*******************************************************************************
48622
48672
  *
48623
48673
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48768,7 +48818,7 @@ const GLB2Parser_default_ = GLB2Parser;
48768
48818
 
48769
48819
  /* harmony default export */ const Parser_GLB2Parser = (x_ite_Namespace .add ("GLB2Parser", GLB2Parser_default_));
48770
48820
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
48771
- /* provided dependency */ var OBJParser_$ = __webpack_require__(375);
48821
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(386);
48772
48822
  /*******************************************************************************
48773
48823
  *
48774
48824
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52110,8 +52160,8 @@ const MatrixStack_default_ = MatrixStack;
52110
52160
 
52111
52161
  /* harmony default export */ const Utility_MatrixStack = (x_ite_Namespace .add ("MatrixStack", MatrixStack_default_));
52112
52162
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52113
- /* provided dependency */ var SVGParser_$ = __webpack_require__(375);
52114
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(660);
52163
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(386);
52164
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(475);
52115
52165
  /*******************************************************************************
52116
52166
  *
52117
52167
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54881,7 +54931,7 @@ const SVGParser_default_ = SVGParser;
54881
54931
 
54882
54932
  /* harmony default export */ const Parser_SVGParser = (x_ite_Namespace .add ("SVGParser", SVGParser_default_));
54883
54933
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
54884
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(375);
54934
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(386);
54885
54935
  /*******************************************************************************
54886
54936
  *
54887
54937
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -56346,11 +56396,11 @@ Object .assign (Line3 .prototype,
56346
56396
  if (v < 0 || u + v > 1)
56347
56397
  return false;
56348
56398
 
56349
- //let t = edge2 .dot (qvec) * inv_det;
56399
+ //let u = edge2 .dot (qvec) * inv_det;
56350
56400
 
56351
- uvt .u = u;
56352
- uvt .v = v;
56353
- uvt .t = 1 - u - v;
56401
+ uvt .u = 1 - u - v;
56402
+ uvt .v = u;
56403
+ uvt .t = v;
56354
56404
 
56355
56405
  return true;
56356
56406
  };
@@ -57781,7 +57831,12 @@ Object .assign (X3DRenderObject .prototype,
57781
57831
 
57782
57832
  function X3DRenderObject_assign (lhs, rhs)
57783
57833
  {
57784
- Object .assign (lhs, rhs) .length = rhs .length;
57834
+ const length = rhs .length;
57835
+
57836
+ for (let i = 0; i < length; ++ i)
57837
+ lhs [i] = rhs [i];
57838
+
57839
+ lhs .length = length;
57785
57840
  }
57786
57841
 
57787
57842
  const X3DRenderObject_default_ = X3DRenderObject;
@@ -60192,42 +60247,43 @@ function X3DGeometryNode (executionContext)
60192
60247
  this .planes [i] = new Geometry_Plane3 ();
60193
60248
  }
60194
60249
 
60195
- Object .defineProperty (X3DGeometryNode, "createArray",
60250
+ class GeometryArray extends Array
60196
60251
  {
60197
- // Function to select ether Array or MFFloat for color/normal/vertex arrays.
60198
- // Array version runs faster, see BeyondGermany and TreasureIsland.
60199
- value ()
60200
- {
60201
- // return new Fields .MFFloat ();
60252
+ #typedArray = new Float32Array ();
60202
60253
 
60203
- const array = [ ];
60204
-
60205
- array .typedArray = new Float32Array ();
60254
+ assign (value)
60255
+ {
60256
+ const length = value .length;
60206
60257
 
60207
- array .assign = function (value)
60208
- {
60209
- const length = value .length;
60258
+ for (let i = 0; i < length; ++ i)
60259
+ this [i] = value [i];
60210
60260
 
60211
- for (let i = 0; i < length; ++ i)
60212
- this [i] = value [i];
60261
+ this .length = length;
60262
+ }
60213
60263
 
60214
- this .length = length;
60215
- };
60264
+ getValue ()
60265
+ {
60266
+ return this .#typedArray;
60267
+ }
60216
60268
 
60217
- array .getValue = function ()
60218
- {
60219
- return this .typedArray;
60220
- };
60269
+ shrinkToFit ()
60270
+ {
60271
+ if (this .length === this .#typedArray .length)
60272
+ this .#typedArray .set (this);
60273
+ else
60274
+ this .#typedArray = new Float32Array (this);
60275
+ }
60276
+ }
60221
60277
 
60222
- array .shrinkToFit = function ()
60223
- {
60224
- if (this .length === this .typedArray .length)
60225
- this .typedArray .set (this);
60226
- else
60227
- this .typedArray = new Float32Array (this);
60228
- };
60278
+ Object .defineProperty (X3DGeometryNode, "createArray",
60279
+ {
60280
+ // Function to select ether Array or MFFloat for color/normal/vertex arrays.
60281
+ // Array version runs faster, see BeyondGermany and TreasureIsland.
60282
+ value ()
60283
+ {
60284
+ // return new Fields .MFFloat ();
60229
60285
 
60230
- return array;
60286
+ return new GeometryArray ();
60231
60287
  },
60232
60288
  })
60233
60289
 
@@ -60267,14 +60323,14 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60267
60323
 
60268
60324
  this .set_live__ ();
60269
60325
  },
60270
- setGeometryType (value)
60271
- {
60272
- this .geometryType = value;
60273
- },
60274
60326
  getGeometryType ()
60275
60327
  {
60276
60328
  return this .geometryType;
60277
60329
  },
60330
+ setGeometryType (value)
60331
+ {
60332
+ this .geometryType = value;
60333
+ },
60278
60334
  setTransparent (value)
60279
60335
  {
60280
60336
  if (!!value !== this ._transparent .getValue ())
@@ -60317,22 +60373,22 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60317
60373
  {
60318
60374
  return Numbers_Matrix4 .Identity;
60319
60375
  },
60320
- setPrimitiveMode (value)
60321
- {
60322
- this .primitiveMode = value;
60323
- },
60324
60376
  getPrimitiveMode ()
60325
60377
  {
60326
60378
  return this .primitiveMode;
60327
60379
  },
60328
- isSolid ()
60380
+ setPrimitiveMode (value)
60329
60381
  {
60330
- return this .solid;
60382
+ this .primitiveMode = value;
60331
60383
  },
60332
60384
  setSolid (value)
60333
60385
  {
60334
60386
  this .solid = value;
60335
60387
  },
60388
+ isSolid ()
60389
+ {
60390
+ return this .solid;
60391
+ },
60336
60392
  setCCW (value)
60337
60393
  {
60338
60394
  const gl = this .getBrowser () .getContext ();
@@ -60355,33 +60411,14 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60355
60411
  {
60356
60412
  return this .attribBuffers;
60357
60413
  },
60358
- setFogDepths (value)
60359
- {
60360
- this .fogDepths .assign (value);
60361
- },
60362
60414
  getFogDepths ()
60363
60415
  {
60364
60416
  return this .fogDepths;
60365
60417
  },
60366
- setColors (value)
60367
- {
60368
- this .colors .assign (value);
60369
- },
60370
60418
  getColors ()
60371
60419
  {
60372
60420
  return this .colors;
60373
60421
  },
60374
- setMultiTexCoords (value)
60375
- {
60376
- const
60377
- multiTexCoords = this .multiTexCoords,
60378
- length = value .length;
60379
-
60380
- for (let i = 0; i < length; ++ i)
60381
- multiTexCoords [i] = value [i];
60382
-
60383
- multiTexCoords .length = length;
60384
- },
60385
60422
  getMultiTexCoords ()
60386
60423
  {
60387
60424
  return this .multiTexCoords;
@@ -60414,26 +60451,14 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60414
60451
 
60415
60452
  this .textureCoordinateNode .getTextureCoordinateMapping (this .textureCoordinateMapping);
60416
60453
  },
60417
- setTangents (value)
60418
- {
60419
- this .tangents .assign (value);
60420
- },
60421
60454
  getTangents ()
60422
60455
  {
60423
60456
  return this .tangents;
60424
60457
  },
60425
- setNormals (value)
60426
- {
60427
- this .normals .assign (value);
60428
- },
60429
60458
  getNormals ()
60430
60459
  {
60431
60460
  return this .normals;
60432
60461
  },
60433
- setVertices (value)
60434
- {
60435
- this .vertices .assign (value);
60436
- },
60437
60462
  getVertices ()
60438
60463
  {
60439
60464
  return this .vertices;
@@ -60527,28 +60552,35 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60527
60552
  })(),
60528
60553
  generateTangents ()
60529
60554
  {
60530
- if (this .geometryType < 2)
60531
- return;
60555
+ try
60556
+ {
60557
+ if (this .geometryType < 2)
60558
+ return;
60532
60559
 
60533
- if (!this .vertices .length)
60534
- return;
60560
+ if (!this .vertices .length)
60561
+ return;
60535
60562
 
60536
- if (!MikkTSpace .isInitialized ())
60537
- return void (MikkTSpace .initialize () .then (() => this .requestRebuild ()));
60563
+ if (!MikkTSpace .isInitialized ())
60564
+ return void (MikkTSpace .initialize () .then (() => this .requestRebuild ()));
60538
60565
 
60539
- const
60540
- vertices = this .vertices .getValue () .filter ((v, i) => i % 4 < 3),
60541
- normals = this .normals .getValue (),
60542
- texCoords = this .multiTexCoords [0] .getValue () .filter ((v, i) => i % 4 < 2),
60543
- tangents = MikkTSpace .generateTangents (vertices, normals, texCoords),
60544
- length = tangents .length;
60566
+ const
60567
+ vertices = this .vertices .getValue () .filter ((v, i) => i % 4 < 3),
60568
+ normals = this .normals .getValue (),
60569
+ texCoords = this .multiTexCoords [0] .getValue () .filter ((v, i) => i % 4 < 2),
60570
+ tangents = MikkTSpace .generateTangents (vertices, normals, texCoords),
60571
+ length = tangents .length;
60545
60572
 
60546
- // Convert coordinate system handedness to respect output format of MikkTSpace.
60547
- for (let i = 3; i < length; i += 4)
60548
- tangents [i] = -tangents [i]; // Flip w-channel.
60573
+ // Convert coordinate system handedness to respect output format of MikkTSpace.
60574
+ for (let i = 3; i < length; i += 4)
60575
+ tangents [i] = -tangents [i]; // Flip w-channel.
60549
60576
 
60550
- this .tangents .assign (tangents);
60551
- this .tangents .shrinkToFit ();
60577
+ this .tangents .assign (tangents);
60578
+ this .tangents .shrinkToFit ();
60579
+ }
60580
+ catch (error)
60581
+ {
60582
+ console .error (error);
60583
+ }
60552
60584
  },
60553
60585
  refineNormals (normalIndex, normals, creaseAngle)
60554
60586
  {
@@ -60628,16 +60660,13 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60628
60660
  {
60629
60661
  // Get barycentric coordinates.
60630
60662
 
60631
- const
60632
- u = uvt .u,
60633
- v = uvt .v,
60634
- t = uvt .t;
60663
+ const { u, v, t } = uvt;
60635
60664
 
60636
60665
  // Determine vectors for X3DPointingDeviceSensors.
60637
60666
 
60638
- const point = new Numbers_Vector3 (t * vertices [i4] + u * vertices [i4 + 4] + v * vertices [i4 + 8],
60639
- t * vertices [i4 + 1] + u * vertices [i4 + 5] + v * vertices [i4 + 9],
60640
- t * vertices [i4 + 2] + u * vertices [i4 + 6] + v * vertices [i4 + 10]);
60667
+ const point = new Numbers_Vector3 (u * vertices [i4] + v * vertices [i4 + 4] + t * vertices [i4 + 8],
60668
+ u * vertices [i4 + 1] + v * vertices [i4 + 5] + t * vertices [i4 + 9],
60669
+ u * vertices [i4 + 2] + v * vertices [i4 + 6] + t * vertices [i4 + 10]);
60641
60670
 
60642
60671
  if (clipPlanes .length)
60643
60672
  {
@@ -60645,16 +60674,16 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60645
60674
  continue;
60646
60675
  }
60647
60676
 
60648
- const texCoord = new Numbers_Vector2 (t * texCoords [i4] + u * texCoords [i4 + 4] + v * texCoords [i4 + 8],
60649
- t * texCoords [i4 + 1] + u * texCoords [i4 + 5] + v * texCoords [i4 + 9]);
60677
+ const texCoord = new Numbers_Vector2 (u * texCoords [i4] + v * texCoords [i4 + 4] + t * texCoords [i4 + 8],
60678
+ u * texCoords [i4 + 1] + v * texCoords [i4 + 5] + t * texCoords [i4 + 9]);
60650
60679
 
60651
60680
  const i3 = i * 3;
60652
60681
 
60653
- const normal = new Numbers_Vector3 (t * normals [i3] + u * normals [i3 + 3] + v * normals [i3 + 6],
60654
- t * normals [i3 + 1] + u * normals [i3 + 4] + v * normals [i3 + 7],
60655
- t * normals [i3 + 2] + u * normals [i3 + 5] + v * normals [i3 + 8]);
60682
+ const normal = new Numbers_Vector3 (u * normals [i3] + v * normals [i3 + 3] + t * normals [i3 + 6],
60683
+ u * normals [i3 + 1] + v * normals [i3 + 4] + t * normals [i3 + 7],
60684
+ u * normals [i3 + 2] + v * normals [i3 + 5] + t * normals [i3 + 8]);
60656
60685
 
60657
- intersections .push ({ texCoord: texCoord, normal: normal, point: this .getMatrix () .multVecMatrix (point) });
60686
+ intersections .push ({ texCoord, normal, point: this .getMatrix () .multVecMatrix (point) });
60658
60687
  }
60659
60688
  }
60660
60689
  }
@@ -60969,17 +60998,20 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60969
60998
  // Determine bbox.
60970
60999
 
60971
61000
  const
60972
- vertices = this .vertices .getValue (),
60973
- min = this .min,
60974
- max = this .max;
61001
+ vertices = this .vertices .getValue (),
61002
+ numVertices = vertices .length,
61003
+ min = this .min,
61004
+ max = this .max;
60975
61005
 
60976
- if (vertices .length)
61006
+ if (numVertices)
60977
61007
  {
60978
61008
  if (min .x === Number .POSITIVE_INFINITY)
60979
61009
  {
60980
- for (let i = 0, length = vertices .length; i < length; i += 4)
61010
+ for (let i = 0; i < numVertices; i += 4)
60981
61011
  {
60982
- point .set (vertices [i], vertices [i + 1], vertices [i + 2]);
61012
+ const { [i]: v1, [i + 1]: v2, [i + 2]: v3 } = vertices;
61013
+
61014
+ point .set (v1, v2, v3);
60983
61015
 
60984
61016
  min .min (point);
60985
61017
  max .max (point);
@@ -61138,7 +61170,7 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
61138
61170
  appearanceNode = renderContext .appearanceNode,
61139
61171
  shaderNode = appearanceNode .getShader (this, renderContext);
61140
61172
 
61141
- if (this .solid || !appearanceNode .getBackMaterial () || browser .getWireframe ())
61173
+ if (this .solid || !appearanceNode .getBackMaterial ())
61142
61174
  {
61143
61175
  this .displayGeometry (gl, renderContext, appearanceNode, shaderNode, true, true);
61144
61176
  }
@@ -61191,51 +61223,43 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
61191
61223
 
61192
61224
  // Draw depending on wireframe, solid and transparent.
61193
61225
 
61194
- if (browser .getWireframe ())
61195
- {
61196
- for (let i = 0, length = this .vertexCount; i < length; i += 3)
61197
- gl .drawArrays (primitiveMode, i, 3);
61198
- }
61199
- else
61200
- {
61201
- const positiveScale = Numbers_Matrix4 .prototype .determinant3 .call (renderContext .modelViewMatrix) > 0;
61202
-
61203
- gl .frontFace (positiveScale ? this .frontFace : this .backFace .get (this .frontFace));
61204
-
61205
- if (renderContext .transparent || back !== front)
61206
- {
61207
- // Render transparent or back or front.
61226
+ const positiveScale = Numbers_Matrix4 .prototype .determinant3 .call (renderContext .modelViewMatrix) > 0;
61208
61227
 
61209
- gl .enable (gl .CULL_FACE);
61228
+ gl .frontFace (positiveScale ? this .frontFace : this .backFace .get (this .frontFace));
61210
61229
 
61211
- // Render back.
61230
+ if (renderContext .transparent || back !== front)
61231
+ {
61232
+ // Render transparent or back or front.
61212
61233
 
61213
- if (back && !this .solid)
61214
- {
61215
- gl .cullFace (gl .FRONT);
61216
- gl .drawArrays (primitiveMode, 0, this .vertexCount);
61217
- }
61234
+ gl .enable (gl .CULL_FACE);
61218
61235
 
61219
- // Render front.
61236
+ // Render back.
61220
61237
 
61221
- if (front)
61222
- {
61223
- gl .cullFace (gl .BACK);
61224
- gl .drawArrays (primitiveMode, 0, this .vertexCount);
61225
- }
61226
- }
61227
- else
61238
+ if (back && !this .solid)
61228
61239
  {
61229
- // Render solid or both sides.
61240
+ gl .cullFace (gl .FRONT);
61241
+ gl .drawArrays (primitiveMode, 0, this .vertexCount);
61242
+ }
61230
61243
 
61231
- if (this .solid)
61232
- gl .enable (gl .CULL_FACE);
61233
- else
61234
- gl .disable (gl .CULL_FACE);
61244
+ // Render front.
61235
61245
 
61246
+ if (front)
61247
+ {
61248
+ gl .cullFace (gl .BACK);
61236
61249
  gl .drawArrays (primitiveMode, 0, this .vertexCount);
61237
61250
  }
61238
61251
  }
61252
+ else
61253
+ {
61254
+ // Render solid or both sides.
61255
+
61256
+ if (this .solid)
61257
+ gl .enable (gl .CULL_FACE);
61258
+ else
61259
+ gl .disable (gl .CULL_FACE);
61260
+
61261
+ gl .drawArrays (primitiveMode, 0, this .vertexCount);
61262
+ }
61239
61263
 
61240
61264
  for (const node of renderModeNodes)
61241
61265
  node .disable (gl);
@@ -61278,7 +61302,7 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
61278
61302
  appearanceNode = renderContext .appearanceNode,
61279
61303
  shaderNode = appearanceNode .getShader (this, renderContext);
61280
61304
 
61281
- if (this .solid || !appearanceNode .getBackMaterial () || browser .getWireframe ())
61305
+ if (this .solid || !appearanceNode .getBackMaterial ())
61282
61306
  {
61283
61307
  this .displayInstancedGeometry (gl, renderContext, appearanceNode, shaderNode, true, true, shapeNode);
61284
61308
  }
@@ -62139,6 +62163,17 @@ Object .assign (Object .setPrototypeOf (X3DBackgroundNode .prototype, Core_X3DBi
62139
62163
  if (this ._hidden .getValue ())
62140
62164
  return;
62141
62165
 
62166
+ const browser = this .getBrowser ();
62167
+
62168
+ // Always fill background.
62169
+
62170
+ if (browser .getWireframe ())
62171
+ {
62172
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
62173
+
62174
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .FILL_WEBGL);
62175
+ }
62176
+
62142
62177
  // Setup context.
62143
62178
 
62144
62179
  gl .disable (gl .DEPTH_TEST);
@@ -62175,6 +62210,15 @@ Object .assign (Object .setPrototypeOf (X3DBackgroundNode .prototype, Core_X3DBi
62175
62210
  gl .depthMask (true);
62176
62211
  gl .enable (gl .DEPTH_TEST);
62177
62212
  gl .disable (gl .BLEND);
62213
+
62214
+ // Restore polygon mode.
62215
+
62216
+ if (browser .getWireframe ())
62217
+ {
62218
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
62219
+
62220
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .LINE_WEBGL);
62221
+ }
62178
62222
  };
62179
62223
  })(),
62180
62224
  drawSphere (renderObject, modelViewMatrixArray, projectionMatrixArray)
@@ -62896,7 +62940,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62896
62940
 
62897
62941
  /* harmony default export */ const Texturing_X3DTexture2DNode = (x_ite_Namespace .add ("X3DTexture2DNode", X3DTexture2DNode_default_));
62898
62942
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62899
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(375);
62943
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(386);
62900
62944
  /*******************************************************************************
62901
62945
  *
62902
62946
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -65280,7 +65324,7 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
65280
65324
  getUpVector ()
65281
65325
  {
65282
65326
  // Local y-axis,
65283
- // see https://www.web3d.org/documents/specifications/19775-1/V3.3/index.html#NavigationInfo.
65327
+ // see https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/navigation.html#NavigationInfo.
65284
65328
  return Numbers_Vector3 .yAxis;
65285
65329
  },
65286
65330
  getSpeedFactor ()
@@ -66280,7 +66324,7 @@ const X3DWorld_default_ = X3DWorld;
66280
66324
 
66281
66325
  /* harmony default export */ const Execution_X3DWorld = (x_ite_Namespace .add ("X3DWorld", X3DWorld_default_));
66282
66326
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66283
- /* provided dependency */ var FileLoader_$ = __webpack_require__(375);
66327
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(386);
66284
66328
  /*******************************************************************************
66285
66329
  *
66286
66330
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67210,7 +67254,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67210
67254
 
67211
67255
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (x_ite_Namespace .add ("ProtoDeclarationArray", ProtoDeclarationArray_default_));
67212
67256
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
67213
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(375);
67257
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(386);
67214
67258
  /*******************************************************************************
67215
67259
  *
67216
67260
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67374,8 +67418,6 @@ Object .assign (Object .setPrototypeOf (X3DRoute .prototype, Base_X3DObject .pro
67374
67418
  : this [_sourceNode] .getExportedNode ();
67375
67419
 
67376
67420
  this [_sourceField] = sourceNode .getField (this [_sourceFieldName]);
67377
-
67378
- this [_sourceField] .addOutputRoute (this);
67379
67421
  }
67380
67422
  catch (error)
67381
67423
  {
@@ -67390,7 +67432,6 @@ Object .assign (Object .setPrototypeOf (X3DRoute .prototype, Base_X3DObject .pro
67390
67432
 
67391
67433
  this [_destinationField] = destinationNode .getField (this [_destinationFieldName]);
67392
67434
 
67393
- this [_destinationField] .addInputRoute (this);
67394
67435
  }
67395
67436
  catch (error)
67396
67437
  {
@@ -67399,7 +67440,18 @@ Object .assign (Object .setPrototypeOf (X3DRoute .prototype, Base_X3DObject .pro
67399
67440
 
67400
67441
  if (this [_sourceField] && this [_destinationField])
67401
67442
  {
67402
- this [_sourceField] .addFieldInterest (this [_destinationField]);
67443
+ if (this [_sourceField] .getType () !== this [_destinationField] .getType ())
67444
+ throw new Error (`Bad ROUTE statement: Source field type must match destination field type of fields named "${this [_sourceField] .getName ()}" and "${this [_destinationField] .getName ()}".`);
67445
+
67446
+ if (!this [_sourceField] .isOutput ())
67447
+ throw new Error (`Bad ROUTE statement: Source field "${this [_sourceField] .getName ()}" must be an output.`);
67448
+
67449
+ if (!this [_destinationField] .isInput ())
67450
+ throw new Error (`Bad ROUTE statement: Destination field "${this [_destinationField] .getName ()}" must be an input.`);
67451
+
67452
+ this [_sourceField] .addOutputRoute (this);
67453
+ this [_destinationField] .addInputRoute (this);
67454
+ this [_sourceField] .addFieldInterest (this [_destinationField]);
67403
67455
  }
67404
67456
  else
67405
67457
  {
@@ -73847,17 +73899,18 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73847
73899
  return function ()
73848
73900
  {
73849
73901
  const
73850
- options = this .getBrowser () .getBoxOptions (),
73851
- geometry = options .getGeometry (),
73852
- size = this ._size .getValue ();
73902
+ options = this .getBrowser () .getBoxOptions (),
73903
+ geometry = options .getGeometry (),
73904
+ size = this ._size .getValue (),
73905
+ vertexArray = this .getVertices ();
73853
73906
 
73854
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
73855
- this .setTangents (geometry .getTangents ());
73856
- this .setNormals (geometry .getNormals ());
73907
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
73908
+ this .getTangents () .assign (geometry .getTangents ());
73909
+ this .getNormals () .assign (geometry .getNormals ());
73857
73910
 
73858
73911
  if (size .equals (defaultSize))
73859
73912
  {
73860
- this .setVertices (geometry .getVertices ());
73913
+ vertexArray .assign (geometry .getVertices ());
73861
73914
 
73862
73915
  this .getMin () .assign (geometry .getMin ());
73863
73916
  this .getMax () .assign (geometry .getMax ());
@@ -73868,8 +73921,7 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73868
73921
  x = Math .abs (size .x / 2),
73869
73922
  y = Math .abs (size .y / 2),
73870
73923
  z = Math .abs (size .z / 2),
73871
- defaultVertices = geometry .getVertices () .getValue (),
73872
- vertexArray = this .getVertices ();
73924
+ defaultVertices = geometry .getVertices () .getValue ();
73873
73925
 
73874
73926
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
73875
73927
  {
@@ -74887,11 +74939,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74887
74939
  SCPyAxis = new Numbers_Vector3 (),
74888
74940
  SCPzAxis = new Numbers_Vector3 ();
74889
74941
 
74890
- const
74942
+ const
74891
74943
  SCPyAxisPrevious = new Numbers_Vector3 (),
74892
74944
  SCPzAxisPrevious = new Numbers_Vector3 ();
74893
74945
 
74894
- const
74946
+ const
74895
74947
  vector3 = new Numbers_Vector3 (),
74896
74948
  rotation = new Numbers_Rotation4 ();
74897
74949
 
@@ -74937,8 +74989,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74937
74989
  for (let i = 0, length = numSpines - 2; i < length; ++ i)
74938
74990
  {
74939
74991
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74940
- .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
74941
- .normalize ();
74992
+ .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
74993
+ .normalize ();
74942
74994
 
74943
74995
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74944
74996
  break;
@@ -74959,8 +75011,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74959
75011
  for (let i = 1, length = numSpines - 1; i < length; ++ i)
74960
75012
  {
74961
75013
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74962
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
74963
- .normalize ();
75014
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
75015
+ .normalize ();
74964
75016
 
74965
75017
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74966
75018
  break;
@@ -74996,11 +75048,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74996
75048
  const s = spine [i] .getValue ();
74997
75049
 
74998
75050
  SCPyAxis .assign (spine [i + 1] .getValue ()) .subtract (s) .normalize ()
74999
- .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
75000
- .normalize ();
75051
+ .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
75052
+ .normalize ();
75001
75053
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (s)
75002
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
75003
- .normalize ();
75054
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
75055
+ .normalize ();
75004
75056
 
75005
75057
  // g.
75006
75058
  if (SCPzAxisPrevious .dot (SCPzAxis) < 0)
@@ -75042,8 +75094,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75042
75094
  if (numSpines > 2)
75043
75095
  {
75044
75096
  SCPzAxis .assign (s) .subtract (spine [numSpines - 2] .getValue ())
75045
- .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75046
- .normalize ();
75097
+ .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75098
+ .normalize ();
75047
75099
  }
75048
75100
 
75049
75101
  // g.
@@ -76337,26 +76389,25 @@ Object .assign (Object .setPrototypeOf (Sphere .prototype, Rendering_X3DGeometry
76337
76389
  build ()
76338
76390
  {
76339
76391
  const
76340
- options = this .getBrowser () .getSphereOptions (),
76341
- geometry = options .getGeometry (),
76342
- radius = Math .abs (this ._radius .getValue ());
76392
+ options = this .getBrowser () .getSphereOptions (),
76393
+ geometry = options .getGeometry (),
76394
+ radius = Math .abs (this ._radius .getValue ()),
76395
+ vertexArray = this .getVertices ();
76343
76396
 
76344
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
76345
- this .setTangents (geometry .getTangents ());
76346
- this .setNormals (geometry .getNormals ());
76397
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
76398
+ this .getTangents () .assign (geometry .getTangents ());
76399
+ this .getNormals () .assign (geometry .getNormals ());
76347
76400
 
76348
76401
  if (radius === 1)
76349
76402
  {
76350
- this .setVertices (geometry .getVertices ());
76403
+ vertexArray .assign (geometry .getVertices ());
76351
76404
 
76352
76405
  this .getMin () .assign (geometry .getMin ());
76353
76406
  this .getMax () .assign (geometry .getMax ());
76354
76407
  }
76355
76408
  else
76356
76409
  {
76357
- const
76358
- defaultVertices = geometry .getVertices () .getValue (),
76359
- vertexArray = this .getVertices ();
76410
+ const defaultVertices = geometry .getVertices () .getValue ();
76360
76411
 
76361
76412
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
76362
76413
  {
@@ -76838,7 +76889,6 @@ function X3DPointGeometryNode (executionContext)
76838
76889
  this .setGeometryType (0);
76839
76890
  this .setPrimitiveMode (browser .getContext () .POINTS);
76840
76891
  this .setSolid (false);
76841
- this .setTransparent (true);
76842
76892
  }
76843
76893
 
76844
76894
  Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Rendering_X3DGeometryNode .prototype),
@@ -76862,6 +76912,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76862
76912
  attribNodes = this .getAttrib (),
76863
76913
  attribBuffers = this .getAttribBuffers ();
76864
76914
 
76915
+ if (!renderContext .transparent)
76916
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76917
+
76865
76918
  for (const node of renderModeNodes)
76866
76919
  node .enable (gl);
76867
76920
 
@@ -76899,6 +76952,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76899
76952
 
76900
76953
  for (const node of renderModeNodes)
76901
76954
  node .disable (gl);
76955
+
76956
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76902
76957
  },
76903
76958
  displayInstanced (gl, renderContext, shapeNode)
76904
76959
  {
@@ -76909,6 +76964,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76909
76964
  attribNodes = this .getAttrib (),
76910
76965
  attribBuffers = this .getAttribBuffers ();
76911
76966
 
76967
+ if (!renderContext .transparent)
76968
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76969
+
76912
76970
  for (const node of renderModeNodes)
76913
76971
  node .enable (gl);
76914
76972
 
@@ -76965,6 +77023,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76965
77023
 
76966
77024
  for (const node of renderModeNodes)
76967
77025
  node .disable (gl);
77026
+
77027
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76968
77028
  },
76969
77029
  });
76970
77030
 
@@ -77434,7 +77494,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77434
77494
  renderObject = renderContext .renderObject,
77435
77495
  viewport = renderObject .getViewVolume () .getViewport (),
77436
77496
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77437
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77497
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77438
77498
  transformShaderNode = browser .getLineTransformShader ();
77439
77499
 
77440
77500
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -77652,7 +77712,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77652
77712
  renderObject = renderContext .renderObject,
77653
77713
  viewport = renderObject .getViewVolume () .getViewport (),
77654
77714
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77655
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77715
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77656
77716
  transformShaderNode = browser .getLineTransformInstancedShader ();
77657
77717
 
77658
77718
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -90473,7 +90533,7 @@ mediump samplerCube textureCube;
90473
90533
 
90474
90534
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90475
90535
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90476
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(375);
90536
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(386);
90477
90537
  /*******************************************************************************
90478
90538
  *
90479
90539
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90777,8 +90837,10 @@ Object .assign (X3DProgrammableShaderObject .prototype,
90777
90837
  {
90778
90838
  const uniform = gl .getUniformLocation (program, "x3d_TextureMatrix[" + i + "]");
90779
90839
 
90780
- if (uniform !== null)
90781
- this .x3d_TextureMatrix [i] = uniform;
90840
+ if (uniform === null)
90841
+ break;
90842
+
90843
+ this .x3d_TextureMatrix [i] = uniform;
90782
90844
  }
90783
90845
 
90784
90846
  for (let i = 0; i < maxTexCoords; ++ i)
@@ -93301,12 +93363,6 @@ const ShaderSource_default_ = ShaderSource;
93301
93363
 
93302
93364
 
93303
93365
  const Fragment1_glsl_default_ = /* glsl */ `
93304
- #if defined(X3D_NORMAL_TEXTURE)
93305
- #extension GL_OES_standard_derivatives:enable
93306
- #endif
93307
- #if defined(X3D_LOGARITHMIC_DEPTH_BUFFER)
93308
- #extension GL_EXT_frag_depth:enable
93309
- #endif
93310
93366
  #if defined(X3D_ALPHA_MODE_MASK)
93311
93367
  uniform float x3d_AlphaCutoff;
93312
93368
  #endif
@@ -93368,6 +93424,12 @@ clip();
93368
93424
  setPointTexCoords();
93369
93425
  #endif
93370
93426
  vec4 finalColor=getMaterialColor();
93427
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93428
+ finalColor.a=1.0;
93429
+ #endif
93430
+ #if defined(X3D_ALPHA_MODE_MASK)
93431
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93432
+ #endif
93371
93433
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93372
93434
  finalColor=getPointColor(finalColor);
93373
93435
  #endif
@@ -93377,12 +93439,6 @@ finalColor=getHatchColor(finalColor);
93377
93439
  #if defined(X3D_FOG)
93378
93440
  finalColor.rgb=getFogColor(finalColor.rgb);
93379
93441
  #endif
93380
- #if defined(X3D_ALPHA_MODE_OPAQUE)
93381
- finalColor.a=1.0;
93382
- #endif
93383
- #if defined(X3D_ALPHA_MODE_MASK)
93384
- if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93385
- #endif
93386
93442
  finalColor.rgb=toneMap(finalColor.rgb);gl_FragColor=finalColor;
93387
93443
  #if defined(X3D_LOGARITHMIC_DEPTH_BUFFER)
93388
93444
  gl_FragDepthEXT=log2(depth)*x3d_LogarithmicFarFactor1_2;
@@ -93423,7 +93479,43 @@ return texCoord;
93423
93479
  #else
93424
93480
  return texCoord0;
93425
93481
  #endif
93426
- }vec4 getTexCoord(const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator,const in int textureTransformMapping,const in int textureCoordinateMapping){int mode=textureCoordinateGenerator.mode;if(mode==x3d_None){return getTextureMatrix(textureTransformMapping)*getTexCoord(textureCoordinateMapping);}else if(mode==x3d_Sphere){vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;return vec4(N*0.5+0.5,0.0,1.0);}else if(mode==x3d_CameraSpaceNormal){vec3 N=normalize(gl_FrontFacing?normal:-normal);return vec4(N,1.0);}else if(mode==x3d_CameraSpacePosition){return vec4(vertex,1.0);}else if(mode==x3d_CameraSpaceReflectionVector){vec3 N=normalize(gl_FrontFacing?normal:-normal);return vec4(reflect(normalize(vertex),-N),1.0);}else if(mode==x3d_SphereLocal){vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;return vec4(N*0.5+0.5,0.0,1.0);}else if(mode==x3d_Coord){return vec4(localVertex,1.0);}else if(mode==x3d_CoordEye){return vec4(vertex,1.0);}else if(mode==x3d_Noise){vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(localVertex*scale+translation),1.0);}else if(mode==x3d_NoiseEye){vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(vertex*scale+translation),1.0);}else if(mode==x3d_SphereReflect){vec3 N=normalize(gl_FrontFacing?normal:-normal);float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}else if(mode==x3d_SphereReflectLocal){vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);float eta=textureCoordinateGenerator.parameter[0];vec3 eye=vec3(textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2],textureCoordinateGenerator.parameter[3]);return vec4(refract(normalize(localVertex-eye),-N,eta),1.0);}return getTextureMatrix(textureTransformMapping)*getTexCoord(textureCoordinateMapping);}uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator[X3D_NUM_TEXTURE_COORDINATES];vec3 getTexCoord(const in int textureTransformMapping,const in int textureCoordinateMapping){vec4 texCoord;
93482
+ }vec4 getTexCoord(const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator,const in int textureTransformMapping,const in int textureCoordinateMapping){int mode=textureCoordinateGenerator.mode;if(mode==x3d_None){return getTextureMatrix(textureTransformMapping)*getTexCoord(textureCoordinateMapping);}else if(mode==x3d_Sphere){
93483
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93484
+ vec2 N=normalize(normal).xy;
93485
+ #else
93486
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
93487
+ #endif
93488
+ return vec4(N*0.5+0.5,0.0,1.0);}else if(mode==x3d_CameraSpaceNormal){
93489
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93490
+ vec3 N=normalize(normal);
93491
+ #else
93492
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93493
+ #endif
93494
+ return vec4(N,1.0);}else if(mode==x3d_CameraSpacePosition){return vec4(vertex,1.0);}else if(mode==x3d_CameraSpaceReflectionVector){
93495
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93496
+ vec3 N=normalize(normal);
93497
+ #else
93498
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93499
+ #endif
93500
+ return vec4(reflect(normalize(vertex),-N),1.0);}else if(mode==x3d_SphereLocal){
93501
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93502
+ vec2 N=normalize(localNormal).xy;
93503
+ #else
93504
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
93505
+ #endif
93506
+ return vec4(N*0.5+0.5,0.0,1.0);}else if(mode==x3d_Coord){return vec4(localVertex,1.0);}else if(mode==x3d_CoordEye){return vec4(vertex,1.0);}else if(mode==x3d_Noise){vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(localVertex*scale+translation),1.0);}else if(mode==x3d_NoiseEye){vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(vertex*scale+translation),1.0);}else if(mode==x3d_SphereReflect){
93507
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93508
+ vec3 N=normalize(normal);
93509
+ #else
93510
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93511
+ #endif
93512
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}else if(mode==x3d_SphereReflectLocal){
93513
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93514
+ vec3 N=normalize(localNormal);
93515
+ #else
93516
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
93517
+ #endif
93518
+ float eta=textureCoordinateGenerator.parameter[0];vec3 eye=vec3(textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2],textureCoordinateGenerator.parameter[3]);return vec4(refract(normalize(localVertex-eye),-N,eta),1.0);}return getTextureMatrix(textureTransformMapping)*getTexCoord(textureCoordinateMapping);}uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator[X3D_NUM_TEXTURE_COORDINATES];vec3 getTexCoord(const in int textureTransformMapping,const in int textureCoordinateMapping){vec4 texCoord;
93427
93519
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93428
93520
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
93429
93521
  ${i === 0 ? "" : "else"} if (textureCoordinateMapping == ${i})
@@ -93489,7 +93581,13 @@ textureColor = texture2D (x3d_TextureProjectorTexture [${i}], texCoord);
93489
93581
  }
93490
93582
  #endif
93491
93583
  `) .join ("\n")}
93492
- return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);vec3 N=gl_FrontFacing?normal:-normal;for(int i=0;i<X3D_NUM_TEXTURE_PROJECTORS;++i){vec4 texCoord=x3d_TextureProjectorMatrix[i]*vec4(vertex,1.0);texCoord.stp/=texCoord.q;texCoord.p=clamp(texCoord.p,x3d_TextureProjectorParams[i].x,x3d_TextureProjectorParams[i].y);if(any(greaterThan(abs(texCoord.stp-0.5),vec3(0.5))))continue;vec3 p=x3d_TextureProjectorLocation[i]-vertex;if(dot(N,p)<0.0)continue;vec4 T=getTextureProjectorTexture(i,texCoord.st);
93584
+ return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
93585
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93586
+ vec3 N=normal;
93587
+ #else
93588
+ vec3 N=gl_FrontFacing?normal:-normal;
93589
+ #endif
93590
+ for(int i=0;i<X3D_NUM_TEXTURE_PROJECTORS;++i){vec4 texCoord=x3d_TextureProjectorMatrix[i]*vec4(vertex,1.0);texCoord.stp/=texCoord.q;texCoord.p=clamp(texCoord.p,x3d_TextureProjectorParams[i].x,x3d_TextureProjectorParams[i].y);if(any(greaterThan(abs(texCoord.stp-0.5),vec3(0.5))))continue;vec3 p=x3d_TextureProjectorLocation[i]-vertex;if(dot(N,p)<0.0)continue;vec4 T=getTextureProjectorTexture(i,texCoord.st);
93493
93591
  #if defined(X3D_COLORSPACE_SRGB)
93494
93592
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
93495
93593
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -93710,6 +93808,12 @@ setPointTexCoords();
93710
93808
  setTexCoords();
93711
93809
  #endif
93712
93810
  vec4 finalColor=getMaterialColor();
93811
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93812
+ finalColor.a=1.0;
93813
+ #endif
93814
+ #if defined(X3D_ALPHA_MODE_MASK)
93815
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93816
+ #endif
93713
93817
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93714
93818
  finalColor=getPointColor(finalColor);
93715
93819
  #endif
@@ -93719,12 +93823,6 @@ finalColor=getHatchColor(finalColor);
93719
93823
  #if defined(X3D_FOG)
93720
93824
  finalColor.rgb=getFogColor(finalColor.rgb);
93721
93825
  #endif
93722
- #if defined(X3D_ALPHA_MODE_OPAQUE)
93723
- finalColor.a=1.0;
93724
- #endif
93725
- #if defined(X3D_ALPHA_MODE_MASK)
93726
- if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93727
- #endif
93728
93826
  finalColor.rgb=toneMap(finalColor.rgb);
93729
93827
  #if defined(X3D_ORDER_INDEPENDENT_TRANSPARENCY)
93730
93828
  float a=finalColor.a;float w=weight(gl_FragCoord.z,a);finalColor.rgb*=a;finalColor*=w;x3d_FragData0=vec4(finalColor.rgb,a);x3d_FragData1=vec4(finalColor.a);
@@ -93809,7 +93907,10 @@ t=normalize(TBN[0]);b=normalize(TBN[1]);ng=normalize(TBN[2]);
93809
93907
  #else
93810
93908
  vec2 uv_dx=dFdx(UV.st);vec2 uv_dy=dFdy(UV.st);if(length(uv_dx)<=1e-2)uv_dx=vec2(1.0,0.0);if(length(uv_dy)<=1e-2)uv_dy=vec2(0.0,1.0);vec3 t_=(uv_dy.t*dFdx(vertex)-uv_dx.t*dFdy(vertex))/(uv_dx.s*uv_dy.t-uv_dy.s*uv_dx.t);ng=normalize(normal);t=normalize(t_-ng*dot(ng,t_));b=cross(ng,t);
93811
93909
  #endif
93812
- if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}NormalInfo info;info.ng=ng;
93910
+ #if defined(X3D_GEOMETRY_2D)||defined(X3D_GEOMETRY_3D)
93911
+ if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}
93912
+ #endif
93913
+ NormalInfo info;info.ng=ng;
93813
93914
  #if defined(X3D_NORMAL_TEXTURE)
93814
93915
  #if __VERSION__==100
93815
93916
  #if defined(X3D_NORMAL_TEXTURE_2D)
@@ -93869,6 +93970,7 @@ float rand(const in vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*4
93869
93970
  const Point2_glsl_default_ = /* glsl */ `
93870
93971
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93871
93972
  #if defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES)
93973
+ #if!defined(X3D_DEPTH_SHADER)
93872
93974
  void setPointTexCoords(){vec4 texCoord=vec4(gl_PointCoord.x,1.0-gl_PointCoord.y,0.0,1.0);
93873
93975
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93874
93976
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
@@ -93880,14 +93982,15 @@ texCoords [${i}] = texCoord;
93880
93982
  #endif
93881
93983
  `) .join ("\n")}
93882
93984
  }
93985
+ #endif
93883
93986
  #define getPointColor(color)(color)
93884
93987
  #else
93885
- #define setPointTexCoords()
93886
93988
  #if __VERSION__==100
93887
93989
  varying float pointSize;
93888
93990
  #else
93889
93991
  in float pointSize;
93890
93992
  #endif
93993
+ #define setPointTexCoords()
93891
93994
  vec4 getPointColor(in vec4 color){if(pointSize>1.0)color.a*=clamp(pointSize*(0.5-distance(vec2(0.5),gl_PointCoord)),0.0,1.0);else color.a*=pointSize;return color;}
93892
93995
  #endif
93893
93996
  #endif
@@ -94040,7 +94143,43 @@ ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
94040
94143
  texCoords [${i}] = texCoord${i};
94041
94144
  #endif
94042
94145
  `) .join ("\n")}
94043
- }uniform mat4 x3d_TextureMatrix[X3D_NUM_TEXTURE_TRANSFORMS];vec4 getTexCoord(const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator,const in int textureTransformMapping,const in int textureCoordinateMapping){int mode=textureCoordinateGenerator.mode;switch(mode){case x3d_None:{return x3d_TextureMatrix[textureTransformMapping]*texCoords[textureCoordinateMapping];}case x3d_Sphere:{vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;return vec4(N*0.5+0.5,0.0,1.0);}case x3d_CameraSpaceNormal:{vec3 N=normalize(gl_FrontFacing?normal:-normal);return vec4(N,1.0);}case x3d_CameraSpacePosition:{return vec4(vertex,1.0);}case x3d_CameraSpaceReflectionVector:{vec3 N=normalize(gl_FrontFacing?normal:-normal);return vec4(reflect(normalize(vertex),-N),1.0);}case x3d_SphereLocal:{vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;return vec4(N*0.5+0.5,0.0,1.0);}case x3d_Coord:{return vec4(localVertex,1.0);}case x3d_CoordEye:{return vec4(vertex,1.0);}case x3d_Noise:{vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(localVertex*scale+translation),1.0);}case x3d_NoiseEye:{vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(vertex*scale+translation),1.0);}case x3d_SphereReflect:{vec3 N=normalize(gl_FrontFacing?normal:-normal);float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}case x3d_SphereReflectLocal:{vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);float eta=textureCoordinateGenerator.parameter[0];vec3 eye=vec3(textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2],textureCoordinateGenerator.parameter[3]);return vec4(refract(normalize(localVertex-eye),-N,eta),1.0);}default:{return x3d_TextureMatrix[textureTransformMapping]*texCoords[textureCoordinateMapping];}}}uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator[X3D_NUM_TEXTURE_COORDINATES];vec3 getTexCoord(const in int textureTransformMapping,const in int textureCoordinateMapping){vec4 texCoord=getTexCoord(x3d_TextureCoordinateGenerator[textureCoordinateMapping],textureTransformMapping,textureCoordinateMapping);texCoord.stp/=texCoord.q;
94146
+ }uniform mat4 x3d_TextureMatrix[X3D_NUM_TEXTURE_TRANSFORMS];vec4 getTexCoord(const in x3d_TextureCoordinateGeneratorParameters textureCoordinateGenerator,const in int textureTransformMapping,const in int textureCoordinateMapping){int mode=textureCoordinateGenerator.mode;switch(mode){case x3d_None:{return x3d_TextureMatrix[textureTransformMapping]*texCoords[textureCoordinateMapping];}case x3d_Sphere:{
94147
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94148
+ vec2 N=normalize(normal).xy;
94149
+ #else
94150
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
94151
+ #endif
94152
+ return vec4(N*0.5+0.5,0.0,1.0);}case x3d_CameraSpaceNormal:{
94153
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94154
+ vec3 N=normalize(normal);
94155
+ #else
94156
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94157
+ #endif
94158
+ return vec4(N,1.0);}case x3d_CameraSpacePosition:{return vec4(vertex,1.0);}case x3d_CameraSpaceReflectionVector:{
94159
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94160
+ vec3 N=normalize(normal);
94161
+ #else
94162
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94163
+ #endif
94164
+ return vec4(reflect(normalize(vertex),-N),1.0);}case x3d_SphereLocal:{
94165
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94166
+ vec2 N=normalize(localNormal).xy;
94167
+ #else
94168
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
94169
+ #endif
94170
+ return vec4(N*0.5+0.5,0.0,1.0);}case x3d_Coord:{return vec4(localVertex,1.0);}case x3d_CoordEye:{return vec4(vertex,1.0);}case x3d_Noise:{vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(localVertex*scale+translation),1.0);}case x3d_NoiseEye:{vec3 scale=vec3(textureCoordinateGenerator.parameter[0],textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2]);vec3 translation=vec3(textureCoordinateGenerator.parameter[3],textureCoordinateGenerator.parameter[4],textureCoordinateGenerator.parameter[5]);return vec4(perlin(vertex*scale+translation),1.0);}case x3d_SphereReflect:{
94171
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94172
+ vec3 N=normalize(normal);
94173
+ #else
94174
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94175
+ #endif
94176
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}case x3d_SphereReflectLocal:{
94177
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94178
+ vec3 N=normalize(localNormal);
94179
+ #else
94180
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
94181
+ #endif
94182
+ float eta=textureCoordinateGenerator.parameter[0];vec3 eye=vec3(textureCoordinateGenerator.parameter[1],textureCoordinateGenerator.parameter[2],textureCoordinateGenerator.parameter[3]);return vec4(refract(normalize(localVertex-eye),-N,eta),1.0);}default:{return x3d_TextureMatrix[textureTransformMapping]*texCoords[textureCoordinateMapping];}}}uniform x3d_TextureCoordinateGeneratorParameters x3d_TextureCoordinateGenerator[X3D_NUM_TEXTURE_COORDINATES];vec3 getTexCoord(const in int textureTransformMapping,const in int textureCoordinateMapping){vec4 texCoord=getTexCoord(x3d_TextureCoordinateGenerator[textureCoordinateMapping],textureTransformMapping,textureCoordinateMapping);texCoord.stp/=texCoord.q;
94044
94183
  #if defined(X3D_GEOMETRY_2D)
94045
94184
  if(gl_FrontFacing==false)texCoord.s=1.0-texCoord.s;
94046
94185
  #endif
@@ -94102,7 +94241,13 @@ textureColor = texture (x3d_TextureProjectorTexture [${i}], texCoord);
94102
94241
  break;
94103
94242
  #endif
94104
94243
  `) .join ("\n")}
94105
- }return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);vec3 N=gl_FrontFacing?normal:-normal;for(int i=0;i<X3D_NUM_TEXTURE_PROJECTORS;++i){vec4 texCoord=x3d_TextureProjectorMatrix[i]*vec4(vertex,1.0);texCoord.stp/=texCoord.q;texCoord.p=clamp(texCoord.p,x3d_TextureProjectorParams[i].x,x3d_TextureProjectorParams[i].y);if(any(greaterThan(abs(texCoord.stp-0.5),vec3(0.5))))continue;vec3 p=x3d_TextureProjectorLocation[i]-vertex;if(dot(N,p)<0.0)continue;vec4 T=getTextureProjectorTexture(i,texCoord.st);
94244
+ }return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
94245
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94246
+ vec3 N=normal;
94247
+ #else
94248
+ vec3 N=gl_FrontFacing?normal:-normal;
94249
+ #endif
94250
+ for(int i=0;i<X3D_NUM_TEXTURE_PROJECTORS;++i){vec4 texCoord=x3d_TextureProjectorMatrix[i]*vec4(vertex,1.0);texCoord.stp/=texCoord.q;texCoord.p=clamp(texCoord.p,x3d_TextureProjectorParams[i].x,x3d_TextureProjectorParams[i].y);if(any(greaterThan(abs(texCoord.stp-0.5),vec3(0.5))))continue;vec3 p=x3d_TextureProjectorLocation[i]-vertex;if(dot(N,p)<0.0)continue;vec4 T=getTextureProjectorTexture(i,texCoord.st);
94106
94251
  #if defined(X3D_COLORSPACE_SRGB)
94107
94252
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
94108
94253
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -94270,8 +94415,10 @@ void main(){
94270
94415
  clip();
94271
94416
  #endif
94272
94417
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94418
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94273
94419
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94274
94420
  #endif
94421
+ #endif
94275
94422
  gl_FragColor=vec4(gl_FragCoord.z);}`
94276
94423
  ;
94277
94424
 
@@ -94531,8 +94678,10 @@ void main(){
94531
94678
  clip();
94532
94679
  #endif
94533
94680
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94681
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94534
94682
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94535
94683
  #endif
94684
+ #endif
94536
94685
  x3d_FragColor=vec4(gl_FragCoord.z);}`
94537
94686
  ;
94538
94687
 
@@ -95642,7 +95791,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95642
95791
 
95643
95792
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
95644
95793
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95645
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(375);
95794
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(386);
95646
95795
  /*******************************************************************************
95647
95796
  *
95648
95797
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96240,7 +96389,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96240
96389
 
96241
96390
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96242
96391
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96243
- /* provided dependency */ var Appearance_$ = __webpack_require__(375);
96392
+ /* provided dependency */ var Appearance_$ = __webpack_require__(386);
96244
96393
  /*******************************************************************************
96245
96394
  *
96246
96395
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96428,7 +96577,7 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96428
96577
  },
96429
96578
  set_alphaMode__ ()
96430
96579
  {
96431
- this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue (), Shape_AlphaMode .AUTO);
96580
+ this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue ()) ?? Shape_AlphaMode .AUTO;
96432
96581
 
96433
96582
  this .set_alphaCutoff__ ();
96434
96583
  },
@@ -104475,8 +104624,8 @@ const GifMedia_default_ = GifMedia;
104475
104624
 
104476
104625
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
104477
104626
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
104478
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(375);
104479
- /* provided dependency */ var SuperGif = __webpack_require__(776);
104627
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(386);
104628
+ /* provided dependency */ var SuperGif = __webpack_require__(141);
104480
104629
  /*******************************************************************************
104481
104630
  *
104482
104631
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106944,7 +107093,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
106944
107093
 
106945
107094
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
106946
107095
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106947
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(375);
107096
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(386);
106948
107097
  /*******************************************************************************
106949
107098
  *
106950
107099
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107574,7 +107723,7 @@ const TextCompression_default_ = TextCompression;
107574
107723
 
107575
107724
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
107576
107725
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107577
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(375);
107726
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(386);
107578
107727
  /*******************************************************************************
107579
107728
  *
107580
107729
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107807,7 +107956,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107807
107956
  primitiveQuality = value .getValue () .toUpperCase ();
107808
107957
 
107809
107958
  this .localStorage .PrimitiveQuality = primitiveQuality;
107810
- this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality, Core_PrimitiveQuality .MEDIUM);
107959
+ this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality) ?? Core_PrimitiveQuality .MEDIUM;
107811
107960
 
107812
107961
  if (typeof browser .setPrimitiveQuality2D === "function")
107813
107962
  browser .setPrimitiveQuality2D (this .primitiveQuality);
@@ -107822,7 +107971,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107822
107971
  textureQuality = value .getValue () .toUpperCase ();
107823
107972
 
107824
107973
  this .localStorage .TextureQuality = textureQuality;
107825
- this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality, Core_TextureQuality .MEDIUM);
107974
+ this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality) ?? Core_TextureQuality .MEDIUM;
107826
107975
 
107827
107976
  if (typeof browser .setTextureQuality === "function")
107828
107977
  browser .setTextureQuality (this .textureQuality);
@@ -107843,7 +107992,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107843
107992
  browser = this .getBrowser (),
107844
107993
  shading = value .getValue () .toUpperCase () .replace ("POINTSET", "POINT");
107845
107994
 
107846
- this .shading = BrowserOptions_$.enum (Core_Shading, shading, Core_Shading .GOURAUD);
107995
+ this .shading = BrowserOptions_$.enum (Core_Shading, shading) ?? Core_Shading .GOURAUD;
107847
107996
 
107848
107997
  browser .getRenderingProperties () ._Shading = strings [this .shading];
107849
107998
  browser .setShading (this .shading);
@@ -108221,7 +108370,7 @@ const RenderingProperties_default_ = RenderingProperties;
108221
108370
 
108222
108371
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108223
108372
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
108224
- /* provided dependency */ var Notification_$ = __webpack_require__(375);
108373
+ /* provided dependency */ var Notification_$ = __webpack_require__(386);
108225
108374
  /*******************************************************************************
108226
108375
  *
108227
108376
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108343,8 +108492,8 @@ const Notification_default_ = Notification;
108343
108492
 
108344
108493
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108345
108494
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
108346
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(123);
108347
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(375);
108495
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(306);
108496
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(386);
108348
108497
  /*******************************************************************************
108349
108498
  *
108350
108499
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111079,7 +111228,7 @@ const DataStorage_default_ = DataStorage;
111079
111228
 
111080
111229
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111081
111230
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
111082
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(375);
111231
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(386);
111083
111232
  /*******************************************************************************
111084
111233
  *
111085
111234
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113690,8 +113839,8 @@ const X3DViewer_default_ = X3DViewer;
113690
113839
 
113691
113840
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
113692
113841
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
113693
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(415);
113694
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(375);
113842
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(336);
113843
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(386);
113695
113844
  /*******************************************************************************
113696
113845
  *
113697
113846
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114606,8 +114755,8 @@ const ExamineViewer_default_ = ExamineViewer;
114606
114755
 
114607
114756
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
114608
114757
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
114609
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(415);
114610
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(375);
114758
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(336);
114759
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(386);
114611
114760
  /*******************************************************************************
114612
114761
  *
114613
114762
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115622,8 +115771,8 @@ const FlyViewer_default_ = FlyViewer;
115622
115771
 
115623
115772
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
115624
115773
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
115625
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(415);
115626
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(375);
115774
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(336);
115775
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(386);
115627
115776
  /*******************************************************************************
115628
115777
  *
115629
115778
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115952,8 +116101,8 @@ const NoneViewer_default_ = NoneViewer;
115952
116101
 
115953
116102
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
115954
116103
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
115955
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(415);
115956
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(375);
116104
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(336);
116105
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(386);
115957
116106
  /*******************************************************************************
115958
116107
  *
115959
116108
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117098,8 +117247,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117098
117247
 
117099
117248
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117100
117249
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
117101
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(415);
117102
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(375);
117250
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(336);
117251
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(386);
117103
117252
  /*******************************************************************************
117104
117253
  *
117105
117254
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117952,6 +118101,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117952
118101
  geometryContext = shapeNode .getGeometryContext (),
117953
118102
  options = [ ];
117954
118103
 
118104
+ options .push ("X3D_DEPTH_SHADER");
118105
+
117955
118106
  if (geometryContext .hasNormals)
117956
118107
  options .push ("X3D_NORMALS");
117957
118108
 
@@ -117977,6 +118128,12 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117977
118128
  if (appearanceNode .getStyleProperties (geometryContext .geometryType))
117978
118129
  options .push ("X3D_STYLE_PROPERTIES");
117979
118130
 
118131
+ if (+appearanceNode .getMaterial () .getTextureBits ())
118132
+ options .push ("X3D_MATERIAL_TEXTURES");
118133
+
118134
+ if (+appearanceNode .getTextureBits ())
118135
+ options .push ("X3D_TEXTURE");
118136
+
117980
118137
  if (humanoidNode)
117981
118138
  {
117982
118139
  options .push ("X3D_SKINNING");
@@ -118538,7 +118695,7 @@ const Lock_default_ = Lock;
118538
118695
 
118539
118696
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
118540
118697
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
118541
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(375);
118698
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(386);
118542
118699
  /*******************************************************************************
118543
118700
  *
118544
118701
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118652,6 +118809,7 @@ Object .assign (X3DRenderingContext .prototype,
118652
118809
  gl .enable (gl .DEPTH_TEST);
118653
118810
  gl .depthFunc (gl .LEQUAL);
118654
118811
  gl .clearDepth (1);
118812
+ gl .sampleCoverage (1.0, false);
118655
118813
 
118656
118814
  gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
118657
118815
  gl .blendEquationSeparate (gl .FUNC_ADD, gl .FUNC_ADD);
@@ -119322,13 +119480,12 @@ const X3DScriptingContext_default_ = X3DScriptingContext;
119322
119480
 
119323
119481
 
119324
119482
  const
119325
- _wireframe = Symbol (),
119326
119483
  _primitiveModes = Symbol (),
119327
- _shaderNodes = Symbol ();
119484
+ _shaderNodes = Symbol (),
119485
+ _wireframe = Symbol ();
119328
119486
 
119329
119487
  function X3DShadersContext ()
119330
119488
  {
119331
- this [_wireframe] = false;
119332
119489
  this [_primitiveModes] = new Map ();
119333
119490
  this [_shaderNodes] = new Map ();
119334
119491
  }
@@ -119369,10 +119526,6 @@ Object .assign (X3DShadersContext .prototype,
119369
119526
 
119370
119527
  return gl .getParameter (gl .MAX_VARYING_VECTORS);
119371
119528
  },
119372
- getWireframe ()
119373
- {
119374
- return this [_wireframe];
119375
- },
119376
119529
  getPrimitiveMode (primitiveMode)
119377
119530
  {
119378
119531
  return this [_primitiveModes] .get (primitiveMode);
@@ -119383,26 +119536,43 @@ Object .assign (X3DShadersContext .prototype,
119383
119536
  },
119384
119537
  setShading (type)
119385
119538
  {
119386
- const gl = this .getContext ();
119539
+ const
119540
+ gl = this .getContext (),
119541
+ primitiveModes = this [_primitiveModes];
119542
+
119543
+ if (this [_wireframe])
119544
+ {
119545
+ this [_wireframe] = false;
119546
+
119547
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119548
+
119549
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .FILL_WEBGL);
119550
+ }
119387
119551
 
119388
119552
  switch (type)
119389
119553
  {
119390
119554
  case Core_Shading .POINT:
119391
119555
  {
119392
- this [_wireframe] = false;
119556
+ primitiveModes
119557
+ .set (gl .POINTS, gl .POINTS)
119558
+ .set (gl .LINES, gl .POINTS)
119559
+ .set (gl .TRIANGLES, gl .POINTS);
119393
119560
 
119394
- this [_primitiveModes] .set (gl .POINTS, gl .POINTS);
119395
- this [_primitiveModes] .set (gl .LINES, gl .POINTS);
119396
- this [_primitiveModes] .set (gl .TRIANGLES, gl .POINTS);
119397
119561
  break;
119398
119562
  }
119399
119563
  case Core_Shading .WIREFRAME:
119400
119564
  {
119401
119565
  this [_wireframe] = true;
119402
119566
 
119403
- this [_primitiveModes] .set (gl .POINTS, gl .POINTS);
119404
- this [_primitiveModes] .set (gl .LINES, gl .LINES);
119405
- this [_primitiveModes] .set (gl .TRIANGLES, gl .LINE_LOOP);
119567
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119568
+
119569
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .LINE_WEBGL);
119570
+
119571
+ primitiveModes
119572
+ .set (gl .POINTS, gl .POINTS)
119573
+ .set (gl .LINES, gl .LINES)
119574
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119575
+
119406
119576
  break;
119407
119577
  }
119408
119578
  default:
@@ -119411,15 +119581,19 @@ Object .assign (X3DShadersContext .prototype,
119411
119581
  // case Shading .GOURAUD:
119412
119582
  // case Shading .PHONG:
119413
119583
 
119414
- this [_wireframe] = false;
119415
-
119416
- this [_primitiveModes] .set (gl .POINTS, gl .POINTS);
119417
- this [_primitiveModes] .set (gl .LINES, gl .LINES);
119418
- this [_primitiveModes] .set (gl .TRIANGLES, gl .TRIANGLES);
119584
+ primitiveModes
119585
+ .set (gl .POINTS, gl .POINTS)
119586
+ .set (gl .LINES, gl .LINES)
119587
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119588
+
119419
119589
  break;
119420
119590
  }
119421
119591
  }
119422
119592
  },
119593
+ getWireframe ()
119594
+ {
119595
+ return this [_wireframe];
119596
+ },
119423
119597
  createShader (name, vs, fs = vs, options = [ ], uniformNames = [ ], transformFeedbackVaryings = [ ])
119424
119598
  {
119425
119599
  if (DEVELOPMENT)
@@ -119844,7 +120018,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
119844
120018
 
119845
120019
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
119846
120020
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
119847
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(375);
120021
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(386);
119848
120022
  const KTXDecoder_default_ = class KTXDecoder
119849
120023
  {
119850
120024
  constructor (gl, externalKtxlib, scriptDir)
@@ -121421,7 +121595,7 @@ const Components_default_ = Components;
121421
121595
 
121422
121596
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
121423
121597
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
121424
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(375);
121598
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(386);
121425
121599
  /*******************************************************************************
121426
121600
  * MIT License
121427
121601
  *
@@ -122687,7 +122861,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
122687
122861
 
122688
122862
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
122689
122863
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
122690
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(375);
122864
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(386);
122691
122865
  /*******************************************************************************
122692
122866
  *
122693
122867
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -123754,7 +123928,7 @@ const X3DBrowser_default_ = X3DBrowser;
123754
123928
 
123755
123929
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
123756
123930
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
123757
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(375);
123931
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(386);
123758
123932
  /*******************************************************************************
123759
123933
  *
123760
123934
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124021,8 +124195,8 @@ const QuickSort_default_ = QuickSort;
124021
124195
 
124022
124196
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124023
124197
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124024
- /* provided dependency */ var jquery_$ = __webpack_require__(375);
124025
- /* provided dependency */ var pako = __webpack_require__(671);
124198
+ /* provided dependency */ var jquery_$ = __webpack_require__(386);
124199
+ /* provided dependency */ var pako = __webpack_require__(514);
124026
124200
  Object .assign (jquery_$,
124027
124201
  {
124028
124202
  decodeText (input)
@@ -124059,9 +124233,10 @@ Object .assign (jquery_$,
124059
124233
  console .error (error .message);
124060
124234
  }
124061
124235
  },
124062
- enum (object, property, defaultValue)
124236
+ enum (object, property)
124063
124237
  {
124064
- return object .hasOwnProperty (property) ? object [property] : defaultValue;
124238
+ if (object .hasOwnProperty (property))
124239
+ return object [property];
124065
124240
  },
124066
124241
  });
124067
124242
 
@@ -124098,13 +124273,13 @@ const jquery_default_ = jquery_$;
124098
124273
 
124099
124274
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124100
124275
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
124101
- /* provided dependency */ var libtess_libtess = __webpack_require__(660);
124276
+ /* provided dependency */ var libtess_libtess = __webpack_require__(475);
124102
124277
  const libtess_default_ = libtess_libtess;
124103
124278
  ;
124104
124279
 
124105
124280
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124106
124281
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
124107
- /* provided dependency */ var X3D_$ = __webpack_require__(375);
124282
+ /* provided dependency */ var X3D_$ = __webpack_require__(386);
124108
124283
  /*******************************************************************************
124109
124284
  *
124110
124285
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124408,7 +124583,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
124408
124583
 
124409
124584
  // Assign X3D to global namespace.
124410
124585
 
124411
- window [Symbol .for ("X_ITE.X3D-10.4.2")] = x_ite_X3D;
124586
+ window [Symbol .for ("X_ITE.X3D-10.5.0")] = x_ite_X3D;
124412
124587
 
124413
124588
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
124414
124589