x_ite 8.6.13 → 8.6.14

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 (138) hide show
  1. package/dist/assets/components/Annotation.js +13 -13
  2. package/dist/assets/components/Annotation.min.js +1 -1
  3. package/dist/assets/components/CADGeometry.js +21 -21
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +27 -27
  6. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  7. package/dist/assets/components/DIS.js +13 -13
  8. package/dist/assets/components/DIS.min.js +1 -1
  9. package/dist/assets/components/EventUtilities.js +9 -9
  10. package/dist/assets/components/EventUtilities.min.js +1 -1
  11. package/dist/assets/components/Geometry2D.js +23 -23
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +40 -40
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +18 -18
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +10 -10
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +27 -27
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +28 -28
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +30 -30
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +22 -22
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +37 -37
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +31 -31
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +25 -25
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjector.js +14 -14
  34. package/dist/assets/components/TextureProjector.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +32 -32
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +28 -28
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +9 -9
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/x_ite.css +1 -1
  42. package/dist/x_ite.js +746 -683
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.zip +0 -0
  45. package/docs/_config.yml +2 -2
  46. package/package.json +1 -1
  47. package/src/standard/Math/Numbers/Matrix2.js +3 -3
  48. package/src/standard/Math/Numbers/Vector4.js +1 -0
  49. package/src/x_ite/Base/X3DBaseNode.js +58 -53
  50. package/src/x_ite/Browser/Core/BrowserOptions.js +2 -1
  51. package/src/x_ite/Browser/Core/X3DCoreContext.js +2 -3
  52. package/src/x_ite/Browser/Navigation/ExamineViewer.js +0 -3
  53. package/src/x_ite/Browser/Navigation/FlyViewer.js +0 -2
  54. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +10 -12
  55. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +40 -21
  56. package/src/x_ite/Browser/VERSION.js +1 -1
  57. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +1 -1
  58. package/src/x_ite/Browser/X3DBrowser.js +19 -19
  59. package/src/x_ite/Components/CADGeometry/CADFace.js +8 -8
  60. package/src/x_ite/Components/Core/MetadataBoolean.js +4 -4
  61. package/src/x_ite/Components/Core/MetadataDouble.js +4 -4
  62. package/src/x_ite/Components/Core/MetadataFloat.js +4 -4
  63. package/src/x_ite/Components/Core/MetadataInteger.js +4 -4
  64. package/src/x_ite/Components/Core/MetadataSet.js +4 -4
  65. package/src/x_ite/Components/Core/MetadataString.js +4 -4
  66. package/src/x_ite/Components/Core/X3DNode.js +17 -16
  67. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +11 -14
  68. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +2 -2
  69. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +1 -1
  70. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +2 -2
  71. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +2 -2
  72. package/src/x_ite/Components/Followers/X3DFollowerNode.js +2 -2
  73. package/src/x_ite/Components/Geometry2D/Arc2D.js +1 -1
  74. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +1 -1
  75. package/src/x_ite/Components/Geometry2D/Circle2D.js +1 -1
  76. package/src/x_ite/Components/Geometry2D/Disk2D.js +1 -1
  77. package/src/x_ite/Components/Geometry3D/Cone.js +1 -1
  78. package/src/x_ite/Components/Geometry3D/Cylinder.js +1 -1
  79. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +10 -10
  80. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +3 -3
  81. package/src/x_ite/Components/Geometry3D/Sphere.js +1 -1
  82. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +7 -7
  83. package/src/x_ite/Components/Grouping/Switch.js +7 -7
  84. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +2 -2
  85. package/src/x_ite/Components/Layering/X3DLayerNode.js +40 -49
  86. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +4 -4
  87. package/src/x_ite/Components/Navigation/Collision.js +4 -4
  88. package/src/x_ite/Components/Navigation/LOD.js +7 -7
  89. package/src/x_ite/Components/Networking/Inline.js +2 -2
  90. package/src/x_ite/Components/Networking/X3DUrlObject.js +2 -2
  91. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +8 -8
  92. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +4 -4
  93. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +28 -19
  94. package/src/x_ite/Components/Rendering/IndexedLineSet.js +11 -11
  95. package/src/x_ite/Components/Rendering/LineSet.js +12 -12
  96. package/src/x_ite/Components/Rendering/PointSet.js +11 -11
  97. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +14 -14
  98. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +6 -6
  99. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +6 -6
  100. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +4 -4
  101. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +7 -7
  102. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +7 -7
  103. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +3 -3
  104. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +2 -2
  105. package/src/x_ite/Components/Scripting/Script.js +3 -3
  106. package/src/x_ite/Components/Shaders/ComposedShader.js +5 -7
  107. package/src/x_ite/Components/Shaders/ShaderPart.js +0 -2
  108. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +3 -3
  109. package/src/x_ite/Components/Shape/Appearance.js +4 -4
  110. package/src/x_ite/Components/Shape/Material.js +1 -1
  111. package/src/x_ite/Components/Shape/PhysicalMaterial.js +1 -1
  112. package/src/x_ite/Components/Shape/UnlitMaterial.js +1 -1
  113. package/src/x_ite/Components/Shape/X3DMaterialNode.js +1 -1
  114. package/src/x_ite/Components/Shape/X3DShapeNode.js +1 -1
  115. package/src/x_ite/Components/Sound/AudioClip.js +2 -2
  116. package/src/x_ite/Components/Sound/Sound.js +2 -2
  117. package/src/x_ite/Components/Text/Text.js +1 -1
  118. package/src/x_ite/Components/Texturing/ImageTexture.js +2 -2
  119. package/src/x_ite/Components/Texturing/MovieTexture.js +2 -2
  120. package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +2 -2
  121. package/src/x_ite/Components/Time/TimeSensor.js +1 -1
  122. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +6 -6
  123. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +8 -8
  124. package/src/x_ite/Execution/BindableList.js +16 -19
  125. package/src/x_ite/Execution/X3DExecutionContext.js +19 -13
  126. package/src/x_ite/Execution/X3DScene.js +4 -0
  127. package/src/x_ite/Fields/ArrayFields.js +42 -22
  128. package/src/x_ite/Fields/SFNode.js +3 -6
  129. package/src/x_ite/Fields/SFNodeCache.js +34 -19
  130. package/src/x_ite/InputOutput/FileLoader.js +22 -14
  131. package/src/x_ite/Parser/GLTF2Parser.js +48 -48
  132. package/src/x_ite/Parser/VRMLParser.js +65 -33
  133. package/src/x_ite/Parser/X3DParser.js +9 -36
  134. package/src/x_ite/Parser/XMLParser.js +8 -8
  135. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +2 -2
  136. package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -2
  137. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +1 -1
  138. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v8.6.13 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v8.6.14 */(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,11 +11,11 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 179:
14
+ /***/ 497:
15
15
  /***/ (function(module, exports, __webpack_require__) {
16
16
 
17
17
  "use strict";
18
- /* provided dependency */ var jQuery = __webpack_require__(869);
18
+ /* provided dependency */ var jQuery = __webpack_require__(329);
19
19
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
20
20
 
21
21
  /**
@@ -387,10 +387,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
387
387
 
388
388
  /***/ }),
389
389
 
390
- /***/ 908:
390
+ /***/ 839:
391
391
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
392
392
 
393
- /* provided dependency */ var jQuery = __webpack_require__(869);
393
+ /* provided dependency */ var jQuery = __webpack_require__(329);
394
394
  /**
395
395
  * @preserve jquery.fullscreen 1.1.5
396
396
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -586,7 +586,7 @@ installFullScreenHandlers();
586
586
 
587
587
  /***/ }),
588
588
 
589
- /***/ 945:
589
+ /***/ 98:
590
590
  /***/ ((module, exports, __webpack_require__) => {
591
591
 
592
592
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -600,7 +600,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
600
600
  (function (factory) {
601
601
  if ( true ) {
602
602
  // AMD. Register as an anonymous module.
603
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(869)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
603
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(329)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
604
604
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
605
605
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
606
606
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -811,7 +811,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
811
811
 
812
812
  /***/ }),
813
813
 
814
- /***/ 869:
814
+ /***/ 329:
815
815
  /***/ (function(module, exports) {
816
816
 
817
817
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11784,7 +11784,7 @@ return jQuery;
11784
11784
 
11785
11785
  /***/ }),
11786
11786
 
11787
- /***/ 23:
11787
+ /***/ 355:
11788
11788
  /***/ ((module) => {
11789
11789
 
11790
11790
  /**
@@ -16563,7 +16563,7 @@ if (true) {
16563
16563
 
16564
16564
  /***/ }),
16565
16565
 
16566
- /***/ 645:
16566
+ /***/ 881:
16567
16567
  /***/ (function(__unused_webpack_module, exports) {
16568
16568
 
16569
16569
 
@@ -19808,7 +19808,7 @@ if (true) {
19808
19808
 
19809
19809
  /***/ }),
19810
19810
 
19811
- /***/ 521:
19811
+ /***/ 878:
19812
19812
  /***/ (function(module, exports) {
19813
19813
 
19814
19814
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -26334,7 +26334,7 @@ Matrix2 .prototype =
26334
26334
  inverse: function ()
26335
26335
  {
26336
26336
  const
26337
- { 0: A, 1: B, 2: C, 3: D } = this [3],
26337
+ { 0: A, 1: B, 2: C, 3: D } = this,
26338
26338
  d = A * D - B * C;
26339
26339
 
26340
26340
  // if (d === 0) ... determinant is zero.
@@ -26378,9 +26378,9 @@ Matrix2 .prototype =
26378
26378
  {
26379
26379
  const
26380
26380
  x = vector,
26381
- w = x * this [2] + this [3];
26381
+ w = x * this [1] + this [3];
26382
26382
 
26383
- return (x * this [0] + this [1]) / w;
26383
+ return (x * this [0] + this [2]) / w;
26384
26384
  }
26385
26385
  else
26386
26386
  {
@@ -27786,6 +27786,7 @@ Vector4 .prototype =
27786
27786
  vector .x = this .x / this .w;
27787
27787
  vector .y = this .y / this .w;
27788
27788
  vector .z = this .z / this .w;
27789
+ return vector;
27789
27790
  },
27790
27791
  negate: function ()
27791
27792
  {
@@ -30134,31 +30135,46 @@ x_ite_Namespace.set ("x_ite/Fields/SFMatrix4", SFMatrix4_default_);
30134
30135
 
30135
30136
 
30136
30137
 
30137
- const SFNodeCache =
30138
+
30139
+ const cache = new WeakMap ();
30140
+
30141
+ class SFNodeCache
30138
30142
  {
30139
- get: (function ()
30143
+ static get (baseNode)
30140
30144
  {
30141
- const cache = new WeakMap ();
30145
+ const node = cache .get (baseNode);
30142
30146
 
30143
- return function (baseNode)
30147
+ if (node)
30148
+ {
30149
+ return node;
30150
+ }
30151
+ else
30144
30152
  {
30145
- const node = cache .get (baseNode);
30153
+ const node = new Fields_SFNode (baseNode);
30146
30154
 
30147
- if (node)
30148
- {
30149
- return node;
30150
- }
30151
- else
30152
- {
30153
- const node = new Fields_SFNode (baseNode);
30155
+ node .dispose = dispose;
30154
30156
 
30155
- cache .set (baseNode, node);
30157
+ cache .set (baseNode, node);
30156
30158
 
30157
- return node;
30158
- }
30159
- };
30160
- })(),
30161
- };
30159
+ return node;
30160
+ }
30161
+ }
30162
+ }
30163
+
30164
+ const _target = Symbol .for ("X_ITE.SFNode.target");
30165
+
30166
+ function dispose ()
30167
+ {
30168
+ const
30169
+ target = this [_target],
30170
+ value = target .getValue ();
30171
+
30172
+ cache .delete (value);
30173
+
30174
+ value ?.dispose ();
30175
+
30176
+ Base_X3DField.prototype.dispose.call (target);
30177
+ }
30162
30178
 
30163
30179
  const SFNodeCache_default_ = SFNodeCache;
30164
30180
  ;
@@ -30219,7 +30235,7 @@ x_ite_Namespace.set ("x_ite/Fields/SFNodeCache", SFNodeCache_default_);
30219
30235
 
30220
30236
 
30221
30237
  const
30222
- _target = Symbol (),
30238
+ SFNode_target = Symbol .for ("X_ITE.SFNode.target"),
30223
30239
  _proxy = Symbol (),
30224
30240
  _cloneCount = Symbol ();
30225
30241
 
@@ -30327,7 +30343,7 @@ function SFNode (value)
30327
30343
 
30328
30344
  const proxy = new Proxy (this, SFNode_handler);
30329
30345
 
30330
- this [_target] = this;
30346
+ this [SFNode_target] = this;
30331
30347
  this [_proxy] = proxy;
30332
30348
 
30333
30349
  if (value)
@@ -30347,13 +30363,13 @@ function SFNode (value)
30347
30363
  SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30348
30364
  {
30349
30365
  constructor: SFNode,
30350
- [_target]: null,
30366
+ [SFNode_target]: null,
30351
30367
  [_proxy]: null,
30352
30368
  [_cloneCount]: 0,
30353
30369
  copy: function (instance)
30354
30370
  {
30355
30371
  const
30356
- target = this [_target],
30372
+ target = this [SFNode_target],
30357
30373
  value = target .getValue ();
30358
30374
 
30359
30375
  if (value)
@@ -30371,7 +30387,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30371
30387
  },
30372
30388
  equals: function (node)
30373
30389
  {
30374
- const target = this [_target];
30390
+ const target = this [SFNode_target];
30375
30391
 
30376
30392
  if (node)
30377
30393
  return target .getValue () === node .getValue ();
@@ -30380,14 +30396,14 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30380
30396
  },
30381
30397
  isDefaultValue: function ()
30382
30398
  {
30383
- const target = this [_target];
30399
+ const target = this [SFNode_target];
30384
30400
 
30385
30401
  return target .getValue () === null;
30386
30402
  },
30387
30403
  set: function (value)
30388
30404
  {
30389
30405
  const
30390
- target = this [_target],
30406
+ target = this [SFNode_target],
30391
30407
  current = target .getValue ();
30392
30408
 
30393
30409
  if (current)
@@ -30413,7 +30429,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30413
30429
  getNodeTypeName: function ()
30414
30430
  {
30415
30431
  const
30416
- target = this [_target],
30432
+ target = this [SFNode_target],
30417
30433
  value = target .getValue ();
30418
30434
 
30419
30435
  if (value)
@@ -30424,7 +30440,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30424
30440
  getNodeName: function ()
30425
30441
  {
30426
30442
  const
30427
- target = this [_target],
30443
+ target = this [SFNode_target],
30428
30444
  value = target .getValue ();
30429
30445
 
30430
30446
  if (value)
@@ -30435,7 +30451,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30435
30451
  getNodeDisplayName: function ()
30436
30452
  {
30437
30453
  const
30438
- target = this [_target],
30454
+ target = this [SFNode_target],
30439
30455
  value = target .getValue ();
30440
30456
 
30441
30457
  if (value)
@@ -30446,7 +30462,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30446
30462
  getNodeType: function ()
30447
30463
  {
30448
30464
  const
30449
- target = this [_target],
30465
+ target = this [SFNode_target],
30450
30466
  value = target .getValue ();
30451
30467
 
30452
30468
  if (value)
@@ -30457,7 +30473,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30457
30473
  getFieldDefinitions: function ()
30458
30474
  {
30459
30475
  const
30460
- target = this [_target],
30476
+ target = this [SFNode_target],
30461
30477
  value = target .getValue ();
30462
30478
 
30463
30479
  if (value)
@@ -30467,7 +30483,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30467
30483
  },
30468
30484
  addFieldCallback: function (name, string, object)
30469
30485
  {
30470
- const target = this [_target];
30486
+ const target = this [SFNode_target];
30471
30487
 
30472
30488
  switch (arguments .length)
30473
30489
  {
@@ -30488,7 +30504,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30488
30504
  },
30489
30505
  removeFieldCallback: function (name, string)
30490
30506
  {
30491
- const target = this [_target];
30507
+ const target = this [SFNode_target];
30492
30508
 
30493
30509
  switch (arguments .length)
30494
30510
  {
@@ -30510,7 +30526,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30510
30526
  addCloneCount: function (count)
30511
30527
  {
30512
30528
  const
30513
- target = this [_target],
30529
+ target = this [SFNode_target],
30514
30530
  value = target .getValue ();
30515
30531
 
30516
30532
  target [_cloneCount] += count;
@@ -30521,7 +30537,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30521
30537
  removeCloneCount: function (count)
30522
30538
  {
30523
30539
  const
30524
- target = this [_target],
30540
+ target = this [SFNode_target],
30525
30541
  value = target .getValue ();
30526
30542
 
30527
30543
  target [_cloneCount] -= count;
@@ -30531,16 +30547,16 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30531
30547
  },
30532
30548
  getNodeUserData: function (key)
30533
30549
  {
30534
- return this [_target] .getValue () .getUserData (key);
30550
+ return this [SFNode_target] .getValue () .getUserData (key);
30535
30551
  },
30536
30552
  setNodeUserData: function (key, value)
30537
30553
  {
30538
- this [_target] .getValue () .setUserData (key, value);
30554
+ this [SFNode_target] .getValue () .setUserData (key, value);
30539
30555
  },
30540
30556
  valueOf: function ()
30541
30557
  {
30542
30558
  const
30543
- target = this [_target],
30559
+ target = this [SFNode_target],
30544
30560
  value = target .getValue ();
30545
30561
 
30546
30562
  if (value)
@@ -30590,7 +30606,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30590
30606
  toStream: function (generator)
30591
30607
  {
30592
30608
  const
30593
- target = this [_target],
30609
+ target = this [SFNode_target],
30594
30610
  value = target .getValue ();
30595
30611
 
30596
30612
  if (value)
@@ -30601,7 +30617,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30601
30617
  toVRMLStream: function (generator)
30602
30618
  {
30603
30619
  const
30604
- target = this [_target],
30620
+ target = this [SFNode_target],
30605
30621
  value = target .getValue ();
30606
30622
 
30607
30623
  if (value)
@@ -30612,7 +30628,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30612
30628
  toXMLStream: function (generator)
30613
30629
  {
30614
30630
  const
30615
- target = this [_target],
30631
+ target = this [SFNode_target],
30616
30632
  value = target .getValue ();
30617
30633
 
30618
30634
  if (value)
@@ -30627,7 +30643,7 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30627
30643
  toJSONStreamValue: function (generator)
30628
30644
  {
30629
30645
  const
30630
- target = this [_target],
30646
+ target = this [SFNode_target],
30631
30647
  value = target .getValue ();
30632
30648
 
30633
30649
  if (value)
@@ -30637,12 +30653,9 @@ SFNode .prototype = Object .assign (Object .create (Base_X3DField.prototype),
30637
30653
  },
30638
30654
  dispose: function ()
30639
30655
  {
30640
- const
30641
- target = this [_target],
30642
- value = target .getValue ();
30656
+ const target = this [SFNode_target];
30643
30657
 
30644
- if (value)
30645
- value .dispose ();
30658
+ target .setValue (null);
30646
30659
 
30647
30660
  Base_X3DField.prototype.dispose.call (target);
30648
30661
  },
@@ -33324,29 +33337,37 @@ MFNode .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.pro
33324
33337
  },
33325
33338
  addCloneCount: function (count)
33326
33339
  {
33327
- this [ArrayFields_cloneCount] += count;
33340
+ const target = this .getTarget ();
33341
+
33342
+ target [ArrayFields_cloneCount] += count;
33328
33343
 
33329
- for (const element of this .getValue ())
33344
+ for (const element of target .getValue ())
33330
33345
  element .addCloneCount (count);
33331
33346
  },
33332
33347
  removeCloneCount: function (count)
33333
33348
  {
33334
- this [ArrayFields_cloneCount] -= count;
33349
+ const target = this .getTarget ();
33350
+
33351
+ target [ArrayFields_cloneCount] -= count;
33335
33352
 
33336
- for (const element of this .getValue ())
33353
+ for (const element of target .getValue ())
33337
33354
  element .removeCloneCount (count);
33338
33355
  },
33339
33356
  addChildObject: function (value)
33340
33357
  {
33341
- Base_X3DObjectArrayField.prototype.addChildObject.call (this, value);
33358
+ const target = this .getTarget ();
33342
33359
 
33343
- value .addCloneCount (this [ArrayFields_cloneCount]);
33360
+ Base_X3DObjectArrayField.prototype.addChildObject.call (target, value);
33361
+
33362
+ value .addCloneCount (target [ArrayFields_cloneCount]);
33344
33363
  },
33345
33364
  removeChildObject: function (value)
33346
33365
  {
33347
- Base_X3DObjectArrayField.prototype.removeChildObject.call (this, value);
33366
+ const target = this .getTarget ();
33367
+
33368
+ Base_X3DObjectArrayField.prototype.removeChildObject.call (target, value);
33348
33369
 
33349
- value .removeCloneCount (this [ArrayFields_cloneCount]);
33370
+ value .removeCloneCount (target [ArrayFields_cloneCount]);
33350
33371
  },
33351
33372
  toStream: function (generator)
33352
33373
  {
@@ -33398,11 +33419,13 @@ MFNode .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.pro
33398
33419
  },
33399
33420
  toVRMLString: function ()
33400
33421
  {
33401
- this .addCloneCount (1);
33422
+ const target = this .getTarget ();
33402
33423
 
33403
- const string = Base_X3DObjectArrayField.prototype.toVRMLString.call (this);
33424
+ target .addCloneCount (1);
33404
33425
 
33405
- this .removeCloneCount (1);
33426
+ const string = Base_X3DObjectArrayField.prototype.toVRMLString.call (target);
33427
+
33428
+ target .removeCloneCount (1);
33406
33429
 
33407
33430
  return string;
33408
33431
  },
@@ -33456,23 +33479,27 @@ MFNode .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.pro
33456
33479
  },
33457
33480
  toXMLString: function ()
33458
33481
  {
33459
- this .addCloneCount (1);
33482
+ const target = this .getTarget ();
33483
+
33484
+ target .addCloneCount (1);
33460
33485
 
33461
- const string = Base_X3DObjectArrayField.prototype.toXMLString.call (this);
33486
+ const string = Base_X3DObjectArrayField.prototype.toXMLString.call (target);
33462
33487
 
33463
- this .removeCloneCount (1);
33488
+ target .removeCloneCount (1);
33464
33489
 
33465
33490
  return string;
33466
33491
  },
33467
33492
  toXMLStream: function (generator)
33468
33493
  {
33469
- const length = this .length;
33494
+ const
33495
+ target = this .getTarget (),
33496
+ length = target .length;
33470
33497
 
33471
33498
  if (length)
33472
33499
  {
33473
33500
  generator .EnterScope ();
33474
33501
 
33475
- const array = this .getValue ();
33502
+ const array = target .getValue ();
33476
33503
 
33477
33504
  for (let i = 0, n = length - 1; i < n; ++ i)
33478
33505
  {
@@ -33531,11 +33558,13 @@ MFNode .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.pro
33531
33558
  },
33532
33559
  toJSONStream: function (generator)
33533
33560
  {
33534
- const length = this .length;
33561
+ const
33562
+ target = this .getTarget (),
33563
+ length = target .length;
33535
33564
 
33536
33565
  if (length)
33537
33566
  {
33538
- const array = this .getValue ();
33567
+ const array = target .getValue ();
33539
33568
 
33540
33569
  generator .EnterScope ();
33541
33570
 
@@ -33579,9 +33608,11 @@ MFNode .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.pro
33579
33608
  },
33580
33609
  dispose: function ()
33581
33610
  {
33582
- this .resize (0);
33611
+ const target = this .getTarget ();
33612
+
33613
+ target .resize (0);
33583
33614
 
33584
- Base_X3DObjectArrayField.prototype.dispose.call (this);
33615
+ Base_X3DObjectArrayField.prototype.dispose.call (target);
33585
33616
  },
33586
33617
  });
33587
33618
 
@@ -33622,11 +33653,13 @@ MFString .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.p
33622
33653
  },
33623
33654
  toXMLStream: function (generator)
33624
33655
  {
33625
- const length = this .length;
33656
+ const
33657
+ target = this .getTarget (),
33658
+ length = target .length;
33626
33659
 
33627
33660
  if (length)
33628
33661
  {
33629
- const value = this .getValue ();
33662
+ const value = target .getValue ();
33630
33663
 
33631
33664
  for (let i = 0, n = length - 1; i < n; ++ i)
33632
33665
  {
@@ -34355,10 +34388,10 @@ const
34355
34388
  _predefinedFields = Symbol (),
34356
34389
  _aliases = Symbol (),
34357
34390
  _userDefinedFields = Symbol (),
34391
+ _childObjects = Symbol (),
34358
34392
  _initialized = Symbol (),
34359
34393
  _live = Symbol (),
34360
34394
  _set_live__ = Symbol ("X3DBaseNode.set_live__"),
34361
- _private = Symbol (),
34362
34395
  X3DBaseNode_cloneCount = Symbol ();
34363
34396
 
34364
34397
  function X3DBaseNode (executionContext)
@@ -34374,23 +34407,24 @@ function X3DBaseNode (executionContext)
34374
34407
  this [_predefinedFields] = new Base_FieldArray ();
34375
34408
  this [_aliases] = new Map ();
34376
34409
  this [_userDefinedFields] = new Base_FieldArray ();
34410
+ this [_childObjects] = [ ];
34377
34411
  this [_live] = true;
34378
34412
  this [_initialized] = false;
34379
- this [_private] = false;
34380
34413
  this [X3DBaseNode_cloneCount] = 0;
34381
34414
 
34382
34415
  // Setup fields.
34383
34416
 
34417
+ this .addChildObjects ("name_changed", new x_ite_Fields.SFTime (),
34418
+ "typeName_changed", new x_ite_Fields.SFTime (),
34419
+ "fields_changed", new x_ite_Fields.SFTime (),
34420
+ "cloneCount_changed", new x_ite_Fields.SFTime (),
34421
+ "private", new x_ite_Fields.SFBool ())
34422
+
34384
34423
  if (this .canUserDefinedFields ())
34385
34424
  this [_fieldDefinitions] = new Base_FieldDefinitionArray (this [_fieldDefinitions]);
34386
34425
 
34387
34426
  for (const fieldDefinition of this [_fieldDefinitions])
34388
34427
  this .addField (fieldDefinition);
34389
-
34390
- this .addChildObjects ("name_changed", new x_ite_Fields.SFTime (),
34391
- "typeName_changed", new x_ite_Fields.SFTime (),
34392
- "fields_changed", new x_ite_Fields.SFTime (),
34393
- "cloneCount_changed", new x_ite_Fields.SFTime ())
34394
34428
  }
34395
34429
 
34396
34430
  X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.prototype),
@@ -34443,19 +34477,26 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34443
34477
  {
34444
34478
  return this;
34445
34479
  },
34446
- beginUpdate: function ()
34480
+ isLive: function ()
34447
34481
  {
34448
- this .setLive (true);
34482
+ /// Returns the own live state of this node.
34483
+
34484
+ return this [_live];
34449
34485
  },
34450
- endUpdate: function ()
34486
+ setLive: function (value)
34451
34487
  {
34452
- this .setLive (false);
34488
+ /// Sets the own live state of this node. Setting the live state to false
34489
+ /// temporarily disables this node completely.
34490
+
34491
+ this [_live] = value .valueOf ();
34492
+
34493
+ this [_set_live__] ();
34453
34494
  },
34454
- isLive: (function ()
34495
+ getLive: (function ()
34455
34496
  {
34456
- function isLive ()
34497
+ function getLive ()
34457
34498
  {
34458
- return this ._isLive;
34499
+ return this ._live;
34459
34500
  }
34460
34501
 
34461
34502
  return function ()
@@ -34464,80 +34505,66 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34464
34505
 
34465
34506
  // Change function.
34466
34507
 
34467
- Object .defineProperty (this, "isLive",
34508
+ Object .defineProperty (this, "getLive",
34468
34509
  {
34469
- value: isLive,
34510
+ value: getLive,
34470
34511
  enumerable: false,
34471
34512
  configurable: true,
34472
34513
  });
34473
34514
 
34474
34515
  // Add isLive event.
34475
34516
 
34476
- this .addChildObjects ("isLive", new x_ite_Fields.SFBool (this .getLiveState ()));
34517
+ this .addChildObjects ("live", new x_ite_Fields.SFBool (this .getLiveState ()));
34477
34518
 
34478
34519
  // Event processing is done manually and immediately, so:
34479
- this ._isLive .removeParent (this);
34520
+ this ._live .removeParent (this);
34480
34521
 
34481
34522
  // Connect to execution context.
34482
34523
 
34483
34524
  if (this .getOuterNode && this .getOuterNode ())
34484
- this .getOuterNode () .isLive () .addInterest (_set_live__, this);
34525
+ this .getOuterNode () .getLive () .addInterest (_set_live__, this);
34485
34526
 
34486
34527
  else if (this [_executionContext] !== this)
34487
- this [_executionContext] .isLive () .addInterest (_set_live__, this);
34528
+ this [_executionContext] .getLive () .addInterest (_set_live__, this);
34488
34529
 
34489
- // Return field
34530
+ // Return field.
34490
34531
 
34491
- return this .isLive ();
34532
+ return this ._live;
34492
34533
  };
34493
34534
  })(),
34494
- setLive: function (value)
34495
- {
34496
- /// Sets the own live state of this node. Setting the live state to false
34497
- /// temporarily disables this node completely.
34498
-
34499
- this [_live] = value .valueOf ();
34500
-
34501
- this [_set_live__] ();
34502
- },
34503
- getLive: function ()
34504
- {
34505
- /// Returns the own live state of this node.
34506
-
34507
- return this [_live];
34508
- },
34509
34535
  getLiveState: function ()
34510
34536
  {
34511
34537
  /// Determines the live state of this node.
34512
34538
 
34513
- if (this .getOuterNode && this .getOuterNode ())
34514
- return this .getLive () && this .getOuterNode () .isLive () .getValue ();
34539
+ if (this .getOuterNode ?.())
34540
+ return this [_live] && this .getOuterNode () .getLive () .getValue ();
34515
34541
 
34516
34542
  else if (this !== this [_executionContext])
34517
- return this .getLive () && this [_executionContext] .isLive () .getValue ();
34543
+ return this [_live] && this [_executionContext] .getLive () .getValue ();
34518
34544
 
34519
- return this .getLive ();
34545
+ return this [_live];
34520
34546
  },
34521
34547
  [_set_live__]: function ()
34522
34548
  {
34523
- const
34524
- live = this .getLiveState (),
34525
- isLive = this .isLive ();
34549
+ const live = this ._live;
34550
+
34551
+ if (!live)
34552
+ return;
34526
34553
 
34527
- if (live)
34554
+ if (this .getLiveState ())
34528
34555
  {
34529
- if (isLive .getValue ())
34556
+ if (live .getValue ())
34530
34557
  return;
34531
34558
 
34532
- isLive .set (true);
34533
- isLive .processEvent ();
34559
+ live .set (true);
34560
+ live .processEvent ();
34534
34561
  }
34535
34562
  else
34536
34563
  {
34537
- if (isLive .getValue ())
34564
+ if (live .getValue ())
34538
34565
  {
34539
- isLive .set (false);
34540
- isLive .processEvent ();
34566
+ live .set (false);
34567
+ live .processEvent ();
34541
34568
  }
34542
34569
  }
34543
34570
  },
@@ -34596,6 +34623,8 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34596
34623
  },
34597
34624
  addChildObject: function (name, field)
34598
34625
  {
34626
+ this [_childObjects] .push (field);
34627
+
34599
34628
  field .addParent (this);
34600
34629
  field .setName (name);
34601
34630
 
@@ -34839,11 +34868,11 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34839
34868
  },
34840
34869
  isPrivate: function ()
34841
34870
  {
34842
- return this [_private];
34871
+ return this ._private .getValue ();
34843
34872
  },
34844
34873
  setPrivate: function (value)
34845
34874
  {
34846
- this [_private] = value;
34875
+ this ._private = value;
34847
34876
 
34848
34877
  if (value)
34849
34878
  {
@@ -34856,6 +34885,10 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34856
34885
  field .addCloneCount (1);
34857
34886
  }
34858
34887
  },
34888
+ getPrivate: function ()
34889
+ {
34890
+ return this ._private;
34891
+ },
34859
34892
  getCloneCount: function ()
34860
34893
  {
34861
34894
  return this [X3DBaseNode_cloneCount];
@@ -34894,6 +34927,11 @@ X3DBaseNode .prototype = Object .assign (Object .create (Base_X3DEventObject.pro
34894
34927
  },
34895
34928
  dispose: function ()
34896
34929
  {
34930
+ this .setLive (false);
34931
+
34932
+ for (const field of this [_childObjects])
34933
+ field .dispose ();
34934
+
34897
34935
  for (const field of this .getFields ())
34898
34936
  field .dispose ();
34899
34937
 
@@ -34957,7 +34995,7 @@ x_ite_Namespace.set ("x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34957
34995
  *
34958
34996
  ******************************************************************************/
34959
34997
 
34960
- const VERSION_default_ = "8.6.13";
34998
+ const VERSION_default_ = "8.6.14";
34961
34999
  ;
34962
35000
 
34963
35001
  x_ite_Namespace.set ("x_ite/Browser/VERSION", VERSION_default_);
@@ -35861,7 +35899,7 @@ const gettext_default_ = gettext;
35861
35899
  x_ite_Namespace.set ("locale/gettext", gettext_default_);
35862
35900
  /* harmony default export */ const locale_gettext = (gettext_default_);
35863
35901
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
35864
- /* provided dependency */ var $ = __webpack_require__(869);
35902
+ /* provided dependency */ var $ = __webpack_require__(329);
35865
35903
  /*******************************************************************************
35866
35904
  *
35867
35905
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36279,7 +36317,7 @@ const TextureQuality_default_ = TextureQuality;
36279
36317
  x_ite_Namespace.set ("x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
36280
36318
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
36281
36319
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
36282
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(869);
36320
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(329);
36283
36321
  /*******************************************************************************
36284
36322
  *
36285
36323
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36374,6 +36412,7 @@ BrowserOptions .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36374
36412
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "Notifications", new x_ite_Fields.SFBool (true)),
36375
36413
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "Multisampling", new x_ite_Fields.SFInt32 (4)),
36376
36414
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "OptimizeStaticGroup", new x_ite_Fields.SFBool (true)),
36415
+ new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "PrivateSensors", new x_ite_Fields.SFBool (false)),
36377
36416
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "StraightenHorizon", new x_ite_Fields.SFBool (true)),
36378
36417
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "Timings", new x_ite_Fields.SFBool ()),
36379
36418
  ]),
@@ -36549,7 +36588,7 @@ BrowserOptions .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36549
36588
  this .localStorage .StraightenHorizon = straightenHorizon .getValue ();
36550
36589
 
36551
36590
  if (straightenHorizon .getValue ())
36552
- this .getBrowser () .getActiveLayer ()?.straightenView ();
36591
+ this .getBrowser () .getActiveLayer () ?.straightenView ();
36553
36592
  },
36554
36593
  updateContentScale: function ()
36555
36594
  {
@@ -36814,7 +36853,7 @@ const RenderingProperties_default_ = RenderingProperties;
36814
36853
  x_ite_Namespace.set ("x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
36815
36854
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
36816
36855
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
36817
- /* provided dependency */ var Notification_$ = __webpack_require__(869);
36856
+ /* provided dependency */ var Notification_$ = __webpack_require__(329);
36818
36857
  /*******************************************************************************
36819
36858
  *
36820
36859
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36936,8 +36975,8 @@ const Notification_default_ = Notification;
36936
36975
  x_ite_Namespace.set ("x_ite/Browser/Core/Notification", Notification_default_);
36937
36976
  /* harmony default export */ const Core_Notification = (Notification_default_);
36938
36977
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
36939
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(908);
36940
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(869);
36978
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(839);
36979
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(329);
36941
36980
  /*******************************************************************************
36942
36981
  *
36943
36982
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -37923,6 +37962,7 @@ x_ite_Namespace.set ("x_ite/Execution/NamedNodesArray", NamedNodesArray_default_
37923
37962
 
37924
37963
 
37925
37964
 
37965
+
37926
37966
  function X3DNode (executionContext)
37927
37967
  {
37928
37968
  Base_X3DBaseNode.call (this, executionContext);
@@ -39134,30 +39174,30 @@ X3DNode .prototype = Object .assign (Object .create (Base_X3DBaseNode.prototype)
39134
39174
  if (this .getName ())
39135
39175
  executionContext .removeNamedNode (this .getName ())
39136
39176
 
39137
- // Remove imported node if any.
39138
-
39139
- if (!executionContext .isMainScene ())
39177
+ if (executionContext .isScene ())
39140
39178
  {
39141
- const parentContext = executionContext .getExecutionContext ();
39179
+ // Remove imported node if any.
39142
39180
 
39143
- for (const importedNode of parentContext .getImportedNodes ())
39181
+ if (!executionContext .isMainScene ())
39144
39182
  {
39145
- try
39146
- {
39147
- if (importedNode .getExportedNode () === this)
39148
- parentContext .removeImportedNode (importedNode .getImportedName ());
39149
- }
39150
- catch (error)
39183
+ const parentContext = executionContext .getExecutionContext ();
39184
+
39185
+ for (const importedNode of parentContext .getImportedNodes ())
39151
39186
  {
39152
- //console .error (error);
39187
+ try
39188
+ {
39189
+ if (importedNode .getExportedNode () === this)
39190
+ parentContext .removeImportedNode (importedNode .getImportedName ());
39191
+ }
39192
+ catch (error)
39193
+ {
39194
+ //console .error (error);
39195
+ }
39153
39196
  }
39154
39197
  }
39155
- }
39156
39198
 
39157
- // Remove exported node if any.
39199
+ // Remove exported node if any.
39158
39200
 
39159
- if (executionContext .isScene ())
39160
- {
39161
39201
  for (const exportedNode of executionContext .getExportedNodes ())
39162
39202
  {
39163
39203
  if (exportedNode .getLocalNode () === this)
@@ -40065,7 +40105,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40065
40105
 
40066
40106
  // const proto = this [_protoNode];
40067
40107
 
40068
- // if (! proto .isExternProto)
40108
+ // if (!proto .isExternProto)
40069
40109
  // {
40070
40110
  // const rootNodes = proto .getBody () .getRootNodes ();
40071
40111
 
@@ -40088,15 +40128,13 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40088
40128
  },
40089
40129
  construct: function ()
40090
40130
  {
40091
- if (this [_body])
40092
- this [_body] .dispose ();
40131
+ this [_body] ?.dispose ();
40093
40132
 
40094
40133
  const proto = this [_protoNode] .getProtoDeclaration ();
40095
40134
 
40096
- if (! proto)
40135
+ if (!proto)
40097
40136
  {
40098
- this [_body] = new Execution_X3DExecutionContext (this .getExecutionContext ());
40099
- this [_body] .setOuterNode (this);
40137
+ this [_body] = new Execution_X3DExecutionContext (this .getExecutionContext (), this);
40100
40138
  this [_body] .setup ();
40101
40139
 
40102
40140
  if (this .isInitialized ())
@@ -40124,7 +40162,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40124
40162
  continue;
40125
40163
 
40126
40164
  // Continue if field is eventIn or eventOut.
40127
- if (! field .isInitializable ())
40165
+ if (!field .isInitializable ())
40128
40166
  continue;
40129
40167
 
40130
40168
  // Is set during parse.
@@ -40151,8 +40189,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40151
40189
 
40152
40190
  // Create execution context.
40153
40191
 
40154
- this [_body] = new Execution_X3DExecutionContext (proto .getExecutionContext ());
40155
- this [_body] .setOuterNode (this);
40192
+ this [_body] = new Execution_X3DExecutionContext (proto .getExecutionContext (), this);
40156
40193
 
40157
40194
  // Copy proto.
40158
40195
 
@@ -40194,7 +40231,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40194
40231
  {
40195
40232
  const oldFieldName = oldProtoFields .get (protoField);
40196
40233
 
40197
- if (! oldFieldName)
40234
+ if (!oldFieldName)
40198
40235
  continue;
40199
40236
 
40200
40237
  const
@@ -40208,7 +40245,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40208
40245
  this .getPredefinedFields () .update (newField .getName (), newField .getName (), oldField);
40209
40246
  this .getFields () .update (newField .getName (), newField .getName (), oldField);
40210
40247
 
40211
- if (! this .isPrivate ())
40248
+ if (!this .isPrivate ())
40212
40249
  oldField .addCloneCount (1);
40213
40250
 
40214
40251
  oldFields .delete (oldFieldName);
@@ -40257,7 +40294,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40257
40294
 
40258
40295
  const outerNode = this .getExecutionContext () .getOuterNode ();
40259
40296
 
40260
- if (outerNode && outerNode .getType () .includes (Base_X3DConstants.X3DProtoDeclaration))
40297
+ if (outerNode ?.getType () .includes (Base_X3DConstants.X3DProtoDeclaration))
40261
40298
  return;
40262
40299
 
40263
40300
  if (protoNode .isExternProto)
@@ -40564,7 +40601,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40564
40601
  }
40565
40602
  }
40566
40603
 
40567
- if (references .length && ! sharedNode)
40604
+ if (references .length && !sharedNode)
40568
40605
  {
40569
40606
  generator .string += generator .Indent ();
40570
40607
  generator .string += "<IS>";
@@ -40897,7 +40934,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (Core_X3DNode.p
40897
40934
 
40898
40935
  // IS references
40899
40936
 
40900
- if (references .length && ! sharedNode)
40937
+ if (references .length && !sharedNode)
40901
40938
  {
40902
40939
  generator .string += generator .Indent ();
40903
40940
  generator .string += '"';
@@ -41084,7 +41121,7 @@ X3DProtoDeclarationNode .prototype = Object .assign (Object .create (Base_X3DBas
41084
41121
  {
41085
41122
  return true;
41086
41123
  },
41087
- createInstance: function (executionContext, setup = true)
41124
+ createInstance: function (executionContext, { setup = true } = { })
41088
41125
  {
41089
41126
  if (setup === false)
41090
41127
  {
@@ -41188,8 +41225,7 @@ function X3DProtoDeclaration (executionContext)
41188
41225
 
41189
41226
  this .addType (Base_X3DConstants.X3DProtoDeclaration)
41190
41227
 
41191
- this [X3DProtoDeclaration_body] = new Execution_X3DExecutionContext (executionContext);
41192
- this [X3DProtoDeclaration_body] .setOuterNode (this);
41228
+ this [X3DProtoDeclaration_body] = new Execution_X3DExecutionContext (executionContext, this);
41193
41229
  this [X3DProtoDeclaration_body] .setLive (false);
41194
41230
  this .setLive (false);
41195
41231
  }
@@ -41766,7 +41802,7 @@ X3DUrlObject .prototype =
41766
41802
  constructor: X3DUrlObject,
41767
41803
  initialize: function ()
41768
41804
  {
41769
- this .isLive () .addInterest ("set_live__", this);
41805
+ this .getLive () .addInterest ("set_live__", this);
41770
41806
 
41771
41807
  this ._load .addInterest ("set_load__", this);
41772
41808
  this ._url .addInterest ("set_url__", this);
@@ -41880,7 +41916,7 @@ X3DUrlObject .prototype =
41880
41916
  },
41881
41917
  set_live__: function ()
41882
41918
  {
41883
- if (this .isLive () .getValue ())
41919
+ if (this .getLive () .getValue ())
41884
41920
  this .set_autoRefresh__ ();
41885
41921
  else
41886
41922
  clearTimeout (this [_autoRefreshId]);
@@ -41925,7 +41961,7 @@ const X3DUrlObject_default_ = X3DUrlObject;
41925
41961
  x_ite_Namespace.set ("x_ite/Components/Networking/X3DUrlObject", X3DUrlObject_default_);
41926
41962
  /* harmony default export */ const Networking_X3DUrlObject = (X3DUrlObject_default_);
41927
41963
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
41928
- /* provided dependency */ var X3DParser_$ = __webpack_require__(869);
41964
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(329);
41929
41965
  /*******************************************************************************
41930
41966
  *
41931
41967
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42018,44 +42054,17 @@ X3DParser .prototype = {
42018
42054
  {
42019
42055
  return Boolean (this .prototypes .length);
42020
42056
  },
42021
- loadComponents: (function ()
42057
+ loadComponents: function ()
42022
42058
  {
42023
- const VRML =
42024
- [
42025
- "Core",
42026
- "EnvironmentalEffects",
42027
- "EnvironmentalSensor",
42028
- "Geometry3D",
42029
- "Grouping",
42030
- "Interpolation",
42031
- "Lighting",
42032
- "Navigation",
42033
- "Networking",
42034
- "PointingDeviceSensor",
42035
- "Rendering",
42036
- "Scripting",
42037
- "Shape",
42038
- "Sound",
42039
- "Text",
42040
- "Texturing",
42041
- "Time",
42042
- ];
42043
-
42044
- return function ()
42045
- {
42046
- const
42047
- browser = this .getBrowser (),
42048
- scene = this .getScene ();
42049
-
42050
- if (scene .getSpecificationVersion () === "2.0")
42051
- return browser .loadComponents (VRML);
42059
+ const
42060
+ browser = this .getBrowser (),
42061
+ scene = this .getScene ();
42052
42062
 
42053
- return Promise .all ([
42054
- browser .loadComponents (scene .getProfile () || browser .getProfile ("Full")),
42055
- browser .loadComponents (scene .getComponents ()),
42056
- ]);
42057
- };
42058
- })(),
42063
+ return Promise .all ([
42064
+ browser .loadComponents (scene .getProfile () || browser .getProfile ("Full")),
42065
+ browser .loadComponents (scene .getComponents ()),
42066
+ ]);
42067
+ },
42059
42068
  setUnits: function (units)
42060
42069
  {
42061
42070
  if (units)
@@ -42550,43 +42559,75 @@ VRMLParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototy
42550
42559
  if (match)
42551
42560
  this .lineNumber += match .length;
42552
42561
  },
42553
- x3dScene: function ()
42562
+ x3dScene: (function ()
42554
42563
  {
42555
- this .headerStatement ();
42556
- this .profileStatement ();
42557
- this .componentStatements ();
42558
- this .unitStatements ();
42559
- this .metaStatements ();
42564
+ const VRML =
42565
+ [
42566
+ "Core",
42567
+ "EnvironmentalEffects",
42568
+ "EnvironmentalSensor",
42569
+ "Geometry3D",
42570
+ "Grouping",
42571
+ "Interpolation",
42572
+ "Lighting",
42573
+ "Navigation",
42574
+ "Networking",
42575
+ "PointingDeviceSensor",
42576
+ "Rendering",
42577
+ "Scripting",
42578
+ "Shape",
42579
+ "Sound",
42580
+ "Text",
42581
+ "Texturing",
42582
+ "Time",
42583
+ ];
42560
42584
 
42561
- if (this .success)
42585
+ return function ()
42562
42586
  {
42563
- this .loadComponents () .then (() =>
42587
+ this .headerStatement ();
42588
+ this .profileStatement ();
42589
+ this .componentStatements ();
42590
+ this .unitStatements ();
42591
+ this .metaStatements ();
42592
+
42593
+ if (this .getScene () .getSpecificationVersion () === "2.0")
42564
42594
  {
42565
- try
42566
- {
42567
- this .statements (this .getExecutionContext () .rootNodes);
42595
+ this .getScene () .setProfile (this .getBrowser () .getProfile ("Core"));
42568
42596
 
42569
- if (this .lastIndex < this .input .length)
42570
- throw new Error ("Unknown statement.");
42597
+ for (const componentName of VRML)
42598
+ this .getScene () .addComponent (this .getBrowser () .getComponent (componentName));
42599
+ }
42571
42600
 
42572
- this .success (this .getScene ());
42573
- }
42574
- catch (error)
42601
+ if (this .success)
42602
+ {
42603
+ this .loadComponents () .then (() =>
42575
42604
  {
42576
- console .error (error);
42577
- this .error (new Error (this .getError (error)));
42578
- }
42579
- })
42580
- .catch (this .error .bind (this));
42581
- }
42582
- else
42583
- {
42584
- this .statements (this .getExecutionContext () .rootNodes);
42605
+ try
42606
+ {
42607
+ this .statements (this .getExecutionContext () .rootNodes);
42585
42608
 
42586
- if (this .lastIndex < this .input .length)
42587
- throw new Error ("Unknown statement.");
42588
- }
42589
- },
42609
+ if (this .lastIndex < this .input .length)
42610
+ throw new Error ("Unknown statement.");
42611
+
42612
+ this .success (this .getScene ());
42613
+ }
42614
+ catch (error)
42615
+ {
42616
+ console .error (error);
42617
+ this .error (new Error (this .getError (error)));
42618
+ }
42619
+ })
42620
+ .catch (this .error .bind (this));
42621
+ }
42622
+ else
42623
+ {
42624
+ this .statements (this .getExecutionContext () .rootNodes);
42625
+
42626
+ if (this .lastIndex < this .input .length)
42627
+ throw new Error ("Unknown statement.");
42628
+ }
42629
+ };
42630
+ })(),
42590
42631
  headerStatement: function ()
42591
42632
  {
42592
42633
  Grammar .Header .lastIndex = 0;
@@ -43435,11 +43476,11 @@ VRMLParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototy
43435
43476
  {
43436
43477
  var
43437
43478
  nodeTypeId = this .result [1],
43438
- baseNode = this .getExecutionContext () .createNode (nodeTypeId, false);
43479
+ baseNode = this .getExecutionContext () .createNode (nodeTypeId, { setup: false });
43439
43480
 
43440
43481
  if (! baseNode)
43441
43482
  {
43442
- baseNode = this .getExecutionContext () .createProto (nodeTypeId, false);
43483
+ baseNode = this .getExecutionContext () .createProto (nodeTypeId, { setup: false });
43443
43484
 
43444
43485
  if (! baseNode)
43445
43486
  throw new Error ("Unknown node type or proto '" + nodeTypeId + "', you probably have insufficient component/profile statements, and/or an inappropriate specification version.");
@@ -45102,7 +45143,7 @@ const VRMLParser_default_ = VRMLParser;
45102
45143
  x_ite_Namespace.set ("x_ite/Parser/VRMLParser", VRMLParser_default_);
45103
45144
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
45104
45145
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
45105
- /* provided dependency */ var XMLParser_$ = __webpack_require__(869);
45146
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(329);
45106
45147
  /*******************************************************************************
45107
45148
  *
45108
45149
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -45811,7 +45852,7 @@ XMLParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
45811
45852
 
45812
45853
  if (this .id (name))
45813
45854
  {
45814
- var node = this .getExecutionContext () .createProto (name, false);
45855
+ var node = this .getExecutionContext () .createProto (name, { setup: false });
45815
45856
 
45816
45857
  if (! node)
45817
45858
  throw new Error ("Unknown proto or externproto type '" + name + "'.");
@@ -45885,13 +45926,13 @@ XMLParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
45885
45926
  if (this .useAttribute (xmlElement))
45886
45927
  return;
45887
45928
 
45888
- var node = this .getExecutionContext () .createNode (this .nodeNameToCamelCase (xmlElement .nodeName), false);
45929
+ var node = this .getExecutionContext () .createNode (this .nodeNameToCamelCase (xmlElement .nodeName), { setup: false });
45889
45930
 
45890
- if (! node)
45891
- node = this .getExecutionContext () .createProto (this .protoNameToCamelCase (xmlElement .nodeName), false);
45931
+ if (!node)
45932
+ node = this .getExecutionContext () .createProto (this .protoNameToCamelCase (xmlElement .nodeName), { setup: false });
45892
45933
 
45893
- if (! node)
45894
- throw new Error ("Unknown node type '" + xmlElement .nodeName + "', you probably have insufficient component/profile statements and/or an inappropriate specification version.");
45934
+ if (!node)
45935
+ throw new Error (`Unknown node type '${xmlElement .nodeName}', you probably have insufficient component/profile statements and/or an inappropriate specification version.`);
45895
45936
 
45896
45937
  ///DOMIntegration: attach node to DOM xmlElement for access from DOM.
45897
45938
  XMLParser_$.data (xmlElement, "node", node);
@@ -45921,10 +45962,10 @@ XMLParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
45921
45962
  return;
45922
45963
  }
45923
45964
 
45924
- console .error ("XML Parser Error: " + error .message);
45925
-
45926
45965
  if (DEBUG)
45927
45966
  console .error (error);
45967
+ else
45968
+ console .error ("XML Parser Error: " + error .message);
45928
45969
  }
45929
45970
  },
45930
45971
  scriptElement (element)
@@ -47145,7 +47186,7 @@ const URLs_default_ = URLs;
47145
47186
  x_ite_Namespace.set ("x_ite/Browser/Networking/URLs", URLs_default_);
47146
47187
  /* harmony default export */ const Networking_URLs = (URLs_default_);
47147
47188
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
47148
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(869);
47189
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(329);
47149
47190
  /*******************************************************************************
47150
47191
  *
47151
47192
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47365,7 +47406,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47365
47406
  const
47366
47407
  scene = this .getExecutionContext (),
47367
47408
  worldURL = scene .getWorldURL (),
47368
- worldInfoNode = scene .createNode ("WorldInfo", false);
47409
+ worldInfoNode = scene .createNode ("WorldInfo", { setup: false });
47369
47410
 
47370
47411
  for (const [key, value] of Object .entries (asset))
47371
47412
  {
@@ -47495,7 +47536,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47495
47536
  {
47496
47537
  const
47497
47538
  scene = this .getExecutionContext (),
47498
- lightNode = scene .createNode ("DirectionalLight", false);
47539
+ lightNode = scene .createNode ("DirectionalLight", { setup: false });
47499
47540
 
47500
47541
  return lightNode;
47501
47542
  },
@@ -47503,7 +47544,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47503
47544
  {
47504
47545
  const
47505
47546
  scene = this .getExecutionContext (),
47506
- lightNode = scene .createNode ("SpotLight", false);
47547
+ lightNode = scene .createNode ("SpotLight", { setup: false });
47507
47548
 
47508
47549
  lightNode ._radius = this .numberValue (light .range, 0) || 1_000_000_000;
47509
47550
  lightNode ._cutOffAngle = this .numberValue (light .outerConeAngle, Math .PI / 4);
@@ -47516,7 +47557,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47516
47557
  {
47517
47558
  const
47518
47559
  scene = this .getExecutionContext (),
47519
- lightNode = scene .createNode ("PointLight", false);
47560
+ lightNode = scene .createNode ("PointLight", { setup: false });
47520
47561
 
47521
47562
  lightNode ._radius = this .numberValue (light .range, 0) || 1_000_000_000;
47522
47563
  lightNode ._attenuation = new Numbers_Vector3 (0, 0, 1);
@@ -47742,7 +47783,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47742
47783
  {
47743
47784
  const
47744
47785
  scene = this .getExecutionContext (),
47745
- texturePropertiesNode = scene .createNode ("TextureProperties", false),
47786
+ texturePropertiesNode = scene .createNode ("TextureProperties", { setup: false }),
47746
47787
  name = this .sanitizeName (sampler .name);
47747
47788
 
47748
47789
  if (name)
@@ -47843,7 +47884,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47843
47884
 
47844
47885
  const
47845
47886
  scene = this .getExecutionContext (),
47846
- textureNode = scene .createNode ("ImageTexture", false),
47887
+ textureNode = scene .createNode ("ImageTexture", { setup: false }),
47847
47888
  name = this .sanitizeName (texture .name || image .name);
47848
47889
 
47849
47890
  if (name)
@@ -47888,7 +47929,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47888
47929
 
47889
47930
  const
47890
47931
  scene = this .getExecutionContext (),
47891
- appearanceNode = scene .createNode ("Appearance", false),
47932
+ appearanceNode = scene .createNode ("Appearance", { setup: false }),
47892
47933
  materialNode = this .createMaterial (material),
47893
47934
  name = this .sanitizeName (material .name);
47894
47935
 
@@ -47912,7 +47953,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47912
47953
 
47913
47954
  if (this .textureTransformNodes .length)
47914
47955
  {
47915
- const textureTransformNode = scene .createNode ("TextureTransform", false);
47956
+ const textureTransformNode = scene .createNode ("TextureTransform", { setup: false });
47916
47957
 
47917
47958
  textureTransformNode ._mapping = mapping;
47918
47959
  textureTransformNode ._translation .y = -1;
@@ -47946,7 +47987,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47946
47987
  if (!(object instanceof Object))
47947
47988
  return indices;
47948
47989
 
47949
- if (key .endsWith ("Texture") && !object?.extensions?.KHR_texture_transform)
47990
+ if (key .endsWith ("Texture") && !object ?.extensions ?.KHR_texture_transform)
47950
47991
  indices .add (object .texCoord || 0);
47951
47992
 
47952
47993
  for (const [key, value] of Object .entries (object))
@@ -47958,7 +47999,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47958
47999
  {
47959
48000
  const materials = [
47960
48001
  this .pbrMetallicRoughnessObject .bind (this, material .pbrMetallicRoughness),
47961
- this .pbrSpecularGlossinessObject .bind (this, material .extensions?.KHR_materials_pbrSpecularGlossiness),
48002
+ this .pbrSpecularGlossinessObject .bind (this, material .extensions ?.KHR_materials_pbrSpecularGlossiness),
47962
48003
  this .pbrMetallicRoughnessObject .bind (this, { }),
47963
48004
  ];
47964
48005
 
@@ -47977,7 +48018,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
47977
48018
 
47978
48019
  const
47979
48020
  scene = this .getExecutionContext (),
47980
- materialNode = scene .createNode ("PhysicalMaterial", false);
48021
+ materialNode = scene .createNode ("PhysicalMaterial", { setup: false });
47981
48022
 
47982
48023
  const
47983
48024
  baseColorFactor = new Numbers_Color4 (0, 0, 0, 0),
@@ -48006,7 +48047,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48006
48047
 
48007
48048
  const
48008
48049
  scene = this .getExecutionContext (),
48009
- materialNode = scene .createNode ("Material", false);
48050
+ materialNode = scene .createNode ("Material", { setup: false });
48010
48051
 
48011
48052
  const
48012
48053
  diffuseFactor = new Numbers_Color4 (0, 0, 0, 0),
@@ -48141,7 +48182,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48141
48182
 
48142
48183
  const
48143
48184
  scene = this .getExecutionContext (),
48144
- textureTransformNode = scene .createNode ("TextureTransformMatrix3D", false),
48185
+ textureTransformNode = scene .createNode ("TextureTransformMatrix3D", { setup: false }),
48145
48186
  mapping = `TEXCOORD_${this .texCoordIndex + this .textureTransformNodes .length + 1}`;
48146
48187
 
48147
48188
  const
@@ -48149,8 +48190,8 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48149
48190
  scale = new Numbers_Vector2 (1, 1),
48150
48191
  matrix = new Numbers_Matrix4 ();
48151
48192
 
48152
- matrix .translate (new Numbers_Vector3 (0, 1, 0));
48153
48193
  matrix .scale (new Numbers_Vector3 (1, -1, 1));
48194
+ matrix .translate (new Numbers_Vector3 (0, -1, 0));
48154
48195
 
48155
48196
  if (this .vectorValue (KHR_texture_transform .offset, translation))
48156
48197
  matrix .translate (new Numbers_Vector3 (... translation, 0));
@@ -48464,7 +48505,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48464
48505
  {
48465
48506
  const
48466
48507
  scene = this .getExecutionContext (),
48467
- viewpointNode = scene .createNode ("OrthoViewpoint", false);
48508
+ viewpointNode = scene .createNode ("OrthoViewpoint", { setup: false });
48468
48509
 
48469
48510
  if (typeof camera .xmag === "number")
48470
48511
  {
@@ -48492,7 +48533,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48492
48533
  {
48493
48534
  const
48494
48535
  scene = this .getExecutionContext (),
48495
- viewpointNode = scene .createNode ("Viewpoint", false);
48536
+ viewpointNode = scene .createNode ("Viewpoint", { setup: false });
48496
48537
 
48497
48538
  if (typeof camera .yfov === "number")
48498
48539
  viewpointNode ._fieldOfView = camera .yfov
@@ -48526,7 +48567,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48526
48567
 
48527
48568
  const
48528
48569
  scene = this .getExecutionContext (),
48529
- transformNode = scene .createNode ("Transform", false),
48570
+ transformNode = scene .createNode ("Transform", { setup: false }),
48530
48571
  name = this .sanitizeName (node .name);
48531
48572
 
48532
48573
  // Name
@@ -48664,7 +48705,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48664
48705
  if (this .usedLights)
48665
48706
  scene .getRootNodes () .push (this .createNavigationInfo ());
48666
48707
 
48667
- const switchNode = scene .createNode ("Switch", false);
48708
+ const switchNode = scene .createNode ("Switch", { setup: false });
48668
48709
 
48669
48710
  scene .addNamedNode (scene .getUniqueName ("Scenes"), switchNode);
48670
48711
  scene .addExportedNode (scene .getUniqueExportName ("Scenes"), switchNode);
@@ -48702,7 +48743,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48702
48743
  {
48703
48744
  const
48704
48745
  scene = this .getExecutionContext (),
48705
- groupNode = scene .createNode ("Group", false),
48746
+ groupNode = scene .createNode ("Group", { setup: false }),
48706
48747
  name = this .sanitizeName (sceneObject .name);
48707
48748
 
48708
48749
  if (name)
@@ -48737,7 +48778,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48737
48778
 
48738
48779
  const
48739
48780
  scene = this .getExecutionContext (),
48740
- groupNode = scene .createNode ("Group", false);
48781
+ groupNode = scene .createNode ("Group", { setup: false });
48741
48782
 
48742
48783
  scene .addNamedNode (scene .getUniqueName ("Animations"), groupNode);
48743
48784
  scene .addExportedNode (scene .getUniqueExportName ("Animations"), groupNode);
@@ -48755,14 +48796,14 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48755
48796
 
48756
48797
  const
48757
48798
  scene = this .getExecutionContext (),
48758
- timeSensorNode = scene .createNode ("TimeSensor", false),
48799
+ timeSensorNode = scene .createNode ("TimeSensor", { setup: false }),
48759
48800
  channelNodes = this .animationChannelsArray (animation .channels, animation .samplers, timeSensorNode);
48760
48801
 
48761
48802
  if (!channelNodes .length)
48762
48803
  return null;
48763
48804
 
48764
48805
  const
48765
- groupNode = scene .createNode ("Group", false),
48806
+ groupNode = scene .createNode ("Group", { setup: false }),
48766
48807
  name = this .sanitizeName (animation .name);
48767
48808
 
48768
48809
  ++ this .animations;
@@ -48857,7 +48898,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48857
48898
  {
48858
48899
  const
48859
48900
  scene = this .getExecutionContext (),
48860
- navigationInfoNode = scene .createNode ("NavigationInfo", false);
48901
+ navigationInfoNode = scene .createNode ("NavigationInfo", { setup: false });
48861
48902
 
48862
48903
  navigationInfoNode ._headlight = false;
48863
48904
 
@@ -48869,7 +48910,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48869
48910
  {
48870
48911
  const
48871
48912
  scene = this .getExecutionContext (),
48872
- shapeNode = scene .createNode ("Shape", false),
48913
+ shapeNode = scene .createNode ("Shape", { setup: false }),
48873
48914
  appearanceNode = this .materialObject (primitive .material),
48874
48915
  geometryNode = this .createGeometry (primitive);
48875
48916
 
@@ -48887,8 +48928,8 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48887
48928
 
48888
48929
  const
48889
48930
  scene = this .getExecutionContext (),
48890
- appearanceNode = scene .createNode ("Appearance", false),
48891
- materialNode = scene .createNode ("PhysicalMaterial", false);
48931
+ appearanceNode = scene .createNode ("Appearance", { setup: false }),
48932
+ materialNode = scene .createNode ("PhysicalMaterial", { setup: false });
48892
48933
 
48893
48934
  appearanceNode ._alphaMode = "OPAQUE";
48894
48935
  appearanceNode ._material = materialNode;
@@ -48917,7 +48958,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48917
48958
 
48918
48959
  const
48919
48960
  scene = this .getExecutionContext (),
48920
- textureTransformNode = scene .createNode ("TextureTransform", false);
48961
+ textureTransformNode = scene .createNode ("TextureTransform", { setup: false });
48921
48962
 
48922
48963
  textureTransformNode ._translation .y = -1;
48923
48964
  textureTransformNode ._scale .y = -1;
@@ -48934,7 +48975,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48934
48975
  {
48935
48976
  const
48936
48977
  scene = this .getExecutionContext (),
48937
- textureTransformNode = scene .createNode ("MultiTextureTransform", false);
48978
+ textureTransformNode = scene .createNode ("MultiTextureTransform", { setup: false });
48938
48979
 
48939
48980
  textureTransformNode ._textureTransform = textureTransformNodes;
48940
48981
 
@@ -48995,7 +49036,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
48995
49036
  {
48996
49037
  const
48997
49038
  scene = this .getExecutionContext (),
48998
- geometryNode = scene .createNode ("PointSet", false);
49039
+ geometryNode = scene .createNode ("PointSet", { setup: false });
48999
49040
 
49000
49041
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
49001
49042
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
@@ -49009,7 +49050,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49009
49050
  {
49010
49051
  const
49011
49052
  scene = this .getExecutionContext (),
49012
- geometryNode = scene .createNode ("IndexedLineSet", false);
49053
+ geometryNode = scene .createNode ("IndexedLineSet", { setup: false });
49013
49054
 
49014
49055
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
49015
49056
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
@@ -49080,7 +49121,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49080
49121
  {
49081
49122
  const
49082
49123
  scene = this .getExecutionContext (),
49083
- geometryNode = scene .createNode ("LineSet", false);
49124
+ geometryNode = scene .createNode ("LineSet", { setup: false });
49084
49125
 
49085
49126
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
49086
49127
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
@@ -49094,7 +49135,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49094
49135
  {
49095
49136
  const
49096
49137
  scene = this .getExecutionContext (),
49097
- geometryNode = scene .createNode ("IndexedTriangleSet", false);
49138
+ geometryNode = scene .createNode ("IndexedTriangleSet", { setup: false });
49098
49139
 
49099
49140
  geometryNode ._solid = material ? ! material .doubleSided : true;
49100
49141
  geometryNode ._index = indices .array;
@@ -49112,7 +49153,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49112
49153
  {
49113
49154
  const
49114
49155
  scene = this .getExecutionContext (),
49115
- geometryNode = scene .createNode ("TriangleSet", false);
49156
+ geometryNode = scene .createNode ("TriangleSet", { setup: false });
49116
49157
 
49117
49158
  geometryNode ._solid = material ? ! material .doubleSided : true;
49118
49159
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
@@ -49129,7 +49170,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49129
49170
  {
49130
49171
  const
49131
49172
  scene = this .getExecutionContext (),
49132
- geometryNode = scene .createNode ("IndexedTriangleStripSet", false);
49173
+ geometryNode = scene .createNode ("IndexedTriangleStripSet", { setup: false });
49133
49174
 
49134
49175
  geometryNode ._solid = material ? ! material .doubleSided : true;
49135
49176
  geometryNode ._index = indices .array;
@@ -49147,7 +49188,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49147
49188
  {
49148
49189
  const
49149
49190
  scene = this .getExecutionContext (),
49150
- geometryNode = scene .createNode ("TriangleStripSet", false);
49191
+ geometryNode = scene .createNode ("TriangleStripSet", { setup: false });
49151
49192
 
49152
49193
  geometryNode ._solid = material ? ! material .doubleSided : true;
49153
49194
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
@@ -49172,7 +49213,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49172
49213
  {
49173
49214
  const
49174
49215
  scene = this .getExecutionContext (),
49175
- geometryNode = scene .createNode ("IndexedTriangleFanSet", false);
49216
+ geometryNode = scene .createNode ("IndexedTriangleFanSet", { setup: false });
49176
49217
 
49177
49218
  geometryNode ._solid = material ? ! material .doubleSided : true;
49178
49219
  geometryNode ._index = indices .array;
@@ -49190,7 +49231,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49190
49231
  {
49191
49232
  const
49192
49233
  scene = this .getExecutionContext (),
49193
- geometryNode = scene .createNode ("TriangleFanSet", false);
49234
+ geometryNode = scene .createNode ("TriangleFanSet", { setup: false });
49194
49235
 
49195
49236
  geometryNode ._solid = material ? ! material .doubleSided : true;
49196
49237
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
@@ -49235,7 +49276,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49235
49276
  scene = this .getExecutionContext (),
49236
49277
  appearanceNode = this .materialObject (material),
49237
49278
  opaque = appearanceNode ._alphaMode .getValue () === "OPAQUE",
49238
- colorNode = scene .createNode (opaque ? "Color" : typeName, false);
49279
+ colorNode = scene .createNode (opaque ? "Color" : typeName, { setup: false });
49239
49280
 
49240
49281
  colorNode ._color = opaque && typeName !== "Color"
49241
49282
  ? color .array .filter ((_, i) => (i + 1) % 4)
@@ -49279,7 +49320,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49279
49320
 
49280
49321
  const
49281
49322
  scene = this .getExecutionContext (),
49282
- textureCoordinateNode = scene .createNode ("MultiTextureCoordinate", false);
49323
+ textureCoordinateNode = scene .createNode ("MultiTextureCoordinate", { setup: false });
49283
49324
 
49284
49325
  textureCoordinateNode ._texCoord = textureCoordinateNodes;
49285
49326
 
@@ -49302,7 +49343,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49302
49343
 
49303
49344
  const
49304
49345
  scene = this .getExecutionContext (),
49305
- textureCoordinateNode = scene .createNode ("TextureCoordinate", false);
49346
+ textureCoordinateNode = scene .createNode ("TextureCoordinate", { setup: false });
49306
49347
 
49307
49348
  textureCoordinateNode ._mapping = mapping;
49308
49349
  textureCoordinateNode ._point = texCoord .array;
@@ -49324,7 +49365,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49324
49365
 
49325
49366
  const
49326
49367
  scene = this .getExecutionContext (),
49327
- normalNode = scene .createNode ("Normal", false);
49368
+ normalNode = scene .createNode ("Normal", { setup: false });
49328
49369
 
49329
49370
  normalNode ._vector = normal .array;
49330
49371
 
@@ -49345,7 +49386,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49345
49386
 
49346
49387
  const
49347
49388
  scene = this .getExecutionContext (),
49348
- coordinateNode = scene .createNode ("Coordinate", false);
49389
+ coordinateNode = scene .createNode ("Coordinate", { setup: false });
49349
49390
 
49350
49391
  coordinateNode ._point = position .array;
49351
49392
 
@@ -49398,7 +49439,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49398
49439
  {
49399
49440
  case "STEP":
49400
49441
  {
49401
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
49442
+ const interpolatorNode = scene .createNode ("PositionInterpolator", { setup: false });
49402
49443
 
49403
49444
  // Key
49404
49445
 
@@ -49426,7 +49467,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49426
49467
  default:
49427
49468
  case "LINEAR":
49428
49469
  {
49429
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
49470
+ const interpolatorNode = scene .createNode ("PositionInterpolator", { setup: false });
49430
49471
 
49431
49472
  interpolatorNode ._key = times .map (t => t / cycleInterval);
49432
49473
  interpolatorNode ._keyValue = keyValues;
@@ -49438,7 +49479,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49438
49479
  case "CUBICSPLINE":
49439
49480
  {
49440
49481
  const
49441
- interpolatorNode = scene .createNode ("PositionInterpolator", false),
49482
+ interpolatorNode = scene .createNode ("PositionInterpolator", { setup: false }),
49442
49483
  vectors = [ ];
49443
49484
 
49444
49485
  for (let i = 0, length = keyValues .length; i < length; i += 3)
@@ -49472,7 +49513,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49472
49513
  {
49473
49514
  case "STEP":
49474
49515
  {
49475
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
49516
+ const interpolatorNode = scene .createNode ("OrientationInterpolator", { setup: false });
49476
49517
 
49477
49518
  // Key
49478
49519
 
@@ -49509,7 +49550,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49509
49550
  default:
49510
49551
  case "LINEAR":
49511
49552
  {
49512
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
49553
+ const interpolatorNode = scene .createNode ("OrientationInterpolator", { setup: false });
49513
49554
 
49514
49555
  interpolatorNode ._key = times .map (t => t / cycleInterval);
49515
49556
 
@@ -49528,7 +49569,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (Parser_X3DParser.protot
49528
49569
  case "CUBICSPLINE":
49529
49570
  {
49530
49571
  const
49531
- interpolatorNode = scene .createNode ("OrientationInterpolator", false),
49572
+ interpolatorNode = scene .createNode ("OrientationInterpolator", { setup: false }),
49532
49573
  quaternions = [ ];
49533
49574
 
49534
49575
  for (let i = 0, length = keyValues .length; i < length; i += 4)
@@ -49611,7 +49652,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
49611
49652
  x_ite_Namespace.set ("x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
49612
49653
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
49613
49654
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
49614
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(869);
49655
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(329);
49615
49656
  /*******************************************************************************
49616
49657
  *
49617
49658
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49764,7 +49805,7 @@ const GLB2Parser_default_ = GLB2Parser;
49764
49805
  x_ite_Namespace.set ("x_ite/Parser/GLB2Parser", GLB2Parser_default_);
49765
49806
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
49766
49807
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
49767
- /* provided dependency */ var OBJParser_$ = __webpack_require__(869);
49808
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(329);
49768
49809
  /*******************************************************************************
49769
49810
  *
49770
49811
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52217,8 +52258,8 @@ const MatrixStack_default_ = MatrixStack;
52217
52258
  x_ite_Namespace.set ("standard/Math/Utility/MatrixStack", MatrixStack_default_);
52218
52259
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
52219
52260
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
52220
- /* provided dependency */ var SVGParser_$ = __webpack_require__(869);
52221
- /* provided dependency */ var libtess = __webpack_require__(23);
52261
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(329);
52262
+ /* provided dependency */ var libtess = __webpack_require__(355);
52222
52263
  /*******************************************************************************
52223
52264
  *
52224
52265
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54987,7 +55028,7 @@ const SVGParser_default_ = SVGParser;
54987
55028
  x_ite_Namespace.set ("x_ite/Parser/SVGParser", SVGParser_default_);
54988
55029
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
54989
55030
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
54990
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(869);
55031
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(329);
54991
55032
  /*******************************************************************************
54992
55033
  *
54993
55034
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -55316,7 +55357,7 @@ const Plane3_default_ = Plane3;
55316
55357
  x_ite_Namespace.set ("standard/Math/Geometry/Plane3", Plane3_default_);
55317
55358
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
55318
55359
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
55319
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(23);
55360
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(355);
55320
55361
  /*******************************************************************************
55321
55362
  *
55322
55363
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -58818,25 +58859,24 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58818
58859
  },
58819
58860
  getBound: function (name)
58820
58861
  {
58821
- if (this .array .length === 1)
58862
+ const length = this .array .length;
58863
+
58864
+ if (length === 1)
58822
58865
  return this .array [0]; // Return default viewpoint.
58823
58866
 
58824
- const
58825
- enableInlineBindables = false,
58826
- mainScene = this .getMainScene ();
58867
+ const enableInlineBindables = false;
58827
58868
 
58828
58869
  if (name)
58829
58870
  {
58830
58871
  // Return first viewpoint with @name.
58831
58872
 
58832
- for (let i = 1, length = this .array .length; i < length; ++ i)
58873
+ for (let i = 1; i < length; ++ i)
58833
58874
  {
58834
58875
  const
58835
- node = this .array [i],
58836
- outerNode = node .getExecutionContext () .getOuterNode (),
58837
- scene = outerNode instanceof Core_X3DPrototypeInstance ? outerNode .getScene () : node .getScene ();
58876
+ node = this .array [i],
58877
+ scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
58838
58878
 
58839
- if (!enableInlineBindables && scene !== mainScene)
58879
+ if (!enableInlineBindables && !scene .isMainScene ())
58840
58880
  continue;
58841
58881
 
58842
58882
  if (node .getName () == name)
@@ -58846,14 +58886,13 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58846
58886
 
58847
58887
  // Return first bound viewpoint in scene.
58848
58888
 
58849
- for (let i = 1, length = this .array .length; i < length; ++ i)
58889
+ for (let i = 1; i < length; ++ i)
58850
58890
  {
58851
58891
  const
58852
- node = this .array [i],
58853
- outerNode = node .getExecutionContext () .getOuterNode (),
58854
- scene = outerNode instanceof Core_X3DPrototypeInstance ? outerNode .getScene () : node .getScene ();
58892
+ node = this .array [i],
58893
+ scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
58855
58894
 
58856
- if (!enableInlineBindables && scene !== mainScene)
58895
+ if (!enableInlineBindables && !scene .isMainScene ())
58857
58896
  continue;
58858
58897
 
58859
58898
  if (node ._isBound .getValue ())
@@ -58862,14 +58901,13 @@ BindableList .prototype = Object .assign (Object .create (Base_X3DBaseNode.proto
58862
58901
 
58863
58902
  // Return first viewpoint in scene.
58864
58903
 
58865
- for (let i = 1, length = this .array .length; i < length; ++ i)
58904
+ for (let i = 1; i < length; ++ i)
58866
58905
  {
58867
58906
  const
58868
- node = this .array [i],
58869
- outerNode = node .getExecutionContext () .getOuterNode (),
58870
- scene = outerNode instanceof Core_X3DPrototypeInstance ? outerNode .getScene () : node .getScene ();
58907
+ node = this .array [i],
58908
+ scene = node .getExecutionContext () .getOuterNode () ?.getScene () ?? node .getScene ();
58871
58909
 
58872
- if (!enableInlineBindables && scene !== mainScene)
58910
+ if (!enableInlineBindables && !scene .isMainScene ())
58873
58911
  continue;
58874
58912
 
58875
58913
  return node;
@@ -60100,7 +60138,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
60100
60138
  browser = this .getBrowser (),
60101
60139
  gl = browser .getContext ();
60102
60140
 
60103
- this .isLive () .addInterest ("set_live__", this);
60141
+ this .getLive () .addInterest ("set_live__", this);
60104
60142
 
60105
60143
  this .addInterest ("requestRebuild", this);
60106
60144
  this ._rebuild .addInterest ("rebuild", this);
@@ -60628,7 +60666,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
60628
60666
  })(),
60629
60667
  set_live__: function ()
60630
60668
  {
60631
- if (this .isLive () .getValue ())
60669
+ if (this .getLive () .getValue ())
60632
60670
  this .getBrowser () .getBrowserOptions () ._Shading .addInterest ("set_shading__", this);
60633
60671
  else
60634
60672
  this .getBrowser () .getBrowserOptions () ._Shading .removeInterest ("set_shading__", this);
@@ -60940,7 +60978,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
60940
60978
  attribBuffers = this .attribBuffers,
60941
60979
  primitiveMode = browser .getPrimitiveMode (this .primitiveMode);
60942
60980
 
60943
- blendModeNode?.enable (gl);
60981
+ blendModeNode ?.enable (gl);
60944
60982
 
60945
60983
  shaderNode .enable (gl);
60946
60984
  shaderNode .setUniforms (gl, this, renderContext, front);
@@ -61011,7 +61049,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
61011
61049
  }
61012
61050
  }
61013
61051
 
61014
- blendModeNode?.disable (gl);
61052
+ blendModeNode ?.disable (gl);
61015
61053
  },
61016
61054
  displaySimpleParticles: function (gl, shaderNode, particleSystem)
61017
61055
  {
@@ -61059,7 +61097,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
61059
61097
  attribBuffers = this .attribBuffers,
61060
61098
  primitiveMode = browser .getPrimitiveMode (this .primitiveMode);
61061
61099
 
61062
- blendModeNode?.enable (gl);
61100
+ blendModeNode ?.enable (gl);
61063
61101
 
61064
61102
  // Setup shader.
61065
61103
 
@@ -61129,7 +61167,7 @@ X3DGeometryNode .prototype = Object .assign (Object .create (Core_X3DNode.protot
61129
61167
  gl .drawArraysInstanced (primitiveMode, 0, this .vertexCount, particleSystem .numParticles);
61130
61168
  }
61131
61169
 
61132
- blendModeNode?.disable (gl);
61170
+ blendModeNode ?.disable (gl);
61133
61171
  },
61134
61172
  });
61135
61173
 
@@ -61583,7 +61621,7 @@ X3DBackgroundNode .prototype = Object .assign (Object .create (Core_X3DBindableN
61583
61621
  },
61584
61622
  updateTexture: function (index, textureNode)
61585
61623
  {
61586
- this .textureNodes [index]?._loadState .removeInterest ("setTextureBit", this);
61624
+ this .textureNodes [index] ?._loadState .removeInterest ("setTextureBit", this);
61587
61625
 
61588
61626
  this .textureNodes [index] = textureNode;
61589
61627
 
@@ -62623,7 +62661,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62623
62661
  x_ite_Namespace.set ("x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
62624
62662
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
62625
62663
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62626
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(869);
62664
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(329);
62627
62665
  /*******************************************************************************
62628
62666
  *
62629
62667
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -62770,7 +62808,7 @@ ImageTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
62770
62808
  setError: function (event)
62771
62809
  {
62772
62810
  if (this .URL .protocol !== "data:")
62773
- console .warn ("Error loading image:", decodeURI (this .URL .href), event .type);
62811
+ console .warn (`Error loading image '${decodeURI (this .URL .href)}'`, event .type);
62774
62812
 
62775
62813
  this .loadNext ();
62776
62814
  },
@@ -62779,7 +62817,7 @@ ImageTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
62779
62817
  if (DEBUG)
62780
62818
  {
62781
62819
  if (this .URL .protocol !== "data:")
62782
- console .info ("Done loading image:", decodeURI (this .URL .href));
62820
+ console .info (`Done loading image '${decodeURI (this .URL .href)}'`);
62783
62821
  }
62784
62822
 
62785
62823
  try
@@ -63136,9 +63174,8 @@ function X3DLayerNode (executionContext, defaultViewpoint, groupNode)
63136
63174
  if (executionContext .getSpecificationVersion () < 4.0)
63137
63175
  this .addAlias ("isPickable", this ._pickable);
63138
63176
 
63139
- this .pickableGroupNode = executionContext .createNode ("PickableGroup", false);
63140
- this .groupNode = groupNode;
63141
- this .currentViewport = null;
63177
+ this .groupNode = groupNode;
63178
+ this .viewportNode = null;
63142
63179
 
63143
63180
  this .defaultNavigationInfo = new Navigation_NavigationInfo (executionContext);
63144
63181
  this .defaultViewpoint = defaultViewpoint;
@@ -63169,21 +63206,6 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63169
63206
  Core_X3DNode.prototype.initialize.call (this);
63170
63207
  Rendering_X3DRenderObject.prototype.initialize.call (this);
63171
63208
 
63172
- // if (this .pickableGroupNode)
63173
- // {
63174
- // this ._pickable .addFieldInterest (this .pickableGroupNode ._pickable);
63175
- // this ._objectType .addFieldInterest (this .pickableGroupNode ._objectType);
63176
-
63177
- // this .pickableGroupNode ._pickable = this ._pickable;
63178
- // this .pickableGroupNode ._objectType = this ._objectType;
63179
-
63180
- // this .pickableGroupNode .setup ();
63181
- // }
63182
- // else
63183
- // {
63184
- // this .pickableGroupNode = this .groupNode;
63185
- // }
63186
-
63187
63209
  this .defaultNavigationInfo .setup ();
63188
63210
  this .defaultViewpoint .setup ();
63189
63211
  this .defaultBackground .setup ();
@@ -63220,9 +63242,13 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63220
63242
  {
63221
63243
  return this .groupNode;
63222
63244
  },
63245
+ setGroup: function (groupNode)
63246
+ {
63247
+ this .groupNode = groupNode;
63248
+ },
63223
63249
  getViewport: function ()
63224
63250
  {
63225
- return this .currentViewport;
63251
+ return this .viewportNode;
63226
63252
  },
63227
63253
  getBackground: function ()
63228
63254
  {
@@ -63302,10 +63328,10 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63302
63328
  },
63303
63329
  set_viewport__: function ()
63304
63330
  {
63305
- this .currentViewport = Base_X3DCast (Base_X3DConstants.X3DViewportNode, this ._viewport);
63331
+ this .viewportNode = Base_X3DCast (Base_X3DConstants.X3DViewportNode, this ._viewport);
63306
63332
 
63307
- if (! this .currentViewport)
63308
- this .currentViewport = this .getBrowser () .getDefaultViewport ();
63333
+ if (! this .viewportNode)
63334
+ this .viewportNode = this .getBrowser () .getDefaultViewport ();
63309
63335
  },
63310
63336
  bindBindables: function (viewpointName)
63311
63337
  {
@@ -63365,7 +63391,7 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63365
63391
  {
63366
63392
  const
63367
63393
  browser = this .getBrowser (),
63368
- viewport = this .currentViewport .getRectangle ();
63394
+ viewport = this .viewportNode .getRectangle ();
63369
63395
 
63370
63396
  if (browser .getPointingLayer ())
63371
63397
  {
@@ -63382,11 +63408,11 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63382
63408
  this .getNavigationInfo () .enable (type, renderObject);
63383
63409
  this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63384
63410
 
63385
- this .currentViewport .push (this);
63411
+ this .viewportNode .push (this);
63386
63412
  renderObject .render (type, this .groupNode .traverse, this .groupNode);
63387
- this .currentViewport .pop (this);
63413
+ this .viewportNode .pop (this);
63388
63414
 
63389
- this .getModelViewMatrix () .pop ()
63415
+ this .getModelViewMatrix () .pop ();
63390
63416
  },
63391
63417
  camera: function (type, renderObject)
63392
63418
  {
@@ -63394,9 +63420,9 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63394
63420
  {
63395
63421
  this .getModelViewMatrix () .pushMatrix (Numbers_Matrix4.Identity);
63396
63422
 
63397
- this .currentViewport .push (this);
63423
+ this .viewportNode .push (this);
63398
63424
  this .groupNode .traverse (type, renderObject);
63399
- this .currentViewport .pop (this);
63425
+ this .viewportNode .pop (this);
63400
63426
 
63401
63427
  this .getModelViewMatrix () .pop ();
63402
63428
 
@@ -63414,9 +63440,9 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63414
63440
  {
63415
63441
  this .getModelViewMatrix () .pushMatrix (Numbers_Matrix4.Identity);
63416
63442
 
63417
- this .currentViewport .push (this);
63443
+ this .viewportNode .push (this);
63418
63444
  this .groupNode .traverse (type, renderObject);
63419
- this .currentViewport .pop (this);
63445
+ this .viewportNode .pop (this);
63420
63446
 
63421
63447
  this .getModelViewMatrix () .pop ();
63422
63448
  }
@@ -63427,28 +63453,31 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63427
63453
 
63428
63454
  return function (type, renderObject)
63429
63455
  {
63430
- const navigationInfo = this .getNavigationInfo ();
63456
+ if (this ._visible .getValue ())
63457
+ {
63458
+ const navigationInfo = this .getNavigationInfo ();
63431
63459
 
63432
- if (navigationInfo ._transitionActive .getValue ())
63433
- return;
63460
+ if (navigationInfo ._transitionActive .getValue ())
63461
+ return;
63434
63462
 
63435
- const
63436
- collisionRadius = navigationInfo .getCollisionRadius (),
63437
- avatarHeight = navigationInfo .getAvatarHeight (),
63438
- size = Math .max (collisionRadius * 2, avatarHeight * 2);
63463
+ const
63464
+ collisionRadius = navigationInfo .getCollisionRadius (),
63465
+ avatarHeight = navigationInfo .getAvatarHeight (),
63466
+ size = Math .max (collisionRadius * 2, avatarHeight * 2);
63439
63467
 
63440
- Geometry_Camera.ortho (-size, size, -size, size, -size, size, projectionMatrix);
63468
+ Geometry_Camera.ortho (-size, size, -size, size, -size, size, projectionMatrix);
63441
63469
 
63442
- this .getProjectionMatrix () .pushMatrix (projectionMatrix);
63443
- this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63470
+ this .getProjectionMatrix () .pushMatrix (projectionMatrix);
63471
+ this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63444
63472
 
63445
- // Render
63446
- this .currentViewport .push (this);
63447
- renderObject .render (type, this .groupNode .traverse, this .groupNode);
63448
- this .currentViewport .pop (this);
63473
+ // Render
63474
+ this .viewportNode .push (this);
63475
+ renderObject .render (type, this .groupNode .traverse, this .groupNode);
63476
+ this .viewportNode .pop (this);
63449
63477
 
63450
- this .getModelViewMatrix () .pop ()
63451
- this .getProjectionMatrix () .pop ()
63478
+ this .getModelViewMatrix () .pop ();
63479
+ this .getProjectionMatrix () .pop ();
63480
+ }
63452
63481
  };
63453
63482
  })(),
63454
63483
  display: function (type, renderObject)
@@ -63458,11 +63487,11 @@ X3DLayerNode .prototype = Object .assign (Object .create (Core_X3DNode.prototype
63458
63487
  this .getNavigationInfo () .enable (type, renderObject);
63459
63488
  this .getModelViewMatrix () .pushMatrix (this .getViewMatrix () .get ());
63460
63489
 
63461
- this .currentViewport .push (this);
63490
+ this .viewportNode .push (this);
63462
63491
  renderObject .render (type, this .groupNode .traverse, this .groupNode);
63463
- this .currentViewport .pop (this);
63492
+ this .viewportNode .pop (this);
63464
63493
 
63465
- this .getModelViewMatrix () .pop ()
63494
+ this .getModelViewMatrix () .pop ();
63466
63495
  }
63467
63496
  },
63468
63497
  });
@@ -63618,7 +63647,7 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (Core_X3DChildN
63618
63647
  constructor: X3DTimeDependentNode,
63619
63648
  initialize: function ()
63620
63649
  {
63621
- this .isLive () .addInterest ("set_live__", this);
63650
+ this .getLive () .addInterest ("set_live__", this);
63622
63651
  this ._isEvenLive .addInterest ("set_live__", this);
63623
63652
 
63624
63653
  this ._initialized .addInterest ("set_loop__", this);
@@ -63644,7 +63673,7 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (Core_X3DChildN
63644
63673
  {
63645
63674
  /// Determines the live state of this node.
63646
63675
 
63647
- return this .getLive () && (this .getExecutionContext () .isLive () .getValue () || this ._isEvenLive .getValue ());
63676
+ return this .isLive () && (this .getExecutionContext () .getLive () .getValue () || this ._isEvenLive .getValue ());
63648
63677
  },
63649
63678
  getElapsedTime: function ()
63650
63679
  {
@@ -63658,7 +63687,7 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (Core_X3DChildN
63658
63687
  },
63659
63688
  set_live__: function ()
63660
63689
  {
63661
- if (this .isLive () .getValue () || this ._isEvenLive .getValue ())
63690
+ if (this .getLive () .getValue () || this ._isEvenLive .getValue ())
63662
63691
  {
63663
63692
  if (this .disabled)
63664
63693
  {
@@ -63784,7 +63813,7 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (Core_X3DChildN
63784
63813
 
63785
63814
  this .set_start ();
63786
63815
 
63787
- if (this .isLive () .getValue ())
63816
+ if (this .getLive () .getValue ())
63788
63817
  {
63789
63818
  this .getBrowser () .timeEvents () .addInterest ("set_time" ,this);
63790
63819
  }
@@ -63804,7 +63833,7 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (Core_X3DChildN
63804
63833
  if (this .pauseTimeValue !== this .getBrowser () .getCurrentTime ())
63805
63834
  this .pauseTimeValue = this .getBrowser () .getCurrentTime ();
63806
63835
 
63807
- if (this .isLive () .getValue ())
63836
+ if (this .getLive () .getValue ())
63808
63837
  this .real_pause ();
63809
63838
  }
63810
63839
  },
@@ -63825,7 +63854,7 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (Core_X3DChildN
63825
63854
  if (this .resumeTimeValue !== this .getBrowser () .getCurrentTime ())
63826
63855
  this .resumeTimeValue = this .getBrowser () .getCurrentTime ();
63827
63856
 
63828
- if (this .isLive () .getValue ())
63857
+ if (this .getLive () .getValue ())
63829
63858
  this .real_resume ();
63830
63859
  }
63831
63860
  },
@@ -64046,7 +64075,7 @@ TimeSensor .prototype = Object .assign (Object .create (Core_X3DSensorNode.proto
64046
64075
  {
64047
64076
  this .setRange (this ._range [0], this ._range [1], this ._range [2]);
64048
64077
 
64049
- if (this .isLive () .getValue ())
64078
+ if (this .getLive () .getValue ())
64050
64079
  {
64051
64080
  this ._fraction_changed = this .fraction;
64052
64081
  this ._time = this .getBrowser () .getCurrentTime ();
@@ -66966,7 +66995,7 @@ const X3DWorld_default_ = X3DWorld;
66966
66995
  x_ite_Namespace.set ("x_ite/Execution/X3DWorld", X3DWorld_default_);
66967
66996
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
66968
66997
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66969
- /* provided dependency */ var FileLoader_$ = __webpack_require__(869);
66998
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(329);
66970
66999
  /*******************************************************************************
66971
67000
  *
66972
67001
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67125,6 +67154,8 @@ FileLoader .prototype = Object .assign (Object .create (Base_X3DObject.prototype
67125
67154
  },
67126
67155
  set_initLoadCount__: function (scene, success, error, field)
67127
67156
  {
67157
+ // Wait for extern protos to be loaded.
67158
+
67128
67159
  if (field .getValue ())
67129
67160
  return;
67130
67161
 
@@ -67132,22 +67163,28 @@ FileLoader .prototype = Object .assign (Object .create (Base_X3DObject.prototype
67132
67163
 
67133
67164
  delete scene .loader;
67134
67165
 
67135
- try
67136
- {
67137
- success (scene);
67138
- }
67139
- catch (exception)
67166
+ // Wait for instances to be created.
67167
+
67168
+ setTimeout (function ()
67140
67169
  {
67141
- if (error)
67142
- error (exception);
67143
- else
67144
- throw exception;
67145
- }
67170
+ try
67171
+ {
67172
+ success (scene);
67173
+ }
67174
+ catch (exception)
67175
+ {
67176
+ if (error)
67177
+ error (exception);
67178
+ else
67179
+ throw exception;
67180
+ }
67181
+ },
67182
+ 0);
67146
67183
 
67147
67184
  if (DEBUG)
67148
67185
  {
67149
67186
  if (this .URL .protocol !== "data:")
67150
- console .info ("Done loading scene " + decodeURI (this .URL .href));
67187
+ console .info (`Done loading scene '${decodeURI (this .URL .href)}'`);
67151
67188
  }
67152
67189
  },
67153
67190
  createX3DFromURL: function (url, parameter, callback, bindViewpoint, foreign)
@@ -67252,7 +67289,7 @@ FileLoader .prototype = Object .assign (Object .create (Base_X3DObject.prototype
67252
67289
  const
67253
67290
  options = { cache: this .node .getCache () ? "default" : "reload" },
67254
67291
  response = this .handleErrors (await fetch (this .URL .href, options)),
67255
- contentType = response .headers .get ("content-type")?.replace (/;.*$/, "");
67292
+ contentType = response .headers .get ("content-type") ?.replace (/;.*$/, "");
67256
67293
 
67257
67294
  if (this .foreign)
67258
67295
  {
@@ -67292,9 +67329,9 @@ FileLoader .prototype = Object .assign (Object .create (Base_X3DObject.prototype
67292
67329
  error: function (exception)
67293
67330
  {
67294
67331
  if (this .URL .protocol === "data:")
67295
- console .warn ("Couldn't load URL 'data':", exception .message);
67332
+ console .warn (`Couldn't load data URL: ${exception .message}`);
67296
67333
  else
67297
- console .warn ("Couldn't load URL '" + decodeURI (this .URL .href) + "':", exception .message);
67334
+ console .warn (`Couldn't load URL '${decodeURI (this .URL .href)}': ${exception .message}`);
67298
67335
 
67299
67336
  if (DEBUG)
67300
67337
  console .error (exception);
@@ -67408,7 +67445,7 @@ X3DExternProtoDeclaration .prototype = Object .assign (Object .create (Prototype
67408
67445
  if (this .checkLoadState () !== Base_X3DConstants.COMPLETE_STATE)
67409
67446
  return;
67410
67447
 
67411
- this [_scene] .setLive (this .isLive () .getValue ());
67448
+ this [_scene] .setLive (this .getLive () .getValue ());
67412
67449
  },
67413
67450
  canUserDefinedFields: function ()
67414
67451
  {
@@ -67462,7 +67499,7 @@ X3DExternProtoDeclaration .prototype = Object .assign (Object .create (Prototype
67462
67499
  if (!proto)
67463
67500
  throw new Error ("PROTO not found");
67464
67501
 
67465
- this [_scene] .setLive (this .isLive () .getValue ());
67502
+ this [_scene] .setLive (this .getLive () .getValue ());
67466
67503
  this [_scene] .setPrivate (this .getScene () .isPrivate ());
67467
67504
  this [_scene] .setExecutionContext (this .getExecutionContext ());
67468
67505
 
@@ -68215,7 +68252,7 @@ const
68215
68252
  X3DExecutionContext_routes = Symbol (),
68216
68253
  _outerNode = Symbol ();
68217
68254
 
68218
- function X3DExecutionContext (executionContext)
68255
+ function X3DExecutionContext (executionContext, outerNode = null)
68219
68256
  {
68220
68257
  Base_X3DBaseNode.call (this, executionContext);
68221
68258
 
@@ -68233,6 +68270,7 @@ function X3DExecutionContext (executionContext)
68233
68270
  this ._rootNodes .setAccessType (Base_X3DConstants.initializeOnly);
68234
68271
  this ._rootNodes .addCloneCount (1);
68235
68272
 
68273
+ this [_outerNode] = outerNode;
68236
68274
  this [_namedNodes] = new Execution_NamedNodesArray ();
68237
68275
  this [_importedNodes] = new Execution_ImportedNodesArray ();
68238
68276
  this [_protos] = new Prototype_ProtoDeclarationArray ();
@@ -68262,16 +68300,11 @@ X3DExecutionContext .prototype = Object .assign (Object .create (Base_X3DBaseNod
68262
68300
  {
68263
68301
  return "X3DExecutionContext";
68264
68302
  },
68265
- [_outerNode]: null,
68266
68303
  getOuterNode: function ()
68267
68304
  {
68268
68305
  // Can be either of type X3DProtoDeclaration or X3DPrototypeInstance, or null.
68269
68306
  return this [_outerNode];
68270
68307
  },
68271
- setOuterNode: function (value)
68272
- {
68273
- this [_outerNode] = value;
68274
- },
68275
68308
  getSpecificationVersion: function ()
68276
68309
  {
68277
68310
  return this .getExecutionContext () .getSpecificationVersion ();
@@ -68292,6 +68325,10 @@ X3DExecutionContext .prototype = Object .assign (Object .create (Base_X3DBaseNod
68292
68325
  {
68293
68326
  return this .getExecutionContext () .getComponents ();
68294
68327
  },
68328
+ hasComponent: function (componentName)
68329
+ {
68330
+ return this .getExecutionContext () .hasComponent (componentName);
68331
+ },
68295
68332
  fromUnit: function (category, value)
68296
68333
  {
68297
68334
  return this .getExecutionContext () .fromUnit (category, value);
@@ -68304,7 +68341,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (Base_X3DBaseNod
68304
68341
  {
68305
68342
  return this .getExecutionContext () .getUnits ();
68306
68343
  },
68307
- createNode: function (typeName, setup = true)
68344
+ createNode: function (typeName, { setup = true, warn = true } = { })
68308
68345
  {
68309
68346
  typeName = String (typeName);
68310
68347
 
@@ -68323,6 +68360,9 @@ X3DExecutionContext .prototype = Object .assign (Object .create (Base_X3DBaseNod
68323
68360
  if (this .getSpecificationVersion () > specificationRange [1])
68324
68361
  return null;
68325
68362
 
68363
+ if (warn && !this .hasComponent (Type .prototype .getComponentName ()))
68364
+ console .warn (`Node type '${typeName}' does not match component/profile statements in '${this .getWorldURL ()}'.`);
68365
+
68326
68366
  return new Type (this);
68327
68367
  }
68328
68368
  else
@@ -68330,15 +68370,18 @@ X3DExecutionContext .prototype = Object .assign (Object .create (Base_X3DBaseNod
68330
68370
  const Type = this .getBrowser () .getSupportedNode (typeName);
68331
68371
 
68332
68372
  if (! Type)
68333
- throw new Error ("Unknown node type '" + typeName + "'.");
68373
+ throw new Error (`Unknown node type '${typeName}'.`);
68334
68374
 
68335
68375
  const specificationRange = Type .prototype .getSpecificationRange ();
68336
68376
 
68337
68377
  if (this .getSpecificationVersion () < specificationRange [0])
68338
- throw new Error ("Node type '" + typeName + "' does not match specification version.");
68378
+ throw new Error (`Node type '${typeName}' does not match specification version in '${this .getWorldURL ()}.`);
68339
68379
 
68340
68380
  if (this .getSpecificationVersion () > specificationRange [1])
68341
- throw new Error ("Node type '" + typeName + "' does not match specification version.");
68381
+ throw new Error (`Node type '${typeName}' does not match specification version in '${this .getWorldURL ()}.`);
68382
+
68383
+ if (warn && !this .hasComponent (Type .prototype .getComponentName ()))
68384
+ console .warn (`Node type '${typeName}' does not match component/profile statements in '${this .getWorldURL ()}'.`);
68342
68385
 
68343
68386
  const baseNode = new Type (this);
68344
68387
 
@@ -68347,7 +68390,7 @@ X3DExecutionContext .prototype = Object .assign (Object .create (Base_X3DBaseNod
68347
68390
  return Fields_SFNodeCache.get (baseNode);
68348
68391
  }
68349
68392
  },
68350
- createProto: function (name, setup = true)
68393
+ createProto: function (name, { setup = true } = { })
68351
68394
  {
68352
68395
  name = String (name);
68353
68396
 
@@ -68358,12 +68401,12 @@ X3DExecutionContext .prototype = Object .assign (Object .create (Base_X3DBaseNod
68358
68401
  const proto = executionContext .protos .get (name);
68359
68402
 
68360
68403
  if (proto)
68361
- return proto .createInstance (this, setup);
68404
+ return proto .createInstance (this, { setup: setup });
68362
68405
 
68363
68406
  const externproto = executionContext .externprotos .get (name);
68364
68407
 
68365
68408
  if (externproto)
68366
- return externproto .createInstance (this, setup);
68409
+ return externproto .createInstance (this, { setup: setup });
68367
68410
 
68368
68411
  if (executionContext .isScene ())
68369
68412
  break;
@@ -69156,7 +69199,7 @@ const X3DExecutionContext_default_ = X3DExecutionContext;
69156
69199
  x_ite_Namespace.set ("x_ite/Execution/X3DExecutionContext", X3DExecutionContext_default_);
69157
69200
  /* harmony default export */ const Execution_X3DExecutionContext = (X3DExecutionContext_default_);
69158
69201
  ;// CONCATENATED MODULE: ./src/x_ite/Configuration/ComponentInfo.js
69159
- /* provided dependency */ var ComponentInfo_$ = __webpack_require__(869);
69202
+ /* provided dependency */ var ComponentInfo_$ = __webpack_require__(329);
69160
69203
  /*******************************************************************************
69161
69204
  *
69162
69205
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -70043,6 +70086,10 @@ X3DScene .prototype = Object .assign (Object .create (Execution_X3DExecutionCont
70043
70086
  {
70044
70087
  return this [_components];
70045
70088
  },
70089
+ hasComponent: function (componentName)
70090
+ {
70091
+ return (this [_profile] ?.components .has (componentName) ?? true) || this [_components] .has (componentName);
70092
+ },
70046
70093
  updateUnit: function (category, name, conversionFactor)
70047
70094
  {
70048
70095
  // Private function.
@@ -71127,7 +71174,7 @@ const DataStorage_default_ = DataStorage;
71127
71174
  x_ite_Namespace.set ("standard/Utility/DataStorage", DataStorage_default_);
71128
71175
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
71129
71176
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
71130
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(869);
71177
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(329);
71131
71178
  /*******************************************************************************
71132
71179
  *
71133
71180
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -71188,7 +71235,6 @@ x_ite_Namespace.set ("standard/Utility/DataStorage", DataStorage_default_);
71188
71235
 
71189
71236
 
71190
71237
 
71191
-
71192
71238
  const WEBGL_LATEST_VERSION = 2;
71193
71239
 
71194
71240
  const
@@ -71607,12 +71653,12 @@ X3DCoreContext .prototype =
71607
71653
  {
71608
71654
  event .preventDefault ();
71609
71655
 
71610
- if (this .isLive () .getValue ())
71656
+ if (this .isLive ())
71611
71657
  this .endUpdate ();
71612
71658
  else
71613
71659
  this .beginUpdate ();
71614
71660
 
71615
- this .getNotification () ._string = this .isLive () .getValue () ? "Begin Update" : "End Update";
71661
+ this .getNotification () ._string = this .getLive () .getValue () ? "Begin Update" : "End Update";
71616
71662
  }
71617
71663
  }
71618
71664
 
@@ -72220,47 +72266,47 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72220
72266
  },
72221
72267
  set_fogCoord__: function ()
72222
72268
  {
72223
- this .fogCoordNode?.removeInterest ("requestRebuild", this);
72269
+ this .fogCoordNode ?.removeInterest ("requestRebuild", this);
72224
72270
 
72225
72271
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
72226
72272
 
72227
- this .fogCoordNode?.addInterest ("requestRebuild", this);
72273
+ this .fogCoordNode ?.addInterest ("requestRebuild", this);
72228
72274
  },
72229
72275
  set_color__: function ()
72230
72276
  {
72231
- this .colorNode?.removeInterest ("requestRebuild", this);
72277
+ this .colorNode ?.removeInterest ("requestRebuild", this);
72232
72278
 
72233
72279
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
72234
72280
 
72235
- this .colorNode?.addInterest ("requestRebuild", this);
72281
+ this .colorNode ?.addInterest ("requestRebuild", this);
72236
72282
 
72237
- this .setTransparent (this .colorNode?.isTransparent () ?? false);
72283
+ this .setTransparent (this .colorNode ?.isTransparent () ?? false);
72238
72284
  },
72239
72285
  set_texCoord__: function ()
72240
72286
  {
72241
- this .texCoordNode?.removeInterest ("requestRebuild", this);
72287
+ this .texCoordNode ?.removeInterest ("requestRebuild", this);
72242
72288
 
72243
72289
  this .texCoordNode = Base_X3DCast (Base_X3DConstants.X3DTextureCoordinateNode, this ._texCoord);
72244
72290
 
72245
- this .texCoordNode?.addInterest ("requestRebuild", this);
72291
+ this .texCoordNode ?.addInterest ("requestRebuild", this);
72246
72292
 
72247
72293
  this .setTextureCoordinate (this .texCoordNode);
72248
72294
  },
72249
72295
  set_normal__: function ()
72250
72296
  {
72251
- this .normalNode?.removeInterest ("requestRebuild", this);
72297
+ this .normalNode ?.removeInterest ("requestRebuild", this);
72252
72298
 
72253
72299
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
72254
72300
 
72255
- this .normalNode?.addInterest ("requestRebuild", this);
72301
+ this .normalNode ?.addInterest ("requestRebuild", this);
72256
72302
  },
72257
72303
  set_coord__: function ()
72258
72304
  {
72259
- this .coordNode?.removeInterest ("requestRebuild", this);
72305
+ this .coordNode ?.removeInterest ("requestRebuild", this);
72260
72306
 
72261
72307
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
72262
72308
 
72263
- this .coordNode?.addInterest ("requestRebuild", this);
72309
+ this .coordNode ?.addInterest ("requestRebuild", this);
72264
72310
  },
72265
72311
  getPolygonIndex: function (index)
72266
72312
  {
@@ -72297,7 +72343,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72297
72343
  normalArray = this .getNormals (),
72298
72344
  vertexArray = this .getVertices ();
72299
72345
 
72300
- texCoordNode?.init (multiTexCoordArray);
72346
+ texCoordNode ?.init (multiTexCoordArray);
72301
72347
 
72302
72348
  // Fill GeometryNode
72303
72349
 
@@ -72310,7 +72356,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72310
72356
  for (let a = 0; a < numAttribNodes; ++ a)
72311
72357
  attribNodes [a] .addValue (index, attribArrays [a]);
72312
72358
 
72313
- fogCoordNode?.addDepth (index, fogDepthArray);
72359
+ fogCoordNode ?.addDepth (index, fogDepthArray);
72314
72360
 
72315
72361
  if (colorNode)
72316
72362
  {
@@ -72320,7 +72366,7 @@ X3DComposedGeometryNode .prototype = Object .assign (Object .create (Rendering_X
72320
72366
  colorNode .addColor (face, colorArray);
72321
72367
  }
72322
72368
 
72323
- texCoordNode?.addPoint (index, multiTexCoordArray);
72369
+ texCoordNode ?.addPoint (index, multiTexCoordArray);
72324
72370
 
72325
72371
  if (normalNode)
72326
72372
  {
@@ -72620,7 +72666,7 @@ IndexedFaceSet .prototype = Object .assign (Object .create (Rendering_X3DCompose
72620
72666
  normalArray = this .getNormals (),
72621
72667
  vertexArray = this .getVertices ();
72622
72668
 
72623
- texCoordNode?.init (multiTexCoordArray);
72669
+ texCoordNode ?.init (multiTexCoordArray);
72624
72670
 
72625
72671
  for (const polygon of polygons)
72626
72672
  {
@@ -72635,7 +72681,7 @@ IndexedFaceSet .prototype = Object .assign (Object .create (Rendering_X3DCompose
72635
72681
  for (let a = 0; a < numAttribNodes; ++ a)
72636
72682
  attribNodes [a] .addValue (index, attribArrays [a]);
72637
72683
 
72638
- fogCoordNode?.addDepth (index, fogDepthArray);
72684
+ fogCoordNode ?.addDepth (index, fogDepthArray);
72639
72685
 
72640
72686
  if (colorNode)
72641
72687
  {
@@ -72645,7 +72691,7 @@ IndexedFaceSet .prototype = Object .assign (Object .create (Rendering_X3DCompose
72645
72691
  colorNode .addColor (this .getColorIndex (face), colorArray);
72646
72692
  }
72647
72693
 
72648
- texCoordNode?.addPoint (this .getTexCoordPerVertexIndex (i), multiTexCoordArray);
72694
+ texCoordNode ?.addPoint (this .getTexCoordPerVertexIndex (i), multiTexCoordArray);
72649
72695
 
72650
72696
  if (normalNode)
72651
72697
  {
@@ -74505,7 +74551,7 @@ X3DShapeNode .prototype = Object .assign (Object .create (Core_X3DChildNode.prot
74505
74551
  {
74506
74552
  if (this .appearanceNode .getAlphaMode () === Shape_AlphaMode.AUTO)
74507
74553
  {
74508
- this .transparent = !!(this .appearanceNode .isTransparent () || this .geometryNode?.isTransparent ());
74554
+ this .transparent = !!(this .appearanceNode .isTransparent () || this .geometryNode ?.isTransparent ());
74509
74555
  }
74510
74556
  else
74511
74557
  {
@@ -75039,7 +75085,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DGe
75039
75085
 
75040
75086
  // Render triangles.
75041
75087
 
75042
- blendModeNode?.enable (gl);
75088
+ blendModeNode ?.enable (gl);
75043
75089
 
75044
75090
  // Setup shader.
75045
75091
 
@@ -75081,7 +75127,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DGe
75081
75127
  gl .enable (gl .CULL_FACE);
75082
75128
  gl .drawArrays (primitiveMode, 0, this .vertexCount * 3);
75083
75129
 
75084
- blendModeNode?.disable (gl);
75130
+ blendModeNode ?.disable (gl);
75085
75131
 
75086
75132
  return;
75087
75133
  }
@@ -75089,7 +75135,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DGe
75089
75135
 
75090
75136
  const primitiveMode = browser .getPrimitiveMode (this .getPrimitiveMode ());
75091
75137
 
75092
- blendModeNode?.enable (gl);
75138
+ blendModeNode ?.enable (gl);
75093
75139
 
75094
75140
  // Setup shader.
75095
75141
 
@@ -75119,7 +75165,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DGe
75119
75165
 
75120
75166
  gl .drawArrays (primitiveMode, 0, this .vertexCount);
75121
75167
 
75122
- blendModeNode?.disable (gl);
75168
+ blendModeNode ?.disable (gl);
75123
75169
 
75124
75170
  gl .lineWidth (1);
75125
75171
  };
@@ -75135,7 +75181,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DGe
75135
75181
  attribBuffers = this .getAttribBuffers (),
75136
75182
  primitiveMode = browser .getPrimitiveMode (this .getPrimitiveMode ());
75137
75183
 
75138
- blendModeNode?.enable (gl);
75184
+ blendModeNode ?.enable (gl);
75139
75185
 
75140
75186
  // Setup shader.
75141
75187
 
@@ -75174,7 +75220,7 @@ X3DLineGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DGe
75174
75220
 
75175
75221
  gl .drawArraysInstanced (primitiveMode, 0, this .vertexCount, particleSystem .numParticles);
75176
75222
 
75177
- blendModeNode?.disable (gl);
75223
+ blendModeNode ?.disable (gl);
75178
75224
 
75179
75225
  gl .lineWidth (1);
75180
75226
  },
@@ -75332,37 +75378,37 @@ IndexedLineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeo
75332
75378
  },
75333
75379
  set_fogCoord__: function ()
75334
75380
  {
75335
- this .fogCoordNode?.removeInterest ("requestRebuild", this);
75381
+ this .fogCoordNode ?.removeInterest ("requestRebuild", this);
75336
75382
 
75337
75383
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
75338
75384
 
75339
- this .fogCoordNode?.addInterest ("requestRebuild", this);
75385
+ this .fogCoordNode ?.addInterest ("requestRebuild", this);
75340
75386
  },
75341
75387
  set_color__: function ()
75342
75388
  {
75343
- this .colorNode?.removeInterest ("requestRebuild", this);
75389
+ this .colorNode ?.removeInterest ("requestRebuild", this);
75344
75390
 
75345
75391
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
75346
75392
 
75347
- this .colorNode?.addInterest ("requestRebuild", this);
75393
+ this .colorNode ?.addInterest ("requestRebuild", this);
75348
75394
 
75349
- this .setTransparent (this .colorNode?.isTransparent () ?? false);
75395
+ this .setTransparent (this .colorNode ?.isTransparent () ?? false);
75350
75396
  },
75351
75397
  set_normal__: function ()
75352
75398
  {
75353
- this .normalNode?.removeInterest ("requestRebuild", this);
75399
+ this .normalNode ?.removeInterest ("requestRebuild", this);
75354
75400
 
75355
75401
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
75356
75402
 
75357
- this .normalNode?.addInterest ("requestRebuild", this);
75403
+ this .normalNode ?.addInterest ("requestRebuild", this);
75358
75404
  },
75359
75405
  set_coord__: function ()
75360
75406
  {
75361
- this .coordNode?.removeInterest ("requestRebuild", this);
75407
+ this .coordNode ?.removeInterest ("requestRebuild", this);
75362
75408
 
75363
75409
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
75364
75410
 
75365
- this .coordNode?.addInterest ("requestRebuild", this);
75411
+ this .coordNode ?.addInterest ("requestRebuild", this);
75366
75412
  },
75367
75413
  getColorPerVertexIndex: function (index)
75368
75414
  {
@@ -75456,7 +75502,7 @@ IndexedLineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeo
75456
75502
  for (let a = 0; a < numAttribNodes; ++ a)
75457
75503
  attribNodes [a] .addValue (index, attribArrays [a]);
75458
75504
 
75459
- fogCoordNode?.addDepth (index, fogDepthArray);
75505
+ fogCoordNode ?.addDepth (index, fogDepthArray);
75460
75506
 
75461
75507
  if (colorNode)
75462
75508
  {
@@ -75466,7 +75512,7 @@ IndexedLineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeo
75466
75512
  colorNode .addColor (this .getColorIndex (face), colorArray);
75467
75513
  }
75468
75514
 
75469
- normalNode?.addVector (index, normalArray);
75515
+ normalNode ?.addVector (index, normalArray);
75470
75516
 
75471
75517
  coordNode .addPoint (index, vertexArray);
75472
75518
  }
@@ -76650,7 +76696,7 @@ X3DFollowerNode .prototype = Object .assign (Object .create (Core_X3DChildNode.p
76650
76696
  {
76651
76697
  Core_X3DChildNode.prototype.initialize.call (this);
76652
76698
 
76653
- this .isLive () .addInterest ("set_live__", this);
76699
+ this .getLive () .addInterest ("set_live__", this);
76654
76700
  },
76655
76701
  getBuffer: function ()
76656
76702
  {
@@ -76698,7 +76744,7 @@ X3DFollowerNode .prototype = Object .assign (Object .create (Core_X3DChildNode.p
76698
76744
  },
76699
76745
  set_live__: function ()
76700
76746
  {
76701
- if ((this .isLive () .getValue () || this .isPrivate ()) && this ._isActive .getValue ())
76747
+ if ((this .getLive () .getValue () || this .isPrivate ()) && this ._isActive .getValue ())
76702
76748
  {
76703
76749
  this .getBrowser () .prepareEvents () .addInterest ("prepareEvents", this);
76704
76750
  this .getBrowser () .addBrowserEvent ();
@@ -77186,8 +77232,8 @@ const OrientationChaser_default_ = OrientationChaser;
77186
77232
  x_ite_Namespace.set ("x_ite/Components/Followers/OrientationChaser", OrientationChaser_default_);
77187
77233
  /* harmony default export */ const Followers_OrientationChaser = (OrientationChaser_default_);
77188
77234
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
77189
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(945);
77190
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(869);
77235
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(98);
77236
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(329);
77191
77237
  /*******************************************************************************
77192
77238
  *
77193
77239
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -77247,7 +77293,6 @@ x_ite_Namespace.set ("x_ite/Components/Followers/OrientationChaser", Orientation
77247
77293
 
77248
77294
 
77249
77295
 
77250
-
77251
77296
  typeof jquery_mousewheel; // import plugin
77252
77297
 
77253
77298
  const macOS = /Mac OS X/i .test (navigator .userAgent)
@@ -77444,8 +77489,6 @@ ExamineViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.
77444
77489
  event .preventDefault ();
77445
77490
  event .stopImmediatePropagation ();
77446
77491
 
77447
- const viewpoint = this .getActiveViewpoint ();
77448
-
77449
77492
  this .getBrowser () .setCursor ("DEFAULT");
77450
77493
 
77451
77494
  if (Math .abs (this .rotation .angle) > SPIN_ANGLE && Date .now () - this .motionTime < SPIN_RELEASE_TIME)
@@ -78051,8 +78094,8 @@ const ExamineViewer_default_ = ExamineViewer;
78051
78094
  x_ite_Namespace.set ("x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
78052
78095
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
78053
78096
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
78054
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(945);
78055
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(869);
78097
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(98);
78098
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(329);
78056
78099
  /*******************************************************************************
78057
78100
  *
78058
78101
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -78961,8 +79004,6 @@ x_ite_Namespace.set ("x_ite/Browser/Navigation/WalkViewer", WalkViewer_default_)
78961
79004
 
78962
79005
 
78963
79006
 
78964
-
78965
-
78966
79007
  function FlyViewer (executionContext, navigationInfo)
78967
79008
  {
78968
79009
  Navigation_X3DFlyViewer.call (this, executionContext, navigationInfo);
@@ -79002,8 +79043,8 @@ const FlyViewer_default_ = FlyViewer;
79002
79043
  x_ite_Namespace.set ("x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
79003
79044
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
79004
79045
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
79005
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(945);
79006
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(869);
79046
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(98);
79047
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(329);
79007
79048
  /*******************************************************************************
79008
79049
  *
79009
79050
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79312,8 +79353,8 @@ const NoneViewer_default_ = NoneViewer;
79312
79353
  x_ite_Namespace.set ("x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
79313
79354
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
79314
79355
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
79315
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(945);
79316
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(869);
79356
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(98);
79357
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(329);
79317
79358
  /*******************************************************************************
79318
79359
  *
79319
79360
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -80409,7 +80450,7 @@ function X3DNavigationContext ()
80409
80450
  "viewer", new x_ite_Fields.SFString ("EXAMINE"));
80410
80451
 
80411
80452
  this [_activeCollisions] = new Set ();
80412
- this [_viewerNode] = new Navigation_NoneViewer (this);
80453
+ this [_viewerNode] = new Navigation_NoneViewer (this .getPrivateScene ());
80413
80454
  }
80414
80455
 
80415
80456
  X3DNavigationContext .prototype =
@@ -80491,8 +80532,7 @@ X3DNavigationContext .prototype =
80491
80532
  },
80492
80533
  set_activeNavigationInfo__: function ()
80493
80534
  {
80494
- if (this ._activeNavigationInfo .getValue ())
80495
- this ._activeNavigationInfo .getValue () ._viewer .removeFieldInterest (this ._viewer);
80535
+ this ._activeNavigationInfo .getValue () ?._viewer .removeFieldInterest (this ._viewer);
80496
80536
 
80497
80537
  if (this ._activeLayer .getValue ())
80498
80538
  {
@@ -80526,33 +80566,32 @@ X3DNavigationContext .prototype =
80526
80566
 
80527
80567
  // Create viewer node.
80528
80568
 
80529
- if (this [_viewerNode])
80530
- this [_viewerNode] .dispose ();
80569
+ this [_viewerNode] ?.dispose ();
80531
80570
 
80532
80571
  switch (viewer .getValue ())
80533
80572
  {
80534
80573
  case "EXAMINE":
80535
- this [_viewerNode] = new Navigation_ExamineViewer (this, navigationInfo);
80574
+ this [_viewerNode] = new Navigation_ExamineViewer (this .getPrivateScene (), navigationInfo);
80536
80575
  break;
80537
80576
  case "WALK":
80538
- this [_viewerNode] = new Navigation_WalkViewer (this, navigationInfo);
80577
+ this [_viewerNode] = new Navigation_WalkViewer (this .getPrivateScene (), navigationInfo);
80539
80578
  break;
80540
80579
  case "FLY":
80541
- this [_viewerNode] = new Navigation_FlyViewer (this, navigationInfo);
80580
+ this [_viewerNode] = new Navigation_FlyViewer (this .getPrivateScene (), navigationInfo);
80542
80581
  break;
80543
80582
  case "PLANE":
80544
80583
  case "PLANE_create3000.github.io":
80545
80584
  case "PLANE_create3000.de":
80546
- this [_viewerNode] = new Navigation_PlaneViewer (this, navigationInfo);
80585
+ this [_viewerNode] = new Navigation_PlaneViewer (this .getPrivateScene (), navigationInfo);
80547
80586
  break;
80548
80587
  case "NONE":
80549
- this [_viewerNode] = new Navigation_NoneViewer (this, navigationInfo);
80588
+ this [_viewerNode] = new Navigation_NoneViewer (this .getPrivateScene (), navigationInfo);
80550
80589
  break;
80551
80590
  case "LOOKAT":
80552
- this [_viewerNode] = new Navigation_LookAtViewer (this, navigationInfo);
80591
+ this [_viewerNode] = new Navigation_LookAtViewer (this .getPrivateScene (), navigationInfo);
80553
80592
  break;
80554
80593
  default:
80555
- this [_viewerNode] = new Navigation_ExamineViewer (this, navigationInfo);
80594
+ this [_viewerNode] = new Navigation_ExamineViewer (this .getPrivateScene (), navigationInfo);
80556
80595
  break;
80557
80596
  }
80558
80597
 
@@ -80925,8 +80964,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
80925
80964
  x_ite_Namespace.set ("x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
80926
80965
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
80927
80966
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
80928
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(945);
80929
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(869);
80967
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(98);
80968
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(329);
80930
80969
  /*******************************************************************************
80931
80970
  *
80932
80971
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -81471,30 +81510,32 @@ x_ite_Namespace.set ("x_ite/Rendering/PointingBuffer", PointingBuffer_default_);
81471
81510
 
81472
81511
 
81473
81512
  const
81474
- _pointingDevice = Symbol (),
81475
- _cursorType = Symbol (),
81476
- _pointer = Symbol (),
81477
- _hit = Symbol (),
81478
- _overSensors = Symbol (),
81479
- _activeSensors = Symbol (),
81480
- _pointingLayer = Symbol (),
81481
- _pointingTime = Symbol (),
81482
- _pointingBuffer = Symbol (),
81483
- _pointingShaders = Symbol (),
81484
- _id = Symbol (),
81485
- _pointingContexts = Symbol ();
81513
+ _pointingDevice = Symbol (),
81514
+ _pointingDeviceSensorNodes = Symbol (),
81515
+ _cursorType = Symbol (),
81516
+ _pointer = Symbol (),
81517
+ _hit = Symbol (),
81518
+ _overSensors = Symbol (),
81519
+ _activeSensors = Symbol (),
81520
+ _pointingLayer = Symbol (),
81521
+ _pointingTime = Symbol (),
81522
+ _pointingBuffer = Symbol (),
81523
+ _pointingShaders = Symbol (),
81524
+ _id = Symbol (),
81525
+ _pointingContexts = Symbol ();
81486
81526
 
81487
81527
  function X3DPointingDeviceSensorContext ()
81488
81528
  {
81489
- this [_pointingDevice] = new PointingDeviceSensor_PointingDevice (this);
81490
- this [_pointer] = new Numbers_Vector2 (0, 0);
81491
- this [_overSensors] = [ ];
81492
- this [_activeSensors] = [ ];
81493
- this [_pointingLayer] = null;
81494
- this [_pointingTime] = new Time_StopWatch ();
81495
- this [_pointingBuffer] = new Rendering_PointingBuffer (this);
81496
- this [_pointingShaders] = new Map ();
81497
- this [_pointingContexts] = [ ];
81529
+ this [_pointingDevice] = new PointingDeviceSensor_PointingDevice (this .getPrivateScene ());
81530
+ this [_pointingDeviceSensorNodes] = new Set ();
81531
+ this [_pointer] = new Numbers_Vector2 (0, 0);
81532
+ this [_overSensors] = [ ];
81533
+ this [_activeSensors] = [ ];
81534
+ this [_pointingLayer] = null;
81535
+ this [_pointingTime] = new Time_StopWatch ();
81536
+ this [_pointingBuffer] = new Rendering_PointingBuffer (this);
81537
+ this [_pointingShaders] = new Map ();
81538
+ this [_pointingContexts] = [ ];
81498
81539
 
81499
81540
  this [_hit] = {
81500
81541
  id: 0,
@@ -81525,6 +81566,14 @@ X3DPointingDeviceSensorContext .prototype =
81525
81566
  {
81526
81567
  return this [_pointingTime];
81527
81568
  },
81569
+ addPointingDeviceSensor: function (node)
81570
+ {
81571
+ this [_pointingDeviceSensorNodes] .add (node);
81572
+ },
81573
+ removePointingDeviceSensor: function (node)
81574
+ {
81575
+ this [_pointingDeviceSensorNodes] .delete (node);
81576
+ },
81528
81577
  setCursor: function (value)
81529
81578
  {
81530
81579
  const div = this .getSurface ();
@@ -81587,6 +81636,9 @@ X3DPointingDeviceSensorContext .prototype =
81587
81636
  },
81588
81637
  buttonPressEvent: function (x, y)
81589
81638
  {
81639
+ if (!this [_pointingDeviceSensorNodes] .size)
81640
+ return false;
81641
+
81590
81642
  if (!this .touch (x, y))
81591
81643
  return false;
81592
81644
 
@@ -81602,6 +81654,9 @@ X3DPointingDeviceSensorContext .prototype =
81602
81654
  },
81603
81655
  buttonReleaseEvent: function ()
81604
81656
  {
81657
+ if (!this [_pointingDeviceSensorNodes] .size)
81658
+ return;
81659
+
81605
81660
  for (const sensor of this [_activeSensors])
81606
81661
  sensor .set_active__ (false, null);
81607
81662
 
@@ -81610,6 +81665,9 @@ X3DPointingDeviceSensorContext .prototype =
81610
81665
  },
81611
81666
  motionNotifyEvent: function (x, y)
81612
81667
  {
81668
+ if (!this [_pointingDeviceSensorNodes] .size)
81669
+ return false;
81670
+
81613
81671
  this .touch (x, y);
81614
81672
  this .motion ();
81615
81673
 
@@ -81948,8 +82006,8 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
81948
82006
  x_ite_Namespace.set ("x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
81949
82007
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
81950
82008
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
81951
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(869);
81952
- /* provided dependency */ var ResizeSensor = __webpack_require__(179);
82009
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(329);
82010
+ /* provided dependency */ var ResizeSensor = __webpack_require__(497);
81953
82011
  /*******************************************************************************
81954
82012
  *
81955
82013
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -87834,7 +87892,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
87834
87892
  x_ite_Namespace.set ("x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
87835
87893
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
87836
87894
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
87837
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(869);
87895
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(329);
87838
87896
  /*******************************************************************************
87839
87897
  *
87840
87898
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -88882,7 +88940,7 @@ X3DProgrammableShaderObject .prototype =
88882
88940
 
88883
88941
  // Fog
88884
88942
 
88885
- fogNode?.setShaderUniforms (gl, this);
88943
+ fogNode ?.setShaderUniforms (gl, this);
88886
88944
 
88887
88945
  // Clip planes and local lights
88888
88946
 
@@ -88899,7 +88957,7 @@ X3DProgrammableShaderObject .prototype =
88899
88957
 
88900
88958
  // Style Properties
88901
88959
 
88902
- stylePropertiesNode?.setShaderUniforms (gl, this);
88960
+ stylePropertiesNode ?.setShaderUniforms (gl, this);
88903
88961
 
88904
88962
  // Material
88905
88963
 
@@ -88907,7 +88965,7 @@ X3DProgrammableShaderObject .prototype =
88907
88965
 
88908
88966
  // Texture
88909
88967
 
88910
- textureNode?.setShaderUniforms (gl, this, renderObject);
88968
+ textureNode ?.setShaderUniforms (gl, this, renderObject);
88911
88969
 
88912
88970
  appearanceNode .getTextureTransform () .setShaderUniforms (gl, this);
88913
88971
  geometryContext .getTextureCoordinate () .setShaderUniforms (gl, this);
@@ -89593,7 +89651,7 @@ ComposedShader .prototype = Object .assign (Object .create (Shaders_X3DShaderNod
89593
89651
  Shaders_X3DShaderNode.prototype.initialize.call (this);
89594
89652
  Shaders_X3DProgrammableShaderObject.prototype.initialize.call (this);
89595
89653
 
89596
- this .isLive () .addInterest ("set_live__", this);
89654
+ this .getLive () .addInterest ("set_live__", this);
89597
89655
 
89598
89656
  // https://www.web3d.org/documents/specifications/19775-1/V4.0/Part01/shaders_glsl.html#relinkingprograms
89599
89657
  this ._activate .addInterest ("set_activate__", this);
@@ -89617,7 +89675,7 @@ ComposedShader .prototype = Object .assign (Object .create (Shaders_X3DShaderNod
89617
89675
  },
89618
89676
  addUserDefinedField: function (accessType, name, field)
89619
89677
  {
89620
- const shaderFields = this .isInitialized () && this .isLive () .getValue () && this .isValid ();
89678
+ const shaderFields = this .isInitialized () && this .getLive () .getValue () && this .isValid ();
89621
89679
 
89622
89680
  if (shaderFields)
89623
89681
  this .removeShaderFields ();
@@ -89629,7 +89687,7 @@ ComposedShader .prototype = Object .assign (Object .create (Shaders_X3DShaderNod
89629
89687
  },
89630
89688
  removeUserDefinedField: function (name)
89631
89689
  {
89632
- const shaderFields = this .isInitialized () && this .isLive () .getValue () && this .isValid ();
89690
+ const shaderFields = this .isInitialized () && this .getLive () .getValue () && this .isValid ();
89633
89691
 
89634
89692
  if (shaderFields)
89635
89693
  this .removeShaderFields ();
@@ -89649,7 +89707,7 @@ ComposedShader .prototype = Object .assign (Object .create (Shaders_X3DShaderNod
89649
89707
  },
89650
89708
  set_live__: function ()
89651
89709
  {
89652
- if (this .isLive () .getValue ())
89710
+ if (this .getLive () .getValue ())
89653
89711
  {
89654
89712
  if (this .isValid ())
89655
89713
  this .addShaderFields ();
@@ -89686,7 +89744,7 @@ ComposedShader .prototype = Object .assign (Object .create (Shaders_X3DShaderNod
89686
89744
  {
89687
89745
  const partNode = Base_X3DCast (Base_X3DConstants.ShaderPart, node);
89688
89746
 
89689
- if (partNode?.getShader ())
89747
+ if (partNode ?.getShader ())
89690
89748
  gl .attachShader (program, partNode .getShader ());
89691
89749
  }
89692
89750
 
@@ -89718,8 +89776,6 @@ ComposedShader .prototype = Object .assign (Object .create (Shaders_X3DShaderNod
89718
89776
  },
89719
89777
  dispose: function ()
89720
89778
  {
89721
- this .getBrowser () .getContext () .deleteProgram (this .program);
89722
-
89723
89779
  Shaders_X3DProgrammableShaderObject.prototype.dispose.call (this);
89724
89780
  Shaders_X3DShaderNode.prototype.dispose.call (this);
89725
89781
  },
@@ -90629,7 +90685,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
90629
90685
  x_ite_Namespace.set ("x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
90630
90686
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
90631
90687
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
90632
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(869);
90688
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(329);
90633
90689
  /*******************************************************************************
90634
90690
  *
90635
90691
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90851,8 +90907,6 @@ ShaderPart .prototype = Object .assign (Object .create (Core_X3DNode.prototype),
90851
90907
  },
90852
90908
  dispose: function ()
90853
90909
  {
90854
- this .getBrowser () .getContext () .deleteShader (this .shader);
90855
-
90856
90910
  Networking_X3DUrlObject.prototype.dispose.call (this);
90857
90911
  Core_X3DNode.prototype.dispose.call (this);
90858
90912
  },
@@ -91563,10 +91617,10 @@ Appearance .prototype = Object .assign (Object .create (Shape_X3DAppearanceNode.
91563
91617
  switch (this .alphaMode)
91564
91618
  {
91565
91619
  case Shape_AlphaMode.AUTO:
91566
- this .setTransparent (!!(this .stylePropertiesNode [3]?.isTransparent () ||
91567
- this .materialNode?.isTransparent () ||
91568
- this .backMaterialNode?.isTransparent () ||
91569
- this .textureNode?.isTransparent () ||
91620
+ this .setTransparent (!!(this .stylePropertiesNode [3] ?.isTransparent () ||
91621
+ this .materialNode ?.isTransparent () ||
91622
+ this .backMaterialNode ?.isTransparent () ||
91623
+ this .textureNode ?.isTransparent () ||
91570
91624
  this .blendModeNode));
91571
91625
  break;
91572
91626
  case Shape_AlphaMode.OPAQUE:
@@ -92049,7 +92103,7 @@ X3DMaterialNode .prototype = Object .assign (Object .create (Shape_X3DAppearance
92049
92103
  key += appearanceNode .getNormalizedAlphaMode (transparent);
92050
92104
  key += this .getMaterialKey (shadows);
92051
92105
  key += shadows ? 1 : 0;
92052
- key += fogNode?.getFogType () ?? 0;
92106
+ key += fogNode ?.getFogType () ?? 0;
92053
92107
  key += shapeNode .getShapeKey ();
92054
92108
  key += appearanceNode .getStyleProperties (geometryContext .geometryType) ? 1 : 0;
92055
92109
  key += appearanceNode .getTextureTransformMapping () .size || 1;
@@ -92562,7 +92616,7 @@ UnlitMaterial .prototype = Object .assign (Object .create (Shape_X3DOneSidedMate
92562
92616
  set_transparent__: function ()
92563
92617
  {
92564
92618
  this .setTransparent (!!(this .getTransparency () ||
92565
- this .getEmissiveTexture ()?.isTransparent ()));
92619
+ this .getEmissiveTexture () ?.isTransparent ()));
92566
92620
  },
92567
92621
  getMaterialKey: function ()
92568
92622
  {
@@ -94327,13 +94381,13 @@ MetadataBoolean .prototype = Object .assign (Object .create (Core_X3DNode.protot
94327
94381
  },
94328
94382
  initialize: function ()
94329
94383
  {
94330
- Core_X3DNode.prototype.initialize.call ();
94331
- Core_X3DMetadataObject.prototype.initialize.call ();
94384
+ Core_X3DNode.prototype.initialize.call (this);
94385
+ Core_X3DMetadataObject.prototype.initialize.call (this);
94332
94386
  },
94333
94387
  dispose: function ()
94334
94388
  {
94335
- Core_X3DMetadataObject.prototype.dispose.call ();
94336
- Core_X3DNode.prototype.dispose.call ();
94389
+ Core_X3DMetadataObject.prototype.dispose.call (this);
94390
+ Core_X3DNode.prototype.dispose.call (this);
94337
94391
  },
94338
94392
  });
94339
94393
 
@@ -94433,13 +94487,13 @@ MetadataDouble .prototype = Object .assign (Object .create (Core_X3DNode.prototy
94433
94487
  },
94434
94488
  initialize: function ()
94435
94489
  {
94436
- Core_X3DNode.prototype.initialize.call ();
94437
- Core_X3DMetadataObject.prototype.initialize.call ();
94490
+ Core_X3DNode.prototype.initialize.call (this);
94491
+ Core_X3DMetadataObject.prototype.initialize.call (this);
94438
94492
  },
94439
94493
  dispose: function ()
94440
94494
  {
94441
- Core_X3DMetadataObject.prototype.dispose.call ();
94442
- Core_X3DNode.prototype.dispose.call ();
94495
+ Core_X3DMetadataObject.prototype.dispose.call (this);
94496
+ Core_X3DNode.prototype.dispose.call (this);
94443
94497
  },
94444
94498
  });
94445
94499
 
@@ -94539,13 +94593,13 @@ MetadataFloat .prototype = Object .assign (Object .create (Core_X3DNode.prototyp
94539
94593
  },
94540
94594
  initialize: function ()
94541
94595
  {
94542
- Core_X3DNode.prototype.initialize.call ();
94543
- Core_X3DMetadataObject.prototype.initialize.call ();
94596
+ Core_X3DNode.prototype.initialize.call (this);
94597
+ Core_X3DMetadataObject.prototype.initialize.call (this);
94544
94598
  },
94545
94599
  dispose: function ()
94546
94600
  {
94547
- Core_X3DMetadataObject.prototype.dispose.call ();
94548
- Core_X3DNode.prototype.dispose.call ();
94601
+ Core_X3DMetadataObject.prototype.dispose.call (this);
94602
+ Core_X3DNode.prototype.dispose.call (this);
94549
94603
  },
94550
94604
  });
94551
94605
 
@@ -94645,13 +94699,13 @@ MetadataInteger .prototype = Object .assign (Object .create (Core_X3DNode.protot
94645
94699
  },
94646
94700
  initialize: function ()
94647
94701
  {
94648
- Core_X3DNode.prototype.initialize.call ();
94649
- Core_X3DMetadataObject.prototype.initialize.call ();
94702
+ Core_X3DNode.prototype.initialize.call (this);
94703
+ Core_X3DMetadataObject.prototype.initialize.call (this);
94650
94704
  },
94651
94705
  dispose: function ()
94652
94706
  {
94653
- Core_X3DMetadataObject.prototype.dispose.call ();
94654
- Core_X3DNode.prototype.dispose.call ();
94707
+ Core_X3DMetadataObject.prototype.dispose.call (this);
94708
+ Core_X3DNode.prototype.dispose.call (this);
94655
94709
  },
94656
94710
  });
94657
94711
 
@@ -94751,13 +94805,13 @@ MetadataSet .prototype = Object .assign (Object .create (Core_X3DNode.prototype)
94751
94805
  },
94752
94806
  initialize: function ()
94753
94807
  {
94754
- Core_X3DNode.prototype.initialize.call ();
94755
- Core_X3DMetadataObject.prototype.initialize.call ();
94808
+ Core_X3DNode.prototype.initialize.call (this);
94809
+ Core_X3DMetadataObject.prototype.initialize.call (this);
94756
94810
  },
94757
94811
  dispose: function ()
94758
94812
  {
94759
- Core_X3DMetadataObject.prototype.dispose.call ();
94760
- Core_X3DNode.prototype.dispose.call ();
94813
+ Core_X3DMetadataObject.prototype.dispose.call (this);
94814
+ Core_X3DNode.prototype.dispose.call (this);
94761
94815
  },
94762
94816
  });
94763
94817
 
@@ -94857,13 +94911,13 @@ MetadataString .prototype = Object .assign (Object .create (Core_X3DNode.prototy
94857
94911
  },
94858
94912
  initialize: function ()
94859
94913
  {
94860
- Core_X3DNode.prototype.initialize.call ();
94861
- Core_X3DMetadataObject.prototype.initialize.call ();
94914
+ Core_X3DNode.prototype.initialize.call (this);
94915
+ Core_X3DMetadataObject.prototype.initialize.call (this);
94862
94916
  },
94863
94917
  dispose: function ()
94864
94918
  {
94865
- Core_X3DMetadataObject.prototype.dispose.call ();
94866
- Core_X3DNode.prototype.dispose.call ();
94919
+ Core_X3DMetadataObject.prototype.dispose.call (this);
94920
+ Core_X3DNode.prototype.dispose.call (this);
94867
94921
  },
94868
94922
  });
94869
94923
 
@@ -95716,7 +95770,7 @@ X3DEnvironmentalSensorNode .prototype = Object .assign (Object .create (Core_X3D
95716
95770
  {
95717
95771
  Core_X3DSensorNode.prototype.initialize.call (this);
95718
95772
 
95719
- this .isLive () .addInterest ("set_live__", this);
95773
+ this .getLive () .addInterest ("set_live__", this);
95720
95774
 
95721
95775
  this ._enabled .addInterest ("set_live__", this);
95722
95776
  this ._size .addInterest ("set_live__", this);
@@ -95726,7 +95780,7 @@ X3DEnvironmentalSensorNode .prototype = Object .assign (Object .create (Core_X3D
95726
95780
  },
95727
95781
  set_live__: function ()
95728
95782
  {
95729
- if (this ._traversed .getValue () && this .isLive () .getValue () && this ._enabled .getValue () && ! (this .zeroTest && this ._size. getValue () .equals (Numbers_Vector3.Zero)))
95783
+ if (this ._traversed .getValue () && this .getLive () .getValue () && this ._enabled .getValue () && ! (this .zeroTest && this ._size. getValue () .equals (Numbers_Vector3.Zero)))
95730
95784
  {
95731
95785
  this .getBrowser () .sensorEvents () .addInterest ("update", this);
95732
95786
  }
@@ -96163,7 +96217,7 @@ TransformSensor .prototype = Object .assign (Object .create (EnvironmentalSensor
96163
96217
  {
96164
96218
  EnvironmentalSensor_X3DEnvironmentalSensorNode.prototype.initialize.call (this);
96165
96219
 
96166
- this .isLive () .addInterest ("set_enabled__", this);
96220
+ this .getLive () .addInterest ("set_enabled__", this);
96167
96221
 
96168
96222
  this ._enabled .addInterest ("set_enabled__", this);
96169
96223
  this ._size .addInterest ("set_enabled__", this);
@@ -96178,7 +96232,7 @@ TransformSensor .prototype = Object .assign (Object .create (EnvironmentalSensor
96178
96232
  { },
96179
96233
  set_enabled__: function ()
96180
96234
  {
96181
- if (this .isLive () .getValue () && this .targetObjectNode && this ._enabled .getValue () && ! this ._size. getValue () .equals (Numbers_Vector3.Zero))
96235
+ if (this .getLive () .getValue () && this .targetObjectNode && this ._enabled .getValue () && ! this ._size. getValue () .equals (Numbers_Vector3.Zero))
96182
96236
  {
96183
96237
  this .setPickableObject (true);
96184
96238
  this .getBrowser () .addTransformSensor (this);
@@ -98785,7 +98839,7 @@ Cone .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode.prot
98785
98839
  {
98786
98840
  Rendering_X3DGeometryNode.prototype.set_live__.call (this);
98787
98841
 
98788
- if (this .isLive () .getValue ())
98842
+ if (this .getLive () .getValue ())
98789
98843
  this .getBrowser () .getConeOptions () .addInterest ("requestRebuild", this);
98790
98844
  else
98791
98845
  this .getBrowser () .getConeOptions () .removeInterest ("requestRebuild", this);
@@ -99028,7 +99082,7 @@ Cylinder .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode.
99028
99082
  {
99029
99083
  Rendering_X3DGeometryNode.prototype.set_live__.call (this);
99030
99084
 
99031
- if (this .isLive () .getValue ())
99085
+ if (this .getLive () .getValue ())
99032
99086
  this .getBrowser () .getCylinderOptions () .addInterest ("requestRebuild", this);
99033
99087
  else
99034
99088
  this .getBrowser () .getCylinderOptions () .removeInterest ("requestRebuild", this);
@@ -99393,39 +99447,39 @@ ElevationGrid .prototype = Object .assign (Object .create (Rendering_X3DGeometry
99393
99447
  },
99394
99448
  set_fogCoord__: function ()
99395
99449
  {
99396
- this .fogCoordNode?.removeInterest ("requestRebuild", this);
99450
+ this .fogCoordNode ?.removeInterest ("requestRebuild", this);
99397
99451
 
99398
99452
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
99399
99453
 
99400
- this .fogCoordNode?.addInterest ("requestRebuild", this);
99454
+ this .fogCoordNode ?.addInterest ("requestRebuild", this);
99401
99455
  },
99402
99456
  set_color__: function ()
99403
99457
  {
99404
- this .colorNode?.removeInterest ("requestRebuild", this);
99458
+ this .colorNode ?.removeInterest ("requestRebuild", this);
99405
99459
 
99406
99460
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
99407
99461
 
99408
- this .colorNode?.addInterest ("requestRebuild", this);
99462
+ this .colorNode ?.addInterest ("requestRebuild", this);
99409
99463
 
99410
- this .setTransparent (this .colorNode?.isTransparent () ?? false);
99464
+ this .setTransparent (this .colorNode ?.isTransparent () ?? false);
99411
99465
  },
99412
99466
  set_texCoord__: function ()
99413
99467
  {
99414
- this .texCoordNode?.removeInterest ("requestRebuild", this);
99468
+ this .texCoordNode ?.removeInterest ("requestRebuild", this);
99415
99469
 
99416
99470
  this .texCoordNode = Base_X3DCast (Base_X3DConstants.X3DTextureCoordinateNode, this ._texCoord);
99417
99471
 
99418
- this .texCoordNode?.addInterest ("requestRebuild", this);
99472
+ this .texCoordNode ?.addInterest ("requestRebuild", this);
99419
99473
 
99420
99474
  this .setTextureCoordinate (this .texCoordNode);
99421
99475
  },
99422
99476
  set_normal__: function ()
99423
99477
  {
99424
- this .normalNode?.removeInterest ("requestRebuild", this);
99478
+ this .normalNode ?.removeInterest ("requestRebuild", this);
99425
99479
 
99426
99480
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
99427
99481
 
99428
- this .normalNode?.addInterest ("requestRebuild", this);
99482
+ this .normalNode ?.addInterest ("requestRebuild", this);
99429
99483
  },
99430
99484
  getColor: function ()
99431
99485
  {
@@ -99603,7 +99657,7 @@ ElevationGrid .prototype = Object .assign (Object .create (Rendering_X3DGeometry
99603
99657
  for (let a = 0; a < numAttribNodes; ++ a)
99604
99658
  attribNodes [a] .addValue (index, attribArrays [a]);
99605
99659
 
99606
- fogCoordNode?.addDepth (index, fogDepthArray);
99660
+ fogCoordNode ?.addDepth (index, fogDepthArray);
99607
99661
 
99608
99662
  if (colorNode)
99609
99663
  {
@@ -100464,7 +100518,7 @@ Sphere .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode.pr
100464
100518
  {
100465
100519
  Rendering_X3DGeometryNode.prototype.set_live__.call (this);
100466
100520
 
100467
- if (this .isLive () .getValue ())
100521
+ if (this .getLive () .getValue ())
100468
100522
  this .getBrowser () .getSphereOptions () .addInterest ("requestRebuild", this);
100469
100523
  else
100470
100524
  this .getBrowser () .getSphereOptions () .removeInterest ("requestRebuild", this);
@@ -100968,7 +101022,7 @@ Switch .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.pro
100968
101022
  {
100969
101023
  const boundedObject = Base_X3DCast (Base_X3DConstants.X3DBoundedObject, this .visibleNode);
100970
101024
 
100971
- return boundedObject?.getBBox (bbox, shadows) ?? bbox .set ();
101025
+ return boundedObject ?.getBBox (bbox, shadows) ?? bbox .set ();
100972
101026
  }
100973
101027
 
100974
101028
  return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
@@ -101022,11 +101076,11 @@ Switch .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.pro
101022
101076
  },
101023
101077
  set_cameraObject__: function ()
101024
101078
  {
101025
- this .setCameraObject (!!this .visibleNode?.isCameraObject ());
101079
+ this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
101026
101080
  },
101027
101081
  set_transformSensors__: function ()
101028
101082
  {
101029
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode?.isPickableObject ()));
101083
+ this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
101030
101084
  },
101031
101085
  set_visible__: function ()
101032
101086
  {
@@ -101053,7 +101107,7 @@ Switch .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.pro
101053
101107
  case Rendering_TraverseType.CAMERA:
101054
101108
  case Rendering_TraverseType.SHADOW:
101055
101109
  {
101056
- this .visibleNode?.traverse (type, renderObject);
101110
+ this .visibleNode ?.traverse (type, renderObject);
101057
101111
  return;
101058
101112
  }
101059
101113
  case Rendering_TraverseType.PICKING:
@@ -101085,14 +101139,14 @@ Switch .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.pro
101085
101139
  }
101086
101140
  case Rendering_TraverseType.COLLISION:
101087
101141
  {
101088
- this .visibleNode?.traverse (type, renderObject);
101142
+ this .visibleNode ?.traverse (type, renderObject);
101089
101143
  return;
101090
101144
  }
101091
101145
  case Rendering_TraverseType.DISPLAY:
101092
101146
  {
101093
- this .visibleNode?.traverse (type, renderObject);
101147
+ this .visibleNode ?.traverse (type, renderObject);
101094
101148
 
101095
- this .boundedObject?.displayBBox (type, renderObject);
101149
+ this .boundedObject ?.displayBBox (type, renderObject);
101096
101150
  return;
101097
101151
  }
101098
101152
  }
@@ -104713,9 +104767,9 @@ Collision .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.
104713
104767
  initialize: function ()
104714
104768
  {
104715
104769
  Grouping_X3DGroupingNode.prototype.initialize.call (this);
104716
- //X3DSensorNode .prototype .initialize .call (this); // We can only call the base of a *Objects.
104770
+ // X3DSensorNode .prototype .initialize .call (this); // We can only call the base of a *Objects.
104717
104771
 
104718
- this .isLive () .addInterest ("set_live__", this);
104772
+ this .getLive () .addInterest ("set_live__", this);
104719
104773
  this ._enabled .addInterest ("set_live__", this);
104720
104774
  this ._proxy .addInterest ("set_proxy__", this);
104721
104775
 
@@ -104724,7 +104778,7 @@ Collision .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.
104724
104778
  },
104725
104779
  set_live__: function ()
104726
104780
  {
104727
- if (this .isLive () .getValue () && this ._enabled .getValue ())
104781
+ if (this .getLive () .getValue () && this ._enabled .getValue ())
104728
104782
  this .getBrowser () .addCollision (this);
104729
104783
 
104730
104784
  else
@@ -104776,7 +104830,7 @@ Collision .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.
104776
104830
  },
104777
104831
  dispose: function ()
104778
104832
  {
104779
- //X3DSensorNode .prototype .dispose .call (this); // We can only call the base of a *Objects.
104833
+ // X3DSensorNode .prototype .dispose .call (this); // We can only call the base of a *Objects.
104780
104834
  Grouping_X3DGroupingNode.prototype.dispose.call (this);
104781
104835
  },
104782
104836
  });
@@ -104908,7 +104962,7 @@ LOD .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.protot
104908
104962
  {
104909
104963
  const boundedObject = Base_X3DCast (Base_X3DConstants.X3DBoundedObject, this .visibleNode);
104910
104964
 
104911
- return boundedObject?.getBBox (bbox, shadows) ?? bbox .set ();
104965
+ return boundedObject ?.getBBox (bbox, shadows) ?? bbox .set ();
104912
104966
  }
104913
104967
 
104914
104968
  return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
@@ -104964,11 +105018,11 @@ LOD .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.protot
104964
105018
  },
104965
105019
  set_cameraObject__: function ()
104966
105020
  {
104967
- this .setCameraObject (!!this .visibleNode?.isCameraObject ());
105021
+ this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
104968
105022
  },
104969
105023
  set_transformSensors__: function ()
104970
105024
  {
104971
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode?.isPickableObject ()));
105025
+ this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
104972
105026
  },
104973
105027
  set_visible__: function ()
104974
105028
  {
@@ -105040,7 +105094,7 @@ LOD .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.protot
105040
105094
  case Rendering_TraverseType.CAMERA:
105041
105095
  case Rendering_TraverseType.SHADOW:
105042
105096
  {
105043
- this .visibleNode?.traverse (type, renderObject);
105097
+ this .visibleNode ?.traverse (type, renderObject);
105044
105098
  return;
105045
105099
  }
105046
105100
  case Rendering_TraverseType.PICKING:
@@ -105072,7 +105126,7 @@ LOD .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.protot
105072
105126
  }
105073
105127
  case Rendering_TraverseType.COLLISION:
105074
105128
  {
105075
- this .visibleNode?.traverse (type, renderObject);
105129
+ this .visibleNode ?.traverse (type, renderObject);
105076
105130
  return;
105077
105131
  }
105078
105132
  case Rendering_TraverseType.DISPLAY:
@@ -105100,9 +105154,9 @@ LOD .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.protot
105100
105154
  }
105101
105155
  }
105102
105156
 
105103
- this .visibleNode?.traverse (type, renderObject);
105157
+ this .visibleNode ?.traverse (type, renderObject);
105104
105158
 
105105
- this .boundedObject?.displayBBox (type, renderObject);
105159
+ this .boundedObject ?.displayBBox (type, renderObject);
105106
105160
  return;
105107
105161
  }
105108
105162
  }
@@ -105607,22 +105661,34 @@ X3DPointingDeviceSensorNode .prototype = Object .assign (Object .create (Core_X3
105607
105661
  {
105608
105662
  Core_X3DSensorNode.prototype.initialize.call (this);
105609
105663
 
105610
- this ._enabled .addInterest ("set_enabled__", this);
105611
- },
105612
- getMatrices: function ()
105613
- {
105614
- return this .matrices;
105664
+ this .getBrowser () .getBrowserOptions () ._PrivateSensors .addInterest ("set_live__", this);
105665
+ this .getScene () .getPrivate () .addInterest ("set_live__", this);
105666
+ this .getLive () .addInterest ("set_live__", this);
105667
+
105668
+ this ._enabled .addInterest ("set_live__", this);
105669
+
105670
+ this .set_live__ ();
105615
105671
  },
105616
- set_enabled__: function ()
105672
+ set_live__: function ()
105617
105673
  {
105618
- if (this ._enabled .getValue ())
105619
- return;
105674
+ if (((this .getLive () .getValue () && !this .getBrowser () .getBrowserOption ("PrivateSensors")) || this .getScene () .isPrivate () && this .getBrowser () .getBrowserOption ("PrivateSensors")) && this ._enabled .getValue ())
105675
+ {
105676
+ this .getBrowser () .addPointingDeviceSensor (this);
105620
105677
 
105621
- if (this ._isActive .getValue ())
105622
- this ._isActive = false;
105678
+ delete this .push;
105679
+ }
105680
+ else
105681
+ {
105682
+ this .getBrowser () .removePointingDeviceSensor (this);
105683
+
105684
+ if (this ._isActive .getValue ())
105685
+ this ._isActive = false;
105623
105686
 
105624
- if (this ._isOver .getValue ())
105625
- this ._isOver = false;
105687
+ if (this ._isOver .getValue ())
105688
+ this ._isOver = false;
105689
+
105690
+ this .push = Function .prototype;
105691
+ }
105626
105692
  },
105627
105693
  set_over__: function (over, hit)
105628
105694
  {
@@ -105643,13 +105709,10 @@ X3DPointingDeviceSensorNode .prototype = Object .assign (Object .create (Core_X3
105643
105709
  { },
105644
105710
  push: function (renderObject, sensors)
105645
105711
  {
105646
- if (this ._enabled .getValue ())
105647
- {
105648
- sensors .push (new PointingDeviceSensor_PointingDeviceSensorContainer (this,
105649
- renderObject .getModelViewMatrix () .get (),
105650
- renderObject .getProjectionMatrix () .get (),
105651
- renderObject .getViewVolume () .getViewport ()));
105652
- }
105712
+ sensors .push (new PointingDeviceSensor_PointingDeviceSensorContainer (this,
105713
+ renderObject .getModelViewMatrix () .get (),
105714
+ renderObject .getProjectionMatrix () .get (),
105715
+ renderObject .getViewVolume () .getViewport ()));
105653
105716
  },
105654
105717
  });
105655
105718
 
@@ -106203,9 +106266,9 @@ Inline .prototype = Object .assign (Object .create (Core_X3DChildNode.prototype)
106203
106266
  Networking_X3DUrlObject.prototype.set_live__.call (this);
106204
106267
 
106205
106268
  if (this .isPrivate ())
106206
- return
106269
+ return;
106207
106270
 
106208
- this .scene .setLive (this .isLive () .getValue ());
106271
+ this .scene .setLive (this .getLive () .getValue ());
106209
106272
  },
106210
106273
  unLoadNow: function ()
106211
106274
  {
@@ -109097,37 +109160,37 @@ LineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeometryNo
109097
109160
  },
109098
109161
  set_fogCoord__: function ()
109099
109162
  {
109100
- this .fogCoordNode?.removeInterest ("requestRebuild", this);
109163
+ this .fogCoordNode ?.removeInterest ("requestRebuild", this);
109101
109164
 
109102
109165
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
109103
109166
 
109104
- this .fogCoordNode?.addInterest ("requestRebuild", this);
109167
+ this .fogCoordNode ?.addInterest ("requestRebuild", this);
109105
109168
  },
109106
109169
  set_color__: function ()
109107
109170
  {
109108
- this .colorNode?.removeInterest ("requestRebuild", this);
109171
+ this .colorNode ?.removeInterest ("requestRebuild", this);
109109
109172
 
109110
109173
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
109111
109174
 
109112
- this .colorNode?.addInterest ("requestRebuild", this);
109175
+ this .colorNode ?.addInterest ("requestRebuild", this);
109113
109176
 
109114
- this .setTransparent (this .colorNode?.isTransparent () ?? false);
109177
+ this .setTransparent (this .colorNode ?.isTransparent () ?? false);
109115
109178
  },
109116
109179
  set_normal__: function ()
109117
109180
  {
109118
- this .normalNode?.removeInterest ("requestRebuild", this);
109181
+ this .normalNode ?.removeInterest ("requestRebuild", this);
109119
109182
 
109120
109183
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
109121
109184
 
109122
- this .normalNode?.addInterest ("requestRebuild", this);
109185
+ this .normalNode ?.addInterest ("requestRebuild", this);
109123
109186
  },
109124
109187
  set_coord__: function ()
109125
109188
  {
109126
- this .coordNode?.removeInterest ("requestRebuild", this);
109189
+ this .coordNode ?.removeInterest ("requestRebuild", this);
109127
109190
 
109128
109191
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
109129
109192
 
109130
- this .coordNode?.addInterest ("requestRebuild", this);
109193
+ this .coordNode ?.addInterest ("requestRebuild", this);
109131
109194
  },
109132
109195
  build: function ()
109133
109196
  {
@@ -109167,9 +109230,9 @@ LineSet .prototype = Object .assign (Object .create (Rendering_X3DLineGeometryNo
109167
109230
  for (let a = 0; a < numAttribNodes; ++ a)
109168
109231
  attribNodes [a] .addValue (index, attribArrays [a]);
109169
109232
 
109170
- fogCoordNode?.addDepth (index, fogDepthArray);
109171
- colorNode ?.addColor (index, colorArray);
109172
- normalNode ?.addVector (index, normalArray);
109233
+ fogCoordNode ?.addDepth (index, fogDepthArray);
109234
+ colorNode ?.addColor (index, colorArray);
109235
+ normalNode ?.addVector (index, normalArray);
109173
109236
 
109174
109237
  coordNode .addPoint (index, vertexArray);
109175
109238
  }
@@ -109526,7 +109589,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DG
109526
109589
  attribNodes = this .getAttrib (),
109527
109590
  attribBuffers = this .getAttribBuffers ();
109528
109591
 
109529
- blendModeNode?.enable (gl);
109592
+ blendModeNode ?.enable (gl);
109530
109593
 
109531
109594
  // Setup shader.
109532
109595
 
@@ -109554,7 +109617,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DG
109554
109617
 
109555
109618
  gl .drawArrays (this .primitiveMode, 0, this .vertexCount);
109556
109619
 
109557
- blendModeNode?.disable (gl);
109620
+ blendModeNode ?.disable (gl);
109558
109621
  },
109559
109622
  displayParticles: function (gl, renderContext, particleSystem)
109560
109623
  {
@@ -109565,7 +109628,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DG
109565
109628
  attribNodes = this .getAttrib (),
109566
109629
  attribBuffers = this .getAttribBuffers ();
109567
109630
 
109568
- blendModeNode?.enable (gl);
109631
+ blendModeNode ?.enable (gl);
109569
109632
 
109570
109633
  // Setup shader.
109571
109634
 
@@ -109604,7 +109667,7 @@ X3DPointGeometryNode .prototype = Object .assign (Object .create (Rendering_X3DG
109604
109667
 
109605
109668
  gl .drawArraysInstanced (this .primitiveMode, 0, this .vertexCount, particleSystem .numParticles);
109606
109669
 
109607
- blendModeNode?.disable (gl);
109670
+ blendModeNode ?.disable (gl);
109608
109671
  },
109609
109672
  });
109610
109673
 
@@ -109757,35 +109820,35 @@ PointSet .prototype = Object .assign (Object .create (Rendering_X3DPointGeometry
109757
109820
  },
109758
109821
  set_fogCoord__: function ()
109759
109822
  {
109760
- this .fogCoordNode?.removeInterest ("requestRebuild", this);
109823
+ this .fogCoordNode ?.removeInterest ("requestRebuild", this);
109761
109824
 
109762
109825
  this .fogCoordNode = Base_X3DCast (Base_X3DConstants.FogCoordinate, this ._fogCoord);
109763
109826
 
109764
- this .fogCoordNode?.addInterest ("requestRebuild", this);
109827
+ this .fogCoordNode ?.addInterest ("requestRebuild", this);
109765
109828
  },
109766
109829
  set_color__: function ()
109767
109830
  {
109768
- this .colorNode?.removeInterest ("requestRebuild", this);
109831
+ this .colorNode ?.removeInterest ("requestRebuild", this);
109769
109832
 
109770
109833
  this .colorNode = Base_X3DCast (Base_X3DConstants.X3DColorNode, this ._color);
109771
109834
 
109772
- this .colorNode?.addInterest ("requestRebuild", this);
109835
+ this .colorNode ?.addInterest ("requestRebuild", this);
109773
109836
  },
109774
109837
  set_normal__: function ()
109775
109838
  {
109776
- this .normalNode?.removeInterest ("requestRebuild", this);
109839
+ this .normalNode ?.removeInterest ("requestRebuild", this);
109777
109840
 
109778
109841
  this .normalNode = Base_X3DCast (Base_X3DConstants.X3DNormalNode, this ._normal);
109779
109842
 
109780
- this .normalNode?.addInterest ("requestRebuild", this);
109843
+ this .normalNode ?.addInterest ("requestRebuild", this);
109781
109844
  },
109782
109845
  set_coord__: function ()
109783
109846
  {
109784
- this .coordNode?.removeInterest ("requestRebuild", this);
109847
+ this .coordNode ?.removeInterest ("requestRebuild", this);
109785
109848
 
109786
109849
  this .coordNode = Base_X3DCast (Base_X3DConstants.X3DCoordinateNode, this ._coord);
109787
109850
 
109788
- this .coordNode?.addInterest ("requestRebuild", this);
109851
+ this .coordNode ?.addInterest ("requestRebuild", this);
109789
109852
  },
109790
109853
  build: function ()
109791
109854
  {
@@ -109812,9 +109875,9 @@ PointSet .prototype = Object .assign (Object .create (Rendering_X3DPointGeometry
109812
109875
  attribNodes [a] .addValue (i, attribArrays [a]);
109813
109876
  }
109814
109877
 
109815
- fogCoordNode?.addDepths (fogDepthArray, numPoints);
109816
- colorNode ?.addColors (colorArray, numPoints);
109817
- normalNode ?.addNormals (normalArray, numPoints);
109878
+ fogCoordNode ?.addDepths (fogDepthArray, numPoints);
109879
+ colorNode ?.addColors (colorArray, numPoints);
109880
+ normalNode ?.addNormals (normalArray, numPoints);
109818
109881
 
109819
109882
  coordNode .addPoints (vertexArray, numPoints);
109820
109883
  },
@@ -111749,7 +111812,7 @@ Material .prototype = Object .assign (Object .create (Shape_X3DOneSidedMaterialN
111749
111812
  },
111750
111813
  set_transparent__: function ()
111751
111814
  {
111752
- this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode?.isTransparent ()));
111815
+ this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode ?.isTransparent ()));
111753
111816
  },
111754
111817
  getBaseTexture: function ()
111755
111818
  {
@@ -112114,7 +112177,7 @@ PhysicalMaterial .prototype = Object .assign (Object .create (Shape_X3DOneSidedM
112114
112177
  },
112115
112178
  set_transparent__: function ()
112116
112179
  {
112117
- this .setTransparent (!!(this .getTransparency () || this .baseTextureNode?.isTransparent ()));
112180
+ this .setTransparent (!!(this .getTransparency () || this .baseTextureNode ?.isTransparent ()));
112118
112181
  },
112119
112182
  getBaseTexture: function ()
112120
112183
  {
@@ -113040,7 +113103,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
113040
113103
  x_ite_Namespace.set ("x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
113041
113104
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
113042
113105
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
113043
- /* provided dependency */ var AudioClip_$ = __webpack_require__(869);
113106
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(329);
113044
113107
  /*******************************************************************************
113045
113108
  *
113046
113109
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113218,7 +113281,7 @@ AudioClip .prototype = Object .assign (Object .create (Sound_X3DSoundSourceNode.
113218
113281
  setError: function (event)
113219
113282
  {
113220
113283
  if (this .URL .protocol !== "data:")
113221
- console .warn ("Error loading audio:", decodeURI (this .URL .href), event .type);
113284
+ console .warn (`Error loading audio '${decodeURI (this .URL .href)}'`, event .type);
113222
113285
 
113223
113286
  this .loadNext ();
113224
113287
  },
@@ -113227,7 +113290,7 @@ AudioClip .prototype = Object .assign (Object .create (Sound_X3DSoundSourceNode.
113227
113290
  if (DEBUG)
113228
113291
  {
113229
113292
  if (this .URL .protocol !== "data:")
113230
- console .info ("Done loading audio:", decodeURI (this .URL .href));
113293
+ console .info (`Done loading audio '${decodeURI (this .URL .href)}'`);
113231
113294
  }
113232
113295
 
113233
113296
  this .audio .unbind ("canplaythrough");
@@ -115086,7 +115149,7 @@ Sound .prototype = Object .assign (Object .create (Sound_X3DSoundNode.prototype)
115086
115149
  {
115087
115150
  Sound_X3DSoundNode.prototype.initialize.call (this);
115088
115151
 
115089
- this .isLive () .addInterest ("set_live__", this);
115152
+ this .getLive () .addInterest ("set_live__", this);
115090
115153
  this ._traversed .addInterest ("set_live__", this);
115091
115154
 
115092
115155
  this ._source .addInterest ("set_source__", this);
@@ -115115,7 +115178,7 @@ Sound .prototype = Object .assign (Object .create (Sound_X3DSoundNode.prototype)
115115
115178
  },
115116
115179
  set_live__: function ()
115117
115180
  {
115118
- if (this .isLive () .getValue () && this ._traversed .getValue ())
115181
+ if (this .getLive () .getValue () && this ._traversed .getValue ())
115119
115182
  {
115120
115183
  this .getBrowser () .sensorEvents () .addInterest ("update", this);
115121
115184
  }
@@ -115935,8 +115998,8 @@ const GIFMedia_default_ = GifMedia;
115935
115998
  x_ite_Namespace.set ("x_ite/Browser/Texturing/GIFMedia", GIFMedia_default_);
115936
115999
  /* harmony default export */ const GIFMedia = (GIFMedia_default_);
115937
116000
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
115938
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(869);
115939
- /* provided dependency */ var SuperGif = __webpack_require__(521);
116001
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(329);
116002
+ /* provided dependency */ var SuperGif = __webpack_require__(878);
115940
116003
  /*******************************************************************************
115941
116004
  *
115942
116005
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116137,7 +116200,7 @@ MovieTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
116137
116200
  setError: function (event)
116138
116201
  {
116139
116202
  if (this .URL .protocol !== "data:")
116140
- console .warn ("Error loading movie:", decodeURI (this .URL .href), event .type);
116203
+ console .warn (`Error loading movie '${decodeURI (this .URL .href)}'`, event .type);
116141
116204
 
116142
116205
  this .loadNext ();
116143
116206
  },
@@ -116146,7 +116209,7 @@ MovieTexture .prototype = Object .assign (Object .create (Texturing_X3DTexture2D
116146
116209
  if (DEBUG)
116147
116210
  {
116148
116211
  if (this .URL .protocol !== "data:")
116149
- console .info ("Done loading movie:", decodeURI (this .URL .href));
116212
+ console .info (`Done loading movie '${decodeURI (this .URL .href)}'`);
116150
116213
  }
116151
116214
 
116152
116215
  try
@@ -116899,7 +116962,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
116899
116962
  x_ite_Namespace.set ("x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
116900
116963
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
116901
116964
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
116902
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(869);
116965
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(329);
116903
116966
  /*******************************************************************************
116904
116967
  *
116905
116968
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117610,7 +117673,7 @@ const Components_default_ = Components;
117610
117673
  x_ite_Namespace.set ("x_ite/Components", Components_default_);
117611
117674
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
117612
117675
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
117613
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(869);
117676
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(329);
117614
117677
  /*******************************************************************************
117615
117678
  * MIT License
117616
117679
  *
@@ -118847,7 +118910,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
118847
118910
  x_ite_Namespace.set ("x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
118848
118911
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
118849
118912
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
118850
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(869);
118913
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(329);
118851
118914
  /*******************************************************************************
118852
118915
  *
118853
118916
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119034,7 +119097,7 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119034
119097
  {
119035
119098
  return Configuration_SupportedProfiles;
119036
119099
  },
119037
- getComponent: function (name, level)
119100
+ getComponent: function (name, level = 0)
119038
119101
  {
119039
119102
  name = String (name);
119040
119103
  level |= 0;
@@ -119045,7 +119108,7 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119045
119108
  {
119046
119109
  return new Configuration_ComponentInfo ({
119047
119110
  name: name,
119048
- level: Algorithm.clamp (level, 1, component .level),
119111
+ level: Algorithm.clamp (level || component .level, 1, component .level),
119049
119112
  title: component .title,
119050
119113
  providerUrl: component .providerUrl,
119051
119114
  external: X3DBrowser_$.data (component, "external"),
@@ -119162,8 +119225,8 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119162
119225
 
119163
119226
  scene = this .createScene ();
119164
119227
 
119165
- for (const rootNode of rootNodes)
119166
- scene .isLive () .addInterest (rootNode .getValue () .getExecutionContext () .isLive ());
119228
+ for (const node of rootNodes .filter (node => node))
119229
+ scene .getLive () .addInterest ("setLive", node .getValue () .getExecutionContext ());
119167
119230
 
119168
119231
  scene .setRootNodes (rootNodes);
119169
119232
  }
@@ -119173,7 +119236,7 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119173
119236
 
119174
119237
  // Detach scene from parent.
119175
119238
 
119176
- scene .getExecutionContext () .isLive () .removeInterest ("setLive", scene);
119239
+ scene .getExecutionContext () .getLive () .removeInterest ("setLive", scene);
119177
119240
  scene .setExecutionContext (scene);
119178
119241
 
119179
119242
  // Replace.
@@ -119189,7 +119252,7 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119189
119252
  this .setExecutionContext (scene);
119190
119253
  this .getWorld () .bindBindables ();
119191
119254
 
119192
- scene .setLive (this .isLive () .getValue ());
119255
+ scene .setLive (this .isLive ());
119193
119256
  });
119194
119257
  },
119195
119258
  checkLoadCount: function (resolve, loadCount)
@@ -119221,9 +119284,9 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119221
119284
 
119222
119285
  if (!external)
119223
119286
  {
119224
- currentScene .isLive () .addInterest ("setLive", scene);
119287
+ currentScene .getLive () .addInterest ("setLive", scene);
119225
119288
  scene .setExecutionContext (currentScene);
119226
- scene .setLive (currentScene .getLive ());
119289
+ scene .setLive (currentScene .isLive ());
119227
119290
  }
119228
119291
 
119229
119292
  return scene;
@@ -119260,13 +119323,13 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119260
119323
 
119261
119324
  if (scene)
119262
119325
  {
119263
- // Handle isLive for script scenes here:
119326
+ // Handle getLive for script scenes here:
119264
119327
 
119265
119328
  if (!external)
119266
119329
  {
119267
- currentScene .isLive () .addInterest ("setLive", scene);
119330
+ currentScene .getLive () .addInterest ("setLive", scene);
119268
119331
  scene .setExecutionContext (currentScene);
119269
- scene .setLive (currentScene .getLive ());
119332
+ scene .setLive (currentScene .isLive ());
119270
119333
  }
119271
119334
 
119272
119335
  // Wait until scene is completely loaded, scene ._loadCount must be 0.
@@ -119301,9 +119364,9 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119301
119364
  {
119302
119365
  if (!external)
119303
119366
  {
119304
- currentScene .isLive () .addInterest ("setLive", scene);
119367
+ currentScene .getLive () .addInterest ("setLive", scene);
119305
119368
  scene .setExecutionContext (currentScene);
119306
- scene .setLive (currentScene .getLive ());
119369
+ scene .setLive (currentScene .isLive ());
119307
119370
  }
119308
119371
 
119309
119372
  resolve (scene);
@@ -119449,9 +119512,9 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119449
119512
 
119450
119513
  if (!external)
119451
119514
  {
119452
- currentScene .isLive () .addInterest ("setLive", scene);
119515
+ currentScene .getLive () .addInterest ("setLive", scene);
119453
119516
  scene .setExecutionContext (currentScene);
119454
- scene .setLive (currentScene .getLive ());
119517
+ scene .setLive (currentScene .isLive ());
119455
119518
  }
119456
119519
 
119457
119520
  const parser = new Parser_XMLParser (scene);
@@ -119469,9 +119532,9 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119469
119532
 
119470
119533
  if (!external)
119471
119534
  {
119472
- currentScene .isLive () .addInterest ("setLive", scene);
119535
+ currentScene .getLive () .addInterest ("setLive", scene);
119473
119536
  scene .setExecutionContext (currentScene);
119474
- scene .setLive (currentScene .getLive ());
119537
+ scene .setLive (currentScene .isLive ());
119475
119538
  }
119476
119539
 
119477
119540
  const parser = new Parser_JSONParser (scene);
@@ -119663,14 +119726,14 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119663
119726
  beginUpdate: function ()
119664
119727
  {
119665
119728
  this .setLive (true);
119666
- this .getExecutionContext () .beginUpdate ();
119729
+ this .getExecutionContext () .setLive (true);
119667
119730
  this .advanceTime ();
119668
119731
  this .addBrowserEvent ();
119669
119732
  },
119670
119733
  endUpdate: function ()
119671
119734
  {
119672
119735
  this .setLive (false);
119673
- this .getExecutionContext () .endUpdate ();
119736
+ this .getExecutionContext () .setLive (false);
119674
119737
  },
119675
119738
  print: function ()
119676
119739
  {
@@ -119792,7 +119855,7 @@ const X3DBrowser_default_ = X3DBrowser;
119792
119855
  x_ite_Namespace.set ("x_ite/Browser/X3DBrowser", X3DBrowser_default_);
119793
119856
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
119794
119857
  ;// CONCATENATED MODULE: ./src/x_ite/Fallback.js
119795
- /* provided dependency */ var Fallback_$ = __webpack_require__(869);
119858
+ /* provided dependency */ var Fallback_$ = __webpack_require__(329);
119796
119859
  /*******************************************************************************
119797
119860
  *
119798
119861
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119971,8 +120034,8 @@ const MicroTime_default_ = undefined;
119971
120034
  x_ite_Namespace.set ("standard/Time/MicroTime", MicroTime_default_);
119972
120035
  /* harmony default export */ const MicroTime = ((/* unused pure expression or super */ null && (MicroTime_default_)));
119973
120036
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
119974
- /* provided dependency */ var jquery_$ = __webpack_require__(869);
119975
- /* provided dependency */ var pako = __webpack_require__(645);
120037
+ /* provided dependency */ var jquery_$ = __webpack_require__(329);
120038
+ /* provided dependency */ var pako = __webpack_require__(881);
119976
120039
  jquery_$.decodeText = function (input)
119977
120040
  {
119978
120041
  if (typeof input === "string")
@@ -120004,14 +120067,14 @@ const jquery_default_ = jquery_$;
120004
120067
  x_ite_Namespace.set ("lib/jquery", jquery_default_);
120005
120068
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
120006
120069
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
120007
- /* provided dependency */ var libtess_libtess = __webpack_require__(23);
120070
+ /* provided dependency */ var libtess_libtess = __webpack_require__(355);
120008
120071
  const libtess_default_ = libtess_libtess;
120009
120072
  ;
120010
120073
 
120011
120074
  x_ite_Namespace.set ("lib/libtess", libtess_default_);
120012
120075
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
120013
120076
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
120014
- /* provided dependency */ var X3D_$ = __webpack_require__(869);
120077
+ /* provided dependency */ var X3D_$ = __webpack_require__(329);
120015
120078
  /*******************************************************************************
120016
120079
  *
120017
120080
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120267,7 +120330,7 @@ const X3D_default_ = X3D;
120267
120330
  x_ite_Namespace.set ("x_ite/X3D", X3D_default_);
120268
120331
  /* harmony default export */ const x_ite_X3D = (X3D_default_);
120269
120332
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
120270
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(869);
120333
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(329);
120271
120334
  /*******************************************************************************
120272
120335
  *
120273
120336
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120546,7 +120609,7 @@ x_ite_Namespace.set ("shim", shim_default_);
120546
120609
 
120547
120610
  // Assign X3D to global namespace.
120548
120611
 
120549
- window [Symbol .for ("X_ITE.X3D-8.6.13")] = x_ite_X3D;
120612
+ window [Symbol .for ("X_ITE.X3D-8.6.14")] = x_ite_X3D;
120550
120613
 
120551
120614
  x_ite_X3DCanvasElement.define ();
120552
120615