x_ite 8.4.3 → 8.5.3

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 (568) hide show
  1. package/.vscode/settings.json +5 -1
  2. package/Makefile +0 -3
  3. package/build/bin/components.js +173 -0
  4. package/build/bin/tags.pl +28 -0
  5. package/build/bin/tests.pl +80 -2
  6. package/build/bin/version.pl +12 -7
  7. package/dist/assets/components/Annotation.js +13 -13
  8. package/dist/assets/components/Annotation.min.js +1 -1
  9. package/dist/assets/components/CADGeometry.js +13 -13
  10. package/dist/assets/components/CADGeometry.min.js +1 -1
  11. package/dist/assets/components/CubeMapTexturing.js +28 -29
  12. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  13. package/dist/assets/components/DIS.js +13 -13
  14. package/dist/assets/components/DIS.min.js +1 -1
  15. package/dist/assets/components/EventUtilities.js +9 -9
  16. package/dist/assets/components/EventUtilities.min.js +1 -1
  17. package/dist/assets/components/Geometry2D.js +19 -19
  18. package/dist/assets/components/Geometry2D.min.js +1 -1
  19. package/dist/assets/components/Geospatial.js +33 -33
  20. package/dist/assets/components/Geospatial.min.js +1 -1
  21. package/dist/assets/components/HAnim.js +63 -42
  22. package/dist/assets/components/HAnim.min.js +1 -1
  23. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  24. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  25. package/dist/assets/components/Layout.js +37 -29
  26. package/dist/assets/components/Layout.min.js +1 -1
  27. package/dist/assets/components/NURBS.js +29 -31
  28. package/dist/assets/components/NURBS.min.js +1 -1
  29. package/dist/assets/components/ParticleSystems.js +23 -23
  30. package/dist/assets/components/ParticleSystems.min.js +1 -1
  31. package/dist/assets/components/Picking.js +19 -19
  32. package/dist/assets/components/Picking.min.js +1 -1
  33. package/dist/assets/components/RigidBodyPhysics.js +24 -19
  34. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  35. package/dist/assets/components/Scripting.js +30 -30
  36. package/dist/assets/components/Scripting.min.js +1 -1
  37. package/dist/assets/components/Text.js +172 -594
  38. package/dist/assets/components/Text.min.js +1 -1
  39. package/dist/assets/components/TextureProjector.js +31 -47
  40. package/dist/assets/components/TextureProjector.min.js +1 -1
  41. package/dist/assets/components/Texturing3D.js +367 -346
  42. package/dist/assets/components/Texturing3D.min.js +1 -1
  43. package/dist/assets/components/VolumeRendering.js +19 -19
  44. package/dist/assets/components/VolumeRendering.min.js +1 -1
  45. package/dist/assets/components/X_ITE.js +9 -9
  46. package/dist/assets/components/X_ITE.min.js +1 -1
  47. package/dist/x_ite.css +1 -1
  48. package/dist/x_ite.js +12174 -3553
  49. package/dist/x_ite.min.js +1 -1
  50. package/dist/x_ite.zip +0 -0
  51. package/docs/_config.yml +5 -136
  52. package/docs/_data/nav/components-CADGeometry.yml +14 -0
  53. package/docs/_data/nav/components-Core.yml +16 -0
  54. package/docs/_data/nav/components-CubeMapTexturing.yml +8 -0
  55. package/docs/_data/nav/components-DIS.yml +14 -0
  56. package/docs/_data/nav/components-EnvironmentalEffects.yml +12 -0
  57. package/docs/_data/nav/components-EnvironmentalSensor.yml +8 -0
  58. package/docs/_data/nav/components-EventUtilities.yml +16 -0
  59. package/docs/_data/nav/components-Followers.yml +30 -0
  60. package/docs/_data/nav/components-Geometry2D.yml +18 -0
  61. package/docs/_data/nav/components-Geometry3D.yml +16 -0
  62. package/docs/_data/nav/components-Geospatial.yml +24 -0
  63. package/docs/_data/nav/components-Grouping.yml +10 -0
  64. package/docs/_data/nav/components-HAnim.yml +14 -0
  65. package/docs/_data/nav/components-Interpolation.yml +28 -0
  66. package/docs/_data/nav/components-KeyDeviceSensor.yml +6 -0
  67. package/docs/_data/nav/components-Layering.yml +8 -0
  68. package/docs/_data/nav/components-Layout.yml +12 -0
  69. package/docs/_data/nav/components-Lighting.yml +10 -0
  70. package/docs/_data/nav/components-NURBS.yml +30 -0
  71. package/docs/_data/nav/components-Navigation.yml +16 -0
  72. package/docs/_data/nav/components-Networking.yml +8 -0
  73. package/docs/_data/nav/components-ParticleSystems.yml +22 -0
  74. package/docs/_data/nav/components-Picking.yml +12 -0
  75. package/docs/_data/nav/components-PointingDeviceSensor.yml +10 -0
  76. package/docs/_data/nav/components-Rendering.yml +30 -0
  77. package/docs/_data/nav/components-RigidBodyPhysics.yml +30 -0
  78. package/docs/_data/nav/components-Scripting.yml +4 -0
  79. package/docs/_data/nav/components-Shaders.yml +18 -0
  80. package/docs/_data/nav/components-Shape.yml +22 -0
  81. package/docs/_data/nav/components-Sound.yml +44 -0
  82. package/docs/_data/nav/components-Text.yml +6 -0
  83. package/docs/_data/nav/components-TextureProjector.yml +6 -0
  84. package/docs/_data/nav/components-Texturing.yml +22 -0
  85. package/docs/_data/nav/components-Texturing3D.yml +18 -0
  86. package/docs/_data/nav/components-Time.yml +4 -0
  87. package/docs/_data/nav/components-VolumeRendering.yml +28 -0
  88. package/docs/_data/nav/components-X_ITE.yml +4 -0
  89. package/docs/_data/nav/main.yml +26 -0
  90. package/docs/_data/nav/reference.yml +18 -0
  91. package/docs/_data/nav/tutorials-animation-sensors-and-geometry.yml +18 -0
  92. package/docs/_data/nav/tutorials-basic.yml +6 -0
  93. package/docs/_data/nav/tutorials-optimize-your-scene.yml +6 -0
  94. package/docs/_data/nav/tutorials-scripts-and-prototypes.yml +12 -0
  95. package/docs/_data/nav/tutorials-shapes-geometry-and-appearance.yml +16 -0
  96. package/docs/_data/nav/tutorials-textures-lights-and-environment.yml +20 -0
  97. package/docs/_includes/nav.html +2 -2
  98. package/docs/_includes/scripts.html +2 -1
  99. package/docs/_posts/accessing-the-external-browser.md +1 -1
  100. package/docs/_posts/browser-support.md +1 -1
  101. package/docs/_posts/components/CADGeometry/CADAssembly.md +83 -0
  102. package/docs/_posts/components/CADGeometry/CADFace.md +70 -0
  103. package/docs/_posts/components/CADGeometry/CADLayer.md +84 -0
  104. package/docs/_posts/components/CADGeometry/CADPart.md +117 -0
  105. package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +125 -0
  106. package/docs/_posts/components/CADGeometry/QuadSet.md +113 -0
  107. package/docs/_posts/components/Core/MetadataBoolean.md +90 -0
  108. package/docs/_posts/components/Core/MetadataDouble.md +67 -0
  109. package/docs/_posts/components/Core/MetadataFloat.md +67 -0
  110. package/docs/_posts/components/Core/MetadataInteger.md +66 -0
  111. package/docs/_posts/components/Core/MetadataSet.md +63 -0
  112. package/docs/_posts/components/Core/MetadataString.md +66 -0
  113. package/docs/_posts/components/Core/WorldInfo.md +54 -0
  114. package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +76 -0
  115. package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +65 -0
  116. package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +66 -0
  117. package/docs/_posts/components/DIS/DISEntityManager.md +73 -0
  118. package/docs/_posts/components/DIS/DISEntityTypeMapping.md +88 -0
  119. package/docs/_posts/components/DIS/EspduTransform.md +416 -0
  120. package/docs/_posts/components/DIS/ReceiverPdu.md +168 -0
  121. package/docs/_posts/components/DIS/SignalPdu.md +168 -0
  122. package/docs/_posts/components/DIS/TransmitterPdu.md +232 -0
  123. package/docs/_posts/components/EnvironmentalEffects/Background.md +189 -0
  124. package/docs/_posts/components/EnvironmentalEffects/Fog.md +97 -0
  125. package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +40 -0
  126. package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +84 -0
  127. package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +142 -0
  128. package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +90 -0
  129. package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +91 -0
  130. package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +73 -0
  131. package/docs/_posts/components/EventUtilities/BooleanFilter.md +62 -0
  132. package/docs/_posts/components/EventUtilities/BooleanSequencer.md +86 -0
  133. package/docs/_posts/components/EventUtilities/BooleanToggle.md +46 -0
  134. package/docs/_posts/components/EventUtilities/BooleanTrigger.md +47 -0
  135. package/docs/_posts/components/EventUtilities/IntegerSequencer.md +90 -0
  136. package/docs/_posts/components/EventUtilities/IntegerTrigger.md +51 -0
  137. package/docs/_posts/components/EventUtilities/TimeTrigger.md +47 -0
  138. package/docs/_posts/components/Followers/ColorChaser.md +77 -0
  139. package/docs/_posts/components/Followers/ColorDamper.md +85 -0
  140. package/docs/_posts/components/Followers/CoordinateChaser.md +76 -0
  141. package/docs/_posts/components/Followers/CoordinateDamper.md +80 -0
  142. package/docs/_posts/components/Followers/OrientationChaser.md +72 -0
  143. package/docs/_posts/components/Followers/OrientationDamper.md +80 -0
  144. package/docs/_posts/components/Followers/PositionChaser.md +72 -0
  145. package/docs/_posts/components/Followers/PositionChaser2D.md +72 -0
  146. package/docs/_posts/components/Followers/PositionDamper.md +80 -0
  147. package/docs/_posts/components/Followers/PositionDamper2D.md +80 -0
  148. package/docs/_posts/components/Followers/ScalarChaser.md +76 -0
  149. package/docs/_posts/components/Followers/ScalarDamper.md +80 -0
  150. package/docs/_posts/components/Followers/TexCoordChaser2D.md +72 -0
  151. package/docs/_posts/components/Followers/TexCoordDamper2D.md +80 -0
  152. package/docs/_posts/components/Geometry2D/Arc2D.md +71 -0
  153. package/docs/_posts/components/Geometry2D/ArcClose2D.md +91 -0
  154. package/docs/_posts/components/Geometry2D/Circle2D.md +55 -0
  155. package/docs/_posts/components/Geometry2D/Disk2D.md +75 -0
  156. package/docs/_posts/components/Geometry2D/Polyline2D.md +54 -0
  157. package/docs/_posts/components/Geometry2D/Polypoint2D.md +54 -0
  158. package/docs/_posts/components/Geometry2D/Rectangle2D.md +66 -0
  159. package/docs/_posts/components/Geometry2D/TriangleSet2D.md +66 -0
  160. package/docs/_posts/components/Geometry3D/Box.md +66 -0
  161. package/docs/_posts/components/Geometry3D/Cone.md +90 -0
  162. package/docs/_posts/components/Geometry3D/Cylinder.md +98 -0
  163. package/docs/_posts/components/Geometry3D/ElevationGrid.md +162 -0
  164. package/docs/_posts/components/Geometry3D/Extrusion.md +170 -0
  165. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +208 -0
  166. package/docs/_posts/components/Geometry3D/Sphere.md +66 -0
  167. package/docs/_posts/components/Geospatial/GeoCoordinate.md +65 -0
  168. package/docs/_posts/components/Geospatial/GeoElevationGrid.md +180 -0
  169. package/docs/_posts/components/Geospatial/GeoLOD.md +128 -0
  170. package/docs/_posts/components/Geospatial/GeoLocation.md +93 -0
  171. package/docs/_posts/components/Geospatial/GeoMetadata.md +75 -0
  172. package/docs/_posts/components/Geospatial/GeoOrigin.md +69 -0
  173. package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +95 -0
  174. package/docs/_posts/components/Geospatial/GeoProximitySensor.md +109 -0
  175. package/docs/_posts/components/Geospatial/GeoTouchSensor.md +108 -0
  176. package/docs/_posts/components/Geospatial/GeoTransform.md +121 -0
  177. package/docs/_posts/components/Geospatial/GeoViewpoint.md +126 -0
  178. package/docs/_posts/components/Grouping/Group.md +75 -0
  179. package/docs/_posts/components/Grouping/StaticGroup.md +65 -0
  180. package/docs/_posts/components/Grouping/Switch.md +89 -0
  181. package/docs/_posts/components/Grouping/Transform.md +126 -0
  182. package/docs/_posts/components/HAnim/HAnimDisplacer.md +89 -0
  183. package/docs/_posts/components/HAnim/HAnimHumanoid.md +136 -0
  184. package/docs/_posts/components/HAnim/HAnimJoint.md +165 -0
  185. package/docs/_posts/components/HAnim/HAnimMotion.md +68 -0
  186. package/docs/_posts/components/HAnim/HAnimSegment.md +107 -0
  187. package/docs/_posts/components/HAnim/HAnimSite.md +108 -0
  188. package/docs/_posts/components/Interpolation/ColorInterpolator.md +73 -0
  189. package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +76 -0
  190. package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +73 -0
  191. package/docs/_posts/components/Interpolation/EaseInEaseOut.md +67 -0
  192. package/docs/_posts/components/Interpolation/NormalInterpolator.md +68 -0
  193. package/docs/_posts/components/Interpolation/OrientationInterpolator.md +72 -0
  194. package/docs/_posts/components/Interpolation/PositionInterpolator.md +72 -0
  195. package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +77 -0
  196. package/docs/_posts/components/Interpolation/ScalarInterpolator.md +76 -0
  197. package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +93 -0
  198. package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +93 -0
  199. package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +106 -0
  200. package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +78 -0
  201. package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +78 -0
  202. package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +70 -0
  203. package/docs/_posts/components/Layering/Layer.md +67 -0
  204. package/docs/_posts/components/Layering/LayerSet.md +78 -0
  205. package/docs/_posts/components/Layering/Viewport.md +80 -0
  206. package/docs/_posts/components/Layout/Layout.md +107 -0
  207. package/docs/_posts/components/Layout/LayoutGroup.md +85 -0
  208. package/docs/_posts/components/Layout/LayoutLayer.md +74 -0
  209. package/docs/_posts/components/Layout/ScreenFontStyle.md +137 -0
  210. package/docs/_posts/components/Layout/ScreenGroup.md +71 -0
  211. package/docs/_posts/components/Lighting/DirectionalLight.md +100 -0
  212. package/docs/_posts/components/Lighting/EnvironmentLight.md +91 -0
  213. package/docs/_posts/components/Lighting/PointLight.md +103 -0
  214. package/docs/_posts/components/Lighting/SpotLight.md +132 -0
  215. package/docs/_posts/components/NURBS/Contour2D.md +57 -0
  216. package/docs/_posts/components/NURBS/ContourPolyline2D.md +46 -0
  217. package/docs/_posts/components/NURBS/CoordinateDouble.md +47 -0
  218. package/docs/_posts/components/NURBS/NurbsCurve.md +71 -0
  219. package/docs/_posts/components/NURBS/NurbsCurve2D.md +66 -0
  220. package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +70 -0
  221. package/docs/_posts/components/NURBS/NurbsPatchSurface.md +106 -0
  222. package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +70 -0
  223. package/docs/_posts/components/NURBS/NurbsSet.md +66 -0
  224. package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +90 -0
  225. package/docs/_posts/components/NURBS/NurbsSweptSurface.md +69 -0
  226. package/docs/_posts/components/NURBS/NurbsSwungSurface.md +65 -0
  227. package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +77 -0
  228. package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +114 -0
  229. package/docs/_posts/components/Navigation/Billboard.md +88 -0
  230. package/docs/_posts/components/Navigation/Collision.md +102 -0
  231. package/docs/_posts/components/Navigation/LOD.md +99 -0
  232. package/docs/_posts/components/Navigation/NavigationInfo.md +122 -0
  233. package/docs/_posts/components/Navigation/OrthoViewpoint.md +117 -0
  234. package/docs/_posts/components/Navigation/Viewpoint.md +117 -0
  235. package/docs/_posts/components/Navigation/ViewpointGroup.md +80 -0
  236. package/docs/_posts/components/Networking/Anchor.md +111 -0
  237. package/docs/_posts/components/Networking/Inline.md +115 -0
  238. package/docs/_posts/components/Networking/LoadSensor.md +91 -0
  239. package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +54 -0
  240. package/docs/_posts/components/ParticleSystems/ConeEmitter.md +76 -0
  241. package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +72 -0
  242. package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +58 -0
  243. package/docs/_posts/components/ParticleSystems/ParticleSystem.md +177 -0
  244. package/docs/_posts/components/ParticleSystems/PointEmitter.md +76 -0
  245. package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +94 -0
  246. package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +90 -0
  247. package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +90 -0
  248. package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +68 -0
  249. package/docs/_posts/components/Picking/LinePickSensor.md +125 -0
  250. package/docs/_posts/components/Picking/PickableGroup.md +93 -0
  251. package/docs/_posts/components/Picking/PointPickSensor.md +112 -0
  252. package/docs/_posts/components/Picking/PrimitivePickSensor.md +114 -0
  253. package/docs/_posts/components/Picking/VolumePickSensor.md +107 -0
  254. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +122 -0
  255. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +114 -0
  256. package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +89 -0
  257. package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +87 -0
  258. package/docs/_posts/components/Rendering/ClipPlane.md +67 -0
  259. package/docs/_posts/components/Rendering/Color.md +56 -0
  260. package/docs/_posts/components/Rendering/ColorRGBA.md +61 -0
  261. package/docs/_posts/components/Rendering/Coordinate.md +45 -0
  262. package/docs/_posts/components/Rendering/IndexedLineSet.md +128 -0
  263. package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +128 -0
  264. package/docs/_posts/components/Rendering/IndexedTriangleSet.md +128 -0
  265. package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +116 -0
  266. package/docs/_posts/components/Rendering/LineSet.md +85 -0
  267. package/docs/_posts/components/Rendering/Normal.md +41 -0
  268. package/docs/_posts/components/Rendering/PointSet.md +76 -0
  269. package/docs/_posts/components/Rendering/TriangleFanSet.md +112 -0
  270. package/docs/_posts/components/Rendering/TriangleSet.md +108 -0
  271. package/docs/_posts/components/Rendering/TriangleStripSet.md +116 -0
  272. package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +78 -0
  273. package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +75 -0
  274. package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +83 -0
  275. package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +90 -0
  276. package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +65 -0
  277. package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +70 -0
  278. package/docs/_posts/components/RigidBodyPhysics/Contact.md +117 -0
  279. package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +162 -0
  280. package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +183 -0
  281. package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +175 -0
  282. package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +120 -0
  283. package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +108 -0
  284. package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +106 -0
  285. package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +119 -0
  286. package/docs/_posts/components/Scripting/Script.md +81 -0
  287. package/docs/_posts/components/Shaders/ComposedShader.md +81 -0
  288. package/docs/_posts/components/Shaders/FloatVertexAttribute.md +65 -0
  289. package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +53 -0
  290. package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +53 -0
  291. package/docs/_posts/components/Shaders/PackagedShader.md +77 -0
  292. package/docs/_posts/components/Shaders/ProgramShader.md +71 -0
  293. package/docs/_posts/components/Shaders/ShaderPart.md +76 -0
  294. package/docs/_posts/components/Shaders/ShaderProgram.md +68 -0
  295. package/docs/_posts/components/Shape/AcousticProperties.md +52 -0
  296. package/docs/_posts/components/Shape/Appearance.md +123 -0
  297. package/docs/_posts/components/Shape/FillProperties.md +67 -0
  298. package/docs/_posts/components/Shape/LineProperties.md +63 -0
  299. package/docs/_posts/components/Shape/Material.md +217 -0
  300. package/docs/_posts/components/Shape/PhysicalMaterial.md +173 -0
  301. package/docs/_posts/components/Shape/PointProperties.md +84 -0
  302. package/docs/_posts/components/Shape/Shape.md +63 -0
  303. package/docs/_posts/components/Shape/TwoSidedMaterial.md +149 -0
  304. package/docs/_posts/components/Shape/UnlitMaterial.md +115 -0
  305. package/docs/_posts/components/Sound/Analyser.md +72 -0
  306. package/docs/_posts/components/Sound/AudioClip.md +139 -0
  307. package/docs/_posts/components/Sound/AudioDestination.md +52 -0
  308. package/docs/_posts/components/Sound/BiquadFilter.md +70 -0
  309. package/docs/_posts/components/Sound/BufferAudioSource.md +86 -0
  310. package/docs/_posts/components/Sound/ChannelMerger.md +46 -0
  311. package/docs/_posts/components/Sound/ChannelSelector.md +48 -0
  312. package/docs/_posts/components/Sound/ChannelSplitter.md +48 -0
  313. package/docs/_posts/components/Sound/Convolver.md +66 -0
  314. package/docs/_posts/components/Sound/Delay.md +66 -0
  315. package/docs/_posts/components/Sound/DynamicsCompressor.md +74 -0
  316. package/docs/_posts/components/Sound/Gain.md +62 -0
  317. package/docs/_posts/components/Sound/ListenerPointSource.md +62 -0
  318. package/docs/_posts/components/Sound/MicrophoneSource.md +54 -0
  319. package/docs/_posts/components/Sound/OscillatorSource.md +58 -0
  320. package/docs/_posts/components/Sound/PeriodicWave.md +42 -0
  321. package/docs/_posts/components/Sound/Sound.md +92 -0
  322. package/docs/_posts/components/Sound/SpatialSound.md +68 -0
  323. package/docs/_posts/components/Sound/StreamAudioDestination.md +52 -0
  324. package/docs/_posts/components/Sound/StreamAudioSource.md +54 -0
  325. package/docs/_posts/components/Sound/WaveShaper.md +66 -0
  326. package/docs/_posts/components/Text/FontStyle.md +145 -0
  327. package/docs/_posts/components/Text/Text.md +102 -0
  328. package/docs/_posts/components/TextureProjector/TextureProjector.md +52 -0
  329. package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +52 -0
  330. package/docs/_posts/components/Texturing/ImageTexture.md +134 -0
  331. package/docs/_posts/components/Texturing/MovieTexture.md +221 -0
  332. package/docs/_posts/components/Texturing/MultiTexture.md +100 -0
  333. package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +47 -0
  334. package/docs/_posts/components/Texturing/MultiTextureTransform.md +47 -0
  335. package/docs/_posts/components/Texturing/PixelTexture.md +80 -0
  336. package/docs/_posts/components/Texturing/TextureCoordinate.md +52 -0
  337. package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +64 -0
  338. package/docs/_posts/components/Texturing/TextureProperties.md +137 -0
  339. package/docs/_posts/components/Texturing/TextureTransform.md +73 -0
  340. package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +76 -0
  341. package/docs/_posts/components/Texturing3D/ImageTexture3D.md +132 -0
  342. package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +131 -0
  343. package/docs/_posts/components/Texturing3D/PixelTexture3D.md +75 -0
  344. package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +53 -0
  345. package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +52 -0
  346. package/docs/_posts/components/Texturing3D/TextureTransform3D.md +69 -0
  347. package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +57 -0
  348. package/docs/_posts/components/Time/TimeSensor.md +136 -0
  349. package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +92 -0
  350. package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +53 -0
  351. package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +83 -0
  352. package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +51 -0
  353. package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +67 -0
  354. package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +99 -0
  355. package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +51 -0
  356. package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +48 -0
  357. package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +80 -0
  358. package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +75 -0
  359. package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +63 -0
  360. package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +71 -0
  361. package/docs/_posts/components/VolumeRendering/VolumeData.md +71 -0
  362. package/docs/_posts/components/X_ITE/BlendMode.md +94 -0
  363. package/docs/_posts/custom-shaders.md +9 -4
  364. package/docs/_posts/dom-integration.md +1 -6
  365. package/docs/_posts/features.md +2 -2
  366. package/docs/_posts/getting-started.md +100 -57
  367. package/docs/_posts/glossary.md +1 -1
  368. package/docs/_posts/how-to-configure-your-web-server.md +1 -1
  369. package/docs/_posts/reference/browser-services.md +78 -18
  370. package/docs/_posts/reference/constants-services.md +1 -1
  371. package/docs/_posts/reference/ecmascript-object-and-function-definitions.md +1 -1
  372. package/docs/_posts/reference/field-services-and-objects.md +8 -8
  373. package/docs/_posts/reference/prototype-services.md +7 -7
  374. package/docs/_posts/reference/route-services.md +1 -1
  375. package/docs/_posts/reference/scene-services.md +5 -5
  376. package/docs/_posts/reference/script-node-authoring-interface.md +1 -1
  377. package/docs/_posts/report-a-bug.md +1 -1
  378. package/docs/_posts/setup-a-localhost-server.md +5 -1
  379. package/docs/_posts/supported-nodes.md +239 -238
  380. package/docs/_posts/tutorials/adding-backgrounds.md +3 -3
  381. package/docs/_posts/tutorials/adding-fog.md +2 -2
  382. package/docs/_posts/tutorials/adding-sound.md +19 -19
  383. package/docs/_posts/tutorials/animating-transforms.md +17 -17
  384. package/docs/_posts/tutorials/basic-nodes.md +30 -30
  385. package/docs/_posts/tutorials/building-a-x3d-world.md +3 -3
  386. package/docs/_posts/tutorials/building-elevation-grids.md +7 -7
  387. package/docs/_posts/tutorials/building-extruded-shapes.md +7 -7
  388. package/docs/_posts/tutorials/building-primitive-shapes.md +13 -13
  389. package/docs/_posts/tutorials/building-shapes-out-of-points-lines-and-faces.md +21 -21
  390. package/docs/_posts/tutorials/controlling-appearance-with-materials.md +7 -7
  391. package/docs/_posts/tutorials/controlling-color-on-coordinate-based-geometry.md +11 -11
  392. package/docs/_posts/tutorials/controlling-detail.md +4 -4
  393. package/docs/_posts/tutorials/controlling-how-textures-are-mapped.md +7 -7
  394. package/docs/_posts/tutorials/controlling-navigation.md +3 -3
  395. package/docs/_posts/tutorials/controlling-shading-on-coordinate-based-geometry.md +13 -13
  396. package/docs/_posts/tutorials/controlling-the-viewpoint.md +3 -3
  397. package/docs/_posts/tutorials/creating-new-node-types.md +4 -4
  398. package/docs/_posts/tutorials/grouping-nodes.md +13 -13
  399. package/docs/_posts/tutorials/hello-world.md +1 -1
  400. package/docs/_posts/tutorials/improving-performance.md +1 -1
  401. package/docs/_posts/tutorials/increasing-rendering-speed.md +1 -1
  402. package/docs/_posts/tutorials/introducing-animation.md +10 -10
  403. package/docs/_posts/tutorials/introducing-script-use.md +3 -3
  404. package/docs/_posts/tutorials/introducing-x3d.md +1 -1
  405. package/docs/_posts/tutorials/lighting-your-world.md +4 -4
  406. package/docs/_posts/tutorials/mapping-textures.md +7 -7
  407. package/docs/_posts/tutorials/naming-nodes.md +1 -1
  408. package/docs/_posts/tutorials/overview.md +1 -1
  409. package/docs/_posts/tutorials/providing-information-about-your-world.md +2 -2
  410. package/docs/_posts/tutorials/sensing-the-viewer.md +15 -15
  411. package/docs/_posts/tutorials/sensing-viewer-actions.md +10 -10
  412. package/docs/_posts/tutorials/transforming-shapes.md +4 -4
  413. package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +5 -5
  414. package/docs/_posts/what's-new.md +40 -2
  415. package/docs/_tabs/components.md +383 -0
  416. package/docs/_tabs/imprint.md +1 -1
  417. package/docs/_tabs/laboratory.md +38 -6
  418. package/docs/_tabs/playground.html +22 -66
  419. package/docs/_tabs/reference.md +2 -1
  420. package/docs/_tabs/tags.md +1 -1
  421. package/docs/_tabs/tutorials.md +1 -1
  422. package/docs/assets/X3D/Michroma-Regular.ttf +0 -0
  423. package/docs/assets/X3D/peakpx.jpg +0 -0
  424. package/docs/assets/X3D/teaser.x3d +55 -0
  425. package/docs/assets/css/style.scss +120 -11
  426. package/docs/assets/img/laboratory/blend-mode.png +0 -0
  427. package/docs/assets/img/laboratory/dicom-nrrd.png +0 -0
  428. package/docs/assets/img/laboratory/earthquake.png +0 -0
  429. package/docs/assets/img/laboratory/gltf.png +0 -0
  430. package/docs/assets/img/laboratory/l-system.png +0 -0
  431. package/docs/assets/js/autoupdate.js +25 -0
  432. package/docs/laboratory/gltf-sample-viewer.html +318 -0
  433. package/docs/laboratory/x3d-visual-blend-mode-editor.html +1 -0
  434. package/package.json +9 -2
  435. package/src/assets/components/Texturing3D.js +5 -3
  436. package/src/assets/shaders/Types.glsl.js +5 -5
  437. package/src/assets/shaders/webgl1/PBR.fs.js +1 -1
  438. package/src/assets/shaders/webgl1/include/Colors.glsl.js +5 -7
  439. package/src/assets/shaders/webgl1/include/Fragment.glsl.js +4 -0
  440. package/src/assets/shaders/webgl1/include/Hatch.glsl.js +1 -1
  441. package/src/assets/shaders/webgl1/include/Texture.glsl.js +3 -3
  442. package/src/assets/shaders/webgl2/include/Colors.glsl.js +5 -7
  443. package/src/assets/shaders/webgl2/include/Hatch.glsl.js +1 -1
  444. package/src/assets/shaders/webgl2/include/Particle.glsl.js +2 -2
  445. package/src/assets/shaders/webgl2/include/Texture.glsl.js +2 -2
  446. package/src/bookmarks.js +12 -8
  447. package/src/examples.js +3 -0
  448. package/src/lib/jquery.js +20 -0
  449. package/src/lib/libgif/libgif.js +1004 -0
  450. package/src/lib/libtess.js +1 -0
  451. package/src/lib/nurbs/extras/sample.js +5 -7
  452. package/src/standard/Math/Algorithms/Bezier.js +175 -33
  453. package/src/standard/Math/Geometry/Box2.js +15 -55
  454. package/src/standard/Math/Geometry/Box3.js +19 -66
  455. package/src/standard/Math/Geometry/Triangle3.js +14 -79
  456. package/src/standard/Math/Numbers/Color3.js +4 -0
  457. package/src/standard/Math/Numbers/Color4.js +4 -0
  458. package/src/standard/Math/Numbers/Matrix3.js +11 -3
  459. package/src/standard/Math/Numbers/Matrix4.js +9 -6
  460. package/src/standard/Math/Numbers/Rotation4.js +72 -65
  461. package/src/tests.js +3 -0
  462. package/src/x_ite/Base/X3DArrayField.js +0 -2
  463. package/src/x_ite/Base/X3DInfoArray.js +2 -2
  464. package/src/x_ite/Base/X3DObjectArrayField.js +19 -0
  465. package/src/x_ite/Base/X3DTypedArrayField.js +149 -0
  466. package/src/x_ite/Browser/Core/BrowserOptions.js +108 -64
  467. package/src/x_ite/Browser/Core/Context.js +1 -1
  468. package/src/x_ite/Browser/Core/ContextMenu.js +2 -2
  469. package/src/x_ite/Browser/Core/Notification.js +1 -1
  470. package/src/x_ite/Browser/Core/RenderingProperties.js +4 -0
  471. package/src/x_ite/Browser/Core/X3DCoreContext.js +99 -54
  472. package/src/x_ite/Browser/Navigation/ExamineViewer.js +4 -14
  473. package/src/x_ite/Browser/Navigation/LookAtViewer.js +3 -13
  474. package/src/x_ite/Browser/Navigation/PlaneViewer.js +3 -12
  475. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +25 -22
  476. package/src/x_ite/Browser/Navigation/X3DViewer.js +12 -3
  477. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +2 -2
  478. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +19 -15
  479. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +30 -10
  480. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +1 -1
  481. package/src/x_ite/Browser/Shape/X3DShapeContext.js +30 -3
  482. package/src/x_ite/Browser/Text/PolygonText.js +137 -134
  483. package/src/x_ite/Browser/Texturing/GifMedia.js +113 -0
  484. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +1 -6
  485. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +81 -310
  486. package/src/x_ite/Browser/VERSION.js +1 -1
  487. package/src/x_ite/Browser/X3DBrowser.js +162 -122
  488. package/src/x_ite/Browser/X3DBrowserContext.js +7 -5
  489. package/src/x_ite/Components/Core/WorldInfo.js +3 -3
  490. package/src/x_ite/Components/Core/X3DNode.js +7 -7
  491. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +1 -1
  492. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +2 -3
  493. package/src/x_ite/Components/Geometry3D/Extrusion.js +27 -23
  494. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +10 -19
  495. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +1 -3
  496. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +39 -15
  497. package/src/x_ite/Components/HAnim/HAnimJoint.js +6 -9
  498. package/src/x_ite/Components/Layering/X3DLayerNode.js +21 -2
  499. package/src/x_ite/Components/Layout/Layout.js +4 -2
  500. package/src/x_ite/Components/Layout/ScreenFontStyle.js +6 -0
  501. package/src/x_ite/Components/Lighting/DirectionalLight.js +4 -11
  502. package/src/x_ite/Components/Lighting/EnvironmentLight.js +1 -1
  503. package/src/x_ite/Components/Lighting/PointLight.js +4 -11
  504. package/src/x_ite/Components/Lighting/SpotLight.js +4 -11
  505. package/src/x_ite/Components/Lighting/X3DLightNode.js +7 -9
  506. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +2 -2
  507. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +14 -6
  508. package/src/x_ite/Components/Networking/Inline.js +48 -59
  509. package/src/x_ite/Components/Networking/X3DUrlObject.js +1 -1
  510. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +2 -2
  511. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +7 -13
  512. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +4 -2
  513. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +4 -2
  514. package/src/x_ite/Components/Scripting/Script.js +2 -2
  515. package/src/x_ite/Components/Shaders/ShaderPart.js +1 -1
  516. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +1 -3
  517. package/src/x_ite/Components/Shape/Appearance.js +27 -1
  518. package/src/x_ite/Components/Shape/FillProperties.js +1 -0
  519. package/src/x_ite/Components/Shape/LineProperties.js +15 -9
  520. package/src/x_ite/Components/Shape/Material.js +33 -22
  521. package/src/x_ite/Components/Shape/PhysicalMaterial.js +22 -15
  522. package/src/x_ite/Components/Shape/PointProperties.js +23 -7
  523. package/src/x_ite/Components/Shape/UnlitMaterial.js +3 -2
  524. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +25 -19
  525. package/src/x_ite/Components/Sound/AudioClip.js +5 -5
  526. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +26 -34
  527. package/src/x_ite/Components/Text/X3DFontStyleNode.js +1 -1
  528. package/src/x_ite/Components/TextureProjector/TextureProjector.js +4 -12
  529. package/src/x_ite/Components/TextureProjector/TextureProjectorParallel.js +6 -14
  530. package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +7 -7
  531. package/src/x_ite/Components/Texturing/ImageTexture.js +15 -10
  532. package/src/x_ite/Components/Texturing/MovieTexture.js +51 -11
  533. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +2 -2
  534. package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +230 -0
  535. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +12 -10
  536. package/src/x_ite/Execution/BindableList.js +35 -37
  537. package/src/x_ite/Execution/BindableStack.js +25 -7
  538. package/src/x_ite/Execution/X3DScene.js +2 -2
  539. package/src/x_ite/Execution/X3DWorld.js +1 -1
  540. package/src/x_ite/Fields/SFRotation.js +2 -1
  541. package/src/x_ite/Fields/SFString.js +1 -1
  542. package/src/x_ite/InputOutput/FileLoader.js +105 -236
  543. package/src/x_ite/InputOutput/Generator.js +12 -8
  544. package/src/x_ite/Parser/Expressions.js +85 -0
  545. package/src/x_ite/Parser/GLB2Parser.js +147 -0
  546. package/src/x_ite/Parser/GLTF2Parser.js +2221 -0
  547. package/src/x_ite/Parser/GoldenGate.js +64 -13
  548. package/src/x_ite/Parser/JSONParser.js +7 -36
  549. package/src/x_ite/Parser/OBJParser.js +1076 -0
  550. package/src/x_ite/Parser/STLAParser.js +376 -0
  551. package/src/x_ite/Parser/STLBParser.js +156 -0
  552. package/src/x_ite/Parser/SVGParser.js +2476 -0
  553. package/src/x_ite/Parser/VRMLParser.js +127 -183
  554. package/src/x_ite/Parser/X3DOptimizer.js +191 -0
  555. package/src/x_ite/Parser/X3DParser.js +34 -0
  556. package/src/x_ite/Parser/XMLParser.js +11 -109
  557. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +2 -2
  558. package/src/x_ite/Prototype/X3DProtoDeclaration.js +3 -3
  559. package/src/x_ite/Rendering/DependentRenderer.js +1 -1
  560. package/src/x_ite/Rendering/MultiSampleFrameBuffer.js +150 -0
  561. package/src/x_ite/Rendering/TextureBuffer.js +3 -5
  562. package/src/x_ite/Rendering/X3DRenderObject.js +2 -7
  563. package/src/x_ite/X3D.js +1 -0
  564. package/src/x_ite/X3DCanvas.js +10 -0
  565. package/src/x_ite.html +39 -17
  566. package/webpack.config.js +1 -0
  567. package/x_ite.min.html +38 -17
  568. package/src/standard/Networking/BinaryTransport.js +0 -116
@@ -71,32 +71,16 @@ BindableList .prototype = Object .assign (Object .create (X3DBaseNode .prototype
71
71
  },
72
72
  getBound: function (name)
73
73
  {
74
- if (this .array .length > 1)
75
- {
76
- const
77
- enableInlineBindables = false,
78
- mainScene = this .getMainScene ();
79
-
80
- if (name && name .length)
81
- {
82
- // Return first viewpoint with @name.
74
+ if (this .array .length === 1)
75
+ return this .array [0]; // Return default viewpoint.
83
76
 
84
- for (let i = 1, length = this .array .length; i < length; ++ i)
85
- {
86
- const
87
- node = this .array [i],
88
- outerNode = node .getExecutionContext () .getOuterNode (),
89
- scene = outerNode instanceof X3DPrototypeInstance ? outerNode .getScene () : node .getScene ();
90
-
91
- if (!enableInlineBindables && scene !== mainScene)
92
- continue;
93
-
94
- if (node .getName () == name)
95
- return node;
96
- }
97
- }
77
+ const
78
+ enableInlineBindables = false,
79
+ mainScene = this .getMainScene ();
98
80
 
99
- // Return first bound viewpoint in scene.
81
+ if (name)
82
+ {
83
+ // Return first viewpoint with @name.
100
84
 
101
85
  for (let i = 1, length = this .array .length; i < length; ++ i)
102
86
  {
@@ -108,29 +92,43 @@ BindableList .prototype = Object .assign (Object .create (X3DBaseNode .prototype
108
92
  if (!enableInlineBindables && scene !== mainScene)
109
93
  continue;
110
94
 
111
- if (node ._isBound .getValue ())
95
+ if (node .getName () == name)
112
96
  return node;
113
97
  }
98
+ }
114
99
 
115
- // Return first viewpoint in scene.
100
+ // Return first bound viewpoint in scene.
116
101
 
117
- for (let i = 1, length = this .array .length; i < length; ++ i)
118
- {
119
- const
120
- node = this .array [i],
121
- outerNode = node .getExecutionContext () .getOuterNode (),
122
- scene = outerNode instanceof X3DPrototypeInstance ? outerNode .getScene () : node .getScene ();
102
+ for (let i = 1, length = this .array .length; i < length; ++ i)
103
+ {
104
+ const
105
+ node = this .array [i],
106
+ outerNode = node .getExecutionContext () .getOuterNode (),
107
+ scene = outerNode instanceof X3DPrototypeInstance ? outerNode .getScene () : node .getScene ();
123
108
 
124
- if (!enableInlineBindables && scene !== mainScene)
125
- continue;
109
+ if (!enableInlineBindables && scene !== mainScene)
110
+ continue;
126
111
 
112
+ if (node ._isBound .getValue ())
127
113
  return node;
128
- }
129
114
  }
130
115
 
131
- // Return default viewpoint.
116
+ // Return first viewpoint in scene.
117
+
118
+ for (let i = 1, length = this .array .length; i < length; ++ i)
119
+ {
120
+ const
121
+ node = this .array [i],
122
+ outerNode = node .getExecutionContext () .getOuterNode (),
123
+ scene = outerNode instanceof X3DPrototypeInstance ? outerNode .getScene () : node .getScene ();
124
+
125
+ if (!enableInlineBindables && scene !== mainScene)
126
+ continue;
127
+
128
+ return node;
129
+ }
132
130
 
133
- return this .array [0];
131
+ return this .array [0]; // Return default viewpoint.
134
132
  },
135
133
  push: function (node)
136
134
  {
@@ -152,22 +152,40 @@ BindableStack .prototype = Object .assign (Object .create (X3DBaseNode .prototyp
152
152
 
153
153
  // Do transition, use transition node for multiple layers support.
154
154
 
155
- this .transitionNode = top .create (this .getExecutionContext ());
155
+ this .transitionNode .dispose ();
156
156
 
157
- this .transitionNode .setup ();
158
- this .transitionNode .transitionStart (layerNode, fromNode, top);
157
+ const transitionNode = this .transitionNode = top .create (this .getExecutionContext ());
159
158
 
160
- if (this .transitionNode ._transitionActive .getValue ())
161
- this .transitionNode ._transitionActive .addInterest ("set_transitionActive__", this);
159
+ transitionNode .setup ();
160
+ transitionNode .transitionStart (layerNode, fromNode, top);
161
+
162
+ if (transitionNode ._transitionActive .getValue ())
163
+ {
164
+ top ._position .addFieldInterest (transitionNode ._position);
165
+ top ._orientation .addFieldInterest (transitionNode ._orientation);
166
+ top ._centerOfRotation .addFieldInterest (transitionNode ._centerOfRotation);
167
+ top ._fieldOfView .addFieldInterest (transitionNode ._fieldOfView);
168
+ top ._nearDistance .addFieldInterest (transitionNode ._nearDistance);
169
+ top ._farDistance .addFieldInterest (transitionNode ._farDistance);
170
+
171
+ transitionNode ._transitionActive .addInterest ("set_transitionActive__", this, top, transitionNode);
172
+ }
162
173
 
163
174
  this .addNodeEvent ();
164
175
  },
165
- set_transitionActive__: function (transitionActive)
176
+ set_transitionActive__: function (top, transitionNode, transitionActive)
166
177
  {
167
178
  if (transitionActive .getValue ())
168
179
  return;
169
180
 
170
- this .transitionNode ._transitionActive .removeInterest ("set_transitionActive__", this);
181
+ top ._position .removeFieldInterest (transitionNode ._position);
182
+ top ._orientation .removeFieldInterest (transitionNode ._orientation);
183
+ top ._centerOfRotation .removeFieldInterest (transitionNode ._centerOfRotation);
184
+ top ._fieldOfView .removeFieldInterest (transitionNode ._fieldOfView);
185
+ top ._nearDistance .removeFieldInterest (transitionNode ._nearDistance);
186
+ top ._farDistance .removeFieldInterest (transitionNode ._farDistance);
187
+
188
+ transitionNode ._transitionActive .removeInterest ("set_transitionActive__", this);
171
189
 
172
190
  this .addNodeEvent ();
173
191
  },
@@ -299,7 +299,7 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
299
299
  },
300
300
  getMetaDatas: function ()
301
301
  {
302
- return this [_metadata];
302
+ return new Map (this [_metadata]);
303
303
  },
304
304
  addExportedNode: function (exportedName, node)
305
305
  {
@@ -918,7 +918,7 @@ X3DScene .prototype = Object .assign (Object .create (X3DExecutionContext .proto
918
918
 
919
919
  this .getExportedNodes () .toJSONStream (generator, true);
920
920
 
921
- generator .string = generator .string .replace (/,(\s*)$/s, "$1");
921
+ generator .JSONRemoveComma ();
922
922
 
923
923
  generator .LeaveScope ();
924
924
  generator .PopExecutionContext ();
@@ -96,7 +96,7 @@ X3DWorld .prototype = Object .assign (Object .create (X3DBaseNode .prototype),
96
96
  },
97
97
  getCache: function ()
98
98
  {
99
- return true;
99
+ return this .getBrowser () .getBrowserOption ("Cache");
100
100
  },
101
101
  getLayerSet: function ()
102
102
  {
@@ -49,6 +49,7 @@ import X3DField from "../Base/X3DField.js";
49
49
  import SFVec3 from "./SFVec3.js";
50
50
  import SFMatrix3 from "./SFMatrix3.js";
51
51
  import X3DConstants from "../Base/X3DConstants.js";
52
+ import Vector3 from "../../standard/Math/Numbers/Vector3.js";
52
53
  import Rotation4 from "../../standard/Math/Numbers/Rotation4.js";
53
54
  import Matrix3 from "../../standard/Math/Numbers/Matrix3.js";
54
55
 
@@ -125,7 +126,7 @@ SFRotation .prototype = Object .assign (Object .create (X3DField .prototype),
125
126
  },
126
127
  getAxis: function ()
127
128
  {
128
- return new SFVec3f (this .getValue () .getAxis () .copy ());
129
+ return new SFVec3f (this .getValue () .getAxis (new Vector3 (0, 0, 0)));
129
130
  },
130
131
  setMatrix: function (matrix)
131
132
  {
@@ -49,7 +49,7 @@ import X3DField from "../Base/X3DField.js";
49
49
  import X3DConstants from "../Base/X3DConstants.js";
50
50
 
51
51
  const
52
- unescape = /\\(.)/g,
52
+ unescape = /\\([\\"])/g,
53
53
  escape = /([\\"])/g;
54
54
 
55
55
  function SFString (value)
@@ -45,19 +45,15 @@
45
45
  *
46
46
  ******************************************************************************/
47
47
 
48
- import X3DObject from "../Base/X3DObject.js";
49
- import Fields from "../Fields.js";
50
- import GoldenGate from "../Parser/GoldenGate.js";
51
- import X3DWorld from "../Execution/X3DWorld.js";
52
- import BinaryTransport from "../../standard/Networking/BinaryTransport.js";
53
- import DEBUG from "../DEBUG.js";
54
-
55
- BinaryTransport ($);
48
+ import X3DObject from "../Base/X3DObject.js";
49
+ import Fields from "../Fields.js";
50
+ import GoldenGate from "../Parser/GoldenGate.js";
51
+ import X3DWorld from "../Execution/X3DWorld.js";
52
+ import DEBUG from "../DEBUG.js";
56
53
 
57
54
  const
58
- ECMAScript = /^\s*(?:vrmlscript|javascript|ecmascript)\:(.*)$/s,
59
- dataURL = /^data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,(.*)$/s,
60
- contentTypeRx = /^(?:(.*?);(.*?)$)/;
55
+ ECMAScript = /^\s*(?:vrmlscript|javascript|ecmascript)\:(.*)$/s,
56
+ dataURL = /^data:(.*?)(?:;charset=(.*?))?(?:;(base64))?,(.*)$/s;
61
57
 
62
58
  const foreignExtensions = new RegExp ("\.(?:html|xhtml)$");
63
59
 
@@ -81,7 +77,6 @@ function FileLoader (node, external)
81
77
  this .url = [ ];
82
78
  this .URL = new URL (this .getReferer (), this .getReferer ());
83
79
  this .fileReader = new FileReader ();
84
- this .text = true;
85
80
  }
86
81
 
87
82
  FileLoader .prototype = Object .assign (Object .create (X3DObject .prototype),
@@ -101,6 +96,31 @@ FileLoader .prototype = Object .assign (Object .create (X3DObject .prototype),
101
96
  {
102
97
  return this .URL;
103
98
  },
99
+ getReferer: function ()
100
+ {
101
+ if (this .node .getTypeName () === "X3DWorld")
102
+ {
103
+ if (this .external)
104
+ return this .browser .getLocation ();
105
+ }
106
+
107
+ return this .executionContext .getWorldURL ();
108
+ },
109
+ getTarget: function (parameters)
110
+ {
111
+ for (const parameter of parameters)
112
+ {
113
+ const pair = parameter .split ("=");
114
+
115
+ if (pair .length !== 2)
116
+ continue;
117
+
118
+ if (pair [0] === "target")
119
+ return pair [1];
120
+ }
121
+
122
+ return "";
123
+ },
104
124
  createX3DFromString: function (worldURL, string = "", success, error)
105
125
  {
106
126
  try
@@ -167,10 +187,7 @@ FileLoader .prototype = Object .assign (Object .create (X3DObject .prototype),
167
187
  this .foreign = foreign;
168
188
  this .target = this .getTarget (parameter || defaultParameter);
169
189
 
170
- if (callback)
171
- return this .loadDocument (url, this .createX3DFromURLAsync .bind (this, callback));
172
-
173
- return this .createX3DFromURLSync (url);
190
+ return this .loadDocument (url, this .createX3DFromURLAsync .bind (this, callback));
174
191
  },
175
192
  createX3DFromURLAsync: function (callback, data)
176
193
  {
@@ -179,242 +196,111 @@ FileLoader .prototype = Object .assign (Object .create (X3DObject .prototype),
179
196
  else
180
197
  this .createX3DFromString (this .URL, data, callback, this .loadDocumentError .bind (this));
181
198
  },
182
- createX3DFromURLSync: function (urls)
183
- {
184
- if (urls .length === 0)
185
- throw new Error ("No URL given.");
186
-
187
- let
188
- scene = null,
189
- success = false;
190
-
191
- for (const url of urls)
192
- {
193
- this .URL = new URL (url, this .getReferer ());
194
-
195
- $.ajax ({
196
- url: decodeURI (this .URL .href),
197
- dataType: "text",
198
- async: false,
199
- cache: this .browser .getBrowserOptions () .getCache () && this .node .getCache (),
200
- //timeout: 15000,
201
- global: false,
202
- context: this,
203
- success: function (data)
204
- {
205
- try
206
- {
207
- scene = this .createX3DFromString (this .URL, data);
208
- success = true;
209
- }
210
- catch (exception)
211
- {
212
- this .error (exception);
213
- }
214
- },
215
- error: function (jqXHR, textStatus, errorThrown)
216
- {
217
- //console .warn ("Couldn't load URL '" + this .URL .href + "': " + errorThrown + ".");
218
- },
219
- });
220
-
221
- if (success)
222
- return scene;
223
- }
224
-
225
- throw new Error ("Couldn't load any url of '" + Array .prototype .join .call (urls, ", ") + "'.");
226
- },
227
- loadScript: function (url, callback)
228
- {
229
- this .script = true;
230
-
231
- this .loadDocument (url, callback);
232
- },
233
199
  loadDocument: function (url, callback)
234
200
  {
235
- this .url = url .copy ();
236
- this .callback = callback;
201
+ this .url = url .copy ();
202
+ this .callback = callback;
237
203
 
238
204
  if (url .length === 0)
239
205
  return this .loadDocumentError (new Error ("No URL given."));
240
206
 
241
- this .loadDocumentAsync (this .url .shift ());
207
+ this .loadDocumentAsync (this .url .shift ())
208
+ .catch (this .loadDocumentError .bind (this));
242
209
  },
243
- loadBinaryDocument: function (url, callback)
210
+ loadDocumentAsync: async function (url)
244
211
  {
245
- this .url = url .copy ();
246
- this .callback = callback;
247
- this .text = false;
248
-
249
212
  if (url .length === 0)
250
- return this .loadDocumentError (new Error ("No URL given."));
251
-
252
- this .loadDocumentAsync (this .url .shift ());
253
- },
254
- getTarget: function (parameters)
255
- {
256
- for (const parameter of parameters)
257
213
  {
258
- const pair = parameter .split ("=");
259
-
260
- if (pair .length !== 2)
261
- continue;
262
-
263
- if (pair [0] === "target")
264
- return pair [1];
214
+ this .loadDocumentError (new Error ("URL is empty."));
215
+ return;
265
216
  }
266
217
 
267
- return "";
268
- },
269
- loadDocumentAsync: function (url)
270
- {
271
- try
218
+ // Script
272
219
  {
273
- if (url .length === 0)
220
+ const result = ECMAScript .exec (url);
221
+
222
+ if (result)
274
223
  {
275
- this .loadDocumentError (new Error ("URL is empty."));
224
+ this .callback (result [1]);
276
225
  return;
277
226
  }
227
+ }
278
228
 
279
- // Script
229
+ // Data URL
230
+ {
231
+ const result = dataURL .exec (url);
280
232
 
281
- if (this .script)
233
+ if (result)
282
234
  {
283
- const result = ECMAScript .exec (url);
284
-
285
- if (result)
286
- {
287
- this .callback (result [1]);
288
- return;
289
- }
290
- }
235
+ //const mimeType = result [1];
291
236
 
292
- // Test for data URL here.
237
+ // ??? If called from loadURL and mime type is text/html do a window.open or window.location=URL and return; ???
293
238
 
294
- {
295
- const result = dataURL .exec (url);
239
+ let data = result [4];
296
240
 
297
- if (result)
298
- {
299
- //const mimeType = result [1];
241
+ if (result [3] === "base64")
242
+ data = atob (data);
243
+ else
244
+ data = unescape (data);
300
245
 
301
- // ??? If called from loadURL and mime type is text/html do a window.open or window.location=URL and return; ???
246
+ this .callback (data);
247
+ return;
248
+ }
249
+ }
302
250
 
303
- let data = result [4];
251
+ this .URL = new URL (url, this .getReferer ());
304
252
 
305
- if (result [3] === "base64")
306
- data = atob (data);
307
- else
308
- data = unescape (data);
253
+ if (this .bindViewpoint)
254
+ {
255
+ const referer = new URL (this .getReferer ());
309
256
 
310
- this .callback (data);
311
- return;
312
- }
257
+ if (this .URL .protocol === referer .protocol &&
258
+ this .URL .hostname === referer .hostname &&
259
+ this .URL .port === referer .port &&
260
+ this .URL .pathname === referer .pathname &&
261
+ this .URL .hash)
262
+ {
263
+ this .bindViewpoint (decodeURIComponent (this .URL .hash .substr (1)));
264
+ return;
313
265
  }
266
+ }
314
267
 
315
- this .URL = new URL (url, this .getReferer ());
268
+ if (this .foreign)
269
+ {
270
+ // Handle target
316
271
 
317
- if (this .bindViewpoint)
318
- {
319
- if (this .URL .href .substr (0, this .getReferer () .length) === this .getReferer ())
320
- {
321
- this .bindViewpoint (decodeURIComponent (this .URL .hash .substr (1)));
322
- return;
323
- }
324
- }
272
+ if (this .target .length && this .target !== "_self")
273
+ return this .foreign (this .URL .href, this .target);
325
274
 
326
- if (this .foreign)
327
- {
328
- // Handle target
275
+ // Handle well known foreign content depending on extension or if path looks like directory.
329
276
 
330
- if (this .target .length && this .target !== "_self")
331
- return this .foreign (this .URL .href, this .target);
277
+ if (this .URL .href .match (foreignExtensions))
278
+ return this .foreign (this .URL .href, this .target);
279
+ }
332
280
 
333
- // Handle well known foreign content depending on extension or if path looks like directory.
281
+ // Load URL async
334
282
 
335
- if (this .URL .href .match (foreignExtensions))
336
- return this .foreign (this .URL .href, this .target);
337
- }
283
+ const
284
+ options = { cache: this .node .getCache () ? "default" : "reload" },
285
+ response = this .handleErrors (await fetch (decodeURI (this .URL .href), options)),
286
+ contentType = response .headers .get ("content-type");
338
287
 
339
- // Load URL async
340
-
341
- $.ajax ({
342
- url: decodeURI (this .URL .href),
343
- dataType: "binary",
344
- async: true,
345
- cache: this .browser .getBrowserOptions () .getCache () && this .node .getCache (),
346
- //timeout: 15000,
347
- global: false,
348
- context: this,
349
- success: function (blob, status, xhr)
350
- {
351
- if (this .foreign)
352
- {
353
- //console .log (this .getContentType (xhr));
354
-
355
- if (foreign [this .getContentType (xhr)])
356
- return this .foreign (this .URL .href, this .target);
357
- }
358
-
359
- if (this .text)
360
- {
361
- this .fileReader .onload = this .readAsArrayBuffer .bind (this, blob);
362
-
363
- this .fileReader .readAsArrayBuffer (blob);
364
- }
365
- else
366
- {
367
- this .fileReader .onload = this .readAsBinaryString .bind (this);
368
-
369
- this .fileReader .readAsBinaryString (blob);
370
- }
371
- },
372
- error: function (xhr, textStatus, exception)
373
- {
374
- this .loadDocumentError (new Error (exception));
375
- },
376
- });
377
- }
378
- catch (exception)
379
- {
380
- this .loadDocumentError (exception);
381
- return;
382
- }
383
- },
384
- readAsArrayBuffer: function (blob)
385
- {
386
- try
387
- {
388
- this .callback (pako .ungzip (this .fileReader .result, { to: "string" }), this .URL);
389
- }
390
- catch (exception)
288
+ if (this .foreign)
391
289
  {
392
- this .fileReader .onload = this .readAsText .bind (this, blob);
290
+ //console .log (contentType);
393
291
 
394
- this .fileReader .readAsText (blob);
395
- }
396
- },
397
- readAsText: function (blob)
398
- {
399
- try
400
- {
401
- this .callback (this .fileReader .result, this .URL);
402
- }
403
- catch (exception)
404
- {
405
- this .loadDocumentError (exception);
292
+ if (foreign [contentType])
293
+ return this .foreign (this .URL .href, this .target);
406
294
  }
295
+
296
+ this .callback ($.ungzip (await response .arrayBuffer ()), this .URL);
407
297
  },
408
- readAsBinaryString: function ()
298
+ handleErrors: function (response)
409
299
  {
410
- try
411
- {
412
- this .callback (this .fileReader .result, this .URL);
413
- }
414
- catch (exception)
415
- {
416
- this .loadDocumentError (exception);
417
- }
300
+ if (!response .ok)
301
+ throw Error (response .statusText || response .status);
302
+
303
+ return response;
418
304
  },
419
305
  loadDocumentError: function (exception)
420
306
  {
@@ -425,10 +311,14 @@ FileLoader .prototype = Object .assign (Object .create (X3DObject .prototype),
425
311
  // Try to load next URL.
426
312
 
427
313
  if (this .url .length)
428
- this .loadDocumentAsync (this .url .shift ());
429
-
314
+ {
315
+ this .loadDocumentAsync (this .url .shift ())
316
+ .catch (this .loadDocumentError .bind (this));
317
+ }
430
318
  else
319
+ {
431
320
  this .callback (null);
321
+ }
432
322
  },
433
323
  error: function (exception)
434
324
  {
@@ -440,27 +330,6 @@ FileLoader .prototype = Object .assign (Object .create (X3DObject .prototype),
440
330
  if (DEBUG)
441
331
  console .error (exception);
442
332
  },
443
- getReferer: function ()
444
- {
445
- if (this .node .getTypeName () === "X3DWorld")
446
- {
447
- if (this .external)
448
- return this .browser .getLocation ();
449
- }
450
-
451
- return this .executionContext .getWorldURL ();
452
- },
453
- getContentType: function (xhr)
454
- {
455
- const
456
- contentType = xhr .getResponseHeader ("Content-Type"),
457
- result = contentTypeRx .exec (contentType);
458
-
459
- if (result)
460
- return result [1];
461
-
462
- return "";
463
- },
464
333
  });
465
334
 
466
335
  for (const key of Reflect .ownKeys (FileLoader .prototype))
@@ -199,13 +199,6 @@ Generator .prototype =
199
199
 
200
200
  return "";
201
201
  },
202
- PadRight: function (string, pad)
203
- {
204
- for (let i = 0, length = pad - string .length; i < length; ++ i)
205
- string += " ";
206
-
207
- return string;
208
- },
209
202
  Precision: function (value)
210
203
  {
211
204
  return Math .fround (value) .toPrecision (this .precision) .replace (this .removeTrailingZeros, "$1");
@@ -510,7 +503,7 @@ Generator .prototype =
510
503
  {
511
504
  return string
512
505
  .replace (/&/g, "&amp;")
513
- .replace (/\\/g, "&#92;")
506
+ .replace (/\\/g, "\\\\")
514
507
  .replace (/\t/g, "&#x9;")
515
508
  .replace (/\n/g, "&#xA;")
516
509
  .replace (/\r/g, "&#xD;")
@@ -580,6 +573,17 @@ Generator .prototype =
580
573
  return value;
581
574
  }
582
575
  },
576
+ JSONRemoveComma: function ()
577
+ {
578
+ // this .string = this .string .replace (/,(\s*)$/s, "$1");
579
+
580
+ this .string = this .string .trimEnd ();
581
+
582
+ if (this .string .endsWith (','))
583
+ this .string = this .string .slice (0, -1);
584
+
585
+ this .string += this .TidyBreak ();
586
+ },
583
587
  };
584
588
 
585
589
  for (const key of Reflect .ownKeys (Generator .prototype))