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
@@ -217,7 +217,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
217
217
  const
218
218
  scene = this .getExecutionContext (),
219
219
  worldURL = scene .getWorldURL (),
220
- worldInfoNode = scene .createNode ("WorldInfo", false);
220
+ worldInfoNode = scene .createNode ("WorldInfo", { setup: false });
221
221
 
222
222
  for (const [key, value] of Object .entries (asset))
223
223
  {
@@ -347,7 +347,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
347
347
  {
348
348
  const
349
349
  scene = this .getExecutionContext (),
350
- lightNode = scene .createNode ("DirectionalLight", false);
350
+ lightNode = scene .createNode ("DirectionalLight", { setup: false });
351
351
 
352
352
  return lightNode;
353
353
  },
@@ -355,7 +355,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
355
355
  {
356
356
  const
357
357
  scene = this .getExecutionContext (),
358
- lightNode = scene .createNode ("SpotLight", false);
358
+ lightNode = scene .createNode ("SpotLight", { setup: false });
359
359
 
360
360
  lightNode ._radius = this .numberValue (light .range, 0) || 1_000_000_000;
361
361
  lightNode ._cutOffAngle = this .numberValue (light .outerConeAngle, Math .PI / 4);
@@ -368,7 +368,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
368
368
  {
369
369
  const
370
370
  scene = this .getExecutionContext (),
371
- lightNode = scene .createNode ("PointLight", false);
371
+ lightNode = scene .createNode ("PointLight", { setup: false });
372
372
 
373
373
  lightNode ._radius = this .numberValue (light .range, 0) || 1_000_000_000;
374
374
  lightNode ._attenuation = new Vector3 (0, 0, 1);
@@ -594,7 +594,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
594
594
  {
595
595
  const
596
596
  scene = this .getExecutionContext (),
597
- texturePropertiesNode = scene .createNode ("TextureProperties", false),
597
+ texturePropertiesNode = scene .createNode ("TextureProperties", { setup: false }),
598
598
  name = this .sanitizeName (sampler .name);
599
599
 
600
600
  if (name)
@@ -695,7 +695,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
695
695
 
696
696
  const
697
697
  scene = this .getExecutionContext (),
698
- textureNode = scene .createNode ("ImageTexture", false),
698
+ textureNode = scene .createNode ("ImageTexture", { setup: false }),
699
699
  name = this .sanitizeName (texture .name || image .name);
700
700
 
701
701
  if (name)
@@ -704,8 +704,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
704
704
  scene .addExportedNode (scene .getUniqueExportName (name), textureNode);
705
705
  }
706
706
 
707
- textureNode ._url = [image .uri];
708
- textureNode ._flipVertically = true;
707
+ textureNode ._url = [image .uri];
709
708
 
710
709
  const sampler = this .samplers [texture .sampler];
711
710
 
@@ -741,7 +740,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
741
740
 
742
741
  const
743
742
  scene = this .getExecutionContext (),
744
- appearanceNode = scene .createNode ("Appearance", false),
743
+ appearanceNode = scene .createNode ("Appearance", { setup: false }),
745
744
  materialNode = this .createMaterial (material),
746
745
  name = this .sanitizeName (material .name);
747
746
 
@@ -765,9 +764,12 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
765
764
 
766
765
  if (this .textureTransformNodes .length)
767
766
  {
768
- const textureTransformNode = scene .createNode ("TextureTransform", false);
767
+ const textureTransformNode = scene .createNode ("TextureTransform", { setup: false });
768
+
769
+ textureTransformNode ._mapping = mapping;
770
+ textureTransformNode ._translation .y = -1;
771
+ textureTransformNode ._scale .y = -1;
769
772
 
770
- textureTransformNode ._mapping = mapping;
771
773
  textureTransformNode .setup ();
772
774
 
773
775
  this .textureTransformNodes .push (textureTransformNode);
@@ -796,7 +798,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
796
798
  if (!(object instanceof Object))
797
799
  return indices;
798
800
 
799
- if (key .endsWith ("Texture") && !object?.extensions?.KHR_texture_transform)
801
+ if (key .endsWith ("Texture") && !object ?.extensions ?.KHR_texture_transform)
800
802
  indices .add (object .texCoord || 0);
801
803
 
802
804
  for (const [key, value] of Object .entries (object))
@@ -808,7 +810,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
808
810
  {
809
811
  const materials = [
810
812
  this .pbrMetallicRoughnessObject .bind (this, material .pbrMetallicRoughness),
811
- this .pbrSpecularGlossinessObject .bind (this, material .extensions?.KHR_materials_pbrSpecularGlossiness),
813
+ this .pbrSpecularGlossinessObject .bind (this, material .extensions ?.KHR_materials_pbrSpecularGlossiness),
812
814
  this .pbrMetallicRoughnessObject .bind (this, { }),
813
815
  ];
814
816
 
@@ -827,7 +829,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
827
829
 
828
830
  const
829
831
  scene = this .getExecutionContext (),
830
- materialNode = scene .createNode ("PhysicalMaterial", false);
832
+ materialNode = scene .createNode ("PhysicalMaterial", { setup: false });
831
833
 
832
834
  const
833
835
  baseColorFactor = new Color4 (0, 0, 0, 0),
@@ -856,7 +858,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
856
858
 
857
859
  const
858
860
  scene = this .getExecutionContext (),
859
- materialNode = scene .createNode ("Material", false);
861
+ materialNode = scene .createNode ("Material", { setup: false });
860
862
 
861
863
  const
862
864
  diffuseFactor = new Color4 (0, 0, 0, 0),
@@ -975,7 +977,11 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
975
977
  if (!(KHR_materials_emissive_strength instanceof Object))
976
978
  return;
977
979
 
978
- materialNode ._emissiveStrength = this .numberValue (KHR_materials_emissive_strength .emissiveStrength, 1);
980
+ const emissiveStrength = this .numberValue (KHR_materials_emissive_strength .emissiveStrength, 1);
981
+
982
+ materialNode ._emissiveColor .r *= emissiveStrength;
983
+ materialNode ._emissiveColor .g *= emissiveStrength;
984
+ materialNode ._emissiveColor .b *= emissiveStrength;
979
985
  },
980
986
  textureTransformObject: function (KHR_texture_transform, texCoord)
981
987
  {
@@ -987,7 +993,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
987
993
 
988
994
  const
989
995
  scene = this .getExecutionContext (),
990
- textureTransformNode = scene .createNode ("TextureTransformMatrix3D", false),
996
+ textureTransformNode = scene .createNode ("TextureTransformMatrix3D", { setup: false }),
991
997
  mapping = `TEXCOORD_${this .texCoordIndex + this .textureTransformNodes .length + 1}`;
992
998
 
993
999
  const
@@ -995,6 +1001,9 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
995
1001
  scale = new Vector2 (1, 1),
996
1002
  matrix = new Matrix4 ();
997
1003
 
1004
+ matrix .scale (new Vector3 (1, -1, 1));
1005
+ matrix .translate (new Vector3 (0, -1, 0));
1006
+
998
1007
  if (this .vectorValue (KHR_texture_transform .offset, translation))
999
1008
  matrix .translate (new Vector3 (... translation, 0));
1000
1009
 
@@ -1307,7 +1316,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1307
1316
  {
1308
1317
  const
1309
1318
  scene = this .getExecutionContext (),
1310
- viewpointNode = scene .createNode ("OrthoViewpoint", false);
1319
+ viewpointNode = scene .createNode ("OrthoViewpoint", { setup: false });
1311
1320
 
1312
1321
  if (typeof camera .xmag === "number")
1313
1322
  {
@@ -1335,7 +1344,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1335
1344
  {
1336
1345
  const
1337
1346
  scene = this .getExecutionContext (),
1338
- viewpointNode = scene .createNode ("Viewpoint", false);
1347
+ viewpointNode = scene .createNode ("Viewpoint", { setup: false });
1339
1348
 
1340
1349
  if (typeof camera .yfov === "number")
1341
1350
  viewpointNode ._fieldOfView = camera .yfov
@@ -1369,7 +1378,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1369
1378
 
1370
1379
  const
1371
1380
  scene = this .getExecutionContext (),
1372
- transformNode = scene .createNode ("Transform", false),
1381
+ transformNode = scene .createNode ("Transform", { setup: false }),
1373
1382
  name = this .sanitizeName (node .name);
1374
1383
 
1375
1384
  // Name
@@ -1507,7 +1516,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1507
1516
  if (this .usedLights)
1508
1517
  scene .getRootNodes () .push (this .createNavigationInfo ());
1509
1518
 
1510
- const switchNode = scene .createNode ("Switch", false);
1519
+ const switchNode = scene .createNode ("Switch", { setup: false });
1511
1520
 
1512
1521
  scene .addNamedNode (scene .getUniqueName ("Scenes"), switchNode);
1513
1522
  scene .addExportedNode (scene .getUniqueExportName ("Scenes"), switchNode);
@@ -1545,7 +1554,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1545
1554
  {
1546
1555
  const
1547
1556
  scene = this .getExecutionContext (),
1548
- groupNode = scene .createNode ("Group", false),
1557
+ groupNode = scene .createNode ("Group", { setup: false }),
1549
1558
  name = this .sanitizeName (sceneObject .name);
1550
1559
 
1551
1560
  if (name)
@@ -1580,7 +1589,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1580
1589
 
1581
1590
  const
1582
1591
  scene = this .getExecutionContext (),
1583
- groupNode = scene .createNode ("Group", false);
1592
+ groupNode = scene .createNode ("Group", { setup: false });
1584
1593
 
1585
1594
  scene .addNamedNode (scene .getUniqueName ("Animations"), groupNode);
1586
1595
  scene .addExportedNode (scene .getUniqueExportName ("Animations"), groupNode);
@@ -1598,14 +1607,14 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1598
1607
 
1599
1608
  const
1600
1609
  scene = this .getExecutionContext (),
1601
- timeSensorNode = scene .createNode ("TimeSensor", false),
1610
+ timeSensorNode = scene .createNode ("TimeSensor", { setup: false }),
1602
1611
  channelNodes = this .animationChannelsArray (animation .channels, animation .samplers, timeSensorNode);
1603
1612
 
1604
1613
  if (!channelNodes .length)
1605
1614
  return null;
1606
1615
 
1607
1616
  const
1608
- groupNode = scene .createNode ("Group", false),
1617
+ groupNode = scene .createNode ("Group", { setup: false }),
1609
1618
  name = this .sanitizeName (animation .name);
1610
1619
 
1611
1620
  ++ this .animations;
@@ -1700,7 +1709,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1700
1709
  {
1701
1710
  const
1702
1711
  scene = this .getExecutionContext (),
1703
- navigationInfoNode = scene .createNode ("NavigationInfo", false);
1712
+ navigationInfoNode = scene .createNode ("NavigationInfo", { setup: false });
1704
1713
 
1705
1714
  navigationInfoNode ._headlight = false;
1706
1715
 
@@ -1712,7 +1721,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1712
1721
  {
1713
1722
  const
1714
1723
  scene = this .getExecutionContext (),
1715
- shapeNode = scene .createNode ("Shape", false),
1724
+ shapeNode = scene .createNode ("Shape", { setup: false }),
1716
1725
  appearanceNode = this .materialObject (primitive .material),
1717
1726
  geometryNode = this .createGeometry (primitive);
1718
1727
 
@@ -1730,8 +1739,8 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1730
1739
 
1731
1740
  const
1732
1741
  scene = this .getExecutionContext (),
1733
- appearanceNode = scene .createNode ("Appearance", false),
1734
- materialNode = scene .createNode ("PhysicalMaterial", false);
1742
+ appearanceNode = scene .createNode ("Appearance", { setup: false }),
1743
+ materialNode = scene .createNode ("PhysicalMaterial", { setup: false });
1735
1744
 
1736
1745
  appearanceNode ._alphaMode = "OPAQUE";
1737
1746
  appearanceNode ._material = materialNode;
@@ -1755,7 +1764,19 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1755
1764
  {
1756
1765
  case 0:
1757
1766
  {
1758
- return null;
1767
+ if (this .textureTransformNode)
1768
+ return this .textureTransformNode;
1769
+
1770
+ const
1771
+ scene = this .getExecutionContext (),
1772
+ textureTransformNode = scene .createNode ("TextureTransform", { setup: false });
1773
+
1774
+ textureTransformNode ._translation .y = -1;
1775
+ textureTransformNode ._scale .y = -1;
1776
+
1777
+ textureTransformNode .setup ();
1778
+
1779
+ return this .textureTransformNode = textureTransformNode;
1759
1780
  }
1760
1781
  case 1:
1761
1782
  {
@@ -1765,7 +1786,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1765
1786
  {
1766
1787
  const
1767
1788
  scene = this .getExecutionContext (),
1768
- textureTransformNode = scene .createNode ("MultiTextureTransform", false);
1789
+ textureTransformNode = scene .createNode ("MultiTextureTransform", { setup: false });
1769
1790
 
1770
1791
  textureTransformNode ._textureTransform = textureTransformNodes;
1771
1792
 
@@ -1826,7 +1847,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1826
1847
  {
1827
1848
  const
1828
1849
  scene = this .getExecutionContext (),
1829
- geometryNode = scene .createNode ("PointSet", false);
1850
+ geometryNode = scene .createNode ("PointSet", { setup: false });
1830
1851
 
1831
1852
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
1832
1853
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
@@ -1840,7 +1861,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1840
1861
  {
1841
1862
  const
1842
1863
  scene = this .getExecutionContext (),
1843
- geometryNode = scene .createNode ("IndexedLineSet", false);
1864
+ geometryNode = scene .createNode ("IndexedLineSet", { setup: false });
1844
1865
 
1845
1866
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
1846
1867
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
@@ -1911,7 +1932,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1911
1932
  {
1912
1933
  const
1913
1934
  scene = this .getExecutionContext (),
1914
- geometryNode = scene .createNode ("LineSet", false);
1935
+ geometryNode = scene .createNode ("LineSet", { setup: false });
1915
1936
 
1916
1937
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
1917
1938
  geometryNode ._normal = this .createNormal (attributes .NORMAL);
@@ -1925,7 +1946,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1925
1946
  {
1926
1947
  const
1927
1948
  scene = this .getExecutionContext (),
1928
- geometryNode = scene .createNode ("IndexedTriangleSet", false);
1949
+ geometryNode = scene .createNode ("IndexedTriangleSet", { setup: false });
1929
1950
 
1930
1951
  geometryNode ._solid = material ? ! material .doubleSided : true;
1931
1952
  geometryNode ._index = indices .array;
@@ -1943,7 +1964,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1943
1964
  {
1944
1965
  const
1945
1966
  scene = this .getExecutionContext (),
1946
- geometryNode = scene .createNode ("TriangleSet", false);
1967
+ geometryNode = scene .createNode ("TriangleSet", { setup: false });
1947
1968
 
1948
1969
  geometryNode ._solid = material ? ! material .doubleSided : true;
1949
1970
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
@@ -1960,7 +1981,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1960
1981
  {
1961
1982
  const
1962
1983
  scene = this .getExecutionContext (),
1963
- geometryNode = scene .createNode ("IndexedTriangleStripSet", false);
1984
+ geometryNode = scene .createNode ("IndexedTriangleStripSet", { setup: false });
1964
1985
 
1965
1986
  geometryNode ._solid = material ? ! material .doubleSided : true;
1966
1987
  geometryNode ._index = indices .array;
@@ -1978,7 +1999,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
1978
1999
  {
1979
2000
  const
1980
2001
  scene = this .getExecutionContext (),
1981
- geometryNode = scene .createNode ("TriangleStripSet", false);
2002
+ geometryNode = scene .createNode ("TriangleStripSet", { setup: false });
1982
2003
 
1983
2004
  geometryNode ._solid = material ? ! material .doubleSided : true;
1984
2005
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
@@ -2003,7 +2024,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2003
2024
  {
2004
2025
  const
2005
2026
  scene = this .getExecutionContext (),
2006
- geometryNode = scene .createNode ("IndexedTriangleFanSet", false);
2027
+ geometryNode = scene .createNode ("IndexedTriangleFanSet", { setup: false });
2007
2028
 
2008
2029
  geometryNode ._solid = material ? ! material .doubleSided : true;
2009
2030
  geometryNode ._index = indices .array;
@@ -2021,7 +2042,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2021
2042
  {
2022
2043
  const
2023
2044
  scene = this .getExecutionContext (),
2024
- geometryNode = scene .createNode ("TriangleFanSet", false);
2045
+ geometryNode = scene .createNode ("TriangleFanSet", { setup: false });
2025
2046
 
2026
2047
  geometryNode ._solid = material ? ! material .doubleSided : true;
2027
2048
  geometryNode ._color = this .createColor (attributes .COLOR [0], material);
@@ -2066,7 +2087,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2066
2087
  scene = this .getExecutionContext (),
2067
2088
  appearanceNode = this .materialObject (material),
2068
2089
  opaque = appearanceNode ._alphaMode .getValue () === "OPAQUE",
2069
- colorNode = scene .createNode (opaque ? "Color" : typeName, false);
2090
+ colorNode = scene .createNode (opaque ? "Color" : typeName, { setup: false });
2070
2091
 
2071
2092
  colorNode ._color = opaque && typeName !== "Color"
2072
2093
  ? color .array .filter ((_, i) => (i + 1) % 4)
@@ -2110,7 +2131,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2110
2131
 
2111
2132
  const
2112
2133
  scene = this .getExecutionContext (),
2113
- textureCoordinateNode = scene .createNode ("MultiTextureCoordinate", false);
2134
+ textureCoordinateNode = scene .createNode ("MultiTextureCoordinate", { setup: false });
2114
2135
 
2115
2136
  textureCoordinateNode ._texCoord = textureCoordinateNodes;
2116
2137
 
@@ -2133,7 +2154,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2133
2154
 
2134
2155
  const
2135
2156
  scene = this .getExecutionContext (),
2136
- textureCoordinateNode = scene .createNode ("TextureCoordinate", false);
2157
+ textureCoordinateNode = scene .createNode ("TextureCoordinate", { setup: false });
2137
2158
 
2138
2159
  textureCoordinateNode ._mapping = mapping;
2139
2160
  textureCoordinateNode ._point = texCoord .array;
@@ -2155,7 +2176,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2155
2176
 
2156
2177
  const
2157
2178
  scene = this .getExecutionContext (),
2158
- normalNode = scene .createNode ("Normal", false);
2179
+ normalNode = scene .createNode ("Normal", { setup: false });
2159
2180
 
2160
2181
  normalNode ._vector = normal .array;
2161
2182
 
@@ -2176,7 +2197,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2176
2197
 
2177
2198
  const
2178
2199
  scene = this .getExecutionContext (),
2179
- coordinateNode = scene .createNode ("Coordinate", false);
2200
+ coordinateNode = scene .createNode ("Coordinate", { setup: false });
2180
2201
 
2181
2202
  coordinateNode ._point = position .array;
2182
2203
 
@@ -2229,7 +2250,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2229
2250
  {
2230
2251
  case "STEP":
2231
2252
  {
2232
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
2253
+ const interpolatorNode = scene .createNode ("PositionInterpolator", { setup: false });
2233
2254
 
2234
2255
  // Key
2235
2256
 
@@ -2257,7 +2278,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2257
2278
  default:
2258
2279
  case "LINEAR":
2259
2280
  {
2260
- const interpolatorNode = scene .createNode ("PositionInterpolator", false);
2281
+ const interpolatorNode = scene .createNode ("PositionInterpolator", { setup: false });
2261
2282
 
2262
2283
  interpolatorNode ._key = times .map (t => t / cycleInterval);
2263
2284
  interpolatorNode ._keyValue = keyValues;
@@ -2269,7 +2290,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2269
2290
  case "CUBICSPLINE":
2270
2291
  {
2271
2292
  const
2272
- interpolatorNode = scene .createNode ("PositionInterpolator", false),
2293
+ interpolatorNode = scene .createNode ("PositionInterpolator", { setup: false }),
2273
2294
  vectors = [ ];
2274
2295
 
2275
2296
  for (let i = 0, length = keyValues .length; i < length; i += 3)
@@ -2303,7 +2324,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2303
2324
  {
2304
2325
  case "STEP":
2305
2326
  {
2306
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
2327
+ const interpolatorNode = scene .createNode ("OrientationInterpolator", { setup: false });
2307
2328
 
2308
2329
  // Key
2309
2330
 
@@ -2340,7 +2361,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2340
2361
  default:
2341
2362
  case "LINEAR":
2342
2363
  {
2343
- const interpolatorNode = scene .createNode ("OrientationInterpolator", false);
2364
+ const interpolatorNode = scene .createNode ("OrientationInterpolator", { setup: false });
2344
2365
 
2345
2366
  interpolatorNode ._key = times .map (t => t / cycleInterval);
2346
2367
 
@@ -2359,7 +2380,7 @@ GLTF2Parser .prototype = Object .assign (Object .create (X3DParser .prototype),
2359
2380
  case "CUBICSPLINE":
2360
2381
  {
2361
2382
  const
2362
- interpolatorNode = scene .createNode ("OrientationInterpolator", false),
2383
+ interpolatorNode = scene .createNode ("OrientationInterpolator", { setup: false }),
2363
2384
  quaternions = [ ];
2364
2385
 
2365
2386
  for (let i = 0, length = keyValues .length; i < length; i += 4)
@@ -348,43 +348,75 @@ VRMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
348
348
  if (match)
349
349
  this .lineNumber += match .length;
350
350
  },
351
- x3dScene: function ()
352
- {
353
- this .headerStatement ();
354
- this .profileStatement ();
355
- this .componentStatements ();
356
- this .unitStatements ();
357
- this .metaStatements ();
351
+ x3dScene: (function ()
352
+ {
353
+ const VRML =
354
+ [
355
+ "Core",
356
+ "EnvironmentalEffects",
357
+ "EnvironmentalSensor",
358
+ "Geometry3D",
359
+ "Grouping",
360
+ "Interpolation",
361
+ "Lighting",
362
+ "Navigation",
363
+ "Networking",
364
+ "PointingDeviceSensor",
365
+ "Rendering",
366
+ "Scripting",
367
+ "Shape",
368
+ "Sound",
369
+ "Text",
370
+ "Texturing",
371
+ "Time",
372
+ ];
373
+
374
+ return function ()
375
+ {
376
+ this .headerStatement ();
377
+ this .profileStatement ();
378
+ this .componentStatements ();
379
+ this .unitStatements ();
380
+ this .metaStatements ();
381
+
382
+ if (this .getScene () .getSpecificationVersion () === "2.0")
383
+ {
384
+ this .getScene () .setProfile (this .getBrowser () .getProfile ("Core"));
358
385
 
359
- if (this .success)
360
- {
361
- this .loadComponents () .then (() =>
386
+ for (const componentName of VRML)
387
+ this .getScene () .addComponent (this .getBrowser () .getComponent (componentName));
388
+ }
389
+
390
+ if (this .success)
362
391
  {
363
- try
392
+ this .loadComponents () .then (() =>
364
393
  {
365
- this .statements (this .getExecutionContext () .rootNodes);
394
+ try
395
+ {
396
+ this .statements (this .getExecutionContext () .rootNodes);
366
397
 
367
- if (this .lastIndex < this .input .length)
368
- throw new Error ("Unknown statement.");
398
+ if (this .lastIndex < this .input .length)
399
+ throw new Error ("Unknown statement.");
369
400
 
370
- this .success (this .getScene ());
371
- }
372
- catch (error)
373
- {
374
- console .error (error);
375
- this .error (new Error (this .getError (error)));
376
- }
377
- })
378
- .catch (this .error .bind (this));
379
- }
380
- else
381
- {
382
- this .statements (this .getExecutionContext () .rootNodes);
401
+ this .success (this .getScene ());
402
+ }
403
+ catch (error)
404
+ {
405
+ console .error (error);
406
+ this .error (new Error (this .getError (error)));
407
+ }
408
+ })
409
+ .catch (this .error .bind (this));
410
+ }
411
+ else
412
+ {
413
+ this .statements (this .getExecutionContext () .rootNodes);
383
414
 
384
- if (this .lastIndex < this .input .length)
385
- throw new Error ("Unknown statement.");
386
- }
387
- },
415
+ if (this .lastIndex < this .input .length)
416
+ throw new Error ("Unknown statement.");
417
+ }
418
+ };
419
+ })(),
388
420
  headerStatement: function ()
389
421
  {
390
422
  Grammar .Header .lastIndex = 0;
@@ -1233,14 +1265,14 @@ VRMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
1233
1265
  {
1234
1266
  var
1235
1267
  nodeTypeId = this .result [1],
1236
- baseNode = this .getExecutionContext () .createProto (nodeTypeId, false);
1268
+ baseNode = this .getExecutionContext () .createNode (nodeTypeId, { setup: false });
1237
1269
 
1238
1270
  if (! baseNode)
1239
1271
  {
1240
- baseNode = this .getExecutionContext () .createNode (nodeTypeId, false);
1272
+ baseNode = this .getExecutionContext () .createProto (nodeTypeId, { setup: false });
1241
1273
 
1242
1274
  if (! baseNode)
1243
- throw new Error ("Unknown node type or proto '" + nodeTypeId + "', you probably have insufficient component/profile statements.");
1275
+ throw new Error ("Unknown node type or proto '" + nodeTypeId + "', you probably have insufficient component/profile statements, and/or an inappropriate specification version.");
1244
1276
  }
1245
1277
 
1246
1278
  if (nodeNameId .length)
@@ -90,44 +90,17 @@ X3DParser .prototype = {
90
90
  {
91
91
  return Boolean (this .prototypes .length);
92
92
  },
93
- loadComponents: (function ()
93
+ loadComponents: function ()
94
94
  {
95
- const VRML =
96
- [
97
- "Core",
98
- "EnvironmentalEffects",
99
- "EnvironmentalSensor",
100
- "Geometry3D",
101
- "Grouping",
102
- "Interpolation",
103
- "Lighting",
104
- "Navigation",
105
- "Networking",
106
- "PointingDeviceSensor",
107
- "Rendering",
108
- "Scripting",
109
- "Shape",
110
- "Sound",
111
- "Text",
112
- "Texturing",
113
- "Time",
114
- ];
115
-
116
- return function ()
117
- {
118
- const
119
- browser = this .getBrowser (),
120
- scene = this .getScene ();
121
-
122
- if (scene .getSpecificationVersion () === "2.0")
123
- return browser .loadComponents (VRML);
95
+ const
96
+ browser = this .getBrowser (),
97
+ scene = this .getScene ();
124
98
 
125
- return Promise .all ([
126
- browser .loadComponents (scene .getProfile () || browser .getProfile ("Full")),
127
- browser .loadComponents (scene .getComponents ()),
128
- ]);
129
- };
130
- })(),
99
+ return Promise .all ([
100
+ browser .loadComponents (scene .getProfile () || browser .getProfile ("Full")),
101
+ browser .loadComponents (scene .getComponents ()),
102
+ ]);
103
+ },
131
104
  setUnits: function (units)
132
105
  {
133
106
  if (units)
@@ -706,7 +706,7 @@ XMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
706
706
 
707
707
  if (this .id (name))
708
708
  {
709
- var node = this .getExecutionContext () .createProto (name, false);
709
+ var node = this .getExecutionContext () .createProto (name, { setup: false });
710
710
 
711
711
  if (! node)
712
712
  throw new Error ("Unknown proto or externproto type '" + name + "'.");
@@ -780,13 +780,13 @@ XMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
780
780
  if (this .useAttribute (xmlElement))
781
781
  return;
782
782
 
783
- var node = this .getExecutionContext () .createProto (this .protoNameToCamelCase (xmlElement .nodeName), false);
783
+ var node = this .getExecutionContext () .createNode (this .nodeNameToCamelCase (xmlElement .nodeName), { setup: false });
784
784
 
785
- if (! node)
786
- node = this .getExecutionContext () .createNode (this .nodeNameToCamelCase (xmlElement .nodeName), false);
785
+ if (!node)
786
+ node = this .getExecutionContext () .createProto (this .protoNameToCamelCase (xmlElement .nodeName), { setup: false });
787
787
 
788
- if (! node)
789
- throw new Error ("Unknown node type '" + xmlElement .nodeName + "', you probably have insufficient component/profile statements.");
788
+ if (!node)
789
+ throw new Error (`Unknown node type '${xmlElement .nodeName}', you probably have insufficient component/profile statements and/or an inappropriate specification version.`);
790
790
 
791
791
  ///DOMIntegration: attach node to DOM xmlElement for access from DOM.
792
792
  $.data (xmlElement, "node", node);
@@ -816,10 +816,10 @@ XMLParser .prototype = Object .assign (Object .create (X3DParser .prototype),
816
816
  return;
817
817
  }
818
818
 
819
- console .error ("XML Parser Error: " + error .message);
820
-
821
819
  if (DEBUG)
822
820
  console .error (error);
821
+ else
822
+ console .error ("XML Parser Error: " + error .message);
823
823
  }
824
824
  },
825
825
  scriptElement (element)