x_ite 4.7.8 → 4.7.12

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 (84) 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 +1 -11
  4. package/build/parts/x_ite.start.frag.js +1 -7
  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 +194 -127
  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 +1 -15
  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/Basic/X3DField.js +12 -7
  58. package/src/x_ite/Browser/Core/BrowserTimings.js +1 -3
  59. package/src/x_ite/Browser/Core/ContextMenu.js +69 -5
  60. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +1 -3
  61. package/src/x_ite/Browser/Networking/urls.js +0 -7
  62. package/src/x_ite/Browser/VERSION.js +1 -1
  63. package/src/x_ite/Fields/SFColor.js +15 -2
  64. package/src/x_ite/Fields/SFDouble.js +1 -1
  65. package/src/x_ite/Fields/SFFloat.js +1 -1
  66. package/src/x_ite/Fields/SFMatrix3.js +4 -4
  67. package/src/x_ite/Fields/SFMatrix4.js +5 -5
  68. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +14 -3
  69. package/src/x_ite/Fields/SFRotation.js +4 -4
  70. package/src/x_ite/Fields/SFTime.js +1 -1
  71. package/src/x_ite/Fields/SFVec2.js +4 -4
  72. package/src/x_ite/Fields/SFVec3.js +4 -4
  73. package/src/x_ite/Fields/SFVec4.js +4 -4
  74. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +6 -5
  75. package/src/x_ite/InputOutput/Generator.js +14 -3
  76. package/src/x_ite/Parser/X3DParser.js +5 -12
  77. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +1 -1
  78. package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -1
  79. package/src/x_ite/X3D.js +2 -7
  80. package/src/x_ite.config.js +0 -5
  81. package/src/x_ite.css +14 -8
  82. package/src/x_ite.html +3 -3
  83. package/src/x_ite.js +2 -9
  84. package/x_ite.min.html +3 -3
package/dist/x_ite.js CHANGED
@@ -1,22 +1,16 @@
1
- /* X_ITE v4.7.8-1134 */
1
+ /* X_ITE v4.7.12-1138 */
2
2
 
3
- (function (globalModule, globalRequire, globalProcess)
3
+ (function (globalModule, globalRequire)
4
4
  {
5
5
 
6
6
  if (typeof __filename === "undefined")
7
7
  {
8
8
  globalModule = undefined;
9
9
  globalRequire = undefined;
10
- globalProcess = undefined;
11
10
  }
12
11
 
13
12
  // Undefine global variables.
14
13
  var module, exports, process;
15
-
16
- const x_iteNoConfict = {
17
- sprintf: window .sprintf,
18
- vsprintf: window .vsprintf,
19
- };
20
14
  /** vim: et:ts=4:sw=4:sts=4
21
15
  * @license RequireJS 2.3.6 Copyright jQuery Foundation and other contributors.
22
16
  * Released under MIT license, https://github.com/requirejs/requirejs/blob/master/LICENSE
@@ -13515,7 +13509,6 @@ define ('x_ite/Bits/X3DConstants',[],function ()
13515
13509
  ******************************************************************************/
13516
13510
 
13517
13511
 
13518
-
13519
13512
  define ('x_ite/InputOutput/Generator',[
13520
13513
  "x_ite/Bits/X3DConstants",
13521
13514
  ],
@@ -13525,8 +13518,12 @@ function (X3DConstants)
13525
13518
 
13526
13519
  function Generator ()
13527
13520
  {
13528
- this .indent = "";
13529
- this .indentChar = " ";
13521
+ this .indent = "";
13522
+ this .indentChar = " ";
13523
+ this .precision = 6;
13524
+ this .doublePrecision = 14;
13525
+ this .removeTrailingZeros = /\.?0*(?=$|[eE])/;
13526
+
13530
13527
  this .executionContextStack = [ null ];
13531
13528
  this .importedNodesIndex = new Map ();
13532
13529
  this .exportedNodesIndex = new Map ();
@@ -13566,6 +13563,14 @@ function (X3DConstants)
13566
13563
 
13567
13564
  return string;
13568
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
+ },
13569
13574
  PushExecutionContext: function (executionContext)
13570
13575
  {
13571
13576
  this .executionContextStack .push (executionContext);
@@ -14640,16 +14645,21 @@ function ($,
14640
14645
  {
14641
14646
  return this ._routeCallbacks;
14642
14647
  },
14643
- processRouteCallbacks: function ()
14648
+ processRouteCallbacks: (function ()
14644
14649
  {
14645
- if (this ._routeCallbacks .size)
14650
+ const routeCallbacks = new Map ();
14651
+
14652
+ return function ()
14646
14653
  {
14647
- this ._routeCallbacks .forEach (function (routeCallback)
14654
+ if (this ._routeCallbacks .size)
14648
14655
  {
14649
- routeCallback ();
14650
- });
14651
- }
14652
- },
14656
+ MapUtilities .assign (routeCallbacks, this ._routeCallbacks) .forEach (function (routeCallback)
14657
+ {
14658
+ routeCallback ();
14659
+ });
14660
+ }
14661
+ };
14662
+ })(),
14653
14663
  processEvent: (function ()
14654
14664
  {
14655
14665
  const fieldCallbacks = new Map ();
@@ -15466,10 +15476,12 @@ define ('x_ite/Fields/SFColor',[
15466
15476
  "standard/Math/Numbers/Color3",
15467
15477
  "x_ite/Basic/X3DField",
15468
15478
  "x_ite/Bits/X3DConstants",
15479
+ "x_ite/InputOutput/Generator",
15469
15480
  ],
15470
15481
  function (Color3,
15471
15482
  X3DField,
15472
- X3DConstants)
15483
+ X3DConstants,
15484
+ Generator)
15473
15485
  {
15474
15486
  "use strict";
15475
15487
 
@@ -15551,7 +15563,18 @@ function (Color3,
15551
15563
  })(),
15552
15564
  toStream: function (stream)
15553
15565
  {
15554
- stream .string += this .getValue () .toString ();
15566
+ const
15567
+ generator = Generator .Get (stream),
15568
+ value = this .getValue (),
15569
+ last = value .length - 1;
15570
+
15571
+ for (let i = 0; i < last; ++ i)
15572
+ {
15573
+ stream .string += generator .Precision (value [i]);
15574
+ stream .string += " ";
15575
+ }
15576
+
15577
+ stream .string += generator .Precision (value [last]);
15555
15578
  },
15556
15579
  toVRMLStream: function (stream)
15557
15580
  {
@@ -16126,7 +16149,7 @@ function (X3DField,
16126
16149
  generator = Generator .Get (stream),
16127
16150
  category = generator .Unit (this .getUnit ());
16128
16151
 
16129
- stream .string += String (generator .ToUnit (category, this .getValue ()));
16152
+ stream .string += generator .DoublePrecision (generator .ToUnit (category, this .getValue ()));
16130
16153
  },
16131
16154
  toVRMLStream: function (stream)
16132
16155
  {
@@ -16236,7 +16259,7 @@ function (X3DField,
16236
16259
  generator = Generator .Get (stream),
16237
16260
  category = generator .Unit (this .getUnit ());
16238
16261
 
16239
- stream .string += String (generator .ToUnit (category, this .getValue ()));
16262
+ stream .string += generator .Precision (generator .ToUnit (category, this .getValue ()));
16240
16263
  },
16241
16264
  toVRMLStream: function (stream)
16242
16265
  {
@@ -16702,7 +16725,7 @@ function (X3DField)
16702
16725
  {
16703
16726
  "use strict";
16704
16727
 
16705
- return function (Matrix, SFVec)
16728
+ return function (Matrix, SFVec, double)
16706
16729
  {
16707
16730
  return Object .assign (Object .create (X3DField .prototype),
16708
16731
  {
@@ -16780,9 +16803,20 @@ function (X3DField)
16780
16803
  },
16781
16804
  toStream: function (stream)
16782
16805
  {
16783
- stream .string += this .getValue () .toString ();
16806
+ const
16807
+ generator = Generator .Get (stream),
16808
+ value = this .getValue (),
16809
+ last = value .length - 1;
16810
+
16811
+ for (let i = 0; i < last; ++ i)
16812
+ {
16813
+ stream .string += double ? generator .DoublePrecision (value [i]) : generator .Precision (value [i]);
16814
+ stream .string += " ";
16815
+ }
16816
+
16817
+ stream .string += double ? generator .DoublePrecision (value [last]) : generator .Precision (value [last]);
16784
16818
  },
16785
- toVRMLStream: function (stream)
16819
+ toVRMLStream: function (stream)
16786
16820
  {
16787
16821
  this .toStream (stream);
16788
16822
  },
@@ -16852,7 +16886,7 @@ function (X3DField,
16852
16886
  {
16853
16887
  "use strict";
16854
16888
 
16855
- return function (Type)
16889
+ return function (Type, double)
16856
16890
  {
16857
16891
  return Object .assign (Object .create (X3DField .prototype),
16858
16892
  {
@@ -16925,15 +16959,16 @@ function (X3DField,
16925
16959
  const
16926
16960
  generator = Generator .Get (stream),
16927
16961
  value = this .getValue (),
16928
- category = generator .Unit (this .getUnit ());
16962
+ category = generator .Unit (this .getUnit ()),
16963
+ last = value .length - 1;
16929
16964
 
16930
- for (let i = 0, l = value .length - 1; i < l; ++ i)
16965
+ for (let i = 0; i < last; ++ i)
16931
16966
  {
16932
- stream .string += String (generator .ToUnit (category, value [i]));
16967
+ stream .string += double ? generator .DoublePrecision (generator .ToUnit (category, value [i])) : generator .Precision (generator .ToUnit (category, value [i]));
16933
16968
  stream .string += " ";
16934
16969
  }
16935
16970
 
16936
- stream .string += String (generator .ToUnit (category, value [value .length - 1]));
16971
+ stream .string += double ? generator .DoublePrecision (generator .ToUnit (category, value [last])) : generator .Precision (generator .ToUnit (category, value [last]));
16937
16972
  },
16938
16973
  toVRMLStream: function (stream)
16939
16974
  {
@@ -17297,7 +17332,7 @@ function (X3DField, SFVecPrototypeTemplate, X3DConstants, Vector2)
17297
17332
  {
17298
17333
  "use strict";
17299
17334
 
17300
- function SFVec2Template (TypeName, Type)
17335
+ function SFVec2Template (TypeName, Type, double)
17301
17336
  {
17302
17337
  function SFVec2 (x, y)
17303
17338
  {
@@ -17317,7 +17352,7 @@ function (X3DField, SFVecPrototypeTemplate, X3DConstants, Vector2)
17317
17352
  }
17318
17353
 
17319
17354
  SFVec2 .prototype = Object .assign (Object .create (X3DField .prototype),
17320
- SFVecPrototypeTemplate (Vector2),
17355
+ SFVecPrototypeTemplate (Vector2, double),
17321
17356
  {
17322
17357
  constructor: SFVec2,
17323
17358
  getTypeName: function ()
@@ -17371,8 +17406,8 @@ function (X3DField, SFVecPrototypeTemplate, X3DConstants, Vector2)
17371
17406
  }
17372
17407
 
17373
17408
  return {
17374
- SFVec2d: SFVec2Template ("SFVec2d", X3DConstants .SFVec2d),
17375
- SFVec2f: SFVec2Template ("SFVec2f", X3DConstants .SFVec2f),
17409
+ SFVec2d: SFVec2Template ("SFVec2d", X3DConstants .SFVec2d, true),
17410
+ SFVec2f: SFVec2Template ("SFVec2f", X3DConstants .SFVec2f, false),
17376
17411
  };
17377
17412
  });
17378
17413
 
@@ -18982,7 +19017,7 @@ function (X3DField,
18982
19017
  {
18983
19018
  "use strict";
18984
19019
 
18985
- function SFMatrix3Template (TypeName, Type, SFVec2)
19020
+ function SFMatrix3Template (TypeName, Type, SFVec2, double)
18986
19021
  {
18987
19022
  function SFMatrix3 (m00, m01, m02,
18988
19023
  m10, m11, m12,
@@ -19006,7 +19041,7 @@ function (X3DField,
19006
19041
  }
19007
19042
 
19008
19043
  SFMatrix3 .prototype = Object .assign (Object .create (X3DField .prototype),
19009
- SFMatrixPrototypeTemplate (Matrix3, SFVec2),
19044
+ SFMatrixPrototypeTemplate (Matrix3, SFVec2, double),
19010
19045
  {
19011
19046
  constructor: SFMatrix3,
19012
19047
  getTypeName: function ()
@@ -19054,8 +19089,8 @@ function (X3DField,
19054
19089
  }
19055
19090
 
19056
19091
  return {
19057
- SFMatrix3d: SFMatrix3Template ("SFMatrix3d", X3DConstants .SFMatrix3d, SFVec2 .SFVec2d),
19058
- SFMatrix3f: SFMatrix3Template ("SFMatrix3f", X3DConstants .SFMatrix3f, SFVec2 .SFVec2f),
19092
+ SFMatrix3d: SFMatrix3Template ("SFMatrix3d", X3DConstants .SFMatrix3d, SFVec2 .SFVec2d, true),
19093
+ SFMatrix3f: SFMatrix3Template ("SFMatrix3f", X3DConstants .SFMatrix3f, SFVec2 .SFVec2f, false),
19059
19094
  };
19060
19095
  });
19061
19096
 
@@ -19121,7 +19156,7 @@ function (X3DField,
19121
19156
  {
19122
19157
  "use strict";
19123
19158
 
19124
- function SFVec3Template (TypeName, Type)
19159
+ function SFVec3Template (TypeName, Type, double)
19125
19160
  {
19126
19161
  function SFVec3 (x, y, z)
19127
19162
  {
@@ -19141,7 +19176,7 @@ function (X3DField,
19141
19176
  }
19142
19177
 
19143
19178
  SFVec3 .prototype = Object .assign (Object .create (X3DField .prototype),
19144
- SFVecPrototypeTemplate (Vector3),
19179
+ SFVecPrototypeTemplate (Vector3, double),
19145
19180
  {
19146
19181
  constructor: SFVec3,
19147
19182
  getTypeName: function ()
@@ -19216,8 +19251,8 @@ function (X3DField,
19216
19251
  }
19217
19252
 
19218
19253
  return {
19219
- SFVec3d: SFVec3Template ("SFVec3d", X3DConstants .SFVec3d),
19220
- SFVec3f: SFVec3Template ("SFVec3f", X3DConstants .SFVec3f),
19254
+ SFVec3d: SFVec3Template ("SFVec3d", X3DConstants .SFVec3d, true),
19255
+ SFVec3f: SFVec3Template ("SFVec3f", X3DConstants .SFVec3f, false),
19221
19256
  };
19222
19257
  });
19223
19258
 
@@ -21628,7 +21663,7 @@ function (X3DField,
21628
21663
  {
21629
21664
  "use strict";
21630
21665
 
21631
- function SFMatrix4Template (TypeName, Type, SFVec3)
21666
+ function SFMatrix4Template (TypeName, Type, SFVec3, double)
21632
21667
  {
21633
21668
  function SFMatrix4 (m00, m01, m02, m03,
21634
21669
  m10, m11, m12, m13,
@@ -21654,7 +21689,7 @@ function (X3DField,
21654
21689
  }
21655
21690
 
21656
21691
  SFMatrix4 .prototype = Object .assign (Object .create (X3DField .prototype),
21657
- SFMatrixPrototypeTemplate (Matrix4, SFVec3),
21692
+ SFMatrixPrototypeTemplate (Matrix4, SFVec3, double),
21658
21693
  {
21659
21694
  constructor: SFMatrix4,
21660
21695
  getTypeName: function ()
@@ -21692,9 +21727,9 @@ function (X3DField,
21692
21727
  }
21693
21728
 
21694
21729
  return {
21695
- SFMatrix4d: SFMatrix4Template ("SFMatrix4d", X3DConstants .SFMatrix4d, SFVec3 .SFVec3d),
21696
- SFMatrix4f: SFMatrix4Template ("SFMatrix4f", X3DConstants .SFMatrix4f, SFVec3 .SFVec3f),
21697
- VrmlMatrix: SFMatrix4Template ("VrmlMatrix", X3DConstants .VrmlMatrix, SFVec3 .SFVec3f),
21730
+ SFMatrix4d: SFMatrix4Template ("SFMatrix4d", X3DConstants .SFMatrix4d, SFVec3 .SFVec3d, true),
21731
+ SFMatrix4f: SFMatrix4Template ("SFMatrix4f", X3DConstants .SFMatrix4f, SFVec3 .SFVec3f, false),
21732
+ VrmlMatrix: SFMatrix4Template ("VrmlMatrix", X3DConstants .VrmlMatrix, SFVec3 .SFVec3f, false),
21698
21733
  };
21699
21734
  });
21700
21735
 
@@ -22298,10 +22333,10 @@ function (SFVec3,
22298
22333
  generator = Generator .Get (stream),
22299
22334
  rotation = this .getValue ();
22300
22335
 
22301
- stream .string += rotation .x + " " +
22302
- rotation .y + " " +
22303
- rotation .z + " " +
22304
- generator .ToUnit ("angle", rotation .angle);
22336
+ stream .string += generator .DoublePrecision (rotation .x) + " " +
22337
+ generator .DoublePrecision (rotation .y) + " " +
22338
+ generator .DoublePrecision (rotation .z) + " " +
22339
+ generator .DoublePrecision (generator .ToUnit ("angle", rotation .angle));
22305
22340
  },
22306
22341
  toVRMLStream: function (stream)
22307
22342
  {
@@ -22608,7 +22643,7 @@ function (X3DField,
22608
22643
  valueOf: X3DField .prototype .getValue,
22609
22644
  toStream: function (stream)
22610
22645
  {
22611
- stream .string += String (this .getValue ());
22646
+ stream .string += this .getValue ();
22612
22647
  },
22613
22648
  toVRMLStream: function (stream)
22614
22649
  {
@@ -22685,7 +22720,7 @@ function (X3DField,
22685
22720
  {
22686
22721
  "use strict";
22687
22722
 
22688
- function SFVec4Template (TypeName, Type)
22723
+ function SFVec4Template (TypeName, Type, double)
22689
22724
  {
22690
22725
  function SFVec4 (x, y, z, w)
22691
22726
  {
@@ -22705,7 +22740,7 @@ function (X3DField,
22705
22740
  }
22706
22741
 
22707
22742
  SFVec4 .prototype = Object .assign (Object .create (X3DField .prototype),
22708
- SFVecPrototypeTemplate (Vector4),
22743
+ SFVecPrototypeTemplate (Vector4, double),
22709
22744
  {
22710
22745
  constructor: SFVec4,
22711
22746
  getTypeName: function ()
@@ -22793,8 +22828,8 @@ function (X3DField,
22793
22828
  }
22794
22829
 
22795
22830
  return {
22796
- SFVec4d: SFVec4Template ("SFVec4d", X3DConstants .SFVec4d),
22797
- SFVec4f: SFVec4Template ("SFVec4f", X3DConstants .SFVec4f),
22831
+ SFVec4d: SFVec4Template ("SFVec4d", X3DConstants .SFVec4d, true),
22832
+ SFVec4f: SFVec4Template ("SFVec4f", X3DConstants .SFVec4f, false),
22798
22833
  };
22799
22834
  });
22800
22835
 
@@ -24884,7 +24919,7 @@ function (SFBool,
24884
24919
 
24885
24920
  define ('x_ite/Browser/VERSION',[],function ()
24886
24921
  {
24887
- return "4.7.8";
24922
+ return "4.7.12";
24888
24923
  });
24889
24924
 
24890
24925
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
@@ -26026,7 +26061,7 @@ function (X3DEventObject,
26026
26061
  references = [ ],
26027
26062
  childNodes = [ ];
26028
26063
 
26029
- const cdata = this .getSourceText ();
26064
+ let cdata = this .getSourceText ();
26030
26065
 
26031
26066
  if (cdata && cdata .length === 0)
26032
26067
  cdata = null;
@@ -26740,10 +26775,10 @@ define('text/text',['module'], function (module) {
26740
26775
  define('text', ['text/text'], function (main) { return main; });
26741
26776
 
26742
26777
 
26743
- 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';});
26778
+ 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';});
26744
26779
 
26745
26780
 
26746
- 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';});
26781
+ 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';});
26747
26782
 
26748
26783
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
26749
26784
  *******************************************************************************
@@ -26924,18 +26959,16 @@ function (de, fr)
26924
26959
 
26925
26960
  define ('x_ite/Browser/Core/BrowserTimings',[
26926
26961
  "jquery",
26927
- "x_ite/Fields/SFBool",
26928
26962
  "x_ite/Basic/X3DBaseNode",
26929
26963
  "locale/gettext",
26930
26964
  ],
26931
26965
  function ($,
26932
- SFBool,
26933
26966
  X3DBaseNode,
26934
26967
  _)
26935
26968
  {
26936
26969
  "use strict";
26937
26970
 
26938
- function f2 (n) { return Math .floor (n * 100) / 100; }
26971
+ function f2 (n) { return n .toFixed (2); }
26939
26972
 
26940
26973
  function BrowserTimings (executionContext)
26941
26974
  {
@@ -30328,7 +30361,8 @@ function ($,
30328
30361
  {
30329
30362
  X3DBaseNode .call (this, executionContext);
30330
30363
 
30331
- this .active = false;
30364
+ this .userMenu = null;
30365
+ this .active = false;
30332
30366
  }
30333
30367
 
30334
30368
  ContextMenu .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
@@ -30380,15 +30414,57 @@ function ($,
30380
30414
  },
30381
30415
  1);
30382
30416
  }
30383
-
30417
+ },
30418
+ activated: function (options)
30419
+ {
30384
30420
  // Display submenus on left side if there is no space on right side.
30385
30421
 
30386
30422
  if (options .$menu .hasClass ("x_ite-private-menu-submenus-left"))
30387
30423
  {
30388
- options .$menu .find (".context-menu-item > .context-menu-list") .css ({
30389
- "right": options .$menu .width () + "px",
30424
+ options .$menu .find (".context-menu-list") .each (function (i, e)
30425
+ {
30426
+ $(e) .css ("right", $(e) .parent () .parent () .css ("width"));
30427
+ });
30428
+ }
30429
+ else
30430
+ {
30431
+ options .$menu .find (".context-menu-list") .each (function (i, e)
30432
+ {
30433
+ $(e) .css ("left", (parseInt ($(e) .parent () .parent () .css ("width")) - 2) + "px");
30390
30434
  });
30391
30435
  }
30436
+
30437
+ // If the submenu is higher than vh, add scrollbars.
30438
+ options .$menu .find (".context-menu-list") .each (function (i, e)
30439
+ {
30440
+ if ($(e) .height () > $(window) .height ())
30441
+ {
30442
+ $(e) .css ({
30443
+ "overflow-y": "scroll",
30444
+ "max-height": "100vh",
30445
+ });
30446
+ }
30447
+ });
30448
+
30449
+ // If the submenu is higher than vh, reposition it.
30450
+ options .$menu .find (".context-menu-item") .on ("mouseenter", function (event)
30451
+ {
30452
+ event .stopImmediatePropagation ();
30453
+
30454
+ const
30455
+ t = $(event .target),
30456
+ e = t .children (".context-menu-list");
30457
+
30458
+ if (!e .length)
30459
+ return;
30460
+
30461
+ e .css ("top", "");
30462
+
30463
+ const bottom = e .offset () .top + e .height () - $(window) .scrollTop () - $(window) .height ();
30464
+
30465
+ if (bottom > 0)
30466
+ e .offset ({ "top": e .offset () .top - bottom });
30467
+ });
30392
30468
  }
30393
30469
  .bind (this),
30394
30470
  hide: function (options)
@@ -30399,6 +30475,14 @@ function ($,
30399
30475
  },
30400
30476
  });
30401
30477
  },
30478
+ getUserMenu: function ()
30479
+ {
30480
+ return this .userMenu;
30481
+ },
30482
+ setUserMenu: function (userMenu)
30483
+ {
30484
+ this .userMenu = userMenu;
30485
+ },
30402
30486
  getActive: function ()
30403
30487
  {
30404
30488
  return this .active;
@@ -30678,9 +30762,22 @@ function ($,
30678
30762
  window .open (browser .getProviderUrl ());
30679
30763
  },
30680
30764
  },
30681
- }
30765
+ },
30682
30766
  };
30683
30767
 
30768
+ if ($.isFunction (this .userMenu))
30769
+ {
30770
+ const userMenu = this .userMenu ();
30771
+
30772
+ if ($.isPlainObject (userMenu))
30773
+ {
30774
+ Object .assign (menu .items, { "separator4": "--------" });
30775
+
30776
+ for (const key in userMenu)
30777
+ menu .items ["user-" + key] = userMenu [key];
30778
+ }
30779
+ }
30780
+
30684
30781
  if (leftSubMenus)
30685
30782
  menu .className += " x_ite-private-menu-submenus-left";
30686
30783
 
@@ -34135,22 +34232,15 @@ define ('x_ite/Parser/X3DParser',[],function ()
34135
34232
  for (const component of components)
34136
34233
  {
34137
34234
  const providerUrl = component .providerUrl;
34138
- if (providerUrl .match (componentsUrl))
34235
+
34236
+ if (providerUrl .match (componentsUrl))
34139
34237
  providerUrls .add (providerUrl);
34140
34238
  }
34141
34239
 
34142
- if (typeof globalRequire === "function")
34240
+ if (typeof globalRequire === "function" && typeof __filename === "string")
34143
34241
  {
34144
- if (typeof globalProcess === "object" && globalProcess .platform === "win32")
34145
- {
34146
- for (const url of providerUrls)
34147
- globalRequire (url);
34148
- }
34149
- else
34150
- {
34151
- for (const url of providerUrls)
34152
- globalRequire (new URL (url) .pathname);
34153
- }
34242
+ for (const url of providerUrls)
34243
+ globalRequire (globalRequire ("url") .fileURLToPath (url));
34154
34244
  }
34155
34245
 
34156
34246
  return Array .from (providerUrls);
@@ -35247,7 +35337,7 @@ function ($,
35247
35337
  this .setInternalScene (value);
35248
35338
 
35249
35339
  else
35250
- this .setError ();
35340
+ this .setError (new Error ("File could not be loaded."));
35251
35341
 
35252
35342
  this .getScene () .removeInitLoadCount (this);
35253
35343
  },
@@ -35759,7 +35849,7 @@ function (Fields,
35759
35849
 
35760
35850
  generator .IncIndent ();
35761
35851
 
35762
- this .body .toXMLStream .call (stream);
35852
+ this .body .toXMLStream (stream);
35763
35853
 
35764
35854
  generator .DecIndent ();
35765
35855
 
@@ -38799,7 +38889,8 @@ define ('standard/Utility/DataStorage',[],function ()
38799
38889
 
38800
38890
  const
38801
38891
  storages = new WeakMap (),
38802
- namespaces = new WeakMap ();
38892
+ namespaces = new WeakMap (),
38893
+ defaults = new WeakMap ();
38803
38894
 
38804
38895
  const handler =
38805
38896
  {
@@ -38813,7 +38904,7 @@ define ('standard/Utility/DataStorage',[],function ()
38813
38904
  var value = target .getStorage () [target .getNameSpace () + key];
38814
38905
 
38815
38906
  if (value === undefined || value === "undefined" || value === null)
38816
- return undefined;
38907
+ return target .getDefaultValue (key);
38817
38908
 
38818
38909
  return JSON .parse (value);
38819
38910
  },
@@ -38835,6 +38926,7 @@ define ('standard/Utility/DataStorage',[],function ()
38835
38926
 
38836
38927
  storages .set (this, storage);
38837
38928
  namespaces .set (this, namespace);
38929
+ defaults .set (this, { });
38838
38930
 
38839
38931
  return new Proxy (this, handler);
38840
38932
  }
@@ -38849,6 +38941,18 @@ define ('standard/Utility/DataStorage',[],function ()
38849
38941
  {
38850
38942
  return namespaces .get (this .target);
38851
38943
  },
38944
+ addNameSpace: function (namespace)
38945
+ {
38946
+ return new DataStorage (this .getStorage (), this .getNameSpace () + namespace);
38947
+ },
38948
+ addDefaultValues: function (defaults)
38949
+ {
38950
+ Object .assign (defaults .get (this .target), object);
38951
+ },
38952
+ getDefaultValue (key)
38953
+ {
38954
+ return defaults .get (this .target) [key];
38955
+ },
38852
38956
  clear: function ()
38853
38957
  {
38854
38958
  const
@@ -39919,13 +40023,6 @@ define ('x_ite/Browser/Networking/urls',[],function ()
39919
40023
  if (getScriptURL () .match (/\.min\.js$/))
39920
40024
  file += ".min";
39921
40025
 
39922
- if (typeof globalProcess === "object" && globalProcess .platform === "win32")
39923
- {
39924
- const path = globalRequire ("path");
39925
-
39926
- return path .join (path .dirname (getScriptURL ()), "assets\\components\\" + file + ".js");
39927
- }
39928
-
39929
40026
  return new URL ("assets/components/" + file + ".js", getScriptURL ()) .href;
39930
40027
  }
39931
40028
 
@@ -39952,12 +40049,6 @@ define ('x_ite/Browser/Networking/urls',[],function ()
39952
40049
  return new URLs ();
39953
40050
  });
39954
40051
 
39955
- /*! sprintf-js v1.1.2 | Copyright (c) 2007-present, Alexandru Mărășteanu <hello@alexei.ro> | BSD-3-Clause */
39956
- !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}}))}();
39957
- //# sourceMappingURL=sprintf.min.js.map
39958
- ;
39959
- define('sprintf', ['sprintf/dist/sprintf.min'], function (main) { return main; });
39960
-
39961
40052
  /* -*- Mode: JavaScript; coding: utf-8; tab-width: 3; indent-tabs-mode: tab; c-basic-offset: 3 -*-
39962
40053
  *******************************************************************************
39963
40054
  *
@@ -40010,12 +40101,10 @@ define('sprintf', ['sprintf/dist/sprintf.min'], function (main) { return main; }
40010
40101
  define ('x_ite/Browser/Networking/X3DNetworkingContext',[
40011
40102
  "x_ite/Fields",
40012
40103
  "x_ite/Browser/Networking/urls",
40013
- "sprintf",
40014
40104
  "locale/gettext",
40015
40105
  ],
40016
40106
  function (Fields,
40017
40107
  urls,
40018
- sprintf,
40019
40108
  _)
40020
40109
  {
40021
40110
  "use strict";
@@ -40136,7 +40225,7 @@ function (Fields,
40136
40225
 
40137
40226
  if (value)
40138
40227
  {
40139
- var string = sprintf .sprintf (value == 1 ? _ ("Loading %d file") : _ ("Loading %d files"), value);
40228
+ var string = (value == 1 ? _ ("Loading %1 file") : _ ("Loading %1 files")) .replace ("%1", value);
40140
40229
  }
40141
40230
  else
40142
40231
  {
@@ -118181,13 +118270,8 @@ function ($,
118181
118270
  {
118182
118271
  const url = urls .getProviderUrl (name);
118183
118272
 
118184
- if (typeof globalRequire === "function")
118185
- {
118186
- if (typeof globalProcess === "object" && globalProcess .platform === "win32")
118187
- globalRequire (url);
118188
- else
118189
- globalRequire (new URL (url) .pathname);
118190
- }
118273
+ if (typeof globalRequire === "function" && typeof __filename === "string")
118274
+ globalRequire (globalRequire ("url") .fileURLToPath (url));
118191
118275
 
118192
118276
  return url;
118193
118277
  }
@@ -118410,16 +118494,9 @@ define .hide = function ()
118410
118494
  const getScriptURL = (function ()
118411
118495
  {
118412
118496
  if (document .currentScript)
118413
- {
118414
118497
  var src = document .currentScript .src;
118415
- }
118416
- else if (typeof __filename === "string")
118417
- {
118418
- if (typeof globalProcess === "object" && globalProcess .platform === "win32")
118419
- var src = __filename;
118420
- else
118421
- var src = "file://" + __filename;
118422
- }
118498
+ else if (typeof globalRequire === "function" && typeof __filename === "string")
118499
+ var src = globalRequire ("url") .pathToFileURL (__filename) .href;
118423
118500
 
118424
118501
  return function ()
118425
118502
  {
@@ -118564,15 +118641,5 @@ function ()
118564
118641
  };
118565
118642
  });
118566
118643
 
118567
- for (const key in x_iteNoConfict)
118568
- {
118569
- if (x_iteNoConfict [key] === undefined)
118570
- delete window [key];
118571
- else
118572
- window [key] = x_iteNoConfict [key];
118573
- }
118574
-
118575
118644
  })
118576
- (typeof module === "object" ? module : undefined,
118577
- typeof require === "function" ? require : undefined,
118578
- typeof process === "object" ? process : undefined);
118645
+ (typeof module === "object" ? module : undefined, typeof require === "function" ? require : undefined);