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
@@ -56,7 +56,7 @@ import Rotation4 from "../../../standard/Math/Numbers/Rotation4.js
56
56
  import Matrix4 from "../../../standard/Math/Numbers/Matrix4.js";
57
57
  import ObjectCache from "../../../standard/Utility/ObjectCache.js";
58
58
 
59
- var TextureProjectorParallelCache = ObjectCache (TextureProjectorParallelContainer);
59
+ const TextureProjectorParallelCache = ObjectCache (TextureProjectorParallelContainer);
60
60
 
61
61
  function TextureProjectorParallelContainer ()
62
62
  {
@@ -83,17 +83,9 @@ TextureProjectorParallelContainer .prototype =
83
83
 
84
84
  this .modelViewMatrix .assign (modelViewMatrix);
85
85
  },
86
- setGroup: function (groupNode)
87
- {
88
- this .groupNode = groupNode;
89
- },
90
- getModelViewMatrix: function ()
91
- {
92
- return this .modelViewMatrix;
93
- },
94
86
  setGlobalVariables: function (renderObject)
95
87
  {
96
- var
88
+ const
97
89
  textureProjectorNode = this .textureProjectorNode,
98
90
  cameraSpaceMatrix = renderObject .getCameraSpaceMatrix () .get (),
99
91
  modelMatrix = this .modelMatrix .assign (this .modelViewMatrix) .multRight (cameraSpaceMatrix),
@@ -106,7 +98,7 @@ TextureProjectorParallelContainer .prototype =
106
98
  invTextureSpaceMatrix .rotate (this .rotation);
107
99
  invTextureSpaceMatrix .inverse ();
108
100
 
109
- var
101
+ const
110
102
  width = textureProjectorNode .getTexture () .getWidth (),
111
103
  height = textureProjectorNode .getTexture () .getHeight (),
112
104
  aspect = width / height,
@@ -121,7 +113,7 @@ TextureProjectorParallelContainer .prototype =
121
113
 
122
114
  if (aspect > sizeX / sizeY)
123
115
  {
124
- var
116
+ const
125
117
  center = (minimumX + maximumX) / 2,
126
118
  size1_2 = (sizeY * aspect) / 2;
127
119
 
@@ -129,7 +121,7 @@ TextureProjectorParallelContainer .prototype =
129
121
  }
130
122
  else
131
123
  {
132
- var
124
+ const
133
125
  center = (minimumY + maximumY) / 2,
134
126
  size1_2 = (sizeX / aspect) / 2;
135
127
 
@@ -219,7 +211,7 @@ TextureProjectorParallel .prototype = Object .assign (Object .create (X3DTexture
219
211
  },
220
212
  set_fieldOfView___: function ()
221
213
  {
222
- var length = this ._fieldOfView .length;
214
+ const length = this ._fieldOfView .length;
223
215
 
224
216
  this .minimumX = (length > 0 ? this ._fieldOfView [0] : -1);
225
217
  this .minimumY = (length > 1 ? this ._fieldOfView [1] : -1);
@@ -102,10 +102,10 @@ X3DTextureProjectorNode .prototype = Object .assign (Object .create (X3DChildNod
102
102
  getBiasMatrix: (function ()
103
103
  {
104
104
  // Transforms normalized coords from range (-1, 1) to (0, 1).
105
- var biasMatrix = new Matrix4 (0.5, 0.0, 0.0, 0.0,
106
- 0.0, 0.5, 0.0, 0.0,
107
- 0.0, 0.0, 0.5, 0.0,
108
- 0.5, 0.5, 0.5, 1.0);
105
+ const biasMatrix = new Matrix4 (0.5, 0.0, 0.0, 0.0,
106
+ 0.0, 0.5, 0.0, 0.0,
107
+ 0.0, 0.0, 0.5, 0.0,
108
+ 0.5, 0.5, 0.5, 1.0);
109
109
 
110
110
  return function ()
111
111
  {
@@ -114,7 +114,7 @@ X3DTextureProjectorNode .prototype = Object .assign (Object .create (X3DChildNod
114
114
  })(),
115
115
  straightenHorizon: (function ()
116
116
  {
117
- var
117
+ const
118
118
  localXAxis = new Vector3 (0, 0, 0),
119
119
  localZAxis = new Vector3 (0, 0, 0),
120
120
  upVector = new Vector3 (0, 0, 0),
@@ -126,7 +126,7 @@ X3DTextureProjectorNode .prototype = Object .assign (Object .create (X3DChildNod
126
126
  orientation .multVecRot (localZAxis .assign (Vector3 .zAxis));
127
127
  upVector .assign (this ._upVector .getValue ()) .normalize ();
128
128
 
129
- var vector = localZAxis .cross (upVector);
129
+ const vector = localZAxis .cross (upVector);
130
130
 
131
131
  // If viewer looks along the up vector.
132
132
  if (Math .abs (localZAxis .dot (upVector)) >= 1)
@@ -175,7 +175,7 @@ X3DTextureProjectorNode .prototype = Object .assign (Object .create (X3DChildNod
175
175
  },
176
176
  push: function (renderObject)
177
177
  {
178
- var textureProjectorContainer = this .getTextureProjectors () .pop ();
178
+ const textureProjectorContainer = this .getTextureProjectors () .pop ();
179
179
 
180
180
  textureProjectorContainer .set (this,
181
181
  renderObject .getModelViewMatrix () .get ());
@@ -77,6 +77,7 @@ ImageTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
77
77
  new X3DFieldDefinition (X3DConstants .inputOutput, "url", new Fields .MFString ()),
78
78
  new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefresh", new Fields .SFTime ()),
79
79
  new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefreshTimeLimit", new Fields .SFTime (3600)),
80
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "flipVertically", new Fields .SFBool ()),
80
81
  new X3DFieldDefinition (X3DConstants .initializeOnly, "repeatS", new Fields .SFBool (true)),
81
82
  new X3DFieldDefinition (X3DConstants .initializeOnly, "repeatT", new Fields .SFBool (true)),
82
83
  new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
@@ -100,8 +101,7 @@ ImageTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
100
101
 
101
102
  this .image .on ("load", this .setImage .bind (this));
102
103
  this .image .on ("abort error", this .setError .bind (this));
103
-
104
- this .image [0] .crossOrigin = "Anonymous";
104
+ this .image .prop ("crossOrigin", "Anonymous");
105
105
 
106
106
  this .requestImmediateLoad ();
107
107
  },
@@ -129,7 +129,7 @@ ImageTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
129
129
 
130
130
  if (this .URL .protocol !== "data:")
131
131
  {
132
- if (!this .getBrowser () .getBrowserOptions () .getCache () || !this .getCache ())
132
+ if (!this .getCache ())
133
133
  this .URL .searchParams .set ("_", Date .now ());
134
134
  }
135
135
 
@@ -146,7 +146,7 @@ ImageTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
146
146
  {
147
147
  if (DEBUG)
148
148
  {
149
- if (this .URL .protocol !== "data:")
149
+ if (this .URL .protocol !== "data:")
150
150
  console .info ("Done loading image:", decodeURI (this .URL .href));
151
151
  }
152
152
 
@@ -173,8 +173,11 @@ ImageTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
173
173
 
174
174
  cx .clearRect (0, 0, width, height);
175
175
  cx .save ();
176
- cx .translate (0, height);
177
- cx .scale (1, -1);
176
+ if (!this ._flipVertically .getValue ())
177
+ {
178
+ cx .translate (0, height);
179
+ cx .scale (1, -1);
180
+ }
178
181
  cx .drawImage (image, 0, 0);
179
182
  cx .restore ();
180
183
  }
@@ -190,8 +193,11 @@ ImageTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
190
193
 
191
194
  cx .clearRect (0, 0, width, height);
192
195
  cx .save ();
193
- cx .translate (0, height);
194
- cx .scale (1, -1);
196
+ if (!this ._flipVertically .getValue ())
197
+ {
198
+ cx .translate (0, height);
199
+ cx .scale (1, -1);
200
+ }
195
201
  cx .drawImage (image, 0, 0, image .width, image .height, 0, 0, width, height);
196
202
  cx .restore ();
197
203
  }
@@ -217,8 +223,7 @@ ImageTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
217
223
  catch (error)
218
224
  {
219
225
  // Catch security error from cross origin requests.
220
- console .log (error .message);
221
- this .setError ();
226
+ this .setError ({ type: error .message });
222
227
  }
223
228
  },
224
229
  dispose: function ()
@@ -51,6 +51,7 @@ import FieldDefinitionArray from "../../Base/FieldDefinitionArray.js";
51
51
  import X3DTexture2DNode from "./X3DTexture2DNode.js";
52
52
  import X3DSoundSourceNode from "../Sound/X3DSoundSourceNode.js";
53
53
  import X3DUrlObject from "../Networking/X3DUrlObject.js";
54
+ import GifMedia from "../../Browser/Texturing/GIFMedia.js";
54
55
  import X3DConstants from "../../Base/X3DConstants.js";
55
56
  import Algorithm from "../../../standard/Math/Algorithm.js";
56
57
  import DEBUG from "../../DEBUG.js";
@@ -93,6 +94,7 @@ MovieTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
93
94
  new X3DFieldDefinition (X3DConstants .outputOnly, "isActive", new Fields .SFBool ()),
94
95
  new X3DFieldDefinition (X3DConstants .outputOnly, "elapsedTime", new Fields .SFTime ()),
95
96
  new X3DFieldDefinition (X3DConstants .outputOnly, "duration_changed", new Fields .SFTime (-1)),
97
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "flipVertically", new Fields .SFBool ()),
96
98
  new X3DFieldDefinition (X3DConstants .initializeOnly, "repeatS", new Fields .SFBool (true)),
97
99
  new X3DFieldDefinition (X3DConstants .initializeOnly, "repeatT", new Fields .SFBool (true)),
98
100
  new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
@@ -118,9 +120,9 @@ MovieTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
118
120
  this .video .on ("abort error", this .setError .bind (this));
119
121
  this .video .on ("suspend stalled", this .setTimeout .bind (this));
120
122
 
121
- this .video [0] .crossOrigin = "Anonymous";
122
- this .video [0] .preload = "auto";
123
- this .video [0] .muted = true;
123
+ this .video .prop ("crossOrigin", "Anonymous");
124
+ this .video .prop ("preload", "auto");
125
+ this .video .prop ("muted", true);
124
126
 
125
127
  this .requestImmediateLoad ();
126
128
  },
@@ -139,6 +141,7 @@ MovieTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
139
141
  },
140
142
  loadNow: function ()
141
143
  {
144
+ delete this .gif;
142
145
  this .setMedia (null);
143
146
  this .urlStack .setValue (this ._url);
144
147
  this .video .on ("canplaythrough", this .setVideo .bind (this));
@@ -161,12 +164,25 @@ MovieTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
161
164
 
162
165
  if (this .URL .protocol !== "data:")
163
166
  {
164
- if (!this .getBrowser () .getBrowserOptions () .getCache () || !this .getCache ())
167
+ if (!this .getCache ())
165
168
  this .URL .searchParams .set ("_", Date .now ());
166
169
  }
167
170
 
168
- this .video .attr ("src", this .URL .href);
169
- this .video .get (0) .load ();
171
+ if (this .URL .pathname .endsWith (".gif"))
172
+ {
173
+ const
174
+ img = $("<img></img>") .appendTo ($("<div></div>")),
175
+ gif = new SuperGif ({ gif: img [0], on_error: type => this .setError ({ type: type }) });
176
+
177
+ gif .load_url (this .URL, this .setGif .bind (this, gif));
178
+
179
+ this .setTimeout ({ type: "timeout" });
180
+ }
181
+ else
182
+ {
183
+ this .video .attr ("src", this .URL .href);
184
+ this .video .get (0) .load ();
185
+ }
170
186
  },
171
187
  setTimeout: function (event)
172
188
  {
@@ -213,23 +229,47 @@ MovieTexture .prototype = Object .assign (Object .create (X3DTexture2DNode .prot
213
229
 
214
230
  const data = cx .getImageData (0, 0, width, height) .data;
215
231
 
216
- this .setMedia (this .video);
232
+ this .setMedia (this .video [0]);
217
233
  this .setTexture (width, height, false, new Uint8Array (data .buffer), true);
218
234
  this .setLoadState (X3DConstants .COMPLETE_STATE);
219
235
  }
220
236
  catch (error)
221
237
  {
222
238
  // Catch security error from cross origin requests.
223
- console .log (error .message);
224
- this .setError ();
239
+ this .setError ({ type: error .message });
240
+ }
241
+ },
242
+ setGif: function (gif)
243
+ {
244
+ try
245
+ {
246
+ this .gif = gif;
247
+
248
+ GifMedia (gif, this);
249
+
250
+ gif .pause ();
251
+
252
+ this .setMedia (gif);
253
+ this .setTexture (gif .get_canvas () .width, gif .get_canvas () .height, false, gif .get_frames () [0] .data, !this ._flipVertically .getValue ());
254
+ this .setLoadState (X3DConstants .COMPLETE_STATE);
255
+ }
256
+ catch (error)
257
+ {
258
+ // Catch security error from cross origin requests.
259
+ this .setError ({ type: error .message });
225
260
  }
226
261
  },
227
262
  set_time: function ()
228
263
  {
229
264
  X3DSoundSourceNode .prototype .set_time .call (this);
230
265
 
231
- if (this .checkLoadState () === X3DConstants .COMPLETE_STATE)
232
- this .updateTexture (this .getMedia () [0], true);
266
+ if (this .checkLoadState () !== X3DConstants .COMPLETE_STATE)
267
+ return;
268
+
269
+ if (this .gif)
270
+ this .updateTexture (this .gif .currentFrame .data, !this ._flipVertically .getValue ());
271
+ else
272
+ this .updateTexture (this .video [0], !this ._flipVertically .getValue ());
233
273
  },
234
274
  traverse: X3DTexture2DNode .prototype .traverse,
235
275
  dispose: function ()
@@ -120,7 +120,7 @@ ImageTexture3D .prototype = Object .assign (Object .create (X3DTexture3DNode .pr
120
120
  },
121
121
  loadNow: function ()
122
122
  {
123
- new FileLoader (this) .loadBinaryDocument (this ._url,
123
+ new FileLoader (this) .loadDocument (this ._url,
124
124
  function (data)
125
125
  {
126
126
  if (data === null)
@@ -129,7 +129,7 @@ ImageTexture3D .prototype = Object .assign (Object .create (X3DTexture3DNode .pr
129
129
  this .setLoadState (X3DConstants .FAILED_STATE);
130
130
  this .clearTexture ();
131
131
  }
132
- else
132
+ else if (data instanceof ArrayBuffer)
133
133
  {
134
134
  const nrrd = new NRRDParser () .parse (data);
135
135
 
@@ -0,0 +1,230 @@
1
+ /*******************************************************************************
2
+ *
3
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
4
+ *
5
+ * Copyright create3000, Scheffelstraße 31a, Leipzig, Germany 2011 - 2022.
6
+ *
7
+ * All rights reserved. Holger Seelig <holger.seelig@yahoo.de>.
8
+ *
9
+ * The copyright notice above does not evidence any actual of intended
10
+ * publication of such source code, and is an unpublished work by create3000.
11
+ * This material contains CONFIDENTIAL INFORMATION that is the property of
12
+ * create3000.
13
+ *
14
+ * No permission is granted to copy, distribute, or create derivative works from
15
+ * the contents of this software, in whole or in part, without the prior written
16
+ * permission of create3000.
17
+ *
18
+ * NON-MILITARY USE ONLY
19
+ *
20
+ * All create3000 software are effectively free software with a non-military use
21
+ * restriction. It is free. Well commented source is provided. You may reuse the
22
+ * source in any way you please with the exception anything that uses it must be
23
+ * marked to indicate is contains 'non-military use only' components.
24
+ *
25
+ * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
26
+ *
27
+ * Copyright 2011 - 2022, Holger Seelig <holger.seelig@yahoo.de>.
28
+ *
29
+ * This file is part of the X_ITE Project.
30
+ *
31
+ * X_ITE is free software: you can redistribute it and/or modify it under the
32
+ * terms of the GNU General Public License version 3 only, as published by the
33
+ * Free Software Foundation.
34
+ *
35
+ * X_ITE is distributed in the hope that it will be useful, but WITHOUT ANY
36
+ * WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR
37
+ * A PARTICULAR PURPOSE. See the GNU General Public License version 3 for more
38
+ * details (a copy is included in the LICENSE file that accompanied this code).
39
+ *
40
+ * You should have received a copy of the GNU General Public License version 3
41
+ * along with X_ITE. If not, see <https://www.gnu.org/licenses/gpl.html> for a
42
+ * copy of the GPLv3 License.
43
+ *
44
+ * For Silvio, Joy and Adi.
45
+ *
46
+ ******************************************************************************/
47
+
48
+ import Fields from "../../Fields.js";
49
+ import X3DFieldDefinition from "../../Base/X3DFieldDefinition.js";
50
+ import FieldDefinitionArray from "../../Base/FieldDefinitionArray.js";
51
+ import X3DTexture3DNode from "./X3DTexture3DNode.js";
52
+ import X3DUrlObject from "../Networking/X3DUrlObject.js";
53
+ import X3DConstants from "../../Base/X3DConstants.js";
54
+ import DEBUG from "../../DEBUG.js";
55
+
56
+ function ImageTextureAtlas (executionContext)
57
+ {
58
+ X3DTexture3DNode .call (this, executionContext);
59
+ X3DUrlObject .call (this, executionContext);
60
+
61
+ this .addType (X3DConstants .ImageTextureAtlas);
62
+
63
+ this .image = $("<img></img>");
64
+ this .canvas = $("<canvas></canvas>");
65
+ this .urlStack = new Fields .MFString ();
66
+ }
67
+
68
+ ImageTextureAtlas .prototype = Object .assign (Object .create (X3DTexture3DNode .prototype),
69
+ X3DUrlObject .prototype,
70
+ {
71
+ constructor: ImageTextureAtlas,
72
+ [Symbol .for ("X_ITE.X3DBaseNode.fieldDefinitions")]: new FieldDefinitionArray ([
73
+ new X3DFieldDefinition (X3DConstants .inputOutput, "metadata", new Fields .SFNode ()),
74
+ new X3DFieldDefinition (X3DConstants .inputOutput, "description", new Fields .SFString ()),
75
+ new X3DFieldDefinition (X3DConstants .inputOutput, "load", new Fields .SFBool (true)),
76
+ new X3DFieldDefinition (X3DConstants .inputOutput, "url", new Fields .MFString ()),
77
+ new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefresh", new Fields .SFTime ()),
78
+ new X3DFieldDefinition (X3DConstants .inputOutput, "autoRefreshTimeLimit", new Fields .SFTime (3600)),
79
+ new X3DFieldDefinition (X3DConstants .inputOutput, "slicesOverX", new Fields .SFInt32 ()),
80
+ new X3DFieldDefinition (X3DConstants .inputOutput, "slicesOverY", new Fields .SFInt32 ()),
81
+ new X3DFieldDefinition (X3DConstants .inputOutput, "numberOfSlices", new Fields .SFInt32 ()),
82
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "repeatS", new Fields .SFBool ()),
83
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "repeatT", new Fields .SFBool ()),
84
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "repeatR", new Fields .SFBool ()),
85
+ new X3DFieldDefinition (X3DConstants .initializeOnly, "textureProperties", new Fields .SFNode ()),
86
+ ]),
87
+ getTypeName: function ()
88
+ {
89
+ return "ImageTextureAtlas";
90
+ },
91
+ getComponentName: function ()
92
+ {
93
+ return "Texturing3D";
94
+ },
95
+ getContainerField: function ()
96
+ {
97
+ return "texture";
98
+ },
99
+ initialize: function ()
100
+ {
101
+ X3DTexture3DNode .prototype .initialize .call (this);
102
+ X3DUrlObject .prototype .initialize .call (this);
103
+
104
+ this .image .on ("load", this .setImage .bind (this));
105
+ this .image .on ("abort error", this .setError .bind (this));
106
+ this .image .prop ("crossOrigin", "Anonymous");
107
+
108
+ this .requestImmediateLoad ();
109
+ },
110
+ unLoadNow: function ()
111
+ {
112
+ this .clearTexture ();
113
+ },
114
+ loadNow: function ()
115
+ {
116
+ this .urlStack .setValue (this ._url);
117
+ this .loadNext ();
118
+ },
119
+ loadNext: function ()
120
+ {
121
+ if (this .urlStack .length === 0)
122
+ {
123
+ this .clearTexture ();
124
+ this .setLoadState (X3DConstants .FAILED_STATE);
125
+ return;
126
+ }
127
+
128
+ // Get URL.
129
+
130
+ this .URL = new URL (this .urlStack .shift (), this .getExecutionContext () .getWorldURL ());
131
+
132
+ if (this .URL .protocol !== "data:")
133
+ {
134
+ if (!this .getCache ())
135
+ this .URL .searchParams .set ("_", Date .now ());
136
+ }
137
+
138
+ this .image .attr ("src", this .URL .href);
139
+ },
140
+ setError: function (event)
141
+ {
142
+ if (this .URL .protocol !== "data:")
143
+ console .warn ("Error loading image:", decodeURI (this .URL .href), event .type);
144
+
145
+ this .loadNext ();
146
+ },
147
+ setImage: function ()
148
+ {
149
+ if (DEBUG)
150
+ {
151
+ if (this .URL .protocol !== "data:")
152
+ console .info ("Done loading image:", decodeURI (this .URL .href));
153
+ }
154
+
155
+ try
156
+ {
157
+ const
158
+ gl = this .getBrowser () .getContext (),
159
+ image = this .image [0],
160
+ canvas = this .canvas [0],
161
+ cx = canvas .getContext ("2d", { willReadFrequently: true });
162
+
163
+ const
164
+ width = image .width,
165
+ height = image .height;
166
+
167
+ // Slice me nice.
168
+
169
+ const
170
+ slicesOverX = this ._slicesOverX .getValue (),
171
+ slicesOverY = this ._slicesOverY .getValue (),
172
+ maxSlices = slicesOverX * slicesOverY,
173
+ numberOfSlices = Math .min (this ._numberOfSlices .getValue (), maxSlices),
174
+ w = Math .floor (width / slicesOverX),
175
+ h = Math .floor (height / slicesOverY),
176
+ data = new Uint8Array (w * h * numberOfSlices * 4);
177
+
178
+ canvas .width = w;
179
+ canvas .height = h;
180
+
181
+ for (let y = 0, i = 0; y < slicesOverY && i < numberOfSlices; ++ y)
182
+ {
183
+ for (let x = 0; x < slicesOverX && i < numberOfSlices; ++ x, ++ i)
184
+ {
185
+ const
186
+ sx = Math .floor (x * width / slicesOverX),
187
+ sy = Math .floor (y * height / slicesOverY);
188
+
189
+ cx .clearRect (0, 0, w, h);
190
+ cx .drawImage (image, sx, sy, w, h, 0, 0, w, h);
191
+
192
+ const d = cx .getImageData (0, 0, w, h) .data;
193
+
194
+ data .set (d, w * h * i * 4);
195
+ }
196
+ }
197
+
198
+ // Determine image alpha.
199
+
200
+ let transparent = true;
201
+
202
+ for (let i = 3, length = data .length; i < length; i += 4)
203
+ {
204
+ if (data [i] !== 255)
205
+ {
206
+ transparent = true;
207
+ break;
208
+ }
209
+ }
210
+
211
+ this .setTexture (w, h, numberOfSlices, transparent, gl .RGBA, data);
212
+ this .setLoadState (X3DConstants .COMPLETE_STATE);
213
+ }
214
+ catch (error)
215
+ {
216
+ if (DEBUG)
217
+ console .log (error)
218
+
219
+ // Catch security error from cross origin requests.
220
+ this .setError ({ type: error .message });
221
+ }
222
+ },
223
+ dispose: function ()
224
+ {
225
+ X3DUrlObject .prototype .dispose .call (this);
226
+ X3DTexture3DNode .prototype .dispose .call (this);
227
+ },
228
+ });
229
+
230
+ export default ImageTextureAtlas;
@@ -156,6 +156,8 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (X3DChildNode .
156
156
  }
157
157
  }
158
158
  }
159
+
160
+ this .set_loop ();
159
161
  },
160
162
  set_startTime__: function ()
161
163
  {
@@ -223,7 +225,7 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (X3DChildNode .
223
225
  this .do_stop ();
224
226
 
225
227
  else
226
- this .addTimeout ("stopTimeout","do_stop", this .stopTimeValue);
228
+ this .addTimeout ("stopTimeout", "do_stop", this .stopTimeValue);
227
229
  }
228
230
  },
229
231
  do_start: function ()
@@ -234,7 +236,8 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (X3DChildNode .
234
236
 
235
237
  // The event order below is very important.
236
238
 
237
- this ._isActive = true;
239
+ this ._isActive = true;
240
+ this ._elapsedTime = 0;
238
241
 
239
242
  this .set_start ();
240
243
 
@@ -247,8 +250,6 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (X3DChildNode .
247
250
  this .disabled = true;
248
251
  this .real_pause ();
249
252
  }
250
-
251
- this ._elapsedTime = 0;
252
253
  }
253
254
  },
254
255
  do_pause: function ()
@@ -337,12 +338,13 @@ X3DTimeDependentNode .prototype = Object .assign (Object .create (X3DChildNode .
337
338
  clearTimeout (this [name]);
338
339
  this [name] = null;
339
340
  },
340
- set_start: function () { },
341
- set_pause: function () { },
342
- set_resume: function () { },
343
- set_stop: function () { },
344
- set_time: function () { },
345
- dispose: function () { }
341
+ set_loop: Function .prototype,
342
+ set_start: Function .prototype,
343
+ set_pause: Function .prototype,
344
+ set_resume: Function .prototype,
345
+ set_stop: Function .prototype,
346
+ set_time: Function .prototype,
347
+ dispose: Function .prototype,
346
348
  });
347
349
 
348
350
  export default X3DTimeDependentNode;