x_ite 8.6.20 → 8.6.22

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 (100) hide show
  1. package/Makefile +1 -4
  2. package/build/bin/components.js +45 -0
  3. package/dist/assets/components/Annotation.js +13 -13
  4. package/dist/assets/components/Annotation.min.js +1 -1
  5. package/dist/assets/components/CADGeometry.js +13 -13
  6. package/dist/assets/components/CADGeometry.min.js +1 -1
  7. package/dist/assets/components/CubeMapTexturing.js +25 -25
  8. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  9. package/dist/assets/components/DIS.js +13 -13
  10. package/dist/assets/components/DIS.min.js +1 -1
  11. package/dist/assets/components/EventUtilities.js +9 -9
  12. package/dist/assets/components/EventUtilities.min.js +1 -1
  13. package/dist/assets/components/Geometry2D.js +19 -19
  14. package/dist/assets/components/Geometry2D.min.js +1 -1
  15. package/dist/assets/components/Geospatial.js +33 -33
  16. package/dist/assets/components/Geospatial.min.js +1 -1
  17. package/dist/assets/components/HAnim.js +18 -18
  18. package/dist/assets/components/HAnim.min.js +1 -1
  19. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  20. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  21. package/dist/assets/components/Layout.js +27 -27
  22. package/dist/assets/components/Layout.min.js +1 -1
  23. package/dist/assets/components/NURBS.js +24 -24
  24. package/dist/assets/components/NURBS.min.js +1 -1
  25. package/dist/assets/components/ParticleSystems.js +22 -22
  26. package/dist/assets/components/ParticleSystems.min.js +1 -1
  27. package/dist/assets/components/Picking.js +18 -18
  28. package/dist/assets/components/Picking.min.js +1 -1
  29. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  30. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  31. package/dist/assets/components/Scripting.js +28 -28
  32. package/dist/assets/components/Scripting.min.js +1 -1
  33. package/dist/assets/components/Text.js +24 -24
  34. package/dist/assets/components/Text.min.js +1 -1
  35. package/dist/assets/components/TextureProjector.js +14 -14
  36. package/dist/assets/components/TextureProjector.min.js +1 -1
  37. package/dist/assets/components/Texturing3D.js +30 -30
  38. package/dist/assets/components/Texturing3D.min.js +1 -1
  39. package/dist/assets/components/VolumeRendering.js +19 -19
  40. package/dist/assets/components/VolumeRendering.min.js +1 -1
  41. package/dist/assets/components/X_ITE.js +9 -9
  42. package/dist/assets/components/X_ITE.min.js +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +746 -613
  45. package/dist/x_ite.min.js +1 -1
  46. package/dist/x_ite.zip +0 -0
  47. package/docs/_config.yml +2 -2
  48. package/docs/_posts/dom-integration.md +14 -12
  49. package/docs/_posts/getting-started.md +13 -11
  50. package/docs/_posts/reference/ecmascript-object-and-function-definitions.md +1 -1
  51. package/docs/_posts/reference/scene-services.md +6 -3
  52. package/docs/_posts/report-a-bug.md +5 -3
  53. package/docs/_posts/setup-a-localhost-server.md +7 -7
  54. package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +1 -1
  55. package/docs/_tabs/playground.html +8 -12
  56. package/package.json +1 -1
  57. package/src/locale/de.po.js +9 -0
  58. package/src/locale/fr.po.js +31 -25
  59. package/src/tests.js +1 -0
  60. package/src/x_ite/Base/X3DBaseNode.js +2 -12
  61. package/src/x_ite/Base/X3DInfoArray.js +0 -2
  62. package/src/x_ite/Base/X3DObjectArrayField.js +0 -2
  63. package/src/x_ite/Base/X3DTypedArrayField.js +0 -2
  64. package/src/x_ite/Browser/Core/BrowserTimings.js +147 -67
  65. package/src/x_ite/Browser/Core/ContextMenu.js +2 -2
  66. package/src/x_ite/Browser/Core/X3DCoreContext.js +6 -2
  67. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +7 -3
  68. package/src/x_ite/Browser/VERSION.js +1 -1
  69. package/src/x_ite/Browser/X3DBrowser.js +0 -10
  70. package/src/x_ite/Browser/X3DBrowserContext.js +0 -1
  71. package/src/x_ite/Components/Core/X3DNode.js +40 -9
  72. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +5 -5
  73. package/src/x_ite/Configuration/ComponentInfo.js +2 -1
  74. package/src/x_ite/Configuration/ProfileInfo.js +1 -0
  75. package/src/x_ite/Configuration/UnitInfo.js +3 -5
  76. package/src/x_ite/Execution/BindableList.js +34 -27
  77. package/src/x_ite/Execution/BindableStack.js +15 -17
  78. package/src/x_ite/Execution/X3DExecutionContext.js +7 -17
  79. package/src/x_ite/Execution/X3DExportedNode.js +1 -3
  80. package/src/x_ite/Execution/X3DImportedNode.js +2 -6
  81. package/src/x_ite/Execution/X3DScene.js +30 -28
  82. package/src/x_ite/Fields/ArrayFields.js +4 -4
  83. package/src/x_ite/Fields/SFColor.js +0 -3
  84. package/src/x_ite/Fields/SFColorRGBA.js +0 -4
  85. package/src/x_ite/Fields/SFImage.js +0 -4
  86. package/src/x_ite/Fields/SFMatrix3.js +0 -1
  87. package/src/x_ite/Fields/SFMatrix4.js +0 -1
  88. package/src/x_ite/Fields/SFRotation.js +0 -4
  89. package/src/x_ite/Fields/SFString.js +7 -4
  90. package/src/x_ite/Fields/SFVec2.js +0 -2
  91. package/src/x_ite/Fields/SFVec3.js +0 -3
  92. package/src/x_ite/Fields/SFVec4.js +0 -4
  93. package/src/x_ite/InputOutput/Generator.js +86 -16
  94. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +2 -8
  95. package/src/x_ite/Prototype/X3DProtoDeclaration.js +2 -6
  96. package/src/x_ite/Routing/X3DRoute.js +1 -5
  97. package/src/x_ite/X3DCanvasElement.js +2 -0
  98. package/src/x_ite.css +5 -1
  99. package/src/x_ite.html +4 -36
  100. package/x_ite.min.html +4 -36
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v8.6.20 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v8.6.22 */(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
- /***/ 780:
14
+ /***/ 945:
15
15
  /***/ (function(module, exports, __webpack_require__) {
16
16
 
17
17
  "use strict";
18
- /* provided dependency */ var jQuery = __webpack_require__(586);
18
+ /* provided dependency */ var jQuery = __webpack_require__(714);
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
- /***/ 54:
390
+ /***/ 526:
391
391
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
392
392
 
393
- /* provided dependency */ var jQuery = __webpack_require__(586);
393
+ /* provided dependency */ var jQuery = __webpack_require__(714);
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
- /***/ 729:
589
+ /***/ 510:
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__(586)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
603
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(714)], __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
- /***/ 586:
814
+ /***/ 714:
815
815
  /***/ (function(module, exports) {
816
816
 
817
817
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11784,7 +11784,7 @@ return jQuery;
11784
11784
 
11785
11785
  /***/ }),
11786
11786
 
11787
- /***/ 314:
11787
+ /***/ 51:
11788
11788
  /***/ ((module) => {
11789
11789
 
11790
11790
  /**
@@ -16563,7 +16563,7 @@ if (true) {
16563
16563
 
16564
16564
  /***/ }),
16565
16565
 
16566
- /***/ 928:
16566
+ /***/ 671:
16567
16567
  /***/ (function(__unused_webpack_module, exports) {
16568
16568
 
16569
16569
 
@@ -19808,7 +19808,7 @@ if (true) {
19808
19808
 
19809
19809
  /***/ }),
19810
19810
 
19811
- /***/ 253:
19811
+ /***/ 997:
19812
19812
  /***/ (function(module, exports) {
19813
19813
 
19814
19814
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -21152,6 +21152,245 @@ const getUniqueName = function (array, name = "", number = false)
21152
21152
  return newName;
21153
21153
  };
21154
21154
 
21155
+ ;// CONCATENATED MODULE: ./src/standard/Math/Algorithm.js
21156
+ /*******************************************************************************
21157
+ *
21158
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
21159
+ *
21160
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
21161
+ *
21162
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
21163
+ *
21164
+ * The copyright notice above does not evidence any actual of intended
21165
+ * publication of such source code, and is an unpublished work by create3000.
21166
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
21167
+ * create3000.
21168
+ *
21169
+ * No permission is granted to copy, distribute, or create derivative works from
21170
+ * the contents of this software, in whole or in part, without the prior written
21171
+ * permission of create3000.
21172
+ *
21173
+ * NON-MILITARY USE ONLY
21174
+ *
21175
+ * All create3000 software are effectively free software with a non-military use
21176
+ * restriction. It is free. Well commented source is provided. You may reuse the
21177
+ * source in any way you please with the exception anything that uses it must be
21178
+ * marked to indicate is contains 'non-military use only' components.
21179
+ *
21180
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
21181
+ *
21182
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
21183
+ *
21184
+ * This file is part of the X_ITE Project.
21185
+ *
21186
+ * X_ITE is free software: you can redistribute it and/or modify it under the
21187
+ * terms of the GNU General Public License version 3 only, as published by the
21188
+ * Free Software Foundation.
21189
+ *
21190
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
21191
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
21192
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
21193
+ * details (a copy is included in the LICENSE file that accompanied this code).
21194
+ *
21195
+ * You should have received a copy of the GNU General Public License version 3
21196
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
21197
+ * copy of the GPLv3 License.
21198
+ *
21199
+ * For Silvio, Joy and Adi.
21200
+ *
21201
+ ******************************************************************************/
21202
+
21203
+ const Algorithm_default_ = class Algorithm
21204
+ {
21205
+ static radians (value)
21206
+ {
21207
+ return value * (Math .PI / 180);
21208
+ }
21209
+
21210
+ static degrees (value)
21211
+ {
21212
+ return value * (180 / Math .PI);
21213
+ }
21214
+
21215
+ static random (min, max)
21216
+ {
21217
+ return min + Math .random () * (max - min);
21218
+ }
21219
+
21220
+ static fract (value)
21221
+ {
21222
+ return value % 1;
21223
+ }
21224
+
21225
+ static clamp (value, min, max)
21226
+ {
21227
+ // https://registry.khronos.org/OpenGL-Refpages/gl4/html/clamp.xhtml
21228
+ return Math .min (Math .max (value, min), max);
21229
+ }
21230
+
21231
+ static interval (value, low, high)
21232
+ {
21233
+ if (value >= high)
21234
+ return ((value - low) % (high - low)) + low;
21235
+
21236
+ if (value < low)
21237
+ return ((value - high) % (high - low)) + high;
21238
+
21239
+ return value;
21240
+ }
21241
+
21242
+ static lerp (source, destination, t)
21243
+ {
21244
+ return source + t * (destination - source);
21245
+ }
21246
+
21247
+ static slerp (source, destination, t)
21248
+ {
21249
+ let cosom = source .dot (destination);
21250
+
21251
+ // if (cosom <= -1) ... vectors are inverse colinear.
21252
+
21253
+ if (cosom >= 1) // Both normal vectors are equal.
21254
+ return source;
21255
+
21256
+ if (cosom < 0)
21257
+ {
21258
+ // Reverse signs so we travel the short way round.
21259
+ cosom = -cosom;
21260
+ destination .negate ();
21261
+ }
21262
+
21263
+ const
21264
+ omega = Math .acos (cosom),
21265
+ sinom = Math .sin (omega),
21266
+ scale0 = Math .sin ((1 - t) * omega) / sinom,
21267
+ scale1 = Math .sin (t * omega) / sinom;
21268
+
21269
+ source .x = source .x * scale0 + destination .x * scale1;
21270
+ source .y = source .y * scale0 + destination .y * scale1;
21271
+ source .z = source .z * scale0 + destination .z * scale1;
21272
+ source .w = source .w * scale0 + destination .w * scale1;
21273
+
21274
+ return source;
21275
+ }
21276
+
21277
+ static simpleSlerp (source, destination, t)
21278
+ {
21279
+ const cosom = source .dot (destination);
21280
+
21281
+ // if (cosom <= -1) ... vectors are inverse colinear.
21282
+
21283
+ if (cosom >= 1) // Both normal vectors are equal.
21284
+ return source;
21285
+
21286
+ const
21287
+ omega = Math .acos (cosom),
21288
+ sinom = Math .sin (omega),
21289
+ scale0 = Math .sin ((1 - t) * omega) / sinom,
21290
+ scale1 = Math .sin (t * omega) / sinom;
21291
+
21292
+ source .x = source .x * scale0 + destination .x * scale1;
21293
+ source .y = source .y * scale0 + destination .y * scale1;
21294
+ source .z = source .z * scale0 + destination .z * scale1;
21295
+ source .w = source .w * scale0 + destination .w * scale1;
21296
+
21297
+ return source;
21298
+ }
21299
+
21300
+ static isPowerOfTwo (n)
21301
+ {
21302
+ return ((n - 1) & n) === 0;
21303
+ }
21304
+
21305
+ static nextPowerOfTwo (n)
21306
+ {
21307
+ /// Returns the next power of two of @a n. If n is a power of two, n is returned.
21308
+
21309
+ if (this .isPowerOfTwo (n))
21310
+ return n;
21311
+
21312
+ return 1 << (32 - Math .clz32 (n));
21313
+ }
21314
+
21315
+ static bitCount (n)
21316
+ {
21317
+ n = n - ((n >>> 1) & 0x55555555);
21318
+ n = (n & 0x33333333) + ((n >>> 2) & 0x33333333);
21319
+ return ((n + (n >>> 4) & 0xF0F0F0F) * 0x1010101) >>> 24;
21320
+ }
21321
+
21322
+ static cmp (lhs, rhs)
21323
+ {
21324
+ return lhs > rhs ? 1 : lhs < rhs ? -1 : 0;
21325
+ }
21326
+
21327
+ static less (lhs, rhs)
21328
+ {
21329
+ return lhs < rhs;
21330
+ }
21331
+
21332
+ static greater (lhs, rhs)
21333
+ {
21334
+ return lhs > rhs;
21335
+ }
21336
+
21337
+ static lowerBound (array, first, last, value, comp = this.less)
21338
+ {
21339
+ // https://en.cppreference.com/w/cpp/algorithm/lower_bound
21340
+
21341
+ let
21342
+ index = 0,
21343
+ step = 0,
21344
+ count = last - first;
21345
+
21346
+ while (count > 0)
21347
+ {
21348
+ step = count >>> 1;
21349
+ index = first + step;
21350
+
21351
+ if (comp (array [index], value))
21352
+ {
21353
+ first = ++ index;
21354
+ count -= step + 1;
21355
+ }
21356
+ else
21357
+ count = step;
21358
+ }
21359
+
21360
+ return first;
21361
+ }
21362
+
21363
+ static upperBound (array, first, last, value, comp = this.less)
21364
+ {
21365
+ // sen.cppreference.com/w/cpp/algorithm/upper_bound
21366
+
21367
+ let
21368
+ index = 0,
21369
+ step = 0,
21370
+ count = last - first;
21371
+
21372
+ while (count > 0)
21373
+ {
21374
+ step = count >>> 1;
21375
+ index = first + step;
21376
+
21377
+ if (comp (value, array [index]))
21378
+ count = step;
21379
+
21380
+ else
21381
+ {
21382
+ first = ++ index;
21383
+ count -= step + 1;
21384
+ }
21385
+ }
21386
+
21387
+ return first;
21388
+ }
21389
+ }
21390
+ ;
21391
+
21392
+ x_ite_Namespace.set ("standard/Math/Algorithm", Algorithm_default_);
21393
+ /* harmony default export */ const Algorithm = (Algorithm_default_);
21155
21394
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/Generator.js
21156
21395
  /*******************************************************************************
21157
21396
  *
@@ -21203,16 +21442,42 @@ const getUniqueName = function (array, name = "", number = false)
21203
21442
 
21204
21443
 
21205
21444
 
21206
- function Generator ({ style = "TIDY", precision = 7, doublePrecision = 15 })
21445
+
21446
+ function Generator ({ style = "TIDY", indent = "", precision = 7, doublePrecision = 15, html = false, closingTags = false })
21207
21447
  {
21208
- this .Style (style);
21448
+ this .string = "";
21449
+ this .indent = indent;
21450
+ this .listIndent = indent;
21451
+ this .precision = Algorithm.clamp (precision, 1, 21);
21452
+ this .doublePrecision = Algorithm.clamp (doublePrecision, 1, 21);
21453
+ this .html = html;
21454
+ this .closingTags = html || closingTags;
21209
21455
 
21210
- this .string = "";
21211
- this .indent = "";
21212
- this .listIndent = "";
21213
- this .precision = precision;
21214
- this .doublePrecision = doublePrecision;
21215
- this .removeTrailingZeros = /(?:\.|(\.[0-9]*?))0*(?=[eE]|$)/;
21456
+ this .floatFormat = new Intl .NumberFormat ("en", {
21457
+ notation: "standard",
21458
+ maximumSignificantDigits: this .precision,
21459
+ useGrouping: false,
21460
+ }) .format;
21461
+
21462
+ this .floatExponentialFormat = new Intl .NumberFormat ("en", {
21463
+ notation: "scientific",
21464
+ maximumSignificantDigits: this .precision,
21465
+ useGrouping: false,
21466
+ }) .format;
21467
+
21468
+ this .doubleFormat = new Intl .NumberFormat ("en", {
21469
+ notation: "standard",
21470
+ maximumSignificantDigits: this .doublePrecision,
21471
+ useGrouping: false,
21472
+ }) .format;
21473
+
21474
+ this .doubleExponentialFormat = new Intl .NumberFormat ("en", {
21475
+ notation: "scientific",
21476
+ maximumSignificantDigits: this .doublePrecision,
21477
+ useGrouping: false,
21478
+ }) .format;
21479
+
21480
+ this .Style (style);
21216
21481
 
21217
21482
  this .executionContextStack = [ null ];
21218
21483
  this .importedNodesIndex = new Map ();
@@ -21239,6 +21504,8 @@ Generator .prototype =
21239
21504
  {
21240
21505
  case "CLEAN":
21241
21506
  {
21507
+ this .listIndent = "";
21508
+
21242
21509
  this .comma = " ";
21243
21510
  this .break = " ";
21244
21511
  this .tidyBreak = "";
@@ -21252,6 +21519,8 @@ Generator .prototype =
21252
21519
  }
21253
21520
  case "SMALL":
21254
21521
  {
21522
+ this .listIndent = "";
21523
+
21255
21524
  this .comma = ",";
21256
21525
  this .break = "\n";
21257
21526
  this .tidyBreak = "\n";
@@ -21265,6 +21534,8 @@ Generator .prototype =
21265
21534
  }
21266
21535
  case "COMPACT":
21267
21536
  {
21537
+ this .listIndent = "";
21538
+
21268
21539
  this .comma = ",";
21269
21540
  this .break = "\n";
21270
21541
  this .tidyBreak = "\n";
@@ -21349,18 +21620,42 @@ Generator .prototype =
21349
21620
  },
21350
21621
  DecIndent: function ()
21351
21622
  {
21352
- this .indent = this .indent .slice (0, this .indent .length - this .indentChar .length);
21623
+ this .indent = this .indent .slice (0, this .indent .length - this .indentChar .length);
21353
21624
  this .listIndent = this .listIndent .slice (0, this .listIndent .length - this .listIndentChar .length);
21354
21625
 
21355
21626
  return "";
21356
21627
  },
21357
- Precision: function (value)
21628
+ Precision: function (value)
21358
21629
  {
21359
- return Math .fround (value) .toPrecision (this .precision) .replace (this .removeTrailingZeros, "$1");
21630
+ if (Number .isFinite (value))
21631
+ {
21632
+ const exponent = Math .log10 (Math .abs (value));
21633
+
21634
+ if ((this .precision > exponent && exponent >= -4) || value === 0)
21635
+ return this .floatFormat (Math .fround (value));
21636
+
21637
+ return this .floatExponentialFormat (Math .fround (value)) .toLowerCase ();
21638
+ }
21639
+ else
21640
+ {
21641
+ return String (value);
21642
+ }
21360
21643
  },
21361
- DoublePrecision: function (value)
21644
+ DoublePrecision: function (value)
21362
21645
  {
21363
- return value .toPrecision (this .doublePrecision) .replace (this .removeTrailingZeros, "$1");
21646
+ if (Number .isFinite (value))
21647
+ {
21648
+ const exponent = Math .log10 (Math .abs (value));
21649
+
21650
+ if ((this .doublePrecision > exponent && exponent >= -4) || value === 0)
21651
+ return this .doubleFormat (value);
21652
+
21653
+ return this .doubleExponentialFormat (value) .toLowerCase ();
21654
+ }
21655
+ else
21656
+ {
21657
+ return String (value);
21658
+ }
21364
21659
  },
21365
21660
  PushExecutionContext: function (executionContext)
21366
21661
  {
@@ -21626,10 +21921,24 @@ Generator .prototype =
21626
21921
  return string .replace (regex, char => map [char]);
21627
21922
  };
21628
21923
  })(),
21629
- escapeCDATA: function (string)
21924
+ XMLEncodeSourceText: (function ()
21630
21925
  {
21631
- return string .replace (/\]\]\>/g, "\\]\\]\\>");
21632
- },
21926
+ const map = {
21927
+ "\\": "\\\\",
21928
+ "\"": "\\\"",
21929
+ "'": "&apos;",
21930
+ "<": "&lt;",
21931
+ ">": "&gt;",
21932
+ "&": "&amp;",
21933
+ };
21934
+
21935
+ const regex = /([\\"'<>&])/g;
21936
+
21937
+ return function (string)
21938
+ {
21939
+ return string .replace (regex, char => map [char]);
21940
+ };
21941
+ })(),
21633
21942
  JSONEncode: (function ()
21634
21943
  {
21635
21944
  const map = {
@@ -22752,8 +23061,6 @@ for (const key of Reflect .ownKeys (X3DInfoArray .prototype))
22752
23061
  Object .defineProperty (X3DInfoArray .prototype, "length",
22753
23062
  {
22754
23063
  get: function () { return this [_array] .length; },
22755
- enumerable: false,
22756
- configurable: false,
22757
23064
  });
22758
23065
 
22759
23066
  const X3DInfoArray_default_ = X3DInfoArray;
@@ -23451,245 +23758,6 @@ const SFBool_default_ = SFBool;
23451
23758
 
23452
23759
  x_ite_Namespace.set ("x_ite/Fields/SFBool", SFBool_default_);
23453
23760
  /* harmony default export */ const Fields_SFBool = (SFBool_default_);
23454
- ;// CONCATENATED MODULE: ./src/standard/Math/Algorithm.js
23455
- /*******************************************************************************
23456
- *
23457
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
23458
- *
23459
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
23460
- *
23461
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
23462
- *
23463
- * The copyright notice above does not evidence any actual of intended
23464
- * publication of such source code, and is an unpublished work by create3000.
23465
- * This material contains CONFIDENTIAL INFORMATION that is the property of
23466
- * create3000.
23467
- *
23468
- * No permission is granted to copy, distribute, or create derivative works from
23469
- * the contents of this software, in whole or in part, without the prior written
23470
- * permission of create3000.
23471
- *
23472
- * NON-MILITARY USE ONLY
23473
- *
23474
- * All create3000 software are effectively free software with a non-military use
23475
- * restriction. It is free. Well commented source is provided. You may reuse the
23476
- * source in any way you please with the exception anything that uses it must be
23477
- * marked to indicate is contains 'non-military use only' components.
23478
- *
23479
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
23480
- *
23481
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
23482
- *
23483
- * This file is part of the X_ITE Project.
23484
- *
23485
- * X_ITE is free software: you can redistribute it and/or modify it under the
23486
- * terms of the GNU General Public License version 3 only, as published by the
23487
- * Free Software Foundation.
23488
- *
23489
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
23490
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
23491
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
23492
- * details (a copy is included in the LICENSE file that accompanied this code).
23493
- *
23494
- * You should have received a copy of the GNU General Public License version 3
23495
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
23496
- * copy of the GPLv3 License.
23497
- *
23498
- * For Silvio, Joy and Adi.
23499
- *
23500
- ******************************************************************************/
23501
-
23502
- const Algorithm_default_ = class Algorithm
23503
- {
23504
- static radians (value)
23505
- {
23506
- return value * (Math .PI / 180);
23507
- }
23508
-
23509
- static degrees (value)
23510
- {
23511
- return value * (180 / Math .PI);
23512
- }
23513
-
23514
- static random (min, max)
23515
- {
23516
- return min + Math .random () * (max - min);
23517
- }
23518
-
23519
- static fract (value)
23520
- {
23521
- return value % 1;
23522
- }
23523
-
23524
- static clamp (value, min, max)
23525
- {
23526
- // https://registry.khronos.org/OpenGL-Refpages/gl4/html/clamp.xhtml
23527
- return Math .min (Math .max (value, min), max);
23528
- }
23529
-
23530
- static interval (value, low, high)
23531
- {
23532
- if (value >= high)
23533
- return ((value - low) % (high - low)) + low;
23534
-
23535
- if (value < low)
23536
- return ((value - high) % (high - low)) + high;
23537
-
23538
- return value;
23539
- }
23540
-
23541
- static lerp (source, destination, t)
23542
- {
23543
- return source + t * (destination - source);
23544
- }
23545
-
23546
- static slerp (source, destination, t)
23547
- {
23548
- let cosom = source .dot (destination);
23549
-
23550
- // if (cosom <= -1) ... vectors are inverse colinear.
23551
-
23552
- if (cosom >= 1) // Both normal vectors are equal.
23553
- return source;
23554
-
23555
- if (cosom < 0)
23556
- {
23557
- // Reverse signs so we travel the short way round.
23558
- cosom = -cosom;
23559
- destination .negate ();
23560
- }
23561
-
23562
- const
23563
- omega = Math .acos (cosom),
23564
- sinom = Math .sin (omega),
23565
- scale0 = Math .sin ((1 - t) * omega) / sinom,
23566
- scale1 = Math .sin (t * omega) / sinom;
23567
-
23568
- source .x = source .x * scale0 + destination .x * scale1;
23569
- source .y = source .y * scale0 + destination .y * scale1;
23570
- source .z = source .z * scale0 + destination .z * scale1;
23571
- source .w = source .w * scale0 + destination .w * scale1;
23572
-
23573
- return source;
23574
- }
23575
-
23576
- static simpleSlerp (source, destination, t)
23577
- {
23578
- const cosom = source .dot (destination);
23579
-
23580
- // if (cosom <= -1) ... vectors are inverse colinear.
23581
-
23582
- if (cosom >= 1) // Both normal vectors are equal.
23583
- return source;
23584
-
23585
- const
23586
- omega = Math .acos (cosom),
23587
- sinom = Math .sin (omega),
23588
- scale0 = Math .sin ((1 - t) * omega) / sinom,
23589
- scale1 = Math .sin (t * omega) / sinom;
23590
-
23591
- source .x = source .x * scale0 + destination .x * scale1;
23592
- source .y = source .y * scale0 + destination .y * scale1;
23593
- source .z = source .z * scale0 + destination .z * scale1;
23594
- source .w = source .w * scale0 + destination .w * scale1;
23595
-
23596
- return source;
23597
- }
23598
-
23599
- static isPowerOfTwo (n)
23600
- {
23601
- return ((n - 1) & n) === 0;
23602
- }
23603
-
23604
- static nextPowerOfTwo (n)
23605
- {
23606
- /// Returns the next power of two of @a n. If n is a power of two, n is returned.
23607
-
23608
- if (this .isPowerOfTwo (n))
23609
- return n;
23610
-
23611
- return 1 << (32 - Math .clz32 (n));
23612
- }
23613
-
23614
- static bitCount (n)
23615
- {
23616
- n = n - ((n >>> 1) & 0x55555555);
23617
- n = (n & 0x33333333) + ((n >>> 2) & 0x33333333);
23618
- return ((n + (n >>> 4) & 0xF0F0F0F) * 0x1010101) >>> 24;
23619
- }
23620
-
23621
- static cmp (lhs, rhs)
23622
- {
23623
- return lhs > rhs ? 1 : lhs < rhs ? -1 : 0;
23624
- }
23625
-
23626
- static less (lhs, rhs)
23627
- {
23628
- return lhs < rhs;
23629
- }
23630
-
23631
- static greater (lhs, rhs)
23632
- {
23633
- return lhs > rhs;
23634
- }
23635
-
23636
- static lowerBound (array, first, last, value, comp = this.less)
23637
- {
23638
- // https://en.cppreference.com/w/cpp/algorithm/lower_bound
23639
-
23640
- let
23641
- index = 0,
23642
- step = 0,
23643
- count = last - first;
23644
-
23645
- while (count > 0)
23646
- {
23647
- step = count >>> 1;
23648
- index = first + step;
23649
-
23650
- if (comp (array [index], value))
23651
- {
23652
- first = ++ index;
23653
- count -= step + 1;
23654
- }
23655
- else
23656
- count = step;
23657
- }
23658
-
23659
- return first;
23660
- }
23661
-
23662
- static upperBound (array, first, last, value, comp = this.less)
23663
- {
23664
- // sen.cppreference.com/w/cpp/algorithm/upper_bound
23665
-
23666
- let
23667
- index = 0,
23668
- step = 0,
23669
- count = last - first;
23670
-
23671
- while (count > 0)
23672
- {
23673
- step = count >>> 1;
23674
- index = first + step;
23675
-
23676
- if (comp (value, array [index]))
23677
- count = step;
23678
-
23679
- else
23680
- {
23681
- first = ++ index;
23682
- count -= step + 1;
23683
- }
23684
- }
23685
-
23686
- return first;
23687
- }
23688
- }
23689
- ;
23690
-
23691
- x_ite_Namespace.set ("standard/Math/Algorithm", Algorithm_default_);
23692
- /* harmony default export */ const Algorithm = (Algorithm_default_);
23693
23761
  ;// CONCATENATED MODULE: ./src/standard/Math/Numbers/Color3.js
23694
23762
  /*******************************************************************************
23695
23763
  *
@@ -24154,7 +24222,6 @@ const SFColor_r = {
24154
24222
  this .addEvent ();
24155
24223
  },
24156
24224
  enumerable: true,
24157
- configurable: false
24158
24225
  };
24159
24226
 
24160
24227
  const SFColor_g = {
@@ -24168,7 +24235,6 @@ const SFColor_g = {
24168
24235
  this .addEvent ();
24169
24236
  },
24170
24237
  enumerable: true,
24171
- configurable: false
24172
24238
  };
24173
24239
 
24174
24240
  const SFColor_b = {
@@ -24182,7 +24248,6 @@ const SFColor_b = {
24182
24248
  this .addEvent ();
24183
24249
  },
24184
24250
  enumerable: true,
24185
- configurable: false
24186
24251
  };
24187
24252
 
24188
24253
  Object .defineProperty (SFColor .prototype, "r", SFColor_r);
@@ -24552,7 +24617,6 @@ const SFColorRGBA_r = {
24552
24617
  this .addEvent ();
24553
24618
  },
24554
24619
  enumerable: true,
24555
- configurable: false
24556
24620
  };
24557
24621
 
24558
24622
  const SFColorRGBA_g = {
@@ -24566,7 +24630,6 @@ const SFColorRGBA_g = {
24566
24630
  this .addEvent ();
24567
24631
  },
24568
24632
  enumerable: true,
24569
- configurable: false
24570
24633
  };
24571
24634
 
24572
24635
  const SFColorRGBA_b = {
@@ -24580,7 +24643,6 @@ const SFColorRGBA_b = {
24580
24643
  this .addEvent ();
24581
24644
  },
24582
24645
  enumerable: true,
24583
- configurable: false
24584
24646
  };
24585
24647
 
24586
24648
  const SFColorRGBA_a = {
@@ -24594,7 +24656,6 @@ const SFColorRGBA_a = {
24594
24656
  this .addEvent ();
24595
24657
  },
24596
24658
  enumerable: true,
24597
- configurable: false
24598
24659
  };
24599
24660
 
24600
24661
  Object .defineProperty (SFColorRGBA .prototype, "r", SFColorRGBA_r);
@@ -25757,7 +25818,6 @@ function SFVec2Template (TypeName, Type, double)
25757
25818
  this .addEvent ();
25758
25819
  },
25759
25820
  enumerable: true,
25760
- configurable: false
25761
25821
  };
25762
25822
 
25763
25823
  const y = {
@@ -25771,7 +25831,6 @@ function SFVec2Template (TypeName, Type, double)
25771
25831
  this .addEvent ();
25772
25832
  },
25773
25833
  enumerable: true,
25774
- configurable: false
25775
25834
  };
25776
25835
 
25777
25836
  Object .defineProperty (SFVec2 .prototype, "x", x);
@@ -27495,7 +27554,6 @@ function SFMatrix3Template (TypeName, Type, SFVec2, double)
27495
27554
  this .addEvent ();
27496
27555
  },
27497
27556
  enumerable: true,
27498
- configurable: false,
27499
27557
  });
27500
27558
  }
27501
27559
 
@@ -27611,7 +27669,6 @@ function SFVec3Template (TypeName, Type, double)
27611
27669
  this .addEvent ();
27612
27670
  },
27613
27671
  enumerable: true,
27614
- configurable: false
27615
27672
  };
27616
27673
 
27617
27674
  const y = {
@@ -27625,7 +27682,6 @@ function SFVec3Template (TypeName, Type, double)
27625
27682
  this .addEvent ();
27626
27683
  },
27627
27684
  enumerable: true,
27628
- configurable: false
27629
27685
  };
27630
27686
 
27631
27687
  const z = {
@@ -27639,7 +27695,6 @@ function SFVec3Template (TypeName, Type, double)
27639
27695
  this .addEvent ();
27640
27696
  },
27641
27697
  enumerable: true,
27642
- configurable: false
27643
27698
  };
27644
27699
 
27645
27700
  Object .defineProperty (SFVec3 .prototype, "x", x);
@@ -30051,7 +30106,6 @@ function SFMatrix4Template (TypeName, Type, SFVec3, double)
30051
30106
  this .addEvent ();
30052
30107
  },
30053
30108
  enumerable: true,
30054
- configurable: false,
30055
30109
  });
30056
30110
  }
30057
30111
 
@@ -30872,7 +30926,6 @@ const SFRotation_x = {
30872
30926
  this .addEvent ();
30873
30927
  },
30874
30928
  enumerable: true,
30875
- configurable: false
30876
30929
  };
30877
30930
 
30878
30931
  const SFRotation_y = {
@@ -30886,7 +30939,6 @@ const SFRotation_y = {
30886
30939
  this .addEvent ();
30887
30940
  },
30888
30941
  enumerable: true,
30889
- configurable: false
30890
30942
  };
30891
30943
 
30892
30944
  const SFRotation_z = {
@@ -30900,7 +30952,6 @@ const SFRotation_z = {
30900
30952
  this .addEvent ();
30901
30953
  },
30902
30954
  enumerable: true,
30903
- configurable: false
30904
30955
  };
30905
30956
 
30906
30957
  const SFRotation_angle = {
@@ -30914,7 +30965,6 @@ const SFRotation_angle = {
30914
30965
  this .addEvent ();
30915
30966
  },
30916
30967
  enumerable: true,
30917
- configurable: false
30918
30968
  };
30919
30969
 
30920
30970
  Object .defineProperty (SFRotation .prototype, "x", SFRotation_x);
@@ -31035,15 +31085,19 @@ SFString .prototype = Object .assign (Object .create (Base_X3DField.prototype),
31035
31085
  valueOf: Base_X3DField.prototype.getValue,
31036
31086
  toStream: function (generator)
31037
31087
  {
31038
- generator .string += '"' + SFString .escape (this .getValue ()) + '"';
31088
+ generator .string += '"';
31089
+ generator .string += SFString .escape (this .getValue ());
31090
+ generator .string += '"';
31039
31091
  },
31040
31092
  toVRMLStream: function (generator)
31041
31093
  {
31042
31094
  this .toStream (generator);
31043
31095
  },
31044
- toXMLStream: function (generator)
31096
+ toXMLStream: function (generator, sourceText)
31045
31097
  {
31046
- generator .string += generator .XMLEncode (this .getValue ());
31098
+ generator .string += sourceText
31099
+ ? generator .XMLEncodeSourceText (this .getValue ())
31100
+ : generator .XMLEncode (this .getValue ());
31047
31101
  },
31048
31102
  toJSONStream: function (generator)
31049
31103
  {
@@ -31067,7 +31121,6 @@ Object .defineProperty (SFString .prototype, "length",
31067
31121
  return this .getValue () .length;
31068
31122
  },
31069
31123
  enumerable: true,
31070
- configurable: false
31071
31124
  });
31072
31125
 
31073
31126
  const SFString_default_ = SFString;
@@ -31277,7 +31330,6 @@ function SFVec4Template (TypeName, Type, double)
31277
31330
  this .addEvent ();
31278
31331
  },
31279
31332
  enumerable: true,
31280
- configurable: false
31281
31333
  };
31282
31334
 
31283
31335
  const y = {
@@ -31291,7 +31343,6 @@ function SFVec4Template (TypeName, Type, double)
31291
31343
  this .addEvent ();
31292
31344
  },
31293
31345
  enumerable: true,
31294
- configurable: false
31295
31346
  };
31296
31347
 
31297
31348
  const z = {
@@ -31305,7 +31356,6 @@ function SFVec4Template (TypeName, Type, double)
31305
31356
  this .addEvent ();
31306
31357
  },
31307
31358
  enumerable: true,
31308
- configurable: false
31309
31359
  };
31310
31360
 
31311
31361
  const w = {
@@ -31319,7 +31369,6 @@ function SFVec4Template (TypeName, Type, double)
31319
31369
  this .addEvent ();
31320
31370
  },
31321
31371
  enumerable: true,
31322
- configurable: false
31323
31372
  };
31324
31373
 
31325
31374
  Object .defineProperty (SFVec4 .prototype, "x", x);
@@ -32066,8 +32115,6 @@ Object .defineProperty (X3DObjectArrayField .prototype, "length",
32066
32115
  {
32067
32116
  get: function () { return this [X3DObjectArrayField_target] .getValue () .length; },
32068
32117
  set: function (value) { this [X3DObjectArrayField_target] .resize (value); },
32069
- enumerable: false,
32070
- configurable: false,
32071
32118
  });
32072
32119
 
32073
32120
  const X3DObjectArrayField_default_ = X3DObjectArrayField;
@@ -33154,8 +33201,6 @@ Object .defineProperty (X3DTypedArrayField .prototype, "length",
33154
33201
  {
33155
33202
  get: function () { return this [_length]; },
33156
33203
  set: function (value) { this [X3DTypedArrayField_target] .resize (value); },
33157
- enumerable: false,
33158
- configurable: false,
33159
33204
  });
33160
33205
 
33161
33206
  // Getter/Setter functions to reference a value for a given index.
@@ -33513,7 +33558,7 @@ MFNode .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.pro
33513
33558
  generator .string += "'";
33514
33559
  }
33515
33560
 
33516
- generator .string += "/>";
33561
+ generator .string += generator .closingTags ? "></NULL>" : "/>";
33517
33562
  }
33518
33563
  }
33519
33564
 
@@ -33639,7 +33684,7 @@ MFString .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.p
33639
33684
  {
33640
33685
  return Base_X3DConstants.MFString;
33641
33686
  },
33642
- toXMLStream: function (generator)
33687
+ toXMLStream: function (generator, sourceText)
33643
33688
  {
33644
33689
  const
33645
33690
  target = this .getTarget (),
@@ -33652,14 +33697,14 @@ MFString .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.p
33652
33697
  for (let i = 0, n = length - 1; i < n; ++ i)
33653
33698
  {
33654
33699
  generator .string += "\"";
33655
- value [i] .toXMLStream (generator);
33700
+ value [i] .toXMLStream (generator, sourceText);
33656
33701
  generator .string += "\"";
33657
33702
  generator .string += generator .Comma ();
33658
33703
  generator .string += generator .TidySpace ();
33659
33704
  }
33660
33705
 
33661
33706
  generator .string += "\"";
33662
- value .at (-1) .toXMLStream (generator);
33707
+ value .at (-1) .toXMLStream (generator, sourceText);
33663
33708
  generator .string += "\"";
33664
33709
  }
33665
33710
  },
@@ -34086,7 +34131,6 @@ const width = {
34086
34131
  this .addEvent ();
34087
34132
  },
34088
34133
  enumerable: true,
34089
- configurable: false
34090
34134
  };
34091
34135
 
34092
34136
  const height = {
@@ -34100,7 +34144,6 @@ const height = {
34100
34144
  this .addEvent ();
34101
34145
  },
34102
34146
  enumerable: true,
34103
- configurable: false
34104
34147
  };
34105
34148
 
34106
34149
  const comp = {
@@ -34114,7 +34157,6 @@ const comp = {
34114
34157
  this .addEvent ();
34115
34158
  },
34116
34159
  enumerable: true,
34117
- configurable: false
34118
34160
  };
34119
34161
 
34120
34162
  const array = {
@@ -34128,7 +34170,6 @@ const array = {
34128
34170
  this .addEvent ();
34129
34171
  },
34130
34172
  enumerable: true,
34131
- configurable: false
34132
34173
  };
34133
34174
 
34134
34175
  Object .defineProperty (SFImage .prototype, "width", width);
@@ -34492,12 +34533,7 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34492
34533
 
34493
34534
  // Change function.
34494
34535
 
34495
- Object .defineProperty (this, "getLive",
34496
- {
34497
- value: getLive,
34498
- enumerable: false,
34499
- configurable: true,
34500
- });
34536
+ Object .defineProperty (this, "getLive", { value: getLive });
34501
34537
 
34502
34538
  // Add isLive event.
34503
34539
 
@@ -34508,7 +34544,7 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34508
34544
 
34509
34545
  // Connect to execution context.
34510
34546
 
34511
- if (this .getOuterNode && this .getOuterNode ())
34547
+ if (this .getOuterNode ?.())
34512
34548
  this .getOuterNode () .getLive () .addInterest (_set_live__, this);
34513
34549
 
34514
34550
  else if (this [_executionContext] !== this)
@@ -34612,8 +34648,6 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34612
34648
  {
34613
34649
  get: function () { return field; },
34614
34650
  set: function (value) { field .setValue (value); },
34615
- enumerable: false,
34616
- configurable: false,
34617
34651
  });
34618
34652
  },
34619
34653
  getFieldDefinitions: function ()
@@ -34639,8 +34673,6 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34639
34673
  {
34640
34674
  get: function () { return field; },
34641
34675
  set: function (value) { field .setValue (value); },
34642
- enumerable: false,
34643
- configurable: true, // false : non deletable
34644
34676
  });
34645
34677
 
34646
34678
  if (!this .isPrivate ())
@@ -34696,7 +34728,6 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34696
34728
  get: function () { return field; },
34697
34729
  set: function (value) { field .setValue (value); },
34698
34730
  enumerable: true,
34699
- configurable: false,
34700
34731
  });
34701
34732
 
34702
34733
  if (field .isInitializable ())
@@ -34967,7 +34998,7 @@ x_ite_Namespace.set ("x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34967
34998
  *
34968
34999
  ******************************************************************************/
34969
35000
 
34970
- const VERSION_default_ = "8.6.20";
35001
+ const VERSION_default_ = "8.6.22";
34971
35002
  ;
34972
35003
 
34973
35004
  x_ite_Namespace.set ("x_ite/Browser/VERSION", VERSION_default_);
@@ -35545,6 +35576,15 @@ msgstr "Auf Objekte zielen"
35545
35576
  msgid "None Viewer"
35546
35577
  msgstr "Kein Betrachter"
35547
35578
 
35579
+ msgid "Points"
35580
+ msgstr "Punkte"
35581
+
35582
+ msgid "Flat"
35583
+ msgstr "Flach"
35584
+
35585
+ msgid "Wireframe"
35586
+ msgstr "Drahtgittermodel"
35587
+
35548
35588
  msgid "Loading %1 file"
35549
35589
  msgstr "Lade %1 Datei"
35550
35590
 
@@ -35586,13 +35626,13 @@ msgstr ""
35586
35626
  "X-Poedit-SearchPath-0: .\n"
35587
35627
 
35588
35628
  msgid "Less Properties"
35589
- msgstr "Moins de propriétés"
35629
+ msgstr "Moins de Propriétés"
35590
35630
 
35591
35631
  msgid "More Properties"
35592
- msgstr "Plus de propriétés"
35632
+ msgstr "Plus de Propriétés"
35593
35633
 
35594
35634
  msgid "Frame rate"
35595
- msgstr "Fréquence"
35635
+ msgstr "Fréquence d'Images"
35596
35636
 
35597
35637
  msgid "fps"
35598
35638
  msgstr "fps"
@@ -35615,8 +35655,8 @@ msgstr ""
35615
35655
  msgid "X3D total"
35616
35656
  msgstr "X3D total"
35617
35657
 
35618
- msgid "Traitement des événements"
35619
- msgstr "Routes"
35658
+ msgid "Event Processing"
35659
+ msgstr "Traitement des Événements"
35620
35660
 
35621
35661
  msgid "Pointer"
35622
35662
  msgstr "Pointeur"
@@ -35625,34 +35665,34 @@ msgid "Camera"
35625
35665
  msgstr "Caméra"
35626
35666
 
35627
35667
  msgid "Collision Detection"
35628
- msgstr "Détection des collisions"
35668
+ msgstr "Détection des Collisions"
35629
35669
 
35630
35670
  msgid "Rendering"
35631
35671
  msgstr "Rendement"
35632
35672
 
35633
35673
  msgid "Number of Shapes"
35634
- msgstr "Nombre de formes"
35674
+ msgstr "Nombre de Formes"
35635
35675
 
35636
35676
  msgid "Number of Sensors"
35637
- msgstr "Nombre de senseurs"
35677
+ msgstr "Nombre de Senseurs"
35638
35678
 
35639
35679
  msgid "Browser Timings"
35640
- msgstr "Calcul du temps"
35680
+ msgstr "Calcul du Temps"
35641
35681
 
35642
35682
  msgid "X_ITE Browser"
35643
35683
  msgstr "X_ITE Navigateur"
35644
35684
 
35645
35685
  msgid "Viewpoints"
35646
- msgstr "Points de vue"
35686
+ msgstr "Points de Vue"
35647
35687
 
35648
35688
  msgid "Available Viewers"
35649
35689
  msgstr "Visionneurs disponibles"
35650
35690
 
35651
35691
  msgid "Straighten Horizon"
35652
- msgstr "Redresser l'horizon"
35692
+ msgstr "Redresser l'Horizon"
35653
35693
 
35654
35694
  msgid "Primitive Quality"
35655
- msgstr "Qualité des objets simples"
35695
+ msgstr "Qualité des Objets simples"
35656
35696
 
35657
35697
  msgid "High"
35658
35698
  msgstr "Haut"
@@ -35673,10 +35713,10 @@ msgid "low"
35673
35713
  msgstr "faible"
35674
35714
 
35675
35715
  msgid "Texture Quality"
35676
- msgstr "Qualité des textures"
35716
+ msgstr "Qualité des Textures"
35677
35717
 
35678
35718
  msgid "Display Rubberband"
35679
- msgstr "Présenter le bande élastique"
35719
+ msgstr "Présenter le Bande élastique"
35680
35720
 
35681
35721
  msgid "Rubberband"
35682
35722
  msgstr "Bande élastique"
@@ -35688,19 +35728,19 @@ msgid "off"
35688
35728
  msgstr "arrêt"
35689
35729
 
35690
35730
  msgid "Mute Browser"
35691
- msgstr "Rendre navigateur muet"
35731
+ msgstr "Rendre Navigateur muet"
35692
35732
 
35693
35733
  msgid "Browser muted"
35694
35734
  msgstr "Navigateur muet"
35695
35735
 
35696
35736
  msgid "Browser unmuted"
35697
- msgstr "Son de navigateur réactivé"
35737
+ msgstr "Son de Navigateur réactivé"
35698
35738
 
35699
35739
  msgid "Leave Fullscreen"
35700
- msgstr "Sortie en plein écran"
35740
+ msgstr "Laisser le plein Écran"
35701
35741
 
35702
35742
  msgid "Fullscreen"
35703
- msgstr "Plein écran"
35743
+ msgstr "Plein Écran"
35704
35744
 
35705
35745
  msgid "About X_ITE"
35706
35746
  msgstr "À propos de X_ITE"
@@ -35715,31 +35755,37 @@ msgid "Fly Viewer"
35715
35755
  msgstr "Voler"
35716
35756
 
35717
35757
  msgid "Plane Viewer"
35718
- msgstr "Visionneur de la plaine"
35758
+ msgstr "Visionneur de la Plaine"
35719
35759
 
35720
35760
  msgid "Look At Viewer"
35721
- msgstr "Regarder un objet de près"
35761
+ msgstr "Regarder un Objet de près"
35722
35762
 
35723
35763
  msgid "None Viewer"
35724
- msgstr "Pas de visionneur"
35764
+ msgstr "Pas de Visionneur"
35765
+
35766
+ msgid "Flat"
35767
+ msgstr "Plat"
35768
+
35769
+ msgid "Wireframe"
35770
+ msgstr "Image filaire"
35725
35771
 
35726
35772
  msgid "Loading %1 file"
35727
- msgstr "Télécharger %1 fichier"
35773
+ msgstr "Télécharger %1 Fichier"
35728
35774
 
35729
35775
  msgid "Loading %1 files"
35730
- msgstr "Télécharger %1 fichiers"
35776
+ msgstr "Télécharger %1 Fichiers"
35731
35777
 
35732
35778
  msgid "Loading done"
35733
35779
  msgstr "Téléchargement fini"
35734
35780
 
35735
35781
  msgid "Failed loading world."
35736
- msgstr "Le chargement des fichiers a échoué."
35782
+ msgstr "Le chargement des Fichiers a échoué."
35737
35783
 
35738
35784
  msgid "Show World Info"
35739
35785
  msgstr "Afficher World Info"
35740
35786
 
35741
35787
  msgid "Viewpoint is copied to clipboard."
35742
- msgstr "Le point de vue est copié dans le presse-papiers."
35788
+ msgstr "Le point de Vue est copié dans le Presse-Papiers."
35743
35789
  `;
35744
35790
  ;
35745
35791
 
@@ -35871,7 +35917,7 @@ const gettext_default_ = gettext;
35871
35917
  x_ite_Namespace.set ("locale/gettext", gettext_default_);
35872
35918
  /* harmony default export */ const locale_gettext = (gettext_default_);
35873
35919
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
35874
- /* provided dependency */ var $ = __webpack_require__(586);
35920
+ /* provided dependency */ var $ = __webpack_require__(714);
35875
35921
  /*******************************************************************************
35876
35922
  *
35877
35923
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -35929,7 +35975,6 @@ function BrowserTimings (executionContext)
35929
35975
 
35930
35976
  this .localStorage = this .getBrowser () .getLocalStorage () .addNameSpace ("BrowserTimings.");
35931
35977
  this .fps = new Time_StopWatch ();
35932
- this .localeOptions = { minimumFractionDigits: 2, maximumFractionDigits: 2 };
35933
35978
  }
35934
35979
 
35935
35980
  BrowserTimings .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype),
@@ -35955,17 +36000,101 @@ BrowserTimings .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
35955
36000
 
35956
36001
  this .localStorage .addDefaultValues ({ type: "LESS" });
35957
36002
 
35958
- this .element = $("<div></div>") .hide () .addClass ("x_ite-private-browser-timings") .appendTo (this .getBrowser () .getSurface ());
35959
- this .table = $("<table></table>") .appendTo (this .element);
35960
- this .header = $("<thead></thead>") .append ($("<tr></tr>") .append ($("<th colspan='2'></th>"))) .appendTo (this .table);
35961
- this .body = $("<tbody></tbody>") .appendTo (this .table);
35962
- this .footer = $("<tfoot></tfoot>") .append ($("<tr></tr>") .append ($("<td colspan='2'></td>"))) .appendTo (this .table);
35963
- this .button = $("<button></button>") .attr ("type", "button") .appendTo (this .footer .find ("td"));
35964
- this .rows = [ ];
36003
+ this .element = $("<div></div>")
36004
+ .hide ()
36005
+ .addClass ("x_ite-private-browser-timings")
36006
+ .appendTo (this .getBrowser () .getSurface ());
36007
+
36008
+ this .table = $("<table></table>")
36009
+ .appendTo (this .element);
36010
+
36011
+ this .header = $("<thead></thead>")
36012
+ .append ($("<tr></tr>")
36013
+ .append ($("<th colspan='2'></th>")
36014
+ .text (locale_gettext("Browser Timings"))))
36015
+ .appendTo (this .table);
36016
+
36017
+ this .body = $("<tbody></tbody>")
36018
+ .appendTo (this .table);
36019
+
36020
+ this .footer = $("<tfoot></tfoot>")
36021
+ .append ($("<tr></tr>")
36022
+ .append ($("<td colspan='2'></td>")))
36023
+ .appendTo (this .table);
36024
+
36025
+ this .button = $("<button></button>")
36026
+ .attr ("type", "button")
36027
+ .appendTo (this .footer .find ("td"));
36028
+
36029
+ this .frameRate = $("<td></td>");
36030
+ this .speed = $("<td></td>");
36031
+ this .frameRate = $("<td></td>");
36032
+ this .speed = $("<td></td>");
36033
+ this .browserTime = $("<td></td>");
36034
+ this .x3dTotal = $("<td></td>");
36035
+ this .eventProcessing = $("<td></td>");
36036
+ this .pointerTime = $("<td></td>");
36037
+ this .cameraTime = $("<td></td>");
36038
+ this .pickingTime = $("<td></td>");
36039
+ this .collisionTime = $("<td></td>");
36040
+ this .renderTime = $("<td></td>");
36041
+ this .numShapes = $("<td></td>");
36042
+ this .sensors = $("<td></td>");
36043
+
36044
+ this .body .append ($("<tr></tr>")
36045
+ .append ($("<td></td>") .text (locale_gettext("Frame rate") + ":"))
36046
+ .append (this .frameRate));
36047
+
36048
+ this .body .append ($("<tr></tr>")
36049
+ .append ($("<td></td>") .text (locale_gettext("Speed") + ":"))
36050
+ .append (this .speed)
36051
+ .addClass ("x_ite-private-more"));
36052
+
36053
+ this .body .append ($("<tr></tr>")
36054
+ .append ($("<td></td>") .text (locale_gettext("Browser") + ":"))
36055
+ .append (this .browserTime));
36056
+
36057
+ this .body .append ($("<tr></tr>")
36058
+ .append ($("<td></td>") .text (locale_gettext("X3D total") + ":"))
36059
+ .append (this .x3dTotal));
36060
+
36061
+ this .body .append ($("<tr></tr>")
36062
+ .append ($("<td></td>") .text (locale_gettext("Event Processing") + ":"))
36063
+ .append (this .eventProcessing));
36064
+
36065
+ this .body .append ($("<tr></tr>")
36066
+ .append ($("<td></td>") .text (locale_gettext("Pointer") + ":"))
36067
+ .append (this .pointerTime));
36068
+
36069
+ this .body .append ($("<tr></tr>")
36070
+ .append ($("<td></td>") .text (locale_gettext("Camera") + ":"))
36071
+ .append (this .cameraTime));
36072
+
36073
+ this .body .append ($("<tr></tr>")
36074
+ .append ($("<td></td>") .text (locale_gettext("Picking") + ":"))
36075
+ .append (this .pickingTime));
36076
+
36077
+ this .body .append ($("<tr></tr>")
36078
+ .append ($("<td></td>") .text (locale_gettext("Collision Detection") + ":"))
36079
+ .append (this .collisionTime));
36080
+
36081
+ this .body .append ($("<tr></tr>")
36082
+ .append ($("<td></td>") .text (locale_gettext("Rendering") + ":"))
36083
+ .append (this .renderTime));
36084
+
36085
+ this .body .append ($("<tr></tr>")
36086
+ .append ($("<td></td>") .text (locale_gettext("Number of Shapes") + ":"))
36087
+ .append (this .numShapes));
36088
+
36089
+ this .body .append ($("<tr></tr>")
36090
+ .append ($("<td></td>") .text (locale_gettext("Number of Sensors") + ":"))
36091
+ .append (this .sensors));
35965
36092
 
35966
36093
  this .button .on ("click touchend", this .set_type__ .bind (this));
35967
36094
 
35968
- this .set_button__ ();
36095
+ this .localStorage .type = this .localStorage .type === "MORE" ? "LESS" : "MORE";
36096
+
36097
+ this .set_type__ ();
35969
36098
  },
35970
36099
  set_enabled__: function ()
35971
36100
  {
@@ -35986,9 +36115,17 @@ BrowserTimings .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
35986
36115
  set_type__: function ()
35987
36116
  {
35988
36117
  if (this .localStorage .type === "MORE")
36118
+ {
35989
36119
  this .localStorage .type = "LESS";
36120
+ this .table .addClass ("less");
36121
+ this .table .removeClass ("more");
36122
+ }
35990
36123
  else
36124
+ {
35991
36125
  this .localStorage .type = "MORE";
36126
+ this .table .addClass ("more");
36127
+ this .table .removeClass ("less");
36128
+ }
35992
36129
 
35993
36130
  this .set_button__ ();
35994
36131
  this .build ();
@@ -36014,68 +36151,45 @@ BrowserTimings .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36014
36151
  },
36015
36152
  build: function ()
36016
36153
  {
36017
- const
36018
- browser = this .getBrowser (),
36019
- language = navigator .language || navigator .userLanguage,
36020
- fixed = this .localeOptions,
36021
- rows = this .rows;
36022
-
36023
- let r = 0;
36024
-
36025
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Frame rate") + ":")) .append ($("<td></td>") .text (f2(1000 / this .fps .averageTime) .toLocaleString (language, fixed) + " " + locale_gettext("fps")));
36026
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Speed") + ":")) .append ($("<td></td>") .text (f2(this .getSpeed (browser .currentSpeed)) .toLocaleString (language, fixed) + " " + this .getSpeedUnit (browser .currentSpeed)));
36027
-
36028
- if (this .localStorage .type === "MORE")
36029
- {
36030
- const
36031
- layers = browser .getWorld () .getLayerSet () .getLayers (),
36032
- activeLayer = browser .getActiveLayer (),
36033
- navigationTime = activeLayer && browser .getCollisionCount () ? activeLayer .getCollisionTime () .averageTime : 0,
36034
- collisionTime = browser .getCollisionTime () .averageTime + navigationTime,
36035
- routingTime = Math .max (0, browser .getBrowserTime () .averageTime - (browser .getCameraTime () .averageTime + browser .getCollisionTime () .averageTime + browser .getDisplayTime () .averageTime)),
36036
- prepareEvents = browser .prepareEvents () .getInterests () .size - 1,
36037
- sensors = browser .sensorEvents () .getInterests () .size;
36038
-
36039
- let
36040
- opaqueShapes = 0,
36041
- transparentShapes = 0;
36042
-
36043
- for (const layer of layers)
36044
- {
36045
- opaqueShapes += layer .numOpaqueShapes;
36046
- transparentShapes += layer .numTransparentShapes;
36047
- }
36048
-
36049
- rows [1] .addClass ("x_ite-private-more");
36050
-
36051
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Browser") + ":")) .append ($("<td></td>") .text (f2(browser .getSystemTime () .averageTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36052
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("X3D total") + ":")) .append ($("<td></td>") .text (f2(browser .getBrowserTime () .averageTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36053
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Event Processing") + ":")) .append ($("<td></td>") .text (f2(routingTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36054
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Pointer") + ":")) .append ($("<td></td>") .text (f2(browser .getPointingTime () .averageTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36055
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Camera") + ":")) .append ($("<td></td>") .text (f2(browser .getCameraTime () .averageTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36056
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Picking") + ":")) .append ($("<td></td>") .text (f2(browser .getPickingTime () .averageTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36057
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Collision Detection") + ":")) .append ($("<td></td>") .text (f2(collisionTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36058
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Rendering") + ":")) .append ($("<td></td>") .text (f2(browser .getDisplayTime () .averageTime) .toLocaleString (language, fixed) + " " + locale_gettext("ms")));
36059
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Number of Shapes") + ":")) .append ($("<td></td>") .text (opaqueShapes + " + " + transparentShapes));
36060
- rows [r++] = $("<tr></tr>") .append ($("<td></td>") .text (locale_gettext("Number of Sensors") + ":")) .append ($("<td></td>") .text (prepareEvents + sensors));
36061
-
36062
- browser .getSystemTime () .reset ();
36063
- browser .getBrowserTime () .reset ();
36064
- browser .getPointingTime () .reset ();
36065
- browser .getCameraTime () .reset ();
36066
- browser .getPickingTime () .reset ();
36067
- browser .getCollisionTime () .reset ();
36068
- browser .getDisplayTime () .reset ();
36154
+ const browser = this .getBrowser ();
36069
36155
 
36070
- if (activeLayer)
36071
- activeLayer .getCollisionTime () .reset ();
36072
- }
36156
+ this .frameRate .text (f2(1000 / this .fps .averageTime) + " " + locale_gettext("fps"));
36157
+ this .speed .text (f2(this .getSpeed (browser .currentSpeed)) + " " + this .getSpeedUnit (browser .currentSpeed));
36073
36158
 
36074
- rows .length = r;
36159
+ if (this .localStorage .type !== "MORE" || !browser .getWorld ())
36160
+ return;
36075
36161
 
36076
- this .header .find ("th") .text (locale_gettext("Browser Timings"));
36077
- this .body .empty ();
36078
- this .body .append (rows);
36162
+ const
36163
+ layers = browser .getWorld () .getLayerSet () .getLayers (),
36164
+ activeLayer = browser .getActiveLayer (),
36165
+ navigationTime = activeLayer && browser .getCollisionCount () ? activeLayer .getCollisionTime () .averageTime : 0,
36166
+ collisionTime = browser .getCollisionTime () .averageTime + navigationTime,
36167
+ routingTime = Math .max (0, browser .getBrowserTime () .averageTime - (browser .getCameraTime () .averageTime + browser .getCollisionTime () .averageTime + browser .getDisplayTime () .averageTime)),
36168
+ prepareEvents = browser .prepareEvents () .getInterests () .size - 1,
36169
+ sensors = browser .sensorEvents () .getInterests () .size,
36170
+ opaqueShapes = layers .reduce ((n, layer) => n + layer .getNumOpaqueShapes (), 0),
36171
+ transparentShapes = layers .reduce ((n, layer) => n + layer .getNumTransparentShapes (), 0);
36172
+
36173
+ this .browserTime .text (f2(browser .getSystemTime () .averageTime) + " " + locale_gettext("ms"));
36174
+ this .x3dTotal .text (f2(browser .getBrowserTime () .averageTime) + " " + locale_gettext("ms"));
36175
+ this .eventProcessing .text (f2(routingTime) + " " + locale_gettext("ms"));
36176
+ this .pointerTime .text (f2(browser .getPointingTime () .averageTime) + " " + locale_gettext("ms"));
36177
+ this .cameraTime .text (f2(browser .getCameraTime () .averageTime) + " " + locale_gettext("ms"));
36178
+ this .pickingTime .text (f2(browser .getPickingTime () .averageTime) + " " + locale_gettext("ms"));
36179
+ this .collisionTime .text (f2(collisionTime) + " " + locale_gettext("ms"));
36180
+ this .renderTime .text (f2(browser .getDisplayTime () .averageTime) + " " + locale_gettext("ms"));
36181
+ this .numShapes .text (opaqueShapes + " + " + transparentShapes);
36182
+ this .sensors .text (prepareEvents + sensors);
36183
+
36184
+ browser .getSystemTime () .reset ();
36185
+ browser .getBrowserTime () .reset ();
36186
+ browser .getPointingTime () .reset ();
36187
+ browser .getCameraTime () .reset ();
36188
+ browser .getPickingTime () .reset ();
36189
+ browser .getCollisionTime () .reset ();
36190
+ browser .getDisplayTime () .reset ();
36191
+
36192
+ activeLayer ?.getCollisionTime () .reset ();
36079
36193
  },
36080
36194
  getSpeed: function (speed)
36081
36195
  {
@@ -36093,7 +36207,19 @@ BrowserTimings .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36093
36207
  },
36094
36208
  });
36095
36209
 
36096
- function f2 (n) { return isFinite (n) ? n .toFixed (2) : 0 .toFixed (2); }
36210
+ const f2 = (function ()
36211
+ {
36212
+ const format = new Intl .NumberFormat (navigator .language || navigator .userLanguage, {
36213
+ notation: "standard",
36214
+ minimumFractionDigits: 2,
36215
+ maximumFractionDigits: 2,
36216
+ }) .format;
36217
+
36218
+ return function (value)
36219
+ {
36220
+ return format (Number .isFinite (value) ? value : 0);
36221
+ };
36222
+ })();
36097
36223
 
36098
36224
  const BrowserTimings_default_ = BrowserTimings;
36099
36225
  ;
@@ -36289,7 +36415,7 @@ const TextureQuality_default_ = TextureQuality;
36289
36415
  x_ite_Namespace.set ("x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
36290
36416
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
36291
36417
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
36292
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(586);
36418
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(714);
36293
36419
  /*******************************************************************************
36294
36420
  *
36295
36421
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36825,7 +36951,7 @@ const RenderingProperties_default_ = RenderingProperties;
36825
36951
  x_ite_Namespace.set ("x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
36826
36952
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
36827
36953
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
36828
- /* provided dependency */ var Notification_$ = __webpack_require__(586);
36954
+ /* provided dependency */ var Notification_$ = __webpack_require__(714);
36829
36955
  /*******************************************************************************
36830
36956
  *
36831
36957
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36947,8 +37073,8 @@ const Notification_default_ = Notification;
36947
37073
  x_ite_Namespace.set ("x_ite/Browser/Core/Notification", Notification_default_);
36948
37074
  /* harmony default export */ const Core_Notification = (Notification_default_);
36949
37075
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
36950
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(54);
36951
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(586);
37076
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(526);
37077
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(714);
36952
37078
  /*******************************************************************************
36953
37079
  *
36954
37080
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -37229,7 +37355,7 @@ ContextMenu .prototype = Object .assign (Object .create (Base_X3DBaseNode.protot
37229
37355
  className: "context-menu-icon x_ite-private-icon-shading",
37230
37356
  items: {
37231
37357
  "point": {
37232
- name: locale_gettext("Point"),
37358
+ name: locale_gettext("Points"),
37233
37359
  type: "radio",
37234
37360
  radio: "shading",
37235
37361
  selected: browser .getBrowserOption ("Shading") === "POINT",
@@ -37237,7 +37363,7 @@ ContextMenu .prototype = Object .assign (Object .create (Base_X3DBaseNode.protot
37237
37363
  click: function ()
37238
37364
  {
37239
37365
  browser .setBrowserOption ("Shading", "POINT");
37240
- browser .getNotification () ._string = locale_gettext("Shading") + ": " + locale_gettext("Point");
37366
+ browser .getNotification () ._string = locale_gettext("Shading") + ": " + locale_gettext("Points");
37241
37367
  }
37242
37368
  .bind (this),
37243
37369
  },
@@ -38345,6 +38471,13 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38345
38471
  generator .string += generator .Indent ();
38346
38472
  generator .string += "<";
38347
38473
  generator .string += this .getTypeName ();
38474
+
38475
+ if (generator .html && this .getTypeName () === "Script")
38476
+ {
38477
+ generator .string += generator .Space ();
38478
+ generator .string += "type='model/x3d+xml'";
38479
+ }
38480
+
38348
38481
  generator .string += generator .Space ();
38349
38482
  generator .string += "USE='";
38350
38483
  generator .string += generator .XMLEncode (name);
@@ -38363,7 +38496,16 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38363
38496
  }
38364
38497
  }
38365
38498
 
38366
- generator .string += "/>";
38499
+ if (generator .closingTags)
38500
+ {
38501
+ generator .string += "></";
38502
+ generator .string += this .getTypeName ();
38503
+ generator .string += ">";
38504
+ }
38505
+ else
38506
+ {
38507
+ generator .string += "/>";
38508
+ }
38367
38509
 
38368
38510
  generator .LeaveScope ();
38369
38511
  return;
@@ -38374,6 +38516,12 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38374
38516
  generator .string += "<";
38375
38517
  generator .string += this .getTypeName ();
38376
38518
 
38519
+ if (generator .html && this .getTypeName () === "Script")
38520
+ {
38521
+ generator .string += generator .Space ();
38522
+ generator .string += "type='model/x3d+xml'";
38523
+ }
38524
+
38377
38525
  if (name .length)
38378
38526
  {
38379
38527
  generator .AddNode (this);
@@ -38407,7 +38555,7 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38407
38555
 
38408
38556
  let cdata = this .getSourceText ();
38409
38557
 
38410
- if (cdata && cdata .length === 0)
38558
+ if (cdata ?.length === 0 || (generator .html && this .getTypeName () !== "Script"))
38411
38559
  cdata = null;
38412
38560
 
38413
38561
  generator .IncIndent ();
@@ -38457,7 +38605,7 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38457
38605
  generator .string += field .getName ();
38458
38606
  generator .string += "='";
38459
38607
 
38460
- field .toXMLStream (generator);
38608
+ field .toXMLStream (generator, field === this .getSourceText ());
38461
38609
 
38462
38610
  generator .string += "'";
38463
38611
  break;
@@ -38476,7 +38624,16 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38476
38624
 
38477
38625
  if ((!this .canUserDefinedFields () || !userDefinedFields .length) && (!references .length || sharedNode) && !childNodes .length && !cdata)
38478
38626
  {
38479
- generator .string += "/>";
38627
+ if (generator .closingTags)
38628
+ {
38629
+ generator .string += "></";
38630
+ generator .string += this .getTypeName ();
38631
+ generator .string += ">";
38632
+ }
38633
+ else
38634
+ {
38635
+ generator .string += "/>";
38636
+ }
38480
38637
  }
38481
38638
  else
38482
38639
  {
@@ -38525,7 +38682,7 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38525
38682
 
38526
38683
  if (!field .isInitializable () || field .isDefaultValue ())
38527
38684
  {
38528
- generator .string += "/>";
38685
+ generator .string += generator .closingTags ? "></field>" : "/>";
38529
38686
  generator .string += generator .TidyBreak ();
38530
38687
  }
38531
38688
  else
@@ -38565,7 +38722,7 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38565
38722
  field .toXMLStream (generator);
38566
38723
 
38567
38724
  generator .string += "'";
38568
- generator .string += "/>";
38725
+ generator .string += generator .closingTags ? "></field>" : "/>";
38569
38726
  generator .string += generator .TidyBreak ();
38570
38727
  break;
38571
38728
  }
@@ -38577,7 +38734,7 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38577
38734
  if (generator .ExecutionContext ())
38578
38735
  references .push (field);
38579
38736
 
38580
- generator .string += "/>";
38737
+ generator .string += generator .closingTags ? "></field>" : "/>";
38581
38738
  generator .string += generator .TidyBreak ();
38582
38739
  }
38583
38740
  }
@@ -38607,7 +38764,7 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38607
38764
  generator .string += "protoField='";
38608
38765
  generator .string += generator .XMLEncode (protoField .getName ());
38609
38766
  generator .string += "'";
38610
- generator .string += "/>";
38767
+ generator .string += generator .closingTags ? "></connect>" : "/>";
38611
38768
  generator .string += generator .TidyBreak ();
38612
38769
  }
38613
38770
  }
@@ -38635,7 +38792,7 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
38635
38792
  for (const value of cdata)
38636
38793
  {
38637
38794
  generator .string += "<![CDATA[";
38638
- generator .string += generator .escapeCDATA (value);
38795
+ generator .string += value;
38639
38796
  generator .string += "]]>";
38640
38797
  generator .string += generator .TidyBreak ();
38641
38798
  }
@@ -39478,7 +39635,7 @@ X3DImportedNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
39478
39635
  generator .string += "'";
39479
39636
  }
39480
39637
 
39481
- generator .string += "/>";
39638
+ generator .string += generator .closingTags ? "></IMPORT>" : "/>";
39482
39639
 
39483
39640
  try
39484
39641
  {
@@ -39527,7 +39684,7 @@ X3DImportedNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
39527
39684
  generator .string += "toField='";
39528
39685
  generator .string += generator .XMLEncode (destinationField);
39529
39686
  generator .string += "'";
39530
- generator .string += "/>";
39687
+ generator .string += generator .closingTags ? "></ROUTE>" : "/>";
39531
39688
  }
39532
39689
  }
39533
39690
  }
@@ -39731,7 +39888,6 @@ Object .defineProperty (X3DImportedNode .prototype, "inlineNode",
39731
39888
  return Fields_SFNodeCache.get (this [_inlineNode]);
39732
39889
  },
39733
39890
  enumerable: true,
39734
- configurable: false
39735
39891
  });
39736
39892
 
39737
39893
  Object .defineProperty (X3DImportedNode .prototype, "exportedName",
@@ -39741,7 +39897,6 @@ Object .defineProperty (X3DImportedNode .prototype, "exportedName",
39741
39897
  return this [_exportedName];
39742
39898
  },
39743
39899
  enumerable: true,
39744
- configurable: false
39745
39900
  });
39746
39901
 
39747
39902
  Object .defineProperty (X3DImportedNode .prototype, "exportedNode",
@@ -39751,7 +39906,6 @@ Object .defineProperty (X3DImportedNode .prototype, "exportedNode",
39751
39906
  return this [_inlineNode] .getInternalScene () .getExportedNode (this [_exportedName]);
39752
39907
  },
39753
39908
  enumerable: true,
39754
- configurable: false
39755
39909
  });
39756
39910
 
39757
39911
  Object .defineProperty (X3DImportedNode .prototype, "importedName",
@@ -39761,7 +39915,6 @@ Object .defineProperty (X3DImportedNode .prototype, "importedName",
39761
39915
  return this [_importedName];
39762
39916
  },
39763
39917
  enumerable: true,
39764
- configurable: false
39765
39918
  });
39766
39919
 
39767
39920
  const X3DImportedNode_default_ = X3DImportedNode;
@@ -40393,7 +40546,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40393
40546
  }
40394
40547
  }
40395
40548
 
40396
- generator .string += "/>";
40549
+ generator .string += generator .closingTags ? "></ProtoInstance>" : "/>";
40397
40550
 
40398
40551
  generator .LeaveScope ();
40399
40552
  return;
@@ -40434,7 +40587,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40434
40587
 
40435
40588
  if (fields .length === 0)
40436
40589
  {
40437
- generator .string += "/>";
40590
+ generator .string += generator .closingTags ? "></ProtoInstance>" : "/>";
40438
40591
  }
40439
40592
  else
40440
40593
  {
@@ -40482,7 +40635,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40482
40635
 
40483
40636
  if (field .length === 0)
40484
40637
  {
40485
- generator .string += "/>";
40638
+ generator .string += generator .closingTags ? "></fieldValue>" : "/>";
40486
40639
  generator .string += generator .TidyBreak ();
40487
40640
  }
40488
40641
  else
@@ -40556,7 +40709,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40556
40709
  field .toXMLStream (generator);
40557
40710
 
40558
40711
  generator .string += "'";
40559
- generator .string += "/>";
40712
+ generator .string += generator .closingTags ? "></fieldValue>" : "/>";
40560
40713
  generator .string += generator .TidyBreak ();
40561
40714
  break;
40562
40715
  }
@@ -40592,7 +40745,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40592
40745
  generator .string += "protoField='";
40593
40746
  generator .string += generator .XMLEncode (protoField .getName ());
40594
40747
  generator .string += "'";
40595
- generator .string += "/>";
40748
+ generator .string += generator .closingTags ? "></connect>" : "/>";
40596
40749
  generator .string += generator .TidyBreak ();
40597
40750
  }
40598
40751
  }
@@ -41350,7 +41503,7 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (Prototype_X3DPr
41350
41503
 
41351
41504
  if (field .isDefaultValue ())
41352
41505
  {
41353
- generator .string += "/>";
41506
+ generator .string += generator .closingTags ? "></field>" : "/>";
41354
41507
  generator .string += generator .TidyBreak ();
41355
41508
  }
41356
41509
  else
@@ -41387,7 +41540,7 @@ X3DProtoDeclaration .prototype = Object .assign (Object .create (Prototype_X3DPr
41387
41540
  field .toXMLStream (generator);
41388
41541
 
41389
41542
  generator .string += "'";
41390
- generator .string += "/>";
41543
+ generator .string += generator .closingTags ? "></field>" : "/>";
41391
41544
  generator .string += generator .TidyBreak ();
41392
41545
  break;
41393
41546
  }
@@ -41674,22 +41827,18 @@ Object .defineProperty (X3DProtoDeclaration .prototype, "name",
41674
41827
  {
41675
41828
  get: X3DProtoDeclaration .prototype .getName,
41676
41829
  enumerable: true,
41677
- configurable: false
41678
41830
  });
41679
41831
 
41680
41832
  Object .defineProperty (X3DProtoDeclaration .prototype, "fields",
41681
41833
  {
41682
41834
  get: X3DProtoDeclaration .prototype .getFieldDefinitions,
41683
41835
  enumerable: true,
41684
- configurable: false
41685
41836
  });
41686
41837
 
41687
41838
  Object .defineProperty (X3DProtoDeclaration .prototype, "isExternProto",
41688
41839
  {
41689
41840
  value: false,
41690
- writable: false,
41691
41841
  enumerable: true,
41692
- configurable: false
41693
41842
  });
41694
41843
 
41695
41844
  const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
@@ -41980,7 +42129,7 @@ const X3DUrlObject_default_ = X3DUrlObject;
41980
42129
  x_ite_Namespace.set ("x_ite/Components/Networking/X3DUrlObject", X3DUrlObject_default_);
41981
42130
  /* harmony default export */ const Networking_X3DUrlObject = (X3DUrlObject_default_);
41982
42131
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
41983
- /* provided dependency */ var X3DParser_$ = __webpack_require__(586);
42132
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(714);
41984
42133
  /*******************************************************************************
41985
42134
  *
41986
42135
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45162,7 +45311,7 @@ const VRMLParser_default_ = VRMLParser;
45162
45311
  x_ite_Namespace.set ("x_ite/Parser/VRMLParser", VRMLParser_default_);
45163
45312
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
45164
45313
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
45165
- /* provided dependency */ var XMLParser_$ = __webpack_require__(586);
45314
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(714);
45166
45315
  /*******************************************************************************
45167
45316
  *
45168
45317
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47199,7 +47348,7 @@ const URLs_default_ = URLs;
47199
47348
  x_ite_Namespace.set ("x_ite/Browser/Networking/URLs", URLs_default_);
47200
47349
  /* harmony default export */ const Networking_URLs = (URLs_default_);
47201
47350
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
47202
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(586);
47351
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(714);
47203
47352
  /*******************************************************************************
47204
47353
  *
47205
47354
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49665,7 +49814,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
49665
49814
  x_ite_Namespace.set ("x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
49666
49815
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
49667
49816
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
49668
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(586);
49817
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(714);
49669
49818
  /*******************************************************************************
49670
49819
  *
49671
49820
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49818,7 +49967,7 @@ const GLB2Parser_default_ = GLB2Parser;
49818
49967
  x_ite_Namespace.set ("x_ite/Parser/GLB2Parser", GLB2Parser_default_);
49819
49968
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
49820
49969
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
49821
- /* provided dependency */ var OBJParser_$ = __webpack_require__(586);
49970
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(714);
49822
49971
  /*******************************************************************************
49823
49972
  *
49824
49973
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52308,8 +52457,8 @@ const MatrixStack_default_ = MatrixStack;
52308
52457
  x_ite_Namespace.set ("standard/Math/Utility/MatrixStack", MatrixStack_default_);
52309
52458
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
52310
52459
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52311
- /* provided dependency */ var SVGParser_$ = __webpack_require__(586);
52312
- /* provided dependency */ var libtess = __webpack_require__(314);
52460
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(714);
52461
+ /* provided dependency */ var libtess = __webpack_require__(51);
52313
52462
  /*******************************************************************************
52314
52463
  *
52315
52464
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -55078,7 +55227,7 @@ const SVGParser_default_ = SVGParser;
55078
55227
  x_ite_Namespace.set ("x_ite/Parser/SVGParser", SVGParser_default_);
55079
55228
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
55080
55229
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
55081
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(586);
55230
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(714);
55082
55231
  /*******************************************************************************
55083
55232
  *
55084
55233
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -55407,7 +55556,7 @@ const Plane3_default_ = Plane3;
55407
55556
  x_ite_Namespace.set ("standard/Math/Geometry/Plane3", Plane3_default_);
55408
55557
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
55409
55558
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
55410
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(314);
55559
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(51);
55411
55560
  /*******************************************************************************
55412
55561
  *
55413
55562
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -58723,7 +58872,7 @@ function BindableStack (executionContext, defaultNode)
58723
58872
  {
58724
58873
  Base_X3DBaseNode.call (this, executionContext);
58725
58874
 
58726
- this .array = [ defaultNode ];
58875
+ this .nodes = [ defaultNode ];
58727
58876
  }
58728
58877
 
58729
58878
  BindableStack .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype),
@@ -58735,18 +58884,18 @@ BindableStack .prototype = Object .assign (Object .create (Base_X3DBaseNode.prot
58735
58884
  },
58736
58885
  get: function ()
58737
58886
  {
58738
- return this .array;
58887
+ return this .nodes;
58739
58888
  },
58740
58889
  top: function ()
58741
58890
  {
58742
- return this .array .at (-1);
58891
+ return this .nodes .at (-1);
58743
58892
  },
58744
58893
  pushOnTop: function (node)
58745
58894
  {
58746
- if (node !== this .array [0])
58895
+ if (node !== this .nodes [0])
58747
58896
  {
58748
- this .array .at (-1) ._isBound = false;
58749
- this .array .push (node);
58897
+ this .nodes .at (-1) ._isBound = false;
58898
+ this .nodes .push (node);
58750
58899
  }
58751
58900
 
58752
58901
  // Don't do set_bind.
@@ -58764,25 +58913,25 @@ BindableStack .prototype = Object .assign (Object .create (Base_X3DBaseNode.prot
58764
58913
 
58765
58914
  const
58766
58915
  fromNode = this .top (),
58767
- boundNode = this .array .at (-1);
58916
+ boundNode = this .nodes .at (-1);
58768
58917
 
58769
58918
  // Remove invisible nodes and unbind them if needed.
58770
58919
 
58771
58920
  for (const removedNode of removedNodes)
58772
58921
  {
58773
- const index = this .array .indexOf (removedNode);
58922
+ const index = this .nodes .indexOf (removedNode);
58774
58923
 
58775
58924
  if (index > 0)
58776
- this .array .splice (index, 1);
58925
+ this .nodes .splice (index, 1);
58777
58926
  }
58778
58927
 
58779
58928
  // Unbind nodes with set_bind false and pop top node.
58780
58929
 
58781
- if (boundNode !== this .array [0])
58930
+ if (boundNode !== this .nodes [0])
58782
58931
  {
58783
58932
  if (changedNodes .some (node => ! node ._set_bind .getValue () && node === boundNode))
58784
58933
  {
58785
- this .array .pop ();
58934
+ this .nodes .pop ();
58786
58935
  }
58787
58936
  }
58788
58937
 
@@ -58792,20 +58941,18 @@ BindableStack .prototype = Object .assign (Object .create (Base_X3DBaseNode.prot
58792
58941
  {
58793
58942
  if (bindNode ._set_bind .getValue ())
58794
58943
  {
58795
- const index = this .array .indexOf (bindNode);
58944
+ const index = this .nodes .indexOf (bindNode);
58796
58945
 
58797
58946
  if (index > -1)
58798
- {
58799
- this .array .splice (index, 1);
58800
- }
58947
+ this .nodes .splice (index, 1);
58801
58948
 
58802
- this .array .push (bindNode);
58949
+ this .nodes .push (bindNode);
58803
58950
  }
58804
58951
  }
58805
58952
 
58806
58953
  // Bind top node if not bound.
58807
58954
 
58808
- const top = this .array .at (-1);
58955
+ const top = this .nodes .at (-1);
58809
58956
 
58810
58957
  if (top !== boundNode)
58811
58958
  {
@@ -58892,10 +59039,11 @@ function BindableList (executionContext, defaultNode)
58892
59039
  {
58893
59040
  Base_X3DBaseNode.call (this, executionContext);
58894
59041
 
58895
- this .collected = [ defaultNode ];
58896
- this .array = [ defaultNode ];
58897
- this .updateTime = 0;
58898
- this .removedNodes = [ ];
59042
+ this .updateTime = 0;
59043
+ this .nodes = [ defaultNode ];
59044
+ this .collectedNodes = [ defaultNode ];
59045
+ this .changedNodes = [ ];
59046
+ this .removedNodes = [ ];
58899
59047
  }
58900
59048
 
58901
59049
  BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype),
@@ -58907,14 +59055,14 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58907
59055
  },
58908
59056
  get: function ()
58909
59057
  {
58910
- return this .array;
59058
+ return this .nodes;
58911
59059
  },
58912
59060
  getBound: function (name)
58913
59061
  {
58914
- const length = this .array .length;
59062
+ const length = this .nodes .length;
58915
59063
 
58916
59064
  if (length === 1)
58917
- return this .array [0]; // Return default viewpoint.
59065
+ return this .nodes [0]; // Return default viewpoint.
58918
59066
 
58919
59067
  const enableInlineBindables = false;
58920
59068
 
@@ -58925,7 +59073,7 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58925
59073
  for (let i = 1; i < length; ++ i)
58926
59074
  {
58927
59075
  const
58928
- node = this .array [i],
59076
+ node = this .nodes [i],
58929
59077
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
58930
59078
 
58931
59079
  if (!enableInlineBindables && !scene .isMainScene ())
@@ -58941,7 +59089,7 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58941
59089
  for (let i = 1; i < length; ++ i)
58942
59090
  {
58943
59091
  const
58944
- node = this .array [i],
59092
+ node = this .nodes [i],
58945
59093
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
58946
59094
 
58947
59095
  if (!enableInlineBindables && !scene .isMainScene ())
@@ -58956,7 +59104,7 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58956
59104
  for (let i = 1; i < length; ++ i)
58957
59105
  {
58958
59106
  const
58959
- node = this .array [i],
59107
+ node = this .nodes [i],
58960
59108
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
58961
59109
 
58962
59110
  if (!enableInlineBindables && !scene .isMainScene ())
@@ -58965,46 +59113,52 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58965
59113
  return node;
58966
59114
  }
58967
59115
 
58968
- return this .array [0]; // Return default viewpoint.
59116
+ return this .nodes [0]; // Return default viewpoint.
58969
59117
  },
58970
59118
  push: function (node)
58971
59119
  {
58972
- return this .collected .push (node);
59120
+ return this .collectedNodes .push (node);
58973
59121
  },
58974
59122
  update: function (layerNode, stack)
58975
59123
  {
58976
59124
  const
58977
- changedNodes = this .collected .filter (node => node ._set_bind .getModificationTime () > this .updateTime),
58978
- removedNodes = this .removedNodes;
59125
+ collectedNodes = this .collectedNodes,
59126
+ changedNodes = this .changedNodes,
59127
+ removedNodes = this .removedNodes;
59128
+
59129
+ for (const node of collectedNodes)
59130
+ {
59131
+ if (node ._set_bind .getModificationTime () > this .updateTime)
59132
+ changedNodes .push (node);
59133
+ }
58979
59134
 
58980
- if (! equals (this .collected, this .array))
59135
+ if (!equals (collectedNodes, this .nodes))
58981
59136
  {
58982
- // Unbind nodes not in current list (collected);
59137
+ // Unbind nodes not in current list (collectedNodes);
58983
59138
 
58984
- for (const node of this .array)
59139
+ for (const node of this .nodes)
58985
59140
  {
58986
- if (this .collected .indexOf (node) === -1)
58987
- {
59141
+ if (collectedNodes .indexOf (node) === -1)
58988
59142
  removedNodes .push (node);
58989
- }
58990
59143
  }
58991
59144
 
58992
- // Swap arrays.
59145
+ // Swap nodes.
58993
59146
 
58994
- const tmp = this .array;
59147
+ const tmp = this .nodes;
58995
59148
 
58996
- this .array = this .collected;
58997
- this .collected = tmp;
59149
+ this .nodes = collectedNodes;
59150
+ this .collectedNodes = tmp;
58998
59151
  }
58999
59152
 
59000
- // Clear collected array.
59153
+ // Clear collected nodes.
59001
59154
 
59002
- this .collected .length = 1;
59155
+ this .collectedNodes .length = 1;
59003
59156
 
59004
59157
  // Update stack.
59005
59158
 
59006
59159
  stack .update (layerNode, removedNodes, changedNodes)
59007
59160
 
59161
+ changedNodes .length = 0;
59008
59162
  removedNodes .length = 0;
59009
59163
 
59010
59164
  // Advance updateTime time.
@@ -59016,7 +59170,7 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
59016
59170
  for (const key of Reflect .ownKeys (BindableList .prototype))
59017
59171
  Object .defineProperty (BindableList .prototype, key, { enumerable: false });
59018
59172
 
59019
- // Compares two arrays.
59173
+ // Compares two nodess.
59020
59174
 
59021
59175
  function equals (lhs, rhs)
59022
59176
  {
@@ -62713,7 +62867,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62713
62867
  x_ite_Namespace.set ("x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
62714
62868
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
62715
62869
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62716
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(586);
62870
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(714);
62717
62871
  /*******************************************************************************
62718
62872
  *
62719
62873
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67053,7 +67207,7 @@ const X3DWorld_default_ = X3DWorld;
67053
67207
  x_ite_Namespace.set ("x_ite/Execution/X3DWorld", X3DWorld_default_);
67054
67208
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
67055
67209
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
67056
- /* provided dependency */ var FileLoader_$ = __webpack_require__(586);
67210
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(714);
67057
67211
  /*******************************************************************************
67058
67212
  *
67059
67213
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67566,7 +67720,7 @@ X3DExternProtoDeclaration .prototype = Object .assign (Object .create (Prototype
67566
67720
  },
67567
67721
  setError: function (error)
67568
67722
  {
67569
- console .error ("Error loading extern prototype:", error);
67723
+ console .error (`Error loading extern prototype '${this .getName ()}':`, error);
67570
67724
 
67571
67725
  this [_scene] = this .getBrowser () .getPrivateScene ();
67572
67726
 
@@ -67668,7 +67822,7 @@ X3DExternProtoDeclaration .prototype = Object .assign (Object .create (Prototype
67668
67822
  generator .string += "name='";
67669
67823
  generator .string += generator .XMLEncode (field .getName ());
67670
67824
  generator .string += "'";
67671
- generator .string += "/>";
67825
+ generator .string += generator .closingTags ? "></field>" : "/>";
67672
67826
  generator .string += generator .TidyBreak ();
67673
67827
  }
67674
67828
 
@@ -67813,36 +67967,30 @@ Object .defineProperty (X3DExternProtoDeclaration .prototype, "name",
67813
67967
  {
67814
67968
  get: X3DExternProtoDeclaration .prototype .getName,
67815
67969
  enumerable: true,
67816
- configurable: false
67817
67970
  });
67818
67971
 
67819
67972
  Object .defineProperty (X3DExternProtoDeclaration .prototype, "fields",
67820
67973
  {
67821
67974
  get: X3DExternProtoDeclaration .prototype .getFieldDefinitions,
67822
67975
  enumerable: true,
67823
- configurable: false
67824
67976
  });
67825
67977
 
67826
67978
  Object .defineProperty (X3DExternProtoDeclaration .prototype, "isExternProto",
67827
67979
  {
67828
67980
  value: true,
67829
- writable: false,
67830
67981
  enumerable: true,
67831
- configurable: false
67832
67982
  });
67833
67983
 
67834
67984
  Object .defineProperty (X3DExternProtoDeclaration .prototype, "urls",
67835
67985
  {
67836
67986
  get: function () { return this ._url; },
67837
67987
  enumerable: true,
67838
- configurable: false
67839
67988
  });
67840
67989
 
67841
67990
  Object .defineProperty (X3DExternProtoDeclaration .prototype, "loadState",
67842
67991
  {
67843
67992
  get: X3DExternProtoDeclaration .prototype .checkLoadState,
67844
67993
  enumerable: true,
67845
- configurable: false
67846
67994
  });
67847
67995
 
67848
67996
  const X3DExternProtoDeclaration_default_ = X3DExternProtoDeclaration;
@@ -68095,7 +68243,7 @@ X3DRoute .prototype = Object .assign (Object .create (Base_X3DObject.prototype),
68095
68243
 
68096
68244
  generator .string += generator .XMLEncode (this [_destinationField] .getName ());
68097
68245
  generator .string += "'";
68098
- generator .string += "/>";
68246
+ generator .string += generator .closingTags ? "></ROUTE>" : "/>";
68099
68247
  },
68100
68248
  toJSONStream: function (generator)
68101
68249
  {
@@ -68192,7 +68340,6 @@ Object .defineProperty (X3DRoute .prototype, "sourceNode",
68192
68340
  return Fields_SFNodeCache.get (this [_sourceNode]);
68193
68341
  },
68194
68342
  enumerable: true,
68195
- configurable: false
68196
68343
  });
68197
68344
 
68198
68345
  Object .defineProperty (X3DRoute .prototype, "sourceField",
@@ -68202,7 +68349,6 @@ Object .defineProperty (X3DRoute .prototype, "sourceField",
68202
68349
  return this [_sourceField] .getName ();
68203
68350
  },
68204
68351
  enumerable: true,
68205
- configurable: false
68206
68352
  });
68207
68353
 
68208
68354
  Object .defineProperty (X3DRoute .prototype, "destinationNode",
@@ -68212,7 +68358,6 @@ Object .defineProperty (X3DRoute .prototype, "destinationNode",
68212
68358
  return Fields_SFNodeCache.get (this [_destinationNode]);
68213
68359
  },
68214
68360
  enumerable: true,
68215
- configurable: false
68216
68361
  });
68217
68362
 
68218
68363
  Object .defineProperty (X3DRoute .prototype, "destinationField",
@@ -68222,7 +68367,6 @@ Object .defineProperty (X3DRoute .prototype, "destinationField",
68222
68367
  return this [_destinationField] .getName ();
68223
68368
  },
68224
68369
  enumerable: true,
68225
- configurable: false
68226
68370
  });
68227
68371
 
68228
68372
  const X3DRoute_default_ = X3DRoute;
@@ -69175,73 +69319,63 @@ for (const key of Reflect .ownKeys (X3DExecutionContext .prototype))
69175
69319
 
69176
69320
  Object .defineProperty (X3DExecutionContext .prototype, "specificationVersion",
69177
69321
  {
69178
- get: X3DExecutionContext .prototype .getSpecificationVersion,
69322
+ get: function () { return this .getSpecificationVersion () },
69179
69323
  enumerable: true,
69180
- configurable: false
69181
69324
  });
69182
69325
 
69183
69326
  Object .defineProperty (X3DExecutionContext .prototype, "encoding",
69184
69327
  {
69185
- get: X3DExecutionContext .prototype .getEncoding,
69328
+ get: function () { return this .getEncoding () },
69186
69329
  enumerable: true,
69187
- configurable: false
69188
69330
  });
69189
69331
 
69190
69332
  Object .defineProperty (X3DExecutionContext .prototype, "profile",
69191
69333
  {
69192
- get: X3DExecutionContext .prototype .getProfile,
69334
+ get: function () { return this .getProfile () },
69193
69335
  enumerable: true,
69194
- configurable: false
69195
69336
  });
69196
69337
 
69197
69338
  Object .defineProperty (X3DExecutionContext .prototype, "components",
69198
69339
  {
69199
- get: X3DExecutionContext .prototype .getComponents,
69340
+ get: function () { return this .getComponents () },
69200
69341
  enumerable: true,
69201
- configurable: false
69202
69342
  });
69203
69343
 
69204
69344
  Object .defineProperty (X3DExecutionContext .prototype, "worldURL",
69205
69345
  {
69206
- get: X3DExecutionContext .prototype .getWorldURL,
69346
+ get: function () { return this .getWorldURL () },
69207
69347
  enumerable: true,
69208
- configurable: false
69209
69348
  });
69210
69349
 
69211
69350
  Object .defineProperty (X3DExecutionContext .prototype, "units",
69212
69351
  {
69213
- get: X3DExecutionContext .prototype .getUnits,
69352
+ get: function () { return this .getUnits () },
69214
69353
  enumerable: true,
69215
- configurable: false
69216
69354
  });
69217
69355
 
69218
69356
  Object .defineProperty (X3DExecutionContext .prototype, "rootNodes",
69219
69357
  {
69220
69358
  get: X3DExecutionContext .prototype .getRootNodes,
69221
- set: X3DExecutionContext .prototype .setRootNodes,
69359
+ set: function (value) { this .setRootNodes (value) },
69222
69360
  enumerable: true,
69223
- configurable: false
69224
69361
  });
69225
69362
 
69226
69363
  Object .defineProperty (X3DExecutionContext .prototype, "protos",
69227
69364
  {
69228
69365
  get: X3DExecutionContext .prototype .getProtoDeclarations,
69229
69366
  enumerable: true,
69230
- configurable: false
69231
69367
  });
69232
69368
 
69233
69369
  Object .defineProperty (X3DExecutionContext .prototype, "externprotos",
69234
69370
  {
69235
69371
  get: X3DExecutionContext .prototype .getExternProtoDeclarations,
69236
69372
  enumerable: true,
69237
- configurable: false
69238
69373
  });
69239
69374
 
69240
69375
  Object .defineProperty (X3DExecutionContext .prototype, "routes",
69241
69376
  {
69242
69377
  get: X3DExecutionContext .prototype .getRoutes,
69243
69378
  enumerable: true,
69244
- configurable: false
69245
69379
  });
69246
69380
 
69247
69381
  const X3DExecutionContext_default_ = X3DExecutionContext;
@@ -69250,7 +69384,7 @@ const X3DExecutionContext_default_ = X3DExecutionContext;
69250
69384
  x_ite_Namespace.set ("x_ite/Execution/X3DExecutionContext", X3DExecutionContext_default_);
69251
69385
  /* harmony default export */ const Execution_X3DExecutionContext = (X3DExecutionContext_default_);
69252
69386
  ;// CONCATENATED MODULE: ./src/x_ite/Configuration/ComponentInfo.js
69253
- /* provided dependency */ var ComponentInfo_$ = __webpack_require__(586);
69387
+ /* provided dependency */ var ComponentInfo_$ = __webpack_require__(714);
69254
69388
  /*******************************************************************************
69255
69389
  *
69256
69390
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -69321,6 +69455,7 @@ ComponentInfo .prototype = Object .assign (Object .create (Base_X3DObject.protot
69321
69455
  },
69322
69456
  toVRMLStream: function (generator)
69323
69457
  {
69458
+ generator .string += generator .Indent ();
69324
69459
  generator .string += "COMPONENT";
69325
69460
  generator .string += generator .Space ();
69326
69461
  generator .string += this .name;
@@ -69341,7 +69476,7 @@ ComponentInfo .prototype = Object .assign (Object .create (Base_X3DObject.protot
69341
69476
  generator .string += "level='";
69342
69477
  generator .string += this .level;
69343
69478
  generator .string += "'";
69344
- generator .string += "/>";
69479
+ generator .string += generator .closingTags ? "></component>" : "/>";
69345
69480
  },
69346
69481
  toJSONStream: function (generator)
69347
69482
  {
@@ -69516,7 +69651,6 @@ function UnitInfo (category, name, conversionFactor)
69516
69651
  {
69517
69652
  Object .defineProperty (this, "category", {
69518
69653
  value: category,
69519
- writable: false,
69520
69654
  });
69521
69655
 
69522
69656
  this .name = name;
@@ -69532,6 +69666,7 @@ UnitInfo .prototype = Object .assign (Object .create (Base_X3DObject.prototype),
69532
69666
  },
69533
69667
  toVRMLStream: function (generator)
69534
69668
  {
69669
+ generator .string += generator .Indent ();
69535
69670
  generator .string += "UNIT";
69536
69671
  generator .string += generator .Space ();
69537
69672
  generator .string += this .category;
@@ -69556,7 +69691,7 @@ UnitInfo .prototype = Object .assign (Object .create (Base_X3DObject.prototype),
69556
69691
  generator .string += "conversionFactor='";
69557
69692
  generator .string += this .conversionFactor;
69558
69693
  generator .string += "'";
69559
- generator .string += "/>";
69694
+ generator .string += generator .closingTags ? "></unit>" : "/>";
69560
69695
  },
69561
69696
  toJSONStream: function (generator, _throw)
69562
69697
  {
@@ -69599,7 +69734,7 @@ UnitInfo .prototype = Object .assign (Object .create (Base_X3DObject.prototype),
69599
69734
  generator .string += '"';
69600
69735
  generator .string += ':';
69601
69736
  generator .string += generator .TidySpace ();
69602
- generator .string += generator .DoublePrecision (this .conversionFactor);
69737
+ generator .string += this .conversionFactor;
69603
69738
  generator .string += generator .TidyBreak ();
69604
69739
 
69605
69740
  generator .string += generator .DecIndent ();
@@ -69614,8 +69749,6 @@ for (const key of Reflect .ownKeys (UnitInfo .prototype))
69614
69749
  Object .defineProperty (UnitInfo .prototype, "conversion_factor",
69615
69750
  {
69616
69751
  get: function () { return this .conversionFactor; },
69617
- enumerable: false,
69618
- configurable: false
69619
69752
  });
69620
69753
 
69621
69754
  const UnitInfo_default_ = UnitInfo;
@@ -69805,7 +69938,7 @@ X3DExportedNode .prototype = Object .assign (Object .create (Base_X3DObject.prot
69805
69938
  generator .string += "'";
69806
69939
  }
69807
69940
 
69808
- generator .string += "/>";
69941
+ generator .string += generator .closingTags ? "></EXPORT>" : "/>";
69809
69942
  },
69810
69943
  toJSONStream: function (generator)
69811
69944
  {
@@ -69875,7 +70008,6 @@ Object .defineProperty (X3DExportedNode .prototype, "exportedName",
69875
70008
  return Fields_SFNodeCache.get (this [X3DExportedNode_exportedName]);
69876
70009
  },
69877
70010
  enumerable: true,
69878
- configurable: false
69879
70011
  });
69880
70012
 
69881
70013
  Object .defineProperty (X3DExportedNode .prototype, "localNode",
@@ -69885,7 +70017,6 @@ Object .defineProperty (X3DExportedNode .prototype, "localNode",
69885
70017
  return Fields_SFNodeCache.get (this [_localNode]);
69886
70018
  },
69887
70019
  enumerable: true,
69888
- configurable: false
69889
70020
  });
69890
70021
 
69891
70022
  const X3DExportedNode_default_ = X3DExportedNode;
@@ -70367,6 +70498,7 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70367
70498
  },
70368
70499
  toVRMLStream: function (generator)
70369
70500
  {
70501
+ generator .string += generator .Indent ();
70370
70502
  generator .string += "#X3D V";
70371
70503
  generator .string += LATEST_VERSION;
70372
70504
  generator .string += generator .Space ();
@@ -70398,34 +70530,29 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70398
70530
  generator .string += generator .TidyBreak ();
70399
70531
  }
70400
70532
 
70401
- // Units
70402
- {
70403
- let empty = true;
70533
+ const units = this .getUnits () .filter (unit => unit .conversionFactor !== 1);
70404
70534
 
70405
- for (const unit of this .getUnits ())
70535
+ if (units .length)
70536
+ {
70537
+ for (const unit of units)
70406
70538
  {
70407
- if (unit .conversionFactor !== 1)
70408
- {
70409
- empty = false;
70410
-
70411
- unit .toVRMLStream (generator);
70539
+ unit .toVRMLStream (generator);
70412
70540
 
70413
- generator .string += generator .Break ();
70414
- }
70541
+ generator .string += generator .Break ();
70415
70542
  }
70416
70543
 
70417
- if (!empty)
70418
- generator .string += generator .TidyBreak ();
70544
+ generator .string += generator .TidyBreak ();
70419
70545
  }
70420
70546
 
70421
70547
  const metadata = this .getMetaDatas ();
70422
70548
 
70423
70549
  if (metadata .size)
70424
70550
  {
70425
- for (const [key, values] of metadata .entries ())
70551
+ for (const [key, values] of metadata)
70426
70552
  {
70427
70553
  for (const value of values)
70428
70554
  {
70555
+ generator .string += generator .Indent ();
70429
70556
  generator .string += "META";
70430
70557
  generator .string += generator .Space ();
70431
70558
  generator .string += new x_ite_Fields.SFString (key) .toString ();
@@ -70458,15 +70585,21 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70458
70585
  },
70459
70586
  toXMLStream: function (generator)
70460
70587
  {
70461
- generator .string += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
70462
- generator .string += generator .TidyBreak ();
70463
- generator .string += "<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D ";
70464
- generator .string += LATEST_VERSION;
70465
- generator .string += "//EN\" \"http://www.web3d.org/specifications/x3d-";
70466
- generator .string += LATEST_VERSION;
70467
- generator .string += ".dtd\">";
70468
- generator .string += generator .TidyBreak ();
70588
+ if (!generator .html)
70589
+ {
70590
+ generator .string += generator .Indent ();
70591
+ generator .string += "<?xml version=\"1.0\" encoding=\"UTF-8\"?>";
70592
+ generator .string += generator .TidyBreak ();
70593
+ generator .string += generator .Indent ();
70594
+ generator .string += "<!DOCTYPE X3D PUBLIC \"ISO//Web3D//DTD X3D ";
70595
+ generator .string += LATEST_VERSION;
70596
+ generator .string += "//EN\" \"http://www.web3d.org/specifications/x3d-";
70597
+ generator .string += LATEST_VERSION;
70598
+ generator .string += ".dtd\">";
70599
+ generator .string += generator .TidyBreak ();
70600
+ }
70469
70601
 
70602
+ generator .string += generator .Indent ();
70470
70603
  generator .string += "<X3D";
70471
70604
  generator .string += generator .Space ();
70472
70605
  generator .string += "profile='";
@@ -70510,7 +70643,7 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70510
70643
  }
70511
70644
  }
70512
70645
 
70513
- for (const [key, values] of this .getMetaDatas () .entries ())
70646
+ for (const [key, values] of this .getMetaDatas ())
70514
70647
  {
70515
70648
  for (const value of values)
70516
70649
  {
@@ -70524,7 +70657,7 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70524
70657
  generator .string += "content='";
70525
70658
  generator .string += generator .XMLEncode (value);
70526
70659
  generator .string += "'";
70527
- generator .string += "/>";
70660
+ generator .string += generator .closingTags ? "></meta>" : "/>";
70528
70661
  generator .string += generator .TidyBreak ();
70529
70662
  }
70530
70663
  }
@@ -70580,13 +70713,14 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70580
70713
 
70581
70714
  generator .DecIndent ();
70582
70715
 
70716
+ generator .string += generator .Indent ();
70583
70717
  generator .string += "</X3D>";
70584
- generator .string += generator .TidyBreak ();
70585
70718
  },
70586
70719
  toJSONStream: function (generator)
70587
70720
  {
70588
70721
  // X3D
70589
70722
 
70723
+ generator .string += generator .Indent ();
70590
70724
  generator .string += '{';
70591
70725
  generator .string += generator .TidySpace ();
70592
70726
  generator .string += '"';
@@ -70724,9 +70858,9 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70724
70858
 
70725
70859
  // Meta data
70726
70860
 
70727
- for (const [i, [key, values]] of [... this .getMetaDatas ()] .entries ())
70861
+ for (const [i, [key, values]] of [... this .getMetaDatas ()])
70728
70862
  {
70729
- for (const [j, value] of values .entries ())
70863
+ for (const [j, value] of values)
70730
70864
  {
70731
70865
  generator .string += generator .Indent ();
70732
70866
  generator .string += '{';
@@ -70925,7 +71059,6 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70925
71059
  generator .string += generator .DecIndent ();
70926
71060
  generator .string += generator .Indent ();
70927
71061
  generator .string += '}';
70928
- generator .string += generator .TidyBreak ();
70929
71062
  },
70930
71063
  });
70931
71064
 
@@ -71225,7 +71358,7 @@ const DataStorage_default_ = DataStorage;
71225
71358
  x_ite_Namespace.set ("standard/Utility/DataStorage", DataStorage_default_);
71226
71359
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
71227
71360
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
71228
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(586);
71361
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(714);
71229
71362
  /*******************************************************************************
71230
71363
  *
71231
71364
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -71384,7 +71517,6 @@ X3DCoreContext .prototype =
71384
71517
  this .loadURL (new x_ite_Fields.MFString (value), new x_ite_Fields.MFString ());
71385
71518
  },
71386
71519
  enumerable: true,
71387
- configurable: false,
71388
71520
  });
71389
71521
 
71390
71522
  Object .defineProperty (this .getElement () .get (0), "url",
@@ -71398,7 +71530,6 @@ X3DCoreContext .prototype =
71398
71530
  this .loadURL (value, new x_ite_Fields.MFString ());
71399
71531
  },
71400
71532
  enumerable: true,
71401
- configurable: false,
71402
71533
  });
71403
71534
 
71404
71535
  // Configure browser event handlers.
@@ -71500,6 +71631,12 @@ X3DCoreContext .prototype =
71500
71631
  this .setBrowserOption ("Antialiased", this .parseBooleanAttribute (newValue, true));
71501
71632
  break;
71502
71633
  }
71634
+ case "baseURL":
71635
+ case "baseurl":
71636
+ {
71637
+ this .setBaseURL (newValue);
71638
+ break;
71639
+ }
71503
71640
  case "cache":
71504
71641
  {
71505
71642
  this .setBrowserOption ("Cache", this .parseBooleanAttribute (newValue, true));
@@ -77282,8 +77419,8 @@ const OrientationChaser_default_ = OrientationChaser;
77282
77419
  x_ite_Namespace.set ("x_ite/Components/Followers/OrientationChaser", OrientationChaser_default_);
77283
77420
  /* harmony default export */ const Followers_OrientationChaser = (OrientationChaser_default_);
77284
77421
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
77285
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(729);
77286
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(586);
77422
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(510);
77423
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(714);
77287
77424
  /*******************************************************************************
77288
77425
  *
77289
77426
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -78147,8 +78284,8 @@ const ExamineViewer_default_ = ExamineViewer;
78147
78284
  x_ite_Namespace.set ("x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
78148
78285
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
78149
78286
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
78150
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(729);
78151
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(586);
78287
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(510);
78288
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(714);
78152
78289
  /*******************************************************************************
78153
78290
  *
78154
78291
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79096,8 +79233,8 @@ const FlyViewer_default_ = FlyViewer;
79096
79233
  x_ite_Namespace.set ("x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
79097
79234
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
79098
79235
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
79099
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(729);
79100
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(586);
79236
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(510);
79237
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(714);
79101
79238
  /*******************************************************************************
79102
79239
  *
79103
79240
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79406,8 +79543,8 @@ const NoneViewer_default_ = NoneViewer;
79406
79543
  x_ite_Namespace.set ("x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
79407
79544
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
79408
79545
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
79409
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(729);
79410
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(586);
79546
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(510);
79547
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(714);
79411
79548
  /*******************************************************************************
79412
79549
  *
79413
79550
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -80731,7 +80868,7 @@ const
80731
80868
 
80732
80869
  function getBaseURI (element)
80733
80870
  {
80734
- let baseURI = element .baseURI;
80871
+ let baseURI = element .prop ("baseURI");
80735
80872
 
80736
80873
  // Fix for Edge.
80737
80874
  if (baseURI .startsWith ("about:"))
@@ -80748,7 +80885,7 @@ function X3DNetworkingContext ()
80748
80885
  this [_loadingTotal] = 0;
80749
80886
  this [X3DNetworkingContext_loadingObjects] = new Set ();
80750
80887
  this [_loading] = false;
80751
- this [_baseURL] = getBaseURI (this .getElement () [0]);
80888
+ this [_baseURL] = getBaseURI (this .getElement ());
80752
80889
  }
80753
80890
 
80754
80891
  X3DNetworkingContext .prototype =
@@ -80767,7 +80904,11 @@ X3DNetworkingContext .prototype =
80767
80904
  },
80768
80905
  setBaseURL: function (value)
80769
80906
  {
80770
- this [_baseURL] = String (value);
80907
+ const
80908
+ base = getBaseURI (this .getElement ()),
80909
+ url = new URL (value, base);
80910
+
80911
+ this [_baseURL] = url .protocol === "data:" ? base : url .href;
80771
80912
  },
80772
80913
  getDefaultScene: function ()
80773
80914
  {
@@ -81035,8 +81176,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
81035
81176
  x_ite_Namespace.set ("x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
81036
81177
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
81037
81178
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
81038
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(729);
81039
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(586);
81179
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(510);
81180
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(714);
81040
81181
  /*******************************************************************************
81041
81182
  *
81042
81183
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -82074,8 +82215,8 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
82074
82215
  x_ite_Namespace.set ("x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
82075
82216
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
82076
82217
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
82077
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(586);
82078
- /* provided dependency */ var ResizeSensor = __webpack_require__(780);
82218
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(714);
82219
+ /* provided dependency */ var ResizeSensor = __webpack_require__(945);
82079
82220
  /*******************************************************************************
82080
82221
  *
82081
82222
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -87964,7 +88105,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
87964
88105
  x_ite_Namespace.set ("x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
87965
88106
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
87966
88107
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
87967
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(586);
88108
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(714);
87968
88109
  /*******************************************************************************
87969
88110
  *
87970
88111
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90741,7 +90882,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
90741
90882
  x_ite_Namespace.set ("x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
90742
90883
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
90743
90884
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
90744
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(586);
90885
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(714);
90745
90886
  /*******************************************************************************
90746
90887
  *
90747
90888
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -94269,7 +94410,6 @@ Object .assign (X3DBrowserContext,
94269
94410
  Object .defineProperty (X3DBrowserContext .prototype, key,
94270
94411
  {
94271
94412
  value: browserContext .prototype [key],
94272
- enumerable: false,
94273
94413
  writable: true,
94274
94414
  });
94275
94415
  }
@@ -113180,7 +113320,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
113180
113320
  x_ite_Namespace.set ("x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
113181
113321
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
113182
113322
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
113183
- /* provided dependency */ var AudioClip_$ = __webpack_require__(586);
113323
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(714);
113184
113324
  /*******************************************************************************
113185
113325
  *
113186
113326
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116075,8 +116215,8 @@ const GIFMedia_default_ = GifMedia;
116075
116215
  x_ite_Namespace.set ("x_ite/Browser/Texturing/GIFMedia", GIFMedia_default_);
116076
116216
  /* harmony default export */ const GIFMedia = (GIFMedia_default_);
116077
116217
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
116078
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(586);
116079
- /* provided dependency */ var SuperGif = __webpack_require__(253);
116218
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(714);
116219
+ /* provided dependency */ var SuperGif = __webpack_require__(997);
116080
116220
  /*******************************************************************************
116081
116221
  *
116082
116222
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117039,7 +117179,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
117039
117179
  x_ite_Namespace.set ("x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
117040
117180
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
117041
117181
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
117042
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(586);
117182
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(714);
117043
117183
  /*******************************************************************************
117044
117184
  *
117045
117185
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117750,7 +117890,7 @@ const Components_default_ = Components;
117750
117890
  x_ite_Namespace.set ("x_ite/Components", Components_default_);
117751
117891
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
117752
117892
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
117753
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(586);
117893
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(714);
117754
117894
  /*******************************************************************************
117755
117895
  * MIT License
117756
117896
  *
@@ -118283,6 +118423,7 @@ ProfileInfo .prototype = Object .assign (Object .create (Base_X3DObject.prototyp
118283
118423
  },
118284
118424
  toVRMLStream: function (generator)
118285
118425
  {
118426
+ generator .string += generator .Indent ();
118286
118427
  generator .string += "PROFILE";
118287
118428
  generator .string += generator .Space ();
118288
118429
  generator .string += this .name;
@@ -118987,7 +119128,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
118987
119128
  x_ite_Namespace.set ("x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
118988
119129
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
118989
119130
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
118990
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(586);
119131
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(714);
118991
119132
  /*******************************************************************************
118992
119133
  *
118993
119134
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119818,35 +119959,30 @@ Object .defineProperty (X3DBrowser .prototype, "name",
119818
119959
  {
119819
119960
  get: X3DBrowser .prototype .getName,
119820
119961
  enumerable: true,
119821
- configurable: false
119822
119962
  });
119823
119963
 
119824
119964
  Object .defineProperty (X3DBrowser .prototype, "version",
119825
119965
  {
119826
119966
  get: X3DBrowser .prototype .getVersion,
119827
119967
  enumerable: true,
119828
- configurable: false
119829
119968
  });
119830
119969
 
119831
119970
  Object .defineProperty (X3DBrowser .prototype, "providerUrl",
119832
119971
  {
119833
119972
  get: X3DBrowser .prototype .getProviderUrl,
119834
119973
  enumerable: true,
119835
- configurable: false
119836
119974
  });
119837
119975
 
119838
119976
  Object .defineProperty (X3DBrowser .prototype, "currentFrameRate",
119839
119977
  {
119840
119978
  get: X3DBrowser .prototype .getCurrentFrameRate,
119841
119979
  enumerable: true,
119842
- configurable: false
119843
119980
  });
119844
119981
 
119845
119982
  Object .defineProperty (X3DBrowser .prototype, "currentSpeed",
119846
119983
  {
119847
119984
  get: X3DBrowser .prototype .getCurrentSpeed,
119848
119985
  enumerable: true,
119849
- configurable: false
119850
119986
  });
119851
119987
 
119852
119988
  Object .defineProperty (X3DBrowser .prototype, "description",
@@ -119854,7 +119990,6 @@ Object .defineProperty (X3DBrowser .prototype, "description",
119854
119990
  get: X3DBrowser .prototype .getDescription,
119855
119991
  set: X3DBrowser .prototype .setDescription,
119856
119992
  enumerable: true,
119857
- configurable: false
119858
119993
  });
119859
119994
 
119860
119995
  Object .defineProperty (X3DBrowser .prototype, "baseURL",
@@ -119862,7 +119997,6 @@ Object .defineProperty (X3DBrowser .prototype, "baseURL",
119862
119997
  get: X3DBrowser .prototype .getBaseURL,
119863
119998
  set: X3DBrowser .prototype .setBaseURL,
119864
119999
  enumerable: true,
119865
- configurable: false
119866
120000
  });
119867
120001
 
119868
120002
  Object .defineProperty (X3DBrowser .prototype, "currentScene",
@@ -119872,7 +120006,6 @@ Object .defineProperty (X3DBrowser .prototype, "currentScene",
119872
120006
  return this .getScriptStack () .at (-1) .getExecutionContext ();
119873
120007
  },
119874
120008
  enumerable: true,
119875
- configurable: false
119876
120009
  });
119877
120010
 
119878
120011
  Object .defineProperty (X3DBrowser .prototype, "supportedProfiles",
@@ -119882,7 +120015,6 @@ Object .defineProperty (X3DBrowser .prototype, "supportedProfiles",
119882
120015
  return Configuration_SupportedProfiles;
119883
120016
  },
119884
120017
  enumerable: true,
119885
- configurable: false
119886
120018
  });
119887
120019
 
119888
120020
  Object .defineProperty (X3DBrowser .prototype, "supportedComponents",
@@ -119892,7 +120024,6 @@ Object .defineProperty (X3DBrowser .prototype, "supportedComponents",
119892
120024
  return Configuration_SupportedComponents;
119893
120025
  },
119894
120026
  enumerable: true,
119895
- configurable: false
119896
120027
  });
119897
120028
 
119898
120029
  const X3DBrowser_default_ = X3DBrowser;
@@ -119901,7 +120032,7 @@ const X3DBrowser_default_ = X3DBrowser;
119901
120032
  x_ite_Namespace.set ("x_ite/Browser/X3DBrowser", X3DBrowser_default_);
119902
120033
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
119903
120034
  ;// CONCATENATED MODULE: ./src/x_ite/Fallback.js
119904
- /* provided dependency */ var Fallback_$ = __webpack_require__(586);
120035
+ /* provided dependency */ var Fallback_$ = __webpack_require__(714);
119905
120036
  /*******************************************************************************
119906
120037
  *
119907
120038
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120080,8 +120211,8 @@ const MicroTime_default_ = undefined;
120080
120211
  x_ite_Namespace.set ("standard/Time/MicroTime", MicroTime_default_);
120081
120212
  /* harmony default export */ const MicroTime = ((/* unused pure expression or super */ null && (MicroTime_default_)));
120082
120213
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
120083
- /* provided dependency */ var jquery_$ = __webpack_require__(586);
120084
- /* provided dependency */ var pako = __webpack_require__(928);
120214
+ /* provided dependency */ var jquery_$ = __webpack_require__(714);
120215
+ /* provided dependency */ var pako = __webpack_require__(671);
120085
120216
  jquery_$.decodeText = function (input)
120086
120217
  {
120087
120218
  if (typeof input === "string")
@@ -120113,14 +120244,14 @@ const jquery_default_ = jquery_$;
120113
120244
  x_ite_Namespace.set ("lib/jquery", jquery_default_);
120114
120245
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
120115
120246
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
120116
- /* provided dependency */ var libtess_libtess = __webpack_require__(314);
120247
+ /* provided dependency */ var libtess_libtess = __webpack_require__(51);
120117
120248
  const libtess_default_ = libtess_libtess;
120118
120249
  ;
120119
120250
 
120120
120251
  x_ite_Namespace.set ("lib/libtess", libtess_default_);
120121
120252
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
120122
120253
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
120123
- /* provided dependency */ var X3D_$ = __webpack_require__(586);
120254
+ /* provided dependency */ var X3D_$ = __webpack_require__(714);
120124
120255
  /*******************************************************************************
120125
120256
  *
120126
120257
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120376,7 +120507,7 @@ const X3D_default_ = X3D;
120376
120507
  x_ite_Namespace.set ("x_ite/X3D", X3D_default_);
120377
120508
  /* harmony default export */ const x_ite_X3D = (X3D_default_);
120378
120509
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
120379
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(586);
120510
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(714);
120380
120511
  /*******************************************************************************
120381
120512
  *
120382
120513
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120470,6 +120601,8 @@ class X3DCanvasElement extends HTMLElement
120470
120601
  {
120471
120602
  return [
120472
120603
  "antialiased",
120604
+ "baseURL",
120605
+ "baseurl",
120473
120606
  "cache",
120474
120607
  "contentScale",
120475
120608
  "contentscale",
@@ -120655,7 +120788,7 @@ x_ite_Namespace.set ("shim", shim_default_);
120655
120788
 
120656
120789
  // Assign X3D to global namespace.
120657
120790
 
120658
- window [Symbol .for ("X_ITE.X3D-8.6.20")] = x_ite_X3D;
120791
+ window [Symbol .for ("X_ITE.X3D-8.6.22")] = x_ite_X3D;
120659
120792
 
120660
120793
  x_ite_X3DCanvasElement.define ();
120661
120794