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.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v9.5.2 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v9.6.1 */(function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if(typeof define === 'function' && define.amd)
@@ -11,10 +11,10 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 347:
14
+ /***/ 226:
15
15
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
16
16
 
17
- /* provided dependency */ var jQuery = __webpack_require__(575);
17
+ /* provided dependency */ var jQuery = __webpack_require__(250);
18
18
  /**
19
19
  * @preserve jquery.fullscreen 1.1.5
20
20
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -210,7 +210,7 @@ installFullScreenHandlers();
210
210
 
211
211
  /***/ }),
212
212
 
213
- /***/ 431:
213
+ /***/ 496:
214
214
  /***/ ((module, exports, __webpack_require__) => {
215
215
 
216
216
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -224,7 +224,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
224
224
  (function (factory) {
225
225
  if ( true ) {
226
226
  // AMD. Register as an anonymous module.
227
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(575)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
227
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(250)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
228
228
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
229
229
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
230
230
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -435,7 +435,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
435
435
 
436
436
  /***/ }),
437
437
 
438
- /***/ 575:
438
+ /***/ 250:
439
439
  /***/ (function(module, exports) {
440
440
 
441
441
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11159,7 +11159,7 @@ return jQuery;
11159
11159
 
11160
11160
  /***/ }),
11161
11161
 
11162
- /***/ 932:
11162
+ /***/ 979:
11163
11163
  /***/ ((module) => {
11164
11164
 
11165
11165
  /**
@@ -15938,7 +15938,7 @@ if (true) {
15938
15938
 
15939
15939
  /***/ }),
15940
15940
 
15941
- /***/ 319:
15941
+ /***/ 82:
15942
15942
  /***/ (function(__unused_webpack_module, exports) {
15943
15943
 
15944
15944
 
@@ -19183,7 +19183,7 @@ if (true) {
19183
19183
 
19184
19184
  /***/ }),
19185
19185
 
19186
- /***/ 280:
19186
+ /***/ 389:
19187
19187
  /***/ (function(module, exports) {
19188
19188
 
19189
19189
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20311,7 +20311,7 @@ Object .defineProperty (Namespace, "add",
20311
20311
  }
20312
20312
  else
20313
20313
  {
20314
- const X3D = window [Symbol .for ("X_ITE.X3D-9.5.2")];
20314
+ const X3D = window [Symbol .for ("X_ITE.X3D-9.6.1")];
20315
20315
 
20316
20316
  if (X3D)
20317
20317
  X3D [name] = module;
@@ -21447,6 +21447,151 @@ const DEVELOPMENT_default_ = false;
21447
21447
 
21448
21448
  x_ite_Namespace .add ("DEVELOPMENT", "x_ite/DEVELOPMENT", DEVELOPMENT_default_);
21449
21449
  /* harmony default export */ const DEVELOPMENT = (DEVELOPMENT_default_);
21450
+ ;// CONCATENATED MODULE: ./src/x_ite/Features.js
21451
+ /*******************************************************************************
21452
+ *
21453
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
21454
+ *
21455
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
21456
+ *
21457
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
21458
+ *
21459
+ * The copyright notice above does not evidence any actual of intended
21460
+ * publication of such source code, and is an unpublished work by create3000.
21461
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
21462
+ * create3000.
21463
+ *
21464
+ * No permission is granted to copy, distribute, or create derivative works from
21465
+ * the contents of this software, in whole or in part, without the prior written
21466
+ * permission of create3000.
21467
+ *
21468
+ * NON-MILITARY USE ONLY
21469
+ *
21470
+ * All create3000 software are effectively free software with a non-military use
21471
+ * restriction. It is free. Well commented source is provided. You may reuse the
21472
+ * source in any way you please with the exception anything that uses it must be
21473
+ * marked to indicate is contains 'non-military use only' components.
21474
+ *
21475
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
21476
+ *
21477
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
21478
+ *
21479
+ * This file is part of the X_ITE Project.
21480
+ *
21481
+ * X_ITE is free software: you can redistribute it and/or modify it under the
21482
+ * terms of the GNU General Public License version 3 only, as published by the
21483
+ * Free Software Foundation.
21484
+ *
21485
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
21486
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
21487
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
21488
+ * details (a copy is included in the LICENSE file that accompanied this code).
21489
+ *
21490
+ * You should have received a copy of the GNU General Public License version 3
21491
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
21492
+ * copy of the GPLv3 License.
21493
+ *
21494
+ * For Silvio, Joy and Adi.
21495
+ *
21496
+ ******************************************************************************/
21497
+
21498
+
21499
+
21500
+ const MODULE = false;
21501
+
21502
+ const Features =
21503
+ {
21504
+ get ENVIRONMENT ()
21505
+ {
21506
+ if (DEVELOPMENT)
21507
+ return "BROWSER";
21508
+
21509
+ if (MODULE)
21510
+ return "MODULE";
21511
+
21512
+ if ((typeof process === "object") && (process .release .name .search (/node|io.js/) !== -1))
21513
+ return "NODE";
21514
+
21515
+ return "BROWSER";
21516
+ },
21517
+ WEAK_REF: typeof WeakRef !== "undefined",
21518
+ FINALIZATION_REGISTRY: typeof FinalizationRegistry !== "undefined",
21519
+ };
21520
+
21521
+ (() =>
21522
+ {
21523
+ // Added at February 2022
21524
+ // https://github.com/tc39/proposal-relative-indexing-method#polyfill
21525
+
21526
+ function at (n)
21527
+ {
21528
+ // ToInteger() abstract op
21529
+ n = Math.trunc(n) || 0;
21530
+ // Allow negative indexing from the end
21531
+ if (n < 0) n += this.length;
21532
+ // OOB access is guaranteed to return undefined
21533
+ if (n < 0 || n >= this.length) return undefined;
21534
+ // Otherwise, this is just normal property access
21535
+ return this[n];
21536
+ }
21537
+
21538
+ const TypedArray = Reflect .getPrototypeOf (Int8Array);
21539
+ for (const C of [Array, String, TypedArray])
21540
+ {
21541
+ if (C .prototype .at === undefined)
21542
+ {
21543
+ Object .defineProperty (C .prototype, "at",
21544
+ {
21545
+ value: at,
21546
+ writable: true,
21547
+ enumerable: false,
21548
+ configurable: true,
21549
+ });
21550
+ }
21551
+ }
21552
+ })();
21553
+
21554
+ (() =>
21555
+ {
21556
+ if (!Features .WEAK_REF)
21557
+ {
21558
+ if (DEVELOPMENT)
21559
+ console .info ("Added shim for WeakRef.");
21560
+
21561
+ window .WeakRef = class WeakRef
21562
+ {
21563
+ #object;
21564
+
21565
+ constructor (object)
21566
+ {
21567
+ this .#object = object;
21568
+ }
21569
+
21570
+ deref ()
21571
+ {
21572
+ return this .#object;
21573
+ }
21574
+ };
21575
+ }
21576
+
21577
+ if (!Features .FINALIZATION_REGISTRY)
21578
+ {
21579
+ if (DEVELOPMENT)
21580
+ console .info ("Added shim for FinalizationRegistry.");
21581
+
21582
+ window .FinalizationRegistry = class FinalizationRegistry
21583
+ {
21584
+ register () { }
21585
+ unregister () { }
21586
+ };
21587
+ }
21588
+ })();
21589
+
21590
+ const Features_default_ = Features;
21591
+ ;
21592
+
21593
+ x_ite_Namespace .add ("Features", "x_ite/Features", Features_default_);
21594
+ /* harmony default export */ const x_ite_Features = (Features_default_);
21450
21595
  ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DObject.js
21451
21596
  /*******************************************************************************
21452
21597
  *
@@ -21501,6 +21646,7 @@ x_ite_Namespace .add ("DEVELOPMENT", "x_ite/DEVELOPMENT", DEVELOPMENT_default_);
21501
21646
  const
21502
21647
  _name = Symbol (),
21503
21648
  _interests = Symbol (),
21649
+ _registry = Symbol (),
21504
21650
  _userData = Symbol ();
21505
21651
 
21506
21652
  function X3DObject () { }
@@ -21509,6 +21655,7 @@ Object .assign (X3DObject .prototype,
21509
21655
  {
21510
21656
  [_name]: "",
21511
21657
  [_interests]: new Map (),
21658
+ [_registry]: new FinalizationRegistry (Function .prototype),
21512
21659
  [_userData]: new Map (),
21513
21660
  getId ()
21514
21661
  {
@@ -21540,15 +21687,24 @@ Object .assign (X3DObject .prototype,
21540
21687
  interestId = X3DObject .getInterestId (callbackName, object),
21541
21688
  callback = object [callbackName];
21542
21689
 
21690
+ if (this [_registry] === X3DObject .prototype [_registry])
21691
+ this [_registry] = new FinalizationRegistry (interestId => this [_interests] .delete (interestId));
21692
+
21693
+ const weakRef = new WeakRef (object);
21694
+
21695
+ // Copy interests in case of this function is called during a `processInterests` call.
21543
21696
  this [_interests] = new Map (this [_interests]);
21544
21697
 
21545
- this [_interests] .set (interestId, callback .bind (object, ... args, this));
21698
+ this [_interests] .set (interestId, { callback, weakRef, args });
21699
+ this [_registry] .register (object, interestId, object);
21546
21700
  },
21547
21701
  removeInterest (callbackName, object)
21548
21702
  {
21703
+ // Copy interests in case of this function is called during a `processInterests` call.
21549
21704
  this [_interests] = new Map (this [_interests]);
21550
21705
 
21551
21706
  this [_interests] .delete (X3DObject .getInterestId (callbackName, object));
21707
+ this [_registry] .unregister (object);
21552
21708
  },
21553
21709
  getInterests ()
21554
21710
  {
@@ -21556,8 +21712,13 @@ Object .assign (X3DObject .prototype,
21556
21712
  },
21557
21713
  processInterests ()
21558
21714
  {
21559
- for (const interest of this [_interests] .values ())
21560
- interest ();
21715
+ for (const { callback, weakRef, args } of this [_interests] .values ())
21716
+ {
21717
+ const object = weakRef .deref ();
21718
+
21719
+ if (object)
21720
+ callback .call (object, ... args, this);
21721
+ }
21561
21722
  },
21562
21723
  getUserData (key)
21563
21724
  {
@@ -21656,7 +21817,7 @@ Object .defineProperties (X3DObject .prototype,
21656
21817
 
21657
21818
  Object .assign (X3DObject,
21658
21819
  {
21659
- getId: DEVELOPMENT ? (() =>
21820
+ getId: x_ite_Features .FINALIZATION_REGISTRY ? (() =>
21660
21821
  {
21661
21822
  const
21662
21823
  map = new WeakMap (),
@@ -21712,7 +21873,7 @@ const X3DObject_default_ = X3DObject;
21712
21873
 
21713
21874
  x_ite_Namespace .add ("X3DObject", "x_ite/Base/X3DObject", X3DObject_default_);
21714
21875
  /* harmony default export */ const Base_X3DObject = (X3DObject_default_);
21715
- ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DChildObject.js
21876
+ ;// CONCATENATED MODULE: ./src/x_ite/Base/IterableWeakSet.js
21716
21877
  /*******************************************************************************
21717
21878
  *
21718
21879
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -21762,243 +21923,259 @@ x_ite_Namespace .add ("X3DObject", "x_ite/Base/X3DObject", X3DObject_default_);
21762
21923
 
21763
21924
 
21764
21925
 
21765
-
21766
- const
21767
- _modificationTime = Symbol (),
21768
- _tainted = Symbol (),
21769
- _parents = Symbol (),
21770
- _private = Symbol (),
21771
- _registry = Symbol ();
21772
-
21773
- function X3DChildObject ()
21926
+ const IterableWeakSet_default_ = x_ite_Features .WEAK_REF && x_ite_Features .FINALIZATION_REGISTRY ?
21927
+ /**
21928
+ * IterableWeakSet is a writable set-like class.
21929
+ */
21930
+ class IterableWeakSet
21774
21931
  {
21775
- Base_X3DObject .call (this);
21776
- }
21932
+ #callback = undefined;
21933
+ #map = new Map ();
21934
+ #registry = new FinalizationRegistry (id =>
21935
+ {
21936
+ this .#map .delete (id);
21937
+ this .#callback ?.();
21938
+ });
21777
21939
 
21778
- if (DEVELOPMENT)
21779
- {
21780
- Object .assign (Object .setPrototypeOf (X3DChildObject .prototype, Base_X3DObject .prototype),
21940
+ constructor (callback)
21781
21941
  {
21782
- [_modificationTime]: 0,
21783
- [_tainted]: false,
21784
- [_parents]: new Map (),
21785
- [_private]: false,
21786
- [_registry]: new FinalizationRegistry (Function .prototype),
21787
- isInitializable ()
21788
- {
21789
- return true;
21790
- },
21791
- isInput ()
21792
- {
21793
- return false;
21794
- },
21795
- isOutput ()
21796
- {
21797
- return false;
21798
- },
21799
- setModificationTime (value)
21800
- {
21801
- this [_modificationTime] = value;
21802
- },
21803
- getModificationTime ()
21804
- {
21805
- return this [_modificationTime];
21806
- },
21807
- setTainted (value)
21808
- {
21809
- this [_tainted] = value;
21810
- },
21811
- isTainted ()
21812
- {
21813
- return this [_tainted];
21814
- },
21815
- addEvent ()
21816
- {
21817
- for (const parent of this [_parents] .values ())
21818
- parent .deref () ?.addEvent (this);
21819
- },
21820
- addEventObject (field, event)
21821
- {
21822
- for (const parent of this [_parents] .values ())
21823
- parent .deref () ?.addEventObject (this, event);
21824
- },
21825
- processEvent ()
21826
- {
21827
- this .setTainted (false);
21828
- this .processInterests ();
21829
- },
21830
- isPrivate ()
21831
- {
21832
- return this [_private];
21833
- },
21834
- setPrivate (value)
21835
- {
21836
- this [_private] = value;
21837
- },
21838
- collectCloneCount ()
21839
- {
21840
- let cloneCount = 0;
21942
+ this .#callback = callback;
21943
+ }
21841
21944
 
21842
- for (const weakRef of this [_parents] .values ())
21843
- {
21844
- const parent = weakRef .deref ();
21945
+ *[Symbol .iterator] ()
21946
+ {
21947
+ yield* this .values ();
21948
+ }
21845
21949
 
21846
- if (!parent)
21847
- continue;
21950
+ get size ()
21951
+ {
21952
+ return this .#map .size;
21953
+ }
21848
21954
 
21849
- if (parent [_private])
21850
- continue;
21955
+ add (object)
21956
+ {
21957
+ this .#map .set (object .getId (), new WeakRef (object));
21958
+ this .#registry .register (object, object .getId (), object);
21959
+ this .#callback ?.();
21960
+ }
21851
21961
 
21852
- cloneCount += parent .collectCloneCount ();
21853
- }
21962
+ clear ()
21963
+ {
21964
+ for (const object of this .values ())
21965
+ this .#registry .unregister (object);
21854
21966
 
21855
- return cloneCount;
21856
- },
21857
- addParent (parent)
21858
- {
21859
- if (this [_parents] === X3DChildObject .prototype [_parents])
21860
- {
21861
- this [_parents] = new Map ();
21862
- this [_registry] = new FinalizationRegistry (id =>
21863
- {
21864
- this [_parents] .delete (id);
21865
- this .parentsChanged ();
21866
- });
21867
- }
21967
+ this .#map .clear ();
21968
+ this .#callback ?.();
21969
+ }
21868
21970
 
21869
- this [_parents] .set (parent .getId (), new WeakRef (parent));
21870
- this [_registry] .register (parent, parent .getId (), parent);
21971
+ delete (object)
21972
+ {
21973
+ this .#map .delete (object .getId ());
21974
+ this .#registry .unregister (object);
21975
+ this .#callback ?.();
21976
+ }
21871
21977
 
21872
- this .parentsChanged ();
21873
- },
21874
- removeParent (parent)
21875
- {
21876
- this [_parents] .delete (parent .getId ());
21877
- this [_registry] .unregister (parent);
21978
+ forEach (callbackFn, thisArg)
21979
+ {
21980
+ for (const object of this .values ())
21981
+ callbackFn .call (thisArg, object, object, this);
21982
+ }
21878
21983
 
21879
- this .parentsChanged ();
21880
- },
21881
- getParents ()
21882
- {
21883
- const parents = new Set ();
21984
+ has (object)
21985
+ {
21986
+ return this .#map .has (object .getId ());
21987
+ }
21884
21988
 
21885
- for (const weakRef of this [_parents] .values ())
21886
- parents .add (weakRef .deref ())
21989
+ *entries ()
21990
+ {
21991
+ for (const object of this .values ())
21992
+ yield [object, object];
21993
+ }
21887
21994
 
21888
- parents .delete (undefined);
21995
+ *keys ()
21996
+ {
21997
+ yield *this .values ();
21998
+ }
21889
21999
 
21890
- return parents;
21891
- },
21892
- parentsChanged () { },
21893
- dispose ()
22000
+ *values ()
22001
+ {
22002
+ for (const weakRef of this .#map .values ())
21894
22003
  {
21895
- this [_parents] .clear ();
22004
+ const object = weakRef .deref ();
21896
22005
 
21897
- Base_X3DObject .prototype .dispose .call (this);
21898
- },
21899
- });
22006
+ if (object)
22007
+ yield object;
22008
+ }
22009
+ }
21900
22010
  }
21901
- else
22011
+ :
22012
+ class IterableWeakSet extends Set
21902
22013
  {
21903
- Object .assign (Object .setPrototypeOf (X3DChildObject .prototype, Base_X3DObject .prototype),
22014
+ constructor ()
21904
22015
  {
21905
- [_modificationTime]: 0,
21906
- [_tainted]: false,
21907
- [_parents]: new Set (),
21908
- [_private]: false,
21909
- isInitializable ()
21910
- {
21911
- return true;
21912
- },
21913
- isInput ()
21914
- {
21915
- return false;
21916
- },
21917
- isOutput ()
21918
- {
21919
- return false;
21920
- },
21921
- setModificationTime (value)
21922
- {
21923
- this [_modificationTime] = value;
21924
- },
21925
- getModificationTime ()
21926
- {
21927
- return this [_modificationTime];
21928
- },
21929
- setTainted (value)
21930
- {
21931
- this [_tainted] = value;
21932
- },
21933
- isTainted ()
21934
- {
21935
- return this [_tainted];
21936
- },
21937
- addEvent ()
21938
- {
21939
- for (const parent of this [_parents])
21940
- parent .addEvent (this);
21941
- },
21942
- addEventObject (field, event)
21943
- {
21944
- for (const parent of this [_parents])
21945
- parent .addEventObject (this, event);
21946
- },
21947
- processEvent ()
21948
- {
21949
- this .setTainted (false);
21950
- this .processInterests ();
21951
- },
21952
- isPrivate ()
21953
- {
21954
- return this [_private];
21955
- },
21956
- setPrivate (value)
21957
- {
21958
- this [_private] = value;
21959
- },
21960
- collectCloneCount ()
21961
- {
21962
- let cloneCount = 0;
22016
+ super ();
22017
+ }
22018
+ };
22019
+ ;
21963
22020
 
21964
- for (const parent of this [_parents])
21965
- {
21966
- if (parent [_private])
21967
- continue;
22021
+ x_ite_Namespace .add ("IterableWeakSet", "x_ite/Base/IterableWeakSet", IterableWeakSet_default_);
22022
+ /* harmony default export */ const IterableWeakSet = (IterableWeakSet_default_);
22023
+ ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DChildObject.js
22024
+ /*******************************************************************************
22025
+ *
22026
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
22027
+ *
22028
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
22029
+ *
22030
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
22031
+ *
22032
+ * The copyright notice above does not evidence any actual of intended
22033
+ * publication of such source code, and is an unpublished work by create3000.
22034
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
22035
+ * create3000.
22036
+ *
22037
+ * No permission is granted to copy, distribute, or create derivative works from
22038
+ * the contents of this software, in whole or in part, without the prior written
22039
+ * permission of create3000.
22040
+ *
22041
+ * NON-MILITARY USE ONLY
22042
+ *
22043
+ * All create3000 software are effectively free software with a non-military use
22044
+ * restriction. It is free. Well commented source is provided. You may reuse the
22045
+ * source in any way you please with the exception anything that uses it must be
22046
+ * marked to indicate is contains 'non-military use only' components.
22047
+ *
22048
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
22049
+ *
22050
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
22051
+ *
22052
+ * This file is part of the X_ITE Project.
22053
+ *
22054
+ * X_ITE is free software: you can redistribute it and/or modify it under the
22055
+ * terms of the GNU General Public License version 3 only, as published by the
22056
+ * Free Software Foundation.
22057
+ *
22058
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
22059
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
22060
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
22061
+ * details (a copy is included in the LICENSE file that accompanied this code).
22062
+ *
22063
+ * You should have received a copy of the GNU General Public License version 3
22064
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
22065
+ * copy of the GPLv3 License.
22066
+ *
22067
+ * For Silvio, Joy and Adi.
22068
+ *
22069
+ ******************************************************************************/
21968
22070
 
21969
- cloneCount += parent .collectCloneCount ();
21970
- }
21971
22071
 
21972
- return cloneCount;
21973
- },
21974
- addParent (parent)
21975
- {
21976
- if (this [_parents] === X3DChildObject .prototype [_parents])
21977
- this [_parents] = new Set ();
21978
22072
 
21979
- this [_parents] .add (parent);
21980
22073
 
21981
- this .parentsChanged ();
21982
- },
21983
- removeParent (parent)
21984
- {
21985
- this [_parents] .delete (parent);
22074
+ const
22075
+ _modificationTime = Symbol (),
22076
+ _tainted = Symbol (),
22077
+ _parents = Symbol (),
22078
+ _private = Symbol ();
21986
22079
 
21987
- this .parentsChanged ();
21988
- },
21989
- getParents ()
21990
- {
21991
- return this [_parents];
21992
- },
21993
- parentsChanged () { },
21994
- dispose ()
22080
+ function X3DChildObject ()
22081
+ {
22082
+ Base_X3DObject .call (this);
22083
+ }
22084
+
22085
+ Object .assign (Object .setPrototypeOf (X3DChildObject .prototype, Base_X3DObject .prototype),
22086
+ {
22087
+ [_modificationTime]: 0,
22088
+ [_tainted]: false,
22089
+ [_parents]: new IterableWeakSet (),
22090
+ [_private]: false,
22091
+ isInitializable ()
22092
+ {
22093
+ return true;
22094
+ },
22095
+ isInput ()
22096
+ {
22097
+ return false;
22098
+ },
22099
+ isOutput ()
22100
+ {
22101
+ return false;
22102
+ },
22103
+ setModificationTime (value)
22104
+ {
22105
+ this [_modificationTime] = value;
22106
+ },
22107
+ getModificationTime ()
22108
+ {
22109
+ return this [_modificationTime];
22110
+ },
22111
+ setTainted (value)
22112
+ {
22113
+ this [_tainted] = value;
22114
+ },
22115
+ isTainted ()
22116
+ {
22117
+ return this [_tainted];
22118
+ },
22119
+ addEvent ()
22120
+ {
22121
+ for (const parent of this [_parents])
22122
+ parent .addEvent (this);
22123
+ },
22124
+ addEventObject (field, event)
22125
+ {
22126
+ for (const parent of this [_parents])
22127
+ parent .addEventObject (this, event);
22128
+ },
22129
+ processEvent ()
22130
+ {
22131
+ this .setTainted (false);
22132
+ this .processInterests ();
22133
+ },
22134
+ isPrivate ()
22135
+ {
22136
+ return this [_private];
22137
+ },
22138
+ setPrivate (value)
22139
+ {
22140
+ this [_private] = value;
22141
+ },
22142
+ collectCloneCount ()
22143
+ {
22144
+ let cloneCount = 0;
22145
+
22146
+ for (const parent of this [_parents])
21995
22147
  {
21996
- this [_parents] .clear ();
22148
+ if (parent [_private])
22149
+ continue;
21997
22150
 
21998
- Base_X3DObject .prototype .dispose .call (this);
21999
- },
22000
- });
22001
- }
22151
+ cloneCount += parent .collectCloneCount ();
22152
+ }
22153
+
22154
+ return cloneCount;
22155
+ },
22156
+ addParent (parent)
22157
+ {
22158
+ if (this [_parents] === X3DChildObject .prototype [_parents])
22159
+ this [_parents] = new IterableWeakSet (() => this .parentsChanged ());
22160
+
22161
+ this [_parents] .add (parent);
22162
+ },
22163
+ removeParent (parent)
22164
+ {
22165
+ this [_parents] .delete (parent);
22166
+ },
22167
+ getParents ()
22168
+ {
22169
+ return this [_parents];
22170
+ },
22171
+ parentsChanged () { },
22172
+ dispose ()
22173
+ {
22174
+ this [_parents] .clear ();
22175
+
22176
+ Base_X3DObject .prototype .dispose .call (this);
22177
+ },
22178
+ });
22002
22179
 
22003
22180
  for (const key of Object .keys (X3DChildObject .prototype))
22004
22181
  Object .defineProperty (X3DChildObject .prototype, key, { enumerable: false });
@@ -22694,6 +22871,7 @@ x_ite_Namespace .add ("FieldDefinitionArray", "x_ite/Base/FieldDefinitionArray",
22694
22871
 
22695
22872
 
22696
22873
 
22874
+
22697
22875
  const
22698
22876
  _value = Symbol (),
22699
22877
  _accessType = Symbol (),
@@ -22719,12 +22897,12 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22719
22897
  [_value]: null,
22720
22898
  [_accessType]: Base_X3DConstants .initializeOnly,
22721
22899
  [_unit]: null,
22722
- [_references]: new Set (),
22900
+ [_references]: new IterableWeakSet (),
22723
22901
  [_referencesCallbacks]: new Map (),
22724
- [_fieldInterests]: new Set (),
22902
+ [_fieldInterests]: new IterableWeakSet (),
22725
22903
  [_fieldCallbacks]: new Map (),
22726
- [_inputRoutes]: new Set (),
22727
- [_outputRoutes]: new Set (),
22904
+ [_inputRoutes]: new IterableWeakSet (),
22905
+ [_outputRoutes]: new IterableWeakSet (),
22728
22906
  [_routeCallbacks]: new Map (),
22729
22907
  [_uniformLocation]: null,
22730
22908
  create ()
@@ -22796,22 +22974,19 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22796
22974
  {
22797
22975
  return this [_unit];
22798
22976
  },
22799
- hasReferences ()
22800
- {
22801
- return this [_references] .size !== 0;
22802
- },
22803
22977
  isReference (accessType)
22804
22978
  {
22805
22979
  return accessType === this [_accessType] || accessType === Base_X3DConstants .inputOutput;
22806
22980
  },
22807
22981
  addReference (reference)
22808
22982
  {
22809
- const references = this .getReferences ();
22983
+ if (this [_references] === X3DField .prototype [_references])
22984
+ this [_references] = new IterableWeakSet ();
22810
22985
 
22811
- if (references .has (reference))
22986
+ if (this [_references] .has (reference))
22812
22987
  return;
22813
22988
 
22814
- references .add (reference);
22989
+ this [_references] .add (reference);
22815
22990
 
22816
22991
  // Create IS relationship
22817
22992
 
@@ -22863,9 +23038,6 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22863
23038
  },
22864
23039
  getReferences ()
22865
23040
  {
22866
- if (this [_references] === X3DField .prototype [_references])
22867
- this [_references] = new Set ();
22868
-
22869
23041
  return this [_references];
22870
23042
  },
22871
23043
  addReferencesCallback (key, object)
@@ -22892,7 +23064,7 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22892
23064
  addFieldInterest (field)
22893
23065
  {
22894
23066
  if (this [_fieldInterests] === X3DField .prototype [_fieldInterests])
22895
- this [_fieldInterests] = new Set ();
23067
+ this [_fieldInterests] = new IterableWeakSet ();
22896
23068
 
22897
23069
  this [_fieldInterests] .add (field);
22898
23070
  },
@@ -22923,7 +23095,7 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22923
23095
  addInputRoute (route)
22924
23096
  {
22925
23097
  if (this [_inputRoutes] === X3DField .prototype [_inputRoutes])
22926
- this [_inputRoutes] = new Set ();
23098
+ this [_inputRoutes] = new IterableWeakSet ();
22927
23099
 
22928
23100
  this [_inputRoutes] .add (route);
22929
23101
 
@@ -22942,7 +23114,7 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22942
23114
  addOutputRoute (route)
22943
23115
  {
22944
23116
  if (this [_outputRoutes] === X3DField .prototype [_outputRoutes])
22945
- this [_outputRoutes] = new Set ();
23117
+ this [_outputRoutes] = new IterableWeakSet ();
22946
23118
 
22947
23119
  this [_outputRoutes] .add (route);
22948
23120
 
@@ -25861,14 +26033,14 @@ Object .assign (Matrix3 .prototype,
25861
26033
  {
25862
26034
  case 1:
25863
26035
  {
25864
- if (translation)
26036
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25865
26037
  this .translate (translation);
25866
26038
 
25867
26039
  break;
25868
26040
  }
25869
26041
  case 2:
25870
26042
  {
25871
- if (translation)
26043
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25872
26044
  this .translate (translation);
25873
26045
 
25874
26046
  if (rotation)
@@ -25878,7 +26050,7 @@ Object .assign (Matrix3 .prototype,
25878
26050
  }
25879
26051
  case 3:
25880
26052
  {
25881
- if (translation)
26053
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25882
26054
  this .translate (translation);
25883
26055
 
25884
26056
  if (rotation)
@@ -25891,7 +26063,7 @@ Object .assign (Matrix3 .prototype,
25891
26063
  }
25892
26064
  case 4:
25893
26065
  {
25894
- if (translation)
26066
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25895
26067
  this .translate (translation);
25896
26068
 
25897
26069
  if (rotation)
@@ -25916,7 +26088,7 @@ Object .assign (Matrix3 .prototype,
25916
26088
  case 5:
25917
26089
  {
25918
26090
  // P' = T * C * R * SR * S * -SR * -C * P
25919
- if (translation)
26091
+ if (translation && !translation .equals (Numbers_Vector2 .Zero))
25920
26092
  this .translate (translation);
25921
26093
 
25922
26094
  const hasCenter = center && !center .equals (Numbers_Vector2 .Zero);
@@ -28184,14 +28356,14 @@ Object .assign (Matrix4_Matrix4 .prototype,
28184
28356
  {
28185
28357
  case 1:
28186
28358
  {
28187
- if (translation)
28359
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28188
28360
  this .translate (translation);
28189
28361
 
28190
28362
  break;
28191
28363
  }
28192
28364
  case 2:
28193
28365
  {
28194
- if (translation)
28366
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28195
28367
  this .translate (translation);
28196
28368
 
28197
28369
  if (rotation && !rotation .equals (Numbers_Rotation4 .Identity))
@@ -28201,7 +28373,7 @@ Object .assign (Matrix4_Matrix4 .prototype,
28201
28373
  }
28202
28374
  case 3:
28203
28375
  {
28204
- if (translation)
28376
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28205
28377
  this .translate (translation);
28206
28378
 
28207
28379
  if (rotation && !rotation .equals (Numbers_Rotation4 .Identity))
@@ -28214,7 +28386,7 @@ Object .assign (Matrix4_Matrix4 .prototype,
28214
28386
  }
28215
28387
  case 4:
28216
28388
  {
28217
- if (translation)
28389
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28218
28390
  this .translate (translation);
28219
28391
 
28220
28392
  if (rotation && !rotation .equals (Numbers_Rotation4 .Identity))
@@ -28239,7 +28411,7 @@ Object .assign (Matrix4_Matrix4 .prototype,
28239
28411
  case 5:
28240
28412
  {
28241
28413
  // P' = T * C * R * SR * S * -SR * -C * P
28242
- if (translation)
28414
+ if (translation && !translation .equals (Numbers_Vector3 .Zero))
28243
28415
  this .translate (translation);
28244
28416
 
28245
28417
  const hasCenter = center && !center .equals (Numbers_Vector3 .Zero);
@@ -29008,39 +29180,12 @@ x_ite_Namespace .add ("SFMatrix4", "x_ite/Fields/SFMatrix4", SFMatrix4_default_)
29008
29180
 
29009
29181
 
29010
29182
 
29011
-
29012
29183
  const cache = new WeakMap ();
29013
29184
 
29014
- const SFNodeCache = DEVELOPMENT ?
29015
- {
29016
- get (baseNode)
29017
- {
29018
- const node = cache .get (baseNode) ?.deref ();
29185
+ // const r = new FinalizationRegistry (t => console .error (`object deleted ${--i} ${t}`));
29186
+ // let i = 0;
29019
29187
 
29020
- if (node)
29021
- {
29022
- return node;
29023
- }
29024
- else
29025
- {
29026
- const node = new Fields_SFNode (baseNode);
29027
-
29028
- node .dispose = dispose;
29029
-
29030
- cache .set (baseNode, new WeakRef (node));
29031
-
29032
- return node;
29033
- }
29034
- },
29035
- add (baseNode, node)
29036
- {
29037
- cache .set (baseNode, new WeakRef (node));
29038
- },
29039
- delete (baseNode)
29040
- {
29041
- cache .delete (baseNode);
29042
- },
29043
- } :
29188
+ const SFNodeCache =
29044
29189
  {
29045
29190
  get (baseNode)
29046
29191
  {
@@ -29054,15 +29199,23 @@ const SFNodeCache = DEVELOPMENT ?
29054
29199
  {
29055
29200
  const node = new Fields_SFNode (baseNode);
29056
29201
 
29057
- node .dispose = dispose;
29202
+ this .set (baseNode, node);
29058
29203
 
29059
- cache .set (baseNode, node);
29204
+ // i += 2;
29205
+ // console .warn (`baseNode ${i} ${baseNode .getTypeName ()}`);
29206
+ // r .register (baseNode, `baseNode ${baseNode .getTypeName ()}`);
29207
+ // r .register (node, `node ${baseNode .getTypeName ()}`);
29060
29208
 
29061
29209
  return node;
29062
29210
  }
29063
29211
  },
29064
- add (baseNode, node)
29212
+ set (baseNode, node)
29065
29213
  {
29214
+ node .dispose = dispose;
29215
+
29216
+ // WeakMap allows associating data to objects in a way that doesn't prevent
29217
+ // the key objects from being collected, even if the values reference the keys.
29218
+ // https://developer.mozilla.org/en-US/docs/Web/JavaScript/Reference/Global_Objects/WeakMap
29066
29219
  cache .set (baseNode, node);
29067
29220
  },
29068
29221
  delete (baseNode)
@@ -29079,7 +29232,7 @@ function dispose ()
29079
29232
 
29080
29233
  Fields_SFNode .prototype .dispose .call (this);
29081
29234
 
29082
- cache .delete (value);
29235
+ SFNodeCache .delete (value);
29083
29236
  }
29084
29237
 
29085
29238
  const SFNodeCache_default_ = SFNodeCache;
@@ -30706,92 +30859,6 @@ const SFVec4_default_ = SFVec4;
30706
30859
 
30707
30860
  x_ite_Namespace .add ("SFVec4", "x_ite/Fields/SFVec4", SFVec4_default_);
30708
30861
  /* harmony default export */ const Fields_SFVec4 = (SFVec4_default_);
30709
- ;// CONCATENATED MODULE: ./src/shim.js
30710
- /*******************************************************************************
30711
- *
30712
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
30713
- *
30714
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
30715
- *
30716
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
30717
- *
30718
- * The copyright notice above does not evidence any actual of intended
30719
- * publication of such source code, and is an unpublished work by create3000.
30720
- * This material contains CONFIDENTIAL INFORMATION that is the property of
30721
- * create3000.
30722
- *
30723
- * No permission is granted to copy, distribute, or create derivative works from
30724
- * the contents of this software, in whole or in part, without the prior written
30725
- * permission of create3000.
30726
- *
30727
- * NON-MILITARY USE ONLY
30728
- *
30729
- * All create3000 software are effectively free software with a non-military use
30730
- * restriction. It is free. Well commented source is provided. You may reuse the
30731
- * source in any way you please with the exception anything that uses it must be
30732
- * marked to indicate is contains 'non-military use only' components.
30733
- *
30734
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
30735
- *
30736
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
30737
- *
30738
- * This file is part of the X_ITE Project.
30739
- *
30740
- * X_ITE is free software: you can redistribute it and/or modify it under the
30741
- * terms of the GNU General Public License version 3 only, as published by the
30742
- * Free Software Foundation.
30743
- *
30744
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
30745
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
30746
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
30747
- * details (a copy is included in the LICENSE file that accompanied this code).
30748
- *
30749
- * You should have received a copy of the GNU General Public License version 3
30750
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
30751
- * copy of the GPLv3 License.
30752
- *
30753
- * For Silvio, Joy and Adi.
30754
- *
30755
- ******************************************************************************/
30756
-
30757
- (() =>
30758
- {
30759
- // Added at February 2022
30760
- // https://github.com/tc39/proposal-relative-indexing-method#polyfill
30761
-
30762
- function at (n)
30763
- {
30764
- // ToInteger() abstract op
30765
- n = Math.trunc(n) || 0;
30766
- // Allow negative indexing from the end
30767
- if (n < 0) n += this.length;
30768
- // OOB access is guaranteed to return undefined
30769
- if (n < 0 || n >= this.length) return undefined;
30770
- // Otherwise, this is just normal property access
30771
- return this[n];
30772
- }
30773
-
30774
- const TypedArray = Reflect .getPrototypeOf (Int8Array);
30775
- for (const C of [Array, String, TypedArray])
30776
- {
30777
- if (C .prototype .at === undefined)
30778
- {
30779
- Object .defineProperty (C .prototype, "at",
30780
- {
30781
- value: at,
30782
- writable: true,
30783
- enumerable: false,
30784
- configurable: true,
30785
- });
30786
- }
30787
- }
30788
- })();
30789
-
30790
- const shim_default_ = undefined;
30791
- ;
30792
-
30793
- x_ite_Namespace .add ("shim", "shim", shim_default_);
30794
- /* harmony default export */ const shim = ((/* unused pure expression or super */ null && (shim_default_)));
30795
30862
  ;// CONCATENATED MODULE: ./src/x_ite/Base/X3DArrayField.js
30796
30863
  /*******************************************************************************
30797
30864
  *
@@ -31279,26 +31346,29 @@ Object .assign (Object .setPrototypeOf (X3DObjectArrayField .prototype, Base_X3D
31279
31346
 
31280
31347
  return result;
31281
31348
  },
31282
- resize (size, value, silently)
31349
+ resize (newLength, value, silently)
31283
31350
  {
31284
31351
  const
31285
31352
  target = this [X3DObjectArrayField_target],
31286
31353
  array = target .getValue (),
31287
31354
  length = array .length;
31288
31355
 
31289
- if (size < length)
31356
+ if (newLength < 0)
31357
+ throw new RangeError ("Invalid array length");
31358
+
31359
+ if (newLength < length)
31290
31360
  {
31291
- for (let i = size; i < length; ++ i)
31361
+ for (let i = newLength; i < length; ++ i)
31292
31362
  target .removeChildObject (array [i]);
31293
31363
 
31294
- array .length = size;
31364
+ array .length = newLength;
31295
31365
 
31296
31366
  if (!silently)
31297
31367
  target .addEvent ();
31298
31368
  }
31299
- else if (size > length)
31369
+ else if (newLength > length)
31300
31370
  {
31301
- for (let i = length; i < size; ++ i)
31371
+ for (let i = length; i < newLength; ++ i)
31302
31372
  {
31303
31373
  const field = new (target .getSingleType ()) ();
31304
31374
 
@@ -31319,7 +31389,6 @@ Object .assign (Object .setPrototypeOf (X3DObjectArrayField .prototype, Base_X3D
31319
31389
  },
31320
31390
  removeChildObject (value)
31321
31391
  {
31322
- value .removeParent (this [X3DObjectArrayField_proxy]);
31323
31392
  value .dispose ();
31324
31393
  },
31325
31394
  reverse ()
@@ -32040,6 +32109,9 @@ Object .assign (Object .setPrototypeOf (X3DTypedArrayField .prototype, Base_X3DA
32040
32109
  length = target [_length],
32041
32110
  components = target .getComponents ();
32042
32111
 
32112
+ if (newLength < 0)
32113
+ throw new RangeError ("Invalid array length");
32114
+
32043
32115
  let array = target .getValue ();
32044
32116
 
32045
32117
  if (newLength < length)
@@ -33646,19 +33718,13 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33646
33718
  {
33647
33719
  return this [_browser];
33648
33720
  },
33649
- getMainScene ()
33650
- {
33651
- let scene = this [_executionContext] .getScene ();
33652
-
33653
- while (!scene .isMainScene ())
33654
- scene = scene .getScene ();
33655
-
33656
- return scene;
33657
- },
33658
33721
  getScene ()
33659
33722
  {
33660
33723
  let executionContext = this [_executionContext];
33661
33724
 
33725
+ if (!executionContext)
33726
+ return null;
33727
+
33662
33728
  while (!executionContext .isScene ())
33663
33729
  executionContext = executionContext .getExecutionContext ();
33664
33730
 
@@ -33670,10 +33736,13 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33670
33736
  },
33671
33737
  setExecutionContext (executionContext)
33672
33738
  {
33739
+ if (!this [_type] .includes (Base_X3DConstants .X3DScene))
33740
+ throw new Error (`${this .getTypeName ()}.setExecutionContext is not supported.`);
33741
+
33673
33742
  // Disconnect interests.
33674
33743
 
33675
- this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
33676
- this [_executionContext] .getLive () .removeInterest (_set_live__, this);
33744
+ this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
33745
+ this [_executionContext] ?.getLive () .removeInterest (_set_live__, this);
33677
33746
 
33678
33747
  // Currently only useful for Scene.
33679
33748
  this [_executionContext] = executionContext;
@@ -33683,8 +33752,8 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33683
33752
  if (this .getOuterNode ?.())
33684
33753
  this .getOuterNode () .getLive () .addInterest (_set_live__, this);
33685
33754
 
33686
- else if (this [_executionContext] !== this)
33687
- this [_executionContext] .getLive () .addInterest (_set_live__, this);
33755
+ else
33756
+ this [_executionContext] ?.getLive () .addInterest (_set_live__, this);
33688
33757
 
33689
33758
  this [_set_live__] ();
33690
33759
  },
@@ -33696,37 +33765,6 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33696
33765
  {
33697
33766
  return this [_type];
33698
33767
  },
33699
- create (executionContext = this [_executionContext])
33700
- {
33701
- return new (this .constructor) (executionContext);
33702
- },
33703
- copy (executionContext)
33704
- {
33705
- const copy = this .create (executionContext);
33706
-
33707
- for (const field of this [_predefinedFields])
33708
- copy .getPredefinedFields () .get (field .getName ()) .assign (field);
33709
-
33710
- if (this .canUserDefinedFields ())
33711
- {
33712
- for (const field of this [_userDefinedFields])
33713
- copy .addUserDefinedField (field .getAccessType (), field .getName (), field .copy ());
33714
- }
33715
-
33716
- copy .setup ();
33717
-
33718
- return copy;
33719
- },
33720
- // replaceWith (replacement, cache = false)
33721
- // {
33722
- // cache = cache && SFNodeCache .get (this);
33723
-
33724
- // for (const parent of new Set (this .getParents ()))
33725
- // {
33726
- // if (parent instanceof Fields .SFNode && parent !== cache)
33727
- // parent .setValue (replacement)
33728
- // }
33729
- // },
33730
33768
  setup ()
33731
33769
  {
33732
33770
  Object .freeze (this [_type]);
@@ -33800,8 +33838,8 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33800
33838
  if (this .getOuterNode ?.())
33801
33839
  this .getOuterNode () .getLive () .addInterest (_set_live__, this);
33802
33840
 
33803
- else if (this [_executionContext] !== this)
33804
- this [_executionContext] .getLive () .addInterest (_set_live__, this);
33841
+ else if (this !== this [_browser])
33842
+ this [_executionContext] ?.getLive () .addInterest (_set_live__, this);
33805
33843
 
33806
33844
  // Return field.
33807
33845
 
@@ -33815,7 +33853,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33815
33853
  if (this .getOuterNode ?.())
33816
33854
  return this [_live] && this .getOuterNode () .getLive () .getValue ();
33817
33855
 
33818
- else if (this !== this [_executionContext])
33856
+ else if (this [_executionContext] && this !== this [_browser])
33819
33857
  return this [_live] && this [_executionContext] .getLive () .getValue ();
33820
33858
 
33821
33859
  return this [_live];
@@ -34038,30 +34076,6 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34038
34076
 
34039
34077
  return !field .getModificationTime ();
34040
34078
  },
34041
- hasRoutes ()
34042
- {
34043
- /// Returns true if there are any routes from or to fields of this node, otherwise false.
34044
-
34045
- for (const field of this [_predefinedFields])
34046
- {
34047
- if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34048
- return true;
34049
- }
34050
-
34051
- for (const field of this [_userDefinedFields])
34052
- {
34053
- if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34054
- return true;
34055
- }
34056
-
34057
- for (const route of this [_executionContext] .getRoutes ())
34058
- {
34059
- if (route .getSourceNode () === this || route .getDestinationNode () === this)
34060
- return true;
34061
- }
34062
-
34063
- return false;
34064
- },
34065
34079
  getExtendedEventHandling ()
34066
34080
  {
34067
34081
  // Whether initializeOnly field are treated like inputOnly and inputOutput fields.
@@ -34126,11 +34140,16 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34126
34140
  {
34127
34141
  const time = this [_browser] .getCurrentTime ();
34128
34142
 
34129
- this [_executionContext] ._sceneGraph_changed = time;
34130
- this ._parents_changed = time;
34143
+ if (this [_executionContext])
34144
+ this [_executionContext] ._sceneGraph_changed = time;
34145
+
34146
+ this ._parents_changed = time;
34131
34147
  },
34132
34148
  dispose ()
34133
34149
  {
34150
+ this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
34151
+ this [_executionContext] ?.getLive () .removeInterest (_set_live__, this);
34152
+
34134
34153
  this .setLive (false);
34135
34154
 
34136
34155
  for (const field of this [_childObjects])
@@ -34211,7 +34230,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34211
34230
  x_ite_Namespace .add ("X3DBaseNode", "x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34212
34231
  /* harmony default export */ const Base_X3DBaseNode = (X3DBaseNode_default_);
34213
34232
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34214
- /* provided dependency */ var $ = __webpack_require__(575);
34233
+ /* provided dependency */ var $ = __webpack_require__(250);
34215
34234
  /*******************************************************************************
34216
34235
  *
34217
34236
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34348,7 +34367,7 @@ x_ite_Namespace .add ("Legacy", "x_ite/Browser/Legacy", Legacy_default_);
34348
34367
  *
34349
34368
  ******************************************************************************/
34350
34369
 
34351
- const BROWSER_VERSION_default_ = "9.5.2";
34370
+ const BROWSER_VERSION_default_ = "9.6.1";
34352
34371
  ;
34353
34372
 
34354
34373
  x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSION_default_);
@@ -34429,11 +34448,28 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34429
34448
  {
34430
34449
  return this .constructor .specificationRange;
34431
34450
  },
34451
+ create (executionContext = this .getExecutionContext ())
34452
+ {
34453
+ return new (this .constructor) (executionContext);
34454
+ },
34432
34455
  copy (instance)
34433
34456
  {
34434
- if (!instance || instance .getType () .includes (Base_X3DConstants .X3DExecutionContext))
34457
+ if (instance ?.getType () .includes (Base_X3DConstants .X3DExecutionContext) ?? true)
34435
34458
  {
34436
- return Base_X3DBaseNode .prototype .copy .call (this, instance);
34459
+ const copy = this .create (instance);
34460
+
34461
+ for (const field of this .getPredefinedFields ())
34462
+ copy .getPredefinedFields () .get (field .getName ()) .assign (field);
34463
+
34464
+ if (this .canUserDefinedFields ())
34465
+ {
34466
+ for (const field of this .getUserDefinedFields ())
34467
+ copy .addUserDefinedField (field .getAccessType (), field .getName (), field .copy ());
34468
+ }
34469
+
34470
+ copy .setup ();
34471
+
34472
+ return copy;
34437
34473
  }
34438
34474
  else
34439
34475
  {
@@ -34467,7 +34503,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34467
34503
  {
34468
34504
  const destinationField = copy .getPredefinedField (sourceField .getName ());
34469
34505
 
34470
- if (sourceField .hasReferences ())
34506
+ if (sourceField .getReferences () .size)
34471
34507
  {
34472
34508
  // IS relationship
34473
34509
 
@@ -34518,7 +34554,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34518
34554
  sourceField .getName (),
34519
34555
  destinationField);
34520
34556
 
34521
- if (sourceField .hasReferences ())
34557
+ if (sourceField .getReferences () .size)
34522
34558
  {
34523
34559
  // IS relationship
34524
34560
 
@@ -34577,6 +34613,30 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34577
34613
 
34578
34614
  return false;
34579
34615
  },
34616
+ hasRoutes ()
34617
+ {
34618
+ /// Returns true if there are any routes from or to fields of this node, otherwise false.
34619
+
34620
+ for (const field of this .getPredefinedFields ())
34621
+ {
34622
+ if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34623
+ return true;
34624
+ }
34625
+
34626
+ for (const field of this .getUserDefinedFields ())
34627
+ {
34628
+ if (field .getInputRoutes () .size || field .getOutputRoutes () .size)
34629
+ return true;
34630
+ }
34631
+
34632
+ for (const route of this .getExecutionContext () .getRoutes ())
34633
+ {
34634
+ if (route .getSourceNode () === this || route .getDestinationNode () === this)
34635
+ return true;
34636
+ }
34637
+
34638
+ return false;
34639
+ },
34580
34640
  getCloneCount ()
34581
34641
  {
34582
34642
  return Base_X3DBaseNode .prototype .collectCloneCount .call (this);
@@ -34865,7 +34925,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34865
34925
  else if (!Array .isArray (value) && value .valueOf () instanceof Object)
34866
34926
  {
34867
34927
  // Support for Numbers (Vector234, Color34, ...).
34868
-
34928
+
34869
34929
  value = Array .from (value);
34870
34930
  value .type = "double";
34871
34931
  }
@@ -35308,7 +35368,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35308
35368
  {
35309
35369
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35310
35370
  {
35311
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35371
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35312
35372
  mustOutputValue = !this .isDefaultValue (field);
35313
35373
  }
35314
35374
  }
@@ -35406,7 +35466,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35406
35466
  {
35407
35467
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35408
35468
  {
35409
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35469
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35410
35470
  mustOutputValue = true;
35411
35471
  }
35412
35472
  }
@@ -35665,7 +35725,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35665
35725
  {
35666
35726
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35667
35727
  {
35668
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35728
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35669
35729
  mustOutputValue = !this .isDefaultValue (field);
35670
35730
  }
35671
35731
  }
@@ -35794,7 +35854,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35794
35854
  {
35795
35855
  if (field .getAccessType () === Base_X3DConstants .inputOutput && field .getReferences () .size !== 0)
35796
35856
  {
35797
- if (![... field .getReferences ()] .some (reference => reference .isInitializable ()))
35857
+ if (!Array .from (field .getReferences ()) .some (reference => reference .isInitializable ()))
35798
35858
  mustOutputValue = true;
35799
35859
  }
35800
35860
  }
@@ -35949,7 +36009,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
35949
36009
 
35950
36010
  for (const field of references)
35951
36011
  {
35952
- const protoFields = [... field .getReferences ()];
36012
+ const protoFields = Array .from (field .getReferences ());
35953
36013
 
35954
36014
  for (const protoField of protoFields)
35955
36015
  {
@@ -36033,11 +36093,11 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
36033
36093
  {
36034
36094
  // Remove imported node if any.
36035
36095
 
36036
- if (!executionContext .isMainScene ())
36037
- {
36038
- const parentContext = executionContext .getExecutionContext ();
36096
+ const parentContext = executionContext .getExecutionContext ();
36039
36097
 
36040
- for (const importedNode of [... parentContext .getImportedNodes ()])
36098
+ if (parentContext)
36099
+ {
36100
+ for (const importedNode of Array .from (parentContext .getImportedNodes ()))
36041
36101
  {
36042
36102
  try
36043
36103
  {
@@ -36053,7 +36113,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
36053
36113
 
36054
36114
  // Remove exported node if any.
36055
36115
 
36056
- for (const exportedNode of [... executionContext .getExportedNodes ()])
36116
+ for (const exportedNode of Array .from (executionContext .getExportedNodes ()))
36057
36117
  {
36058
36118
  if (exportedNode .getLocalNode () === this)
36059
36119
  executionContext .removeExportedNode (exportedNode .getExportedName ());
@@ -36072,7 +36132,7 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
36072
36132
  if (!(secondParent instanceof x_ite_Fields .MFNode))
36073
36133
  continue;
36074
36134
 
36075
- secondParent .setValue ([... secondParent] .filter (node => node ?.getValue () !== this))
36135
+ secondParent .setValue (Array .from (secondParent) .filter (node => node ?.getValue () !== this))
36076
36136
  }
36077
36137
  }
36078
36138
 
@@ -38953,7 +39013,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
38953
39013
  x_ite_Namespace .add ("X3DProtoDeclaration", "x_ite/Prototype/X3DProtoDeclaration", X3DProtoDeclaration_default_);
38954
39014
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (X3DProtoDeclaration_default_);
38955
39015
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38956
- /* provided dependency */ var X3DParser_$ = __webpack_require__(575);
39016
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(250);
38957
39017
  /*******************************************************************************
38958
39018
  *
38959
39019
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39215,7 +39275,7 @@ const Expressions_default_ = Expressions;
39215
39275
  x_ite_Namespace .add ("Expressions", "x_ite/Parser/Expressions", Expressions_default_);
39216
39276
  /* harmony default export */ const Parser_Expressions = (Expressions_default_);
39217
39277
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
39218
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(575);
39278
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(250);
39219
39279
  /*******************************************************************************
39220
39280
  *
39221
39281
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -39288,7 +39348,7 @@ x_ite_Namespace .add ("Expressions", "x_ite/Parser/Expressions", Expressions_def
39288
39348
  const Grammar = Parser_Expressions ({
39289
39349
  // General
39290
39350
  Whitespaces: /[\x20\n,\t\r]+/gy,
39291
- Comment: /#.*?(?=[\n\r])/gy,
39351
+ Comment: /#.*?(?=[\n\r]|$)/gy,
39292
39352
  Break: /\r?\n/g,
39293
39353
 
39294
39354
  // Header
@@ -40458,7 +40518,7 @@ Object .assign (Object .setPrototypeOf (VRMLParser .prototype, Parser_X3DParser
40458
40518
  {
40459
40519
  ++ this .unknownLevel;
40460
40520
 
40461
- this .nodeBody (this .getExecutionContext () .createNode ("WorldInfo", false));
40521
+ this .nodeBody (this .getExecutionContext () .createNode ("MetadataBoolean", false));
40462
40522
 
40463
40523
  -- this .unknownLevel;
40464
40524
 
@@ -41915,7 +41975,7 @@ const VRMLParser_default_ = VRMLParser;
41915
41975
  x_ite_Namespace .add ("VRMLParser", "x_ite/Parser/VRMLParser", VRMLParser_default_);
41916
41976
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41917
41977
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41918
- /* provided dependency */ var XMLParser_$ = __webpack_require__(575);
41978
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(250);
41919
41979
  /*******************************************************************************
41920
41980
  *
41921
41981
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -43833,80 +43893,6 @@ const X3DOptimizer_default_ = X3DOptimizer;
43833
43893
 
43834
43894
  x_ite_Namespace .add ("X3DOptimizer", "x_ite/Parser/X3DOptimizer", X3DOptimizer_default_);
43835
43895
  /* harmony default export */ const Parser_X3DOptimizer = (X3DOptimizer_default_);
43836
- ;// CONCATENATED MODULE: ./src/x_ite/Features.js
43837
- /*******************************************************************************
43838
- *
43839
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
43840
- *
43841
- * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
43842
- *
43843
- * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
43844
- *
43845
- * The copyright notice above does not evidence any actual of intended
43846
- * publication of such source code, and is an unpublished work by create3000.
43847
- * This material contains CONFIDENTIAL INFORMATION that is the property of
43848
- * create3000.
43849
- *
43850
- * No permission is granted to copy, distribute, or create derivative works from
43851
- * the contents of this software, in whole or in part, without the prior written
43852
- * permission of create3000.
43853
- *
43854
- * NON-MILITARY USE ONLY
43855
- *
43856
- * All create3000 software are effectively free software with a non-military use
43857
- * restriction. It is free. Well commented source is provided. You may reuse the
43858
- * source in any way you please with the exception anything that uses it must be
43859
- * marked to indicate is contains 'non-military use only' components.
43860
- *
43861
- * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
43862
- *
43863
- * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
43864
- *
43865
- * This file is part of the X_ITE Project.
43866
- *
43867
- * X_ITE is free software: you can redistribute it and/or modify it under the
43868
- * terms of the GNU General Public License version 3 only, as published by the
43869
- * Free Software Foundation.
43870
- *
43871
- * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
43872
- * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
43873
- * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
43874
- * details (a copy is included in the LICENSE file that accompanied this code).
43875
- *
43876
- * You should have received a copy of the GNU General Public License version 3
43877
- * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
43878
- * copy of the GPLv3 License.
43879
- *
43880
- * For Silvio, Joy and Adi.
43881
- *
43882
- ******************************************************************************/
43883
-
43884
-
43885
-
43886
- const MODULE = false;
43887
-
43888
- const Features =
43889
- {
43890
- get ENVIRONMENT ()
43891
- {
43892
- if (DEVELOPMENT)
43893
- return "BROWSER";
43894
-
43895
- if (MODULE)
43896
- return "MODULE";
43897
-
43898
- if ((typeof process === "object") && (process .release .name .search (/node|io.js/) !== -1))
43899
- return "NODE";
43900
-
43901
- return "BROWSER";
43902
- },
43903
- };
43904
-
43905
- const Features_default_ = Features;
43906
- ;
43907
-
43908
- x_ite_Namespace .add ("Features", "x_ite/Features", Features_default_);
43909
- /* harmony default export */ const x_ite_Features = (Features_default_);
43910
43896
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Networking/URLs.js
43911
43897
  /*******************************************************************************
43912
43898
  *
@@ -44021,7 +44007,7 @@ const URLs_default_ = URLs;
44021
44007
  x_ite_Namespace .add ("URLs", "x_ite/Browser/Networking/URLs", URLs_default_);
44022
44008
  /* harmony default export */ const Networking_URLs = (URLs_default_);
44023
44009
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
44024
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(575);
44010
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(250);
44025
44011
  /*******************************************************************************
44026
44012
  *
44027
44013
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47323,7 +47309,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
47323
47309
  x_ite_Namespace .add ("GLTF2Parser", "x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
47324
47310
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
47325
47311
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
47326
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(575);
47312
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(250);
47327
47313
  /*******************************************************************************
47328
47314
  *
47329
47315
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47475,7 +47461,7 @@ const GLB2Parser_default_ = GLB2Parser;
47475
47461
  x_ite_Namespace .add ("GLB2Parser", "x_ite/Parser/GLB2Parser", GLB2Parser_default_);
47476
47462
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
47477
47463
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
47478
- /* provided dependency */ var OBJParser_$ = __webpack_require__(575);
47464
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(250);
47479
47465
  /*******************************************************************************
47480
47466
  *
47481
47467
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47543,7 +47529,7 @@ const OBJParser_Grammar = Parser_Expressions ({
47543
47529
  // General
47544
47530
  whitespaces: /[\x20\n\t\r]+/gy,
47545
47531
  whitespacesNoLineTerminator: /[\x20\t]+/gy,
47546
- comment: /#.*?(?=[\n\r])/gy,
47532
+ comment: /#.*?(?=[\n\r]|$)/gy,
47547
47533
  untilEndOfLine: /[^\r\n]+/gy,
47548
47534
 
47549
47535
  // Keywords
@@ -48635,7 +48621,7 @@ const STLAParser_Grammar = Parser_Expressions ({
48635
48621
  // General
48636
48622
  whitespaces: /[\x20\n\t\r]+/gy,
48637
48623
  whitespacesNoLineTerminator: /[\x20\t]+/gy,
48638
- comment: /;.*?(?=[\n\r])/gy,
48624
+ comment: /;.*?(?=[\n\r]|$)/gy,
48639
48625
  untilEndOfLine: /[^\r\n]+/gy,
48640
48626
 
48641
48627
  // Keywords
@@ -50833,8 +50819,8 @@ const MatrixStack_default_ = MatrixStack;
50833
50819
  x_ite_Namespace .add ("MatrixStack", "standard/Math/Utility/MatrixStack", MatrixStack_default_);
50834
50820
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
50835
50821
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
50836
- /* provided dependency */ var SVGParser_$ = __webpack_require__(575);
50837
- /* provided dependency */ var libtess = __webpack_require__(932);
50822
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(250);
50823
+ /* provided dependency */ var libtess = __webpack_require__(979);
50838
50824
  /*******************************************************************************
50839
50825
  *
50840
50826
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53602,7 +53588,7 @@ const SVGParser_default_ = SVGParser;
53602
53588
  x_ite_Namespace .add ("SVGParser", "x_ite/Parser/SVGParser", SVGParser_default_);
53603
53589
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
53604
53590
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
53605
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(575);
53591
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(250);
53606
53592
  /*******************************************************************************
53607
53593
  *
53608
53594
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53952,7 +53938,7 @@ const Plane3_default_ = Plane3;
53952
53938
  x_ite_Namespace .add ("Plane3", "standard/Math/Geometry/Plane3", Plane3_default_);
53953
53939
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
53954
53940
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
53955
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(932);
53941
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(979);
53956
53942
  /*******************************************************************************
53957
53943
  *
53958
53944
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -57723,7 +57709,7 @@ Object .assign (Object .setPrototypeOf (BindableList .prototype, Base_X3DBaseNod
57723
57709
  node = this .nodes [i],
57724
57710
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
57725
57711
 
57726
- if (!enableInlineBindables && !scene .isMainScene ())
57712
+ if (!enableInlineBindables && scene .getExecutionContext ())
57727
57713
  continue;
57728
57714
 
57729
57715
  if (node .getName () == name)
@@ -57739,7 +57725,7 @@ Object .assign (Object .setPrototypeOf (BindableList .prototype, Base_X3DBaseNod
57739
57725
  node = this .nodes [i],
57740
57726
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
57741
57727
 
57742
- if (!enableInlineBindables && !scene .isMainScene ())
57728
+ if (!enableInlineBindables && scene .getExecutionContext ())
57743
57729
  continue;
57744
57730
 
57745
57731
  if (node ._isBound .getValue ())
@@ -57754,7 +57740,7 @@ Object .assign (Object .setPrototypeOf (BindableList .prototype, Base_X3DBaseNod
57754
57740
  node = this .nodes [i],
57755
57741
  scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
57756
57742
 
57757
- if (!enableInlineBindables && !scene .isMainScene ())
57743
+ if (!enableInlineBindables && scene .getExecutionContext ())
57758
57744
  continue;
57759
57745
 
57760
57746
  return node;
@@ -62481,7 +62467,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62481
62467
  x_ite_Namespace .add ("X3DTexture2DNode", "x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
62482
62468
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
62483
62469
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62484
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(575);
62470
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(250);
62485
62471
  /*******************************************************************************
62486
62472
  *
62487
62473
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -66065,7 +66051,7 @@ const X3DWorld_default_ = X3DWorld;
66065
66051
  x_ite_Namespace .add ("X3DWorld", "x_ite/Execution/X3DWorld", X3DWorld_default_);
66066
66052
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
66067
66053
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66068
- /* provided dependency */ var FileLoader_$ = __webpack_require__(575);
66054
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(250);
66069
66055
  /*******************************************************************************
66070
66056
  *
66071
66057
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -66180,6 +66166,7 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
66180
66166
  if (!(this .node instanceof Execution_X3DWorld))
66181
66167
  scene .setExecutionContext (this .executionContext);
66182
66168
 
66169
+ scene .setLive (false);
66183
66170
  scene .setWorldURL (new URL (worldURL, this .getBaseURL ()) .href);
66184
66171
 
66185
66172
  if (resolve)
@@ -66270,11 +66257,11 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
66270
66257
 
66271
66258
  // Script
66272
66259
  {
66273
- const result = url .match (/^\s*(?:vrmlscript|javascript|ecmascript)\:(.*)$/s);
66260
+ const result = url .match (/^\s*(?:ecmascript|javascript|vrmlscript)\:/s);
66274
66261
 
66275
66262
  if (result)
66276
66263
  {
66277
- this .callback (result [1]);
66264
+ this .callback (url .substring (result [0] .length));
66278
66265
  return;
66279
66266
  }
66280
66267
  }
@@ -66283,16 +66270,16 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
66283
66270
 
66284
66271
  // Data URL
66285
66272
  {
66286
- const result = url .match (/^data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,/s);
66273
+ const result = url .match (/^\s*data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,/s);
66287
66274
 
66288
66275
  if (result && result [3] !== "base64")
66289
66276
  {
66290
- // const mimeType = result [1];
66277
+ // const mimeType = result [1] || "text/plain"";
66291
66278
 
66292
66279
  let data = url .substring (result [0] .length);
66293
66280
 
66294
- data = unescape (data); // Unescape data, don't use decodeURIComponent!
66295
- data = data .replace (/^/, ""); // Remove BOM.
66281
+ data = FileLoader_$.try (() => decodeURIComponent (data)) ?? data; // Decode data.
66282
+ data = data .replace (/^/, ""); // Remove BOM.
66296
66283
 
66297
66284
  this .callback (data);
66298
66285
  return;
@@ -66483,11 +66470,8 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66483
66470
 
66484
66471
  if (proto)
66485
66472
  {
66486
- for (const field of [... this .getUserDefinedFields ()])
66487
- this .removeUserDefinedField (field .getName ())
66488
-
66489
- for (const field of proto .getUserDefinedFields ())
66490
- this .addUserDefinedField (field .getAccessType (), field .getName (), field);
66473
+ this .getFieldDefinitions () .assign (proto .getFieldDefinitions ());
66474
+ this .getUserDefinedFields () .assign (proto .getUserDefinedFields ());
66491
66475
  }
66492
66476
 
66493
66477
  this .updateInstances ();
@@ -66516,8 +66500,8 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66516
66500
  },
66517
66501
  setInternalScene (value)
66518
66502
  {
66519
- this [_scene] ?.setExecutionContext (this [_scene]);
66520
- this [_scene] ?.setLive (false);
66503
+ if (this [_scene] !== this .getBrowser () .getPrivateScene ())
66504
+ this [_scene] ?.dispose ();
66521
66505
 
66522
66506
  this [_scene] = value;
66523
66507
 
@@ -67001,7 +66985,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
67001
66985
  x_ite_Namespace .add ("ProtoDeclarationArray", "x_ite/Prototype/ProtoDeclarationArray", ProtoDeclarationArray_default_);
67002
66986
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (ProtoDeclarationArray_default_);
67003
66987
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
67004
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(575);
66988
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(250);
67005
66989
  /*******************************************************************************
67006
66990
  *
67007
66991
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67390,8 +67374,8 @@ Object .defineProperties (X3DRoute .prototype,
67390
67374
  {
67391
67375
  if (this [_sourceNode] instanceof Core_X3DNode)
67392
67376
  return Fields_SFNodeCache .get (this [_sourceNode]);
67393
- else
67394
- return this [_sourceNode];
67377
+
67378
+ return this [_sourceNode];
67395
67379
  },
67396
67380
  enumerable: true,
67397
67381
  },
@@ -67406,8 +67390,8 @@ Object .defineProperties (X3DRoute .prototype,
67406
67390
  {
67407
67391
  if (this [_destinationNode] instanceof Core_X3DNode)
67408
67392
  return Fields_SFNodeCache .get (this [_destinationNode]);
67409
- else
67410
- return this [_destinationNode];
67393
+
67394
+ return this [_destinationNode];
67411
67395
  },
67412
67396
  enumerable: true,
67413
67397
  },
@@ -67625,8 +67609,11 @@ function X3DExecutionContext (executionContext, outerNode = null, browser = exec
67625
67609
  this ._rootNodes .setPrivate (false);
67626
67610
  this ._rootNodes .collectCloneCount = () => 1;
67627
67611
 
67628
- this ._countPrimitives .addReference (executionContext ._countPrimitives);
67629
- this ._sceneGraph_changed .addFieldInterest (this ._sceneGraph_changed);
67612
+ if (executionContext)
67613
+ {
67614
+ this ._countPrimitives .addReference (executionContext ._countPrimitives);
67615
+ this ._sceneGraph_changed .addFieldInterest (executionContext ._sceneGraph_changed);
67616
+ }
67630
67617
 
67631
67618
  this [_outerNode] = outerNode;
67632
67619
  this [_namedNodes] = new Execution_NamedNodesArray ();
@@ -67646,13 +67633,19 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
67646
67633
  {
67647
67634
  setExecutionContext (executionContext)
67648
67635
  {
67649
- this ._countPrimitives .removeReference (this .getExecutionContext () ._countPrimitives);
67650
- this ._sceneGraph_changed .removeFieldInterest (this .getExecutionContext () ._sceneGraph_changed);
67636
+ if (this .getExecutionContext ())
67637
+ {
67638
+ this ._countPrimitives .removeReference (this .getExecutionContext () ._countPrimitives);
67639
+ this ._sceneGraph_changed .removeFieldInterest (this .getExecutionContext () ._sceneGraph_changed);
67640
+ }
67651
67641
 
67652
67642
  Base_X3DBaseNode .prototype .setExecutionContext .call (this, executionContext);
67653
67643
 
67654
- this ._countPrimitives .addReference (executionContext ._countPrimitives);
67655
- this ._sceneGraph_changed .addFieldInterest (executionContext ._sceneGraph_changed);
67644
+ if (executionContext)
67645
+ {
67646
+ this ._countPrimitives .addReference (executionContext ._countPrimitives);
67647
+ this ._sceneGraph_changed .addFieldInterest (executionContext ._sceneGraph_changed);
67648
+ }
67656
67649
  },
67657
67650
  isScene ()
67658
67651
  {
@@ -67669,7 +67662,7 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
67669
67662
  },
67670
67663
  setCountPrimitives (value)
67671
67664
  {
67672
- this ._countPrimitives = this .getExecutionContext () .getCountPrimitives () && value;
67665
+ this ._countPrimitives = (this .getExecutionContext () ?.getCountPrimitives () ?? true) && value;
67673
67666
  },
67674
67667
  getSpecificationVersion ()
67675
67668
  {
@@ -68423,10 +68416,12 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
68423
68416
  for (const route of Array .from (this [X3DExecutionContext_routes]))
68424
68417
  this .deleteRoute (route);
68425
68418
 
68426
- this .externprotos .clear ();
68427
- this .protos .clear ();
68428
- this .importedNodes .clear ();
68429
- this .routes .clear ();
68419
+ this [_outerNode] = null;
68420
+ this [_namedNodes] .clear ();
68421
+ this [_importedNodes] .clear ();
68422
+ this [_protos] .clear ();
68423
+ this [_externprotos] .clear ();
68424
+ this [X3DExecutionContext_routes] .clear ();
68430
68425
 
68431
68426
  Base_X3DBaseNode .prototype .dispose .call (this);
68432
68427
  },
@@ -68574,7 +68569,6 @@ x_ite_Namespace .add ("X3DExecutionContext", "x_ite/Execution/X3DExecutionContex
68574
68569
 
68575
68570
 
68576
68571
 
68577
-
68578
68572
  const
68579
68573
  X3DPrototypeInstance_fieldDefinitions = Symbol .for ("X_ITE.X3DBaseNode.fieldDefinitions"),
68580
68574
  _protoNode = Symbol (),
@@ -68584,12 +68578,14 @@ const
68584
68578
  function X3DPrototypeInstance (executionContext, protoNode)
68585
68579
  {
68586
68580
  this [_protoNode] = protoNode;
68587
- this [X3DPrototypeInstance_fieldDefinitions] = new Base_FieldDefinitionArray (protoNode .getFieldDefinitions ());
68581
+ this [X3DPrototypeInstance_fieldDefinitions] = protoNode .getFieldDefinitions ();
68588
68582
  this [X3DPrototypeInstance_body] = null;
68589
68583
 
68590
68584
  Core_X3DNode .call (this, executionContext);
68591
68585
 
68592
68586
  this .addType (Base_X3DConstants .X3DPrototypeInstance);
68587
+
68588
+ this .setProtoNode (protoNode, true);
68593
68589
  }
68594
68590
 
68595
68591
  Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3DNode .prototype),
@@ -68606,7 +68602,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68606
68602
  {
68607
68603
  Core_X3DNode .prototype .initialize .call (this);
68608
68604
 
68609
- this .setProtoNode (this [_protoNode]);
68605
+ this .realize ();
68610
68606
  },
68611
68607
  construct ()
68612
68608
  {
@@ -68618,8 +68614,6 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68618
68614
 
68619
68615
  this [X3DPrototypeInstance_body] ?.dispose ();
68620
68616
 
68621
- this [X3DPrototypeInstance_fieldDefinitions] .assign (protoNode .getFieldDefinitions ());
68622
-
68623
68617
  // If there is a proto, the externproto is completely loaded.
68624
68618
 
68625
68619
  if (protoNode .isExternProto)
@@ -68643,11 +68637,11 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68643
68637
  {
68644
68638
  const field = this .getField (protoField .getName ());
68645
68639
 
68646
- // Continue if something is wrong.
68640
+ // Continue if different.
68647
68641
  if (field .getAccessType () !== protoField .getAccessType ())
68648
68642
  continue;
68649
68643
 
68650
- // Continue if something is wrong.
68644
+ // Continue if different.
68651
68645
  if (field .getType () !== protoField .getType ())
68652
68646
  continue;
68653
68647
 
@@ -68660,7 +68654,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68660
68654
  continue;
68661
68655
 
68662
68656
  // Has IS references.
68663
- if (field .hasReferences ())
68657
+ if (field .getReferences () .size)
68664
68658
  continue;
68665
68659
 
68666
68660
  // Default value of protoField is different from field.
@@ -68678,6 +68672,21 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68678
68672
  }
68679
68673
  }
68680
68674
 
68675
+ if (this .isInitialized ())
68676
+ this .realize ();
68677
+
68678
+ protoNode ._updateInstances .removeInterest ("construct", this);
68679
+ protoNode ._updateInstances .addInterest ("update", this);
68680
+ },
68681
+ realize ()
68682
+ {
68683
+ const
68684
+ protoNode = this [_protoNode],
68685
+ proto = protoNode .getProtoDeclaration ();
68686
+
68687
+ if (protoNode .isExternProto && protoNode .checkLoadState () !== Base_X3DConstants .COMPLETE_STATE)
68688
+ return;
68689
+
68681
68690
  // Create execution context.
68682
68691
 
68683
68692
  this [X3DPrototypeInstance_body] = new Execution_X3DExecutionContext (proto .getExecutionContext (), this);
@@ -68692,11 +68701,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68692
68701
 
68693
68702
  this [X3DPrototypeInstance_body] .setup ();
68694
68703
 
68695
- if (this .isInitialized ())
68696
- Base_X3DChildObject .prototype .addEvent .call (this);
68697
-
68698
- protoNode ._updateInstances .removeInterest ("construct", this);
68699
- protoNode ._updateInstances .addInterest ("update", this);
68704
+ Base_X3DChildObject .prototype .addEvent .call (this);
68700
68705
  },
68701
68706
  update ()
68702
68707
  {
@@ -68816,7 +68821,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68816
68821
  {
68817
68822
  return this [_protoNode];
68818
68823
  },
68819
- setProtoNode (protoNode)
68824
+ setProtoNode (protoNode, construct = false)
68820
68825
  {
68821
68826
  // Disconnect old proto node.
68822
68827
 
@@ -68828,12 +68833,13 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68828
68833
 
68829
68834
  // Get fields from new proto node.
68830
68835
 
68831
- this [_protoNode] = protoNode;
68832
- this [_protoFields] = Array .from (protoNode .getUserDefinedFields ());
68836
+ this [_protoNode] = protoNode;
68837
+ this [X3DPrototypeInstance_fieldDefinitions] = protoNode .getFieldDefinitions ();
68838
+ this [_protoFields] = Array .from (protoNode .getUserDefinedFields ());
68833
68839
 
68834
68840
  protoNode ._name_changed .addFieldInterest (this ._typeName_changed);
68835
68841
 
68836
- protoNode === oldProtoNode ? this .construct () : this .update ();
68842
+ construct ? this .construct () : this .update ();
68837
68843
  },
68838
68844
  getBody ()
68839
68845
  {
@@ -83899,18 +83905,24 @@ Object .assign (Object .setPrototypeOf (Inline .prototype, Core_X3DChildNode .pr
83899
83905
  },
83900
83906
  setInternalScene (scene)
83901
83907
  {
83902
- this .scene .setExecutionContext (this .scene);
83903
- this .scene .setLive (false);
83904
- this .scene .rootNodes .removeFieldInterest (this .groupNode ._children);
83908
+ if (this .scene !== this .getBrowser () .getDefaultScene ())
83909
+ this .scene .dispose ();
83905
83910
 
83906
83911
  // Set new scene.
83907
83912
 
83908
83913
  this .scene = scene;
83909
83914
 
83910
- this .scene .setExecutionContext (this .getExecutionContext ());
83911
- this .scene .setLive (this .getLive () .getValue ());
83912
- this .scene .rootNodes .addFieldInterest (this .groupNode ._children);
83913
- this .groupNode ._children = this .scene .rootNodes;
83915
+ if (this .scene !== this .getBrowser () .getDefaultScene ())
83916
+ {
83917
+ this .scene .setExecutionContext (this .getExecutionContext ());
83918
+ this .scene .setLive (this .getLive () .getValue ());
83919
+ this .scene .rootNodes .addFieldInterest (this .groupNode ._children);
83920
+ this .groupNode ._children = this .scene .rootNodes;
83921
+ }
83922
+ else
83923
+ {
83924
+ this .groupNode ._children .length = 0;
83925
+ }
83914
83926
 
83915
83927
  this .getBrowser () .addBrowserEvent ();
83916
83928
  },
@@ -90124,7 +90136,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
90124
90136
  x_ite_Namespace .add ("X3DShaderNode", "x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
90125
90137
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
90126
90138
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
90127
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(575);
90139
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(250);
90128
90140
  /*******************************************************************************
90129
90141
  *
90130
90142
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -93070,11 +93082,10 @@ const ShaderSource =
93070
93082
  PRAGMA = "#pragma\\s+.*?\\n",
93071
93083
  PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
93072
93084
  VERSION = "#version\\s+.*?\\n",
93073
- EXTENSION = "#extension\\s+.*?\\n",
93074
- ANY = ".*";
93085
+ EXTENSION = "#extension\\s+.*?\\n";
93075
93086
 
93076
93087
  const
93077
- GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
93088
+ GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)", "s"),
93078
93089
  match = source .match (GLSL);
93079
93090
 
93080
93091
  // const
@@ -93179,10 +93190,10 @@ const ShaderSource =
93179
93190
  // Adjust precision of struct types;
93180
93191
 
93181
93192
  const
93182
- matchFloat = source .match (/\s*precision\s+(lowp|mediump|highp)\s+float\s*;/),
93183
- matchInt = source .match (/\s*precision\s+(lowp|mediump|highp)\s+int\s*;/),
93184
- precisionFloat = matchFloat ? matchFloat [1] : "mediump",
93185
- precisionInt = matchInt ? matchInt [1] : "mediump";
93193
+ matchFloat = source .match (/\s*precision\s+(lowp|mediump|highp)\s+float\s*;/),
93194
+ matchInt = source .match (/\s*precision\s+(lowp|mediump|highp)\s+int\s*;/),
93195
+ precisionFloat = matchFloat ?.[1] ?? "mediump",
93196
+ precisionInt = matchInt ?.[1] ?? "mediump";
93186
93197
 
93187
93198
  const types = Types_glsl
93188
93199
  .replace (/mediump\s+(float|vec2|vec3|mat3|mat4)/g, precisionFloat + " $1")
@@ -93190,7 +93201,7 @@ const ShaderSource =
93190
93201
 
93191
93202
  const lines = (match [1] .match (/\n/g) || [ ]) .length + 1;
93192
93203
 
93193
- return match [1] + constants + definitions + types + "#line " + (lines + 1) + " -1\n" + match [2];
93204
+ return `${match [1]}${constants}${definitions}${types}#line ${lines + 1} -1\n${source .substring (match [0] .length)}`;
93194
93205
  },
93195
93206
  };
93196
93207
 
@@ -95833,7 +95844,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95833
95844
  x_ite_Namespace .add ("ShaderCompiler", "x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
95834
95845
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
95835
95846
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95836
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(575);
95847
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(250);
95837
95848
  /*******************************************************************************
95838
95849
  *
95839
95850
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -96490,7 +96501,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
96490
96501
  x_ite_Namespace .add ("X3DAppearanceNode", "x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
96491
96502
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
96492
96503
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
96493
- /* provided dependency */ var Appearance_$ = __webpack_require__(575);
96504
+ /* provided dependency */ var Appearance_$ = __webpack_require__(250);
96494
96505
  /*******************************************************************************
96495
96506
  *
96496
96507
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -105442,8 +105453,8 @@ const GifMedia_default_ = GifMedia;
105442
105453
  x_ite_Namespace .add ("GifMedia", "x_ite/Browser/Texturing/GifMedia", GifMedia_default_);
105443
105454
  /* harmony default export */ const Texturing_GifMedia = (GifMedia_default_);
105444
105455
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
105445
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(575);
105446
- /* provided dependency */ var SuperGif = __webpack_require__(280);
105456
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(250);
105457
+ /* provided dependency */ var SuperGif = __webpack_require__(389);
105447
105458
  /*******************************************************************************
105448
105459
  *
105449
105460
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107102,6 +107113,30 @@ Object .assign (Object .setPrototypeOf (TextureCoordinate .prototype, Texturing_
107102
107113
  {
107103
107114
  return this .length;
107104
107115
  },
107116
+ get1Point (index, result)
107117
+ {
107118
+ if (index < this .length)
107119
+ {
107120
+ const point = this .point;
107121
+
107122
+ index *= 2;
107123
+
107124
+ return result .set (point [index], point [index + 1], 0, 1);
107125
+ }
107126
+ else
107127
+ {
107128
+ return result .set (0, 0, 0, 1);
107129
+ }
107130
+ },
107131
+ set1Point: (function ()
107132
+ {
107133
+ const point = new Numbers_Vector2 ();
107134
+
107135
+ return function (index, { x, y, w })
107136
+ {
107137
+ this ._point [index] = point .set (x, y) .divide (w);
107138
+ };
107139
+ })(),
107105
107140
  addPointToChannel (index, array)
107106
107141
  {
107107
107142
  if (index >= 0 && this .length)
@@ -108827,7 +108862,7 @@ const gettext_default_ = (string) => locale .get (string) || string;
108827
108862
  x_ite_Namespace .add ("gettext", "locale/gettext", gettext_default_);
108828
108863
  /* harmony default export */ const gettext = (gettext_default_);
108829
108864
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
108830
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(575);
108865
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(250);
108831
108866
  /*******************************************************************************
108832
108867
  *
108833
108868
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -109400,7 +109435,7 @@ const TextureQuality_default_ = TextureQuality;
109400
109435
  x_ite_Namespace .add ("TextureQuality", "x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
109401
109436
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
109402
109437
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
109403
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(575);
109438
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(250);
109404
109439
  /*******************************************************************************
109405
109440
  *
109406
109441
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -109994,7 +110029,7 @@ const RenderingProperties_default_ = RenderingProperties;
109994
110029
  x_ite_Namespace .add ("RenderingProperties", "x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
109995
110030
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
109996
110031
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
109997
- /* provided dependency */ var Notification_$ = __webpack_require__(575);
110032
+ /* provided dependency */ var Notification_$ = __webpack_require__(250);
109998
110033
  /*******************************************************************************
109999
110034
  *
110000
110035
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -110117,8 +110152,8 @@ const Notification_default_ = Notification;
110117
110152
  x_ite_Namespace .add ("Notification", "x_ite/Browser/Core/Notification", Notification_default_);
110118
110153
  /* harmony default export */ const Core_Notification = (Notification_default_);
110119
110154
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
110120
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(347);
110121
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(575);
110155
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(226);
110156
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(250);
110122
110157
  /*******************************************************************************
110123
110158
  *
110124
110159
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -111672,7 +111707,7 @@ const
111672
111707
 
111673
111708
  function X3DScene (browser)
111674
111709
  {
111675
- Execution_X3DExecutionContext .call (this, this, null, browser);
111710
+ Execution_X3DExecutionContext .call (this, null, null, browser);
111676
111711
 
111677
111712
  this .addType (Base_X3DConstants .X3DScene)
111678
111713
 
@@ -111708,10 +111743,6 @@ function X3DScene (browser)
111708
111743
 
111709
111744
  Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecutionContext .prototype),
111710
111745
  {
111711
- isMainScene ()
111712
- {
111713
- return this === this .getExecutionContext ();
111714
- },
111715
111746
  isScene ()
111716
111747
  {
111717
111748
  return true;
@@ -111744,10 +111775,8 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
111744
111775
  {
111745
111776
  if (this [_worldURL] .match (/^(?:data|blob):/))
111746
111777
  {
111747
- if (this .isMainScene ())
111748
- return this .getBrowser () .getBaseURL ();
111749
-
111750
- return this .getExecutionContext () .getBaseURL ();
111778
+ return this .getExecutionContext () ?.getBaseURL ()
111779
+ ?? this .getBrowser () .getBaseURL ();
111751
111780
  }
111752
111781
 
111753
111782
  return this [_worldURL];
@@ -112594,7 +112623,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112594
112623
  {
112595
112624
  setExecutionContext (executionContext)
112596
112625
  {
112597
- if (!this .isMainScene ())
112626
+ if (this .getExecutionContext ())
112598
112627
  {
112599
112628
  const scene = this .getScene ();
112600
112629
 
@@ -112604,7 +112633,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112604
112633
 
112605
112634
  Execution_X3DExecutionContext .prototype .setExecutionContext .call (this, executionContext);
112606
112635
 
112607
- if (!this .isMainScene ())
112636
+ if (this .getExecutionContext ())
112608
112637
  {
112609
112638
  const scene = this .getScene ();
112610
112639
 
@@ -112633,15 +112662,12 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112633
112662
 
112634
112663
  this ._loadCount = this [_loadingObjects] .size;
112635
112664
 
112636
- const
112637
- browser = this .getBrowser (),
112638
- scene = this .getScene ();
112665
+ const browser = this .getBrowser ();
112639
112666
 
112640
112667
  if (this === browser .getExecutionContext ())
112641
112668
  browser .addLoadingObject (node);
112642
112669
 
112643
- if (!this .isMainScene ())
112644
- scene .addLoadingObject (node);
112670
+ this .getScene () ?.addLoadingObject (node);
112645
112671
  },
112646
112672
  removeLoadingObject (node)
112647
112673
  {
@@ -112652,15 +112678,12 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
112652
112678
 
112653
112679
  this ._loadCount = this [_loadingObjects] .size;
112654
112680
 
112655
- const
112656
- browser = this .getBrowser (),
112657
- scene = this .getScene ();
112681
+ const browser = this .getBrowser ();
112658
112682
 
112659
112683
  if (this === browser .getExecutionContext ())
112660
112684
  browser .removeLoadingObject (node);
112661
112685
 
112662
- if (!this .isMainScene ())
112663
- scene .removeLoadingObject (node);
112686
+ this .getScene () ?.removeLoadingObject (node);
112664
112687
  },
112665
112688
  });
112666
112689
 
@@ -112699,6 +112722,11 @@ Object .defineProperties (X3DScene .prototype,
112699
112722
  get: X3DScene .prototype .getWorldURL,
112700
112723
  enumerable: true,
112701
112724
  },
112725
+ baseURL:
112726
+ {
112727
+ get: X3DScene .prototype .getBaseURL,
112728
+ enumerable: true,
112729
+ },
112702
112730
  units:
112703
112731
  {
112704
112732
  get: X3DScene .prototype .getUnits,
@@ -112879,7 +112907,7 @@ const DataStorage_default_ = DataStorage;
112879
112907
  x_ite_Namespace .add ("DataStorage", "standard/Utility/DataStorage", DataStorage_default_);
112880
112908
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
112881
112909
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
112882
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(575);
112910
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(250);
112883
112911
  /*******************************************************************************
112884
112912
  *
112885
112913
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115402,8 +115430,8 @@ const X3DViewer_default_ = X3DViewer;
115402
115430
  x_ite_Namespace .add ("X3DViewer", "x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
115403
115431
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
115404
115432
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
115405
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(431);
115406
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(575);
115433
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(496);
115434
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(250);
115407
115435
  /*******************************************************************************
115408
115436
  *
115409
115437
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116275,8 +116303,8 @@ const ExamineViewer_default_ = ExamineViewer;
116275
116303
  x_ite_Namespace .add ("ExamineViewer", "x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
116276
116304
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
116277
116305
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
116278
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(431);
116279
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(575);
116306
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(496);
116307
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(250);
116280
116308
  /*******************************************************************************
116281
116309
  *
116282
116310
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117285,8 +117313,8 @@ const FlyViewer_default_ = FlyViewer;
117285
117313
  x_ite_Namespace .add ("FlyViewer", "x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
117286
117314
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
117287
117315
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
117288
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(431);
117289
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(575);
117316
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(496);
117317
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(250);
117290
117318
  /*******************************************************************************
117291
117319
  *
117292
117320
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117617,8 +117645,8 @@ const NoneViewer_default_ = NoneViewer;
117617
117645
  x_ite_Namespace .add ("NoneViewer", "x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
117618
117646
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
117619
117647
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
117620
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(431);
117621
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(575);
117648
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(496);
117649
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(250);
117622
117650
  /*******************************************************************************
117623
117651
  *
117624
117652
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118604,7 +118632,6 @@ Object .assign (X3DNetworkingContext .prototype,
118604
118632
  // Inline node's empty scene.
118605
118633
 
118606
118634
  this [_defaultScene] = this .createScene ();
118607
- this [_defaultScene] .setLive (true);
118608
118635
 
118609
118636
  this .getDefaultScene = function () { return this [_defaultScene]; };
118610
118637
 
@@ -118757,8 +118784,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
118757
118784
  x_ite_Namespace .add ("X3DPickingContext", "x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
118758
118785
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
118759
118786
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
118760
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(431);
118761
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(575);
118787
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(496);
118788
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(250);
118762
118789
  /*******************************************************************************
118763
118790
  *
118764
118791
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120062,7 +120089,7 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
120062
120089
  x_ite_Namespace .add ("MultiSampleFrameBuffer", "x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
120063
120090
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
120064
120091
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
120065
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(575);
120092
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(250);
120066
120093
  /*******************************************************************************
120067
120094
  *
120068
120095
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121010,7 +121037,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
121010
121037
  x_ite_Namespace .add ("X3DSoundContext", "x_ite/Browser/Sound/X3DSoundContext", X3DSoundContext_default_);
121011
121038
  /* harmony default export */ const Sound_X3DSoundContext = (X3DSoundContext_default_);
121012
121039
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
121013
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(575);
121040
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(250);
121014
121041
  const KTXDecoder_default_ = class KTXDecoder
121015
121042
  {
121016
121043
  constructor (gl, externalKtxlib, scriptDir)
@@ -122564,7 +122591,7 @@ const Components_default_ = Components;
122564
122591
  x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
122565
122592
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
122566
122593
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
122567
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(575);
122594
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(250);
122568
122595
  /*******************************************************************************
122569
122596
  * MIT License
122570
122597
  *
@@ -122594,6 +122621,7 @@ x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
122594
122621
 
122595
122622
 
122596
122623
 
122624
+
122597
122625
  class DOMIntegration
122598
122626
  {
122599
122627
  constructor (browser)
@@ -122632,7 +122660,7 @@ class DOMIntegration
122632
122660
 
122633
122661
  // Now also attached node property to each node element.
122634
122662
 
122635
- const scene = browser .createScene ();
122663
+ const scene = new Execution_X3DScene (browser);
122636
122664
 
122637
122665
  this .parser = new Parser_XMLParser (scene);
122638
122666
 
@@ -123697,7 +123725,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
123697
123725
  x_ite_Namespace .add ("SupportedProfiles", "x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
123698
123726
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
123699
123727
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
123700
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(575);
123728
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(250);
123701
123729
  /*******************************************************************************
123702
123730
  *
123703
123731
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124085,6 +124113,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124085
124113
  }
124086
124114
 
124087
124115
  scene .setup ();
124116
+ scene .setLive (true);
124088
124117
 
124089
124118
  return scene;
124090
124119
  },
@@ -124128,7 +124157,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124128
124157
 
124129
124158
  // Detach scene from parent.
124130
124159
 
124131
- scene .setExecutionContext (scene);
124160
+ scene .setExecutionContext (null);
124132
124161
  scene .setLive (this .isLive ());
124133
124162
 
124134
124163
  // Replace.
@@ -124168,14 +124197,13 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124168
124197
  scene = fileLoader .createX3DFromString (worldURL, `#VRML V2.0 utf8\n\n${vrmlSyntax}`);
124169
124198
 
124170
124199
  if (!external)
124171
- {
124172
124200
  scene .setExecutionContext (currentScene);
124173
- scene .setLive (true);
124174
- }
124201
+
124202
+ scene .setLive (true);
124175
124203
 
124176
124204
  return scene .rootNodes;
124177
124205
  },
124178
- createX3DFromString: async function (x3dSyntax)
124206
+ async createX3DFromString (x3dSyntax)
124179
124207
  {
124180
124208
  x3dSyntax = String (x3dSyntax);
124181
124209
 
@@ -124191,10 +124219,9 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124191
124219
  });
124192
124220
 
124193
124221
  if (!external)
124194
- {
124195
124222
  scene .setExecutionContext (currentScene);
124196
- scene .setLive (true);
124197
- }
124223
+
124224
+ scene .setLive (true);
124198
124225
 
124199
124226
  return scene;
124200
124227
  },
@@ -124228,19 +124255,18 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124228
124255
  {
124229
124256
  this .removeLoadingObject (fileLoader);
124230
124257
 
124231
- if (scene)
124232
- {
124233
- // Handle getLive for script scenes here:
124258
+ if (!scene)
124259
+ return;
124234
124260
 
124235
- if (!external)
124236
- {
124237
- scene .setExecutionContext (currentScene);
124238
- scene .setLive (true);
124239
- }
124261
+ // Handle getLive for script scenes here:
124240
124262
 
124241
- // Wait until scene is completely loaded, scene ._loadCount must be 0.
124242
- field .setValue (scene .rootNodes);
124243
- }
124263
+ if (!external)
124264
+ scene .setExecutionContext (currentScene);
124265
+
124266
+ scene .setLive (true);
124267
+
124268
+ // Wait until scene is completely loaded, scene ._loadCount must be 0.
124269
+ field .setValue (scene .rootNodes);
124244
124270
  });
124245
124271
  },
124246
124272
  createX3DFromURL (url, node, event)
@@ -124269,10 +124295,9 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124269
124295
  if (scene)
124270
124296
  {
124271
124297
  if (!external)
124272
- {
124273
124298
  scene .setExecutionContext (currentScene);
124274
- scene .setLive (true);
124275
- }
124299
+
124300
+ scene .setLive (true);
124276
124301
 
124277
124302
  resolve (scene);
124278
124303
  }
@@ -124441,43 +124466,45 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
124441
124466
  for (const callback of this [_browserCallbacks] .get (event) .values ())
124442
124467
  callback (event);
124443
124468
  },
124444
- importDocument (dom)
124469
+ async importDocument (dom)
124445
124470
  {
124446
124471
  const
124447
124472
  currentScene = this .currentScene,
124448
- scene = this .createScene (),
124473
+ scene = new Execution_X3DScene (this),
124449
124474
  external = this .isExternal ();
124450
124475
 
124451
- if (!external)
124452
- {
124453
- scene .setExecutionContext (currentScene);
124454
- scene .setLive (true);
124455
- }
124456
-
124457
124476
  const parser = new Parser_XMLParser (scene);
124458
124477
 
124459
124478
  parser .setInput (dom)
124460
124479
 
124461
- return new Promise (parser .parseIntoScene .bind (parser));
124480
+ await new Promise (parser .parseIntoScene .bind (parser));
124481
+
124482
+ if (!external)
124483
+ scene .setExecutionContext (currentScene);
124484
+
124485
+ scene .isLive (true);
124486
+
124487
+ return scene;
124462
124488
  },
124463
- importJS (json)
124489
+ async importJS (json)
124464
124490
  {
124465
124491
  const
124466
124492
  currentScene = this .currentScene,
124467
- scene = this .createScene (),
124493
+ scene = new Execution_X3DScene (this),
124468
124494
  external = this .isExternal ();
124469
124495
 
124470
- if (!external)
124471
- {
124472
- scene .setExecutionContext (currentScene);
124473
- scene .setLive (true);
124474
- }
124475
-
124476
124496
  const parser = new Parser_JSONParser (scene);
124477
124497
 
124478
124498
  parser .setInput (json);
124479
124499
 
124480
- return new Promise (parser .parseIntoScene .bind (parser));
124500
+ await new Promise (parser .parseIntoScene .bind (parser));
124501
+
124502
+ if (!external)
124503
+ scene .setExecutionContext (currentScene);
124504
+
124505
+ scene .isLive (true);
124506
+
124507
+ return scene;
124481
124508
  },
124482
124509
  getBrowserProperty (name)
124483
124510
  {
@@ -124789,7 +124816,7 @@ const X3DBrowser_default_ = X3DBrowser;
124789
124816
  x_ite_Namespace .add ("X3DBrowser", "x_ite/Browser/X3DBrowser", X3DBrowser_default_);
124790
124817
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
124791
124818
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
124792
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(575);
124819
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(250);
124793
124820
  /*******************************************************************************
124794
124821
  *
124795
124822
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -124926,8 +124953,8 @@ const X3DCanvasElement_default_ = X3DCanvasElement;
124926
124953
  x_ite_Namespace .add ("X3DCanvasElement", "x_ite/X3DCanvasElement", X3DCanvasElement_default_);
124927
124954
  /* harmony default export */ const x_ite_X3DCanvasElement = (X3DCanvasElement_default_);
124928
124955
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
124929
- /* provided dependency */ var jquery_$ = __webpack_require__(575);
124930
- /* provided dependency */ var pako = __webpack_require__(319);
124956
+ /* provided dependency */ var jquery_$ = __webpack_require__(250);
124957
+ /* provided dependency */ var pako = __webpack_require__(82);
124931
124958
  Object .assign (jquery_$,
124932
124959
  {
124933
124960
  decodeText (input)
@@ -125004,14 +125031,14 @@ const jquery_default_ = jquery_$;
125004
125031
  x_ite_Namespace .add ("jquery", "lib/jquery", jquery_default_);
125005
125032
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
125006
125033
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
125007
- /* provided dependency */ var libtess_libtess = __webpack_require__(932);
125034
+ /* provided dependency */ var libtess_libtess = __webpack_require__(979);
125008
125035
  const libtess_default_ = libtess_libtess;
125009
125036
  ;
125010
125037
 
125011
125038
  x_ite_Namespace .add ("libtess", "lib/libtess", libtess_default_);
125012
125039
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
125013
125040
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
125014
- /* provided dependency */ var X3D_$ = __webpack_require__(575);
125041
+ /* provided dependency */ var X3D_$ = __webpack_require__(250);
125015
125042
  /*******************************************************************************
125016
125043
  *
125017
125044
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -125319,7 +125346,7 @@ Object .assign (X3D,
125319
125346
 
125320
125347
  // Assign X3D to global namespace.
125321
125348
 
125322
- window [Symbol .for ("X_ITE.X3D-9.5.2")] = x_ite_X3D;
125349
+ window [Symbol .for ("X_ITE.X3D-9.6.1")] = x_ite_X3D;
125323
125350
 
125324
125351
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
125325
125352