x_ite 10.4.2 → 10.5.1

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 +492 -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 +492 -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.1 */
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
+ /***/ 530:
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__(962);
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
+ /***/ 952:
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__(962)], __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
+ /***/ 962:
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
+ /***/ 459:
11164
11164
  /***/ ((module) => {
11165
11165
 
11166
11166
  /**
@@ -15939,7 +15939,7 @@ if (true) {
15939
15939
 
15940
15940
  /***/ }),
15941
15941
 
15942
- /***/ 671:
15942
+ /***/ 58:
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
+ /***/ 346:
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.1")];
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__(962);
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.1";
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__(459);
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__(962);
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__(962);
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__(962);
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__(962);
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__(962);
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__(962);
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__(962);
52164
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(459);
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__(962);
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 ();
60202
-
60203
- const array = [ ];
60252
+ #typedArray = new Float32Array ();
60204
60253
 
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__(962);
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__(962);
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__(962);
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
  {
@@ -69092,6 +69144,15 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
69092
69144
 
69093
69145
  throw new Error ("Root node not available.");
69094
69146
  },
69147
+ isDefaultValue (field)
69148
+ {
69149
+ const protoNode = this [_protoNode];
69150
+
69151
+ if (protoNode .isExternProto && protoNode .checkLoadState () !== Base_X3DConstants .COMPLETE_STATE)
69152
+ return field .getModificationTime () === 0;
69153
+
69154
+ return Core_X3DNode .prototype .isDefaultValue .call (this, field);
69155
+ },
69095
69156
  importExternProtos (externprotos1)
69096
69157
  {
69097
69158
  const externprotos2 = this [X3DPrototypeInstance_body] .externprotos;
@@ -73847,17 +73908,18 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73847
73908
  return function ()
73848
73909
  {
73849
73910
  const
73850
- options = this .getBrowser () .getBoxOptions (),
73851
- geometry = options .getGeometry (),
73852
- size = this ._size .getValue ();
73911
+ options = this .getBrowser () .getBoxOptions (),
73912
+ geometry = options .getGeometry (),
73913
+ size = this ._size .getValue (),
73914
+ vertexArray = this .getVertices ();
73853
73915
 
73854
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
73855
- this .setTangents (geometry .getTangents ());
73856
- this .setNormals (geometry .getNormals ());
73916
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
73917
+ this .getTangents () .assign (geometry .getTangents ());
73918
+ this .getNormals () .assign (geometry .getNormals ());
73857
73919
 
73858
73920
  if (size .equals (defaultSize))
73859
73921
  {
73860
- this .setVertices (geometry .getVertices ());
73922
+ vertexArray .assign (geometry .getVertices ());
73861
73923
 
73862
73924
  this .getMin () .assign (geometry .getMin ());
73863
73925
  this .getMax () .assign (geometry .getMax ());
@@ -73868,8 +73930,7 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73868
73930
  x = Math .abs (size .x / 2),
73869
73931
  y = Math .abs (size .y / 2),
73870
73932
  z = Math .abs (size .z / 2),
73871
- defaultVertices = geometry .getVertices () .getValue (),
73872
- vertexArray = this .getVertices ();
73933
+ defaultVertices = geometry .getVertices () .getValue ();
73873
73934
 
73874
73935
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
73875
73936
  {
@@ -74887,11 +74948,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74887
74948
  SCPyAxis = new Numbers_Vector3 (),
74888
74949
  SCPzAxis = new Numbers_Vector3 ();
74889
74950
 
74890
- const
74951
+ const
74891
74952
  SCPyAxisPrevious = new Numbers_Vector3 (),
74892
74953
  SCPzAxisPrevious = new Numbers_Vector3 ();
74893
74954
 
74894
- const
74955
+ const
74895
74956
  vector3 = new Numbers_Vector3 (),
74896
74957
  rotation = new Numbers_Rotation4 ();
74897
74958
 
@@ -74937,8 +74998,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74937
74998
  for (let i = 0, length = numSpines - 2; i < length; ++ i)
74938
74999
  {
74939
75000
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74940
- .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
74941
- .normalize ();
75001
+ .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
75002
+ .normalize ();
74942
75003
 
74943
75004
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74944
75005
  break;
@@ -74959,8 +75020,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74959
75020
  for (let i = 1, length = numSpines - 1; i < length; ++ i)
74960
75021
  {
74961
75022
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74962
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
74963
- .normalize ();
75023
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
75024
+ .normalize ();
74964
75025
 
74965
75026
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74966
75027
  break;
@@ -74996,11 +75057,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74996
75057
  const s = spine [i] .getValue ();
74997
75058
 
74998
75059
  SCPyAxis .assign (spine [i + 1] .getValue ()) .subtract (s) .normalize ()
74999
- .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
75000
- .normalize ();
75060
+ .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
75061
+ .normalize ();
75001
75062
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (s)
75002
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
75003
- .normalize ();
75063
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
75064
+ .normalize ();
75004
75065
 
75005
75066
  // g.
75006
75067
  if (SCPzAxisPrevious .dot (SCPzAxis) < 0)
@@ -75042,8 +75103,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75042
75103
  if (numSpines > 2)
75043
75104
  {
75044
75105
  SCPzAxis .assign (s) .subtract (spine [numSpines - 2] .getValue ())
75045
- .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75046
- .normalize ();
75106
+ .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75107
+ .normalize ();
75047
75108
  }
75048
75109
 
75049
75110
  // g.
@@ -76337,26 +76398,25 @@ Object .assign (Object .setPrototypeOf (Sphere .prototype, Rendering_X3DGeometry
76337
76398
  build ()
76338
76399
  {
76339
76400
  const
76340
- options = this .getBrowser () .getSphereOptions (),
76341
- geometry = options .getGeometry (),
76342
- radius = Math .abs (this ._radius .getValue ());
76401
+ options = this .getBrowser () .getSphereOptions (),
76402
+ geometry = options .getGeometry (),
76403
+ radius = Math .abs (this ._radius .getValue ()),
76404
+ vertexArray = this .getVertices ();
76343
76405
 
76344
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
76345
- this .setTangents (geometry .getTangents ());
76346
- this .setNormals (geometry .getNormals ());
76406
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
76407
+ this .getTangents () .assign (geometry .getTangents ());
76408
+ this .getNormals () .assign (geometry .getNormals ());
76347
76409
 
76348
76410
  if (radius === 1)
76349
76411
  {
76350
- this .setVertices (geometry .getVertices ());
76412
+ vertexArray .assign (geometry .getVertices ());
76351
76413
 
76352
76414
  this .getMin () .assign (geometry .getMin ());
76353
76415
  this .getMax () .assign (geometry .getMax ());
76354
76416
  }
76355
76417
  else
76356
76418
  {
76357
- const
76358
- defaultVertices = geometry .getVertices () .getValue (),
76359
- vertexArray = this .getVertices ();
76419
+ const defaultVertices = geometry .getVertices () .getValue ();
76360
76420
 
76361
76421
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
76362
76422
  {
@@ -76838,7 +76898,6 @@ function X3DPointGeometryNode (executionContext)
76838
76898
  this .setGeometryType (0);
76839
76899
  this .setPrimitiveMode (browser .getContext () .POINTS);
76840
76900
  this .setSolid (false);
76841
- this .setTransparent (true);
76842
76901
  }
76843
76902
 
76844
76903
  Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Rendering_X3DGeometryNode .prototype),
@@ -76862,6 +76921,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76862
76921
  attribNodes = this .getAttrib (),
76863
76922
  attribBuffers = this .getAttribBuffers ();
76864
76923
 
76924
+ if (!renderContext .transparent)
76925
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76926
+
76865
76927
  for (const node of renderModeNodes)
76866
76928
  node .enable (gl);
76867
76929
 
@@ -76899,6 +76961,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76899
76961
 
76900
76962
  for (const node of renderModeNodes)
76901
76963
  node .disable (gl);
76964
+
76965
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76902
76966
  },
76903
76967
  displayInstanced (gl, renderContext, shapeNode)
76904
76968
  {
@@ -76909,6 +76973,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76909
76973
  attribNodes = this .getAttrib (),
76910
76974
  attribBuffers = this .getAttribBuffers ();
76911
76975
 
76976
+ if (!renderContext .transparent)
76977
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76978
+
76912
76979
  for (const node of renderModeNodes)
76913
76980
  node .enable (gl);
76914
76981
 
@@ -76965,6 +77032,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76965
77032
 
76966
77033
  for (const node of renderModeNodes)
76967
77034
  node .disable (gl);
77035
+
77036
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76968
77037
  },
76969
77038
  });
76970
77039
 
@@ -77434,7 +77503,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77434
77503
  renderObject = renderContext .renderObject,
77435
77504
  viewport = renderObject .getViewVolume () .getViewport (),
77436
77505
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77437
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77506
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77438
77507
  transformShaderNode = browser .getLineTransformShader ();
77439
77508
 
77440
77509
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -77652,7 +77721,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77652
77721
  renderObject = renderContext .renderObject,
77653
77722
  viewport = renderObject .getViewVolume () .getViewport (),
77654
77723
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77655
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77724
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77656
77725
  transformShaderNode = browser .getLineTransformInstancedShader ();
77657
77726
 
77658
77727
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -90473,7 +90542,7 @@ mediump samplerCube textureCube;
90473
90542
 
90474
90543
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90475
90544
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90476
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(375);
90545
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(962);
90477
90546
  /*******************************************************************************
90478
90547
  *
90479
90548
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90777,8 +90846,10 @@ Object .assign (X3DProgrammableShaderObject .prototype,
90777
90846
  {
90778
90847
  const uniform = gl .getUniformLocation (program, "x3d_TextureMatrix[" + i + "]");
90779
90848
 
90780
- if (uniform !== null)
90781
- this .x3d_TextureMatrix [i] = uniform;
90849
+ if (uniform === null)
90850
+ break;
90851
+
90852
+ this .x3d_TextureMatrix [i] = uniform;
90782
90853
  }
90783
90854
 
90784
90855
  for (let i = 0; i < maxTexCoords; ++ i)
@@ -93301,12 +93372,6 @@ const ShaderSource_default_ = ShaderSource;
93301
93372
 
93302
93373
 
93303
93374
  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
93375
  #if defined(X3D_ALPHA_MODE_MASK)
93311
93376
  uniform float x3d_AlphaCutoff;
93312
93377
  #endif
@@ -93368,6 +93433,12 @@ clip();
93368
93433
  setPointTexCoords();
93369
93434
  #endif
93370
93435
  vec4 finalColor=getMaterialColor();
93436
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93437
+ finalColor.a=1.0;
93438
+ #endif
93439
+ #if defined(X3D_ALPHA_MODE_MASK)
93440
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93441
+ #endif
93371
93442
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93372
93443
  finalColor=getPointColor(finalColor);
93373
93444
  #endif
@@ -93377,12 +93448,6 @@ finalColor=getHatchColor(finalColor);
93377
93448
  #if defined(X3D_FOG)
93378
93449
  finalColor.rgb=getFogColor(finalColor.rgb);
93379
93450
  #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
93451
  finalColor.rgb=toneMap(finalColor.rgb);gl_FragColor=finalColor;
93387
93452
  #if defined(X3D_LOGARITHMIC_DEPTH_BUFFER)
93388
93453
  gl_FragDepthEXT=log2(depth)*x3d_LogarithmicFarFactor1_2;
@@ -93423,7 +93488,43 @@ return texCoord;
93423
93488
  #else
93424
93489
  return texCoord0;
93425
93490
  #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;
93491
+ }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){
93492
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93493
+ vec2 N=normalize(normal).xy;
93494
+ #else
93495
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
93496
+ #endif
93497
+ return vec4(N*0.5+0.5,0.0,1.0);}else if(mode==x3d_CameraSpaceNormal){
93498
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93499
+ vec3 N=normalize(normal);
93500
+ #else
93501
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93502
+ #endif
93503
+ return vec4(N,1.0);}else if(mode==x3d_CameraSpacePosition){return vec4(vertex,1.0);}else if(mode==x3d_CameraSpaceReflectionVector){
93504
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93505
+ vec3 N=normalize(normal);
93506
+ #else
93507
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93508
+ #endif
93509
+ return vec4(reflect(normalize(vertex),-N),1.0);}else if(mode==x3d_SphereLocal){
93510
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93511
+ vec2 N=normalize(localNormal).xy;
93512
+ #else
93513
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
93514
+ #endif
93515
+ 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){
93516
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93517
+ vec3 N=normalize(normal);
93518
+ #else
93519
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93520
+ #endif
93521
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}else if(mode==x3d_SphereReflectLocal){
93522
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93523
+ vec3 N=normalize(localNormal);
93524
+ #else
93525
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
93526
+ #endif
93527
+ 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
93528
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93428
93529
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
93429
93530
  ${i === 0 ? "" : "else"} if (textureCoordinateMapping == ${i})
@@ -93489,7 +93590,13 @@ textureColor = texture2D (x3d_TextureProjectorTexture [${i}], texCoord);
93489
93590
  }
93490
93591
  #endif
93491
93592
  `) .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);
93593
+ return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
93594
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93595
+ vec3 N=normal;
93596
+ #else
93597
+ vec3 N=gl_FrontFacing?normal:-normal;
93598
+ #endif
93599
+ 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
93600
  #if defined(X3D_COLORSPACE_SRGB)
93494
93601
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
93495
93602
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -93710,6 +93817,12 @@ setPointTexCoords();
93710
93817
  setTexCoords();
93711
93818
  #endif
93712
93819
  vec4 finalColor=getMaterialColor();
93820
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93821
+ finalColor.a=1.0;
93822
+ #endif
93823
+ #if defined(X3D_ALPHA_MODE_MASK)
93824
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93825
+ #endif
93713
93826
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93714
93827
  finalColor=getPointColor(finalColor);
93715
93828
  #endif
@@ -93719,12 +93832,6 @@ finalColor=getHatchColor(finalColor);
93719
93832
  #if defined(X3D_FOG)
93720
93833
  finalColor.rgb=getFogColor(finalColor.rgb);
93721
93834
  #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
93835
  finalColor.rgb=toneMap(finalColor.rgb);
93729
93836
  #if defined(X3D_ORDER_INDEPENDENT_TRANSPARENCY)
93730
93837
  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 +93916,10 @@ t=normalize(TBN[0]);b=normalize(TBN[1]);ng=normalize(TBN[2]);
93809
93916
  #else
93810
93917
  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
93918
  #endif
93812
- if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}NormalInfo info;info.ng=ng;
93919
+ #if defined(X3D_GEOMETRY_2D)||defined(X3D_GEOMETRY_3D)
93920
+ if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}
93921
+ #endif
93922
+ NormalInfo info;info.ng=ng;
93813
93923
  #if defined(X3D_NORMAL_TEXTURE)
93814
93924
  #if __VERSION__==100
93815
93925
  #if defined(X3D_NORMAL_TEXTURE_2D)
@@ -93869,6 +93979,7 @@ float rand(const in vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*4
93869
93979
  const Point2_glsl_default_ = /* glsl */ `
93870
93980
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93871
93981
  #if defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES)
93982
+ #if!defined(X3D_DEPTH_SHADER)
93872
93983
  void setPointTexCoords(){vec4 texCoord=vec4(gl_PointCoord.x,1.0-gl_PointCoord.y,0.0,1.0);
93873
93984
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93874
93985
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
@@ -93880,14 +93991,15 @@ texCoords [${i}] = texCoord;
93880
93991
  #endif
93881
93992
  `) .join ("\n")}
93882
93993
  }
93994
+ #endif
93883
93995
  #define getPointColor(color)(color)
93884
93996
  #else
93885
- #define setPointTexCoords()
93886
93997
  #if __VERSION__==100
93887
93998
  varying float pointSize;
93888
93999
  #else
93889
94000
  in float pointSize;
93890
94001
  #endif
94002
+ #define setPointTexCoords()
93891
94003
  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
94004
  #endif
93893
94005
  #endif
@@ -94040,7 +94152,43 @@ ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
94040
94152
  texCoords [${i}] = texCoord${i};
94041
94153
  #endif
94042
94154
  `) .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;
94155
+ }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:{
94156
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94157
+ vec2 N=normalize(normal).xy;
94158
+ #else
94159
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
94160
+ #endif
94161
+ return vec4(N*0.5+0.5,0.0,1.0);}case x3d_CameraSpaceNormal:{
94162
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94163
+ vec3 N=normalize(normal);
94164
+ #else
94165
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94166
+ #endif
94167
+ return vec4(N,1.0);}case x3d_CameraSpacePosition:{return vec4(vertex,1.0);}case x3d_CameraSpaceReflectionVector:{
94168
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94169
+ vec3 N=normalize(normal);
94170
+ #else
94171
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94172
+ #endif
94173
+ return vec4(reflect(normalize(vertex),-N),1.0);}case x3d_SphereLocal:{
94174
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94175
+ vec2 N=normalize(localNormal).xy;
94176
+ #else
94177
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
94178
+ #endif
94179
+ 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:{
94180
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94181
+ vec3 N=normalize(normal);
94182
+ #else
94183
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94184
+ #endif
94185
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}case x3d_SphereReflectLocal:{
94186
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94187
+ vec3 N=normalize(localNormal);
94188
+ #else
94189
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
94190
+ #endif
94191
+ 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
94192
  #if defined(X3D_GEOMETRY_2D)
94045
94193
  if(gl_FrontFacing==false)texCoord.s=1.0-texCoord.s;
94046
94194
  #endif
@@ -94102,7 +94250,13 @@ textureColor = texture (x3d_TextureProjectorTexture [${i}], texCoord);
94102
94250
  break;
94103
94251
  #endif
94104
94252
  `) .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);
94253
+ }return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
94254
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94255
+ vec3 N=normal;
94256
+ #else
94257
+ vec3 N=gl_FrontFacing?normal:-normal;
94258
+ #endif
94259
+ 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
94260
  #if defined(X3D_COLORSPACE_SRGB)
94107
94261
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
94108
94262
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -94270,8 +94424,10 @@ void main(){
94270
94424
  clip();
94271
94425
  #endif
94272
94426
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94427
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94273
94428
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94274
94429
  #endif
94430
+ #endif
94275
94431
  gl_FragColor=vec4(gl_FragCoord.z);}`
94276
94432
  ;
94277
94433
 
@@ -94531,8 +94687,10 @@ void main(){
94531
94687
  clip();
94532
94688
  #endif
94533
94689
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94690
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94534
94691
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94535
94692
  #endif
94693
+ #endif
94536
94694
  x3d_FragColor=vec4(gl_FragCoord.z);}`
94537
94695
  ;
94538
94696
 
@@ -95642,7 +95800,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95642
95800
 
95643
95801
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
95644
95802
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95645
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(375);
95803
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(962);
95646
95804
  /*******************************************************************************
95647
95805
  *
95648
95806
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96240,7 +96398,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96240
96398
 
96241
96399
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96242
96400
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96243
- /* provided dependency */ var Appearance_$ = __webpack_require__(375);
96401
+ /* provided dependency */ var Appearance_$ = __webpack_require__(962);
96244
96402
  /*******************************************************************************
96245
96403
  *
96246
96404
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96428,7 +96586,7 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96428
96586
  },
96429
96587
  set_alphaMode__ ()
96430
96588
  {
96431
- this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue (), Shape_AlphaMode .AUTO);
96589
+ this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue ()) ?? Shape_AlphaMode .AUTO;
96432
96590
 
96433
96591
  this .set_alphaCutoff__ ();
96434
96592
  },
@@ -104475,8 +104633,8 @@ const GifMedia_default_ = GifMedia;
104475
104633
 
104476
104634
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
104477
104635
  ;// 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);
104636
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(962);
104637
+ /* provided dependency */ var SuperGif = __webpack_require__(346);
104480
104638
  /*******************************************************************************
104481
104639
  *
104482
104640
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106944,7 +107102,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
106944
107102
 
106945
107103
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
106946
107104
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106947
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(375);
107105
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(962);
106948
107106
  /*******************************************************************************
106949
107107
  *
106950
107108
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107574,7 +107732,7 @@ const TextCompression_default_ = TextCompression;
107574
107732
 
107575
107733
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
107576
107734
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107577
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(375);
107735
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(962);
107578
107736
  /*******************************************************************************
107579
107737
  *
107580
107738
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107807,7 +107965,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107807
107965
  primitiveQuality = value .getValue () .toUpperCase ();
107808
107966
 
107809
107967
  this .localStorage .PrimitiveQuality = primitiveQuality;
107810
- this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality, Core_PrimitiveQuality .MEDIUM);
107968
+ this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality) ?? Core_PrimitiveQuality .MEDIUM;
107811
107969
 
107812
107970
  if (typeof browser .setPrimitiveQuality2D === "function")
107813
107971
  browser .setPrimitiveQuality2D (this .primitiveQuality);
@@ -107822,7 +107980,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107822
107980
  textureQuality = value .getValue () .toUpperCase ();
107823
107981
 
107824
107982
  this .localStorage .TextureQuality = textureQuality;
107825
- this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality, Core_TextureQuality .MEDIUM);
107983
+ this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality) ?? Core_TextureQuality .MEDIUM;
107826
107984
 
107827
107985
  if (typeof browser .setTextureQuality === "function")
107828
107986
  browser .setTextureQuality (this .textureQuality);
@@ -107843,7 +108001,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107843
108001
  browser = this .getBrowser (),
107844
108002
  shading = value .getValue () .toUpperCase () .replace ("POINTSET", "POINT");
107845
108003
 
107846
- this .shading = BrowserOptions_$.enum (Core_Shading, shading, Core_Shading .GOURAUD);
108004
+ this .shading = BrowserOptions_$.enum (Core_Shading, shading) ?? Core_Shading .GOURAUD;
107847
108005
 
107848
108006
  browser .getRenderingProperties () ._Shading = strings [this .shading];
107849
108007
  browser .setShading (this .shading);
@@ -108221,7 +108379,7 @@ const RenderingProperties_default_ = RenderingProperties;
108221
108379
 
108222
108380
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108223
108381
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
108224
- /* provided dependency */ var Notification_$ = __webpack_require__(375);
108382
+ /* provided dependency */ var Notification_$ = __webpack_require__(962);
108225
108383
  /*******************************************************************************
108226
108384
  *
108227
108385
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108343,8 +108501,8 @@ const Notification_default_ = Notification;
108343
108501
 
108344
108502
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108345
108503
  ;// 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);
108504
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(530);
108505
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(962);
108348
108506
  /*******************************************************************************
108349
108507
  *
108350
108508
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111079,7 +111237,7 @@ const DataStorage_default_ = DataStorage;
111079
111237
 
111080
111238
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111081
111239
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
111082
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(375);
111240
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(962);
111083
111241
  /*******************************************************************************
111084
111242
  *
111085
111243
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113690,8 +113848,8 @@ const X3DViewer_default_ = X3DViewer;
113690
113848
 
113691
113849
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
113692
113850
  ;// 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);
113851
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(952);
113852
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(962);
113695
113853
  /*******************************************************************************
113696
113854
  *
113697
113855
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114606,8 +114764,8 @@ const ExamineViewer_default_ = ExamineViewer;
114606
114764
 
114607
114765
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
114608
114766
  ;// 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);
114767
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(952);
114768
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(962);
114611
114769
  /*******************************************************************************
114612
114770
  *
114613
114771
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115622,8 +115780,8 @@ const FlyViewer_default_ = FlyViewer;
115622
115780
 
115623
115781
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
115624
115782
  ;// 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);
115783
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(952);
115784
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(962);
115627
115785
  /*******************************************************************************
115628
115786
  *
115629
115787
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115952,8 +116110,8 @@ const NoneViewer_default_ = NoneViewer;
115952
116110
 
115953
116111
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
115954
116112
  ;// 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);
116113
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(952);
116114
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(962);
115957
116115
  /*******************************************************************************
115958
116116
  *
115959
116117
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117098,8 +117256,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117098
117256
 
117099
117257
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117100
117258
  ;// 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);
117259
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(952);
117260
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(962);
117103
117261
  /*******************************************************************************
117104
117262
  *
117105
117263
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117952,6 +118110,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117952
118110
  geometryContext = shapeNode .getGeometryContext (),
117953
118111
  options = [ ];
117954
118112
 
118113
+ options .push ("X3D_DEPTH_SHADER");
118114
+
117955
118115
  if (geometryContext .hasNormals)
117956
118116
  options .push ("X3D_NORMALS");
117957
118117
 
@@ -117977,6 +118137,12 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117977
118137
  if (appearanceNode .getStyleProperties (geometryContext .geometryType))
117978
118138
  options .push ("X3D_STYLE_PROPERTIES");
117979
118139
 
118140
+ if (+appearanceNode .getMaterial () .getTextureBits ())
118141
+ options .push ("X3D_MATERIAL_TEXTURES");
118142
+
118143
+ if (+appearanceNode .getTextureBits ())
118144
+ options .push ("X3D_TEXTURE");
118145
+
117980
118146
  if (humanoidNode)
117981
118147
  {
117982
118148
  options .push ("X3D_SKINNING");
@@ -118538,7 +118704,7 @@ const Lock_default_ = Lock;
118538
118704
 
118539
118705
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
118540
118706
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
118541
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(375);
118707
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(962);
118542
118708
  /*******************************************************************************
118543
118709
  *
118544
118710
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118652,6 +118818,7 @@ Object .assign (X3DRenderingContext .prototype,
118652
118818
  gl .enable (gl .DEPTH_TEST);
118653
118819
  gl .depthFunc (gl .LEQUAL);
118654
118820
  gl .clearDepth (1);
118821
+ gl .sampleCoverage (1.0, false);
118655
118822
 
118656
118823
  gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
118657
118824
  gl .blendEquationSeparate (gl .FUNC_ADD, gl .FUNC_ADD);
@@ -119322,13 +119489,12 @@ const X3DScriptingContext_default_ = X3DScriptingContext;
119322
119489
 
119323
119490
 
119324
119491
  const
119325
- _wireframe = Symbol (),
119326
119492
  _primitiveModes = Symbol (),
119327
- _shaderNodes = Symbol ();
119493
+ _shaderNodes = Symbol (),
119494
+ _wireframe = Symbol ();
119328
119495
 
119329
119496
  function X3DShadersContext ()
119330
119497
  {
119331
- this [_wireframe] = false;
119332
119498
  this [_primitiveModes] = new Map ();
119333
119499
  this [_shaderNodes] = new Map ();
119334
119500
  }
@@ -119369,10 +119535,6 @@ Object .assign (X3DShadersContext .prototype,
119369
119535
 
119370
119536
  return gl .getParameter (gl .MAX_VARYING_VECTORS);
119371
119537
  },
119372
- getWireframe ()
119373
- {
119374
- return this [_wireframe];
119375
- },
119376
119538
  getPrimitiveMode (primitiveMode)
119377
119539
  {
119378
119540
  return this [_primitiveModes] .get (primitiveMode);
@@ -119383,26 +119545,43 @@ Object .assign (X3DShadersContext .prototype,
119383
119545
  },
119384
119546
  setShading (type)
119385
119547
  {
119386
- const gl = this .getContext ();
119548
+ const
119549
+ gl = this .getContext (),
119550
+ primitiveModes = this [_primitiveModes];
119551
+
119552
+ if (this [_wireframe])
119553
+ {
119554
+ this [_wireframe] = false;
119555
+
119556
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119557
+
119558
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .FILL_WEBGL);
119559
+ }
119387
119560
 
119388
119561
  switch (type)
119389
119562
  {
119390
119563
  case Core_Shading .POINT:
119391
119564
  {
119392
- this [_wireframe] = false;
119565
+ primitiveModes
119566
+ .set (gl .POINTS, gl .POINTS)
119567
+ .set (gl .LINES, gl .POINTS)
119568
+ .set (gl .TRIANGLES, gl .POINTS);
119393
119569
 
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
119570
  break;
119398
119571
  }
119399
119572
  case Core_Shading .WIREFRAME:
119400
119573
  {
119401
119574
  this [_wireframe] = true;
119402
119575
 
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);
119576
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119577
+
119578
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .LINE_WEBGL);
119579
+
119580
+ primitiveModes
119581
+ .set (gl .POINTS, gl .POINTS)
119582
+ .set (gl .LINES, gl .LINES)
119583
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119584
+
119406
119585
  break;
119407
119586
  }
119408
119587
  default:
@@ -119411,15 +119590,19 @@ Object .assign (X3DShadersContext .prototype,
119411
119590
  // case Shading .GOURAUD:
119412
119591
  // case Shading .PHONG:
119413
119592
 
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);
119593
+ primitiveModes
119594
+ .set (gl .POINTS, gl .POINTS)
119595
+ .set (gl .LINES, gl .LINES)
119596
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119597
+
119419
119598
  break;
119420
119599
  }
119421
119600
  }
119422
119601
  },
119602
+ getWireframe ()
119603
+ {
119604
+ return this [_wireframe];
119605
+ },
119423
119606
  createShader (name, vs, fs = vs, options = [ ], uniformNames = [ ], transformFeedbackVaryings = [ ])
119424
119607
  {
119425
119608
  if (DEVELOPMENT)
@@ -119844,7 +120027,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
119844
120027
 
119845
120028
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
119846
120029
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
119847
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(375);
120030
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(962);
119848
120031
  const KTXDecoder_default_ = class KTXDecoder
119849
120032
  {
119850
120033
  constructor (gl, externalKtxlib, scriptDir)
@@ -121421,7 +121604,7 @@ const Components_default_ = Components;
121421
121604
 
121422
121605
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
121423
121606
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
121424
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(375);
121607
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(962);
121425
121608
  /*******************************************************************************
121426
121609
  * MIT License
121427
121610
  *
@@ -122687,7 +122870,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
122687
122870
 
122688
122871
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
122689
122872
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
122690
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(375);
122873
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(962);
122691
122874
  /*******************************************************************************
122692
122875
  *
122693
122876
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -123754,7 +123937,7 @@ const X3DBrowser_default_ = X3DBrowser;
123754
123937
 
123755
123938
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
123756
123939
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
123757
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(375);
123940
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(962);
123758
123941
  /*******************************************************************************
123759
123942
  *
123760
123943
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124021,8 +124204,8 @@ const QuickSort_default_ = QuickSort;
124021
124204
 
124022
124205
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124023
124206
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124024
- /* provided dependency */ var jquery_$ = __webpack_require__(375);
124025
- /* provided dependency */ var pako = __webpack_require__(671);
124207
+ /* provided dependency */ var jquery_$ = __webpack_require__(962);
124208
+ /* provided dependency */ var pako = __webpack_require__(58);
124026
124209
  Object .assign (jquery_$,
124027
124210
  {
124028
124211
  decodeText (input)
@@ -124059,9 +124242,10 @@ Object .assign (jquery_$,
124059
124242
  console .error (error .message);
124060
124243
  }
124061
124244
  },
124062
- enum (object, property, defaultValue)
124245
+ enum (object, property)
124063
124246
  {
124064
- return object .hasOwnProperty (property) ? object [property] : defaultValue;
124247
+ if (object .hasOwnProperty (property))
124248
+ return object [property];
124065
124249
  },
124066
124250
  });
124067
124251
 
@@ -124098,13 +124282,13 @@ const jquery_default_ = jquery_$;
124098
124282
 
124099
124283
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124100
124284
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
124101
- /* provided dependency */ var libtess_libtess = __webpack_require__(660);
124285
+ /* provided dependency */ var libtess_libtess = __webpack_require__(459);
124102
124286
  const libtess_default_ = libtess_libtess;
124103
124287
  ;
124104
124288
 
124105
124289
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124106
124290
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
124107
- /* provided dependency */ var X3D_$ = __webpack_require__(375);
124291
+ /* provided dependency */ var X3D_$ = __webpack_require__(962);
124108
124292
  /*******************************************************************************
124109
124293
  *
124110
124294
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124408,7 +124592,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
124408
124592
 
124409
124593
  // Assign X3D to global namespace.
124410
124594
 
124411
- window [Symbol .for ("X_ITE.X3D-10.4.2")] = x_ite_X3D;
124595
+ window [Symbol .for ("X_ITE.X3D-10.5.1")] = x_ite_X3D;
124412
124596
 
124413
124597
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
124414
124598