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.mjs CHANGED
@@ -1,10 +1,10 @@
1
- /* X_ITE v10.4.2 */
1
+ /* X_ITE v10.5.1 */
2
2
  var __webpack_modules__ = ({
3
3
 
4
- /***/ 123:
4
+ /***/ 530:
5
5
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
6
6
 
7
- /* provided dependency */ var jQuery = __webpack_require__(375);
7
+ /* provided dependency */ var jQuery = __webpack_require__(962);
8
8
  /**
9
9
  * @preserve jquery.fullscreen 1.1.5
10
10
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -200,7 +200,7 @@ installFullScreenHandlers();
200
200
 
201
201
  /***/ }),
202
202
 
203
- /***/ 415:
203
+ /***/ 952:
204
204
  /***/ ((module, exports, __webpack_require__) => {
205
205
 
206
206
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -214,7 +214,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
214
214
  (function (factory) {
215
215
  if ( true ) {
216
216
  // AMD. Register as an anonymous module.
217
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(375)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
217
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(962)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
218
218
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
219
219
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
220
220
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -425,7 +425,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
425
425
 
426
426
  /***/ }),
427
427
 
428
- /***/ 375:
428
+ /***/ 962:
429
429
  /***/ (function(module, exports) {
430
430
 
431
431
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11149,7 +11149,7 @@ return jQuery;
11149
11149
 
11150
11150
  /***/ }),
11151
11151
 
11152
- /***/ 660:
11152
+ /***/ 459:
11153
11153
  /***/ ((module) => {
11154
11154
 
11155
11155
  /**
@@ -15928,7 +15928,7 @@ if (true) {
15928
15928
 
15929
15929
  /***/ }),
15930
15930
 
15931
- /***/ 671:
15931
+ /***/ 58:
15932
15932
  /***/ (function(__unused_webpack_module, exports) {
15933
15933
 
15934
15934
 
@@ -19173,7 +19173,7 @@ if (true) {
19173
19173
 
19174
19174
  /***/ }),
19175
19175
 
19176
- /***/ 776:
19176
+ /***/ 965:
19177
19177
  /***/ (function(module, exports) {
19178
19178
 
19179
19179
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20297,7 +20297,7 @@ Object .defineProperty (Namespace, "add",
20297
20297
  return module;
20298
20298
  }
20299
20299
 
20300
- const X3D = window [Symbol .for ("X_ITE.X3D-10.4.2")];
20300
+ const X3D = window [Symbol .for ("X_ITE.X3D-10.5.1")];
20301
20301
 
20302
20302
  if (X3D)
20303
20303
  X3D [name] = module;
@@ -20553,6 +20553,10 @@ const Algorithm =
20553
20553
 
20554
20554
  return value;
20555
20555
  },
20556
+ project (value, fromLow, fromHigh, toLow, toHigh)
20557
+ {
20558
+ return toLow + ((value - fromLow) / (fromHigh - fromLow)) * (toHigh - toLow);
20559
+ },
20556
20560
  roundToMultiple (value, multiple)
20557
20561
  {
20558
20562
  return Math .ceil (value / multiple) * multiple;
@@ -24932,6 +24936,8 @@ const SFMatrixPrototypeTemplate_default_ = SFMatrixPrototypeTemplate;
24932
24936
  *
24933
24937
  ******************************************************************************/
24934
24938
 
24939
+
24940
+
24935
24941
  function Vector2 (x = 0, y = 0)
24936
24942
  {
24937
24943
  this .x = x;
@@ -25092,6 +25098,11 @@ Object .assign (Vector2 .prototype,
25092
25098
  this .y = y;
25093
25099
  return this;
25094
25100
  },
25101
+ clamp (min, max)
25102
+ {
25103
+ this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25104
+ this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25105
+ },
25095
25106
  toString ()
25096
25107
  {
25097
25108
  return this .x + " " +
@@ -25384,6 +25395,12 @@ Object .assign (Vector3 .prototype,
25384
25395
  this .z = z;
25385
25396
  return this;
25386
25397
  },
25398
+ clamp (min, max)
25399
+ {
25400
+ this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
25401
+ this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
25402
+ this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
25403
+ },
25387
25404
  toString ()
25388
25405
  {
25389
25406
  return this .x + " " +
@@ -26729,6 +26746,8 @@ const SFMatrix3_default_ = SFMatrix3;
26729
26746
  *
26730
26747
  ******************************************************************************/
26731
26748
 
26749
+
26750
+
26732
26751
  function Vector4 (x = 0, y = 0, z = 0, w = 0)
26733
26752
  {
26734
26753
  this .x = x;
@@ -26944,6 +26963,13 @@ Object .assign (Vector4 .prototype,
26944
26963
  this .w = w;
26945
26964
  return this;
26946
26965
  },
26966
+ clamp (min, max)
26967
+ {
26968
+ this .x = Math_Algorithm .clamp (this .x, min .x, max .x);
26969
+ this .y = Math_Algorithm .clamp (this .y, min .y, max .y);
26970
+ this .z = Math_Algorithm .clamp (this .z, min .z, max .z);
26971
+ this .w = Math_Algorithm .clamp (this .w, min .w, max .w);
26972
+ },
26947
26973
  toString ()
26948
26974
  {
26949
26975
  return this .x + " " +
@@ -34133,7 +34159,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34133
34159
 
34134
34160
  /* harmony default export */ const Base_X3DBaseNode = (x_ite_Namespace .add ("X3DBaseNode", X3DBaseNode_default_));
34135
34161
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34136
- /* provided dependency */ var $ = __webpack_require__(375);
34162
+ /* provided dependency */ var $ = __webpack_require__(962);
34137
34163
  /*******************************************************************************
34138
34164
  *
34139
34165
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34269,7 +34295,7 @@ const Legacy_default_ = Legacy;
34269
34295
  *
34270
34296
  ******************************************************************************/
34271
34297
 
34272
- const BROWSER_VERSION_default_ = "10.4.2";
34298
+ const BROWSER_VERSION_default_ = "10.5.1";
34273
34299
  ;
34274
34300
 
34275
34301
  /* harmony default export */ const BROWSER_VERSION = (x_ite_Namespace .add ("BROWSER_VERSION", BROWSER_VERSION_default_));
@@ -37294,7 +37320,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37294
37320
 
37295
37321
  /* harmony default export */ const Core_X3DBindableNode = (x_ite_Namespace .add ("X3DBindableNode", X3DBindableNode_default_));
37296
37322
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
37297
- /* provided dependency */ var libtess = __webpack_require__(660);
37323
+ /* provided dependency */ var libtess = __webpack_require__(459);
37298
37324
  /*******************************************************************************
37299
37325
  *
37300
37326
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -37336,7 +37362,7 @@ const X3DBindableNode_default_ = X3DBindableNode;
37336
37362
  *
37337
37363
  * You should have received a copy of the GNU General Public License version 3
37338
37364
  * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
37339
- * copy of the GPLv3 License.
37365
+ * copy of the GPLc License.
37340
37366
  *
37341
37367
  * For Silvio, Joy and Adi.
37342
37368
  *
@@ -37346,6 +37372,13 @@ const X3DBindableNode_default_ = X3DBindableNode;
37346
37372
 
37347
37373
  const Triangle3 =
37348
37374
  {
37375
+ /**
37376
+ *
37377
+ * @param {Vector3} a first point of triangle
37378
+ * @param {Vector3} b second point of triangle
37379
+ * @param {Vector3} c third point of triangle
37380
+ * @returns
37381
+ */
37349
37382
  area: (() =>
37350
37383
  {
37351
37384
  const
@@ -37357,15 +37390,23 @@ const Triangle3 =
37357
37390
  return B .assign (b) .subtract (a) .cross (C .assign (c) .subtract (a)) .magnitude () / 2;
37358
37391
  };
37359
37392
  })(),
37360
- normal (v1, v2, v3, normal)
37393
+ /**
37394
+ *
37395
+ * @param {Vector3} a first point of triangle
37396
+ * @param {Vector3} b second point of triangle
37397
+ * @param {Vector3} c third point of triangle
37398
+ * @param {Vector3} normal resulting normal
37399
+ * @returns
37400
+ */
37401
+ normal (a, b, c, normal)
37361
37402
  {
37362
37403
  const
37363
- x1 = v3 .x - v2 .x,
37364
- y1 = v3 .y - v2 .y,
37365
- z1 = v3 .z - v2 .z,
37366
- x2 = v1 .x - v2 .x,
37367
- y2 = v1 .y - v2 .y,
37368
- z2 = v1 .z - v2 .z;
37404
+ x1 = c .x - b .x,
37405
+ y1 = c .y - b .y,
37406
+ z1 = c .z - b .z,
37407
+ x2 = a .x - b .x,
37408
+ y2 = a .y - b .y,
37409
+ z2 = a .z - b .z;
37369
37410
 
37370
37411
  normal .set (y1 * z2 - z1 * y2,
37371
37412
  z1 * x2 - x1 * z2,
@@ -37373,15 +37414,24 @@ const Triangle3 =
37373
37414
 
37374
37415
  return normal .normalize ();
37375
37416
  },
37376
- quadNormal (v1, v2, v3, v4, normal)
37417
+ /**
37418
+ *
37419
+ * @param {Vector3} a first point of quad
37420
+ * @param {Vector3} b second point of quad
37421
+ * @param {Vector3} c third point of quad
37422
+ * @param {Vector3} d third point of quad
37423
+ * @param {Vector3} normal resulting normal
37424
+ * @returns
37425
+ */
37426
+ quadNormal (a, b, c, d, normal)
37377
37427
  {
37378
37428
  const
37379
- x1 = v3 .x - v1 .x,
37380
- y1 = v3 .y - v1 .y,
37381
- z1 = v3 .z - v1 .z,
37382
- x2 = v4 .x - v2 .x,
37383
- y2 = v4 .y - v2 .y,
37384
- z2 = v4 .z - v2 .z;
37429
+ x1 = c .x - a .x,
37430
+ y1 = c .y - a .y,
37431
+ z1 = c .z - a .z,
37432
+ x2 = d .x - b .x,
37433
+ y2 = d .y - b .y,
37434
+ z2 = d .z - b .z;
37385
37435
 
37386
37436
  normal .set (y1 * z2 - z1 * y2,
37387
37437
  z1 * x2 - x1 * z2,
@@ -39832,7 +39882,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
39832
39882
 
39833
39883
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (x_ite_Namespace .add ("X3DProtoDeclaration", X3DProtoDeclaration_default_));
39834
39884
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
39835
- /* provided dependency */ var X3DParser_$ = __webpack_require__(375);
39885
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(962);
39836
39886
  /*******************************************************************************
39837
39887
  *
39838
39888
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -40087,7 +40137,7 @@ const Expressions_default_ = Expressions;
40087
40137
 
40088
40138
  /* harmony default export */ const Parser_Expressions = (x_ite_Namespace .add ("Expressions", Expressions_default_));
40089
40139
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
40090
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(375);
40140
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(962);
40091
40141
  /*******************************************************************************
40092
40142
  *
40093
40143
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42786,7 +42836,7 @@ const VRMLParser_default_ = VRMLParser;
42786
42836
 
42787
42837
  /* harmony default export */ const Parser_VRMLParser = (x_ite_Namespace .add ("VRMLParser", VRMLParser_default_));
42788
42838
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
42789
- /* provided dependency */ var XMLParser_$ = __webpack_require__(375);
42839
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(962);
42790
42840
  /*******************************************************************************
42791
42841
  *
42792
42842
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44959,7 +45009,7 @@ const URLs_default_ = URLs;
44959
45009
 
44960
45010
  /* harmony default export */ const Networking_URLs = (x_ite_Namespace .add ("URLs", URLs_default_));
44961
45011
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
44962
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(375);
45012
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(962);
44963
45013
  /*******************************************************************************
44964
45014
  *
44965
45015
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48603,7 +48653,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
48603
48653
 
48604
48654
  /* harmony default export */ const Parser_GLTF2Parser = (x_ite_Namespace .add ("GLTF2Parser", GLTF2Parser_default_));
48605
48655
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
48606
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(375);
48656
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(962);
48607
48657
  /*******************************************************************************
48608
48658
  *
48609
48659
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -48754,7 +48804,7 @@ const GLB2Parser_default_ = GLB2Parser;
48754
48804
 
48755
48805
  /* harmony default export */ const Parser_GLB2Parser = (x_ite_Namespace .add ("GLB2Parser", GLB2Parser_default_));
48756
48806
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
48757
- /* provided dependency */ var OBJParser_$ = __webpack_require__(375);
48807
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(962);
48758
48808
  /*******************************************************************************
48759
48809
  *
48760
48810
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52096,8 +52146,8 @@ const MatrixStack_default_ = MatrixStack;
52096
52146
 
52097
52147
  /* harmony default export */ const Utility_MatrixStack = (x_ite_Namespace .add ("MatrixStack", MatrixStack_default_));
52098
52148
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52099
- /* provided dependency */ var SVGParser_$ = __webpack_require__(375);
52100
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(660);
52149
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(962);
52150
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(459);
52101
52151
  /*******************************************************************************
52102
52152
  *
52103
52153
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54867,7 +54917,7 @@ const SVGParser_default_ = SVGParser;
54867
54917
 
54868
54918
  /* harmony default export */ const Parser_SVGParser = (x_ite_Namespace .add ("SVGParser", SVGParser_default_));
54869
54919
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
54870
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(375);
54920
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(962);
54871
54921
  /*******************************************************************************
54872
54922
  *
54873
54923
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -56332,11 +56382,11 @@ Object .assign (Line3 .prototype,
56332
56382
  if (v < 0 || u + v > 1)
56333
56383
  return false;
56334
56384
 
56335
- //let t = edge2 .dot (qvec) * inv_det;
56385
+ //let u = edge2 .dot (qvec) * inv_det;
56336
56386
 
56337
- uvt .u = u;
56338
- uvt .v = v;
56339
- uvt .t = 1 - u - v;
56387
+ uvt .u = 1 - u - v;
56388
+ uvt .v = u;
56389
+ uvt .t = v;
56340
56390
 
56341
56391
  return true;
56342
56392
  };
@@ -57767,7 +57817,12 @@ Object .assign (X3DRenderObject .prototype,
57767
57817
 
57768
57818
  function X3DRenderObject_assign (lhs, rhs)
57769
57819
  {
57770
- Object .assign (lhs, rhs) .length = rhs .length;
57820
+ const length = rhs .length;
57821
+
57822
+ for (let i = 0; i < length; ++ i)
57823
+ lhs [i] = rhs [i];
57824
+
57825
+ lhs .length = length;
57771
57826
  }
57772
57827
 
57773
57828
  const X3DRenderObject_default_ = X3DRenderObject;
@@ -60178,42 +60233,43 @@ function X3DGeometryNode (executionContext)
60178
60233
  this .planes [i] = new Geometry_Plane3 ();
60179
60234
  }
60180
60235
 
60181
- Object .defineProperty (X3DGeometryNode, "createArray",
60236
+ class GeometryArray extends Array
60182
60237
  {
60183
- // Function to select ether Array or MFFloat for color/normal/vertex arrays.
60184
- // Array version runs faster, see BeyondGermany and TreasureIsland.
60185
- value ()
60186
- {
60187
- // return new Fields .MFFloat ();
60188
-
60189
- const array = [ ];
60238
+ #typedArray = new Float32Array ();
60190
60239
 
60191
- array .typedArray = new Float32Array ();
60240
+ assign (value)
60241
+ {
60242
+ const length = value .length;
60192
60243
 
60193
- array .assign = function (value)
60194
- {
60195
- const length = value .length;
60244
+ for (let i = 0; i < length; ++ i)
60245
+ this [i] = value [i];
60196
60246
 
60197
- for (let i = 0; i < length; ++ i)
60198
- this [i] = value [i];
60247
+ this .length = length;
60248
+ }
60199
60249
 
60200
- this .length = length;
60201
- };
60250
+ getValue ()
60251
+ {
60252
+ return this .#typedArray;
60253
+ }
60202
60254
 
60203
- array .getValue = function ()
60204
- {
60205
- return this .typedArray;
60206
- };
60255
+ shrinkToFit ()
60256
+ {
60257
+ if (this .length === this .#typedArray .length)
60258
+ this .#typedArray .set (this);
60259
+ else
60260
+ this .#typedArray = new Float32Array (this);
60261
+ }
60262
+ }
60207
60263
 
60208
- array .shrinkToFit = function ()
60209
- {
60210
- if (this .length === this .typedArray .length)
60211
- this .typedArray .set (this);
60212
- else
60213
- this .typedArray = new Float32Array (this);
60214
- };
60264
+ Object .defineProperty (X3DGeometryNode, "createArray",
60265
+ {
60266
+ // Function to select ether Array or MFFloat for color/normal/vertex arrays.
60267
+ // Array version runs faster, see BeyondGermany and TreasureIsland.
60268
+ value ()
60269
+ {
60270
+ // return new Fields .MFFloat ();
60215
60271
 
60216
- return array;
60272
+ return new GeometryArray ();
60217
60273
  },
60218
60274
  })
60219
60275
 
@@ -60253,14 +60309,14 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60253
60309
 
60254
60310
  this .set_live__ ();
60255
60311
  },
60256
- setGeometryType (value)
60257
- {
60258
- this .geometryType = value;
60259
- },
60260
60312
  getGeometryType ()
60261
60313
  {
60262
60314
  return this .geometryType;
60263
60315
  },
60316
+ setGeometryType (value)
60317
+ {
60318
+ this .geometryType = value;
60319
+ },
60264
60320
  setTransparent (value)
60265
60321
  {
60266
60322
  if (!!value !== this ._transparent .getValue ())
@@ -60303,22 +60359,22 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60303
60359
  {
60304
60360
  return Numbers_Matrix4 .Identity;
60305
60361
  },
60306
- setPrimitiveMode (value)
60307
- {
60308
- this .primitiveMode = value;
60309
- },
60310
60362
  getPrimitiveMode ()
60311
60363
  {
60312
60364
  return this .primitiveMode;
60313
60365
  },
60314
- isSolid ()
60366
+ setPrimitiveMode (value)
60315
60367
  {
60316
- return this .solid;
60368
+ this .primitiveMode = value;
60317
60369
  },
60318
60370
  setSolid (value)
60319
60371
  {
60320
60372
  this .solid = value;
60321
60373
  },
60374
+ isSolid ()
60375
+ {
60376
+ return this .solid;
60377
+ },
60322
60378
  setCCW (value)
60323
60379
  {
60324
60380
  const gl = this .getBrowser () .getContext ();
@@ -60341,33 +60397,14 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60341
60397
  {
60342
60398
  return this .attribBuffers;
60343
60399
  },
60344
- setFogDepths (value)
60345
- {
60346
- this .fogDepths .assign (value);
60347
- },
60348
60400
  getFogDepths ()
60349
60401
  {
60350
60402
  return this .fogDepths;
60351
60403
  },
60352
- setColors (value)
60353
- {
60354
- this .colors .assign (value);
60355
- },
60356
60404
  getColors ()
60357
60405
  {
60358
60406
  return this .colors;
60359
60407
  },
60360
- setMultiTexCoords (value)
60361
- {
60362
- const
60363
- multiTexCoords = this .multiTexCoords,
60364
- length = value .length;
60365
-
60366
- for (let i = 0; i < length; ++ i)
60367
- multiTexCoords [i] = value [i];
60368
-
60369
- multiTexCoords .length = length;
60370
- },
60371
60408
  getMultiTexCoords ()
60372
60409
  {
60373
60410
  return this .multiTexCoords;
@@ -60400,26 +60437,14 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60400
60437
 
60401
60438
  this .textureCoordinateNode .getTextureCoordinateMapping (this .textureCoordinateMapping);
60402
60439
  },
60403
- setTangents (value)
60404
- {
60405
- this .tangents .assign (value);
60406
- },
60407
60440
  getTangents ()
60408
60441
  {
60409
60442
  return this .tangents;
60410
60443
  },
60411
- setNormals (value)
60412
- {
60413
- this .normals .assign (value);
60414
- },
60415
60444
  getNormals ()
60416
60445
  {
60417
60446
  return this .normals;
60418
60447
  },
60419
- setVertices (value)
60420
- {
60421
- this .vertices .assign (value);
60422
- },
60423
60448
  getVertices ()
60424
60449
  {
60425
60450
  return this .vertices;
@@ -60513,28 +60538,35 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60513
60538
  })(),
60514
60539
  generateTangents ()
60515
60540
  {
60516
- if (this .geometryType < 2)
60517
- return;
60541
+ try
60542
+ {
60543
+ if (this .geometryType < 2)
60544
+ return;
60518
60545
 
60519
- if (!this .vertices .length)
60520
- return;
60546
+ if (!this .vertices .length)
60547
+ return;
60521
60548
 
60522
- if (!MikkTSpace .isInitialized ())
60523
- return void (MikkTSpace .initialize () .then (() => this .requestRebuild ()));
60549
+ if (!MikkTSpace .isInitialized ())
60550
+ return void (MikkTSpace .initialize () .then (() => this .requestRebuild ()));
60524
60551
 
60525
- const
60526
- vertices = this .vertices .getValue () .filter ((v, i) => i % 4 < 3),
60527
- normals = this .normals .getValue (),
60528
- texCoords = this .multiTexCoords [0] .getValue () .filter ((v, i) => i % 4 < 2),
60529
- tangents = MikkTSpace .generateTangents (vertices, normals, texCoords),
60530
- length = tangents .length;
60552
+ const
60553
+ vertices = this .vertices .getValue () .filter ((v, i) => i % 4 < 3),
60554
+ normals = this .normals .getValue (),
60555
+ texCoords = this .multiTexCoords [0] .getValue () .filter ((v, i) => i % 4 < 2),
60556
+ tangents = MikkTSpace .generateTangents (vertices, normals, texCoords),
60557
+ length = tangents .length;
60531
60558
 
60532
- // Convert coordinate system handedness to respect output format of MikkTSpace.
60533
- for (let i = 3; i < length; i += 4)
60534
- tangents [i] = -tangents [i]; // Flip w-channel.
60559
+ // Convert coordinate system handedness to respect output format of MikkTSpace.
60560
+ for (let i = 3; i < length; i += 4)
60561
+ tangents [i] = -tangents [i]; // Flip w-channel.
60535
60562
 
60536
- this .tangents .assign (tangents);
60537
- this .tangents .shrinkToFit ();
60563
+ this .tangents .assign (tangents);
60564
+ this .tangents .shrinkToFit ();
60565
+ }
60566
+ catch (error)
60567
+ {
60568
+ console .error (error);
60569
+ }
60538
60570
  },
60539
60571
  refineNormals (normalIndex, normals, creaseAngle)
60540
60572
  {
@@ -60614,16 +60646,13 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60614
60646
  {
60615
60647
  // Get barycentric coordinates.
60616
60648
 
60617
- const
60618
- u = uvt .u,
60619
- v = uvt .v,
60620
- t = uvt .t;
60649
+ const { u, v, t } = uvt;
60621
60650
 
60622
60651
  // Determine vectors for X3DPointingDeviceSensors.
60623
60652
 
60624
- const point = new Numbers_Vector3 (t * vertices [i4] + u * vertices [i4 + 4] + v * vertices [i4 + 8],
60625
- t * vertices [i4 + 1] + u * vertices [i4 + 5] + v * vertices [i4 + 9],
60626
- t * vertices [i4 + 2] + u * vertices [i4 + 6] + v * vertices [i4 + 10]);
60653
+ const point = new Numbers_Vector3 (u * vertices [i4] + v * vertices [i4 + 4] + t * vertices [i4 + 8],
60654
+ u * vertices [i4 + 1] + v * vertices [i4 + 5] + t * vertices [i4 + 9],
60655
+ u * vertices [i4 + 2] + v * vertices [i4 + 6] + t * vertices [i4 + 10]);
60627
60656
 
60628
60657
  if (clipPlanes .length)
60629
60658
  {
@@ -60631,16 +60660,16 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60631
60660
  continue;
60632
60661
  }
60633
60662
 
60634
- const texCoord = new Numbers_Vector2 (t * texCoords [i4] + u * texCoords [i4 + 4] + v * texCoords [i4 + 8],
60635
- t * texCoords [i4 + 1] + u * texCoords [i4 + 5] + v * texCoords [i4 + 9]);
60663
+ const texCoord = new Numbers_Vector2 (u * texCoords [i4] + v * texCoords [i4 + 4] + t * texCoords [i4 + 8],
60664
+ u * texCoords [i4 + 1] + v * texCoords [i4 + 5] + t * texCoords [i4 + 9]);
60636
60665
 
60637
60666
  const i3 = i * 3;
60638
60667
 
60639
- const normal = new Numbers_Vector3 (t * normals [i3] + u * normals [i3 + 3] + v * normals [i3 + 6],
60640
- t * normals [i3 + 1] + u * normals [i3 + 4] + v * normals [i3 + 7],
60641
- t * normals [i3 + 2] + u * normals [i3 + 5] + v * normals [i3 + 8]);
60668
+ const normal = new Numbers_Vector3 (u * normals [i3] + v * normals [i3 + 3] + t * normals [i3 + 6],
60669
+ u * normals [i3 + 1] + v * normals [i3 + 4] + t * normals [i3 + 7],
60670
+ u * normals [i3 + 2] + v * normals [i3 + 5] + t * normals [i3 + 8]);
60642
60671
 
60643
- intersections .push ({ texCoord: texCoord, normal: normal, point: this .getMatrix () .multVecMatrix (point) });
60672
+ intersections .push ({ texCoord, normal, point: this .getMatrix () .multVecMatrix (point) });
60644
60673
  }
60645
60674
  }
60646
60675
  }
@@ -60955,17 +60984,20 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
60955
60984
  // Determine bbox.
60956
60985
 
60957
60986
  const
60958
- vertices = this .vertices .getValue (),
60959
- min = this .min,
60960
- max = this .max;
60987
+ vertices = this .vertices .getValue (),
60988
+ numVertices = vertices .length,
60989
+ min = this .min,
60990
+ max = this .max;
60961
60991
 
60962
- if (vertices .length)
60992
+ if (numVertices)
60963
60993
  {
60964
60994
  if (min .x === Number .POSITIVE_INFINITY)
60965
60995
  {
60966
- for (let i = 0, length = vertices .length; i < length; i += 4)
60996
+ for (let i = 0; i < numVertices; i += 4)
60967
60997
  {
60968
- point .set (vertices [i], vertices [i + 1], vertices [i + 2]);
60998
+ const { [i]: v1, [i + 1]: v2, [i + 2]: v3 } = vertices;
60999
+
61000
+ point .set (v1, v2, v3);
60969
61001
 
60970
61002
  min .min (point);
60971
61003
  max .max (point);
@@ -61124,7 +61156,7 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
61124
61156
  appearanceNode = renderContext .appearanceNode,
61125
61157
  shaderNode = appearanceNode .getShader (this, renderContext);
61126
61158
 
61127
- if (this .solid || !appearanceNode .getBackMaterial () || browser .getWireframe ())
61159
+ if (this .solid || !appearanceNode .getBackMaterial ())
61128
61160
  {
61129
61161
  this .displayGeometry (gl, renderContext, appearanceNode, shaderNode, true, true);
61130
61162
  }
@@ -61177,51 +61209,43 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
61177
61209
 
61178
61210
  // Draw depending on wireframe, solid and transparent.
61179
61211
 
61180
- if (browser .getWireframe ())
61181
- {
61182
- for (let i = 0, length = this .vertexCount; i < length; i += 3)
61183
- gl .drawArrays (primitiveMode, i, 3);
61184
- }
61185
- else
61186
- {
61187
- const positiveScale = Numbers_Matrix4 .prototype .determinant3 .call (renderContext .modelViewMatrix) > 0;
61188
-
61189
- gl .frontFace (positiveScale ? this .frontFace : this .backFace .get (this .frontFace));
61190
-
61191
- if (renderContext .transparent || back !== front)
61192
- {
61193
- // Render transparent or back or front.
61212
+ const positiveScale = Numbers_Matrix4 .prototype .determinant3 .call (renderContext .modelViewMatrix) > 0;
61194
61213
 
61195
- gl .enable (gl .CULL_FACE);
61214
+ gl .frontFace (positiveScale ? this .frontFace : this .backFace .get (this .frontFace));
61196
61215
 
61197
- // Render back.
61216
+ if (renderContext .transparent || back !== front)
61217
+ {
61218
+ // Render transparent or back or front.
61198
61219
 
61199
- if (back && !this .solid)
61200
- {
61201
- gl .cullFace (gl .FRONT);
61202
- gl .drawArrays (primitiveMode, 0, this .vertexCount);
61203
- }
61220
+ gl .enable (gl .CULL_FACE);
61204
61221
 
61205
- // Render front.
61222
+ // Render back.
61206
61223
 
61207
- if (front)
61208
- {
61209
- gl .cullFace (gl .BACK);
61210
- gl .drawArrays (primitiveMode, 0, this .vertexCount);
61211
- }
61212
- }
61213
- else
61224
+ if (back && !this .solid)
61214
61225
  {
61215
- // Render solid or both sides.
61226
+ gl .cullFace (gl .FRONT);
61227
+ gl .drawArrays (primitiveMode, 0, this .vertexCount);
61228
+ }
61216
61229
 
61217
- if (this .solid)
61218
- gl .enable (gl .CULL_FACE);
61219
- else
61220
- gl .disable (gl .CULL_FACE);
61230
+ // Render front.
61221
61231
 
61232
+ if (front)
61233
+ {
61234
+ gl .cullFace (gl .BACK);
61222
61235
  gl .drawArrays (primitiveMode, 0, this .vertexCount);
61223
61236
  }
61224
61237
  }
61238
+ else
61239
+ {
61240
+ // Render solid or both sides.
61241
+
61242
+ if (this .solid)
61243
+ gl .enable (gl .CULL_FACE);
61244
+ else
61245
+ gl .disable (gl .CULL_FACE);
61246
+
61247
+ gl .drawArrays (primitiveMode, 0, this .vertexCount);
61248
+ }
61225
61249
 
61226
61250
  for (const node of renderModeNodes)
61227
61251
  node .disable (gl);
@@ -61264,7 +61288,7 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
61264
61288
  appearanceNode = renderContext .appearanceNode,
61265
61289
  shaderNode = appearanceNode .getShader (this, renderContext);
61266
61290
 
61267
- if (this .solid || !appearanceNode .getBackMaterial () || browser .getWireframe ())
61291
+ if (this .solid || !appearanceNode .getBackMaterial ())
61268
61292
  {
61269
61293
  this .displayInstancedGeometry (gl, renderContext, appearanceNode, shaderNode, true, true, shapeNode);
61270
61294
  }
@@ -62125,6 +62149,17 @@ Object .assign (Object .setPrototypeOf (X3DBackgroundNode .prototype, Core_X3DBi
62125
62149
  if (this ._hidden .getValue ())
62126
62150
  return;
62127
62151
 
62152
+ const browser = this .getBrowser ();
62153
+
62154
+ // Always fill background.
62155
+
62156
+ if (browser .getWireframe ())
62157
+ {
62158
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
62159
+
62160
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .FILL_WEBGL);
62161
+ }
62162
+
62128
62163
  // Setup context.
62129
62164
 
62130
62165
  gl .disable (gl .DEPTH_TEST);
@@ -62161,6 +62196,15 @@ Object .assign (Object .setPrototypeOf (X3DBackgroundNode .prototype, Core_X3DBi
62161
62196
  gl .depthMask (true);
62162
62197
  gl .enable (gl .DEPTH_TEST);
62163
62198
  gl .disable (gl .BLEND);
62199
+
62200
+ // Restore polygon mode.
62201
+
62202
+ if (browser .getWireframe ())
62203
+ {
62204
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
62205
+
62206
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .LINE_WEBGL);
62207
+ }
62164
62208
  };
62165
62209
  })(),
62166
62210
  drawSphere (renderObject, modelViewMatrixArray, projectionMatrixArray)
@@ -62882,7 +62926,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62882
62926
 
62883
62927
  /* harmony default export */ const Texturing_X3DTexture2DNode = (x_ite_Namespace .add ("X3DTexture2DNode", X3DTexture2DNode_default_));
62884
62928
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62885
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(375);
62929
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(962);
62886
62930
  /*******************************************************************************
62887
62931
  *
62888
62932
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -65266,7 +65310,7 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
65266
65310
  getUpVector ()
65267
65311
  {
65268
65312
  // Local y-axis,
65269
- // see https://www.web3d.org/documents/specifications/19775-1/V3.3/index.html#NavigationInfo.
65313
+ // see https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/components/navigation.html#NavigationInfo.
65270
65314
  return Numbers_Vector3 .yAxis;
65271
65315
  },
65272
65316
  getSpeedFactor ()
@@ -66266,7 +66310,7 @@ const X3DWorld_default_ = X3DWorld;
66266
66310
 
66267
66311
  /* harmony default export */ const Execution_X3DWorld = (x_ite_Namespace .add ("X3DWorld", X3DWorld_default_));
66268
66312
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66269
- /* provided dependency */ var FileLoader_$ = __webpack_require__(375);
66313
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(962);
66270
66314
  /*******************************************************************************
66271
66315
  *
66272
66316
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67196,7 +67240,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67196
67240
 
67197
67241
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (x_ite_Namespace .add ("ProtoDeclarationArray", ProtoDeclarationArray_default_));
67198
67242
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
67199
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(375);
67243
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(962);
67200
67244
  /*******************************************************************************
67201
67245
  *
67202
67246
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67360,8 +67404,6 @@ Object .assign (Object .setPrototypeOf (X3DRoute .prototype, Base_X3DObject .pro
67360
67404
  : this [_sourceNode] .getExportedNode ();
67361
67405
 
67362
67406
  this [_sourceField] = sourceNode .getField (this [_sourceFieldName]);
67363
-
67364
- this [_sourceField] .addOutputRoute (this);
67365
67407
  }
67366
67408
  catch (error)
67367
67409
  {
@@ -67376,7 +67418,6 @@ Object .assign (Object .setPrototypeOf (X3DRoute .prototype, Base_X3DObject .pro
67376
67418
 
67377
67419
  this [_destinationField] = destinationNode .getField (this [_destinationFieldName]);
67378
67420
 
67379
- this [_destinationField] .addInputRoute (this);
67380
67421
  }
67381
67422
  catch (error)
67382
67423
  {
@@ -67385,7 +67426,18 @@ Object .assign (Object .setPrototypeOf (X3DRoute .prototype, Base_X3DObject .pro
67385
67426
 
67386
67427
  if (this [_sourceField] && this [_destinationField])
67387
67428
  {
67388
- this [_sourceField] .addFieldInterest (this [_destinationField]);
67429
+ if (this [_sourceField] .getType () !== this [_destinationField] .getType ())
67430
+ throw new Error (`Bad ROUTE statement: Source field type must match destination field type of fields named "${this [_sourceField] .getName ()}" and "${this [_destinationField] .getName ()}".`);
67431
+
67432
+ if (!this [_sourceField] .isOutput ())
67433
+ throw new Error (`Bad ROUTE statement: Source field "${this [_sourceField] .getName ()}" must be an output.`);
67434
+
67435
+ if (!this [_destinationField] .isInput ())
67436
+ throw new Error (`Bad ROUTE statement: Destination field "${this [_destinationField] .getName ()}" must be an input.`);
67437
+
67438
+ this [_sourceField] .addOutputRoute (this);
67439
+ this [_destinationField] .addInputRoute (this);
67440
+ this [_sourceField] .addFieldInterest (this [_destinationField]);
67389
67441
  }
67390
67442
  else
67391
67443
  {
@@ -69078,6 +69130,15 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
69078
69130
 
69079
69131
  throw new Error ("Root node not available.");
69080
69132
  },
69133
+ isDefaultValue (field)
69134
+ {
69135
+ const protoNode = this [_protoNode];
69136
+
69137
+ if (protoNode .isExternProto && protoNode .checkLoadState () !== Base_X3DConstants .COMPLETE_STATE)
69138
+ return field .getModificationTime () === 0;
69139
+
69140
+ return Core_X3DNode .prototype .isDefaultValue .call (this, field);
69141
+ },
69081
69142
  importExternProtos (externprotos1)
69082
69143
  {
69083
69144
  const externprotos2 = this [X3DPrototypeInstance_body] .externprotos;
@@ -73833,17 +73894,18 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73833
73894
  return function ()
73834
73895
  {
73835
73896
  const
73836
- options = this .getBrowser () .getBoxOptions (),
73837
- geometry = options .getGeometry (),
73838
- size = this ._size .getValue ();
73897
+ options = this .getBrowser () .getBoxOptions (),
73898
+ geometry = options .getGeometry (),
73899
+ size = this ._size .getValue (),
73900
+ vertexArray = this .getVertices ();
73839
73901
 
73840
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
73841
- this .setTangents (geometry .getTangents ());
73842
- this .setNormals (geometry .getNormals ());
73902
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
73903
+ this .getTangents () .assign (geometry .getTangents ());
73904
+ this .getNormals () .assign (geometry .getNormals ());
73843
73905
 
73844
73906
  if (size .equals (defaultSize))
73845
73907
  {
73846
- this .setVertices (geometry .getVertices ());
73908
+ vertexArray .assign (geometry .getVertices ());
73847
73909
 
73848
73910
  this .getMin () .assign (geometry .getMin ());
73849
73911
  this .getMax () .assign (geometry .getMax ());
@@ -73854,8 +73916,7 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73854
73916
  x = Math .abs (size .x / 2),
73855
73917
  y = Math .abs (size .y / 2),
73856
73918
  z = Math .abs (size .z / 2),
73857
- defaultVertices = geometry .getVertices () .getValue (),
73858
- vertexArray = this .getVertices ();
73919
+ defaultVertices = geometry .getVertices () .getValue ();
73859
73920
 
73860
73921
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
73861
73922
  {
@@ -74873,11 +74934,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74873
74934
  SCPyAxis = new Numbers_Vector3 (),
74874
74935
  SCPzAxis = new Numbers_Vector3 ();
74875
74936
 
74876
- const
74937
+ const
74877
74938
  SCPyAxisPrevious = new Numbers_Vector3 (),
74878
74939
  SCPzAxisPrevious = new Numbers_Vector3 ();
74879
74940
 
74880
- const
74941
+ const
74881
74942
  vector3 = new Numbers_Vector3 (),
74882
74943
  rotation = new Numbers_Rotation4 ();
74883
74944
 
@@ -74923,8 +74984,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74923
74984
  for (let i = 0, length = numSpines - 2; i < length; ++ i)
74924
74985
  {
74925
74986
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74926
- .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
74927
- .normalize ();
74987
+ .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
74988
+ .normalize ();
74928
74989
 
74929
74990
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74930
74991
  break;
@@ -74945,8 +75006,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74945
75006
  for (let i = 1, length = numSpines - 1; i < length; ++ i)
74946
75007
  {
74947
75008
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74948
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
74949
- .normalize ();
75009
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
75010
+ .normalize ();
74950
75011
 
74951
75012
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74952
75013
  break;
@@ -74982,11 +75043,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74982
75043
  const s = spine [i] .getValue ();
74983
75044
 
74984
75045
  SCPyAxis .assign (spine [i + 1] .getValue ()) .subtract (s) .normalize ()
74985
- .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
74986
- .normalize ();
75046
+ .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
75047
+ .normalize ();
74987
75048
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (s)
74988
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
74989
- .normalize ();
75049
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
75050
+ .normalize ();
74990
75051
 
74991
75052
  // g.
74992
75053
  if (SCPzAxisPrevious .dot (SCPzAxis) < 0)
@@ -75028,8 +75089,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75028
75089
  if (numSpines > 2)
75029
75090
  {
75030
75091
  SCPzAxis .assign (s) .subtract (spine [numSpines - 2] .getValue ())
75031
- .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75032
- .normalize ();
75092
+ .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75093
+ .normalize ();
75033
75094
  }
75034
75095
 
75035
75096
  // g.
@@ -76323,26 +76384,25 @@ Object .assign (Object .setPrototypeOf (Sphere .prototype, Rendering_X3DGeometry
76323
76384
  build ()
76324
76385
  {
76325
76386
  const
76326
- options = this .getBrowser () .getSphereOptions (),
76327
- geometry = options .getGeometry (),
76328
- radius = Math .abs (this ._radius .getValue ());
76387
+ options = this .getBrowser () .getSphereOptions (),
76388
+ geometry = options .getGeometry (),
76389
+ radius = Math .abs (this ._radius .getValue ()),
76390
+ vertexArray = this .getVertices ();
76329
76391
 
76330
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
76331
- this .setTangents (geometry .getTangents ());
76332
- this .setNormals (geometry .getNormals ());
76392
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
76393
+ this .getTangents () .assign (geometry .getTangents ());
76394
+ this .getNormals () .assign (geometry .getNormals ());
76333
76395
 
76334
76396
  if (radius === 1)
76335
76397
  {
76336
- this .setVertices (geometry .getVertices ());
76398
+ vertexArray .assign (geometry .getVertices ());
76337
76399
 
76338
76400
  this .getMin () .assign (geometry .getMin ());
76339
76401
  this .getMax () .assign (geometry .getMax ());
76340
76402
  }
76341
76403
  else
76342
76404
  {
76343
- const
76344
- defaultVertices = geometry .getVertices () .getValue (),
76345
- vertexArray = this .getVertices ();
76405
+ const defaultVertices = geometry .getVertices () .getValue ();
76346
76406
 
76347
76407
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
76348
76408
  {
@@ -76824,7 +76884,6 @@ function X3DPointGeometryNode (executionContext)
76824
76884
  this .setGeometryType (0);
76825
76885
  this .setPrimitiveMode (browser .getContext () .POINTS);
76826
76886
  this .setSolid (false);
76827
- this .setTransparent (true);
76828
76887
  }
76829
76888
 
76830
76889
  Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Rendering_X3DGeometryNode .prototype),
@@ -76848,6 +76907,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76848
76907
  attribNodes = this .getAttrib (),
76849
76908
  attribBuffers = this .getAttribBuffers ();
76850
76909
 
76910
+ if (!renderContext .transparent)
76911
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76912
+
76851
76913
  for (const node of renderModeNodes)
76852
76914
  node .enable (gl);
76853
76915
 
@@ -76885,6 +76947,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76885
76947
 
76886
76948
  for (const node of renderModeNodes)
76887
76949
  node .disable (gl);
76950
+
76951
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76888
76952
  },
76889
76953
  displayInstanced (gl, renderContext, shapeNode)
76890
76954
  {
@@ -76895,6 +76959,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76895
76959
  attribNodes = this .getAttrib (),
76896
76960
  attribBuffers = this .getAttribBuffers ();
76897
76961
 
76962
+ if (!renderContext .transparent)
76963
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76964
+
76898
76965
  for (const node of renderModeNodes)
76899
76966
  node .enable (gl);
76900
76967
 
@@ -76951,6 +77018,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76951
77018
 
76952
77019
  for (const node of renderModeNodes)
76953
77020
  node .disable (gl);
77021
+
77022
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76954
77023
  },
76955
77024
  });
76956
77025
 
@@ -77420,7 +77489,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77420
77489
  renderObject = renderContext .renderObject,
77421
77490
  viewport = renderObject .getViewVolume () .getViewport (),
77422
77491
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77423
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77492
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77424
77493
  transformShaderNode = browser .getLineTransformShader ();
77425
77494
 
77426
77495
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -77638,7 +77707,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77638
77707
  renderObject = renderContext .renderObject,
77639
77708
  viewport = renderObject .getViewVolume () .getViewport (),
77640
77709
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77641
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77710
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77642
77711
  transformShaderNode = browser .getLineTransformInstancedShader ();
77643
77712
 
77644
77713
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -90459,7 +90528,7 @@ mediump samplerCube textureCube;
90459
90528
 
90460
90529
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90461
90530
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90462
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(375);
90531
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(962);
90463
90532
  /*******************************************************************************
90464
90533
  *
90465
90534
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90763,8 +90832,10 @@ Object .assign (X3DProgrammableShaderObject .prototype,
90763
90832
  {
90764
90833
  const uniform = gl .getUniformLocation (program, "x3d_TextureMatrix[" + i + "]");
90765
90834
 
90766
- if (uniform !== null)
90767
- this .x3d_TextureMatrix [i] = uniform;
90835
+ if (uniform === null)
90836
+ break;
90837
+
90838
+ this .x3d_TextureMatrix [i] = uniform;
90768
90839
  }
90769
90840
 
90770
90841
  for (let i = 0; i < maxTexCoords; ++ i)
@@ -93287,12 +93358,6 @@ const ShaderSource_default_ = ShaderSource;
93287
93358
 
93288
93359
 
93289
93360
  const Fragment1_glsl_default_ = /* glsl */ `
93290
- #if defined(X3D_NORMAL_TEXTURE)
93291
- #extension GL_OES_standard_derivatives:enable
93292
- #endif
93293
- #if defined(X3D_LOGARITHMIC_DEPTH_BUFFER)
93294
- #extension GL_EXT_frag_depth:enable
93295
- #endif
93296
93361
  #if defined(X3D_ALPHA_MODE_MASK)
93297
93362
  uniform float x3d_AlphaCutoff;
93298
93363
  #endif
@@ -93354,6 +93419,12 @@ clip();
93354
93419
  setPointTexCoords();
93355
93420
  #endif
93356
93421
  vec4 finalColor=getMaterialColor();
93422
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93423
+ finalColor.a=1.0;
93424
+ #endif
93425
+ #if defined(X3D_ALPHA_MODE_MASK)
93426
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93427
+ #endif
93357
93428
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93358
93429
  finalColor=getPointColor(finalColor);
93359
93430
  #endif
@@ -93363,12 +93434,6 @@ finalColor=getHatchColor(finalColor);
93363
93434
  #if defined(X3D_FOG)
93364
93435
  finalColor.rgb=getFogColor(finalColor.rgb);
93365
93436
  #endif
93366
- #if defined(X3D_ALPHA_MODE_OPAQUE)
93367
- finalColor.a=1.0;
93368
- #endif
93369
- #if defined(X3D_ALPHA_MODE_MASK)
93370
- if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93371
- #endif
93372
93437
  finalColor.rgb=toneMap(finalColor.rgb);gl_FragColor=finalColor;
93373
93438
  #if defined(X3D_LOGARITHMIC_DEPTH_BUFFER)
93374
93439
  gl_FragDepthEXT=log2(depth)*x3d_LogarithmicFarFactor1_2;
@@ -93409,7 +93474,43 @@ return texCoord;
93409
93474
  #else
93410
93475
  return texCoord0;
93411
93476
  #endif
93412
- }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;
93477
+ }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){
93478
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93479
+ vec2 N=normalize(normal).xy;
93480
+ #else
93481
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
93482
+ #endif
93483
+ return vec4(N*0.5+0.5,0.0,1.0);}else if(mode==x3d_CameraSpaceNormal){
93484
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93485
+ vec3 N=normalize(normal);
93486
+ #else
93487
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93488
+ #endif
93489
+ return vec4(N,1.0);}else if(mode==x3d_CameraSpacePosition){return vec4(vertex,1.0);}else if(mode==x3d_CameraSpaceReflectionVector){
93490
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93491
+ vec3 N=normalize(normal);
93492
+ #else
93493
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93494
+ #endif
93495
+ return vec4(reflect(normalize(vertex),-N),1.0);}else if(mode==x3d_SphereLocal){
93496
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93497
+ vec2 N=normalize(localNormal).xy;
93498
+ #else
93499
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
93500
+ #endif
93501
+ 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){
93502
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93503
+ vec3 N=normalize(normal);
93504
+ #else
93505
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93506
+ #endif
93507
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}else if(mode==x3d_SphereReflectLocal){
93508
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93509
+ vec3 N=normalize(localNormal);
93510
+ #else
93511
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
93512
+ #endif
93513
+ 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;
93413
93514
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93414
93515
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
93415
93516
  ${i === 0 ? "" : "else"} if (textureCoordinateMapping == ${i})
@@ -93475,7 +93576,13 @@ textureColor = texture2D (x3d_TextureProjectorTexture [${i}], texCoord);
93475
93576
  }
93476
93577
  #endif
93477
93578
  `) .join ("\n")}
93478
- 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);
93579
+ return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
93580
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93581
+ vec3 N=normal;
93582
+ #else
93583
+ vec3 N=gl_FrontFacing?normal:-normal;
93584
+ #endif
93585
+ 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);
93479
93586
  #if defined(X3D_COLORSPACE_SRGB)
93480
93587
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
93481
93588
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -93696,6 +93803,12 @@ setPointTexCoords();
93696
93803
  setTexCoords();
93697
93804
  #endif
93698
93805
  vec4 finalColor=getMaterialColor();
93806
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93807
+ finalColor.a=1.0;
93808
+ #endif
93809
+ #if defined(X3D_ALPHA_MODE_MASK)
93810
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93811
+ #endif
93699
93812
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93700
93813
  finalColor=getPointColor(finalColor);
93701
93814
  #endif
@@ -93705,12 +93818,6 @@ finalColor=getHatchColor(finalColor);
93705
93818
  #if defined(X3D_FOG)
93706
93819
  finalColor.rgb=getFogColor(finalColor.rgb);
93707
93820
  #endif
93708
- #if defined(X3D_ALPHA_MODE_OPAQUE)
93709
- finalColor.a=1.0;
93710
- #endif
93711
- #if defined(X3D_ALPHA_MODE_MASK)
93712
- if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93713
- #endif
93714
93821
  finalColor.rgb=toneMap(finalColor.rgb);
93715
93822
  #if defined(X3D_ORDER_INDEPENDENT_TRANSPARENCY)
93716
93823
  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);
@@ -93795,7 +93902,10 @@ t=normalize(TBN[0]);b=normalize(TBN[1]);ng=normalize(TBN[2]);
93795
93902
  #else
93796
93903
  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);
93797
93904
  #endif
93798
- if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}NormalInfo info;info.ng=ng;
93905
+ #if defined(X3D_GEOMETRY_2D)||defined(X3D_GEOMETRY_3D)
93906
+ if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}
93907
+ #endif
93908
+ NormalInfo info;info.ng=ng;
93799
93909
  #if defined(X3D_NORMAL_TEXTURE)
93800
93910
  #if __VERSION__==100
93801
93911
  #if defined(X3D_NORMAL_TEXTURE_2D)
@@ -93855,6 +93965,7 @@ float rand(const in vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*4
93855
93965
  const Point2_glsl_default_ = /* glsl */ `
93856
93966
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93857
93967
  #if defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES)
93968
+ #if!defined(X3D_DEPTH_SHADER)
93858
93969
  void setPointTexCoords(){vec4 texCoord=vec4(gl_PointCoord.x,1.0-gl_PointCoord.y,0.0,1.0);
93859
93970
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93860
93971
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
@@ -93866,14 +93977,15 @@ texCoords [${i}] = texCoord;
93866
93977
  #endif
93867
93978
  `) .join ("\n")}
93868
93979
  }
93980
+ #endif
93869
93981
  #define getPointColor(color)(color)
93870
93982
  #else
93871
- #define setPointTexCoords()
93872
93983
  #if __VERSION__==100
93873
93984
  varying float pointSize;
93874
93985
  #else
93875
93986
  in float pointSize;
93876
93987
  #endif
93988
+ #define setPointTexCoords()
93877
93989
  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;}
93878
93990
  #endif
93879
93991
  #endif
@@ -94026,7 +94138,43 @@ ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
94026
94138
  texCoords [${i}] = texCoord${i};
94027
94139
  #endif
94028
94140
  `) .join ("\n")}
94029
- }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;
94141
+ }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:{
94142
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94143
+ vec2 N=normalize(normal).xy;
94144
+ #else
94145
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
94146
+ #endif
94147
+ return vec4(N*0.5+0.5,0.0,1.0);}case x3d_CameraSpaceNormal:{
94148
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94149
+ vec3 N=normalize(normal);
94150
+ #else
94151
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94152
+ #endif
94153
+ return vec4(N,1.0);}case x3d_CameraSpacePosition:{return vec4(vertex,1.0);}case x3d_CameraSpaceReflectionVector:{
94154
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94155
+ vec3 N=normalize(normal);
94156
+ #else
94157
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94158
+ #endif
94159
+ return vec4(reflect(normalize(vertex),-N),1.0);}case x3d_SphereLocal:{
94160
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94161
+ vec2 N=normalize(localNormal).xy;
94162
+ #else
94163
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
94164
+ #endif
94165
+ 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:{
94166
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94167
+ vec3 N=normalize(normal);
94168
+ #else
94169
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94170
+ #endif
94171
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}case x3d_SphereReflectLocal:{
94172
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94173
+ vec3 N=normalize(localNormal);
94174
+ #else
94175
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
94176
+ #endif
94177
+ 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;
94030
94178
  #if defined(X3D_GEOMETRY_2D)
94031
94179
  if(gl_FrontFacing==false)texCoord.s=1.0-texCoord.s;
94032
94180
  #endif
@@ -94088,7 +94236,13 @@ textureColor = texture (x3d_TextureProjectorTexture [${i}], texCoord);
94088
94236
  break;
94089
94237
  #endif
94090
94238
  `) .join ("\n")}
94091
- }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);
94239
+ }return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
94240
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94241
+ vec3 N=normal;
94242
+ #else
94243
+ vec3 N=gl_FrontFacing?normal:-normal;
94244
+ #endif
94245
+ 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);
94092
94246
  #if defined(X3D_COLORSPACE_SRGB)
94093
94247
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
94094
94248
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -94256,8 +94410,10 @@ void main(){
94256
94410
  clip();
94257
94411
  #endif
94258
94412
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94413
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94259
94414
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94260
94415
  #endif
94416
+ #endif
94261
94417
  gl_FragColor=vec4(gl_FragCoord.z);}`
94262
94418
  ;
94263
94419
 
@@ -94517,8 +94673,10 @@ void main(){
94517
94673
  clip();
94518
94674
  #endif
94519
94675
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94676
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94520
94677
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94521
94678
  #endif
94679
+ #endif
94522
94680
  x3d_FragColor=vec4(gl_FragCoord.z);}`
94523
94681
  ;
94524
94682
 
@@ -95628,7 +95786,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95628
95786
 
95629
95787
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
95630
95788
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95631
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(375);
95789
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(962);
95632
95790
  /*******************************************************************************
95633
95791
  *
95634
95792
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96226,7 +96384,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96226
96384
 
96227
96385
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96228
96386
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96229
- /* provided dependency */ var Appearance_$ = __webpack_require__(375);
96387
+ /* provided dependency */ var Appearance_$ = __webpack_require__(962);
96230
96388
  /*******************************************************************************
96231
96389
  *
96232
96390
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96414,7 +96572,7 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96414
96572
  },
96415
96573
  set_alphaMode__ ()
96416
96574
  {
96417
- this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue (), Shape_AlphaMode .AUTO);
96575
+ this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue ()) ?? Shape_AlphaMode .AUTO;
96418
96576
 
96419
96577
  this .set_alphaCutoff__ ();
96420
96578
  },
@@ -104461,8 +104619,8 @@ const GifMedia_default_ = GifMedia;
104461
104619
 
104462
104620
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
104463
104621
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
104464
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(375);
104465
- /* provided dependency */ var SuperGif = __webpack_require__(776);
104622
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(962);
104623
+ /* provided dependency */ var SuperGif = __webpack_require__(965);
104466
104624
  /*******************************************************************************
104467
104625
  *
104468
104626
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106930,7 +107088,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
106930
107088
 
106931
107089
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
106932
107090
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106933
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(375);
107091
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(962);
106934
107092
  /*******************************************************************************
106935
107093
  *
106936
107094
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107560,7 +107718,7 @@ const TextCompression_default_ = TextCompression;
107560
107718
 
107561
107719
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
107562
107720
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107563
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(375);
107721
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(962);
107564
107722
  /*******************************************************************************
107565
107723
  *
107566
107724
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107793,7 +107951,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107793
107951
  primitiveQuality = value .getValue () .toUpperCase ();
107794
107952
 
107795
107953
  this .localStorage .PrimitiveQuality = primitiveQuality;
107796
- this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality, Core_PrimitiveQuality .MEDIUM);
107954
+ this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality) ?? Core_PrimitiveQuality .MEDIUM;
107797
107955
 
107798
107956
  if (typeof browser .setPrimitiveQuality2D === "function")
107799
107957
  browser .setPrimitiveQuality2D (this .primitiveQuality);
@@ -107808,7 +107966,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107808
107966
  textureQuality = value .getValue () .toUpperCase ();
107809
107967
 
107810
107968
  this .localStorage .TextureQuality = textureQuality;
107811
- this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality, Core_TextureQuality .MEDIUM);
107969
+ this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality) ?? Core_TextureQuality .MEDIUM;
107812
107970
 
107813
107971
  if (typeof browser .setTextureQuality === "function")
107814
107972
  browser .setTextureQuality (this .textureQuality);
@@ -107829,7 +107987,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107829
107987
  browser = this .getBrowser (),
107830
107988
  shading = value .getValue () .toUpperCase () .replace ("POINTSET", "POINT");
107831
107989
 
107832
- this .shading = BrowserOptions_$.enum (Core_Shading, shading, Core_Shading .GOURAUD);
107990
+ this .shading = BrowserOptions_$.enum (Core_Shading, shading) ?? Core_Shading .GOURAUD;
107833
107991
 
107834
107992
  browser .getRenderingProperties () ._Shading = strings [this .shading];
107835
107993
  browser .setShading (this .shading);
@@ -108207,7 +108365,7 @@ const RenderingProperties_default_ = RenderingProperties;
108207
108365
 
108208
108366
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108209
108367
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
108210
- /* provided dependency */ var Notification_$ = __webpack_require__(375);
108368
+ /* provided dependency */ var Notification_$ = __webpack_require__(962);
108211
108369
  /*******************************************************************************
108212
108370
  *
108213
108371
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108329,8 +108487,8 @@ const Notification_default_ = Notification;
108329
108487
 
108330
108488
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108331
108489
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
108332
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(123);
108333
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(375);
108490
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(530);
108491
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(962);
108334
108492
  /*******************************************************************************
108335
108493
  *
108336
108494
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111065,7 +111223,7 @@ const DataStorage_default_ = DataStorage;
111065
111223
 
111066
111224
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111067
111225
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
111068
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(375);
111226
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(962);
111069
111227
  /*******************************************************************************
111070
111228
  *
111071
111229
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113676,8 +113834,8 @@ const X3DViewer_default_ = X3DViewer;
113676
113834
 
113677
113835
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
113678
113836
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
113679
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(415);
113680
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(375);
113837
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(952);
113838
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(962);
113681
113839
  /*******************************************************************************
113682
113840
  *
113683
113841
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114592,8 +114750,8 @@ const ExamineViewer_default_ = ExamineViewer;
114592
114750
 
114593
114751
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
114594
114752
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
114595
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(415);
114596
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(375);
114753
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(952);
114754
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(962);
114597
114755
  /*******************************************************************************
114598
114756
  *
114599
114757
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115608,8 +115766,8 @@ const FlyViewer_default_ = FlyViewer;
115608
115766
 
115609
115767
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
115610
115768
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
115611
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(415);
115612
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(375);
115769
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(952);
115770
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(962);
115613
115771
  /*******************************************************************************
115614
115772
  *
115615
115773
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115938,8 +116096,8 @@ const NoneViewer_default_ = NoneViewer;
115938
116096
 
115939
116097
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
115940
116098
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
115941
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(415);
115942
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(375);
116099
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(952);
116100
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(962);
115943
116101
  /*******************************************************************************
115944
116102
  *
115945
116103
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117084,8 +117242,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117084
117242
 
117085
117243
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117086
117244
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
117087
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(415);
117088
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(375);
117245
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(952);
117246
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(962);
117089
117247
  /*******************************************************************************
117090
117248
  *
117091
117249
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117938,6 +118096,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117938
118096
  geometryContext = shapeNode .getGeometryContext (),
117939
118097
  options = [ ];
117940
118098
 
118099
+ options .push ("X3D_DEPTH_SHADER");
118100
+
117941
118101
  if (geometryContext .hasNormals)
117942
118102
  options .push ("X3D_NORMALS");
117943
118103
 
@@ -117963,6 +118123,12 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117963
118123
  if (appearanceNode .getStyleProperties (geometryContext .geometryType))
117964
118124
  options .push ("X3D_STYLE_PROPERTIES");
117965
118125
 
118126
+ if (+appearanceNode .getMaterial () .getTextureBits ())
118127
+ options .push ("X3D_MATERIAL_TEXTURES");
118128
+
118129
+ if (+appearanceNode .getTextureBits ())
118130
+ options .push ("X3D_TEXTURE");
118131
+
117966
118132
  if (humanoidNode)
117967
118133
  {
117968
118134
  options .push ("X3D_SKINNING");
@@ -118524,7 +118690,7 @@ const Lock_default_ = Lock;
118524
118690
 
118525
118691
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
118526
118692
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
118527
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(375);
118693
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(962);
118528
118694
  /*******************************************************************************
118529
118695
  *
118530
118696
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118638,6 +118804,7 @@ Object .assign (X3DRenderingContext .prototype,
118638
118804
  gl .enable (gl .DEPTH_TEST);
118639
118805
  gl .depthFunc (gl .LEQUAL);
118640
118806
  gl .clearDepth (1);
118807
+ gl .sampleCoverage (1.0, false);
118641
118808
 
118642
118809
  gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
118643
118810
  gl .blendEquationSeparate (gl .FUNC_ADD, gl .FUNC_ADD);
@@ -119308,13 +119475,12 @@ const X3DScriptingContext_default_ = X3DScriptingContext;
119308
119475
 
119309
119476
 
119310
119477
  const
119311
- _wireframe = Symbol (),
119312
119478
  _primitiveModes = Symbol (),
119313
- _shaderNodes = Symbol ();
119479
+ _shaderNodes = Symbol (),
119480
+ _wireframe = Symbol ();
119314
119481
 
119315
119482
  function X3DShadersContext ()
119316
119483
  {
119317
- this [_wireframe] = false;
119318
119484
  this [_primitiveModes] = new Map ();
119319
119485
  this [_shaderNodes] = new Map ();
119320
119486
  }
@@ -119355,10 +119521,6 @@ Object .assign (X3DShadersContext .prototype,
119355
119521
 
119356
119522
  return gl .getParameter (gl .MAX_VARYING_VECTORS);
119357
119523
  },
119358
- getWireframe ()
119359
- {
119360
- return this [_wireframe];
119361
- },
119362
119524
  getPrimitiveMode (primitiveMode)
119363
119525
  {
119364
119526
  return this [_primitiveModes] .get (primitiveMode);
@@ -119369,26 +119531,43 @@ Object .assign (X3DShadersContext .prototype,
119369
119531
  },
119370
119532
  setShading (type)
119371
119533
  {
119372
- const gl = this .getContext ();
119534
+ const
119535
+ gl = this .getContext (),
119536
+ primitiveModes = this [_primitiveModes];
119537
+
119538
+ if (this [_wireframe])
119539
+ {
119540
+ this [_wireframe] = false;
119541
+
119542
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119543
+
119544
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .FILL_WEBGL);
119545
+ }
119373
119546
 
119374
119547
  switch (type)
119375
119548
  {
119376
119549
  case Core_Shading .POINT:
119377
119550
  {
119378
- this [_wireframe] = false;
119551
+ primitiveModes
119552
+ .set (gl .POINTS, gl .POINTS)
119553
+ .set (gl .LINES, gl .POINTS)
119554
+ .set (gl .TRIANGLES, gl .POINTS);
119379
119555
 
119380
- this [_primitiveModes] .set (gl .POINTS, gl .POINTS);
119381
- this [_primitiveModes] .set (gl .LINES, gl .POINTS);
119382
- this [_primitiveModes] .set (gl .TRIANGLES, gl .POINTS);
119383
119556
  break;
119384
119557
  }
119385
119558
  case Core_Shading .WIREFRAME:
119386
119559
  {
119387
119560
  this [_wireframe] = true;
119388
119561
 
119389
- this [_primitiveModes] .set (gl .POINTS, gl .POINTS);
119390
- this [_primitiveModes] .set (gl .LINES, gl .LINES);
119391
- this [_primitiveModes] .set (gl .TRIANGLES, gl .LINE_LOOP);
119562
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119563
+
119564
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .LINE_WEBGL);
119565
+
119566
+ primitiveModes
119567
+ .set (gl .POINTS, gl .POINTS)
119568
+ .set (gl .LINES, gl .LINES)
119569
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119570
+
119392
119571
  break;
119393
119572
  }
119394
119573
  default:
@@ -119397,15 +119576,19 @@ Object .assign (X3DShadersContext .prototype,
119397
119576
  // case Shading .GOURAUD:
119398
119577
  // case Shading .PHONG:
119399
119578
 
119400
- this [_wireframe] = false;
119401
-
119402
- this [_primitiveModes] .set (gl .POINTS, gl .POINTS);
119403
- this [_primitiveModes] .set (gl .LINES, gl .LINES);
119404
- this [_primitiveModes] .set (gl .TRIANGLES, gl .TRIANGLES);
119579
+ primitiveModes
119580
+ .set (gl .POINTS, gl .POINTS)
119581
+ .set (gl .LINES, gl .LINES)
119582
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119583
+
119405
119584
  break;
119406
119585
  }
119407
119586
  }
119408
119587
  },
119588
+ getWireframe ()
119589
+ {
119590
+ return this [_wireframe];
119591
+ },
119409
119592
  createShader (name, vs, fs = vs, options = [ ], uniformNames = [ ], transformFeedbackVaryings = [ ])
119410
119593
  {
119411
119594
  if (DEVELOPMENT)
@@ -119830,7 +120013,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
119830
120013
 
119831
120014
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
119832
120015
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
119833
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(375);
120016
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(962);
119834
120017
  const KTXDecoder_default_ = class KTXDecoder
119835
120018
  {
119836
120019
  constructor (gl, externalKtxlib, scriptDir)
@@ -121407,7 +121590,7 @@ const Components_default_ = Components;
121407
121590
 
121408
121591
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
121409
121592
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
121410
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(375);
121593
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(962);
121411
121594
  /*******************************************************************************
121412
121595
  * MIT License
121413
121596
  *
@@ -122673,7 +122856,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
122673
122856
 
122674
122857
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
122675
122858
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
122676
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(375);
122859
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(962);
122677
122860
  /*******************************************************************************
122678
122861
  *
122679
122862
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -123740,7 +123923,7 @@ const X3DBrowser_default_ = X3DBrowser;
123740
123923
 
123741
123924
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
123742
123925
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
123743
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(375);
123926
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(962);
123744
123927
  /*******************************************************************************
123745
123928
  *
123746
123929
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124007,8 +124190,8 @@ const QuickSort_default_ = QuickSort;
124007
124190
 
124008
124191
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124009
124192
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124010
- /* provided dependency */ var jquery_$ = __webpack_require__(375);
124011
- /* provided dependency */ var pako = __webpack_require__(671);
124193
+ /* provided dependency */ var jquery_$ = __webpack_require__(962);
124194
+ /* provided dependency */ var pako = __webpack_require__(58);
124012
124195
  Object .assign (jquery_$,
124013
124196
  {
124014
124197
  decodeText (input)
@@ -124045,9 +124228,10 @@ Object .assign (jquery_$,
124045
124228
  console .error (error .message);
124046
124229
  }
124047
124230
  },
124048
- enum (object, property, defaultValue)
124231
+ enum (object, property)
124049
124232
  {
124050
- return object .hasOwnProperty (property) ? object [property] : defaultValue;
124233
+ if (object .hasOwnProperty (property))
124234
+ return object [property];
124051
124235
  },
124052
124236
  });
124053
124237
 
@@ -124084,13 +124268,13 @@ const jquery_default_ = jquery_$;
124084
124268
 
124085
124269
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124086
124270
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
124087
- /* provided dependency */ var libtess_libtess = __webpack_require__(660);
124271
+ /* provided dependency */ var libtess_libtess = __webpack_require__(459);
124088
124272
  const libtess_default_ = libtess_libtess;
124089
124273
  ;
124090
124274
 
124091
124275
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124092
124276
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
124093
- /* provided dependency */ var X3D_$ = __webpack_require__(375);
124277
+ /* provided dependency */ var X3D_$ = __webpack_require__(962);
124094
124278
  /*******************************************************************************
124095
124279
  *
124096
124280
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124394,7 +124578,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
124394
124578
 
124395
124579
  // Assign X3D to global namespace.
124396
124580
 
124397
- window [Symbol .for ("X_ITE.X3D-10.4.2")] = x_ite_X3D;
124581
+ window [Symbol .for ("X_ITE.X3D-10.5.1")] = x_ite_X3D;
124398
124582
 
124399
124583
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
124400
124584