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.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v9.2.7 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v9.3.1 */(function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if(typeof define === 'function' && define.amd)
@@ -11,10 +11,10 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 548:
14
+ /***/ 773:
15
15
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
16
16
 
17
- /* provided dependency */ var jQuery = __webpack_require__(368);
17
+ /* provided dependency */ var jQuery = __webpack_require__(37);
18
18
  /**
19
19
  * @preserve jquery.fullscreen 1.1.5
20
20
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -210,7 +210,7 @@ installFullScreenHandlers();
210
210
 
211
211
  /***/ }),
212
212
 
213
- /***/ 214:
213
+ /***/ 693:
214
214
  /***/ ((module, exports, __webpack_require__) => {
215
215
 
216
216
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -224,7 +224,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
224
224
  (function (factory) {
225
225
  if ( true ) {
226
226
  // AMD. Register as an anonymous module.
227
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(368)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
227
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(37)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
228
228
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
229
229
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
230
230
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -435,7 +435,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
435
435
 
436
436
  /***/ }),
437
437
 
438
- /***/ 368:
438
+ /***/ 37:
439
439
  /***/ (function(module, exports) {
440
440
 
441
441
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11159,7 +11159,7 @@ return jQuery;
11159
11159
 
11160
11160
  /***/ }),
11161
11161
 
11162
- /***/ 125:
11162
+ /***/ 214:
11163
11163
  /***/ ((module) => {
11164
11164
 
11165
11165
  /**
@@ -15938,7 +15938,7 @@ if (true) {
15938
15938
 
15939
15939
  /***/ }),
15940
15940
 
15941
- /***/ 300:
15941
+ /***/ 465:
15942
15942
  /***/ (function(__unused_webpack_module, exports) {
15943
15943
 
15944
15944
 
@@ -19183,7 +19183,7 @@ if (true) {
19183
19183
 
19184
19184
  /***/ }),
19185
19185
 
19186
- /***/ 939:
19186
+ /***/ 790:
19187
19187
  /***/ (function(module, exports) {
19188
19188
 
19189
19189
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -20311,7 +20311,7 @@ Object .defineProperty (Namespace, "add",
20311
20311
  }
20312
20312
  else
20313
20313
  {
20314
- const X3D = window [Symbol .for ("X_ITE.X3D-9.2.7")];
20314
+ const X3D = window [Symbol .for ("X_ITE.X3D-9.3.1")];
20315
20315
 
20316
20316
  if (X3D)
20317
20317
  X3D [name] = module;
@@ -20541,10 +20541,12 @@ const Algorithm =
20541
20541
  {
20542
20542
  radians (value)
20543
20543
  {
20544
+ // Convert degrees to radians.
20544
20545
  return value * (Math .PI / 180);
20545
20546
  },
20546
20547
  degrees (value)
20547
20548
  {
20549
+ // Convert radians to degrees.
20548
20550
  return value * (180 / Math .PI);
20549
20551
  },
20550
20552
  random (min, max)
@@ -21810,15 +21812,11 @@ if (DEVELOPMENT)
21810
21812
  },
21811
21813
  addEvent ()
21812
21814
  {
21813
- this .setModificationTime (Date .now ());
21814
-
21815
21815
  for (const parent of this [_parents] .values ())
21816
21816
  parent .deref () ?.addEvent (this);
21817
21817
  },
21818
21818
  addEventObject (field, event)
21819
21819
  {
21820
- this .setModificationTime (Date .now ());
21821
-
21822
21820
  for (const parent of this [_parents] .values ())
21823
21821
  parent .deref () ?.addEventObject (this, event);
21824
21822
  },
@@ -21936,15 +21934,11 @@ else
21936
21934
  },
21937
21935
  addEvent ()
21938
21936
  {
21939
- this .setModificationTime (Date .now ());
21940
-
21941
21937
  for (const parent of this [_parents])
21942
21938
  parent .addEvent (this);
21943
21939
  },
21944
21940
  addEventObject (field, event)
21945
21941
  {
21946
- this .setModificationTime (Date .now ());
21947
-
21948
21942
  for (const parent of this [_parents])
21949
21943
  parent .addEventObject (this, event);
21950
21944
  },
@@ -23006,8 +23000,8 @@ Object .assign (Object .setPrototypeOf (X3DField .prototype, Base_X3DChildObject
23006
23000
 
23007
23001
  for (const field of this [_fieldInterests])
23008
23002
  {
23009
- if (event .has (field))
23010
- continue;
23003
+ if (event .has (field))
23004
+ continue;
23011
23005
 
23012
23006
  if (first)
23013
23007
  {
@@ -27914,6 +27908,44 @@ Object .assign (Rotation4 .prototype,
27914
27908
  this .update ();
27915
27909
  return this;
27916
27910
  },
27911
+ /**
27912
+ * Straightens the rotation so that the x-axis of this rotation is parallel to the plane spawned by upVector.
27913
+ */
27914
+ straighten: (() =>
27915
+ {
27916
+ const
27917
+ localXAxis = new Numbers_Vector3 (0, 0, 0),
27918
+ localZAxis = new Numbers_Vector3 (0, 0, 0),
27919
+ upNormal = new Numbers_Vector3 (0, 0, 0),
27920
+ rotation = new Rotation4 ();
27921
+
27922
+ return function (upVector = Numbers_Vector3 .yAxis)
27923
+ {
27924
+ upNormal .assign (upVector) .normalize ();
27925
+
27926
+ this .multVecRot (localXAxis .assign (Numbers_Vector3 .xAxis) .negate ());
27927
+ this .multVecRot (localZAxis .assign (Numbers_Vector3 .zAxis));
27928
+
27929
+ // If viewer looks along up vector.
27930
+ if (Math .abs (localZAxis .dot (upNormal)) >= 1)
27931
+ return this;
27932
+
27933
+ const newXAxis = localZAxis .cross (upNormal) .normalize ();
27934
+
27935
+ if (newXAxis .dot (localXAxis) <= -1)
27936
+ {
27937
+ rotation .setAxisAngle (Numbers_Vector3 .zAxis, Math .PI);
27938
+
27939
+ return this .multLeft (rotation);
27940
+ }
27941
+ else
27942
+ {
27943
+ rotation .setFromToVec (localXAxis, newXAxis);
27944
+
27945
+ return this .multRight (rotation);
27946
+ }
27947
+ };
27948
+ })(),
27917
27949
  toString ()
27918
27950
  {
27919
27951
  return this [_x] + " " +
@@ -29159,13 +29191,12 @@ const SFNode_handler =
29159
29191
  return value;
29160
29192
 
29161
29193
  const
29162
- node = target .getValue (),
29163
- field = node .getField (key),
29164
- accessType = field .getAccessType ();
29194
+ node = target .getValue (),
29195
+ field = node .getField (key);
29165
29196
 
29166
29197
  // Specification conform would be: accessType & X3DConstants .outputOnly.
29167
29198
  // But we allow read access to plain fields, too.
29168
- if (accessType === Base_X3DConstants .inputOnly)
29199
+ if (field .getAccessType () === Base_X3DConstants .inputOnly)
29169
29200
  return undefined;
29170
29201
 
29171
29202
  return field .valueOf ();
@@ -29365,6 +29396,15 @@ Object .assign (Object .setPrototypeOf (SFNode .prototype, Base_X3DField .protot
29365
29396
 
29366
29397
  throw new Error ("SFNode.getNodeType: node is null.");
29367
29398
  },
29399
+ getFieldDefinition (name)
29400
+ {
29401
+ const fieldDefinition = this .getFieldDefinitions () .get (name);
29402
+
29403
+ if (fieldDefinition)
29404
+ return fieldDefinition;
29405
+
29406
+ throw new Error (`Unknown field '${name}' in node class ${this .getNodeTypeName ()}.`);
29407
+ },
29368
29408
  getFieldDefinitions ()
29369
29409
  {
29370
29410
  const
@@ -30047,6 +30087,10 @@ Object .assign (Object .setPrototypeOf (SFRotation .prototype, Base_X3DField .pr
30047
30087
  {
30048
30088
  return new SFRotation (this .getValue () .copy () .slerp (rotation .getValue (), t));
30049
30089
  },
30090
+ straighten (upVector)
30091
+ {
30092
+ return new SFRotation (this .getValue () .copy () .straighten (upVector ?.getValue ()));
30093
+ },
30050
30094
  toStream (generator)
30051
30095
  {
30052
30096
  const { x, y, z, angle } = this .getValue ();
@@ -31064,7 +31108,7 @@ function X3DObjectArrayField (values)
31064
31108
  this [X3DObjectArrayField_proxy] = proxy;
31065
31109
 
31066
31110
  for (const value of values)
31067
- this .push (value);
31111
+ this .push (value);
31068
31112
 
31069
31113
  return proxy;
31070
31114
  }
@@ -31093,7 +31137,6 @@ Object .assign (Object .setPrototypeOf (X3DObjectArrayField .prototype, Base_X3D
31093
31137
  copy = target .create ();
31094
31138
 
31095
31139
  copy .assign (target);
31096
- copy .setModificationTime (0);
31097
31140
 
31098
31141
  return copy;
31099
31142
  },
@@ -31644,7 +31687,7 @@ function X3DTypedArrayField (values)
31644
31687
  }
31645
31688
 
31646
31689
  for (const value of values)
31647
- this .push (value);
31690
+ this .push (value);
31648
31691
 
31649
31692
  return proxy;
31650
31693
  }
@@ -31699,8 +31742,6 @@ Object .assign (Object .setPrototypeOf (X3DTypedArrayField .prototype, Base_X3DA
31699
31742
 
31700
31743
  Base_X3DArrayField .prototype .set .call (copy, copyArray);
31701
31744
 
31702
- copy .setModificationTime (0);
31703
-
31704
31745
  return copy;
31705
31746
  },
31706
31747
  equals (other)
@@ -32446,8 +32487,19 @@ function createValue (target, index, components, valueType)
32446
32487
  internalValue = value .getValue (),
32447
32488
  i = index * components;
32448
32489
 
32449
- value .addEvent = addEvent .bind (target, i, components, internalValue);
32450
- value .getValue = getValue .bind (target, i, components, internalValue);
32490
+ Object .defineProperties (value,
32491
+ {
32492
+ addEvent:
32493
+ {
32494
+ value: addEvent .bind (target, i, components, internalValue),
32495
+ configurable: true,
32496
+ },
32497
+ getValue:
32498
+ {
32499
+ value: getValue .bind (target, i, components, internalValue),
32500
+ configurable: true,
32501
+ },
32502
+ });
32451
32503
 
32452
32504
  return value;
32453
32505
  }
@@ -32575,8 +32627,6 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32575
32627
  for (const node of this .getValue ())
32576
32628
  copy .push (node .copy (instance));
32577
32629
 
32578
- copy .setModificationTime (0);
32579
-
32580
32630
  return copy;
32581
32631
  }
32582
32632
  else
@@ -32789,8 +32839,8 @@ Object .assign (Object .setPrototypeOf (MFNode .prototype, Base_X3DObjectArrayFi
32789
32839
  else
32790
32840
  {
32791
32841
  generator .string += '[';
32792
- generator .string += generator .TidySpace ();
32793
- generator .string += ']';
32842
+ generator .string += generator .TidySpace ();
32843
+ generator .string += ']';
32794
32844
  }
32795
32845
  },
32796
32846
  dispose ()
@@ -33142,10 +33192,10 @@ Object .assign (Object .setPrototypeOf (SFImage .prototype, Base_X3DField .proto
33142
33192
  },
33143
33193
  *[Symbol .iterator] ()
33144
33194
  {
33145
- yield this .width;
33146
- yield this .height;
33147
- yield this .comp;
33148
- yield this .array;
33195
+ yield this .width;
33196
+ yield this .height;
33197
+ yield this .comp;
33198
+ yield* this .array;
33149
33199
  },
33150
33200
  copy ()
33151
33201
  {
@@ -33653,10 +33703,25 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33653
33703
  {
33654
33704
  return this [_executionContext];
33655
33705
  },
33656
- setExecutionContext (value)
33706
+ setExecutionContext (executionContext)
33657
33707
  {
33708
+ // Disconnect interests.
33709
+
33710
+ this .getOuterNode ?.() ?.getLive () .removeInterest (_set_live__, this);
33711
+ this [_executionContext] .getLive () .removeInterest (_set_live__, this);
33712
+
33658
33713
  // Currently only useful for Scene.
33659
- this [_executionContext] = value;
33714
+ this [_executionContext] = executionContext;
33715
+
33716
+ // Connect interests.
33717
+
33718
+ if (this .getOuterNode ?.())
33719
+ this .getOuterNode () .getLive () .addInterest (_set_live__, this);
33720
+
33721
+ else if (this [_executionContext] !== this)
33722
+ this [_executionContext] .getLive () .addInterest (_set_live__, this);
33723
+
33724
+ this [_set_live__] ();
33660
33725
  },
33661
33726
  addType (value)
33662
33727
  {
@@ -33739,7 +33804,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33739
33804
  /// Sets the own live state of this node. Setting the live state to false
33740
33805
  /// temporarily disables this node completely.
33741
33806
 
33742
- this [_live] = value .valueOf ();
33807
+ this [_live] = !!value .valueOf ();
33743
33808
 
33744
33809
  this [_set_live__] ();
33745
33810
  },
@@ -33868,7 +33933,7 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
33868
33933
  {
33869
33934
  get () { return field; },
33870
33935
  set (value) { field .setValue (value); },
33871
- configurable: true,
33936
+ configurable: true,
33872
33937
  });
33873
33938
  },
33874
33939
  addAlias (alias, field)
@@ -34040,7 +34105,10 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34040
34105
  addEvent (field)
34041
34106
  {
34042
34107
  if (field .isTainted ())
34108
+ {
34109
+ field .setModificationTime (Date .now ());
34043
34110
  return;
34111
+ }
34044
34112
 
34045
34113
  // if (this .getTypeName () === "HAnimMotion")
34046
34114
  // {
@@ -34056,6 +34124,8 @@ Object .assign (Object .setPrototypeOf (X3DBaseNode .prototype, Base_X3DChildObj
34056
34124
  {
34057
34125
  const browser = this [_browser];
34058
34126
 
34127
+ field .setModificationTime (Date .now ());
34128
+
34059
34129
  // Register for processEvent
34060
34130
 
34061
34131
  browser .addTaintedField (field, event);
@@ -34176,7 +34246,7 @@ const X3DBaseNode_default_ = X3DBaseNode;
34176
34246
  x_ite_Namespace .add ("X3DBaseNode", "x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34177
34247
  /* harmony default export */ const Base_X3DBaseNode = (X3DBaseNode_default_);
34178
34248
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Legacy.js
34179
- /* provided dependency */ var $ = __webpack_require__(368);
34249
+ /* provided dependency */ var $ = __webpack_require__(37);
34180
34250
  /*******************************************************************************
34181
34251
  *
34182
34252
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -34313,7 +34383,7 @@ x_ite_Namespace .add ("Legacy", "x_ite/Browser/Legacy", Legacy_default_);
34313
34383
  *
34314
34384
  ******************************************************************************/
34315
34385
 
34316
- const BROWSER_VERSION_default_ = "9.2.7";
34386
+ const BROWSER_VERSION_default_ = "9.3.1";
34317
34387
  ;
34318
34388
 
34319
34389
  x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSION_default_);
@@ -34370,6 +34440,9 @@ x_ite_Namespace .add ("BROWSER_VERSION", "x_ite/BROWSER_VERSION", BROWSER_VERSIO
34370
34440
 
34371
34441
 
34372
34442
 
34443
+
34444
+ const _metaDataCallbacks = Symbol ();
34445
+
34373
34446
  function X3DNode (executionContext)
34374
34447
  {
34375
34448
  Base_X3DBaseNode .call (this, executionContext);
@@ -34552,6 +34625,350 @@ Object .assign (Object .setPrototypeOf (X3DNode .prototype, Base_X3DBaseNode .pr
34552
34625
  return null;
34553
34626
  },
34554
34627
  traverse () { },
34628
+ hasMetaData (path)
34629
+ {
34630
+ const names = path .split ("/");
34631
+
34632
+ if (names .length < 2)
34633
+ return false;
34634
+
34635
+ const
34636
+ last = names .pop (),
34637
+ metadataSet = this .getMetadataSet (names),
34638
+ metadataObject = metadataSet ?.getValue () .getMetaValue (last);
34639
+
34640
+ return !!metadataObject;
34641
+ },
34642
+ getMetaData (path, field)
34643
+ {
34644
+ const names = path .split ("/");
34645
+
34646
+ if (names .length < 2)
34647
+ return;
34648
+
34649
+ const
34650
+ last = names .pop (),
34651
+ metadataSet = this .getMetadataSet (names),
34652
+ metadataObject = metadataSet ?.getValue () .getMetaValue (last);
34653
+
34654
+ if (field instanceof Base_X3DField)
34655
+ {
34656
+ if (!metadataObject)
34657
+ return field;
34658
+
34659
+ switch (field .getType ())
34660
+ {
34661
+ case Base_X3DConstants .SFBool:
34662
+ case Base_X3DConstants .SFDouble:
34663
+ case Base_X3DConstants .SFFloat:
34664
+ case Base_X3DConstants .SFInt32:
34665
+ case Base_X3DConstants .SFString:
34666
+ case Base_X3DConstants .SFTime:
34667
+ {
34668
+ field .setValue (metadataObject .value [0]);
34669
+ break;
34670
+ }
34671
+ case Base_X3DConstants .SFColor:
34672
+ case Base_X3DConstants .SFColorRGBA:
34673
+ case Base_X3DConstants .SFMatrix3d:
34674
+ case Base_X3DConstants .SFMatrix3f:
34675
+ case Base_X3DConstants .SFMatrix4d:
34676
+ case Base_X3DConstants .SFMatrix4f:
34677
+ case Base_X3DConstants .SFRotation:
34678
+ case Base_X3DConstants .SFVec2d:
34679
+ case Base_X3DConstants .SFVec2f:
34680
+ case Base_X3DConstants .SFVec3d:
34681
+ case Base_X3DConstants .SFVec3f:
34682
+ case Base_X3DConstants .SFVec4d:
34683
+ case Base_X3DConstants .SFVec4f:
34684
+ {
34685
+ const value = metadataObject .value;
34686
+
34687
+ let i = 0;
34688
+
34689
+ for (const key in field)
34690
+ field [key] = value [i ++];
34691
+
34692
+ break;
34693
+ }
34694
+ case Base_X3DConstants .SFImage:
34695
+ {
34696
+ const
34697
+ value = metadataObject .value,
34698
+ array = field .array;
34699
+
34700
+ field .width = value [0];
34701
+ field .height = value [1];
34702
+ field .comp = value [2];
34703
+
34704
+ const l = array .length;
34705
+
34706
+ for (let i = 0; i < l; ++ i)
34707
+ array [i] = value [3 + i];
34708
+
34709
+ break;
34710
+ }
34711
+ case Base_X3DConstants .SFNode:
34712
+ case Base_X3DConstants .MFNode:
34713
+ {
34714
+ throw new Error ("SFNode and MFNode are not supported as metadata value.");
34715
+ }
34716
+ case Base_X3DConstants .MFBool:
34717
+ case Base_X3DConstants .MFDouble:
34718
+ case Base_X3DConstants .MFFloat:
34719
+ case Base_X3DConstants .MFInt32:
34720
+ case Base_X3DConstants .MFString:
34721
+ case Base_X3DConstants .MFTime:
34722
+ {
34723
+ field .length = 0;
34724
+
34725
+ for (const v of metadataObject .value)
34726
+ field .push (v);
34727
+
34728
+ break;
34729
+ }
34730
+ case Base_X3DConstants .MFColor:
34731
+ case Base_X3DConstants .MFColorRGBA:
34732
+ case Base_X3DConstants .MFMatrix3d:
34733
+ case Base_X3DConstants .MFMatrix3f:
34734
+ case Base_X3DConstants .MFMatrix4d:
34735
+ case Base_X3DConstants .MFMatrix4f:
34736
+ case Base_X3DConstants .MFRotation:
34737
+ case Base_X3DConstants .MFVec2d:
34738
+ case Base_X3DConstants .MFVec2f:
34739
+ case Base_X3DConstants .MFVec3d:
34740
+ case Base_X3DConstants .MFVec3f:
34741
+ case Base_X3DConstants .MFVec4d:
34742
+ case Base_X3DConstants .MFVec4f:
34743
+ {
34744
+ const
34745
+ value = metadataObject .value,
34746
+ length = value .length;
34747
+
34748
+ field .length = 0;
34749
+
34750
+ for (let i = 0; i < length;)
34751
+ {
34752
+ const f = field [field .length];
34753
+
34754
+ for (const key in f)
34755
+ f [key] = value [i ++];
34756
+ }
34757
+
34758
+ break;
34759
+ }
34760
+ case Base_X3DConstants .MFImage:
34761
+ {
34762
+ const
34763
+ value = metadataObject .value,
34764
+ length = value .length;
34765
+
34766
+ field .length = 0;
34767
+
34768
+ for (let i = 0; i < length;)
34769
+ {
34770
+ const
34771
+ f = field [field .length],
34772
+ a = f .array;
34773
+
34774
+ f .width = value [i ++];
34775
+ f .height = value [i ++];
34776
+ f .comp = value [i ++];
34777
+
34778
+ const l = a .length;
34779
+
34780
+ for (let k = 0; k < l; ++ k)
34781
+ a [k] = value [i ++];
34782
+ }
34783
+
34784
+ break;
34785
+ }
34786
+ }
34787
+
34788
+ return field;
34789
+ }
34790
+
34791
+ return metadataObject ? Array .from (metadataObject .value) : [ ];
34792
+ },
34793
+ setMetaData (path, value)
34794
+ {
34795
+ const names = path .split ("/");
34796
+
34797
+ if (names .length < 2)
34798
+ return;
34799
+
34800
+ const
34801
+ last = names .pop (),
34802
+ metadataSet = this .getMetadataSet (names, true);
34803
+
34804
+ if (value instanceof Base_X3DField)
34805
+ {
34806
+ const field = value;
34807
+
34808
+ switch (value .getType ())
34809
+ {
34810
+ case Base_X3DConstants .SFBool:
34811
+ case Base_X3DConstants .SFDouble:
34812
+ case Base_X3DConstants .SFFloat:
34813
+ case Base_X3DConstants .SFInt32:
34814
+ case Base_X3DConstants .SFString:
34815
+ case Base_X3DConstants .SFTime:
34816
+ {
34817
+ value = [field .valueOf ()];
34818
+ break;
34819
+ }
34820
+ case Base_X3DConstants .SFNode:
34821
+ case Base_X3DConstants .MFNode:
34822
+ throw new Error ("SFNode and MFNode are not supported as metadata value.");
34823
+ default:
34824
+ {
34825
+ value = Array .from (field, f => f instanceof Base_X3DField ? Array .from (f) : f) .flat ();
34826
+ break;
34827
+ }
34828
+ }
34829
+
34830
+ switch (field .getType ())
34831
+ {
34832
+ case Base_X3DConstants .SFBool:
34833
+ case Base_X3DConstants .MFBool:
34834
+ value .type = "boolean";
34835
+ break;
34836
+ case Base_X3DConstants .SFDouble:
34837
+ case Base_X3DConstants .SFMatrix3d:
34838
+ case Base_X3DConstants .SFMatrix4d:
34839
+ case Base_X3DConstants .SFRotation:
34840
+ case Base_X3DConstants .SFTime:
34841
+ case Base_X3DConstants .SFVec2d:
34842
+ case Base_X3DConstants .SFVec3d:
34843
+ case Base_X3DConstants .SFVec4d:
34844
+ case Base_X3DConstants .MFDouble:
34845
+ case Base_X3DConstants .MFMatrix3d:
34846
+ case Base_X3DConstants .MFMatrix4d:
34847
+ case Base_X3DConstants .MFRotation:
34848
+ case Base_X3DConstants .MFTime:
34849
+ case Base_X3DConstants .MFVec2d:
34850
+ case Base_X3DConstants .MFVec3d:
34851
+ case Base_X3DConstants .MFVec4d:
34852
+ value .type = "double";
34853
+ break;
34854
+ case Base_X3DConstants .SFColor:
34855
+ case Base_X3DConstants .SFColorRGBA:
34856
+ case Base_X3DConstants .SFFloat:
34857
+ case Base_X3DConstants .SFMatrix3f:
34858
+ case Base_X3DConstants .SFMatrix4f:
34859
+ case Base_X3DConstants .SFVec2f:
34860
+ case Base_X3DConstants .SFVec3f:
34861
+ case Base_X3DConstants .SFVec4f:
34862
+ case Base_X3DConstants .MFColor:
34863
+ case Base_X3DConstants .MFColorRGBA:
34864
+ case Base_X3DConstants .MFFloat:
34865
+ case Base_X3DConstants .MFMatrix3f:
34866
+ case Base_X3DConstants .MFMatrix4f:
34867
+ case Base_X3DConstants .MFVec2f:
34868
+ case Base_X3DConstants .MFVec3f:
34869
+ case Base_X3DConstants .MFVec4f:
34870
+ value .type = "float";
34871
+ break;
34872
+ case Base_X3DConstants .SFInt32:
34873
+ case Base_X3DConstants .SFImage:
34874
+ case Base_X3DConstants .MFInt32:
34875
+ case Base_X3DConstants .MFImage:
34876
+ value .type = "integer";
34877
+ break;
34878
+ case Base_X3DConstants .SFString:
34879
+ case Base_X3DConstants .MFString:
34880
+ value .type = "string";
34881
+ break;
34882
+ }
34883
+ }
34884
+
34885
+ metadataSet .getValue () .setMetaValue (last, value);
34886
+
34887
+ this .processMetaDataCallback (path);
34888
+ },
34889
+ removeMetaData (path)
34890
+ {
34891
+ const names = path .split ("/");
34892
+
34893
+ if (names .length < 2)
34894
+ return;
34895
+
34896
+ function removeMetaData (metadataSet, names)
34897
+ {
34898
+ if (!metadataSet)
34899
+ return false;
34900
+
34901
+ const name = names .shift ();
34902
+
34903
+ if (!names .length || removeMetaData (metadataSet .getValue () .getMetadataObject ("MetadataSet", name), names))
34904
+ {
34905
+ metadataSet .getValue () .removeMetaValue (name);
34906
+ }
34907
+
34908
+ return !metadataSet .value .length;
34909
+ }
34910
+
34911
+ if (removeMetaData (this .getMetadataSet ([names .shift ()]), names))
34912
+ this ._metadata = null;
34913
+ },
34914
+ getMetadataSet (names, create = false)
34915
+ {
34916
+ const name = names .shift ();
34917
+
34918
+ let metadataSet = this ._metadata .valueOf ();
34919
+
34920
+ if (metadataSet ?.getNodeTypeName () !== "MetadataSet" || metadataSet ?.name !== name)
34921
+ {
34922
+ if (!create)
34923
+ return null;
34924
+
34925
+ this ._metadata = this .getExecutionContext () .createNode ("MetadataSet");
34926
+ metadataSet = this ._metadata .valueOf ();
34927
+
34928
+ metadataSet .reference = this .getBrowser () .getBrowserOption ("MetadataReference");
34929
+ metadataSet .name = name;
34930
+ }
34931
+
34932
+ for (const name of names)
34933
+ metadataSet = metadataSet .getValue () .getMetadataObject ("MetadataSet", name, create);
34934
+
34935
+ return metadataSet;
34936
+ },
34937
+ [_metaDataCallbacks]: new Map (),
34938
+ addMetaDataCallback (key, path, callback)
34939
+ {
34940
+ if (!this .hasOwnProperty (_metaDataCallbacks))
34941
+ this [_metaDataCallbacks] = new Map ();
34942
+
34943
+ let map = this [_metaDataCallbacks] .get (path);
34944
+
34945
+ if (!map)
34946
+ this [_metaDataCallbacks] .set (path, map = new Map ());
34947
+
34948
+ map .set (key, callback);
34949
+ },
34950
+ removeMetaDataCallback (key, path)
34951
+ {
34952
+ const map = this [_metaDataCallbacks] .get (path);
34953
+
34954
+ if (!map)
34955
+ return;
34956
+
34957
+ map .delete (key);
34958
+
34959
+ if (map .size === 0)
34960
+ this [_metaDataCallbacks] .delete (path);
34961
+ },
34962
+ processMetaDataCallback (path)
34963
+ {
34964
+ const map = this [_metaDataCallbacks] .get (path);
34965
+
34966
+ if (!map)
34967
+ return;
34968
+
34969
+ for (const callback of map .values ())
34970
+ callback ();
34971
+ },
34555
34972
  toStream (generator)
34556
34973
  {
34557
34974
  generator .string += this .getTypeName () + " { }";
@@ -36418,6 +36835,84 @@ Object .assign (Object .setPrototypeOf (MetadataSet .prototype, Core_X3DNode .pr
36418
36835
 
36419
36836
  return Core_X3DNode .prototype .getContainerField .call (this);
36420
36837
  },
36838
+ getMetaValue (name)
36839
+ {
36840
+ return this ._value .find (node => node .name === name);
36841
+ },
36842
+ setMetaValue (name, value)
36843
+ {
36844
+ if (!Array .isArray (value))
36845
+ value = [value];
36846
+
36847
+ switch (value .type ?? (typeof value [0]))
36848
+ {
36849
+ case "boolean":
36850
+ {
36851
+ this .getMetadataObject ("MetadataBoolean", name, true) .value = value;
36852
+ return;
36853
+ }
36854
+ case "number":
36855
+ {
36856
+ if (value .every (v => Number .isInteger (v)))
36857
+ this .getMetadataObject ("MetadataInteger", name, true) .value = value;
36858
+ else
36859
+ this .getMetadataObject ("MetadataDouble", name, true) .value = value;
36860
+
36861
+ return;
36862
+ }
36863
+ case "double":
36864
+ {
36865
+ this .getMetadataObject ("MetadataDouble", name, true) .value = value;
36866
+ break;
36867
+ }
36868
+ case "float":
36869
+ {
36870
+ this .getMetadataObject ("MetadataFloat", name, true) .value = value;
36871
+ break;
36872
+ }
36873
+ case "integer":
36874
+ {
36875
+ this .getMetadataObject ("MetadataInteger", name, true) .value = value;
36876
+ break;
36877
+ }
36878
+ case "string":
36879
+ {
36880
+ this .getMetadataObject ("MetadataString", name, true) .value = value;
36881
+ return;
36882
+ }
36883
+ }
36884
+ },
36885
+ removeMetaValue (name)
36886
+ {
36887
+ const index = this ._value .findIndex (node => node .name === name);
36888
+
36889
+ if (index < 0)
36890
+ return;
36891
+
36892
+ this ._value .splice (index, 1);
36893
+ },
36894
+ getMetadataObject (typeName, name, create = false)
36895
+ {
36896
+ let metadata = this .getMetaValue (name);
36897
+
36898
+ if (metadata ?.getNodeTypeName () === typeName)
36899
+ return metadata;
36900
+
36901
+ if (!create)
36902
+ return null;
36903
+
36904
+ if (metadata)
36905
+ this .removeMetaValue (name);
36906
+
36907
+ metadata = this .getExecutionContext () .createNode (typeName);
36908
+
36909
+ metadata .reference = "";
36910
+ metadata .name = name;
36911
+
36912
+ this ._value .push (metadata);
36913
+
36914
+ return metadata;
36915
+ },
36421
36916
  dispose ()
36422
36917
  {
36423
36918
  Core_X3DMetadataObject .prototype .dispose .call (this);
@@ -36658,7 +37153,7 @@ Object .assign (Object .setPrototypeOf (X3DChildNode .prototype, Core_X3DNode .p
36658
37153
  {
36659
37154
  setCameraObject (value)
36660
37155
  {
36661
- if (value !== this ._isCameraObject .getValue ())
37156
+ if (!!value !== this ._isCameraObject .getValue ())
36662
37157
  this ._isCameraObject = value;
36663
37158
  },
36664
37159
  isCameraObject ()
@@ -36667,7 +37162,7 @@ Object .assign (Object .setPrototypeOf (X3DChildNode .prototype, Core_X3DNode .p
36667
37162
  },
36668
37163
  setPickableObject (value)
36669
37164
  {
36670
- if (value !== this ._isPickableObject .getValue ())
37165
+ if (!!value !== this ._isPickableObject .getValue ())
36671
37166
  this ._isPickableObject = value;
36672
37167
  },
36673
37168
  isPickableObject ()
@@ -36845,13 +37340,20 @@ Object .assign (Object .setPrototypeOf (WorldInfo .prototype, Core_X3DInfoNode .
36845
37340
  {
36846
37341
  Core_X3DInfoNode .prototype .initialize .call (this);
36847
37342
 
36848
- this .getExecutionContext () .addWorldInfo (this);
37343
+ if (this .isLive ())
37344
+ this .getExecutionContext () .addWorldInfo (this);
36849
37345
  },
36850
- dispose ()
37346
+ setLive (value)
36851
37347
  {
36852
- this .getExecutionContext () .removeWorldInfo (this);
37348
+ if (!!value .valueOf () === this .isLive ())
37349
+ return;
36853
37350
 
36854
- Core_X3DInfoNode .prototype .dispose .call (this);
37351
+ Core_X3DInfoNode .prototype .setLive .call (this, value);
37352
+
37353
+ if (this .isLive ())
37354
+ this .getExecutionContext () .addWorldInfo (this);
37355
+ else
37356
+ this .getExecutionContext () .removeWorldInfo (this);
36855
37357
  },
36856
37358
  });
36857
37359
 
@@ -38457,7 +38959,7 @@ const X3DProtoDeclaration_default_ = X3DProtoDeclaration;
38457
38959
  x_ite_Namespace .add ("X3DProtoDeclaration", "x_ite/Prototype/X3DProtoDeclaration", X3DProtoDeclaration_default_);
38458
38960
  /* harmony default export */ const Prototype_X3DProtoDeclaration = (X3DProtoDeclaration_default_);
38459
38961
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
38460
- /* provided dependency */ var X3DParser_$ = __webpack_require__(368);
38962
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(37);
38461
38963
  /*******************************************************************************
38462
38964
  *
38463
38965
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38719,7 +39221,7 @@ const Expressions_default_ = Expressions;
38719
39221
  x_ite_Namespace .add ("Expressions", "x_ite/Parser/Expressions", Expressions_default_);
38720
39222
  /* harmony default export */ const Parser_Expressions = (Expressions_default_);
38721
39223
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/VRMLParser.js
38722
- /* provided dependency */ var VRMLParser_$ = __webpack_require__(368);
39224
+ /* provided dependency */ var VRMLParser_$ = __webpack_require__(37);
38723
39225
  /*******************************************************************************
38724
39226
  *
38725
39227
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -38796,7 +39298,7 @@ const Grammar = Parser_Expressions ({
38796
39298
  Break: /\r?\n/g,
38797
39299
 
38798
39300
  // Header
38799
- Header: /^#(VRML|X3D) V(.*?) (utf8)(?:[ \t]+(.*?))?[ \t]*[\n\r]/gy,
39301
+ Header: /^#(VRML|X3D) V(.*?) (utf8)(?:[ \t]+(.*?))?[ \t]*[\n\r]/gy,
38800
39302
 
38801
39303
  // Keywords
38802
39304
  AS: /AS/gy,
@@ -41405,7 +41907,7 @@ const VRMLParser_default_ = VRMLParser;
41405
41907
  x_ite_Namespace .add ("VRMLParser", "x_ite/Parser/VRMLParser", VRMLParser_default_);
41406
41908
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
41407
41909
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
41408
- /* provided dependency */ var XMLParser_$ = __webpack_require__(368);
41910
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(37);
41409
41911
  /*******************************************************************************
41410
41912
  *
41411
41913
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -42181,21 +42683,21 @@ Object .assign (Object .setPrototypeOf (XMLParser .prototype, Parser_X3DParser .
42181
42683
  }
42182
42684
  },
42183
42685
  scriptElement (element)
42184
- {
42185
- const
42186
- domParser = new DOMParser (),
42187
- scriptDocument = domParser .parseFromString (element .outerHTML, "application/xml"),
42188
- childNodes = scriptDocument .children [0] .childNodes;
42686
+ {
42687
+ const
42688
+ domParser = new DOMParser (),
42689
+ scriptDocument = domParser .parseFromString (element .outerHTML, "application/xml"),
42690
+ childNodes = scriptDocument .children [0] .childNodes;
42189
42691
 
42190
42692
  element .textContent = "// Content moved into childNodes.";
42191
42693
 
42192
- for (const childNode of childNodes)
42193
- {
42694
+ for (const childNode of childNodes)
42695
+ {
42194
42696
  // Add elements and cdata.
42195
- if (childNode .nodeType === 1 || childNode .nodeType === 4)
42697
+ if (childNode .nodeType === 1 || childNode .nodeType === 4)
42196
42698
  element .appendChild (childNode);
42197
- }
42198
- },
42699
+ }
42700
+ },
42199
42701
  routeElement (xmlElement)
42200
42702
  {
42201
42703
  try
@@ -43514,7 +44016,7 @@ const URLs_default_ = URLs;
43514
44016
  x_ite_Namespace .add ("URLs", "x_ite/Browser/Networking/URLs", URLs_default_);
43515
44017
  /* harmony default export */ const Networking_URLs = (URLs_default_);
43516
44018
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
43517
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(368);
44019
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(37);
43518
44020
  /*******************************************************************************
43519
44021
  *
43520
44022
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44253,7 +44755,7 @@ Object .assign (Object .setPrototypeOf (GLTF2Parser .prototype, Parser_X3DParser
44253
44755
  [9729, "AVG_PIXEL"],
44254
44756
  ]);
44255
44757
 
44256
- const BoundaryModes = new Map ([
44758
+ const BoundaryModes = new Map ([
44257
44759
  [33071, "CLAMP_TO_EDGE"],
44258
44760
  [33648, "MIRRORED_REPEAT"],
44259
44761
  [10497, "REPEAT"],
@@ -46815,7 +47317,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
46815
47317
  x_ite_Namespace .add ("GLTF2Parser", "x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
46816
47318
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
46817
47319
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
46818
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(368);
47320
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(37);
46819
47321
  /*******************************************************************************
46820
47322
  *
46821
47323
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46967,7 +47469,7 @@ const GLB2Parser_default_ = GLB2Parser;
46967
47469
  x_ite_Namespace .add ("GLB2Parser", "x_ite/Parser/GLB2Parser", GLB2Parser_default_);
46968
47470
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
46969
47471
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
46970
- /* provided dependency */ var OBJParser_$ = __webpack_require__(368);
47472
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(37);
46971
47473
  /*******************************************************************************
46972
47474
  *
46973
47475
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -47753,7 +48255,7 @@ Object .assign (MaterialParser .prototype,
47753
48255
  statements ()
47754
48256
  {
47755
48257
  while (this .statement ())
47756
- ;
48258
+ ;
47757
48259
  },
47758
48260
  statement ()
47759
48261
  {
@@ -50322,8 +50824,8 @@ const MatrixStack_default_ = MatrixStack;
50322
50824
  x_ite_Namespace .add ("MatrixStack", "standard/Math/Utility/MatrixStack", MatrixStack_default_);
50323
50825
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
50324
50826
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
50325
- /* provided dependency */ var SVGParser_$ = __webpack_require__(368);
50326
- /* provided dependency */ var libtess = __webpack_require__(125);
50827
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(37);
50828
+ /* provided dependency */ var libtess = __webpack_require__(214);
50327
50829
  /*******************************************************************************
50328
50830
  *
50329
50831
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -50689,7 +51191,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
50689
51191
  elements (xmlElement)
50690
51192
  {
50691
51193
  for (const childNode of xmlElement .childNodes)
50692
- this .element (childNode);
51194
+ this .element (childNode);
50693
51195
  },
50694
51196
  element (xmlElement)
50695
51197
  {
@@ -51434,7 +51936,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
51434
51936
  gradientChild (xmlElement, gradient)
51435
51937
  {
51436
51938
  if (xmlElement .nodeName === "stop")
51437
- return this .stopElement (xmlElement, gradient);
51939
+ return this .stopElement (xmlElement, gradient);
51438
51940
  },
51439
51941
  stopElement (xmlElement, gradient)
51440
51942
  {
@@ -51539,8 +52041,8 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
51539
52041
 
51540
52042
  if (name)
51541
52043
  {
51542
- scene .addNamedNode (scene .getUniqueName (name), node);
51543
- scene .addExportedNode (scene .getUniqueExportName (name), node);
52044
+ scene .addNamedNode (scene .getUniqueName (name), node);
52045
+ scene .addExportedNode (scene .getUniqueExportName (name), node);
51544
52046
  }
51545
52047
  },
51546
52048
  viewBoxAttribute (attribute, defaultValue)
@@ -52225,7 +52727,7 @@ Object .assign (Object .setPrototypeOf (SVGParser .prototype, Parser_X3DParser .
52225
52727
  }
52226
52728
 
52227
52729
  if (points .length > 2)
52228
- contours .push (Object .assign (points, { closed: false }));
52730
+ contours .push (Object .assign (points, { closed: false }));
52229
52731
 
52230
52732
  return !! contours .length;
52231
52733
  },
@@ -53091,7 +53593,7 @@ const SVGParser_default_ = SVGParser;
53091
53593
  x_ite_Namespace .add ("SVGParser", "x_ite/Parser/SVGParser", SVGParser_default_);
53092
53594
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
53093
53595
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
53094
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(368);
53596
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(37);
53095
53597
  /*******************************************************************************
53096
53598
  *
53097
53599
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -53441,7 +53943,7 @@ const Plane3_default_ = Plane3;
53441
53943
  x_ite_Namespace .add ("Plane3", "standard/Math/Geometry/Plane3", Plane3_default_);
53442
53944
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
53443
53945
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
53444
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(125);
53946
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(214);
53445
53947
  /*******************************************************************************
53446
53948
  *
53447
53949
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -56723,15 +57225,15 @@ Object .assign (X3DRenderObject .prototype,
56723
57225
 
56724
57226
  //if (getBrowser () -> getBrowserOptions () -> animateStairWalks ())
56725
57227
  //{
56726
- // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
56727
- // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
57228
+ // float step = getBrowser () -> getCurrentSpeed () / getBrowser () -> getCurrentFrameRate ();
57229
+ // step = abs (getViewMatrix () .mult_matrix_dir (Vector3f (0, step, 0) * up));
56728
57230
  //
56729
- // Vector3f offset = Vector3f (0, step, 0) * up;
57231
+ // Vector3f offset = Vector3f (0, step, 0) * up;
56730
57232
  //
56731
- // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
56732
- // offset = translation;
57233
+ // if (math::abs (offset) > math::abs (translation) or getBrowser () -> getCurrentSpeed () == 0)
57234
+ // offset = translation;
56733
57235
  //
56734
- // getViewpoint () -> positionOffset () += offset;
57236
+ // getViewpoint () -> positionOffset () += offset;
56735
57237
  //}
56736
57238
  //else
56737
57239
  viewpoint ._positionOffset = translation .add (viewpoint ._positionOffset .getValue ());
@@ -58054,7 +58556,7 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58054
58556
  }
58055
58557
  }
58056
58558
 
58057
- this .setCameraObject (!!(cameraObjects .length));
58559
+ this .setCameraObject (cameraObjects .length);
58058
58560
  },
58059
58561
  set_pickableObjects__ ()
58060
58562
  {
@@ -58081,7 +58583,7 @@ Object .assign (Object .setPrototypeOf (X3DGroupingNode .prototype, Core_X3DChil
58081
58583
  },
58082
58584
  set_transformSensors__ ()
58083
58585
  {
58084
- this .setPickableObject (!!(this .getTransformSensors () .size || this .pickableSensorNodes .length || this .pickableObjects .length));
58586
+ this .setPickableObject (this .getTransformSensors () .size || this .pickableSensorNodes .length || this .pickableObjects .length);
58085
58587
  },
58086
58588
  set_displayNodes__ ()
58087
58589
  {
@@ -59516,7 +60018,7 @@ Object .assign (Object .setPrototypeOf (X3DGeometryNode .prototype, Core_X3DNode
59516
60018
  },
59517
60019
  setTransparent (value)
59518
60020
  {
59519
- if (value !== this ._transparent .getValue ())
60021
+ if (!!value !== this ._transparent .getValue ())
59520
60022
  this ._transparent = value;
59521
60023
  },
59522
60024
  isTransparent ()
@@ -60921,7 +61423,7 @@ Object .assign (Object .setPrototypeOf (X3DBackgroundNode .prototype, Core_X3DBi
60921
61423
  vAngle .push (Math .PI);
60922
61424
 
60923
61425
  if (vAngle .length === 2)
60924
- vAngle .splice (1, 0, (vAngle [0] + vAngle [1]) / 2)
61426
+ vAngle .splice (1, 0, (vAngle [0] + vAngle [1]) / 2)
60925
61427
 
60926
61428
  this .buildSphere (RADIUS, vAngle, this ._skyAngle, this ._skyColor, false);
60927
61429
  }
@@ -61489,7 +61991,7 @@ Object .assign (Object .setPrototypeOf (X3DTextureNode .prototype, Shape_X3DAppe
61489
61991
  {
61490
61992
  setTransparent (value)
61491
61993
  {
61492
- if (value !== this ._transparent .getValue ())
61994
+ if (!!value !== this ._transparent .getValue ())
61493
61995
  this ._transparent = value;
61494
61996
  },
61495
61997
  isTransparent ()
@@ -61954,7 +62456,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
61954
62456
  x_ite_Namespace .add ("X3DTexture2DNode", "x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
61955
62457
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
61956
62458
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
61957
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(368);
62459
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(37);
61958
62460
  /*******************************************************************************
61959
62461
  *
61960
62462
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -64754,32 +65256,10 @@ Object .assign (Object .setPrototypeOf (X3DViewpointNode .prototype, Core_X3DBin
64754
65256
 
64755
65257
  this .setInterpolators (this, relative);
64756
65258
  },
64757
- straightenHorizon: (() =>
65259
+ straightenHorizon (orientation, upVector = this .getUpVector (true))
64758
65260
  {
64759
- const
64760
- localXAxis = new Numbers_Vector3 (0, 0, 0),
64761
- localZAxis = new Numbers_Vector3 (0, 0, 0),
64762
- rotation = new Numbers_Rotation4 ();
64763
-
64764
- return function (orientation, upVector = this .getUpVector (true))
64765
- {
64766
- orientation .multVecRot (localXAxis .assign (Numbers_Vector3 .xAxis) .negate ());
64767
- orientation .multVecRot (localZAxis .assign (Numbers_Vector3 .zAxis));
64768
-
64769
- const vector = localZAxis .cross (upVector);
64770
-
64771
- // If viewer looks along the up vector.
64772
- if (Math .abs (localZAxis .dot (upVector)) >= 1)
64773
- return orientation;
64774
-
64775
- if (Math .abs (vector .dot (localXAxis)) >= 1)
64776
- return orientation;
64777
-
64778
- rotation .setFromToVec (localXAxis, vector);
64779
-
64780
- return orientation .multRight (rotation);
64781
- };
64782
- })(),
65261
+ return orientation .straighten (upVector);
65262
+ },
64783
65263
  viewAll (bbox)
64784
65264
  {
64785
65265
  bbox .copy () .multRight (this .modelMatrix .copy () .inverse ());
@@ -65286,16 +65766,16 @@ Object .assign (Object .setPrototypeOf (LayerSet .prototype, Core_X3DNode .proto
65286
65766
  {
65287
65767
  return this .activeLayerNode;
65288
65768
  },
65769
+ getLayer0 ()
65770
+ {
65771
+ return this .layerNode0;
65772
+ },
65289
65773
  setLayer0 (value)
65290
65774
  {
65291
65775
  this .layerNode0 = value;
65292
65776
 
65293
65777
  this .set_layers__ ();
65294
65778
  },
65295
- getLayer0 ()
65296
- {
65297
- return this .layerNode0;
65298
- },
65299
65779
  getLayers ()
65300
65780
  {
65301
65781
  return this .layerNodes;
@@ -65577,7 +66057,7 @@ const X3DWorld_default_ = X3DWorld;
65577
66057
  x_ite_Namespace .add ("X3DWorld", "x_ite/Execution/X3DWorld", X3DWorld_default_);
65578
66058
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
65579
66059
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
65580
- /* provided dependency */ var FileLoader_$ = __webpack_require__(368);
66060
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(37);
65581
66061
  /*******************************************************************************
65582
66062
  *
65583
66063
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -65693,9 +66173,7 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
65693
66173
  {
65694
66174
  const scene = this .browser .createScene ();
65695
66175
 
65696
- if (this .node instanceof Execution_X3DWorld)
65697
- scene .loader = this;
65698
- else
66176
+ if (!(this .node instanceof Execution_X3DWorld))
65699
66177
  scene .setExecutionContext (this .executionContext);
65700
66178
 
65701
66179
  scene .setWorldURL (new URL (worldURL, this .getBaseURL ()) .href);
@@ -65729,8 +66207,6 @@ Object .assign (Object .setPrototypeOf (FileLoader .prototype, Base_X3DObject .p
65729
66207
 
65730
66208
  scene ._initLoadCount .removeInterest ("set_initLoadCount__", this);
65731
66209
 
65732
- delete scene .loader;
65733
-
65734
66210
  // Wait for instances to be created.
65735
66211
 
65736
66212
  setTimeout (() =>
@@ -65991,10 +66467,7 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
65991
66467
  {
65992
66468
  Networking_X3DUrlObject .prototype .set_live__ .call (this);
65993
66469
 
65994
- if (this .checkLoadState () !== Base_X3DConstants .COMPLETE_STATE)
65995
- return;
65996
-
65997
- this [_scene] .setLive (this .getLive () .getValue ());
66470
+ this [_scene] ?.setLive (this .getLive () .getValue ());
65998
66471
  },
65999
66472
  canUserDefinedFields ()
66000
66473
  {
@@ -66039,6 +66512,9 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66039
66512
  },
66040
66513
  setInternalScene (value)
66041
66514
  {
66515
+ this [_scene] ?.setExecutionContext (this [_scene]);
66516
+ this [_scene] ?.setLive (false);
66517
+
66042
66518
  this [_scene] = value;
66043
66519
 
66044
66520
  const
@@ -66048,8 +66524,8 @@ Object .assign (Object .setPrototypeOf (X3DExternProtoDeclaration .prototype, Pr
66048
66524
  if (!proto)
66049
66525
  throw new Error ("PROTO not found");
66050
66526
 
66051
- this [_scene] .setLive (this .getLive () .getValue ());
66052
66527
  this [_scene] .setExecutionContext (this .getExecutionContext ());
66528
+ this [_scene] .setLive (this .getLive () .getValue ());
66053
66529
 
66054
66530
  this .setLoadState (Base_X3DConstants .COMPLETE_STATE);
66055
66531
  this .setProtoDeclaration (proto);
@@ -66508,7 +66984,7 @@ const ProtoDeclarationArray_default_ = ProtoDeclarationArray;
66508
66984
  x_ite_Namespace .add ("ProtoDeclarationArray", "x_ite/Prototype/ProtoDeclarationArray", ProtoDeclarationArray_default_);
66509
66985
  /* harmony default export */ const Prototype_ProtoDeclarationArray = (ProtoDeclarationArray_default_);
66510
66986
  ;// CONCATENATED MODULE: ./src/x_ite/Routing/X3DRoute.js
66511
- /* provided dependency */ var X3DRoute_$ = __webpack_require__(368);
66987
+ /* provided dependency */ var X3DRoute_$ = __webpack_require__(37);
66512
66988
  /*******************************************************************************
66513
66989
  *
66514
66990
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -67112,12 +67588,12 @@ x_ite_Namespace .add ("RouteArray", "x_ite/Routing/RouteArray", RouteArray_defau
67112
67588
 
67113
67589
 
67114
67590
  const
67115
- _namedNodes = Symbol (),
67116
- _importedNodes = Symbol (),
67117
- _protos = Symbol (),
67118
- _externprotos = Symbol (),
67119
- X3DExecutionContext_routes = Symbol (),
67120
- _outerNode = Symbol ();
67591
+ _outerNode = Symbol (),
67592
+ _namedNodes = Symbol (),
67593
+ _importedNodes = Symbol (),
67594
+ _protos = Symbol (),
67595
+ _externprotos = Symbol (),
67596
+ X3DExecutionContext_routes = Symbol ();
67121
67597
 
67122
67598
  function X3DExecutionContext (executionContext, outerNode = null, browser = executionContext .getBrowser ())
67123
67599
  {
@@ -67751,10 +68227,13 @@ Object .assign (Object .setPrototypeOf (X3DExecutionContext .prototype, Base_X3D
67751
68227
  },
67752
68228
  removeWorldInfo (worldInfoNode)
67753
68229
  {
67754
- for (let i = this ._worldInfos .length - 1; i >= 0; -- i)
68230
+ for (const [i, worldInfo] of this ._worldInfos .entries ())
67755
68231
  {
67756
- if (this ._worldInfos [i] .getValue () === worldInfoNode)
67757
- this ._worldInfos .splice (i, 1);
68232
+ if (worldInfo .getValue () !== worldInfoNode)
68233
+ continue;
68234
+
68235
+ this ._worldInfos .splice (i, 1);
68236
+ break;
67758
68237
  }
67759
68238
  },
67760
68239
  toVRMLStream (generator)
@@ -68141,7 +68620,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68141
68620
  if (!field .isInitializable ())
68142
68621
  continue;
68143
68622
 
68144
- // Is set during parse.
68623
+ // Is set during parse, or already changed by an route event.
68145
68624
  if (field .getModificationTime ())
68146
68625
  continue;
68147
68626
 
@@ -68228,7 +68707,7 @@ Object .assign (Object .setPrototypeOf (X3DPrototypeInstance .prototype, Core_X3
68228
68707
  if (oldField .getModificationTime () === 0)
68229
68708
  {
68230
68709
  oldField .assign (newField);
68231
- oldField .setModificationTime (0);
68710
+ oldField .setModificationTime (0);
68232
68711
  }
68233
68712
  }
68234
68713
 
@@ -74220,7 +74699,7 @@ Object .assign (Object .setPrototypeOf (ElevationGrid .prototype, Rendering_X3DG
74220
74699
 
74221
74700
  this .colorNode ?.addInterest ("requestRebuild", this);
74222
74701
 
74223
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
74702
+ this .setTransparent (this .colorNode ?.isTransparent ());
74224
74703
  },
74225
74704
  set_texCoord__ ()
74226
74705
  {
@@ -75409,7 +75888,7 @@ Object .assign (Object .setPrototypeOf (X3DComposedGeometryNode .prototype, Rend
75409
75888
 
75410
75889
  this .colorNode ?.addInterest ("requestRebuild", this);
75411
75890
 
75412
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
75891
+ this .setTransparent (this .colorNode ?.isTransparent ());
75413
75892
  },
75414
75893
  set_texCoord__ ()
75415
75894
  {
@@ -76716,11 +77195,11 @@ Object .assign (Object .setPrototypeOf (Switch .prototype, Grouping_X3DGroupingN
76716
77195
  },
76717
77196
  set_cameraObject__ ()
76718
77197
  {
76719
- this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
77198
+ this .setCameraObject (this .visibleNode ?.isCameraObject ());
76720
77199
  },
76721
77200
  set_transformSensors__ ()
76722
77201
  {
76723
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
77202
+ this .setPickableObject (this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ());
76724
77203
  },
76725
77204
  set_display__ ()
76726
77205
  {
@@ -80476,8 +80955,8 @@ x_ite_Namespace .add ("EnvironmentLight", "x_ite/Components/Lighting/Environment
80476
80955
  // Shadow map layout
80477
80956
  // Compact layout:
80478
80957
  //
80479
- // xzXZ Char: Axis
80480
- // yyYY Case: Sign
80958
+ // xzXZ Char: Axis
80959
+ // yyYY Case: Sign
80481
80960
 
80482
80961
  const orientationMatrices = [
80483
80962
  new Numbers_Matrix4 () .setRotation (new Numbers_Rotation4 (new Numbers_Vector3 ( 1, 0, 0), Numbers_Vector3 .zAxis)), // left
@@ -81732,11 +82211,11 @@ Object .assign (Object .setPrototypeOf (LOD .prototype, Grouping_X3DGroupingNode
81732
82211
  },
81733
82212
  set_cameraObject__ ()
81734
82213
  {
81735
- this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
82214
+ this .setCameraObject (this .visibleNode ?.isCameraObject ());
81736
82215
  },
81737
82216
  set_transformSensors__ ()
81738
82217
  {
81739
- this .setPickableObject (!!(this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ()));
82218
+ this .setPickableObject (this .getTransformSensors () .size || this .visibleNode ?.isPickableObject ());
81740
82219
  },
81741
82220
  set_display__ ()
81742
82221
  {
@@ -83418,19 +83897,19 @@ Object .assign (Object .setPrototypeOf (Inline .prototype, Core_X3DChildNode .pr
83418
83897
  },
83419
83898
  setInternalScene (scene)
83420
83899
  {
83900
+ this .scene .setExecutionContext (this .scene);
83421
83901
  this .scene .setLive (false);
83422
83902
  this .scene .rootNodes .removeFieldInterest (this .groupNode ._children);
83423
83903
 
83424
83904
  // Set new scene.
83425
83905
 
83426
83906
  this .scene = scene;
83427
- this .scene .setExecutionContext (this .getExecutionContext ());
83428
83907
 
83908
+ this .scene .setExecutionContext (this .getExecutionContext ());
83909
+ this .scene .setLive (this .getLive () .getValue ());
83429
83910
  this .scene .rootNodes .addFieldInterest (this .groupNode ._children);
83430
83911
  this .groupNode ._children = this .scene .rootNodes;
83431
83912
 
83432
- this .set_live__ ();
83433
-
83434
83913
  this .getBrowser () .addBrowserEvent ();
83435
83914
  },
83436
83915
  getInternalScene ()
@@ -85818,7 +86297,7 @@ Object .assign (Object .setPrototypeOf (X3DColorNode .prototype, Rendering_X3DGe
85818
86297
  {
85819
86298
  setTransparent (value)
85820
86299
  {
85821
- if (value !== this ._transparent .getValue ())
86300
+ if (!!value !== this ._transparent .getValue ())
85822
86301
  this ._transparent = value;
85823
86302
  },
85824
86303
  isTransparent ()
@@ -87186,7 +87665,7 @@ Object .assign (Object .setPrototypeOf (IndexedLineSet .prototype, Rendering_X3D
87186
87665
 
87187
87666
  this .colorNode ?.addInterest ("requestRebuild", this);
87188
87667
 
87189
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
87668
+ this .setTransparent (this .colorNode ?.isTransparent ());
87190
87669
  },
87191
87670
  set_normal__ ()
87192
87671
  {
@@ -87971,7 +88450,7 @@ Object .assign (Object .setPrototypeOf (LineSet .prototype, Rendering_X3DLineGeo
87971
88450
 
87972
88451
  this .colorNode ?.addInterest ("requestRebuild", this);
87973
88452
 
87974
- this .setTransparent (this .colorNode ?.isTransparent () ?? false);
88453
+ this .setTransparent (this .colorNode ?.isTransparent ());
87975
88454
  },
87976
88455
  set_normal__ ()
87977
88456
  {
@@ -89385,7 +89864,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
89385
89864
  x_ite_Namespace .add ("X3DShaderNode", "x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
89386
89865
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
89387
89866
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
89388
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(368);
89867
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(37);
89389
89868
  /*******************************************************************************
89390
89869
  *
89391
89870
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -92272,26 +92751,26 @@ const ShaderSource =
92272
92751
  {
92273
92752
  getSource (gl, browser, source, options)
92274
92753
  {
92275
- const
92276
- COMMENTS = "\\s+|/\\*[\\s\\S]*?\\*/|//.*?\\n",
92277
- LINE = "#line\\s+.*?\\n",
92278
- IF = "#if\\s+.*?\\n",
92279
- ELIF = "#elif\\s+.*?\\n",
92280
- IFDEF = "#ifdef\\s+.*?\\n",
92281
- IFNDEF = "#ifndef\\s+.*?\\n",
92282
- ELSE = "#else.*?\\n",
92283
- ENDIF = "#endif.*?\\n",
92284
- DEFINE = "#define\\s+(?:[^\\n\\\\]|\\\\[^\\r\\n]|\\\\\\r?\\n)*\\n",
92285
- UNDEF = "#undef\\s+.*?\\n",
92286
- PRAGMA = "#pragma\\s+.*?\\n",
92287
- PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
92288
- VERSION = "#version\\s+.*?\\n",
92289
- EXTENSION = "#extension\\s+.*?\\n",
92290
- ANY = ".*";
92291
-
92292
- const
92293
- GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
92294
- match = source .match (GLSL);
92754
+ const
92755
+ COMMENTS = "\\s+|/\\*[\\s\\S]*?\\*/|//.*?\\n",
92756
+ LINE = "#line\\s+.*?\\n",
92757
+ IF = "#if\\s+.*?\\n",
92758
+ ELIF = "#elif\\s+.*?\\n",
92759
+ IFDEF = "#ifdef\\s+.*?\\n",
92760
+ IFNDEF = "#ifndef\\s+.*?\\n",
92761
+ ELSE = "#else.*?\\n",
92762
+ ENDIF = "#endif.*?\\n",
92763
+ DEFINE = "#define\\s+(?:[^\\n\\\\]|\\\\[^\\r\\n]|\\\\\\r?\\n)*\\n",
92764
+ UNDEF = "#undef\\s+.*?\\n",
92765
+ PRAGMA = "#pragma\\s+.*?\\n",
92766
+ PREPROCESSOR = LINE + "|" + IF + "|" + ELIF + "|" + IFDEF + "|" + IFNDEF + "|" + ELSE + "|" + ENDIF + "|" + DEFINE + "|" + UNDEF + "|" + PRAGMA,
92767
+ VERSION = "#version\\s+.*?\\n",
92768
+ EXTENSION = "#extension\\s+.*?\\n",
92769
+ ANY = ".*";
92770
+
92771
+ const
92772
+ GLSL = new RegExp ("^((?:" + COMMENTS + "|" + PREPROCESSOR + ")*(?:" + VERSION + ")?(?:" + COMMENTS + "|" + PREPROCESSOR + "|" + EXTENSION + ")*)(" + ANY + ")$", "s"),
92773
+ match = source .match (GLSL);
92295
92774
 
92296
92775
  // const
92297
92776
  // COMMENTS = "\\s+|/\\*.*?\\*/|//.*?\\n",
@@ -95026,7 +95505,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
95026
95505
  x_ite_Namespace .add ("ShaderCompiler", "x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
95027
95506
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
95028
95507
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
95029
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(368);
95508
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(37);
95030
95509
  /*******************************************************************************
95031
95510
  *
95032
95511
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95654,7 +96133,7 @@ Object .assign (Object .setPrototypeOf (X3DAppearanceNode .prototype, Core_X3DNo
95654
96133
  {
95655
96134
  setTransparent (value)
95656
96135
  {
95657
- if (value !== this ._transparent .getValue ())
96136
+ if (!!value !== this ._transparent .getValue ())
95658
96137
  this ._transparent = value;
95659
96138
  },
95660
96139
  isTransparent ()
@@ -95683,7 +96162,7 @@ const X3DAppearanceNode_default_ = X3DAppearanceNode;
95683
96162
  x_ite_Namespace .add ("X3DAppearanceNode", "x_ite/Components/Shape/X3DAppearanceNode", X3DAppearanceNode_default_);
95684
96163
  /* harmony default export */ const Shape_X3DAppearanceNode = (X3DAppearanceNode_default_);
95685
96164
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shape/Appearance.js
95686
- /* provided dependency */ var Appearance_$ = __webpack_require__(368);
96165
+ /* provided dependency */ var Appearance_$ = __webpack_require__(37);
95687
96166
  /*******************************************************************************
95688
96167
  *
95689
96168
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -95763,8 +96242,8 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
95763
96242
 
95764
96243
  browser .getRenderingProperties () ._ContentScale .addInterest ("set_contentScale__", this);
95765
96244
 
95766
- this ._alphaMode .addInterest ("set_alphaMode__", this);
95767
- this ._alphaCutoff .addInterest ("set_alphaCutoff__", this);
96245
+ this ._alphaMode .addInterest ("set_alphaMode__", this);
96246
+ this ._alphaCutoff .addInterest ("set_alphaCutoff__", this);
95768
96247
  this ._pointProperties .addInterest ("set_pointProperties__", this);
95769
96248
  this ._lineProperties .addInterest ("set_lineProperties__", this);
95770
96249
  this ._fillProperties .addInterest ("set_fillProperties__", this);
@@ -96078,11 +96557,11 @@ Object .assign (Object .setPrototypeOf (Appearance .prototype, Shape_X3DAppearan
96078
96557
  },
96079
96558
  set_transparent__ ()
96080
96559
  {
96081
- this .setTransparent (!!(this .stylePropertiesNode [3] ?.isTransparent () ||
96082
- this .materialNode ?.isTransparent () ||
96083
- this .backMaterialNode ?.isTransparent () ||
96084
- this .textureNode ?.isTransparent () ||
96085
- this .blendModeNode));
96560
+ this .setTransparent (this .stylePropertiesNode [3] ?.isTransparent () ||
96561
+ this .materialNode ?.isTransparent () ||
96562
+ this .backMaterialNode ?.isTransparent () ||
96563
+ this .textureNode ?.isTransparent () ||
96564
+ this .blendModeNode);
96086
96565
  },
96087
96566
  traverse (type, renderObject)
96088
96567
  {
@@ -96231,7 +96710,7 @@ Object .assign (Object .setPrototypeOf (FillProperties .prototype, Shape_X3DAppe
96231
96710
  {
96232
96711
  this .filled = this ._filled .getValue ();
96233
96712
 
96234
- this .setTransparent (! this .filled);
96713
+ this .setTransparent (!this .filled);
96235
96714
  },
96236
96715
  set_hatched__ ()
96237
96716
  {
@@ -96254,7 +96733,7 @@ Object .assign (Object .setPrototypeOf (FillProperties .prototype, Shape_X3DAppe
96254
96733
  },
96255
96734
  setTransparent (value)
96256
96735
  {
96257
- if (value !== this ._transparent .getValue ())
96736
+ if (!!value !== this ._transparent .getValue ())
96258
96737
  this ._transparent = value;
96259
96738
  },
96260
96739
  isTransparent ()
@@ -96584,7 +97063,7 @@ Object .assign (Object .setPrototypeOf (X3DMaterialNode .prototype, Shape_X3DApp
96584
97063
  {
96585
97064
  setTransparent (value)
96586
97065
  {
96587
- if (value !== this ._transparent .getValue ())
97066
+ if (!!value !== this ._transparent .getValue ())
96588
97067
  this ._transparent = value;
96589
97068
  },
96590
97069
  isTransparent ()
@@ -97004,7 +97483,7 @@ Object .assign (Object .setPrototypeOf (X3DOneSidedMaterialNode .prototype, Shap
97004
97483
  },
97005
97484
  set_transparent__ ()
97006
97485
  {
97007
- this .setTransparent (!! this .transparency);
97486
+ this .setTransparent (this .transparency);
97008
97487
  },
97009
97488
  getBaseTexture ()
97010
97489
  {
@@ -97332,7 +97811,7 @@ Object .assign (Object .setPrototypeOf (Material .prototype, Shape_X3DOneSidedMa
97332
97811
  },
97333
97812
  set_transparent__ ()
97334
97813
  {
97335
- this .setTransparent (!!(this .getTransparency () || this .diffuseTextureNode ?.isTransparent ()));
97814
+ this .setTransparent (this .getTransparency () || this .diffuseTextureNode ?.isTransparent ());
97336
97815
  },
97337
97816
  createShader (key, geometryContext, renderContext)
97338
97817
  {
@@ -97754,7 +98233,7 @@ Object .assign (Object .setPrototypeOf (PhysicalMaterial .prototype, Shape_X3DOn
97754
98233
  },
97755
98234
  set_transparent__ ()
97756
98235
  {
97757
- this .setTransparent (!!(this .getTransparency () || this .baseTextureNode ?.isTransparent ()));
98236
+ this .setTransparent (this .getTransparency () || this .baseTextureNode ?.isTransparent ());
97758
98237
  },
97759
98238
  createShader (key, geometryContext, renderContext)
97760
98239
  {
@@ -98212,7 +98691,7 @@ Object .assign (Object .setPrototypeOf (X3DShapeNode .prototype, Core_X3DChildNo
98212
98691
  },
98213
98692
  setTransparent (value)
98214
98693
  {
98215
- this .transparent = value;
98694
+ this .transparent = !!value;
98216
98695
  },
98217
98696
  getAlphaMode ()
98218
98697
  {
@@ -98762,7 +99241,7 @@ Object .assign (Object .setPrototypeOf (TwoSidedMaterial .prototype, Shape_X3DMa
98762
99241
  },
98763
99242
  set_transparent__ ()
98764
99243
  {
98765
- this .setTransparent (!!(this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ())));
99244
+ this .setTransparent (this ._transparency .getValue () || (this ._separateBackColor .getValue () && this ._backTransparency .getValue ()));
98766
99245
  },
98767
99246
  getMaterialKey: Shape_Material .prototype .getMaterialKey,
98768
99247
  getBaseTexture: Shape_Material .prototype .getBaseTexture,
@@ -98938,8 +99417,7 @@ Object .assign (Object .setPrototypeOf (UnlitMaterial .prototype, Shape_X3DOneSi
98938
99417
  },
98939
99418
  set_transparent__ ()
98940
99419
  {
98941
- this .setTransparent (!!(this .getTransparency () ||
98942
- this .getEmissiveTexture () ?.isTransparent ()));
99420
+ this .setTransparent (this .getTransparency () || this .getEmissiveTexture () ?.isTransparent ());
98943
99421
  },
98944
99422
  createShader (key, geometryContext, renderContext)
98945
99423
  {
@@ -99101,7 +99579,7 @@ const Components_Shape_default_ = {
99101
99579
  x_ite_Namespace .add ("Shape", "x_ite/Components/Shape", Components_Shape_default_);
99102
99580
  /* harmony default export */ const Components_Shape = (Components_Shape_default_);
99103
99581
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundProcessingNode.js
99104
- /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(368);
99582
+ /* provided dependency */ var X3DSoundProcessingNode_$ = __webpack_require__(37);
99105
99583
  /*******************************************************************************
99106
99584
  *
99107
99585
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -99741,7 +100219,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
99741
100219
  x_ite_Namespace .add ("X3DSoundSourceNode", "x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
99742
100220
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
99743
100221
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
99744
- /* provided dependency */ var AudioClip_$ = __webpack_require__(368);
100222
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(37);
99745
100223
  /*******************************************************************************
99746
100224
  *
99747
100225
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -100043,7 +100521,7 @@ const X3DSoundNode_default_ = X3DSoundNode;
100043
100521
  x_ite_Namespace .add ("X3DSoundNode", "x_ite/Components/Sound/X3DSoundNode", X3DSoundNode_default_);
100044
100522
  /* harmony default export */ const Sound_X3DSoundNode = (X3DSoundNode_default_);
100045
100523
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/X3DSoundDestinationNode.js
100046
- /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(368);
100524
+ /* provided dependency */ var X3DSoundDestinationNode_$ = __webpack_require__(37);
100047
100525
  /*******************************************************************************
100048
100526
  *
100049
100527
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -101693,7 +102171,7 @@ const ListenerPointSource_default_ = ListenerPointSource;
101693
102171
  x_ite_Namespace .add ("ListenerPointSource", "x_ite/Components/Sound/ListenerPointSource", ListenerPointSource_default_);
101694
102172
  /* harmony default export */ const Sound_ListenerPointSource = (ListenerPointSource_default_);
101695
102173
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/MicrophoneSource.js
101696
- /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(368);
102174
+ /* provided dependency */ var MicrophoneSource_$ = __webpack_require__(37);
101697
102175
  /*******************************************************************************
101698
102176
  *
101699
102177
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -103362,8 +103840,8 @@ const GifMedia_default_ = GifMedia;
103362
103840
  x_ite_Namespace .add ("GifMedia", "x_ite/Browser/Texturing/GifMedia", GifMedia_default_);
103363
103841
  /* harmony default export */ const Texturing_GifMedia = (GifMedia_default_);
103364
103842
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
103365
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(368);
103366
- /* provided dependency */ var SuperGif = __webpack_require__(939);
103843
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(37);
103844
+ /* provided dependency */ var SuperGif = __webpack_require__(790);
103367
103845
  /*******************************************************************************
103368
103846
  *
103369
103847
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -106642,7 +107120,7 @@ const gettext_default_ = gettext;
106642
107120
  x_ite_Namespace .add ("gettext", "locale/gettext", gettext_default_);
106643
107121
  /* harmony default export */ const locale_gettext = (gettext_default_);
106644
107122
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
106645
- /* provided dependency */ var BrowserTimings_$ = __webpack_require__(368);
107123
+ /* provided dependency */ var BrowserTimings_$ = __webpack_require__(37);
106646
107124
  /*******************************************************************************
106647
107125
  *
106648
107126
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107072,7 +107550,7 @@ const TextureQuality_default_ = TextureQuality;
107072
107550
  x_ite_Namespace .add ("TextureQuality", "x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
107073
107551
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
107074
107552
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
107075
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(368);
107553
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(37);
107076
107554
  /*******************************************************************************
107077
107555
  *
107078
107556
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107448,8 +107926,9 @@ Object .defineProperties (BrowserOptions,
107448
107926
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Gravity", new x_ite_Fields .SFDouble (9.80665)),
107449
107927
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "LoadUrlObjects", new x_ite_Fields .SFBool (true)),
107450
107928
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "LogarithmicDepthBuffer", new x_ite_Fields .SFBool ()),
107451
- new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Notifications", new x_ite_Fields .SFBool (true)),
107929
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "MetadataReference", new x_ite_Fields .SFString ()),
107452
107930
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Multisampling", new x_ite_Fields .SFInt32 (4)),
107931
+ new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Notifications", new x_ite_Fields .SFBool (true)),
107453
107932
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "OrderIndependentTransparency", new x_ite_Fields .SFBool ()),
107454
107933
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "StraightenHorizon", new x_ite_Fields .SFBool (true)),
107455
107934
  new Base_X3DFieldDefinition (Base_X3DConstants .inputOutput, "Timings", new x_ite_Fields .SFBool ()),
@@ -107662,7 +108141,7 @@ const RenderingProperties_default_ = RenderingProperties;
107662
108141
  x_ite_Namespace .add ("RenderingProperties", "x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
107663
108142
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
107664
108143
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
107665
- /* provided dependency */ var Notification_$ = __webpack_require__(368);
108144
+ /* provided dependency */ var Notification_$ = __webpack_require__(37);
107666
108145
  /*******************************************************************************
107667
108146
  *
107668
108147
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -107785,8 +108264,8 @@ const Notification_default_ = Notification;
107785
108264
  x_ite_Namespace .add ("Notification", "x_ite/Browser/Core/Notification", Notification_default_);
107786
108265
  /* harmony default export */ const Core_Notification = (Notification_default_);
107787
108266
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
107788
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(548);
107789
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(368);
108267
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(773);
108268
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(37);
107790
108269
  /*******************************************************************************
107791
108270
  *
107792
108271
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -108357,7 +108836,7 @@ Object .assign (Object .setPrototypeOf (ContextMenu .prototype, Base_X3DBaseNode
108357
108836
 
108358
108837
  // Reposition menu if to right or to low.
108359
108838
 
108360
- ul .offset ({ "left": event .pageX, "top": event .pageY }); // Do it again!
108839
+ ul .offset ({ "left": event .pageX, "top": event .pageY }); // Do it again!
108361
108840
 
108362
108841
  if (ul .offset () .left - ContextMenu_$(document) .scrollLeft () + ul .outerWidth () > ContextMenu_$(window) .width ())
108363
108842
  ul .offset ({ "left": ContextMenu_$(document) .scrollLeft () + Math .max (0, ContextMenu_$(window) .width () - ul .outerWidth ()) });
@@ -109589,13 +110068,18 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
109589
110068
  const values = this [_metadata] .get (name);
109590
110069
 
109591
110070
  if (values)
109592
- return Array .from (values);
110071
+ return values .slice ();
109593
110072
 
109594
110073
  return undefined;
109595
110074
  },
109596
110075
  getMetaDatas ()
109597
110076
  {
109598
- return new Map (this [_metadata]);
110077
+ const metadata = new Map ();
110078
+
110079
+ for (const [key, values] of this [_metadata])
110080
+ metadata .set (key, values .slice ());
110081
+
110082
+ return metadata;
109599
110083
  },
109600
110084
  addExportedNode (exportedName, node)
109601
110085
  {
@@ -109620,7 +110104,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
109620
110104
  throw new Error ("Couldn't update exported node: node must be of type X3DNode.");
109621
110105
 
109622
110106
  //if (node .getExecutionContext () !== this)
109623
- // throw new Error ("Couldn't update exported node: node does not belong to this execution context.");
110107
+ // throw new Error ("Couldn't update exported node: node does not belong to this execution context.");
109624
110108
 
109625
110109
  const exportedNode = new Execution_X3DExportedNode (this, exportedName, node);
109626
110110
 
@@ -110249,7 +110733,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110249
110733
  },
110250
110734
  },
110251
110735
  {
110252
- setExecutionContext (value)
110736
+ setExecutionContext (executionContext)
110253
110737
  {
110254
110738
  if (!this .isMainScene ())
110255
110739
  {
@@ -110259,7 +110743,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110259
110743
  scene .removeLoadingObject (object);
110260
110744
  }
110261
110745
 
110262
- Execution_X3DExecutionContext .prototype .setExecutionContext .call (this, value);
110746
+ Execution_X3DExecutionContext .prototype .setExecutionContext .call (this, executionContext);
110263
110747
 
110264
110748
  if (!this .isMainScene ())
110265
110749
  {
@@ -110294,7 +110778,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110294
110778
  browser = this .getBrowser (),
110295
110779
  scene = this .getScene ();
110296
110780
 
110297
- if (this === browser .getExecutionContext () || this .loader === browser .loader)
110781
+ if (this === browser .getExecutionContext ())
110298
110782
  browser .addLoadingObject (node);
110299
110783
 
110300
110784
  if (!this .isMainScene ())
@@ -110313,7 +110797,7 @@ Object .assign (Object .setPrototypeOf (X3DScene .prototype, Execution_X3DExecut
110313
110797
  browser = this .getBrowser (),
110314
110798
  scene = this .getScene ();
110315
110799
 
110316
- if (this === browser .getExecutionContext () || this .loader === browser .loader)
110800
+ if (this === browser .getExecutionContext ())
110317
110801
  browser .removeLoadingObject (node);
110318
110802
 
110319
110803
  if (!this .isMainScene ())
@@ -110538,7 +111022,7 @@ const DataStorage_default_ = DataStorage;
110538
111022
  x_ite_Namespace .add ("DataStorage", "standard/Utility/DataStorage", DataStorage_default_);
110539
111023
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
110540
111024
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
110541
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(368);
111025
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(37);
110542
111026
  /*******************************************************************************
110543
111027
  *
110544
111028
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113061,8 +113545,8 @@ const X3DViewer_default_ = X3DViewer;
113061
113545
  x_ite_Namespace .add ("X3DViewer", "x_ite/Browser/Navigation/X3DViewer", X3DViewer_default_);
113062
113546
  /* harmony default export */ const Navigation_X3DViewer = (X3DViewer_default_);
113063
113547
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
113064
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(214);
113065
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(368);
113548
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(693);
113549
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(37);
113066
113550
  /*******************************************************************************
113067
113551
  *
113068
113552
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -113934,8 +114418,8 @@ const ExamineViewer_default_ = ExamineViewer;
113934
114418
  x_ite_Namespace .add ("ExamineViewer", "x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
113935
114419
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
113936
114420
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
113937
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(214);
113938
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(368);
114421
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(693);
114422
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(37);
113939
114423
  /*******************************************************************************
113940
114424
  *
113941
114425
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -114944,8 +115428,8 @@ const FlyViewer_default_ = FlyViewer;
114944
115428
  x_ite_Namespace .add ("FlyViewer", "x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
114945
115429
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
114946
115430
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
114947
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(214);
114948
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(368);
115431
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(693);
115432
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(37);
114949
115433
  /*******************************************************************************
114950
115434
  *
114951
115435
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115276,8 +115760,8 @@ const NoneViewer_default_ = NoneViewer;
115276
115760
  x_ite_Namespace .add ("NoneViewer", "x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
115277
115761
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
115278
115762
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
115279
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(214);
115280
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(368);
115763
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(693);
115764
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(37);
115281
115765
  /*******************************************************************************
115282
115766
  *
115283
115767
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116416,8 +116900,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
116416
116900
  x_ite_Namespace .add ("X3DPickingContext", "x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
116417
116901
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
116418
116902
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
116419
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(214);
116420
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(368);
116903
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(693);
116904
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(37);
116421
116905
  /*******************************************************************************
116422
116906
  *
116423
116907
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116528,7 +117012,7 @@ Object .assign (Object .setPrototypeOf (PointingDevice .prototype, Base_X3DBaseN
116528
117012
  event .stopImmediatePropagation (); // Keeps the rest of the handlers from being executed
116529
117013
 
116530
117014
  browser .setCursor ("HAND");
116531
- browser .finishedEvents () .addInterest ("onverifymotion", this, x, y);
117015
+ this .onverifymotion (x, y);
116532
117016
  }
116533
117017
  }
116534
117018
  },
@@ -116549,8 +117033,7 @@ Object .assign (Object .setPrototypeOf (PointingDevice .prototype, Base_X3DBaseN
116549
117033
 
116550
117034
  browser .buttonReleaseEvent ();
116551
117035
  browser .setCursor (this .isOver ? "HAND" : "DEFAULT");
116552
- browser .finishedEvents () .addInterest ("onverifymotion", this, x, y);
116553
- browser .addBrowserEvent ();
117036
+ this .onverifymotion (x, y);
116554
117037
 
116555
117038
  this .cursor = "DEFAULT";
116556
117039
  }
@@ -116668,12 +117151,10 @@ Object .assign (Object .setPrototypeOf (PointingDevice .prototype, Base_X3DBaseN
116668
117151
  onverifymotion (x, y)
116669
117152
  {
116670
117153
  // Verify isOver state. This is necessary if an Switch changes on buttonReleaseEvent
116671
- // and the new child has a sensor node inside. This sensor node must be update to
117154
+ // and the new child has a sensor node inside. This sensor node must be updated to
116672
117155
  // reflect the correct isOver state.
116673
117156
 
116674
- this .getBrowser () .finishedEvents () .removeInterest ("onverifymotion", this);
116675
-
116676
- this .onmotion (x, y);
117157
+ requestAnimationFrame (() => this .onmotion (x, y));
116677
117158
  },
116678
117159
  showContextMenu (event)
116679
117160
  {
@@ -116948,7 +117429,8 @@ const
116948
117429
  _pointingBuffer = Symbol (),
116949
117430
  _pointingShaders = Symbol (),
116950
117431
  _id = Symbol (),
116951
- _pointingContexts = Symbol ();
117432
+ _pointingContexts = Symbol (),
117433
+ _processEvents = Symbol .for ("X_ITE.X3DRoutingContext.processEvents");
116952
117434
 
116953
117435
  function X3DPointingDeviceSensorContext ()
116954
117436
  {
@@ -117102,6 +117584,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117102
117584
  for (const sensor of this [_activeSensors])
117103
117585
  sensor .set_active__ (true, hit);
117104
117586
 
117587
+ this [_processEvents] ();
117588
+
117105
117589
  return !! hit .sensors .length;
117106
117590
  },
117107
117591
  buttonReleaseEvent ()
@@ -117114,6 +117598,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117114
117598
 
117115
117599
  this [_activeSensors] = Array .prototype;
117116
117600
  this [_pointingLayer] = null;
117601
+
117602
+ this [_processEvents] ();
117117
117603
  },
117118
117604
  motionNotifyEvent (x, y)
117119
117605
  {
@@ -117123,6 +117609,8 @@ Object .assign (X3DPointingDeviceSensorContext .prototype,
117123
117609
  this .touch (x, y);
117124
117610
  this .motion ();
117125
117611
 
117612
+ this [_processEvents] ();
117613
+
117126
117614
  return !! this [_hit] .sensors .length;
117127
117615
  },
117128
117616
  leaveNotifyEvent ()
@@ -117561,10 +118049,12 @@ Object .assign (MultiSampleFrameBuffer .prototype,
117561
118049
  },
117562
118050
  clear ()
117563
118051
  {
117564
- const { context: gl, frameBuffer } = this;
118052
+ const { context: gl, frameBuffer, width, height } = this;
117565
118053
 
117566
118054
  gl .bindFramebuffer (gl .FRAMEBUFFER, frameBuffer);
117567
118055
 
118056
+ gl .viewport (0, 0, width, height);
118057
+ gl .scissor (0, 0, width, height);
117568
118058
  gl .clearColor (0, 0, 0, 0);
117569
118059
  gl .clear (gl .COLOR_BUFFER_BIT);
117570
118060
  },
@@ -117683,8 +118173,10 @@ Object .assign (Fallback .prototype,
117683
118173
  },
117684
118174
  clear ()
117685
118175
  {
117686
- const { context: gl } = this;
118176
+ const { context: gl, width, height } = this;
117687
118177
 
118178
+ gl .viewport (0, 0, width, height);
118179
+ gl .scissor (0, 0, width, height);
117688
118180
  gl .clearColor (0, 0, 0, 1);
117689
118181
  gl .clear (gl .COLOR_BUFFER_BIT);
117690
118182
  gl .blendFuncSeparate (gl .ONE, gl .ONE, gl .ZERO, gl .ONE_MINUS_SRC_ALPHA);
@@ -117700,7 +118192,7 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
117700
118192
  x_ite_Namespace .add ("MultiSampleFrameBuffer", "x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
117701
118193
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
117702
118194
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
117703
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(368);
118195
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(37);
117704
118196
  /*******************************************************************************
117705
118197
  *
117706
118198
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -118602,7 +119094,7 @@ const X3DSoundContext_default_ = X3DSoundContext;
118602
119094
  x_ite_Namespace .add ("X3DSoundContext", "x_ite/Browser/Sound/X3DSoundContext", X3DSoundContext_default_);
118603
119095
  /* harmony default export */ const Sound_X3DSoundContext = (X3DSoundContext_default_);
118604
119096
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Texturing/KTXDecoder.js
118605
- /* provided dependency */ var KTXDecoder_$ = __webpack_require__(368);
119097
+ /* provided dependency */ var KTXDecoder_$ = __webpack_require__(37);
118606
119098
  const KTXDecoder_default_ = class KTXDecoder
118607
119099
  {
118608
119100
  constructor (gl, externalKtxlib, scriptDir)
@@ -119699,7 +120191,7 @@ const
119699
120191
  _cameraTime = Symbol (),
119700
120192
  _collisionTime = Symbol (),
119701
120193
  _displayTime = Symbol (),
119702
- _processEvents = Symbol .for ("X_ITE.X3DRoutingContext.processEvents");
120194
+ X3DBrowserContext_processEvents = Symbol .for ("X_ITE.X3DRoutingContext.processEvents");
119703
120195
 
119704
120196
  const
119705
120197
  browsers = new Set (),
@@ -119884,10 +120376,10 @@ Object .assign (Object .setPrototypeOf (X3DBrowserContext .prototype, Base_X3DBa
119884
120376
  // Events
119885
120377
 
119886
120378
  this .addTaintedField (this ._prepareEvents);
119887
- this [_processEvents] ();
120379
+ this [X3DBrowserContext_processEvents] ();
119888
120380
 
119889
120381
  this .addTaintedField (this ._timeEvents);
119890
- this [_processEvents] ();
120382
+ this [X3DBrowserContext_processEvents] ();
119891
120383
 
119892
120384
  // Camera
119893
120385
 
@@ -119907,19 +120399,19 @@ Object .assign (Object .setPrototypeOf (X3DBrowserContext .prototype, Base_X3DBa
119907
120399
  // Events
119908
120400
 
119909
120401
  this .addTaintedField (this ._sensorEvents);
119910
- this [_processEvents] ();
120402
+ this [X3DBrowserContext_processEvents] ();
119911
120403
 
119912
120404
  // Display
119913
120405
 
119914
120406
  this [_displayTime] .start ()
119915
120407
  this .addTaintedField (this ._displayEvents);
119916
- this [_processEvents] ();
120408
+ this [X3DBrowserContext_processEvents] ();
119917
120409
 
119918
120410
  this .getFrameBuffer () .clear ();
119919
120411
  this [_world] .traverse (Rendering_TraverseType .DISPLAY);
119920
120412
 
119921
120413
  this .addTaintedField (this ._finishedEvents);
119922
- this [_processEvents] ();
120414
+ this [X3DBrowserContext_processEvents] ();
119923
120415
 
119924
120416
  this .getFrameBuffer () .blit ();
119925
120417
  this [_displayTime] .stop ();
@@ -120036,7 +120528,7 @@ Object .assign (X3DBrowserContext,
120036
120528
 
120037
120529
  // Process events from context creation. This will setup nodes like
120038
120530
  // geometry option nodes before any node is created.
120039
- browser [_processEvents] ();
120531
+ browser [X3DBrowserContext_processEvents] ();
120040
120532
  }
120041
120533
  }
120042
120534
 
@@ -120155,7 +120647,7 @@ const Components_default_ = Components;
120155
120647
  x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
120156
120648
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
120157
120649
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
120158
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(368);
120650
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(37);
120159
120651
  /*******************************************************************************
120160
120652
  * MIT License
120161
120653
  *
@@ -120187,355 +120679,355 @@ x_ite_Namespace .add ("Components", "x_ite/Components", Components_default_);
120187
120679
 
120188
120680
  class DOMIntegration
120189
120681
  {
120190
- constructor (browser)
120191
- {
120192
- this .browser = browser;
120193
- this .rootElement = undefined;
120194
- this .canvasObserver = new MutationObserver (() => this .processCanvasMutation (browser));
120682
+ constructor (browser)
120683
+ {
120684
+ this .browser = browser;
120685
+ this .rootElement = undefined;
120686
+ this .canvasObserver = new MutationObserver (() => this .processCanvasMutation (browser));
120195
120687
 
120196
- this .canvasObserver .observe (browser .getElement () [0], {
120197
- childList: true,
120198
- });
120688
+ this .canvasObserver .observe (browser .getElement () [0], {
120689
+ childList: true,
120690
+ });
120199
120691
 
120200
- this .processCanvasMutation (browser)
120201
- }
120692
+ this .processCanvasMutation (browser)
120693
+ }
120202
120694
 
120203
- processCanvasMutation (browser)
120204
- {
120205
- this .processRootElement (browser, browser .getElement () .children ("X3D") .get (-1));
120206
- }
120695
+ processCanvasMutation (browser)
120696
+ {
120697
+ this .processRootElement (browser, browser .getElement () .children ("X3D") .get (-1));
120698
+ }
120207
120699
 
120208
- async processRootElement (browser, rootElement)
120209
- {
120210
- try
120211
- {
120212
- if (rootElement === this .rootElement)
120213
- return;
120700
+ async processRootElement (browser, rootElement)
120701
+ {
120702
+ try
120703
+ {
120704
+ if (rootElement === this .rootElement)
120705
+ return;
120214
120706
 
120215
- this .rootElement = rootElement;
120707
+ this .rootElement = rootElement;
120216
120708
 
120217
- if (rootElement)
120218
- {
120219
- // Display splash screen.
120709
+ if (rootElement)
120710
+ {
120711
+ // Display splash screen.
120220
120712
 
120221
- browser .setBrowserLoading (true);
120222
- browser .addLoadingObject (this);
120713
+ browser .setBrowserLoading (true);
120714
+ browser .addLoadingObject (this);
120223
120715
 
120224
- // Now also attached node property to each node element.
120716
+ // Now also attached node property to each node element.
120225
120717
 
120226
- const scene = browser .createScene ();
120718
+ const scene = browser .createScene ();
120227
120719
 
120228
- this .parser = new Parser_XMLParser (scene);
120720
+ this .parser = new Parser_XMLParser (scene);
120229
120721
 
120230
- this .parser .setInput (rootElement);
120722
+ this .parser .setInput (rootElement);
120231
120723
 
120232
- await new Promise (this .parser .parseIntoScene .bind (this .parser));
120724
+ await new Promise (this .parser .parseIntoScene .bind (this .parser));
120233
120725
 
120234
- browser .replaceWorld (scene);
120726
+ browser .replaceWorld (scene);
120235
120727
 
120236
- // Create an observer instance.
120728
+ // Create an observer instance.
120237
120729
 
120238
- this .observer = new MutationObserver (mutations =>
120239
- {
120240
- for (const mutation of mutations)
120241
- this .processMutation (mutation);
120242
- });
120730
+ this .observer = new MutationObserver (mutations =>
120731
+ {
120732
+ for (const mutation of mutations)
120733
+ this .processMutation (mutation);
120734
+ });
120243
120735
 
120244
- // Start observing, also catches inlined Inline elements.
120736
+ // Start observing, also catches inlined Inline elements.
120245
120737
 
120246
- this .observer .observe (rootElement, {
120247
- attributes: true,
120248
- childList: true,
120249
- characterData: false,
120250
- subtree: true,
120251
- attributeOldValue: true,
120252
- });
120738
+ this .observer .observe (rootElement, {
120739
+ attributes: true,
120740
+ childList: true,
120741
+ characterData: false,
120742
+ subtree: true,
120743
+ attributeOldValue: true,
120744
+ });
120253
120745
 
120254
- // Add Inline elements from initial scene, and connect to node events.
120746
+ // Add Inline elements from initial scene, and connect to node events.
120255
120747
 
120256
- this .processInlineElements (rootElement);
120257
- this .addEventDispatchersAll (rootElement);
120748
+ this .processInlineElements (rootElement);
120749
+ this .addEventDispatchersAll (rootElement);
120258
120750
 
120259
- browser .removeLoadingObject (this);
120260
- }
120261
- else
120262
- {
120263
- browser .replaceWorld (null);
120264
- }
120265
- }
120266
- catch (error)
120267
- {
120268
- console .error ("Error importing document:", error);
120269
- }
120270
- }
120751
+ browser .removeLoadingObject (this);
120752
+ }
120753
+ else
120754
+ {
120755
+ browser .replaceWorld (null);
120756
+ }
120757
+ }
120758
+ catch (error)
120759
+ {
120760
+ console .error ("Error importing document:", error);
120761
+ }
120762
+ }
120271
120763
 
120272
- processMutation (mutation)
120273
- {
120274
- switch (mutation .type)
120275
- {
120276
- case "attributes":
120277
- {
120278
- this .processAttribute (mutation, mutation .target);
120279
- break;
120280
- }
120281
- case "childList":
120282
- {
120283
- for (const node of mutation .addedNodes)
120284
- this .processAddedNode (node);
120764
+ processMutation (mutation)
120765
+ {
120766
+ switch (mutation .type)
120767
+ {
120768
+ case "attributes":
120769
+ {
120770
+ this .processAttribute (mutation, mutation .target);
120771
+ break;
120772
+ }
120773
+ case "childList":
120774
+ {
120775
+ for (const node of mutation .addedNodes)
120776
+ this .processAddedNode (node);
120285
120777
 
120286
- for (const node of mutation .removedNodes)
120287
- this .processRemovedNode (node);
120778
+ for (const node of mutation .removedNodes)
120779
+ this .processRemovedNode (node);
120288
120780
 
120289
- break;
120290
- }
120291
- }
120292
- }
120781
+ break;
120782
+ }
120783
+ }
120784
+ }
120293
120785
 
120294
- processAttribute (mutation, element)
120295
- {
120296
- const
120297
- parser = this .parser,
120298
- node = DOMIntegration_$.data (element, "node");
120786
+ processAttribute (mutation, element)
120787
+ {
120788
+ const
120789
+ parser = this .parser,
120790
+ node = DOMIntegration_$.data (element, "node");
120299
120791
 
120300
- if (node)
120301
- {
120302
- const
120303
- attributeName = mutation .attributeName,
120304
- attribute = element .attributes .getNamedItem (attributeName);
120792
+ if (node)
120793
+ {
120794
+ const
120795
+ attributeName = mutation .attributeName,
120796
+ attribute = element .attributes .getNamedItem (attributeName);
120305
120797
 
120306
- parser .nodeAttribute (attribute, node);
120307
- }
120308
- else
120309
- {
120310
- // Is an attribute of non-node child such as fieldValue (or ROUTE).
120798
+ parser .nodeAttribute (attribute, node);
120799
+ }
120800
+ else
120801
+ {
120802
+ // Is an attribute of non-node child such as fieldValue (or ROUTE).
120311
120803
 
120312
- const
120313
- parentNode = element .parentNode,
120314
- node = DOMIntegration_$.data (parentNode, "node");
120804
+ const
120805
+ parentNode = element .parentNode,
120806
+ node = DOMIntegration_$.data (parentNode, "node");
120315
120807
 
120316
- if (node)
120317
- {
120318
- parser .pushExecutionContext (node .getExecutionContext ());
120319
- parser .pushParent (node);
120320
- parser .childElement (element);
120321
- parser .popParent ();
120322
- parser .popExecutionContext ();
120323
- }
120324
- }
120325
- }
120808
+ if (node)
120809
+ {
120810
+ parser .pushExecutionContext (node .getExecutionContext ());
120811
+ parser .pushParent (node);
120812
+ parser .childElement (element);
120813
+ parser .popParent ();
120814
+ parser .popExecutionContext ();
120815
+ }
120816
+ }
120817
+ }
120326
120818
 
120327
- processAddedNode (element)
120328
- {
120329
- // Only process element nodes.
120819
+ processAddedNode (element)
120820
+ {
120821
+ // Only process element nodes.
120330
120822
 
120331
- if (element .nodeType !== Node .ELEMENT_NODE)
120332
- return;
120823
+ if (element .nodeType !== Node .ELEMENT_NODE)
120824
+ return;
120333
120825
 
120334
- if (element .nodeName === "X3D")
120335
- return;
120826
+ if (element .nodeName === "X3D")
120827
+ return;
120336
120828
 
120337
- if (DOMIntegration_$.data (element, "node"))
120338
- return;
120829
+ if (DOMIntegration_$.data (element, "node"))
120830
+ return;
120339
120831
 
120340
- const
120341
- parentNode = element .parentNode,
120342
- parser = this .parser;
120832
+ const
120833
+ parentNode = element .parentNode,
120834
+ parser = this .parser;
120343
120835
 
120344
- if (parentNode .nodeName .match (/^(?:Scene|SCENE)$/))
120345
- {
120346
- // Root scene or Inline scene.
120836
+ if (parentNode .nodeName .match (/^(?:Scene|SCENE)$/))
120837
+ {
120838
+ // Root scene or Inline scene.
120347
120839
 
120348
- const scene = DOMIntegration_$.data (parentNode, "node");
120840
+ const scene = DOMIntegration_$.data (parentNode, "node");
120349
120841
 
120350
- parser .pushExecutionContext (scene);
120351
- parser .childElement (element);
120352
- parser .popExecutionContext ();
120353
- }
120354
- else if (DOMIntegration_$.data (parentNode, "node"))
120355
- {
120356
- // Use parent's scene if non-root, works for Inline.
120357
-
120358
- const
120359
- node = DOMIntegration_$.data (parentNode, "node"),
120360
- executionContext = node .getExecutionContext ();
120361
-
120362
- parser .pushExecutionContext (executionContext);
120363
- parser .pushParent (node);
120364
- parser .childElement (element);
120365
- parser .popParent ();
120366
- parser .popExecutionContext ();
120367
- }
120368
- else
120369
- {
120370
- const scene = this .browser .currentScene;
120842
+ parser .pushExecutionContext (scene);
120843
+ parser .childElement (element);
120844
+ parser .popExecutionContext ();
120845
+ }
120846
+ else if (DOMIntegration_$.data (parentNode, "node"))
120847
+ {
120848
+ // Use parent's scene if non-root, works for Inline.
120371
120849
 
120372
- parser .pushExecutionContext (scene);
120373
- parser .childElement (element);
120374
- parser .popExecutionContext ();
120375
- }
120850
+ const
120851
+ node = DOMIntegration_$.data (parentNode, "node"),
120852
+ executionContext = node .getExecutionContext ();
120376
120853
 
120377
- // Now after creating nodes need to look again for Inline elements.
120854
+ parser .pushExecutionContext (executionContext);
120855
+ parser .pushParent (node);
120856
+ parser .childElement (element);
120857
+ parser .popParent ();
120858
+ parser .popExecutionContext ();
120859
+ }
120860
+ else
120861
+ {
120862
+ const scene = this .browser .currentScene;
120378
120863
 
120379
- this .processInlineElements (element);
120864
+ parser .pushExecutionContext (scene);
120865
+ parser .childElement (element);
120866
+ parser .popExecutionContext ();
120867
+ }
120380
120868
 
120381
- // Then attach event dispatchers.
120869
+ // Now after creating nodes need to look again for Inline elements.
120382
120870
 
120383
- this .addEventDispatchers (element);
120384
- this .addEventDispatchersAll (element);
120385
- }
120871
+ this .processInlineElements (element);
120386
120872
 
120387
- processRemovedNode (element)
120388
- {
120389
- // Works also for root nodes, as it has to be, since scene .rootNodes is effectively a MFNode in x-ite.
120390
- // Also removes ROUTE elements.
120873
+ // Then attach event dispatchers.
120391
120874
 
120392
- const node = DOMIntegration_$.data (element, "node");
120875
+ this .addEventDispatchers (element);
120876
+ this .addEventDispatchersAll (element);
120877
+ }
120393
120878
 
120394
- if (!node)
120395
- return;
120879
+ processRemovedNode (element)
120880
+ {
120881
+ // Works also for root nodes, as it has to be, since scene .rootNodes is effectively a MFNode in x-ite.
120882
+ // Also removes ROUTE elements.
120396
120883
 
120397
- node .dispose ();
120884
+ const node = DOMIntegration_$.data (element, "node");
120398
120885
 
120399
- DOMIntegration_$.data (element, "node", null);
120400
- }
120886
+ if (!node)
120887
+ return;
120401
120888
 
120402
- processInlineElements (element)
120403
- {
120404
- if (element .nodeName .match (/^(?:Inline|INLINE)$/))
120405
- this .processInlineElement (element);
120889
+ node .dispose ();
120406
120890
 
120407
- for (const inlineElement of element .querySelectorAll ("Inline"))
120408
- this .processInlineElement (inlineElement);
120409
- }
120891
+ DOMIntegration_$.data (element, "node", null);
120892
+ }
120410
120893
 
120411
- processInlineElement (element)
120412
- {
120413
- const node = DOMIntegration_$.data (element, "node");
120894
+ processInlineElements (element)
120895
+ {
120896
+ if (element .nodeName .match (/^(?:Inline|INLINE)$/))
120897
+ this .processInlineElement (element);
120414
120898
 
120415
- if (!node)
120416
- return;
120899
+ for (const inlineElement of element .querySelectorAll ("Inline"))
120900
+ this .processInlineElement (inlineElement);
120901
+ }
120417
120902
 
120418
- node ._loadState .addInterest ("appendInlineChildElement", this, element);
120903
+ processInlineElement (element)
120904
+ {
120905
+ const node = DOMIntegration_$.data (element, "node");
120419
120906
 
120420
- this .appendInlineChildElement (element);
120421
- }
120907
+ if (!node)
120908
+ return;
120422
120909
 
120423
- appendInlineChildElement (element)
120424
- {
120425
- const node = DOMIntegration_$.data (element, "node");
120910
+ node ._loadState .addInterest ("appendInlineChildElement", this, element);
120426
120911
 
120427
- switch (node .checkLoadState ())
120428
- {
120429
- case Base_X3DConstants .NOT_STARTED_STATE:
120430
- case Base_X3DConstants .FAILED_STATE:
120431
- {
120432
- // Remove all child nodes.
120912
+ this .appendInlineChildElement (element);
120913
+ }
120433
120914
 
120434
- while (element .firstChild)
120435
- element .removeChild (element .lastChild);
120915
+ appendInlineChildElement (element)
120916
+ {
120917
+ const node = DOMIntegration_$.data (element, "node");
120436
120918
 
120437
- break;
120438
- }
120439
- case Base_X3DConstants .COMPLETE_STATE:
120440
- {
120441
- // Remove all child nodes.
120919
+ switch (node .checkLoadState ())
120920
+ {
120921
+ case Base_X3DConstants .NOT_STARTED_STATE:
120922
+ case Base_X3DConstants .FAILED_STATE:
120923
+ {
120924
+ // Remove all child nodes.
120442
120925
 
120443
- while (element .firstChild)
120444
- element .removeChild (element .lastChild);
120926
+ while (element .firstChild)
120927
+ element .removeChild (element .lastChild);
120445
120928
 
120446
- // Add scene as child node of Inline element.
120929
+ break;
120930
+ }
120931
+ case Base_X3DConstants .COMPLETE_STATE:
120932
+ {
120933
+ // Remove all child nodes.
120447
120934
 
120448
- const X3DElement = DOMIntegration_$.data (node .getInternalScene (), "X3D");
120935
+ while (element .firstChild)
120936
+ element .removeChild (element .lastChild);
120449
120937
 
120450
- if (X3DElement)
120451
- element .appendChild (X3DElement);
120938
+ // Add scene as child node of Inline element.
120452
120939
 
120453
- // Add Inline elements, and connect to node events.
120940
+ const X3DElement = DOMIntegration_$.data (node .getInternalScene (), "X3D");
120454
120941
 
120455
- this .processInlineElements (X3DElement);
120456
- this .addEventDispatchersAll (X3DElement);
120942
+ if (X3DElement)
120943
+ element .appendChild (X3DElement);
120457
120944
 
120458
- break;
120459
- }
120460
- }
120945
+ // Add Inline elements, and connect to node events.
120461
120946
 
120462
- switch (node .checkLoadState ())
120463
- {
120464
- case Base_X3DConstants .COMPLETE_STATE:
120465
- {
120466
- const event = new CustomEvent ("load",
120467
- {
120468
- detail: { node: Fields_SFNodeCache .get (node) },
120469
- });
120947
+ this .processInlineElements (X3DElement);
120948
+ this .addEventDispatchersAll (X3DElement);
120470
120949
 
120471
- element .dispatchEvent (event);
120472
- break;
120473
- }
120474
- case Base_X3DConstants .FAILED_STATE:
120475
- {
120476
- const event = new CustomEvent ("error",
120477
- {
120478
- detail: { node: Fields_SFNodeCache .get (node) },
120479
- });
120950
+ break;
120951
+ }
120952
+ }
120480
120953
 
120481
- element .dispatchEvent (event);
120482
- break;
120483
- }
120484
- }
120485
- }
120954
+ switch (node .checkLoadState ())
120955
+ {
120956
+ case Base_X3DConstants .COMPLETE_STATE:
120957
+ {
120958
+ const event = new CustomEvent ("load",
120959
+ {
120960
+ detail: { node: Fields_SFNodeCache .get (node) },
120961
+ });
120962
+
120963
+ element .dispatchEvent (event);
120964
+ break;
120965
+ }
120966
+ case Base_X3DConstants .FAILED_STATE:
120967
+ {
120968
+ const event = new CustomEvent ("error",
120969
+ {
120970
+ detail: { node: Fields_SFNodeCache .get (node) },
120971
+ });
120486
120972
 
120487
- addEventDispatchersAll (element)
120488
- {
120489
- const childElements = element .querySelectorAll ("*");
120973
+ element .dispatchEvent (event);
120974
+ break;
120975
+ }
120976
+ }
120977
+ }
120490
120978
 
120491
- for (const childElement of childElements)
120492
- this .addEventDispatchers (childElement);
120493
- }
120979
+ addEventDispatchersAll (element)
120980
+ {
120981
+ const childElements = element .querySelectorAll ("*");
120494
120982
 
120495
- addEventDispatchers (element)
120496
- {
120497
- // Check for USE nodes; they do not emit events.
120983
+ for (const childElement of childElements)
120984
+ this .addEventDispatchers (childElement);
120985
+ }
120498
120986
 
120499
- if (element .nodeName === "ROUTE")
120500
- return;
120987
+ addEventDispatchers (element)
120988
+ {
120989
+ // Check for USE nodes; they do not emit events.
120501
120990
 
120502
- const node = DOMIntegration_$.data (element, "node");
120991
+ if (element .nodeName === "ROUTE")
120992
+ return;
120503
120993
 
120504
- if (!node)
120505
- return;
120994
+ const node = DOMIntegration_$.data (element, "node");
120506
120995
 
120507
- for (const field of node .getPredefinedFields ())
120508
- this .bindFieldCallback (field, element);
120996
+ if (!node)
120997
+ return;
120509
120998
 
120510
- for (const field of node .getUserDefinedFields ())
120511
- this .bindFieldCallback (field, element);
120512
- }
120999
+ for (const field of node .getPredefinedFields ())
121000
+ this .bindFieldCallback (field, element);
120513
121001
 
120514
- bindFieldCallback (field, element)
120515
- {
120516
- if (!field .isOutput ())
120517
- return;
121002
+ for (const field of node .getUserDefinedFields ())
121003
+ this .bindFieldCallback (field, element);
121004
+ }
120518
121005
 
120519
- field .addInterest ("fieldCallback", this, element);
120520
- }
121006
+ bindFieldCallback (field, element)
121007
+ {
121008
+ if (!field .isOutput ())
121009
+ return;
120521
121010
 
120522
- fieldCallback (element, field)
120523
- {
120524
- const node = DOMIntegration_$.data (element, "node");
121011
+ field .addInterest ("fieldCallback", this, element);
121012
+ }
120525
121013
 
120526
- if (!node)
120527
- return;
121014
+ fieldCallback (element, field)
121015
+ {
121016
+ const node = DOMIntegration_$.data (element, "node");
120528
121017
 
120529
- const event = new CustomEvent (field .getName (),
120530
- {
120531
- detail: {
120532
- node: Fields_SFNodeCache .get (node),
120533
- value: field .valueOf (),
120534
- },
120535
- });
121018
+ if (!node)
121019
+ return;
120536
121020
 
120537
- element .dispatchEvent (event);
120538
- }
121021
+ const event = new CustomEvent (field .getName (),
121022
+ {
121023
+ detail: {
121024
+ node: Fields_SFNodeCache .get (node),
121025
+ value: field .valueOf (),
121026
+ },
121027
+ });
121028
+
121029
+ element .dispatchEvent (event);
121030
+ }
120539
121031
  };
120540
121032
 
120541
121033
  const DOMIntegration_default_ = DOMIntegration;
@@ -121286,7 +121778,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
121286
121778
  x_ite_Namespace .add ("SupportedProfiles", "x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
121287
121779
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
121288
121780
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
121289
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(368);
121781
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(37);
121290
121782
  /*******************************************************************************
121291
121783
  *
121292
121784
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -121717,8 +122209,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121717
122209
 
121718
122210
  // Detach scene from parent.
121719
122211
 
121720
- scene .getExecutionContext () .getLive () .removeInterest ("setLive", scene);
121721
122212
  scene .setExecutionContext (scene);
122213
+ scene .setLive (this .isLive ());
121722
122214
 
121723
122215
  // Replace.
121724
122216
 
@@ -121731,8 +122223,6 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121731
122223
 
121732
122224
  this .setExecutionContext (scene);
121733
122225
  this .getWorld () .bindBindables ();
121734
-
121735
- scene .setLive (this .isLive ());
121736
122226
  });
121737
122227
  },
121738
122228
  checkLoadCount (resolve, loadCount)
@@ -121759,9 +122249,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121759
122249
 
121760
122250
  if (!external)
121761
122251
  {
121762
- currentScene .getLive () .addInterest ("setLive", scene);
121763
122252
  scene .setExecutionContext (currentScene);
121764
- scene .setLive (currentScene .isLive ());
122253
+ scene .setLive (true);
121765
122254
  }
121766
122255
 
121767
122256
  return scene .rootNodes;
@@ -121783,9 +122272,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121783
122272
 
121784
122273
  if (!external)
121785
122274
  {
121786
- currentScene .getLive () .addInterest ("setLive", scene);
121787
122275
  scene .setExecutionContext (currentScene);
121788
- scene .setLive (currentScene .isLive ());
122276
+ scene .setLive (true);
121789
122277
  }
121790
122278
 
121791
122279
  return scene;
@@ -121816,7 +122304,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121816
122304
 
121817
122305
  this .addLoadingObject (fileLoader);
121818
122306
 
121819
- fileLoader .createX3DFromURL (url, null, (scene) =>
122307
+ fileLoader .createX3DFromURL (url, null, scene =>
121820
122308
  {
121821
122309
  this .removeLoadingObject (fileLoader);
121822
122310
 
@@ -121826,9 +122314,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121826
122314
 
121827
122315
  if (!external)
121828
122316
  {
121829
- currentScene .getLive () .addInterest ("setLive", scene);
121830
122317
  scene .setExecutionContext (currentScene);
121831
- scene .setLive (currentScene .isLive ());
122318
+ scene .setLive (true);
121832
122319
  }
121833
122320
 
121834
122321
  // Wait until scene is completely loaded, scene ._loadCount must be 0.
@@ -121855,7 +122342,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121855
122342
 
121856
122343
  this .addLoadingObject (fileLoader);
121857
122344
 
121858
- fileLoader .createX3DFromURL (url, null, (scene) =>
122345
+ fileLoader .createX3DFromURL (url, null, scene =>
121859
122346
  {
121860
122347
  this .removeLoadingObject (fileLoader);
121861
122348
 
@@ -121863,9 +122350,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121863
122350
  {
121864
122351
  if (!external)
121865
122352
  {
121866
- currentScene .getLive () .addInterest ("setLive", scene);
121867
122353
  scene .setExecutionContext (currentScene);
121868
- scene .setLive (currentScene .isLive ());
122354
+ scene .setLive (true);
121869
122355
  }
121870
122356
 
121871
122357
  resolve (scene);
@@ -121891,7 +122377,7 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
121891
122377
 
121892
122378
  const fileLoader = new InputOutput_FileLoader (this .getWorld ());
121893
122379
 
121894
- fileLoader .createX3DFromURL (url, parameter, (scene) =>
122380
+ fileLoader .createX3DFromURL (url, parameter, scene =>
121895
122381
  {
121896
122382
  if (this [_fileLoader] !== fileLoader)
121897
122383
  {
@@ -122044,9 +122530,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
122044
122530
 
122045
122531
  if (!external)
122046
122532
  {
122047
- currentScene .getLive () .addInterest ("setLive", scene);
122048
122533
  scene .setExecutionContext (currentScene);
122049
- scene .setLive (currentScene .isLive ());
122534
+ scene .setLive (true);
122050
122535
  }
122051
122536
 
122052
122537
  const parser = new Parser_XMLParser (scene);
@@ -122064,9 +122549,8 @@ Object .assign (Object .setPrototypeOf (X3DBrowser .prototype, Browser_X3DBrowse
122064
122549
 
122065
122550
  if (!external)
122066
122551
  {
122067
- currentScene .getLive () .addInterest ("setLive", scene);
122068
122552
  scene .setExecutionContext (currentScene);
122069
- scene .setLive (currentScene .isLive ());
122553
+ scene .setLive (true);
122070
122554
  }
122071
122555
 
122072
122556
  const parser = new Parser_JSONParser (scene);
@@ -122385,7 +122869,7 @@ const X3DBrowser_default_ = X3DBrowser;
122385
122869
  x_ite_Namespace .add ("X3DBrowser", "x_ite/Browser/X3DBrowser", X3DBrowser_default_);
122386
122870
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
122387
122871
  ;// CONCATENATED MODULE: ./src/x_ite/X3DCanvasElement.js
122388
- /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(368);
122872
+ /* provided dependency */ var X3DCanvasElement_$ = __webpack_require__(37);
122389
122873
  /*******************************************************************************
122390
122874
  *
122391
122875
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122506,6 +122990,11 @@ class X3DCanvasElement extends HTMLElement
122506
122990
  {
122507
122991
  return this .browser ?.getCanvas () [0] .toDataURL (... args);
122508
122992
  }
122993
+
122994
+ get [Symbol .toStringTag] ()
122995
+ {
122996
+ return "X3DCanvasElement";
122997
+ }
122509
122998
  }
122510
122999
 
122511
123000
  // IE fix.
@@ -122517,8 +123006,8 @@ const X3DCanvasElement_default_ = X3DCanvasElement;
122517
123006
  x_ite_Namespace .add ("X3DCanvasElement", "x_ite/X3DCanvasElement", X3DCanvasElement_default_);
122518
123007
  /* harmony default export */ const x_ite_X3DCanvasElement = (X3DCanvasElement_default_);
122519
123008
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
122520
- /* provided dependency */ var jquery_$ = __webpack_require__(368);
122521
- /* provided dependency */ var pako = __webpack_require__(300);
123009
+ /* provided dependency */ var jquery_$ = __webpack_require__(37);
123010
+ /* provided dependency */ var pako = __webpack_require__(465);
122522
123011
  Object .assign (jquery_$,
122523
123012
  {
122524
123013
  decodeText (input)
@@ -122595,14 +123084,14 @@ const jquery_default_ = jquery_$;
122595
123084
  x_ite_Namespace .add ("jquery", "lib/jquery", jquery_default_);
122596
123085
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
122597
123086
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
122598
- /* provided dependency */ var libtess_libtess = __webpack_require__(125);
123087
+ /* provided dependency */ var libtess_libtess = __webpack_require__(214);
122599
123088
  const libtess_default_ = libtess_libtess;
122600
123089
  ;
122601
123090
 
122602
123091
  x_ite_Namespace .add ("libtess", "lib/libtess", libtess_default_);
122603
123092
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
122604
123093
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
122605
- /* provided dependency */ var X3D_$ = __webpack_require__(368);
123094
+ /* provided dependency */ var X3D_$ = __webpack_require__(37);
122606
123095
  /*******************************************************************************
122607
123096
  *
122608
123097
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -122910,7 +123399,7 @@ Object .assign (X3D,
122910
123399
 
122911
123400
  // Assign X3D to global namespace.
122912
123401
 
122913
- window [Symbol .for ("X_ITE.X3D-9.2.7")] = x_ite_X3D;
123402
+ window [Symbol .for ("X_ITE.X3D-9.3.1")] = x_ite_X3D;
122914
123403
 
122915
123404
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
122916
123405