x_ite 9.5.2 → 9.6.1

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 (55) hide show
  1. package/README.md +83 -9
  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 +14 -14
  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 +18 -18
  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 +23 -23
  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 +23 -23
  23. package/dist/assets/components/NURBS.min.js +1 -1
  24. package/dist/assets/components/ParticleSystems.js +693 -364
  25. package/dist/assets/components/ParticleSystems.min.js +1 -1
  26. package/dist/assets/components/Picking.js +18 -18
  27. package/dist/assets/components/Picking.min.js +1 -1
  28. package/dist/assets/components/RigidBodyPhysics.js +17 -17
  29. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  30. package/dist/assets/components/Scripting.js +43 -43
  31. package/dist/assets/components/Scripting.min.js +1 -1
  32. package/dist/assets/components/Text.js +49 -50
  33. package/dist/assets/components/Text.min.js +1 -1
  34. package/dist/assets/components/TextureProjection.js +15 -15
  35. package/dist/assets/components/TextureProjection.min.js +1 -1
  36. package/dist/assets/components/Texturing3D.js +80 -37
  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 +14 -14
  41. package/dist/assets/components/X_ITE.min.js +1 -1
  42. package/dist/assets/fonts/DroidSerif Apache License.txt +201 -0
  43. package/dist/assets/fonts/Ubuntu LICENCE.txt +96 -0
  44. package/dist/assets/fonts/Ubuntu-B.ttf +0 -0
  45. package/dist/assets/fonts/Ubuntu-BI.ttf +0 -0
  46. package/dist/assets/fonts/Ubuntu-R.ttf +0 -0
  47. package/dist/assets/fonts/Ubuntu-RI.ttf +0 -0
  48. package/dist/x_ite.css +1 -1
  49. package/dist/x_ite.d.ts +7 -0
  50. package/dist/x_ite.js +745 -718
  51. package/dist/x_ite.min.js +1 -1
  52. package/dist/x_ite.min.mjs +1 -1
  53. package/dist/x_ite.mjs +745 -718
  54. package/dist/x_ite.zip +0 -0
  55. package/package.json +121 -115
package/dist/x_ite.mjs CHANGED
@@ -1,9 +1,9 @@
1
- /* X_ITE v9.5.2 */var __webpack_modules__ = ({
1
+ /* X_ITE v9.6.1 */var __webpack_modules__ = ({
2
2
 
3
- /***/ 347:
3
+ /***/ 226:
4
4
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
5
5
 
6
- /* provided dependency */ var jQuery = __webpack_require__(575);
6
+ /* provided dependency */ var jQuery = __webpack_require__(250);
7
7
  /**
8
8
  * @preserve jquery.fullscreen 1.1.5
9
9
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -199,7 +199,7 @@ installFullScreenHandlers();
199
199
 
200
200
  /***/ }),
201
201
 
202
- /***/ 431:
202
+ /***/ 496:
203
203
  /***/ ((module, exports, __webpack_require__) => {
204
204
 
205
205
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -213,7 +213,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
213
213
  (function (factory) {
214
214
  if ( true ) {
215
215
  // AMD. Register as an anonymous module.
216
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(575)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
216
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(250)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
217
217
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
218
218
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
219
219
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -424,7 +424,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
424
424
 
425
425
  /***/ }),
426
426
 
427
- /***/ 575:
427
+ /***/ 250:
428
428
  /***/ (function(module, exports) {
429
429
 
430
430
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11148,7 +11148,7 @@ return jQuery;
11148
11148
 
11149
11149
  /***/ }),
11150
11150
 
11151
- /***/ 932:
11151
+ /***/ 979:
11152
11152
  /***/ ((module) => {
11153
11153
 
11154
11154
  /**
@@ -15927,7 +15927,7 @@ if (true) {
15927
15927
 
15928
15928
  /***/ }),
15929
15929
 
15930
- /***/ 319:
15930
+ /***/ 82:
15931
15931
  /***/ (function(__unused_webpack_module, exports) {
15932
15932
 
15933
15933
 
@@ -19172,7 +19172,7 @@ if (true) {
19172
19172
 
19173
19173
  /***/ }),
19174
19174
 
19175
- /***/ 280:
19175
+ /***/ 389:
19176
19176
  /***/ (function(module, exports) {
19177
19177
 
19178
19178
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20299,7 +20299,7 @@ Object .defineProperty (Namespace, "add",
20299
20299
  }
20300
20300
  else
20301
20301
  {
20302
- const X3D = window [Symbol .for ("X_ITE.X3D-9.5.2")];
20302
+ const X3D = window [Symbol .for ("X_ITE.X3D-9.6.1")];
20303
20303
 
20304
20304
  if (X3D)
20305
20305
  X3D [name] = module;
@@ -21435,6 +21435,151 @@ const DEVELOPMENT_default_ = false;
21435
21435
 
21436
21436
  x_ite_Namespace .add ("DEVELOPMENT", "x_ite/DEVELOPMENT", DEVELOPMENT_default_);
21437
21437
  /* harmony default export */ const DEVELOPMENT = (DEVELOPMENT_default_);
21438
+ ;// CONCATENATED MODULE: ./src/x_ite/Features.js
21439
+ /*******************************************************************************
21440
+ *
21441
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
21442
+ *
21443
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
21444
+ *
21445
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
21446
+ *
21447
+ * The copyright notice above does not evidence any actual of intended
21448
+ * publication of such source code, and is an unpublished work by create3000.
21449
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
21450
+ * create3000.
21451
+ *
21452
+ * No permission is granted to copy, distribute, or create derivative works from
21453
+ * the contents of this software, in whole or in part, without the prior written
21454
+ * permission of create3000.
21455
+ *
21456
+ * NON-MILITARY USE ONLY
21457
+ *
21458
+ * All create3000 software are effectively free software with a non-military use
21459
+ * restriction. It is free. Well commented source is provided. You may reuse the
21460
+ * source in any way you please with the exception anything that uses it must be
21461
+ * marked to indicate is contains 'non-military use only' components.
21462
+ *
21463
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
21464
+ *
21465
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
21466
+ *
21467
+ * This file is part of the X_ITE Project.
21468
+ *
21469
+ * X_ITE is free software: you can redistribute it and/or modify it under the
21470
+ * terms of the GNU General Public License version 3 only, as published by the
21471
+ * Free Software Foundation.
21472
+ *
21473
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
21474
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
21475
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
21476
+ * details (a copy is included in the LICENSE file that accompanied this code).
21477
+ *
21478
+ * You should have received a copy of the GNU General Public License version 3
21479
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
21480
+ * copy of the GPLv3 License.
21481
+ *
21482
+ * For Silvio, Joy and Adi.
21483
+ *
21484
+ ******************************************************************************/
21485
+
21486
+
21487
+
21488
+ const MODULE = true;
21489
+
21490
+ const Features =
21491
+ {
21492
+ get ENVIRONMENT ()
21493
+ {
21494
+ if (DEVELOPMENT)
21495
+ return "BROWSER";
21496
+
21497
+ if (MODULE)
21498
+ return "MODULE";
21499
+
21500
+ if ((typeof process === "object") && (process .release .name .search (/node|io.js/) !== -1))
21501
+ return "NODE";
21502
+
21503
+ return "BROWSER";
21504
+ },
21505
+ WEAK_REF: typeof WeakRef !== "undefined",
21506
+ FINALIZATION_REGISTRY: typeof FinalizationRegistry !== "undefined",
21507
+ };
21508
+
21509
+ (() =>
21510
+ {
21511
+ // Added at February 2022
21512
+ // https://github.com/tc39/proposal-relative-indexing-method#polyfill
21513
+
21514
+ function at (n)
21515
+ {
21516
+ // ToInteger() abstract op
21517
+ n = Math.trunc(n) || 0;
21518
+ // Allow negative indexing from the end
21519
+ if (n < 0) n += this.length;
21520
+ // OOB access is guaranteed to return undefined
21521
+ if (n < 0 || n >= this.length) return undefined;
21522
+ // Otherwise, this is just normal property access
21523
+ return this[n];
21524
+ }
21525
+
21526
+ const TypedArray = Reflect .getPrototypeOf (Int8Array);
21527
+ for (const C of [Array, String, TypedArray])
21528
+ {
21529
+ if (C .prototype .at === undefined)
21530
+ {
21531
+ Object .defineProperty (C .prototype, "at",
21532
+ {
21533
+ value: at,
21534
+ writable: true,
21535
+ enumerable: false,
21536
+ configurable: true,
21537
+ });
21538
+ }
21539
+ }
21540
+ })();
21541
+
21542
+ (() =>
21543
+ {
21544
+ if (!Features .WEAK_REF)
21545
+ {
21546
+ if (DEVELOPMENT)
21547
+ console .info ("Added shim for WeakRef.");
21548
+
21549
+ window .WeakRef = class WeakRef
21550
+ {
21551
+ #object;
21552
+
21553
+ constructor (object)
21554
+ {
21555
+ this .#object = object;
21556
+ }
21557
+
21558
+ deref ()
21559
+ {
21560
+ return this .#object;
21561
+ }
21562
+ };
21563
+ }
21564
+
21565
+ if (!Features .FINALIZATION_REGISTRY)
21566
+ {
21567
+ if (DEVELOPMENT)
21568
+ console .info ("Added shim for FinalizationRegistry.");
21569
+
21570
+ window .FinalizationRegistry = class FinalizationRegistry
21571
+ {
21572
+ register () { }
21573
+ unregister () { }
21574
+ };
21575
+ }
21576
+ })();
21577
+
21578
+ const Features_default_ = Features;
21579
+ ;
21580
+
21581
+ x_ite_Namespace .add ("Features", "x_ite/Features", Features_default_);
21582
+ /* harmony default export */ const x_ite_Features = (Features_default_);
21438
21583
  ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DObject.js
21439
21584
  /*******************************************************************************
21440
21585
  *
@@ -21489,6 +21634,7 @@ x_ite_Namespace .add ("DEVELOPMENT", "x_ite/DEVELOPMENT", DEVELOPMENT_default_);
21489
21634
  const
21490
21635
  _name = Symbol (),
21491
21636
  _interests = Symbol (),
21637
+ _registry = Symbol (),
21492
21638
  _userData = Symbol ();
21493
21639
 
21494
21640
  function X3DObject () { }
@@ -21497,6 +21643,7 @@ Object .assign (X3DObject .prototype,
21497
21643
  {
21498
21644
  [_name]: "",
21499
21645
  [_interests]: new Map (),
21646
+ [_registry]: new FinalizationRegistry (Function .prototype),
21500
21647
  [_userData]: new Map (),
21501
21648
  getId ()
21502
21649
  {
@@ -21528,15 +21675,24 @@ Object .assign (X3DObject .prototype,
21528
21675
  interestId = X3DObject .getInterestId (callbackName, object),
21529
21676
  callback = object [callbackName];
21530
21677
 
21678
+ if (this [_registry] === X3DObject .prototype [_registry])
21679
+ this [_registry] = new FinalizationRegistry (interestId => this [_interests] .delete (interestId));
21680
+
21681
+ const weakRef = new WeakRef (object);
21682
+
21683
+ // Copy interests in case of this function is called during a `processInterests` call.
21531
21684
  this [_interests] = new Map (this [_interests]);
21532
21685
 
21533
- this [_interests] .set (interestId, callback .bind (object, ... args, this));
21686
+ this [_interests] .set (interestId, { callback, weakRef, args });
21687
+ this [_registry] .register (object, interestId, object);
21534
21688
  },
21535
21689
  removeInterest (callbackName, object)
21536
21690
  {
21691
+ // Copy interests in case of this function is called during a `processInterests` call.
21537
21692
  this [_interests] = new Map (this [_interests]);
21538
21693
 
21539
21694
  this [_interests] .delete (X3DObject .getInterestId (callbackName, object));
21695
+ this [_registry] .unregister (object);
21540
21696
  },
21541
21697
  getInterests ()
21542
21698
  {
@@ -21544,8 +21700,13 @@ Object .assign (X3DObject .prototype,
21544
21700
  },
21545
21701
  processInterests ()
21546
21702
  {
21547
- for (const interest of this [_interests] .values ())
21548
- interest ();
21703
+ for (const { callback, weakRef, args } of this [_interests] .values ())
21704
+ {
21705
+ const object = weakRef .deref ();
21706
+
21707
+ if (object)
21708
+ callback .call (object, ... args, this);
21709
+ }
21549
21710
  },
21550
21711
  getUserData (key)
21551
21712
  {
@@ -21644,7 +21805,7 @@ Object .defineProperties (X3DObject .prototype,
21644
21805
 
21645
21806
  Object .assign (X3DObject,
21646
21807
  {
21647
- getId: DEVELOPMENT ? (() =>
21808
+ getId: x_ite_Features .FINALIZATION_REGISTRY ? (() =>
21648
21809
  {
21649
21810
  const
21650
21811
  map = new WeakMap (),
@@ -21700,7 +21861,7 @@ const X3DObject_default_ = X3DObject;
21700
21861
 
21701
21862
  x_ite_Namespace .add ("X3DObject", "x_ite/Base/X3DObject", X3DObject_default_);
21702
21863
  /* harmony default export */ const Base_X3DObject = (X3DObject_default_);
21703
- ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DChildObject.js
21864
+ ;// CONCATENATED MODULE: ./src/x_ite/Base/IterableWeakSet.js
21704
21865
  /*******************************************************************************
21705
21866
  *
21706
21867
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -21750,243 +21911,259 @@ x_ite_Namespace .add ("X3DObject", "x_ite/Base/X3DObject", X3DObject_default_);
21750
21911
 
21751
21912
 
21752
21913
 
21753
-
21754
- const
21755
- _modificationTime = Symbol (),
21756
- _tainted = Symbol (),
21757
- _parents = Symbol (),
21758
- _private = Symbol (),
21759
- _registry = Symbol ();
21760
-
21761
- function X3DChildObject ()
21914
+ const IterableWeakSet_default_ = x_ite_Features .WEAK_REF && x_ite_Features .FINALIZATION_REGISTRY ?
21915
+ /**
21916
+ * IterableWeakSet is a writable set-like class.
21917
+ */
21918
+ class IterableWeakSet
21762
21919
  {
21763
- Base_X3DObject .call (this);
21764
- }
21920
+ #callback = undefined;
21921
+ #map = new Map ();
21922
+ #registry = new FinalizationRegistry (id =>
21923
+ {
21924
+ this .#map .delete (id);
21925
+ this .#callback ?.();
21926
+ });
21765
21927
 
21766
- if (DEVELOPMENT)
21767
- {
21768
- Object .assign (Object .setPrototypeOf (X3DChildObject .prototype, Base_X3DObject .prototype),
21928
+ constructor (callback)
21769
21929
  {
21770
- [_modificationTime]: 0,
21771
- [_tainted]: false,
21772
- [_parents]: new Map (),
21773
- [_private]: false,
21774
- [_registry]: new FinalizationRegistry (Function .prototype),
21775
- isInitializable ()
21776
- {
21777
- return true;
21778
- },
21779
- isInput ()
21780
- {
21781
- return false;
21782
- },
21783
- isOutput ()
21784
- {
21785
- return false;
21786
- },
21787
- setModificationTime (value)
21788
- {
21789
- this [_modificationTime] = value;
21790
- },
21791
- getModificationTime ()
21792
- {
21793
- return this [_modificationTime];
21794
- },
21795
- setTainted (value)
21796
- {
21797
- this [_tainted] = value;
21798
- },
21799
- isTainted ()
21800
- {
21801
- return this [_tainted];
21802
- },
21803
- addEvent ()
21804
- {
21805
- for (const parent of this [_parents] .values ())
21806
- parent .deref () ?.addEvent (this);
21807
- },
21808
- addEventObject (field, event)
21809
- {
21810
- for (const parent of this [_parents] .values ())
21811
- parent .deref () ?.addEventObject (this, event);
21812
- },
21813
- processEvent ()
21814
- {
21815
- this .setTainted (false);
21816
- this .processInterests ();
21817
- },
21818
- isPrivate ()
21819
- {
21820
- return this [_private];
21821
- },
21822
- setPrivate (value)
21823
- {
21824
- this [_private] = value;
21825
- },
21826
- collectCloneCount ()
21827
- {
21828
- let cloneCount = 0;
21930
+ this .#callback = callback;
21931
+ }
21829
21932
 
21830
- for (const weakRef of this [_parents] .values ())
21831
- {
21832
- const parent = weakRef .deref ();
21933
+ *[Symbol .iterator] ()
21934
+ {
21935
+ yield* this .values ();
21936
+ }
21833
21937
 
21834
- if (!parent)
21835
- continue;
21938
+ get size ()
21939
+ {
21940
+ return this .#map .size;
21941
+ }
21836
21942
 
21837
- if (parent [_private])
21838
- continue;
21943
+ add (object)
21944
+ {
21945
+ this .#map .set (object .getId (), new WeakRef (object));
21946
+ this .#registry .register (object, object .getId (), object);
21947
+ this .#callback ?.();
21948
+ }
21839
21949
 
21840
- cloneCount += parent .collectCloneCount ();
21841
- }
21950
+ clear ()
21951
+ {
21952
+ for (const object of this .values ())
21953
+ this .#registry .unregister (object);
21842
21954
 
21843
- return cloneCount;
21844
- },
21845
- addParent (parent)
21846
- {
21847
- if (this [_parents] === X3DChildObject .prototype [_parents])
21848
- {
21849
- this [_parents] = new Map ();
21850
- this [_registry] = new FinalizationRegistry (id =>
21851
- {
21852
- this [_parents] .delete (id);
21853
- this .parentsChanged ();
21854
- });
21855
- }
21955
+ this .#map .clear ();
21956
+ this .#callback ?.();
21957
+ }
21856
21958
 
21857
- this [_parents] .set (parent .getId (), new WeakRef (parent));
21858
- this [_registry] .register (parent, parent .getId (), parent);
21959
+ delete (object)
21960
+ {
21961
+ this .#map .delete (object .getId ());
21962
+ this .#registry .unregister (object);
21963
+ this .#callback ?.();
21964
+ }
21859
21965
 
21860
- this .parentsChanged ();
21861
- },
21862
- removeParent (parent)
21863
- {
21864
- this [_parents] .delete (parent .getId ());
21865
- this [_registry] .unregister (parent);
21966
+ forEach (callbackFn, thisArg)
21967
+ {
21968
+ for (const object of this .values ())
21969
+ callbackFn .call (thisArg, object, object, this);
21970
+ }
21866
21971
 
21867
- this .parentsChanged ();
21868
- },
21869
- getParents ()
21870
- {
21871
- const parents = new Set ();
21972
+ has (object)
21973
+ {
21974
+ return this .#map .has (object .getId ());
21975
+ }
21872
21976
 
21873
- for (const weakRef of this [_parents] .values ())
21874
- parents .add (weakRef .deref ())
21977
+ *entries ()
21978
+ {
21979
+ for (const object of this .values ())
21980
+ yield [object, object];
21981
+ }
21875
21982
 
21876
- parents .delete (undefined);
21983
+ *keys ()
21984
+ {
21985
+ yield *this .values ();
21986
+ }
21877
21987
 
21878
- return parents;
21879
- },
21880
- parentsChanged () { },
21881
- dispose ()
21988
+ *values ()
21989
+ {
21990
+ for (const weakRef of this .#map .values ())
21882
21991
  {
21883
- this [_parents] .clear ();
21992
+ const object = weakRef .deref ();
21884
21993
 
21885
- Base_X3DObject .prototype .dispose .call (this);
21886
- },
21887
- });
21994
+ if (object)
21995
+ yield object;
21996
+ }
21997
+ }
21888
21998
  }
21889
- else
21999
+ :
22000
+ class IterableWeakSet extends Set
21890
22001
  {
21891
- Object .assign (Object .setPrototypeOf (X3DChildObject .prototype, Base_X3DObject .prototype),
22002
+ constructor ()
21892
22003
  {
21893
- [_modificationTime]: 0,
21894
- [_tainted]: false,
21895
- [_parents]: new Set (),
21896
- [_private]: false,
21897
- isInitializable ()
21898
- {
21899
- return true;
21900
- },
21901
- isInput ()
21902
- {
21903
- return false;
21904
- },
21905
- isOutput ()
21906
- {
21907
- return false;
21908
- },
21909
- setModificationTime (value)
21910
- {
21911
- this [_modificationTime] = value;
21912
- },
21913
- getModificationTime ()
21914
- {
21915
- return this [_modificationTime];
21916
- },
21917
- setTainted (value)
21918
- {
21919
- this [_tainted] = value;
21920
- },
21921
- isTainted ()
21922
- {
21923
- return this [_tainted];
21924
- },
21925
- addEvent ()
21926
- {
21927
- for (const parent of this [_parents])
21928
- parent .addEvent (this);
21929
- },
21930
- addEventObject (field, event)
21931
- {
21932
- for (const parent of this [_parents])
21933
- parent .addEventObject (this, event);
21934
- },
21935
- processEvent ()
21936
- {
21937
- this .setTainted (false);
21938
- this .processInterests ();
21939
- },
21940
- isPrivate ()
21941
- {
21942
- return this [_private];
21943
- },
21944
- setPrivate (value)
21945
- {
21946
- this [_private] = value;
21947
- },
21948
- collectCloneCount ()
21949
- {
21950
- let cloneCount = 0;
22004
+ super ();
22005
+ }
22006
+ };
22007
+ ;
21951
22008
 
21952
- for (const parent of this [_parents])
21953
- {
21954
- if (parent [_private])
21955
- continue;
22009
+ x_ite_Namespace .add ("IterableWeakSet", "x_ite/Base/IterableWeakSet", IterableWeakSet_default_);
22010
+ /* harmony default export */ const IterableWeakSet = (IterableWeakSet_default_);
22011
+ ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DChildObject.js
22012
+ /*******************************************************************************
22013
+ *
22014
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
22015
+ *
22016
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
22017
+ *
22018
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
22019
+ *
22020
+ * The copyright notice above does not evidence any actual of intended
22021
+ * publication of such source code, and is an unpublished work by create3000.
22022
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
22023
+ * create3000.
22024
+ *
22025
+ * No permission is granted to copy, distribute, or create derivative works from
22026
+ * the contents of this software, in whole or in part, without the prior written
22027
+ * permission of create3000.
22028
+ *
22029
+ * NON-MILITARY USE ONLY
22030
+ *
22031
+ * All create3000 software are effectively free software with a non-military use
22032
+ * restriction. It is free. Well commented source is provided. You may reuse the
22033
+ * source in any way you please with the exception anything that uses it must be
22034
+ * marked to indicate is contains 'non-military use only' components.
22035
+ *
22036
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
22037
+ *
22038
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
22039
+ *
22040
+ * This file is part of the X_ITE Project.
22041
+ *
22042
+ * X_ITE is free software: you can redistribute it and/or modify it under the
22043
+ * terms of the GNU General Public License version 3 only, as published by the
22044
+ * Free Software Foundation.
22045
+ *
22046
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
22047
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
22048
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
22049
+ * details (a copy is included in the LICENSE file that accompanied this code).
22050
+ *
22051
+ * You should have received a copy of the GNU General Public License version 3
22052
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
22053
+ * copy of the GPLv3 License.
22054
+ *
22055
+ * For Silvio, Joy and Adi.
22056
+ *
22057
+ ******************************************************************************/
21956
22058
 
21957
- cloneCount += parent .collectCloneCount ();
21958
- }
21959
22059
 
21960
- return cloneCount;
21961
- },
21962
- addParent (parent)
21963
- {
21964
- if (this [_parents] === X3DChildObject .prototype [_parents])
21965
- this [_parents] = new Set ();
21966
22060
 
21967
- this [_parents] .add (parent);
21968
22061
 
21969
- this .parentsChanged ();
21970
- },
21971
- removeParent (parent)
21972
- {
21973
- this [_parents] .delete (parent);
22062
+ const
22063
+ _modificationTime = Symbol (),
22064
+ _tainted = Symbol (),
22065
+ _parents = Symbol (),
22066
+ _private = Symbol ();
21974
22067
 
21975
- this .parentsChanged ();
21976
- },
21977
- getParents ()
21978
- {
21979
- return this [_parents];
21980
- },
21981
- parentsChanged () { },
21982
- dispose ()
22068
+ function X3DChildObject ()
22069
+ {
22070
+ Base_X3DObject .call (this);
22071
+ }
22072
+
22073
+ Object .assign (Object .setPrototypeOf (X3DChildObject .prototype, Base_X3DObject .prototype),
22074
+ {
22075
+ [_modificationTime]: 0,
22076
+ [_tainted]: false,
22077
+ [_parents]: new IterableWeakSet (),
22078
+ [_private]: false,
22079
+ isInitializable ()
22080
+ {
22081
+ return true;
22082
+ },
22083
+ isInput ()
22084
+ {
22085
+ return false;
22086
+ },
22087
+ isOutput ()
22088
+ {
22089
+ return false;
22090
+ },
22091
+ setModificationTime (value)
22092
+ {
22093
+ this [_modificationTime] = value;
22094
+ },
22095
+ getModificationTime ()
22096
+ {
22097
+ return this [_modificationTime];
22098
+ },
22099
+ setTainted (value)
22100
+ {
22101
+ this [_tainted] = value;
22102
+ },
22103
+ isTainted ()
22104
+ {
22105
+ return this [_tainted];
22106
+ },
22107
+ addEvent ()
22108
+ {
22109
+ for (const parent of this [_parents])
22110
+ parent .addEvent (this);
22111
+ },
22112
+ addEventObject (field, event)
22113
+ {
22114
+ for (const parent of this [_parents])
22115
+ parent .addEventObject (this, event);
22116
+ },
22117
+ processEvent ()
22118
+ {
22119
+ this .setTainted (false);
22120
+ this .processInterests ();
22121
+ },
22122
+ isPrivate ()
22123
+ {
22124
+ return this [_private];
22125
+ },
22126
+ setPrivate (value)
22127
+ {
22128
+ this [_private] = value;
22129
+ },
22130
+ collectCloneCount ()
22131
+ {
22132
+ let cloneCount = 0;
22133
+
22134
+ for (const parent of this [_parents])
21983
22135
  {
21984
- this [_parents] .clear ();
22136
+ if (parent [_private])
22137
+ continue;
21985
22138
 
21986
- Base_X3DObject .prototype .dispose .call (this);
21987
- },
21988
- });
21989
- }
22139
+ cloneCount += parent .collectCloneCount ();
22140
+ }
22141
+
22142
+ return cloneCount;
22143
+ },
22144
+ addParent (parent)
22145
+ {
22146
+ if (this [_parents] === X3DChildObject .prototype [_parents])
22147
+ this [_parents] = new IterableWeakSet (() => this .parentsChanged ());
22148
+
22149
+ this [_parents] .add (parent);
22150
+ },
22151
+ removeParent (parent)
22152
+ {
22153
+ this [_parents] .delete (parent);
22154
+ },
22155
+ getParents ()
22156
+ {
22157
+ return this [_parents];
22158
+ },
22159
+ parentsChanged () { },
22160
+ dispose ()
22161
+ {
22162
+ this [_parents] .clear ();
22163
+
22164
+ Base_X3DObject .prototype .dispose .call (this);
22165
+ },
22166
+ });
21990
22167
 
21991
22168
  for (const key of Object .keys (X3DChildObject .prototype))
21992
22169
  Object .defineProperty (X3DChildObject .prototype, key, { enumerable: false });
@@ -22682,6 +22859,7 @@ x_ite_Namespace .add ("FieldDefinitionArray", "x_ite/Base/FieldDefinitionArray",
22682
22859
 
22683
22860
 
22684
22861
 
22862
+
22685
22863
  const
22686
22864
  _value = Symbol (),
22687
22865
  _accessType = Symbol (),
@@ -22707,12 +22885,12 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22707
22885
  [_value]: null,
22708
22886
  [_accessType]: Base_X3DConstants .initializeOnly,
22709
22887
  [_unit]: null,
22710
- [_references]: new Set (),
22888
+ [_references]: new IterableWeakSet (),
22711
22889
  [_referencesCallbacks]: new Map (),
22712
- [_fieldInterests]: new Set (),
22890
+ [_fieldInterests]: new IterableWeakSet (),
22713
22891
  [_fieldCallbacks]: new Map (),
22714
- [_inputRoutes]: new Set (),
22715
- [_outputRoutes]: new Set (),
22892
+ [_inputRoutes]: new IterableWeakSet (),
22893
+ [_outputRoutes]: new IterableWeakSet (),
22716
22894
  [_routeCallbacks]: new Map (),
22717
22895
  [_uniformLocation]: null,
22718
22896
  create ()
@@ -22784,22 +22962,19 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22784
22962
  {
22785
22963
  return this [_unit];
22786
22964
  },
22787
- hasReferences ()
22788
- {
22789
- return this [_references] .size !== 0;
22790
- },
22791
22965
  isReference (accessType)
22792
22966
  {
22793
22967
  return accessType === this [_accessType] || accessType === Base_X3DConstants .inputOutput;
22794
22968
  },
22795
22969
  addReference (reference)
22796
22970
  {
22797
- const references = this .getReferences ();
22971
+ if (this [_references] === X3DField .prototype [_references])
22972
+ this [_references] = new IterableWeakSet ();
22798
22973
 
22799
- if (references .has (reference))
22974
+ if (this [_references] .has (reference))
22800
22975
  return;
22801
22976
 
22802
- references .add (reference);
22977
+ this [_references] .add (reference);
22803
22978
 
22804
22979
  // Create IS relationship
22805
22980
 
@@ -22851,9 +23026,6 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22851
23026
  },
22852
23027
  getReferences ()
22853
23028
  {
22854
- if (this [_references] === X3DField .prototype [_references])
22855
- this [_references] = new Set ();
22856
-
22857
23029
  return this [_references];
22858
23030
  },
22859
23031
  addReferencesCallback (key, object)
@@ -22880,7 +23052,7 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22880
23052
  addFieldInterest (field)
22881
23053
  {
22882
23054
  if (this [_fieldInterests] === X3DField .prototype [_fieldInterests])
22883
- this [_fieldInterests] = new Set ();
23055
+ this [_fieldInterests] = new IterableWeakSet ();
22884
23056
 
22885
23057
  this [_fieldInterests] .add (field);
22886
23058
  },
@@ -22911,7 +23083,7 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22911
23083
  addInputRoute (route)
22912
23084
  {
22913
23085
  if (this [_inputRoutes] === X3DField .prototype [_inputRoutes])
22914
- this [_inputRoutes] = new Set ();
23086
+ this [_inputRoutes] = new IterableWeakSet ();
22915
23087
 
22916
23088
  this [_inputRoutes] .add (route);
22917
23089
 
@@ -22930,7 +23102,7 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22930
23102
  addOutputRoute (route)
22931
23103
  {
22932
23104
  if (this [_outputRoutes] === X3DField .prototype [_outputRoutes])
22933
- this [_outputRoutes] = new Set ();
23105
+ this [_outputRoutes] = new IterableWeakSet ();
22934
23106
 
22935
23107
  this [_outputRoutes] .add (route);
22936
23108
 
@@ -25849,14 +26021,14 @@ Object .assign (Matrix3 .prototype,
25849
26021
  {
25850
26022
  case 1:
25851
26023
  {
25852
- if (translation)
26024
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25853
26025
  this .translate (translation);
25854
26026
 
25855
26027
  break;
25856
26028
  }
25857
26029
  case 2:
25858
26030
  {
25859
- if (translation)
26031
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25860
26032
  this .translate (translation);
25861
26033
 
25862
26034
  if (rotation)
@@ -25866,7 +26038,7 @@ Object .assign (Matrix3 .prototype,
25866
26038
  }
25867
26039
  case 3:
25868
26040
  {
25869
- if (translation)
26041
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25870
26042
  this .translate (translation);
25871
26043
 
25872
26044
  if (rotation)
@@ -25879,7 +26051,7 @@ Object .assign (Matrix3 .prototype,
25879
26051
  }
25880
26052
  case 4:
25881
26053
  {
25882
- if (translation)
26054
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25883
26055
  this .translate (translation);
25884
26056
 
25885
26057
  if (rotation)
@@ -25904,7 +26076,7 @@ Object .assign (Matrix3 .prototype,
25904
26076
  case 5:
25905
26077
  {
25906
26078
  // P' = T * C * R * SR * S * -SR * -C * P
25907
- if (translation)
26079
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25908
26080
  this .translate (translation);
25909
26081
 
25910
26082
  const hasCenter = center && !center .equals (Numbers_Vector2 .Zero);
@@ -28172,14 +28344,14 @@ Object .assign (Matrix4_Matrix4 .prototype,
28172
28344
  {
28173
28345
  case 1:
28174
28346
  {
28175
- if (translation)
28347
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28176
28348
  this .translate (translation);
28177
28349
 
28178
28350
  break;
28179
28351
  }
28180
28352
  case 2:
28181
28353
  {
28182
- if (translation)
28354
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28183
28355
  this .translate (translation);
28184
28356
 
28185
28357
  if (rotation && !rotation .equals (Numbers_Rotation4 .Identity))
@@ -28189,7 +28361,7 @@ Object .assign (Matrix4_Matrix4 .prototype,
28189
28361
  }
28190
28362
  case 3:
28191
28363
  {
28192
- if (translation)
28364
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28193
28365
  this .translate (translation);
28194
28366
 
28195
28367
  if (rotation && !rotation .equals (Numbers_Rotation4 .Identity))
@@ -28202,7 +28374,7 @@ Object .assign (Matrix4_Matrix4 .prototype,
28202
28374
  }
28203
28375
  case 4:
28204
28376
  {
28205
- if (translation)
28377
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28206
28378
  this .translate (translation);
28207
28379
 
28208
28380
  if (rotation && !rotation .equals (Numbers_Rotation4 .Identity))
@@ -28227,7 +28399,7 @@ Object .assign (Matrix4_Matrix4 .prototype,
28227
28399
  case 5:
28228
28400
  {
28229
28401
  // P' = T * C * R * SR * S * -SR * -C * P
28230
- if (translation)
28402
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28231
28403
  this .translate (translation);
28232
28404
 
28233
28405
  const hasCenter = center && !center .equals (Numbers_Vector3 .Zero);
@@ -28996,39 +29168,12 @@ x_ite_Namespace .add ("SFMatrix4", "x_ite/Fields/SFMatrix4", SFMatrix4_default_)
28996
29168
 
28997
29169
 
28998
29170
 
28999
-
29000
29171
  const cache = new WeakMap ();
29001
29172
 
29002
- const SFNodeCache = DEVELOPMENT ?
29003
- {
29004
- get (baseNode)
29005
- {
29006
- const node = cache .get (baseNode) ?.deref ();
29173
+ // const r = new FinalizationRegistry (t => console .error (`object deleted ${--i} ${t}`));
29174
+ // let i = 0;
29007
29175
 
29008
- if (node)
29009
- {
29010
- return node;
29011
- }
29012
- else
29013
- {
29014
- const node = new Fields_SFNode (baseNode);
29015
-
29016
- node .dispose = dispose;
29017
-
29018
- cache .set (baseNode, new WeakRef (node));
29019
-
29020
- return node;
29021
- }
29022
- },
29023
- add (baseNode, node)
29024
- {
29025
- cache .set (baseNode, new WeakRef (node));
29026
- },
29027
- delete (baseNode)
29028
- {
29029
- cache .delete (baseNode);
29030
- },
29031
- } :
29176
+ const SFNodeCache =
29032
29177
  {
29033
29178
  get (baseNode)
29034
29179
  {
@@ -29042,15 +29187,23 @@ const SFNodeCache = DEVELOPMENT ?
29042
29187
  {
29043
29188
  const node = new Fields_SFNode (baseNode);
29044
29189
 
29045
- node .dispose = dispose;
29190
+ this .set (baseNode, node);
29046
29191
 
29047
- cache .set (baseNode, node);
29192
+ // i += 2;
29193
+ // console .warn (`baseNode ${i} ${baseNode .getTypeName ()}`);
29194
+ // r .register (baseNode, `baseNode ${baseNode .getTypeName ()}`);
29195
+ // r .register (node, `node ${baseNode .getTypeName ()}`);
29048
29196
 
29049
29197
  return node;
29050
29198
  }
29051
29199
  },
29052
- add (baseNode, node)
29200
+ set (baseNode, node)
29053
29201
  {
29202
+ node .dispose = dispose;
29203
+
29204
+ // WeakMap allows associating data to objects in a way that doesn't prevent
29205
+ // the key objects from being collected, even if the values reference the keys.
29206
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap
29054
29207
  cache .set (baseNode, node);
29055
29208
  },
29056
29209
  delete (baseNode)
@@ -29067,7 +29220,7 @@ function dispose ()
29067
29220
 
29068
29221
  Fields_SFNode .prototype .dispose .call (this);
29069
29222
 
29070
- cache .delete (value);
29223
+ SFNodeCache .delete (value);
29071
29224
  }
29072
29225
 
29073
29226
  const SFNodeCache_default_ = SFNodeCache;
@@ -30694,92 +30847,6 @@ const SFVec4_default_ = SFVec4;
30694
30847
 
30695
30848
  x_ite_Namespace .add ("SFVec4", "x_ite/Fields/SFVec4", SFVec4_default_);
30696
30849
  /* harmony default export */ const Fields_SFVec4 = (SFVec4_default_);
30697
- ;// CONCATENATED MODULE: ./src/shim.js
30698
- /*******************************************************************************
30699
- *
30700
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
30701
- *
30702
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
30703
- *
30704
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
30705
- *
30706
- * The copyright notice above does not evidence any actual of intended
30707
- * publication of such source code, and is an unpublished work by create3000.
30708
- * This material contains CONFIDENTIAL INFORMATION that is the property of
30709
- * create3000.
30710
- *
30711
- * No permission is granted to copy, distribute, or create derivative works from
30712
- * the contents of this software, in whole or in part, without the prior written
30713
- * permission of create3000.
30714
- *
30715
- * NON-MILITARY USE ONLY
30716
- *
30717
- * All create3000 software are effectively free software with a non-military use
30718
- * restriction. It is free. Well commented source is provided. You may reuse the
30719
- * source in any way you please with the exception anything that uses it must be
30720
- * marked to indicate is contains 'non-military use only' components.
30721
- *
30722
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
30723
- *
30724
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
30725
- *
30726
- * This file is part of the X_ITE Project.
30727
- *
30728
- * X_ITE is free software: you can redistribute it and/or modify it under the
30729
- * terms of the GNU General Public License version 3 only, as published by the
30730
- * Free Software Foundation.
30731
- *
30732
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
30733
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
30734
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
30735
- * details (a copy is included in the LICENSE file that accompanied this code).
30736
- *
30737
- * You should have received a copy of the GNU General Public License version 3
30738
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
30739
- * copy of the GPLv3 License.
30740
- *
30741
- * For Silvio, Joy and Adi.
30742
- *
30743
- ******************************************************************************/
30744
-
30745
- (() =>
30746
- {
30747
- // Added at February 2022
30748
- // https://github.com/tc39/proposal-relative-indexing-method#polyfill
30749
-
30750
- function at (n)
30751
- {
30752
- // ToInteger() abstract op
30753
- n = Math.trunc(n) || 0;
30754
- // Allow negative indexing from the end
30755
- if (n < 0) n += this.length;
30756
- // OOB access is guaranteed to return undefined
30757
- if (n < 0 || n >= this.length) return undefined;
30758
- // Otherwise, this is just normal property access
30759
- return this[n];
30760
- }
30761
-
30762
- const TypedArray = Reflect .getPrototypeOf (Int8Array);
30763
- for (const C of [Array, String, TypedArray])
30764
- {
30765
- if (C .prototype .at === undefined)
30766
- {
30767
- Object .defineProperty (C .prototype, "at",
30768
- {
30769
- value: at,
30770
- writable: true,
30771
- enumerable: false,
30772
- configurable: true,
30773
- });
30774
- }
30775
- }
30776
- })();
30777
-
30778
- const shim_default_ = undefined;
30779
- ;
30780
-
30781
- x_ite_Namespace .add ("shim", "shim", shim_default_);
30782
- /* harmony default export */ const shim = ((/* unused pure expression or super */ null && (shim_default_)));
30783
30850
  ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DArrayField.js
30784
30851
  /*******************************************************************************
30785
30852
  *
@@ -31267,26 +31334,29 @@ Object .assign (Object .setPrototypeOf (X3DObjectArrayField .prototype, Base_X3D
31267
31334
 
31268
31335
  return result;
31269
31336
  },
31270
- resize (size, value, silently)
31337
+ resize (newLength, value, silently)
31271
31338
  {
31272
31339
  const
31273
31340
  target = this [X3DObjectArrayField_target],
31274
31341
  array = target .getValue (),
31275
31342
  length = array .length;
31276
31343
 
31277
- if (size < length)
31344
+ if (newLength < 0)
31345
+ throw new RangeError ("Invalid array length");
31346
+
31347
+ if (newLength < length)
31278
31348
  {
31279
- for (let i = size; i < length; ++ i)
31349
+ for (let i = newLength; i < length; ++ i)
31280
31350
  target .removeChildObject (array [i]);
31281
31351
 
31282
- array .length = size;
31352
+ array .length = newLength;
31283
31353
 
31284
31354
  if (!silently)
31285
31355
  target .addEvent ();
31286
31356
  }
31287
- else if (size > length)
31357
+ else if (newLength > length)
31288
31358
  {
31289
- for (let i = length; i < size; ++ i)
31359
+ for (let i = length; i < newLength; ++ i)
31290
31360
  {
31291
31361
  const field = new (target .getSingleType ()) ();
31292
31362
 
@@ -31307,7 +31377,6 @@ Object .assign (Object .setPrototypeOf (X3DObjectArrayField .prototype, Base_X3D
31307
31377
  },
31308
31378
  removeChildObject (value)
31309
31379
  {
31310
- value .removeParent (this [X3DObjectArrayField_proxy]);
31311
31380
  value .dispose ();
31312
31381
  },
31313
31382
  reverse ()
@@ -32028,6 +32097,9 @@ Object .assign (Object .setPrototypeOf (X3DTypedArrayField .prototype, Base_X3DA
32028
32097
  length = target [_length],
32029
32098
  components = target .getComponents ();
32030
32099
 
32100
+ if (newLength < 0)
32101
+ throw new RangeError ("Invalid array length");
32102
+
32031
32103
  let array = target .getValue ();
32032
32104
 
32033
32105
  if (newLength < length)
@@ -33634,19 +33706,13 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33634
33706
  {
33635
33707
  return this [_browser];
33636
33708
  },
33637
- getMainScene ()
33638
- {
33639
- let scene = this [_executionContext] .getScene ();
33640
-
33641
- while (!scene .isMainScene ())
33642
- scene = scene .getScene ();
33643
-
33644
- return scene;
33645
- },
33646
33709
  getScene ()
33647
33710
  {
33648
33711
  let executionContext = this [_executionContext];
33649
33712
 
33713
+ if (!executionContext)
33714
+ return null;
33715
+
33650
33716
  while (!executionContext .isScene ())
33651
33717
  executionContext = executionContext .getExecutionContext ();
33652
33718
 
@@ -33658,10 +33724,13 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33658
33724
  },
33659
33725
  setExecutionContext (executionContext)
33660
33726
  {
33727
+ if (!this [_type] .includes (Base_X3DConstants .X3DScene))
33728
+ throw new Error (`${this .getTypeName ()}.setExecutionContext is not supported.`);
33729
+
33661
33730
  // Disconnect interests.
33662
33731
 
33663
- this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
33664
- this [_executionContext] .getLive () .removeInterest (_set_live__, this);
33732
+ this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
33733
+ this [_executionContext] ?.getLive () .removeInterest (_set_live__, this);
33665
33734
 
33666
33735
  // Currently only useful for Scene.
33667
33736
  this [_executionContext] = executionContext;
@@ -33671,8 +33740,8 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33671
33740
  if (this .getOuterNode ?.())
33672
33741
  this .getOuterNode () .getLive () .addInterest (_set_live__, this);
33673
33742
 
33674
- else if (this [_executionContext] !== this)
33675
- this [_executionContext] .getLive () .addInterest (_set_live__, this);
33743
+ else
33744
+ this [_executionContext] ?.getLive () .addInterest (_set_live__, this);
33676
33745
 
33677
33746
  this [_set_live__] ();
33678
33747
  },
@@ -33684,37 +33753,6 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33684
33753
  {
33685
33754
  return this [_type];
33686
33755
  },
33687
- create (executionContext = this [_executionContext])
33688
- {
33689
- return new (this .constructor) (executionContext);
33690
- },
33691
- copy (executionContext)
33692
- {
33693
- const copy = this .create (executionContext);
33694
-
33695
- for (const field of this [_predefinedFields])
33696
- copy .getPredefinedFields () .get (field .getName ()) .assign (field);
33697
-
33698
- if (this .canUserDefinedFields ())
33699
- {
33700
- for (const field of this [_userDefinedFields])
33701
- copy .addUserDefinedField (field .getAccessType (), field .getName (), field .copy ());
33702
- }
33703
-
33704
- copy .setup ();
33705
-
33706
- return copy;
33707
- },
33708
- // replaceWith (replacement, cache = false)
33709
- // {
33710
- // cache = cache && SFNodeCache .get (this);
33711
-
33712
- // for (const parent of new Set (this .getParents ()))
33713
- // {
33714
- // if (parent instanceof Fields .SFNode && parent !== cache)
33715
- // parent .setValue (replacement)
33716
- // }
33717
- // },
33718
33756
  setup ()
33719
33757
  {
33720
33758
  Object .freeze (this [_type]);
@@ -33788,8 +33826,8 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33788
33826
  if (this .getOuterNode ?.())
33789
33827
  this .getOuterNode () .getLive () .addInterest (_set_live__, this);
33790
33828
 
33791
- else if (this [_executionContext] !== this)
33792
- this [_executionContext] .getLive () .addInterest (_set_live__, this);
33829
+ else if (this !== this [_browser])
33830
+ this [_executionContext] ?.getLive () .addInterest (_set_live__, this);
33793
33831
 
33794
33832
  // Return field.
33795
33833
 
@@ -33803,7 +33841,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33803
33841
  if (this .getOuterNode ?.())
33804
33842
  return this [_live] && this .getOuterNode () .getLive () .getValue ();
33805
33843
 
33806
- else if (this !== this [_executionContext])
33844
+ else if (this [_executionContext] && this !== this [_browser])
33807
33845
  return this [_live] && this [_executionContext] .getLive () .getValue ();
33808
33846
 
33809
33847
  return this [_live];
@@ -34026,30 +34064,6 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34026
34064
 
34027
34065
  return !field .getModificationTime ();
34028
34066
  },
34029
- hasRoutes ()
34030
- {
34031
- /// Returns true if there are any routes from or to fields of this node, otherwise false.
34032
-
34033
- for (const field of this [_predefinedFields])
34034
- {
34035
- if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34036
- return true;
34037
- }
34038
-
34039
- for (const field of this [_userDefinedFields])
34040
- {
34041
- if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34042
- return true;
34043
- }
34044
-
34045
- for (const route of this [_executionContext] .getRoutes ())
34046
- {
34047
- if (route .getSourceNode () === this || route .getDestinationNode () === this)
34048
- return true;
34049
- }
34050
-
34051
- return false;
34052
- },
34053
34067
  getExtendedEventHandling ()
34054
34068
  {
34055
34069
  // Whether initializeOnly field are treated like inputOnly and inputOutput fields.
@@ -34114,11 +34128,16 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34114
34128
  {
34115
34129
  const time = this [_browser] .getCurrentTime ();
34116
34130
 
34117
- this [_executionContext] ._sceneGraph_changed = time;
34118
- this ._parents_changed = time;
34131
+ if (this [_executionContext])
34132
+ this [_executionContext] ._sceneGraph_changed = time;
34133
+
34134
+ this ._parents_changed = time;
34119
34135
  },
34120
34136
  dispose ()
34121
34137
  {
34138
+ this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
34139
+ this [_executionContext] ?.getLive () .removeInterest (_set_live__, this);
34140
+
34122
34141
  this .setLive (false);
34123
34142
 
34124
34143
  for (const field of this [_childObjects])
@@ -34199,7 +34218,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34199
34218
  x_ite_Namespace .add ("X3DBaseNode", "x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34200
34219
  /* harmony default export */ const Base_X3DBaseNode = (X3DBaseNode_default_);
34201
34220
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34202
- /* provided dependency */ var $ = __webpack_require__(575);
34221
+ /* provided dependency */ var $ = __webpack_require__(250);
34203
34222
  /*******************************************************************************
34204
34223
  *
34205
34224
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34336,7 +34355,7 @@ x_ite_Namespace .add ("Legacy", "x_ite/Browser/Legacy", Legacy_default_);
34336
34355
  *
34337
34356
  ******************************************************************************/
34338
34357
 
34339
- const BROWSER_VERSION_default_ = "9.5.2";
34358
+ const BROWSER_VERSION_default_ = "9.6.1";
34340
34359
  ;
34341
34360
 
34342
34361
  x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSION_default_);
@@ -34417,11 +34436,28 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34417
34436
  {
34418
34437
  return this .constructor .specificationRange;
34419
34438
  },
34439
+ create (executionContext = this .getExecutionContext ())
34440
+ {
34441
+ return new (this .constructor) (executionContext);
34442
+ },
34420
34443
  copy (instance)
34421
34444
  {
34422
- if (!instance || instance .getType () .includes (Base_X3DConstants .X3DExecutionContext))
34445
+ if (instance ?.getType () .includes (Base_X3DConstants .X3DExecutionContext) ?? true)
34423
34446
  {
34424
- return Base_X3DBaseNode .prototype .copy .call (this, instance);
34447
+ const copy = this .create (instance);
34448
+
34449
+ for (const field of this .getPredefinedFields ())
34450
+ copy .getPredefinedFields () .get (field .getName ()) .assign (field);
34451
+
34452
+ if (this .canUserDefinedFields ())
34453
+ {
34454
+ for (const field of this .getUserDefinedFields ())
34455
+ copy .addUserDefinedField (field .getAccessType (), field .getName (), field .copy ());
34456
+ }
34457
+
34458
+ copy .setup ();
34459
+
34460
+ return copy;
34425
34461
  }
34426
34462
  else
34427
34463
  {
@@ -34455,7 +34491,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34455
34491
  {
34456
34492
  const destinationField = copy .getPredefinedField (sourceField .getName ());
34457
34493
 
34458
- if (sourceField .hasReferences ())
34494
+ if (sourceField .getReferences () .size)
34459
34495
  {
34460
34496
  // IS relationship
34461
34497
 
@@ -34506,7 +34542,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34506
34542
  sourceField .getName (),
34507
34543
  destinationField);
34508
34544
 
34509
- if (sourceField .hasReferences ())
34545
+ if (sourceField .getReferences () .size)
34510
34546
  {
34511
34547
  // IS relationship
34512
34548
 
@@ -34565,6 +34601,30 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34565
34601
 
34566
34602
  return false;
34567
34603
  },
34604
+ hasRoutes ()
34605
+ {
34606
+ /// Returns true if there are any routes from or to fields of this node, otherwise false.
34607
+
34608
+ for (const field of this .getPredefinedFields ())
34609
+ {
34610
+ if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34611
+ return true;
34612
+ }
34613
+
34614
+ for (const field of this .getUserDefinedFields ())
34615
+ {
34616
+ if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34617
+ return true;
34618
+ }
34619
+
34620
+ for (const route of this .getExecutionContext () .getRoutes ())
34621
+ {
34622
+ if (route .getSourceNode () === this || route .getDestinationNode () === this)
34623
+ return true;
34624
+ }
34625
+
34626
+ return false;
34627
+ },
34568
34628
  getCloneCount ()
34569
34629
  {
34570
34630
  return Base_X3DBaseNode .prototype .collectCloneCount .call (this);
@@ -34853,7 +34913,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34853
34913
  else if (!Array .isArray (value) && value .valueOf () instanceof Object)
34854
34914
  {
34855
34915
  // Support for Numbers (Vector234, Color34, ...).
34856
-
34916
+
34857
34917
  value = Array .from (value);
34858
34918
  value .type = "double";
34859
34919
  }
@@ -35296,7 +35356,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35296
35356
  {
35297
35357
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35298
35358
  {
35299
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35359
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35300
35360
  mustOutputValue = !this .isDefaultValue (field);
35301
35361
  }
35302
35362
  }
@@ -35394,7 +35454,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35394
35454
  {
35395
35455
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35396
35456
  {
35397
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35457
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35398
35458
  mustOutputValue = true;
35399
35459
  }
35400
35460
  }
@@ -35653,7 +35713,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35653
35713
  {
35654
35714
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35655
35715
  {
35656
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35716
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35657
35717
  mustOutputValue = !this .isDefaultValue (field);
35658
35718
  }
35659
35719
  }
@@ -35782,7 +35842,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35782
35842
  {
35783
35843
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35784
35844
  {
35785
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35845
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35786
35846
  mustOutputValue = true;
35787
35847
  }
35788
35848
  }
@@ -35937,7 +35997,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35937
35997
 
35938
35998
  for (const field of references)
35939
35999
  {
35940
- const protoFields = [... field .getReferences ()];
36000
+ const protoFields = Array .from (field .getReferences ());
35941
36001
 
35942
36002
  for (const protoField of protoFields)
35943
36003
  {
@@ -36021,11 +36081,11 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
36021
36081
  {
36022
36082
  // Remove imported node if any.
36023
36083
 
36024
- if (!executionContext .isMainScene ())
36025
- {
36026
- const parentContext = executionContext .getExecutionContext ();
36084
+ const parentContext = executionContext .getExecutionContext ();
36027
36085
 
36028
- for (const importedNode of [... parentContext .getImportedNodes ()])
36086
+ if (parentContext)
36087
+ {
36088
+ for (const importedNode of Array .from (parentContext .getImportedNodes ()))
36029
36089
  {
36030
36090
  try
36031
36091
  {
@@ -36041,7 +36101,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
36041
36101
 
36042
36102
  // Remove exported node if any.
36043
36103
 
36044
- for (const exportedNode of [... executionContext .getExportedNodes ()])
36104
+ for (const exportedNode of Array .from (executionContext .getExportedNodes ()))
36045
36105
  {
36046
36106
  if (exportedNode .getLocalNode () === this)
36047
36107
  executionContext .removeExportedNode (exportedNode .getExportedName ());
@@ -36060,7 +36120,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
36060
36120
  if (!(secondParent instanceof x_ite_Fields .MFNode))
36061
36121
  continue;
36062
36122
 
36063
- secondParent .setValue ([... secondParent] .filter (node => node ?.getValue () !== this))
36123
+ secondParent .setValue (Array .from (secondParent) .filter (node => node ?.getValue () !== this))
36064
36124
  }
36065
36125
  }
36066
36126
 
@@ -38941,7 +39001,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
38941
39001
  x_ite_Namespace .add ("X3DProtoDeclaration", "x_ite/Prototype/X3DProtoDeclaration", X3DProtoDeclaration_default_);
38942
39002
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (X3DProtoDeclaration_default_);
38943
39003
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38944
- /* provided dependency */ var X3DParser_$ = __webpack_require__(575);
39004
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(250);
38945
39005
  /*******************************************************************************
38946
39006
  *
38947
39007
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39203,7 +39263,7 @@ const Expressions_default_ = Expressions;
39203
39263
  x_ite_Namespace .add ("Expressions", "x_ite/Parser/Expressions", Expressions_default_);
39204
39264
  /* harmony default export */ const Parser_Expressions = (Expressions_default_);
39205
39265
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
39206
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(575);
39266
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(250);
39207
39267
  /*******************************************************************************
39208
39268
  *
39209
39269
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39276,7 +39336,7 @@ x_ite_Namespace .add ("Expressions", "x_ite/Parser/Expressions", Expressions_def
39276
39336
  const Grammar = Parser_Expressions ({
39277
39337
  // General
39278
39338
  Whitespaces: /[\x20\n,\t\r]+/gy,
39279
- Comment: /#.*?(?=[\n\r])/gy,
39339
+ Comment: /#.*?(?=[\n\r]|$)/gy,
39280
39340
  Break: /\r?\n/g,
39281
39341
 
39282
39342
  // Header
@@ -40446,7 +40506,7 @@ Object .assign (Object .setPrototypeOf (VRMLParser .prototype, Parser_X3DParser
40446
40506
  {
40447
40507
  ++ this .unknownLevel;
40448
40508
 
40449
- this .nodeBody (this .getExecutionContext () .createNode ("WorldInfo", false));
40509
+ this .nodeBody (this .getExecutionContext () .createNode ("MetadataBoolean", false));
40450
40510
 
40451
40511
  -- this .unknownLevel;
40452
40512
 
@@ -41903,7 +41963,7 @@ const VRMLParser_default_ = VRMLParser;
41903
41963
  x_ite_Namespace .add ("VRMLParser", "x_ite/Parser/VRMLParser", VRMLParser_default_);
41904
41964
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41905
41965
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41906
- /* provided dependency */ var XMLParser_$ = __webpack_require__(575);
41966
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(250);
41907
41967
  /*******************************************************************************
41908
41968
  *
41909
41969
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -43821,80 +43881,6 @@ const X3DOptimizer_default_ = X3DOptimizer;
43821
43881
 
43822
43882
  x_ite_Namespace .add ("X3DOptimizer", "x_ite/Parser/X3DOptimizer", X3DOptimizer_default_);
43823
43883
  /* harmony default export */ const Parser_X3DOptimizer = (X3DOptimizer_default_);
43824
- ;// CONCATENATED MODULE: ./src/x_ite/Features.js
43825
- /*******************************************************************************
43826
- *
43827
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
43828
- *
43829
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
43830
- *
43831
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
43832
- *
43833
- * The copyright notice above does not evidence any actual of intended
43834
- * publication of such source code, and is an unpublished work by create3000.
43835
- * This material contains CONFIDENTIAL INFORMATION that is the property of
43836
- * create3000.
43837
- *
43838
- * No permission is granted to copy, distribute, or create derivative works from
43839
- * the contents of this software, in whole or in part, without the prior written
43840
- * permission of create3000.
43841
- *
43842
- * NON-MILITARY USE ONLY
43843
- *
43844
- * All create3000 software are effectively free software with a non-military use
43845
- * restriction. It is free. Well commented source is provided. You may reuse the
43846
- * source in any way you please with the exception anything that uses it must be
43847
- * marked to indicate is contains 'non-military use only' components.
43848
- *
43849
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
43850
- *
43851
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
43852
- *
43853
- * This file is part of the X_ITE Project.
43854
- *
43855
- * X_ITE is free software: you can redistribute it and/or modify it under the
43856
- * terms of the GNU General Public License version 3 only, as published by the
43857
- * Free Software Foundation.
43858
- *
43859
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
43860
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
43861
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
43862
- * details (a copy is included in the LICENSE file that accompanied this code).
43863
- *
43864
- * You should have received a copy of the GNU General Public License version 3
43865
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
43866
- * copy of the GPLv3 License.
43867
- *
43868
- * For Silvio, Joy and Adi.
43869
- *
43870
- ******************************************************************************/
43871
-
43872
-
43873
-
43874
- const MODULE = true;
43875
-
43876
- const Features =
43877
- {
43878
- get ENVIRONMENT ()
43879
- {
43880
- if (DEVELOPMENT)
43881
- return "BROWSER";
43882
-
43883
- if (MODULE)
43884
- return "MODULE";
43885
-
43886
- if ((typeof process === "object") && (process .release .name .search (/node|io.js/) !== -1))
43887
- return "NODE";
43888
-
43889
- return "BROWSER";
43890
- },
43891
- };
43892
-
43893
- const Features_default_ = Features;
43894
- ;
43895
-
43896
- x_ite_Namespace .add ("Features", "x_ite/Features", Features_default_);
43897
- /* harmony default export */ const x_ite_Features = (Features_default_);
43898
43884
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Networking/URLs.js
43899
43885
  /*******************************************************************************
43900
43886
  *
@@ -44009,7 +43995,7 @@ const URLs_default_ = URLs;
44009
43995
  x_ite_Namespace .add ("URLs", "x_ite/Browser/Networking/URLs", URLs_default_);
44010
43996
  /* harmony default export */ const Networking_URLs = (URLs_default_);
44011
43997
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
44012
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(575);
43998
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(250);
44013
43999
  /*******************************************************************************
44014
44000
  *
44015
44001
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47311,7 +47297,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
47311
47297
  x_ite_Namespace .add ("GLTF2Parser", "x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
47312
47298
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
47313
47299
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
47314
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(575);
47300
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(250);
47315
47301
  /*******************************************************************************
47316
47302
  *
47317
47303
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47463,7 +47449,7 @@ const GLB2Parser_default_ = GLB2Parser;
47463
47449
  x_ite_Namespace .add ("GLB2Parser", "x_ite/Parser/GLB2Parser", GLB2Parser_default_);
47464
47450
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
47465
47451
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
47466
- /* provided dependency */ var OBJParser_$ = __webpack_require__(575);
47452
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(250);
47467
47453
  /*******************************************************************************
47468
47454
  *
47469
47455
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47531,7 +47517,7 @@ const OBJParser_Grammar = Parser_Expressions ({
47531
47517
  // General
47532
47518
  whitespaces: /[\x20\n\t\r]+/gy,
47533
47519
  whitespacesNoLineTerminator: /[\x20\t]+/gy,
47534
- comment: /#.*?(?=[\n\r])/gy,
47520
+ comment: /#.*?(?=[\n\r]|$)/gy,
47535
47521
  untilEndOfLine: /[^\r\n]+/gy,
47536
47522
 
47537
47523
  // Keywords
@@ -48623,7 +48609,7 @@ const STLAParser_Grammar = Parser_Expressions ({
48623
48609
  // General
48624
48610
  whitespaces: /[\x20\n\t\r]+/gy,
48625
48611
  whitespacesNoLineTerminator: /[\x20\t]+/gy,
48626
- comment: /;.*?(?=[\n\r])/gy,
48612
+ comment: /;.*?(?=[\n\r]|$)/gy,
48627
48613
  untilEndOfLine: /[^\r\n]+/gy,
48628
48614
 
48629
48615
  // Keywords
@@ -50821,8 +50807,8 @@ const MatrixStack_default_ = MatrixStack;
50821
50807
  x_ite_Namespace .add ("MatrixStack", "standard/Math/Utility/MatrixStack", MatrixStack_default_);
50822
50808
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
50823
50809
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
50824
- /* provided dependency */ var SVGParser_$ = __webpack_require__(575);
50825
- /* provided dependency */ var libtess = __webpack_require__(932);
50810
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(250);
50811
+ /* provided dependency */ var libtess = __webpack_require__(979);
50826
50812
  /*******************************************************************************
50827
50813
  *
50828
50814
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53590,7 +53576,7 @@ const SVGParser_default_ = SVGParser;
53590
53576
  x_ite_Namespace .add ("SVGParser", "x_ite/Parser/SVGParser", SVGParser_default_);
53591
53577
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
53592
53578
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
53593
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(575);
53579
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(250);
53594
53580
  /*******************************************************************************
53595
53581
  *
53596
53582
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53940,7 +53926,7 @@ const Plane3_default_ = Plane3;
53940
53926
  x_ite_Namespace .add ("Plane3", "standard/Math/Geometry/Plane3", Plane3_default_);
53941
53927
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
53942
53928
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
53943
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(932);
53929
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(979);
53944
53930
  /*******************************************************************************
53945
53931
  *
53946
53932
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -57711,7 +57697,7 @@ Object .assign (Object .setPrototypeOf (BindableList .prototype, Base_X3DBaseNod
57711
57697
  node = this .nodes [i],
57712
57698
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
57713
57699
 
57714
- if (!enableInlineBindables && !scene .isMainScene ())
57700
+ if (!enableInlineBindables && scene .getExecutionContext ())
57715
57701
  continue;
57716
57702
 
57717
57703
  if (node .getName () == name)
@@ -57727,7 +57713,7 @@ Object .assign (Object .setPrototypeOf (BindableList .prototype, Base_X3DBaseNod
57727
57713
  node = this .nodes [i],
57728
57714
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
57729
57715
 
57730
- if (!enableInlineBindables && !scene .isMainScene ())
57716
+ if (!enableInlineBindables && scene .getExecutionContext ())
57731
57717
  continue;
57732
57718
 
57733
57719
  if (node ._isBound .getValue ())
@@ -57742,7 +57728,7 @@ Object .assign (Object .setPrototypeOf (BindableList .prototype, Base_X3DBaseNod
57742
57728
  node = this .nodes [i],
57743
57729
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
57744
57730
 
57745
- if (!enableInlineBindables && !scene .isMainScene ())
57731
+ if (!enableInlineBindables && scene .getExecutionContext ())
57746
57732
  continue;
57747
57733
 
57748
57734
  return node;
@@ -62469,7 +62455,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62469
62455
  x_ite_Namespace .add ("X3DTexture2DNode", "x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
62470
62456
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
62471
62457
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62472
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(575);
62458
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(250);
62473
62459
  /*******************************************************************************
62474
62460
  *
62475
62461
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -66053,7 +66039,7 @@ const X3DWorld_default_ = X3DWorld;
66053
66039
  x_ite_Namespace .add ("X3DWorld", "x_ite/Execution/X3DWorld", X3DWorld_default_);
66054
66040
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
66055
66041
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66056
- /* provided dependency */ var FileLoader_$ = __webpack_require__(575);
66042
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(250);
66057
66043
  /*******************************************************************************
66058
66044
  *
66059
66045
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -66168,6 +66154,7 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
66168
66154
  if (!(this .node instanceof Execution_X3DWorld))
66169
66155
  scene .setExecutionContext (this .executionContext);
66170
66156
 
66157
+ scene .setLive (false);
66171
66158
  scene .setWorldURL (new URL (worldURL, this .getBaseURL ()) .href);
66172
66159
 
66173
66160
  if (resolve)
@@ -66258,11 +66245,11 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
66258
66245
 
66259
66246
  // Script
66260
66247
  {
66261
- const result = url .match (/^\s*(?:vrmlscript|javascript|ecmascript)\:(.*)$/s);
66248
+ const result = url .match (/^\s*(?:ecmascript|javascript|vrmlscript)\:/s);
66262
66249
 
66263
66250
  if (result)
66264
66251
  {
66265
- this .callback (result [1]);
66252
+ this .callback (url .substring (result [0] .length));
66266
66253
  return;
66267
66254
  }
66268
66255
  }
@@ -66271,16 +66258,16 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
66271
66258
 
66272
66259
  // Data URL
66273
66260
  {
66274
- const result = url .match (/^data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,/s);
66261
+ const result = url .match (/^\s*data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,/s);
66275
66262
 
66276
66263
  if (result && result [3] !== "base64")
66277
66264
  {
66278
- // const mimeType = result [1];
66265
+ // const mimeType = result [1] || "text/plain"";
66279
66266
 
66280
66267
  let data = url .substring (result [0] .length);
66281
66268
 
66282
- data = unescape (data); // Unescape data, don't use decodeURIComponent!
66283
- data = data .replace (/^/, ""); // Remove BOM.
66269
+ data = FileLoader_$.try (() => decodeURIComponent (data)) ?? data; // Decode data.
66270
+ data = data .replace (/^/, ""); // Remove BOM.
66284
66271
 
66285
66272
  this .callback (data);
66286
66273
  return;
@@ -66471,11 +66458,8 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66471
66458
 
66472
66459
  if (proto)
66473
66460
  {
66474
- for (const field of [... this .getUserDefinedFields ()])
66475
- this .removeUserDefinedField (field .getName ())
66476
-
66477
- for (const field of proto .getUserDefinedFields ())
66478
- this .addUserDefinedField (field .getAccessType (), field .getName (), field);
66461
+ this .getFieldDefinitions () .assign (proto .getFieldDefinitions ());
66462
+ this .getUserDefinedFields () .assign (proto .getUserDefinedFields ());
66479
66463
  }
66480
66464
 
66481
66465
  this .updateInstances ();
@@ -66504,8 +66488,8 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66504
66488
  },
66505
66489
  setInternalScene (value)
66506
66490
  {
66507
- this [_scene] ?.setExecutionContext (this [_scene]);
66508
- this [_scene] ?.setLive (false);
66491
+ if (this [_scene] !== this .getBrowser () .getPrivateScene ())
66492
+ this [_scene] ?.dispose ();
66509
66493
 
66510
66494
  this [_scene] = value;
66511
66495
 
@@ -66989,7 +66973,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
66989
66973
  x_ite_Namespace .add ("ProtoDeclarationArray", "x_ite/Prototype/ProtoDeclarationArray", ProtoDeclarationArray_default_);
66990
66974
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (ProtoDeclarationArray_default_);
66991
66975
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
66992
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(575);
66976
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(250);
66993
66977
  /*******************************************************************************
66994
66978
  *
66995
66979
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67378,8 +67362,8 @@ Object .defineProperties (X3DRoute .prototype,
67378
67362
  {
67379
67363
  if (this [_sourceNode] instanceof Core_X3DNode)
67380
67364
  return Fields_SFNodeCache .get (this [_sourceNode]);
67381
- else
67382
- return this [_sourceNode];
67365
+
67366
+ return this [_sourceNode];
67383
67367
  },
67384
67368
  enumerable: true,
67385
67369
  },
@@ -67394,8 +67378,8 @@ Object .defineProperties (X3DRoute .prototype,
67394
67378
  {
67395
67379
  if (this [_destinationNode] instanceof Core_X3DNode)
67396
67380
  return Fields_SFNodeCache .get (this [_destinationNode]);
67397
- else
67398
- return this [_destinationNode];
67381
+
67382
+ return this [_destinationNode];
67399
67383
  },
67400
67384
  enumerable: true,
67401
67385
  },
@@ -67613,8 +67597,11 @@ function X3DExecutionContext (executionContext, outerNode = null, browser = exec
67613
67597
  this ._rootNodes .setPrivate (false);
67614
67598
  this ._rootNodes .collectCloneCount = () => 1;
67615
67599
 
67616
- this ._countPrimitives .addReference (executionContext ._countPrimitives);
67617
- this ._sceneGraph_changed .addFieldInterest (this ._sceneGraph_changed);
67600
+ if (executionContext)
67601
+ {
67602
+ this ._countPrimitives .addReference (executionContext ._countPrimitives);
67603
+ this ._sceneGraph_changed .addFieldInterest (executionContext ._sceneGraph_changed);
67604
+ }
67618
67605
 
67619
67606
  this [_outerNode] = outerNode;
67620
67607
  this [_namedNodes] = new Execution_NamedNodesArray ();
@@ -67634,13 +67621,19 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
67634
67621
  {
67635
67622
  setExecutionContext (executionContext)
67636
67623
  {
67637
- this ._countPrimitives .removeReference (this .getExecutionContext () ._countPrimitives);
67638
- this ._sceneGraph_changed .removeFieldInterest (this .getExecutionContext () ._sceneGraph_changed);
67624
+ if (this .getExecutionContext ())
67625
+ {
67626
+ this ._countPrimitives .removeReference (this .getExecutionContext () ._countPrimitives);
67627
+ this ._sceneGraph_changed .removeFieldInterest (this .getExecutionContext () ._sceneGraph_changed);
67628
+ }
67639
67629
 
67640
67630
  Base_X3DBaseNode .prototype .setExecutionContext .call (this, executionContext);
67641
67631
 
67642
- this ._countPrimitives .addReference (executionContext ._countPrimitives);
67643
- this ._sceneGraph_changed .addFieldInterest (executionContext ._sceneGraph_changed);
67632
+ if (executionContext)
67633
+ {
67634
+ this ._countPrimitives .addReference (executionContext ._countPrimitives);
67635
+ this ._sceneGraph_changed .addFieldInterest (executionContext ._sceneGraph_changed);
67636
+ }
67644
67637
  },
67645
67638
  isScene ()
67646
67639
  {
@@ -67657,7 +67650,7 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
67657
67650
  },
67658
67651
  setCountPrimitives (value)
67659
67652
  {
67660
- this ._countPrimitives = this .getExecutionContext () .getCountPrimitives () && value;
67653
+ this ._countPrimitives = (this .getExecutionContext () ?.getCountPrimitives () ?? true) && value;
67661
67654
  },
67662
67655
  getSpecificationVersion ()
67663
67656
  {
@@ -68411,10 +68404,12 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
68411
68404
  for (const route of Array .from (this [X3DExecutionContext_routes]))
68412
68405
  this .deleteRoute (route);
68413
68406
 
68414
- this .externprotos .clear ();
68415
- this .protos .clear ();
68416
- this .importedNodes .clear ();
68417
- this .routes .clear ();
68407
+ this [_outerNode] = null;
68408
+ this [_namedNodes] .clear ();
68409
+ this [_importedNodes] .clear ();
68410
+ this [_protos] .clear ();
68411
+ this [_externprotos] .clear ();
68412
+ this [X3DExecutionContext_routes] .clear ();
68418
68413
 
68419
68414
  Base_X3DBaseNode .prototype .dispose .call (this);
68420
68415
  },
@@ -68562,7 +68557,6 @@ x_ite_Namespace .add ("X3DExecutionContext", "x_ite/Execution/X3DExecutionContex
68562
68557
 
68563
68558
 
68564
68559
 
68565
-
68566
68560
  const
68567
68561
  X3DPrototypeInstance_fieldDefinitions = Symbol .for ("X_ITE.X3DBaseNode.fieldDefinitions"),
68568
68562
  _protoNode = Symbol (),
@@ -68572,12 +68566,14 @@ const
68572
68566
  function X3DPrototypeInstance (executionContext, protoNode)
68573
68567
  {
68574
68568
  this [_protoNode] = protoNode;
68575
- this [X3DPrototypeInstance_fieldDefinitions] = new Base_FieldDefinitionArray (protoNode .getFieldDefinitions ());
68569
+ this [X3DPrototypeInstance_fieldDefinitions] = protoNode .getFieldDefinitions ();
68576
68570
  this [X3DPrototypeInstance_body] = null;
68577
68571
 
68578
68572
  Core_X3DNode .call (this, executionContext);
68579
68573
 
68580
68574
  this .addType (Base_X3DConstants .X3DPrototypeInstance);
68575
+
68576
+ this .setProtoNode (protoNode, true);
68581
68577
  }
68582
68578
 
68583
68579
  Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3DNode .prototype),
@@ -68594,7 +68590,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68594
68590
  {
68595
68591
  Core_X3DNode .prototype .initialize .call (this);
68596
68592
 
68597
- this .setProtoNode (this [_protoNode]);
68593
+ this .realize ();
68598
68594
  },
68599
68595
  construct ()
68600
68596
  {
@@ -68606,8 +68602,6 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68606
68602
 
68607
68603
  this [X3DPrototypeInstance_body] ?.dispose ();
68608
68604
 
68609
- this [X3DPrototypeInstance_fieldDefinitions] .assign (protoNode .getFieldDefinitions ());
68610
-
68611
68605
  // If there is a proto, the externproto is completely loaded.
68612
68606
 
68613
68607
  if (protoNode .isExternProto)
@@ -68631,11 +68625,11 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68631
68625
  {
68632
68626
  const field = this .getField (protoField .getName ());
68633
68627
 
68634
- // Continue if something is wrong.
68628
+ // Continue if different.
68635
68629
  if (field .getAccessType () !== protoField .getAccessType ())
68636
68630
  continue;
68637
68631
 
68638
- // Continue if something is wrong.
68632
+ // Continue if different.
68639
68633
  if (field .getType () !== protoField .getType ())
68640
68634
  continue;
68641
68635
 
@@ -68648,7 +68642,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68648
68642
  continue;
68649
68643
 
68650
68644
  // Has IS references.
68651
- if (field .hasReferences ())
68645
+ if (field .getReferences () .size)
68652
68646
  continue;
68653
68647
 
68654
68648
  // Default value of protoField is different from field.
@@ -68666,6 +68660,21 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68666
68660
  }
68667
68661
  }
68668
68662
 
68663
+ if (this .isInitialized ())
68664
+ this .realize ();
68665
+
68666
+ protoNode ._updateInstances .removeInterest ("construct", this);
68667
+ protoNode ._updateInstances .addInterest ("update", this);
68668
+ },
68669
+ realize ()
68670
+ {
68671
+ const
68672
+ protoNode = this [_protoNode],
68673
+ proto = protoNode .getProtoDeclaration ();
68674
+
68675
+ if (protoNode .isExternProto && protoNode .checkLoadState () !== Base_X3DConstants .COMPLETE_STATE)
68676
+ return;
68677
+
68669
68678
  // Create execution context.
68670
68679
 
68671
68680
  this [X3DPrototypeInstance_body] = new Execution_X3DExecutionContext (proto .getExecutionContext (), this);
@@ -68680,11 +68689,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68680
68689
 
68681
68690
  this [X3DPrototypeInstance_body] .setup ();
68682
68691
 
68683
- if (this .isInitialized ())
68684
- Base_X3DChildObject .prototype .addEvent .call (this);
68685
-
68686
- protoNode ._updateInstances .removeInterest ("construct", this);
68687
- protoNode ._updateInstances .addInterest ("update", this);
68692
+ Base_X3DChildObject .prototype .addEvent .call (this);
68688
68693
  },
68689
68694
  update ()
68690
68695
  {
@@ -68804,7 +68809,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68804
68809
  {
68805
68810
  return this [_protoNode];
68806
68811
  },
68807
- setProtoNode (protoNode)
68812
+ setProtoNode (protoNode, construct = false)
68808
68813
  {
68809
68814
  // Disconnect old proto node.
68810
68815
 
@@ -68816,12 +68821,13 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68816
68821
 
68817
68822
  // Get fields from new proto node.
68818
68823
 
68819
- this [_protoNode] = protoNode;
68820
- this [_protoFields] = Array .from (protoNode .getUserDefinedFields ());
68824
+ this [_protoNode] = protoNode;
68825
+ this [X3DPrototypeInstance_fieldDefinitions] = protoNode .getFieldDefinitions ();
68826
+ this [_protoFields] = Array .from (protoNode .getUserDefinedFields ());
68821
68827
 
68822
68828
  protoNode ._name_changed .addFieldInterest (this ._typeName_changed);
68823
68829
 
68824
- protoNode === oldProtoNode ? this .construct () : this .update ();
68830
+ construct ? this .construct () : this .update ();
68825
68831
  },
68826
68832
  getBody ()
68827
68833
  {
@@ -83887,18 +83893,24 @@ Object .assign (Object .setPrototypeOf (Inline .prototype, Core_X3DChildNode .pr
83887
83893
  },
83888
83894
  setInternalScene (scene)
83889
83895
  {
83890
- this .scene .setExecutionContext (this .scene);
83891
- this .scene .setLive (false);
83892
- this .scene .rootNodes .removeFieldInterest (this .groupNode ._children);
83896
+ if (this .scene !== this .getBrowser () .getDefaultScene ())
83897
+ this .scene .dispose ();
83893
83898
 
83894
83899
  // Set new scene.
83895
83900
 
83896
83901
  this .scene = scene;
83897
83902
 
83898
- this .scene .setExecutionContext (this .getExecutionContext ());
83899
- this .scene .setLive (this .getLive () .getValue ());
83900
- this .scene .rootNodes .addFieldInterest (this .groupNode ._children);
83901
- this .groupNode ._children = this .scene .rootNodes;
83903
+ if (this .scene !== this .getBrowser () .getDefaultScene ())
83904
+ {
83905
+ this .scene .setExecutionContext (this .getExecutionContext ());
83906
+ this .scene .setLive (this .getLive () .getValue ());
83907
+ this .scene .rootNodes .addFieldInterest (this .groupNode ._children);
83908
+ this .groupNode ._children = this .scene .rootNodes;
83909
+ }
83910
+ else
83911
+ {
83912
+ this .groupNode ._children .length = 0;
83913
+ }
83902
83914
 
83903
83915
  this .getBrowser () .addBrowserEvent ();
83904
83916
  },
@@ -90112,7 +90124,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
90112
90124
  x_ite_Namespace .add ("X3DShaderNode", "x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
90113
90125
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
90114
90126
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90115
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(575);
90127
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(250);
90116
90128
  /*******************************************************************************
90117
90129
  *
90118
90130
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -93058,11 +93070,10 @@ const ShaderSource =
93058
93070
  PRAGMA = "#pragma\\s+.*?\\n",
93059
93071
  PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
93060
93072
  VERSION = "#version\\s+.*?\\n",
93061
- EXTENSION = "#extension\\s+.*?\\n",
93062
- ANY = ".*";
93073
+ EXTENSION = "#extension\\s+.*?\\n";
93063
93074
 
93064
93075
  const
93065
- GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
93076
+ GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)", "s"),
93066
93077
  match = source .match (GLSL);
93067
93078
 
93068
93079
  // const
@@ -93167,10 +93178,10 @@ const ShaderSource =
93167
93178
  // Adjust precision of struct types;
93168
93179
 
93169
93180
  const
93170
- matchFloat = source .match (/\s*precision\s+(lowp|mediump|highp)\s+float\s*;/),
93171
- matchInt = source .match (/\s*precision\s+(lowp|mediump|highp)\s+int\s*;/),
93172
- precisionFloat = matchFloat ? matchFloat [1] : "mediump",
93173
- precisionInt = matchInt ? matchInt [1] : "mediump";
93181
+ matchFloat = source .match (/\s*precision\s+(lowp|mediump|highp)\s+float\s*;/),
93182
+ matchInt = source .match (/\s*precision\s+(lowp|mediump|highp)\s+int\s*;/),
93183
+ precisionFloat = matchFloat ?.[1] ?? "mediump",
93184
+ precisionInt = matchInt ?.[1] ?? "mediump";
93174
93185
 
93175
93186
  const types = Types_glsl
93176
93187
  .replace (/mediump\s+(float|vec2|vec3|mat3|mat4)/g, precisionFloat + " $1")
@@ -93178,7 +93189,7 @@ const ShaderSource =
93178
93189
 
93179
93190
  const lines = (match [1] .match (/\n/g) || [ ]) .length + 1;
93180
93191
 
93181
- return match [1] + constants + definitions + types + "#line " + (lines + 1) + " -1\n" + match [2];
93192
+ return `${match [1]}${constants}${definitions}${types}#line ${lines + 1} -1\n${source .substring (match [0] .length)}`;
93182
93193
  },
93183
93194
  };
93184
93195
 
@@ -95821,7 +95832,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95821
95832
  x_ite_Namespace .add ("ShaderCompiler", "x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
95822
95833
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
95823
95834
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95824
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(575);
95835
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(250);
95825
95836
  /*******************************************************************************
95826
95837
  *
95827
95838
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96478,7 +96489,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96478
96489
  x_ite_Namespace .add ("X3DAppearanceNode", "x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
96479
96490
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
96480
96491
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96481
- /* provided dependency */ var Appearance_$ = __webpack_require__(575);
96492
+ /* provided dependency */ var Appearance_$ = __webpack_require__(250);
96482
96493
  /*******************************************************************************
96483
96494
  *
96484
96495
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105430,8 +105441,8 @@ const GifMedia_default_ = GifMedia;
105430
105441
  x_ite_Namespace .add ("GifMedia", "x_ite/Browser/Texturing/GifMedia", GifMedia_default_);
105431
105442
  /* harmony default export */ const Texturing_GifMedia = (GifMedia_default_);
105432
105443
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
105433
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(575);
105434
- /* provided dependency */ var SuperGif = __webpack_require__(280);
105444
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(250);
105445
+ /* provided dependency */ var SuperGif = __webpack_require__(389);
105435
105446
  /*******************************************************************************
105436
105447
  *
105437
105448
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107090,6 +107101,30 @@ Object .assign (Object .setPrototypeOf (TextureCoordinate .prototype, Texturing_
107090
107101
  {
107091
107102
  return this .length;
107092
107103
  },
107104
+ get1Point (index, result)
107105
+ {
107106
+ if (index < this .length)
107107
+ {
107108
+ const point = this .point;
107109
+
107110
+ index *= 2;
107111
+
107112
+ return result .set (point [index], point [index + 1], 0, 1);
107113
+ }
107114
+ else
107115
+ {
107116
+ return result .set (0, 0, 0, 1);
107117
+ }
107118
+ },
107119
+ set1Point: (function ()
107120
+ {
107121
+ const point = new Numbers_Vector2 ();
107122
+
107123
+ return function (index, { x, y, w })
107124
+ {
107125
+ this ._point [index] = point .set (x, y) .divide (w);
107126
+ };
107127
+ })(),
107093
107128
  addPointToChannel (index, array)
107094
107129
  {
107095
107130
  if (index >= 0 && this .length)
@@ -108815,7 +108850,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
108815
108850
  x_ite_Namespace .add ("gettext", "locale/gettext", gettext_default_);
108816
108851
  /* harmony default export */ const gettext = (gettext_default_);
108817
108852
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
108818
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(575);
108853
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(250);
108819
108854
  /*******************************************************************************
108820
108855
  *
108821
108856
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -109388,7 +109423,7 @@ const TextureQuality_default_ = TextureQuality;
109388
109423
  x_ite_Namespace .add ("TextureQuality", "x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
109389
109424
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
109390
109425
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
109391
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(575);
109426
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(250);
109392
109427
  /*******************************************************************************
109393
109428
  *
109394
109429
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -109982,7 +110017,7 @@ const RenderingProperties_default_ = RenderingProperties;
109982
110017
  x_ite_Namespace .add ("RenderingProperties", "x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
109983
110018
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
109984
110019
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
109985
- /* provided dependency */ var Notification_$ = __webpack_require__(575);
110020
+ /* provided dependency */ var Notification_$ = __webpack_require__(250);
109986
110021
  /*******************************************************************************
109987
110022
  *
109988
110023
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -110105,8 +110140,8 @@ const Notification_default_ = Notification;
110105
110140
  x_ite_Namespace .add ("Notification", "x_ite/Browser/Core/Notification", Notification_default_);
110106
110141
  /* harmony default export */ const Core_Notification = (Notification_default_);
110107
110142
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
110108
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(347);
110109
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(575);
110143
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(226);
110144
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(250);
110110
110145
  /*******************************************************************************
110111
110146
  *
110112
110147
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111660,7 +111695,7 @@ const
111660
111695
 
111661
111696
  function X3DScene (browser)
111662
111697
  {
111663
- Execution_X3DExecutionContext .call (this, this, null, browser);
111698
+ Execution_X3DExecutionContext .call (this, null, null, browser);
111664
111699
 
111665
111700
  this .addType (Base_X3DConstants .X3DScene)
111666
111701
 
@@ -111696,10 +111731,6 @@ function X3DScene (browser)
111696
111731
 
111697
111732
  Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecutionContext .prototype),
111698
111733
  {
111699
- isMainScene ()
111700
- {
111701
- return this === this .getExecutionContext ();
111702
- },
111703
111734
  isScene ()
111704
111735
  {
111705
111736
  return true;
@@ -111732,10 +111763,8 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
111732
111763
  {
111733
111764
  if (this [_worldURL] .match (/^(?:data|blob):/))
111734
111765
  {
111735
- if (this .isMainScene ())
111736
- return this .getBrowser () .getBaseURL ();
111737
-
111738
- return this .getExecutionContext () .getBaseURL ();
111766
+ return this .getExecutionContext () ?.getBaseURL ()
111767
+ ?? this .getBrowser () .getBaseURL ();
111739
111768
  }
111740
111769
 
111741
111770
  return this [_worldURL];
@@ -112582,7 +112611,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112582
112611
  {
112583
112612
  setExecutionContext (executionContext)
112584
112613
  {
112585
- if (!this .isMainScene ())
112614
+ if (this .getExecutionContext ())
112586
112615
  {
112587
112616
  const scene = this .getScene ();
112588
112617
 
@@ -112592,7 +112621,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112592
112621
 
112593
112622
  Execution_X3DExecutionContext .prototype .setExecutionContext .call (this, executionContext);
112594
112623
 
112595
- if (!this .isMainScene ())
112624
+ if (this .getExecutionContext ())
112596
112625
  {
112597
112626
  const scene = this .getScene ();
112598
112627
 
@@ -112621,15 +112650,12 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112621
112650
 
112622
112651
  this ._loadCount = this [_loadingObjects] .size;
112623
112652
 
112624
- const
112625
- browser = this .getBrowser (),
112626
- scene = this .getScene ();
112653
+ const browser = this .getBrowser ();
112627
112654
 
112628
112655
  if (this === browser .getExecutionContext ())
112629
112656
  browser .addLoadingObject (node);
112630
112657
 
112631
- if (!this .isMainScene ())
112632
- scene .addLoadingObject (node);
112658
+ this .getScene () ?.addLoadingObject (node);
112633
112659
  },
112634
112660
  removeLoadingObject (node)
112635
112661
  {
@@ -112640,15 +112666,12 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112640
112666
 
112641
112667
  this ._loadCount = this [_loadingObjects] .size;
112642
112668
 
112643
- const
112644
- browser = this .getBrowser (),
112645
- scene = this .getScene ();
112669
+ const browser = this .getBrowser ();
112646
112670
 
112647
112671
  if (this === browser .getExecutionContext ())
112648
112672
  browser .removeLoadingObject (node);
112649
112673
 
112650
- if (!this .isMainScene ())
112651
- scene .removeLoadingObject (node);
112674
+ this .getScene () ?.removeLoadingObject (node);
112652
112675
  },
112653
112676
  });
112654
112677
 
@@ -112687,6 +112710,11 @@ Object .defineProperties (X3DScene .prototype,
112687
112710
  get: X3DScene .prototype .getWorldURL,
112688
112711
  enumerable: true,
112689
112712
  },
112713
+ baseURL:
112714
+ {
112715
+ get: X3DScene .prototype .getBaseURL,
112716
+ enumerable: true,
112717
+ },
112690
112718
  units:
112691
112719
  {
112692
112720
  get: X3DScene .prototype .getUnits,
@@ -112867,7 +112895,7 @@ const DataStorage_default_ = DataStorage;
112867
112895
  x_ite_Namespace .add ("DataStorage", "standard/Utility/DataStorage", DataStorage_default_);
112868
112896
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
112869
112897
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
112870
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(575);
112898
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(250);
112871
112899
  /*******************************************************************************
112872
112900
  *
112873
112901
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115390,8 +115418,8 @@ const X3DViewer_default_ = X3DViewer;
115390
115418
  x_ite_Namespace .add ("X3DViewer", "x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
115391
115419
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
115392
115420
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
115393
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(431);
115394
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(575);
115421
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(496);
115422
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(250);
115395
115423
  /*******************************************************************************
115396
115424
  *
115397
115425
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116263,8 +116291,8 @@ const ExamineViewer_default_ = ExamineViewer;
116263
116291
  x_ite_Namespace .add ("ExamineViewer", "x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
116264
116292
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
116265
116293
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
116266
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(431);
116267
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(575);
116294
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(496);
116295
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(250);
116268
116296
  /*******************************************************************************
116269
116297
  *
116270
116298
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117273,8 +117301,8 @@ const FlyViewer_default_ = FlyViewer;
117273
117301
  x_ite_Namespace .add ("FlyViewer", "x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
117274
117302
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
117275
117303
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
117276
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(431);
117277
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(575);
117304
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(496);
117305
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(250);
117278
117306
  /*******************************************************************************
117279
117307
  *
117280
117308
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117605,8 +117633,8 @@ const NoneViewer_default_ = NoneViewer;
117605
117633
  x_ite_Namespace .add ("NoneViewer", "x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
117606
117634
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
117607
117635
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
117608
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(431);
117609
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(575);
117636
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(496);
117637
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(250);
117610
117638
  /*******************************************************************************
117611
117639
  *
117612
117640
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118592,7 +118620,6 @@ Object .assign (X3DNetworkingContext .prototype,
118592
118620
  // Inline node's empty scene.
118593
118621
 
118594
118622
  this [_defaultScene] = this .createScene ();
118595
- this [_defaultScene] .setLive (true);
118596
118623
 
118597
118624
  this .getDefaultScene = function () { return this [_defaultScene]; };
118598
118625
 
@@ -118745,8 +118772,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
118745
118772
  x_ite_Namespace .add ("X3DPickingContext", "x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
118746
118773
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
118747
118774
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
118748
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(431);
118749
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(575);
118775
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(496);
118776
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(250);
118750
118777
  /*******************************************************************************
118751
118778
  *
118752
118779
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120050,7 +120077,7 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
120050
120077
  x_ite_Namespace .add ("MultiSampleFrameBuffer", "x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
120051
120078
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
120052
120079
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
120053
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(575);
120080
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(250);
120054
120081
  /*******************************************************************************
120055
120082
  *
120056
120083
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120998,7 +121025,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
120998
121025
  x_ite_Namespace .add ("X3DSoundContext", "x_ite/Browser/Sound/X3DSoundContext", X3DSoundContext_default_);
120999
121026
  /* harmony default export */ const Sound_X3DSoundContext = (X3DSoundContext_default_);
121000
121027
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
121001
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(575);
121028
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(250);
121002
121029
  const KTXDecoder_default_ = class KTXDecoder
121003
121030
  {
121004
121031
  constructor (gl, externalKtxlib, scriptDir)
@@ -122552,7 +122579,7 @@ const Components_default_ = Components;
122552
122579
  x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
122553
122580
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
122554
122581
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
122555
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(575);
122582
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(250);
122556
122583
  /*******************************************************************************
122557
122584
  * MIT License
122558
122585
  *
@@ -122582,6 +122609,7 @@ x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
122582
122609
 
122583
122610
 
122584
122611
 
122612
+
122585
122613
  class DOMIntegration
122586
122614
  {
122587
122615
  constructor (browser)
@@ -122620,7 +122648,7 @@ class DOMIntegration
122620
122648
 
122621
122649
  // Now also attached node property to each node element.
122622
122650
 
122623
- const scene = browser .createScene ();
122651
+ const scene = new Execution_X3DScene (browser);
122624
122652
 
122625
122653
  this .parser = new Parser_XMLParser (scene);
122626
122654
 
@@ -123685,7 +123713,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
123685
123713
  x_ite_Namespace .add ("SupportedProfiles", "x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
123686
123714
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
123687
123715
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
123688
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(575);
123716
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(250);
123689
123717
  /*******************************************************************************
123690
123718
  *
123691
123719
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124073,6 +124101,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124073
124101
  }
124074
124102
 
124075
124103
  scene .setup ();
124104
+ scene .setLive (true);
124076
124105
 
124077
124106
  return scene;
124078
124107
  },
@@ -124116,7 +124145,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124116
124145
 
124117
124146
  // Detach scene from parent.
124118
124147
 
124119
- scene .setExecutionContext (scene);
124148
+ scene .setExecutionContext (null);
124120
124149
  scene .setLive (this .isLive ());
124121
124150
 
124122
124151
  // Replace.
@@ -124156,14 +124185,13 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124156
124185
  scene = fileLoader .createX3DFromString (worldURL, `#VRML V2.0 utf8\n\n${vrmlSyntax}`);
124157
124186
 
124158
124187
  if (!external)
124159
- {
124160
124188
  scene .setExecutionContext (currentScene);
124161
- scene .setLive (true);
124162
- }
124189
+
124190
+ scene .setLive (true);
124163
124191
 
124164
124192
  return scene .rootNodes;
124165
124193
  },
124166
- createX3DFromString: async function (x3dSyntax)
124194
+ async createX3DFromString (x3dSyntax)
124167
124195
  {
124168
124196
  x3dSyntax = String (x3dSyntax);
124169
124197
 
@@ -124179,10 +124207,9 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124179
124207
  });
124180
124208
 
124181
124209
  if (!external)
124182
- {
124183
124210
  scene .setExecutionContext (currentScene);
124184
- scene .setLive (true);
124185
- }
124211
+
124212
+ scene .setLive (true);
124186
124213
 
124187
124214
  return scene;
124188
124215
  },
@@ -124216,19 +124243,18 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124216
124243
  {
124217
124244
  this .removeLoadingObject (fileLoader);
124218
124245
 
124219
- if (scene)
124220
- {
124221
- // Handle getLive for script scenes here:
124246
+ if (!scene)
124247
+ return;
124222
124248
 
124223
- if (!external)
124224
- {
124225
- scene .setExecutionContext (currentScene);
124226
- scene .setLive (true);
124227
- }
124249
+ // Handle getLive for script scenes here:
124228
124250
 
124229
- // Wait until scene is completely loaded, scene ._loadCount must be 0.
124230
- field .setValue (scene .rootNodes);
124231
- }
124251
+ if (!external)
124252
+ scene .setExecutionContext (currentScene);
124253
+
124254
+ scene .setLive (true);
124255
+
124256
+ // Wait until scene is completely loaded, scene ._loadCount must be 0.
124257
+ field .setValue (scene .rootNodes);
124232
124258
  });
124233
124259
  },
124234
124260
  createX3DFromURL (url, node, event)
@@ -124257,10 +124283,9 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124257
124283
  if (scene)
124258
124284
  {
124259
124285
  if (!external)
124260
- {
124261
124286
  scene .setExecutionContext (currentScene);
124262
- scene .setLive (true);
124263
- }
124287
+
124288
+ scene .setLive (true);
124264
124289
 
124265
124290
  resolve (scene);
124266
124291
  }
@@ -124429,43 +124454,45 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124429
124454
  for (const callback of this [_browserCallbacks] .get (event) .values ())
124430
124455
  callback (event);
124431
124456
  },
124432
- importDocument (dom)
124457
+ async importDocument (dom)
124433
124458
  {
124434
124459
  const
124435
124460
  currentScene = this .currentScene,
124436
- scene = this .createScene (),
124461
+ scene = new Execution_X3DScene (this),
124437
124462
  external = this .isExternal ();
124438
124463
 
124439
- if (!external)
124440
- {
124441
- scene .setExecutionContext (currentScene);
124442
- scene .setLive (true);
124443
- }
124444
-
124445
124464
  const parser = new Parser_XMLParser (scene);
124446
124465
 
124447
124466
  parser .setInput (dom)
124448
124467
 
124449
- return new Promise (parser .parseIntoScene .bind (parser));
124468
+ await new Promise (parser .parseIntoScene .bind (parser));
124469
+
124470
+ if (!external)
124471
+ scene .setExecutionContext (currentScene);
124472
+
124473
+ scene .isLive (true);
124474
+
124475
+ return scene;
124450
124476
  },
124451
- importJS (json)
124477
+ async importJS (json)
124452
124478
  {
124453
124479
  const
124454
124480
  currentScene = this .currentScene,
124455
- scene = this .createScene (),
124481
+ scene = new Execution_X3DScene (this),
124456
124482
  external = this .isExternal ();
124457
124483
 
124458
- if (!external)
124459
- {
124460
- scene .setExecutionContext (currentScene);
124461
- scene .setLive (true);
124462
- }
124463
-
124464
124484
  const parser = new Parser_JSONParser (scene);
124465
124485
 
124466
124486
  parser .setInput (json);
124467
124487
 
124468
- return new Promise (parser .parseIntoScene .bind (parser));
124488
+ await new Promise (parser .parseIntoScene .bind (parser));
124489
+
124490
+ if (!external)
124491
+ scene .setExecutionContext (currentScene);
124492
+
124493
+ scene .isLive (true);
124494
+
124495
+ return scene;
124469
124496
  },
124470
124497
  getBrowserProperty (name)
124471
124498
  {
@@ -124777,7 +124804,7 @@ const X3DBrowser_default_ = X3DBrowser;
124777
124804
  x_ite_Namespace .add ("X3DBrowser", "x_ite/Browser/X3DBrowser", X3DBrowser_default_);
124778
124805
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
124779
124806
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
124780
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(575);
124807
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(250);
124781
124808
  /*******************************************************************************
124782
124809
  *
124783
124810
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124914,8 +124941,8 @@ const X3DCanvasElement_default_ = X3DCanvasElement;
124914
124941
  x_ite_Namespace .add ("X3DCanvasElement", "x_ite/X3DCanvasElement", X3DCanvasElement_default_);
124915
124942
  /* harmony default export */ const x_ite_X3DCanvasElement = (X3DCanvasElement_default_);
124916
124943
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124917
- /* provided dependency */ var jquery_$ = __webpack_require__(575);
124918
- /* provided dependency */ var pako = __webpack_require__(319);
124944
+ /* provided dependency */ var jquery_$ = __webpack_require__(250);
124945
+ /* provided dependency */ var pako = __webpack_require__(82);
124919
124946
  Object .assign (jquery_$,
124920
124947
  {
124921
124948
  decodeText (input)
@@ -124992,14 +125019,14 @@ const jquery_default_ = jquery_$;
124992
125019
  x_ite_Namespace .add ("jquery", "lib/jquery", jquery_default_);
124993
125020
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
124994
125021
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
124995
- /* provided dependency */ var libtess_libtess = __webpack_require__(932);
125022
+ /* provided dependency */ var libtess_libtess = __webpack_require__(979);
124996
125023
  const libtess_default_ = libtess_libtess;
124997
125024
  ;
124998
125025
 
124999
125026
  x_ite_Namespace .add ("libtess", "lib/libtess", libtess_default_);
125000
125027
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
125001
125028
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
125002
- /* provided dependency */ var X3D_$ = __webpack_require__(575);
125029
+ /* provided dependency */ var X3D_$ = __webpack_require__(250);
125003
125030
  /*******************************************************************************
125004
125031
  *
125005
125032
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -125307,7 +125334,7 @@ Object .assign (X3D,
125307
125334
 
125308
125335
  // Assign X3D to global namespace.
125309
125336
 
125310
- window [Symbol .for ("X_ITE.X3D-9.5.2")] = x_ite_X3D;
125337
+ window [Symbol .for ("X_ITE.X3D-9.6.1")] = x_ite_X3D;
125311
125338
 
125312
125339
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
125313
125340