x_ite 8.6.18 → 8.6.20

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 (87) hide show
  1. package/README.md +1 -1
  2. package/dist/assets/components/Annotation.js +13 -13
  3. package/dist/assets/components/Annotation.min.js +1 -1
  4. package/dist/assets/components/CADGeometry.js +13 -13
  5. package/dist/assets/components/CADGeometry.min.js +1 -1
  6. package/dist/assets/components/CubeMapTexturing.js +25 -25
  7. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  8. package/dist/assets/components/DIS.js +13 -13
  9. package/dist/assets/components/DIS.min.js +1 -1
  10. package/dist/assets/components/EventUtilities.js +9 -9
  11. package/dist/assets/components/EventUtilities.min.js +1 -1
  12. package/dist/assets/components/Geometry2D.js +19 -19
  13. package/dist/assets/components/Geometry2D.min.js +1 -1
  14. package/dist/assets/components/Geospatial.js +33 -33
  15. package/dist/assets/components/Geospatial.min.js +1 -1
  16. package/dist/assets/components/HAnim.js +18 -18
  17. package/dist/assets/components/HAnim.min.js +1 -1
  18. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  19. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  20. package/dist/assets/components/Layout.js +27 -27
  21. package/dist/assets/components/Layout.min.js +1 -1
  22. package/dist/assets/components/NURBS.js +24 -24
  23. package/dist/assets/components/NURBS.min.js +1 -1
  24. package/dist/assets/components/ParticleSystems.js +23 -25
  25. package/dist/assets/components/ParticleSystems.min.js +1 -1
  26. package/dist/assets/components/Picking.js +19 -21
  27. package/dist/assets/components/Picking.min.js +1 -1
  28. package/dist/assets/components/RigidBodyPhysics.js +18 -18
  29. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  30. package/dist/assets/components/Scripting.js +30 -32
  31. package/dist/assets/components/Scripting.min.js +1 -1
  32. package/dist/assets/components/Text.js +24 -24
  33. package/dist/assets/components/Text.min.js +1 -1
  34. package/dist/assets/components/TextureProjector.js +14 -14
  35. package/dist/assets/components/TextureProjector.min.js +1 -1
  36. package/dist/assets/components/Texturing3D.js +30 -30
  37. package/dist/assets/components/Texturing3D.min.js +1 -1
  38. package/dist/assets/components/VolumeRendering.js +19 -19
  39. package/dist/assets/components/VolumeRendering.min.js +1 -1
  40. package/dist/assets/components/X_ITE.js +9 -9
  41. package/dist/assets/components/X_ITE.min.js +1 -1
  42. package/dist/example.html +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.js +234 -235
  45. package/dist/x_ite.min.js +1 -1
  46. package/dist/x_ite.zip +0 -0
  47. package/docs/_config.yml +1 -1
  48. package/docs/_posts/getting-started.md +18 -18
  49. package/docs/_posts/setup-a-localhost-server.md +2 -2
  50. package/docs/_tabs/playground.html +24 -17
  51. package/package.json +4 -4
  52. package/src/example.html +1 -1
  53. package/src/standard/Math/Algorithm.js +1 -1
  54. package/src/standard/Math/Algorithms/MergeSort.js +7 -5
  55. package/src/standard/Math/Algorithms/PartialSort.js +3 -1
  56. package/src/standard/Math/Algorithms/QuickSort.js +1 -3
  57. package/src/standard/Math/Geometry/Box2.js +1 -1
  58. package/src/standard/Math/Geometry/Box3.js +1 -1
  59. package/src/standard/Math/Numbers/Quaternion.js +4 -3
  60. package/src/standard/Math/Numbers/Rotation4.js +4 -3
  61. package/src/x_ite/Base/X3DBaseNode.js +1 -1
  62. package/src/x_ite/Base/X3DEventObject.js +3 -2
  63. package/src/x_ite/Base/X3DField.js +2 -2
  64. package/src/x_ite/Browser/Core/Context.js +1 -1
  65. package/src/x_ite/Browser/Navigation/ExamineViewer.js +4 -1
  66. package/src/x_ite/Browser/Navigation/LookAtViewer.js +3 -0
  67. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +18 -11
  68. package/src/x_ite/Browser/VERSION.js +1 -1
  69. package/src/x_ite/Browser/X3DBrowser.js +48 -57
  70. package/src/x_ite/Browser/X3DBrowserContext.js +3 -3
  71. package/src/x_ite/Components/Scripting/Script.js +2 -4
  72. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +1 -1
  73. package/src/x_ite/Components/Sound/AudioClip.js +3 -3
  74. package/src/x_ite/Components/Sound/DynamicsCompressor.js +4 -4
  75. package/src/x_ite/Components/Texturing/MovieTexture.js +3 -3
  76. package/src/x_ite/Execution/Scene.js +1 -1
  77. package/src/x_ite/Execution/X3DExecutionContext.js +11 -11
  78. package/src/x_ite/Fields/SFNode.js +5 -3
  79. package/src/x_ite/Fields/SFRotation.js +2 -4
  80. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +3 -3
  81. package/src/x_ite/InputOutput/FileLoader.js +16 -22
  82. package/src/x_ite/InputOutput/Generator.js +1 -1
  83. package/src/x_ite/Parser/X3DParser.js +4 -4
  84. package/src/x_ite/Parser/XMLParser.js +13 -19
  85. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +5 -4
  86. package/src/x_ite/Prototype/X3DProtoDeclaration.js +4 -3
  87. package/docs/_tabs/imprint.md +0 -52
package/dist/x_ite.zip CHANGED
Binary file
package/docs/_config.yml CHANGED
@@ -20,7 +20,7 @@ timezone:
20
20
  # ↓ --------------------------
21
21
 
22
22
  title: X_ITE X3D Browser # the main title
23
- version: 8.6.18 # x_ite latest version
23
+ version: 8.6.20 # x_ite latest version
24
24
  size: 290 # size in kb
25
25
  x3d_latest_version: 4.0 # x3d latest version
26
26
 
@@ -542,24 +542,6 @@ There is a ZIP archive available to locally install X_ITE on your server. Compre
542
542
 
543
543
  [Download X_ITE ZIP archive](https://create3000.github.io/code/x_ite/latest/x_ite.zip)
544
544
 
545
- ### You can also get it on NPM
546
-
547
- ```sh
548
- $ npm install x_ite
549
- ```
550
-
551
- It can be used in [Electron](https://www.electronjs.org){:target="_blank"} apps in a preload script of the **renderer process** like this:
552
-
553
- ```js
554
- window .addEventListener ("DOMContentLoaded", () =>
555
- {
556
- const X3D = require ("x_ite")
557
- ...
558
- })
559
- ```
560
-
561
- Make sure that contextIsolation is set to **false** when creating a BrowserWindow instance.
562
-
563
545
  ### Using X_ITE with a CDN
564
546
 
565
547
  CDNs can offer a performance benefit by hosting X_ITE on servers spread across the globe. This also offers an advantage that if the visitor to your webpage has already downloaded a copy of X_ITE from the same CDN, it won't have to be re-downloaded. To use the X_ITE CDN, just reference the CSS and JavaScript file in the script element directly from the GitHub CDN or jsDelivr CDN domain.
@@ -596,6 +578,24 @@ If you are in production and everything is working well, then use a fixed versio
596
578
  <script src="https://cdn.jsdelivr.net/npm/x_ite@{{ site.version }}/dist/x_ite.min.js"></script>
597
579
  ```
598
580
 
581
+ ### You can also get it from NPM
582
+
583
+ ```console
584
+ $ npm install x_ite
585
+ ```
586
+
587
+ It can be used in [Electron](https://www.electronjs.org){:target="_blank"} apps in a preload script of the **renderer process** in a way like this:
588
+
589
+ ```js
590
+ window .addEventListener ("DOMContentLoaded", () =>
591
+ {
592
+ const X3D = require ("x_ite")
593
+ ...
594
+ })
595
+ ```
596
+
597
+ Make sure that contextIsolation is set to **false** when creating a BrowserWindow instance.
598
+
599
599
  ## Embedding X_ITE within a Web Page
600
600
 
601
601
  To display your X3D scene in a HTML5 page, first save your scene as X3D XML Encoded file, X3D JSON Encoded file, or as X3D Classic Encoded file, i.e. create a file with the extension .x3d, .x3dj, .x3dv, or .wrl.
@@ -29,14 +29,14 @@ If you have [Python](https://www.python.org){:target="_blank"} installed, then i
29
29
 
30
30
  Just open a Terminal and go to the directory you want to make available.
31
31
 
32
- ```sh
32
+ ```console
33
33
  # Let's make the Desktop directory available.
34
34
  $ cd Desktop
35
35
  ```
36
36
 
37
37
  Type in the following command to start the server.
38
38
 
39
- ```sh
39
+ ```console
40
40
  $ python3 -m http.server
41
41
  ```
42
42
 
@@ -99,9 +99,9 @@ $(function ()
99
99
  `;
100
100
 
101
101
  require .config ({ paths: { "vs": "https://cdn.jsdelivr.net/npm/monaco-editor@latest/min/vs" }});
102
- require (["vs/editor/editor.main"], () =>
102
+ require (["vs/editor/editor.main"], async () =>
103
103
  {
104
- const darkMode = (window .matchMedia && window .matchMedia ("(prefers-color-scheme: dark)") .matches || $("html") .attr ("data-mode") === "dark") && ($("html") .attr ("data-mode") !== "light");
104
+ const darkMode = (window .matchMedia ?.("(prefers-color-scheme: dark)") .matches || $("html") .attr ("data-mode") === "dark") && ($("html") .attr ("data-mode") !== "light");
105
105
 
106
106
  const editor = monaco .editor .create (document .getElementById ("editor"),
107
107
  {
@@ -115,25 +115,29 @@ $(function ()
115
115
  minimap: { enabled: false },
116
116
  });
117
117
 
118
+ const url = new URL (document .location .href) .searchParams .get ("url");
119
+
120
+ if (url)
121
+ {
122
+ const Browser = X3D .getBrowser ();
123
+
124
+ Browser .baseURL = url;
125
+
126
+ await Browser .loadURL (new X3D .MFString (url)) .catch (Function .prototype);
127
+
128
+ const encoding = { XML: "XML", JSON: "JSON", VRML: "VRML" } [Browser .currentScene .encoding] ?? "XML";
129
+
130
+ monaco .editor .setModelLanguage (editor .getModel (), encoding .toLowerCase ());
131
+
132
+ editor .setValue (Browser .currentScene [`to${encoding}String`] ());
133
+ }
134
+
118
135
  editor .getModel () .onDidChangeContent (async (event) =>
119
136
  {
120
137
  const
121
138
  Browser = X3D .getBrowser (),
122
139
  text = editor .getValue (),
123
- url = "data:," + text;
124
-
125
- if (text .match (/<\w+/))
126
- {
127
- monaco .editor .setModelLanguage (editor .getModel (), "xml");
128
- }
129
- else if (text .match (/"\w+"\s*:\s*\{/))
130
- {
131
- monaco .editor .setModelLanguage (editor .getModel (), "json");
132
- }
133
- else if (text .match (/\w+\s*\{/))
134
- {
135
- monaco .editor .setModelLanguage (editor .getModel (), "vrml");
136
- }
140
+ url = "data:," + encodeURIComponent (text);
137
141
 
138
142
  if (Browser .getActiveViewpoint ())
139
143
  {
@@ -153,9 +157,12 @@ $(function ()
153
157
  {
154
158
  await Browser .loadURL (new X3D .MFString (url)) .catch (Function .prototype);
155
159
  }
160
+
161
+ monaco .editor .setModelLanguage (editor .getModel (), Browser .currentScene .encoding .toLowerCase ());
156
162
  });
157
163
 
158
- editor .setValue (box .replace (/ {3}/g, " "));
164
+ if (!url)
165
+ editor .setValue (box .replace (/ {3}/g, " "));
159
166
  });
160
167
  })
161
168
  </script>
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "x_ite",
3
- "version": "8.6.18",
3
+ "version": "8.6.20",
4
4
  "description": "X_ITE X3D Browser, view and manipulate X3D and VRML scenes in HTML.",
5
5
  "homepage": "https://create3000.github.io/x_ite/",
6
6
  "author": "Holger Seelig <holger.seelig@gmail.com>",
@@ -71,13 +71,13 @@
71
71
  "opentype.js": "^1.3.4",
72
72
  "pako": "^2.1.0",
73
73
  "string-replace-webpack-plugin": "^0.1.3",
74
- "webpack": "^5.79.0",
75
- "webpack-cli": "^5.0.1",
74
+ "webpack": "^5.80.0",
75
+ "webpack-cli": "^5.0.2",
76
76
  "webpack-shell-plugin-next": "^2.3.1"
77
77
  },
78
78
  "scripts": {
79
79
  "test": "cd ../x_ite-tests && npm test",
80
- "lint": "jshint **",
80
+ "lint": "eslint src",
81
81
  "build": "make",
82
82
  "-prebuild:js": "npm run lint"
83
83
  }
package/src/example.html CHANGED
@@ -16,6 +16,6 @@ x3d-canvas {
16
16
  <x3d-canvas src="https://create3000.github.io/media/x_ite/info/info.x3d">
17
17
  <p>Your browser may not support all features required by X_ITE!</p>
18
18
  </x3d-canvas>
19
- <p>If local files are not loaded <a href="https://create3000.github.io/x_ite/#using-firefox-chrome-and-opera-with-local-files">consider setup a localhost server</a>.</p>
19
+ <a>If local files are not loaded <a href="https://create3000.github.io/x_ite/setup-a-localhost-server">consider setup a localhost server</a> or use <a href="https://create3000.github.io/x_ite/dom-integration">DOM Integration methods</a>.</p>
20
20
  </body>
21
21
  </html>
@@ -231,4 +231,4 @@ export default class Algorithm
231
231
 
232
232
  return first;
233
233
  }
234
- };
234
+ }
@@ -76,26 +76,28 @@ MergeSort .prototype =
76
76
  },
77
77
  merge: function (lo, m, hi)
78
78
  {
79
+ const { array, auxiliary, compare } = this;
80
+
79
81
  let i, j, k;
80
82
 
81
83
  i = 0, j = lo;
82
84
  // Copy first half of array a to auxiliary array b.
83
85
  while (j <= m)
84
- this .auxiliary [i++] = this .array [j++];
86
+ auxiliary [i++] = array [j++];
85
87
 
86
88
  i = 0; k = lo;
87
89
  // Copy back next-greatest element at each time.
88
90
  while (k < j && j <= hi)
89
91
  {
90
- if (this .compare (this .array [j], this .auxiliary [i]))
91
- this .array [k++] = this .array [j++];
92
+ if (compare (array [j], auxiliary [i]))
93
+ array [k++] = array [j++];
92
94
  else
93
- this .array [k++] = this .auxiliary [i++];
95
+ array [k++] = auxiliary [i++];
94
96
  }
95
97
 
96
98
  // Copy back remaining elements of first half (if any).
97
99
  while (k < j)
98
- this .array [k++] = this .auxiliary [i++];
100
+ array [k++] = auxiliary [i++];
99
101
  }
100
102
  };
101
103
 
@@ -68,6 +68,8 @@ PartialSort .prototype =
68
68
  },
69
69
  partialsort: function (lo, hi)
70
70
  {
71
+ const { array, compare } = this;
72
+
71
73
  let gap = this .last, i, last;
72
74
 
73
75
  if (gap > 1)
@@ -77,7 +79,7 @@ PartialSort .prototype =
77
79
  {
78
80
  const j = i + gap;
79
81
 
80
- if (this .compare (this .array [j], this .array [i]))
82
+ if (compare (array [j], array [i]))
81
83
  {
82
84
  const t = array [i];
83
85
  array [i] = array [j];
@@ -70,9 +70,7 @@ QuickSort .prototype =
70
70
  i = lo,
71
71
  j = hi;
72
72
 
73
- const
74
- array = this .array,
75
- compare = this .compare;
73
+ const { array, compare } = this;
76
74
 
77
75
  // Vergleichs­element x
78
76
  const x = array [(lo + hi) >>> 1];
@@ -48,7 +48,7 @@
48
48
  import Matrix3 from "../Numbers/Matrix3.js";
49
49
  import Vector2 from "../Numbers/Vector2.js";
50
50
 
51
- function Box2 (size, center)
51
+ function Box2 (/* size, center */)
52
52
  {
53
53
  this .matrix = new Matrix3 ();
54
54
 
@@ -50,7 +50,7 @@ import Matrix4 from "../Numbers/Matrix4.js";
50
50
  import Vector3 from "../Numbers/Vector3.js";
51
51
  import SAT from "../Algorithms/SAT.js";
52
52
 
53
- function Box3 (size, center)
53
+ function Box3 (/* size, center */)
54
54
  {
55
55
  this .matrix = new Matrix4 ();
56
56
 
@@ -46,6 +46,7 @@
46
46
  ******************************************************************************/
47
47
 
48
48
  import Vector3 from "./Vector3.js";
49
+ import Matrix3 from "./Matrix3.js";
49
50
  import Algorithm from "../Algorithm.js";
50
51
 
51
52
  function Quaternion (x, y, z, w)
@@ -137,7 +138,7 @@ Quaternion .prototype =
137
138
 
138
139
  return this;
139
140
  },
140
- getMatrix: function (matrix)
141
+ getMatrix: function (matrix = new Matrix3 ())
141
142
  {
142
143
  const { x, y, z, w } = this;
143
144
 
@@ -168,11 +169,11 @@ Quaternion .prototype =
168
169
  },
169
170
  isReal: function ()
170
171
  {
171
- return ! (this .x || this .y || this .z);
172
+ return !(this .x || this .y || this .z);
172
173
  },
173
174
  isImag: function ()
174
175
  {
175
- return ! this .w;
176
+ return !this .w;
176
177
  },
177
178
  equals: function (quat)
178
179
  {
@@ -48,6 +48,7 @@
48
48
  import Quaternion from "./Quaternion.js";
49
49
  import Vector3 from "./Vector3.js";
50
50
  import Vector4 from "./Vector4.js";
51
+ import Matrix3 from "./Matrix3.js";
51
52
  import Algorithm from "../Algorithm.js";
52
53
 
53
54
  const
@@ -280,7 +281,7 @@ Rotation4 .prototype =
280
281
  {
281
282
  this .set (vector .x, vector .y, vector .z, this [_angle]);
282
283
  },
283
- getAxis: function (axis)
284
+ getAxis: function (axis = new Vector3 (0, 0, 0))
284
285
  {
285
286
  return axis .set (this [_x], this [_y], this [_z]);
286
287
  },
@@ -290,7 +291,7 @@ Rotation4 .prototype =
290
291
  this .update ();
291
292
  return this;
292
293
  },
293
- getQuaternion: function (quaternion)
294
+ getQuaternion: function (quaternion = new Quaternion (0, 0, 0, 1))
294
295
  {
295
296
  return quaternion .assign (this [_quaternion]);
296
297
  },
@@ -300,7 +301,7 @@ Rotation4 .prototype =
300
301
  this .update ();
301
302
  return this;
302
303
  },
303
- getMatrix: function (matrix)
304
+ getMatrix: function (matrix = new Matrix3 ())
304
305
  {
305
306
  return this [_quaternion] .getMatrix (matrix);
306
307
  },
@@ -64,7 +64,7 @@ const
64
64
  _childObjects = Symbol (),
65
65
  _initialized = Symbol (),
66
66
  _live = Symbol (),
67
- _set_live__ = Symbol ("X3DBaseNode.set_live__"),
67
+ _set_live__ = Symbol (),
68
68
  _cloneCount = Symbol ();
69
69
 
70
70
  function X3DBaseNode (executionContext)
@@ -48,7 +48,7 @@
48
48
  import X3DChildObject from "./X3DChildObject.js";
49
49
  import Events from "./Events.js";
50
50
 
51
- const _browser = Symbol .for ("X3DEventObject.browser");
51
+ const _browser = Symbol .for ("X_ITE.X3DEventObject.browser");
52
52
 
53
53
  function X3DEventObject (browser)
54
54
  {
@@ -66,6 +66,7 @@ X3DEventObject .prototype = Object .assign (Object .create (X3DChildObject .prot
66
66
  },
67
67
  getExtendedEventHandling: function ()
68
68
  {
69
+ // Whether initializeOnly field are treated like inputOnly and inputOutput fields.
69
70
  return true;
70
71
  },
71
72
  addEvent: function (field)
@@ -91,7 +92,7 @@ X3DEventObject .prototype = Object .assign (Object .create (X3DChildObject .prot
91
92
  if (this .isTainted ())
92
93
  return;
93
94
 
94
- if (field .isInput () || (this .getExtendedEventHandling () && ! field .isOutput ()))
95
+ if (field .isInput () || (this .getExtendedEventHandling () && field .isInitializable ()))
95
96
  {
96
97
  this .addNodeEvent ();
97
98
  }
@@ -61,7 +61,7 @@ const
61
61
  _inputRoutes = Symbol (),
62
62
  _outputRoutes = Symbol (),
63
63
  _routeCallbacks = Symbol (),
64
- _uniformLocation = Symbol .for ("X3DField.uniformLocation");
64
+ _uniformLocation = Symbol .for ("X_ITE.X3DField.uniformLocation");
65
65
 
66
66
  function X3DField (value)
67
67
  {
@@ -76,7 +76,6 @@ X3DField .prototype = Object .assign (Object .create (X3DChildObject .prototype)
76
76
  [_value]: null,
77
77
  [_accessType]: X3DConstants .initializeOnly,
78
78
  [_unit]: null,
79
- [_uniformLocation]: null,
80
79
  [_references]: new Set (),
81
80
  [_referencesCallbacks]: new Map (),
82
81
  [_fieldInterests]: new Set (),
@@ -84,6 +83,7 @@ X3DField .prototype = Object .assign (Object .create (X3DChildObject .prototype)
84
83
  [_inputRoutes]: new Set (),
85
84
  [_outputRoutes]: new Set (),
86
85
  [_routeCallbacks]: new Map (),
86
+ [_uniformLocation]: null,
87
87
  create: function ()
88
88
  {
89
89
  return new (this .constructor) ();
@@ -227,7 +227,7 @@ const Context =
227
227
  }
228
228
  };
229
229
 
230
- setTimeout (check, 0);
230
+ setTimeout (check);
231
231
  });
232
232
  },
233
233
  getBufferSubDataAsync: async function (target, buffer, srcByteOffset, dstBuffer, /* optional */ dstOffset, /* optional */ length)
@@ -449,7 +449,7 @@ ExamineViewer .prototype = Object .assign (Object .create (X3DViewer .prototype)
449
449
  {
450
450
  this .tapedTwice = true;
451
451
 
452
- setTimeout (function () { this .tapedTwice = false; } .bind (this), 300);
452
+ setTimeout (() => this .tapedTwice = false, 300);
453
453
  }
454
454
 
455
455
  break;
@@ -533,6 +533,9 @@ ExamineViewer .prototype = Object .assign (Object .create (X3DViewer .prototype)
533
533
  event .deltaY = delta;
534
534
  event .zoomFactor = Math .abs (delta) / $(window) .width ();
535
535
 
536
+ event .pageX = (touches [0] .pageX + touches [1] .pageX) / 2;
537
+ event .pageY = (touches [0] .pageY + touches [1] .pageY) / 2;
538
+
536
539
  this .mousewheel (event);
537
540
 
538
541
  break;
@@ -370,6 +370,9 @@ LookAtViewer .prototype = Object .assign (Object .create (X3DViewer .prototype),
370
370
 
371
371
  event .deltaY = delta;
372
372
  event .zoomFactor = Math .abs (delta) / $(window) .width ();
373
+
374
+ event .pageX = (touches [0] .pageX + touches [1] .pageX) / 2;
375
+ event .pageY = (touches [0] .pageY + touches [1] .pageY) / 2;
373
376
 
374
377
  this .mousewheel (event);
375
378
  }
@@ -54,7 +54,7 @@ const
54
54
  _loadingTotal = Symbol (),
55
55
  _loadingObjects = Symbol (),
56
56
  _loading = Symbol (),
57
- _location = Symbol (),
57
+ _baseURL = Symbol (),
58
58
  _defaultScene = Symbol (),
59
59
  _set_loadCount = Symbol ();
60
60
 
@@ -77,7 +77,7 @@ function X3DNetworkingContext ()
77
77
  this [_loadingTotal] = 0;
78
78
  this [_loadingObjects] = new Set ();
79
79
  this [_loading] = false;
80
- this [_location] = getBaseURI (this .getElement () [0]);
80
+ this [_baseURL] = getBaseURI (this .getElement () [0]);
81
81
  }
82
82
 
83
83
  X3DNetworkingContext .prototype =
@@ -90,9 +90,13 @@ X3DNetworkingContext .prototype =
90
90
  {
91
91
  return URLs .getProviderUrl ();
92
92
  },
93
- getLocation: function ()
93
+ getBaseURL: function ()
94
94
  {
95
- return this [_location];
95
+ return this [_baseURL];
96
+ },
97
+ setBaseURL: function (value)
98
+ {
99
+ this [_baseURL] = String (value);
96
100
  },
97
101
  getDefaultScene: function ()
98
102
  {
@@ -102,7 +106,6 @@ X3DNetworkingContext .prototype =
102
106
 
103
107
  this [_defaultScene] .setPrivate (true);
104
108
  this [_defaultScene] .setLive (true);
105
- this [_defaultScene] .setup ();
106
109
 
107
110
  this .getDefaultScene = function () { return this [_defaultScene]; };
108
111
 
@@ -110,6 +113,10 @@ X3DNetworkingContext .prototype =
110
113
 
111
114
  return this [_defaultScene];
112
115
  },
116
+ getBrowserLoading: function ()
117
+ {
118
+ return this [_loading];
119
+ },
113
120
  setBrowserLoading: function (value)
114
121
  {
115
122
  this [_loading] = value;
@@ -137,13 +144,9 @@ X3DNetworkingContext .prototype =
137
144
  }
138
145
  }
139
146
  },
140
- getLoading: function ()
141
- {
142
- return this [_loading];
143
- },
144
- getDisplayLoadCount: function ()
147
+ getLoadingObjects: function ()
145
148
  {
146
- return [... this [_loadingObjects]] .reduce ((v, o) => v + !(o .isPrivate ?.() ?? true), 0);
149
+ return this [_loadingObjects];
147
150
  },
148
151
  addLoadingObject: function (object)
149
152
  {
@@ -167,6 +170,10 @@ X3DNetworkingContext .prototype =
167
170
  this .setLoadCount (this [_loadingObjects] .size);
168
171
  this .setCursor (this .getCursor ());
169
172
  },
173
+ getDisplayLoadCount: function ()
174
+ {
175
+ return [... this [_loadingObjects]] .reduce ((v, o) => v + !(o .isPrivate ?.() ?? true), 0);
176
+ },
170
177
  setLoadCount: function (value)
171
178
  {
172
179
  this ._loadCount = value;
@@ -45,4 +45,4 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- export default "8.6.18";
48
+ export default "8.6.20";