x_ite 8.7.5 → 8.7.7

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 (243) 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 +13 -13
  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 +21 -23
  12. package/dist/assets/components/Geometry2D.min.js +1 -1
  13. package/dist/assets/components/Geospatial.js +35 -36
  14. package/dist/assets/components/Geospatial.min.js +1 -1
  15. package/dist/assets/components/HAnim.js +18 -18
  16. package/dist/assets/components/HAnim.min.js +1 -1
  17. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  18. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  19. package/dist/assets/components/Layout.js +28 -28
  20. package/dist/assets/components/Layout.min.js +1 -1
  21. package/dist/assets/components/NURBS.js +24 -24
  22. package/dist/assets/components/NURBS.min.js +1 -1
  23. package/dist/assets/components/ParticleSystems.js +22 -22
  24. package/dist/assets/components/ParticleSystems.min.js +1 -1
  25. package/dist/assets/components/Picking.js +20 -20
  26. package/dist/assets/components/Picking.min.js +1 -1
  27. package/dist/assets/components/RigidBodyPhysics.js +25 -25
  28. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  29. package/dist/assets/components/Scripting.js +28 -28
  30. package/dist/assets/components/Scripting.min.js +1 -1
  31. package/dist/assets/components/Text.js +26 -27
  32. package/dist/assets/components/Text.min.js +1 -1
  33. package/dist/assets/components/TextureProjector.js +15 -15
  34. package/dist/assets/components/TextureProjector.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 +9 -9
  40. package/dist/assets/components/X_ITE.min.js +1 -1
  41. package/dist/x_ite.css +1 -1
  42. package/dist/x_ite.js +370 -591
  43. package/dist/x_ite.min.js +1 -1
  44. package/dist/x_ite.zip +0 -0
  45. package/docs/_config.yml +1 -1
  46. package/docs/_includes/scripts.html +0 -1
  47. package/docs/_posts/components/CADGeometry/QuadSet.md +1 -1
  48. package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +1 -1
  49. package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +1 -1
  50. package/docs/_posts/components/EnvironmentalEffects/Background.md +1 -1
  51. package/docs/_posts/components/EnvironmentalEffects/Fog.md +1 -1
  52. package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +1 -1
  53. package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +1 -1
  54. package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +1 -1
  55. package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +1 -1
  56. package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +1 -1
  57. package/docs/_posts/components/EventUtilities/IntegerSequencer.md +1 -1
  58. package/docs/_posts/components/Followers/ColorChaser.md +1 -1
  59. package/docs/_posts/components/Followers/ColorDamper.md +1 -1
  60. package/docs/_posts/components/Followers/CoordinateChaser.md +1 -1
  61. package/docs/_posts/components/Followers/ScalarChaser.md +1 -1
  62. package/docs/_posts/components/Geometry2D/Arc2D.md +1 -1
  63. package/docs/_posts/components/Geometry2D/ArcClose2D.md +1 -1
  64. package/docs/_posts/components/Geometry2D/Circle2D.md +1 -1
  65. package/docs/_posts/components/Geometry2D/Disk2D.md +1 -1
  66. package/docs/_posts/components/Geometry2D/Polyline2D.md +1 -1
  67. package/docs/_posts/components/Geometry2D/Polypoint2D.md +1 -1
  68. package/docs/_posts/components/Geometry2D/Rectangle2D.md +1 -1
  69. package/docs/_posts/components/Geometry2D/TriangleSet2D.md +1 -1
  70. package/docs/_posts/components/Geometry3D/Box.md +1 -1
  71. package/docs/_posts/components/Geometry3D/Cone.md +1 -1
  72. package/docs/_posts/components/Geometry3D/Cylinder.md +1 -1
  73. package/docs/_posts/components/Geometry3D/ElevationGrid.md +1 -1
  74. package/docs/_posts/components/Geometry3D/Extrusion.md +1 -1
  75. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +1 -1
  76. package/docs/_posts/components/Geometry3D/Sphere.md +1 -1
  77. package/docs/_posts/components/Geospatial/GeoElevationGrid.md +1 -1
  78. package/docs/_posts/components/Geospatial/GeoLOD.md +1 -1
  79. package/docs/_posts/components/Geospatial/GeoViewpoint.md +1 -1
  80. package/docs/_posts/components/Grouping/Group.md +1 -1
  81. package/docs/_posts/components/Grouping/Switch.md +1 -1
  82. package/docs/_posts/components/Grouping/Transform.md +1 -1
  83. package/docs/_posts/components/HAnim/HAnimHumanoid.md +1 -1
  84. package/docs/_posts/components/Interpolation/ColorInterpolator.md +1 -1
  85. package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +1 -1
  86. package/docs/_posts/components/Interpolation/OrientationInterpolator.md +1 -1
  87. package/docs/_posts/components/Interpolation/PositionInterpolator.md +1 -1
  88. package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +1 -1
  89. package/docs/_posts/components/Interpolation/ScalarInterpolator.md +1 -1
  90. package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +1 -1
  91. package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +1 -1
  92. package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +1 -1
  93. package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +1 -1
  94. package/docs/_posts/components/Layering/LayerSet.md +1 -1
  95. package/docs/_posts/components/Layering/Viewport.md +1 -1
  96. package/docs/_posts/components/Lighting/DirectionalLight.md +1 -1
  97. package/docs/_posts/components/Lighting/PointLight.md +1 -1
  98. package/docs/_posts/components/Lighting/SpotLight.md +1 -1
  99. package/docs/_posts/components/NURBS/NurbsCurve.md +1 -1
  100. package/docs/_posts/components/NURBS/NurbsPatchSurface.md +1 -1
  101. package/docs/_posts/components/NURBS/NurbsSweptSurface.md +1 -1
  102. package/docs/_posts/components/Navigation/Billboard.md +1 -1
  103. package/docs/_posts/components/Navigation/Collision.md +1 -1
  104. package/docs/_posts/components/Navigation/NavigationInfo.md +1 -1
  105. package/docs/_posts/components/Navigation/OrthoViewpoint.md +1 -1
  106. package/docs/_posts/components/Navigation/Viewpoint.md +1 -1
  107. package/docs/_posts/components/Networking/Anchor.md +1 -1
  108. package/docs/_posts/components/Networking/Inline.md +1 -1
  109. package/docs/_posts/components/Networking/LoadSensor.md +1 -1
  110. package/docs/_posts/components/ParticleSystems/ConeEmitter.md +1 -1
  111. package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +1 -1
  112. package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +1 -1
  113. package/docs/_posts/components/ParticleSystems/ParticleSystem.md +1 -1
  114. package/docs/_posts/components/ParticleSystems/PointEmitter.md +1 -1
  115. package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +1 -1
  116. package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +1 -1
  117. package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +1 -1
  118. package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +1 -1
  119. package/docs/_posts/components/Picking/LinePickSensor.md +1 -1
  120. package/docs/_posts/components/Picking/PointPickSensor.md +1 -1
  121. package/docs/_posts/components/Picking/PrimitivePickSensor.md +1 -1
  122. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +1 -1
  123. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +1 -1
  124. package/docs/_posts/components/Rendering/ClipPlane.md +1 -1
  125. package/docs/_posts/components/Rendering/Color.md +1 -1
  126. package/docs/_posts/components/Rendering/ColorRGBA.md +1 -1
  127. package/docs/_posts/components/Rendering/Coordinate.md +1 -1
  128. package/docs/_posts/components/Rendering/IndexedLineSet.md +1 -1
  129. package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +1 -1
  130. package/docs/_posts/components/Rendering/IndexedTriangleSet.md +1 -1
  131. package/docs/_posts/components/Rendering/LineSet.md +1 -1
  132. package/docs/_posts/components/Rendering/PointSet.md +1 -1
  133. package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +1 -1
  134. package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +1 -1
  135. package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +1 -1
  136. package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +1 -1
  137. package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +1 -1
  138. package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +1 -1
  139. package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +1 -1
  140. package/docs/_posts/components/Shaders/ComposedShader.md +1 -1
  141. package/docs/_posts/components/Shaders/FloatVertexAttribute.md +1 -1
  142. package/docs/_posts/components/Shaders/ShaderPart.md +1 -1
  143. package/docs/_posts/components/Shape/Appearance.md +1 -1
  144. package/docs/_posts/components/Shape/FillProperties.md +1 -1
  145. package/docs/_posts/components/Shape/LineProperties.md +1 -1
  146. package/docs/_posts/components/Shape/Material.md +1 -1
  147. package/docs/_posts/components/Shape/TwoSidedMaterial.md +1 -1
  148. package/docs/_posts/components/Sound/AudioClip.md +1 -1
  149. package/docs/_posts/components/Text/FontStyle.md +1 -1
  150. package/docs/_posts/components/Text/Text.md +1 -1
  151. package/docs/_posts/components/Texturing/ImageTexture.md +1 -1
  152. package/docs/_posts/components/Texturing/MovieTexture.md +1 -1
  153. package/docs/_posts/components/Texturing/MultiTexture.md +1 -1
  154. package/docs/_posts/components/Texturing/PixelTexture.md +1 -1
  155. package/docs/_posts/components/Texturing3D/ImageTexture3D.md +1 -1
  156. package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +1 -1
  157. package/docs/_posts/components/Time/TimeSensor.md +1 -1
  158. package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +1 -1
  159. package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +1 -1
  160. package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +1 -1
  161. package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +1 -1
  162. package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +1 -1
  163. package/docs/_posts/components/VolumeRendering/VolumeData.md +1 -1
  164. package/docs/_posts/components/X_ITE/BlendMode.md +1 -1
  165. package/docs/_posts/custom-shaders.md +1 -1
  166. package/docs/_posts/getting-started.md +7 -2
  167. package/docs/_posts/reference/browser-services.md +6 -0
  168. package/docs/_posts/tutorials/adding-backgrounds.md +2 -2
  169. package/docs/_posts/tutorials/adding-sound.md +1 -1
  170. package/docs/_posts/tutorials/building-a-x3d-world.md +1 -1
  171. package/docs/_posts/tutorials/building-elevation-grids.md +1 -1
  172. package/docs/_posts/tutorials/building-primitive-shapes.md +2 -2
  173. package/docs/_posts/tutorials/controlling-appearance-with-materials.md +1 -1
  174. package/docs/_posts/tutorials/controlling-detail.md +1 -1
  175. package/docs/_posts/tutorials/hello-world.md +1 -1
  176. package/docs/_posts/tutorials/naming-nodes.md +1 -1
  177. package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +1 -1
  178. package/package.json +3 -3
  179. package/src/assets/shaders/webgl1/include/Shadow.glsl.js +11 -2
  180. package/src/assets/shaders/webgl2/include/Shadow.glsl.js +11 -2
  181. package/src/lib/jquery.js +13 -0
  182. package/src/standard/Geospatial/UniversalTransverseMercator.js +0 -1
  183. package/src/standard/Math/Geometry/Box2.js +18 -5
  184. package/src/standard/Math/Geometry/Box3.js +18 -5
  185. package/src/standard/Math/Geometry/Cylinder3.js +1 -1
  186. package/src/standard/Math/Geometry/Line2.js +1 -1
  187. package/src/standard/Math/Geometry/Line3.js +1 -1
  188. package/src/standard/Math/Geometry/Plane3.js +1 -1
  189. package/src/standard/Math/Geometry/Sphere3.js +14 -14
  190. package/src/standard/Math/Numbers/Complex.js +0 -4
  191. package/src/standard/Math/Numbers/Quaternion.js +27 -73
  192. package/src/standard/Math/Numbers/Rotation4.js +0 -29
  193. package/src/standard/Math/Numbers/Vector2.js +0 -64
  194. package/src/standard/Math/Numbers/Vector3.js +0 -72
  195. package/src/standard/Math/Numbers/Vector4.js +0 -64
  196. package/src/tests.js +0 -1
  197. package/src/x_ite/Base/X3DObject.js +9 -32
  198. package/src/x_ite/Base/X3DObjectArrayField.js +35 -64
  199. package/src/x_ite/Browser/Core/BrowserOptions.js +37 -0
  200. package/src/x_ite/Browser/Core/X3DCoreContext.js +18 -0
  201. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +4 -4
  202. package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +12 -7
  203. package/src/x_ite/Browser/Navigation/ExamineViewer.js +9 -9
  204. package/src/x_ite/Browser/Navigation/LookAtViewer.js +3 -3
  205. package/src/x_ite/Browser/Navigation/WalkViewer.js +2 -2
  206. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +7 -7
  207. package/src/x_ite/Browser/Picking/VolumePicker.js +1 -1
  208. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +0 -1
  209. package/src/x_ite/Browser/Text/X3DTextGeometry.js +2 -3
  210. package/src/x_ite/Browser/VERSION.js +1 -1
  211. package/src/x_ite/Browser/X3DBrowser.js +4 -4
  212. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +1 -1
  213. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +1 -1
  214. package/src/x_ite/Components/Followers/OrientationChaser.js +3 -3
  215. package/src/x_ite/Components/Followers/OrientationDamper.js +3 -3
  216. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +2 -3
  217. package/src/x_ite/Components/Geometry3D/Box.js +3 -10
  218. package/src/x_ite/Components/Geometry3D/Cone.js +1 -1
  219. package/src/x_ite/Components/Geometry3D/Cylinder.js +2 -2
  220. package/src/x_ite/Components/Geometry3D/Extrusion.js +3 -3
  221. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +2 -2
  222. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +2 -2
  223. package/src/x_ite/Components/Layout/Layout.js +1 -1
  224. package/src/x_ite/Components/Navigation/Billboard.js +1 -1
  225. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +10 -10
  226. package/src/x_ite/Components/Picking/PointPickSensor.js +1 -1
  227. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +7 -7
  228. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +1 -1
  229. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +9 -9
  230. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +1 -1
  231. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +2 -2
  232. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +1 -1
  233. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +1 -1
  234. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +3 -3
  235. package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +1 -1
  236. package/src/x_ite/Fields/ArrayFields.js +1 -1
  237. package/src/x_ite/Fields/SFNodeCache.js +2 -2
  238. package/src/x_ite/Fields/SFVec3.js +1 -1
  239. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +3 -3
  240. package/src/x_ite/Parser/SVGParser.js +1 -1
  241. package/src/x_ite/Rendering/X3DRenderObject.js +3 -3
  242. package/src/x_ite/X3DCanvasElement.js +1 -0
  243. package/docs/assets/js/autoupdate.js +0 -25
package/dist/x_ite.js CHANGED
@@ -1,4 +1,4 @@
1
- /* X_ITE v8.7.5 */(function webpackUniversalModuleDefinition(root, factory) {
1
+ /* X_ITE v8.7.7 */(function webpackUniversalModuleDefinition(root, factory) {
2
2
  if(typeof exports === 'object' && typeof module === 'object')
3
3
  module.exports = factory();
4
4
  else if(typeof define === 'function' && define.amd)
@@ -11,11 +11,11 @@
11
11
  return /******/ (() => { // webpackBootstrap
12
12
  /******/ var __webpack_modules__ = ({
13
13
 
14
- /***/ 822:
14
+ /***/ 998:
15
15
  /***/ (function(module, exports, __webpack_require__) {
16
16
 
17
17
  "use strict";
18
- /* provided dependency */ var jQuery = __webpack_require__(994);
18
+ /* provided dependency */ var jQuery = __webpack_require__(188);
19
19
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
20
20
 
21
21
  /**
@@ -387,10 +387,10 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_RESULT__;
387
387
 
388
388
  /***/ }),
389
389
 
390
- /***/ 53:
390
+ /***/ 707:
391
391
  /***/ ((__unused_webpack_module, __unused_webpack_exports, __webpack_require__) => {
392
392
 
393
- /* provided dependency */ var jQuery = __webpack_require__(994);
393
+ /* provided dependency */ var jQuery = __webpack_require__(188);
394
394
  /**
395
395
  * @preserve jquery.fullscreen 1.1.5
396
396
  * https://github.com/code-lts/jquery-fullscreen-plugin
@@ -586,7 +586,7 @@ installFullScreenHandlers();
586
586
 
587
587
  /***/ }),
588
588
 
589
- /***/ 6:
589
+ /***/ 248:
590
590
  /***/ ((module, exports, __webpack_require__) => {
591
591
 
592
592
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -600,7 +600,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
600
600
  (function (factory) {
601
601
  if ( true ) {
602
602
  // AMD. Register as an anonymous module.
603
- !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(994)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
603
+ !(__WEBPACK_AMD_DEFINE_ARRAY__ = [__webpack_require__(188)], __WEBPACK_AMD_DEFINE_FACTORY__ = (factory),
604
604
  __WEBPACK_AMD_DEFINE_RESULT__ = (typeof __WEBPACK_AMD_DEFINE_FACTORY__ === 'function' ?
605
605
  (__WEBPACK_AMD_DEFINE_FACTORY__.apply(exports, __WEBPACK_AMD_DEFINE_ARRAY__)) : __WEBPACK_AMD_DEFINE_FACTORY__),
606
606
  __WEBPACK_AMD_DEFINE_RESULT__ !== undefined && (module.exports = __WEBPACK_AMD_DEFINE_RESULT__));
@@ -811,7 +811,7 @@ var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_
811
811
 
812
812
  /***/ }),
813
813
 
814
- /***/ 994:
814
+ /***/ 188:
815
815
  /***/ (function(module, exports) {
816
816
 
817
817
  var __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*!
@@ -11523,7 +11523,7 @@ return jQuery;
11523
11523
 
11524
11524
  /***/ }),
11525
11525
 
11526
- /***/ 870:
11526
+ /***/ 139:
11527
11527
  /***/ ((module) => {
11528
11528
 
11529
11529
  /**
@@ -16302,7 +16302,7 @@ if (true) {
16302
16302
 
16303
16303
  /***/ }),
16304
16304
 
16305
- /***/ 444:
16305
+ /***/ 971:
16306
16306
  /***/ (function(__unused_webpack_module, exports) {
16307
16307
 
16308
16308
 
@@ -19547,7 +19547,7 @@ if (true) {
19547
19547
 
19548
19548
  /***/ }),
19549
19549
 
19550
- /***/ 361:
19550
+ /***/ 817:
19551
19551
  /***/ (function(module, exports) {
19552
19552
 
19553
19553
  var __WEBPACK_AMD_DEFINE_FACTORY__, __WEBPACK_AMD_DEFINE_ARRAY__, __WEBPACK_AMD_DEFINE_RESULT__;/*
@@ -21919,16 +21919,9 @@ X3DObject .prototype =
21919
21919
  {
21920
21920
  return this [_name];
21921
21921
  },
21922
- getInterestId: function (callbackName, object)
21923
- {
21924
- if (typeof callbackName === "symbol")
21925
- return X3DObject .getId (object) + ".Symbol(" + SymbolId (callbackName) + ")";
21926
-
21927
- return X3DObject .getId (object) + "." + String (callbackName);
21928
- },
21929
21922
  hasInterest: function (callbackName, object)
21930
21923
  {
21931
- return this [_interests] .has (this .getInterestId (callbackName, object));
21924
+ return this [_interests] .has (X3DObject .getInterestId (callbackName, object));
21932
21925
  },
21933
21926
  addInterest: function (callbackName, object, ... args)
21934
21927
  {
@@ -21939,14 +21932,14 @@ X3DObject .prototype =
21939
21932
  }
21940
21933
 
21941
21934
  const
21942
- interestId = this .getInterestId (callbackName, object),
21935
+ interestId = X3DObject .getInterestId (callbackName, object),
21943
21936
  callback = object [callbackName];
21944
21937
 
21945
21938
  this [_interests] .set (interestId, callback .bind (object, ... args, this));
21946
21939
  },
21947
21940
  removeInterest: function (callbackName, object)
21948
21941
  {
21949
- this [_interests] .delete (this .getInterestId (callbackName, object));
21942
+ this [_interests] .delete (X3DObject .getInterestId (callbackName, object));
21950
21943
  },
21951
21944
  getInterests: function ()
21952
21945
  {
@@ -22021,7 +22014,7 @@ X3DObject .prototype =
22021
22014
  },
22022
22015
  toStream: function (generator)
22023
22016
  {
22024
- generator .string = "[object " + this .getTypeName () + "]";
22017
+ generator .string = `[object ${this .getTypeName ()}]`;
22025
22018
  },
22026
22019
  dispose: function ()
22027
22020
  {
@@ -22044,7 +22037,7 @@ Object .assign (X3DObject,
22044
22037
  {
22045
22038
  const map = new WeakMap ();
22046
22039
 
22047
- let counter = 0;
22040
+ let counter = 0; // In the future we can use a bigint here (0n).
22048
22041
 
22049
22042
  return function (object)
22050
22043
  {
@@ -22058,27 +22051,11 @@ Object .assign (X3DObject,
22058
22051
  return counter;
22059
22052
  };
22060
22053
  })(),
22061
- });
22062
-
22063
- // In the future we can use getId, because WeakMap will accept Symbols as key.
22064
- const SymbolId = (function ()
22065
- {
22066
- const map = new Map ();
22067
-
22068
- let counter = 0;
22069
-
22070
- return function (object)
22054
+ getInterestId: function (callbackName, object)
22071
22055
  {
22072
- const id = map .get (object);
22073
-
22074
- if (id !== undefined)
22075
- return id;
22076
-
22077
- map .set (object, ++ counter);
22078
-
22079
- return counter;
22080
- };
22081
- })();
22056
+ return `${this .getId (object)}.${this .getId (object [callbackName])}`;
22057
+ },
22058
+ });
22082
22059
 
22083
22060
  const X3DObject_default_ = X3DObject;
22084
22061
  ;
@@ -25062,7 +25039,7 @@ x_ite_Namespace.set ("x_ite/Fields/SFMatrixPrototypeTemplate", SFMatrixPrototype
25062
25039
 
25063
25040
 
25064
25041
 
25065
- function SFVecPrototypeTemplate (Constructor, TypeName, Type, ValueType, double)
25042
+ function SFVecPrototypeTemplate (Constructor, TypeName, Type, Vector, double)
25066
25043
  {
25067
25044
  const _formatter = double ? "DoubleFormat" : "FloatFormat";
25068
25045
 
@@ -25091,7 +25068,7 @@ function SFVecPrototypeTemplate (Constructor, TypeName, Type, ValueType, double)
25091
25068
  },
25092
25069
  isDefaultValue: function ()
25093
25070
  {
25094
- return this .getValue () .equals (ValueType .Zero);
25071
+ return this .getValue () .equals (Vector .Zero);
25095
25072
  },
25096
25073
  set: function (value)
25097
25074
  {
@@ -25455,70 +25432,6 @@ Object .assign (Vector2,
25455
25432
  One: new Vector2 (1, 1),
25456
25433
  xAxis: new Vector2 (1, 0),
25457
25434
  yAxis: new Vector2 (0, 1),
25458
- negate: function (vector)
25459
- {
25460
- return vector .copy () .negate ();
25461
- },
25462
- inverse: function (vector)
25463
- {
25464
- return vector .copy () .inverse ();
25465
- },
25466
- add: function (lhs, rhs)
25467
- {
25468
- return lhs .copy () .add (rhs);
25469
- },
25470
- subtract: function (lhs, rhs)
25471
- {
25472
- return lhs .copy () .subtract (rhs);
25473
- },
25474
- multiply: function (lhs, rhs)
25475
- {
25476
- return lhs .copy () .multiply (rhs);
25477
- },
25478
- multVec: function (lhs, rhs)
25479
- {
25480
- return lhs .copy () .multVec (rhs);
25481
- },
25482
- divide: function (lhs, rhs)
25483
- {
25484
- return lhs .copy () .divide (rhs);
25485
- },
25486
- divVec: function (lhs, rhs)
25487
- {
25488
- return lhs .copy () .divVec (rhs);
25489
- },
25490
- normalize: function (vector)
25491
- {
25492
- return vector .copy () .normalize ();
25493
- },
25494
- dot: function (lhs, rhs)
25495
- {
25496
- return lhs .dot (rhs);
25497
- },
25498
- magnitude: function (vector)
25499
- {
25500
- return vector .magnitude ();
25501
- },
25502
- distance: function (lhs, rhs)
25503
- {
25504
- return lhs .distance (rhs);
25505
- },
25506
- lerp: function (source, destination, t)
25507
- {
25508
- return source .copy () .lerp (destination, t);
25509
- },
25510
- abs: function (vector)
25511
- {
25512
- return vector .copy () .abs ();
25513
- },
25514
- min: function (lhs, rhs)
25515
- {
25516
- return this .prototype .min .apply (lhs .copy (), arguments);
25517
- },
25518
- max: function (lhs, rhs)
25519
- {
25520
- return this .prototype .max .apply (lhs .copy (), arguments);
25521
- },
25522
25435
  });
25523
25436
 
25524
25437
  const Vector2_default_ = Vector2;
@@ -25939,78 +25852,6 @@ Object .assign (Vector3,
25939
25852
  xAxis: new Vector3 (1, 0, 0),
25940
25853
  yAxis: new Vector3 (0, 1, 0),
25941
25854
  zAxis: new Vector3 (0, 0, 1),
25942
- negate: function (vector)
25943
- {
25944
- return vector .copy () .negate ();
25945
- },
25946
- inverse: function (vector)
25947
- {
25948
- return vector .copy () .inverse ();
25949
- },
25950
- add: function (lhs, rhs)
25951
- {
25952
- return lhs .copy () .add (rhs);
25953
- },
25954
- subtract: function (lhs, rhs)
25955
- {
25956
- return lhs .copy () .subtract (rhs);
25957
- },
25958
- multiply: function (lhs, rhs)
25959
- {
25960
- return lhs .copy () .multiply (rhs);
25961
- },
25962
- multVec: function (lhs, rhs)
25963
- {
25964
- return lhs .copy () .multVec (rhs);
25965
- },
25966
- divide: function (lhs, rhs)
25967
- {
25968
- return lhs .copy () .divide (rhs);
25969
- },
25970
- divVec: function (lhs, rhs)
25971
- {
25972
- return lhs .copy () .divVec (rhs);
25973
- },
25974
- cross: function (lhs, rhs)
25975
- {
25976
- return lhs .copy () .cross (rhs);
25977
- },
25978
- normalize: function (vector)
25979
- {
25980
- return vector .copy () .normalize ();
25981
- },
25982
- dot: function (lhs, rhs)
25983
- {
25984
- return lhs .dot (rhs);
25985
- },
25986
- magnitude: function (vector)
25987
- {
25988
- return vector .magnitude ();
25989
- },
25990
- distance: function (lhs, rhs)
25991
- {
25992
- return lhs .distance (rhs);
25993
- },
25994
- lerp: function (source, destination, t)
25995
- {
25996
- return source .copy () .lerp (destination, t);
25997
- },
25998
- slerp: function (source, destination, t)
25999
- {
26000
- return source .copy () .slerp (destination, t);
26001
- },
26002
- abs: function (vector)
26003
- {
26004
- return vector .copy () .abs ();
26005
- },
26006
- min: function (lhs, rhs)
26007
- {
26008
- return this .prototype .min .apply (lhs .copy (), arguments);
26009
- },
26010
- max: function (lhs, rhs)
26011
- {
26012
- return this .prototype .max .apply (lhs .copy (), arguments);
26013
- },
26014
25855
  });
26015
25856
 
26016
25857
  const Vector3_default_ = Vector3;
@@ -27386,7 +27227,7 @@ function SFVec3Template (TypeName, Type, double)
27386
27227
  {
27387
27228
  cross: function (vector)
27388
27229
  {
27389
- return new (this .constructor) (Numbers_Vector3.cross (this .getValue (), vector .getValue ()));
27230
+ return new (this .constructor) (this .getValue () .copy () .cross (vector .getValue ()));
27390
27231
  },
27391
27232
  });
27392
27233
 
@@ -27758,70 +27599,6 @@ Object .assign (Vector4,
27758
27599
  yAxis: new Vector4 (0, 1, 0, 0),
27759
27600
  zAxis: new Vector4 (0, 0, 1, 0),
27760
27601
  wAxis: new Vector4 (0, 0, 0, 1),
27761
- negate: function (vector)
27762
- {
27763
- return vector .copy () .negate ();
27764
- },
27765
- inverse: function (vector)
27766
- {
27767
- return vector .copy () .inverse ();
27768
- },
27769
- add: function (lhs, rhs)
27770
- {
27771
- return lhs .copy () .add (rhs);
27772
- },
27773
- subtract: function (lhs, rhs)
27774
- {
27775
- return lhs .copy () .subtract (rhs);
27776
- },
27777
- multiply: function (lhs, rhs)
27778
- {
27779
- return lhs .copy () .multiply (rhs);
27780
- },
27781
- multVec: function (lhs, rhs)
27782
- {
27783
- return lhs .copy () .multVec (rhs);
27784
- },
27785
- divide: function (lhs, rhs)
27786
- {
27787
- return lhs .copy () .divide (rhs);
27788
- },
27789
- divVec: function (lhs, rhs)
27790
- {
27791
- return lhs .copy () .divVec (rhs);
27792
- },
27793
- normalize: function (vector)
27794
- {
27795
- return vector .copy () .normalize ();
27796
- },
27797
- dot: function (lhs, rhs)
27798
- {
27799
- return lhs .dot (rhs);
27800
- },
27801
- magnitude: function (vector)
27802
- {
27803
- return vector .magnitude ();
27804
- },
27805
- distance: function (lhs, rhs)
27806
- {
27807
- return lhs .distance (rhs);
27808
- },
27809
- lerp: function (source, destination, t)
27810
- {
27811
- return source .copy () .lerp (destination, t);
27812
- },
27813
- abs: function (vector)
27814
- {
27815
- return vector .copy () .abs ();
27816
- },
27817
- min: function (lhs, rhs)
27818
- {
27819
- return this .prototype .min .apply (lhs .copy (), arguments);
27820
- },
27821
- max: function (lhs, rhs)
27822
- {
27823
- return this .prototype .max .apply (lhs .copy (), arguments);
27824
- },
27825
27602
  });
27826
27603
 
27827
27604
  const Vector4_default_ = Vector4;
@@ -28276,80 +28053,40 @@ Object .defineProperties (Quaternion .prototype,
28276
28053
 
28277
28054
  Object .assign (Quaternion,
28278
28055
  {
28279
- negate: function (quat)
28280
- {
28281
- return quat .copy () .negate ();
28282
- },
28283
- inverse: function (quat)
28284
- {
28285
- return quat .copy () .inverse ();
28286
- },
28287
- add: function (lhs, rhs)
28288
- {
28289
- return lhs .copy () .add (rhs);
28290
- },
28291
- subtract: function (lhs, rhs)
28292
- {
28293
- return lhs .copy () .subtract (rhs);
28294
- },
28295
- multiply: function (lhs, rhs)
28296
- {
28297
- return lhs .copy () .multiply (rhs);
28298
- },
28299
- multLeft: function (lhs, rhs)
28300
- {
28301
- return lhs .copy () .multLeft (rhs);
28302
- },
28303
- multRight: function (lhs, rhs)
28304
- {
28305
- return lhs .copy () .multRight (rhs);
28306
- },
28307
- divide: function (lhs, rhs)
28308
- {
28309
- return lhs .copy () .divide (rhs);
28310
- },
28311
- normalize: function (quat)
28312
- {
28313
- return quat .copy () .normalize ();
28314
- },
28315
- slerp: function (source, destination, t)
28316
- {
28317
- return source .copy () .slerp (destination, t);
28318
- },
28319
- squad: function (source, a, b, destination, t)
28320
- {
28321
- return source .copy () .squad (a, b, destination, t);
28322
- },
28323
- /*
28324
- bezier: function (q0, a, b, q1, t)
28056
+ Identity: new Quaternion (0, 0, 0, 1),
28057
+ spline: (function ()
28325
28058
  {
28326
- return q0 .copy () .squad (a, b, q1, t);
28327
- },
28328
- */
28329
- spline: function (Q0, Q1, Q2)
28330
- {
28331
- q0 .assign (Q0);
28332
- q1 .assign (Q1);
28333
- q2 .assign (Q2);
28059
+ const
28060
+ q0 = new Quaternion (0, 0, 0, 1),
28061
+ q1 = new Quaternion (0, 0, 0, 1),
28062
+ q2 = new Quaternion (0, 0, 0, 1),
28063
+ q1_i = new Quaternion (0, 0, 0, 1);
28334
28064
 
28335
- // If the dot product is smaller than 0 we must negate the quaternion to prevent flipping. If we negate all
28336
- // the terms we get a different quaternion but it represents the same rotation.
28065
+ return function (Q0, Q1, Q2)
28066
+ {
28067
+ q0 .assign (Q0);
28068
+ q1 .assign (Q1);
28069
+ q2 .assign (Q2);
28337
28070
 
28338
- if (q0 .dot (q1) < 0)
28339
- q0 .negate ();
28071
+ // If the dot product is smaller than 0 we must negate the quaternion to prevent flipping. If we negate all
28072
+ // the terms we get a different quaternion but it represents the same rotation.
28340
28073
 
28341
- if (q2 .dot (q1) < 0)
28342
- q2 .negate ();
28074
+ if (q0 .dot (q1) < 0)
28075
+ q0 .negate ();
28343
28076
 
28344
- q1_i .assign (q1) .inverse ();
28077
+ if (q2 .dot (q1) < 0)
28078
+ q2 .negate ();
28345
28079
 
28346
- // The result must be normalized as it will be used in slerp and we can only slerp normalized vectors.
28080
+ q1_i .assign (q1) .inverse ();
28347
28081
 
28348
- return q1 .multRight (
28349
- t1 .assign (q1_i) .multRight (q0) .log () .add (t2 .assign (q1_i) .multRight (q2) .log ()) .divide (-4) .exp ()
28350
- )
28351
- .normalize () .copy ();
28352
- },
28082
+ // The result must be normalized as it will be used in slerp and we can only slerp normalized vectors.
28083
+
28084
+ return q1 .multRight (
28085
+ t1 .assign (q1_i) .multRight (q0) .log () .add (t2 .assign (q1_i) .multRight (q2) .log ()) .divide (-4) .exp ()
28086
+ )
28087
+ .normalize () .copy ();
28088
+ };
28089
+ })(),
28353
28090
  });
28354
28091
 
28355
28092
  const
@@ -28357,12 +28094,6 @@ const
28357
28094
  t2 = new Quaternion (0, 0, 0, 1),
28358
28095
  t3 = new Quaternion (0, 0, 0, 1);
28359
28096
 
28360
- const
28361
- q0 = new Quaternion (0, 0, 0, 1),
28362
- q1 = new Quaternion (0, 0, 0, 1),
28363
- q2 = new Quaternion (0, 0, 0, 1),
28364
- q1_i = new Quaternion (0, 0, 0, 1);
28365
-
28366
28097
  const Quaternion_default_ = Quaternion;
28367
28098
  ;
28368
28099
 
@@ -28815,35 +28546,6 @@ Object .defineProperties (Rotation4 .prototype,
28815
28546
  Object .assign (Rotation4,
28816
28547
  {
28817
28548
  Identity: new Rotation4 (),
28818
- inverse: function (rotation)
28819
- {
28820
- return rotation .copy () .inverse ();
28821
- },
28822
- multRight: function (lhs, rhs)
28823
- {
28824
- return lhs .copy () .multRight (rhs);
28825
- },
28826
- normalize: function (rotation)
28827
- {
28828
- return rotation .copy () .normalize ();
28829
- },
28830
- slerp: function (source, destination, t)
28831
- {
28832
- return source .copy () .slerp (destination, t);
28833
- },
28834
- squad: function (source, a, b, destination, t)
28835
- {
28836
- return source .copy () .squad (a, b, destination, t);
28837
- },
28838
- /*
28839
- bezier: function (source, a, b, destination, t)
28840
- {
28841
- const copy = Object .create (this .prototype);
28842
- copy [_quaternion] = Quaternion .bezier (source [_quaternion], a, b, destination [_quaternion], t);
28843
- copy .update ();
28844
- return copy;
28845
- },
28846
- */
28847
28549
  spline: function (r0, r1, r2)
28848
28550
  {
28849
28551
  const copy = Object .create (this .prototype);
@@ -29873,11 +29575,11 @@ function dispose ()
29873
29575
  target = this [_target],
29874
29576
  value = target .getValue ();
29875
29577
 
29876
- cache .delete (value);
29578
+ Base_X3DField.prototype.dispose.call (target);
29877
29579
 
29878
29580
  value ?.dispose ();
29879
29581
 
29880
- Base_X3DField.prototype.dispose.call (target);
29582
+ cache .delete (value);
29881
29583
  }
29882
29584
 
29883
29585
  const SFNodeCache_default_ = SFNodeCache;
@@ -31229,8 +30931,7 @@ x_ite_Namespace.set ("x_ite/Base/X3DArrayField", X3DArrayField_default_);
31229
30931
 
31230
30932
  const
31231
30933
  X3DObjectArrayField_target = Symbol (),
31232
- X3DObjectArrayField_proxy = Symbol (),
31233
- _find = Symbol ();
30934
+ X3DObjectArrayField_proxy = Symbol ();
31234
30935
 
31235
30936
  const X3DObjectArrayField_handler =
31236
30937
  {
@@ -31372,6 +31073,10 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31372
31073
 
31373
31074
  return true;
31374
31075
  },
31076
+ isDefaultValue: function ()
31077
+ {
31078
+ return this .length === 0;
31079
+ },
31375
31080
  set: function (value)
31376
31081
  {
31377
31082
  const target = this [X3DObjectArrayField_target];
@@ -31383,10 +31088,6 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31383
31088
  for (let i = 0, length = value .length; i < length; ++ i)
31384
31089
  array [i] .set (value [i] instanceof Base_X3DField ? value [i] .getValue () : value [i]);
31385
31090
  },
31386
- isDefaultValue: function ()
31387
- {
31388
- return this .length === 0;
31389
- },
31390
31091
  setValue: function (value)
31391
31092
  {
31392
31093
  const target = this [X3DObjectArrayField_target];
@@ -31421,10 +31122,14 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31421
31122
 
31422
31123
  if (array .length)
31423
31124
  {
31424
- const field = array .shift ();
31125
+ const
31126
+ field = array .shift (),
31127
+ result = field .valueOf ();
31128
+
31425
31129
  target .removeChildObject (field);
31426
31130
  target .addEvent ();
31427
- return field .valueOf ();
31131
+
31132
+ return result;
31428
31133
  }
31429
31134
  },
31430
31135
  push: function (value)
@@ -31454,10 +31159,14 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31454
31159
 
31455
31160
  if (array .length)
31456
31161
  {
31457
- const field = array .pop ();
31162
+ const
31163
+ field = array .pop (),
31164
+ result = field .valueOf ();
31165
+
31458
31166
  target .removeChildObject (field);
31459
31167
  target .addEvent ();
31460
- return field .valueOf ();
31168
+
31169
+ return result;
31461
31170
  }
31462
31171
  },
31463
31172
  splice: function (index, deleteCount, ... insertValues)
@@ -31498,53 +31207,28 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31498
31207
 
31499
31208
  target .addEvent ();
31500
31209
  },
31501
- [_find]: function (first, last, value)
31502
- {
31503
- const
31504
- target = this [X3DObjectArrayField_target],
31505
- values = target .getValue ();
31506
-
31507
- if (typeof value === "function")
31508
- {
31509
- for (let i = first; i < last; ++ i)
31510
- {
31511
- if (value (values [i] .valueOf ()))
31512
- return i;
31513
- }
31514
-
31515
- return last;
31516
- }
31517
-
31518
- for (let i = first; i < last; ++ i)
31519
- {
31520
- if (values [i] .equals (value))
31521
- return i;
31522
- }
31523
-
31524
- return last;
31525
- },
31526
31210
  remove: function (first, last, value)
31527
31211
  {
31528
31212
  const
31529
31213
  target = this [X3DObjectArrayField_target],
31530
- values = target .getValue ();
31214
+ array = target .getValue ();
31531
31215
 
31532
31216
  if (typeof value === "function")
31533
31217
  {
31534
- first = target [_find] (first, last, value);
31218
+ first = array .findIndex ((current, index) => index >= first && value (current .valueOf ()))
31535
31219
 
31536
- if (first !== last)
31220
+ if (first !== -1)
31537
31221
  {
31538
31222
  for (let i = first; ++ i < last; )
31539
31223
  {
31540
- const current = values [i];
31224
+ const current = array [i];
31541
31225
 
31542
31226
  if (!value (current .valueOf ()))
31543
31227
  {
31544
- const tmp = values [first];
31228
+ const tmp = array [first];
31545
31229
 
31546
- values [first ++] = current;
31547
- values [i] = tmp;
31230
+ array [first ++] = current;
31231
+ array [i] = tmp;
31548
31232
  }
31549
31233
  }
31550
31234
  }
@@ -31555,25 +31239,25 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31555
31239
  return first;
31556
31240
  }
31557
31241
 
31558
- first = target [_find] (first, last, value);
31242
+ first = array .findIndex ((current, index) => index >= first && current .equals (value))
31559
31243
 
31560
- if (first !== last)
31244
+ if (first !== -1)
31561
31245
  {
31562
31246
  for (let i = first; ++ i < last; )
31563
31247
  {
31564
- const current = values [i];
31248
+ const current = array [i];
31565
31249
 
31566
31250
  if (!current .equals (value))
31567
31251
  {
31568
- const tmp = values [first];
31252
+ const tmp = array [first];
31569
31253
 
31570
- values [first ++] = current;
31571
- values [i] = tmp;
31254
+ array [first ++] = current;
31255
+ array [i] = tmp;
31572
31256
  }
31573
31257
  }
31574
31258
  }
31575
31259
 
31576
- if (first !== last)
31260
+ if (first !== -1)
31577
31261
  target .addEvent ();
31578
31262
 
31579
31263
  return first;
@@ -31582,14 +31266,15 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31582
31266
  {
31583
31267
  const
31584
31268
  target = this [X3DObjectArrayField_target],
31585
- values = target .getValue () .splice (first, last - first);
31269
+ values = target .getValue () .splice (first, last - first),
31270
+ result = new (target .constructor) (values);
31586
31271
 
31587
31272
  for (const value of values)
31588
31273
  target .removeChildObject (value);
31589
31274
 
31590
31275
  target .addEvent ();
31591
31276
 
31592
- return new (target .constructor) (values);
31277
+ return result;
31593
31278
  },
31594
31279
  resize: function (size, value, silently)
31595
31280
  {
@@ -31632,6 +31317,7 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31632
31317
  removeChildObject: function (value)
31633
31318
  {
31634
31319
  value .removeParent (this [X3DObjectArrayField_proxy]);
31320
+ value .dispose ();
31635
31321
  },
31636
31322
  reverse: function ()
31637
31323
  {
@@ -31776,19 +31462,6 @@ X3DObjectArrayField .prototype = Object .assign (Object .create (Base_X3DArrayFi
31776
31462
  generator .string += ']';
31777
31463
  }
31778
31464
  },
31779
- dispose: function ()
31780
- {
31781
- const
31782
- target = this [X3DObjectArrayField_target],
31783
- array = target .getValue ();
31784
-
31785
- for (const value of array)
31786
- target .removeChildObject (value);
31787
-
31788
- array .length = 0;
31789
-
31790
- Base_X3DArrayField.prototype.dispose.call (target);
31791
- },
31792
31465
  });
31793
31466
 
31794
31467
  for (const key of Reflect .ownKeys (X3DObjectArrayField .prototype))
@@ -33233,7 +32906,7 @@ MFNode .prototype = Object .assign (Object .create (Base_X3DObjectArrayField.pro
33233
32906
  {
33234
32907
  const target = this .getTarget ();
33235
32908
 
33236
- target .resize (0, undefined, true);
32909
+ target .resize (0, undefined, false);
33237
32910
  target .processInterests ();
33238
32911
 
33239
32912
  Base_X3DObjectArrayField.prototype.dispose.call (target);
@@ -34609,7 +34282,7 @@ x_ite_Namespace.set ("x_ite/Base/X3DBaseNode", X3DBaseNode_default_);
34609
34282
  *
34610
34283
  ******************************************************************************/
34611
34284
 
34612
- const VERSION_default_ = "8.7.5";
34285
+ const VERSION_default_ = "8.7.7";
34613
34286
  ;
34614
34287
 
34615
34288
  x_ite_Namespace.set ("x_ite/Browser/VERSION", VERSION_default_);
@@ -35528,7 +35201,7 @@ const gettext_default_ = gettext;
35528
35201
  x_ite_Namespace.set ("locale/gettext", gettext_default_);
35529
35202
  /* harmony default export */ const locale_gettext = (gettext_default_);
35530
35203
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserTimings.js
35531
- /* provided dependency */ var $ = __webpack_require__(994);
35204
+ /* provided dependency */ var $ = __webpack_require__(188);
35532
35205
  /*******************************************************************************
35533
35206
  *
35534
35207
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36026,7 +35699,7 @@ const TextureQuality_default_ = TextureQuality;
36026
35699
  x_ite_Namespace.set ("x_ite/Browser/Core/TextureQuality", TextureQuality_default_);
36027
35700
  /* harmony default export */ const Core_TextureQuality = (TextureQuality_default_);
36028
35701
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/BrowserOptions.js
36029
- /* provided dependency */ var BrowserOptions_$ = __webpack_require__(994);
35702
+ /* provided dependency */ var BrowserOptions_$ = __webpack_require__(188);
36030
35703
  /*******************************************************************************
36031
35704
  *
36032
35705
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36112,6 +35785,7 @@ BrowserOptions .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36112
35785
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "QualityWhenMoving", new x_ite_Fields.SFString ("SAME")),
36113
35786
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "Shading", new x_ite_Fields.SFString ("GOURAUD")),
36114
35787
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "MotionBlur", new x_ite_Fields.SFBool ()),
35788
+ new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "AutoUpdate", new x_ite_Fields.SFBool (false)),
36115
35789
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "Cache", new x_ite_Fields.SFBool (true)),
36116
35790
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "ContentScale", new x_ite_Fields.SFDouble (1)),
36117
35791
  new Base_X3DFieldDefinition (Base_X3DConstants.inputOutput, "ContextMenu", new x_ite_Fields.SFBool (true)),
@@ -36155,6 +35829,7 @@ BrowserOptions .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36155
35829
  this ._TextureQuality .addInterest ("set_textureQuality__", this);
36156
35830
  this ._Shading .addInterest ("set_shading__", this);
36157
35831
  this ._StraightenHorizon .addInterest ("set_straightenHorizon__", this);
35832
+ this ._AutoUpdate .addInterest ("set_autoUpdate__", this);
36158
35833
  this ._ContentScale .addInterest ("set_contentScale__", this);
36159
35834
  this ._LogarithmicDepthBuffer .addInterest ("set_logarithmicDepthBuffer__", this);
36160
35835
  this ._Multisampling .addInterest ("set_multisampling__", this);
@@ -36172,6 +35847,7 @@ BrowserOptions .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36172
35847
  {
36173
35848
  const attributes = new Set ([
36174
35849
  "Antialiased",
35850
+ "AutoUpdate",
36175
35851
  "Cache",
36176
35852
  "ContentScale",
36177
35853
  "ContextMenu",
@@ -36325,6 +36001,40 @@ BrowserOptions .prototype = Object .assign (Object .create (Base_X3DBaseNode.pro
36325
36001
 
36326
36002
  browser .reshape ();
36327
36003
  },
36004
+ set_autoUpdate__: function (autoUpdate)
36005
+ {
36006
+ const events = ["resize", "scroll", "load"]
36007
+ .map (event => `${event}.${this .getTypeName ()}${this .getId ()}`)
36008
+ .join (" ");
36009
+
36010
+ if (autoUpdate .getValue ())
36011
+ {
36012
+ const
36013
+ browser = this .getBrowser (),
36014
+ element = browser .getElement ();
36015
+
36016
+ const checkUpdate = () =>
36017
+ {
36018
+ if (element .isInViewport ())
36019
+ {
36020
+ if (!browser .isLive ())
36021
+ browser .beginUpdate ();
36022
+ }
36023
+ else
36024
+ {
36025
+ if (browser .isLive ())
36026
+ browser .endUpdate ();
36027
+ }
36028
+ };
36029
+
36030
+ BrowserOptions_$(window) .on (events, checkUpdate);
36031
+ checkUpdate ();
36032
+ }
36033
+ else
36034
+ {
36035
+ BrowserOptions_$(window) .off (events);
36036
+ }
36037
+ },
36328
36038
  set_contentScale__: function (contentScale)
36329
36039
  {
36330
36040
  const browser = this .getBrowser ();
@@ -36570,7 +36280,7 @@ const RenderingProperties_default_ = RenderingProperties;
36570
36280
  x_ite_Namespace.set ("x_ite/Browser/Core/RenderingProperties", RenderingProperties_default_);
36571
36281
  /* harmony default export */ const Core_RenderingProperties = (RenderingProperties_default_);
36572
36282
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/Notification.js
36573
- /* provided dependency */ var Notification_$ = __webpack_require__(994);
36283
+ /* provided dependency */ var Notification_$ = __webpack_require__(188);
36574
36284
  /*******************************************************************************
36575
36285
  *
36576
36286
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -36692,8 +36402,8 @@ const Notification_default_ = Notification;
36692
36402
  x_ite_Namespace.set ("x_ite/Browser/Core/Notification", Notification_default_);
36693
36403
  /* harmony default export */ const Core_Notification = (Notification_default_);
36694
36404
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/ContextMenu.js
36695
- /* provided dependency */ var jquery_fullscreen = __webpack_require__(53);
36696
- /* provided dependency */ var ContextMenu_$ = __webpack_require__(994);
36405
+ /* provided dependency */ var jquery_fullscreen = __webpack_require__(707);
36406
+ /* provided dependency */ var ContextMenu_$ = __webpack_require__(188);
36697
36407
  /*******************************************************************************
36698
36408
  *
36699
36409
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -41767,7 +41477,7 @@ const X3DUrlObject_default_ = X3DUrlObject;
41767
41477
  x_ite_Namespace.set ("x_ite/Components/Networking/X3DUrlObject", X3DUrlObject_default_);
41768
41478
  /* harmony default export */ const Networking_X3DUrlObject = (X3DUrlObject_default_);
41769
41479
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/X3DParser.js
41770
- /* provided dependency */ var X3DParser_$ = __webpack_require__(994);
41480
+ /* provided dependency */ var X3DParser_$ = __webpack_require__(188);
41771
41481
  /*******************************************************************************
41772
41482
  *
41773
41483
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -44949,7 +44659,7 @@ const VRMLParser_default_ = VRMLParser;
44949
44659
  x_ite_Namespace.set ("x_ite/Parser/VRMLParser", VRMLParser_default_);
44950
44660
  /* harmony default export */ const Parser_VRMLParser = (VRMLParser_default_);
44951
44661
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/XMLParser.js
44952
- /* provided dependency */ var XMLParser_$ = __webpack_require__(994);
44662
+ /* provided dependency */ var XMLParser_$ = __webpack_require__(188);
44953
44663
  /*******************************************************************************
44954
44664
  *
44955
44665
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -46804,7 +46514,7 @@ const X3DOptimizer_default_ = X3DOptimizer;
46804
46514
  x_ite_Namespace.set ("x_ite/Parser/X3DOptimizer", X3DOptimizer_default_);
46805
46515
  /* harmony default export */ const Parser_X3DOptimizer = (X3DOptimizer_default_);
46806
46516
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLTF2Parser.js
46807
- /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(994);
46517
+ /* provided dependency */ var GLTF2Parser_$ = __webpack_require__(188);
46808
46518
  /*******************************************************************************
46809
46519
  *
46810
46520
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49270,7 +48980,7 @@ const GLTF2Parser_default_ = GLTF2Parser;
49270
48980
  x_ite_Namespace.set ("x_ite/Parser/GLTF2Parser", GLTF2Parser_default_);
49271
48981
  /* harmony default export */ const Parser_GLTF2Parser = (GLTF2Parser_default_);
49272
48982
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GLB2Parser.js
49273
- /* provided dependency */ var GLB2Parser_$ = __webpack_require__(994);
48983
+ /* provided dependency */ var GLB2Parser_$ = __webpack_require__(188);
49274
48984
  /*******************************************************************************
49275
48985
  *
49276
48986
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -49423,7 +49133,7 @@ const GLB2Parser_default_ = GLB2Parser;
49423
49133
  x_ite_Namespace.set ("x_ite/Parser/GLB2Parser", GLB2Parser_default_);
49424
49134
  /* harmony default export */ const Parser_GLB2Parser = (GLB2Parser_default_);
49425
49135
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/OBJParser.js
49426
- /* provided dependency */ var OBJParser_$ = __webpack_require__(994);
49136
+ /* provided dependency */ var OBJParser_$ = __webpack_require__(188);
49427
49137
  /*******************************************************************************
49428
49138
  *
49429
49139
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -51310,10 +51020,6 @@ Object .assign (Complex,
51310
51020
  {
51311
51021
  return lhs .copy () .multiply (rhs);
51312
51022
  },
51313
- multComp: function (lhs, rhs)
51314
- {
51315
- return lhs .copy () .multComp (rhs);
51316
- },
51317
51023
  });
51318
51024
 
51319
51025
  const Complex_default_ = Complex;
@@ -51417,10 +51123,11 @@ Box2 .prototype =
51417
51123
 
51418
51124
  return this;
51419
51125
  }
51420
- case 3:
51421
- {
51422
- return this .setExtents (arguments [0], arguments [1]);
51423
- }
51126
+ // case 3:
51127
+ // {
51128
+ // console .trace ()
51129
+ // return this .setExtents (arguments [0], arguments [1]);
51130
+ // }
51424
51131
  }
51425
51132
  },
51426
51133
  setExtents: function (min, max)
@@ -51460,7 +51167,7 @@ Box2 .prototype =
51460
51167
  this .getExtents (lhs_min, lhs_max);
51461
51168
  box .getExtents (rhs_min, rhs_max);
51462
51169
 
51463
- return this .set (lhs_min .min (rhs_min), lhs_max .max (rhs_max), true);
51170
+ return this .setExtents (lhs_min .min (rhs_min), lhs_max .max (rhs_max));
51464
51171
  };
51465
51172
  })(),
51466
51173
  multLeft: function (matrix)
@@ -51527,6 +51234,18 @@ Box2 .prototype =
51527
51234
  },
51528
51235
  };
51529
51236
 
51237
+ Object .assign (Box2,
51238
+ {
51239
+ Extents: function (min, max)
51240
+ {
51241
+ return new Box2 () .setExtents (min, max);
51242
+ },
51243
+ Points: function (... points)
51244
+ {
51245
+ return new Box2 () .setExtents (points [0] .copy () .min (... points), points [0] .copy () .max (... points));
51246
+ },
51247
+ });
51248
+
51530
51249
  Object .defineProperties (Box2 .prototype,
51531
51250
  {
51532
51251
  size:
@@ -51918,8 +51637,8 @@ const MatrixStack_default_ = MatrixStack;
51918
51637
  x_ite_Namespace.set ("standard/Math/Utility/MatrixStack", MatrixStack_default_);
51919
51638
  /* harmony default export */ const Utility_MatrixStack = (MatrixStack_default_);
51920
51639
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/SVGParser.js
51921
- /* provided dependency */ var SVGParser_$ = __webpack_require__(994);
51922
- /* provided dependency */ var libtess = __webpack_require__(870);
51640
+ /* provided dependency */ var SVGParser_$ = __webpack_require__(188);
51641
+ /* provided dependency */ var libtess = __webpack_require__(139);
51923
51642
  /*******************************************************************************
51924
51643
  *
51925
51644
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -52840,7 +52559,7 @@ SVGParser .prototype = Object .assign (Object .create (Parser_X3DParser.prototyp
52840
52559
  bbox = new Geometry_Box2 ();
52841
52560
 
52842
52561
  for (const points of contours)
52843
- bbox .add (new Geometry_Box2 (Numbers_Vector2.min (... points), Numbers_Vector2.max (... points), true));
52562
+ bbox .add (Geometry_Box2.Points (... points));
52844
52563
 
52845
52564
  this .groupNodes .push (transformNode);
52846
52565
 
@@ -54688,7 +54407,7 @@ const SVGParser_default_ = SVGParser;
54688
54407
  x_ite_Namespace.set ("x_ite/Parser/SVGParser", SVGParser_default_);
54689
54408
  /* harmony default export */ const Parser_SVGParser = (SVGParser_default_);
54690
54409
  ;// CONCATENATED MODULE: ./src/x_ite/Parser/GoldenGate.js
54691
- /* provided dependency */ var GoldenGate_$ = __webpack_require__(994);
54410
+ /* provided dependency */ var GoldenGate_$ = __webpack_require__(188);
54692
54411
  /*******************************************************************************
54693
54412
  *
54694
54413
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -54983,7 +54702,7 @@ Plane3 .prototype =
54983
54702
  },
54984
54703
  getDistanceToPoint: function (point)
54985
54704
  {
54986
- return Numbers_Vector3.dot (point, this .normal) - this .distanceFromOrigin;
54705
+ return point .dot (this .normal) - this .distanceFromOrigin;
54987
54706
  },
54988
54707
  intersectsLine: function (line, intersection)
54989
54708
  {
@@ -55017,7 +54736,7 @@ const Plane3_default_ = Plane3;
55017
54736
  x_ite_Namespace.set ("standard/Math/Geometry/Plane3", Plane3_default_);
55018
54737
  /* harmony default export */ const Geometry_Plane3 = (Plane3_default_);
55019
54738
  ;// CONCATENATED MODULE: ./src/standard/Math/Geometry/Triangle3.js
55020
- /* provided dependency */ var Triangle3_libtess = __webpack_require__(870);
54739
+ /* provided dependency */ var Triangle3_libtess = __webpack_require__(139);
55021
54740
  /*******************************************************************************
55022
54741
  *
55023
54742
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -56357,10 +56076,11 @@ Box3 .prototype =
56357
56076
 
56358
56077
  return this;
56359
56078
  }
56360
- case 3:
56361
- {
56362
- return this .setExtents (arguments [0], arguments [1]);
56363
- }
56079
+ // case 3:
56080
+ // {
56081
+ // console .trace ()
56082
+ // return this .setExtents (arguments [0], arguments [1]);
56083
+ // }
56364
56084
  }
56365
56085
  },
56366
56086
  setExtents: function (min, max)
@@ -56629,7 +56349,7 @@ Box3 .prototype =
56629
56349
  this .getExtents (lhs_min, lhs_max);
56630
56350
  box .getExtents (rhs_min, rhs_max);
56631
56351
 
56632
- return this .set (lhs_min .min (rhs_min), lhs_max .max (rhs_max), true);
56352
+ return this .setExtents (lhs_min .min (rhs_min), lhs_max .max (rhs_max));
56633
56353
  };
56634
56354
  })(),
56635
56355
  multLeft: function (matrix)
@@ -56867,6 +56587,18 @@ Box3 .prototype =
56867
56587
  },
56868
56588
  };
56869
56589
 
56590
+ Object .assign (Box3,
56591
+ {
56592
+ Extents: function (min, max)
56593
+ {
56594
+ return new Box3 () .setExtents (min, max);
56595
+ },
56596
+ Points: function (... points)
56597
+ {
56598
+ return new Box3 () .setExtents (points [0] .copy () .min (... points), points [0] .copy () .max (... points));
56599
+ },
56600
+ });
56601
+
56870
56602
  Object .defineProperties (Box3 .prototype,
56871
56603
  {
56872
56604
  size:
@@ -57130,7 +56862,7 @@ Line3 .Points = function (point1, point2)
57130
56862
  {
57131
56863
  const line = Object .create (Line3 .prototype);
57132
56864
  line .point = point1 .copy ();
57133
- line .direction = Numbers_Vector3.subtract (point2, point1) .normalize ();
56865
+ line .direction = point2 .copy () .subtract (point1) .normalize ();
57134
56866
  return line;
57135
56867
  };
57136
56868
 
@@ -57491,9 +57223,9 @@ X3DRenderObject .prototype =
57491
57223
  const
57492
57224
  projectionMatrix = new Numbers_Matrix4 (),
57493
57225
  cameraSpaceProjectionMatrix = new Numbers_Matrix4 (),
57494
- localOrientation = new Numbers_Rotation4 (0, 0, 1, 0),
57226
+ localOrientation = new Numbers_Rotation4 (),
57495
57227
  vector = new Numbers_Vector3 (0, 0, 0),
57496
- rotation = new Numbers_Rotation4 (0, 0, 1, 0);
57228
+ rotation = new Numbers_Rotation4 ();
57497
57229
 
57498
57230
  return function (direction)
57499
57231
  {
@@ -57947,7 +57679,7 @@ X3DRenderObject .prototype =
57947
57679
  projectionMatrix = new Numbers_Matrix4 (),
57948
57680
  cameraSpaceProjectionMatrix = new Numbers_Matrix4 (),
57949
57681
  translation = new Numbers_Vector3 (0, 0, 0),
57950
- rotation = new Numbers_Rotation4 (0, 0, 1, 0);
57682
+ rotation = new Numbers_Rotation4 ();
57951
57683
 
57952
57684
  return function ()
57953
57685
  {
@@ -59726,7 +59458,7 @@ function X3DGeometryNode (executionContext)
59726
59458
 
59727
59459
  this .min = new Numbers_Vector3 (0, 0, 0);
59728
59460
  this .max = new Numbers_Vector3 (0, 0, 0);
59729
- this .bbox = new Geometry_Box3 (this .min, this .max, true);
59461
+ this .bbox = Geometry_Box3.Extents (this .min, this .max);
59730
59462
  this .solid = true;
59731
59463
  this .primitiveMode = browser .getContext () .TRIANGLES;
59732
59464
  this .geometryType = 3;
@@ -62301,7 +62033,7 @@ const X3DTexture2DNode_default_ = X3DTexture2DNode;
62301
62033
  x_ite_Namespace.set ("x_ite/Components/Texturing/X3DTexture2DNode", X3DTexture2DNode_default_);
62302
62034
  /* harmony default export */ const Texturing_X3DTexture2DNode = (X3DTexture2DNode_default_);
62303
62035
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/ImageTexture.js
62304
- /* provided dependency */ var ImageTexture_$ = __webpack_require__(994);
62036
+ /* provided dependency */ var ImageTexture_$ = __webpack_require__(188);
62305
62037
  /*******************************************************************************
62306
62038
  *
62307
62039
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -64286,8 +64018,8 @@ OrientationInterpolator .prototype = Object .assign (Object .create (Interpolati
64286
64018
  interpolate: (function ()
64287
64019
  {
64288
64020
  const
64289
- keyValue0 = new Numbers_Rotation4 (0, 0, 1, 0),
64290
- keyValue1 = new Numbers_Rotation4 (0, 0, 1, 0);
64021
+ keyValue0 = new Numbers_Rotation4 (),
64022
+ keyValue1 = new Numbers_Rotation4 ();
64291
64023
 
64292
64024
  return function (index0, index1, weight)
64293
64025
  {
@@ -64497,7 +64229,7 @@ function X3DViewpointNode (executionContext)
64497
64229
  "fieldOfViewScale", new x_ite_Fields.SFFloat (1));
64498
64230
 
64499
64231
  this .userPosition = new Numbers_Vector3 (0, 1, 0);
64500
- this .userOrientation = new Numbers_Rotation4 (0, 0, 1, 0);
64232
+ this .userOrientation = new Numbers_Rotation4 ();
64501
64233
  this .userCenterOfRotation = new Numbers_Vector3 (0, 0, 0);
64502
64234
  this .modelMatrix = new Numbers_Matrix4 ();
64503
64235
  this .cameraSpaceMatrix = new Numbers_Matrix4 (1, 0, 0, 0, 0, 1, 0, 0, 0, 0, 1, 0, 0, 0, 10, 1);
@@ -64806,9 +64538,9 @@ X3DViewpointNode .prototype = Object .assign (Object .create (Core_X3DBindableNo
64806
64538
  {
64807
64539
  const
64808
64540
  position = new Numbers_Vector3 (0, 0, 0),
64809
- orientation = new Numbers_Rotation4 (0, 0, 1, 0),
64541
+ orientation = new Numbers_Rotation4 (),
64810
64542
  scale = new Numbers_Vector3 (0, 0, 0),
64811
- scaleOrientation = new Numbers_Rotation4 (0, 0, 1, 0);
64543
+ scaleOrientation = new Numbers_Rotation4 ();
64812
64544
 
64813
64545
  return function (fromViewpointNode)
64814
64546
  {
@@ -64883,14 +64615,14 @@ X3DViewpointNode .prototype = Object .assign (Object .create (Core_X3DBindableNo
64883
64615
  this .easeInEaseOut ._easeInEaseOut = new x_ite_Fields.MFVec2f (new x_ite_Fields.SFVec2f (0, 1), new x_ite_Fields.SFVec2f (1, 0));
64884
64616
 
64885
64617
  const
64886
- translation = Numbers_Vector3.lerp (this ._positionOffset .getValue (), offset, factor),
64887
- direction = Numbers_Vector3.add (this .getPosition (), translation) .subtract (point);
64618
+ translation = this ._positionOffset .getValue () .copy () .lerp (offset, factor),
64619
+ direction = this .getPosition () .copy () .add (translation) .subtract (point);
64888
64620
 
64889
- let rotation = Numbers_Rotation4.multRight (this ._orientationOffset .getValue (), new Numbers_Rotation4 (this .getUserOrientation () .multVecRot (new Numbers_Vector3 (0, 0, 1)), direction));
64621
+ let rotation = this ._orientationOffset .getValue () .copy () .multRight (new Numbers_Rotation4 (this .getUserOrientation () .multVecRot (new Numbers_Vector3 (0, 0, 1)), direction));
64890
64622
 
64891
64623
  if (straighten)
64892
64624
  {
64893
- rotation = Numbers_Rotation4.inverse (this .getOrientation ()) .multRight (this .straightenHorizon (Numbers_Rotation4.multRight (this .getOrientation (), rotation)));
64625
+ rotation = this .getOrientation () .copy () .inverse () .multRight (this .straightenHorizon (this .getOrientation () .copy () .multRight (rotation)));
64894
64626
  }
64895
64627
 
64896
64628
  this .positionInterpolator ._keyValue = new x_ite_Fields.MFVec3f (this ._positionOffset, translation);
@@ -64901,7 +64633,7 @@ X3DViewpointNode .prototype = Object .assign (Object .create (Core_X3DBindableNo
64901
64633
  const relative = this .getRelativeTransformation (this);
64902
64634
 
64903
64635
  this ._fieldOfViewScale = 1;
64904
- this ._centerOfRotationOffset = Numbers_Vector3.subtract (point, this .getCenterOfRotation ());
64636
+ this ._centerOfRotationOffset = point .copy () .subtract (this .getCenterOfRotation ());
64905
64637
  this .nearDistance = Math .min (distance / 2, 0.125);
64906
64638
  this .farDistance = this .nearDistance * this .getMaxFarValue () / 0.125;
64907
64639
 
@@ -64919,7 +64651,7 @@ X3DViewpointNode .prototype = Object .assign (Object .create (Core_X3DBindableNo
64919
64651
 
64920
64652
  this .easeInEaseOut ._easeInEaseOut = new x_ite_Fields.MFVec2f (new x_ite_Fields.SFVec2f (0, 1), new x_ite_Fields.SFVec2f (1, 0));
64921
64653
 
64922
- const rotation = Numbers_Rotation4.multRight (Numbers_Rotation4.inverse (this .getOrientation ()), this .straightenHorizon (this .getUserOrientation ()));
64654
+ const rotation = this .getOrientation () .copy () .inverse () .multRight (this .straightenHorizon (this .getUserOrientation ()));
64923
64655
 
64924
64656
  this .positionInterpolator ._keyValue = new x_ite_Fields.MFVec3f (this ._positionOffset, this ._positionOffset);
64925
64657
  this .orientationInterpolator ._keyValue = new x_ite_Fields.MFRotation (this ._orientationOffset, rotation);
@@ -64937,7 +64669,7 @@ X3DViewpointNode .prototype = Object .assign (Object .create (Core_X3DBindableNo
64937
64669
  const
64938
64670
  localXAxis = new Numbers_Vector3 (0, 0, 0),
64939
64671
  localZAxis = new Numbers_Vector3 (0, 0, 0),
64940
- rotation = new Numbers_Rotation4 (0, 0, 1, 0);
64672
+ rotation = new Numbers_Rotation4 ();
64941
64673
 
64942
64674
  return function (orientation, upVector = this .getUpVector (true))
64943
64675
  {
@@ -66640,7 +66372,7 @@ const X3DWorld_default_ = X3DWorld;
66640
66372
  x_ite_Namespace.set ("x_ite/Execution/X3DWorld", X3DWorld_default_);
66641
66373
  /* harmony default export */ const Execution_X3DWorld = (X3DWorld_default_);
66642
66374
  ;// CONCATENATED MODULE: ./src/x_ite/InputOutput/FileLoader.js
66643
- /* provided dependency */ var FileLoader_$ = __webpack_require__(994);
66375
+ /* provided dependency */ var FileLoader_$ = __webpack_require__(188);
66644
66376
  /*******************************************************************************
66645
66377
  *
66646
66378
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -70916,7 +70648,7 @@ const DataStorage_default_ = DataStorage;
70916
70648
  x_ite_Namespace.set ("standard/Utility/DataStorage", DataStorage_default_);
70917
70649
  /* harmony default export */ const Utility_DataStorage = (DataStorage_default_);
70918
70650
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Core/X3DCoreContext.js
70919
- /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(994);
70651
+ /* provided dependency */ var X3DCoreContext_$ = __webpack_require__(188);
70920
70652
  /*******************************************************************************
70921
70653
  *
70922
70654
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -71293,6 +71025,24 @@ X3DCoreContext .prototype =
71293
71025
  this .setBrowserOption ("Timings", this .parseBooleanAttribute (newValue, false));
71294
71026
  break;
71295
71027
  }
71028
+ case "update":
71029
+ {
71030
+ if (newValue === "auto")
71031
+ {
71032
+ this .setBrowserOption ("AutoUpdate", true);
71033
+ }
71034
+ else
71035
+ {
71036
+ this .setBrowserOption ("AutoUpdate", false);
71037
+
71038
+ if (this .parseBooleanAttribute (newValue, true))
71039
+ this .beginUpdate ();
71040
+ else
71041
+ this .endUpdate ();
71042
+ }
71043
+
71044
+ break;
71045
+ }
71296
71046
  case "url":
71297
71047
  {
71298
71048
  if (newValue)
@@ -76968,8 +76718,8 @@ x_ite_Namespace.set ("x_ite/Components/Followers/PositionChaser", PositionChaser
76968
76718
 
76969
76719
 
76970
76720
  var
76971
- OrientationChaser_a = new Numbers_Rotation4 (0, 0, 1, 0),
76972
- rotation = new Numbers_Rotation4 (0, 0, 1, 0);
76721
+ OrientationChaser_a = new Numbers_Rotation4 (),
76722
+ rotation = new Numbers_Rotation4 ();
76973
76723
 
76974
76724
  function OrientationChaser (executionContext)
76975
76725
  {
@@ -77015,7 +76765,7 @@ OrientationChaser .prototype = Object .assign (Object .create (Followers_X3DChas
77015
76765
  },
77016
76766
  getVector: function ()
77017
76767
  {
77018
- return new Numbers_Rotation4 (0, 0, 1, 0);
76768
+ return new Numbers_Rotation4 ();
77019
76769
  },
77020
76770
  equals: function (lhs, rhs, tolerance)
77021
76771
  {
@@ -77041,8 +76791,8 @@ const OrientationChaser_default_ = OrientationChaser;
77041
76791
  x_ite_Namespace.set ("x_ite/Components/Followers/OrientationChaser", OrientationChaser_default_);
77042
76792
  /* harmony default export */ const Followers_OrientationChaser = (OrientationChaser_default_);
77043
76793
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/ExamineViewer.js
77044
- /* provided dependency */ var jquery_mousewheel = __webpack_require__(6);
77045
- /* provided dependency */ var ExamineViewer_$ = __webpack_require__(994);
76794
+ /* provided dependency */ var jquery_mousewheel = __webpack_require__(248);
76795
+ /* provided dependency */ var ExamineViewer_$ = __webpack_require__(188);
77046
76796
  /*******************************************************************************
77047
76797
  *
77048
76798
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -77121,12 +76871,12 @@ function ExamineViewer (executionContext, navigationInfo)
77121
76871
  Navigation_X3DViewer.call (this, executionContext, navigationInfo);
77122
76872
 
77123
76873
  this .button = -1;
77124
- this .orientationOffset = new Numbers_Rotation4 (0, 0, 1, 0);
76874
+ this .orientationOffset = new Numbers_Rotation4 ();
77125
76875
  this .fromVector = new Numbers_Vector3 (0, 0, 0);
77126
76876
  this .toVector = new Numbers_Vector3 (0, 0, 0);
77127
76877
  this .fromPoint = new Numbers_Vector3 (0, 0, 0);
77128
76878
  this .toPoint = new Numbers_Vector3 (0, 0, 0);
77129
- this .rotation = new Numbers_Rotation4 (0, 0, 1, 0);
76879
+ this .rotation = new Numbers_Rotation4 ();
77130
76880
  this .direction = new Numbers_Vector3 (0, 0, 0);
77131
76881
  this .axis = new Numbers_Vector3 (0, 0, 0);
77132
76882
  this .pressTime = 0;
@@ -77139,7 +76889,7 @@ function ExamineViewer (executionContext, navigationInfo)
77139
76889
  this .dblTapInterval = 0.4;
77140
76890
 
77141
76891
  this .initialPositionOffset = new Numbers_Vector3 (0, 0, 0);
77142
- this .initialOrientationOffset = new Numbers_Rotation4 (0, 0, 1, 0);
76892
+ this .initialOrientationOffset = new Numbers_Rotation4 ();
77143
76893
  this .positionChaser = new Followers_PositionChaser (executionContext);
77144
76894
  this .centerOfRotationChaser = new Followers_PositionChaser (executionContext);
77145
76895
  this .rotationChaser = new Followers_OrientationChaser (executionContext);
@@ -77681,7 +77431,7 @@ ExamineViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.
77681
77431
  viewpoint = this .getActiveViewpoint (),
77682
77432
  userPosition = viewpoint .getUserPosition (),
77683
77433
  userCenterOfRotation = viewpoint .getUserCenterOfRotation (),
77684
- direction = Numbers_Vector3.subtract (userPosition, userCenterOfRotation),
77434
+ direction = userPosition .copy () .subtract (userCenterOfRotation),
77685
77435
  rotation = this .getHorizonRotation (rotationChange),
77686
77436
  axis = viewpoint .getUpVector (true);
77687
77437
 
@@ -77800,7 +77550,7 @@ ExamineViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.
77800
77550
  const
77801
77551
  distance = new Numbers_Vector3 (0, 0, 0),
77802
77552
  d = new Numbers_Vector3 (0, 0, 0),
77803
- oob = new Numbers_Rotation4 (0, 0, 1, 0);
77553
+ oob = new Numbers_Rotation4 ();
77804
77554
 
77805
77555
  return function (positionOffsetBefore, orientationOffsetBefore, orientationOffsetAfter)
77806
77556
  {
@@ -77818,8 +77568,8 @@ ExamineViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.
77818
77568
  getOrientationOffset: (function ()
77819
77569
  {
77820
77570
  const
77821
- userOrientation = new Numbers_Rotation4 (0, 0, 1, 0),
77822
- orientationOffset = new Numbers_Rotation4 (0, 0, 1, 0),
77571
+ userOrientation = new Numbers_Rotation4 (),
77572
+ orientationOffset = new Numbers_Rotation4 (),
77823
77573
  zAxis = new Numbers_Vector3 (0, 0, 0);
77824
77574
 
77825
77575
  return function (rotation, orientationOffsetBefore, _throw)
@@ -77867,8 +77617,8 @@ ExamineViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.
77867
77617
  {
77868
77618
  const
77869
77619
  V = rotation .multVecRot (zAxis .assign (Numbers_Vector3.zAxis)),
77870
- N = Numbers_Vector3.cross (Numbers_Vector3.yAxis, V),
77871
- H = Numbers_Vector3.cross (N, Numbers_Vector3.yAxis),
77620
+ N = Numbers_Vector3.yAxis.copy () .cross (V),
77621
+ H = N .copy () .cross (Numbers_Vector3.yAxis),
77872
77622
  r = new Numbers_Rotation4 (Numbers_Vector3.zAxis, H);
77873
77623
 
77874
77624
  return r;
@@ -77906,8 +77656,8 @@ const ExamineViewer_default_ = ExamineViewer;
77906
77656
  x_ite_Namespace.set ("x_ite/Browser/Navigation/ExamineViewer", ExamineViewer_default_);
77907
77657
  /* harmony default export */ const Navigation_ExamineViewer = (ExamineViewer_default_);
77908
77658
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/X3DFlyViewer.js
77909
- /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(6);
77910
- /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(994);
77659
+ /* provided dependency */ var X3DFlyViewer_jquery_mousewheel = __webpack_require__(248);
77660
+ /* provided dependency */ var X3DFlyViewer_$ = __webpack_require__(188);
77911
77661
  /*******************************************************************************
77912
77662
  *
77913
77663
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -78320,9 +78070,9 @@ X3DFlyViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.p
78320
78070
  upVector = new Numbers_Vector3 (0, 0, 0),
78321
78071
  direction = new Numbers_Vector3 (0, 0, 0),
78322
78072
  axis = new Numbers_Vector3 (0, 0, 0),
78323
- userOrientation = new Numbers_Rotation4 (0, 0, 1, 0),
78324
- orientationOffset = new Numbers_Rotation4 (0, 0, 1, 0),
78325
- rubberBandRotation = new Numbers_Rotation4 (0, 0, 1, 0);
78073
+ userOrientation = new Numbers_Rotation4 (),
78074
+ orientationOffset = new Numbers_Rotation4 (),
78075
+ rubberBandRotation = new Numbers_Rotation4 ();
78326
78076
 
78327
78077
  return function ()
78328
78078
  {
@@ -78453,8 +78203,8 @@ X3DFlyViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.p
78453
78203
  addRoll: (function ()
78454
78204
  {
78455
78205
  const
78456
- orientationOffset = new Numbers_Rotation4 (0, 0, 1, 0),
78457
- roll = new Numbers_Rotation4 (0, 0, 1, 0);
78206
+ orientationOffset = new Numbers_Rotation4 (),
78207
+ roll = new Numbers_Rotation4 ();
78458
78208
 
78459
78209
  return function (rollAngle)
78460
78210
  {
@@ -78490,8 +78240,8 @@ X3DFlyViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.p
78490
78240
  addRotation: (function ()
78491
78241
  {
78492
78242
  const
78493
- userOrientation = new Numbers_Rotation4 (0, 0, 1, 0),
78494
- orientationOffset = new Numbers_Rotation4 (0, 0, 1, 0);
78243
+ userOrientation = new Numbers_Rotation4 (),
78244
+ orientationOffset = new Numbers_Rotation4 ();
78495
78245
 
78496
78246
  return function (fromVector, toVector)
78497
78247
  {
@@ -78724,8 +78474,8 @@ WalkViewer .prototype = Object .assign (Object .create (Navigation_X3DFlyViewer.
78724
78474
  {
78725
78475
  const
78726
78476
  localYAxis = new Numbers_Vector3 (0, 0, 0),
78727
- userOrientation = new Numbers_Rotation4 (0, 0, 1, 0),
78728
- rotation = new Numbers_Rotation4 (0, 0, 1, 0);
78477
+ userOrientation = new Numbers_Rotation4 (),
78478
+ rotation = new Numbers_Rotation4 ();
78729
78479
 
78730
78480
  return function (velocity)
78731
78481
  {
@@ -78855,8 +78605,8 @@ const FlyViewer_default_ = FlyViewer;
78855
78605
  x_ite_Namespace.set ("x_ite/Browser/Navigation/FlyViewer", FlyViewer_default_);
78856
78606
  /* harmony default export */ const Navigation_FlyViewer = (FlyViewer_default_);
78857
78607
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/PlaneViewer.js
78858
- /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(6);
78859
- /* provided dependency */ var PlaneViewer_$ = __webpack_require__(994);
78608
+ /* provided dependency */ var PlaneViewer_jquery_mousewheel = __webpack_require__(248);
78609
+ /* provided dependency */ var PlaneViewer_$ = __webpack_require__(188);
78860
78610
  /*******************************************************************************
78861
78611
  *
78862
78612
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79165,8 +78915,8 @@ const NoneViewer_default_ = NoneViewer;
79165
78915
  x_ite_Namespace.set ("x_ite/Browser/Navigation/NoneViewer", NoneViewer_default_);
79166
78916
  /* harmony default export */ const Navigation_NoneViewer = (NoneViewer_default_);
79167
78917
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Navigation/LookAtViewer.js
79168
- /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(6);
79169
- /* provided dependency */ var LookAtViewer_$ = __webpack_require__(994);
78918
+ /* provided dependency */ var LookAtViewer_jquery_mousewheel = __webpack_require__(248);
78919
+ /* provided dependency */ var LookAtViewer_$ = __webpack_require__(188);
79170
78920
  /*******************************************************************************
79171
78921
  *
79172
78922
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -79539,7 +79289,7 @@ LookAtViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.p
79539
79289
 
79540
79290
  event .deltaY = delta;
79541
79291
  event .zoomFactor = Math .abs (delta) / LookAtViewer_$(window) .width ();
79542
-
79292
+
79543
79293
  event .pageX = (touches [0] .pageX + touches [1] .pageX) / 2;
79544
79294
  event .pageY = (touches [0] .pageY + touches [1] .pageY) / 2;
79545
79295
 
@@ -79625,8 +79375,8 @@ LookAtViewer .prototype = Object .assign (Object .create (Navigation_X3DViewer.p
79625
79375
  addRotation: (function ()
79626
79376
  {
79627
79377
  const
79628
- userOrientation = new Numbers_Rotation4 (0, 0, 1, 0),
79629
- orientationOffset = new Numbers_Rotation4 (0, 0, 1, 0);
79378
+ userOrientation = new Numbers_Rotation4 (),
79379
+ orientationOffset = new Numbers_Rotation4 ();
79630
79380
 
79631
79381
  return function (fromVector, toVector)
79632
79382
  {
@@ -80798,8 +80548,8 @@ const X3DPickingContext_default_ = X3DPickingContext;
80798
80548
  x_ite_Namespace.set ("x_ite/Browser/Picking/X3DPickingContext", X3DPickingContext_default_);
80799
80549
  /* harmony default export */ const Picking_X3DPickingContext = (X3DPickingContext_default_);
80800
80550
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js
80801
- /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(6);
80802
- /* provided dependency */ var PointingDevice_$ = __webpack_require__(994);
80551
+ /* provided dependency */ var PointingDevice_jquery_mousewheel = __webpack_require__(248);
80552
+ /* provided dependency */ var PointingDevice_$ = __webpack_require__(188);
80803
80553
  /*******************************************************************************
80804
80554
  *
80805
80555
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -81837,8 +81587,8 @@ const MultiSampleFrameBuffer_default_ = MultiSampleFrameBuffer;
81837
81587
  x_ite_Namespace.set ("x_ite/Rendering/MultiSampleFrameBuffer", MultiSampleFrameBuffer_default_);
81838
81588
  /* harmony default export */ const Rendering_MultiSampleFrameBuffer = (MultiSampleFrameBuffer_default_);
81839
81589
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/Rendering/X3DRenderingContext.js
81840
- /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(994);
81841
- /* provided dependency */ var ResizeSensor = __webpack_require__(822);
81590
+ /* provided dependency */ var X3DRenderingContext_$ = __webpack_require__(188);
81591
+ /* provided dependency */ var ResizeSensor = __webpack_require__(998);
81842
81592
  /*******************************************************************************
81843
81593
  *
81844
81594
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -82936,6 +82686,9 @@ getShadowIntensity (const in int index, const in x3d_LightSourceParameters light
82936
82686
  shadowCoord .z -= light .shadowBias;
82937
82687
  shadowCoord .xyz /= shadowCoord .w;
82938
82688
 
82689
+ if (any (greaterThan (abs (shadowCoord .xy - 0.5), vec2 (0.5))))
82690
+ return 0.0;
82691
+
82939
82692
  float dx0 = - texelSize .x;
82940
82693
  float dy0 = - texelSize .y;
82941
82694
  float dx1 = + texelSize .x;
@@ -82963,6 +82716,9 @@ getShadowIntensity (const in int index, const in x3d_LightSourceParameters light
82963
82716
  shadowCoord .z -= light .shadowBias;
82964
82717
  shadowCoord .xyz /= shadowCoord .w;
82965
82718
 
82719
+ if (any (greaterThan (abs (shadowCoord .xy - 0.5), vec2 (0.5))))
82720
+ return 0.0;
82721
+
82966
82722
  float dx0 = - texelSize.x;
82967
82723
  float dy0 = - texelSize.y;
82968
82724
  float dx1 = + texelSize.x;
@@ -82984,11 +82740,14 @@ getShadowIntensity (const in int index, const in x3d_LightSourceParameters light
82984
82740
 
82985
82741
  #else // no percentage-closer filtering
82986
82742
 
82987
- vec4 shadowCoord = shadowMatrix * vec4 (vertex, 1.0);
82743
+ vec4 shadowCoord = light .shadowMatrix * vec4 (vertex, 1.0);
82988
82744
 
82989
- shadowCoord .z -= shadowBias;
82745
+ shadowCoord .z -= light .shadowBias;
82990
82746
  shadowCoord .xyz /= shadowCoord .w;
82991
82747
 
82748
+ if (any (greaterThan (abs (shadowCoord .xy - 0.5), vec2 (0.5))))
82749
+ return 0.0;
82750
+
82992
82751
  float value = texture2DCompare (index, shadowCoord .xy, shadowCoord .z);
82993
82752
 
82994
82753
  return light .shadowIntensity * value;
@@ -84570,6 +84329,9 @@ getShadowIntensity (const in int index, const in x3d_LightSourceParameters light
84570
84329
  shadowCoord .z -= light .shadowBias;
84571
84330
  shadowCoord .xyz /= shadowCoord .w;
84572
84331
 
84332
+ if (any (greaterThan (abs (shadowCoord .xy - 0.5), vec2 (0.5))))
84333
+ return 0.0;
84334
+
84573
84335
  float dx0 = - texelSize .x;
84574
84336
  float dy0 = - texelSize .y;
84575
84337
  float dx1 = + texelSize .x;
@@ -84597,6 +84359,9 @@ getShadowIntensity (const in int index, const in x3d_LightSourceParameters light
84597
84359
  shadowCoord .z -= light .shadowBias;
84598
84360
  shadowCoord .xyz /= shadowCoord .w;
84599
84361
 
84362
+ if (any (greaterThan (abs (shadowCoord .xy - 0.5), vec2 (0.5))))
84363
+ return 0.0;
84364
+
84600
84365
  float dx0 = - texelSize.x;
84601
84366
  float dy0 = - texelSize.y;
84602
84367
  float dx1 = + texelSize.x;
@@ -84618,11 +84383,14 @@ getShadowIntensity (const in int index, const in x3d_LightSourceParameters light
84618
84383
 
84619
84384
  #else // no percentage-closer filtering
84620
84385
 
84621
- vec4 shadowCoord = shadowMatrix * vec4 (vertex, 1.0);
84386
+ vec4 shadowCoord = light .shadowMatrix * vec4 (vertex, 1.0);
84622
84387
 
84623
- shadowCoord .z -= shadowBias;
84388
+ shadowCoord .z -= light .shadowBias;
84624
84389
  shadowCoord .xyz /= shadowCoord .w;
84625
84390
 
84391
+ if (any (greaterThan (abs (shadowCoord .xy - 0.5), vec2 (0.5))))
84392
+ return 0.0;
84393
+
84626
84394
  float value = texture2DCompare (index, shadowCoord .xy, shadowCoord .z);
84627
84395
 
84628
84396
  return light .shadowIntensity * value;
@@ -87731,7 +87499,7 @@ const X3DShaderNode_default_ = X3DShaderNode;
87731
87499
  x_ite_Namespace.set ("x_ite/Components/Shaders/X3DShaderNode", X3DShaderNode_default_);
87732
87500
  /* harmony default export */ const Shaders_X3DShaderNode = (X3DShaderNode_default_);
87733
87501
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js
87734
- /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(994);
87502
+ /* provided dependency */ var X3DProgrammableShaderObject_$ = __webpack_require__(188);
87735
87503
  /*******************************************************************************
87736
87504
  *
87737
87505
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90508,7 +90276,7 @@ const ShaderCompiler_default_ = ShaderCompiler;
90508
90276
  x_ite_Namespace.set ("x_ite/Browser/Shaders/ShaderCompiler", ShaderCompiler_default_);
90509
90277
  /* harmony default export */ const Shaders_ShaderCompiler = (ShaderCompiler_default_);
90510
90278
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Shaders/ShaderPart.js
90511
- /* provided dependency */ var ShaderPart_$ = __webpack_require__(994);
90279
+ /* provided dependency */ var ShaderPart_$ = __webpack_require__(188);
90512
90280
  /*******************************************************************************
90513
90281
  *
90514
90282
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -90796,7 +90564,6 @@ x_ite_Namespace.set ("x_ite/Components/Shaders/ShaderPart", ShaderPart_default_)
90796
90564
  const
90797
90565
  _wireframe = Symbol (),
90798
90566
  _primitiveModes = Symbol (),
90799
- _defaultShader = Symbol (),
90800
90567
  _shaderNodes = Symbol ();
90801
90568
 
90802
90569
  function X3DShadersContext ()
@@ -95787,7 +95554,7 @@ ProximitySensor .prototype = Object .assign (Object .create (EnvironmentalSensor
95787
95554
  invModelMatrix = new Numbers_Matrix4 (),
95788
95555
  centerOfRotationMatrix = new Numbers_Matrix4 (),
95789
95556
  position = new Numbers_Vector3 (0, 0, 0),
95790
- orientation = new Numbers_Rotation4 (0, 0, 1, 0),
95557
+ orientation = new Numbers_Rotation4 (),
95791
95558
  centerOfRotation = new Numbers_Vector3 (0, 0, 0);
95792
95559
 
95793
95560
  return function ()
@@ -96125,7 +95892,7 @@ TransformSensor .prototype = Object .assign (Object .create (EnvironmentalSensor
96125
95892
  {
96126
95893
  const
96127
95894
  position = new Numbers_Vector3 (0, 0, 0),
96128
- orientation = new Numbers_Rotation4 (0, 0, 1, 0);
95895
+ orientation = new Numbers_Rotation4 ();
96129
95896
 
96130
95897
  return function ()
96131
95898
  {
@@ -97454,8 +97221,8 @@ x_ite_Namespace.set ("x_ite/Components/Followers/CoordinateDamper", CoordinateDa
97454
97221
 
97455
97222
 
97456
97223
  var
97457
- OrientationDamper_a = new Numbers_Rotation4 (0, 0, 1, 0),
97458
- OrientationDamper_rotation = new Numbers_Rotation4 (0, 0, 1, 0);
97224
+ OrientationDamper_a = new Numbers_Rotation4 (),
97225
+ OrientationDamper_rotation = new Numbers_Rotation4 ();
97459
97226
 
97460
97227
  function OrientationDamper (executionContext)
97461
97228
  {
@@ -97503,7 +97270,7 @@ OrientationDamper .prototype = Object .assign (Object .create (Followers_X3DDamp
97503
97270
  },
97504
97271
  getVector: function ()
97505
97272
  {
97506
- return new Numbers_Rotation4 (0, 0, 1, 0);
97273
+ return new Numbers_Rotation4 ();
97507
97274
  },
97508
97275
  equals: function (lhs, rhs, tolerance)
97509
97276
  {
@@ -98513,15 +98280,12 @@ Box .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode.proto
98513
98280
  else
98514
98281
  {
98515
98282
  const
98516
- scale = Numbers_Vector3.divide (size, 2),
98283
+ x = Math .abs (size .x / 2),
98284
+ y = Math .abs (size .y / 2),
98285
+ z = Math .abs (size .z / 2),
98517
98286
  defaultVertices = geometry .getVertices () .getValue (),
98518
98287
  vertexArray = this .getVertices ();
98519
98288
 
98520
- let
98521
- x = scale .x,
98522
- y = scale .y,
98523
- z = scale .z;
98524
-
98525
98289
  for (let i = 0, length = defaultVertices .length; i < length; i += 4)
98526
98290
  {
98527
98291
  vertexArray .push (x * defaultVertices [i],
@@ -98530,10 +98294,6 @@ Box .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode.proto
98530
98294
  1);
98531
98295
  }
98532
98296
 
98533
- x = Math .abs (x);
98534
- y = Math .abs (y);
98535
- z = Math .abs (z);
98536
-
98537
98297
  this .getMin () .set (-x, -y, -z);
98538
98298
  this .getMax () .set ( x, y, z);
98539
98299
  }
@@ -98725,7 +98485,7 @@ Cone .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode.prot
98725
98485
  u = i / xDimension,
98726
98486
  theta = 2 * Math .PI * u,
98727
98487
  t = Numbers_Complex.Polar (-1, theta),
98728
- p = Numbers_Complex.multiply (t, bottomRadius);
98488
+ p = t .copy () .multiply (bottomRadius);
98729
98489
 
98730
98490
  texCoord .push (new Numbers_Vector2 ((t .imag + 1) / 2, (t .real + 1) / 2));
98731
98491
  points .push (new Numbers_Vector3 (p .imag, y2, p .real));
@@ -98918,13 +98678,13 @@ Cylinder .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode.
98918
98678
  u1 = i / xDimension,
98919
98679
  theta1 = 2 * Math .PI * u1,
98920
98680
  n1 = Numbers_Complex.Polar (-1, theta1),
98921
- p1 = Numbers_Complex.multiply (n1, radius);
98681
+ p1 = n1 .copy () .multiply (radius);
98922
98682
 
98923
98683
  const
98924
98684
  u2 = (i + 1) / xDimension,
98925
98685
  theta2 = 2 * Math .PI * u2,
98926
98686
  n2 = Numbers_Complex.Polar (-1, theta2),
98927
- p2 = Numbers_Complex.multiply (n2, radius);
98687
+ p2 = n2 .copy () .multiply (radius);
98928
98688
 
98929
98689
  // p1 - p4
98930
98690
  // | \ |
@@ -99707,7 +99467,7 @@ Extrusion .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode
99707
99467
 
99708
99468
  const
99709
99469
  vector3 = new Numbers_Vector3 (0, 0, 0),
99710
- rotation = new Numbers_Rotation4 (0, 0, 1, 0);
99470
+ rotation = new Numbers_Rotation4 ();
99711
99471
 
99712
99472
  return function ()
99713
99473
  {
@@ -100129,7 +99889,7 @@ Extrusion .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode
100129
99889
  point = points [index] .copy ();
100130
99890
 
100131
99891
  point .index = index;
100132
- texCoord [index] = Numbers_Vector2.subtract (crossSection [numCapPoints - 1 - k] .getValue (), min) .divide (capMax);
99892
+ texCoord [index] = crossSection [numCapPoints - 1 - k] .getValue () .copy () .subtract (min) .divide (capMax);
100133
99893
  polygon .push (convex ? index : point);
100134
99894
  }
100135
99895
 
@@ -100169,7 +99929,7 @@ Extrusion .prototype = Object .assign (Object .create (Rendering_X3DGeometryNode
100169
99929
  point = points [index] .copy ();
100170
99930
 
100171
99931
  point .index = index;
100172
- texCoord [index] = Numbers_Vector2.subtract (crossSection [k] .getValue (), min) .divide (capMax);
99932
+ texCoord [index] = crossSection [k] .getValue () .copy () .subtract (min) .divide (capMax);
100173
99933
  polygon .push (convex ? index : point);
100174
99934
  }
100175
99935
 
@@ -102267,7 +102027,7 @@ function CatmullRomSplineInterpolatorTemplate (Type)
102267
102027
  constructor: CatmullRomSplineInterpolatorInstance,
102268
102028
  create: function ()
102269
102029
  {
102270
- return new Type (0, 0, 0, 0);
102030
+ return Type .Zero .copy ();
102271
102031
  },
102272
102032
  copy: function (value)
102273
102033
  {
@@ -102275,15 +102035,15 @@ function CatmullRomSplineInterpolatorTemplate (Type)
102275
102035
  },
102276
102036
  subtract: function (lhs, rhs)
102277
102037
  {
102278
- return Type .subtract (lhs, rhs);
102038
+ return lhs .copy () .subtract (rhs);
102279
102039
  },
102280
102040
  multiply: function (lhs, rhs)
102281
102041
  {
102282
- return Type .multiply (lhs, rhs);
102042
+ return lhs .copy () .multiply (rhs);
102283
102043
  },
102284
102044
  divide: function (lhs, rhs)
102285
102045
  {
102286
- return Type .divide (lhs, rhs);
102046
+ return lhs .copy () .divide (rhs);
102287
102047
  },
102288
102048
  magnitude: function (value)
102289
102049
  {
@@ -102999,8 +102759,6 @@ x_ite_Namespace.set ("x_ite/Components/Interpolation/SplineScalarInterpolator",
102999
102759
 
103000
102760
 
103001
102761
 
103002
- const result = new Numbers_Rotation4 (0, 0, 1, 0);
103003
-
103004
102762
  function SquatInterpolator ()
103005
102763
  {
103006
102764
  this .s = [ ];
@@ -103047,14 +102805,21 @@ SquatInterpolator .prototype =
103047
102805
  }
103048
102806
  }
103049
102807
  else if (key .length > 0)
102808
+ {
103050
102809
  s .push (keyValue [0] .getValue () .copy ());
102810
+ }
103051
102811
  },
103052
- interpolate: function (index0, index1, weight, keyValue)
102812
+ interpolate: (function ()
103053
102813
  {
103054
- return result .assign (keyValue [index0] .getValue ()) .squad (this .s [index0],
103055
- this .s [index1],
103056
- keyValue [index1] .getValue (), weight);
103057
- },
102814
+ const result = new Numbers_Rotation4 ();
102815
+
102816
+ return function (index0, index1, weight, keyValue)
102817
+ {
102818
+ return result .assign (keyValue [index0] .getValue ()) .squad (this .s [index0],
102819
+ this .s [index1],
102820
+ keyValue [index1] .getValue (), weight);
102821
+ };
102822
+ })(),
103058
102823
  };
103059
102824
 
103060
102825
  const SquatInterpolator_default_ = SquatInterpolator;
@@ -104408,7 +104173,7 @@ Billboard .prototype = Object .assign (Object .create (Grouping_X3DGroupingNode.
104408
104173
  y = new Numbers_Vector3 (0, 0, 0),
104409
104174
  N1 = new Numbers_Vector3 (0, 0, 0),
104410
104175
  N2 = new Numbers_Vector3 (0, 0, 0),
104411
- rotation = new Numbers_Rotation4 (0, 0, 1, 0);
104176
+ rotation = new Numbers_Rotation4 ();
104412
104177
 
104413
104178
  return function (modelViewMatrix)
104414
104179
  {
@@ -106501,7 +106266,7 @@ Cylinder3 .prototype =
106501
106266
 
106502
106267
  // find the given line un-translated
106503
106268
  const
106504
- point = Numbers_Vector3.subtract (line .point, this .axis .point),
106269
+ point = line .point .copy () .subtract (this .axis .point),
106505
106270
  noTranslationLine = new Geometry_Line3 (point, line .direction);
106506
106271
 
106507
106272
  // find the un-translated line in unit cylinder's space
@@ -106696,7 +106461,7 @@ CylinderSensor .prototype = Object .assign (Object .create (PointingDeviceSensor
106696
106461
  this .szNormal = null;
106697
106462
  this .behind = false;
106698
106463
  this .fromVector = new Numbers_Vector3 (0, 0, 0);
106699
- this .startOffset = new Numbers_Rotation4 (0, 0, 1, 0);
106464
+ this .startOffset = new Numbers_Rotation4 ();
106700
106465
  },
106701
106466
  isBehind: function (hitRay, hitPoint)
106702
106467
  {
@@ -106706,7 +106471,7 @@ CylinderSensor .prototype = Object .assign (Object .create (PointingDeviceSensor
106706
106471
 
106707
106472
  this .cylinder .intersectsLine (hitRay, enter, exit);
106708
106473
 
106709
- return Numbers_Vector3.subtract (hitPoint, enter) .magnitude () > Numbers_Vector3.subtract (hitPoint, exit) .magnitude ();
106474
+ return hitPoint .distance (enter) > hitPoint .distance (exit);
106710
106475
  },
106711
106476
  getTrackPoint: function (hitRay, trackPoint)
106712
106477
  {
@@ -106715,7 +106480,7 @@ CylinderSensor .prototype = Object .assign (Object .create (PointingDeviceSensor
106715
106480
  this .zPlane .intersectsLine (hitRay, zPoint);
106716
106481
 
106717
106482
  const
106718
- axisPoint = Numbers_Vector3.add (zPoint, this .cylinder .axis .getPerpendicularVectorToPoint (zPoint, new Numbers_Vector3 (0, 0, 0))),
106483
+ axisPoint = zPoint .copy () .add (this .cylinder .axis .getPerpendicularVectorToPoint (zPoint, new Numbers_Vector3 (0, 0, 0))),
106719
106484
  distance = this .sxPlane .getDistanceToPoint (zPoint) / this .cylinder .radius,
106720
106485
  section = Math .floor ((distance + 1) / 2);
106721
106486
 
@@ -106732,7 +106497,7 @@ CylinderSensor .prototype = Object .assign (Object .create (PointingDeviceSensor
106732
106497
  },
106733
106498
  getAngle: function (rotation)
106734
106499
  {
106735
- if (Numbers_Vector3.dot (rotation .getAxis (new Numbers_Vector3 (0, 0, 0)), this .cylinder .axis .direction) > 0)
106500
+ if (rotation .getAxis (new Numbers_Vector3 (0, 0, 0)) .dot (this .cylinder .axis .direction) > 0)
106736
106501
  return rotation .angle;
106737
106502
 
106738
106503
  else
@@ -106760,7 +106525,7 @@ CylinderSensor .prototype = Object .assign (Object .create (PointingDeviceSensor
106760
106525
  radius = axis .getPerpendicularVectorToPoint (hitPoint, new Numbers_Vector3 (0, 0, 0)) .magnitude ();
106761
106526
 
106762
106527
  this .cylinder = new Geometry_Cylinder3 (axis, radius);
106763
- this .disk = Math .abs (Numbers_Vector3.dot (cameraBack, yAxis)) > Math .cos (this ._diskAngle .getValue ());
106528
+ this .disk = Math .abs (cameraBack .dot (yAxis)) > Math .cos (this ._diskAngle .getValue ());
106764
106529
  this .behind = this .isBehind (hitRay, hitPoint);
106765
106530
  this .yPlane = new Geometry_Plane3 (hitPoint, yAxis); // Sensor aligned y-plane
106766
106531
  this .zPlane = new Geometry_Plane3 (hitPoint, cameraBack); // Screen aligned z-plane
@@ -106768,10 +106533,10 @@ CylinderSensor .prototype = Object .assign (Object .create (PointingDeviceSensor
106768
106533
  // Compute normal like in Billboard with yAxis as axis of rotation.
106769
106534
  const
106770
106535
  billboardToViewer = this .invModelViewMatrix .origin,
106771
- sxNormal = Numbers_Vector3.cross (yAxis, billboardToViewer) .normalize ();
106536
+ sxNormal = yAxis .copy () .cross (billboardToViewer) .normalize ();
106772
106537
 
106773
106538
  this .sxPlane = new Geometry_Plane3 (new Numbers_Vector3 (0, 0, 0), sxNormal); // Billboarded special x-plane made parallel to sensors axis.
106774
- this .szNormal = Numbers_Vector3.cross (sxNormal, yAxis) .normalize (); // Billboarded special z-normal made parallel to sensors axis.
106539
+ this .szNormal = sxNormal .copy () .cross (yAxis) .normalize (); // Billboarded special z-normal made parallel to sensors axis.
106775
106540
 
106776
106541
  const trackPoint = new Numbers_Vector3 (0, 0, 0);
106777
106542
 
@@ -107020,7 +106785,7 @@ Line2 .Points = function (point1, point2)
107020
106785
  {
107021
106786
  const line = Object .create (Line2 .prototype);
107022
106787
  line .point = point1 .copy ();
107023
- line .direction = Numbers_Vector2.subtract (point2, point1) .normalize ();
106788
+ line .direction = point2 .copy () .subtract (point1) .normalize ();
107024
106789
  return line;
107025
106790
  };
107026
106791
 
@@ -107300,7 +107065,7 @@ PlaneSensor .prototype = Object .assign (Object .create (PointingDeviceSensor_X3
107300
107065
  {
107301
107066
  const
107302
107067
  axisRotation = this ._axisRotation .getValue (),
107303
- translation = Numbers_Rotation4.inverse (axisRotation) .multVecRot (endPoint .add (this .startOffset) .subtract (this .startPoint));
107068
+ translation = axisRotation .copy () .inverse () .multVecRot (endPoint .add (this .startOffset) .subtract (this .startPoint));
107304
107069
 
107305
107070
  // X component
107306
107071
 
@@ -107459,8 +107224,8 @@ Sphere3 .prototype =
107459
107224
  const
107460
107225
  rr = r * r,
107461
107226
  V = AB .cross (AC),
107462
- d = Numbers_Vector3.dot (A, V),
107463
- e = Numbers_Vector3.dot (V, V),
107227
+ d = A .dot (V),
107228
+ e = V .dot (V),
107464
107229
  sep1 = d * d > rr * e;
107465
107230
 
107466
107231
  if (sep1)
@@ -107468,12 +107233,12 @@ Sphere3 .prototype =
107468
107233
 
107469
107234
  // Testing if sphere lies outside a triangle vertex.
107470
107235
  const
107471
- aa = Numbers_Vector3.dot (A, A),
107472
- ab = Numbers_Vector3.dot (A, B),
107473
- ac = Numbers_Vector3.dot (A, C),
107474
- bb = Numbers_Vector3.dot (B, B),
107475
- bc = Numbers_Vector3.dot (B, C),
107476
- cc = Numbers_Vector3.dot (C, C),
107236
+ aa = A .dot (A),
107237
+ ab = A .dot (B),
107238
+ ac = A .dot (C),
107239
+ bb = B .dot (B),
107240
+ bc = B .dot (C),
107241
+ cc = C .dot (C),
107477
107242
  sep2 = (aa > rr) && (ab > aa) && (ac > aa),
107478
107243
  sep3 = (bb > rr) && (ab > bb) && (bc > bb),
107479
107244
  sep4 = (cc > rr) && (ac > cc) && (bc > cc);
@@ -107491,9 +107256,9 @@ Sphere3 .prototype =
107491
107256
  d1 = ab - aa,
107492
107257
  d2 = bc - bb,
107493
107258
  d3 = ac - cc,
107494
- e1 = Numbers_Vector3.dot (AB, AB),
107495
- e2 = Numbers_Vector3.dot (BC, BC),
107496
- e3 = Numbers_Vector3.dot (CA, CA);
107259
+ e1 = AB .dot (AB),
107260
+ e2 = BC .dot (BC),
107261
+ e3 = CA .dot (CA);
107497
107262
 
107498
107263
  Q1 .assign (A) .multiply (e1) .subtract (AB .multiply (d1));
107499
107264
  Q2 .assign (B) .multiply (e2) .subtract (BC .multiply (d2));
@@ -107503,9 +107268,9 @@ Sphere3 .prototype =
107503
107268
  QC = C .multiply (e1) .subtract (Q1),
107504
107269
  QA = A .multiply (e2) .subtract (Q2),
107505
107270
  QB = B .multiply (e3) .subtract (Q3),
107506
- sep5 = (Numbers_Vector3.dot (Q1, Q1) > rr * e1 * e1) && (Numbers_Vector3.dot (Q1, QC) > 0),
107507
- sep6 = (Numbers_Vector3.dot (Q2, Q2) > rr * e2 * e2) && (Numbers_Vector3.dot (Q2, QA) > 0),
107508
- sep7 = (Numbers_Vector3.dot (Q3, Q3) > rr * e3 * e3) && (Numbers_Vector3.dot (Q3, QB) > 0);
107271
+ sep5 = (Q1 .dot (Q1) > rr * e1 * e1) && (Q1 .dot (QC) > 0),
107272
+ sep6 = (Q2 .dot (Q2) > rr * e2 * e2) && (Q2 .dot (QA) > 0),
107273
+ sep7 = (Q3 .dot (Q3) > rr * e3 * e3) && (Q3 .dot (QB) > 0);
107509
107274
 
107510
107275
  if (sep5 || sep6 || sep7)
107511
107276
  return false;
@@ -107634,7 +107399,7 @@ SphereSensor .prototype = Object .assign (Object .create (PointingDeviceSensor_X
107634
107399
  this .behind = false;
107635
107400
  this .fromVector = new Numbers_Vector3 (0, 0, 0);
107636
107401
  this .startPoint = new Numbers_Vector3 (0, 0, 0);
107637
- this .startOffset = new Numbers_Rotation4 (0, 0, 1, 0);
107402
+ this .startOffset = new Numbers_Rotation4 ();
107638
107403
  },
107639
107404
  getTrackPoint: function (hitRay, trackPoint, behind)
107640
107405
  {
@@ -107642,7 +107407,7 @@ SphereSensor .prototype = Object .assign (Object .create (PointingDeviceSensor_X
107642
107407
 
107643
107408
  if (this .sphere .intersectsLine (hitRay, trackPoint, exit))
107644
107409
  {
107645
- if ((Numbers_Vector3.subtract (hitRay .point, exit) .magnitude () < Numbers_Vector3.subtract (hitRay .point, trackPoint) .magnitude ()) - behind)
107410
+ if ((hitRay .point .distance (exit) < hitRay .point .distance (trackPoint)) - behind)
107646
107411
  trackPoint .assign (exit);
107647
107412
 
107648
107413
  return true;
@@ -107700,7 +107465,7 @@ SphereSensor .prototype = Object .assign (Object .create (PointingDeviceSensor_X
107700
107465
 
107701
107466
  this .zPlane .intersectsLine (hitRay, tangentPoint);
107702
107467
 
107703
- hitRay .set (tangentPoint, Numbers_Vector3.subtract (this .sphere .center, tangentPoint) .normalize ());
107468
+ hitRay .set (tangentPoint, this .sphere .center .copy () .subtract (tangentPoint) .normalize ());
107704
107469
 
107705
107470
  //console .log (hitRay .toString ());
107706
107471
 
@@ -107710,12 +107475,12 @@ SphereSensor .prototype = Object .assign (Object .create (PointingDeviceSensor_X
107710
107475
 
107711
107476
  const
107712
107477
  triNormal = Geometry_Triangle3.normal (this .sphere .center, trackPoint, this .startPoint, new Numbers_Vector3 (0, 0, 0)),
107713
- dirFromCenter = Numbers_Vector3.subtract (trackPoint, this .sphere .center) .normalize (),
107714
- normal = Numbers_Vector3.cross (triNormal, dirFromCenter) .normalize ();
107478
+ dirFromCenter = trackPoint .copy () .subtract (this .sphere .center) .normalize (),
107479
+ normal = triNormal .copy () .cross (dirFromCenter) .normalize ();
107715
107480
 
107716
- const point1 = Numbers_Vector3.subtract (trackPoint, normal .multiply (Numbers_Vector3.subtract (tangentPoint, trackPoint) .magnitude ()));
107481
+ const point1 = trackPoint .copy () .subtract (normal .multiply (tangentPoint .copy () .subtract (trackPoint) .magnitude ()));
107717
107482
 
107718
- hitRay .set (point1, Numbers_Vector3.subtract (this .sphere .center, point1) .normalize ());
107483
+ hitRay .set (point1, this .sphere .center .copy () .subtract (point1) .normalize ());
107719
107484
 
107720
107485
  this .getTrackPoint (hitRay, trackPoint, false);
107721
107486
  }
@@ -107723,13 +107488,13 @@ SphereSensor .prototype = Object .assign (Object .create (PointingDeviceSensor_X
107723
107488
  this ._trackPoint_changed = trackPoint;
107724
107489
 
107725
107490
  const
107726
- toVector = Numbers_Vector3.subtract (trackPoint, this .sphere .center),
107491
+ toVector = trackPoint .copy () .subtract (this .sphere .center),
107727
107492
  rotation = new Numbers_Rotation4 (this .fromVector, toVector);
107728
107493
 
107729
107494
  if (this .behind)
107730
107495
  rotation .inverse ();
107731
107496
 
107732
- this ._rotation_changed = Numbers_Rotation4.multRight (this .startOffset, rotation);
107497
+ this ._rotation_changed = this .startOffset .copy () .multRight (rotation);
107733
107498
  },
107734
107499
  });
107735
107500
 
@@ -112920,7 +112685,7 @@ const X3DSoundSourceNode_default_ = X3DSoundSourceNode;
112920
112685
  x_ite_Namespace.set ("x_ite/Components/Sound/X3DSoundSourceNode", X3DSoundSourceNode_default_);
112921
112686
  /* harmony default export */ const Sound_X3DSoundSourceNode = (X3DSoundSourceNode_default_);
112922
112687
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Sound/AudioClip.js
112923
- /* provided dependency */ var AudioClip_$ = __webpack_require__(994);
112688
+ /* provided dependency */ var AudioClip_$ = __webpack_require__(188);
112924
112689
  /*******************************************************************************
112925
112690
  *
112926
112691
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -115819,8 +115584,8 @@ const GIFMedia_default_ = GifMedia;
115819
115584
  x_ite_Namespace.set ("x_ite/Browser/Texturing/GIFMedia", GIFMedia_default_);
115820
115585
  /* harmony default export */ const GIFMedia = (GIFMedia_default_);
115821
115586
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/MovieTexture.js
115822
- /* provided dependency */ var MovieTexture_$ = __webpack_require__(994);
115823
- /* provided dependency */ var SuperGif = __webpack_require__(361);
115587
+ /* provided dependency */ var MovieTexture_$ = __webpack_require__(188);
115588
+ /* provided dependency */ var SuperGif = __webpack_require__(817);
115824
115589
  /*******************************************************************************
115825
115590
  *
115826
115591
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -116783,7 +116548,7 @@ const MultiTextureTransform_default_ = MultiTextureTransform;
116783
116548
  x_ite_Namespace.set ("x_ite/Components/Texturing/MultiTextureTransform", MultiTextureTransform_default_);
116784
116549
  /* harmony default export */ const Texturing_MultiTextureTransform = (MultiTextureTransform_default_);
116785
116550
  ;// CONCATENATED MODULE: ./src/x_ite/Components/Texturing/PixelTexture.js
116786
- /* provided dependency */ var PixelTexture_$ = __webpack_require__(994);
116551
+ /* provided dependency */ var PixelTexture_$ = __webpack_require__(188);
116787
116552
  /*******************************************************************************
116788
116553
  *
116789
116554
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -117494,7 +117259,7 @@ const Components_default_ = Components;
117494
117259
  x_ite_Namespace.set ("x_ite/Components", Components_default_);
117495
117260
  /* harmony default export */ const x_ite_Components = ((/* unused pure expression or super */ null && (Components_default_)));
117496
117261
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/DOMIntegration.js
117497
- /* provided dependency */ var DOMIntegration_$ = __webpack_require__(994);
117262
+ /* provided dependency */ var DOMIntegration_$ = __webpack_require__(188);
117498
117263
  /*******************************************************************************
117499
117264
  * MIT License
117500
117265
  *
@@ -118735,7 +118500,7 @@ const SupportedProfiles_default_ = SupportedProfiles;
118735
118500
  x_ite_Namespace.set ("x_ite/Configuration/SupportedProfiles", SupportedProfiles_default_);
118736
118501
  /* harmony default export */ const Configuration_SupportedProfiles = (SupportedProfiles_default_);
118737
118502
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/X3DBrowser.js
118738
- /* provided dependency */ var X3DBrowser_$ = __webpack_require__(994);
118503
+ /* provided dependency */ var X3DBrowser_$ = __webpack_require__(188);
118739
118504
  /*******************************************************************************
118740
118505
  *
118741
118506
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119551,18 +119316,18 @@ X3DBrowser .prototype = Object .assign (Object .create (Browser_X3DBrowserContex
119551
119316
  this .setLive (false);
119552
119317
  this .getExecutionContext () .setLive (false);
119553
119318
  },
119554
- print: function ()
119319
+ print: function (... args)
119555
119320
  {
119556
- const string = Array .prototype .join .call (arguments, "");
119321
+ const string = args .join ("");
119557
119322
 
119558
119323
  console .log (string);
119559
119324
 
119560
119325
  for (const element of this [_console])
119561
119326
  element .append (document .createTextNode (string));
119562
119327
  },
119563
- println: function ()
119328
+ println: function (... args)
119564
119329
  {
119565
- const string = Array .prototype .join .call (arguments, "");
119330
+ const string = args .join ("");
119566
119331
 
119567
119332
  console .log (string);
119568
119333
 
@@ -119657,7 +119422,7 @@ const X3DBrowser_default_ = X3DBrowser;
119657
119422
  x_ite_Namespace.set ("x_ite/Browser/X3DBrowser", X3DBrowser_default_);
119658
119423
  /* harmony default export */ const Browser_X3DBrowser = (X3DBrowser_default_);
119659
119424
  ;// CONCATENATED MODULE: ./src/x_ite/Fallback.js
119660
- /* provided dependency */ var Fallback_$ = __webpack_require__(994);
119425
+ /* provided dependency */ var Fallback_$ = __webpack_require__(188);
119661
119426
  /*******************************************************************************
119662
119427
  *
119663
119428
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -119836,8 +119601,8 @@ const MicroTime_default_ = undefined;
119836
119601
  x_ite_Namespace.set ("standard/Time/MicroTime", MicroTime_default_);
119837
119602
  /* harmony default export */ const MicroTime = ((/* unused pure expression or super */ null && (MicroTime_default_)));
119838
119603
  ;// CONCATENATED MODULE: ./src/lib/jquery.js
119839
- /* provided dependency */ var jquery_$ = __webpack_require__(994);
119840
- /* provided dependency */ var pako = __webpack_require__(444);
119604
+ /* provided dependency */ var jquery_$ = __webpack_require__(188);
119605
+ /* provided dependency */ var pako = __webpack_require__(971);
119841
119606
  jquery_$.decodeText = function (input)
119842
119607
  {
119843
119608
  if (typeof input === "string")
@@ -119863,20 +119628,33 @@ jquery_$.toLowerCaseFirst = function (string)
119863
119628
  return string [0] .toLowerCase () + string .slice (1);
119864
119629
  };
119865
119630
 
119631
+ jquery_$.fn.isInViewport = function ()
119632
+ {
119633
+ const
119634
+ $this = jquery_$(this),
119635
+ $window = jquery_$(window),
119636
+ elementTop = $this .offset () .top,
119637
+ elementBottom = elementTop + $this .outerHeight (),
119638
+ viewportTop = $window .scrollTop (),
119639
+ viewportBottom = viewportTop + $window .height ();
119640
+
119641
+ return elementBottom > viewportTop && elementTop < viewportBottom;
119642
+ };
119643
+
119866
119644
  const jquery_default_ = jquery_$;
119867
119645
  ;
119868
119646
 
119869
119647
  x_ite_Namespace.set ("lib/jquery", jquery_default_);
119870
119648
  /* harmony default export */ const jquery = ((/* unused pure expression or super */ null && (jquery_default_)));
119871
119649
  ;// CONCATENATED MODULE: ./src/lib/libtess.js
119872
- /* provided dependency */ var libtess_libtess = __webpack_require__(870);
119650
+ /* provided dependency */ var libtess_libtess = __webpack_require__(139);
119873
119651
  const libtess_default_ = libtess_libtess;
119874
119652
  ;
119875
119653
 
119876
119654
  x_ite_Namespace.set ("lib/libtess", libtess_default_);
119877
119655
  /* harmony default export */ const lib_libtess = ((/* unused pure expression or super */ null && (libtess_default_)));
119878
119656
  ;// CONCATENATED MODULE: ./src/x_ite/X3D.js
119879
- /* provided dependency */ var X3D_$ = __webpack_require__(994);
119657
+ /* provided dependency */ var X3D_$ = __webpack_require__(188);
119880
119658
  /*******************************************************************************
119881
119659
  *
119882
119660
  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
@@ -120215,6 +119993,7 @@ class X3DCanvasElement extends HTMLElement
120215
119993
  "splashscreen",
120216
119994
  "src",
120217
119995
  "timings",
119996
+ "update",
120218
119997
  "url",
120219
119998
  ];
120220
119999
  }
@@ -120388,7 +120167,7 @@ x_ite_Namespace.set ("shim", shim_default_);
120388
120167
 
120389
120168
  // Assign X3D to global namespace.
120390
120169
 
120391
- window [Symbol .for ("X_ITE.X3D-8.7.5")] = x_ite_X3D;
120170
+ window [Symbol .for ("X_ITE.X3D-8.7.7")] = x_ite_X3D;
120392
120171
 
120393
120172
  customElements .define ("x3d-canvas", x_ite_X3DCanvasElement);
120394
120173