x_ite 9.2.7 → 9.3.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (50) 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 +16 -16
  4. package/dist/assets/components/CADGeometry.min.js +1 -1
  5. package/dist/assets/components/CubeMapTexturing.js +25 -25
  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 +19 -19
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +36 -36
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +23 -23
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  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 +23 -23
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +27 -27
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +19 -19
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +20 -20
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +38 -38
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +24 -24
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjection.js +18 -42
  34. package/dist/assets/components/TextureProjection.min.js +1 -1
  35. package/dist/assets/components/Texturing3D.js +30 -30
  36. package/dist/assets/components/Texturing3D.min.js +1 -1
  37. package/dist/assets/components/VolumeRendering.js +19 -19
  38. package/dist/assets/components/VolumeRendering.min.js +1 -1
  39. package/dist/assets/components/X_ITE.js +8 -8
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/assets/lib/draco_decoder_gltf.js +1 -1
  42. package/dist/assets/lib/libktx.js +1 -1
  43. package/dist/x_ite.css +1 -1
  44. package/dist/x_ite.d.ts +10 -1
  45. package/dist/x_ite.js +1032 -543
  46. package/dist/x_ite.min.js +1 -1
  47. package/dist/x_ite.min.mjs +1 -1
  48. package/dist/x_ite.mjs +1032 -543
  49. package/dist/x_ite.zip +0 -0
  50. package/package.json +2 -2
package/dist/x_ite.mjs CHANGED
@@ -1,9 +1,9 @@
1
- /* X_ITE v9.2.7 */var __webpack_modules__ = ({
1
+ /* X_ITE v9.3.1 */var __webpack_modules__ = ({
2
2
 
3
- /***/ 548:
3
+ /***/ 773:
4
4
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
5
5
 
6
- /* provided dependency */ var jQuery = __webpack_require__(368);
6
+ /* provided dependency */ var jQuery = __webpack_require__(37);
7
7
  /**
8
8
  * @preserve jquery.fullscreen 1.1.5
9
9
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -199,7 +199,7 @@ installFullScreenHandlers();
199
199
 
200
200
  /***/ }),
201
201
 
202
- /***/ 214:
202
+ /***/ 693:
203
203
  /***/ ((module, exports, __webpack_require__) => {
204
204
 
205
205
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -213,7 +213,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
213
213
  (function (factory) {
214
214
  if ( true ) {
215
215
  // AMD. Register as an anonymous module.
216
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(368)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
216
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(37)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
217
217
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
218
218
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
219
219
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -424,7 +424,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
424
424
 
425
425
  /***/ }),
426
426
 
427
- /***/ 368:
427
+ /***/ 37:
428
428
  /***/ (function(module, exports) {
429
429
 
430
430
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11148,7 +11148,7 @@ return jQuery;
11148
11148
 
11149
11149
  /***/ }),
11150
11150
 
11151
- /***/ 125:
11151
+ /***/ 214:
11152
11152
  /***/ ((module) => {
11153
11153
 
11154
11154
  /**
@@ -15927,7 +15927,7 @@ if (true) {
15927
15927
 
15928
15928
  /***/ }),
15929
15929
 
15930
- /***/ 300:
15930
+ /***/ 465:
15931
15931
  /***/ (function(__unused_webpack_module, exports) {
15932
15932
 
15933
15933
 
@@ -19172,7 +19172,7 @@ if (true) {
19172
19172
 
19173
19173
  /***/ }),
19174
19174
 
19175
- /***/ 939:
19175
+ /***/ 790:
19176
19176
  /***/ (function(module, exports) {
19177
19177
 
19178
19178
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20299,7 +20299,7 @@ Object .defineProperty (Namespace, "add",
20299
20299
  }
20300
20300
  else
20301
20301
  {
20302
- const X3D = window [Symbol .for ("X_ITE.X3D-9.2.7")];
20302
+ const X3D = window [Symbol .for ("X_ITE.X3D-9.3.1")];
20303
20303
 
20304
20304
  if (X3D)
20305
20305
  X3D [name] = module;
@@ -20529,10 +20529,12 @@ const Algorithm =
20529
20529
  {
20530
20530
  radians (value)
20531
20531
  {
20532
+ // Convert degrees to radians.
20532
20533
  return value * (Math .PI / 180);
20533
20534
  },
20534
20535
  degrees (value)
20535
20536
  {
20537
+ // Convert radians to degrees.
20536
20538
  return value * (180 / Math .PI);
20537
20539
  },
20538
20540
  random (min, max)
@@ -21798,15 +21800,11 @@ if (DEVELOPMENT)
21798
21800
  },
21799
21801
  addEvent ()
21800
21802
  {
21801
- this .setModificationTime (Date .now ());
21802
-
21803
21803
  for (const parent of this [_parents] .values ())
21804
21804
  parent .deref () ?.addEvent (this);
21805
21805
  },
21806
21806
  addEventObject (field, event)
21807
21807
  {
21808
- this .setModificationTime (Date .now ());
21809
-
21810
21808
  for (const parent of this [_parents] .values ())
21811
21809
  parent .deref () ?.addEventObject (this, event);
21812
21810
  },
@@ -21924,15 +21922,11 @@ else
21924
21922
  },
21925
21923
  addEvent ()
21926
21924
  {
21927
- this .setModificationTime (Date .now ());
21928
-
21929
21925
  for (const parent of this [_parents])
21930
21926
  parent .addEvent (this);
21931
21927
  },
21932
21928
  addEventObject (field, event)
21933
21929
  {
21934
- this .setModificationTime (Date .now ());
21935
-
21936
21930
  for (const parent of this [_parents])
21937
21931
  parent .addEventObject (this, event);
21938
21932
  },
@@ -22994,8 +22988,8 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
22994
22988
 
22995
22989
  for (const field of this [_fieldInterests])
22996
22990
  {
22997
- if (event .has (field))
22998
- continue;
22991
+ if (event .has (field))
22992
+ continue;
22999
22993
 
23000
22994
  if (first)
23001
22995
  {
@@ -27902,6 +27896,44 @@ Object .assign (Rotation4 .prototype,
27902
27896
  this .update ();
27903
27897
  return this;
27904
27898
  },
27899
+ /**
27900
+ * Straightens the rotation so that the x-axis of this rotation is parallel to the plane spawned by upVector.
27901
+ */
27902
+ straighten: (() =>
27903
+ {
27904
+ const
27905
+ localXAxis = new Numbers_Vector3 (0, 0, 0),
27906
+ localZAxis = new Numbers_Vector3 (0, 0, 0),
27907
+ upNormal = new Numbers_Vector3 (0, 0, 0),
27908
+ rotation = new Rotation4 ();
27909
+
27910
+ return function (upVector = Numbers_Vector3 .yAxis)
27911
+ {
27912
+ upNormal .assign (upVector) .normalize ();
27913
+
27914
+ this .multVecRot (localXAxis .assign (Numbers_Vector3 .xAxis) .negate ());
27915
+ this .multVecRot (localZAxis .assign (Numbers_Vector3 .zAxis));
27916
+
27917
+ // If viewer looks along up vector.
27918
+ if (Math .abs (localZAxis .dot (upNormal)) >= 1)
27919
+ return this;
27920
+
27921
+ const newXAxis = localZAxis .cross (upNormal) .normalize ();
27922
+
27923
+ if (newXAxis .dot (localXAxis) <= -1)
27924
+ {
27925
+ rotation .setAxisAngle (Numbers_Vector3 .zAxis, Math .PI);
27926
+
27927
+ return this .multLeft (rotation);
27928
+ }
27929
+ else
27930
+ {
27931
+ rotation .setFromToVec (localXAxis, newXAxis);
27932
+
27933
+ return this .multRight (rotation);
27934
+ }
27935
+ };
27936
+ })(),
27905
27937
  toString ()
27906
27938
  {
27907
27939
  return this [_x] + " " +
@@ -29147,13 +29179,12 @@ const SFNode_handler =
29147
29179
  return value;
29148
29180
 
29149
29181
  const
29150
- node = target .getValue (),
29151
- field = node .getField (key),
29152
- accessType = field .getAccessType ();
29182
+ node = target .getValue (),
29183
+ field = node .getField (key);
29153
29184
 
29154
29185
  // Specification conform would be: accessType & X3DConstants .outputOnly.
29155
29186
  // But we allow read access to plain fields, too.
29156
- if (accessType === Base_X3DConstants .inputOnly)
29187
+ if (field .getAccessType () === Base_X3DConstants .inputOnly)
29157
29188
  return undefined;
29158
29189
 
29159
29190
  return field .valueOf ();
@@ -29353,6 +29384,15 @@ Object .assign (Object .setPrototypeOf (SFNode .prototype, Base_X3DField .protot
29353
29384
 
29354
29385
  throw new Error ("SFNode.getNodeType: node is null.");
29355
29386
  },
29387
+ getFieldDefinition (name)
29388
+ {
29389
+ const fieldDefinition = this .getFieldDefinitions () .get (name);
29390
+
29391
+ if (fieldDefinition)
29392
+ return fieldDefinition;
29393
+
29394
+ throw new Error (`Unknown field '${name}' in node class ${this .getNodeTypeName ()}.`);
29395
+ },
29356
29396
  getFieldDefinitions ()
29357
29397
  {
29358
29398
  const
@@ -30035,6 +30075,10 @@ Object .assign (Object .setPrototypeOf (SFRotation .prototype, Base_X3DField .pr
30035
30075
  {
30036
30076
  return new SFRotation (this .getValue () .copy () .slerp (rotation .getValue (), t));
30037
30077
  },
30078
+ straighten (upVector)
30079
+ {
30080
+ return new SFRotation (this .getValue () .copy () .straighten (upVector ?.getValue ()));
30081
+ },
30038
30082
  toStream (generator)
30039
30083
  {
30040
30084
  const { x, y, z, angle } = this .getValue ();
@@ -31052,7 +31096,7 @@ function X3DObjectArrayField (values)
31052
31096
  this [X3DObjectArrayField_proxy] = proxy;
31053
31097
 
31054
31098
  for (const value of values)
31055
- this .push (value);
31099
+ this .push (value);
31056
31100
 
31057
31101
  return proxy;
31058
31102
  }
@@ -31081,7 +31125,6 @@ Object .assign (Object .setPrototypeOf (X3DObjectArrayField .prototype, Base_X3D
31081
31125
  copy = target .create ();
31082
31126
 
31083
31127
  copy .assign (target);
31084
- copy .setModificationTime (0);
31085
31128
 
31086
31129
  return copy;
31087
31130
  },
@@ -31632,7 +31675,7 @@ function X3DTypedArrayField (values)
31632
31675
  }
31633
31676
 
31634
31677
  for (const value of values)
31635
- this .push (value);
31678
+ this .push (value);
31636
31679
 
31637
31680
  return proxy;
31638
31681
  }
@@ -31687,8 +31730,6 @@ Object .assign (Object .setPrototypeOf (X3DTypedArrayField .prototype, Base_X3DA
31687
31730
 
31688
31731
  Base_X3DArrayField .prototype .set .call (copy, copyArray);
31689
31732
 
31690
- copy .setModificationTime (0);
31691
-
31692
31733
  return copy;
31693
31734
  },
31694
31735
  equals (other)
@@ -32434,8 +32475,19 @@ function createValue (target, index, components, valueType)
32434
32475
  internalValue = value .getValue (),
32435
32476
  i = index * components;
32436
32477
 
32437
- value .addEvent = addEvent .bind (target, i, components, internalValue);
32438
- value .getValue = getValue .bind (target, i, components, internalValue);
32478
+ Object .defineProperties (value,
32479
+ {
32480
+ addEvent:
32481
+ {
32482
+ value: addEvent .bind (target, i, components, internalValue),
32483
+ configurable: true,
32484
+ },
32485
+ getValue:
32486
+ {
32487
+ value: getValue .bind (target, i, components, internalValue),
32488
+ configurable: true,
32489
+ },
32490
+ });
32439
32491
 
32440
32492
  return value;
32441
32493
  }
@@ -32563,8 +32615,6 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32563
32615
  for (const node of this .getValue ())
32564
32616
  copy .push (node .copy (instance));
32565
32617
 
32566
- copy .setModificationTime (0);
32567
-
32568
32618
  return copy;
32569
32619
  }
32570
32620
  else
@@ -32777,8 +32827,8 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32777
32827
  else
32778
32828
  {
32779
32829
  generator .string += '[';
32780
- generator .string += generator .TidySpace ();
32781
- generator .string += ']';
32830
+ generator .string += generator .TidySpace ();
32831
+ generator .string += ']';
32782
32832
  }
32783
32833
  },
32784
32834
  dispose ()
@@ -33130,10 +33180,10 @@ Object .assign (Object .setPrototypeOf (SFImage .prototype, Base_X3DField .proto
33130
33180
  },
33131
33181
  *[Symbol .iterator] ()
33132
33182
  {
33133
- yield this .width;
33134
- yield this .height;
33135
- yield this .comp;
33136
- yield this .array;
33183
+ yield this .width;
33184
+ yield this .height;
33185
+ yield this .comp;
33186
+ yield* this .array;
33137
33187
  },
33138
33188
  copy ()
33139
33189
  {
@@ -33641,10 +33691,25 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33641
33691
  {
33642
33692
  return this [_executionContext];
33643
33693
  },
33644
- setExecutionContext (value)
33694
+ setExecutionContext (executionContext)
33645
33695
  {
33696
+ // Disconnect interests.
33697
+
33698
+ this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
33699
+ this [_executionContext] .getLive () .removeInterest (_set_live__, this);
33700
+
33646
33701
  // Currently only useful for Scene.
33647
- this [_executionContext] = value;
33702
+ this [_executionContext] = executionContext;
33703
+
33704
+ // Connect interests.
33705
+
33706
+ if (this .getOuterNode ?.())
33707
+ this .getOuterNode () .getLive () .addInterest (_set_live__, this);
33708
+
33709
+ else if (this [_executionContext] !== this)
33710
+ this [_executionContext] .getLive () .addInterest (_set_live__, this);
33711
+
33712
+ this [_set_live__] ();
33648
33713
  },
33649
33714
  addType (value)
33650
33715
  {
@@ -33727,7 +33792,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33727
33792
  /// Sets the own live state of this node. Setting the live state to false
33728
33793
  /// temporarily disables this node completely.
33729
33794
 
33730
- this [_live] = value .valueOf ();
33795
+ this [_live] = !!value .valueOf ();
33731
33796
 
33732
33797
  this [_set_live__] ();
33733
33798
  },
@@ -33856,7 +33921,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33856
33921
  {
33857
33922
  get () { return field; },
33858
33923
  set (value) { field .setValue (value); },
33859
- configurable: true,
33924
+ configurable: true,
33860
33925
  });
33861
33926
  },
33862
33927
  addAlias (alias, field)
@@ -34028,7 +34093,10 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34028
34093
  addEvent (field)
34029
34094
  {
34030
34095
  if (field .isTainted ())
34096
+ {
34097
+ field .setModificationTime (Date .now ());
34031
34098
  return;
34099
+ }
34032
34100
 
34033
34101
  // if (this .getTypeName () === "HAnimMotion")
34034
34102
  // {
@@ -34044,6 +34112,8 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34044
34112
  {
34045
34113
  const browser = this [_browser];
34046
34114
 
34115
+ field .setModificationTime (Date .now ());
34116
+
34047
34117
  // Register for processEvent
34048
34118
 
34049
34119
  browser .addTaintedField (field, event);
@@ -34164,7 +34234,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34164
34234
  x_ite_Namespace .add ("X3DBaseNode", "x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34165
34235
  /* harmony default export */ const Base_X3DBaseNode = (X3DBaseNode_default_);
34166
34236
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34167
- /* provided dependency */ var $ = __webpack_require__(368);
34237
+ /* provided dependency */ var $ = __webpack_require__(37);
34168
34238
  /*******************************************************************************
34169
34239
  *
34170
34240
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34301,7 +34371,7 @@ x_ite_Namespace .add ("Legacy", "x_ite/Browser/Legacy", Legacy_default_);
34301
34371
  *
34302
34372
  ******************************************************************************/
34303
34373
 
34304
- const BROWSER_VERSION_default_ = "9.2.7";
34374
+ const BROWSER_VERSION_default_ = "9.3.1";
34305
34375
  ;
34306
34376
 
34307
34377
  x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSION_default_);
@@ -34358,6 +34428,9 @@ x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSIO
34358
34428
 
34359
34429
 
34360
34430
 
34431
+
34432
+ const _metaDataCallbacks = Symbol ();
34433
+
34361
34434
  function X3DNode (executionContext)
34362
34435
  {
34363
34436
  Base_X3DBaseNode .call (this, executionContext);
@@ -34540,6 +34613,350 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34540
34613
  return null;
34541
34614
  },
34542
34615
  traverse () { },
34616
+ hasMetaData (path)
34617
+ {
34618
+ const names = path .split ("/");
34619
+
34620
+ if (names .length < 2)
34621
+ return false;
34622
+
34623
+ const
34624
+ last = names .pop (),
34625
+ metadataSet = this .getMetadataSet (names),
34626
+ metadataObject = metadataSet ?.getValue () .getMetaValue (last);
34627
+
34628
+ return !!metadataObject;
34629
+ },
34630
+ getMetaData (path, field)
34631
+ {
34632
+ const names = path .split ("/");
34633
+
34634
+ if (names .length < 2)
34635
+ return;
34636
+
34637
+ const
34638
+ last = names .pop (),
34639
+ metadataSet = this .getMetadataSet (names),
34640
+ metadataObject = metadataSet ?.getValue () .getMetaValue (last);
34641
+
34642
+ if (field instanceof Base_X3DField)
34643
+ {
34644
+ if (!metadataObject)
34645
+ return field;
34646
+
34647
+ switch (field .getType ())
34648
+ {
34649
+ case Base_X3DConstants .SFBool:
34650
+ case Base_X3DConstants .SFDouble:
34651
+ case Base_X3DConstants .SFFloat:
34652
+ case Base_X3DConstants .SFInt32:
34653
+ case Base_X3DConstants .SFString:
34654
+ case Base_X3DConstants .SFTime:
34655
+ {
34656
+ field .setValue (metadataObject .value [0]);
34657
+ break;
34658
+ }
34659
+ case Base_X3DConstants .SFColor:
34660
+ case Base_X3DConstants .SFColorRGBA:
34661
+ case Base_X3DConstants .SFMatrix3d:
34662
+ case Base_X3DConstants .SFMatrix3f:
34663
+ case Base_X3DConstants .SFMatrix4d:
34664
+ case Base_X3DConstants .SFMatrix4f:
34665
+ case Base_X3DConstants .SFRotation:
34666
+ case Base_X3DConstants .SFVec2d:
34667
+ case Base_X3DConstants .SFVec2f:
34668
+ case Base_X3DConstants .SFVec3d:
34669
+ case Base_X3DConstants .SFVec3f:
34670
+ case Base_X3DConstants .SFVec4d:
34671
+ case Base_X3DConstants .SFVec4f:
34672
+ {
34673
+ const value = metadataObject .value;
34674
+
34675
+ let i = 0;
34676
+
34677
+ for (const key in field)
34678
+ field [key] = value [i ++];
34679
+
34680
+ break;
34681
+ }
34682
+ case Base_X3DConstants .SFImage:
34683
+ {
34684
+ const
34685
+ value = metadataObject .value,
34686
+ array = field .array;
34687
+
34688
+ field .width = value [0];
34689
+ field .height = value [1];
34690
+ field .comp = value [2];
34691
+
34692
+ const l = array .length;
34693
+
34694
+ for (let i = 0; i < l; ++ i)
34695
+ array [i] = value [3 + i];
34696
+
34697
+ break;
34698
+ }
34699
+ case Base_X3DConstants .SFNode:
34700
+ case Base_X3DConstants .MFNode:
34701
+ {
34702
+ throw new Error ("SFNode and MFNode are not supported as metadata value.");
34703
+ }
34704
+ case Base_X3DConstants .MFBool:
34705
+ case Base_X3DConstants .MFDouble:
34706
+ case Base_X3DConstants .MFFloat:
34707
+ case Base_X3DConstants .MFInt32:
34708
+ case Base_X3DConstants .MFString:
34709
+ case Base_X3DConstants .MFTime:
34710
+ {
34711
+ field .length = 0;
34712
+
34713
+ for (const v of metadataObject .value)
34714
+ field .push (v);
34715
+
34716
+ break;
34717
+ }
34718
+ case Base_X3DConstants .MFColor:
34719
+ case Base_X3DConstants .MFColorRGBA:
34720
+ case Base_X3DConstants .MFMatrix3d:
34721
+ case Base_X3DConstants .MFMatrix3f:
34722
+ case Base_X3DConstants .MFMatrix4d:
34723
+ case Base_X3DConstants .MFMatrix4f:
34724
+ case Base_X3DConstants .MFRotation:
34725
+ case Base_X3DConstants .MFVec2d:
34726
+ case Base_X3DConstants .MFVec2f:
34727
+ case Base_X3DConstants .MFVec3d:
34728
+ case Base_X3DConstants .MFVec3f:
34729
+ case Base_X3DConstants .MFVec4d:
34730
+ case Base_X3DConstants .MFVec4f:
34731
+ {
34732
+ const
34733
+ value = metadataObject .value,
34734
+ length = value .length;
34735
+
34736
+ field .length = 0;
34737
+
34738
+ for (let i = 0; i < length;)
34739
+ {
34740
+ const f = field [field .length];
34741
+
34742
+ for (const key in f)
34743
+ f [key] = value [i ++];
34744
+ }
34745
+
34746
+ break;
34747
+ }
34748
+ case Base_X3DConstants .MFImage:
34749
+ {
34750
+ const
34751
+ value = metadataObject .value,
34752
+ length = value .length;
34753
+
34754
+ field .length = 0;
34755
+
34756
+ for (let i = 0; i < length;)
34757
+ {
34758
+ const
34759
+ f = field [field .length],
34760
+ a = f .array;
34761
+
34762
+ f .width = value [i ++];
34763
+ f .height = value [i ++];
34764
+ f .comp = value [i ++];
34765
+
34766
+ const l = a .length;
34767
+
34768
+ for (let k = 0; k < l; ++ k)
34769
+ a [k] = value [i ++];
34770
+ }
34771
+
34772
+ break;
34773
+ }
34774
+ }
34775
+
34776
+ return field;
34777
+ }
34778
+
34779
+ return metadataObject ? Array .from (metadataObject .value) : [ ];
34780
+ },
34781
+ setMetaData (path, value)
34782
+ {
34783
+ const names = path .split ("/");
34784
+
34785
+ if (names .length < 2)
34786
+ return;
34787
+
34788
+ const
34789
+ last = names .pop (),
34790
+ metadataSet = this .getMetadataSet (names, true);
34791
+
34792
+ if (value instanceof Base_X3DField)
34793
+ {
34794
+ const field = value;
34795
+
34796
+ switch (value .getType ())
34797
+ {
34798
+ case Base_X3DConstants .SFBool:
34799
+ case Base_X3DConstants .SFDouble:
34800
+ case Base_X3DConstants .SFFloat:
34801
+ case Base_X3DConstants .SFInt32:
34802
+ case Base_X3DConstants .SFString:
34803
+ case Base_X3DConstants .SFTime:
34804
+ {
34805
+ value = [field .valueOf ()];
34806
+ break;
34807
+ }
34808
+ case Base_X3DConstants .SFNode:
34809
+ case Base_X3DConstants .MFNode:
34810
+ throw new Error ("SFNode and MFNode are not supported as metadata value.");
34811
+ default:
34812
+ {
34813
+ value = Array .from (field, f => f instanceof Base_X3DField ? Array .from (f) : f) .flat ();
34814
+ break;
34815
+ }
34816
+ }
34817
+
34818
+ switch (field .getType ())
34819
+ {
34820
+ case Base_X3DConstants .SFBool:
34821
+ case Base_X3DConstants .MFBool:
34822
+ value .type = "boolean";
34823
+ break;
34824
+ case Base_X3DConstants .SFDouble:
34825
+ case Base_X3DConstants .SFMatrix3d:
34826
+ case Base_X3DConstants .SFMatrix4d:
34827
+ case Base_X3DConstants .SFRotation:
34828
+ case Base_X3DConstants .SFTime:
34829
+ case Base_X3DConstants .SFVec2d:
34830
+ case Base_X3DConstants .SFVec3d:
34831
+ case Base_X3DConstants .SFVec4d:
34832
+ case Base_X3DConstants .MFDouble:
34833
+ case Base_X3DConstants .MFMatrix3d:
34834
+ case Base_X3DConstants .MFMatrix4d:
34835
+ case Base_X3DConstants .MFRotation:
34836
+ case Base_X3DConstants .MFTime:
34837
+ case Base_X3DConstants .MFVec2d:
34838
+ case Base_X3DConstants .MFVec3d:
34839
+ case Base_X3DConstants .MFVec4d:
34840
+ value .type = "double";
34841
+ break;
34842
+ case Base_X3DConstants .SFColor:
34843
+ case Base_X3DConstants .SFColorRGBA:
34844
+ case Base_X3DConstants .SFFloat:
34845
+ case Base_X3DConstants .SFMatrix3f:
34846
+ case Base_X3DConstants .SFMatrix4f:
34847
+ case Base_X3DConstants .SFVec2f:
34848
+ case Base_X3DConstants .SFVec3f:
34849
+ case Base_X3DConstants .SFVec4f:
34850
+ case Base_X3DConstants .MFColor:
34851
+ case Base_X3DConstants .MFColorRGBA:
34852
+ case Base_X3DConstants .MFFloat:
34853
+ case Base_X3DConstants .MFMatrix3f:
34854
+ case Base_X3DConstants .MFMatrix4f:
34855
+ case Base_X3DConstants .MFVec2f:
34856
+ case Base_X3DConstants .MFVec3f:
34857
+ case Base_X3DConstants .MFVec4f:
34858
+ value .type = "float";
34859
+ break;
34860
+ case Base_X3DConstants .SFInt32:
34861
+ case Base_X3DConstants .SFImage:
34862
+ case Base_X3DConstants .MFInt32:
34863
+ case Base_X3DConstants .MFImage:
34864
+ value .type = "integer";
34865
+ break;
34866
+ case Base_X3DConstants .SFString:
34867
+ case Base_X3DConstants .MFString:
34868
+ value .type = "string";
34869
+ break;
34870
+ }
34871
+ }
34872
+
34873
+ metadataSet .getValue () .setMetaValue (last, value);
34874
+
34875
+ this .processMetaDataCallback (path);
34876
+ },
34877
+ removeMetaData (path)
34878
+ {
34879
+ const names = path .split ("/");
34880
+
34881
+ if (names .length < 2)
34882
+ return;
34883
+
34884
+ function removeMetaData (metadataSet, names)
34885
+ {
34886
+ if (!metadataSet)
34887
+ return false;
34888
+
34889
+ const name = names .shift ();
34890
+
34891
+ if (!names .length || removeMetaData (metadataSet .getValue () .getMetadataObject ("MetadataSet", name), names))
34892
+ {
34893
+ metadataSet .getValue () .removeMetaValue (name);
34894
+ }
34895
+
34896
+ return !metadataSet .value .length;
34897
+ }
34898
+
34899
+ if (removeMetaData (this .getMetadataSet ([names .shift ()]), names))
34900
+ this ._metadata = null;
34901
+ },
34902
+ getMetadataSet (names, create = false)
34903
+ {
34904
+ const name = names .shift ();
34905
+
34906
+ let metadataSet = this ._metadata .valueOf ();
34907
+
34908
+ if (metadataSet ?.getNodeTypeName () !== "MetadataSet" || metadataSet ?.name !== name)
34909
+ {
34910
+ if (!create)
34911
+ return null;
34912
+
34913
+ this ._metadata = this .getExecutionContext () .createNode ("MetadataSet");
34914
+ metadataSet = this ._metadata .valueOf ();
34915
+
34916
+ metadataSet .reference = this .getBrowser () .getBrowserOption ("MetadataReference");
34917
+ metadataSet .name = name;
34918
+ }
34919
+
34920
+ for (const name of names)
34921
+ metadataSet = metadataSet .getValue () .getMetadataObject ("MetadataSet", name, create);
34922
+
34923
+ return metadataSet;
34924
+ },
34925
+ [_metaDataCallbacks]: new Map (),
34926
+ addMetaDataCallback (key, path, callback)
34927
+ {
34928
+ if (!this .hasOwnProperty (_metaDataCallbacks))
34929
+ this [_metaDataCallbacks] = new Map ();
34930
+
34931
+ let map = this [_metaDataCallbacks] .get (path);
34932
+
34933
+ if (!map)
34934
+ this [_metaDataCallbacks] .set (path, map = new Map ());
34935
+
34936
+ map .set (key, callback);
34937
+ },
34938
+ removeMetaDataCallback (key, path)
34939
+ {
34940
+ const map = this [_metaDataCallbacks] .get (path);
34941
+
34942
+ if (!map)
34943
+ return;
34944
+
34945
+ map .delete (key);
34946
+
34947
+ if (map .size === 0)
34948
+ this [_metaDataCallbacks] .delete (path);
34949
+ },
34950
+ processMetaDataCallback (path)
34951
+ {
34952
+ const map = this [_metaDataCallbacks] .get (path);
34953
+
34954
+ if (!map)
34955
+ return;
34956
+
34957
+ for (const callback of map .values ())
34958
+ callback ();
34959
+ },
34543
34960
  toStream (generator)
34544
34961
  {
34545
34962
  generator .string += this .getTypeName () + " { }";
@@ -36406,6 +36823,84 @@ Object .assign (Object .setPrototypeOf (MetadataSet .prototype, Core_X3DNode .pr
36406
36823
 
36407
36824
  return Core_X3DNode .prototype .getContainerField .call (this);
36408
36825
  },
36826
+ getMetaValue (name)
36827
+ {
36828
+ return this ._value .find (node => node .name === name);
36829
+ },
36830
+ setMetaValue (name, value)
36831
+ {
36832
+ if (!Array .isArray (value))
36833
+ value = [value];
36834
+
36835
+ switch (value .type ?? (typeof value [0]))
36836
+ {
36837
+ case "boolean":
36838
+ {
36839
+ this .getMetadataObject ("MetadataBoolean", name, true) .value = value;
36840
+ return;
36841
+ }
36842
+ case "number":
36843
+ {
36844
+ if (value .every (v => Number .isInteger (v)))
36845
+ this .getMetadataObject ("MetadataInteger", name, true) .value = value;
36846
+ else
36847
+ this .getMetadataObject ("MetadataDouble", name, true) .value = value;
36848
+
36849
+ return;
36850
+ }
36851
+ case "double":
36852
+ {
36853
+ this .getMetadataObject ("MetadataDouble", name, true) .value = value;
36854
+ break;
36855
+ }
36856
+ case "float":
36857
+ {
36858
+ this .getMetadataObject ("MetadataFloat", name, true) .value = value;
36859
+ break;
36860
+ }
36861
+ case "integer":
36862
+ {
36863
+ this .getMetadataObject ("MetadataInteger", name, true) .value = value;
36864
+ break;
36865
+ }
36866
+ case "string":
36867
+ {
36868
+ this .getMetadataObject ("MetadataString", name, true) .value = value;
36869
+ return;
36870
+ }
36871
+ }
36872
+ },
36873
+ removeMetaValue (name)
36874
+ {
36875
+ const index = this ._value .findIndex (node => node .name === name);
36876
+
36877
+ if (index < 0)
36878
+ return;
36879
+
36880
+ this ._value .splice (index, 1);
36881
+ },
36882
+ getMetadataObject (typeName, name, create = false)
36883
+ {
36884
+ let metadata = this .getMetaValue (name);
36885
+
36886
+ if (metadata ?.getNodeTypeName () === typeName)
36887
+ return metadata;
36888
+
36889
+ if (!create)
36890
+ return null;
36891
+
36892
+ if (metadata)
36893
+ this .removeMetaValue (name);
36894
+
36895
+ metadata = this .getExecutionContext () .createNode (typeName);
36896
+
36897
+ metadata .reference = "";
36898
+ metadata .name = name;
36899
+
36900
+ this ._value .push (metadata);
36901
+
36902
+ return metadata;
36903
+ },
36409
36904
  dispose ()
36410
36905
  {
36411
36906
  Core_X3DMetadataObject .prototype .dispose .call (this);
@@ -36646,7 +37141,7 @@ Object .assign (Object .setPrototypeOf (X3DChildNode .prototype, Core_X3DNode .p
36646
37141
  {
36647
37142
  setCameraObject (value)
36648
37143
  {
36649
- if (value !== this ._isCameraObject .getValue ())
37144
+ if (!!value !== this ._isCameraObject .getValue ())
36650
37145
  this ._isCameraObject = value;
36651
37146
  },
36652
37147
  isCameraObject ()
@@ -36655,7 +37150,7 @@ Object .assign (Object .setPrototypeOf (X3DChildNode .prototype, Core_X3DNode .p
36655
37150
  },
36656
37151
  setPickableObject (value)
36657
37152
  {
36658
- if (value !== this ._isPickableObject .getValue ())
37153
+ if (!!value !== this ._isPickableObject .getValue ())
36659
37154
  this ._isPickableObject = value;
36660
37155
  },
36661
37156
  isPickableObject ()
@@ -36833,13 +37328,20 @@ Object .assign (Object .setPrototypeOf (WorldInfo .prototype, Core_X3DInfoNode .
36833
37328
  {
36834
37329
  Core_X3DInfoNode .prototype .initialize .call (this);
36835
37330
 
36836
- this .getExecutionContext () .addWorldInfo (this);
37331
+ if (this .isLive ())
37332
+ this .getExecutionContext () .addWorldInfo (this);
36837
37333
  },
36838
- dispose ()
37334
+ setLive (value)
36839
37335
  {
36840
- this .getExecutionContext () .removeWorldInfo (this);
37336
+ if (!!value .valueOf () === this .isLive ())
37337
+ return;
36841
37338
 
36842
- Core_X3DInfoNode .prototype .dispose .call (this);
37339
+ Core_X3DInfoNode .prototype .setLive .call (this, value);
37340
+
37341
+ if (this .isLive ())
37342
+ this .getExecutionContext () .addWorldInfo (this);
37343
+ else
37344
+ this .getExecutionContext () .removeWorldInfo (this);
36843
37345
  },
36844
37346
  });
36845
37347
 
@@ -38445,7 +38947,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
38445
38947
  x_ite_Namespace .add ("X3DProtoDeclaration", "x_ite/Prototype/X3DProtoDeclaration", X3DProtoDeclaration_default_);
38446
38948
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (X3DProtoDeclaration_default_);
38447
38949
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38448
- /* provided dependency */ var X3DParser_$ = __webpack_require__(368);
38950
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(37);
38449
38951
  /*******************************************************************************
38450
38952
  *
38451
38953
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38707,7 +39209,7 @@ const Expressions_default_ = Expressions;
38707
39209
  x_ite_Namespace .add ("Expressions", "x_ite/Parser/Expressions", Expressions_default_);
38708
39210
  /* harmony default export */ const Parser_Expressions = (Expressions_default_);
38709
39211
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
38710
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(368);
39212
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(37);
38711
39213
  /*******************************************************************************
38712
39214
  *
38713
39215
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38784,7 +39286,7 @@ const Grammar = Parser_Expressions ({
38784
39286
  Break: /\r?\n/g,
38785
39287
 
38786
39288
  // Header
38787
- Header: /^#(VRML|X3D) V(.*?) (utf8)(?:[ \t]+(.*?))?[ \t]*[\n\r]/gy,
39289
+ Header: /^#(VRML|X3D) V(.*?) (utf8)(?:[ \t]+(.*?))?[ \t]*[\n\r]/gy,
38788
39290
 
38789
39291
  // Keywords
38790
39292
  AS: /AS/gy,
@@ -41393,7 +41895,7 @@ const VRMLParser_default_ = VRMLParser;
41393
41895
  x_ite_Namespace .add ("VRMLParser", "x_ite/Parser/VRMLParser", VRMLParser_default_);
41394
41896
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41395
41897
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41396
- /* provided dependency */ var XMLParser_$ = __webpack_require__(368);
41898
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(37);
41397
41899
  /*******************************************************************************
41398
41900
  *
41399
41901
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42169,21 +42671,21 @@ Object .assign (Object .setPrototypeOf (XMLParser .prototype, Parser_X3DParser .
42169
42671
  }
42170
42672
  },
42171
42673
  scriptElement (element)
42172
- {
42173
- const
42174
- domParser = new DOMParser (),
42175
- scriptDocument = domParser .parseFromString (element .outerHTML, "application/xml"),
42176
- childNodes = scriptDocument .children [0] .childNodes;
42674
+ {
42675
+ const
42676
+ domParser = new DOMParser (),
42677
+ scriptDocument = domParser .parseFromString (element .outerHTML, "application/xml"),
42678
+ childNodes = scriptDocument .children [0] .childNodes;
42177
42679
 
42178
42680
  element .textContent = "// Content moved into childNodes.";
42179
42681
 
42180
- for (const childNode of childNodes)
42181
- {
42682
+ for (const childNode of childNodes)
42683
+ {
42182
42684
  // Add elements and cdata.
42183
- if (childNode .nodeType === 1 || childNode .nodeType === 4)
42685
+ if (childNode .nodeType === 1 || childNode .nodeType === 4)
42184
42686
  element .appendChild (childNode);
42185
- }
42186
- },
42687
+ }
42688
+ },
42187
42689
  routeElement (xmlElement)
42188
42690
  {
42189
42691
  try
@@ -43502,7 +44004,7 @@ const URLs_default_ = URLs;
43502
44004
  x_ite_Namespace .add ("URLs", "x_ite/Browser/Networking/URLs", URLs_default_);
43503
44005
  /* harmony default export */ const Networking_URLs = (URLs_default_);
43504
44006
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
43505
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(368);
44007
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(37);
43506
44008
  /*******************************************************************************
43507
44009
  *
43508
44010
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44241,7 +44743,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44241
44743
  [9729, "AVG_PIXEL"],
44242
44744
  ]);
44243
44745
 
44244
- const BoundaryModes = new Map ([
44746
+ const BoundaryModes = new Map ([
44245
44747
  [33071, "CLAMP_TO_EDGE"],
44246
44748
  [33648, "MIRRORED_REPEAT"],
44247
44749
  [10497, "REPEAT"],
@@ -46803,7 +47305,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
46803
47305
  x_ite_Namespace .add ("GLTF2Parser", "x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
46804
47306
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
46805
47307
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
46806
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(368);
47308
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(37);
46807
47309
  /*******************************************************************************
46808
47310
  *
46809
47311
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46955,7 +47457,7 @@ const GLB2Parser_default_ = GLB2Parser;
46955
47457
  x_ite_Namespace .add ("GLB2Parser", "x_ite/Parser/GLB2Parser", GLB2Parser_default_);
46956
47458
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
46957
47459
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
46958
- /* provided dependency */ var OBJParser_$ = __webpack_require__(368);
47460
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(37);
46959
47461
  /*******************************************************************************
46960
47462
  *
46961
47463
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47741,7 +48243,7 @@ Object .assign (MaterialParser .prototype,
47741
48243
  statements ()
47742
48244
  {
47743
48245
  while (this .statement ())
47744
- ;
48246
+ ;
47745
48247
  },
47746
48248
  statement ()
47747
48249
  {
@@ -50310,8 +50812,8 @@ const MatrixStack_default_ = MatrixStack;
50310
50812
  x_ite_Namespace .add ("MatrixStack", "standard/Math/Utility/MatrixStack", MatrixStack_default_);
50311
50813
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
50312
50814
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
50313
- /* provided dependency */ var SVGParser_$ = __webpack_require__(368);
50314
- /* provided dependency */ var libtess = __webpack_require__(125);
50815
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(37);
50816
+ /* provided dependency */ var libtess = __webpack_require__(214);
50315
50817
  /*******************************************************************************
50316
50818
  *
50317
50819
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -50677,7 +51179,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
50677
51179
  elements (xmlElement)
50678
51180
  {
50679
51181
  for (const childNode of xmlElement .childNodes)
50680
- this .element (childNode);
51182
+ this .element (childNode);
50681
51183
  },
50682
51184
  element (xmlElement)
50683
51185
  {
@@ -51422,7 +51924,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
51422
51924
  gradientChild (xmlElement, gradient)
51423
51925
  {
51424
51926
  if (xmlElement .nodeName === "stop")
51425
- return this .stopElement (xmlElement, gradient);
51927
+ return this .stopElement (xmlElement, gradient);
51426
51928
  },
51427
51929
  stopElement (xmlElement, gradient)
51428
51930
  {
@@ -51527,8 +52029,8 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
51527
52029
 
51528
52030
  if (name)
51529
52031
  {
51530
- scene .addNamedNode (scene .getUniqueName (name), node);
51531
- scene .addExportedNode (scene .getUniqueExportName (name), node);
52032
+ scene .addNamedNode (scene .getUniqueName (name), node);
52033
+ scene .addExportedNode (scene .getUniqueExportName (name), node);
51532
52034
  }
51533
52035
  },
51534
52036
  viewBoxAttribute (attribute, defaultValue)
@@ -52213,7 +52715,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
52213
52715
  }
52214
52716
 
52215
52717
  if (points .length > 2)
52216
- contours .push (Object .assign (points, { closed: false }));
52718
+ contours .push (Object .assign (points, { closed: false }));
52217
52719
 
52218
52720
  return !! contours .length;
52219
52721
  },
@@ -53079,7 +53581,7 @@ const SVGParser_default_ = SVGParser;
53079
53581
  x_ite_Namespace .add ("SVGParser", "x_ite/Parser/SVGParser", SVGParser_default_);
53080
53582
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
53081
53583
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
53082
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(368);
53584
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(37);
53083
53585
  /*******************************************************************************
53084
53586
  *
53085
53587
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53429,7 +53931,7 @@ const Plane3_default_ = Plane3;
53429
53931
  x_ite_Namespace .add ("Plane3", "standard/Math/Geometry/Plane3", Plane3_default_);
53430
53932
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
53431
53933
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
53432
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(125);
53934
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(214);
53433
53935
  /*******************************************************************************
53434
53936
  *
53435
53937
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -56711,15 +57213,15 @@ Object .assign (X3DRenderObject .prototype,
56711
57213
 
56712
57214
  //if (getBrowser () -> getBrowserOptions () -> animateStairWalks ())
56713
57215
  //{
56714
- // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
56715
- // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
57216
+ // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
57217
+ // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
56716
57218
  //
56717
- // Vector3f offset = Vector3f (0, step, 0) * up;
57219
+ // Vector3f offset = Vector3f (0, step, 0) * up;
56718
57220
  //
56719
- // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
56720
- // offset = translation;
57221
+ // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
57222
+ // offset = translation;
56721
57223
  //
56722
- // getViewpoint () -> positionOffset () += offset;
57224
+ // getViewpoint () -> positionOffset () += offset;
56723
57225
  //}
56724
57226
  //else
56725
57227
  viewpoint ._positionOffset = translation .add (viewpoint ._positionOffset .getValue ());
@@ -58042,7 +58544,7 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58042
58544
  }
58043
58545
  }
58044
58546
 
58045
- this .setCameraObject (!!(cameraObjects .length));
58547
+ this .setCameraObject (cameraObjects .length);
58046
58548
  },
58047
58549
  set_pickableObjects__ ()
58048
58550
  {
@@ -58069,7 +58571,7 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58069
58571
  },
58070
58572
  set_transformSensors__ ()
58071
58573
  {
58072
- this .setPickableObject (!!(this .getTransformSensors () .size || this .pickableSensorNodes .length || this .pickableObjects .length));
58574
+ this .setPickableObject (this .getTransformSensors () .size || this .pickableSensorNodes .length || this .pickableObjects .length);
58073
58575
  },
58074
58576
  set_displayNodes__ ()
58075
58577
  {
@@ -59504,7 +60006,7 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
59504
60006
  },
59505
60007
  setTransparent (value)
59506
60008
  {
59507
- if (value !== this ._transparent .getValue ())
60009
+ if (!!value !== this ._transparent .getValue ())
59508
60010
  this ._transparent = value;
59509
60011
  },
59510
60012
  isTransparent ()
@@ -60909,7 +61411,7 @@ Object .assign (Object .setPrototypeOf (X3DBackgroundNode .prototype, Core_X3DBi
60909
61411
  vAngle .push (Math .PI);
60910
61412
 
60911
61413
  if (vAngle .length === 2)
60912
- vAngle .splice (1, 0, (vAngle [0] + vAngle [1]) / 2)
61414
+ vAngle .splice (1, 0, (vAngle [0] + vAngle [1]) / 2)
60913
61415
 
60914
61416
  this .buildSphere (RADIUS, vAngle, this ._skyAngle, this ._skyColor, false);
60915
61417
  }
@@ -61477,7 +61979,7 @@ Object .assign (Object .setPrototypeOf (X3DTextureNode .prototype, Shape_X3DAppe
61477
61979
  {
61478
61980
  setTransparent (value)
61479
61981
  {
61480
- if (value !== this ._transparent .getValue ())
61982
+ if (!!value !== this ._transparent .getValue ())
61481
61983
  this ._transparent = value;
61482
61984
  },
61483
61985
  isTransparent ()
@@ -61942,7 +62444,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
61942
62444
  x_ite_Namespace .add ("X3DTexture2DNode", "x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
61943
62445
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
61944
62446
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
61945
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(368);
62447
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(37);
61946
62448
  /*******************************************************************************
61947
62449
  *
61948
62450
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -64742,32 +65244,10 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
64742
65244
 
64743
65245
  this .setInterpolators (this, relative);
64744
65246
  },
64745
- straightenHorizon: (() =>
65247
+ straightenHorizon (orientation, upVector = this .getUpVector (true))
64746
65248
  {
64747
- const
64748
- localXAxis = new Numbers_Vector3 (0, 0, 0),
64749
- localZAxis = new Numbers_Vector3 (0, 0, 0),
64750
- rotation = new Numbers_Rotation4 ();
64751
-
64752
- return function (orientation, upVector = this .getUpVector (true))
64753
- {
64754
- orientation .multVecRot (localXAxis .assign (Numbers_Vector3 .xAxis) .negate ());
64755
- orientation .multVecRot (localZAxis .assign (Numbers_Vector3 .zAxis));
64756
-
64757
- const vector = localZAxis .cross (upVector);
64758
-
64759
- // If viewer looks along the up vector.
64760
- if (Math .abs (localZAxis .dot (upVector)) >= 1)
64761
- return orientation;
64762
-
64763
- if (Math .abs (vector .dot (localXAxis)) >= 1)
64764
- return orientation;
64765
-
64766
- rotation .setFromToVec (localXAxis, vector);
64767
-
64768
- return orientation .multRight (rotation);
64769
- };
64770
- })(),
65249
+ return orientation .straighten (upVector);
65250
+ },
64771
65251
  viewAll (bbox)
64772
65252
  {
64773
65253
  bbox .copy () .multRight (this .modelMatrix .copy () .inverse ());
@@ -65274,16 +65754,16 @@ Object .assign (Object .setPrototypeOf (LayerSet .prototype, Core_X3DNode .proto
65274
65754
  {
65275
65755
  return this .activeLayerNode;
65276
65756
  },
65757
+ getLayer0 ()
65758
+ {
65759
+ return this .layerNode0;
65760
+ },
65277
65761
  setLayer0 (value)
65278
65762
  {
65279
65763
  this .layerNode0 = value;
65280
65764
 
65281
65765
  this .set_layers__ ();
65282
65766
  },
65283
- getLayer0 ()
65284
- {
65285
- return this .layerNode0;
65286
- },
65287
65767
  getLayers ()
65288
65768
  {
65289
65769
  return this .layerNodes;
@@ -65565,7 +66045,7 @@ const X3DWorld_default_ = X3DWorld;
65565
66045
  x_ite_Namespace .add ("X3DWorld", "x_ite/Execution/X3DWorld", X3DWorld_default_);
65566
66046
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
65567
66047
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
65568
- /* provided dependency */ var FileLoader_$ = __webpack_require__(368);
66048
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(37);
65569
66049
  /*******************************************************************************
65570
66050
  *
65571
66051
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -65681,9 +66161,7 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
65681
66161
  {
65682
66162
  const scene = this .browser .createScene ();
65683
66163
 
65684
- if (this .node instanceof Execution_X3DWorld)
65685
- scene .loader = this;
65686
- else
66164
+ if (!(this .node instanceof Execution_X3DWorld))
65687
66165
  scene .setExecutionContext (this .executionContext);
65688
66166
 
65689
66167
  scene .setWorldURL (new URL (worldURL, this .getBaseURL ()) .href);
@@ -65717,8 +66195,6 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
65717
66195
 
65718
66196
  scene ._initLoadCount .removeInterest ("set_initLoadCount__", this);
65719
66197
 
65720
- delete scene .loader;
65721
-
65722
66198
  // Wait for instances to be created.
65723
66199
 
65724
66200
  setTimeout (() =>
@@ -65979,10 +66455,7 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
65979
66455
  {
65980
66456
  Networking_X3DUrlObject .prototype .set_live__ .call (this);
65981
66457
 
65982
- if (this .checkLoadState () !== Base_X3DConstants .COMPLETE_STATE)
65983
- return;
65984
-
65985
- this [_scene] .setLive (this .getLive () .getValue ());
66458
+ this [_scene] ?.setLive (this .getLive () .getValue ());
65986
66459
  },
65987
66460
  canUserDefinedFields ()
65988
66461
  {
@@ -66027,6 +66500,9 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66027
66500
  },
66028
66501
  setInternalScene (value)
66029
66502
  {
66503
+ this [_scene] ?.setExecutionContext (this [_scene]);
66504
+ this [_scene] ?.setLive (false);
66505
+
66030
66506
  this [_scene] = value;
66031
66507
 
66032
66508
  const
@@ -66036,8 +66512,8 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66036
66512
  if (!proto)
66037
66513
  throw new Error ("PROTO not found");
66038
66514
 
66039
- this [_scene] .setLive (this .getLive () .getValue ());
66040
66515
  this [_scene] .setExecutionContext (this .getExecutionContext ());
66516
+ this [_scene] .setLive (this .getLive () .getValue ());
66041
66517
 
66042
66518
  this .setLoadState (Base_X3DConstants .COMPLETE_STATE);
66043
66519
  this .setProtoDeclaration (proto);
@@ -66496,7 +66972,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
66496
66972
  x_ite_Namespace .add ("ProtoDeclarationArray", "x_ite/Prototype/ProtoDeclarationArray", ProtoDeclarationArray_default_);
66497
66973
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (ProtoDeclarationArray_default_);
66498
66974
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
66499
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(368);
66975
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(37);
66500
66976
  /*******************************************************************************
66501
66977
  *
66502
66978
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67100,12 +67576,12 @@ x_ite_Namespace .add ("RouteArray", "x_ite/Routing/RouteArray", RouteArray_defau
67100
67576
 
67101
67577
 
67102
67578
  const
67103
- _namedNodes = Symbol (),
67104
- _importedNodes = Symbol (),
67105
- _protos = Symbol (),
67106
- _externprotos = Symbol (),
67107
- X3DExecutionContext_routes = Symbol (),
67108
- _outerNode = Symbol ();
67579
+ _outerNode = Symbol (),
67580
+ _namedNodes = Symbol (),
67581
+ _importedNodes = Symbol (),
67582
+ _protos = Symbol (),
67583
+ _externprotos = Symbol (),
67584
+ X3DExecutionContext_routes = Symbol ();
67109
67585
 
67110
67586
  function X3DExecutionContext (executionContext, outerNode = null, browser = executionContext .getBrowser ())
67111
67587
  {
@@ -67739,10 +68215,13 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
67739
68215
  },
67740
68216
  removeWorldInfo (worldInfoNode)
67741
68217
  {
67742
- for (let i = this ._worldInfos .length - 1; i >= 0; -- i)
68218
+ for (const [i, worldInfo] of this ._worldInfos .entries ())
67743
68219
  {
67744
- if (this ._worldInfos [i] .getValue () === worldInfoNode)
67745
- this ._worldInfos .splice (i, 1);
68220
+ if (worldInfo .getValue () !== worldInfoNode)
68221
+ continue;
68222
+
68223
+ this ._worldInfos .splice (i, 1);
68224
+ break;
67746
68225
  }
67747
68226
  },
67748
68227
  toVRMLStream (generator)
@@ -68129,7 +68608,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68129
68608
  if (!field .isInitializable ())
68130
68609
  continue;
68131
68610
 
68132
- // Is set during parse.
68611
+ // Is set during parse, or already changed by an route event.
68133
68612
  if (field .getModificationTime ())
68134
68613
  continue;
68135
68614
 
@@ -68216,7 +68695,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68216
68695
  if (oldField .getModificationTime () === 0)
68217
68696
  {
68218
68697
  oldField .assign (newField);
68219
- oldField .setModificationTime (0);
68698
+ oldField .setModificationTime (0);
68220
68699
  }
68221
68700
  }
68222
68701
 
@@ -74208,7 +74687,7 @@ Object .assign (Object .setPrototypeOf (ElevationGrid .prototype, Rendering_X3DG
74208
74687
 
74209
74688
  this .colorNode ?.addInterest ("requestRebuild", this);
74210
74689
 
74211
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
74690
+ this .setTransparent (this .colorNode ?.isTransparent ());
74212
74691
  },
74213
74692
  set_texCoord__ ()
74214
74693
  {
@@ -75397,7 +75876,7 @@ Object .assign (Object .setPrototypeOf (X3DComposedGeometryNode .prototype, Rend
75397
75876
 
75398
75877
  this .colorNode ?.addInterest ("requestRebuild", this);
75399
75878
 
75400
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
75879
+ this .setTransparent (this .colorNode ?.isTransparent ());
75401
75880
  },
75402
75881
  set_texCoord__ ()
75403
75882
  {
@@ -76704,11 +77183,11 @@ Object .assign (Object .setPrototypeOf (Switch .prototype, Grouping_X3DGroupingN
76704
77183
  },
76705
77184
  set_cameraObject__ ()
76706
77185
  {
76707
- this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
77186
+ this .setCameraObject (this .visibleNode ?.isCameraObject ());
76708
77187
  },
76709
77188
  set_transformSensors__ ()
76710
77189
  {
76711
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
77190
+ this .setPickableObject (this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ());
76712
77191
  },
76713
77192
  set_display__ ()
76714
77193
  {
@@ -80464,8 +80943,8 @@ x_ite_Namespace .add ("EnvironmentLight", "x_ite/Components/Lighting/Environment
80464
80943
  // Shadow map layout
80465
80944
  // Compact layout:
80466
80945
  //
80467
- // xzXZ Char: Axis
80468
- // yyYY Case: Sign
80946
+ // xzXZ Char: Axis
80947
+ // yyYY Case: Sign
80469
80948
 
80470
80949
  const orientationMatrices = [
80471
80950
  new Numbers_Matrix4 () .setRotation (new Numbers_Rotation4 (new Numbers_Vector3 ( 1, 0, 0), Numbers_Vector3 .zAxis)), // left
@@ -81720,11 +82199,11 @@ Object .assign (Object .setPrototypeOf (LOD .prototype, Grouping_X3DGroupingNode
81720
82199
  },
81721
82200
  set_cameraObject__ ()
81722
82201
  {
81723
- this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
82202
+ this .setCameraObject (this .visibleNode ?.isCameraObject ());
81724
82203
  },
81725
82204
  set_transformSensors__ ()
81726
82205
  {
81727
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
82206
+ this .setPickableObject (this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ());
81728
82207
  },
81729
82208
  set_display__ ()
81730
82209
  {
@@ -83406,19 +83885,19 @@ Object .assign (Object .setPrototypeOf (Inline .prototype, Core_X3DChildNode .pr
83406
83885
  },
83407
83886
  setInternalScene (scene)
83408
83887
  {
83888
+ this .scene .setExecutionContext (this .scene);
83409
83889
  this .scene .setLive (false);
83410
83890
  this .scene .rootNodes .removeFieldInterest (this .groupNode ._children);
83411
83891
 
83412
83892
  // Set new scene.
83413
83893
 
83414
83894
  this .scene = scene;
83415
- this .scene .setExecutionContext (this .getExecutionContext ());
83416
83895
 
83896
+ this .scene .setExecutionContext (this .getExecutionContext ());
83897
+ this .scene .setLive (this .getLive () .getValue ());
83417
83898
  this .scene .rootNodes .addFieldInterest (this .groupNode ._children);
83418
83899
  this .groupNode ._children = this .scene .rootNodes;
83419
83900
 
83420
- this .set_live__ ();
83421
-
83422
83901
  this .getBrowser () .addBrowserEvent ();
83423
83902
  },
83424
83903
  getInternalScene ()
@@ -85806,7 +86285,7 @@ Object .assign (Object .setPrototypeOf (X3DColorNode .prototype, Rendering_X3DGe
85806
86285
  {
85807
86286
  setTransparent (value)
85808
86287
  {
85809
- if (value !== this ._transparent .getValue ())
86288
+ if (!!value !== this ._transparent .getValue ())
85810
86289
  this ._transparent = value;
85811
86290
  },
85812
86291
  isTransparent ()
@@ -87174,7 +87653,7 @@ Object .assign (Object .setPrototypeOf (IndexedLineSet .prototype, Rendering_X3D
87174
87653
 
87175
87654
  this .colorNode ?.addInterest ("requestRebuild", this);
87176
87655
 
87177
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
87656
+ this .setTransparent (this .colorNode ?.isTransparent ());
87178
87657
  },
87179
87658
  set_normal__ ()
87180
87659
  {
@@ -87959,7 +88438,7 @@ Object .assign (Object .setPrototypeOf (LineSet .prototype, Rendering_X3DLineGeo
87959
88438
 
87960
88439
  this .colorNode ?.addInterest ("requestRebuild", this);
87961
88440
 
87962
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
88441
+ this .setTransparent (this .colorNode ?.isTransparent ());
87963
88442
  },
87964
88443
  set_normal__ ()
87965
88444
  {
@@ -89373,7 +89852,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
89373
89852
  x_ite_Namespace .add ("X3DShaderNode", "x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
89374
89853
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
89375
89854
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
89376
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(368);
89855
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(37);
89377
89856
  /*******************************************************************************
89378
89857
  *
89379
89858
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -92260,26 +92739,26 @@ const ShaderSource =
92260
92739
  {
92261
92740
  getSource (gl, browser, source, options)
92262
92741
  {
92263
- const
92264
- COMMENTS = "\\s+|/\\*[\\s\\S]*?\\*/|//.*?\\n",
92265
- LINE = "#line\\s+.*?\\n",
92266
- IF = "#if\\s+.*?\\n",
92267
- ELIF = "#elif\\s+.*?\\n",
92268
- IFDEF = "#ifdef\\s+.*?\\n",
92269
- IFNDEF = "#ifndef\\s+.*?\\n",
92270
- ELSE = "#else.*?\\n",
92271
- ENDIF = "#endif.*?\\n",
92272
- DEFINE = "#define\\s+(?:[^\\n\\\\]|\\\\[^\\r\\n]|\\\\\\r?\\n)*\\n",
92273
- UNDEF = "#undef\\s+.*?\\n",
92274
- PRAGMA = "#pragma\\s+.*?\\n",
92275
- PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
92276
- VERSION = "#version\\s+.*?\\n",
92277
- EXTENSION = "#extension\\s+.*?\\n",
92278
- ANY = ".*";
92279
-
92280
- const
92281
- GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
92282
- match = source .match (GLSL);
92742
+ const
92743
+ COMMENTS = "\\s+|/\\*[\\s\\S]*?\\*/|//.*?\\n",
92744
+ LINE = "#line\\s+.*?\\n",
92745
+ IF = "#if\\s+.*?\\n",
92746
+ ELIF = "#elif\\s+.*?\\n",
92747
+ IFDEF = "#ifdef\\s+.*?\\n",
92748
+ IFNDEF = "#ifndef\\s+.*?\\n",
92749
+ ELSE = "#else.*?\\n",
92750
+ ENDIF = "#endif.*?\\n",
92751
+ DEFINE = "#define\\s+(?:[^\\n\\\\]|\\\\[^\\r\\n]|\\\\\\r?\\n)*\\n",
92752
+ UNDEF = "#undef\\s+.*?\\n",
92753
+ PRAGMA = "#pragma\\s+.*?\\n",
92754
+ PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
92755
+ VERSION = "#version\\s+.*?\\n",
92756
+ EXTENSION = "#extension\\s+.*?\\n",
92757
+ ANY = ".*";
92758
+
92759
+ const
92760
+ GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
92761
+ match = source .match (GLSL);
92283
92762
 
92284
92763
  // const
92285
92764
  // COMMENTS = "\\s+|/\\*.*?\\*/|//.*?\\n",
@@ -95014,7 +95493,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95014
95493
  x_ite_Namespace .add ("ShaderCompiler", "x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
95015
95494
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
95016
95495
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95017
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(368);
95496
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(37);
95018
95497
  /*******************************************************************************
95019
95498
  *
95020
95499
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95642,7 +96121,7 @@ Object .assign (Object .setPrototypeOf (X3DAppearanceNode .prototype, Core_X3DNo
95642
96121
  {
95643
96122
  setTransparent (value)
95644
96123
  {
95645
- if (value !== this ._transparent .getValue ())
96124
+ if (!!value !== this ._transparent .getValue ())
95646
96125
  this ._transparent = value;
95647
96126
  },
95648
96127
  isTransparent ()
@@ -95671,7 +96150,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
95671
96150
  x_ite_Namespace .add ("X3DAppearanceNode", "x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
95672
96151
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
95673
96152
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
95674
- /* provided dependency */ var Appearance_$ = __webpack_require__(368);
96153
+ /* provided dependency */ var Appearance_$ = __webpack_require__(37);
95675
96154
  /*******************************************************************************
95676
96155
  *
95677
96156
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95751,8 +96230,8 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
95751
96230
 
95752
96231
  browser .getRenderingProperties () ._ContentScale .addInterest ("set_contentScale__", this);
95753
96232
 
95754
- this ._alphaMode .addInterest ("set_alphaMode__", this);
95755
- this ._alphaCutoff .addInterest ("set_alphaCutoff__", this);
96233
+ this ._alphaMode .addInterest ("set_alphaMode__", this);
96234
+ this ._alphaCutoff .addInterest ("set_alphaCutoff__", this);
95756
96235
  this ._pointProperties .addInterest ("set_pointProperties__", this);
95757
96236
  this ._lineProperties .addInterest ("set_lineProperties__", this);
95758
96237
  this ._fillProperties .addInterest ("set_fillProperties__", this);
@@ -96066,11 +96545,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96066
96545
  },
96067
96546
  set_transparent__ ()
96068
96547
  {
96069
- this .setTransparent (!!(this .stylePropertiesNode [3] ?.isTransparent () ||
96070
- this .materialNode ?.isTransparent () ||
96071
- this .backMaterialNode ?.isTransparent () ||
96072
- this .textureNode ?.isTransparent () ||
96073
- this .blendModeNode));
96548
+ this .setTransparent (this .stylePropertiesNode [3] ?.isTransparent () ||
96549
+ this .materialNode ?.isTransparent () ||
96550
+ this .backMaterialNode ?.isTransparent () ||
96551
+ this .textureNode ?.isTransparent () ||
96552
+ this .blendModeNode);
96074
96553
  },
96075
96554
  traverse (type, renderObject)
96076
96555
  {
@@ -96219,7 +96698,7 @@ Object .assign (Object .setPrototypeOf (FillProperties .prototype, Shape_X3DAppe
96219
96698
  {
96220
96699
  this .filled = this ._filled .getValue ();
96221
96700
 
96222
- this .setTransparent (! this .filled);
96701
+ this .setTransparent (!this .filled);
96223
96702
  },
96224
96703
  set_hatched__ ()
96225
96704
  {
@@ -96242,7 +96721,7 @@ Object .assign (Object .setPrototypeOf (FillProperties .prototype, Shape_X3DAppe
96242
96721
  },
96243
96722
  setTransparent (value)
96244
96723
  {
96245
- if (value !== this ._transparent .getValue ())
96724
+ if (!!value !== this ._transparent .getValue ())
96246
96725
  this ._transparent = value;
96247
96726
  },
96248
96727
  isTransparent ()
@@ -96572,7 +97051,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96572
97051
  {
96573
97052
  setTransparent (value)
96574
97053
  {
96575
- if (value !== this ._transparent .getValue ())
97054
+ if (!!value !== this ._transparent .getValue ())
96576
97055
  this ._transparent = value;
96577
97056
  },
96578
97057
  isTransparent ()
@@ -96992,7 +97471,7 @@ Object .assign (Object .setPrototypeOf (X3DOneSidedMaterialNode .prototype, Shap
96992
97471
  },
96993
97472
  set_transparent__ ()
96994
97473
  {
96995
- this .setTransparent (!! this .transparency);
97474
+ this .setTransparent (this .transparency);
96996
97475
  },
96997
97476
  getBaseTexture ()
96998
97477
  {
@@ -97320,7 +97799,7 @@ Object .assign (Object .setPrototypeOf (Material .prototype, Shape_X3DOneSidedMa
97320
97799
  },
97321
97800
  set_transparent__ ()
97322
97801
  {
97323
- this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode ?.isTransparent ()));
97802
+ this .setTransparent (this .getTransparency () || this .diffuseTextureNode ?.isTransparent ());
97324
97803
  },
97325
97804
  createShader (key, geometryContext, renderContext)
97326
97805
  {
@@ -97742,7 +98221,7 @@ Object .assign (Object .setPrototypeOf (PhysicalMaterial .prototype, Shape_X3DOn
97742
98221
  },
97743
98222
  set_transparent__ ()
97744
98223
  {
97745
- this .setTransparent (!!(this .getTransparency () || this .baseTextureNode ?.isTransparent ()));
98224
+ this .setTransparent (this .getTransparency () || this .baseTextureNode ?.isTransparent ());
97746
98225
  },
97747
98226
  createShader (key, geometryContext, renderContext)
97748
98227
  {
@@ -98200,7 +98679,7 @@ Object .assign (Object .setPrototypeOf (X3DShapeNode .prototype, Core_X3DChildNo
98200
98679
  },
98201
98680
  setTransparent (value)
98202
98681
  {
98203
- this .transparent = value;
98682
+ this .transparent = !!value;
98204
98683
  },
98205
98684
  getAlphaMode ()
98206
98685
  {
@@ -98750,7 +99229,7 @@ Object .assign (Object .setPrototypeOf (TwoSidedMaterial .prototype, Shape_X3DMa
98750
99229
  },
98751
99230
  set_transparent__ ()
98752
99231
  {
98753
- this .setTransparent (!!(this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ())));
99232
+ this .setTransparent (this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ()));
98754
99233
  },
98755
99234
  getMaterialKey: Shape_Material .prototype .getMaterialKey,
98756
99235
  getBaseTexture: Shape_Material .prototype .getBaseTexture,
@@ -98926,8 +99405,7 @@ Object .assign (Object .setPrototypeOf (UnlitMaterial .prototype, Shape_X3DOneSi
98926
99405
  },
98927
99406
  set_transparent__ ()
98928
99407
  {
98929
- this .setTransparent (!!(this .getTransparency () ||
98930
- this .getEmissiveTexture () ?.isTransparent ()));
99408
+ this .setTransparent (this .getTransparency () || this .getEmissiveTexture () ?.isTransparent ());
98931
99409
  },
98932
99410
  createShader (key, geometryContext, renderContext)
98933
99411
  {
@@ -99089,7 +99567,7 @@ const Components_Shape_default_ = {
99089
99567
  x_ite_Namespace .add ("Shape", "x_ite/Components/Shape", Components_Shape_default_);
99090
99568
  /* harmony default export */ const Components_Shape = (Components_Shape_default_);
99091
99569
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundProcessingNode.js
99092
- /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(368);
99570
+ /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(37);
99093
99571
  /*******************************************************************************
99094
99572
  *
99095
99573
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -99729,7 +100207,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
99729
100207
  x_ite_Namespace .add ("X3DSoundSourceNode", "x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
99730
100208
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
99731
100209
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
99732
- /* provided dependency */ var AudioClip_$ = __webpack_require__(368);
100210
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(37);
99733
100211
  /*******************************************************************************
99734
100212
  *
99735
100213
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -100031,7 +100509,7 @@ const X3DSoundNode_default_ = X3DSoundNode;
100031
100509
  x_ite_Namespace .add ("X3DSoundNode", "x_ite/Components/Sound/X3DSoundNode", X3DSoundNode_default_);
100032
100510
  /* harmony default export */ const Sound_X3DSoundNode = (X3DSoundNode_default_);
100033
100511
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundDestinationNode.js
100034
- /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(368);
100512
+ /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(37);
100035
100513
  /*******************************************************************************
100036
100514
  *
100037
100515
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -101681,7 +102159,7 @@ const ListenerPointSource_default_ = ListenerPointSource;
101681
102159
  x_ite_Namespace .add ("ListenerPointSource", "x_ite/Components/Sound/ListenerPointSource", ListenerPointSource_default_);
101682
102160
  /* harmony default export */ const Sound_ListenerPointSource = (ListenerPointSource_default_);
101683
102161
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/MicrophoneSource.js
101684
- /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(368);
102162
+ /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(37);
101685
102163
  /*******************************************************************************
101686
102164
  *
101687
102165
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -103350,8 +103828,8 @@ const GifMedia_default_ = GifMedia;
103350
103828
  x_ite_Namespace .add ("GifMedia", "x_ite/Browser/Texturing/GifMedia", GifMedia_default_);
103351
103829
  /* harmony default export */ const Texturing_GifMedia = (GifMedia_default_);
103352
103830
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
103353
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(368);
103354
- /* provided dependency */ var SuperGif = __webpack_require__(939);
103831
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(37);
103832
+ /* provided dependency */ var SuperGif = __webpack_require__(790);
103355
103833
  /*******************************************************************************
103356
103834
  *
103357
103835
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106630,7 +107108,7 @@ const gettext_default_ = gettext;
106630
107108
  x_ite_Namespace .add ("gettext", "locale/gettext", gettext_default_);
106631
107109
  /* harmony default export */ const locale_gettext = (gettext_default_);
106632
107110
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106633
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(368);
107111
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(37);
106634
107112
  /*******************************************************************************
106635
107113
  *
106636
107114
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107060,7 +107538,7 @@ const TextureQuality_default_ = TextureQuality;
107060
107538
  x_ite_Namespace .add ("TextureQuality", "x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
107061
107539
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
107062
107540
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107063
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(368);
107541
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(37);
107064
107542
  /*******************************************************************************
107065
107543
  *
107066
107544
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107436,8 +107914,9 @@ Object .defineProperties (BrowserOptions,
107436
107914
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Gravity", new x_ite_Fields .SFDouble (9.80665)),
107437
107915
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "LoadUrlObjects", new x_ite_Fields .SFBool (true)),
107438
107916
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "LogarithmicDepthBuffer", new x_ite_Fields .SFBool ()),
107439
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Notifications", new x_ite_Fields .SFBool (true)),
107917
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "MetadataReference", new x_ite_Fields .SFString ()),
107440
107918
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Multisampling", new x_ite_Fields .SFInt32 (4)),
107919
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Notifications", new x_ite_Fields .SFBool (true)),
107441
107920
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "OrderIndependentTransparency", new x_ite_Fields .SFBool ()),
107442
107921
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "StraightenHorizon", new x_ite_Fields .SFBool (true)),
107443
107922
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Timings", new x_ite_Fields .SFBool ()),
@@ -107650,7 +108129,7 @@ const RenderingProperties_default_ = RenderingProperties;
107650
108129
  x_ite_Namespace .add ("RenderingProperties", "x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
107651
108130
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
107652
108131
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
107653
- /* provided dependency */ var Notification_$ = __webpack_require__(368);
108132
+ /* provided dependency */ var Notification_$ = __webpack_require__(37);
107654
108133
  /*******************************************************************************
107655
108134
  *
107656
108135
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107773,8 +108252,8 @@ const Notification_default_ = Notification;
107773
108252
  x_ite_Namespace .add ("Notification", "x_ite/Browser/Core/Notification", Notification_default_);
107774
108253
  /* harmony default export */ const Core_Notification = (Notification_default_);
107775
108254
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
107776
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(548);
107777
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(368);
108255
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(773);
108256
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(37);
107778
108257
  /*******************************************************************************
107779
108258
  *
107780
108259
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108345,7 +108824,7 @@ Object .assign (Object .setPrototypeOf (ContextMenu .prototype, Base_X3DBaseNode
108345
108824
 
108346
108825
  // Reposition menu if to right or to low.
108347
108826
 
108348
- ul .offset ({ "left": event .pageX, "top": event .pageY }); // Do it again!
108827
+ ul .offset ({ "left": event .pageX, "top": event .pageY }); // Do it again!
108349
108828
 
108350
108829
  if (ul .offset () .left - ContextMenu_$(document) .scrollLeft () + ul .outerWidth () > ContextMenu_$(window) .width ())
108351
108830
  ul .offset ({ "left": ContextMenu_$(document) .scrollLeft () + Math .max (0, ContextMenu_$(window) .width () - ul .outerWidth ()) });
@@ -109577,13 +110056,18 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
109577
110056
  const values = this [_metadata] .get (name);
109578
110057
 
109579
110058
  if (values)
109580
- return Array .from (values);
110059
+ return values .slice ();
109581
110060
 
109582
110061
  return undefined;
109583
110062
  },
109584
110063
  getMetaDatas ()
109585
110064
  {
109586
- return new Map (this [_metadata]);
110065
+ const metadata = new Map ();
110066
+
110067
+ for (const [key, values] of this [_metadata])
110068
+ metadata .set (key, values .slice ());
110069
+
110070
+ return metadata;
109587
110071
  },
109588
110072
  addExportedNode (exportedName, node)
109589
110073
  {
@@ -109608,7 +110092,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
109608
110092
  throw new Error ("Couldn't update exported node: node must be of type X3DNode.");
109609
110093
 
109610
110094
  //if (node .getExecutionContext () !== this)
109611
- // throw new Error ("Couldn't update exported node: node does not belong to this execution context.");
110095
+ // throw new Error ("Couldn't update exported node: node does not belong to this execution context.");
109612
110096
 
109613
110097
  const exportedNode = new Execution_X3DExportedNode (this, exportedName, node);
109614
110098
 
@@ -110237,7 +110721,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110237
110721
  },
110238
110722
  },
110239
110723
  {
110240
- setExecutionContext (value)
110724
+ setExecutionContext (executionContext)
110241
110725
  {
110242
110726
  if (!this .isMainScene ())
110243
110727
  {
@@ -110247,7 +110731,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110247
110731
  scene .removeLoadingObject (object);
110248
110732
  }
110249
110733
 
110250
- Execution_X3DExecutionContext .prototype .setExecutionContext .call (this, value);
110734
+ Execution_X3DExecutionContext .prototype .setExecutionContext .call (this, executionContext);
110251
110735
 
110252
110736
  if (!this .isMainScene ())
110253
110737
  {
@@ -110282,7 +110766,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110282
110766
  browser = this .getBrowser (),
110283
110767
  scene = this .getScene ();
110284
110768
 
110285
- if (this === browser .getExecutionContext () || this .loader === browser .loader)
110769
+ if (this === browser .getExecutionContext ())
110286
110770
  browser .addLoadingObject (node);
110287
110771
 
110288
110772
  if (!this .isMainScene ())
@@ -110301,7 +110785,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110301
110785
  browser = this .getBrowser (),
110302
110786
  scene = this .getScene ();
110303
110787
 
110304
- if (this === browser .getExecutionContext () || this .loader === browser .loader)
110788
+ if (this === browser .getExecutionContext ())
110305
110789
  browser .removeLoadingObject (node);
110306
110790
 
110307
110791
  if (!this .isMainScene ())
@@ -110526,7 +111010,7 @@ const DataStorage_default_ = DataStorage;
110526
111010
  x_ite_Namespace .add ("DataStorage", "standard/Utility/DataStorage", DataStorage_default_);
110527
111011
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
110528
111012
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
110529
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(368);
111013
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(37);
110530
111014
  /*******************************************************************************
110531
111015
  *
110532
111016
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113049,8 +113533,8 @@ const X3DViewer_default_ = X3DViewer;
113049
113533
  x_ite_Namespace .add ("X3DViewer", "x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
113050
113534
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
113051
113535
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
113052
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(214);
113053
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(368);
113536
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(693);
113537
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(37);
113054
113538
  /*******************************************************************************
113055
113539
  *
113056
113540
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113922,8 +114406,8 @@ const ExamineViewer_default_ = ExamineViewer;
113922
114406
  x_ite_Namespace .add ("ExamineViewer", "x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
113923
114407
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
113924
114408
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
113925
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(214);
113926
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(368);
114409
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(693);
114410
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(37);
113927
114411
  /*******************************************************************************
113928
114412
  *
113929
114413
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114932,8 +115416,8 @@ const FlyViewer_default_ = FlyViewer;
114932
115416
  x_ite_Namespace .add ("FlyViewer", "x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
114933
115417
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
114934
115418
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
114935
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(214);
114936
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(368);
115419
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(693);
115420
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(37);
114937
115421
  /*******************************************************************************
114938
115422
  *
114939
115423
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115264,8 +115748,8 @@ const NoneViewer_default_ = NoneViewer;
115264
115748
  x_ite_Namespace .add ("NoneViewer", "x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
115265
115749
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
115266
115750
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
115267
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(214);
115268
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(368);
115751
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(693);
115752
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(37);
115269
115753
  /*******************************************************************************
115270
115754
  *
115271
115755
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116404,8 +116888,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
116404
116888
  x_ite_Namespace .add ("X3DPickingContext", "x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
116405
116889
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
116406
116890
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
116407
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(214);
116408
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(368);
116891
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(693);
116892
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(37);
116409
116893
  /*******************************************************************************
116410
116894
  *
116411
116895
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116516,7 +117000,7 @@ Object .assign (Object .setPrototypeOf (PointingDevice .prototype, Base_X3DBaseN
116516
117000
  event .stopImmediatePropagation (); // Keeps the rest of the handlers from being executed
116517
117001
 
116518
117002
  browser .setCursor ("HAND");
116519
- browser .finishedEvents () .addInterest ("onverifymotion", this, x, y);
117003
+ this .onverifymotion (x, y);
116520
117004
  }
116521
117005
  }
116522
117006
  },
@@ -116537,8 +117021,7 @@ Object .assign (Object .setPrototypeOf (PointingDevice .prototype, Base_X3DBaseN
116537
117021
 
116538
117022
  browser .buttonReleaseEvent ();
116539
117023
  browser .setCursor (this .isOver ? "HAND" : "DEFAULT");
116540
- browser .finishedEvents () .addInterest ("onverifymotion", this, x, y);
116541
- browser .addBrowserEvent ();
117024
+ this .onverifymotion (x, y);
116542
117025
 
116543
117026
  this .cursor = "DEFAULT";
116544
117027
  }
@@ -116656,12 +117139,10 @@ Object .assign (Object .setPrototypeOf (PointingDevice .prototype, Base_X3DBaseN
116656
117139
  onverifymotion (x, y)
116657
117140
  {
116658
117141
  // Verify isOver state. This is necessary if an Switch changes on buttonReleaseEvent
116659
- // and the new child has a sensor node inside. This sensor node must be update to
117142
+ // and the new child has a sensor node inside. This sensor node must be updated to
116660
117143
  // reflect the correct isOver state.
116661
117144
 
116662
- this .getBrowser () .finishedEvents () .removeInterest ("onverifymotion", this);
116663
-
116664
- this .onmotion (x, y);
117145
+ requestAnimationFrame (() => this .onmotion (x, y));
116665
117146
  },
116666
117147
  showContextMenu (event)
116667
117148
  {
@@ -116936,7 +117417,8 @@ const
116936
117417
  _pointingBuffer = Symbol (),
116937
117418
  _pointingShaders = Symbol (),
116938
117419
  _id = Symbol (),
116939
- _pointingContexts = Symbol ();
117420
+ _pointingContexts = Symbol (),
117421
+ _processEvents = Symbol .for ("X_ITE.X3DRoutingContext.processEvents");
116940
117422
 
116941
117423
  function X3DPointingDeviceSensorContext ()
116942
117424
  {
@@ -117090,6 +117572,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117090
117572
  for (const sensor of this [_activeSensors])
117091
117573
  sensor .set_active__ (true, hit);
117092
117574
 
117575
+ this [_processEvents] ();
117576
+
117093
117577
  return !! hit .sensors .length;
117094
117578
  },
117095
117579
  buttonReleaseEvent ()
@@ -117102,6 +117586,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117102
117586
 
117103
117587
  this [_activeSensors] = Array .prototype;
117104
117588
  this [_pointingLayer] = null;
117589
+
117590
+ this [_processEvents] ();
117105
117591
  },
117106
117592
  motionNotifyEvent (x, y)
117107
117593
  {
@@ -117111,6 +117597,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117111
117597
  this .touch (x, y);
117112
117598
  this .motion ();
117113
117599
 
117600
+ this [_processEvents] ();
117601
+
117114
117602
  return !! this [_hit] .sensors .length;
117115
117603
  },
117116
117604
  leaveNotifyEvent ()
@@ -117549,10 +118037,12 @@ Object .assign (MultiSampleFrameBuffer .prototype,
117549
118037
  },
117550
118038
  clear ()
117551
118039
  {
117552
- const { context: gl, frameBuffer } = this;
118040
+ const { context: gl, frameBuffer, width, height } = this;
117553
118041
 
117554
118042
  gl .bindFramebuffer (gl .FRAMEBUFFER, frameBuffer);
117555
118043
 
118044
+ gl .viewport (0, 0, width, height);
118045
+ gl .scissor (0, 0, width, height);
117556
118046
  gl .clearColor (0, 0, 0, 0);
117557
118047
  gl .clear (gl .COLOR_BUFFER_BIT);
117558
118048
  },
@@ -117671,8 +118161,10 @@ Object .assign (Fallback .prototype,
117671
118161
  },
117672
118162
  clear ()
117673
118163
  {
117674
- const { context: gl } = this;
118164
+ const { context: gl, width, height } = this;
117675
118165
 
118166
+ gl .viewport (0, 0, width, height);
118167
+ gl .scissor (0, 0, width, height);
117676
118168
  gl .clearColor (0, 0, 0, 1);
117677
118169
  gl .clear (gl .COLOR_BUFFER_BIT);
117678
118170
  gl .blendFuncSeparate (gl .ONE, gl .ONE, gl .ZERO, gl .ONE_MINUS_SRC_ALPHA);
@@ -117688,7 +118180,7 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
117688
118180
  x_ite_Namespace .add ("MultiSampleFrameBuffer", "x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
117689
118181
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
117690
118182
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
117691
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(368);
118183
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(37);
117692
118184
  /*******************************************************************************
117693
118185
  *
117694
118186
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118590,7 +119082,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
118590
119082
  x_ite_Namespace .add ("X3DSoundContext", "x_ite/Browser/Sound/X3DSoundContext", X3DSoundContext_default_);
118591
119083
  /* harmony default export */ const Sound_X3DSoundContext = (X3DSoundContext_default_);
118592
119084
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
118593
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(368);
119085
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(37);
118594
119086
  const KTXDecoder_default_ = class KTXDecoder
118595
119087
  {
118596
119088
  constructor (gl, externalKtxlib, scriptDir)
@@ -119687,7 +120179,7 @@ const
119687
120179
  _cameraTime = Symbol (),
119688
120180
  _collisionTime = Symbol (),
119689
120181
  _displayTime = Symbol (),
119690
- _processEvents = Symbol .for ("X_ITE.X3DRoutingContext.processEvents");
120182
+ X3DBrowserContext_processEvents = Symbol .for ("X_ITE.X3DRoutingContext.processEvents");
119691
120183
 
119692
120184
  const
119693
120185
  browsers = new Set (),
@@ -119872,10 +120364,10 @@ Object .assign (Object .setPrototypeOf (X3DBrowserContext .prototype, Base_X3DBa
119872
120364
  // Events
119873
120365
 
119874
120366
  this .addTaintedField (this ._prepareEvents);
119875
- this [_processEvents] ();
120367
+ this [X3DBrowserContext_processEvents] ();
119876
120368
 
119877
120369
  this .addTaintedField (this ._timeEvents);
119878
- this [_processEvents] ();
120370
+ this [X3DBrowserContext_processEvents] ();
119879
120371
 
119880
120372
  // Camera
119881
120373
 
@@ -119895,19 +120387,19 @@ Object .assign (Object .setPrototypeOf (X3DBrowserContext .prototype, Base_X3DBa
119895
120387
  // Events
119896
120388
 
119897
120389
  this .addTaintedField (this ._sensorEvents);
119898
- this [_processEvents] ();
120390
+ this [X3DBrowserContext_processEvents] ();
119899
120391
 
119900
120392
  // Display
119901
120393
 
119902
120394
  this [_displayTime] .start ()
119903
120395
  this .addTaintedField (this ._displayEvents);
119904
- this [_processEvents] ();
120396
+ this [X3DBrowserContext_processEvents] ();
119905
120397
 
119906
120398
  this .getFrameBuffer () .clear ();
119907
120399
  this [_world] .traverse (Rendering_TraverseType .DISPLAY);
119908
120400
 
119909
120401
  this .addTaintedField (this ._finishedEvents);
119910
- this [_processEvents] ();
120402
+ this [X3DBrowserContext_processEvents] ();
119911
120403
 
119912
120404
  this .getFrameBuffer () .blit ();
119913
120405
  this [_displayTime] .stop ();
@@ -120024,7 +120516,7 @@ Object .assign (X3DBrowserContext,
120024
120516
 
120025
120517
  // Process events from context creation. This will setup nodes like
120026
120518
  // geometry option nodes before any node is created.
120027
- browser [_processEvents] ();
120519
+ browser [X3DBrowserContext_processEvents] ();
120028
120520
  }
120029
120521
  }
120030
120522
 
@@ -120143,7 +120635,7 @@ const Components_default_ = Components;
120143
120635
  x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
120144
120636
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
120145
120637
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
120146
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(368);
120638
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(37);
120147
120639
  /*******************************************************************************
120148
120640
  * MIT License
120149
120641
  *
@@ -120175,355 +120667,355 @@ x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
120175
120667
 
120176
120668
  class DOMIntegration
120177
120669
  {
120178
- constructor (browser)
120179
- {
120180
- this .browser = browser;
120181
- this .rootElement = undefined;
120182
- this .canvasObserver = new MutationObserver (() => this .processCanvasMutation (browser));
120670
+ constructor (browser)
120671
+ {
120672
+ this .browser = browser;
120673
+ this .rootElement = undefined;
120674
+ this .canvasObserver = new MutationObserver (() => this .processCanvasMutation (browser));
120183
120675
 
120184
- this .canvasObserver .observe (browser .getElement () [0], {
120185
- childList: true,
120186
- });
120676
+ this .canvasObserver .observe (browser .getElement () [0], {
120677
+ childList: true,
120678
+ });
120187
120679
 
120188
- this .processCanvasMutation (browser)
120189
- }
120680
+ this .processCanvasMutation (browser)
120681
+ }
120190
120682
 
120191
- processCanvasMutation (browser)
120192
- {
120193
- this .processRootElement (browser, browser .getElement () .children ("X3D") .get (-1));
120194
- }
120683
+ processCanvasMutation (browser)
120684
+ {
120685
+ this .processRootElement (browser, browser .getElement () .children ("X3D") .get (-1));
120686
+ }
120195
120687
 
120196
- async processRootElement (browser, rootElement)
120197
- {
120198
- try
120199
- {
120200
- if (rootElement === this .rootElement)
120201
- return;
120688
+ async processRootElement (browser, rootElement)
120689
+ {
120690
+ try
120691
+ {
120692
+ if (rootElement === this .rootElement)
120693
+ return;
120202
120694
 
120203
- this .rootElement = rootElement;
120695
+ this .rootElement = rootElement;
120204
120696
 
120205
- if (rootElement)
120206
- {
120207
- // Display splash screen.
120697
+ if (rootElement)
120698
+ {
120699
+ // Display splash screen.
120208
120700
 
120209
- browser .setBrowserLoading (true);
120210
- browser .addLoadingObject (this);
120701
+ browser .setBrowserLoading (true);
120702
+ browser .addLoadingObject (this);
120211
120703
 
120212
- // Now also attached node property to each node element.
120704
+ // Now also attached node property to each node element.
120213
120705
 
120214
- const scene = browser .createScene ();
120706
+ const scene = browser .createScene ();
120215
120707
 
120216
- this .parser = new Parser_XMLParser (scene);
120708
+ this .parser = new Parser_XMLParser (scene);
120217
120709
 
120218
- this .parser .setInput (rootElement);
120710
+ this .parser .setInput (rootElement);
120219
120711
 
120220
- await new Promise (this .parser .parseIntoScene .bind (this .parser));
120712
+ await new Promise (this .parser .parseIntoScene .bind (this .parser));
120221
120713
 
120222
- browser .replaceWorld (scene);
120714
+ browser .replaceWorld (scene);
120223
120715
 
120224
- // Create an observer instance.
120716
+ // Create an observer instance.
120225
120717
 
120226
- this .observer = new MutationObserver (mutations =>
120227
- {
120228
- for (const mutation of mutations)
120229
- this .processMutation (mutation);
120230
- });
120718
+ this .observer = new MutationObserver (mutations =>
120719
+ {
120720
+ for (const mutation of mutations)
120721
+ this .processMutation (mutation);
120722
+ });
120231
120723
 
120232
- // Start observing, also catches inlined Inline elements.
120724
+ // Start observing, also catches inlined Inline elements.
120233
120725
 
120234
- this .observer .observe (rootElement, {
120235
- attributes: true,
120236
- childList: true,
120237
- characterData: false,
120238
- subtree: true,
120239
- attributeOldValue: true,
120240
- });
120726
+ this .observer .observe (rootElement, {
120727
+ attributes: true,
120728
+ childList: true,
120729
+ characterData: false,
120730
+ subtree: true,
120731
+ attributeOldValue: true,
120732
+ });
120241
120733
 
120242
- // Add Inline elements from initial scene, and connect to node events.
120734
+ // Add Inline elements from initial scene, and connect to node events.
120243
120735
 
120244
- this .processInlineElements (rootElement);
120245
- this .addEventDispatchersAll (rootElement);
120736
+ this .processInlineElements (rootElement);
120737
+ this .addEventDispatchersAll (rootElement);
120246
120738
 
120247
- browser .removeLoadingObject (this);
120248
- }
120249
- else
120250
- {
120251
- browser .replaceWorld (null);
120252
- }
120253
- }
120254
- catch (error)
120255
- {
120256
- console .error ("Error importing document:", error);
120257
- }
120258
- }
120739
+ browser .removeLoadingObject (this);
120740
+ }
120741
+ else
120742
+ {
120743
+ browser .replaceWorld (null);
120744
+ }
120745
+ }
120746
+ catch (error)
120747
+ {
120748
+ console .error ("Error importing document:", error);
120749
+ }
120750
+ }
120259
120751
 
120260
- processMutation (mutation)
120261
- {
120262
- switch (mutation .type)
120263
- {
120264
- case "attributes":
120265
- {
120266
- this .processAttribute (mutation, mutation .target);
120267
- break;
120268
- }
120269
- case "childList":
120270
- {
120271
- for (const node of mutation .addedNodes)
120272
- this .processAddedNode (node);
120752
+ processMutation (mutation)
120753
+ {
120754
+ switch (mutation .type)
120755
+ {
120756
+ case "attributes":
120757
+ {
120758
+ this .processAttribute (mutation, mutation .target);
120759
+ break;
120760
+ }
120761
+ case "childList":
120762
+ {
120763
+ for (const node of mutation .addedNodes)
120764
+ this .processAddedNode (node);
120273
120765
 
120274
- for (const node of mutation .removedNodes)
120275
- this .processRemovedNode (node);
120766
+ for (const node of mutation .removedNodes)
120767
+ this .processRemovedNode (node);
120276
120768
 
120277
- break;
120278
- }
120279
- }
120280
- }
120769
+ break;
120770
+ }
120771
+ }
120772
+ }
120281
120773
 
120282
- processAttribute (mutation, element)
120283
- {
120284
- const
120285
- parser = this .parser,
120286
- node = DOMIntegration_$.data (element, "node");
120774
+ processAttribute (mutation, element)
120775
+ {
120776
+ const
120777
+ parser = this .parser,
120778
+ node = DOMIntegration_$.data (element, "node");
120287
120779
 
120288
- if (node)
120289
- {
120290
- const
120291
- attributeName = mutation .attributeName,
120292
- attribute = element .attributes .getNamedItem (attributeName);
120780
+ if (node)
120781
+ {
120782
+ const
120783
+ attributeName = mutation .attributeName,
120784
+ attribute = element .attributes .getNamedItem (attributeName);
120293
120785
 
120294
- parser .nodeAttribute (attribute, node);
120295
- }
120296
- else
120297
- {
120298
- // Is an attribute of non-node child such as fieldValue (or ROUTE).
120786
+ parser .nodeAttribute (attribute, node);
120787
+ }
120788
+ else
120789
+ {
120790
+ // Is an attribute of non-node child such as fieldValue (or ROUTE).
120299
120791
 
120300
- const
120301
- parentNode = element .parentNode,
120302
- node = DOMIntegration_$.data (parentNode, "node");
120792
+ const
120793
+ parentNode = element .parentNode,
120794
+ node = DOMIntegration_$.data (parentNode, "node");
120303
120795
 
120304
- if (node)
120305
- {
120306
- parser .pushExecutionContext (node .getExecutionContext ());
120307
- parser .pushParent (node);
120308
- parser .childElement (element);
120309
- parser .popParent ();
120310
- parser .popExecutionContext ();
120311
- }
120312
- }
120313
- }
120796
+ if (node)
120797
+ {
120798
+ parser .pushExecutionContext (node .getExecutionContext ());
120799
+ parser .pushParent (node);
120800
+ parser .childElement (element);
120801
+ parser .popParent ();
120802
+ parser .popExecutionContext ();
120803
+ }
120804
+ }
120805
+ }
120314
120806
 
120315
- processAddedNode (element)
120316
- {
120317
- // Only process element nodes.
120807
+ processAddedNode (element)
120808
+ {
120809
+ // Only process element nodes.
120318
120810
 
120319
- if (element .nodeType !== Node .ELEMENT_NODE)
120320
- return;
120811
+ if (element .nodeType !== Node .ELEMENT_NODE)
120812
+ return;
120321
120813
 
120322
- if (element .nodeName === "X3D")
120323
- return;
120814
+ if (element .nodeName === "X3D")
120815
+ return;
120324
120816
 
120325
- if (DOMIntegration_$.data (element, "node"))
120326
- return;
120817
+ if (DOMIntegration_$.data (element, "node"))
120818
+ return;
120327
120819
 
120328
- const
120329
- parentNode = element .parentNode,
120330
- parser = this .parser;
120820
+ const
120821
+ parentNode = element .parentNode,
120822
+ parser = this .parser;
120331
120823
 
120332
- if (parentNode .nodeName .match (/^(?:Scene|SCENE)$/))
120333
- {
120334
- // Root scene or Inline scene.
120824
+ if (parentNode .nodeName .match (/^(?:Scene|SCENE)$/))
120825
+ {
120826
+ // Root scene or Inline scene.
120335
120827
 
120336
- const scene = DOMIntegration_$.data (parentNode, "node");
120828
+ const scene = DOMIntegration_$.data (parentNode, "node");
120337
120829
 
120338
- parser .pushExecutionContext (scene);
120339
- parser .childElement (element);
120340
- parser .popExecutionContext ();
120341
- }
120342
- else if (DOMIntegration_$.data (parentNode, "node"))
120343
- {
120344
- // Use parent's scene if non-root, works for Inline.
120345
-
120346
- const
120347
- node = DOMIntegration_$.data (parentNode, "node"),
120348
- executionContext = node .getExecutionContext ();
120349
-
120350
- parser .pushExecutionContext (executionContext);
120351
- parser .pushParent (node);
120352
- parser .childElement (element);
120353
- parser .popParent ();
120354
- parser .popExecutionContext ();
120355
- }
120356
- else
120357
- {
120358
- const scene = this .browser .currentScene;
120830
+ parser .pushExecutionContext (scene);
120831
+ parser .childElement (element);
120832
+ parser .popExecutionContext ();
120833
+ }
120834
+ else if (DOMIntegration_$.data (parentNode, "node"))
120835
+ {
120836
+ // Use parent's scene if non-root, works for Inline.
120359
120837
 
120360
- parser .pushExecutionContext (scene);
120361
- parser .childElement (element);
120362
- parser .popExecutionContext ();
120363
- }
120838
+ const
120839
+ node = DOMIntegration_$.data (parentNode, "node"),
120840
+ executionContext = node .getExecutionContext ();
120364
120841
 
120365
- // Now after creating nodes need to look again for Inline elements.
120842
+ parser .pushExecutionContext (executionContext);
120843
+ parser .pushParent (node);
120844
+ parser .childElement (element);
120845
+ parser .popParent ();
120846
+ parser .popExecutionContext ();
120847
+ }
120848
+ else
120849
+ {
120850
+ const scene = this .browser .currentScene;
120366
120851
 
120367
- this .processInlineElements (element);
120852
+ parser .pushExecutionContext (scene);
120853
+ parser .childElement (element);
120854
+ parser .popExecutionContext ();
120855
+ }
120368
120856
 
120369
- // Then attach event dispatchers.
120857
+ // Now after creating nodes need to look again for Inline elements.
120370
120858
 
120371
- this .addEventDispatchers (element);
120372
- this .addEventDispatchersAll (element);
120373
- }
120859
+ this .processInlineElements (element);
120374
120860
 
120375
- processRemovedNode (element)
120376
- {
120377
- // Works also for root nodes, as it has to be, since scene .rootNodes is effectively a MFNode in x-ite.
120378
- // Also removes ROUTE elements.
120861
+ // Then attach event dispatchers.
120379
120862
 
120380
- const node = DOMIntegration_$.data (element, "node");
120863
+ this .addEventDispatchers (element);
120864
+ this .addEventDispatchersAll (element);
120865
+ }
120381
120866
 
120382
- if (!node)
120383
- return;
120867
+ processRemovedNode (element)
120868
+ {
120869
+ // Works also for root nodes, as it has to be, since scene .rootNodes is effectively a MFNode in x-ite.
120870
+ // Also removes ROUTE elements.
120384
120871
 
120385
- node .dispose ();
120872
+ const node = DOMIntegration_$.data (element, "node");
120386
120873
 
120387
- DOMIntegration_$.data (element, "node", null);
120388
- }
120874
+ if (!node)
120875
+ return;
120389
120876
 
120390
- processInlineElements (element)
120391
- {
120392
- if (element .nodeName .match (/^(?:Inline|INLINE)$/))
120393
- this .processInlineElement (element);
120877
+ node .dispose ();
120394
120878
 
120395
- for (const inlineElement of element .querySelectorAll ("Inline"))
120396
- this .processInlineElement (inlineElement);
120397
- }
120879
+ DOMIntegration_$.data (element, "node", null);
120880
+ }
120398
120881
 
120399
- processInlineElement (element)
120400
- {
120401
- const node = DOMIntegration_$.data (element, "node");
120882
+ processInlineElements (element)
120883
+ {
120884
+ if (element .nodeName .match (/^(?:Inline|INLINE)$/))
120885
+ this .processInlineElement (element);
120402
120886
 
120403
- if (!node)
120404
- return;
120887
+ for (const inlineElement of element .querySelectorAll ("Inline"))
120888
+ this .processInlineElement (inlineElement);
120889
+ }
120405
120890
 
120406
- node ._loadState .addInterest ("appendInlineChildElement", this, element);
120891
+ processInlineElement (element)
120892
+ {
120893
+ const node = DOMIntegration_$.data (element, "node");
120407
120894
 
120408
- this .appendInlineChildElement (element);
120409
- }
120895
+ if (!node)
120896
+ return;
120410
120897
 
120411
- appendInlineChildElement (element)
120412
- {
120413
- const node = DOMIntegration_$.data (element, "node");
120898
+ node ._loadState .addInterest ("appendInlineChildElement", this, element);
120414
120899
 
120415
- switch (node .checkLoadState ())
120416
- {
120417
- case Base_X3DConstants .NOT_STARTED_STATE:
120418
- case Base_X3DConstants .FAILED_STATE:
120419
- {
120420
- // Remove all child nodes.
120900
+ this .appendInlineChildElement (element);
120901
+ }
120421
120902
 
120422
- while (element .firstChild)
120423
- element .removeChild (element .lastChild);
120903
+ appendInlineChildElement (element)
120904
+ {
120905
+ const node = DOMIntegration_$.data (element, "node");
120424
120906
 
120425
- break;
120426
- }
120427
- case Base_X3DConstants .COMPLETE_STATE:
120428
- {
120429
- // Remove all child nodes.
120907
+ switch (node .checkLoadState ())
120908
+ {
120909
+ case Base_X3DConstants .NOT_STARTED_STATE:
120910
+ case Base_X3DConstants .FAILED_STATE:
120911
+ {
120912
+ // Remove all child nodes.
120430
120913
 
120431
- while (element .firstChild)
120432
- element .removeChild (element .lastChild);
120914
+ while (element .firstChild)
120915
+ element .removeChild (element .lastChild);
120433
120916
 
120434
- // Add scene as child node of Inline element.
120917
+ break;
120918
+ }
120919
+ case Base_X3DConstants .COMPLETE_STATE:
120920
+ {
120921
+ // Remove all child nodes.
120435
120922
 
120436
- const X3DElement = DOMIntegration_$.data (node .getInternalScene (), "X3D");
120923
+ while (element .firstChild)
120924
+ element .removeChild (element .lastChild);
120437
120925
 
120438
- if (X3DElement)
120439
- element .appendChild (X3DElement);
120926
+ // Add scene as child node of Inline element.
120440
120927
 
120441
- // Add Inline elements, and connect to node events.
120928
+ const X3DElement = DOMIntegration_$.data (node .getInternalScene (), "X3D");
120442
120929
 
120443
- this .processInlineElements (X3DElement);
120444
- this .addEventDispatchersAll (X3DElement);
120930
+ if (X3DElement)
120931
+ element .appendChild (X3DElement);
120445
120932
 
120446
- break;
120447
- }
120448
- }
120933
+ // Add Inline elements, and connect to node events.
120449
120934
 
120450
- switch (node .checkLoadState ())
120451
- {
120452
- case Base_X3DConstants .COMPLETE_STATE:
120453
- {
120454
- const event = new CustomEvent ("load",
120455
- {
120456
- detail: { node: Fields_SFNodeCache .get (node) },
120457
- });
120935
+ this .processInlineElements (X3DElement);
120936
+ this .addEventDispatchersAll (X3DElement);
120458
120937
 
120459
- element .dispatchEvent (event);
120460
- break;
120461
- }
120462
- case Base_X3DConstants .FAILED_STATE:
120463
- {
120464
- const event = new CustomEvent ("error",
120465
- {
120466
- detail: { node: Fields_SFNodeCache .get (node) },
120467
- });
120938
+ break;
120939
+ }
120940
+ }
120468
120941
 
120469
- element .dispatchEvent (event);
120470
- break;
120471
- }
120472
- }
120473
- }
120942
+ switch (node .checkLoadState ())
120943
+ {
120944
+ case Base_X3DConstants .COMPLETE_STATE:
120945
+ {
120946
+ const event = new CustomEvent ("load",
120947
+ {
120948
+ detail: { node: Fields_SFNodeCache .get (node) },
120949
+ });
120950
+
120951
+ element .dispatchEvent (event);
120952
+ break;
120953
+ }
120954
+ case Base_X3DConstants .FAILED_STATE:
120955
+ {
120956
+ const event = new CustomEvent ("error",
120957
+ {
120958
+ detail: { node: Fields_SFNodeCache .get (node) },
120959
+ });
120474
120960
 
120475
- addEventDispatchersAll (element)
120476
- {
120477
- const childElements = element .querySelectorAll ("*");
120961
+ element .dispatchEvent (event);
120962
+ break;
120963
+ }
120964
+ }
120965
+ }
120478
120966
 
120479
- for (const childElement of childElements)
120480
- this .addEventDispatchers (childElement);
120481
- }
120967
+ addEventDispatchersAll (element)
120968
+ {
120969
+ const childElements = element .querySelectorAll ("*");
120482
120970
 
120483
- addEventDispatchers (element)
120484
- {
120485
- // Check for USE nodes; they do not emit events.
120971
+ for (const childElement of childElements)
120972
+ this .addEventDispatchers (childElement);
120973
+ }
120486
120974
 
120487
- if (element .nodeName === "ROUTE")
120488
- return;
120975
+ addEventDispatchers (element)
120976
+ {
120977
+ // Check for USE nodes; they do not emit events.
120489
120978
 
120490
- const node = DOMIntegration_$.data (element, "node");
120979
+ if (element .nodeName === "ROUTE")
120980
+ return;
120491
120981
 
120492
- if (!node)
120493
- return;
120982
+ const node = DOMIntegration_$.data (element, "node");
120494
120983
 
120495
- for (const field of node .getPredefinedFields ())
120496
- this .bindFieldCallback (field, element);
120984
+ if (!node)
120985
+ return;
120497
120986
 
120498
- for (const field of node .getUserDefinedFields ())
120499
- this .bindFieldCallback (field, element);
120500
- }
120987
+ for (const field of node .getPredefinedFields ())
120988
+ this .bindFieldCallback (field, element);
120501
120989
 
120502
- bindFieldCallback (field, element)
120503
- {
120504
- if (!field .isOutput ())
120505
- return;
120990
+ for (const field of node .getUserDefinedFields ())
120991
+ this .bindFieldCallback (field, element);
120992
+ }
120506
120993
 
120507
- field .addInterest ("fieldCallback", this, element);
120508
- }
120994
+ bindFieldCallback (field, element)
120995
+ {
120996
+ if (!field .isOutput ())
120997
+ return;
120509
120998
 
120510
- fieldCallback (element, field)
120511
- {
120512
- const node = DOMIntegration_$.data (element, "node");
120999
+ field .addInterest ("fieldCallback", this, element);
121000
+ }
120513
121001
 
120514
- if (!node)
120515
- return;
121002
+ fieldCallback (element, field)
121003
+ {
121004
+ const node = DOMIntegration_$.data (element, "node");
120516
121005
 
120517
- const event = new CustomEvent (field .getName (),
120518
- {
120519
- detail: {
120520
- node: Fields_SFNodeCache .get (node),
120521
- value: field .valueOf (),
120522
- },
120523
- });
121006
+ if (!node)
121007
+ return;
120524
121008
 
120525
- element .dispatchEvent (event);
120526
- }
121009
+ const event = new CustomEvent (field .getName (),
121010
+ {
121011
+ detail: {
121012
+ node: Fields_SFNodeCache .get (node),
121013
+ value: field .valueOf (),
121014
+ },
121015
+ });
121016
+
121017
+ element .dispatchEvent (event);
121018
+ }
120527
121019
  };
120528
121020
 
120529
121021
  const DOMIntegration_default_ = DOMIntegration;
@@ -121274,7 +121766,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
121274
121766
  x_ite_Namespace .add ("SupportedProfiles", "x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
121275
121767
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
121276
121768
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
121277
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(368);
121769
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(37);
121278
121770
  /*******************************************************************************
121279
121771
  *
121280
121772
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121705,8 +122197,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121705
122197
 
121706
122198
  // Detach scene from parent.
121707
122199
 
121708
- scene .getExecutionContext () .getLive () .removeInterest ("setLive", scene);
121709
122200
  scene .setExecutionContext (scene);
122201
+ scene .setLive (this .isLive ());
121710
122202
 
121711
122203
  // Replace.
121712
122204
 
@@ -121719,8 +122211,6 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121719
122211
 
121720
122212
  this .setExecutionContext (scene);
121721
122213
  this .getWorld () .bindBindables ();
121722
-
121723
- scene .setLive (this .isLive ());
121724
122214
  });
121725
122215
  },
121726
122216
  checkLoadCount (resolve, loadCount)
@@ -121747,9 +122237,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121747
122237
 
121748
122238
  if (!external)
121749
122239
  {
121750
- currentScene .getLive () .addInterest ("setLive", scene);
121751
122240
  scene .setExecutionContext (currentScene);
121752
- scene .setLive (currentScene .isLive ());
122241
+ scene .setLive (true);
121753
122242
  }
121754
122243
 
121755
122244
  return scene .rootNodes;
@@ -121771,9 +122260,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121771
122260
 
121772
122261
  if (!external)
121773
122262
  {
121774
- currentScene .getLive () .addInterest ("setLive", scene);
121775
122263
  scene .setExecutionContext (currentScene);
121776
- scene .setLive (currentScene .isLive ());
122264
+ scene .setLive (true);
121777
122265
  }
121778
122266
 
121779
122267
  return scene;
@@ -121804,7 +122292,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121804
122292
 
121805
122293
  this .addLoadingObject (fileLoader);
121806
122294
 
121807
- fileLoader .createX3DFromURL (url, null, (scene) =>
122295
+ fileLoader .createX3DFromURL (url, null, scene =>
121808
122296
  {
121809
122297
  this .removeLoadingObject (fileLoader);
121810
122298
 
@@ -121814,9 +122302,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121814
122302
 
121815
122303
  if (!external)
121816
122304
  {
121817
- currentScene .getLive () .addInterest ("setLive", scene);
121818
122305
  scene .setExecutionContext (currentScene);
121819
- scene .setLive (currentScene .isLive ());
122306
+ scene .setLive (true);
121820
122307
  }
121821
122308
 
121822
122309
  // Wait until scene is completely loaded, scene ._loadCount must be 0.
@@ -121843,7 +122330,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121843
122330
 
121844
122331
  this .addLoadingObject (fileLoader);
121845
122332
 
121846
- fileLoader .createX3DFromURL (url, null, (scene) =>
122333
+ fileLoader .createX3DFromURL (url, null, scene =>
121847
122334
  {
121848
122335
  this .removeLoadingObject (fileLoader);
121849
122336
 
@@ -121851,9 +122338,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121851
122338
  {
121852
122339
  if (!external)
121853
122340
  {
121854
- currentScene .getLive () .addInterest ("setLive", scene);
121855
122341
  scene .setExecutionContext (currentScene);
121856
- scene .setLive (currentScene .isLive ());
122342
+ scene .setLive (true);
121857
122343
  }
121858
122344
 
121859
122345
  resolve (scene);
@@ -121879,7 +122365,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121879
122365
 
121880
122366
  const fileLoader = new InputOutput_FileLoader (this .getWorld ());
121881
122367
 
121882
- fileLoader .createX3DFromURL (url, parameter, (scene) =>
122368
+ fileLoader .createX3DFromURL (url, parameter, scene =>
121883
122369
  {
121884
122370
  if (this [_fileLoader] !== fileLoader)
121885
122371
  {
@@ -122032,9 +122518,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
122032
122518
 
122033
122519
  if (!external)
122034
122520
  {
122035
- currentScene .getLive () .addInterest ("setLive", scene);
122036
122521
  scene .setExecutionContext (currentScene);
122037
- scene .setLive (currentScene .isLive ());
122522
+ scene .setLive (true);
122038
122523
  }
122039
122524
 
122040
122525
  const parser = new Parser_XMLParser (scene);
@@ -122052,9 +122537,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
122052
122537
 
122053
122538
  if (!external)
122054
122539
  {
122055
- currentScene .getLive () .addInterest ("setLive", scene);
122056
122540
  scene .setExecutionContext (currentScene);
122057
- scene .setLive (currentScene .isLive ());
122541
+ scene .setLive (true);
122058
122542
  }
122059
122543
 
122060
122544
  const parser = new Parser_JSONParser (scene);
@@ -122373,7 +122857,7 @@ const X3DBrowser_default_ = X3DBrowser;
122373
122857
  x_ite_Namespace .add ("X3DBrowser", "x_ite/Browser/X3DBrowser", X3DBrowser_default_);
122374
122858
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
122375
122859
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
122376
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(368);
122860
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(37);
122377
122861
  /*******************************************************************************
122378
122862
  *
122379
122863
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122494,6 +122978,11 @@ class X3DCanvasElement extends HTMLElement
122494
122978
  {
122495
122979
  return this .browser ?.getCanvas () [0] .toDataURL (... args);
122496
122980
  }
122981
+
122982
+ get [Symbol .toStringTag] ()
122983
+ {
122984
+ return "X3DCanvasElement";
122985
+ }
122497
122986
  }
122498
122987
 
122499
122988
  // IE fix.
@@ -122505,8 +122994,8 @@ const X3DCanvasElement_default_ = X3DCanvasElement;
122505
122994
  x_ite_Namespace .add ("X3DCanvasElement", "x_ite/X3DCanvasElement", X3DCanvasElement_default_);
122506
122995
  /* harmony default export */ const x_ite_X3DCanvasElement = (X3DCanvasElement_default_);
122507
122996
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
122508
- /* provided dependency */ var jquery_$ = __webpack_require__(368);
122509
- /* provided dependency */ var pako = __webpack_require__(300);
122997
+ /* provided dependency */ var jquery_$ = __webpack_require__(37);
122998
+ /* provided dependency */ var pako = __webpack_require__(465);
122510
122999
  Object .assign (jquery_$,
122511
123000
  {
122512
123001
  decodeText (input)
@@ -122583,14 +123072,14 @@ const jquery_default_ = jquery_$;
122583
123072
  x_ite_Namespace .add ("jquery", "lib/jquery", jquery_default_);
122584
123073
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
122585
123074
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
122586
- /* provided dependency */ var libtess_libtess = __webpack_require__(125);
123075
+ /* provided dependency */ var libtess_libtess = __webpack_require__(214);
122587
123076
  const libtess_default_ = libtess_libtess;
122588
123077
  ;
122589
123078
 
122590
123079
  x_ite_Namespace .add ("libtess", "lib/libtess", libtess_default_);
122591
123080
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
122592
123081
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
122593
- /* provided dependency */ var X3D_$ = __webpack_require__(368);
123082
+ /* provided dependency */ var X3D_$ = __webpack_require__(37);
122594
123083
  /*******************************************************************************
122595
123084
  *
122596
123085
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122898,7 +123387,7 @@ Object .assign (X3D,
122898
123387
 
122899
123388
  // Assign X3D to global namespace.
122900
123389
 
122901
- window [Symbol .for ("X_ITE.X3D-9.2.7")] = x_ite_X3D;
123390
+ window [Symbol .for ("X_ITE.X3D-9.3.1")] = x_ite_X3D;
122902
123391
 
122903
123392
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
122904
123393