x_ite 10.4.2 → 10.5.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (49) hide show
  1. package/README.md +4 -4
  2. package/dist/assets/components/AnnotationComponent.js +2 -2
  3. package/dist/assets/components/AnnotationComponent.min.js +2 -2
  4. package/dist/assets/components/CADGeometryComponent.js +2 -2
  5. package/dist/assets/components/CADGeometryComponent.min.js +2 -2
  6. package/dist/assets/components/CubeMapTexturingComponent.js +2 -2
  7. package/dist/assets/components/CubeMapTexturingComponent.min.js +2 -2
  8. package/dist/assets/components/DISComponent.js +2 -2
  9. package/dist/assets/components/DISComponent.min.js +2 -2
  10. package/dist/assets/components/EventUtilitiesComponent.js +2 -2
  11. package/dist/assets/components/EventUtilitiesComponent.min.js +2 -2
  12. package/dist/assets/components/Geometry2DComponent.js +19 -23
  13. package/dist/assets/components/Geometry2DComponent.min.js +2 -2
  14. package/dist/assets/components/GeospatialComponent.js +2 -2
  15. package/dist/assets/components/GeospatialComponent.min.js +2 -2
  16. package/dist/assets/components/HAnimComponent.js +2 -2
  17. package/dist/assets/components/HAnimComponent.min.js +2 -2
  18. package/dist/assets/components/KeyDeviceSensorComponent.js +2 -2
  19. package/dist/assets/components/KeyDeviceSensorComponent.min.js +2 -2
  20. package/dist/assets/components/LayoutComponent.js +2 -6
  21. package/dist/assets/components/LayoutComponent.min.js +2 -2
  22. package/dist/assets/components/NURBSComponent.js +805 -770
  23. package/dist/assets/components/NURBSComponent.min.js +2 -2
  24. package/dist/assets/components/ParticleSystemsComponent.js +10 -13
  25. package/dist/assets/components/ParticleSystemsComponent.min.js +2 -2
  26. package/dist/assets/components/PickingComponent.js +2 -2
  27. package/dist/assets/components/PickingComponent.min.js +2 -2
  28. package/dist/assets/components/RigidBodyPhysicsComponent.js +2 -2
  29. package/dist/assets/components/RigidBodyPhysicsComponent.min.js +2 -2
  30. package/dist/assets/components/ScriptingComponent.js +2 -2
  31. package/dist/assets/components/ScriptingComponent.min.js +2 -2
  32. package/dist/assets/components/TextComponent.js +7 -13
  33. package/dist/assets/components/TextComponent.min.js +2 -2
  34. package/dist/assets/components/TextureProjectionComponent.js +2 -2
  35. package/dist/assets/components/TextureProjectionComponent.min.js +2 -2
  36. package/dist/assets/components/Texturing3DComponent.js +10 -10
  37. package/dist/assets/components/Texturing3DComponent.min.js +2 -2
  38. package/dist/assets/components/VolumeRenderingComponent.js +2 -2
  39. package/dist/assets/components/VolumeRenderingComponent.min.js +2 -2
  40. package/dist/assets/components/X_ITEComponent.js +2 -2
  41. package/dist/assets/components/X_ITEComponent.min.js +2 -2
  42. package/dist/example.html +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +483 -308
  45. package/dist/x_ite.min.js +2 -2
  46. package/dist/x_ite.min.mjs +2 -2
  47. package/dist/x_ite.mjs +483 -308
  48. package/dist/x_ite.zip +0 -0
  49. package/package.json +3 -3
package/dist/x_ite.mjs CHANGED
@@ -1,10 +1,10 @@
1
- /* X_ITE v10.4.2 */
1
+ /* X_ITE v10.5.0 */
2
2
  var __webpack_modules__ = ({
3
3
 
4
- /***/ 123:
4
+ /***/ 306:
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__(386);
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
+ /***/ 336:
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__(386)], __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
+ /***/ 386:
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
+ /***/ 475:
11153
11153
  /***/ ((module) => {
11154
11154
 
11155
11155
  /**
@@ -15928,7 +15928,7 @@ if (true) {
15928
15928
 
15929
15929
  /***/ }),
15930
15930
 
15931
- /***/ 671:
15931
+ /***/ 514:
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
+ /***/ 141:
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.0")];
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__(386);
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.0";
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__(475);
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__(386);
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__(386);
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__(386);
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__(386);
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__(386);
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__(386);
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__(386);
52150
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(475);
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__(386);
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 ();
60238
+ #typedArray = new Float32Array ();
60188
60239
 
60189
- const array = [ ];
60190
-
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__(386);
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__(386);
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__(386);
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
  {
@@ -73833,17 +73885,18 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73833
73885
  return function ()
73834
73886
  {
73835
73887
  const
73836
- options = this .getBrowser () .getBoxOptions (),
73837
- geometry = options .getGeometry (),
73838
- size = this ._size .getValue ();
73888
+ options = this .getBrowser () .getBoxOptions (),
73889
+ geometry = options .getGeometry (),
73890
+ size = this ._size .getValue (),
73891
+ vertexArray = this .getVertices ();
73839
73892
 
73840
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
73841
- this .setTangents (geometry .getTangents ());
73842
- this .setNormals (geometry .getNormals ());
73893
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
73894
+ this .getTangents () .assign (geometry .getTangents ());
73895
+ this .getNormals () .assign (geometry .getNormals ());
73843
73896
 
73844
73897
  if (size .equals (defaultSize))
73845
73898
  {
73846
- this .setVertices (geometry .getVertices ());
73899
+ vertexArray .assign (geometry .getVertices ());
73847
73900
 
73848
73901
  this .getMin () .assign (geometry .getMin ());
73849
73902
  this .getMax () .assign (geometry .getMax ());
@@ -73854,8 +73907,7 @@ Object .assign (Object .setPrototypeOf (Box .prototype, Rendering_X3DGeometryNod
73854
73907
  x = Math .abs (size .x / 2),
73855
73908
  y = Math .abs (size .y / 2),
73856
73909
  z = Math .abs (size .z / 2),
73857
- defaultVertices = geometry .getVertices () .getValue (),
73858
- vertexArray = this .getVertices ();
73910
+ defaultVertices = geometry .getVertices () .getValue ();
73859
73911
 
73860
73912
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
73861
73913
  {
@@ -74873,11 +74925,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74873
74925
  SCPyAxis = new Numbers_Vector3 (),
74874
74926
  SCPzAxis = new Numbers_Vector3 ();
74875
74927
 
74876
- const
74928
+ const
74877
74929
  SCPyAxisPrevious = new Numbers_Vector3 (),
74878
74930
  SCPzAxisPrevious = new Numbers_Vector3 ();
74879
74931
 
74880
- const
74932
+ const
74881
74933
  vector3 = new Numbers_Vector3 (),
74882
74934
  rotation = new Numbers_Rotation4 ();
74883
74935
 
@@ -74923,8 +74975,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74923
74975
  for (let i = 0, length = numSpines - 2; i < length; ++ i)
74924
74976
  {
74925
74977
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74926
- .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
74927
- .normalize ();
74978
+ .cross (vector3 .assign (spine [length] .getValue ()) .subtract (spine [i] .getValue ()))
74979
+ .normalize ();
74928
74980
 
74929
74981
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74930
74982
  break;
@@ -74945,8 +74997,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74945
74997
  for (let i = 1, length = numSpines - 1; i < length; ++ i)
74946
74998
  {
74947
74999
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (spine [i] .getValue ())
74948
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
74949
- .normalize ();
75000
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (spine [i] .getValue ()))
75001
+ .normalize ();
74950
75002
 
74951
75003
  if (!SCPzAxis .equals (Numbers_Vector3 .Zero))
74952
75004
  break;
@@ -74982,11 +75034,11 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
74982
75034
  const s = spine [i] .getValue ();
74983
75035
 
74984
75036
  SCPyAxis .assign (spine [i + 1] .getValue ()) .subtract (s) .normalize ()
74985
- .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
74986
- .normalize ();
75037
+ .subtract (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s) .normalize ())
75038
+ .normalize ();
74987
75039
  SCPzAxis .assign (spine [i + 1] .getValue ()) .subtract (s)
74988
- .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
74989
- .normalize ();
75040
+ .cross (vector3 .assign (spine [i - 1] .getValue ()) .subtract (s))
75041
+ .normalize ();
74990
75042
 
74991
75043
  // g.
74992
75044
  if (SCPzAxisPrevious .dot (SCPzAxis) < 0)
@@ -75028,8 +75080,8 @@ Object .assign (Object .setPrototypeOf (Extrusion .prototype, Rendering_X3DGeome
75028
75080
  if (numSpines > 2)
75029
75081
  {
75030
75082
  SCPzAxis .assign (s) .subtract (spine [numSpines - 2] .getValue ())
75031
- .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75032
- .normalize ();
75083
+ .cross (vector3 .assign (spine [numSpines - 3] .getValue ()) .subtract (spine [numSpines - 2] .getValue ()))
75084
+ .normalize ();
75033
75085
  }
75034
75086
 
75035
75087
  // g.
@@ -76323,26 +76375,25 @@ Object .assign (Object .setPrototypeOf (Sphere .prototype, Rendering_X3DGeometry
76323
76375
  build ()
76324
76376
  {
76325
76377
  const
76326
- options = this .getBrowser () .getSphereOptions (),
76327
- geometry = options .getGeometry (),
76328
- radius = Math .abs (this ._radius .getValue ());
76378
+ options = this .getBrowser () .getSphereOptions (),
76379
+ geometry = options .getGeometry (),
76380
+ radius = Math .abs (this ._radius .getValue ()),
76381
+ vertexArray = this .getVertices ();
76329
76382
 
76330
- this .setMultiTexCoords (geometry .getMultiTexCoords ());
76331
- this .setTangents (geometry .getTangents ());
76332
- this .setNormals (geometry .getNormals ());
76383
+ this .getMultiTexCoords () .push (... geometry .getMultiTexCoords ());
76384
+ this .getTangents () .assign (geometry .getTangents ());
76385
+ this .getNormals () .assign (geometry .getNormals ());
76333
76386
 
76334
76387
  if (radius === 1)
76335
76388
  {
76336
- this .setVertices (geometry .getVertices ());
76389
+ vertexArray .assign (geometry .getVertices ());
76337
76390
 
76338
76391
  this .getMin () .assign (geometry .getMin ());
76339
76392
  this .getMax () .assign (geometry .getMax ());
76340
76393
  }
76341
76394
  else
76342
76395
  {
76343
- const
76344
- defaultVertices = geometry .getVertices () .getValue (),
76345
- vertexArray = this .getVertices ();
76396
+ const defaultVertices = geometry .getVertices () .getValue ();
76346
76397
 
76347
76398
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
76348
76399
  {
@@ -76824,7 +76875,6 @@ function X3DPointGeometryNode (executionContext)
76824
76875
  this .setGeometryType (0);
76825
76876
  this .setPrimitiveMode (browser .getContext () .POINTS);
76826
76877
  this .setSolid (false);
76827
- this .setTransparent (true);
76828
76878
  }
76829
76879
 
76830
76880
  Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Rendering_X3DGeometryNode .prototype),
@@ -76848,6 +76898,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76848
76898
  attribNodes = this .getAttrib (),
76849
76899
  attribBuffers = this .getAttribBuffers ();
76850
76900
 
76901
+ if (!renderContext .transparent)
76902
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76903
+
76851
76904
  for (const node of renderModeNodes)
76852
76905
  node .enable (gl);
76853
76906
 
@@ -76885,6 +76938,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76885
76938
 
76886
76939
  for (const node of renderModeNodes)
76887
76940
  node .disable (gl);
76941
+
76942
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76888
76943
  },
76889
76944
  displayInstanced (gl, renderContext, shapeNode)
76890
76945
  {
@@ -76895,6 +76950,9 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76895
76950
  attribNodes = this .getAttrib (),
76896
76951
  attribBuffers = this .getAttribBuffers ();
76897
76952
 
76953
+ if (!renderContext .transparent)
76954
+ gl .enable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76955
+
76898
76956
  for (const node of renderModeNodes)
76899
76957
  node .enable (gl);
76900
76958
 
@@ -76951,6 +77009,8 @@ Object .assign (Object .setPrototypeOf (X3DPointGeometryNode .prototype, Renderi
76951
77009
 
76952
77010
  for (const node of renderModeNodes)
76953
77011
  node .disable (gl);
77012
+
77013
+ gl .disable (gl .SAMPLE_ALPHA_TO_COVERAGE);
76954
77014
  },
76955
77015
  });
76956
77016
 
@@ -77420,7 +77480,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77420
77480
  renderObject = renderContext .renderObject,
77421
77481
  viewport = renderObject .getViewVolume () .getViewport (),
77422
77482
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77423
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77483
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77424
77484
  transformShaderNode = browser .getLineTransformShader ();
77425
77485
 
77426
77486
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -77638,7 +77698,7 @@ Object .assign (Object .setPrototypeOf (X3DLineGeometryNode .prototype, Renderin
77638
77698
  renderObject = renderContext .renderObject,
77639
77699
  viewport = renderObject .getViewVolume () .getViewport (),
77640
77700
  projectionMatrix = renderObject .getProjectionMatrix () .get (),
77641
- primitiveMode = browser .getWireframe () ? gl .TRIANGLES : browser .getPrimitiveMode (gl .TRIANGLES),
77701
+ primitiveMode = browser .getPrimitiveMode (gl .TRIANGLES),
77642
77702
  transformShaderNode = browser .getLineTransformInstancedShader ();
77643
77703
 
77644
77704
  modelViewProjectionMatrixArray .set (matrix .assign (renderContext .modelViewMatrix) .multRight (projectionMatrix));
@@ -90459,7 +90519,7 @@ mediump samplerCube textureCube;
90459
90519
 
90460
90520
  /* harmony default export */ const MaterialTextures = (x_ite_Namespace .add ("MaterialTextures", MaterialTextures_default_));
90461
90521
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90462
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(375);
90522
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(386);
90463
90523
  /*******************************************************************************
90464
90524
  *
90465
90525
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90763,8 +90823,10 @@ Object .assign (X3DProgrammableShaderObject .prototype,
90763
90823
  {
90764
90824
  const uniform = gl .getUniformLocation (program, "x3d_TextureMatrix[" + i + "]");
90765
90825
 
90766
- if (uniform !== null)
90767
- this .x3d_TextureMatrix [i] = uniform;
90826
+ if (uniform === null)
90827
+ break;
90828
+
90829
+ this .x3d_TextureMatrix [i] = uniform;
90768
90830
  }
90769
90831
 
90770
90832
  for (let i = 0; i < maxTexCoords; ++ i)
@@ -93287,12 +93349,6 @@ const ShaderSource_default_ = ShaderSource;
93287
93349
 
93288
93350
 
93289
93351
  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
93352
  #if defined(X3D_ALPHA_MODE_MASK)
93297
93353
  uniform float x3d_AlphaCutoff;
93298
93354
  #endif
@@ -93354,6 +93410,12 @@ clip();
93354
93410
  setPointTexCoords();
93355
93411
  #endif
93356
93412
  vec4 finalColor=getMaterialColor();
93413
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93414
+ finalColor.a=1.0;
93415
+ #endif
93416
+ #if defined(X3D_ALPHA_MODE_MASK)
93417
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93418
+ #endif
93357
93419
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93358
93420
  finalColor=getPointColor(finalColor);
93359
93421
  #endif
@@ -93363,12 +93425,6 @@ finalColor=getHatchColor(finalColor);
93363
93425
  #if defined(X3D_FOG)
93364
93426
  finalColor.rgb=getFogColor(finalColor.rgb);
93365
93427
  #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
93428
  finalColor.rgb=toneMap(finalColor.rgb);gl_FragColor=finalColor;
93373
93429
  #if defined(X3D_LOGARITHMIC_DEPTH_BUFFER)
93374
93430
  gl_FragDepthEXT=log2(depth)*x3d_LogarithmicFarFactor1_2;
@@ -93409,7 +93465,43 @@ return texCoord;
93409
93465
  #else
93410
93466
  return texCoord0;
93411
93467
  #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;
93468
+ }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){
93469
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93470
+ vec2 N=normalize(normal).xy;
93471
+ #else
93472
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
93473
+ #endif
93474
+ return vec4(N*0.5+0.5,0.0,1.0);}else if(mode==x3d_CameraSpaceNormal){
93475
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93476
+ vec3 N=normalize(normal);
93477
+ #else
93478
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93479
+ #endif
93480
+ return vec4(N,1.0);}else if(mode==x3d_CameraSpacePosition){return vec4(vertex,1.0);}else if(mode==x3d_CameraSpaceReflectionVector){
93481
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93482
+ vec3 N=normalize(normal);
93483
+ #else
93484
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93485
+ #endif
93486
+ return vec4(reflect(normalize(vertex),-N),1.0);}else if(mode==x3d_SphereLocal){
93487
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93488
+ vec2 N=normalize(localNormal).xy;
93489
+ #else
93490
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
93491
+ #endif
93492
+ 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){
93493
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93494
+ vec3 N=normalize(normal);
93495
+ #else
93496
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
93497
+ #endif
93498
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}else if(mode==x3d_SphereReflectLocal){
93499
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93500
+ vec3 N=normalize(localNormal);
93501
+ #else
93502
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
93503
+ #endif
93504
+ 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
93505
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93414
93506
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
93415
93507
  ${i === 0 ? "" : "else"} if (textureCoordinateMapping == ${i})
@@ -93475,7 +93567,13 @@ textureColor = texture2D (x3d_TextureProjectorTexture [${i}], texCoord);
93475
93567
  }
93476
93568
  #endif
93477
93569
  `) .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);
93570
+ return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
93571
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
93572
+ vec3 N=normal;
93573
+ #else
93574
+ vec3 N=gl_FrontFacing?normal:-normal;
93575
+ #endif
93576
+ 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
93577
  #if defined(X3D_COLORSPACE_SRGB)
93480
93578
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
93481
93579
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -93696,6 +93794,12 @@ setPointTexCoords();
93696
93794
  setTexCoords();
93697
93795
  #endif
93698
93796
  vec4 finalColor=getMaterialColor();
93797
+ #if defined(X3D_ALPHA_MODE_OPAQUE)
93798
+ finalColor.a=1.0;
93799
+ #endif
93800
+ #if defined(X3D_ALPHA_MODE_MASK)
93801
+ if(finalColor.a<x3d_AlphaCutoff)discard;finalColor.a=1.0;
93802
+ #endif
93699
93803
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93700
93804
  finalColor=getPointColor(finalColor);
93701
93805
  #endif
@@ -93705,12 +93809,6 @@ finalColor=getHatchColor(finalColor);
93705
93809
  #if defined(X3D_FOG)
93706
93810
  finalColor.rgb=getFogColor(finalColor.rgb);
93707
93811
  #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
93812
  finalColor.rgb=toneMap(finalColor.rgb);
93715
93813
  #if defined(X3D_ORDER_INDEPENDENT_TRANSPARENCY)
93716
93814
  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 +93893,10 @@ t=normalize(TBN[0]);b=normalize(TBN[1]);ng=normalize(TBN[2]);
93795
93893
  #else
93796
93894
  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
93895
  #endif
93798
- if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}NormalInfo info;info.ng=ng;
93896
+ #if defined(X3D_GEOMETRY_2D)||defined(X3D_GEOMETRY_3D)
93897
+ if(gl_FrontFacing==false){t=-t;b=-b;ng=-ng;}
93898
+ #endif
93899
+ NormalInfo info;info.ng=ng;
93799
93900
  #if defined(X3D_NORMAL_TEXTURE)
93800
93901
  #if __VERSION__==100
93801
93902
  #if defined(X3D_NORMAL_TEXTURE_2D)
@@ -93855,6 +93956,7 @@ float rand(const in vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*4
93855
93956
  const Point2_glsl_default_ = /* glsl */ `
93856
93957
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
93857
93958
  #if defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES)
93959
+ #if!defined(X3D_DEPTH_SHADER)
93858
93960
  void setPointTexCoords(){vec4 texCoord=vec4(gl_PointCoord.x,1.0-gl_PointCoord.y,0.0,1.0);
93859
93961
  ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
93860
93962
  #if X3D_NUM_TEXTURE_COORDINATES > ${i}
@@ -93866,14 +93968,15 @@ texCoords [${i}] = texCoord;
93866
93968
  #endif
93867
93969
  `) .join ("\n")}
93868
93970
  }
93971
+ #endif
93869
93972
  #define getPointColor(color)(color)
93870
93973
  #else
93871
- #define setPointTexCoords()
93872
93974
  #if __VERSION__==100
93873
93975
  varying float pointSize;
93874
93976
  #else
93875
93977
  in float pointSize;
93876
93978
  #endif
93979
+ #define setPointTexCoords()
93877
93980
  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
93981
  #endif
93879
93982
  #endif
@@ -94026,7 +94129,43 @@ ${Array .from ({ length: maxTexCoords }, (_, i) => /* glsl */ `
94026
94129
  texCoords [${i}] = texCoord${i};
94027
94130
  #endif
94028
94131
  `) .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;
94132
+ }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:{
94133
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94134
+ vec2 N=normalize(normal).xy;
94135
+ #else
94136
+ vec2 N=normalize(gl_FrontFacing?normal:-normal).xy;
94137
+ #endif
94138
+ return vec4(N*0.5+0.5,0.0,1.0);}case x3d_CameraSpaceNormal:{
94139
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94140
+ vec3 N=normalize(normal);
94141
+ #else
94142
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94143
+ #endif
94144
+ return vec4(N,1.0);}case x3d_CameraSpacePosition:{return vec4(vertex,1.0);}case x3d_CameraSpaceReflectionVector:{
94145
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94146
+ vec3 N=normalize(normal);
94147
+ #else
94148
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94149
+ #endif
94150
+ return vec4(reflect(normalize(vertex),-N),1.0);}case x3d_SphereLocal:{
94151
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94152
+ vec2 N=normalize(localNormal).xy;
94153
+ #else
94154
+ vec2 N=normalize(gl_FrontFacing?localNormal:-localNormal).xy;
94155
+ #endif
94156
+ 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:{
94157
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94158
+ vec3 N=normalize(normal);
94159
+ #else
94160
+ vec3 N=normalize(gl_FrontFacing?normal:-normal);
94161
+ #endif
94162
+ float eta=textureCoordinateGenerator.parameter[0];return vec4(refract(normalize(vertex),-N,eta),1.0);}case x3d_SphereReflectLocal:{
94163
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94164
+ vec3 N=normalize(localNormal);
94165
+ #else
94166
+ vec3 N=normalize(gl_FrontFacing?localNormal:-localNormal);
94167
+ #endif
94168
+ 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
94169
  #if defined(X3D_GEOMETRY_2D)
94031
94170
  if(gl_FrontFacing==false)texCoord.s=1.0-texCoord.s;
94032
94171
  #endif
@@ -94088,7 +94227,13 @@ textureColor = texture (x3d_TextureProjectorTexture [${i}], texCoord);
94088
94227
  break;
94089
94228
  #endif
94090
94229
  `) .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);
94230
+ }return textureColor;}vec3 getTextureProjectorColor(){vec3 currentColor=vec3(1.0);
94231
+ #if defined(X3D_GEOMETRY_0D)||defined(X3D_GEOMETRY_1D)
94232
+ vec3 N=normal;
94233
+ #else
94234
+ vec3 N=gl_FrontFacing?normal:-normal;
94235
+ #endif
94236
+ 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
94237
  #if defined(X3D_COLORSPACE_SRGB)
94093
94238
  if(bool(x3d_TextureProjectorParams[i].z))T=linearToSRGB(T);
94094
94239
  #elif defined(X3D_COLORSPACE_LINEAR_WHEN_PHYSICAL_MATERIAL)
@@ -94256,8 +94401,10 @@ void main(){
94256
94401
  clip();
94257
94402
  #endif
94258
94403
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94404
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94259
94405
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94260
94406
  #endif
94407
+ #endif
94261
94408
  gl_FragColor=vec4(gl_FragCoord.z);}`
94262
94409
  ;
94263
94410
 
@@ -94517,8 +94664,10 @@ void main(){
94517
94664
  clip();
94518
94665
  #endif
94519
94666
  #if defined(X3D_GEOMETRY_0D)&&defined(X3D_STYLE_PROPERTIES)
94667
+ #if!(defined(X3D_TEXTURE)||defined(X3D_MATERIAL_TEXTURES))
94520
94668
  if(getPointColor(vec4(1.0)).a<0.5)discard;
94521
94669
  #endif
94670
+ #endif
94522
94671
  x3d_FragColor=vec4(gl_FragCoord.z);}`
94523
94672
  ;
94524
94673
 
@@ -95628,7 +95777,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95628
95777
 
95629
95778
  /* harmony default export */ const Shaders_ShaderCompiler = (x_ite_Namespace .add ("ShaderCompiler", ShaderCompiler_default_));
95630
95779
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95631
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(375);
95780
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(386);
95632
95781
  /*******************************************************************************
95633
95782
  *
95634
95783
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96226,7 +96375,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96226
96375
 
96227
96376
  /* harmony default export */ const Shape_X3DAppearanceNode = (x_ite_Namespace .add ("X3DAppearanceNode", X3DAppearanceNode_default_));
96228
96377
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96229
- /* provided dependency */ var Appearance_$ = __webpack_require__(375);
96378
+ /* provided dependency */ var Appearance_$ = __webpack_require__(386);
96230
96379
  /*******************************************************************************
96231
96380
  *
96232
96381
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96414,7 +96563,7 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96414
96563
  },
96415
96564
  set_alphaMode__ ()
96416
96565
  {
96417
- this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue (), Shape_AlphaMode .AUTO);
96566
+ this .alphaMode = Appearance_$.enum (Shape_AlphaMode, this ._alphaMode .getValue ()) ?? Shape_AlphaMode .AUTO;
96418
96567
 
96419
96568
  this .set_alphaCutoff__ ();
96420
96569
  },
@@ -104461,8 +104610,8 @@ const GifMedia_default_ = GifMedia;
104461
104610
 
104462
104611
  /* harmony default export */ const Texturing_GifMedia = (x_ite_Namespace .add ("GifMedia", GifMedia_default_));
104463
104612
  ;// 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);
104613
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(386);
104614
+ /* provided dependency */ var SuperGif = __webpack_require__(141);
104466
104615
  /*******************************************************************************
104467
104616
  *
104468
104617
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106930,7 +107079,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
106930
107079
 
106931
107080
  /* harmony default export */ const gettext = (x_ite_Namespace .add ("gettext", gettext_default_));
106932
107081
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106933
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(375);
107082
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(386);
106934
107083
  /*******************************************************************************
106935
107084
  *
106936
107085
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107560,7 +107709,7 @@ const TextCompression_default_ = TextCompression;
107560
107709
 
107561
107710
  /* harmony default export */ const Core_TextCompression = (x_ite_Namespace .add ("TextCompression", TextCompression_default_));
107562
107711
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107563
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(375);
107712
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(386);
107564
107713
  /*******************************************************************************
107565
107714
  *
107566
107715
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107793,7 +107942,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107793
107942
  primitiveQuality = value .getValue () .toUpperCase ();
107794
107943
 
107795
107944
  this .localStorage .PrimitiveQuality = primitiveQuality;
107796
- this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality, Core_PrimitiveQuality .MEDIUM);
107945
+ this .primitiveQuality = BrowserOptions_$.enum (Core_PrimitiveQuality, primitiveQuality) ?? Core_PrimitiveQuality .MEDIUM;
107797
107946
 
107798
107947
  if (typeof browser .setPrimitiveQuality2D === "function")
107799
107948
  browser .setPrimitiveQuality2D (this .primitiveQuality);
@@ -107808,7 +107957,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107808
107957
  textureQuality = value .getValue () .toUpperCase ();
107809
107958
 
107810
107959
  this .localStorage .TextureQuality = textureQuality;
107811
- this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality, Core_TextureQuality .MEDIUM);
107960
+ this .textureQuality = BrowserOptions_$.enum (Core_TextureQuality, textureQuality) ?? Core_TextureQuality .MEDIUM;
107812
107961
 
107813
107962
  if (typeof browser .setTextureQuality === "function")
107814
107963
  browser .setTextureQuality (this .textureQuality);
@@ -107829,7 +107978,7 @@ Object .assign (Object .setPrototypeOf (BrowserOptions .prototype, Base_X3DBaseN
107829
107978
  browser = this .getBrowser (),
107830
107979
  shading = value .getValue () .toUpperCase () .replace ("POINTSET", "POINT");
107831
107980
 
107832
- this .shading = BrowserOptions_$.enum (Core_Shading, shading, Core_Shading .GOURAUD);
107981
+ this .shading = BrowserOptions_$.enum (Core_Shading, shading) ?? Core_Shading .GOURAUD;
107833
107982
 
107834
107983
  browser .getRenderingProperties () ._Shading = strings [this .shading];
107835
107984
  browser .setShading (this .shading);
@@ -108207,7 +108356,7 @@ const RenderingProperties_default_ = RenderingProperties;
108207
108356
 
108208
108357
  /* harmony default export */ const Core_RenderingProperties = (x_ite_Namespace .add ("RenderingProperties", RenderingProperties_default_));
108209
108358
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
108210
- /* provided dependency */ var Notification_$ = __webpack_require__(375);
108359
+ /* provided dependency */ var Notification_$ = __webpack_require__(386);
108211
108360
  /*******************************************************************************
108212
108361
  *
108213
108362
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108329,8 +108478,8 @@ const Notification_default_ = Notification;
108329
108478
 
108330
108479
  /* harmony default export */ const Core_Notification = (x_ite_Namespace .add ("Notification", Notification_default_));
108331
108480
  ;// 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);
108481
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(306);
108482
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(386);
108334
108483
  /*******************************************************************************
108335
108484
  *
108336
108485
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111065,7 +111214,7 @@ const DataStorage_default_ = DataStorage;
111065
111214
 
111066
111215
  /* harmony default export */ const Utility_DataStorage = (x_ite_Namespace .add ("DataStorage", DataStorage_default_));
111067
111216
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
111068
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(375);
111217
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(386);
111069
111218
  /*******************************************************************************
111070
111219
  *
111071
111220
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113676,8 +113825,8 @@ const X3DViewer_default_ = X3DViewer;
113676
113825
 
113677
113826
  /* harmony default export */ const Navigation_X3DViewer = (x_ite_Namespace .add ("X3DViewer", X3DViewer_default_));
113678
113827
  ;// 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);
113828
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(336);
113829
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(386);
113681
113830
  /*******************************************************************************
113682
113831
  *
113683
113832
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114592,8 +114741,8 @@ const ExamineViewer_default_ = ExamineViewer;
114592
114741
 
114593
114742
  /* harmony default export */ const Navigation_ExamineViewer = (x_ite_Namespace .add ("ExamineViewer", ExamineViewer_default_));
114594
114743
  ;// 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);
114744
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(336);
114745
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(386);
114597
114746
  /*******************************************************************************
114598
114747
  *
114599
114748
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115608,8 +115757,8 @@ const FlyViewer_default_ = FlyViewer;
115608
115757
 
115609
115758
  /* harmony default export */ const Navigation_FlyViewer = (x_ite_Namespace .add ("FlyViewer", FlyViewer_default_));
115610
115759
  ;// 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);
115760
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(336);
115761
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(386);
115613
115762
  /*******************************************************************************
115614
115763
  *
115615
115764
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115938,8 +116087,8 @@ const NoneViewer_default_ = NoneViewer;
115938
116087
 
115939
116088
  /* harmony default export */ const Navigation_NoneViewer = (x_ite_Namespace .add ("NoneViewer", NoneViewer_default_));
115940
116089
  ;// 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);
116090
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(336);
116091
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(386);
115943
116092
  /*******************************************************************************
115944
116093
  *
115945
116094
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117084,8 +117233,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
117084
117233
 
117085
117234
  /* harmony default export */ const Picking_X3DPickingContext = (x_ite_Namespace .add ("X3DPickingContext", X3DPickingContext_default_));
117086
117235
  ;// 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);
117236
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(336);
117237
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(386);
117089
117238
  /*******************************************************************************
117090
117239
  *
117091
117240
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117938,6 +118087,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117938
118087
  geometryContext = shapeNode .getGeometryContext (),
117939
118088
  options = [ ];
117940
118089
 
118090
+ options .push ("X3D_DEPTH_SHADER");
118091
+
117941
118092
  if (geometryContext .hasNormals)
117942
118093
  options .push ("X3D_NORMALS");
117943
118094
 
@@ -117963,6 +118114,12 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117963
118114
  if (appearanceNode .getStyleProperties (geometryContext .geometryType))
117964
118115
  options .push ("X3D_STYLE_PROPERTIES");
117965
118116
 
118117
+ if (+appearanceNode .getMaterial () .getTextureBits ())
118118
+ options .push ("X3D_MATERIAL_TEXTURES");
118119
+
118120
+ if (+appearanceNode .getTextureBits ())
118121
+ options .push ("X3D_TEXTURE");
118122
+
117966
118123
  if (humanoidNode)
117967
118124
  {
117968
118125
  options .push ("X3D_SKINNING");
@@ -118524,7 +118681,7 @@ const Lock_default_ = Lock;
118524
118681
 
118525
118682
  /* harmony default export */ const Utility_Lock = (x_ite_Namespace .add ("Lock", Lock_default_));
118526
118683
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
118527
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(375);
118684
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(386);
118528
118685
  /*******************************************************************************
118529
118686
  *
118530
118687
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118638,6 +118795,7 @@ Object .assign (X3DRenderingContext .prototype,
118638
118795
  gl .enable (gl .DEPTH_TEST);
118639
118796
  gl .depthFunc (gl .LEQUAL);
118640
118797
  gl .clearDepth (1);
118798
+ gl .sampleCoverage (1.0, false);
118641
118799
 
118642
118800
  gl .blendFuncSeparate (gl .SRC_ALPHA, gl .ONE_MINUS_SRC_ALPHA, gl .ONE, gl .ONE_MINUS_SRC_ALPHA);
118643
118801
  gl .blendEquationSeparate (gl .FUNC_ADD, gl .FUNC_ADD);
@@ -119308,13 +119466,12 @@ const X3DScriptingContext_default_ = X3DScriptingContext;
119308
119466
 
119309
119467
 
119310
119468
  const
119311
- _wireframe = Symbol (),
119312
119469
  _primitiveModes = Symbol (),
119313
- _shaderNodes = Symbol ();
119470
+ _shaderNodes = Symbol (),
119471
+ _wireframe = Symbol ();
119314
119472
 
119315
119473
  function X3DShadersContext ()
119316
119474
  {
119317
- this [_wireframe] = false;
119318
119475
  this [_primitiveModes] = new Map ();
119319
119476
  this [_shaderNodes] = new Map ();
119320
119477
  }
@@ -119355,10 +119512,6 @@ Object .assign (X3DShadersContext .prototype,
119355
119512
 
119356
119513
  return gl .getParameter (gl .MAX_VARYING_VECTORS);
119357
119514
  },
119358
- getWireframe ()
119359
- {
119360
- return this [_wireframe];
119361
- },
119362
119515
  getPrimitiveMode (primitiveMode)
119363
119516
  {
119364
119517
  return this [_primitiveModes] .get (primitiveMode);
@@ -119369,26 +119522,43 @@ Object .assign (X3DShadersContext .prototype,
119369
119522
  },
119370
119523
  setShading (type)
119371
119524
  {
119372
- const gl = this .getContext ();
119525
+ const
119526
+ gl = this .getContext (),
119527
+ primitiveModes = this [_primitiveModes];
119528
+
119529
+ if (this [_wireframe])
119530
+ {
119531
+ this [_wireframe] = false;
119532
+
119533
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119534
+
119535
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .FILL_WEBGL);
119536
+ }
119373
119537
 
119374
119538
  switch (type)
119375
119539
  {
119376
119540
  case Core_Shading .POINT:
119377
119541
  {
119378
- this [_wireframe] = false;
119542
+ primitiveModes
119543
+ .set (gl .POINTS, gl .POINTS)
119544
+ .set (gl .LINES, gl .POINTS)
119545
+ .set (gl .TRIANGLES, gl .POINTS);
119379
119546
 
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
119547
  break;
119384
119548
  }
119385
119549
  case Core_Shading .WIREFRAME:
119386
119550
  {
119387
119551
  this [_wireframe] = true;
119388
119552
 
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);
119553
+ const ext = gl .getExtension ("WEBGL_polygon_mode");
119554
+
119555
+ ext ?.polygonModeWEBGL (gl .FRONT_AND_BACK, ext .LINE_WEBGL);
119556
+
119557
+ primitiveModes
119558
+ .set (gl .POINTS, gl .POINTS)
119559
+ .set (gl .LINES, gl .LINES)
119560
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119561
+
119392
119562
  break;
119393
119563
  }
119394
119564
  default:
@@ -119397,15 +119567,19 @@ Object .assign (X3DShadersContext .prototype,
119397
119567
  // case Shading .GOURAUD:
119398
119568
  // case Shading .PHONG:
119399
119569
 
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);
119570
+ primitiveModes
119571
+ .set (gl .POINTS, gl .POINTS)
119572
+ .set (gl .LINES, gl .LINES)
119573
+ .set (gl .TRIANGLES, gl .TRIANGLES);
119574
+
119405
119575
  break;
119406
119576
  }
119407
119577
  }
119408
119578
  },
119579
+ getWireframe ()
119580
+ {
119581
+ return this [_wireframe];
119582
+ },
119409
119583
  createShader (name, vs, fs = vs, options = [ ], uniformNames = [ ], transformFeedbackVaryings = [ ])
119410
119584
  {
119411
119585
  if (DEVELOPMENT)
@@ -119830,7 +120004,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
119830
120004
 
119831
120005
  /* harmony default export */ const Sound_X3DSoundContext = (x_ite_Namespace .add ("X3DSoundContext", X3DSoundContext_default_));
119832
120006
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
119833
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(375);
120007
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(386);
119834
120008
  const KTXDecoder_default_ = class KTXDecoder
119835
120009
  {
119836
120010
  constructor (gl, externalKtxlib, scriptDir)
@@ -121407,7 +121581,7 @@ const Components_default_ = Components;
121407
121581
 
121408
121582
  /* harmony default export */ const x_ite_Components = (x_ite_Namespace .add ("Components", Components_default_));
121409
121583
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
121410
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(375);
121584
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(386);
121411
121585
  /*******************************************************************************
121412
121586
  * MIT License
121413
121587
  *
@@ -122673,7 +122847,7 @@ const FieldTypes_default_ = new Configuration_FieldTypesArray (Object .values (x
122673
122847
 
122674
122848
  /* harmony default export */ const FieldTypes = (x_ite_Namespace .add ("FieldTypes", FieldTypes_default_));
122675
122849
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
122676
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(375);
122850
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(386);
122677
122851
  /*******************************************************************************
122678
122852
  *
122679
122853
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -123740,7 +123914,7 @@ const X3DBrowser_default_ = X3DBrowser;
123740
123914
 
123741
123915
  /* harmony default export */ const Browser_X3DBrowser = (x_ite_Namespace .add ("X3DBrowser", X3DBrowser_default_));
123742
123916
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
123743
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(375);
123917
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(386);
123744
123918
  /*******************************************************************************
123745
123919
  *
123746
123920
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124007,8 +124181,8 @@ const QuickSort_default_ = QuickSort;
124007
124181
 
124008
124182
  /* harmony default export */ const Algorithms_QuickSort = (x_ite_Namespace .add ("QuickSort", QuickSort_default_));
124009
124183
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124010
- /* provided dependency */ var jquery_$ = __webpack_require__(375);
124011
- /* provided dependency */ var pako = __webpack_require__(671);
124184
+ /* provided dependency */ var jquery_$ = __webpack_require__(386);
124185
+ /* provided dependency */ var pako = __webpack_require__(514);
124012
124186
  Object .assign (jquery_$,
124013
124187
  {
124014
124188
  decodeText (input)
@@ -124045,9 +124219,10 @@ Object .assign (jquery_$,
124045
124219
  console .error (error .message);
124046
124220
  }
124047
124221
  },
124048
- enum (object, property, defaultValue)
124222
+ enum (object, property)
124049
124223
  {
124050
- return object .hasOwnProperty (property) ? object [property] : defaultValue;
124224
+ if (object .hasOwnProperty (property))
124225
+ return object [property];
124051
124226
  },
124052
124227
  });
124053
124228
 
@@ -124084,13 +124259,13 @@ const jquery_default_ = jquery_$;
124084
124259
 
124085
124260
  /* harmony default export */ const jquery = (x_ite_Namespace .add ("jquery", jquery_default_));
124086
124261
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
124087
- /* provided dependency */ var libtess_libtess = __webpack_require__(660);
124262
+ /* provided dependency */ var libtess_libtess = __webpack_require__(475);
124088
124263
  const libtess_default_ = libtess_libtess;
124089
124264
  ;
124090
124265
 
124091
124266
  /* harmony default export */ const lib_libtess = (x_ite_Namespace .add ("libtess", libtess_default_));
124092
124267
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
124093
- /* provided dependency */ var X3D_$ = __webpack_require__(375);
124268
+ /* provided dependency */ var X3D_$ = __webpack_require__(386);
124094
124269
  /*******************************************************************************
124095
124270
  *
124096
124271
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124394,7 +124569,7 @@ x_ite_Namespace, x_ite_Namespace .Fields,
124394
124569
 
124395
124570
  // Assign X3D to global namespace.
124396
124571
 
124397
- window [Symbol .for ("X_ITE.X3D-10.4.2")] = x_ite_X3D;
124572
+ window [Symbol .for ("X_ITE.X3D-10.5.0")] = x_ite_X3D;
124398
124573
 
124399
124574
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
124400
124575