x_ite 8.6.5 → 8.6.6

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 (56) 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 +13 -13
  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 +18 -18
  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 +27 -27
  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 +19 -19
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +28 -28
  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 +19 -19
  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 +440 -351
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.zip +0 -0
  45. package/docs/_config.yml +1 -1
  46. package/docs/_posts/components/Navigation/NavigationInfo.md +8 -3
  47. package/docs/_posts/laboratory/x3d-file-converter.md +2 -0
  48. package/package.json +1 -1
  49. package/src/x_ite/Base/Events.js +10 -23
  50. package/src/x_ite/Base/X3DObject.js +29 -16
  51. package/src/x_ite/Browser/VERSION.js +1 -1
  52. package/src/x_ite/Components/Shape/Material.js +2 -2
  53. package/src/x_ite/Components/Shape/PhysicalMaterial.js +2 -2
  54. package/src/x_ite/Components/Shape/UnlitMaterial.js +2 -2
  55. package/src/x_ite/Components/Texturing/ImageTexture.js +3 -0
  56. package/src/x_ite/Parser/SVGParser.js +337 -251
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v8.6.5 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v8.6.6 */(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
- /***/ 151:
14
+ /***/ 856:
15
15
  /***/ (function(module, exports, __webpack_require__) {
16
16
 
17
17
  "use strict";
18
- /* provided dependency */ var jQuery = __webpack_require__(908);
18
+ /* provided dependency */ var jQuery = __webpack_require__(765);
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
- /***/ 80:
390
+ /***/ 359:
391
391
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
392
392
 
393
- /* provided dependency */ var jQuery = __webpack_require__(908);
393
+ /* provided dependency */ var jQuery = __webpack_require__(765);
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
- /***/ 172:
589
+ /***/ 474:
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__(908)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
603
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(765)], __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
- /***/ 908:
814
+ /***/ 765:
815
815
  /***/ (function(module, exports) {
816
816
 
817
817
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11812,7 +11812,7 @@ return jQuery;
11812
11812
 
11813
11813
  /***/ }),
11814
11814
 
11815
- /***/ 323:
11815
+ /***/ 241:
11816
11816
  /***/ ((module) => {
11817
11817
 
11818
11818
  /**
@@ -16591,7 +16591,7 @@ if (true) {
16591
16591
 
16592
16592
  /***/ }),
16593
16593
 
16594
- /***/ 862:
16594
+ /***/ 467:
16595
16595
  /***/ (function(__unused_webpack_module, exports) {
16596
16596
 
16597
16597
 
@@ -19836,7 +19836,7 @@ if (true) {
19836
19836
 
19837
19837
  /***/ }),
19838
19838
 
19839
- /***/ 732:
19839
+ /***/ 681:
19840
19840
  /***/ (function(module, exports) {
19841
19841
 
19842
19842
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -21844,13 +21844,16 @@ X3DObject .prototype =
21844
21844
  },
21845
21845
  getInterestId: function (callbackName, object)
21846
21846
  {
21847
+ if (typeof callbackName === "symbol")
21848
+ return X3DObject .getId (object) + ".Symbol(" + SymbolId (callbackName) + ")";
21849
+
21847
21850
  return X3DObject .getId (object) + "." + String (callbackName);
21848
21851
  },
21849
21852
  hasInterest: function (callbackName, object)
21850
21853
  {
21851
21854
  return this [_interests] .has (this .getInterestId (callbackName, object));
21852
21855
  },
21853
- addInterest: function (callbackName, object)
21856
+ addInterest: function (callbackName, object, ... args)
21854
21857
  {
21855
21858
  if (this [_interests] === X3DObject .prototype [_interests])
21856
21859
  {
@@ -21862,19 +21865,7 @@ X3DObject .prototype =
21862
21865
  interestId = this .getInterestId (callbackName, object),
21863
21866
  callback = object [callbackName];
21864
21867
 
21865
- if (arguments .length > 2)
21866
- {
21867
- const args = Array .prototype .slice .call (arguments, 2);
21868
-
21869
- args .unshift (object);
21870
- args .push (this);
21871
-
21872
- this [_interests] .set (interestId, Function .prototype .bind .apply (callback, args));
21873
- }
21874
- else
21875
- {
21876
- this [_interests] .set (interestId, callback .bind (object, this));
21877
- }
21868
+ this [_interests] .set (interestId, callback .bind (object, ... args, this));
21878
21869
  },
21879
21870
  removeInterest: function (callbackName, object)
21880
21871
  {
@@ -21946,9 +21937,31 @@ X3DObject .prototype =
21946
21937
  for (const key of Reflect .ownKeys (X3DObject .prototype))
21947
21938
  Object .defineProperty (X3DObject .prototype, key, { enumerable: false });
21948
21939
 
21949
- X3DObject .getId = (function ()
21940
+ Object .assign (X3DObject,
21941
+ {
21942
+ getId: (function ()
21943
+ {
21944
+ const map = new WeakMap ();
21945
+
21946
+ let counter = 0;
21947
+
21948
+ return function (object)
21949
+ {
21950
+ const id = map .get (object);
21951
+
21952
+ if (id !== undefined)
21953
+ return id;
21954
+
21955
+ map .set (object, ++ counter);
21956
+
21957
+ return counter;
21958
+ };
21959
+ })(),
21960
+ });
21961
+
21962
+ const SymbolId = (function ()
21950
21963
  {
21951
- const map = new WeakMap ();
21964
+ const map = new Map ();
21952
21965
 
21953
21966
  let counter = 0;
21954
21967
 
@@ -22145,20 +22158,13 @@ x_ite_Namespace.set ("x_ite/Base/X3DChildObject", X3DChildObject_default_);
22145
22158
  *
22146
22159
  ******************************************************************************/
22147
22160
 
22148
- const _stack = Symbol ();
22149
-
22150
- function Events ()
22151
- {
22152
- this [_stack] = [ ];
22153
- }
22154
-
22155
- Events .prototype =
22161
+ const Events = Object .assign ([ ],
22156
22162
  {
22157
22163
  create: function (field)
22158
22164
  {
22159
- if (this [_stack] .length)
22165
+ if (this .length)
22160
22166
  {
22161
- const event = this [_stack] .pop ();
22167
+ const event = this .pop ();
22162
22168
 
22163
22169
  event .field = field;
22164
22170
  event .clear ();
@@ -22174,9 +22180,9 @@ Events .prototype =
22174
22180
  },
22175
22181
  copy: function (event)
22176
22182
  {
22177
- if (this [_stack] .length)
22183
+ if (this .length)
22178
22184
  {
22179
- const copy = this [_stack] .pop ();
22185
+ const copy = this .pop ();
22180
22186
 
22181
22187
  copy .field = event .field;
22182
22188
  copy .clear ();
@@ -22195,22 +22201,16 @@ Events .prototype =
22195
22201
 
22196
22202
  return copy;
22197
22203
  },
22198
- push: function (event)
22199
- {
22200
- this [_stack] .push (event);
22201
- },
22202
22204
  clear: function ()
22203
22205
  {
22204
- this [_stack] .length = 0;
22206
+ this .length = 0;
22205
22207
  },
22206
- };
22207
-
22208
- for (const key of Reflect .ownKeys (Events .prototype))
22209
- Object .defineProperty (Events .prototype, key, { enumerable: false });
22208
+ });
22210
22209
 
22211
- const events = new Events ();
22210
+ for (const key of Reflect .ownKeys (Events))
22211
+ Object .defineProperty (Events, key, { enumerable: false });
22212
22212
 
22213
- const Events_default_ = events;
22213
+ const Events_default_ = Events;
22214
22214
  ;
22215
22215
 
22216
22216
  x_ite_Namespace.set ("x_ite/Base/Events", Events_default_);
@@ -34912,7 +34912,7 @@ x_ite_Namespace.set ("x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34912
34912
  *
34913
34913
  ******************************************************************************/
34914
34914
 
34915
- const VERSION_default_ = "8.6.5";
34915
+ const VERSION_default_ = "8.6.6";
34916
34916
  ;
34917
34917
 
34918
34918
  x_ite_Namespace.set ("x_ite/Browser/VERSION", VERSION_default_);
@@ -35814,7 +35814,7 @@ const gettext_default_ = gettext;
35814
35814
  x_ite_Namespace.set ("locale/gettext", gettext_default_);
35815
35815
  /* harmony default export */ const locale_gettext = (gettext_default_);
35816
35816
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
35817
- /* provided dependency */ var $ = __webpack_require__(908);
35817
+ /* provided dependency */ var $ = __webpack_require__(765);
35818
35818
  /*******************************************************************************
35819
35819
  *
35820
35820
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36772,7 +36772,7 @@ const RenderingProperties_default_ = RenderingProperties;
36772
36772
  x_ite_Namespace.set ("x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
36773
36773
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
36774
36774
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
36775
- /* provided dependency */ var Notification_$ = __webpack_require__(908);
36775
+ /* provided dependency */ var Notification_$ = __webpack_require__(765);
36776
36776
  /*******************************************************************************
36777
36777
  *
36778
36778
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36894,8 +36894,8 @@ const Notification_default_ = Notification;
36894
36894
  x_ite_Namespace.set ("x_ite/Browser/Core/Notification", Notification_default_);
36895
36895
  /* harmony default export */ const Core_Notification = (Notification_default_);
36896
36896
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
36897
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(80);
36898
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(908);
36897
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(359);
36898
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(765);
36899
36899
  /*******************************************************************************
36900
36900
  *
36901
36901
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -41897,7 +41897,7 @@ const X3DUrlObject_default_ = X3DUrlObject;
41897
41897
  x_ite_Namespace.set ("x_ite/Components/Networking/X3DUrlObject", X3DUrlObject_default_);
41898
41898
  /* harmony default export */ const Networking_X3DUrlObject = (X3DUrlObject_default_);
41899
41899
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
41900
- /* provided dependency */ var X3DParser_$ = __webpack_require__(908);
41900
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(765);
41901
41901
  /*******************************************************************************
41902
41902
  *
41903
41903
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45074,7 +45074,7 @@ const VRMLParser_default_ = VRMLParser;
45074
45074
  x_ite_Namespace.set ("x_ite/Parser/VRMLParser", VRMLParser_default_);
45075
45075
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
45076
45076
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
45077
- /* provided dependency */ var XMLParser_$ = __webpack_require__(908);
45077
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(765);
45078
45078
  /*******************************************************************************
45079
45079
  *
45080
45080
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46960,7 +46960,7 @@ const X3DOptimizer_default_ = X3DOptimizer;
46960
46960
  x_ite_Namespace.set ("x_ite/Parser/X3DOptimizer", X3DOptimizer_default_);
46961
46961
  /* harmony default export */ const Parser_X3DOptimizer = (X3DOptimizer_default_);
46962
46962
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
46963
- /* provided dependency */ var libtess = __webpack_require__(323);
46963
+ /* provided dependency */ var libtess = __webpack_require__(241);
46964
46964
  /*******************************************************************************
46965
46965
  *
46966
46966
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47870,7 +47870,7 @@ const Box3_default_ = Box3;
47870
47870
  x_ite_Namespace.set ("standard/Math/Geometry/Box3", Box3_default_);
47871
47871
  /* harmony default export */ const Geometry_Box3 = (Box3_default_);
47872
47872
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
47873
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(908);
47873
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(765);
47874
47874
  /*******************************************************************************
47875
47875
  *
47876
47876
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -50097,7 +50097,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
50097
50097
  x_ite_Namespace.set ("x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
50098
50098
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
50099
50099
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
50100
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(908);
50100
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(765);
50101
50101
  /*******************************************************************************
50102
50102
  *
50103
50103
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -50250,7 +50250,7 @@ const GLB2Parser_default_ = GLB2Parser;
50250
50250
  x_ite_Namespace.set ("x_ite/Parser/GLB2Parser", GLB2Parser_default_);
50251
50251
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
50252
50252
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
50253
- /* provided dependency */ var OBJParser_$ = __webpack_require__(908);
50253
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(765);
50254
50254
  /*******************************************************************************
50255
50255
  *
50256
50256
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52691,8 +52691,8 @@ const MatrixStack_default_ = MatrixStack;
52691
52691
  x_ite_Namespace.set ("standard/Math/Utility/MatrixStack", MatrixStack_default_);
52692
52692
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
52693
52693
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52694
- /* provided dependency */ var SVGParser_$ = __webpack_require__(908);
52695
- /* provided dependency */ var SVGParser_libtess = __webpack_require__(323);
52694
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(765);
52695
+ /* provided dependency */ var SVGParser_libtess = __webpack_require__(241);
52696
52696
  /*******************************************************************************
52697
52697
  *
52698
52698
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52823,13 +52823,14 @@ function SVGParser (scene)
52823
52823
 
52824
52824
  // Globals
52825
52825
 
52826
- this .viewBox = new Numbers_Vector4 (0, 0, 100, 100);
52827
- this .modelMatrix = new Utility_MatrixStack (Numbers_Matrix4);
52828
- this .nodes = new Map ();
52829
- this .lineProperties = new Map ();
52830
- this .tessy = this .createTesselator ();
52831
- this .canvas = document .createElement ("canvas");
52832
- this .context = this .canvas .getContext ("2d");
52826
+ this .viewBox = new Numbers_Vector4 (0, 0, 100, 100);
52827
+ this .modelMatrix = new Utility_MatrixStack (Numbers_Matrix4);
52828
+ this .fillGeometries = new Map ();
52829
+ this .strokeGeometries = new Map ();
52830
+ this .lineProperties = new Map ();
52831
+ this .tessy = this .createTesselator ();
52832
+ this .canvas = document .createElement ("canvas");
52833
+ this .context = this .canvas .getContext ("2d");
52833
52834
 
52834
52835
  this .styles = [{
52835
52836
  display: "inline",
@@ -53061,9 +53062,6 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53061
53062
  },
53062
53063
  element: function (xmlElement)
53063
53064
  {
53064
- if (this .used (xmlElement))
53065
- return;
53066
-
53067
53065
  switch (xmlElement .nodeName)
53068
53066
  {
53069
53067
  case "use":
@@ -53092,22 +53090,11 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53092
53090
  return this .pathElement (xmlElement);
53093
53091
  }
53094
53092
  },
53095
- used: function (xmlElement)
53096
- {
53097
- const node = this .nodes .get (xmlElement);
53098
-
53099
- if (!node)
53100
- return false;
53101
-
53102
- this .groupNodes .at (-1) .children .push (node);
53103
-
53104
- return true;
53105
- },
53106
53093
  useElement: function (xmlElement)
53107
53094
  {
53108
53095
  // Get href.
53109
53096
 
53110
- const usedElement = this .hrefAttribute (xmlElement .getAttribute ("xlink:href"));
53097
+ const usedElement = this .hrefAttribute (xmlElement .getAttribute ("href") || xmlElement .getAttribute ("xlink:href"));
53111
53098
 
53112
53099
  if (!usedElement)
53113
53100
  return;
@@ -53131,13 +53118,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53131
53118
 
53132
53119
  this .element (usedElement);
53133
53120
 
53134
- this .groupNodes .pop ();
53135
- this .modelMatrix .pop ();
53136
- this .styles .pop ();
53137
-
53138
- // Add node.
53139
-
53140
- this .groupNodes .at (-1) .children .push (transformNode);
53121
+ this .popAll ();
53141
53122
  },
53142
53123
  gElement: function (xmlElement)
53143
53124
  {
@@ -53156,13 +53137,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53156
53137
 
53157
53138
  this .elements (xmlElement);
53158
53139
 
53159
- this .groupNodes .pop ();
53160
- this .modelMatrix .pop ();
53161
- this .styles .pop ();
53162
-
53163
- // Add node.
53164
-
53165
- this .groupNodes .at (-1) .children .push (transformNode);
53140
+ this .popAll ();
53166
53141
  },
53167
53142
  switchElement: function (xmlElement)
53168
53143
  {
@@ -53187,13 +53162,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53187
53162
 
53188
53163
  this .elements (xmlElement);
53189
53164
 
53190
- this .groupNodes .pop ();
53191
- this .modelMatrix .pop ();
53192
- this .styles .pop ();
53193
-
53194
- // Add node.
53195
-
53196
- this .groupNodes .at (-1) .children .push (transformNode);
53165
+ this .popAll ();
53197
53166
  },
53198
53167
  aElement: function (xmlElement)
53199
53168
  {
@@ -53205,8 +53174,8 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53205
53174
  // Get attributes.
53206
53175
 
53207
53176
  const
53208
- href = xmlElement .getAttribute ("xlink:href"),
53209
- title = xmlElement .getAttribute ("xlink:title"),
53177
+ href = xmlElement .getAttribute ("href") || xmlElement .getAttribute ("xlink:href"),
53178
+ title = xmlElement .getAttribute ("title") || xmlElement .getAttribute ("xlink:title"),
53210
53179
  target = xmlElement .getAttribute ("target");
53211
53180
 
53212
53181
  // Create Transform node.
@@ -53230,11 +53199,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53230
53199
 
53231
53200
  this .elements (xmlElement);
53232
53201
 
53233
- this .groupNodes .pop ();
53234
- this .modelMatrix .pop ();
53235
- this .styles .pop ();
53236
-
53237
- this .groupNodes .at (-1) .children .push (transformNode);
53202
+ this .popAll ();
53238
53203
  },
53239
53204
  rectElement: function (xmlElement)
53240
53205
  {
@@ -53274,41 +53239,60 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53274
53239
  {
53275
53240
  const
53276
53241
  shapeNode = scene .createNode ("Shape"),
53277
- rectangleNode = scene .createNode ("Rectangle2D");
53242
+ rectangleNode = this .fillGeometries .get (xmlElement);
53278
53243
 
53244
+ transformNode .children .push (shapeNode);
53279
53245
  shapeNode .appearance = this .createFillAppearance (bbox);
53280
- shapeNode .geometry = rectangleNode;
53281
- rectangleNode .solid = this .solid;
53282
- rectangleNode .size = size;
53283
53246
 
53284
- transformNode .children .push (shapeNode);
53247
+ if (rectangleNode)
53248
+ {
53249
+ shapeNode .geometry = rectangleNode;
53250
+ }
53251
+ else
53252
+ {
53253
+ const rectangleNode = scene .createNode ("Rectangle2D");
53254
+
53255
+ this .fillGeometries .set (xmlElement, rectangleNode);
53256
+
53257
+ shapeNode .geometry = rectangleNode;
53258
+ rectangleNode .solid = this .solid;
53259
+ rectangleNode .size = size;
53260
+ }
53285
53261
  }
53286
53262
 
53287
53263
  if (this .style .strokeType !== "none")
53288
53264
  {
53289
53265
  const
53290
- shapeNode = scene .createNode ("Shape"),
53291
- polylineNode = scene .createNode ("Polyline2D"),
53292
- width1_2 = width / 2,
53293
- height1_2 = height / 2;
53266
+ shapeNode = scene .createNode ("Shape"),
53267
+ polylineNode = this .strokeGeometries .get (xmlElement);
53294
53268
 
53269
+ transformNode .children .push (shapeNode);
53295
53270
  shapeNode .appearance = this .createStrokeAppearance ();
53296
- shapeNode .geometry = polylineNode;
53297
53271
 
53298
- polylineNode .lineSegments = [ width1_2, height1_2,
53299
- -width1_2, height1_2,
53300
- -width1_2, -height1_2,
53301
- width1_2, -height1_2,
53302
- width1_2, height1_2];
53272
+ if (polylineNode)
53273
+ {
53274
+ shapeNode .geometry = polylineNode;
53275
+ }
53276
+ else
53277
+ {
53278
+ const
53279
+ polylineNode = scene .createNode ("Polyline2D"),
53280
+ width1_2 = width / 2,
53281
+ height1_2 = height / 2;
53303
53282
 
53304
- transformNode .children .push (shapeNode);
53305
- }
53283
+ this .strokeGeometries .set (xmlElement, polylineNode);
53306
53284
 
53307
- this .groupNodes .pop ();
53308
- this .modelMatrix .pop ();
53309
- this .styles .pop ();
53285
+ shapeNode .geometry = polylineNode;
53310
53286
 
53311
- this .groupNodes .at (-1) .children .push (transformNode);
53287
+ polylineNode .lineSegments = [ width1_2, height1_2,
53288
+ -width1_2, height1_2,
53289
+ -width1_2, -height1_2,
53290
+ width1_2, -height1_2,
53291
+ width1_2, height1_2];
53292
+ }
53293
+ }
53294
+
53295
+ this .popAll ();
53312
53296
  }
53313
53297
  else
53314
53298
  {
@@ -53323,7 +53307,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53323
53307
  const
53324
53308
  xOffsets = [x + width - rx, x + rx , x + rx, x + width - rx],
53325
53309
  yOffsets = [y + height - ry, y + height - ry, y + ry, y + ry],
53326
- points = Object .assign ([ ], { index: 0, closed: true });
53310
+ points = Object .assign ([ ], { closed: true });
53327
53311
 
53328
53312
  for (let c = 0; c < 4; ++ c)
53329
53313
  {
@@ -53371,34 +53355,52 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53371
53355
  {
53372
53356
  const
53373
53357
  shapeNode = scene .createNode ("Shape"),
53374
- diskNode = scene .createNode ("Disk2D");
53358
+ diskNode = this .fillGeometries .get (xmlElement);
53375
53359
 
53360
+ transformNode .children .push (shapeNode);
53376
53361
  shapeNode .appearance = this .createFillAppearance (bbox);
53377
- shapeNode .geometry = diskNode;
53378
- diskNode .solid = this .solid;
53379
- diskNode .outerRadius = r;
53380
53362
 
53381
- transformNode .children .push (shapeNode);
53363
+ if (diskNode)
53364
+ {
53365
+ shapeNode .geometry = diskNode;
53366
+ }
53367
+ else
53368
+ {
53369
+ const diskNode = scene .createNode ("Disk2D");
53370
+
53371
+ this .fillGeometries .set (xmlElement, diskNode);
53372
+
53373
+ shapeNode .geometry = diskNode;
53374
+ diskNode .solid = this .solid;
53375
+ diskNode .outerRadius = r;
53376
+ }
53382
53377
  }
53383
53378
 
53384
53379
  if (this .style .strokeType !== "none")
53385
53380
  {
53386
53381
  const
53387
53382
  shapeNode = scene .createNode ("Shape"),
53388
- circleNode = scene .createNode ("Circle2D");
53383
+ circleNode = this .strokeGeometries .get (xmlElement);
53389
53384
 
53385
+ transformNode .children .push (shapeNode);
53390
53386
  shapeNode .appearance = this .createStrokeAppearance ();
53391
- shapeNode .geometry = circleNode;
53392
- circleNode .radius = r;
53393
53387
 
53394
- transformNode .children .push (shapeNode);
53395
- }
53388
+ if (circleNode)
53389
+ {
53390
+ shapeNode .geometry = circleNode;
53391
+ }
53392
+ else
53393
+ {
53394
+ const circleNode = scene .createNode ("Circle2D");
53396
53395
 
53397
- this .groupNodes .pop ();
53398
- this .modelMatrix .pop ();
53399
- this .styles .pop ();
53396
+ this .strokeGeometries .set (xmlElement, circleNode);
53400
53397
 
53401
- this .groupNodes .at (-1) .children .push (transformNode);
53398
+ shapeNode .geometry = circleNode;
53399
+ circleNode .radius = r;
53400
+ }
53401
+ }
53402
+
53403
+ this .popAll ();
53402
53404
  },
53403
53405
  ellipseElement: function (xmlElement)
53404
53406
  {
@@ -53429,34 +53431,52 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53429
53431
  {
53430
53432
  const
53431
53433
  shapeNode = scene .createNode ("Shape"),
53432
- diskNode = scene .createNode ("Disk2D");
53434
+ diskNode = this .fillGeometries .get (xmlElement);
53433
53435
 
53436
+ transformNode .children .push (shapeNode);
53434
53437
  shapeNode .appearance = this .createFillAppearance (bbox);
53435
- shapeNode .geometry = diskNode;
53436
- diskNode .solid = this .solid;
53437
- diskNode .outerRadius = rMin;
53438
53438
 
53439
- transformNode .children .push (shapeNode);
53439
+ if (diskNode)
53440
+ {
53441
+ shapeNode .geometry = diskNode;
53442
+ }
53443
+ else
53444
+ {
53445
+ const diskNode = scene .createNode ("Disk2D");
53446
+
53447
+ this .fillGeometries .set (xmlElement, diskNode);
53448
+
53449
+ shapeNode .geometry = diskNode;
53450
+ diskNode .solid = this .solid;
53451
+ diskNode .outerRadius = rMin;
53452
+ }
53440
53453
  }
53441
53454
 
53442
53455
  if (this .style .strokeType !== "none")
53443
53456
  {
53444
53457
  const
53445
53458
  shapeNode = scene .createNode ("Shape"),
53446
- circleNode = scene .createNode ("Circle2D");
53459
+ circleNode = this .strokeGeometries .get (xmlElement);
53447
53460
 
53461
+ transformNode .children .push (shapeNode);
53448
53462
  shapeNode .appearance = this .createStrokeAppearance ();
53449
- shapeNode .geometry = circleNode;
53450
- circleNode .radius = rMin;
53451
53463
 
53452
- transformNode .children .push (shapeNode);
53453
- }
53464
+ if (circleNode)
53465
+ {
53466
+ shapeNode .geometry = circleNode;
53467
+ }
53468
+ else
53469
+ {
53470
+ const circleNode = scene .createNode ("Circle2D");
53454
53471
 
53455
- this .groupNodes .pop ();
53456
- this .modelMatrix .pop ();
53457
- this .styles .pop ();
53472
+ this .strokeGeometries .set (xmlElement, circleNode);
53458
53473
 
53459
- this .groupNodes .at (-1) .children .push (transformNode);
53474
+ shapeNode .geometry = circleNode;
53475
+ circleNode .radius = rMin;
53476
+ }
53477
+ }
53478
+
53479
+ this .popAll ();
53460
53480
  },
53461
53481
  textElement: function (xmlElement)
53462
53482
  {
@@ -53464,55 +53484,61 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53464
53484
  },
53465
53485
  imageElement: function (xmlElement)
53466
53486
  {
53467
- // Determine style.
53468
-
53469
- if (!this .styleAttributes (xmlElement))
53470
- return;
53487
+ const transformNode = this .fillGeometries .get (xmlElement);
53471
53488
 
53472
- // Create Transform node.
53489
+ if (transformNode)
53490
+ {
53491
+ this .groupNodes .at (-1) .children .push (transformNode);
53492
+ }
53493
+ else
53494
+ {
53495
+ // Determine style.
53473
53496
 
53474
- const
53475
- x = this .lengthAttribute (xmlElement .getAttribute ("x"), 0, "width"),
53476
- y = this .lengthAttribute (xmlElement .getAttribute ("y"), 0, "height"),
53477
- width = this .lengthAttribute (xmlElement .getAttribute ("width"), 0, "width"),
53478
- height = this .lengthAttribute (xmlElement .getAttribute ("height"), 0, "height"),
53479
- href = xmlElement .getAttribute ("xlink:href");
53497
+ if (!this .styleAttributes (xmlElement))
53498
+ return;
53480
53499
 
53481
- const
53482
- scene = this .getExecutionContext (),
53483
- transformNode = this .createTransform (xmlElement, new Numbers_Vector2 (x + width / 2, y + height / 2), new Numbers_Vector2 (1, -1));
53500
+ // Create Transform node.
53484
53501
 
53485
- this .groupNodes .push (transformNode);
53502
+ const
53503
+ x = this .lengthAttribute (xmlElement .getAttribute ("x"), 0, "width"),
53504
+ y = this .lengthAttribute (xmlElement .getAttribute ("y"), 0, "height"),
53505
+ width = this .lengthAttribute (xmlElement .getAttribute ("width"), 0, "width"),
53506
+ height = this .lengthAttribute (xmlElement .getAttribute ("height"), 0, "height"),
53507
+ href = xmlElement .getAttribute ("href") || xmlElement .getAttribute ("xlink:href");
53486
53508
 
53487
- // Create nodes.
53509
+ const
53510
+ scene = this .getExecutionContext (),
53511
+ transformNode = this .createTransform (xmlElement, new Numbers_Vector2 (x + width / 2, y + height / 2), new Numbers_Vector2 (1, -1));
53488
53512
 
53489
- const
53490
- shapeNode = scene .createNode ("Shape"),
53491
- appearanceNode = scene .createNode ("Appearance"),
53492
- textureNode = scene .createNode ("ImageTexture"),
53493
- rectangleNode = scene .createNode ("Rectangle2D");
53513
+ this .fillGeometries .set (xmlElement, transformNode);
53514
+ this .groupNodes .push (transformNode);
53494
53515
 
53495
- shapeNode .appearance = appearanceNode;
53496
- shapeNode .geometry = rectangleNode;
53497
- appearanceNode .texture = textureNode;
53498
- textureNode .url = [href];
53499
- textureNode .textureProperties = this .texturePropertiesNode;
53500
- rectangleNode .solid = this .solid;
53501
- rectangleNode .size = new Numbers_Vector2 (width, height);
53516
+ // Create nodes.
53502
53517
 
53503
- transformNode .children .push (shapeNode);
53518
+ const
53519
+ shapeNode = scene .createNode ("Shape"),
53520
+ appearanceNode = scene .createNode ("Appearance"),
53521
+ textureNode = scene .createNode ("ImageTexture"),
53522
+ rectangleNode = scene .createNode ("Rectangle2D");
53523
+
53524
+ shapeNode .appearance = appearanceNode;
53525
+ shapeNode .geometry = rectangleNode;
53526
+ appearanceNode .texture = textureNode;
53527
+ textureNode .url = [href];
53528
+ textureNode .textureProperties = this .texturePropertiesNode;
53529
+ rectangleNode .solid = this .solid;
53530
+ rectangleNode .size = new Numbers_Vector2 (width, height);
53504
53531
 
53505
- this .groupNodes .pop ();
53506
- this .modelMatrix .pop ();
53507
- this .styles .pop ();
53532
+ transformNode .children .push (shapeNode);
53508
53533
 
53509
- this .groupNodes .at (-1) .children .push (transformNode);
53534
+ this .popAll ();
53535
+ }
53510
53536
  },
53511
53537
  polylineElement: function (xmlElement)
53512
53538
  {
53513
53539
  // Get points.
53514
53540
 
53515
- const points = Object .assign ([ ], { index: 0 });
53541
+ const points = [ ];
53516
53542
 
53517
53543
  if (!this .pointsAttribute (xmlElement .getAttribute ("points"), points))
53518
53544
  return;
@@ -53525,7 +53551,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53525
53551
  {
53526
53552
  // Get points.
53527
53553
 
53528
- const points = Object .assign ([ ], { index: 0, closed: true });
53554
+ const points = Object .assign ([ ], { closed: true });
53529
53555
 
53530
53556
  if (!this .pointsAttribute (xmlElement .getAttribute ("points"), points))
53531
53557
  return;
@@ -53554,6 +53580,30 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53554
53580
  if (!this .styleAttributes (xmlElement))
53555
53581
  return;
53556
53582
 
53583
+ // Filter consecutive equal points.
53584
+
53585
+ const EPSILON = 1e-9; // Min point distance.
53586
+
53587
+ contours = contours .map (function (points)
53588
+ {
53589
+ if (points .closed)
53590
+ {
53591
+ return Object .assign (points .filter ((p, i, a) => p .distance (a [(i + 1) % a .length]) > EPSILON),
53592
+ {
53593
+ closed: true,
53594
+ });
53595
+ }
53596
+ else
53597
+ {
53598
+ return points .filter ((p, i, a) => !i || p .distance (a [i - 1]) > EPSILON);
53599
+ }
53600
+ })
53601
+ .filter (points => points .length > 2);
53602
+
53603
+ // Add index property to points.
53604
+
53605
+ contours .forEach ((points, i, a) => points .index = i ? a [i - 1] .index + a [i - 1] .length : 0);
53606
+
53557
53607
  // Create Transform node.
53558
53608
 
53559
53609
  const
@@ -53577,51 +53627,69 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53577
53627
  {
53578
53628
  const
53579
53629
  shapeNode = scene .createNode ("Shape"),
53580
- geometryNode = scene .createNode ("IndexedTriangleSet");
53581
-
53582
- shapeNode .appearance = this .createFillAppearance (bbox);
53583
- shapeNode .geometry = geometryNode;
53584
- geometryNode .solid = this .solid;
53585
- geometryNode .index = this .triangulatePolygon (contours, coordinateNode);
53586
- geometryNode .texCoord = this .createTextureCoordinate (coordinateNode, bbox);
53587
- geometryNode .coord = coordinateNode;
53630
+ geometryNode = this .fillGeometries .get (xmlElement);
53588
53631
 
53589
53632
  transformNode .children .push (shapeNode);
53633
+ shapeNode .appearance = this .createFillAppearance (bbox);
53634
+
53635
+ if (geometryNode)
53636
+ {
53637
+ shapeNode .geometry = geometryNode;
53638
+ }
53639
+ else
53640
+ {
53641
+ const geometryNode = scene .createNode ("IndexedTriangleSet");
53642
+
53643
+ this .fillGeometries .set (xmlElement, geometryNode);
53644
+
53645
+ shapeNode .geometry = geometryNode;
53646
+ geometryNode .solid = this .solid;
53647
+ geometryNode .index = this .triangulatePolygon (contours, coordinateNode);
53648
+ geometryNode .texCoord = this .createTextureCoordinate (coordinateNode, bbox);
53649
+ geometryNode .coord = coordinateNode;
53650
+ }
53590
53651
  }
53591
53652
 
53592
53653
  if (this .style .strokeType !== "none")
53593
53654
  {
53594
53655
  const
53595
53656
  shapeNode = scene .createNode ("Shape"),
53596
- geometryNode = scene .createNode ("IndexedLineSet");
53657
+ geometryNode = this .strokeGeometries .get (xmlElement);
53597
53658
 
53598
- shapeNode .appearance = this .createStrokeAppearance ();
53599
- shapeNode .geometry = geometryNode;
53600
- geometryNode .coord = coordinateNode;
53659
+ transformNode .children .push (shapeNode);
53660
+ shapeNode .appearance = this .createStrokeAppearance ();
53601
53661
 
53602
- // Create contour indices.
53662
+ if (geometryNode)
53663
+ {
53664
+ shapeNode .geometry = geometryNode;
53665
+ }
53666
+ else
53667
+ {
53668
+ const geometryNode = scene .createNode ("IndexedLineSet");
53603
53669
 
53604
- const indices = geometryNode .coordIndex;
53670
+ this .strokeGeometries .set (xmlElement, geometryNode);
53605
53671
 
53606
- for (const points of contours)
53607
- {
53608
- for (const i of points .keys ())
53609
- indices .push (points .index + i);
53672
+ shapeNode .geometry = geometryNode;
53673
+ geometryNode .coord = coordinateNode;
53610
53674
 
53611
- if (points .closed)
53612
- indices .push (points .index);
53675
+ // Create contour indices.
53613
53676
 
53614
- indices .push (-1);
53615
- }
53677
+ const indices = geometryNode .coordIndex;
53616
53678
 
53617
- transformNode .children .push (shapeNode);
53618
- }
53679
+ for (const points of contours)
53680
+ {
53681
+ for (const i of points .keys ())
53682
+ indices .push (points .index + i);
53619
53683
 
53620
- this .groupNodes .pop ();
53621
- this .modelMatrix .pop ();
53622
- this .styles .pop ();
53684
+ if (points .closed)
53685
+ indices .push (points .index);
53623
53686
 
53624
- this .groupNodes .at (-1) .children .push (transformNode);
53687
+ indices .push (-1);
53688
+ }
53689
+ }
53690
+ }
53691
+
53692
+ this .popAll ();
53625
53693
  },
53626
53694
  linearGradientElementUrl: function (xmlElement, bbox)
53627
53695
  {
@@ -53638,7 +53706,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53638
53706
 
53639
53707
  // Attribute xlink:href
53640
53708
 
53641
- const refElement = this .hrefAttribute (xmlElement .getAttribute ("xlink:href"));
53709
+ const refElement = this .hrefAttribute (xmlElement .getAttribute ("href") || xmlElement .getAttribute ("xlink:href"));
53642
53710
 
53643
53711
  if (refElement)
53644
53712
  this .gradientElement (refElement, bbox, gradient);
@@ -53683,7 +53751,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53683
53751
  {
53684
53752
  // Attribute xlink:href
53685
53753
 
53686
- const refElement = this .hrefAttribute (xmlElement .getAttribute ("xlink:href"));
53754
+ const refElement = this .hrefAttribute (xmlElement .getAttribute ("href") || xmlElement .getAttribute ("xlink:href"));
53687
53755
 
53688
53756
  if (refElement)
53689
53757
  this .gradientElement (refElement, bbox, gradient);
@@ -53757,41 +53825,37 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53757
53825
  {
53758
53826
  // Add color stops.
53759
53827
 
53760
- const spreadMatrix = new Numbers_Matrix3 ();
53761
-
53762
53828
  switch (g .spreadMethod)
53763
53829
  {
53764
53830
  default: // pad
53765
53831
  {
53832
+ g .spreadMatrix .identity ();
53833
+
53766
53834
  for (const [o, c, a] of g .stops)
53767
- gradient .addColorStop (o, this .css (c, a));
53835
+ gradient .addColorStop (o, this .cssColor (c, a));
53768
53836
 
53769
53837
  break;
53770
53838
  }
53771
53839
  case "repeat":
53772
53840
  {
53773
- spreadMatrix .assign (g .spreadMatrix);
53774
-
53775
53841
  for (let i = 0; i < SPREAD; ++ i)
53776
53842
  {
53777
53843
  const s = i / SPREAD;
53778
53844
 
53779
53845
  for (const [o, c, a] of g .stops)
53780
- gradient .addColorStop (s + o / SPREAD, this .css (c, a));
53846
+ gradient .addColorStop (s + o / SPREAD, this .cssColor (c, a));
53781
53847
  }
53782
53848
 
53783
53849
  break;
53784
53850
  }
53785
53851
  case "reflect":
53786
53852
  {
53787
- spreadMatrix .assign (g .spreadMatrix);
53788
-
53789
53853
  for (let i = 0; i < SPREAD; ++ i)
53790
53854
  {
53791
53855
  const s = i / SPREAD;
53792
53856
 
53793
53857
  for (const [o, c, a] of g .stops)
53794
- gradient .addColorStop (s + (i % 2 ? 1 - o : o) / SPREAD, this .css (c, a));
53858
+ gradient .addColorStop (s + (i % 2 ? 1 - o : o) / SPREAD, this .cssColor (c, a));
53795
53859
  }
53796
53860
 
53797
53861
  break;
@@ -53812,7 +53876,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
53812
53876
  m .multLeft (new Numbers_Matrix3 (2, 0, 0, 0, 2, 0, -1, -1, 1));
53813
53877
 
53814
53878
  m .multLeft (g .transform);
53815
- m .multLeft (spreadMatrix);
53879
+ m .multLeft (g .spreadMatrix);
53816
53880
 
53817
53881
  // Paint.
53818
53882
 
@@ -54014,7 +54078,6 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54014
54078
 
54015
54079
  let
54016
54080
  points = [ ],
54017
- index = 0,
54018
54081
  previous = "",
54019
54082
  command = "",
54020
54083
  relative = false,
@@ -54042,11 +54105,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54042
54105
  // moveto
54043
54106
 
54044
54107
  if (points .length > 2)
54045
- {
54046
- contours .push (Object .assign (points, { index: index, closed: false }));
54047
-
54048
- index += points .length;
54049
- }
54108
+ contours .push (Object .assign (points, { closed: false }));
54050
54109
 
54051
54110
  points = [ ];
54052
54111
 
@@ -54518,9 +54577,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54518
54577
  ax = points [0] .x;
54519
54578
  ay = points [0] .y;
54520
54579
 
54521
- contours .push (Object .assign (points, { index: index, closed: true }));
54522
-
54523
- index += points .length;
54580
+ contours .push (Object .assign (points, { closed: true }));
54524
54581
  }
54525
54582
 
54526
54583
  points = [ ];
@@ -54534,7 +54591,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54534
54591
  }
54535
54592
 
54536
54593
  if (points .length > 2)
54537
- contours .push (Object .assign (points, { index: index, closed: false }));
54594
+ contours .push (Object .assign (points, { closed: false }));
54538
54595
 
54539
54596
  return !! contours .length;
54540
54597
  },
@@ -54772,7 +54829,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54772
54829
  },
54773
54830
  styleAttributes: function (xmlElement)
54774
54831
  {
54775
- const style = Object .assign ({ }, this .styles [0]);
54832
+ const style = Object .assign ({ }, this .styles .at (-1));
54776
54833
 
54777
54834
  if (this .style .display === "none")
54778
54835
  return false;
@@ -54807,6 +54864,9 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54807
54864
  },
54808
54865
  parseStyle: function (style, value)
54809
54866
  {
54867
+ if (value === "inherit" || value == "unset")
54868
+ return;
54869
+
54810
54870
  this .parseValue (value);
54811
54871
 
54812
54872
  switch (style)
@@ -54848,15 +54908,9 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54848
54908
  },
54849
54909
  displayStyle: function (value)
54850
54910
  {
54851
- if (value === null)
54852
- return;
54853
-
54854
54911
  if (value === "default")
54855
- return;
54856
-
54857
- if (value === "inherit")
54858
54912
  {
54859
- this .style .display = styles .at (-1) .display;
54913
+ this .style .display = "inline";
54860
54914
  return;
54861
54915
  }
54862
54916
 
@@ -54864,10 +54918,11 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54864
54918
  },
54865
54919
  fillStyle: function (value)
54866
54920
  {
54867
- if (this .urlValue ())
54921
+ if (value === "default")
54868
54922
  {
54869
- this .style .fillType = "URL";
54870
- this .style .fillURL = this .result [1] .trim ();
54923
+ this .style .fillType = this .styles [0] .fillType;
54924
+ this .style .fillColor = this .styles [0] .fillColor;
54925
+ this .style .fillURL = this .styles [0] .fillURL;
54871
54926
  return;
54872
54927
  }
54873
54928
 
@@ -54883,27 +54938,25 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54883
54938
  return;
54884
54939
  }
54885
54940
 
54886
- if (!value .match (/^(?:inherit|unset|default)$/))
54941
+ if (this .urlValue ())
54887
54942
  {
54888
- if (this .colorValue (this .styles .at (-1) .fillColor))
54889
- {
54890
- this .style .fillType = "COLOR";
54891
- this .style .fillColor = this .value .copy ();
54892
- return;
54893
- }
54943
+ this .style .fillType = "URL";
54944
+ this .style .fillURL = this .result [1] .trim ();
54945
+ return;
54894
54946
  }
54895
54947
 
54896
- // inherit
54897
-
54898
- this .style .fillType = this .styles .at (-1) .fillType;
54899
- this .style .fillColor = this .styles .at (-1) .fillColor;
54900
- this .style .fillURL = this .styles .at (-1) .fillURL;
54948
+ if (this .colorValue (this .styles .at (-1) .fillColor))
54949
+ {
54950
+ this .style .fillType = "COLOR";
54951
+ this .style .fillColor = this .value .copy ();
54952
+ return;
54953
+ }
54901
54954
  },
54902
54955
  fillOpacityStyle: function (value)
54903
54956
  {
54904
- if (this .double ())
54957
+ if (value === "default")
54905
54958
  {
54906
- this .style .fillOpacity = Algorithm.clamp (this .value, 0, 1);
54959
+ this .style .fillOpacity = this .styles [0] .fillOpacity;
54907
54960
  return;
54908
54961
  }
54909
54962
 
@@ -54913,20 +54966,29 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54913
54966
  return;
54914
54967
  }
54915
54968
 
54916
- // inherit
54917
-
54918
- this .style .fillOpacity = this .styles .at (-1) .fillOpacity;
54969
+ if (this .double ())
54970
+ {
54971
+ this .style .fillOpacity = Algorithm.clamp (this .value, 0, 1);
54972
+ return;
54973
+ }
54919
54974
  },
54920
54975
  fillRuleStyle: function (value)
54921
54976
  {
54977
+ if (value === "default")
54978
+ {
54979
+ this .style .fillRule = this .styles [0] .fillRule;
54980
+ return;
54981
+ }
54982
+
54922
54983
  this .style .fillRule = value;
54923
54984
  },
54924
54985
  strokeStyle: function (value)
54925
54986
  {
54926
- if (this .urlValue ())
54987
+ if (value === "default")
54927
54988
  {
54928
- this .style .strokeType = "URL";
54929
- this .style .strokeURL = this .result [1] .trim ();
54989
+ this .style .strokeType = this .styles [0] .strokeType;
54990
+ this .style .strokeColor = this .styles [0] .strokeColor;
54991
+ this .style .strokeURL = this .styles [0] .strokeURL;
54930
54992
  return;
54931
54993
  }
54932
54994
 
@@ -54942,27 +55004,25 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54942
55004
  return;
54943
55005
  }
54944
55006
 
54945
- if (!value .match (/^(?:inherit|unset|default)$/))
55007
+ if (this .urlValue ())
54946
55008
  {
54947
- if (this .colorValue (this .styles .at (-1) .strokeColor))
54948
- {
54949
- this .style .strokeType = "COLOR";
54950
- this .style .strokeColor = this .value .copy ();
54951
- return;
54952
- }
55009
+ this .style .strokeType = "URL";
55010
+ this .style .strokeURL = this .result [1] .trim ();
55011
+ return;
54953
55012
  }
54954
55013
 
54955
- // inherit
54956
-
54957
- this .style .strokeType = this .styles .at (-1) .strokeType;
54958
- this .style .strokeColor = this .styles .at (-1) .strokeColor;
54959
- this .style .strokeURL = this .styles .at (-1) .strokeURL;
55014
+ if (this .colorValue (this .styles .at (-1) .strokeColor))
55015
+ {
55016
+ this .style .strokeType = "COLOR";
55017
+ this .style .strokeColor = this .value .copy ();
55018
+ return;
55019
+ }
54960
55020
  },
54961
55021
  strokeOpacityStyle: function (value)
54962
55022
  {
54963
- if (this .double ())
55023
+ if (value === "default")
54964
55024
  {
54965
- this .style .strokeOpacity = Algorithm.clamp (this .value, 0, 1);
55025
+ this .style .strokeOpacity = this .styles [0] .strokeOpacity;
54966
55026
  return;
54967
55027
  }
54968
55028
 
@@ -54972,15 +55032,17 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54972
55032
  return;
54973
55033
  }
54974
55034
 
54975
- // inherit
54976
-
54977
- this .style .strokeOpacity = this .styles .at (-1) .strokeOpacity;
55035
+ if (this .double ())
55036
+ {
55037
+ this .style .strokeOpacity = Algorithm.clamp (this .value, 0, 1);
55038
+ return;
55039
+ }
54978
55040
  },
54979
55041
  strokeWidthStyle: function (value)
54980
55042
  {
54981
- if (this .double ())
55043
+ if (value === "default")
54982
55044
  {
54983
- this .style .strokeWidth = this .lengthAttribute (this .value, 1);
55045
+ this .style .strokeWidth = this .styles [0] .strokeWidth;
54984
55046
  return;
54985
55047
  }
54986
55048
 
@@ -54990,15 +55052,17 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
54990
55052
  return;
54991
55053
  }
54992
55054
 
54993
- // inherit
54994
-
54995
- this .style .strokeWidth = this .styles .at (-1) .strokeWidth;
55055
+ if (this .double ())
55056
+ {
55057
+ this .style .strokeWidth = this .lengthAttribute (this .value, 1);
55058
+ return;
55059
+ }
54996
55060
  },
54997
55061
  opacityStyle: function (value)
54998
55062
  {
54999
- if (this .double ())
55063
+ if (value === "default")
55000
55064
  {
55001
- this .style .opacity = Algorithm.clamp (this .value, 0, 1) * this .styles .at (-1) .opacity;
55065
+ this .style .opacity = this .styles [0] .opacity;
55002
55066
  return;
55003
55067
  }
55004
55068
 
@@ -55007,9 +55071,21 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
55007
55071
  this .style .opacity = 0;
55008
55072
  return;
55009
55073
  }
55074
+
55075
+ if (this .double ())
55076
+ {
55077
+ this .style .opacity = Algorithm.clamp (this .value, 0, 1) * this .styles .at (-1) .opacity;
55078
+ return;
55079
+ }
55010
55080
  },
55011
55081
  stopColorStyle: function (value)
55012
55082
  {
55083
+ if (value === "default")
55084
+ {
55085
+ this .style .stopColor = this .styles [0] .stopColor;
55086
+ return;
55087
+ }
55088
+
55013
55089
  if (this .colorValue (Numbers_Color4.Black))
55014
55090
  {
55015
55091
  this .style .stopColor = this .value .copy ();
@@ -55018,9 +55094,9 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
55018
55094
  },
55019
55095
  stopOpacityStyle: function (value)
55020
55096
  {
55021
- if (this .double ())
55097
+ if (value === "default")
55022
55098
  {
55023
- this .style .stopOpacity = Algorithm.clamp (this .value, 0, 1);
55099
+ this .style .stopOpacity = this .styles [0] .stopOpacity;
55024
55100
  return;
55025
55101
  }
55026
55102
 
@@ -55029,18 +55105,22 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
55029
55105
  this .style .stopOpacity = 0;
55030
55106
  return;
55031
55107
  }
55108
+
55109
+ if (this .double ())
55110
+ {
55111
+ this .style .stopOpacity = Algorithm.clamp (this .value, 0, 1);
55112
+ return;
55113
+ }
55032
55114
  },
55033
55115
  vectorEffectStyle: function (value)
55034
55116
  {
55035
- if (value !== "inherit")
55117
+ if (value === "default")
55036
55118
  {
55037
- this .style .vectorEffect = value;
55119
+ this .style .vectorEffect = this .styles [0] .vectorEffect;
55038
55120
  return;
55039
55121
  }
55040
55122
 
55041
- // inherit
55042
-
55043
- this .style .vectorEffect = this .styles .at (-1) .vectorEffect;
55123
+ this .style .vectorEffect = value;
55044
55124
  },
55045
55125
  parseValue: function (value)
55046
55126
  {
@@ -55101,7 +55181,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
55101
55181
  if (!SVGParser_Grammar .color .parse (this))
55102
55182
  return false;
55103
55183
 
55104
- const defaultColor = this .css (c);
55184
+ const defaultColor = this .cssColor (c);
55105
55185
 
55106
55186
  this .value = color .set (... this .convertColor (this .result [1], defaultColor));
55107
55187
 
@@ -55112,7 +55192,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
55112
55192
  {
55113
55193
  return SVGParser_Grammar .url .parse (this);
55114
55194
  },
55115
- css: function (c, a = c .a)
55195
+ cssColor: function (c, a = c .a)
55116
55196
  {
55117
55197
  return `rgba(${c .r * 255},${c .g * 255},${c .b * 255},${a})`;
55118
55198
  },
@@ -55151,12 +55231,18 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
55151
55231
 
55152
55232
  this .idAttribute (xmlElement .getAttribute ("id"), transformNode);
55153
55233
 
55154
- // Nodes
55234
+ // Add node to parent.
55155
55235
 
55156
- this .nodes .set (xmlElement, transformNode);
55236
+ this .groupNodes .at (-1) .children .push (transformNode);
55157
55237
 
55158
55238
  return transformNode;
55159
55239
  },
55240
+ popAll: function ()
55241
+ {
55242
+ this .groupNodes .pop ();
55243
+ this .modelMatrix .pop ();
55244
+ this .styles .pop ();
55245
+ },
55160
55246
  createFillAppearance: function (bbox)
55161
55247
  {
55162
55248
  const
@@ -55368,7 +55454,7 @@ const SVGParser_default_ = SVGParser;
55368
55454
  x_ite_Namespace.set ("x_ite/Parser/SVGParser", SVGParser_default_);
55369
55455
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
55370
55456
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
55371
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(908);
55457
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(765);
55372
55458
  /*******************************************************************************
55373
55459
  *
55374
55460
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -62030,7 +62116,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62030
62116
  x_ite_Namespace.set ("x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
62031
62117
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
62032
62118
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62033
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(908);
62119
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(765);
62034
62120
  /*******************************************************************************
62035
62121
  *
62036
62122
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -62201,6 +62287,9 @@ ImageTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
62201
62287
  width = image .width,
62202
62288
  height = image .height;
62203
62289
 
62290
+ // https://developer.mozilla.org/en-US/docs/Web/API/createImageBitmap
62291
+ // createImageBitmap
62292
+
62204
62293
  // Scale image if needed and flip vertically.
62205
62294
 
62206
62295
  if (gl .getVersion () >= 2 || (Algorithm.isPowerOfTwo (width) && Algorithm.isPowerOfTwo (height)))
@@ -66284,7 +66373,7 @@ const X3DWorld_default_ = X3DWorld;
66284
66373
  x_ite_Namespace.set ("x_ite/Execution/X3DWorld", X3DWorld_default_);
66285
66374
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
66286
66375
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66287
- /* provided dependency */ var FileLoader_$ = __webpack_require__(908);
66376
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(765);
66288
66377
  /*******************************************************************************
66289
66378
  *
66290
66379
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -68641,7 +68730,7 @@ const URLs_default_ = URLs;
68641
68730
  x_ite_Namespace.set ("x_ite/Browser/Networking/URLs", URLs_default_);
68642
68731
  /* harmony default export */ const Networking_URLs = (URLs_default_);
68643
68732
  ;// CONCATENATED MODULE: ./src/x_ite/Configuration/ComponentInfo.js
68644
- /* provided dependency */ var ComponentInfo_$ = __webpack_require__(908);
68733
+ /* provided dependency */ var ComponentInfo_$ = __webpack_require__(765);
68645
68734
  /*******************************************************************************
68646
68735
  *
68647
68736
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -70607,7 +70696,7 @@ const DataStorage_default_ = DataStorage;
70607
70696
  x_ite_Namespace.set ("standard/Utility/DataStorage", DataStorage_default_);
70608
70697
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
70609
70698
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
70610
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(908);
70699
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(765);
70611
70700
  /*******************************************************************************
70612
70701
  *
70613
70702
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -77097,8 +77186,8 @@ const OrientationChaser_default_ = OrientationChaser;
77097
77186
  x_ite_Namespace.set ("x_ite/Components/Followers/OrientationChaser", OrientationChaser_default_);
77098
77187
  /* harmony default export */ const Followers_OrientationChaser = (OrientationChaser_default_);
77099
77188
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
77100
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(172);
77101
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(908);
77189
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(474);
77190
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(765);
77102
77191
  /*******************************************************************************
77103
77192
  *
77104
77193
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -77962,8 +78051,8 @@ const ExamineViewer_default_ = ExamineViewer;
77962
78051
  x_ite_Namespace.set ("x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
77963
78052
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
77964
78053
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
77965
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(172);
77966
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(908);
78054
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(474);
78055
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(765);
77967
78056
  /*******************************************************************************
77968
78057
  *
77969
78058
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -78913,8 +79002,8 @@ const FlyViewer_default_ = FlyViewer;
78913
79002
  x_ite_Namespace.set ("x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
78914
79003
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
78915
79004
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
78916
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(172);
78917
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(908);
79005
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(474);
79006
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(765);
78918
79007
  /*******************************************************************************
78919
79008
  *
78920
79009
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79223,8 +79312,8 @@ const NoneViewer_default_ = NoneViewer;
79223
79312
  x_ite_Namespace.set ("x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
79224
79313
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
79225
79314
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
79226
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(172);
79227
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(908);
79315
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(474);
79316
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(765);
79228
79317
  /*******************************************************************************
79229
79318
  *
79230
79319
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -80827,8 +80916,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
80827
80916
  x_ite_Namespace.set ("x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
80828
80917
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
80829
80918
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
80830
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(172);
80831
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(908);
80919
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(474);
80920
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(765);
80832
80921
  /*******************************************************************************
80833
80922
  *
80834
80923
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -81850,8 +81939,8 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
81850
81939
  x_ite_Namespace.set ("x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
81851
81940
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
81852
81941
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
81853
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(908);
81854
- /* provided dependency */ var ResizeSensor = __webpack_require__(151);
81942
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(765);
81943
+ /* provided dependency */ var ResizeSensor = __webpack_require__(856);
81855
81944
  /*******************************************************************************
81856
81945
  *
81857
81946
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90377,7 +90466,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
90377
90466
  x_ite_Namespace.set ("x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
90378
90467
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
90379
90468
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
90380
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(908);
90469
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(765);
90381
90470
  /*******************************************************************************
90382
90471
  *
90383
90472
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -92267,8 +92356,8 @@ UnlitMaterial .prototype = Object .assign (Object .create (Shape_X3DOneSidedMate
92267
92356
  },
92268
92357
  set_transparent__: function ()
92269
92358
  {
92270
- this .setTransparent (Boolean (this .getTransparency () ||
92271
- (this .getEmissiveTexture () && this .getEmissiveTexture () .isTransparent ())));
92359
+ this .setTransparent (!!(this .getTransparency () ||
92360
+ (this .getEmissiveTexture () && this .getEmissiveTexture () .isTransparent ())));
92272
92361
  },
92273
92362
  getMaterialKey: function ()
92274
92363
  {
@@ -110985,8 +111074,8 @@ Material .prototype = Object .assign (Object .create (Shape_X3DOneSidedMaterialN
110985
111074
  },
110986
111075
  set_transparent__: function ()
110987
111076
  {
110988
- this .setTransparent (Boolean (this .getTransparency () ||
110989
- (this .diffuseTextureNode && this .diffuseTextureNode .isTransparent ())));
111077
+ this .setTransparent (!!(this .getTransparency () ||
111078
+ (this .diffuseTextureNode && this .diffuseTextureNode .isTransparent ())));
110990
111079
  },
110991
111080
  getTextureIndices: (function ()
110992
111081
  {
@@ -111344,8 +111433,8 @@ PhysicalMaterial .prototype = Object .assign (Object .create (Shape_X3DOneSidedM
111344
111433
  },
111345
111434
  set_transparent__: function ()
111346
111435
  {
111347
- this .setTransparent (Boolean (this .getTransparency () ||
111348
- (this .baseTextureNode && this .baseTextureNode .isTransparent ())));
111436
+ this .setTransparent (!!(this .getTransparency () ||
111437
+ (this .baseTextureNode && this .baseTextureNode .isTransparent ())));
111349
111438
  },
111350
111439
  getTextureIndices: (function ()
111351
111440
  {
@@ -112258,7 +112347,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
112258
112347
  x_ite_Namespace.set ("x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
112259
112348
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
112260
112349
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
112261
- /* provided dependency */ var AudioClip_$ = __webpack_require__(908);
112350
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(765);
112262
112351
  /*******************************************************************************
112263
112352
  *
112264
112353
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115073,8 +115162,8 @@ const GIFMedia_default_ = GifMedia;
115073
115162
  x_ite_Namespace.set ("x_ite/Browser/Texturing/GIFMedia", GIFMedia_default_);
115074
115163
  /* harmony default export */ const GIFMedia = (GIFMedia_default_);
115075
115164
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
115076
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(908);
115077
- /* provided dependency */ var SuperGif = __webpack_require__(732);
115165
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(765);
115166
+ /* provided dependency */ var SuperGif = __webpack_require__(681);
115078
115167
  /*******************************************************************************
115079
115168
  *
115080
115169
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116032,7 +116121,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
116032
116121
  x_ite_Namespace.set ("x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
116033
116122
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
116034
116123
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
116035
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(908);
116124
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(765);
116036
116125
  /*******************************************************************************
116037
116126
  *
116038
116127
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116735,7 +116824,7 @@ const Components_default_ = Components;
116735
116824
  x_ite_Namespace.set ("x_ite/Components", Components_default_);
116736
116825
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
116737
116826
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
116738
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(908);
116827
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(765);
116739
116828
  /*******************************************************************************
116740
116829
  * MIT License
116741
116830
  *
@@ -117972,7 +118061,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
117972
118061
  x_ite_Namespace.set ("x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
117973
118062
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
117974
118063
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
117975
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(908);
118064
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(765);
117976
118065
  /*******************************************************************************
117977
118066
  *
117978
118067
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118910,7 +118999,7 @@ const X3DBrowser_default_ = X3DBrowser;
118910
118999
  x_ite_Namespace.set ("x_ite/Browser/X3DBrowser", X3DBrowser_default_);
118911
119000
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
118912
119001
  ;// CONCATENATED MODULE: ./src/x_ite/Fallback.js
118913
- /* provided dependency */ var Fallback_$ = __webpack_require__(908);
119002
+ /* provided dependency */ var Fallback_$ = __webpack_require__(765);
118914
119003
  /*******************************************************************************
118915
119004
  *
118916
119005
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119089,8 +119178,8 @@ const MicroTime_default_ = undefined;
119089
119178
  x_ite_Namespace.set ("standard/Time/MicroTime", MicroTime_default_);
119090
119179
  /* harmony default export */ const MicroTime = ((/* unused pure expression or super */ null && (MicroTime_default_)));
119091
119180
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
119092
- /* provided dependency */ var jquery_$ = __webpack_require__(908);
119093
- /* provided dependency */ var pako = __webpack_require__(862);
119181
+ /* provided dependency */ var jquery_$ = __webpack_require__(765);
119182
+ /* provided dependency */ var pako = __webpack_require__(467);
119094
119183
  jquery_$.decodeText = function (input)
119095
119184
  {
119096
119185
  if (typeof input === "string")
@@ -119117,14 +119206,14 @@ const jquery_default_ = jquery_$;
119117
119206
  x_ite_Namespace.set ("lib/jquery", jquery_default_);
119118
119207
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
119119
119208
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
119120
- /* provided dependency */ var libtess_libtess = __webpack_require__(323);
119209
+ /* provided dependency */ var libtess_libtess = __webpack_require__(241);
119121
119210
  const libtess_default_ = libtess_libtess;
119122
119211
  ;
119123
119212
 
119124
119213
  x_ite_Namespace.set ("lib/libtess", libtess_default_);
119125
119214
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
119126
119215
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
119127
- /* provided dependency */ var X3D_$ = __webpack_require__(908);
119216
+ /* provided dependency */ var X3D_$ = __webpack_require__(765);
119128
119217
  /*******************************************************************************
119129
119218
  *
119130
119219
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119380,7 +119469,7 @@ const X3D_default_ = X3D;
119380
119469
  x_ite_Namespace.set ("x_ite/X3D", X3D_default_);
119381
119470
  /* harmony default export */ const x_ite_X3D = (X3D_default_);
119382
119471
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvas.js
119383
- /* provided dependency */ var X3DCanvas_$ = __webpack_require__(908);
119472
+ /* provided dependency */ var X3DCanvas_$ = __webpack_require__(765);
119384
119473
  /*******************************************************************************
119385
119474
  *
119386
119475
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119640,7 +119729,7 @@ x_ite_Namespace.set ("shim", shim_default_);
119640
119729
 
119641
119730
  // Assign X3D to global namespace.
119642
119731
 
119643
- window [Symbol .for ("X_ITE.X3D-8.6.5")] = x_ite_X3D;
119732
+ window [Symbol .for ("X_ITE.X3D-8.6.6")] = x_ite_X3D;
119644
119733
 
119645
119734
  x_ite_X3DCanvas.define ();
119646
119735