x_ite 8.12.2 → 8.12.3

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 (47) hide show
  1. package/dist/assets/components/Annotation.js +13 -13
  2. package/dist/assets/components/Annotation.min.js +1 -1
  3. package/dist/assets/components/CADGeometry.js +14 -14
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +25 -25
  6. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  7. package/dist/assets/components/DIS.js +13 -13
  8. package/dist/assets/components/DIS.min.js +1 -1
  9. package/dist/assets/components/EventUtilities.js +9 -9
  10. package/dist/assets/components/EventUtilities.min.js +1 -1
  11. package/dist/assets/components/Geometry2D.js +19 -19
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +33 -33
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +64 -76
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +26 -26
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +24 -24
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +23 -23
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +18 -18
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +17 -17
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +38 -38
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +24 -24
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjector.js +14 -14
  34. package/dist/assets/components/TextureProjector.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +30 -30
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +18 -18
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +9 -9
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/x_ite.css +1 -1
  42. package/dist/x_ite.js +240 -132
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.min.mjs +1 -1
  45. package/dist/x_ite.mjs +240 -132
  46. package/dist/x_ite.zip +0 -0
  47. package/package.json +1 -1
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v8.12.2 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v8.12.3 */(function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if(typeof define === 'function' && define.amd)
@@ -11,11 +11,11 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 696:
14
+ /***/ 920:
15
15
  /***/ (function(module, exports, __webpack_require__) {
16
16
 
17
17
  "use strict";
18
- /* provided dependency */ var jQuery = __webpack_require__(75);
18
+ /* provided dependency */ var jQuery = __webpack_require__(855);
19
19
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
20
20
 
21
21
  /**
@@ -387,10 +387,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
387
387
 
388
388
  /***/ }),
389
389
 
390
- /***/ 641:
390
+ /***/ 893:
391
391
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
392
392
 
393
- /* provided dependency */ var jQuery = __webpack_require__(75);
393
+ /* provided dependency */ var jQuery = __webpack_require__(855);
394
394
  /**
395
395
  * @preserve jquery.fullscreen 1.1.5
396
396
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -586,7 +586,7 @@ installFullScreenHandlers();
586
586
 
587
587
  /***/ }),
588
588
 
589
- /***/ 829:
589
+ /***/ 517:
590
590
  /***/ ((module, exports, __webpack_require__) => {
591
591
 
592
592
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -600,7 +600,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
600
600
  (function (factory) {
601
601
  if ( true ) {
602
602
  // AMD. Register as an anonymous module.
603
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(75)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
603
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(855)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
604
604
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
605
605
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
606
606
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -811,7 +811,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
811
811
 
812
812
  /***/ }),
813
813
 
814
- /***/ 75:
814
+ /***/ 855:
815
815
  /***/ (function(module, exports) {
816
816
 
817
817
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11535,7 +11535,7 @@ return jQuery;
11535
11535
 
11536
11536
  /***/ }),
11537
11537
 
11538
- /***/ 480:
11538
+ /***/ 250:
11539
11539
  /***/ ((module) => {
11540
11540
 
11541
11541
  /**
@@ -16314,7 +16314,7 @@ if (true) {
16314
16314
 
16315
16315
  /***/ }),
16316
16316
 
16317
- /***/ 436:
16317
+ /***/ 932:
16318
16318
  /***/ (function(__unused_webpack_module, exports) {
16319
16319
 
16320
16320
 
@@ -19559,7 +19559,7 @@ if (true) {
19559
19559
 
19560
19560
  /***/ }),
19561
19561
 
19562
- /***/ 504:
19562
+ /***/ 669:
19563
19563
  /***/ (function(module, exports) {
19564
19564
 
19565
19565
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20687,7 +20687,7 @@ Object .defineProperty (Namespace, "add",
20687
20687
  }
20688
20688
  else
20689
20689
  {
20690
- const X3D = window [Symbol .for ("X_ITE.X3D-8.12.2")];
20690
+ const X3D = window [Symbol .for ("X_ITE.X3D-8.12.3")];
20691
20691
 
20692
20692
  if (X3D)
20693
20693
  X3D [name] = module;
@@ -20935,6 +20935,10 @@ const Algorithm =
20935
20935
 
20936
20936
  return value;
20937
20937
  },
20938
+ roundToMultiple (value, multiple)
20939
+ {
20940
+ return Math .ceil (value / multiple) * multiple;
20941
+ },
20938
20942
  lerp (source, destination, t)
20939
20943
  {
20940
20944
  return source + t * (destination - source);
@@ -34403,7 +34407,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34403
34407
  x_ite_Namespace .add ("X3DBaseNode", "x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34404
34408
  /* harmony default export */ const Base_X3DBaseNode = (X3DBaseNode_default_);
34405
34409
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34406
- /* provided dependency */ var $ = __webpack_require__(75);
34410
+ /* provided dependency */ var $ = __webpack_require__(855);
34407
34411
  /*******************************************************************************
34408
34412
  *
34409
34413
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34540,7 +34544,7 @@ x_ite_Namespace .add ("Legacy", "x_ite/Browser/Legacy", Legacy_default_);
34540
34544
  *
34541
34545
  ******************************************************************************/
34542
34546
 
34543
- const VERSION_default_ = "8.12.2";
34547
+ const VERSION_default_ = "8.12.3";
34544
34548
  ;
34545
34549
 
34546
34550
  x_ite_Namespace .add ("VERSION", "x_ite/Browser/VERSION", VERSION_default_);
@@ -35903,7 +35907,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35903
35907
  if (!(secondParent instanceof x_ite_Fields .MFNode))
35904
35908
  continue;
35905
35909
 
35906
- secondParent .assign (secondParent .filter (node => node ?.getValue () !== this))
35910
+ secondParent .setValue ([... secondParent] .filter (node => node ?.getValue () !== this))
35907
35911
  }
35908
35912
  }
35909
35913
 
@@ -38428,7 +38432,7 @@ const X3DProtoDeclarationNode_default_ = X3DProtoDeclarationNode;
38428
38432
  x_ite_Namespace .add ("X3DProtoDeclarationNode", "x_ite/Prototype/X3DProtoDeclarationNode", X3DProtoDeclarationNode_default_);
38429
38433
  /* harmony default export */ const Prototype_X3DProtoDeclarationNode = (X3DProtoDeclarationNode_default_);
38430
38434
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38431
- /* provided dependency */ var X3DParser_$ = __webpack_require__(75);
38435
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(855);
38432
38436
  /*******************************************************************************
38433
38437
  *
38434
38438
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39253,7 +39257,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
39253
39257
  x_ite_Namespace .add ("X3DProtoDeclaration", "x_ite/Prototype/X3DProtoDeclaration", X3DProtoDeclaration_default_);
39254
39258
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (X3DProtoDeclaration_default_);
39255
39259
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
39256
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(75);
39260
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(855);
39257
39261
  /*******************************************************************************
39258
39262
  *
39259
39263
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -41798,7 +41802,7 @@ const VRMLParser_default_ = VRMLParser;
41798
41802
  x_ite_Namespace .add ("VRMLParser", "x_ite/Parser/VRMLParser", VRMLParser_default_);
41799
41803
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41800
41804
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41801
- /* provided dependency */ var XMLParser_$ = __webpack_require__(75);
41805
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(855);
41802
41806
  /*******************************************************************************
41803
41807
  *
41804
41808
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -43463,6 +43467,7 @@ x_ite_Namespace .add ("JSONParser", "x_ite/Parser/JSONParser", JSONParser_defaul
43463
43467
 
43464
43468
 
43465
43469
 
43470
+
43466
43471
  function X3DOptimizer () { }
43467
43472
 
43468
43473
  Object .assign (X3DOptimizer .prototype,
@@ -43470,6 +43475,7 @@ Object .assign (X3DOptimizer .prototype,
43470
43475
  removeGroups: false,
43471
43476
  removeEmptyGroups: false,
43472
43477
  combineGroupingNodes: false,
43478
+ optimizeInterpolators: false,
43473
43479
  optimizeSceneGraph (nodes)
43474
43480
  {
43475
43481
  const removedNodes = [ ];
@@ -43487,6 +43493,9 @@ Object .assign (X3DOptimizer .prototype,
43487
43493
  if (!node)
43488
43494
  return [ ];
43489
43495
 
43496
+ if (this .optimizeInterpolators)
43497
+ this .removeInterpolatorsWithOnlyOneValue (node, removedNodes);
43498
+
43490
43499
  switch (node .getNodeTypeName ())
43491
43500
  {
43492
43501
  case "Transform":
@@ -43574,6 +43583,30 @@ Object .assign (X3DOptimizer .prototype,
43574
43583
 
43575
43584
  return node;
43576
43585
  },
43586
+ removeInterpolatorsWithOnlyOneValue (node, removedNodes)
43587
+ {
43588
+ for (const field of node .getValue () .getFields ())
43589
+ {
43590
+ if (field .getInputRoutes () .size !== 1)
43591
+ continue;
43592
+
43593
+ const
43594
+ route = Array .from (field .getInputRoutes ()) [0],
43595
+ sourceNode = route .sourceNode;
43596
+
43597
+ if (!sourceNode .getNodeType () .includes (Base_X3DConstants .X3DInterpolatorNode))
43598
+ continue;
43599
+
43600
+ if (sourceNode .key .length !== 1)
43601
+ continue;
43602
+
43603
+ node [route .destinationField] = sourceNode .keyValue [0];
43604
+
43605
+ removedNodes .push (sourceNode);
43606
+
43607
+ route .dispose ();
43608
+ }
43609
+ },
43577
43610
  combineSingleChild (node, removedNodes)
43578
43611
  {
43579
43612
  if (node .children .length !== 1)
@@ -43824,7 +43857,7 @@ const URLs_default_ = URLs;
43824
43857
  x_ite_Namespace .add ("URLs", "x_ite/Browser/Networking/URLs", URLs_default_);
43825
43858
  /* harmony default export */ const Networking_URLs = (URLs_default_);
43826
43859
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
43827
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(75);
43860
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(855);
43828
43861
  /*******************************************************************************
43829
43862
  *
43830
43863
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -43896,9 +43929,10 @@ function GLTF2Parser (scene)
43896
43929
 
43897
43930
  // Optimizer
43898
43931
 
43899
- this .removeGroups = false;
43900
- this .removeEmptyGroups = true;
43901
- this .combineGroupingNodes = true;
43932
+ this .removeGroups = false;
43933
+ this .removeEmptyGroups = true;
43934
+ this .combineGroupingNodes = true;
43935
+ this .optimizeInterpolators = true;
43902
43936
 
43903
43937
  // Globals
43904
43938
 
@@ -44039,7 +44073,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44039
44073
 
44040
44074
  try
44041
44075
  {
44042
- this .optimizeSceneGraph (this .getExecutionContext () .getRootNodes ());
44076
+ this .optimizeSceneGraph (this .getExecutionContext () .getRootNodes ());
44043
44077
  }
44044
44078
  catch (error)
44045
44079
  {
@@ -44170,7 +44204,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44170
44204
 
44171
44205
  if (name)
44172
44206
  {
44173
- scene .addNamedNode (scene .getUniqueName (name), lightNode);
44207
+ scene .addNamedNode (scene .getUniqueName (name), lightNode);
44174
44208
  scene .addExportedNode (scene .getUniqueExportName (name), lightNode);
44175
44209
  }
44176
44210
 
@@ -44444,7 +44478,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44444
44478
 
44445
44479
  if (name)
44446
44480
  {
44447
- scene .addNamedNode (scene .getUniqueName (name), texturePropertiesNode);
44481
+ scene .addNamedNode (scene .getUniqueName (name), texturePropertiesNode);
44448
44482
  scene .addExportedNode (scene .getUniqueExportName (name), texturePropertiesNode);
44449
44483
  }
44450
44484
 
@@ -44545,11 +44579,12 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44545
44579
 
44546
44580
  if (name)
44547
44581
  {
44548
- scene .addNamedNode (scene .getUniqueName (name), textureNode);
44582
+ scene .addNamedNode (scene .getUniqueName (name), textureNode);
44549
44583
  scene .addExportedNode (scene .getUniqueExportName (name), textureNode);
44550
44584
  }
44551
44585
 
44552
- textureNode ._url = images .map (image => image .uri);
44586
+ textureNode ._url = images .map (image => image .uri);
44587
+ textureNode ._colorSpaceConversion = false;
44553
44588
 
44554
44589
  const sampler = this .samplers [texture .sampler];
44555
44590
 
@@ -44633,7 +44668,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44633
44668
 
44634
44669
  if (name)
44635
44670
  {
44636
- scene .addNamedNode (scene .getUniqueName (name), appearanceNode);
44671
+ scene .addNamedNode (scene .getUniqueName (name), appearanceNode);
44637
44672
  scene .addExportedNode (scene .getUniqueExportName (name), appearanceNode);
44638
44673
  }
44639
44674
 
@@ -44953,7 +44988,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44953
44988
  {
44954
44989
  for (const shapeNode of shapeNodes)
44955
44990
  {
44956
- scene .addNamedNode (scene .getUniqueName (name), shapeNode);
44991
+ scene .addNamedNode (scene .getUniqueName (name), shapeNode);
44957
44992
  scene .addExportedNode (scene .getUniqueExportName (name), shapeNode);
44958
44993
  }
44959
44994
  }
@@ -45190,7 +45225,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45190
45225
 
45191
45226
  if (name)
45192
45227
  {
45193
- scene .addNamedNode (scene .getUniqueName (name), viewpointNode);
45228
+ scene .addNamedNode (scene .getUniqueName (name), viewpointNode);
45194
45229
  scene .addExportedNode (scene .getUniqueExportName (name), viewpointNode);
45195
45230
  }
45196
45231
 
@@ -45335,7 +45370,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45335
45370
 
45336
45371
  if (name)
45337
45372
  {
45338
- scene .addNamedNode (scene .getUniqueName (name), transformNode);
45373
+ scene .addNamedNode (scene .getUniqueName (name), transformNode);
45339
45374
  scene .addExportedNode (scene .getUniqueExportName (name), transformNode);
45340
45375
 
45341
45376
  if (transformNode .getTypeName () === "HAnimJoint")
@@ -45414,7 +45449,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45414
45449
 
45415
45450
  if (name)
45416
45451
  {
45417
- scene .addNamedNode (scene .getUniqueName (name), humanoidNode);
45452
+ scene .addNamedNode (scene .getUniqueName (name), humanoidNode);
45418
45453
  scene .addExportedNode (scene .getUniqueExportName (name), humanoidNode);
45419
45454
  }
45420
45455
 
@@ -45510,13 +45545,17 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45510
45545
  skin .skeleton = skin .skeleton ?? this .skeleton (skin .joints);
45511
45546
  skin .inverseBindMatrices = this .inverseBindMatricesAccessors (this .accessors [skin .inverseBindMatrices]);
45512
45547
 
45513
- skin .textureCoordinateNode = scene .createNode ("TextureCoordinate", false);
45514
- skin .normalNode = scene .createNode ("Normal", false);
45515
- skin .coordinateNode = scene .createNode ("Coordinate", false);
45548
+ skin .textureCoordinateNode = scene .createNode ("TextureCoordinate", false);
45549
+ skin .multiTextureCoordinateNode = scene .createNode ("MultiTextureCoordinate", false);
45550
+ skin .normalNode = scene .createNode ("Normal", false);
45551
+ skin .coordinateNode = scene .createNode ("Coordinate", false);
45516
45552
 
45517
- skin .textureCoordinateNode .setup ();
45518
- skin .normalNode .setup ();
45519
- skin .coordinateNode .setup ();
45553
+ skin .textureCoordinateNode ._mapping = "TEXCOORD_0";
45554
+
45555
+ skin .textureCoordinateNode .setup ();
45556
+ skin .multiTextureCoordinateNode .setup ();
45557
+ skin .normalNode .setup ();
45558
+ skin .coordinateNode .setup ();
45520
45559
  },
45521
45560
  jointsArray: function (joints)
45522
45561
  {
@@ -45589,7 +45628,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45589
45628
 
45590
45629
  const switchNode = scene .createNode ("Switch", false);
45591
45630
 
45592
- scene .addNamedNode (scene .getUniqueName ("Scenes"), switchNode);
45631
+ scene .addNamedNode (scene .getUniqueName ("Scenes"), switchNode);
45593
45632
  scene .addExportedNode (scene .getUniqueExportName ("Scenes"), switchNode);
45594
45633
 
45595
45634
  // Scenes.
@@ -45630,7 +45669,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45630
45669
 
45631
45670
  if (name)
45632
45671
  {
45633
- scene .addNamedNode (scene .getUniqueName (name), groupNode);
45672
+ scene .addNamedNode (scene .getUniqueName (name), groupNode);
45634
45673
  scene .addExportedNode (scene .getUniqueExportName (name), groupNode);
45635
45674
  }
45636
45675
 
@@ -45662,7 +45701,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
45662
45701
  scene = this .getExecutionContext (),
45663
45702
  groupNode = scene .createNode ("Group", false);
45664
45703
 
45665
- scene .addNamedNode (scene .getUniqueName ("Animations"), groupNode);
45704
+ scene .addNamedNode (scene .getUniqueName ("Animations"), groupNode);
45666
45705
  scene .addExportedNode (scene .getUniqueExportName ("Animations"), groupNode);
45667
45706
 
45668
45707
  groupNode ._children = animationNodes;
@@ -46397,13 +46436,11 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46397
46436
  return;
46398
46437
 
46399
46438
  const
46400
- skinTextureCoordinateNode = skin .textureCoordinateNode,
46401
- skinNormalNode = skin .normalNode,
46402
- skinCoordinateNode = skin .coordinateNode,
46403
- start = skinCoordinateNode ._point .length,
46404
- textureCoordinateNode = geometryNode ._texCoord ?.getValue (),
46405
- normalNode = geometryNode ._normal ?.getValue (),
46406
- coordinateNode = geometryNode ._coord ?.getValue ();
46439
+ skinCoordinateNode = skin .coordinateNode,
46440
+ start = skinCoordinateNode ._point .length,
46441
+ textureCoordinateNode = geometryNode ._texCoord ?.getValue (),
46442
+ normalNode = geometryNode ._normal ?.getValue (),
46443
+ coordinateNode = geometryNode ._coord ?.getValue ();
46407
46444
 
46408
46445
  if (geometryNode ._coordIndex)
46409
46446
  geometryNode ._coordIndex = geometryNode ._coordIndex .map (index => index < 0 ? -1 : index + start);
@@ -46413,14 +46450,61 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
46413
46450
 
46414
46451
  if (textureCoordinateNode)
46415
46452
  {
46416
- const point = skinTextureCoordinateNode ._point;
46417
- textureCoordinateNode ._point .forEach ((p, i) => point [i + start] = p);
46418
- geometryNode ._texCoord = skinTextureCoordinateNode;
46453
+ switch (textureCoordinateNode .getTypeName ())
46454
+ {
46455
+ case "TextureCoordinate":
46456
+ {
46457
+ const
46458
+ skinTextureCoordinateNode = skin .textureCoordinateNode,
46459
+ point = skinTextureCoordinateNode ._point;
46460
+
46461
+ textureCoordinateNode ._point .forEach ((p, i) => point [i + start] = p);
46462
+ geometryNode ._texCoord = skinTextureCoordinateNode;
46463
+
46464
+ break;
46465
+ }
46466
+ case "MultiTextureCoordinate":
46467
+ {
46468
+ const skinMultiTextureCoordinateNode = skin .multiTextureCoordinateNode;
46469
+
46470
+ for (const t of textureCoordinateNode ._texCoord)
46471
+ {
46472
+ let s = skinMultiTextureCoordinateNode ._texCoord .find (s => s .mapping === t .mapping) ?.getValue ();
46473
+
46474
+ if (!s)
46475
+ {
46476
+ if (t .mapping === "TEXCOORD_0")
46477
+ {
46478
+ s = skin .textureCoordinateNode;
46479
+ }
46480
+ else
46481
+ {
46482
+ s = this .getScene () .createNode ("TextureCoordinate", false);
46483
+ s ._mapping = t .mapping;
46484
+
46485
+ s .setup ();
46486
+ }
46487
+
46488
+ skinMultiTextureCoordinateNode ._texCoord .push (s);
46489
+ }
46490
+
46491
+ const point = s ._point;
46492
+
46493
+ t .point .forEach ((p, i) => point [i + start] = p);
46494
+ }
46495
+
46496
+ geometryNode ._texCoord = skinMultiTextureCoordinateNode;
46497
+ break;
46498
+ }
46499
+ }
46419
46500
  }
46420
46501
 
46421
46502
  if (normalNode)
46422
46503
  {
46423
- const vector = skinNormalNode ._vector;
46504
+ const
46505
+ skinNormalNode = skin .normalNode,
46506
+ vector = skinNormalNode ._vector;
46507
+
46424
46508
  normalNode ._vector .forEach ((v, i) => vector [i + start] = v);
46425
46509
  geometryNode ._normal = skinNormalNode;
46426
46510
  }
@@ -46896,7 +46980,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
46896
46980
  x_ite_Namespace .add ("GLTF2Parser", "x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
46897
46981
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
46898
46982
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
46899
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(75);
46983
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(855);
46900
46984
  /*******************************************************************************
46901
46985
  *
46902
46986
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47048,7 +47132,7 @@ const GLB2Parser_default_ = GLB2Parser;
47048
47132
  x_ite_Namespace .add ("GLB2Parser", "x_ite/Parser/GLB2Parser", GLB2Parser_default_);
47049
47133
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
47050
47134
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
47051
- /* provided dependency */ var OBJParser_$ = __webpack_require__(75);
47135
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(855);
47052
47136
  /*******************************************************************************
47053
47137
  *
47054
47138
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -50403,8 +50487,8 @@ const MatrixStack_default_ = MatrixStack;
50403
50487
  x_ite_Namespace .add ("MatrixStack", "standard/Math/Utility/MatrixStack", MatrixStack_default_);
50404
50488
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
50405
50489
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
50406
- /* provided dependency */ var SVGParser_$ = __webpack_require__(75);
50407
- /* provided dependency */ var libtess = __webpack_require__(480);
50490
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(855);
50491
+ /* provided dependency */ var libtess = __webpack_require__(250);
50408
50492
  /*******************************************************************************
50409
50493
  *
50410
50494
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53172,7 +53256,7 @@ const SVGParser_default_ = SVGParser;
53172
53256
  x_ite_Namespace .add ("SVGParser", "x_ite/Parser/SVGParser", SVGParser_default_);
53173
53257
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
53174
53258
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
53175
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(75);
53259
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(855);
53176
53260
  /*******************************************************************************
53177
53261
  *
53178
53262
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53509,7 +53593,7 @@ const Plane3_default_ = Plane3;
53509
53593
  x_ite_Namespace .add ("Plane3", "standard/Math/Geometry/Plane3", Plane3_default_);
53510
53594
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
53511
53595
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
53512
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(480);
53596
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(250);
53513
53597
  /*******************************************************************************
53514
53598
  *
53515
53599
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -60894,7 +60978,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
60894
60978
  x_ite_Namespace .add ("X3DTexture2DNode", "x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
60895
60979
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
60896
60980
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
60897
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(75);
60981
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(855);
60898
60982
  /*******************************************************************************
60899
60983
  *
60900
60984
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -60970,6 +61054,8 @@ Object .assign (Object .setPrototypeOf (ImageTexture .prototype, Texturing_X3DTe
60970
61054
  Texturing_X3DTexture2DNode .prototype .initialize .call (this);
60971
61055
  Networking_X3DUrlObject .prototype .initialize .call (this);
60972
61056
 
61057
+ this ._colorSpaceConversion .addInterest ("loadNow", this);
61058
+
60973
61059
  this .image .on ("load", this .setImage .bind (this));
60974
61060
  this .image .on ("abort error", this .setError .bind (this));
60975
61061
  this .image .prop ("crossOrigin", "Anonymous");
@@ -61071,7 +61157,7 @@ Object .assign (Object .setPrototypeOf (ImageTexture .prototype, Texturing_X3DTe
61071
61157
  else
61072
61158
  {
61073
61159
  const
61074
- data = await this .getImageData (image),
61160
+ data = await this .getImageData (image, this ._colorSpaceConversion .getValue ()),
61075
61161
  transparent = this .isImageTransparent (data),
61076
61162
  width = image .width,
61077
61163
  height = image .height;
@@ -61092,7 +61178,7 @@ Object .assign (Object .setPrototypeOf (ImageTexture .prototype, Texturing_X3DTe
61092
61178
  this .setError ({ type: error .message });
61093
61179
  }
61094
61180
  },
61095
- getImageData: async function (image, colorspaceConversion = true)
61181
+ getImageData: async function (image, colorSpaceConversion = true)
61096
61182
  {
61097
61183
  const
61098
61184
  gl = this .getBrowser () .getContext (),
@@ -61102,7 +61188,7 @@ Object .assign (Object .setPrototypeOf (ImageTexture .prototype, Texturing_X3DTe
61102
61188
 
61103
61189
  gl .bindFramebuffer (gl .FRAMEBUFFER, framebuffer);
61104
61190
  gl .bindTexture (gl .TEXTURE_2D, texture);
61105
- gl .pixelStorei (gl .UNPACK_COLORSPACE_CONVERSION_WEBGL, colorspaceConversion ? gl .BROWSER_DEFAULT_WEBGL : gl .NONE);
61191
+ gl .pixelStorei (gl .UNPACK_COLORSPACE_CONVERSION_WEBGL, colorSpaceConversion ? gl .BROWSER_DEFAULT_WEBGL : gl .NONE);
61106
61192
  gl .texImage2D (gl .TEXTURE_2D, 0, gl .RGBA, gl .RGBA, gl .UNSIGNED_BYTE, image);
61107
61193
  gl .pixelStorei (gl .UNPACK_COLORSPACE_CONVERSION_WEBGL, gl .BROWSER_DEFAULT_WEBGL);
61108
61194
  gl .framebufferTexture2D (gl .FRAMEBUFFER, gl .COLOR_ATTACHMENT0, gl .TEXTURE_2D, texture, 0);
@@ -61180,6 +61266,7 @@ Object .defineProperties (ImageTexture,
61180
61266
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "url", new x_ite_Fields .MFString ()),
61181
61267
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "autoRefresh", new x_ite_Fields .SFTime ()),
61182
61268
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "autoRefreshTimeLimit", new x_ite_Fields .SFTime (3600)),
61269
+ new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "colorSpaceConversion", new x_ite_Fields .SFBool (true)), // experimental
61183
61270
  new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "repeatS", new x_ite_Fields .SFBool (true)),
61184
61271
  new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "repeatT", new x_ite_Fields .SFBool (true)),
61185
61272
  new Base_X3DFieldDefinition (Base_X3DConstants .initializeOnly, "textureProperties", new x_ite_Fields .SFNode ()),
@@ -65496,7 +65583,7 @@ const X3DWorld_default_ = X3DWorld;
65496
65583
  x_ite_Namespace .add ("X3DWorld", "x_ite/Execution/X3DWorld", X3DWorld_default_);
65497
65584
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
65498
65585
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
65499
- /* provided dependency */ var FileLoader_$ = __webpack_require__(75);
65586
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(855);
65500
65587
  /*******************************************************************************
65501
65588
  *
65502
65589
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -89005,7 +89092,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
89005
89092
  x_ite_Namespace .add ("X3DShaderNode", "x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
89006
89093
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
89007
89094
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
89008
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(75);
89095
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(855);
89009
89096
  /*******************************************************************************
89010
89097
  *
89011
89098
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -92240,7 +92327,7 @@ return normalize(normal)*facing;
92240
92327
  x_ite_Namespace .add ("Normal1.glsl", "assets/shaders/webgl1/include/Normal1.glsl", Normal1_glsl_default_);
92241
92328
  /* harmony default export */ const Normal1_glsl = (Normal1_glsl_default_);
92242
92329
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl1/include/Perlin1.glsl.js
92243
- const Perlin1_glsl_default_ = /* glsl */ `float rand(vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}float rand(vec2 co,float l){return rand(vec2(rand(co),l));}float rand(vec2 co,float l,float t){return rand(vec2(rand(co,l),t));}float perlin(vec2 p,float dim,float time){const float M_PI=3.14159265358979323846;vec2 pos=floor(p*dim);vec2 posx=pos+vec2(1.0,0.0);vec2 posy=pos+vec2(0.0,1.0);vec2 posxy=pos+vec2(1.0);float c=rand(pos,dim,time);float cx=rand(posx,dim,time);float cy=rand(posy,dim,time);float cxy=rand(posxy,dim,time);vec2 d=fract(p*dim);d=-0.5*cos(d*M_PI)+0.5;float ccx=mix(c,cx,d.x);float cycxy=mix(cy,cxy,d.x);float center=mix(ccx,cycxy,d.y);return center*2.0-1.0;}vec3 perlin(vec3 p){return vec3(perlin(p.xy,1.0,0.0),perlin(p.yz,1.0,0.0),perlin(p.zx,1.0,0.0));}
92330
+ const Perlin1_glsl_default_ = /* glsl */ `float rand(const in vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}float rand(const in vec2 co,const in float l){return rand(vec2(rand(co),l));}float rand(const in vec2 co,const in float l,const in float t){return rand(vec2(rand(co,l),t));}float perlin(const in vec2 p,const in float dim,const in float time){const float M_PI=3.14159265358979323846;vec2 pos=floor(p*dim);vec2 posx=pos+vec2(1.0,0.0);vec2 posy=pos+vec2(0.0,1.0);vec2 posxy=pos+vec2(1.0);float c=rand(pos,dim,time);float cx=rand(posx,dim,time);float cy=rand(posy,dim,time);float cxy=rand(posxy,dim,time);vec2 d=fract(p*dim);d=-0.5*cos(d*M_PI)+0.5;float ccx=mix(c,cx,d.x);float cycxy=mix(cy,cxy,d.x);float center=mix(ccx,cycxy,d.y);return center*2.0-1.0;}vec3 perlin(const in vec3 p){return vec3(perlin(p.xy,1.0,0.0),perlin(p.yz,1.0,0.0),perlin(p.zx,1.0,0.0));}
92244
92331
  `
92245
92332
  ;
92246
92333
 
@@ -92821,7 +92908,7 @@ in mat4 x3d_ParticleMatrix;vec4 getParticleVertex(const in vec4 vertex){return x
92821
92908
  x_ite_Namespace .add ("Particle2.glsl", "assets/shaders/webgl2/include/Particle2.glsl", Particle2_glsl_default_);
92822
92909
  /* harmony default export */ const Particle2_glsl = (Particle2_glsl_default_);
92823
92910
  ;// CONCATENATED MODULE: ./src/assets/shaders/webgl2/include/Perlin2.glsl.js
92824
- const Perlin2_glsl_default_ = /* glsl */ `float rand(vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}float rand(vec2 co,float l){return rand(vec2(rand(co),l));}float rand(vec2 co,float l,float t){return rand(vec2(rand(co,l),t));}float perlin(vec2 p,float dim,float time){const float M_PI=3.14159265358979323846;vec2 pos=floor(p*dim);vec2 posx=pos+vec2(1.0,0.0);vec2 posy=pos+vec2(0.0,1.0);vec2 posxy=pos+vec2(1.0);float c=rand(pos,dim,time);float cx=rand(posx,dim,time);float cy=rand(posy,dim,time);float cxy=rand(posxy,dim,time);vec2 d=fract(p*dim);d=-0.5*cos(d*M_PI)+0.5;float ccx=mix(c,cx,d.x);float cycxy=mix(cy,cxy,d.x);float center=mix(ccx,cycxy,d.y);return center*2.0-1.0;}vec3 perlin(vec3 p){return vec3(perlin(p.xy,1.0,0.0),perlin(p.yz,1.0,0.0),perlin(p.zx,1.0,0.0));}
92911
+ const Perlin2_glsl_default_ = /* glsl */ `float rand(const in vec2 co){return fract(sin(dot(co.xy,vec2(12.9898,78.233)))*43758.5453);}float rand(const in vec2 co,const in float l){return rand(vec2(rand(co),l));}float rand(const in vec2 co,const in float l,const in float t){return rand(vec2(rand(co,l),t));}float perlin(const in vec2 p,const in float dim,const in float time){const float M_PI=3.14159265358979323846;vec2 pos=floor(p*dim);vec2 posx=pos+vec2(1.0,0.0);vec2 posy=pos+vec2(0.0,1.0);vec2 posxy=pos+vec2(1.0);float c=rand(pos,dim,time);float cx=rand(posx,dim,time);float cy=rand(posy,dim,time);float cxy=rand(posxy,dim,time);vec2 d=fract(p*dim);d=-0.5*cos(d*M_PI)+0.5;float ccx=mix(c,cx,d.x);float cycxy=mix(cy,cxy,d.x);float center=mix(ccx,cycxy,d.y);return center*2.0-1.0;}vec3 perlin(const in vec3 p){return vec3(perlin(p.xy,1.0,0.0),perlin(p.yz,1.0,0.0),perlin(p.zx,1.0,0.0));}
92825
92912
  `
92826
92913
  ;
92827
92914
 
@@ -92923,15 +93010,20 @@ const Skin2_glsl_default_ = /* glsl */ `#if defined(X3D_SKINNING)
92923
93010
  in float x3d_CoordIndex;uniform sampler2D x3d_JointsTexture;uniform sampler2D x3d_DisplacementsTexture;uniform sampler2D x3d_JointMatricesTexture;mat4 getJointMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+1,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+2,0);vec4 d=texelFetch(x3d_JointMatricesTexture,joint*8+3,0);return mat4(a,b,c,d);}mat3 getDisplacementJointMatrix(const in int joint){mat4 m=getJointMatrix(joint);return mat3(m[0].xyz,m[1].xyz,m[2].xyz);}
92924
93011
  #if defined(X3D_NORMALS)
92925
93012
  vec3 skinNormal=vec3(0.0);mat3 getJointNormalMatrix(const in int joint){vec4 a=texelFetch(x3d_JointMatricesTexture,joint*8+4,0);vec4 b=texelFetch(x3d_JointMatricesTexture,joint*8+5,0);vec4 c=texelFetch(x3d_JointMatricesTexture,joint*8+6,0);return mat3(a.xyz,vec3(a.w,b.xy),vec3(b.zw,c.x));}
93013
+ #define getSkinNormal(normal)(skinNormal)
92926
93014
  #endif
92927
- vec4 getSkinVertex(const in vec4 vertex,const in vec3 normal){int coordIndex2=int(x3d_CoordIndex)*2;ivec4 joints=ivec4(texelFetch(x3d_JointsTexture,coordIndex2,0));vec4 weights=texelFetch(x3d_JointsTexture,coordIndex2+1,0);int width=textureSize(x3d_DisplacementsTexture,0).x;int offset=(width*width)/2;vec4 skin=vertex;for(int i=0;i<2;++i){vec4 displacement=texelFetch(x3d_DisplacementsTexture,coordIndex2+i,0);float weight=texelFetch(x3d_DisplacementsTexture,coordIndex2+offset,0)[i];skin.xyz+=(getDisplacementJointMatrix(int(displacement.w))*displacement.xyz)*weight;}for(int i=0;i<4;++i)skin+=(getJointMatrix(joints[i])*vertex-vertex)*weights[i];
93015
+ vec4 getSkinVertex(const in vec4 vertex,const in vec3 normal){int coordIndex=int(x3d_CoordIndex);vec4 skin=vertex;
92928
93016
  #if defined(X3D_NORMALS)
92929
- {skinNormal=normal;for(int i=0;i<4;++i)skinNormal+=(getJointNormalMatrix(joints[i])*normal-normal)*weights[i];}
93017
+ skinNormal=normal;
93018
+ #endif
93019
+ #if X3D_NUM_DISPLACEMENTS>0
93020
+ {int coordIndexD=coordIndex*X3D_NUM_DISPLACEMENTS;int width=textureSize(x3d_DisplacementsTexture,0).x;int offset=(width*width)/2;for(int i=0;i<X3D_NUM_DISPLACEMENTS;++i){int index=coordIndexD+i;vec4 displacement=texelFetch(x3d_DisplacementsTexture,index,0);float weight=texelFetch(x3d_DisplacementsTexture,index+offset,0).x;skin.xyz+=getDisplacementJointMatrix(int(displacement.w))*displacement.xyz*weight;}}
92930
93021
  #endif
92931
- return skin;}
93022
+ int coordIndexJ=coordIndex*(X3D_NUM_JOINT_SETS*2);for(int i=0;i<X3D_NUM_JOINT_SETS;++i){int index=coordIndexJ+i;ivec4 joints=ivec4(texelFetch(x3d_JointsTexture,index,0));vec4 weights=texelFetch(x3d_JointsTexture,index+X3D_NUM_JOINT_SETS,0);for(int i=0;i<4;++i){int joint=joints[i];float weight=weights[i];skin+=(getJointMatrix(joint)*vertex-vertex)*weight;
92932
93023
  #if defined(X3D_NORMALS)
92933
- vec3 getSkinNormal(const in vec3 normal){return skinNormal;}
93024
+ skinNormal+=(getJointNormalMatrix(joint)*normal-normal)*weight;
92934
93025
  #endif
93026
+ }}return skin;}
92935
93027
  #else
92936
93028
  #define getSkinVertex(vertex,normal)(vertex)
92937
93029
  #define getSkinNormal(normal)(normal)
@@ -94392,7 +94484,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
94392
94484
  x_ite_Namespace .add ("ShaderCompiler", "x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
94393
94485
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
94394
94486
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
94395
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(75);
94487
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(855);
94396
94488
  /*******************************************************************************
94397
94489
  *
94398
94490
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95049,7 +95141,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
95049
95141
  x_ite_Namespace .add ("X3DAppearanceNode", "x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
95050
95142
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
95051
95143
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
95052
- /* provided dependency */ var Appearance_$ = __webpack_require__(75);
95144
+ /* provided dependency */ var Appearance_$ = __webpack_require__(855);
95053
95145
  /*******************************************************************************
95054
95146
  *
95055
95147
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96000,7 +96092,8 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96000
96092
  key += appearanceNode .getStyleProperties (geometryContext .geometryType) ?.getStyleKey () ?? 0;
96001
96093
  key += appearanceNode .getTextureTransformMapping () .size || 1;
96002
96094
  key += geometryContext .textureCoordinateMapping .size || 1;
96003
- key += humanoidNode ? 1 : 0;
96095
+ key += ".";
96096
+ key += humanoidNode ?.getHumanoidKey () ?? "";
96004
96097
  key += ".";
96005
96098
  key += objectsCount [0]; // Clip planes
96006
96099
  key += ".";
@@ -96018,8 +96111,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96018
96111
 
96019
96112
  key += geometryContext .alphaMode;
96020
96113
  key += this .getMaterialKey (false);
96021
- key += "00000110";
96022
- key += ".";
96114
+ key += "0000011.0.";
96023
96115
  key += objectsCount [0]; // Clip planes
96024
96116
  key += ".";
96025
96117
  key += objectsCount [1]; // Lights
@@ -96092,7 +96184,11 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96092
96184
  }
96093
96185
 
96094
96186
  if (humanoidNode)
96187
+ {
96095
96188
  options .push ("X3D_SKINNING");
96189
+ options .push (`X3D_NUM_JOINT_SETS ${humanoidNode .getNumJoints () / 4}`);
96190
+ options .push (`X3D_NUM_DISPLACEMENTS ${humanoidNode .getNumDisplacements ()}`);
96191
+ }
96096
96192
 
96097
96193
  if (objectsCount [0])
96098
96194
  {
@@ -98326,7 +98422,7 @@ const Components_Shape_default_ = {
98326
98422
  x_ite_Namespace .add ("Shape", "x_ite/Components/Shape", Components_Shape_default_);
98327
98423
  /* harmony default export */ const Components_Shape = (Components_Shape_default_);
98328
98424
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundProcessingNode.js
98329
- /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(75);
98425
+ /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(855);
98330
98426
  /*******************************************************************************
98331
98427
  *
98332
98428
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -98741,13 +98837,13 @@ Object .defineProperties (Analyser,
98741
98837
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "maxDecibels", new x_ite_Fields .SFFloat (-30)),
98742
98838
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "smoothingTimeConstant", new x_ite_Fields .SFFloat (0.8)),
98743
98839
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "tailTime", new x_ite_Fields .SFTime ()),
98744
- new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "frequencyBinCount", new x_ite_Fields .SFInt32 ()),
98745
- new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "byteFrequencyData", new x_ite_Fields .MFInt32 ()),
98746
- new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "byteTimeDomainData", new x_ite_Fields .MFInt32 ()),
98747
- new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "floatFrequencyData", new x_ite_Fields .MFFloat ()),
98748
- new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "floatTimeDomainData", new x_ite_Fields .MFFloat ()),
98840
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "frequencyBinCount", new x_ite_Fields .SFInt32 ()), // skip test
98841
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "byteFrequencyData", new x_ite_Fields .MFInt32 ()), // experimental
98842
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "byteTimeDomainData", new x_ite_Fields .MFInt32 ()), // experimental
98843
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "floatFrequencyData", new x_ite_Fields .MFFloat ()), // experimental
98844
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "floatTimeDomainData", new x_ite_Fields .MFFloat ()), // experimental
98749
98845
 
98750
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
98846
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
98751
98847
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
98752
98848
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
98753
98849
 
@@ -98966,7 +99062,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
98966
99062
  x_ite_Namespace .add ("X3DSoundSourceNode", "x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
98967
99063
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
98968
99064
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
98969
- /* provided dependency */ var AudioClip_$ = __webpack_require__(75);
99065
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(855);
98970
99066
  /*******************************************************************************
98971
99067
  *
98972
99068
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -99268,7 +99364,7 @@ const X3DSoundNode_default_ = X3DSoundNode;
99268
99364
  x_ite_Namespace .add ("X3DSoundNode", "x_ite/Components/Sound/X3DSoundNode", X3DSoundNode_default_);
99269
99365
  /* harmony default export */ const Sound_X3DSoundNode = (X3DSoundNode_default_);
99270
99366
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundDestinationNode.js
99271
- /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(75);
99367
+ /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(855);
99272
99368
  /*******************************************************************************
99273
99369
  *
99274
99370
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -99621,14 +99717,14 @@ Object .defineProperties (AudioDestination,
99621
99717
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
99622
99718
 
99623
99719
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
99624
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "mediaDeviceID", new x_ite_Fields .SFString ()),
99720
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "mediaDeviceID", new x_ite_Fields .SFString ()), // skip test
99625
99721
 
99626
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
99722
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
99627
99723
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
99628
99724
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
99629
99725
 
99630
99726
  new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "isActive", new x_ite_Fields .SFBool ()),
99631
- new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "maxChannelCount", new x_ite_Fields .SFInt32 ()),
99727
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "maxChannelCount", new x_ite_Fields .SFInt32 ()), // skip test
99632
99728
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "children", new x_ite_Fields .MFNode ()),
99633
99729
  ]),
99634
99730
  enumerable: true,
@@ -99739,7 +99835,7 @@ Object .defineProperties (BiquadFilter,
99739
99835
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "qualityFactor", new x_ite_Fields .SFFloat (1)),
99740
99836
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "tailTime", new x_ite_Fields .SFTime ()),
99741
99837
 
99742
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
99838
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
99743
99839
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
99744
99840
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
99745
99841
 
@@ -99885,7 +99981,7 @@ Object .defineProperties (BufferAudioSource,
99885
99981
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "loopStart", new x_ite_Fields .SFTime ()),
99886
99982
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "loopEnd", new x_ite_Fields .SFTime ()),
99887
99983
 
99888
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
99984
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
99889
99985
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
99890
99986
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
99891
99987
 
@@ -100080,7 +100176,7 @@ Object .defineProperties (ChannelMerger,
100080
100176
 
100081
100177
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
100082
100178
 
100083
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
100179
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
100084
100180
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
100085
100181
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
100086
100182
 
@@ -100190,7 +100286,7 @@ Object .defineProperties (ChannelSelector,
100190
100286
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
100191
100287
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelSelection", new x_ite_Fields .SFInt32 (0)),
100192
100288
 
100193
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
100289
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
100194
100290
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
100195
100291
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
100196
100292
 
@@ -100299,7 +100395,7 @@ Object .defineProperties (ChannelSplitter,
100299
100395
 
100300
100396
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
100301
100397
 
100302
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
100398
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
100303
100399
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
100304
100400
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
100305
100401
 
@@ -100412,7 +100508,7 @@ Object .defineProperties (Convolver,
100412
100508
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "normalize", new x_ite_Fields .SFBool ()),
100413
100509
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "tailTime", new x_ite_Fields .SFTime ()),
100414
100510
 
100415
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
100511
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
100416
100512
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
100417
100513
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
100418
100514
 
@@ -100532,7 +100628,7 @@ Object .defineProperties (Delay,
100532
100628
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "maxDelayTime", new x_ite_Fields .SFTime (1)),
100533
100629
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "tailTime", new x_ite_Fields .SFTime ()),
100534
100630
 
100535
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
100631
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
100536
100632
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
100537
100633
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
100538
100634
 
@@ -100656,7 +100752,7 @@ Object .defineProperties (DynamicsCompressor,
100656
100752
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "threshold", new x_ite_Fields .SFFloat (-24)),
100657
100753
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "tailTime", new x_ite_Fields .SFTime ()),
100658
100754
 
100659
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
100755
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
100660
100756
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
100661
100757
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
100662
100758
 
@@ -100774,7 +100870,7 @@ Object .defineProperties (Gain,
100774
100870
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
100775
100871
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "tailTime", new x_ite_Fields .SFTime ()),
100776
100872
 
100777
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
100873
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
100778
100874
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
100779
100875
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
100780
100876
 
@@ -100918,7 +101014,7 @@ const ListenerPointSource_default_ = ListenerPointSource;
100918
101014
  x_ite_Namespace .add ("ListenerPointSource", "x_ite/Components/Sound/ListenerPointSource", ListenerPointSource_default_);
100919
101015
  /* harmony default export */ const Sound_ListenerPointSource = (ListenerPointSource_default_);
100920
101016
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/MicrophoneSource.js
100921
- /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(75);
101017
+ /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(855);
100922
101018
  /*******************************************************************************
100923
101019
  *
100924
101020
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -102089,14 +102185,14 @@ Object .defineProperties (StreamAudioDestination,
102089
102185
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "enabled", new x_ite_Fields .SFBool (true)),
102090
102186
 
102091
102187
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "gain", new x_ite_Fields .SFFloat (1)),
102092
- // new X3DFieldDefinition (X3DConstants .inputOutput, "mediaDeviceID", new Fields .SFString ()),
102188
+ // new X3DFieldDefinition (X3DConstants .inputOutput, "mediaDeviceID", new Fields .SFString ()), // skip test
102093
102189
 
102094
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
102190
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
102095
102191
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
102096
102192
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
102097
102193
 
102098
102194
  new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "isActive", new x_ite_Fields .SFBool ()),
102099
- new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "streamIdentifier", new x_ite_Fields .MFString ()),
102195
+ new Base_X3DFieldDefinition (Base_X3DConstants .outputOnly, "streamIdentifier", new x_ite_Fields .MFString ()), // skip test
102100
102196
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "children", new x_ite_Fields .MFNode ()),
102101
102197
  ]),
102102
102198
  enumerable: true,
@@ -102319,7 +102415,7 @@ Object .defineProperties (WaveShaper,
102319
102415
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "oversample", new x_ite_Fields .SFString ("NONE")),
102320
102416
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "tailTime", new x_ite_Fields .SFTime ()),
102321
102417
 
102322
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()),
102418
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCount", new x_ite_Fields .SFInt32 ()), // skip test
102323
102419
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelCountMode", new x_ite_Fields .SFString ("MAX")),
102324
102420
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "channelInterpretation", new x_ite_Fields .SFString ("SPEAKERS")),
102325
102421
 
@@ -102587,8 +102683,8 @@ const GIFMedia_default_ = GifMedia;
102587
102683
  x_ite_Namespace .add ("GIFMedia", "x_ite/Browser/Texturing/GIFMedia", GIFMedia_default_);
102588
102684
  /* harmony default export */ const GIFMedia = (GIFMedia_default_);
102589
102685
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
102590
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(75);
102591
- /* provided dependency */ var SuperGif = __webpack_require__(504);
102686
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(855);
102687
+ /* provided dependency */ var SuperGif = __webpack_require__(669);
102592
102688
  /*******************************************************************************
102593
102689
  *
102594
102690
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -103759,7 +103855,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
103759
103855
  x_ite_Namespace .add ("MultiTextureTransform", "x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
103760
103856
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
103761
103857
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
103762
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(75);
103858
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(855);
103763
103859
  /*******************************************************************************
103764
103860
  *
103765
103861
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105913,7 +106009,7 @@ const gettext_default_ = gettext;
105913
106009
  x_ite_Namespace .add ("gettext", "locale/gettext", gettext_default_);
105914
106010
  /* harmony default export */ const locale_gettext = (gettext_default_);
105915
106011
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
105916
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(75);
106012
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(855);
105917
106013
  /*******************************************************************************
105918
106014
  *
105919
106015
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106343,7 +106439,7 @@ const TextureQuality_default_ = TextureQuality;
106343
106439
  x_ite_Namespace .add ("TextureQuality", "x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
106344
106440
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
106345
106441
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
106346
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(75);
106442
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(855);
106347
106443
  /*******************************************************************************
106348
106444
  *
106349
106445
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106936,7 +107032,7 @@ const RenderingProperties_default_ = RenderingProperties;
106936
107032
  x_ite_Namespace .add ("RenderingProperties", "x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
106937
107033
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
106938
107034
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
106939
- /* provided dependency */ var Notification_$ = __webpack_require__(75);
107035
+ /* provided dependency */ var Notification_$ = __webpack_require__(855);
106940
107036
  /*******************************************************************************
106941
107037
  *
106942
107038
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107059,8 +107155,8 @@ const Notification_default_ = Notification;
107059
107155
  x_ite_Namespace .add ("Notification", "x_ite/Browser/Core/Notification", Notification_default_);
107060
107156
  /* harmony default export */ const Core_Notification = (Notification_default_);
107061
107157
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
107062
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(641);
107063
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(75);
107158
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(893);
107159
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(855);
107064
107160
  /*******************************************************************************
107065
107161
  *
107066
107162
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -109812,7 +109908,7 @@ const DataStorage_default_ = DataStorage;
109812
109908
  x_ite_Namespace .add ("DataStorage", "standard/Utility/DataStorage", DataStorage_default_);
109813
109909
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
109814
109910
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
109815
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(75);
109911
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(855);
109816
109912
  /*******************************************************************************
109817
109913
  *
109818
109914
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111858,8 +111954,8 @@ const X3DViewer_default_ = X3DViewer;
111858
111954
  x_ite_Namespace .add ("X3DViewer", "x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
111859
111955
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
111860
111956
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
111861
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(829);
111862
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(75);
111957
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(517);
111958
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(855);
111863
111959
  /*******************************************************************************
111864
111960
  *
111865
111961
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -112731,8 +112827,8 @@ const ExamineViewer_default_ = ExamineViewer;
112731
112827
  x_ite_Namespace .add ("ExamineViewer", "x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
112732
112828
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
112733
112829
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
112734
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(829);
112735
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(75);
112830
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(517);
112831
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(855);
112736
112832
  /*******************************************************************************
112737
112833
  *
112738
112834
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113736,8 +113832,8 @@ const FlyViewer_default_ = FlyViewer;
113736
113832
  x_ite_Namespace .add ("FlyViewer", "x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
113737
113833
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
113738
113834
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
113739
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(829);
113740
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(75);
113835
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(517);
113836
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(855);
113741
113837
  /*******************************************************************************
113742
113838
  *
113743
113839
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114068,8 +114164,8 @@ const NoneViewer_default_ = NoneViewer;
114068
114164
  x_ite_Namespace .add ("NoneViewer", "x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
114069
114165
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
114070
114166
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
114071
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(829);
114072
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(75);
114167
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(517);
114168
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(855);
114073
114169
  /*******************************************************************************
114074
114170
  *
114075
114171
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115208,8 +115304,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
115208
115304
  x_ite_Namespace .add ("X3DPickingContext", "x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
115209
115305
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
115210
115306
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
115211
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(829);
115212
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(75);
115307
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(517);
115308
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(855);
115213
115309
  /*******************************************************************************
115214
115310
  *
115215
115311
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116031,7 +116127,9 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
116031
116127
  key += ".";
116032
116128
  key += shapeNode .getShapeKey ();
116033
116129
  key += geometryContext .geometryType;
116034
- key += humanoidNode ? 1 : 0;
116130
+ key += ".";
116131
+ key += humanoidNode ?.getHumanoidKey () ?? "";
116132
+ key += ".";
116035
116133
 
116036
116134
  if (geometryContext .geometryType >= 2)
116037
116135
  {
@@ -116072,7 +116170,11 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
116072
116170
  options .push ("X3D_STYLE_PROPERTIES");
116073
116171
 
116074
116172
  if (humanoidNode)
116173
+ {
116075
116174
  options .push ("X3D_SKINNING");
116175
+ options .push (`X3D_NUM_JOINT_SETS ${humanoidNode .getNumJoints () / 4}`);
116176
+ options .push (`X3D_NUM_DISPLACEMENTS ${humanoidNode .getNumDisplacements ()}`);
116177
+ }
116076
116178
 
116077
116179
  const shaderNode = this .createShader ("PointingShader", "Pointing", "Pointing", options);
116078
116180
 
@@ -116487,8 +116589,8 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
116487
116589
  x_ite_Namespace .add ("MultiSampleFrameBuffer", "x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
116488
116590
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
116489
116591
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
116490
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(75);
116491
- /* provided dependency */ var ResizeSensor = __webpack_require__(696);
116592
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(855);
116593
+ /* provided dependency */ var ResizeSensor = __webpack_require__(920);
116492
116594
  /*******************************************************************************
116493
116595
  *
116494
116596
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116670,7 +116772,9 @@ Object .assign (X3DRenderingContext .prototype,
116670
116772
  key += ".";
116671
116773
  key += shapeNode .getShapeKey ();
116672
116774
  key += geometryContext .geometryType;
116673
- key += humanoidNode ? 1 : 0;
116775
+ key += ".";
116776
+ key += humanoidNode ?.getHumanoidKey () ?? "";
116777
+ key += ".";
116674
116778
 
116675
116779
  if (geometryContext .geometryType >= 2)
116676
116780
  {
@@ -116711,7 +116815,11 @@ Object .assign (X3DRenderingContext .prototype,
116711
116815
  options .push ("X3D_STYLE_PROPERTIES");
116712
116816
 
116713
116817
  if (humanoidNode)
116818
+ {
116714
116819
  options .push ("X3D_SKINNING");
116820
+ options .push (`X3D_NUM_JOINT_SETS ${humanoidNode .getNumJoints () / 4}`);
116821
+ options .push (`X3D_NUM_DISPLACEMENTS ${humanoidNode .getNumDisplacements ()}`);
116822
+ }
116715
116823
 
116716
116824
  const shaderNode = this .createShader ("DepthShader", "Depth", "Depth", options);
116717
116825
 
@@ -118769,7 +118877,7 @@ const Components_default_ = Components;
118769
118877
  x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
118770
118878
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
118771
118879
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
118772
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(75);
118880
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(855);
118773
118881
  /*******************************************************************************
118774
118882
  * MIT License
118775
118883
  *
@@ -119907,7 +120015,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
119907
120015
  x_ite_Namespace .add ("SupportedProfiles", "x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
119908
120016
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
119909
120017
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
119910
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(75);
120018
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(855);
119911
120019
  /*******************************************************************************
119912
120020
  *
119913
120021
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120988,7 +121096,7 @@ const X3DBrowser_default_ = X3DBrowser;
120988
121096
  x_ite_Namespace .add ("X3DBrowser", "x_ite/Browser/X3DBrowser", X3DBrowser_default_);
120989
121097
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
120990
121098
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
120991
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(75);
121099
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(855);
120992
121100
  /*******************************************************************************
120993
121101
  *
120994
121102
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121120,8 +121228,8 @@ const X3DCanvasElement_default_ = X3DCanvasElement;
121120
121228
  x_ite_Namespace .add ("X3DCanvasElement", "x_ite/X3DCanvasElement", X3DCanvasElement_default_);
121121
121229
  /* harmony default export */ const x_ite_X3DCanvasElement = (X3DCanvasElement_default_);
121122
121230
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
121123
- /* provided dependency */ var jquery_$ = __webpack_require__(75);
121124
- /* provided dependency */ var pako = __webpack_require__(436);
121231
+ /* provided dependency */ var jquery_$ = __webpack_require__(855);
121232
+ /* provided dependency */ var pako = __webpack_require__(932);
121125
121233
  Object .assign (jquery_$,
121126
121234
  {
121127
121235
  decodeText (input)
@@ -121198,14 +121306,14 @@ const jquery_default_ = jquery_$;
121198
121306
  x_ite_Namespace .add ("jquery", "lib/jquery", jquery_default_);
121199
121307
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
121200
121308
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
121201
- /* provided dependency */ var libtess_libtess = __webpack_require__(480);
121309
+ /* provided dependency */ var libtess_libtess = __webpack_require__(250);
121202
121310
  const libtess_default_ = libtess_libtess;
121203
121311
  ;
121204
121312
 
121205
121313
  x_ite_Namespace .add ("libtess", "lib/libtess", libtess_default_);
121206
121314
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
121207
121315
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
121208
- /* provided dependency */ var X3D_$ = __webpack_require__(75);
121316
+ /* provided dependency */ var X3D_$ = __webpack_require__(855);
121209
121317
  /*******************************************************************************
121210
121318
  *
121211
121319
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121599,7 +121707,7 @@ x_ite_Namespace .add ("shim", "shim", shim_default_);
121599
121707
 
121600
121708
  // Assign X3D to global namespace.
121601
121709
 
121602
- window [Symbol .for ("X_ITE.X3D-8.12.2")] = x_ite_X3D;
121710
+ window [Symbol .for ("X_ITE.X3D-8.12.3")] = x_ite_X3D;
121603
121711
 
121604
121712
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
121605
121713