x_ite 8.6.12 → 8.6.14

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (423) hide show
  1. package/dist/LICENSE.md +4 -4
  2. package/dist/assets/components/Annotation.js +37 -13
  3. package/dist/assets/components/Annotation.min.js +1 -1
  4. package/dist/assets/components/CADGeometry.js +45 -21
  5. package/dist/assets/components/CADGeometry.min.js +1 -1
  6. package/dist/assets/components/CubeMapTexturing.js +39 -28
  7. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  8. package/dist/assets/components/DIS.js +37 -13
  9. package/dist/assets/components/DIS.min.js +1 -1
  10. package/dist/assets/components/EventUtilities.js +37 -9
  11. package/dist/assets/components/EventUtilities.min.js +1 -1
  12. package/dist/assets/components/Geometry2D.js +55 -23
  13. package/dist/assets/components/Geometry2D.min.js +1 -1
  14. package/dist/assets/components/Geospatial.js +84 -40
  15. package/dist/assets/components/Geospatial.min.js +1 -1
  16. package/dist/assets/components/HAnim.js +42 -18
  17. package/dist/assets/components/HAnim.min.js +1 -1
  18. package/dist/assets/components/KeyDeviceSensor.js +18 -10
  19. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  20. package/dist/assets/components/Layout.js +47 -27
  21. package/dist/assets/components/Layout.min.js +1 -1
  22. package/dist/assets/components/NURBS.js +84 -28
  23. package/dist/assets/components/NURBS.min.js +1 -1
  24. package/dist/assets/components/ParticleSystems.js +70 -30
  25. package/dist/assets/components/ParticleSystems.min.js +1 -1
  26. package/dist/assets/components/Picking.js +42 -22
  27. package/dist/assets/components/Picking.min.js +1 -1
  28. package/dist/assets/components/RigidBodyPhysics.js +93 -37
  29. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  30. package/dist/assets/components/Scripting.js +35 -31
  31. package/dist/assets/components/Scripting.min.js +1 -1
  32. package/dist/assets/components/Text.js +33 -25
  33. package/dist/assets/components/Text.min.js +1 -1
  34. package/dist/assets/components/TextureProjector.js +22 -14
  35. package/dist/assets/components/TextureProjector.min.js +1 -1
  36. package/dist/assets/components/Texturing3D.js +64 -32
  37. package/dist/assets/components/Texturing3D.min.js +1 -1
  38. package/dist/assets/components/VolumeRendering.js +80 -28
  39. package/dist/assets/components/VolumeRendering.min.js +1 -1
  40. package/dist/assets/components/X_ITE.js +13 -9
  41. package/dist/assets/components/X_ITE.min.js +1 -1
  42. package/dist/x_ite.css +1 -1
  43. package/dist/x_ite.js +1697 -1080
  44. package/dist/x_ite.min.js +1 -1
  45. package/dist/x_ite.zip +0 -0
  46. package/docs/_config.yml +2 -2
  47. package/docs/_posts/components/Core/WorldInfo.md +1 -1
  48. package/docs/_posts/components/EnvironmentalEffects/Background.md +1 -1
  49. package/docs/_posts/components/EnvironmentalEffects/Fog.md +1 -1
  50. package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +1 -1
  51. package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +1 -1
  52. package/docs/_posts/components/Geometry3D/Box.md +1 -1
  53. package/docs/_posts/components/Geometry3D/Cone.md +1 -1
  54. package/docs/_posts/components/Geometry3D/Cylinder.md +1 -1
  55. package/docs/_posts/components/Geometry3D/ElevationGrid.md +1 -1
  56. package/docs/_posts/components/Geometry3D/Extrusion.md +1 -1
  57. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +1 -1
  58. package/docs/_posts/components/Geometry3D/Sphere.md +1 -1
  59. package/docs/_posts/components/Grouping/Group.md +1 -1
  60. package/docs/_posts/components/Grouping/Switch.md +1 -1
  61. package/docs/_posts/components/Grouping/Transform.md +1 -1
  62. package/docs/_posts/components/Interpolation/ColorInterpolator.md +1 -1
  63. package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +1 -1
  64. package/docs/_posts/components/Interpolation/NormalInterpolator.md +1 -1
  65. package/docs/_posts/components/Interpolation/OrientationInterpolator.md +1 -1
  66. package/docs/_posts/components/Interpolation/PositionInterpolator.md +1 -1
  67. package/docs/_posts/components/Interpolation/ScalarInterpolator.md +1 -1
  68. package/docs/_posts/components/Lighting/DirectionalLight.md +1 -1
  69. package/docs/_posts/components/Lighting/PointLight.md +1 -1
  70. package/docs/_posts/components/Lighting/SpotLight.md +1 -1
  71. package/docs/_posts/components/Navigation/Billboard.md +1 -1
  72. package/docs/_posts/components/Navigation/Collision.md +1 -1
  73. package/docs/_posts/components/Navigation/LOD.md +1 -1
  74. package/docs/_posts/components/Navigation/NavigationInfo.md +1 -1
  75. package/docs/_posts/components/Navigation/Viewpoint.md +1 -1
  76. package/docs/_posts/components/Networking/Anchor.md +1 -1
  77. package/docs/_posts/components/Networking/Inline.md +1 -1
  78. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +1 -1
  79. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +1 -1
  80. package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +1 -1
  81. package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +1 -1
  82. package/docs/_posts/components/Rendering/Color.md +1 -1
  83. package/docs/_posts/components/Rendering/Coordinate.md +1 -1
  84. package/docs/_posts/components/Rendering/IndexedLineSet.md +1 -1
  85. package/docs/_posts/components/Rendering/Normal.md +1 -1
  86. package/docs/_posts/components/Rendering/PointSet.md +1 -1
  87. package/docs/_posts/components/Scripting/Script.md +1 -1
  88. package/docs/_posts/components/Shape/Appearance.md +1 -1
  89. package/docs/_posts/components/Shape/Material.md +1 -9
  90. package/docs/_posts/components/Shape/PhysicalMaterial.md +0 -8
  91. package/docs/_posts/components/Shape/Shape.md +1 -1
  92. package/docs/_posts/components/Shape/UnlitMaterial.md +0 -8
  93. package/docs/_posts/components/Sound/AudioClip.md +1 -1
  94. package/docs/_posts/components/Sound/Sound.md +1 -1
  95. package/docs/_posts/components/Text/FontStyle.md +1 -1
  96. package/docs/_posts/components/Text/Text.md +1 -1
  97. package/docs/_posts/components/Texturing/ImageTexture.md +1 -5
  98. package/docs/_posts/components/Texturing/MovieTexture.md +1 -5
  99. package/docs/_posts/components/Texturing/PixelTexture.md +1 -1
  100. package/docs/_posts/components/Texturing/TextureCoordinate.md +1 -1
  101. package/docs/_posts/components/Texturing/TextureTransform.md +1 -1
  102. package/docs/_posts/components/Time/TimeSensor.md +1 -1
  103. package/docs/laboratory/gltf-sample-viewer.html +1 -1
  104. package/package.json +1 -1
  105. package/src/standard/Math/Numbers/Matrix2.js +3 -3
  106. package/src/standard/Math/Numbers/Vector4.js +1 -0
  107. package/src/tests.js +2 -0
  108. package/src/x_ite/Base/X3DBaseNode.js +58 -53
  109. package/src/x_ite/Browser/Core/BrowserOptions.js +2 -1
  110. package/src/x_ite/Browser/Core/X3DCoreContext.js +3 -6
  111. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +9 -15
  112. package/src/x_ite/Browser/Navigation/ExamineViewer.js +0 -3
  113. package/src/x_ite/Browser/Navigation/FlyViewer.js +0 -2
  114. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +10 -12
  115. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +40 -21
  116. package/src/x_ite/Browser/VERSION.js +1 -1
  117. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +1 -1
  118. package/src/x_ite/Browser/X3DBrowser.js +19 -19
  119. package/src/x_ite/Components/Annotation/AnnotationLayer.js +4 -0
  120. package/src/x_ite/Components/Annotation/AnnotationTarget.js +4 -0
  121. package/src/x_ite/Components/Annotation/GroupAnnotation.js +4 -0
  122. package/src/x_ite/Components/Annotation/IconAnnotation.js +4 -0
  123. package/src/x_ite/Components/Annotation/TextAnnotation.js +4 -0
  124. package/src/x_ite/Components/Annotation/URLAnnotation.js +4 -0
  125. package/src/x_ite/Components/CADGeometry/CADAssembly.js +4 -0
  126. package/src/x_ite/Components/CADGeometry/CADFace.js +12 -8
  127. package/src/x_ite/Components/CADGeometry/CADLayer.js +4 -0
  128. package/src/x_ite/Components/CADGeometry/CADPart.js +4 -0
  129. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +4 -0
  130. package/src/x_ite/Components/CADGeometry/QuadSet.js +4 -0
  131. package/src/x_ite/Components/Core/MetadataBoolean.js +8 -4
  132. package/src/x_ite/Components/Core/MetadataDouble.js +8 -4
  133. package/src/x_ite/Components/Core/MetadataFloat.js +8 -4
  134. package/src/x_ite/Components/Core/MetadataInteger.js +8 -4
  135. package/src/x_ite/Components/Core/MetadataSet.js +8 -4
  136. package/src/x_ite/Components/Core/MetadataString.js +8 -4
  137. package/src/x_ite/Components/Core/WorldInfo.js +4 -0
  138. package/src/x_ite/Components/Core/X3DNode.js +17 -16
  139. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +11 -14
  140. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +4 -1
  141. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +4 -0
  142. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +6 -2
  143. package/src/x_ite/Components/DIS/DISEntityManager.js +4 -0
  144. package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +4 -0
  145. package/src/x_ite/Components/DIS/EspduTransform.js +4 -0
  146. package/src/x_ite/Components/DIS/ReceiverPdu.js +4 -0
  147. package/src/x_ite/Components/DIS/SignalPdu.js +4 -0
  148. package/src/x_ite/Components/DIS/TransmitterPdu.js +4 -0
  149. package/src/x_ite/Components/EnvironmentalEffects/Background.js +4 -0
  150. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +4 -0
  151. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +4 -0
  152. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +4 -0
  153. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +4 -0
  154. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +1 -1
  155. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +4 -0
  156. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +6 -2
  157. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +4 -0
  158. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +2 -2
  159. package/src/x_ite/Components/EventUtilities/BooleanFilter.js +4 -0
  160. package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +4 -0
  161. package/src/x_ite/Components/EventUtilities/BooleanToggle.js +4 -0
  162. package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +4 -0
  163. package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +4 -0
  164. package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +4 -0
  165. package/src/x_ite/Components/EventUtilities/TimeTrigger.js +4 -0
  166. package/src/x_ite/Components/Followers/ColorChaser.js +4 -0
  167. package/src/x_ite/Components/Followers/ColorDamper.js +4 -0
  168. package/src/x_ite/Components/Followers/CoordinateChaser.js +4 -0
  169. package/src/x_ite/Components/Followers/CoordinateDamper.js +4 -0
  170. package/src/x_ite/Components/Followers/OrientationChaser.js +4 -0
  171. package/src/x_ite/Components/Followers/OrientationDamper.js +4 -0
  172. package/src/x_ite/Components/Followers/PositionChaser.js +4 -0
  173. package/src/x_ite/Components/Followers/PositionChaser2D.js +4 -0
  174. package/src/x_ite/Components/Followers/PositionDamper.js +4 -0
  175. package/src/x_ite/Components/Followers/PositionDamper2D.js +4 -0
  176. package/src/x_ite/Components/Followers/ScalarChaser.js +4 -0
  177. package/src/x_ite/Components/Followers/ScalarDamper.js +4 -0
  178. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +4 -0
  179. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +4 -0
  180. package/src/x_ite/Components/Followers/X3DFollowerNode.js +2 -2
  181. package/src/x_ite/Components/Geometry2D/Arc2D.js +5 -1
  182. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +5 -1
  183. package/src/x_ite/Components/Geometry2D/Circle2D.js +5 -1
  184. package/src/x_ite/Components/Geometry2D/Disk2D.js +5 -1
  185. package/src/x_ite/Components/Geometry2D/Polyline2D.js +4 -0
  186. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +4 -0
  187. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +4 -0
  188. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +4 -0
  189. package/src/x_ite/Components/Geometry3D/Box.js +4 -0
  190. package/src/x_ite/Components/Geometry3D/Cone.js +5 -1
  191. package/src/x_ite/Components/Geometry3D/Cylinder.js +5 -1
  192. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +14 -10
  193. package/src/x_ite/Components/Geometry3D/Extrusion.js +4 -0
  194. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +7 -3
  195. package/src/x_ite/Components/Geometry3D/Sphere.js +5 -1
  196. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +4 -0
  197. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +11 -7
  198. package/src/x_ite/Components/Geospatial/GeoLOD.js +4 -0
  199. package/src/x_ite/Components/Geospatial/GeoLocation.js +4 -0
  200. package/src/x_ite/Components/Geospatial/GeoMetadata.js +4 -0
  201. package/src/x_ite/Components/Geospatial/GeoOrigin.js +4 -0
  202. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +4 -0
  203. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +4 -0
  204. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +4 -0
  205. package/src/x_ite/Components/Geospatial/GeoTransform.js +4 -0
  206. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +4 -0
  207. package/src/x_ite/Components/Grouping/Group.js +4 -0
  208. package/src/x_ite/Components/Grouping/StaticGroup.js +4 -0
  209. package/src/x_ite/Components/Grouping/Switch.js +11 -7
  210. package/src/x_ite/Components/Grouping/Transform.js +4 -0
  211. package/src/x_ite/Components/HAnim/HAnimDisplacer.js +4 -0
  212. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +4 -0
  213. package/src/x_ite/Components/HAnim/HAnimJoint.js +4 -0
  214. package/src/x_ite/Components/HAnim/HAnimMotion.js +4 -0
  215. package/src/x_ite/Components/HAnim/HAnimSegment.js +4 -0
  216. package/src/x_ite/Components/HAnim/HAnimSite.js +4 -0
  217. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +4 -0
  218. package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +4 -0
  219. package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +4 -0
  220. package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +4 -0
  221. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +4 -0
  222. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +4 -0
  223. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +4 -0
  224. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +4 -0
  225. package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +4 -0
  226. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +4 -0
  227. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +4 -0
  228. package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +4 -0
  229. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +4 -0
  230. package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +4 -0
  231. package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +4 -0
  232. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +2 -2
  233. package/src/x_ite/Components/Layering/Layer.js +4 -0
  234. package/src/x_ite/Components/Layering/LayerSet.js +4 -0
  235. package/src/x_ite/Components/Layering/Viewport.js +4 -0
  236. package/src/x_ite/Components/Layering/X3DLayerNode.js +40 -49
  237. package/src/x_ite/Components/Layout/Layout.js +4 -0
  238. package/src/x_ite/Components/Layout/LayoutGroup.js +4 -0
  239. package/src/x_ite/Components/Layout/LayoutLayer.js +4 -0
  240. package/src/x_ite/Components/Layout/ScreenFontStyle.js +4 -0
  241. package/src/x_ite/Components/Layout/ScreenGroup.js +4 -0
  242. package/src/x_ite/Components/Lighting/DirectionalLight.js +4 -0
  243. package/src/x_ite/Components/Lighting/EnvironmentLight.js +4 -0
  244. package/src/x_ite/Components/Lighting/PointLight.js +4 -0
  245. package/src/x_ite/Components/Lighting/SpotLight.js +7 -9
  246. package/src/x_ite/Components/NURBS/Contour2D.js +4 -0
  247. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +4 -0
  248. package/src/x_ite/Components/NURBS/CoordinateDouble.js +4 -0
  249. package/src/x_ite/Components/NURBS/NurbsCurve.js +4 -0
  250. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +4 -0
  251. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +4 -0
  252. package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +4 -0
  253. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +4 -0
  254. package/src/x_ite/Components/NURBS/NurbsSet.js +4 -0
  255. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +4 -0
  256. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +4 -0
  257. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +4 -0
  258. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +4 -0
  259. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +4 -0
  260. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +4 -4
  261. package/src/x_ite/Components/Navigation/Billboard.js +4 -0
  262. package/src/x_ite/Components/Navigation/Collision.js +8 -4
  263. package/src/x_ite/Components/Navigation/LOD.js +11 -7
  264. package/src/x_ite/Components/Navigation/NavigationInfo.js +4 -0
  265. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +4 -0
  266. package/src/x_ite/Components/Navigation/Viewpoint.js +4 -0
  267. package/src/x_ite/Components/Navigation/ViewpointGroup.js +4 -0
  268. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +8 -0
  269. package/src/x_ite/Components/Networking/Anchor.js +4 -0
  270. package/src/x_ite/Components/Networking/Inline.js +6 -2
  271. package/src/x_ite/Components/Networking/LoadSensor.js +42 -29
  272. package/src/x_ite/Components/Networking/X3DUrlObject.js +2 -2
  273. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +4 -0
  274. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +4 -0
  275. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +4 -0
  276. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +4 -0
  277. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +12 -8
  278. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +4 -0
  279. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +4 -0
  280. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +4 -0
  281. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +4 -0
  282. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +4 -0
  283. package/src/x_ite/Components/Picking/LinePickSensor.js +4 -0
  284. package/src/x_ite/Components/Picking/PickableGroup.js +4 -0
  285. package/src/x_ite/Components/Picking/PointPickSensor.js +4 -0
  286. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +4 -0
  287. package/src/x_ite/Components/Picking/VolumePickSensor.js +4 -0
  288. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +4 -4
  289. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +4 -0
  290. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +4 -0
  291. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +4 -0
  292. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +4 -0
  293. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +28 -19
  294. package/src/x_ite/Components/Rendering/ClipPlane.js +4 -0
  295. package/src/x_ite/Components/Rendering/Color.js +4 -0
  296. package/src/x_ite/Components/Rendering/ColorRGBA.js +4 -0
  297. package/src/x_ite/Components/Rendering/Coordinate.js +4 -0
  298. package/src/x_ite/Components/Rendering/IndexedLineSet.js +15 -11
  299. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +4 -0
  300. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +4 -0
  301. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +4 -0
  302. package/src/x_ite/Components/Rendering/LineSet.js +16 -12
  303. package/src/x_ite/Components/Rendering/Normal.js +4 -0
  304. package/src/x_ite/Components/Rendering/PointSet.js +15 -11
  305. package/src/x_ite/Components/Rendering/TriangleFanSet.js +4 -0
  306. package/src/x_ite/Components/Rendering/TriangleSet.js +4 -0
  307. package/src/x_ite/Components/Rendering/TriangleStripSet.js +4 -0
  308. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +14 -14
  309. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +6 -6
  310. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +6 -6
  311. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +4 -4
  312. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +4 -0
  313. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +11 -7
  314. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +11 -7
  315. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +4 -0
  316. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +7 -3
  317. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +4 -0
  318. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +4 -0
  319. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +4 -0
  320. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +4 -0
  321. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +4 -0
  322. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +6 -2
  323. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +4 -0
  324. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +4 -0
  325. package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +4 -0
  326. package/src/x_ite/Components/Scripting/Script.js +7 -3
  327. package/src/x_ite/Components/Shaders/ComposedShader.js +11 -9
  328. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +4 -0
  329. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +4 -0
  330. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +4 -0
  331. package/src/x_ite/Components/Shaders/PackagedShader.js +4 -0
  332. package/src/x_ite/Components/Shaders/ProgramShader.js +4 -0
  333. package/src/x_ite/Components/Shaders/ShaderPart.js +4 -2
  334. package/src/x_ite/Components/Shaders/ShaderProgram.js +4 -0
  335. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +3 -3
  336. package/src/x_ite/Components/Shape/AcousticProperties.js +4 -0
  337. package/src/x_ite/Components/Shape/Appearance.js +8 -4
  338. package/src/x_ite/Components/Shape/FillProperties.js +4 -0
  339. package/src/x_ite/Components/Shape/LineProperties.js +4 -0
  340. package/src/x_ite/Components/Shape/Material.js +5 -2
  341. package/src/x_ite/Components/Shape/PhysicalMaterial.js +5 -2
  342. package/src/x_ite/Components/Shape/PointProperties.js +4 -0
  343. package/src/x_ite/Components/Shape/Shape.js +4 -0
  344. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +4 -0
  345. package/src/x_ite/Components/Shape/UnlitMaterial.js +5 -2
  346. package/src/x_ite/Components/Shape/X3DMaterialNode.js +1 -1
  347. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +5 -7
  348. package/src/x_ite/Components/Shape/X3DShapeNode.js +1 -1
  349. package/src/x_ite/Components/Sound/Analyser.js +4 -0
  350. package/src/x_ite/Components/Sound/AudioClip.js +6 -2
  351. package/src/x_ite/Components/Sound/AudioDestination.js +4 -0
  352. package/src/x_ite/Components/Sound/BiquadFilter.js +4 -0
  353. package/src/x_ite/Components/Sound/BufferAudioSource.js +4 -0
  354. package/src/x_ite/Components/Sound/ChannelMerger.js +4 -0
  355. package/src/x_ite/Components/Sound/ChannelSelector.js +4 -0
  356. package/src/x_ite/Components/Sound/ChannelSplitter.js +4 -0
  357. package/src/x_ite/Components/Sound/Convolver.js +4 -0
  358. package/src/x_ite/Components/Sound/Delay.js +4 -0
  359. package/src/x_ite/Components/Sound/DynamicsCompressor.js +4 -0
  360. package/src/x_ite/Components/Sound/Gain.js +4 -0
  361. package/src/x_ite/Components/Sound/ListenerPointSource.js +4 -0
  362. package/src/x_ite/Components/Sound/MicrophoneSource.js +4 -0
  363. package/src/x_ite/Components/Sound/OscillatorSource.js +4 -0
  364. package/src/x_ite/Components/Sound/PeriodicWave.js +4 -0
  365. package/src/x_ite/Components/Sound/Sound.js +6 -2
  366. package/src/x_ite/Components/Sound/SpatialSound.js +4 -0
  367. package/src/x_ite/Components/Sound/StreamAudioDestination.js +4 -0
  368. package/src/x_ite/Components/Sound/StreamAudioSource.js +4 -0
  369. package/src/x_ite/Components/Sound/WaveShaper.js +4 -0
  370. package/src/x_ite/Components/Text/FontStyle.js +4 -0
  371. package/src/x_ite/Components/Text/Text.js +5 -1
  372. package/src/x_ite/Components/TextureProjector/TextureProjector.js +4 -0
  373. package/src/x_ite/Components/TextureProjector/TextureProjectorParallel.js +4 -0
  374. package/src/x_ite/Components/Texturing/ImageTexture.js +13 -13
  375. package/src/x_ite/Components/Texturing/MovieTexture.js +10 -7
  376. package/src/x_ite/Components/Texturing/MultiTexture.js +4 -0
  377. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +4 -0
  378. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +4 -0
  379. package/src/x_ite/Components/Texturing/PixelTexture.js +4 -0
  380. package/src/x_ite/Components/Texturing/TextureCoordinate.js +4 -0
  381. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +4 -0
  382. package/src/x_ite/Components/Texturing/TextureProperties.js +4 -0
  383. package/src/x_ite/Components/Texturing/TextureTransform.js +4 -0
  384. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +4 -0
  385. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +4 -0
  386. package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +6 -2
  387. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +4 -0
  388. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +4 -0
  389. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +4 -0
  390. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +4 -0
  391. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +4 -0
  392. package/src/x_ite/Components/Time/TimeSensor.js +5 -1
  393. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +6 -6
  394. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +4 -0
  395. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +4 -0
  396. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +4 -0
  397. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +4 -0
  398. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +4 -0
  399. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +4 -0
  400. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +4 -0
  401. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +4 -0
  402. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +4 -0
  403. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +4 -0
  404. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +4 -0
  405. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +4 -0
  406. package/src/x_ite/Components/VolumeRendering/VolumeData.js +4 -0
  407. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +8 -8
  408. package/src/x_ite/Components/X_ITE/BlendMode.js +4 -0
  409. package/src/x_ite/Execution/BindableList.js +16 -19
  410. package/src/x_ite/Execution/X3DExecutionContext.js +33 -11
  411. package/src/x_ite/Execution/X3DScene.js +4 -0
  412. package/src/x_ite/Fields/ArrayFields.js +42 -22
  413. package/src/x_ite/Fields/SFNode.js +3 -6
  414. package/src/x_ite/Fields/SFNodeCache.js +34 -19
  415. package/src/x_ite/InputOutput/FileLoader.js +22 -14
  416. package/src/x_ite/Parser/GLTF2Parser.js +72 -51
  417. package/src/x_ite/Parser/VRMLParser.js +66 -34
  418. package/src/x_ite/Parser/X3DParser.js +9 -36
  419. package/src/x_ite/Parser/XMLParser.js +8 -8
  420. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +2 -2
  421. package/src/x_ite/Prototype/X3DProtoDeclaration.js +1 -2
  422. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +1 -1
  423. package/.github/ISSUE_TEMPLATE/bug_report.md +0 -38
@@ -184,7 +184,7 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
184
184
  {
185
185
  return SupportedProfiles;
186
186
  },
187
- getComponent: function (name, level)
187
+ getComponent: function (name, level = 0)
188
188
  {
189
189
  name = String (name);
190
190
  level |= 0;
@@ -195,7 +195,7 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
195
195
  {
196
196
  return new ComponentInfo ({
197
197
  name: name,
198
- level: Algorithm .clamp (level, 1, component .level),
198
+ level: Algorithm .clamp (level || component .level, 1, component .level),
199
199
  title: component .title,
200
200
  providerUrl: component .providerUrl,
201
201
  external: $.data (component, "external"),
@@ -312,8 +312,8 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
312
312
 
313
313
  scene = this .createScene ();
314
314
 
315
- for (const rootNode of rootNodes)
316
- scene .isLive () .addInterest (rootNode .getValue () .getExecutionContext () .isLive ());
315
+ for (const node of rootNodes .filter (node => node))
316
+ scene .getLive () .addInterest ("setLive", node .getValue () .getExecutionContext ());
317
317
 
318
318
  scene .setRootNodes (rootNodes);
319
319
  }
@@ -323,7 +323,7 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
323
323
 
324
324
  // Detach scene from parent.
325
325
 
326
- scene .getExecutionContext () .isLive () .removeInterest ("setLive", scene);
326
+ scene .getExecutionContext () .getLive () .removeInterest ("setLive", scene);
327
327
  scene .setExecutionContext (scene);
328
328
 
329
329
  // Replace.
@@ -339,7 +339,7 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
339
339
  this .setExecutionContext (scene);
340
340
  this .getWorld () .bindBindables ();
341
341
 
342
- scene .setLive (this .isLive () .getValue ());
342
+ scene .setLive (this .isLive ());
343
343
  });
344
344
  },
345
345
  checkLoadCount: function (resolve, loadCount)
@@ -371,9 +371,9 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
371
371
 
372
372
  if (!external)
373
373
  {
374
- currentScene .isLive () .addInterest ("setLive", scene);
374
+ currentScene .getLive () .addInterest ("setLive", scene);
375
375
  scene .setExecutionContext (currentScene);
376
- scene .setLive (currentScene .getLive ());
376
+ scene .setLive (currentScene .isLive ());
377
377
  }
378
378
 
379
379
  return scene;
@@ -410,13 +410,13 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
410
410
 
411
411
  if (scene)
412
412
  {
413
- // Handle isLive for script scenes here:
413
+ // Handle getLive for script scenes here:
414
414
 
415
415
  if (!external)
416
416
  {
417
- currentScene .isLive () .addInterest ("setLive", scene);
417
+ currentScene .getLive () .addInterest ("setLive", scene);
418
418
  scene .setExecutionContext (currentScene);
419
- scene .setLive (currentScene .getLive ());
419
+ scene .setLive (currentScene .isLive ());
420
420
  }
421
421
 
422
422
  // Wait until scene is completely loaded, scene ._loadCount must be 0.
@@ -451,9 +451,9 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
451
451
  {
452
452
  if (!external)
453
453
  {
454
- currentScene .isLive () .addInterest ("setLive", scene);
454
+ currentScene .getLive () .addInterest ("setLive", scene);
455
455
  scene .setExecutionContext (currentScene);
456
- scene .setLive (currentScene .getLive ());
456
+ scene .setLive (currentScene .isLive ());
457
457
  }
458
458
 
459
459
  resolve (scene);
@@ -599,9 +599,9 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
599
599
 
600
600
  if (!external)
601
601
  {
602
- currentScene .isLive () .addInterest ("setLive", scene);
602
+ currentScene .getLive () .addInterest ("setLive", scene);
603
603
  scene .setExecutionContext (currentScene);
604
- scene .setLive (currentScene .getLive ());
604
+ scene .setLive (currentScene .isLive ());
605
605
  }
606
606
 
607
607
  const parser = new XMLParser (scene);
@@ -619,9 +619,9 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
619
619
 
620
620
  if (!external)
621
621
  {
622
- currentScene .isLive () .addInterest ("setLive", scene);
622
+ currentScene .getLive () .addInterest ("setLive", scene);
623
623
  scene .setExecutionContext (currentScene);
624
- scene .setLive (currentScene .getLive ());
624
+ scene .setLive (currentScene .isLive ());
625
625
  }
626
626
 
627
627
  const parser = new JSONParser (scene);
@@ -813,14 +813,14 @@ X3DBrowser .prototype = Object .assign (Object .create (X3DBrowserContext .proto
813
813
  beginUpdate: function ()
814
814
  {
815
815
  this .setLive (true);
816
- this .getExecutionContext () .beginUpdate ();
816
+ this .getExecutionContext () .setLive (true);
817
817
  this .advanceTime ();
818
818
  this .addBrowserEvent ();
819
819
  },
820
820
  endUpdate: function ()
821
821
  {
822
822
  this .setLive (false);
823
- this .getExecutionContext () .endUpdate ();
823
+ this .getExecutionContext () .setLive (false);
824
824
  },
825
825
  print: function ()
826
826
  {
@@ -85,6 +85,10 @@ AnnotationLayer .prototype = Object .assign (Object .create (X3DLayerNode .proto
85
85
  {
86
86
  return "layers";
87
87
  },
88
+ getSpecificationRange: function ()
89
+ {
90
+ return ["4.0", "Infinity"];
91
+ },
88
92
  initialize: function ()
89
93
  {
90
94
  X3DLayerNode .prototype .initialize .call (this);
@@ -80,6 +80,10 @@ AnnotationTarget .prototype = Object .assign (Object .create (X3DChildNode .prot
80
80
  {
81
81
  return "children";
82
82
  },
83
+ getSpecificationRange: function ()
84
+ {
85
+ return ["4.0", "Infinity"];
86
+ },
83
87
  initialize: function ()
84
88
  {
85
89
  X3DChildNode .prototype .initialize .call (this);
@@ -89,6 +89,10 @@ GroupAnnotation .prototype = Object .assign (Object .create (X3DGroupingNode .pr
89
89
  {
90
90
  return "children";
91
91
  },
92
+ getSpecificationRange: function ()
93
+ {
94
+ return ["4.0", "Infinity"];
95
+ },
92
96
  initialize: function ()
93
97
  {
94
98
  X3DGroupingNode .prototype .initialize .call (this);
@@ -85,6 +85,10 @@ IconAnnotation .prototype = Object .assign (Object .create (X3DAnnotationNode .p
85
85
  {
86
86
  return "children";
87
87
  },
88
+ getSpecificationRange: function ()
89
+ {
90
+ return ["4.0", "Infinity"];
91
+ },
88
92
  initialize: function ()
89
93
  {
90
94
  X3DAnnotationNode .prototype .initialize .call (this);
@@ -81,6 +81,10 @@ TextAnnotation .prototype = Object .assign (Object .create (X3DAnnotationNode .p
81
81
  {
82
82
  return "children";
83
83
  },
84
+ getSpecificationRange: function ()
85
+ {
86
+ return ["4.0", "Infinity"];
87
+ },
84
88
  initialize: function ()
85
89
  {
86
90
  X3DAnnotationNode .prototype .initialize .call (this);
@@ -80,6 +80,10 @@ URLAnnotation .prototype = Object .assign (Object .create (X3DAnnotationNode .pr
80
80
  {
81
81
  return "children";
82
82
  },
83
+ getSpecificationRange: function ()
84
+ {
85
+ return ["4.0", "Infinity"];
86
+ },
83
87
  initialize: function ()
84
88
  {
85
89
  X3DAnnotationNode .prototype .initialize .call (this);
@@ -87,6 +87,10 @@ CADAssembly .prototype = Object .assign (Object .create (X3DGroupingNode .protot
87
87
  {
88
88
  return "children";
89
89
  },
90
+ getSpecificationRange: function ()
91
+ {
92
+ return ["3.1", "Infinity"];
93
+ },
90
94
  });
91
95
 
92
96
  export default CADAssembly;
@@ -90,6 +90,10 @@ CADFace .prototype = Object .assign (Object .create (X3DProductStructureChildNod
90
90
  {
91
91
  return "children";
92
92
  },
93
+ getSpecificationRange: function ()
94
+ {
95
+ return ["3.1", "Infinity"];
96
+ },
93
97
  initialize: function ()
94
98
  {
95
99
  X3DProductStructureChildNode .prototype .initialize .call (this);
@@ -102,7 +106,7 @@ CADFace .prototype = Object .assign (Object .create (X3DProductStructureChildNod
102
106
  getBBox: function (bbox, shadows)
103
107
  {
104
108
  if (this ._bboxSize .getValue () .equals (this .getDefaultBBoxSize ()))
105
- return this .visibleNode?.getBBox (bbox, shadows) ?? bbox .set ();
109
+ return this .visibleNode ?.getBBox (bbox, shadows) ?? bbox .set ();
106
110
 
107
111
  return bbox .set (this ._bboxSize .getValue (), this ._bboxCenter .getValue ());
108
112
  },
@@ -166,11 +170,11 @@ CADFace .prototype = Object .assign (Object .create (X3DProductStructureChildNod
166
170
  },
167
171
  set_cameraObject__: function ()
168
172
  {
169
- this .setCameraObject (!!this .visibleNode?.isCameraObject ());
173
+ this .setCameraObject (!!this .visibleNode ?.isCameraObject ());
170
174
  },
171
175
  set_transformSensors__: function ()
172
176
  {
173
- this .setPickableObject (!!this .visibleNode?.isPickableObject ());
177
+ this .setPickableObject (!!this .visibleNode ?.isPickableObject ());
174
178
  },
175
179
  set_visible__: function ()
176
180
  {
@@ -197,7 +201,7 @@ CADFace .prototype = Object .assign (Object .create (X3DProductStructureChildNod
197
201
  case TraverseType .CAMERA:
198
202
  case TraverseType .SHADOW:
199
203
  {
200
- this .visibleNode?.traverse (type, renderObject);
204
+ this .visibleNode ?.traverse (type, renderObject);
201
205
  return;
202
206
  }
203
207
  case TraverseType .PICKING:
@@ -208,21 +212,21 @@ CADFace .prototype = Object .assign (Object .create (X3DProductStructureChildNod
208
212
 
209
213
  pickingHierarchy .push (this);
210
214
 
211
- this .visibleNode?.traverse (type, renderObject);
215
+ this .visibleNode ?.traverse (type, renderObject);
212
216
 
213
217
  pickingHierarchy .pop ();
214
218
  return;
215
219
  }
216
220
  case TraverseType .COLLISION:
217
221
  {
218
- this .visibleNode?.traverse (type, renderObject);
222
+ this .visibleNode ?.traverse (type, renderObject);
219
223
  return;
220
224
  }
221
225
  case TraverseType .DISPLAY:
222
226
  {
223
- this .visibleNode?.traverse (type, renderObject);
227
+ this .visibleNode ?.traverse (type, renderObject);
224
228
 
225
- this .boundedObject?.displayBBox (type, renderObject);
229
+ this .boundedObject ?.displayBBox (type, renderObject);
226
230
  return;
227
231
  }
228
232
  }
@@ -84,6 +84,10 @@ CADLayer .prototype = Object .assign (Object .create (X3DGroupingNode .prototype
84
84
  {
85
85
  return "children";
86
86
  },
87
+ getSpecificationRange: function ()
88
+ {
89
+ return ["3.1", "Infinity"];
90
+ },
87
91
  });
88
92
 
89
93
  export default CADLayer;
@@ -92,6 +92,10 @@ CADPart .prototype = Object .assign (Object .create (X3DTransformNode .prototype
92
92
  {
93
93
  return "children";
94
94
  },
95
+ getSpecificationRange: function ()
96
+ {
97
+ return ["3.1", "Infinity"];
98
+ },
95
99
  });
96
100
 
97
101
  export default CADPart;
@@ -88,6 +88,10 @@ IndexedQuadSet .prototype = Object .assign (Object .create (X3DComposedGeometryN
88
88
  {
89
89
  return "geometry";
90
90
  },
91
+ getSpecificationRange: function ()
92
+ {
93
+ return ["3.1", "Infinity"];
94
+ },
91
95
  initialize: function ()
92
96
  {
93
97
  X3DComposedGeometryNode .prototype .initialize .call (this);
@@ -86,6 +86,10 @@ QuadSet .prototype = Object .assign (Object .create (X3DComposedGeometryNode .pr
86
86
  {
87
87
  return "geometry";
88
88
  },
89
+ getSpecificationRange: function ()
90
+ {
91
+ return ["3.1", "Infinity"];
92
+ },
89
93
  getTriangleIndex: (function ()
90
94
  {
91
95
  // Define two triangles.
@@ -82,15 +82,19 @@ MetadataBoolean .prototype = Object .assign (Object .create (X3DNode .prototype)
82
82
  {
83
83
  return "metadata";
84
84
  },
85
+ getSpecificationRange: function ()
86
+ {
87
+ return ["3.3", "Infinity"];
88
+ },
85
89
  initialize: function ()
86
90
  {
87
- X3DNode .prototype .initialize .call ();
88
- X3DMetadataObject .prototype .initialize .call ();
91
+ X3DNode .prototype .initialize .call (this);
92
+ X3DMetadataObject .prototype .initialize .call (this);
89
93
  },
90
94
  dispose: function ()
91
95
  {
92
- X3DMetadataObject .prototype .dispose .call ();
93
- X3DNode .prototype .dispose .call ();
96
+ X3DMetadataObject .prototype .dispose .call (this);
97
+ X3DNode .prototype .dispose .call (this);
94
98
  },
95
99
  });
96
100
 
@@ -82,15 +82,19 @@ MetadataDouble .prototype = Object .assign (Object .create (X3DNode .prototype),
82
82
  {
83
83
  return "metadata";
84
84
  },
85
+ getSpecificationRange: function ()
86
+ {
87
+ return ["3.0", "Infinity"];
88
+ },
85
89
  initialize: function ()
86
90
  {
87
- X3DNode .prototype .initialize .call ();
88
- X3DMetadataObject .prototype .initialize .call ();
91
+ X3DNode .prototype .initialize .call (this);
92
+ X3DMetadataObject .prototype .initialize .call (this);
89
93
  },
90
94
  dispose: function ()
91
95
  {
92
- X3DMetadataObject .prototype .dispose .call ();
93
- X3DNode .prototype .dispose .call ();
96
+ X3DMetadataObject .prototype .dispose .call (this);
97
+ X3DNode .prototype .dispose .call (this);
94
98
  },
95
99
  });
96
100
 
@@ -82,15 +82,19 @@ MetadataFloat .prototype = Object .assign (Object .create (X3DNode .prototype),
82
82
  {
83
83
  return "metadata";
84
84
  },
85
+ getSpecificationRange: function ()
86
+ {
87
+ return ["3.0", "Infinity"];
88
+ },
85
89
  initialize: function ()
86
90
  {
87
- X3DNode .prototype .initialize .call ();
88
- X3DMetadataObject .prototype .initialize .call ();
91
+ X3DNode .prototype .initialize .call (this);
92
+ X3DMetadataObject .prototype .initialize .call (this);
89
93
  },
90
94
  dispose: function ()
91
95
  {
92
- X3DMetadataObject .prototype .dispose .call ();
93
- X3DNode .prototype .dispose .call ();
96
+ X3DMetadataObject .prototype .dispose .call (this);
97
+ X3DNode .prototype .dispose .call (this);
94
98
  },
95
99
  });
96
100
 
@@ -82,15 +82,19 @@ MetadataInteger .prototype = Object .assign (Object .create (X3DNode .prototype)
82
82
  {
83
83
  return "metadata";
84
84
  },
85
+ getSpecificationRange: function ()
86
+ {
87
+ return ["3.0", "Infinity"];
88
+ },
85
89
  initialize: function ()
86
90
  {
87
- X3DNode .prototype .initialize .call ();
88
- X3DMetadataObject .prototype .initialize .call ();
91
+ X3DNode .prototype .initialize .call (this);
92
+ X3DMetadataObject .prototype .initialize .call (this);
89
93
  },
90
94
  dispose: function ()
91
95
  {
92
- X3DMetadataObject .prototype .dispose .call ();
93
- X3DNode .prototype .dispose .call ();
96
+ X3DMetadataObject .prototype .dispose .call (this);
97
+ X3DNode .prototype .dispose .call (this);
94
98
  },
95
99
  });
96
100
 
@@ -82,15 +82,19 @@ MetadataSet .prototype = Object .assign (Object .create (X3DNode .prototype),
82
82
  {
83
83
  return "metadata";
84
84
  },
85
+ getSpecificationRange: function ()
86
+ {
87
+ return ["3.0", "Infinity"];
88
+ },
85
89
  initialize: function ()
86
90
  {
87
- X3DNode .prototype .initialize .call ();
88
- X3DMetadataObject .prototype .initialize .call ();
91
+ X3DNode .prototype .initialize .call (this);
92
+ X3DMetadataObject .prototype .initialize .call (this);
89
93
  },
90
94
  dispose: function ()
91
95
  {
92
- X3DMetadataObject .prototype .dispose .call ();
93
- X3DNode .prototype .dispose .call ();
96
+ X3DMetadataObject .prototype .dispose .call (this);
97
+ X3DNode .prototype .dispose .call (this);
94
98
  },
95
99
  });
96
100
 
@@ -82,15 +82,19 @@ MetadataString .prototype = Object .assign (Object .create (X3DNode .prototype),
82
82
  {
83
83
  return "metadata";
84
84
  },
85
+ getSpecificationRange: function ()
86
+ {
87
+ return ["3.0", "Infinity"];
88
+ },
85
89
  initialize: function ()
86
90
  {
87
- X3DNode .prototype .initialize .call ();
88
- X3DMetadataObject .prototype .initialize .call ();
91
+ X3DNode .prototype .initialize .call (this);
92
+ X3DMetadataObject .prototype .initialize .call (this);
89
93
  },
90
94
  dispose: function ()
91
95
  {
92
- X3DMetadataObject .prototype .dispose .call ();
93
- X3DNode .prototype .dispose .call ();
96
+ X3DMetadataObject .prototype .dispose .call (this);
97
+ X3DNode .prototype .dispose .call (this);
94
98
  },
95
99
  });
96
100
 
@@ -78,6 +78,10 @@ WorldInfo .prototype = Object .assign (Object .create (X3DInfoNode .prototype),
78
78
  {
79
79
  return "children";
80
80
  },
81
+ getSpecificationRange: function ()
82
+ {
83
+ return ["2.0", "Infinity"];
84
+ },
81
85
  initialize: function ()
82
86
  {
83
87
  X3DInfoNode .prototype .initialize .call (this);
@@ -48,6 +48,7 @@
48
48
  import Fields from "../../Fields.js";
49
49
  import X3DBaseNode from "../../Base/X3DBaseNode.js";
50
50
  import X3DConstants from "../../Base/X3DConstants.js";
51
+ import SFNodeCache from "../../Fields/SFNodeCache.js";
51
52
 
52
53
  function X3DNode (executionContext)
53
54
  {
@@ -1260,30 +1261,30 @@ X3DNode .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
1260
1261
  if (this .getName ())
1261
1262
  executionContext .removeNamedNode (this .getName ())
1262
1263
 
1263
- // Remove imported node if any.
1264
-
1265
- if (!executionContext .isMainScene ())
1264
+ if (executionContext .isScene ())
1266
1265
  {
1267
- const parentContext = executionContext .getExecutionContext ();
1266
+ // Remove imported node if any.
1268
1267
 
1269
- for (const importedNode of parentContext .getImportedNodes ())
1268
+ if (!executionContext .isMainScene ())
1270
1269
  {
1271
- try
1272
- {
1273
- if (importedNode .getExportedNode () === this)
1274
- parentContext .removeImportedNode (importedNode .getImportedName ());
1275
- }
1276
- catch (error)
1270
+ const parentContext = executionContext .getExecutionContext ();
1271
+
1272
+ for (const importedNode of parentContext .getImportedNodes ())
1277
1273
  {
1278
- //console .error (error);
1274
+ try
1275
+ {
1276
+ if (importedNode .getExportedNode () === this)
1277
+ parentContext .removeImportedNode (importedNode .getImportedName ());
1278
+ }
1279
+ catch (error)
1280
+ {
1281
+ //console .error (error);
1282
+ }
1279
1283
  }
1280
1284
  }
1281
- }
1282
1285
 
1283
- // Remove exported node if any.
1286
+ // Remove exported node if any.
1284
1287
 
1285
- if (executionContext .isScene ())
1286
- {
1287
1288
  for (const exportedNode of executionContext .getExportedNodes ())
1288
1289
  {
1289
1290
  if (exportedNode .getLocalNode () === this)
@@ -89,7 +89,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
89
89
 
90
90
  // const proto = this [_protoNode];
91
91
 
92
- // if (! proto .isExternProto)
92
+ // if (!proto .isExternProto)
93
93
  // {
94
94
  // const rootNodes = proto .getBody () .getRootNodes ();
95
95
 
@@ -112,15 +112,13 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
112
112
  },
113
113
  construct: function ()
114
114
  {
115
- if (this [_body])
116
- this [_body] .dispose ();
115
+ this [_body] ?.dispose ();
117
116
 
118
117
  const proto = this [_protoNode] .getProtoDeclaration ();
119
118
 
120
- if (! proto)
119
+ if (!proto)
121
120
  {
122
- this [_body] = new X3DExecutionContext (this .getExecutionContext ());
123
- this [_body] .setOuterNode (this);
121
+ this [_body] = new X3DExecutionContext (this .getExecutionContext (), this);
124
122
  this [_body] .setup ();
125
123
 
126
124
  if (this .isInitialized ())
@@ -148,7 +146,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
148
146
  continue;
149
147
 
150
148
  // Continue if field is eventIn or eventOut.
151
- if (! field .isInitializable ())
149
+ if (!field .isInitializable ())
152
150
  continue;
153
151
 
154
152
  // Is set during parse.
@@ -175,8 +173,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
175
173
 
176
174
  // Create execution context.
177
175
 
178
- this [_body] = new X3DExecutionContext (proto .getExecutionContext ());
179
- this [_body] .setOuterNode (this);
176
+ this [_body] = new X3DExecutionContext (proto .getExecutionContext (), this);
180
177
 
181
178
  // Copy proto.
182
179
 
@@ -218,7 +215,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
218
215
  {
219
216
  const oldFieldName = oldProtoFields .get (protoField);
220
217
 
221
- if (! oldFieldName)
218
+ if (!oldFieldName)
222
219
  continue;
223
220
 
224
221
  const
@@ -232,7 +229,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
232
229
  this .getPredefinedFields () .update (newField .getName (), newField .getName (), oldField);
233
230
  this .getFields () .update (newField .getName (), newField .getName (), oldField);
234
231
 
235
- if (! this .isPrivate ())
232
+ if (!this .isPrivate ())
236
233
  oldField .addCloneCount (1);
237
234
 
238
235
  oldFields .delete (oldFieldName);
@@ -281,7 +278,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
281
278
 
282
279
  const outerNode = this .getExecutionContext () .getOuterNode ();
283
280
 
284
- if (outerNode && outerNode .getType () .includes (X3DConstants .X3DProtoDeclaration))
281
+ if (outerNode ?.getType () .includes (X3DConstants .X3DProtoDeclaration))
285
282
  return;
286
283
 
287
284
  if (protoNode .isExternProto)
@@ -588,7 +585,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
588
585
  }
589
586
  }
590
587
 
591
- if (references .length && ! sharedNode)
588
+ if (references .length && !sharedNode)
592
589
  {
593
590
  generator .string += generator .Indent ();
594
591
  generator .string += "<IS>";
@@ -921,7 +918,7 @@ X3DPrototypeInstance .prototype = Object .assign (Object .create (X3DNode .proto
921
918
 
922
919
  // IS references
923
920
 
924
- if (references .length && ! sharedNode)
921
+ if (references .length && !sharedNode)
925
922
  {
926
923
  generator .string += generator .Indent ();
927
924
  generator .string += '"';
@@ -101,6 +101,10 @@ ComposedCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironme
101
101
  {
102
102
  return "texture";
103
103
  },
104
+ getSpecificationRange: function ()
105
+ {
106
+ return ["3.1", "Infinity"];
107
+ },
104
108
  initialize: function ()
105
109
  {
106
110
  X3DEnvironmentTextureNode .prototype .initialize .call (this);
@@ -203,7 +207,6 @@ ComposedCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironme
203
207
  case X3DConstants .MovieTexture:
204
208
  {
205
209
  gl .bindTexture (this .getTarget (), this .getTexture ());
206
- gl .pixelStorei (gl .UNPACK_FLIP_Y_WEBGL, textureNode ._flipVertically .getValue ());
207
210
  gl .texImage2D (this .getTargets () [i], 0, gl .RGBA, width, height, 0, gl .RGBA, gl .UNSIGNED_BYTE, textureNode .getElement ());
208
211
  break;
209
212
  }
@@ -95,6 +95,10 @@ GeneratedCubeMapTexture .prototype = Object .assign (Object .create (X3DEnvironm
95
95
  {
96
96
  return "texture";
97
97
  },
98
+ getSpecificationRange: function ()
99
+ {
100
+ return ["3.0", "Infinity"];
101
+ },
98
102
  initialize: function ()
99
103
  {
100
104
  X3DEnvironmentTextureNode .prototype .initialize .call (this);