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
@@ -50,8 +50,8 @@ import X3DTextGeometry from "./X3DTextGeometry.js";
50
50
  import X3DGeometryNode from "../../Components/Rendering/X3DGeometryNode.js";
51
51
  import Vector3 from "../../../standard/Math/Numbers/Vector3.js";
52
52
  import Matrix4 from "../../../standard/Math/Numbers/Matrix4.js";
53
- import Triangle3 from "../../../standard/Math/Geometry/Triangle3.js";
54
53
  import Bezier from "../../../standard/Math/Algorithms/Bezier.js";
54
+ import libtess from "../../../lib/libtess.js";
55
55
 
56
56
  function PolygonText (text, fontStyle)
57
57
  {
@@ -75,20 +75,20 @@ PolygonText .prototype = Object .assign (Object .create (X3DTextGeometry .protot
75
75
  },
76
76
  build: (function ()
77
77
  {
78
- var
78
+ const
79
79
  min = new Vector3 (0, 0, 0),
80
80
  max = new Vector3 (0, 0, 0);
81
81
 
82
82
  return function ()
83
83
  {
84
- var
84
+ const
85
85
  fontStyle = this .getFontStyle (),
86
86
  font = fontStyle .getFont ();
87
87
 
88
- if (! font)
88
+ if (!font)
89
89
  return;
90
90
 
91
- var
91
+ const
92
92
  text = this .getText (),
93
93
  glyphs = this .getGlyphs (),
94
94
  minorAlignment = this .getMinorAlignment (),
@@ -113,25 +113,26 @@ PolygonText .prototype = Object .assign (Object .create (X3DTextGeometry .protot
113
113
 
114
114
  if (fontStyle ._horizontal .getValue ())
115
115
  {
116
- for (var l = 0, length = glyphs .length; l < length; ++ l)
116
+ for (let l = 0, length = glyphs .length; l < length; ++ l)
117
117
  {
118
- var
119
- line = glyphs [l],
120
- charSpacing = charSpacings [l],
121
- translation = translations [l],
122
- advanceWidth = 0;
118
+ const
119
+ line = glyphs [l],
120
+ charSpacing = charSpacings [l],
121
+ translation = translations [l];
123
122
 
124
- for (var g = 0, gl = line .length; g < gl; ++ g)
123
+ let advanceWidth = 0;
124
+
125
+ for (let g = 0, gl = line .length; g < gl; ++ g)
125
126
  {
126
- var
127
+ const
127
128
  glyph = line [g],
128
129
  glyphVertices = this .getGlyphGeometry (font, glyph, primitiveQuality),
129
130
  xOffset = minorAlignment .x + translation .x + advanceWidth + g * charSpacing,
130
131
  yOffset = minorAlignment .y + translation .y;
131
132
 
132
- for (var v = 0, vl = glyphVertices .length; v < vl; ++ v)
133
+ for (let v = 0, vl = glyphVertices .length; v < vl; ++ v)
133
134
  {
134
- var
135
+ const
135
136
  x = glyphVertices [v] .x * size + xOffset,
136
137
  y = glyphVertices [v] .y * size + yOffset;
137
138
 
@@ -142,7 +143,7 @@ PolygonText .prototype = Object .assign (Object .create (X3DTextGeometry .protot
142
143
 
143
144
  // Calculate advanceWidth.
144
145
 
145
- var kerning = 0;
146
+ let kerning = 0;
146
147
 
147
148
  if (g + 1 < line .length)
148
149
  kerning = font .getKerningValue (glyph, line [g + 1]);
@@ -153,32 +154,31 @@ PolygonText .prototype = Object .assign (Object .create (X3DTextGeometry .protot
153
154
  }
154
155
  else
155
156
  {
156
- var
157
+ const
157
158
  leftToRight = fontStyle ._leftToRight .getValue (),
158
159
  topToBottom = fontStyle ._topToBottom .getValue (),
159
160
  first = leftToRight ? 0 : text ._string .length - 1,
160
161
  last = leftToRight ? text ._string .length : -1,
161
162
  step = leftToRight ? 1 : -1;
162
163
 
163
- for (var l = first, t = 0; l !== last; l += step)
164
+ for (let l = first, t = 0; l !== last; l += step)
164
165
  {
165
- var line = glyphs [l];
166
-
167
- var
166
+ const
167
+ line = glyphs [l],
168
168
  numChars = line .length,
169
169
  firstG = topToBottom ? 0 : numChars - 1,
170
170
  lastG = topToBottom ? numChars : -1,
171
171
  stepG = topToBottom ? 1 : -1;
172
172
 
173
- for (var g = firstG; g !== lastG; g += stepG, ++ t)
173
+ for (let g = firstG; g !== lastG; g += stepG, ++ t)
174
174
  {
175
- var
175
+ const
176
176
  translation = translations [t],
177
177
  glyphVertices = this .getGlyphGeometry (font, line [g], primitiveQuality);
178
178
 
179
- for (var v = 0, vl = glyphVertices .length; v < vl; ++ v)
179
+ for (let v = 0, vl = glyphVertices .length; v < vl; ++ v)
180
180
  {
181
- var
181
+ const
182
182
  x = glyphVertices [v] .x * size + minorAlignment .x + translation .x,
183
183
  y = glyphVertices [v] .y * size + minorAlignment .y + translation .y;
184
184
 
@@ -193,7 +193,7 @@ PolygonText .prototype = Object .assign (Object .create (X3DTextGeometry .protot
193
193
  })(),
194
194
  getGlyphExtents: function (font, glyph, primitiveQuality, min, max)
195
195
  {
196
- var
196
+ const
197
197
  glyphCache = this .getBrowser () .getGlyph (font, primitiveQuality, glyph .index),
198
198
  extents = glyphCache .extents;
199
199
 
@@ -201,150 +201,119 @@ PolygonText .prototype = Object .assign (Object .create (X3DTextGeometry .protot
201
201
  {
202
202
  min .assign (extents .min);
203
203
  max .assign (extents .max);
204
- return;
205
204
  }
206
-
207
- var vertices = this .getGlyphGeometry (font, glyph, primitiveQuality);
208
-
209
- if (vertices .length)
205
+ else
210
206
  {
211
- var vertex = vertices [0];
207
+ const vertices = this .getGlyphGeometry (font, glyph, primitiveQuality);
212
208
 
213
- min .assign (vertex);
214
- max .assign (vertex);
215
-
216
- for (var i = 1, length = vertices .length; i < length; ++ i)
209
+ if (vertices .length)
217
210
  {
218
- var vertex = vertices [i];
219
-
220
- min .min (vertex);
221
- max .max (vertex);
211
+ min .assign (vertices [0]) .min (... vertices);
212
+ max .assign (vertices [0]) .max (... vertices);
213
+ }
214
+ else
215
+ {
216
+ min .set (0, 0, 0);
217
+ max .set (0, 0, 0);
222
218
  }
223
- }
224
- else
225
- {
226
- min .set (0, 0, 0);
227
- max .set (0, 0, 0);
228
- }
229
219
 
230
- var extents = glyphCache .extents = { };
220
+ const extents = glyphCache .extents = { };
231
221
 
232
- extents .min = min .copy ();
233
- extents .max = max .copy ();
222
+ extents .min = min .copy ();
223
+ extents .max = max .copy ();
224
+ }
234
225
  },
235
226
  getGlyphGeometry: function (font, glyph, primitiveQuality)
236
227
  {
237
- var
228
+ const
238
229
  glyphCache = this .getBrowser () .getGlyph (font, primitiveQuality, glyph .index),
239
230
  glyphGeometry = glyphCache .geometry;
240
231
 
241
232
  if (glyphGeometry)
233
+ {
242
234
  return glyphGeometry;
235
+ }
236
+ else
237
+ {
238
+ const glyphGeometry = glyphCache .geometry = [ ];
243
239
 
244
- glyphGeometry = glyphCache .geometry = [ ];
245
-
246
- this .createGlyphGeometry (glyph, glyphGeometry, primitiveQuality);
240
+ this .createGlyphGeometry (glyph, glyphGeometry, primitiveQuality);
247
241
 
248
- return glyphGeometry;
242
+ return glyphGeometry;
243
+ }
249
244
  },
250
- createGlyphGeometry: (function ()
245
+ createGlyphGeometry: function (glyph, vertices, primitiveQuality)
251
246
  {
252
- var
253
- points = [ ],
254
- curves = [ ],
255
- normal = new Vector3 (0, 0, 0);
247
+ // Get contours for the current glyph.
256
248
 
257
- return function (glyph, vertices, primitiveQuality)
258
- {
259
- // Get curves for the current glyph.
249
+ const
250
+ steps = this .getBezierSteps (primitiveQuality),
251
+ path = glyph .getPath (0, 0, 1);
260
252
 
261
- var
262
- dimension = this .getBezierDimension (primitiveQuality),
263
- path = glyph .getPath (0, 0, 1),
264
- commands = path .commands,
265
- x = 0,
266
- y = 0;
253
+ let
254
+ contours = [ ],
255
+ points = [ ],
256
+ x = 0,
257
+ y = 0;
267
258
 
268
- points .length = 0;
269
- curves .length = 0;
270
-
271
- for (var i = 0, cl = commands .length; i < cl; ++ i)
259
+ for (const command of path .commands)
260
+ {
261
+ switch (command .type)
272
262
  {
273
- var command = commands [i];
274
-
275
- switch (command .type)
263
+ case "M": // Start
264
+ case "Z": // End
276
265
  {
277
- case "M": // Start
278
- case "Z": // End
279
- {
280
- if (points .length > 2)
281
- {
282
- if (points [0] .x === points .at (-1) .x && points [0] .y === points .at (-1) .y)
283
- points .pop ();
284
-
285
- curves .push (points);
286
- }
266
+ // Filter consecutive identical points.
267
+ points = points .filter ((p, i, a) => !p .equals (a [(i + 1) % a .length]));
287
268
 
288
- points = [ ];
269
+ if (points .length > 2)
270
+ contours .push (points);
289
271
 
290
- if (command .type === "M")
291
- points .push (new Vector3 (command .x, -command .y, 0));
272
+ points = [ ];
292
273
 
293
- break;
294
- }
295
- case "L": // Linear
296
- {
274
+ if (command .type === "M")
297
275
  points .push (new Vector3 (command .x, -command .y, 0));
298
- break;
299
- }
300
- case "Q": // Quadric
301
- {
302
- var
303
- curve = new Bezier (x, -y, command .x1, -command .y1, command .x, -command .y),
304
- lut = curve .getLUT (dimension);
305
276
 
306
- for (var l = 1, ll = lut .length; l < ll; ++ l)
307
- points .push (new Vector3 (lut [l] .x, lut [l] .y, 0));
308
-
309
- break;
310
- }
311
- case "C": // Cubic
312
- {
313
- var
314
- curve = new Bezier (x, -y, command .x1, -command .y1, command .x2, -command .y2, command .x, -command .y),
315
- lut = curve .getLUT (dimension);
316
-
317
- for (var l = 1, ll = lut .length; l < ll; ++ l)
318
- points .push (new Vector3 (lut [l] .x, lut [l] .y, 0));
319
-
320
- break;
321
- }
322
- default:
323
- continue;
277
+ break;
324
278
  }
279
+ case "L": // Linear
280
+ {
281
+ points .push (new Vector3 (command .x, -command .y, 0));
282
+ break;
283
+ }
284
+ case "Q": // Quadric
285
+ {
286
+ const
287
+ curve = new Bezier (x, -y, command .x1, -command .y1, command .x, -command .y),
288
+ lut = curve .getPoints ("quadric", steps);
325
289
 
326
- x = command .x;
327
- y = command .y;
328
- }
329
-
330
- // Triangulate contours.
290
+ for (const p of lut)
291
+ points .push (new Vector3 (p .x, p .y, 0));
331
292
 
332
- curves = curves .map (function (curve)
333
- {
334
- Triangle3 .getPolygonNormal (curve, normal);
293
+ break;
294
+ }
295
+ case "C": // Cubic
296
+ {
297
+ const
298
+ curve = new Bezier (x, -y, command .x1, -command .y1, command .x2, -command .y2, command .x, -command .y),
299
+ lut = curve .getPoints ("cubic", steps);
335
300
 
336
- if (normal .dot (Vector3 .zAxis) > 0)
337
- return curve;
301
+ for (const p of lut)
302
+ points .push (new Vector3 (p .x, p .y, 0));
338
303
 
339
- return curve .reverse ();
340
- });
304
+ break;
305
+ }
306
+ default:
307
+ continue;
308
+ }
341
309
 
342
- curves .push (vertices);
310
+ x = command .x;
311
+ y = command .y;
312
+ }
343
313
 
344
- Triangle3 .triangulatePolygon .apply (Triangle3, curves);
345
- };
346
- })(),
347
- getBezierDimension: function (primitiveQuality)
314
+ return this .triangulatePolygon (contours, vertices);
315
+ },
316
+ getBezierSteps: function (primitiveQuality)
348
317
  {
349
318
  switch (primitiveQuality)
350
319
  {
@@ -356,6 +325,40 @@ PolygonText .prototype = Object .assign (Object .create (X3DTextGeometry .protot
356
325
  return 5;
357
326
  }
358
327
  },
328
+ triangulatePolygon: (function ()
329
+ {
330
+ // Function called for each vertex of tessellator output.
331
+
332
+ function vertexCallback (point, triangles)
333
+ {
334
+ triangles .push (point);
335
+ }
336
+
337
+ const tessy = new libtess .GluTesselator ();
338
+
339
+ tessy .gluTessCallback (libtess .gluEnum .GLU_TESS_VERTEX_DATA, vertexCallback);
340
+ tessy .gluTessProperty (libtess .gluEnum .GLU_TESS_WINDING_RULE, libtess .windingRule .GLU_TESS_WINDING_ODD);
341
+ tessy .gluTessNormal (0, 0, 1);
342
+
343
+ return function (contours, triangles)
344
+ {
345
+ tessy .gluTessBeginPolygon (triangles);
346
+
347
+ for (const points of contours)
348
+ {
349
+ tessy .gluTessBeginContour ();
350
+
351
+ for (const point of points)
352
+ tessy .gluTessVertex (point, point);
353
+
354
+ tessy .gluTessEndContour ();
355
+ }
356
+
357
+ tessy .gluTessEndPolygon ();
358
+
359
+ return triangles;
360
+ };
361
+ })(),
359
362
  display: function (gl, renderContext)
360
363
  { },
361
364
  transformLine: function (line)
@@ -0,0 +1,113 @@
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
+ function GifMedia (gif, movieTexture)
49
+ {
50
+ let
51
+ cycle = 0,
52
+ loop = false;
53
+
54
+ Object .defineProperties (gif,
55
+ {
56
+ currentTime:
57
+ {
58
+ get: function ()
59
+ {
60
+ if (!loop && cycle < this .cycle)
61
+ return this .duration;
62
+
63
+ return movieTexture ._elapsedTime % this .duration;
64
+ },
65
+ set: Function .prototype,
66
+ },
67
+ duration:
68
+ {
69
+ get: function ()
70
+ {
71
+ return this .get_duration_ms () / 1000;
72
+ },
73
+ },
74
+ loop:
75
+ {
76
+ get: function ()
77
+ {
78
+ return loop;
79
+ },
80
+ set: function (value)
81
+ {
82
+ cycle = this .cycle;
83
+ loop = value;
84
+ },
85
+ },
86
+ cycle:
87
+ {
88
+ get: function ()
89
+ {
90
+ return Math .floor (movieTexture ._elapsedTime / this .duration);
91
+ },
92
+ },
93
+ currentFrame:
94
+ {
95
+ get: function ()
96
+ {
97
+ const length = this .get_length ();
98
+
99
+ return this .get_frames () [Math .max (Math .ceil (this .currentTime / this .duration * length) - 1, 0)];
100
+ },
101
+ },
102
+ play:
103
+ {
104
+ value: function ()
105
+ {
106
+ cycle = this .cycle;
107
+ return Promise .resolve ();
108
+ },
109
+ },
110
+ });
111
+ }
112
+
113
+ export default GifMedia;
@@ -56,12 +56,7 @@ DicomParser .prototype =
56
56
  {
57
57
  try
58
58
  {
59
- const inputArray = new Uint8Array (input .length);
60
-
61
- for (let i = 0, length = input .length; i < length; ++ i)
62
- inputArray [i] = input .charCodeAt (i);
63
-
64
- this .dataSet = dicomParser .parseDicom (inputArray);
59
+ this .dataSet = dicomParser .parseDicom (new Uint8Array (input));
65
60
  this .dicom .dicom = true;
66
61
  }
67
62
  catch (error)