x_ite 4.7.7 → 4.7.11

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 (82) hide show
  1. package/build/parts/default.end.frag.js +1 -2
  2. package/build/parts/default.start.frag.js +1 -8
  3. package/build/parts/x_ite.end.frag.js +0 -8
  4. package/build/parts/x_ite.start.frag.js +0 -5
  5. package/dist/assets/components/annotation.js +2 -10
  6. package/dist/assets/components/annotation.min.js +1 -1
  7. package/dist/assets/components/cad-geometry.js +2 -10
  8. package/dist/assets/components/cad-geometry.min.js +1 -1
  9. package/dist/assets/components/cube-map-texturing.js +2 -10
  10. package/dist/assets/components/cube-map-texturing.min.js +1 -1
  11. package/dist/assets/components/dis.js +2 -10
  12. package/dist/assets/components/dis.min.js +1 -1
  13. package/dist/assets/components/event-utilities.js +2 -10
  14. package/dist/assets/components/event-utilities.min.js +1 -1
  15. package/dist/assets/components/geometry2d.js +2 -10
  16. package/dist/assets/components/geometry2d.min.js +1 -1
  17. package/dist/assets/components/geospatial.js +2 -10
  18. package/dist/assets/components/geospatial.min.js +2 -2
  19. package/dist/assets/components/h-anim.js +2 -10
  20. package/dist/assets/components/h-anim.min.js +1 -1
  21. package/dist/assets/components/key-device-sensor.js +2 -10
  22. package/dist/assets/components/key-device-sensor.min.js +1 -1
  23. package/dist/assets/components/layout.js +2 -10
  24. package/dist/assets/components/layout.min.js +1 -1
  25. package/dist/assets/components/nurbs.js +2 -10
  26. package/dist/assets/components/nurbs.min.js +2 -2
  27. package/dist/assets/components/particle-systems.js +2 -10
  28. package/dist/assets/components/particle-systems.min.js +2 -2
  29. package/dist/assets/components/picking.js +2 -10
  30. package/dist/assets/components/picking.min.js +1 -1
  31. package/dist/assets/components/projective-texture-mapping.js +2 -10
  32. package/dist/assets/components/projective-texture-mapping.min.js +1 -1
  33. package/dist/assets/components/rigid-body-physics.js +2 -10
  34. package/dist/assets/components/rigid-body-physics.min.js +17 -17
  35. package/dist/assets/components/scripting.js +2 -10
  36. package/dist/assets/components/scripting.min.js +1 -1
  37. package/dist/assets/components/texturing-3d.js +2 -10
  38. package/dist/assets/components/texturing-3d.min.js +41 -41
  39. package/dist/assets/components/volume-rendering.js +2 -10
  40. package/dist/assets/components/volume-rendering.min.js +3 -3
  41. package/dist/assets/components/x_ite.js +2 -10
  42. package/dist/assets/components/x_ite.min.js +1 -1
  43. package/dist/example.html +2 -2
  44. package/dist/x_ite.css +14 -9
  45. package/dist/x_ite.js +177 -86
  46. package/dist/x_ite.min.js +41 -41
  47. package/dist/x_ite.zip +0 -0
  48. package/docs/Accessing-the-External-Browser.md +2 -16
  49. package/docs/_config.yml +1 -1
  50. package/docs/index.md +24 -3
  51. package/docs/reference/Browser-Services.md +2 -2
  52. package/package.json +5 -4
  53. package/src/locale/de.po +4 -4
  54. package/src/locale/fr.po +4 -4
  55. package/src/standard/Utility/DataStorage.js +16 -2
  56. package/src/x_ite/Basic/X3DBaseNode.js +1 -1
  57. package/src/x_ite/Browser/Core/BrowserTimings.js +1 -3
  58. package/src/x_ite/Browser/Core/ContextMenu.js +69 -5
  59. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +1 -3
  60. package/src/x_ite/Browser/VERSION.js +1 -1
  61. package/src/x_ite/Fields/SFColor.js +15 -2
  62. package/src/x_ite/Fields/SFDouble.js +1 -1
  63. package/src/x_ite/Fields/SFFloat.js +1 -1
  64. package/src/x_ite/Fields/SFMatrix3.js +4 -4
  65. package/src/x_ite/Fields/SFMatrix4.js +5 -5
  66. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +14 -3
  67. package/src/x_ite/Fields/SFRotation.js +4 -4
  68. package/src/x_ite/Fields/SFTime.js +1 -1
  69. package/src/x_ite/Fields/SFVec2.js +4 -4
  70. package/src/x_ite/Fields/SFVec3.js +4 -4
  71. package/src/x_ite/Fields/SFVec4.js +4 -4
  72. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +6 -5
  73. package/src/x_ite/InputOutput/Generator.js +14 -3
  74. package/src/x_ite/Parser/X3DParser.js +2 -2
  75. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +1 -1
  76. package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -1
  77. package/src/x_ite/X3D.js +2 -2
  78. package/src/x_ite.config.js +0 -5
  79. package/src/x_ite.css +14 -8
  80. package/src/x_ite.html +3 -3
  81. package/src/x_ite.js +2 -2
  82. package/x_ite.min.html +3 -3
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v4.7.7-1133 */
1
+ /* X_ITE v4.7.11-1137 */
2
2
 
3
3
  (function (globalModule, globalRequire)
4
4
  {
@@ -11,11 +11,6 @@ if (typeof __filename === "undefined")
11
11
 
12
12
  // Undefine global variables.
13
13
  var module, exports, process;
14
-
15
- const x_iteNoConfict = {
16
- sprintf: window .sprintf,
17
- vsprintf: window .vsprintf,
18
- };
19
14
  /** vim: et:ts=4:sw=4:sts=4
20
15
  * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.
21
16
  * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
@@ -13514,7 +13509,6 @@ define ('x_ite/Bits/X3DConstants',[],function ()
13514
13509
  ******************************************************************************/
13515
13510
 
13516
13511
 
13517
-
13518
13512
  define ('x_ite/InputOutput/Generator',[
13519
13513
  "x_ite/Bits/X3DConstants",
13520
13514
  ],
@@ -13524,8 +13518,12 @@ function (X3DConstants)
13524
13518
 
13525
13519
  function Generator ()
13526
13520
  {
13527
- this .indent = "";
13528
- this .indentChar = " ";
13521
+ this .indent = "";
13522
+ this .indentChar = " ";
13523
+ this .precision = 6;
13524
+ this .doublePrecision = 14;
13525
+ this .removeTrailingZeros = /\.?0*(?=$|[eE])/;
13526
+
13529
13527
  this .executionContextStack = [ null ];
13530
13528
  this .importedNodesIndex = new Map ();
13531
13529
  this .exportedNodesIndex = new Map ();
@@ -13565,6 +13563,14 @@ function (X3DConstants)
13565
13563
 
13566
13564
  return string;
13567
13565
  },
13566
+ Precision: function (value)
13567
+ {
13568
+ return Math .fround (value) .toPrecision (this .precision) .replace (this .removeTrailingZeros, "");
13569
+ },
13570
+ DoublePrecision: function (value)
13571
+ {
13572
+ return value .toPrecision (this .doublePrecision) .replace (this .removeTrailingZeros, "");
13573
+ },
13568
13574
  PushExecutionContext: function (executionContext)
13569
13575
  {
13570
13576
  this .executionContextStack .push (executionContext);
@@ -15465,10 +15471,12 @@ define ('x_ite/Fields/SFColor',[
15465
15471
  "standard/Math/Numbers/Color3",
15466
15472
  "x_ite/Basic/X3DField",
15467
15473
  "x_ite/Bits/X3DConstants",
15474
+ "x_ite/InputOutput/Generator",
15468
15475
  ],
15469
15476
  function (Color3,
15470
15477
  X3DField,
15471
- X3DConstants)
15478
+ X3DConstants,
15479
+ Generator)
15472
15480
  {
15473
15481
  "use strict";
15474
15482
 
@@ -15550,7 +15558,18 @@ function (Color3,
15550
15558
  })(),
15551
15559
  toStream: function (stream)
15552
15560
  {
15553
- stream .string += this .getValue () .toString ();
15561
+ const
15562
+ generator = Generator .Get (stream),
15563
+ value = this .getValue (),
15564
+ last = value .length - 1;
15565
+
15566
+ for (let i = 0; i < last; ++ i)
15567
+ {
15568
+ stream .string += generator .Precision (value [i]);
15569
+ stream .string += " ";
15570
+ }
15571
+
15572
+ stream .string += generator .Precision (value [last]);
15554
15573
  },
15555
15574
  toVRMLStream: function (stream)
15556
15575
  {
@@ -16125,7 +16144,7 @@ function (X3DField,
16125
16144
  generator = Generator .Get (stream),
16126
16145
  category = generator .Unit (this .getUnit ());
16127
16146
 
16128
- stream .string += String (generator .ToUnit (category, this .getValue ()));
16147
+ stream .string += generator .DoublePrecision (generator .ToUnit (category, this .getValue ()));
16129
16148
  },
16130
16149
  toVRMLStream: function (stream)
16131
16150
  {
@@ -16235,7 +16254,7 @@ function (X3DField,
16235
16254
  generator = Generator .Get (stream),
16236
16255
  category = generator .Unit (this .getUnit ());
16237
16256
 
16238
- stream .string += String (generator .ToUnit (category, this .getValue ()));
16257
+ stream .string += generator .Precision (generator .ToUnit (category, this .getValue ()));
16239
16258
  },
16240
16259
  toVRMLStream: function (stream)
16241
16260
  {
@@ -16701,7 +16720,7 @@ function (X3DField)
16701
16720
  {
16702
16721
  "use strict";
16703
16722
 
16704
- return function (Matrix, SFVec)
16723
+ return function (Matrix, SFVec, double)
16705
16724
  {
16706
16725
  return Object .assign (Object .create (X3DField .prototype),
16707
16726
  {
@@ -16779,9 +16798,20 @@ function (X3DField)
16779
16798
  },
16780
16799
  toStream: function (stream)
16781
16800
  {
16782
- stream .string += this .getValue () .toString ();
16801
+ const
16802
+ generator = Generator .Get (stream),
16803
+ value = this .getValue (),
16804
+ last = value .length - 1;
16805
+
16806
+ for (let i = 0; i < last; ++ i)
16807
+ {
16808
+ stream .string += double ? generator .DoublePrecision (value [i]) : generator .Precision (value [i]);
16809
+ stream .string += " ";
16810
+ }
16811
+
16812
+ stream .string += double ? generator .DoublePrecision (value [last]) : generator .Precision (value [last]);
16783
16813
  },
16784
- toVRMLStream: function (stream)
16814
+ toVRMLStream: function (stream)
16785
16815
  {
16786
16816
  this .toStream (stream);
16787
16817
  },
@@ -16851,7 +16881,7 @@ function (X3DField,
16851
16881
  {
16852
16882
  "use strict";
16853
16883
 
16854
- return function (Type)
16884
+ return function (Type, double)
16855
16885
  {
16856
16886
  return Object .assign (Object .create (X3DField .prototype),
16857
16887
  {
@@ -16924,15 +16954,16 @@ function (X3DField,
16924
16954
  const
16925
16955
  generator = Generator .Get (stream),
16926
16956
  value = this .getValue (),
16927
- category = generator .Unit (this .getUnit ());
16957
+ category = generator .Unit (this .getUnit ()),
16958
+ last = value .length - 1;
16928
16959
 
16929
- for (let i = 0, l = value .length - 1; i < l; ++ i)
16960
+ for (let i = 0; i < last; ++ i)
16930
16961
  {
16931
- stream .string += String (generator .ToUnit (category, value [i]));
16962
+ stream .string += double ? generator .DoublePrecision (generator .ToUnit (category, value [i])) : generator .Precision (generator .ToUnit (category, value [i]));
16932
16963
  stream .string += " ";
16933
16964
  }
16934
16965
 
16935
- stream .string += String (generator .ToUnit (category, value [value .length - 1]));
16966
+ stream .string += double ? generator .DoublePrecision (generator .ToUnit (category, value [last])) : generator .Precision (generator .ToUnit (category, value [last]));
16936
16967
  },
16937
16968
  toVRMLStream: function (stream)
16938
16969
  {
@@ -17296,7 +17327,7 @@ function (X3DField, SFVecPrototypeTemplate, X3DConstants, Vector2)
17296
17327
  {
17297
17328
  "use strict";
17298
17329
 
17299
- function SFVec2Template (TypeName, Type)
17330
+ function SFVec2Template (TypeName, Type, double)
17300
17331
  {
17301
17332
  function SFVec2 (x, y)
17302
17333
  {
@@ -17316,7 +17347,7 @@ function (X3DField, SFVecPrototypeTemplate, X3DConstants, Vector2)
17316
17347
  }
17317
17348
 
17318
17349
  SFVec2 .prototype = Object .assign (Object .create (X3DField .prototype),
17319
- SFVecPrototypeTemplate (Vector2),
17350
+ SFVecPrototypeTemplate (Vector2, double),
17320
17351
  {
17321
17352
  constructor: SFVec2,
17322
17353
  getTypeName: function ()
@@ -17370,8 +17401,8 @@ function (X3DField, SFVecPrototypeTemplate, X3DConstants, Vector2)
17370
17401
  }
17371
17402
 
17372
17403
  return {
17373
- SFVec2d: SFVec2Template ("SFVec2d", X3DConstants .SFVec2d),
17374
- SFVec2f: SFVec2Template ("SFVec2f", X3DConstants .SFVec2f),
17404
+ SFVec2d: SFVec2Template ("SFVec2d", X3DConstants .SFVec2d, true),
17405
+ SFVec2f: SFVec2Template ("SFVec2f", X3DConstants .SFVec2f, false),
17375
17406
  };
17376
17407
  });
17377
17408
 
@@ -18981,7 +19012,7 @@ function (X3DField,
18981
19012
  {
18982
19013
  "use strict";
18983
19014
 
18984
- function SFMatrix3Template (TypeName, Type, SFVec2)
19015
+ function SFMatrix3Template (TypeName, Type, SFVec2, double)
18985
19016
  {
18986
19017
  function SFMatrix3 (m00, m01, m02,
18987
19018
  m10, m11, m12,
@@ -19005,7 +19036,7 @@ function (X3DField,
19005
19036
  }
19006
19037
 
19007
19038
  SFMatrix3 .prototype = Object .assign (Object .create (X3DField .prototype),
19008
- SFMatrixPrototypeTemplate (Matrix3, SFVec2),
19039
+ SFMatrixPrototypeTemplate (Matrix3, SFVec2, double),
19009
19040
  {
19010
19041
  constructor: SFMatrix3,
19011
19042
  getTypeName: function ()
@@ -19053,8 +19084,8 @@ function (X3DField,
19053
19084
  }
19054
19085
 
19055
19086
  return {
19056
- SFMatrix3d: SFMatrix3Template ("SFMatrix3d", X3DConstants .SFMatrix3d, SFVec2 .SFVec2d),
19057
- SFMatrix3f: SFMatrix3Template ("SFMatrix3f", X3DConstants .SFMatrix3f, SFVec2 .SFVec2f),
19087
+ SFMatrix3d: SFMatrix3Template ("SFMatrix3d", X3DConstants .SFMatrix3d, SFVec2 .SFVec2d, true),
19088
+ SFMatrix3f: SFMatrix3Template ("SFMatrix3f", X3DConstants .SFMatrix3f, SFVec2 .SFVec2f, false),
19058
19089
  };
19059
19090
  });
19060
19091
 
@@ -19120,7 +19151,7 @@ function (X3DField,
19120
19151
  {
19121
19152
  "use strict";
19122
19153
 
19123
- function SFVec3Template (TypeName, Type)
19154
+ function SFVec3Template (TypeName, Type, double)
19124
19155
  {
19125
19156
  function SFVec3 (x, y, z)
19126
19157
  {
@@ -19140,7 +19171,7 @@ function (X3DField,
19140
19171
  }
19141
19172
 
19142
19173
  SFVec3 .prototype = Object .assign (Object .create (X3DField .prototype),
19143
- SFVecPrototypeTemplate (Vector3),
19174
+ SFVecPrototypeTemplate (Vector3, double),
19144
19175
  {
19145
19176
  constructor: SFVec3,
19146
19177
  getTypeName: function ()
@@ -19215,8 +19246,8 @@ function (X3DField,
19215
19246
  }
19216
19247
 
19217
19248
  return {
19218
- SFVec3d: SFVec3Template ("SFVec3d", X3DConstants .SFVec3d),
19219
- SFVec3f: SFVec3Template ("SFVec3f", X3DConstants .SFVec3f),
19249
+ SFVec3d: SFVec3Template ("SFVec3d", X3DConstants .SFVec3d, true),
19250
+ SFVec3f: SFVec3Template ("SFVec3f", X3DConstants .SFVec3f, false),
19220
19251
  };
19221
19252
  });
19222
19253
 
@@ -21627,7 +21658,7 @@ function (X3DField,
21627
21658
  {
21628
21659
  "use strict";
21629
21660
 
21630
- function SFMatrix4Template (TypeName, Type, SFVec3)
21661
+ function SFMatrix4Template (TypeName, Type, SFVec3, double)
21631
21662
  {
21632
21663
  function SFMatrix4 (m00, m01, m02, m03,
21633
21664
  m10, m11, m12, m13,
@@ -21653,7 +21684,7 @@ function (X3DField,
21653
21684
  }
21654
21685
 
21655
21686
  SFMatrix4 .prototype = Object .assign (Object .create (X3DField .prototype),
21656
- SFMatrixPrototypeTemplate (Matrix4, SFVec3),
21687
+ SFMatrixPrototypeTemplate (Matrix4, SFVec3, double),
21657
21688
  {
21658
21689
  constructor: SFMatrix4,
21659
21690
  getTypeName: function ()
@@ -21691,9 +21722,9 @@ function (X3DField,
21691
21722
  }
21692
21723
 
21693
21724
  return {
21694
- SFMatrix4d: SFMatrix4Template ("SFMatrix4d", X3DConstants .SFMatrix4d, SFVec3 .SFVec3d),
21695
- SFMatrix4f: SFMatrix4Template ("SFMatrix4f", X3DConstants .SFMatrix4f, SFVec3 .SFVec3f),
21696
- VrmlMatrix: SFMatrix4Template ("VrmlMatrix", X3DConstants .VrmlMatrix, SFVec3 .SFVec3f),
21725
+ SFMatrix4d: SFMatrix4Template ("SFMatrix4d", X3DConstants .SFMatrix4d, SFVec3 .SFVec3d, true),
21726
+ SFMatrix4f: SFMatrix4Template ("SFMatrix4f", X3DConstants .SFMatrix4f, SFVec3 .SFVec3f, false),
21727
+ VrmlMatrix: SFMatrix4Template ("VrmlMatrix", X3DConstants .VrmlMatrix, SFVec3 .SFVec3f, false),
21697
21728
  };
21698
21729
  });
21699
21730
 
@@ -22297,10 +22328,10 @@ function (SFVec3,
22297
22328
  generator = Generator .Get (stream),
22298
22329
  rotation = this .getValue ();
22299
22330
 
22300
- stream .string += rotation .x + " " +
22301
- rotation .y + " " +
22302
- rotation .z + " " +
22303
- generator .ToUnit ("angle", rotation .angle);
22331
+ stream .string += generator .DoublePrecision (rotation .x) + " " +
22332
+ generator .DoublePrecision (rotation .y) + " " +
22333
+ generator .DoublePrecision (rotation .z) + " " +
22334
+ generator .DoublePrecision (generator .ToUnit ("angle", rotation .angle));
22304
22335
  },
22305
22336
  toVRMLStream: function (stream)
22306
22337
  {
@@ -22607,7 +22638,7 @@ function (X3DField,
22607
22638
  valueOf: X3DField .prototype .getValue,
22608
22639
  toStream: function (stream)
22609
22640
  {
22610
- stream .string += String (this .getValue ());
22641
+ stream .string += this .getValue ();
22611
22642
  },
22612
22643
  toVRMLStream: function (stream)
22613
22644
  {
@@ -22684,7 +22715,7 @@ function (X3DField,
22684
22715
  {
22685
22716
  "use strict";
22686
22717
 
22687
- function SFVec4Template (TypeName, Type)
22718
+ function SFVec4Template (TypeName, Type, double)
22688
22719
  {
22689
22720
  function SFVec4 (x, y, z, w)
22690
22721
  {
@@ -22704,7 +22735,7 @@ function (X3DField,
22704
22735
  }
22705
22736
 
22706
22737
  SFVec4 .prototype = Object .assign (Object .create (X3DField .prototype),
22707
- SFVecPrototypeTemplate (Vector4),
22738
+ SFVecPrototypeTemplate (Vector4, double),
22708
22739
  {
22709
22740
  constructor: SFVec4,
22710
22741
  getTypeName: function ()
@@ -22792,8 +22823,8 @@ function (X3DField,
22792
22823
  }
22793
22824
 
22794
22825
  return {
22795
- SFVec4d: SFVec4Template ("SFVec4d", X3DConstants .SFVec4d),
22796
- SFVec4f: SFVec4Template ("SFVec4f", X3DConstants .SFVec4f),
22826
+ SFVec4d: SFVec4Template ("SFVec4d", X3DConstants .SFVec4d, true),
22827
+ SFVec4f: SFVec4Template ("SFVec4f", X3DConstants .SFVec4f, false),
22797
22828
  };
22798
22829
  });
22799
22830
 
@@ -24883,7 +24914,7 @@ function (SFBool,
24883
24914
 
24884
24915
  define ('x_ite/Browser/VERSION',[],function ()
24885
24916
  {
24886
- return "4.7.7";
24917
+ return "4.7.11";
24887
24918
  });
24888
24919
 
24889
24920
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
@@ -26025,7 +26056,7 @@ function (X3DEventObject,
26025
26056
  references = [ ],
26026
26057
  childNodes = [ ];
26027
26058
 
26028
- const cdata = this .getSourceText ();
26059
+ let cdata = this .getSourceText ();
26029
26060
 
26030
26061
  if (cdata && cdata .length === 0)
26031
26062
  cdata = null;
@@ -26739,10 +26770,10 @@ define('text/text',['module'], function (module) {
26739
26770
  define('text', ['text/text'], function (main) { return main; });
26740
26771
 
26741
26772
 
26742
- define('text!locale/de.po',[],function () { return 'msgid ""\nmsgstr ""\n"Project-Id-Version: X_ITE\\n"\n"POT-Creation-Date: 2015-12-23 04:56+0100\\n"\n"PO-Revision-Date: 2015-12-23 04:57+0100\\n"\n"Last-Translator: Holger Seelig <holger.seelig@yahoo.de>\\n"\n"Language-Team: \\n"\n"Language: de\\n"\n"MIME-Version: 1.0\\n"\n"Content-Type: text/plain; charset=UTF-8\\n"\n"Content-Transfer-Encoding: 8bit\\n"\n"X-Generator: Poedit 1.8.4\\n"\n"X-Poedit-Basepath: ../x_ite\\n"\n"Plural-Forms: nplurals=2; plural=(n != 1);\\n"\n"X-Poedit-SourceCharset: UTF-8\\n"\n"X-Poedit-SearchPath-0: .\\n"\n\nmsgid "Less Properties"\nmsgstr "Weniger Eigenschaften"\n\nmsgid "More Properties"\nmsgstr "Mehr Eigenschaften"\n\nmsgid "Frame rate"\nmsgstr "Bildrate"\n\nmsgid "fps"\nmsgstr "BpS"\n\nmsgid "Speed"\nmsgstr "Geschwindigkeit"\n\nmsgid "m/s"\nmsgstr ""\n\nmsgid "km/h"\nmsgstr ""\n\nmsgid "Browser"\nmsgstr ""\n\nmsgid "ms"\nmsgstr ""\n\nmsgid "X3D total"\nmsgstr "X3D gesamt"\n\nmsgid "Event Processing"\nmsgstr "Ereignisverarbeitung"\n\nmsgid "Pointer"\nmsgstr "Zeigegerät"\n\nmsgid "Camera"\nmsgstr "Kamera"\n\nmsgid "Collision Detection"\nmsgstr "Kollisionserkennung"\n\nmsgid "Rendering"\nmsgstr "Rendering"\n\nmsgid "Number of Shapes"\nmsgstr "Anzahl der Formen"\n\nmsgid "Number of Sensors"\nmsgstr "Anzahl der Sensoren"\n\nmsgid "Browser Timings"\nmsgstr "Zeitberechnung"\n\nmsgid "X_ITE Browser"\nmsgstr ""\n\nmsgid "Viewpoints"\nmsgstr "Ansichtspunkte"\n\nmsgid "Available Viewers"\nmsgstr "Verfügbare Betrachter"\n\nmsgid "Straighten Horizon"\nmsgstr "Horizont gerade richten"\n\nmsgid "Primitive Quality"\nmsgstr "Qualität der Grundobjekte"\n\nmsgid "High"\nmsgstr "Hoch"\n\nmsgid "high"\nmsgstr "hoch"\n\nmsgid "Medium"\nmsgstr "Mittel"\n\nmsgid "medium"\nmsgstr "mittel"\n\nmsgid "Low"\nmsgstr "Niedrig"\n\nmsgid "low"\nmsgstr "niedrig"\n\nmsgid "Texture Quality"\nmsgstr "Textur Qualität"\n\nmsgid "Display Rubberband"\nmsgstr "Gummiband anzeigen"\n\nmsgid "Rubberband"\nmsgstr "Gummiband"\n\nmsgid "on"\nmsgstr "an"\n\nmsgid "off"\nmsgstr "aus"\n\nmsgid "Mute Browser"\nmsgstr "Browser stumm schalten"\n\nmsgid "Browser muted"\nmsgstr "Browser stumm geschalten"\n\nmsgid "Browser unmuted"\nmsgstr "Browser Ton an"\n\nmsgid "Leave Fullscreen"\nmsgstr "Vollbild verlassen"\n\nmsgid "Fullscreen"\nmsgstr "Vollbild"\n\nmsgid "About X_ITE"\nmsgstr "Über X_ITE"\n\nmsgid "Examine Viewer"\nmsgstr "Untersuchen"\n\nmsgid "Walk Viewer"\nmsgstr "Laufen"\n\nmsgid "Fly Viewer"\nmsgstr "Fliegen"\n\nmsgid "Plane Viewer"\nmsgstr "Ebenen Betrachter"\n\nmsgid "Look At Viewer"\nmsgstr "Auf Objekte zielen"\n\nmsgid "None Viewer"\nmsgstr "Kein Betrachter"\n\nmsgid "Loading %d file"\nmsgstr "Lade %d Datei"\n\nmsgid "Loading %d files"\nmsgstr "Lade %d Dateien"\n\nmsgid "Loading done"\nmsgstr "Fertig mit Laden"\n\nmsgid "Failed loading world."\nmsgstr "Laden der Dateien fehlgeschlagen."\n\nmsgid "Show World Info"\nmsgstr "World Info anzeigen"\n\nmsgid "Viewpoint is copied to clipboard."\nmsgstr "Ansichtspunkt wurde in die Zwischenablage kopiert."\n';});
26773
+ define('text!locale/de.po',[],function () { return 'msgid ""\nmsgstr ""\n"Project-Id-Version: X_ITE\\n"\n"POT-Creation-Date: 2015-12-23 04:56+0100\\n"\n"PO-Revision-Date: 2015-12-23 04:57+0100\\n"\n"Last-Translator: Holger Seelig <holger.seelig@yahoo.de>\\n"\n"Language-Team: \\n"\n"Language: de\\n"\n"MIME-Version: 1.0\\n"\n"Content-Type: text/plain; charset=UTF-8\\n"\n"Content-Transfer-Encoding: 8bit\\n"\n"X-Generator: Poedit 1.8.4\\n"\n"X-Poedit-Basepath: ../x_ite\\n"\n"Plural-Forms: nplurals=2; plural=(n != 1);\\n"\n"X-Poedit-SourceCharset: UTF-8\\n"\n"X-Poedit-SearchPath-0: .\\n"\n\nmsgid "Less Properties"\nmsgstr "Weniger Eigenschaften"\n\nmsgid "More Properties"\nmsgstr "Mehr Eigenschaften"\n\nmsgid "Frame rate"\nmsgstr "Bildrate"\n\nmsgid "fps"\nmsgstr "BpS"\n\nmsgid "Speed"\nmsgstr "Geschwindigkeit"\n\nmsgid "m/s"\nmsgstr ""\n\nmsgid "km/h"\nmsgstr ""\n\nmsgid "Browser"\nmsgstr ""\n\nmsgid "ms"\nmsgstr ""\n\nmsgid "X3D total"\nmsgstr "X3D gesamt"\n\nmsgid "Event Processing"\nmsgstr "Ereignisverarbeitung"\n\nmsgid "Pointer"\nmsgstr "Zeigegerät"\n\nmsgid "Camera"\nmsgstr "Kamera"\n\nmsgid "Collision Detection"\nmsgstr "Kollisionserkennung"\n\nmsgid "Rendering"\nmsgstr "Rendering"\n\nmsgid "Number of Shapes"\nmsgstr "Anzahl der Formen"\n\nmsgid "Number of Sensors"\nmsgstr "Anzahl der Sensoren"\n\nmsgid "Browser Timings"\nmsgstr "Zeitberechnung"\n\nmsgid "X_ITE Browser"\nmsgstr ""\n\nmsgid "Viewpoints"\nmsgstr "Ansichtspunkte"\n\nmsgid "Available Viewers"\nmsgstr "Verfügbare Betrachter"\n\nmsgid "Straighten Horizon"\nmsgstr "Horizont gerade richten"\n\nmsgid "Primitive Quality"\nmsgstr "Qualität der Grundobjekte"\n\nmsgid "High"\nmsgstr "Hoch"\n\nmsgid "high"\nmsgstr "hoch"\n\nmsgid "Medium"\nmsgstr "Mittel"\n\nmsgid "medium"\nmsgstr "mittel"\n\nmsgid "Low"\nmsgstr "Niedrig"\n\nmsgid "low"\nmsgstr "niedrig"\n\nmsgid "Texture Quality"\nmsgstr "Textur Qualität"\n\nmsgid "Display Rubberband"\nmsgstr "Gummiband anzeigen"\n\nmsgid "Rubberband"\nmsgstr "Gummiband"\n\nmsgid "on"\nmsgstr "an"\n\nmsgid "off"\nmsgstr "aus"\n\nmsgid "Mute Browser"\nmsgstr "Browser stumm schalten"\n\nmsgid "Browser muted"\nmsgstr "Browser stumm geschalten"\n\nmsgid "Browser unmuted"\nmsgstr "Browser Ton an"\n\nmsgid "Leave Fullscreen"\nmsgstr "Vollbild verlassen"\n\nmsgid "Fullscreen"\nmsgstr "Vollbild"\n\nmsgid "About X_ITE"\nmsgstr "Über X_ITE"\n\nmsgid "Examine Viewer"\nmsgstr "Untersuchen"\n\nmsgid "Walk Viewer"\nmsgstr "Laufen"\n\nmsgid "Fly Viewer"\nmsgstr "Fliegen"\n\nmsgid "Plane Viewer"\nmsgstr "Ebenen Betrachter"\n\nmsgid "Look At Viewer"\nmsgstr "Auf Objekte zielen"\n\nmsgid "None Viewer"\nmsgstr "Kein Betrachter"\n\nmsgid "Loading %1 file"\nmsgstr "Lade %1 Datei"\n\nmsgid "Loading %1 files"\nmsgstr "Lade %1 Dateien"\n\nmsgid "Loading done"\nmsgstr "Fertig mit Laden"\n\nmsgid "Failed loading world."\nmsgstr "Laden der Dateien fehlgeschlagen."\n\nmsgid "Show World Info"\nmsgstr "World Info anzeigen"\n\nmsgid "Viewpoint is copied to clipboard."\nmsgstr "Ansichtspunkt wurde in die Zwischenablage kopiert."\n';});
26743
26774
 
26744
26775
 
26745
- define('text!locale/fr.po',[],function () { return 'msgid ""\nmsgstr ""\n"Project-Id-Version: X_ITE\\n"\n"POT-Creation-Date: 2015-12-23 04:58+0100\\n"\n"PO-Revision-Date: 2015-12-23 05:07+0100\\n"\n"Last-Translator: Holger Seelig <holger.seelig@yahoo.de>\\n"\n"Language-Team: \\n"\n"Language: fr\\n"\n"MIME-Version: 1.0\\n"\n"Content-Type: text/plain; charset=UTF-8\\n"\n"Content-Transfer-Encoding: 8bit\\n"\n"X-Generator: Poedit 1.8.4\\n"\n"X-Poedit-Basepath: ../x_ite\\n"\n"Plural-Forms: nplurals=2; plural=(n != 1);\\n"\n"X-Poedit-SourceCharset: UTF-8\\n"\n"X-Poedit-SearchPath-0: .\\n"\n\nmsgid "Less Properties"\nmsgstr "Moins de propriétés"\n\nmsgid "More Properties"\nmsgstr "Plus de propriétés"\n\nmsgid "Frame rate"\nmsgstr "Fréquence"\n\nmsgid "fps"\nmsgstr "fps"\n\nmsgid "Speed"\nmsgstr "Vélocité"\n\nmsgid "m/s"\nmsgstr ""\n\nmsgid "km/h"\nmsgstr ""\n\nmsgid "Browser"\nmsgstr "X_ITE Navigateur"\n\nmsgid "ms"\nmsgstr ""\n\nmsgid "X3D total"\nmsgstr "X3D total"\n\nmsgid "Traitement des événements"\nmsgstr "Routes"\n\nmsgid "Pointer"\nmsgstr "Pointeur"\n\nmsgid "Camera"\nmsgstr "Caméra"\n\nmsgid "Collision Detection"\nmsgstr "Détection des collisions"\n\nmsgid "Rendering"\nmsgstr "Rendement"\n\nmsgid "Number of Shapes"\nmsgstr "Nombre de formes"\n\nmsgid "Number of Sensors"\nmsgstr "Nombre de senseurs"\n\nmsgid "Browser Timings"\nmsgstr "Calcul du temps"\n\nmsgid "X_ITE Browser"\nmsgstr "X_ITE Navigateur"\n\nmsgid "Viewpoints"\nmsgstr "Points de vue"\n\nmsgid "Available Viewers"\nmsgstr "Visionneurs disponibles"\n\nmsgid "Straighten Horizon"\nmsgstr "Redresser l\'horizon"\n\nmsgid "Primitive Quality"\nmsgstr "Qualité des objets simples"\n\nmsgid "High"\nmsgstr "Haut"\n\nmsgid "high"\nmsgstr "haut"\n\nmsgid "Medium"\nmsgstr "Moyenne"\n\nmsgid "medium"\nmsgstr "moyenne"\n\nmsgid "Low"\nmsgstr "Faible"\n\nmsgid "low"\nmsgstr "faible"\n\nmsgid "Texture Quality"\nmsgstr "Qualité des textures"\n\nmsgid "Display Rubberband"\nmsgstr "Présenter le bande élastique"\n\nmsgid "Rubberband"\nmsgstr "Bande élastique"\n\nmsgid "on"\nmsgstr "marche"\n\nmsgid "off"\nmsgstr "arrêt"\n\nmsgid "Mute Browser"\nmsgstr "Rendre navigateur muet"\n\nmsgid "Browser muted"\nmsgstr "Navigateur muet"\n\nmsgid "Browser unmuted"\nmsgstr "Son de navigateur réactivé"\n\nmsgid "Leave Fullscreen"\nmsgstr "Sortie en plein écran"\n\nmsgid "Fullscreen"\nmsgstr "Plein écran"\n\nmsgid "About X_ITE"\nmsgstr "À propos de X_ITE"\n\nmsgid "Examine Viewer"\nmsgstr "Examiner"\n\nmsgid "Walk Viewer"\nmsgstr "Aller"\n\nmsgid "Fly Viewer"\nmsgstr "Voler"\n\nmsgid "Plane Viewer"\nmsgstr "Visionneur de la plaine"\n\nmsgid "Look At Viewer"\nmsgstr "Regarder un objet de près"\n\nmsgid "None Viewer"\nmsgstr "Pas de visionneur"\n\nmsgid "Loading %d file"\nmsgstr "Télécharger %d fichier"\n\nmsgid "Loading %d files"\nmsgstr "Télécharger %d fichiers"\n\nmsgid "Loading done"\nmsgstr "Téléchargement fini"\n\nmsgid "Failed loading world."\nmsgstr "Le chargement des fichiers a échoué."\n\nmsgid "Show World Info"\nmsgstr "Afficher World Info"\n\nmsgid "Viewpoint is copied to clipboard."\nmsgstr "Le point de vue est copié dans le presse-papiers."\n';});
26776
+ define('text!locale/fr.po',[],function () { return 'msgid ""\nmsgstr ""\n"Project-Id-Version: X_ITE\\n"\n"POT-Creation-Date: 2015-12-23 04:58+0100\\n"\n"PO-Revision-Date: 2015-12-23 05:07+0100\\n"\n"Last-Translator: Holger Seelig <holger.seelig@yahoo.de>\\n"\n"Language-Team: \\n"\n"Language: fr\\n"\n"MIME-Version: 1.0\\n"\n"Content-Type: text/plain; charset=UTF-8\\n"\n"Content-Transfer-Encoding: 8bit\\n"\n"X-Generator: Poedit 1.8.4\\n"\n"X-Poedit-Basepath: ../x_ite\\n"\n"Plural-Forms: nplurals=2; plural=(n != 1);\\n"\n"X-Poedit-SourceCharset: UTF-8\\n"\n"X-Poedit-SearchPath-0: .\\n"\n\nmsgid "Less Properties"\nmsgstr "Moins de propriétés"\n\nmsgid "More Properties"\nmsgstr "Plus de propriétés"\n\nmsgid "Frame rate"\nmsgstr "Fréquence"\n\nmsgid "fps"\nmsgstr "fps"\n\nmsgid "Speed"\nmsgstr "Vélocité"\n\nmsgid "m/s"\nmsgstr ""\n\nmsgid "km/h"\nmsgstr ""\n\nmsgid "Browser"\nmsgstr "X_ITE Navigateur"\n\nmsgid "ms"\nmsgstr ""\n\nmsgid "X3D total"\nmsgstr "X3D total"\n\nmsgid "Traitement des événements"\nmsgstr "Routes"\n\nmsgid "Pointer"\nmsgstr "Pointeur"\n\nmsgid "Camera"\nmsgstr "Caméra"\n\nmsgid "Collision Detection"\nmsgstr "Détection des collisions"\n\nmsgid "Rendering"\nmsgstr "Rendement"\n\nmsgid "Number of Shapes"\nmsgstr "Nombre de formes"\n\nmsgid "Number of Sensors"\nmsgstr "Nombre de senseurs"\n\nmsgid "Browser Timings"\nmsgstr "Calcul du temps"\n\nmsgid "X_ITE Browser"\nmsgstr "X_ITE Navigateur"\n\nmsgid "Viewpoints"\nmsgstr "Points de vue"\n\nmsgid "Available Viewers"\nmsgstr "Visionneurs disponibles"\n\nmsgid "Straighten Horizon"\nmsgstr "Redresser l\'horizon"\n\nmsgid "Primitive Quality"\nmsgstr "Qualité des objets simples"\n\nmsgid "High"\nmsgstr "Haut"\n\nmsgid "high"\nmsgstr "haut"\n\nmsgid "Medium"\nmsgstr "Moyenne"\n\nmsgid "medium"\nmsgstr "moyenne"\n\nmsgid "Low"\nmsgstr "Faible"\n\nmsgid "low"\nmsgstr "faible"\n\nmsgid "Texture Quality"\nmsgstr "Qualité des textures"\n\nmsgid "Display Rubberband"\nmsgstr "Présenter le bande élastique"\n\nmsgid "Rubberband"\nmsgstr "Bande élastique"\n\nmsgid "on"\nmsgstr "marche"\n\nmsgid "off"\nmsgstr "arrêt"\n\nmsgid "Mute Browser"\nmsgstr "Rendre navigateur muet"\n\nmsgid "Browser muted"\nmsgstr "Navigateur muet"\n\nmsgid "Browser unmuted"\nmsgstr "Son de navigateur réactivé"\n\nmsgid "Leave Fullscreen"\nmsgstr "Sortie en plein écran"\n\nmsgid "Fullscreen"\nmsgstr "Plein écran"\n\nmsgid "About X_ITE"\nmsgstr "À propos de X_ITE"\n\nmsgid "Examine Viewer"\nmsgstr "Examiner"\n\nmsgid "Walk Viewer"\nmsgstr "Aller"\n\nmsgid "Fly Viewer"\nmsgstr "Voler"\n\nmsgid "Plane Viewer"\nmsgstr "Visionneur de la plaine"\n\nmsgid "Look At Viewer"\nmsgstr "Regarder un objet de près"\n\nmsgid "None Viewer"\nmsgstr "Pas de visionneur"\n\nmsgid "Loading %1 file"\nmsgstr "Télécharger %1 fichier"\n\nmsgid "Loading %1 files"\nmsgstr "Télécharger %1 fichiers"\n\nmsgid "Loading done"\nmsgstr "Téléchargement fini"\n\nmsgid "Failed loading world."\nmsgstr "Le chargement des fichiers a échoué."\n\nmsgid "Show World Info"\nmsgstr "Afficher World Info"\n\nmsgid "Viewpoint is copied to clipboard."\nmsgstr "Le point de vue est copié dans le presse-papiers."\n';});
26746
26777
 
26747
26778
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
26748
26779
  *******************************************************************************
@@ -26923,18 +26954,16 @@ function (de, fr)
26923
26954
 
26924
26955
  define ('x_ite/Browser/Core/BrowserTimings',[
26925
26956
  "jquery",
26926
- "x_ite/Fields/SFBool",
26927
26957
  "x_ite/Basic/X3DBaseNode",
26928
26958
  "locale/gettext",
26929
26959
  ],
26930
26960
  function ($,
26931
- SFBool,
26932
26961
  X3DBaseNode,
26933
26962
  _)
26934
26963
  {
26935
26964
  "use strict";
26936
26965
 
26937
- function f2 (n) { return Math .floor (n * 100) / 100; }
26966
+ function f2 (n) { return n .toFixed (2); }
26938
26967
 
26939
26968
  function BrowserTimings (executionContext)
26940
26969
  {
@@ -30327,7 +30356,8 @@ function ($,
30327
30356
  {
30328
30357
  X3DBaseNode .call (this, executionContext);
30329
30358
 
30330
- this .active = false;
30359
+ this .userMenu = null;
30360
+ this .active = false;
30331
30361
  }
30332
30362
 
30333
30363
  ContextMenu .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
@@ -30379,15 +30409,57 @@ function ($,
30379
30409
  },
30380
30410
  1);
30381
30411
  }
30382
-
30412
+ },
30413
+ activated: function (options)
30414
+ {
30383
30415
  // Display submenus on left side if there is no space on right side.
30384
30416
 
30385
30417
  if (options .$menu .hasClass ("x_ite-private-menu-submenus-left"))
30386
30418
  {
30387
- options .$menu .find (".context-menu-item > .context-menu-list") .css ({
30388
- "right": options .$menu .width () + "px",
30419
+ options .$menu .find (".context-menu-list") .each (function (i, e)
30420
+ {
30421
+ $(e) .css ("right", $(e) .parent () .parent () .css ("width"));
30422
+ });
30423
+ }
30424
+ else
30425
+ {
30426
+ options .$menu .find (".context-menu-list") .each (function (i, e)
30427
+ {
30428
+ $(e) .css ("left", (parseInt ($(e) .parent () .parent () .css ("width")) - 2) + "px");
30389
30429
  });
30390
30430
  }
30431
+
30432
+ // If the submenu is higher than vh, add scrollbars.
30433
+ options .$menu .find (".context-menu-list") .each (function (i, e)
30434
+ {
30435
+ if ($(e) .height () > $(window) .height ())
30436
+ {
30437
+ $(e) .css ({
30438
+ "overflow-y": "scroll",
30439
+ "max-height": "100vh",
30440
+ });
30441
+ }
30442
+ });
30443
+
30444
+ // If the submenu is higher than vh, reposition it.
30445
+ options .$menu .find (".context-menu-item") .on ("mouseenter", function (event)
30446
+ {
30447
+ event .stopImmediatePropagation ();
30448
+
30449
+ const
30450
+ t = $(event .target),
30451
+ e = t .children (".context-menu-list");
30452
+
30453
+ if (!e .length)
30454
+ return;
30455
+
30456
+ e .css ("top", "");
30457
+
30458
+ const bottom = e .offset () .top + e .height () - $(window) .scrollTop () - $(window) .height ();
30459
+
30460
+ if (bottom > 0)
30461
+ e .offset ({ "top": e .offset () .top - bottom });
30462
+ });
30391
30463
  }
30392
30464
  .bind (this),
30393
30465
  hide: function (options)
@@ -30398,6 +30470,14 @@ function ($,
30398
30470
  },
30399
30471
  });
30400
30472
  },
30473
+ getUserMenu: function ()
30474
+ {
30475
+ return this .userMenu;
30476
+ },
30477
+ setUserMenu: function (userMenu)
30478
+ {
30479
+ this .userMenu = userMenu;
30480
+ },
30401
30481
  getActive: function ()
30402
30482
  {
30403
30483
  return this .active;
@@ -30677,9 +30757,22 @@ function ($,
30677
30757
  window .open (browser .getProviderUrl ());
30678
30758
  },
30679
30759
  },
30680
- }
30760
+ },
30681
30761
  };
30682
30762
 
30763
+ if ($.isFunction (this .userMenu))
30764
+ {
30765
+ const userMenu = this .userMenu ();
30766
+
30767
+ if ($.isPlainObject (userMenu))
30768
+ {
30769
+ Object .assign (menu .items, { "separator4": "--------" });
30770
+
30771
+ for (const key in userMenu)
30772
+ menu .items ["user-" + key] = userMenu [key];
30773
+ }
30774
+ }
30775
+
30683
30776
  if (leftSubMenus)
30684
30777
  menu .className += " x_ite-private-menu-submenus-left";
30685
30778
 
@@ -34139,10 +34232,10 @@ define ('x_ite/Parser/X3DParser',[],function ()
34139
34232
  providerUrls .add (providerUrl);
34140
34233
  }
34141
34234
 
34142
- if (typeof globalRequire === "function")
34235
+ if (typeof globalRequire === "function" && typeof __filename === "string")
34143
34236
  {
34144
34237
  for (const url of providerUrls)
34145
- globalRequire (new URL (url) .pathname);
34238
+ globalRequire (globalRequire ("url") .fileURLToPath (url));
34146
34239
  }
34147
34240
 
34148
34241
  return Array .from (providerUrls);
@@ -35239,7 +35332,7 @@ function ($,
35239
35332
  this .setInternalScene (value);
35240
35333
 
35241
35334
  else
35242
- this .setError ();
35335
+ this .setError (new Error ("File could not be loaded."));
35243
35336
 
35244
35337
  this .getScene () .removeInitLoadCount (this);
35245
35338
  },
@@ -35751,7 +35844,7 @@ function (Fields,
35751
35844
 
35752
35845
  generator .IncIndent ();
35753
35846
 
35754
- this .body .toXMLStream .call (stream);
35847
+ this .body .toXMLStream (stream);
35755
35848
 
35756
35849
  generator .DecIndent ();
35757
35850
 
@@ -38791,7 +38884,8 @@ define ('standard/Utility/DataStorage',[],function ()
38791
38884
 
38792
38885
  const
38793
38886
  storages = new WeakMap (),
38794
- namespaces = new WeakMap ();
38887
+ namespaces = new WeakMap (),
38888
+ defaults = new WeakMap ();
38795
38889
 
38796
38890
  const handler =
38797
38891
  {
@@ -38805,7 +38899,7 @@ define ('standard/Utility/DataStorage',[],function ()
38805
38899
  var value = target .getStorage () [target .getNameSpace () + key];
38806
38900
 
38807
38901
  if (value === undefined || value === "undefined" || value === null)
38808
- return undefined;
38902
+ return target .getDefaultValue (key);
38809
38903
 
38810
38904
  return JSON .parse (value);
38811
38905
  },
@@ -38827,6 +38921,7 @@ define ('standard/Utility/DataStorage',[],function ()
38827
38921
 
38828
38922
  storages .set (this, storage);
38829
38923
  namespaces .set (this, namespace);
38924
+ defaults .set (this, { });
38830
38925
 
38831
38926
  return new Proxy (this, handler);
38832
38927
  }
@@ -38841,6 +38936,18 @@ define ('standard/Utility/DataStorage',[],function ()
38841
38936
  {
38842
38937
  return namespaces .get (this .target);
38843
38938
  },
38939
+ addNameSpace: function (namespace)
38940
+ {
38941
+ return new DataStorage (this .getStorage (), this .getNameSpace () + namespace);
38942
+ },
38943
+ addDefaultValues: function (defaults)
38944
+ {
38945
+ Object .assign (defaults .get (this .target), object);
38946
+ },
38947
+ getDefaultValue (key)
38948
+ {
38949
+ return defaults .get (this .target) [key];
38950
+ },
38844
38951
  clear: function ()
38845
38952
  {
38846
38953
  const
@@ -39937,12 +40044,6 @@ define ('x_ite/Browser/Networking/urls',[],function ()
39937
40044
  return new URLs ();
39938
40045
  });
39939
40046
 
39940
- /*! sprintf-js v1.1.2 | Copyright (c) 2007-present, Alexandru Mărășteanu <hello@alexei.ro> | BSD-3-Clause */
39941
- !function(){"use strict";var g={not_string:/[^s]/,not_bool:/[^t]/,not_type:/[^T]/,not_primitive:/[^v]/,number:/[diefg]/,numeric_arg:/[bcdiefguxX]/,json:/[j]/,not_json:/[^j]/,text:/^[^\x25]+/,modulo:/^\x25{2}/,placeholder:/^\x25(?:([1-9]\d*)\$|\(([^)]+)\))?(\+)?(0|'[^$])?(-)?(\d+)?(?:\.(\d+))?([b-gijostTuvxX])/,key:/^([a-z_][a-z_\d]*)/i,key_access:/^\.([a-z_][a-z_\d]*)/i,index_access:/^\[(\d+)\]/,sign:/^[+-]/};function y(e){return function(e,t){var r,n,i,s,a,o,p,c,l,u=1,f=e.length,d="";for(n=0;n<f;n++)if("string"==typeof e[n])d+=e[n];else if("object"==typeof e[n]){if((s=e[n]).keys)for(r=t[u],i=0;i<s.keys.length;i++){if(null==r)throw new Error(y('[sprintf] Cannot access property "%s" of undefined value "%s"',s.keys[i],s.keys[i-1]));r=r[s.keys[i]]}else r=s.param_no?t[s.param_no]:t[u++];if(g.not_type.test(s.type)&&g.not_primitive.test(s.type)&&r instanceof Function&&(r=r()),g.numeric_arg.test(s.type)&&"number"!=typeof r&&isNaN(r))throw new TypeError(y("[sprintf] expecting number but found %T",r));switch(g.number.test(s.type)&&(c=0<=r),s.type){case"b":r=parseInt(r,10).toString(2);break;case"c":r=String.fromCharCode(parseInt(r,10));break;case"d":case"i":r=parseInt(r,10);break;case"j":r=JSON.stringify(r,null,s.width?parseInt(s.width):0);break;case"e":r=s.precision?parseFloat(r).toExponential(s.precision):parseFloat(r).toExponential();break;case"f":r=s.precision?parseFloat(r).toFixed(s.precision):parseFloat(r);break;case"g":r=s.precision?String(Number(r.toPrecision(s.precision))):parseFloat(r);break;case"o":r=(parseInt(r,10)>>>0).toString(8);break;case"s":r=String(r),r=s.precision?r.substring(0,s.precision):r;break;case"t":r=String(!!r),r=s.precision?r.substring(0,s.precision):r;break;case"T":r=Object.prototype.toString.call(r).slice(8,-1).toLowerCase(),r=s.precision?r.substring(0,s.precision):r;break;case"u":r=parseInt(r,10)>>>0;break;case"v":r=r.valueOf(),r=s.precision?r.substring(0,s.precision):r;break;case"x":r=(parseInt(r,10)>>>0).toString(16);break;case"X":r=(parseInt(r,10)>>>0).toString(16).toUpperCase()}g.json.test(s.type)?d+=r:(!g.number.test(s.type)||c&&!s.sign?l="":(l=c?"+":"-",r=r.toString().replace(g.sign,"")),o=s.pad_char?"0"===s.pad_char?"0":s.pad_char.charAt(1):" ",p=s.width-(l+r).length,a=s.width&&0<p?o.repeat(p):"",d+=s.align?l+r+a:"0"===o?l+a+r:a+l+r)}return d}(function(e){if(p[e])return p[e];var t,r=e,n=[],i=0;for(;r;){if(null!==(t=g.text.exec(r)))n.push(t[0]);else if(null!==(t=g.modulo.exec(r)))n.push("%");else{if(null===(t=g.placeholder.exec(r)))throw new SyntaxError("[sprintf] unexpected placeholder");if(t[2]){i|=1;var s=[],a=t[2],o=[];if(null===(o=g.key.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");for(s.push(o[1]);""!==(a=a.substring(o[0].length));)if(null!==(o=g.key_access.exec(a)))s.push(o[1]);else{if(null===(o=g.index_access.exec(a)))throw new SyntaxError("[sprintf] failed to parse named argument key");s.push(o[1])}t[2]=s}else i|=2;if(3===i)throw new Error("[sprintf] mixing positional and named placeholders is not (yet) supported");n.push({placeholder:t[0],param_no:t[1],keys:t[2],sign:t[3],pad_char:t[4],align:t[5],width:t[6],precision:t[7],type:t[8]})}r=r.substring(t[0].length)}return p[e]=n}(e),arguments)}function e(e,t){return y.apply(null,[e].concat(t||[]))}var p=Object.create(null);"undefined"!=typeof exports&&(exports.sprintf=y,exports.vsprintf=e),"undefined"!=typeof window&&(window.sprintf=y,window.vsprintf=e,"function"==typeof define&&define.amd&&define('sprintf/dist/sprintf.min',[],function(){return{sprintf:y,vsprintf:e}}))}();
39942
- //# sourceMappingURL=sprintf.min.js.map
39943
- ;
39944
- define('sprintf', ['sprintf/dist/sprintf.min'], function (main) { return main; });
39945
-
39946
40047
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
39947
40048
  *******************************************************************************
39948
40049
  *
@@ -39995,12 +40096,10 @@ define('sprintf', ['sprintf/dist/sprintf.min'], function (main) { return main; }
39995
40096
  define ('x_ite/Browser/Networking/X3DNetworkingContext',[
39996
40097
  "x_ite/Fields",
39997
40098
  "x_ite/Browser/Networking/urls",
39998
- "sprintf",
39999
40099
  "locale/gettext",
40000
40100
  ],
40001
40101
  function (Fields,
40002
40102
  urls,
40003
- sprintf,
40004
40103
  _)
40005
40104
  {
40006
40105
  "use strict";
@@ -40121,7 +40220,7 @@ function (Fields,
40121
40220
 
40122
40221
  if (value)
40123
40222
  {
40124
- var string = sprintf .sprintf (value == 1 ? _ ("Loading %d file") : _ ("Loading %d files"), value);
40223
+ var string = (value == 1 ? _ ("Loading %1 file") : _ ("Loading %1 files")) .replace ("%1", value);
40125
40224
  }
40126
40225
  else
40127
40226
  {
@@ -118166,8 +118265,8 @@ function ($,
118166
118265
  {
118167
118266
  const url = urls .getProviderUrl (name);
118168
118267
 
118169
- if (typeof globalRequire === "function")
118170
- globalRequire (new URL (url) .pathname);
118268
+ if (typeof globalRequire === "function" && typeof __filename === "string")
118269
+ globalRequire (globalRequire ("url") .fileURLToPath (url));
118171
118270
 
118172
118271
  return url;
118173
118272
  }
@@ -118391,8 +118490,8 @@ const getScriptURL = (function ()
118391
118490
  {
118392
118491
  if (document .currentScript)
118393
118492
  var src = document .currentScript .src;
118394
- else if (typeof __filename === "string")
118395
- var src = "file://" + __filename;
118493
+ else if (typeof globalRequire === "function" && typeof __filename === "string")
118494
+ var src = globalRequire ("url") .pathToFileURL (__filename) .href;
118396
118495
 
118397
118496
  return function ()
118398
118497
  {
@@ -118537,13 +118636,5 @@ function ()
118537
118636
  };
118538
118637
  });
118539
118638
 
118540
- for (const key in x_iteNoConfict)
118541
- {
118542
- if (x_iteNoConfict [key] === undefined)
118543
- delete window [key];
118544
- else
118545
- window [key] = x_iteNoConfict [key];
118546
- }
118547
-
118548
118639
  })
118549
118640
  (typeof module === "object" ? module : undefined, typeof require === "function" ? require : undefined);