x_ite 8.11.6 → 8.11.8

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 (1264) hide show
  1. package/README.md +4 -0
  2. package/dist/assets/components/Annotation.js +13 -13
  3. package/dist/assets/components/Annotation.min.js +1 -1
  4. package/dist/assets/components/CADGeometry.js +13 -13
  5. package/dist/assets/components/CADGeometry.min.js +1 -1
  6. package/dist/assets/components/CubeMapTexturing.js +25 -25
  7. package/dist/assets/components/CubeMapTexturing.min.js +1 -1
  8. package/dist/assets/components/DIS.js +13 -13
  9. package/dist/assets/components/DIS.min.js +1 -1
  10. package/dist/assets/components/EventUtilities.js +9 -9
  11. package/dist/assets/components/EventUtilities.min.js +1 -1
  12. package/dist/assets/components/Geometry2D.js +19 -19
  13. package/dist/assets/components/Geometry2D.min.js +1 -1
  14. package/dist/assets/components/Geospatial.js +33 -33
  15. package/dist/assets/components/Geospatial.min.js +1 -1
  16. package/dist/assets/components/HAnim.js +23 -23
  17. package/dist/assets/components/HAnim.min.js +1 -1
  18. package/dist/assets/components/KeyDeviceSensor.js +8 -8
  19. package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
  20. package/dist/assets/components/Layout.js +26 -26
  21. package/dist/assets/components/Layout.min.js +1 -1
  22. package/dist/assets/components/NURBS.js +24 -24
  23. package/dist/assets/components/NURBS.min.js +1 -1
  24. package/dist/assets/components/ParticleSystems.js +23 -23
  25. package/dist/assets/components/ParticleSystems.min.js +1 -1
  26. package/dist/assets/components/Picking.js +18 -18
  27. package/dist/assets/components/Picking.min.js +1 -1
  28. package/dist/assets/components/RigidBodyPhysics.js +19 -19
  29. package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
  30. package/dist/assets/components/Scripting.js +37 -37
  31. package/dist/assets/components/Scripting.min.js +1 -1
  32. package/dist/assets/components/Text.js +24 -24
  33. package/dist/assets/components/Text.min.js +1 -1
  34. package/dist/assets/components/TextureProjector.js +14 -14
  35. package/dist/assets/components/TextureProjector.min.js +1 -1
  36. package/dist/assets/components/Texturing3D.js +30 -30
  37. package/dist/assets/components/Texturing3D.min.js +1 -1
  38. package/dist/assets/components/VolumeRendering.js +18 -18
  39. package/dist/assets/components/VolumeRendering.min.js +1 -1
  40. package/dist/assets/components/X_ITE.js +9 -9
  41. package/dist/assets/components/X_ITE.min.js +1 -1
  42. package/dist/x_ite.css +1 -1
  43. package/dist/x_ite.js +169 -147
  44. package/dist/x_ite.min.js +1 -1
  45. package/dist/x_ite.zip +0 -0
  46. package/package.json +16 -13
  47. package/.github/workflows/pages-deploy.yml +0 -64
  48. package/.vscode/launch.json +0 -15
  49. package/.vscode/settings.json +0 -44
  50. package/.vscode/tasks.json +0 -31
  51. package/Makefile +0 -82
  52. package/build/bin/bump.pl +0 -21
  53. package/build/bin/tests.pl +0 -203
  54. package/build/bin/version.pl +0 -157
  55. package/build/docs/components.js +0 -218
  56. package/build/docs/glTF-samples.pl +0 -151
  57. package/build/docs/nodes.pl +0 -434
  58. package/build/docs/tags.pl +0 -28
  59. package/build/src/nodes.pl +0 -41
  60. package/docs/Gemfile +0 -19
  61. package/docs/LICENSE +0 -21
  62. package/docs/README.md +0 -46
  63. package/docs/_config.yml +0 -203
  64. package/docs/_data/assets/cross_origin.yml +0 -62
  65. package/docs/_data/assets/self_host.yml +0 -51
  66. package/docs/_data/contact.yml +0 -30
  67. package/docs/_data/locales/bg-BG.yml +0 -83
  68. package/docs/_data/locales/de-DE.yml +0 -82
  69. package/docs/_data/locales/en.yml +0 -93
  70. package/docs/_data/locales/es-ES.yml +0 -79
  71. package/docs/_data/locales/fr-FR.yml +0 -79
  72. package/docs/_data/locales/hu-HU.yml +0 -81
  73. package/docs/_data/locales/id-ID.yml +0 -79
  74. package/docs/_data/locales/ko-KR.yml +0 -86
  75. package/docs/_data/locales/my-MM.yml +0 -79
  76. package/docs/_data/locales/pt-BR.yml +0 -79
  77. package/docs/_data/locales/ru-RU.yml +0 -79
  78. package/docs/_data/locales/tr-TR.yml +0 -79
  79. package/docs/_data/locales/uk-UA.yml +0 -79
  80. package/docs/_data/locales/vi-VN.yml +0 -77
  81. package/docs/_data/locales/zh-CN.yml +0 -85
  82. package/docs/_data/nav/components-CADGeometry.yml +0 -14
  83. package/docs/_data/nav/components-Core.yml +0 -16
  84. package/docs/_data/nav/components-CubeMapTexturing.yml +0 -8
  85. package/docs/_data/nav/components-DIS.yml +0 -14
  86. package/docs/_data/nav/components-EnvironmentalEffects.yml +0 -12
  87. package/docs/_data/nav/components-EnvironmentalSensor.yml +0 -8
  88. package/docs/_data/nav/components-EventUtilities.yml +0 -16
  89. package/docs/_data/nav/components-Followers.yml +0 -30
  90. package/docs/_data/nav/components-Geometry2D.yml +0 -18
  91. package/docs/_data/nav/components-Geometry3D.yml +0 -16
  92. package/docs/_data/nav/components-Geospatial.yml +0 -24
  93. package/docs/_data/nav/components-Grouping.yml +0 -10
  94. package/docs/_data/nav/components-HAnim.yml +0 -14
  95. package/docs/_data/nav/components-Interpolation.yml +0 -28
  96. package/docs/_data/nav/components-KeyDeviceSensor.yml +0 -6
  97. package/docs/_data/nav/components-Layering.yml +0 -8
  98. package/docs/_data/nav/components-Layout.yml +0 -12
  99. package/docs/_data/nav/components-Lighting.yml +0 -10
  100. package/docs/_data/nav/components-NURBS.yml +0 -30
  101. package/docs/_data/nav/components-Navigation.yml +0 -16
  102. package/docs/_data/nav/components-Networking.yml +0 -8
  103. package/docs/_data/nav/components-ParticleSystems.yml +0 -22
  104. package/docs/_data/nav/components-Picking.yml +0 -12
  105. package/docs/_data/nav/components-PointingDeviceSensor.yml +0 -10
  106. package/docs/_data/nav/components-Rendering.yml +0 -30
  107. package/docs/_data/nav/components-RigidBodyPhysics.yml +0 -30
  108. package/docs/_data/nav/components-Scripting.yml +0 -4
  109. package/docs/_data/nav/components-Shaders.yml +0 -18
  110. package/docs/_data/nav/components-Shape.yml +0 -22
  111. package/docs/_data/nav/components-Sound.yml +0 -44
  112. package/docs/_data/nav/components-Text.yml +0 -6
  113. package/docs/_data/nav/components-TextureProjector.yml +0 -6
  114. package/docs/_data/nav/components-Texturing.yml +0 -22
  115. package/docs/_data/nav/components-Texturing3D.yml +0 -18
  116. package/docs/_data/nav/components-Time.yml +0 -4
  117. package/docs/_data/nav/components-VolumeRendering.yml +0 -28
  118. package/docs/_data/nav/components-X_ITE.yml +0 -4
  119. package/docs/_data/nav/main.yml +0 -26
  120. package/docs/_data/nav/reference.yml +0 -18
  121. package/docs/_data/nav/tutorials-animation-sensors-and-geometry.yml +0 -18
  122. package/docs/_data/nav/tutorials-basic.yml +0 -6
  123. package/docs/_data/nav/tutorials-optimize-your-scene.yml +0 -6
  124. package/docs/_data/nav/tutorials-scripts-and-prototypes.yml +0 -12
  125. package/docs/_data/nav/tutorials-shapes-geometry-and-appearance.yml +0 -16
  126. package/docs/_data/nav/tutorials-textures-lights-and-environment.yml +0 -20
  127. package/docs/_data/share.yml +0 -27
  128. package/docs/_includes/nav.html +0 -19
  129. package/docs/_includes/scripts.html +0 -3
  130. package/docs/_layouts/compress.html +0 -11
  131. package/docs/_layouts/redirect-page.html +0 -6
  132. package/docs/_layouts/wide.html +0 -52
  133. package/docs/_layouts/wrap.html +0 -4
  134. package/docs/_layouts/x_ite.html +0 -8
  135. package/docs/_plugins/no_date.rb +0 -11
  136. package/docs/_plugins/posts-lastmod-hook.rb +0 -14
  137. package/docs/_posts/accessing-the-external-browser.md +0 -312
  138. package/docs/_posts/browser-support.md +0 -53
  139. package/docs/_posts/components/CADGeometry/CADAssembly.md +0 -126
  140. package/docs/_posts/components/CADGeometry/CADFace.md +0 -113
  141. package/docs/_posts/components/CADGeometry/CADLayer.md +0 -126
  142. package/docs/_posts/components/CADGeometry/CADPart.md +0 -164
  143. package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +0 -154
  144. package/docs/_posts/components/CADGeometry/QuadSet.md +0 -145
  145. package/docs/_posts/components/Core/MetadataBoolean.md +0 -83
  146. package/docs/_posts/components/Core/MetadataDouble.md +0 -84
  147. package/docs/_posts/components/Core/MetadataFloat.md +0 -84
  148. package/docs/_posts/components/Core/MetadataInteger.md +0 -83
  149. package/docs/_posts/components/Core/MetadataSet.md +0 -80
  150. package/docs/_posts/components/Core/MetadataString.md +0 -83
  151. package/docs/_posts/components/Core/WorldInfo.md +0 -65
  152. package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +0 -123
  153. package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +0 -82
  154. package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +0 -112
  155. package/docs/_posts/components/DIS/DISEntityManager.md +0 -98
  156. package/docs/_posts/components/DIS/DISEntityTypeMapping.md +0 -131
  157. package/docs/_posts/components/DIS/EspduTransform.md +0 -566
  158. package/docs/_posts/components/DIS/ReceiverPdu.md +0 -235
  159. package/docs/_posts/components/DIS/SignalPdu.md +0 -239
  160. package/docs/_posts/components/DIS/TransmitterPdu.md +0 -299
  161. package/docs/_posts/components/EnvironmentalEffects/Background.md +0 -230
  162. package/docs/_posts/components/EnvironmentalEffects/Fog.md +0 -118
  163. package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +0 -44
  164. package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +0 -91
  165. package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +0 -194
  166. package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +0 -118
  167. package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +0 -115
  168. package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +0 -89
  169. package/docs/_posts/components/EventUtilities/BooleanFilter.md +0 -75
  170. package/docs/_posts/components/EventUtilities/BooleanSequencer.md +0 -115
  171. package/docs/_posts/components/EventUtilities/BooleanToggle.md +0 -67
  172. package/docs/_posts/components/EventUtilities/BooleanTrigger.md +0 -64
  173. package/docs/_posts/components/EventUtilities/IntegerSequencer.md +0 -119
  174. package/docs/_posts/components/EventUtilities/IntegerTrigger.md +0 -76
  175. package/docs/_posts/components/EventUtilities/TimeTrigger.md +0 -68
  176. package/docs/_posts/components/Followers/ColorChaser.md +0 -101
  177. package/docs/_posts/components/Followers/ColorDamper.md +0 -105
  178. package/docs/_posts/components/Followers/CoordinateChaser.md +0 -100
  179. package/docs/_posts/components/Followers/CoordinateDamper.md +0 -100
  180. package/docs/_posts/components/Followers/OrientationChaser.md +0 -96
  181. package/docs/_posts/components/Followers/OrientationDamper.md +0 -100
  182. package/docs/_posts/components/Followers/PositionChaser.md +0 -96
  183. package/docs/_posts/components/Followers/PositionChaser2D.md +0 -96
  184. package/docs/_posts/components/Followers/PositionDamper.md +0 -100
  185. package/docs/_posts/components/Followers/PositionDamper2D.md +0 -100
  186. package/docs/_posts/components/Followers/ScalarChaser.md +0 -100
  187. package/docs/_posts/components/Followers/ScalarDamper.md +0 -100
  188. package/docs/_posts/components/Followers/TexCoordChaser2D.md +0 -96
  189. package/docs/_posts/components/Followers/TexCoordDamper2D.md +0 -100
  190. package/docs/_posts/components/Geometry2D/Arc2D.md +0 -96
  191. package/docs/_posts/components/Geometry2D/ArcClose2D.md +0 -115
  192. package/docs/_posts/components/Geometry2D/Circle2D.md +0 -66
  193. package/docs/_posts/components/Geometry2D/Disk2D.md +0 -93
  194. package/docs/_posts/components/Geometry2D/Polyline2D.md +0 -69
  195. package/docs/_posts/components/Geometry2D/Polypoint2D.md +0 -62
  196. package/docs/_posts/components/Geometry2D/Rectangle2D.md +0 -77
  197. package/docs/_posts/components/Geometry2D/TriangleSet2D.md +0 -77
  198. package/docs/_posts/components/Geometry3D/Box.md +0 -79
  199. package/docs/_posts/components/Geometry3D/Cone.md +0 -98
  200. package/docs/_posts/components/Geometry3D/Cylinder.md +0 -102
  201. package/docs/_posts/components/Geometry3D/ElevationGrid.md +0 -206
  202. package/docs/_posts/components/Geometry3D/Extrusion.md +0 -222
  203. package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +0 -260
  204. package/docs/_posts/components/Geometry3D/Sphere.md +0 -78
  205. package/docs/_posts/components/Geospatial/GeoCoordinate.md +0 -81
  206. package/docs/_posts/components/Geospatial/GeoElevationGrid.md +0 -225
  207. package/docs/_posts/components/Geospatial/GeoLOD.md +0 -184
  208. package/docs/_posts/components/Geospatial/GeoLocation.md +0 -148
  209. package/docs/_posts/components/Geospatial/GeoMetadata.md +0 -117
  210. package/docs/_posts/components/Geospatial/GeoOrigin.md +0 -84
  211. package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +0 -141
  212. package/docs/_posts/components/Geospatial/GeoProximitySensor.md +0 -158
  213. package/docs/_posts/components/Geospatial/GeoTouchSensor.md +0 -153
  214. package/docs/_posts/components/Geospatial/GeoTransform.md +0 -182
  215. package/docs/_posts/components/Geospatial/GeoViewpoint.md +0 -214
  216. package/docs/_posts/components/Grouping/Group.md +0 -108
  217. package/docs/_posts/components/Grouping/StaticGroup.md +0 -103
  218. package/docs/_posts/components/Grouping/Switch.md +0 -125
  219. package/docs/_posts/components/Grouping/Transform.md +0 -160
  220. package/docs/_posts/components/HAnim/HAnimDisplacer.md +0 -108
  221. package/docs/_posts/components/HAnim/HAnimHumanoid.md +0 -351
  222. package/docs/_posts/components/HAnim/HAnimJoint.md +0 -256
  223. package/docs/_posts/components/HAnim/HAnimMotion.md +0 -186
  224. package/docs/_posts/components/HAnim/HAnimSegment.md +0 -172
  225. package/docs/_posts/components/HAnim/HAnimSite.md +0 -176
  226. package/docs/_posts/components/Interpolation/ColorInterpolator.md +0 -103
  227. package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +0 -102
  228. package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +0 -102
  229. package/docs/_posts/components/Interpolation/EaseInEaseOut.md +0 -91
  230. package/docs/_posts/components/Interpolation/NormalInterpolator.md +0 -98
  231. package/docs/_posts/components/Interpolation/OrientationInterpolator.md +0 -102
  232. package/docs/_posts/components/Interpolation/PositionInterpolator.md +0 -102
  233. package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +0 -106
  234. package/docs/_posts/components/Interpolation/ScalarInterpolator.md +0 -102
  235. package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +0 -118
  236. package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +0 -118
  237. package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +0 -122
  238. package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +0 -102
  239. package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +0 -120
  240. package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +0 -92
  241. package/docs/_posts/components/Layering/Layer.md +0 -92
  242. package/docs/_posts/components/Layering/LayerSet.md +0 -84
  243. package/docs/_posts/components/Layering/Viewport.md +0 -113
  244. package/docs/_posts/components/Layout/Layout.md +0 -118
  245. package/docs/_posts/components/Layout/LayoutGroup.md +0 -118
  246. package/docs/_posts/components/Layout/LayoutLayer.md +0 -99
  247. package/docs/_posts/components/Layout/ScreenFontStyle.md +0 -164
  248. package/docs/_posts/components/Layout/ScreenGroup.md +0 -104
  249. package/docs/_posts/components/Lighting/DirectionalLight.md +0 -108
  250. package/docs/_posts/components/Lighting/EnvironmentLight.md +0 -87
  251. package/docs/_posts/components/Lighting/PointLight.md +0 -115
  252. package/docs/_posts/components/Lighting/SpotLight.md +0 -145
  253. package/docs/_posts/components/NURBS/Contour2D.md +0 -65
  254. package/docs/_posts/components/NURBS/ContourPolyline2D.md +0 -50
  255. package/docs/_posts/components/NURBS/CoordinateDouble.md +0 -51
  256. package/docs/_posts/components/NURBS/NurbsCurve.md +0 -75
  257. package/docs/_posts/components/NURBS/NurbsCurve2D.md +0 -70
  258. package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +0 -86
  259. package/docs/_posts/components/NURBS/NurbsPatchSurface.md +0 -112
  260. package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +0 -86
  261. package/docs/_posts/components/NURBS/NurbsSet.md +0 -117
  262. package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +0 -110
  263. package/docs/_posts/components/NURBS/NurbsSweptSurface.md +0 -86
  264. package/docs/_posts/components/NURBS/NurbsSwungSurface.md +0 -76
  265. package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +0 -81
  266. package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +0 -124
  267. package/docs/_posts/components/Navigation/Billboard.md +0 -121
  268. package/docs/_posts/components/Navigation/Collision.md +0 -156
  269. package/docs/_posts/components/Navigation/LOD.md +0 -146
  270. package/docs/_posts/components/Navigation/NavigationInfo.md +0 -170
  271. package/docs/_posts/components/Navigation/OrthoViewpoint.md +0 -209
  272. package/docs/_posts/components/Navigation/Viewpoint.md +0 -213
  273. package/docs/_posts/components/Navigation/ViewpointGroup.md +0 -91
  274. package/docs/_posts/components/Networking/Anchor.md +0 -160
  275. package/docs/_posts/components/Networking/Inline.md +0 -161
  276. package/docs/_posts/components/Networking/LoadSensor.md +0 -123
  277. package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +0 -62
  278. package/docs/_posts/components/ParticleSystems/ConeEmitter.md +0 -95
  279. package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +0 -83
  280. package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +0 -65
  281. package/docs/_posts/components/ParticleSystems/ParticleSystem.md +0 -249
  282. package/docs/_posts/components/ParticleSystems/PointEmitter.md +0 -87
  283. package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +0 -106
  284. package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +0 -101
  285. package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +0 -109
  286. package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +0 -72
  287. package/docs/_posts/components/Picking/LinePickSensor.md +0 -151
  288. package/docs/_posts/components/Picking/PickableGroup.md +0 -128
  289. package/docs/_posts/components/Picking/PointPickSensor.md +0 -133
  290. package/docs/_posts/components/Picking/PrimitivePickSensor.md +0 -126
  291. package/docs/_posts/components/Picking/VolumePickSensor.md +0 -124
  292. package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +0 -147
  293. package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +0 -137
  294. package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +0 -111
  295. package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +0 -121
  296. package/docs/_posts/components/Rendering/ClipPlane.md +0 -72
  297. package/docs/_posts/components/Rendering/Color.md +0 -56
  298. package/docs/_posts/components/Rendering/ColorRGBA.md +0 -65
  299. package/docs/_posts/components/Rendering/Coordinate.md +0 -49
  300. package/docs/_posts/components/Rendering/IndexedLineSet.md +0 -156
  301. package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +0 -149
  302. package/docs/_posts/components/Rendering/IndexedTriangleSet.md +0 -149
  303. package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +0 -141
  304. package/docs/_posts/components/Rendering/LineSet.md +0 -97
  305. package/docs/_posts/components/Rendering/Normal.md +0 -63
  306. package/docs/_posts/components/Rendering/PointSet.md +0 -89
  307. package/docs/_posts/components/Rendering/TriangleFanSet.md +0 -137
  308. package/docs/_posts/components/Rendering/TriangleSet.md +0 -133
  309. package/docs/_posts/components/Rendering/TriangleStripSet.md +0 -141
  310. package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +0 -90
  311. package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +0 -115
  312. package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +0 -118
  313. package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +0 -95
  314. package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +0 -74
  315. package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +0 -106
  316. package/docs/_posts/components/RigidBodyPhysics/Contact.md +0 -121
  317. package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +0 -164
  318. package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +0 -235
  319. package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +0 -185
  320. package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +0 -136
  321. package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +0 -118
  322. package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +0 -118
  323. package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +0 -127
  324. package/docs/_posts/components/Scripting/Script.md +0 -139
  325. package/docs/_posts/components/Shaders/ComposedShader.md +0 -94
  326. package/docs/_posts/components/Shaders/FloatVertexAttribute.md +0 -74
  327. package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +0 -62
  328. package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +0 -62
  329. package/docs/_posts/components/Shaders/PackagedShader.md +0 -137
  330. package/docs/_posts/components/Shaders/ProgramShader.md +0 -91
  331. package/docs/_posts/components/Shaders/ShaderPart.md +0 -127
  332. package/docs/_posts/components/Shaders/ShaderProgram.md +0 -121
  333. package/docs/_posts/components/Shape/AcousticProperties.md +0 -80
  334. package/docs/_posts/components/Shape/Appearance.md +0 -130
  335. package/docs/_posts/components/Shape/FillProperties.md +0 -74
  336. package/docs/_posts/components/Shape/LineProperties.md +0 -71
  337. package/docs/_posts/components/Shape/Material.md +0 -235
  338. package/docs/_posts/components/Shape/PhysicalMaterial.md +0 -189
  339. package/docs/_posts/components/Shape/PointProperties.md +0 -83
  340. package/docs/_posts/components/Shape/Shape.md +0 -107
  341. package/docs/_posts/components/Shape/TwoSidedMaterial.md +0 -148
  342. package/docs/_posts/components/Shape/UnlitMaterial.md +0 -119
  343. package/docs/_posts/components/Sound/Analyser.md +0 -205
  344. package/docs/_posts/components/Sound/AudioClip.md +0 -223
  345. package/docs/_posts/components/Sound/AudioDestination.md +0 -128
  346. package/docs/_posts/components/Sound/BiquadFilter.md +0 -213
  347. package/docs/_posts/components/Sound/BufferAudioSource.md +0 -284
  348. package/docs/_posts/components/Sound/ChannelMerger.md +0 -108
  349. package/docs/_posts/components/Sound/ChannelSelector.md +0 -112
  350. package/docs/_posts/components/Sound/ChannelSplitter.md +0 -116
  351. package/docs/_posts/components/Sound/Convolver.md +0 -190
  352. package/docs/_posts/components/Sound/Delay.md +0 -185
  353. package/docs/_posts/components/Sound/DynamicsCompressor.md +0 -201
  354. package/docs/_posts/components/Sound/Gain.md +0 -177
  355. package/docs/_posts/components/Sound/ListenerPointSource.md +0 -171
  356. package/docs/_posts/components/Sound/MicrophoneSource.md +0 -145
  357. package/docs/_posts/components/Sound/OscillatorSource.md +0 -153
  358. package/docs/_posts/components/Sound/PeriodicWave.md +0 -83
  359. package/docs/_posts/components/Sound/Sound.md +0 -139
  360. package/docs/_posts/components/Sound/SpatialSound.md +0 -187
  361. package/docs/_posts/components/Sound/StreamAudioDestination.md +0 -132
  362. package/docs/_posts/components/Sound/StreamAudioSource.md +0 -145
  363. package/docs/_posts/components/Sound/WaveShaper.md +0 -189
  364. package/docs/_posts/components/Text/FontStyle.md +0 -171
  365. package/docs/_posts/components/Text/Text.md +0 -124
  366. package/docs/_posts/components/TextureProjector/TextureProjector.md +0 -111
  367. package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +0 -112
  368. package/docs/_posts/components/Texturing/ImageTexture.md +0 -138
  369. package/docs/_posts/components/Texturing/MovieTexture.md +0 -264
  370. package/docs/_posts/components/Texturing/MultiTexture.md +0 -128
  371. package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +0 -64
  372. package/docs/_posts/components/Texturing/MultiTextureTransform.md +0 -69
  373. package/docs/_posts/components/Texturing/PixelTexture.md +0 -100
  374. package/docs/_posts/components/Texturing/TextureCoordinate.md +0 -62
  375. package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +0 -74
  376. package/docs/_posts/components/Texturing/TextureProperties.md +0 -162
  377. package/docs/_posts/components/Texturing/TextureTransform.md +0 -82
  378. package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +0 -84
  379. package/docs/_posts/components/Texturing3D/ImageTexture3D.md +0 -141
  380. package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +0 -137
  381. package/docs/_posts/components/Texturing3D/PixelTexture3D.md +0 -87
  382. package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +0 -65
  383. package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +0 -64
  384. package/docs/_posts/components/Texturing3D/TextureTransform3D.md +0 -78
  385. package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +0 -67
  386. package/docs/_posts/components/Time/TimeSensor.md +0 -187
  387. package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +0 -113
  388. package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +0 -63
  389. package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +0 -86
  390. package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +0 -59
  391. package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +0 -75
  392. package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +0 -138
  393. package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +0 -59
  394. package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +0 -70
  395. package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +0 -130
  396. package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +0 -83
  397. package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +0 -71
  398. package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +0 -80
  399. package/docs/_posts/components/VolumeRendering/VolumeData.md +0 -105
  400. package/docs/_posts/components/X_ITE/BlendMode.md +0 -101
  401. package/docs/_posts/custom-shaders.md +0 -720
  402. package/docs/_posts/dom-integration.md +0 -237
  403. package/docs/_posts/features.md +0 -56
  404. package/docs/_posts/getting-started.md +0 -845
  405. package/docs/_posts/glossary.md +0 -344
  406. package/docs/_posts/how-to-configure-your-web-server.md +0 -61
  407. package/docs/_posts/laboratory/x3d-file-converter.md +0 -188
  408. package/docs/_posts/reference/browser-services.md +0 -466
  409. package/docs/_posts/reference/constants-services.md +0 -381
  410. package/docs/_posts/reference/ecmascript-object-and-function-definitions.md +0 -50
  411. package/docs/_posts/reference/field-services-and-objects.md +0 -1137
  412. package/docs/_posts/reference/prototype-services.md +0 -146
  413. package/docs/_posts/reference/route-services.md +0 -54
  414. package/docs/_posts/reference/scene-services.md +0 -392
  415. package/docs/_posts/reference/script-node-authoring-interface.md +0 -347
  416. package/docs/_posts/report-a-bug.md +0 -17
  417. package/docs/_posts/setup-a-localhost-server.md +0 -46
  418. package/docs/_posts/supported-nodes.md +0 -378
  419. package/docs/_posts/tutorials/adding-backgrounds.md +0 -273
  420. package/docs/_posts/tutorials/adding-fog.md +0 -72
  421. package/docs/_posts/tutorials/adding-sound.md +0 -333
  422. package/docs/_posts/tutorials/animating-transforms.md +0 -390
  423. package/docs/_posts/tutorials/basic-nodes.md +0 -312
  424. package/docs/_posts/tutorials/building-a-x3d-world.md +0 -174
  425. package/docs/_posts/tutorials/building-elevation-grids.md +0 -177
  426. package/docs/_posts/tutorials/building-extruded-shapes.md +0 -150
  427. package/docs/_posts/tutorials/building-primitive-shapes.md +0 -211
  428. package/docs/_posts/tutorials/building-shapes-out-of-points-lines-and-faces.md +0 -315
  429. package/docs/_posts/tutorials/controlling-appearance-with-materials.md +0 -193
  430. package/docs/_posts/tutorials/controlling-color-on-coordinate-based-geometry.md +0 -213
  431. package/docs/_posts/tutorials/controlling-detail.md +0 -137
  432. package/docs/_posts/tutorials/controlling-how-textures-are-mapped.md +0 -282
  433. package/docs/_posts/tutorials/controlling-navigation.md +0 -75
  434. package/docs/_posts/tutorials/controlling-shading-on-coordinate-based-geometry.md +0 -185
  435. package/docs/_posts/tutorials/controlling-the-viewpoint.md +0 -54
  436. package/docs/_posts/tutorials/creating-new-node-types.md +0 -340
  437. package/docs/_posts/tutorials/grouping-nodes.md +0 -242
  438. package/docs/_posts/tutorials/hello-world.md +0 -198
  439. package/docs/_posts/tutorials/improving-performance.md +0 -229
  440. package/docs/_posts/tutorials/increasing-rendering-speed.md +0 -115
  441. package/docs/_posts/tutorials/introducing-animation.md +0 -216
  442. package/docs/_posts/tutorials/introducing-script-use.md +0 -132
  443. package/docs/_posts/tutorials/introducing-x3d.md +0 -100
  444. package/docs/_posts/tutorials/lighting-your-world.md +0 -144
  445. package/docs/_posts/tutorials/mapping-textures.md +0 -217
  446. package/docs/_posts/tutorials/naming-nodes.md +0 -168
  447. package/docs/_posts/tutorials/overview.md +0 -83
  448. package/docs/_posts/tutorials/providing-information-about-your-world.md +0 -35
  449. package/docs/_posts/tutorials/sensing-the-viewer.md +0 -210
  450. package/docs/_posts/tutorials/sensing-viewer-actions.md +0 -219
  451. package/docs/_posts/tutorials/transforming-shapes.md +0 -275
  452. package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +0 -637
  453. package/docs/_posts/what's-new.md +0 -1115
  454. package/docs/_tabs/components.md +0 -383
  455. package/docs/_tabs/laboratory.md +0 -52
  456. package/docs/_tabs/playground.html +0 -407
  457. package/docs/_tabs/reference.md +0 -8
  458. package/docs/_tabs/tags.md +0 -5
  459. package/docs/_tabs/tutorials.md +0 -7
  460. package/docs/assets/X3D/teaser/Michroma-Regular.ttf +0 -0
  461. package/docs/assets/X3D/teaser/peakpx.jpg +0 -0
  462. package/docs/assets/X3D/teaser/teaser.x3d +0 -55
  463. package/docs/assets/css/style.scss +0 -320
  464. package/docs/assets/img/favicons/android-chrome-192x192.png +0 -0
  465. package/docs/assets/img/favicons/android-chrome-512x512.png +0 -0
  466. package/docs/assets/img/favicons/apple-touch-icon.png +0 -0
  467. package/docs/assets/img/favicons/favicon-16x16.png +0 -0
  468. package/docs/assets/img/favicons/favicon-32x32.png +0 -0
  469. package/docs/assets/img/favicons/favicon.ico +0 -0
  470. package/docs/assets/img/favicons/mstile-150x150.png +0 -0
  471. package/docs/assets/img/favicons/safari-pinned-tab.svg +0 -71
  472. package/docs/assets/img/laboratory/blend-mode.png +0 -0
  473. package/docs/assets/img/laboratory/dicom-nrrd.png +0 -0
  474. package/docs/assets/img/laboratory/earthquake.png +0 -0
  475. package/docs/assets/img/laboratory/gltf.png +0 -0
  476. package/docs/assets/img/laboratory/l-system.png +0 -0
  477. package/docs/assets/img/logo.png +0 -0
  478. package/docs/assets/js/example.js +0 -128
  479. package/docs/google3696ee938394d7b6.html +0 -1
  480. package/docs/laboratory/3d-l-system-generator.html +0 -169
  481. package/docs/laboratory/gltf-sample-viewer.html +0 -811
  482. package/docs/laboratory/online-dicom-and-nrrd-file-viewer.html +0 -72
  483. package/docs/laboratory/real-time-earth-quake-information.html +0 -50
  484. package/docs/laboratory/x3d-visual-blend-mode-editor.html +0 -228
  485. package/meta/logo/icon.svg +0 -432
  486. package/meta/logo/logo.png +0 -0
  487. package/meta/logo/logo.s.svg +0 -470
  488. package/meta/logo/logo.svg +0 -396
  489. package/src/LICENSE.txt +0 -46
  490. package/src/assets/components/Annotation.js +0 -74
  491. package/src/assets/components/CADGeometry.js +0 -74
  492. package/src/assets/components/CubeMapTexturing.js +0 -68
  493. package/src/assets/components/DIS.js +0 -72
  494. package/src/assets/components/EventUtilities.js +0 -78
  495. package/src/assets/components/Geometry2D.js +0 -78
  496. package/src/assets/components/Geospatial.js +0 -84
  497. package/src/assets/components/HAnim.js +0 -72
  498. package/src/assets/components/KeyDeviceSensor.js +0 -68
  499. package/src/assets/components/Layout.js +0 -74
  500. package/src/assets/components/NURBS.js +0 -94
  501. package/src/assets/components/ParticleSystems.js +0 -86
  502. package/src/assets/components/Picking.js +0 -74
  503. package/src/assets/components/RigidBodyPhysics.js +0 -94
  504. package/src/assets/components/Scripting.js +0 -64
  505. package/src/assets/components/Text.js +0 -68
  506. package/src/assets/components/TextureProjector.js +0 -66
  507. package/src/assets/components/Texturing3D.js +0 -78
  508. package/src/assets/components/VolumeRendering.js +0 -94
  509. package/src/assets/components/X_ITE.js +0 -62
  510. package/src/assets/fonts/DroidSerif-Bold.ttf +0 -0
  511. package/src/assets/fonts/DroidSerif-BoldItalic.ttf +0 -0
  512. package/src/assets/fonts/DroidSerif-Italic.ttf +0 -0
  513. package/src/assets/fonts/DroidSerif-Regular.ttf +0 -0
  514. package/src/assets/fonts/Ubuntu-B.ttf +0 -0
  515. package/src/assets/fonts/Ubuntu-BI.ttf +0 -0
  516. package/src/assets/fonts/Ubuntu-R.ttf +0 -0
  517. package/src/assets/fonts/Ubuntu-RI.ttf +0 -0
  518. package/src/assets/fonts/UbuntuMono-B.ttf +0 -0
  519. package/src/assets/fonts/UbuntuMono-BI.ttf +0 -0
  520. package/src/assets/fonts/UbuntuMono-R.ttf +0 -0
  521. package/src/assets/fonts/UbuntuMono-RI.ttf +0 -0
  522. package/src/assets/hatching/1.png +0 -0
  523. package/src/assets/hatching/10.png +0 -0
  524. package/src/assets/hatching/11.png +0 -0
  525. package/src/assets/hatching/12.png +0 -0
  526. package/src/assets/hatching/13.png +0 -0
  527. package/src/assets/hatching/14.png +0 -0
  528. package/src/assets/hatching/15.png +0 -0
  529. package/src/assets/hatching/16.png +0 -0
  530. package/src/assets/hatching/17.png +0 -0
  531. package/src/assets/hatching/18.png +0 -0
  532. package/src/assets/hatching/19.png +0 -0
  533. package/src/assets/hatching/2.png +0 -0
  534. package/src/assets/hatching/3.png +0 -0
  535. package/src/assets/hatching/4.png +0 -0
  536. package/src/assets/hatching/5.png +0 -0
  537. package/src/assets/hatching/6.png +0 -0
  538. package/src/assets/hatching/7.png +0 -0
  539. package/src/assets/hatching/8.png +0 -0
  540. package/src/assets/hatching/9.png +0 -0
  541. package/src/assets/images/ExamineViewer.png +0 -0
  542. package/src/assets/images/FlyViewer.png +0 -0
  543. package/src/assets/images/NoneViewer.png +0 -0
  544. package/src/assets/images/PlaneViewer.png +0 -0
  545. package/src/assets/images/PrimitiveQuality.png +0 -0
  546. package/src/assets/images/Shading.png +0 -0
  547. package/src/assets/images/TextureQuality.png +0 -0
  548. package/src/assets/images/Time.png +0 -0
  549. package/src/assets/images/Viewpoint.png +0 -0
  550. package/src/assets/images/WalkViewer.png +0 -0
  551. package/src/assets/images/go-next.png +0 -0
  552. package/src/assets/images/gtk-fullscreen.png +0 -0
  553. package/src/assets/images/gtk-leave-fullscreen.png +0 -0
  554. package/src/assets/images/gtk-zoom-fit.png +0 -0
  555. package/src/assets/images/gtk-zoom-in.png +0 -0
  556. package/src/assets/images/help-about.png +0 -0
  557. package/src/assets/images/icon.bw.png +0 -0
  558. package/src/assets/images/icon.png +0 -0
  559. package/src/assets/images/logo.128.png +0 -0
  560. package/src/assets/images/logo.bw.png +0 -0
  561. package/src/assets/images/logo.png +0 -0
  562. package/src/assets/lib/draco_decoder_gltf.js +0 -29
  563. package/src/assets/linetype/linetypes.png +0 -0
  564. package/src/assets/shaders/Types.glsl.js +0 -312
  565. package/src/assets/shaders/webgl1/Default.vs.js +0 -14
  566. package/src/assets/shaders/webgl1/Depth.fs.js +0 -25
  567. package/src/assets/shaders/webgl1/Depth.vs.js +0 -31
  568. package/src/assets/shaders/webgl1/Gouraud.fs.js +0 -40
  569. package/src/assets/shaders/webgl1/Gouraud.vs.js +0 -58
  570. package/src/assets/shaders/webgl1/PBR.fs.js +0 -366
  571. package/src/assets/shaders/webgl1/Phong.fs.js +0 -211
  572. package/src/assets/shaders/webgl1/Pointing.fs.js +0 -40
  573. package/src/assets/shaders/webgl1/Pointing.vs.js +0 -46
  574. package/src/assets/shaders/webgl1/Unlit.fs.js +0 -55
  575. package/src/assets/shaders/webgl1/include/ClipPlanes.glsl.js +0 -17
  576. package/src/assets/shaders/webgl1/include/Colors.glsl.js +0 -27
  577. package/src/assets/shaders/webgl1/include/Fog.glsl.js +0 -32
  578. package/src/assets/shaders/webgl1/include/Fragment.glsl.js +0 -137
  579. package/src/assets/shaders/webgl1/include/Hatch.glsl.js +0 -22
  580. package/src/assets/shaders/webgl1/include/Material.glsl.js +0 -59
  581. package/src/assets/shaders/webgl1/include/Normal.glsl.js +0 -48
  582. package/src/assets/shaders/webgl1/include/Perlin.glsl.js +0 -41
  583. package/src/assets/shaders/webgl1/include/Point.glsl.js +0 -47
  584. package/src/assets/shaders/webgl1/include/PointSize.glsl.js +0 -31
  585. package/src/assets/shaders/webgl1/include/Shadow.glsl.js +0 -314
  586. package/src/assets/shaders/webgl1/include/SpotFactor.glsl.js +0 -14
  587. package/src/assets/shaders/webgl1/include/Texture.glsl.js +0 -532
  588. package/src/assets/shaders/webgl1/include/Vertex.glsl.js +0 -154
  589. package/src/assets/shaders/webgl2/Compose.fs.js +0 -29
  590. package/src/assets/shaders/webgl2/Compose.vs.js +0 -14
  591. package/src/assets/shaders/webgl2/Default.vs.js +0 -16
  592. package/src/assets/shaders/webgl2/Depth.fs.js +0 -28
  593. package/src/assets/shaders/webgl2/Depth.vs.js +0 -37
  594. package/src/assets/shaders/webgl2/Gouraud.fs.js +0 -42
  595. package/src/assets/shaders/webgl2/Gouraud.vs.js +0 -60
  596. package/src/assets/shaders/webgl2/LineTransform.fs.js +0 -7
  597. package/src/assets/shaders/webgl2/LineTransform.vs.js +0 -90
  598. package/src/assets/shaders/webgl2/PBR.fs.js +0 -373
  599. package/src/assets/shaders/webgl2/Phong.fs.js +0 -225
  600. package/src/assets/shaders/webgl2/Pointing.fs.js +0 -49
  601. package/src/assets/shaders/webgl2/Pointing.vs.js +0 -68
  602. package/src/assets/shaders/webgl2/Unlit.fs.js +0 -60
  603. package/src/assets/shaders/webgl2/include/ClipPlanes.glsl.js +0 -17
  604. package/src/assets/shaders/webgl2/include/Colors.glsl.js +0 -27
  605. package/src/assets/shaders/webgl2/include/Fog.glsl.js +0 -32
  606. package/src/assets/shaders/webgl2/include/Fragment.glsl.js +0 -162
  607. package/src/assets/shaders/webgl2/include/Hatch.glsl.js +0 -22
  608. package/src/assets/shaders/webgl2/include/Line2.glsl.js +0 -22
  609. package/src/assets/shaders/webgl2/include/Material.glsl.js +0 -59
  610. package/src/assets/shaders/webgl2/include/Normal.glsl.js +0 -50
  611. package/src/assets/shaders/webgl2/include/Particle.glsl.js +0 -34
  612. package/src/assets/shaders/webgl2/include/Perlin.glsl.js +0 -41
  613. package/src/assets/shaders/webgl2/include/Point.glsl.js +0 -47
  614. package/src/assets/shaders/webgl2/include/PointSize.glsl.js +0 -31
  615. package/src/assets/shaders/webgl2/include/Shadow.glsl.js +0 -328
  616. package/src/assets/shaders/webgl2/include/Skin.glsl.js +0 -88
  617. package/src/assets/shaders/webgl2/include/SpotFactor.glsl.js +0 -14
  618. package/src/assets/shaders/webgl2/include/Stipple.glsl.js +0 -43
  619. package/src/assets/shaders/webgl2/include/Texture.glsl.js +0 -527
  620. package/src/assets/shaders/webgl2/include/Utils.glsl.js +0 -13
  621. package/src/assets/shaders/webgl2/include/Vertex.glsl.js +0 -180
  622. package/src/bookmarks.js +0 -297
  623. package/src/example.html +0 -21
  624. package/src/examples.js +0 -156
  625. package/src/lib/ammojs/AmmoClass.js +0 -50
  626. package/src/lib/ammojs/Makefile +0 -25
  627. package/src/lib/ammojs/ammo.idl +0 -1031
  628. package/src/lib/ammojs/ammo.js +0 -35
  629. package/src/lib/jquery.js +0 -59
  630. package/src/lib/libgif/libgif.js +0 -1004
  631. package/src/lib/libtess.js +0 -1
  632. package/src/lib/nurbs/extras/sample.js +0 -233
  633. package/src/lib/nurbs/nurbs.js +0 -325
  634. package/src/lib/nurbs/src/evaluate.js +0 -402
  635. package/src/lib/nurbs/src/numerical-derivative.js +0 -49
  636. package/src/lib/nurbs/src/support.js +0 -140
  637. package/src/lib/nurbs/src/transform.js +0 -70
  638. package/src/lib/nurbs/src/utils/accessor-preamble.js +0 -27
  639. package/src/lib/nurbs/src/utils/bisection-search.js +0 -22
  640. package/src/lib/nurbs/src/utils/cache-key.js +0 -50
  641. package/src/lib/nurbs/src/utils/create-accessors.js +0 -103
  642. package/src/lib/nurbs/src/utils/infer-type.js +0 -44
  643. package/src/lib/nurbs/src/utils/is-array-like.js +0 -5
  644. package/src/lib/nurbs/src/utils/is-ndarray-like.js +0 -13
  645. package/src/lib/nurbs/src/utils/is-ndarray.js +0 -16
  646. package/src/lib/nurbs/src/utils/ndloop.js +0 -18
  647. package/src/lib/nurbs/src/utils/size-getter.js +0 -16
  648. package/src/lib/nurbs/src/utils/variable.js +0 -26
  649. package/src/locale/de.po.js +0 -182
  650. package/src/locale/fr.po.js +0 -179
  651. package/src/locale/gettext.js +0 -120
  652. package/src/shim.js +0 -81
  653. package/src/standard/Geospatial/Geodetic.js +0 -257
  654. package/src/standard/Geospatial/ReferenceEllipsoids.js +0 -92
  655. package/src/standard/Geospatial/UniversalTransverseMercator.js +0 -205
  656. package/src/standard/Math/Algorithm.js +0 -237
  657. package/src/standard/Math/Algorithms/Bezier.js +0 -232
  658. package/src/standard/Math/Algorithms/MergeSort.js +0 -104
  659. package/src/standard/Math/Algorithms/PartialSort.js +0 -92
  660. package/src/standard/Math/Algorithms/QuickSort.js +0 -106
  661. package/src/standard/Math/Algorithms/SAT.js +0 -109
  662. package/src/standard/Math/Algorithms/eigen_decomposition.js +0 -190
  663. package/src/standard/Math/Geometry/Box2.js +0 -257
  664. package/src/standard/Math/Geometry/Box3.js +0 -665
  665. package/src/standard/Math/Geometry/Camera.js +0 -127
  666. package/src/standard/Math/Geometry/Cylinder3.js +0 -159
  667. package/src/standard/Math/Geometry/Line2.js +0 -155
  668. package/src/standard/Math/Geometry/Line3.js +0 -235
  669. package/src/standard/Math/Geometry/Plane3.js +0 -163
  670. package/src/standard/Math/Geometry/Sphere3.js +0 -191
  671. package/src/standard/Math/Geometry/Spheroid3.js +0 -86
  672. package/src/standard/Math/Geometry/Triangle2.js +0 -78
  673. package/src/standard/Math/Geometry/Triangle3.js +0 -140
  674. package/src/standard/Math/Geometry/ViewVolume.js +0 -422
  675. package/src/standard/Math/Numbers/Color3.js +0 -258
  676. package/src/standard/Math/Numbers/Color4.js +0 -188
  677. package/src/standard/Math/Numbers/Complex.js +0 -246
  678. package/src/standard/Math/Numbers/Matrix2.js +0 -274
  679. package/src/standard/Math/Numbers/Matrix3.js +0 -673
  680. package/src/standard/Math/Numbers/Matrix4.js +0 -794
  681. package/src/standard/Math/Numbers/Quaternion.js +0 -665
  682. package/src/standard/Math/Numbers/Rotation4.js +0 -478
  683. package/src/standard/Math/Numbers/Vector2.js +0 -238
  684. package/src/standard/Math/Numbers/Vector3.js +0 -292
  685. package/src/standard/Math/Numbers/Vector4.js +0 -307
  686. package/src/standard/Math/Utility/BVH.js +0 -378
  687. package/src/standard/Math/Utility/MatrixStack.js +0 -114
  688. package/src/standard/Time/StopWatch.js +0 -84
  689. package/src/standard/Utility/BitSet.js +0 -117
  690. package/src/standard/Utility/DataStorage.js +0 -132
  691. package/src/standard/Utility/MapUtilities.js +0 -83
  692. package/src/standard/Utility/ObjectCache.js +0 -72
  693. package/src/standard/Utility/Shuffle.js +0 -66
  694. package/src/tests.js +0 -399
  695. package/src/x_ite/Base/Events.js +0 -73
  696. package/src/x_ite/Base/FieldArray.js +0 -70
  697. package/src/x_ite/Base/FieldDefinitionArray.js +0 -70
  698. package/src/x_ite/Base/X3DArrayField.js +0 -138
  699. package/src/x_ite/Base/X3DBaseNode.js +0 -639
  700. package/src/x_ite/Base/X3DCast.js +0 -75
  701. package/src/x_ite/Base/X3DChildObject.js +0 -265
  702. package/src/x_ite/Base/X3DConstants.js +0 -146
  703. package/src/x_ite/Base/X3DField.js +0 -429
  704. package/src/x_ite/Base/X3DFieldDefinition.js +0 -75
  705. package/src/x_ite/Base/X3DInfoArray.js +0 -381
  706. package/src/x_ite/Base/X3DObject.js +0 -254
  707. package/src/x_ite/Base/X3DObjectArrayField.js +0 -541
  708. package/src/x_ite/Base/X3DTypedArrayField.js +0 -1018
  709. package/src/x_ite/Browser/Core/BrowserOptions.js +0 -388
  710. package/src/x_ite/Browser/Core/BrowserProperties.js +0 -84
  711. package/src/x_ite/Browser/Core/BrowserTimings.js +0 -300
  712. package/src/x_ite/Browser/Core/Context.js +0 -278
  713. package/src/x_ite/Browser/Core/ContextMenu.js +0 -718
  714. package/src/x_ite/Browser/Core/Notification.js +0 -117
  715. package/src/x_ite/Browser/Core/PrimitiveQuality.js +0 -57
  716. package/src/x_ite/Browser/Core/RenderingProperties.js +0 -104
  717. package/src/x_ite/Browser/Core/Shading.js +0 -59
  718. package/src/x_ite/Browser/Core/TextureQuality.js +0 -57
  719. package/src/x_ite/Browser/Core/X3DCoreContext.js +0 -758
  720. package/src/x_ite/Browser/DOMIntegration.js +0 -383
  721. package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +0 -76
  722. package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +0 -78
  723. package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +0 -176
  724. package/src/x_ite/Browser/Geometry2D/Arc2DOptions.js +0 -70
  725. package/src/x_ite/Browser/Geometry2D/ArcClose2DOptions.js +0 -70
  726. package/src/x_ite/Browser/Geometry2D/Circle2DOptions.js +0 -106
  727. package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +0 -159
  728. package/src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js +0 -112
  729. package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +0 -134
  730. package/src/x_ite/Browser/Geometry3D/BoxOptions.js +0 -123
  731. package/src/x_ite/Browser/Geometry3D/ConeOptions.js +0 -71
  732. package/src/x_ite/Browser/Geometry3D/CylinderOptions.js +0 -71
  733. package/src/x_ite/Browser/Geometry3D/IcoSphere.js +0 -404
  734. package/src/x_ite/Browser/Geometry3D/IcoSphereOptions.js +0 -115
  735. package/src/x_ite/Browser/Geometry3D/QuadSphereOptions.js +0 -287
  736. package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +0 -128
  737. package/src/x_ite/Browser/Geospatial/Geocentric.js +0 -75
  738. package/src/x_ite/Browser/Geospatial/Geospatial.js +0 -205
  739. package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +0 -84
  740. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +0 -186
  741. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator1.js +0 -87
  742. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator2.js +0 -53
  743. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator3.js +0 -53
  744. package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +0 -107
  745. package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +0 -112
  746. package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +0 -97
  747. package/src/x_ite/Browser/Layering/X3DLayeringContext.js +0 -70
  748. package/src/x_ite/Browser/Layout/ScreenText.js +0 -412
  749. package/src/x_ite/Browser/Layout/X3DLayoutContext.js +0 -131
  750. package/src/x_ite/Browser/Legacy.js +0 -84
  751. package/src/x_ite/Browser/Lighting/X3DLightingContext.js +0 -105
  752. package/src/x_ite/Browser/NURBS/NURBS.js +0 -471
  753. package/src/x_ite/Browser/Navigation/ExamineViewer.js +0 -866
  754. package/src/x_ite/Browser/Navigation/FlyViewer.js +0 -99
  755. package/src/x_ite/Browser/Navigation/LookAtViewer.js +0 -519
  756. package/src/x_ite/Browser/Navigation/NoneViewer.js +0 -77
  757. package/src/x_ite/Browser/Navigation/PlaneViewer.js +0 -243
  758. package/src/x_ite/Browser/Navigation/WalkViewer.js +0 -130
  759. package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +0 -727
  760. package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +0 -240
  761. package/src/x_ite/Browser/Navigation/X3DViewer.js +0 -204
  762. package/src/x_ite/Browser/Networking/URLs.js +0 -103
  763. package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +0 -227
  764. package/src/x_ite/Browser/ParticleSystems/BVH.glsl.js +0 -185
  765. package/src/x_ite/Browser/ParticleSystems/Box3.glsl.js +0 -49
  766. package/src/x_ite/Browser/ParticleSystems/GeometryTypes.js +0 -59
  767. package/src/x_ite/Browser/ParticleSystems/Line3.glsl.js +0 -57
  768. package/src/x_ite/Browser/ParticleSystems/Plane3.glsl.js +0 -162
  769. package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +0 -72
  770. package/src/x_ite/Browser/Picking/IntersectionType.js +0 -56
  771. package/src/x_ite/Browser/Picking/MatchCriterion.js +0 -57
  772. package/src/x_ite/Browser/Picking/SortOrder.js +0 -58
  773. package/src/x_ite/Browser/Picking/VolumePicker.js +0 -177
  774. package/src/x_ite/Browser/Picking/X3DPickingContext.js +0 -132
  775. package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +0 -279
  776. package/src/x_ite/Browser/PointingDeviceSensor/PointingDeviceSensorContainer.js +0 -85
  777. package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +0 -395
  778. package/src/x_ite/Browser/Rendering/GeometryContext.js +0 -83
  779. package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +0 -270
  780. package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +0 -63
  781. package/src/x_ite/Browser/Scripting/X3DScriptingContext.js +0 -67
  782. package/src/x_ite/Browser/Scripting/evaluate.js +0 -68
  783. package/src/x_ite/Browser/Shaders/ShaderCompiler.js +0 -97
  784. package/src/x_ite/Browser/Shaders/ShaderSource.js +0 -204
  785. package/src/x_ite/Browser/Shaders/Shaders.js +0 -191
  786. package/src/x_ite/Browser/Shaders/X3DShadersContext.js +0 -190
  787. package/src/x_ite/Browser/Shape/AlphaMode.js +0 -58
  788. package/src/x_ite/Browser/Shape/X3DShapeContext.js +0 -209
  789. package/src/x_ite/Browser/Sound/X3DSoundContext.js +0 -57
  790. package/src/x_ite/Browser/Text/PolygonText.js +0 -360
  791. package/src/x_ite/Browser/Text/TextAlignment.js +0 -58
  792. package/src/x_ite/Browser/Text/X3DTextContext.js +0 -134
  793. package/src/x_ite/Browser/Text/X3DTextGeometry.js +0 -614
  794. package/src/x_ite/Browser/Texturing/FunctionType.js +0 -57
  795. package/src/x_ite/Browser/Texturing/GifMedia.js +0 -113
  796. package/src/x_ite/Browser/Texturing/ModeType.js +0 -74
  797. package/src/x_ite/Browser/Texturing/SourceType.js +0 -58
  798. package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +0 -66
  799. package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +0 -340
  800. package/src/x_ite/Browser/Texturing3D/DICOMParser.js +0 -1097
  801. package/src/x_ite/Browser/Texturing3D/NRRDParser.js +0 -458
  802. package/src/x_ite/Browser/Time/X3DTimeContext.js +0 -108
  803. package/src/x_ite/Browser/VERSION.js +0 -48
  804. package/src/x_ite/Browser/VolumeRendering/VolumeMaterial.js +0 -145
  805. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs.js +0 -60
  806. package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs.js +0 -26
  807. package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +0 -131
  808. package/src/x_ite/Browser/X3DBrowser.js +0 -1060
  809. package/src/x_ite/Browser/X3DBrowserContext.js +0 -436
  810. package/src/x_ite/Components/Annotation/AnnotationLayer.js +0 -109
  811. package/src/x_ite/Components/Annotation/AnnotationTarget.js +0 -104
  812. package/src/x_ite/Components/Annotation/GroupAnnotation.js +0 -119
  813. package/src/x_ite/Components/Annotation/IconAnnotation.js +0 -117
  814. package/src/x_ite/Components/Annotation/TextAnnotation.js +0 -105
  815. package/src/x_ite/Components/Annotation/URLAnnotation.js +0 -104
  816. package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +0 -80
  817. package/src/x_ite/Components/CADGeometry/CADAssembly.js +0 -107
  818. package/src/x_ite/Components/CADGeometry/CADFace.js +0 -252
  819. package/src/x_ite/Components/CADGeometry/CADLayer.js +0 -102
  820. package/src/x_ite/Components/CADGeometry/CADPart.js +0 -112
  821. package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +0 -132
  822. package/src/x_ite/Components/CADGeometry/QuadSet.js +0 -127
  823. package/src/x_ite/Components/CADGeometry/X3DProductStructureChildNode.js +0 -74
  824. package/src/x_ite/Components/Core/MetadataBoolean.js +0 -119
  825. package/src/x_ite/Components/Core/MetadataDouble.js +0 -119
  826. package/src/x_ite/Components/Core/MetadataFloat.js +0 -119
  827. package/src/x_ite/Components/Core/MetadataInteger.js +0 -119
  828. package/src/x_ite/Components/Core/MetadataSet.js +0 -119
  829. package/src/x_ite/Components/Core/MetadataString.js +0 -119
  830. package/src/x_ite/Components/Core/WorldInfo.js +0 -110
  831. package/src/x_ite/Components/Core/X3DBindableNode.js +0 -108
  832. package/src/x_ite/Components/Core/X3DChildNode.js +0 -101
  833. package/src/x_ite/Components/Core/X3DInfoNode.js +0 -74
  834. package/src/x_ite/Components/Core/X3DMetadataObject.js +0 -75
  835. package/src/x_ite/Components/Core/X3DNode.js +0 -1393
  836. package/src/x_ite/Components/Core/X3DPrototypeInstance.js +0 -1012
  837. package/src/x_ite/Components/Core/X3DSensorNode.js +0 -74
  838. package/src/x_ite/Components/Core.js +0 -85
  839. package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +0 -250
  840. package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +0 -295
  841. package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +0 -278
  842. package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +0 -141
  843. package/src/x_ite/Components/DIS/DISEntityManager.js +0 -104
  844. package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +0 -120
  845. package/src/x_ite/Components/DIS/EspduTransform.js +0 -194
  846. package/src/x_ite/Components/DIS/ReceiverPdu.js +0 -139
  847. package/src/x_ite/Components/DIS/SignalPdu.js +0 -139
  848. package/src/x_ite/Components/DIS/TransmitterPdu.js +0 -155
  849. package/src/x_ite/Components/EnvironmentalEffects/Background.js +0 -159
  850. package/src/x_ite/Components/EnvironmentalEffects/Fog.js +0 -132
  851. package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +0 -153
  852. package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +0 -129
  853. package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +0 -133
  854. package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +0 -613
  855. package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +0 -176
  856. package/src/x_ite/Components/EnvironmentalEffects.js +0 -71
  857. package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +0 -280
  858. package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +0 -319
  859. package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +0 -177
  860. package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +0 -143
  861. package/src/x_ite/Components/EnvironmentalSensor.js +0 -65
  862. package/src/x_ite/Components/EventUtilities/BooleanFilter.js +0 -118
  863. package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +0 -116
  864. package/src/x_ite/Components/EventUtilities/BooleanToggle.js +0 -109
  865. package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +0 -108
  866. package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +0 -116
  867. package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +0 -109
  868. package/src/x_ite/Components/EventUtilities/TimeTrigger.js +0 -108
  869. package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +0 -153
  870. package/src/x_ite/Components/EventUtilities/X3DTriggerNode.js +0 -74
  871. package/src/x_ite/Components/Followers/ColorChaser.js +0 -147
  872. package/src/x_ite/Components/Followers/ColorDamper.js +0 -145
  873. package/src/x_ite/Components/Followers/CoordinateChaser.js +0 -113
  874. package/src/x_ite/Components/Followers/CoordinateDamper.js +0 -115
  875. package/src/x_ite/Components/Followers/OrientationChaser.js +0 -134
  876. package/src/x_ite/Components/Followers/OrientationDamper.js +0 -130
  877. package/src/x_ite/Components/Followers/PositionChaser.js +0 -108
  878. package/src/x_ite/Components/Followers/PositionChaser2D.js +0 -108
  879. package/src/x_ite/Components/Followers/PositionDamper.js +0 -110
  880. package/src/x_ite/Components/Followers/PositionDamper2D.js +0 -110
  881. package/src/x_ite/Components/Followers/ScalarChaser.js +0 -136
  882. package/src/x_ite/Components/Followers/ScalarDamper.js +0 -126
  883. package/src/x_ite/Components/Followers/TexCoordChaser2D.js +0 -113
  884. package/src/x_ite/Components/Followers/TexCoordDamper2D.js +0 -115
  885. package/src/x_ite/Components/Followers/X3DChaserNode.js +0 -241
  886. package/src/x_ite/Components/Followers/X3DDamperNode.js +0 -176
  887. package/src/x_ite/Components/Followers/X3DFollowerNode.js +0 -151
  888. package/src/x_ite/Components/Followers.js +0 -91
  889. package/src/x_ite/Components/Geometry2D/Arc2D.js +0 -162
  890. package/src/x_ite/Components/Geometry2D/ArcClose2D.js +0 -227
  891. package/src/x_ite/Components/Geometry2D/Circle2D.js +0 -130
  892. package/src/x_ite/Components/Geometry2D/Disk2D.js +0 -257
  893. package/src/x_ite/Components/Geometry2D/Polyline2D.js +0 -111
  894. package/src/x_ite/Components/Geometry2D/Polypoint2D.js +0 -110
  895. package/src/x_ite/Components/Geometry2D/Rectangle2D.js +0 -148
  896. package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +0 -142
  897. package/src/x_ite/Components/Geometry3D/Box.js +0 -146
  898. package/src/x_ite/Components/Geometry3D/Cone.js +0 -248
  899. package/src/x_ite/Components/Geometry3D/Cylinder.js +0 -309
  900. package/src/x_ite/Components/Geometry3D/ElevationGrid.js +0 -439
  901. package/src/x_ite/Components/Geometry3D/Extrusion.js +0 -729
  902. package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +0 -473
  903. package/src/x_ite/Components/Geometry3D/Sphere.js +0 -146
  904. package/src/x_ite/Components/Geometry3D.js +0 -71
  905. package/src/x_ite/Components/Geospatial/GeoCoordinate.js +0 -238
  906. package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +0 -433
  907. package/src/x_ite/Components/Geospatial/GeoLOD.js +0 -466
  908. package/src/x_ite/Components/Geospatial/GeoLocation.js +0 -130
  909. package/src/x_ite/Components/Geospatial/GeoMetadata.js +0 -117
  910. package/src/x_ite/Components/Geospatial/GeoOrigin.js +0 -118
  911. package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +0 -156
  912. package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +0 -163
  913. package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +0 -135
  914. package/src/x_ite/Components/Geospatial/GeoTransform.js +0 -145
  915. package/src/x_ite/Components/Geospatial/GeoViewpoint.js +0 -290
  916. package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +0 -272
  917. package/src/x_ite/Components/Grouping/Group.js +0 -101
  918. package/src/x_ite/Components/Grouping/StaticGroup.js +0 -244
  919. package/src/x_ite/Components/Grouping/Switch.js +0 -257
  920. package/src/x_ite/Components/Grouping/Transform.js +0 -106
  921. package/src/x_ite/Components/Grouping/X3DBoundedObject.js +0 -150
  922. package/src/x_ite/Components/Grouping/X3DGroupingNode.js +0 -722
  923. package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +0 -135
  924. package/src/x_ite/Components/Grouping/X3DTransformNode.js +0 -95
  925. package/src/x_ite/Components/Grouping.js +0 -73
  926. package/src/x_ite/Components/HAnim/HAnimDisplacer.js +0 -101
  927. package/src/x_ite/Components/HAnim/HAnimHumanoid.js +0 -640
  928. package/src/x_ite/Components/HAnim/HAnimJoint.js +0 -198
  929. package/src/x_ite/Components/HAnim/HAnimMotion.js +0 -434
  930. package/src/x_ite/Components/HAnim/HAnimSegment.js +0 -110
  931. package/src/x_ite/Components/HAnim/HAnimSite.js +0 -108
  932. package/src/x_ite/Components/Interpolation/ColorInterpolator.js +0 -132
  933. package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +0 -132
  934. package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +0 -129
  935. package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +0 -149
  936. package/src/x_ite/Components/Interpolation/NormalInterpolator.js +0 -158
  937. package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +0 -134
  938. package/src/x_ite/Components/Interpolation/PositionInterpolator.js +0 -125
  939. package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +0 -125
  940. package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +0 -120
  941. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +0 -147
  942. package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +0 -147
  943. package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +0 -147
  944. package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +0 -137
  945. package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +0 -137
  946. package/src/x_ite/Components/Interpolation.js +0 -85
  947. package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +0 -379
  948. package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +0 -164
  949. package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +0 -120
  950. package/src/x_ite/Components/Layering/Layer.js +0 -120
  951. package/src/x_ite/Components/Layering/LayerSet.js +0 -208
  952. package/src/x_ite/Components/Layering/Viewport.js +0 -180
  953. package/src/x_ite/Components/Layering/X3DLayerNode.js +0 -407
  954. package/src/x_ite/Components/Layering/X3DViewportNode.js +0 -74
  955. package/src/x_ite/Components/Layering.js +0 -67
  956. package/src/x_ite/Components/Layout/Layout.js +0 -642
  957. package/src/x_ite/Components/Layout/LayoutGroup.js +0 -188
  958. package/src/x_ite/Components/Layout/LayoutLayer.js +0 -124
  959. package/src/x_ite/Components/Layout/ScreenFontStyle.js +0 -120
  960. package/src/x_ite/Components/Layout/ScreenGroup.js +0 -138
  961. package/src/x_ite/Components/Layout/X3DLayoutNode.js +0 -74
  962. package/src/x_ite/Components/Lighting/DirectionalLight.js +0 -291
  963. package/src/x_ite/Components/Lighting/EnvironmentLight.js +0 -157
  964. package/src/x_ite/Components/Lighting/PointLight.js +0 -341
  965. package/src/x_ite/Components/Lighting/SpotLight.js +0 -360
  966. package/src/x_ite/Components/Lighting/X3DLightNode.js +0 -222
  967. package/src/x_ite/Components/Lighting.js +0 -67
  968. package/src/x_ite/Components/NURBS/Contour2D.js +0 -170
  969. package/src/x_ite/Components/NURBS/ContourPolyline2D.js +0 -165
  970. package/src/x_ite/Components/NURBS/CoordinateDouble.js +0 -95
  971. package/src/x_ite/Components/NURBS/NurbsCurve.js +0 -234
  972. package/src/x_ite/Components/NURBS/NurbsCurve2D.js +0 -212
  973. package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +0 -229
  974. package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +0 -108
  975. package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +0 -217
  976. package/src/x_ite/Components/NURBS/NurbsSet.js +0 -186
  977. package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +0 -189
  978. package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +0 -181
  979. package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +0 -181
  980. package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +0 -156
  981. package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +0 -177
  982. package/src/x_ite/Components/NURBS/X3DNurbsControlCurveNode.js +0 -74
  983. package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +0 -393
  984. package/src/x_ite/Components/NURBS/X3DParametricGeometryNode.js +0 -81
  985. package/src/x_ite/Components/Navigation/Billboard.js +0 -188
  986. package/src/x_ite/Components/Navigation/Collision.js +0 -184
  987. package/src/x_ite/Components/Navigation/LOD.js +0 -335
  988. package/src/x_ite/Components/Navigation/NavigationInfo.js +0 -344
  989. package/src/x_ite/Components/Navigation/OrthoViewpoint.js +0 -356
  990. package/src/x_ite/Components/Navigation/Viewpoint.js +0 -200
  991. package/src/x_ite/Components/Navigation/ViewpointGroup.js +0 -257
  992. package/src/x_ite/Components/Navigation/X3DViewpointNode.js +0 -594
  993. package/src/x_ite/Components/Navigation.js +0 -73
  994. package/src/x_ite/Components/Networking/Anchor.js +0 -220
  995. package/src/x_ite/Components/Networking/Inline.js +0 -314
  996. package/src/x_ite/Components/Networking/LoadSensor.js +0 -265
  997. package/src/x_ite/Components/Networking/X3DNetworkSensorNode.js +0 -74
  998. package/src/x_ite/Components/Networking/X3DUrlObject.js +0 -296
  999. package/src/x_ite/Components/Networking.js +0 -67
  1000. package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +0 -132
  1001. package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +0 -162
  1002. package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +0 -137
  1003. package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +0 -120
  1004. package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +0 -1081
  1005. package/src/x_ite/Components/ParticleSystems/PointEmitter.js +0 -153
  1006. package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +0 -244
  1007. package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +0 -252
  1008. package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +0 -289
  1009. package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +0 -142
  1010. package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +0 -1004
  1011. package/src/x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode.js +0 -78
  1012. package/src/x_ite/Components/Picking/LinePickSensor.js +0 -339
  1013. package/src/x_ite/Components/Picking/PickableGroup.js +0 -223
  1014. package/src/x_ite/Components/Picking/PointPickSensor.js +0 -350
  1015. package/src/x_ite/Components/Picking/PrimitivePickSensor.js +0 -270
  1016. package/src/x_ite/Components/Picking/VolumePickSensor.js +0 -245
  1017. package/src/x_ite/Components/Picking/X3DPickSensorNode.js +0 -441
  1018. package/src/x_ite/Components/Picking/X3DPickableObject.js +0 -95
  1019. package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +0 -303
  1020. package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +0 -300
  1021. package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +0 -220
  1022. package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +0 -104
  1023. package/src/x_ite/Components/PointingDeviceSensor/X3DDragSensorNode.js +0 -76
  1024. package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +0 -132
  1025. package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +0 -106
  1026. package/src/x_ite/Components/PointingDeviceSensor.js +0 -71
  1027. package/src/x_ite/Components/Rendering/ClipPlane.js +0 -180
  1028. package/src/x_ite/Components/Rendering/Color.js +0 -163
  1029. package/src/x_ite/Components/Rendering/ColorRGBA.js +0 -166
  1030. package/src/x_ite/Components/Rendering/Coordinate.js +0 -97
  1031. package/src/x_ite/Components/Rendering/IndexedLineSet.js +0 -307
  1032. package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +0 -165
  1033. package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +0 -122
  1034. package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +0 -173
  1035. package/src/x_ite/Components/Rendering/LineSet.js +0 -240
  1036. package/src/x_ite/Components/Rendering/Normal.js +0 -193
  1037. package/src/x_ite/Components/Rendering/PointSet.js +0 -222
  1038. package/src/x_ite/Components/Rendering/TriangleFanSet.js +0 -147
  1039. package/src/x_ite/Components/Rendering/TriangleSet.js +0 -117
  1040. package/src/x_ite/Components/Rendering/TriangleStripSet.js +0 -151
  1041. package/src/x_ite/Components/Rendering/X3DColorNode.js +0 -88
  1042. package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +0 -363
  1043. package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +0 -193
  1044. package/src/x_ite/Components/Rendering/X3DGeometricPropertyNode.js +0 -74
  1045. package/src/x_ite/Components/Rendering/X3DGeometryNode.js +0 -1189
  1046. package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +0 -489
  1047. package/src/x_ite/Components/Rendering/X3DNormalNode.js +0 -74
  1048. package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +0 -182
  1049. package/src/x_ite/Components/Rendering.js +0 -99
  1050. package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +0 -210
  1051. package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +0 -261
  1052. package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +0 -497
  1053. package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +0 -214
  1054. package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +0 -281
  1055. package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +0 -180
  1056. package/src/x_ite/Components/RigidBodyPhysics/Contact.js +0 -118
  1057. package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +0 -292
  1058. package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +0 -132
  1059. package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +0 -518
  1060. package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +0 -389
  1061. package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +0 -251
  1062. package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +0 -230
  1063. package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +0 -114
  1064. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +0 -167
  1065. package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +0 -89
  1066. package/src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js +0 -221
  1067. package/src/x_ite/Components/Scripting/Script.js +0 -510
  1068. package/src/x_ite/Components/Scripting/X3DScriptNode.js +0 -89
  1069. package/src/x_ite/Components/Shaders/ComposedShader.js +0 -228
  1070. package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +0 -151
  1071. package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +0 -142
  1072. package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +0 -141
  1073. package/src/x_ite/Components/Shaders/PackagedShader.js +0 -129
  1074. package/src/x_ite/Components/Shaders/ProgramShader.js +0 -99
  1075. package/src/x_ite/Components/Shaders/ShaderPart.js +0 -238
  1076. package/src/x_ite/Components/Shaders/ShaderProgram.js +0 -126
  1077. package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +0 -1357
  1078. package/src/x_ite/Components/Shaders/X3DShaderNode.js +0 -105
  1079. package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +0 -89
  1080. package/src/x_ite/Components/Shaders.js +0 -79
  1081. package/src/x_ite/Components/Shape/AcousticProperties.js +0 -100
  1082. package/src/x_ite/Components/Shape/Appearance.js +0 -458
  1083. package/src/x_ite/Components/Shape/FillProperties.js +0 -181
  1084. package/src/x_ite/Components/Shape/LineProperties.js +0 -184
  1085. package/src/x_ite/Components/Shape/Material.js +0 -412
  1086. package/src/x_ite/Components/Shape/PhysicalMaterial.js +0 -308
  1087. package/src/x_ite/Components/Shape/PointProperties.js +0 -169
  1088. package/src/x_ite/Components/Shape/Shape.js +0 -205
  1089. package/src/x_ite/Components/Shape/TwoSidedMaterial.js +0 -292
  1090. package/src/x_ite/Components/Shape/UnlitMaterial.js +0 -142
  1091. package/src/x_ite/Components/Shape/X3DAppearanceChildNode.js +0 -74
  1092. package/src/x_ite/Components/Shape/X3DAppearanceNode.js +0 -88
  1093. package/src/x_ite/Components/Shape/X3DMaterialNode.js +0 -350
  1094. package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +0 -212
  1095. package/src/x_ite/Components/Shape/X3DShapeNode.js +0 -211
  1096. package/src/x_ite/Components/Shape.js +0 -87
  1097. package/src/x_ite/Components/Sound/Analyser.js +0 -118
  1098. package/src/x_ite/Components/Sound/AudioClip.js +0 -212
  1099. package/src/x_ite/Components/Sound/AudioDestination.js +0 -107
  1100. package/src/x_ite/Components/Sound/BiquadFilter.js +0 -117
  1101. package/src/x_ite/Components/Sound/BufferAudioSource.js +0 -142
  1102. package/src/x_ite/Components/Sound/ChannelMerger.js +0 -104
  1103. package/src/x_ite/Components/Sound/ChannelSelector.js +0 -105
  1104. package/src/x_ite/Components/Sound/ChannelSplitter.js +0 -105
  1105. package/src/x_ite/Components/Sound/Convolver.js +0 -115
  1106. package/src/x_ite/Components/Sound/Delay.js +0 -115
  1107. package/src/x_ite/Components/Sound/DynamicsCompressor.js +0 -119
  1108. package/src/x_ite/Components/Sound/Gain.js +0 -113
  1109. package/src/x_ite/Components/Sound/ListenerPointSource.js +0 -116
  1110. package/src/x_ite/Components/Sound/MicrophoneSource.js +0 -110
  1111. package/src/x_ite/Components/Sound/OscillatorSource.js +0 -112
  1112. package/src/x_ite/Components/Sound/PeriodicWave.js +0 -99
  1113. package/src/x_ite/Components/Sound/Sound.js +0 -302
  1114. package/src/x_ite/Components/Sound/SpatialSound.js +0 -116
  1115. package/src/x_ite/Components/Sound/StreamAudioDestination.js +0 -107
  1116. package/src/x_ite/Components/Sound/StreamAudioSource.js +0 -110
  1117. package/src/x_ite/Components/Sound/WaveShaper.js +0 -115
  1118. package/src/x_ite/Components/Sound/X3DSoundChannelNode.js +0 -74
  1119. package/src/x_ite/Components/Sound/X3DSoundDestinationNode.js +0 -74
  1120. package/src/x_ite/Components/Sound/X3DSoundNode.js +0 -74
  1121. package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +0 -92
  1122. package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +0 -227
  1123. package/src/x_ite/Components/Sound.js +0 -109
  1124. package/src/x_ite/Components/Text/FontStyle.js +0 -116
  1125. package/src/x_ite/Components/Text/Text.js +0 -185
  1126. package/src/x_ite/Components/Text/X3DFontStyleNode.js +0 -261
  1127. package/src/x_ite/Components/TextureProjector/TextureProjector.js +0 -213
  1128. package/src/x_ite/Components/TextureProjector/TextureProjectorParallel.js +0 -268
  1129. package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +0 -224
  1130. package/src/x_ite/Components/Texturing/ImageTexture.js +0 -294
  1131. package/src/x_ite/Components/Texturing/MovieTexture.js +0 -287
  1132. package/src/x_ite/Components/Texturing/MultiTexture.js +0 -345
  1133. package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +0 -200
  1134. package/src/x_ite/Components/Texturing/MultiTextureTransform.js +0 -154
  1135. package/src/x_ite/Components/Texturing/PixelTexture.js +0 -284
  1136. package/src/x_ite/Components/Texturing/TextureCoordinate.js +0 -179
  1137. package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +0 -163
  1138. package/src/x_ite/Components/Texturing/TextureProperties.js +0 -226
  1139. package/src/x_ite/Components/Texturing/TextureTransform.js +0 -162
  1140. package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +0 -101
  1141. package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +0 -195
  1142. package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +0 -99
  1143. package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +0 -172
  1144. package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +0 -74
  1145. package/src/x_ite/Components/Texturing/X3DTextureNode.js +0 -88
  1146. package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +0 -74
  1147. package/src/x_ite/Components/Texturing.js +0 -91
  1148. package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +0 -201
  1149. package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +0 -183
  1150. package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +0 -245
  1151. package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +0 -221
  1152. package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +0 -179
  1153. package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +0 -179
  1154. package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +0 -151
  1155. package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +0 -114
  1156. package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +0 -173
  1157. package/src/x_ite/Components/Time/TimeSensor.js +0 -223
  1158. package/src/x_ite/Components/Time/X3DTimeDependentNode.js +0 -369
  1159. package/src/x_ite/Components/Time.js +0 -61
  1160. package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +0 -355
  1161. package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +0 -154
  1162. package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +0 -311
  1163. package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +0 -204
  1164. package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +0 -180
  1165. package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +0 -367
  1166. package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +0 -179
  1167. package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +0 -230
  1168. package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +0 -280
  1169. package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +0 -280
  1170. package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +0 -179
  1171. package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +0 -186
  1172. package/src/x_ite/Components/VolumeRendering/VolumeData.js +0 -214
  1173. package/src/x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode.js +0 -74
  1174. package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +0 -241
  1175. package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +0 -138
  1176. package/src/x_ite/Components/X_ITE/BlendMode.js +0 -206
  1177. package/src/x_ite/Components.js +0 -99
  1178. package/src/x_ite/Configuration/AbstractNodes.js +0 -50
  1179. package/src/x_ite/Configuration/AbstractNodesArray.js +0 -78
  1180. package/src/x_ite/Configuration/ComponentInfo.js +0 -137
  1181. package/src/x_ite/Configuration/ComponentInfoArray.js +0 -76
  1182. package/src/x_ite/Configuration/ConcreteNodes.js +0 -50
  1183. package/src/x_ite/Configuration/ConcreteNodesArray.js +0 -87
  1184. package/src/x_ite/Configuration/ProfileInfo.js +0 -92
  1185. package/src/x_ite/Configuration/ProfileInfoArray.js +0 -77
  1186. package/src/x_ite/Configuration/SupportedComponents.js +0 -307
  1187. package/src/x_ite/Configuration/SupportedProfiles.js +0 -245
  1188. package/src/x_ite/Configuration/UnitInfo.js +0 -158
  1189. package/src/x_ite/Configuration/UnitInfoArray.js +0 -70
  1190. package/src/x_ite/DEVELOPMENT.js +0 -50
  1191. package/src/x_ite/Execution/BindableList.js +0 -203
  1192. package/src/x_ite/Execution/BindableStack.js +0 -163
  1193. package/src/x_ite/Execution/ExportedNodesArray.js +0 -70
  1194. package/src/x_ite/Execution/ImportedNodesArray.js +0 -70
  1195. package/src/x_ite/Execution/NamedNodesArray.js +0 -70
  1196. package/src/x_ite/Execution/NamedNodesHandling.js +0 -84
  1197. package/src/x_ite/Execution/X3DExecutionContext.js +0 -1022
  1198. package/src/x_ite/Execution/X3DExportedNode.js +0 -201
  1199. package/src/x_ite/Execution/X3DImportedNode.js +0 -565
  1200. package/src/x_ite/Execution/X3DScene.js +0 -1112
  1201. package/src/x_ite/Execution/X3DWorld.js +0 -160
  1202. package/src/x_ite/Features.js +0 -59
  1203. package/src/x_ite/Fields/ArrayFields.js +0 -492
  1204. package/src/x_ite/Fields/SFBool.js +0 -104
  1205. package/src/x_ite/Fields/SFColor.js +0 -231
  1206. package/src/x_ite/Fields/SFColorRGBA.js +0 -198
  1207. package/src/x_ite/Fields/SFDouble.js +0 -108
  1208. package/src/x_ite/Fields/SFFloat.js +0 -108
  1209. package/src/x_ite/Fields/SFImage.js +0 -370
  1210. package/src/x_ite/Fields/SFInt32.js +0 -104
  1211. package/src/x_ite/Fields/SFMatrix3.js +0 -140
  1212. package/src/x_ite/Fields/SFMatrix4.js +0 -133
  1213. package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +0 -191
  1214. package/src/x_ite/Fields/SFNode.js +0 -435
  1215. package/src/x_ite/Fields/SFNodeCache.js +0 -108
  1216. package/src/x_ite/Fields/SFRotation.js +0 -275
  1217. package/src/x_ite/Fields/SFString.js +0 -134
  1218. package/src/x_ite/Fields/SFTime.js +0 -104
  1219. package/src/x_ite/Fields/SFVec2.js +0 -120
  1220. package/src/x_ite/Fields/SFVec3.js +0 -140
  1221. package/src/x_ite/Fields/SFVec4.js +0 -148
  1222. package/src/x_ite/Fields/SFVecPrototypeTemplate.js +0 -201
  1223. package/src/x_ite/Fields.js +0 -87
  1224. package/src/x_ite/InputOutput/FileLoader.js +0 -336
  1225. package/src/x_ite/InputOutput/Generator.js +0 -592
  1226. package/src/x_ite/Namespace.js +0 -52
  1227. package/src/x_ite/Parser/Expressions.js +0 -85
  1228. package/src/x_ite/Parser/GLB2Parser.js +0 -146
  1229. package/src/x_ite/Parser/GLTF2Parser.js +0 -2800
  1230. package/src/x_ite/Parser/GoldenGate.js +0 -163
  1231. package/src/x_ite/Parser/HTMLSupport.js +0 -74
  1232. package/src/x_ite/Parser/JSONParser.js +0 -414
  1233. package/src/x_ite/Parser/OBJParser.js +0 -1091
  1234. package/src/x_ite/Parser/PLYAParser.js +0 -615
  1235. package/src/x_ite/Parser/PLYBParser.js +0 -222
  1236. package/src/x_ite/Parser/STLAParser.js +0 -377
  1237. package/src/x_ite/Parser/STLBParser.js +0 -155
  1238. package/src/x_ite/Parser/SVGParser.js +0 -2762
  1239. package/src/x_ite/Parser/VRMLParser.js +0 -2546
  1240. package/src/x_ite/Parser/X3DOptimizer.js +0 -220
  1241. package/src/x_ite/Parser/X3DParser.js +0 -152
  1242. package/src/x_ite/Parser/XMLParser.js +0 -1189
  1243. package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +0 -70
  1244. package/src/x_ite/Prototype/ProtoDeclarationArray.js +0 -70
  1245. package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +0 -446
  1246. package/src/x_ite/Prototype/X3DProtoDeclaration.js +0 -571
  1247. package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +0 -112
  1248. package/src/x_ite/Rendering/DependentRenderer.js +0 -132
  1249. package/src/x_ite/Rendering/MultiSampleFrameBuffer.js +0 -394
  1250. package/src/x_ite/Rendering/PointingBuffer.js +0 -189
  1251. package/src/x_ite/Rendering/TextureBuffer.js +0 -231
  1252. package/src/x_ite/Rendering/TraverseType.js +0 -60
  1253. package/src/x_ite/Rendering/VertexArray.js +0 -95
  1254. package/src/x_ite/Rendering/X3DRenderObject.js +0 -1144
  1255. package/src/x_ite/Routing/RouteArray.js +0 -70
  1256. package/src/x_ite/Routing/X3DRoute.js +0 -316
  1257. package/src/x_ite/Routing/X3DRoutingContext.js +0 -116
  1258. package/src/x_ite/X3D.js +0 -250
  1259. package/src/x_ite/X3DCanvasElement.js +0 -126
  1260. package/src/x_ite.css +0 -587
  1261. package/src/x_ite.html +0 -459
  1262. package/src/x_ite.js +0 -60
  1263. package/webpack.config.js +0 -341
  1264. package/x_ite.min.html +0 -440
@@ -1,11 +1,11 @@
1
- /* X_ITE v8.11.6 */(() => { // webpackBootstrap
1
+ /* X_ITE v8.11.8 */(() => { // webpackBootstrap
2
2
  /******/ "use strict";
3
3
  /******/ var __webpack_modules__ = ({
4
4
 
5
5
  /***/ 355:
6
6
  /***/ ((module) => {
7
7
 
8
- module.exports = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("lib/jquery");
8
+ module.exports = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("lib/jquery");
9
9
 
10
10
  /***/ })
11
11
 
@@ -73,22 +73,22 @@ var __webpack_exports__ = {};
73
73
  // UNUSED EXPORTS: default
74
74
 
75
75
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components\")"
76
- const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Components");
76
+ const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Components");
77
77
  var Components_default = /*#__PURE__*/__webpack_require__.n(Components_namespaceObject);
78
78
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Fields\")"
79
- const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Fields");
79
+ const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Fields");
80
80
  var Fields_default = /*#__PURE__*/__webpack_require__.n(Fields_namespaceObject);
81
81
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DFieldDefinition\")"
82
- const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Base/X3DFieldDefinition");
82
+ const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Base/X3DFieldDefinition");
83
83
  var X3DFieldDefinition_default = /*#__PURE__*/__webpack_require__.n(X3DFieldDefinition_namespaceObject);
84
84
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/FieldDefinitionArray\")"
85
- const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Base/FieldDefinitionArray");
85
+ const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Base/FieldDefinitionArray");
86
86
  var FieldDefinitionArray_default = /*#__PURE__*/__webpack_require__.n(FieldDefinitionArray_namespaceObject);
87
87
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Core/X3DNode\")"
88
- const X3DNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Components/Core/X3DNode");
88
+ const X3DNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Components/Core/X3DNode");
89
89
  var X3DNode_default = /*#__PURE__*/__webpack_require__.n(X3DNode_namespaceObject);
90
90
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Namespace\")"
91
- const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Namespace");
91
+ const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Namespace");
92
92
  var Namespace_default = /*#__PURE__*/__webpack_require__.n(Namespace_namespaceObject);
93
93
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/ParticleSystems/GeometryTypes.js
94
94
  /*******************************************************************************
@@ -155,7 +155,7 @@ const __default__ = GeometryTypes;
155
155
  Namespace_default().set ("x_ite/Browser/ParticleSystems/GeometryTypes", __default__);
156
156
  /* harmony default export */ const ParticleSystems_GeometryTypes = (__default__);
157
157
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DConstants\")"
158
- const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Base/X3DConstants");
158
+ const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Base/X3DConstants");
159
159
  var X3DConstants_default = /*#__PURE__*/__webpack_require__.n(X3DConstants_namespaceObject);
160
160
  ;// CONCATENATED MODULE: ./src/x_ite/Browser/ParticleSystems/Line3.glsl.js
161
161
  const Line3_glsl_default_ = /* glsl */ `struct Line3{vec3 point;vec3 direction;};bool intersects(const in Line3 line,const in vec3 a,const in vec3 b,const in vec3 c,out vec3 r){vec3 edge1=b-a;vec3 edge2=c-a;vec3 pvec=cross(line.direction,edge2);float det=dot(edge1,pvec);if(det==0.0)return false;float inv_det=1.0/det;vec3 tvec=line.point-a;float u=dot(tvec,pvec)*inv_det;if(u<0.0||u>1.0)return false;vec3 qvec=cross(tvec,edge1);float v=dot(line.direction,qvec)*inv_det;if(v<0.0||u+v>1.0)return false;r=vec3(u,v,1.0-u-v);return true;}
@@ -623,7 +623,7 @@ const X3DParticleEmitterNode_default_ = X3DParticleEmitterNode;
623
623
  Namespace_default().set ("x_ite/Components/ParticleSystems/X3DParticleEmitterNode", X3DParticleEmitterNode_default_);
624
624
  /* harmony default export */ const ParticleSystems_X3DParticleEmitterNode = (X3DParticleEmitterNode_default_);
625
625
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Vector3\")"
626
- const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("standard/Math/Numbers/Vector3");
626
+ const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("standard/Math/Numbers/Vector3");
627
627
  var Vector3_default = /*#__PURE__*/__webpack_require__.n(Vector3_namespaceObject);
628
628
  ;// CONCATENATED MODULE: ./src/x_ite/Components/ParticleSystems/PointEmitter.js
629
629
  /*******************************************************************************
@@ -944,7 +944,7 @@ const X3DParticlePhysicsModelNode_default_ = X3DParticlePhysicsModelNode;
944
944
  Namespace_default().set ("x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode", X3DParticlePhysicsModelNode_default_);
945
945
  /* harmony default export */ const ParticleSystems_X3DParticlePhysicsModelNode = (X3DParticlePhysicsModelNode_default_);
946
946
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Base/X3DCast\")"
947
- const X3DCast_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Base/X3DCast");
947
+ const X3DCast_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Base/X3DCast");
948
948
  var X3DCast_default = /*#__PURE__*/__webpack_require__.n(X3DCast_namespaceObject);
949
949
  ;// CONCATENATED MODULE: ./src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js
950
950
  /*******************************************************************************
@@ -1518,28 +1518,28 @@ const ForcePhysicsModel_default_ = ForcePhysicsModel;
1518
1518
  Namespace_default().set ("x_ite/Components/ParticleSystems/ForcePhysicsModel", ForcePhysicsModel_default_);
1519
1519
  /* harmony default export */ const ParticleSystems_ForcePhysicsModel = (ForcePhysicsModel_default_);
1520
1520
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Shape/X3DShapeNode\")"
1521
- const X3DShapeNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Components/Shape/X3DShapeNode");
1521
+ const X3DShapeNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Components/Shape/X3DShapeNode");
1522
1522
  var X3DShapeNode_default = /*#__PURE__*/__webpack_require__.n(X3DShapeNode_namespaceObject);
1523
1523
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Rendering/GeometryContext\")"
1524
- const GeometryContext_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Browser/Rendering/GeometryContext");
1524
+ const GeometryContext_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Browser/Rendering/GeometryContext");
1525
1525
  var GeometryContext_default = /*#__PURE__*/__webpack_require__.n(GeometryContext_namespaceObject);
1526
1526
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Rendering/VertexArray\")"
1527
- const VertexArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Rendering/VertexArray");
1527
+ const VertexArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Rendering/VertexArray");
1528
1528
  var VertexArray_default = /*#__PURE__*/__webpack_require__.n(VertexArray_namespaceObject);
1529
1529
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Rendering/TraverseType\")"
1530
- const TraverseType_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Rendering/TraverseType");
1530
+ const TraverseType_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Rendering/TraverseType");
1531
1531
  var TraverseType_default = /*#__PURE__*/__webpack_require__.n(TraverseType_namespaceObject);
1532
1532
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Browser/Shape/AlphaMode\")"
1533
- const AlphaMode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Browser/Shape/AlphaMode");
1533
+ const AlphaMode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Browser/Shape/AlphaMode");
1534
1534
  var AlphaMode_default = /*#__PURE__*/__webpack_require__.n(AlphaMode_namespaceObject);
1535
1535
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Matrix4\")"
1536
- const Matrix4_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("standard/Math/Numbers/Matrix4");
1536
+ const Matrix4_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("standard/Math/Numbers/Matrix4");
1537
1537
  var Matrix4_default = /*#__PURE__*/__webpack_require__.n(Matrix4_namespaceObject);
1538
1538
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Numbers/Matrix3\")"
1539
- const Matrix3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("standard/Math/Numbers/Matrix3");
1539
+ const Matrix3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("standard/Math/Numbers/Matrix3");
1540
1540
  var Matrix3_default = /*#__PURE__*/__webpack_require__.n(Matrix3_namespaceObject);
1541
1541
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Geometry/Plane3\")"
1542
- const Plane3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("standard/Math/Geometry/Plane3");
1542
+ const Plane3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("standard/Math/Geometry/Plane3");
1543
1543
  var Plane3_default = /*#__PURE__*/__webpack_require__.n(Plane3_namespaceObject);
1544
1544
  ;// CONCATENATED MODULE: ./src/standard/Math/Algorithms/QuickSort.js
1545
1545
  /*******************************************************************************
@@ -3123,7 +3123,7 @@ const ParticleSystem_default_ = ParticleSystem;
3123
3123
  Namespace_default().set ("x_ite/Components/ParticleSystems/ParticleSystem", ParticleSystem_default_);
3124
3124
  /* harmony default export */ const ParticleSystems_ParticleSystem = (ParticleSystem_default_);
3125
3125
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Rendering/IndexedLineSet\")"
3126
- const IndexedLineSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Components/Rendering/IndexedLineSet");
3126
+ const IndexedLineSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Components/Rendering/IndexedLineSet");
3127
3127
  var IndexedLineSet_default = /*#__PURE__*/__webpack_require__.n(IndexedLineSet_namespaceObject);
3128
3128
  ;// CONCATENATED MODULE: ./src/x_ite/Components/ParticleSystems/PolylineEmitter.js
3129
3129
  /*******************************************************************************
@@ -3375,7 +3375,7 @@ const PolylineEmitter_default_ = PolylineEmitter;
3375
3375
  Namespace_default().set ("x_ite/Components/ParticleSystems/PolylineEmitter", PolylineEmitter_default_);
3376
3376
  /* harmony default export */ const ParticleSystems_PolylineEmitter = (PolylineEmitter_default_);
3377
3377
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Geometry/Triangle3\")"
3378
- const Triangle3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("standard/Math/Geometry/Triangle3");
3378
+ const Triangle3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("standard/Math/Geometry/Triangle3");
3379
3379
  var Triangle3_default = /*#__PURE__*/__webpack_require__.n(Triangle3_namespaceObject);
3380
3380
  ;// CONCATENATED MODULE: ./src/x_ite/Components/ParticleSystems/SurfaceEmitter.js
3381
3381
  /*******************************************************************************
@@ -3635,7 +3635,7 @@ const SurfaceEmitter_default_ = SurfaceEmitter;
3635
3635
  Namespace_default().set ("x_ite/Components/ParticleSystems/SurfaceEmitter", SurfaceEmitter_default_);
3636
3636
  /* harmony default export */ const ParticleSystems_SurfaceEmitter = (SurfaceEmitter_default_);
3637
3637
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"x_ite/Components/Geometry3D/IndexedFaceSet\")"
3638
- const IndexedFaceSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("x_ite/Components/Geometry3D/IndexedFaceSet");
3638
+ const IndexedFaceSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("x_ite/Components/Geometry3D/IndexedFaceSet");
3639
3639
  var IndexedFaceSet_default = /*#__PURE__*/__webpack_require__.n(IndexedFaceSet_namespaceObject);
3640
3640
  ;// CONCATENATED MODULE: ./src/x_ite/Components/ParticleSystems/VolumeEmitter.js
3641
3641
  /*******************************************************************************
@@ -3932,7 +3932,7 @@ const VolumeEmitter_default_ = VolumeEmitter;
3932
3932
  Namespace_default().set ("x_ite/Components/ParticleSystems/VolumeEmitter", VolumeEmitter_default_);
3933
3933
  /* harmony default export */ const ParticleSystems_VolumeEmitter = (VolumeEmitter_default_);
3934
3934
  ;// CONCATENATED MODULE: external "window [Symbol .for (\"X_ITE.X3D\")] .require (\"standard/Math/Algorithm\")"
3935
- const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.6")] .require ("standard/Math/Algorithm");
3935
+ const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.8")] .require ("standard/Math/Algorithm");
3936
3936
  var Algorithm_default = /*#__PURE__*/__webpack_require__.n(Algorithm_namespaceObject);
3937
3937
  ;// CONCATENATED MODULE: ./src/x_ite/Components/ParticleSystems/WindPhysicsModel.js
3938
3938
  /*******************************************************************************
@@ -1 +1 @@
1
- /* X_ITE v8.11.6 */(()=>{"use strict";var e={355:e=>{e.exports=window[Symbol.for("X_ITE.X3D-8.11.6")].require("lib/jquery")}},t={};function i(n){var o=t[n];if(void 0!==o)return o.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Components");var t=i.n(e);const n=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Fields");var o=i.n(n);const r=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Base/X3DFieldDefinition");var s=i.n(r);const a=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Base/FieldDefinitionArray");var c=i.n(a);const l=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Components/Core/X3DNode");var u=i.n(l);const d=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Namespace");var m=i.n(d);let h=0;const p={POINT:h++,LINE:h++,TRIANGLE:h++,QUAD:h++,SPRITE:h++,GEOMETRY:h++};m().set("x_ite/Browser/ParticleSystems/GeometryTypes",p);const f=p,x=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Base/X3DConstants");var _=i.n(x);const y="struct Line3{vec3 point;vec3 direction;};bool intersects(const in Line3 line,const in vec3 a,const in vec3 b,const in vec3 c,out vec3 r){vec3 edge1=b-a;vec3 edge2=c-a;vec3 pvec=cross(line.direction,edge2);float det=dot(edge1,pvec);if(det==0.0)return false;float inv_det=1.0/det;vec3 tvec=line.point-a;float u=dot(tvec,pvec)*inv_det;if(u<0.0||u>1.0)return false;vec3 qvec=cross(tvec,edge1);float v=dot(line.direction,qvec)*inv_det;if(v<0.0||u+v>1.0)return false;r=vec3(u,v,1.0-u-v);return true;}\n";m().set("x_ite/Browser/ParticleSystems/Line3.glsl",y);const g=y,v="struct Plane3{vec3 normal;float distanceFromOrigin;};Plane3 plane3(const in vec3 point,const in vec3 normal){return Plane3(normal,dot(normal,point));}float plane_distance(const in Plane3 plane,const in vec3 point){return dot(point,plane.normal)-plane.distanceFromOrigin;}bool intersects(const in Plane3 plane,const in Line3 line,out vec3 point){float theta=dot(line.direction,plane.normal);if(theta==0.0)return false;float t=(plane.distanceFromOrigin-dot(plane.normal,line.point))/theta;point=line.point+line.direction*t;return true;}void sort(inout vec4 points[ARRAY_SIZE],const in int count,const in Plane3 plane){const float shrink=1.0/1.3;int gap=count;bool exchanged=true;while(exchanged){gap=int(float(gap)*shrink);if(gap<=1){exchanged=false;gap=1;}for(int i=0,l=count-gap;i<l;++i){int j=gap+i;if(plane_distance(plane,points[i].xyz)>plane_distance(plane,points[j].xyz)){vec4 tmp1=points[i];points[i]=points[j];points[j]=tmp1;exchanged=true;}}}}int min_index(const in vec4 points[ARRAY_SIZE],const in int count,const in float value,const in Plane3 plane){int index=-1;float dist=1000000.0;for(int i=0;i<count;++i){float d=plane_distance(plane,points[i].xyz);if(d>=value&&d<dist){dist=d;index=i;}}return index;}\n";m().set("x_ite/Browser/ParticleSystems/Plane3.glsl",v);const T=v,w="bool intersects(const in vec3 min,const in vec3 max,const in Line3 line){vec3 intersection;if(intersects(plane3(max,vec3(0.0,0.0,1.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xy,max.xy),vec4(min.xy,intersection.xy))))return true;}if(intersects(plane3(min,vec3(0.0,0.0,-1.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xy,max.xy),vec4(min.xy,intersection.xy))))return true;}if(intersects(plane3(max,vec3(0.0,1.0,0.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xz,max.xz),vec4(min.xz,intersection.xz))))return true;}if(intersects(plane3(min,vec3(0.0,-1.0,0.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xz,max.xz),vec4(min.xz,intersection.xz))))return true;}if(intersects(plane3(max,vec3(1.0,0.0,0.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.yz,max.yz),vec4(min.yz,intersection.yz))))return true;}return false;}\n";m().set("x_ite/Browser/ParticleSystems/Box3.glsl",w);const b=w,R="#define BVH_NODE 0\n#define BVH_TRIANGLE 1\n#define BVH_STACK_SIZE 32\nint bvhNodeIndex=0;void setBVHIndex(const in int index){bvhNodeIndex=index;}int getBVHRoot(const in sampler2D volume,const in int hierarchyIndex,const in int rootIndex){return int(texelFetch(volume,rootIndex,0).x)+hierarchyIndex;}int getBVHType(const in sampler2D volume){return int(texelFetch(volume,bvhNodeIndex,0).x);}vec3 getBVHMin(const in sampler2D volume){return texelFetch(volume,bvhNodeIndex+1,0).xyz;}vec3 getBVHMax(const in sampler2D volume){return texelFetch(volume,bvhNodeIndex+2,0).xyz;}int getBVHLeft(const in sampler2D volume,const in int hierarchyIndex){return int(texelFetch(volume,bvhNodeIndex,0).y)+hierarchyIndex;}int getBVHRight(const in sampler2D volume,const in int hierarchyIndex){return int(texelFetch(volume,bvhNodeIndex,0).z)+hierarchyIndex;}int getBVHTriangle(const in sampler2D volume){return int(texelFetch(volume,bvhNodeIndex,0).y);}int getIntersections(const in sampler2D volume,const in int verticesIndex,const in int hierarchyIndex,const in int rootIndex,const in Line3 line,out vec4 points[ARRAY_SIZE]){int current=getBVHRoot(volume,hierarchyIndex,rootIndex);int count=0;int stackIndex=-1;int stack[BVH_STACK_SIZE];while(stackIndex>=0||current>=0){if(current>=0){setBVHIndex(current);if(getBVHType(volume)==BVH_NODE){if(intersects(getBVHMin(volume),getBVHMax(volume),line)){stack[++stackIndex]=current;current=getBVHLeft(volume,hierarchyIndex);}else{current=-1;}}else{int t=getBVHTriangle(volume);int v=verticesIndex+t;vec3 r=vec3(0.0);vec3 a=texelFetch(volume,v,0).xyz;vec3 b=texelFetch(volume,v+1,0).xyz;vec3 c=texelFetch(volume,v+2,0).xyz;if(intersects(line,a,b,c,r))points[count++]=vec4(r.z*a+r.x*b+r.y*c,1.0);current=-1;}}else{setBVHIndex(stack[stackIndex--]);current=getBVHRight(volume,hierarchyIndex);}}return count;}int getIntersections(const in sampler2D volume,const in int verticesIndex,const in int normalsIndex,const in int hierarchyIndex,const in int rootIndex,const in Line3 line,out vec4 points[ARRAY_SIZE],out vec3 normals[ARRAY_SIZE]){int current=getBVHRoot(volume,hierarchyIndex,rootIndex);int count=0;int stackIndex=-1;int stack[BVH_STACK_SIZE];while(stackIndex>=0||current>=0){if(current>=0){setBVHIndex(current);if(getBVHType(volume)==BVH_NODE){if(intersects(getBVHMin(volume),getBVHMax(volume),line)){stack[++stackIndex]=current;current=getBVHLeft(volume,hierarchyIndex);}else{current=-1;}}else{int t=getBVHTriangle(volume);int v=verticesIndex+t;vec3 r=vec3(0.0);vec3 a=texelFetch(volume,v,0).xyz;vec3 b=texelFetch(volume,v+1,0).xyz;vec3 c=texelFetch(volume,v+2,0).xyz;if(intersects(line,a,b,c,r)){points[count]=vec4(r.z*a+r.x*b+r.y*c,1.0);int n=normalsIndex+t;vec3 n0=texelFetch(volume,n,0).xyz;vec3 n1=texelFetch(volume,n+1,0).xyz;vec3 n2=texelFetch(volume,n+2,0).xyz;normals[count]=save_normalize(r.z*n0+r.x*n1+r.y*n2);++count;}current=-1;}}else{setBVHIndex(stack[stackIndex--]);current=getBVHRight(volume,hierarchyIndex);}}return count;}\n";m().set("x_ite/Browser/ParticleSystems/BVH.glsl",R);const I=R;function F(e){u().call(this,e),this.addType(_().X3DParticleEmitterNode),this._speed.setUnit("speed"),this._mass.setUnit("mass"),this._surfaceArea.setUnit("area"),this.samplers=[],this.uniforms={},this.functions=[],this.program=null,this.addSampler("forces"),this.addSampler("boundedVolume"),this.addSampler("colorRamp"),this.addSampler("texCoordRamp"),this.addUniform("speed","uniform float speed;"),this.addUniform("variation","uniform float variation;"),this.addFunction(g),this.addFunction(T),this.addFunction(b),this.addFunction(I)}Object.assign(Object.setPrototypeOf(F.prototype,u().prototype),{initialize(){u().prototype.initialize.call(this);const e=this.getBrowser().getContext();e.getVersion()<2||(this.program=this.createProgram(),this.transformFeedback=e.createTransformFeedback(),this._on.addInterest("set_on__",this),this._speed.addInterest("set_speed__",this),this._variation.addInterest("set_variation__",this),this._mass.addInterest("set_mass__",this),this.set_on__(),this.set_speed__(),this.set_variation__(),this.set_mass__())},isExplosive:()=>!1,getMass(){return this.mass},set_on__(){this.on=this._on.getValue()},set_speed__(){this.setUniform("uniform1f","speed",this._speed.getValue())},set_variation__(){this.setUniform("uniform1f","variation",this._variation.getValue())},set_mass__(){this.mass=this._mass.getValue()},getRandomValue:(e,t)=>Math.random()*(t-e)+e,getRandomNormal(e){const t=this.getRandomValue(-1,1)*Math.PI,i=this.getRandomValue(-1,1),n=Math.acos(i),o=Math.sin(n);return e.set(Math.sin(t)*o,Math.cos(t)*o,i)},animate(e,t){const i=this.getBrowser().getContext(),n=e.inputParticles,o=e.particleStride,r=e.particleOffsets,s=this.program;if(i.useProgram(s),i.uniform1i(s.randomSeed,4294967295*Math.random()),i.uniform1i(s.geometryType,e.geometryType),i.uniform1i(s.createParticles,e.createParticles&&this.on),i.uniform1f(s.particleLifetime,e.particleLifetime),i.uniform1f(s.lifetimeVariation,e.lifetimeVariation),i.uniform1f(s.deltaTime,t),i.uniform2f(s.particleSize,e._particleSize.x,e._particleSize.y),i.uniform1i(s.numForces,e.numForces),e.numForces&&(i.activeTexture(i.TEXTURE0+s.forcesTextureUnit),i.bindTexture(i.TEXTURE_2D,e.forcesTexture)),e.boundedHierarchyRoot<0?i.uniform1i(s.boundedHierarchyRoot,-1):(i.uniform1i(s.boundedVerticesIndex,e.boundedVerticesIndex),i.uniform1i(s.boundedNormalsIndex,e.boundedNormalsIndex),i.uniform1i(s.boundedHierarchyIndex,e.boundedHierarchyIndex),i.uniform1i(s.boundedHierarchyRoot,e.boundedHierarchyRoot),i.activeTexture(i.TEXTURE0+s.boundedVolumeTextureUnit),i.bindTexture(i.TEXTURE_2D,e.boundedTexture)),i.uniform1i(s.numColors,e.numColors),e.numColors&&(i.activeTexture(i.TEXTURE0+s.colorRampTextureUnit),i.bindTexture(i.TEXTURE_2D,e.colorRampTexture)),i.uniform1i(s.numTexCoords,e.numTexCoords),e.numTexCoords&&(i.uniform1i(s.texCoordCount,e.texCoordCount),i.activeTexture(i.TEXTURE0+s.texCoordRampTextureUnit),i.bindTexture(i.TEXTURE_2D,e.texCoordRampTexture)),this.activateTextures(i,s),n.vertexArrayObject.enable(s)){for(const[e,t]of s.inputs)i.bindBuffer(i.ARRAY_BUFFER,n),i.enableVertexAttribArray(t),i.vertexAttribPointer(t,4,i.FLOAT,!1,o,r[e]);i.bindBuffer(i.ARRAY_BUFFER,null)}i.bindTransformFeedback(i.TRANSFORM_FEEDBACK,this.transformFeedback),i.bindBufferBase(i.TRANSFORM_FEEDBACK_BUFFER,0,e.outputParticles),i.enable(i.RASTERIZER_DISCARD),i.beginTransformFeedback(i.POINTS),i.drawArrays(i.POINTS,0,e.numParticles),i.endTransformFeedback(),i.disable(i.RASTERIZER_DISCARD),i.bindTransformFeedback(i.TRANSFORM_FEEDBACK,null)},addSampler(e){this.samplers.push(e)},addUniform(e,t){this.uniforms[e]=t},setUniform(e,t,i,n,o){const r=this.getBrowser().getContext(),s=this.program;r.useProgram(s),r[e](s[t],i,n,o)},addFunction(e){this.functions.push(e)},createProgram(){const e=this.getBrowser(),t=e.getContext(),i=`#version 300 es\nprecision highp float;precision highp int;precision highp sampler2D;uniform int randomSeed;uniform int geometryType;uniform bool createParticles;uniform float particleLifetime;uniform float lifetimeVariation;uniform float deltaTime;uniform vec2 particleSize;uniform int numForces;uniform sampler2D forces;uniform int boundedVerticesIndex;uniform int boundedNormalsIndex;uniform int boundedHierarchyIndex;uniform int boundedHierarchyRoot;uniform sampler2D boundedVolume;uniform int numColors;uniform sampler2D colorRamp;uniform int texCoordCount;uniform int numTexCoords;uniform sampler2D texCoordRamp;\n${Object.values(this.uniforms).join("\n")}\n in vec4 input0;in vec4 input2;in vec4 input6;out vec4 output0;out vec4 output1;out vec4 output2;out vec4 output3;out vec4 output4;out vec4 output5;out vec4 output6;\n${Object.entries(f).map((([e,t])=>`#define ${e} ${t}`)).join("\n")}\n const int ARRAY_SIZE=32;const float M_PI=3.14159265359;uniform float NaN;vec4 texelFetch(const in sampler2D sampler,const in int index,const in int lod){int x=textureSize(sampler,lod).x;ivec2 p=ivec2(index % x,index/x);vec4 t=texelFetch(sampler,p,lod);return t;}vec3 save_normalize(const in vec3 vector){float l=length(vector);if(l==0.0)return vec3(0.0);return vector/l;}vec4 Quaternion(const in vec3 fromVector,const in vec3 toVector){vec3 from=save_normalize(fromVector);vec3 to=save_normalize(toVector);float cos_angle=dot(from,to);vec3 cross_vec=cross(from,to);float cross_len=length(cross_vec);if(cross_len==0.0){if(cos_angle>0.0){return vec4(0.0,0.0,0.0,1.0);}else{vec3 t=cross(from,vec3(1.0,0.0,0.0));if(dot(t,t)==0.0)t=cross(from,vec3(0.0,1.0,0.0));t=save_normalize(t);return vec4(t,0.0);}}else{float s=sqrt(abs(1.0-cos_angle)*0.5);cross_vec=save_normalize(cross_vec);return vec4(cross_vec*s,sqrt(abs(1.0+cos_angle)*0.5));}}vec3 multVecQuat(const in vec3 v,const in vec4 q){float a=q.w*q.w-q.x*q.x-q.y*q.y-q.z*q.z;float b=2.0*(v.x*q.x+v.y*q.y+v.z*q.z);float c=2.0*q.w;vec3 r=a*v.xyz+b*q.xyz+c*(q.yzx*v.zxy-q.zxy*v.yzx);return r;}mat3 Matrix3(const in vec4 quaternion){float x=quaternion.x;float y=quaternion.y;float z=quaternion.z;float w=quaternion.w;float A=y*y;float B=z*z;float C=x*y;float D=z*w;float E=z*x;float F=y*w;float G=x*x;float H=y*z;float I=x*w;return mat3(1.0-2.0*(A+B),2.0*(C+D),2.0*(E-F),2.0*(C-D),1.0-2.0*(B+G),2.0*(H+I),2.0*(E+F),2.0*(H-I),1.0-2.0*(A+G));}uint seed=1u;void srand(const in int value){seed=uint(value);}float random(){seed=seed*1103515245u+12345u;return float(seed)/4294967295.0;}float getRandomValue(const in float min,const in float max){return min+random()*(max-min);}float getRandomLifetime(){float v=particleLifetime*lifetimeVariation;float min_=max(0.0,particleLifetime-v);float max_=particleLifetime+v;return getRandomValue(min_,max_);}float getRandomSpeed(){float v=speed*variation;float min_=max(0.0,speed-v);float max_=speed+v;return getRandomValue(min_,max_);}vec3 getRandomNormal(){float theta=getRandomValue(-M_PI,M_PI);float cphi=getRandomValue(-1.0,1.0);float r=sqrt(1.0-cphi*cphi);return vec3(sin(theta)*r,cos(theta)*r,cphi);}vec3 getRandomNormalWithAngle(const in float angle){float theta=getRandomValue(-M_PI,M_PI);float cphi=getRandomValue(cos(angle),1.0);float r=sqrt(1.0-cphi*cphi);return vec3(sin(theta)*r,cos(theta)*r,cphi);}vec3 getRandomNormalWithDirectionAndAngle(const in vec3 direction,const in float angle){vec4 rotation=Quaternion(vec3(0.0,0.0,1.0),direction);vec3 normal=getRandomNormalWithAngle(angle);return multVecQuat(normal,rotation);}vec3 getRandomSurfaceNormal(const in vec3 direction){float theta=getRandomValue(-M_PI,M_PI);float cphi=pow(random(),1.0/3.0);float r=sqrt(1.0-cphi*cphi);vec3 normal=vec3(sin(theta)*r,cos(theta)*r,cphi);vec4 rotation=Quaternion(vec3(0.0,0.0,1.0),direction);return multVecQuat(normal,rotation);}vec3 getRandomSphericalVelocity(){vec3 normal=getRandomNormal();float speed=getRandomSpeed();return normal*speed;}int upperBound(const in sampler2D sampler,in int count,const in float value){int first=0;int step=0;while(count>0){int index=first;step=count>>1;index+=step;if(value<texelFetch(sampler,index,0).x){count=step;}else{first=++index;count-=step+1;}}return first;}void interpolate(const in sampler2D sampler,const in int count,const in float fraction,out int index0,out int index1,out float weight){if(count==1||fraction<=texelFetch(sampler,0,0).x){index0=0;index1=0;weight=0.0;}else if(fraction>=texelFetch(sampler,count-1,0).x){index0=count-2;index1=count-1;weight=1.0;}else{int index=upperBound(sampler,count,fraction);if(index<count){index1=index;index0=index-1;float key0=texelFetch(sampler,index0,0).x;float key1=texelFetch(sampler,index1,0).x;weight=clamp((fraction-key0)/(key1-key0),0.0,1.0);}else{index0=0;index1=0;weight=0.0;}}}void interpolate(const in sampler2D sampler,const in int count,const in float fraction,out int index0){if(count==1||fraction<=texelFetch(sampler,0,0).x){index0=0;}else if(fraction>=texelFetch(sampler,count-1,0).x){index0=count-2;}else{int index=upperBound(sampler,count,fraction);if(index<count)index0=index-1;else index0=0;}}vec3 getRandomBarycentricCoord(){float u=random();float v=random();if(u+v>1.0){u=1.0-u;v=1.0-v;}float t=1.0-u-v;return vec3(t,u,v);}void getRandomPointOnSurface(const in sampler2D surface,const in int verticesIndex,const in int normalsIndex,out vec4 position,out vec3 normal){float lastAreaSoFar=texelFetch(surface,verticesIndex-1,0).x;float fraction=random()*lastAreaSoFar;int index0;int index1;int index2;float weight;interpolate(surface,verticesIndex,fraction,index0,index1,weight);index0*=3;index1=index0+1;index2=index0+2;vec4 vertex0=texelFetch(surface,verticesIndex+index0,0);vec4 vertex1=texelFetch(surface,verticesIndex+index1,0);vec4 vertex2=texelFetch(surface,verticesIndex+index2,0);vec3 normal0=texelFetch(surface,normalsIndex+index0,0).xyz;vec3 normal1=texelFetch(surface,normalsIndex+index1,0).xyz;vec3 normal2=texelFetch(surface,normalsIndex+index2,0).xyz;vec3 r=getRandomBarycentricCoord();position=r.z*vertex0+r.x*vertex1+r.y*vertex2;normal=save_normalize(r.z*normal0+r.x*normal1+r.y*normal2);}\n${this.functions.join("\n")}\n vec4 getColor(const in float lifetime,const in float elapsedTime){if(numColors>0){float fraction=elapsedTime/lifetime;int index0;int index1;float weight;interpolate(colorRamp,numColors,fraction,index0,index1,weight);vec4 color0=texelFetch(colorRamp,numColors+index0,0);vec4 color1=texelFetch(colorRamp,numColors+index1,0);return mix(color0,color1,weight);}else{return vec4(1.0);}}void bounce(const in vec4 fromPosition,inout vec4 toPosition,inout vec3 velocity){if(boundedHierarchyRoot<0)return;Line3 line=Line3(fromPosition.xyz,save_normalize(velocity));vec4 points[ARRAY_SIZE];vec3 normals[ARRAY_SIZE];int numIntersections=getIntersections(boundedVolume,boundedVerticesIndex,boundedNormalsIndex,boundedHierarchyIndex,boundedHierarchyRoot,line,points,normals);if(numIntersections==0)return;Plane3 plane1=plane3(line.point,line.direction);int index=min_index(points,numIntersections,0.0,plane1);if(index==-1)return;Plane3 plane2=plane3(points[index].xyz,normals[index]);if(sign(plane_distance(plane2,fromPosition.xyz))==sign(plane_distance(plane2,toPosition.xyz)))return;velocity=reflect(velocity,normals[index]);toPosition=vec4(points[index].xyz+reflect(points[index].xyz-fromPosition.xyz,normals[index]),1.0);}int getTexCoordIndex0(const in float lifetime,const in float elapsedTime){if(numTexCoords==0){return-1;}else{float fraction=elapsedTime/lifetime;int index0=0;interpolate(texCoordRamp,numTexCoords,fraction,index0);return numTexCoords+index0*texCoordCount;}}void main(){int life=int(input0[0]);float lifetime=input0[1];float elapsedTime=input0[2]+deltaTime;srand((gl_VertexID+randomSeed)*randomSeed);if(elapsedTime>lifetime){lifetime=getRandomLifetime();elapsedTime=0.0;output0=vec4(max(life+1,1),lifetime,elapsedTime,getTexCoordIndex0(lifetime,elapsedTime));if(createParticles){output1=getColor(lifetime,elapsedTime);output2=vec4(getRandomVelocity(),0.0);output6=getRandomPosition();}else{output1=vec4(0.0);output2=vec4(0.0);output6=vec4(NaN);}}else{vec3 velocity=input2.xyz;vec4 position=input6;for(int i=0;i<numForces;++i){vec4 force=texelFetch(forces,i,0);float turbulence=force.w;vec3 normal=getRandomNormalWithDirectionAndAngle(force.xyz,turbulence);float speed=length(force.xyz);velocity+=normal*speed;}position.xyz+=velocity*deltaTime;bounce(input6,position,velocity);output0=vec4(life,lifetime,elapsedTime,getTexCoordIndex0(lifetime,elapsedTime));output1=getColor(lifetime,elapsedTime);output2=vec4(velocity,0.0);output6=position;}switch(geometryType){case POINT:case SPRITE:case GEOMETRY:{output3=vec4(1.0,0.0,0.0,0.0);output4=vec4(0.0,1.0,0.0,0.0);output5=vec4(0.0,0.0,1.0,0.0);break;}case LINE:{mat3 r=Matrix3(Quaternion(vec3(0.0,0.0,1.0),output2.xyz));mat3 s=mat3(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,particleSize.y);mat3 m=r*s;output3=vec4(m[0],0.0);output4=vec4(m[1],0.0);output5=vec4(m[2],0.0);break;}default:{output3=vec4(particleSize.x,0.0,0.0,0.0);output4=vec4(0.0,particleSize.y,0.0,0.0);output5=vec4(0.0,0.0,1.0,0.0);break;}}}\n`,n=t.createShader(t.VERTEX_SHADER);t.shaderSource(n,i),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)||console.error(t.getShaderInfoLog(n));const o=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(o,"#version 300 es\nprecision highp float;void main(){}\n"),t.compileShader(o),t.getShaderParameter(o,t.COMPILE_STATUS)||console.error(t.getShaderInfoLog(o));const r=t.createProgram();t.attachShader(r,n),t.attachShader(r,o),t.transformFeedbackVaryings(r,Array.from({length:7},((e,t)=>"output"+t)),t.INTERLEAVED_ATTRIBS),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||console.error("Couldn't initialize particle shader: "+t.getProgramInfoLog(r)),r.inputs=[[0,t.getAttribLocation(r,"input0")],[2,t.getAttribLocation(r,"input2")],[6,t.getAttribLocation(r,"input6")]],r.randomSeed=t.getUniformLocation(r,"randomSeed"),r.geometryType=t.getUniformLocation(r,"geometryType"),r.createParticles=t.getUniformLocation(r,"createParticles"),r.particleLifetime=t.getUniformLocation(r,"particleLifetime"),r.lifetimeVariation=t.getUniformLocation(r,"lifetimeVariation"),r.deltaTime=t.getUniformLocation(r,"deltaTime"),r.particleSize=t.getUniformLocation(r,"particleSize"),r.numForces=t.getUniformLocation(r,"numForces"),r.forces=t.getUniformLocation(r,"forces"),r.boundedVerticesIndex=t.getUniformLocation(r,"boundedVerticesIndex"),r.boundedNormalsIndex=t.getUniformLocation(r,"boundedNormalsIndex"),r.boundedHierarchyIndex=t.getUniformLocation(r,"boundedHierarchyIndex"),r.boundedHierarchyRoot=t.getUniformLocation(r,"boundedHierarchyRoot"),r.boundedVolume=t.getUniformLocation(r,"boundedVolume"),r.numColors=t.getUniformLocation(r,"numColors"),r.colorRamp=t.getUniformLocation(r,"colorRamp"),r.texCoordCount=t.getUniformLocation(r,"texCoordCount"),r.numTexCoords=t.getUniformLocation(r,"numTexCoords"),r.texCoordRamp=t.getUniformLocation(r,"texCoordRamp");for(const e of Object.keys(this.uniforms))r[e]=t.getUniformLocation(r,e);r.NaN=t.getUniformLocation(r,"NaN"),t.useProgram(r);for(const i of this.samplers){const n=t.getUniformLocation(r,i);t.uniform1i(n,r[i+"TextureUnit"]=e.getTexture2DUnit())}return t.uniform1f(r.NaN,NaN),e.resetTextureUnits(),r},activateTextures(){},createTexture(){const e=this.getBrowser().getContext(),t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,1,1,0,e.RGBA,e.FLOAT,new Float32Array(4)),t},getTexture2DUnit(e,t,i){const n=t[i];return void 0===n?t[i]=e.getTexture2DUnit():n}}),Object.defineProperties(F,{typeName:{value:"X3DParticleEmitterNode",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0}});const E=F;m().set("x_ite/Components/ParticleSystems/X3DParticleEmitterNode",E);const S=E,P=window[Symbol.for("X_ITE.X3D-8.11.6")].require("standard/Math/Numbers/Vector3");var A=i.n(P);function N(e){S.call(this,e),this.addType(_().PointEmitter),this._position.setUnit("length"),this.addUniform("position","uniform vec3 position;"),this.addUniform("direction","uniform vec3 direction;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (direction == vec3 (0.0))\n return getRandomSphericalVelocity ();\n\n else\n return direction * getRandomSpeed ();\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return vec4 (position, 1.0);\n }")}Object.assign(Object.setPrototypeOf(N.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this),this.getBrowser().getContext().getVersion()<2||(this._position.addInterest("set_position__",this),this._direction.addInterest("set_direction__",this),this.set_position__(),this.set_direction__())},set_position__(){const e=this._position.getValue();this.setUniform("uniform3f","position",e.x,e.y,e.z)},set_direction__:(()=>{const e=new(A())(0,0,0);return function(){e.assign(this._direction.getValue()).normalize(),this.setUniform("uniform3f","direction",e.x,e.y,e.z)}})()}),Object.defineProperties(N,{typeName:{value:"PointEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"position",new(o().SFVec3f)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat))]),enumerable:!0}});const O=N;m().set("x_ite/Components/ParticleSystems/PointEmitter",O);const C=O,V=Symbol();Symbol();function B(){}Object.assign(B.prototype,{getDefaultEmitter(){return this[V]=new C(this.getPrivateScene()),this[V].setPrivate(!0),this[V].setup(),this.getDefaultEmitter=function(){return this[V]},Object.defineProperty(this,"getDefaultEmitter",{enumerable:!1}),this[V]}});const D=B;m().set("x_ite/Browser/ParticleSystems/X3DParticleSystemsContext",D);const z=D;function U(e){u().call(this,e),this.addType(_().X3DParticlePhysicsModelNode)}Object.assign(Object.setPrototypeOf(U.prototype,u().prototype),{addForce(){}}),Object.defineProperties(U,{typeName:{value:"X3DParticlePhysicsModelNode",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0}});const M=U;m().set("x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode",M);const L=M,X=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Base/X3DCast");var j=i.n(X);function q(e){L.call(this,e),this.addType(_().BoundedPhysicsModel)}Object.assign(Object.setPrototypeOf(q.prototype,L.prototype),{initialize(){L.prototype.initialize.call(this),this._geometry.addInterest("set_geometry__",this),this.set_geometry__()},set_geometry__(){this.geometryNode&&this.geometryNode._rebuild.removeInterest("addNodeEvent",this),this.geometryNode=j()(_().X3DGeometryNode,this._geometry),this.geometryNode&&this.geometryNode._rebuild.addInterest("addNodeEvent",this)},addGeometry(e,t){if(this.geometryNode&&this._enabled.getValue()){const i=this.geometryNode.getNormals().getValue(),n=this.geometryNode.getVertices().getValue();for(const t of i)e.push(t);for(const e of n)t.push(e)}}}),Object.defineProperties(q,{typeName:{value:"BoundedPhysicsModel",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"physics",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"geometry",new(o().SFNode))]),enumerable:!0}});const H=q;m().set("x_ite/Components/ParticleSystems/BoundedPhysicsModel",H);const G=H;function k(e){S.call(this,e),this.addType(_().ConeEmitter),this._position.setUnit("length"),this._angle.setUnit("angle"),this.addUniform("position","uniform vec3 position;"),this.addUniform("direction","uniform vec3 direction;"),this.addUniform("angle","uniform float angle;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (direction == vec3 (0.0))\n {\n return getRandomSphericalVelocity ();\n }\n else\n {\n vec3 normal = getRandomNormalWithDirectionAndAngle (direction, angle);\n float speed = getRandomSpeed ();\n\n return normal * speed;\n }\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return vec4 (position, 1.0);\n }")}Object.assign(Object.setPrototypeOf(k.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this),this.getBrowser().getContext().getVersion()<2||(this._position.addInterest("set_position__",this),this._direction.addInterest("set_direction__",this),this._angle.addInterest("set_angle__",this),this.set_position__(),this.set_direction__(),this.set_angle__())},set_position__(){const e=this._position.getValue();this.setUniform("uniform3f","position",e.x,e.y,e.z)},set_direction__(){const e=this._direction.getValue();this.setUniform("uniform3f","direction",e.x,e.y,e.z)},set_angle__(){this.setUniform("uniform1f","angle",this._angle.getValue())}}),Object.defineProperties(k,{typeName:{value:"ConeEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"position",new(o().SFVec3f)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"angle",new(o().SFFloat)(.785398)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat))]),enumerable:!0}});const Y=k;m().set("x_ite/Components/ParticleSystems/ConeEmitter",Y);const W=Y;function K(e){S.call(this,e),this.addType(_().ExplosionEmitter),this._position.setUnit("length"),this.addUniform("position","uniform vec3 position;"),this.addFunction("vec3 getRandomVelocity ()\n {\n return getRandomSphericalVelocity ();\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return vec4 (position, 1.0);\n }")}Object.assign(Object.setPrototypeOf(K.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this),this.getBrowser().getContext().getVersion()<2||(this._position.addInterest("set_position__",this),this.set_position__())},isExplosive:()=>!0,set_position__(){const e=this._position.getValue();this.setUniform("uniform3f","position",e.x,e.y,e.z)}}),Object.defineProperties(K,{typeName:{value:"ExplosionEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"position",new(o().SFVec3f)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat))]),enumerable:!0}});const Z=K;m().set("x_ite/Components/ParticleSystems/ExplosionEmitter",Z);const Q=Z;function $(e){L.call(this,e),this.addType(_().ForcePhysicsModel),this._force.setUnit("force")}Object.assign(Object.setPrototypeOf($.prototype,L.prototype),{addForce:(()=>{const e=new(A())(0,0,0);return function(t,i,n,o){return!!this._enabled.getValue()&&(o.set(e.assign(this._force.getValue()).multiply(n),4*t),o[4*t+3]=0,!0)}})()}),Object.defineProperties($,{typeName:{value:"ForcePhysicsModel",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"physics",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"force",new(o().SFVec3f)(0,-9.8,0))]),enumerable:!0}});const J=$;m().set("x_ite/Components/ParticleSystems/ForcePhysicsModel",J);const ee=J,te=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Components/Shape/X3DShapeNode");var ie=i.n(te);const ne=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Browser/Rendering/GeometryContext");var oe=i.n(ne);const re=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Rendering/VertexArray");var se=i.n(re);const ae=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Rendering/TraverseType");var ce=i.n(ae);const le=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Browser/Shape/AlphaMode");var ue=i.n(le);const de=window[Symbol.for("X_ITE.X3D-8.11.6")].require("standard/Math/Numbers/Matrix4");var me=i.n(de);const he=window[Symbol.for("X_ITE.X3D-8.11.6")].require("standard/Math/Numbers/Matrix3");var pe=i.n(he);const fe=window[Symbol.for("X_ITE.X3D-8.11.6")].require("standard/Math/Geometry/Plane3");var xe=i.n(fe);function _e(e,t){this.array=e,t&&(this.compare=t)}Object.assign(_e.prototype,{compare:(e,t)=>e<t,sort(e,t){t-e>1&&this.quicksort(e,t-1)},quicksort(e,t){let i=e,n=t;const{array:o,compare:r}=this,s=o[e+t>>>1];for(;;){for(;r(o[i],s);)++i;for(;r(s,o[n]);)--n;if(!(i<n)){i===n&&(++i,--n);break}{const e=o[i];o[i]=o[n],o[n]=e,i++,n--}}e<n&&this.quicksort(e,n),i<t&&this.quicksort(i,t)}});const ye=_e;m().set("standard/Math/Algorithms/QuickSort",ye);const ge=ye,ve=new(A())(0,0,0),Te=new(A())(0,0,0),we=new(A())(0,0,0),be={u:0,v:0,t:0},Re=[new(A())(0,0,1),new(A())(0,0,-1),new(A())(0,1,0),new(A())(0,-1,0),new(A())(1,0,0)];function Ie(e,t){this.vertices=e.vertices,this.normals=e.normals,this.triangle=t,this.i4=12*t,this.i3=9*t}function Fe(e,t,i,n){this.min=new(A())(0,0,0),this.max=new(A())(0,0,0),this.planes=[],this.intersection=new(A())(0,0,0);const o=e.vertices,r=this.min,s=this.max,a=i+n;let c=12*t[i];r.set(o[c],o[c+1],o[c+2]),s.assign(r);for(let e=i;e<a;++e)c=12*t[e],ve.set(o[c],o[c+1],o[c+2]),Te.set(o[c+4],o[c+5],o[c+6]),we.set(o[c+8],o[c+9],o[c+10]),r.min(ve,Te,we),s.max(ve,Te,we);for(let e=0;e<5;++e)this.planes[e]=new(xe())(e%2?r:s,Re[e]);if(n>2){e.sorter.compare.axis=this.getLongestAxis(r,s),e.sorter.sort(i,a);var l=n>>>1}else l=1;const u=n-l;this.left=l>1?new Fe(e,t,i,l):new Ie(e,t[i]),this.right=u>1?new Fe(e,t,i+l,u):new Ie(e,t[i+l])}function Ee(e,t){const i=e.length/12;switch(this.vertices=e,this.normals=t,i){case 0:this.root=null;break;case 1:this.root=new Ie(this,0);break;default:{const t=[];for(let e=0;e<i;++e)t.push(e);this.sorter=new ge(t,function(e,t){return function(i,n){return Math.min(e[i+t],e[i+4+t],e[i+8+t])<Math.min(e[n+t],e[n+4+t],e[n+8+t])}}(e,0)),this.root=new Fe(this,t,0,i);break}}}Object.assign(Ie.prototype,{intersectsLine(e,t,i){const n=this.vertices,o=this.normals,r=this.i4,s=this.i3;if(ve.x=n[r],ve.y=n[r+1],ve.z=n[r+2],Te.x=n[r+4],Te.y=n[r+5],Te.z=n[r+6],we.x=n[r+8],we.y=n[r+9],we.z=n[r+10],e.intersectsTriangle(ve,Te,we,be)){const e=be.u,a=be.v,c=1-e-a,l=t.size++;l>=t.length&&t.push(new(A())(0,0,0)),t[l].set(c*n[r]+e*n[r+4]+a*n[r+8],c*n[r+1]+e*n[r+5]+a*n[r+9],c*n[r+2]+e*n[r+6]+a*n[r+10]),i&&(l>=i.length&&i.push(new(A())(0,0,0)),i[l].set(c*o[s]+e*o[s+3]+a*o[s+6],c*o[s+1]+e*o[s+4]+a*o[s+7],c*o[s+2]+e*o[s+5]+a*o[s+8]))}},toArray(e){const t=e.length/4;return e.push(1,3*this.triangle,0,0),t}}),Object.assign(Fe.prototype,{intersectsLine(e,t,i){this.intersectsBBox(e)&&(this.left.intersectsLine(e,t,i),this.right.intersectsLine(e,t,i))},intersectsBBox(e){const t=this.planes,i=this.min,n=this.max,o=i.x,r=n.x,s=i.y,a=n.y,c=i.z,l=n.z,u=this.intersection;return!!(t[0].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.y>=s&&u.y<=a)||(!!(t[1].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.y>=s&&u.y<=a)||(!!(t[2].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.z>=c&&u.z<=l)||(!!(t[3].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.z>=c&&u.z<=l)||!!(t[4].intersectsLine(e,u)&&u.y>=s&&u.y<=a&&u.z>=c&&u.z<=l))))},getLongestAxis(e,t){const i=t.x-e.x,n=t.y-e.y,o=t.z-e.z;return i<n?n<o?2:1:i<o?2:0},toArray(e){const t=this.left.toArray(e),i=this.right.toArray(e),n=this.min,o=this.max,r=e.length/4;return e.push(0,t,i,0,n.x,n.y,n.z,0,o.x,o.y,o.z,0),r}}),Object.assign(Ee.prototype,{intersectsLine(e,t,i){return t.size=0,this.root?(this.root.intersectsLine(e,t,i),t.size):0},toArray(e){if(this.root){const t=this.root.toArray(e);e.push(t,0,0,0)}return e}});const Se=Ee;m().set("standard/Math/Utility/BVH",Se);const Pe=Se;var Ae=i(355);const Ne=new Float32Array([0,0,0,1]),Oe=new Float32Array([0,0,0,1,1,0,0,1,0,0,-.5,1,0,0,.5,1]),Ce=new Float32Array([0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,0,1,-.5,-.5,0,1,.5,-.5,0,1,.5,.5,0,1,-.5,-.5,0,1,.5,.5,0,1,-.5,.5,0,1]);function Ve(e){ie().call(this,e),this.addType(_().ParticleSystem),this._particleSize.setUnit("length"),e.getSpecificationVersion()<=3.3&&(this.addAlias("colorRamp",this._color),this.addAlias("texCoordRamp",this._texCoord));const t=this.getBrowser();this.maxParticles=0,this.numParticles=0,this.forcePhysicsModelNodes=[],this.forces=new Float32Array(4),this.boundedPhysicsModelNodes=[],this.boundedNormals=[],this.boundedVertices=[],this.colorRamp=new Float32Array,this.texCoordRamp=new Float32Array,this.geometryContext=new(oe())({textureCoordinateNode:t.getDefaultTextureCoordinate()}),this.creationTime=0,this.pauseTime=0,this.deltaTime=0,this.particleStride=7*Float32Array.BYTES_PER_ELEMENT*4,this.particleOffsets=Array.from({length:7},((e,t)=>4*Float32Array.BYTES_PER_ELEMENT*t)),this.particleOffset=this.particleOffsets[0],this.colorOffset=this.particleOffsets[1],this.matrixOffset=this.particleOffsets[3],this.texCoordOffset=0}Object.assign(Object.setPrototypeOf(Ve.prototype,ie().prototype),{initialize(){ie().prototype.initialize.call(this);const e=this.getBrowser(),t=e.getContext();e.getContext().getVersion()<2||(this.getLive().addInterest("set_live__",this),this._enabled.addInterest("set_enabled__",this),this._createParticles.addInterest("set_createParticles__",this),this._geometryType.addInterest("set_geometryType__",this),this._geometryType.addInterest("set_texCoord__",this),this._maxParticles.addInterest("set_enabled__",this),this._particleLifetime.addInterest("set_particleLifetime__",this),this._lifetimeVariation.addInterest("set_lifetimeVariation__",this),this._emitter.addInterest("set_emitter__",this),this._physics.addInterest("set_physics__",this),this._colorKey.addInterest("set_color__",this),this._color.addInterest("set_colorRamp__",this),this._texCoordKey.addInterest("set_texCoord__",this),this._texCoord.addInterest("set_texCoordRamp__",this),this.inputParticles=this.createBuffer(),this.outputParticles=this.createBuffer(),this.inputParticles.vertexArrayObject=new(se())(t),this.outputParticles.vertexArrayObject=new(se())(t),this.forcesTexture=this.createTexture(),this.boundedTexture=this.createTexture(),this.colorRampTexture=this.createTexture(),this.texCoordRampTexture=this.createTexture(),this.geometryBuffer=this.createBuffer(),this.texCoordBuffers=new Array(e.getMaxTextures()).fill(this.geometryBuffer),this.set_emitter__(),this.set_enabled__(),this.set_geometryType__(),this.set_createParticles__(),this.set_particleLifetime__(),this.set_lifetimeVariation__(),this.set_physics__(),this.set_colorRamp__(),this.set_texCoordRamp__())},getShapeKey(){return this.numTexCoords?2:1},getGeometryContext(){return this.geometryType===f.GEOMETRY?this.getGeometry():this.geometryContext},set_bbox__(){this._bboxSize.getValue().equals(this.getDefaultBBoxSize())?this.bbox.set():this.bbox.set(this._bboxSize.getValue(),this._bboxCenter.getValue()),this.bboxSize.assign(this.bbox.size),this.bboxCenter.assign(this.bbox.center)},set_transparent__(){if(this.getAppearance().getAlphaMode()===ue().AUTO)if(this.geometryType===f.POINT)this.setTransparent(!0);else this.setTransparent(!!(this.getAppearance().isTransparent()||this.colorRampNode?.isTransparent()||this.geometryType===f.GEOMETRY&&this.geometryNode?.isTransparent()));else this.setTransparent(this.getAppearance().isTransparent())},set_live__(){this.getLive().getValue()?this._isActive.getValue()&&this._maxParticles.getValue()&&(this.getBrowser().sensorEvents().addInterest("animateParticles",this),this.pauseTime&&(this.creationTime+=Date.now()/1e3-this.pauseTime,this.pauseTime=0)):this._isActive.getValue()&&this._maxParticles.getValue()&&(this.getBrowser().sensorEvents().removeInterest("animateParticles",this),0===this.pauseTime&&(this.pauseTime=Date.now()/1e3))},set_enabled__(){this._enabled.getValue()&&this._maxParticles.getValue()?this._isActive.getValue()||(this.getLive().getValue()?(this.getBrowser().sensorEvents().addInterest("animateParticles",this),this.pauseTime=0):this.pauseTime=Date.now()/1e3,this._isActive=!0,delete this.traverse):this._isActive.getValue()&&(this.getLive().getValue()&&this.getBrowser().sensorEvents().removeInterest("animateParticles",this),this._isActive=!1,this.numParticles=0,this.traverse=Function.prototype),this.set_maxParticles__()},set_createParticles__(){this.createParticles=this._createParticles.getValue()},set_geometryType__(){const e=this.getBrowser().getContext();switch(this.geometryType=Ae.enum(f,this._geometryType.getValue(),f.QUAD),this.geometryType){case f.POINT:this.geometryContext.geometryType=0,this.geometryContext.hasNormals=!1,this.texCoordCount=0,this.vertexCount=1,this.hasNormals=!1,this.verticesOffset=0,this.primitiveMode=e.POINTS,e.bindBuffer(e.ARRAY_BUFFER,this.geometryBuffer),e.bufferData(e.ARRAY_BUFFER,Ne,e.DYNAMIC_DRAW);break;case f.LINE:this.geometryContext.geometryType=1,this.geometryContext.hasNormals=!1,this.texCoordCount=2,this.vertexCount=2,this.hasNormals=!1,this.texCoordsOffset=0,this.verticesOffset=8*Float32Array.BYTES_PER_ELEMENT,this.primitiveMode=e.LINES,e.bindBuffer(e.ARRAY_BUFFER,this.geometryBuffer),e.bufferData(e.ARRAY_BUFFER,Oe,e.DYNAMIC_DRAW);break;case f.TRIANGLE:case f.QUAD:case f.SPRITE:this.geometryContext.geometryType=2,this.geometryContext.hasNormals=!0,this.texCoordCount=4,this.vertexCount=6,this.hasNormals=!0,this.texCoordsOffset=0,this.normalOffset=24*Float32Array.BYTES_PER_ELEMENT,this.verticesOffset=27*Float32Array.BYTES_PER_ELEMENT,this.primitiveMode=e.TRIANGLES,e.bindBuffer(e.ARRAY_BUFFER,this.geometryBuffer),e.bufferData(e.ARRAY_BUFFER,Ce,e.DYNAMIC_DRAW);break;case f.GEOMETRY:this.texCoordCount=0}this.geometryContext.updateGeometryKey(),this.updateVertexArrays(),this.set_transparent__()},set_maxParticles__(){const e=this.numParticles,t=Math.max(0,this._maxParticles.getValue());this.maxParticles=t,this.numParticles=Math.min(e,t),this.emitterNode.isExplosive()||(this.creationTime=Date.now()/1e3),this.resizeBuffers(e),this.updateVertexArrays()},set_particleLifetime__(){this.particleLifetime=this._particleLifetime.getValue()},set_lifetimeVariation__(){this.lifetimeVariation=this._lifetimeVariation.getValue()},set_emitter__(){this.emitterNode=j()(_().X3DParticleEmitterNode,this._emitter),this.emitterNode||(this.emitterNode=this.getBrowser().getDefaultEmitter()),this.createParticles=this._createParticles.getValue()},set_physics__(){const e=this._physics.getValue(),t=this.forcePhysicsModelNodes,i=this.boundedPhysicsModelNodes;for(let e=0,t=i.length;e<t;++e)i[e].removeInterest("set_boundedPhysics__",this);t.length=0,i.length=0;for(let n=0,o=e.length;n<o;++n)try{const o=e[n].getValue().getInnerNode(),r=o.getType();for(let e=r.length-1;e>=0;--e){switch(r[e]){case _().ForcePhysicsModel:case _().WindPhysicsModel:t.push(o);break;case _().BoundedPhysicsModel:o.addInterest("set_boundedPhysics__",this),i.push(o);break;default:continue}break}}catch{}this.set_boundedPhysics__()},set_boundedPhysics__(){const e=this.getBrowser().getContext(),t=this.boundedPhysicsModelNodes,i=this.boundedNormals,n=this.boundedVertices;i.length=0,n.length=0;for(let e=0,o=t.length;e<o;++e)t[e].addGeometry(i,n);const o=new Pe(n,i).toArray([]),r=n.length/4,s=i.length/3,a=o.length/4,c=Math.ceil(Math.sqrt(r+s+a)),l=new Float32Array(c*c*4);this.boundedVerticesIndex=0,this.boundedNormalsIndex=r,this.boundedHierarchyIndex=this.boundedNormalsIndex+s,this.boundedHierarchyRoot=this.boundedHierarchyIndex+a-1,l.set(n);for(let e=4*this.boundedNormalsIndex,t=0,n=i.length;t<n;e+=4,t+=3)l[e+0]=i[t+0],l[e+1]=i[t+1],l[e+2]=i[t+2];l.set(o,4*this.boundedHierarchyIndex),c&&(e.bindTexture(e.TEXTURE_2D,this.boundedTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,c,c,0,e.RGBA,e.FLOAT,l))},set_colorRamp__(){this.colorRampNode&&this.colorRampNode.removeInterest("set_color__",this),this.colorRampNode=j()(_().X3DColorNode,this._color),this.colorRampNode&&this.colorRampNode.addInterest("set_color__",this),this.set_color__(),this.set_transparent__()},set_color__(){const e=this.getBrowser().getContext(),t=this._colorKey,i=t.length,n=Math.ceil(Math.sqrt(2*i));let o=this.colorRamp;n*n*4>o.length&&(o=this.colorRamp=new Float32Array(n*n*4));for(let e=0;e<i;++e)o[4*e]=t[e];this.colorRampNode?o.set(this.colorRampNode.addColors([],i).slice(0,4*i),4*i):o.fill(1,4*i),n&&(e.bindTexture(e.TEXTURE_2D,this.colorRampTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,n,n,0,e.RGBA,e.FLOAT,o)),this.numColors=i,this.geometryContext.colorMaterial=!(!i||!this.colorRampNode),this.geometryContext.updateGeometryKey(),this.updateVertexArrays()},set_texCoordRamp__(){this.texCoordRampNode&&this.texCoordRampNode.removeInterest("set_texCoord__",this),this.texCoordRampNode=j()(_().X3DTextureCoordinateNode,this._texCoord),this.texCoordRampNode&&this.texCoordRampNode.addInterest("set_texCoord__",this),this.set_texCoord__()},set_texCoord__(){const e=this.getBrowser().getContext(),t=this._texCoordKey,i=t.length,n=Math.ceil(Math.sqrt(i+i*this.texCoordCount));let o=this.texCoordRamp;n*n*4>o.length?o=this.texCoordRamp=new Float32Array(n*n*4):o.fill(0);for(let e=0;e<i;++e)o[4*e]=t[e];this.texCoordRampNode&&o.set(this.texCoordRampNode.getPoints([]).slice(0,i*this.texCoordCount*4),4*i),n&&(e.bindTexture(e.TEXTURE_2D,this.texCoordRampTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,n,n,0,e.RGBA,e.FLOAT,o)),this.numTexCoords=this.texCoordRampNode?i:0,this.updateVertexArrays()},updateVertexArrays(){this.inputParticles.vertexArrayObject.update(),this.outputParticles.vertexArrayObject.update()},createTexture(){const e=this.getBrowser().getContext(),t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,1,1,0,e.RGBA,e.FLOAT,new Float32Array(4)),t},createBuffer(){const e=this.getBrowser().getContext(),t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Uint32Array,e.DYNAMIC_DRAW),t},resizeBuffers(e){const t=this.getBrowser().getContext(),i=this.maxParticles,n=this.particleStride,o=Object.assign(t.createBuffer(),this.outputParticles),r=new Uint8Array(i*n);t.bindBuffer(t.ARRAY_BUFFER,this.inputParticles),t.bufferData(t.ARRAY_BUFFER,r,t.DYNAMIC_DRAW),t.bindBuffer(t.COPY_READ_BUFFER,this.outputParticles),t.bindBuffer(t.ARRAY_BUFFER,o),t.bufferData(t.ARRAY_BUFFER,r,t.DYNAMIC_DRAW),t.copyBufferSubData(t.COPY_READ_BUFFER,t.ARRAY_BUFFER,0,0,Math.min(i*n,e*n)),t.deleteBuffer(this.outputParticles),this.outputParticles=o},animateParticles(){const e=this.getBrowser(),t=e.getContext(),i=this.emitterNode,n=1/Math.max(10,this.getBrowser().getCurrentFrameRate());let o=this.deltaTime=(14*this.deltaTime+n)/15;if(i.isExplosive()){const e=Date.now()/1e3,t=this.particleLifetime+this.particleLifetime*this.lifetimeVariation;e-this.creationTime>t?(this.creationTime=e,this.numParticles=this.maxParticles,this.createParticles=this._createParticles.getValue(),o=Number.POSITIVE_INFINITY):this.createParticles=!1}else if(this.numParticles<this.maxParticles){const e=Date.now()/1e3,t=Math.max(0,Math.floor((e-this.creationTime)*this.maxParticles/this.particleLifetime));t&&(this.creationTime=e),this.numParticles=Math.min(this.maxParticles,this.numParticles+t)}if(i.getMass()){const e=this.forcePhysicsModelNodes;let n=e.length,r=this.forces,s=o/i.getMass();4*n>r.length&&(r=this.forces=new Float32Array(4*n));let a=0;for(let t=0;t<n;++t)a+=!e[t].addForce(t-a,i,s,r);this.numForces=n-=a,n&&(t.bindTexture(t.TEXTURE_2D,this.forcesTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA32F,n,1,0,t.RGBA,t.FLOAT,r))}else this.numForces=0;const r=this.outputParticles;this.outputParticles=this.inputParticles,this.inputParticles=r,i.animate(this,o),e.addBrowserEvent()},updateSprite:(()=>{const e=new Float32Array(Ce),t=[new(A())(-.5,-.5,0),new(A())(.5,-.5,0),new(A())(.5,.5,0),new(A())(-.5,-.5,0),new(A())(.5,.5,0),new(A())(-.5,.5,0)],i=new(A())(0,0,0),n=new(A())(0,0,0);return function(o,r){for(let t=0;t<3;++t)e[24+t]=r[6+t];n.set(this._particleSize.x,this._particleSize.y,1);for(let o=0;o<6;++o){const s=27+4*o;r.multVecMatrix(i.assign(t[o]).multVec(n)),e[s+0]=i.x,e[s+1]=i.y,e[s+2]=i.z}o.bindBuffer(o.ARRAY_BUFFER,this.geometryBuffer),o.bufferData(o.ARRAY_BUFFER,e,o.DYNAMIC_DRAW)}})(),intersectsBox(e,t){},traverse(e,t){switch(e){case ce().POINTER:t.addPointingShape(this);break;case ce().PICKING:case ce().COLLISION:break;case ce().SHADOW:this._castShadow.getValue()&&t.addShadowShape(this);break;case ce().DISPLAY:t.addDisplayShape(this)&&this.getAppearance().traverse(e,t)}this.geometryType===f.GEOMETRY&&this.getGeometry()&&this.getGeometry().traverse(e,t)},displaySimple(e,t,i){if(this.numParticles)switch(this.geometryType){case f.GEOMETRY:{const t=this.getGeometry();t&&t.displaySimpleParticles(e,i,this);break}case f.SPRITE:this.updateSprite(e,this.getScreenAlignedRotation(t.modelViewMatrix));default:{const t=this.outputParticles;if(t.vertexArrayObject.enable(i)){const n=this.particleStride;i.enableParticleAttribute(e,t,n,this.particleOffset,1),i.enableParticleMatrixAttribute(e,t,n,this.matrixOffset,1),i.enableVertexAttribute(e,this.geometryBuffer,0,this.verticesOffset)}e.drawArraysInstanced(this.primitiveMode,0,this.vertexCount,this.numParticles);break}}},display(e,t){if(this.numParticles)switch(this.geometryType){case f.GEOMETRY:{const i=this.getGeometry();i&&i.displayParticles(e,t,this);break}case f.SPRITE:this.updateSprite(e,this.getScreenAlignedRotation(t.modelViewMatrix));case f.QUAD:case f.TRIANGLE:{const i=me().prototype.determinant3.call(t.modelViewMatrix)>0;e.frontFace(i?e.CCW:e.CW),e.enable(e.CULL_FACE)}default:{const i=this.getBrowser(),n=this.getAppearance(),o=n.getShader(this.geometryContext,t),r=i.getPrimitiveMode(this.primitiveMode),s=n.getBlendMode();if(s?.enable(e),o.enable(e),o.setUniforms(e,this.geometryContext,t),this.numTexCoords){const t=i.getTexture2DUnit();e.activeTexture(e.TEXTURE0+t),e.bindTexture(e.TEXTURE_2D,this.texCoordRampTexture),e.uniform1i(o.x3d_TexCoordRamp,t)}const a=this.outputParticles;if(a.vertexArrayObject.enable(o)){const t=this.particleStride;o.enableParticleAttribute(e,a,t,this.particleOffset,1),o.enableParticleMatrixAttribute(e,a,t,this.matrixOffset,1),this.geometryContext.colorMaterial&&(o.enableColorAttribute(e,a,t,this.colorOffset),o.colorAttributeDivisor(e,1)),this.texCoordCount&&o.enableTexCoordAttribute(e,this.texCoordBuffers,0,this.texCoordOffset),this.hasNormals&&(o.enableNormalAttribute(e,this.geometryBuffer,0,this.normalOffset),o.normalAttributeDivisor(e,this.maxParticles)),o.enableVertexAttribute(e,this.geometryBuffer,0,this.verticesOffset)}e.drawArraysInstanced(r,0,this.vertexCount,this.numParticles),s?.disable(e);break}}},getScreenAlignedRotation:(()=>{const e=new(me()),t=new(A())(0,0,0),i=new(A())(0,0,0),n=new(A())(0,0,0),o=new(pe())(9);return function(r){e.assign(r).inverse(),e.multDirMatrix(t.assign(A().zAxis)),e.multDirMatrix(i.assign(A().yAxis));const s=i.cross(t);n.assign(t).cross(s);const a=t;return s.normalize(),n.normalize(),a.normalize(),o.set(s.x,s.y,s.z,n.x,n.y,n.z,a.x,a.y,a.z),o}})()}),Object.defineProperties(Ve,{typeName:{value:"ParticleSystem",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"children",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"createParticles",new(o().SFBool)(!0)),new(s())(_().initializeOnly,"geometryType",new(o().SFString)("QUAD")),new(s())(_().inputOutput,"maxParticles",new(o().SFInt32)(200)),new(s())(_().inputOutput,"particleLifetime",new(o().SFFloat)(5)),new(s())(_().inputOutput,"lifetimeVariation",new(o().SFFloat)(.25)),new(s())(_().inputOutput,"particleSize",new(o().SFVec2f)(.02,.02)),new(s())(_().initializeOnly,"emitter",new(o().SFNode)),new(s())(_().initializeOnly,"physics",new(o().MFNode)),new(s())(_().initializeOnly,"colorKey",new(o().MFFloat)),new(s())(_().initializeOnly,"color",new(o().SFNode)),new(s())(_().initializeOnly,"texCoordKey",new(o().MFFloat)),new(s())(_().initializeOnly,"texCoord",new(o().SFNode)),new(s())(_().outputOnly,"isActive",new(o().SFBool)),new(s())(_().inputOutput,"visible",new(o().SFBool)(!0)),new(s())(_().inputOutput,"castShadow",new(o().SFBool)(!0)),new(s())(_().inputOutput,"bboxDisplay",new(o().SFBool)),new(s())(_().initializeOnly,"bboxSize",new(o().SFVec3f)(-1,-1,-1)),new(s())(_().initializeOnly,"bboxCenter",new(o().SFVec3f)),new(s())(_().inputOutput,"appearance",new(o().SFNode)),new(s())(_().inputOutput,"geometry",new(o().SFNode))]),enumerable:!0}});const Be=Ve;m().set("x_ite/Components/ParticleSystems/ParticleSystem",Be);const De=Be,ze=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Components/Rendering/IndexedLineSet");var Ue=i.n(ze);function Me(e){S.call(this,e),this.addType(_().PolylineEmitter),this.polylinesNode=new(Ue())(e),this.polylinesArray=new Float32Array,this.addSampler("polylines"),this.addUniform("direction","uniform vec3 direction;"),this.addUniform("verticesIndex","uniform int verticesIndex;"),this.addUniform("polylines","uniform sampler2D polylines;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (direction == vec3 (0.0))\n return getRandomSphericalVelocity ();\n\n else\n return direction * getRandomSpeed ();\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n if (verticesIndex < 0)\n {\n return vec4 (NaN);\n }\n else\n {\n // Determine index0, index1 and weight.\n\n float lastLengthSoFar = texelFetch (polylines, verticesIndex - 1, 0) .x;\n float fraction = random () * lastLengthSoFar;\n\n int index0 = 0;\n int index1 = 0;\n float weight = 0.0;\n\n interpolate (polylines, verticesIndex, fraction, index0, index1, weight);\n\n // Interpolate and return position.\n\n index0 *= 2;\n index1 = index0 + 1;\n\n vec4 vertex0 = texelFetch (polylines, verticesIndex + index0, 0);\n vec4 vertex1 = texelFetch (polylines, verticesIndex + index1, 0);\n\n return mix (vertex0, vertex1, weight);\n }\n }")}Object.assign(Object.setPrototypeOf(Me.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this.polylinesTexture=this.createTexture(),this._direction.addInterest("set_direction__",this),this._coordIndex.addFieldInterest(this.polylinesNode._coordIndex),this._coord.addFieldInterest(this.polylinesNode._coord),this.polylinesNode._coordIndex=this._coordIndex,this.polylinesNode._coord=this._coord,this.polylinesNode._rebuild.addInterest("set_polyline",this),this.polylinesNode.setPrivate(!0),this.polylinesNode.setup(),this.set_direction__(),this.set_polyline())},set_direction__:(()=>{const e=new(A())(0,0,0);return function(){e.assign(this._direction.getValue()).normalize(),this.setUniform("uniform3f","direction",e.x,e.y,e.z)}})(),set_polyline:(()=>{const e=new(A())(0,0,0),t=new(A())(0,0,0);return function(){const i=this.getBrowser().getContext(),n=this.polylinesNode.getVertices().getValue(),o=n.length/4,r=o/2+1,s=Math.ceil(Math.sqrt(r+o)),a=r;let c=this.polylinesArray;c.length<s*s*4&&(c=this.polylinesArray=new Float32Array(s*s*4));let l=0;for(let i=0,o=n.length;i<o;i+=8)e.set(n[i],n[i+1],n[i+2]),t.set(n[i+4],n[i+5],n[i+6]),c[i/2+4]=l+=t.subtract(e).magnitude();c.set(n,4*a),this.setUniform("uniform1i","verticesIndex",o?a:-1),s&&(i.bindTexture(i.TEXTURE_2D,this.polylinesTexture),i.texImage2D(i.TEXTURE_2D,0,i.RGBA32F,s,s,0,i.RGBA,i.FLOAT,c))}})(),activateTextures(e,t){e.activeTexture(e.TEXTURE0+t.polylinesTextureUnit),e.bindTexture(e.TEXTURE_2D,this.polylinesTexture)}}),Object.defineProperties(Me,{typeName:{value:"PolylineEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat)),new(s())(_().inputOutput,"coordIndex",new(o().MFInt32)(-1)),new(s())(_().inputOutput,"coord",new(o().SFNode))]),enumerable:!0}});const Le=Me;m().set("x_ite/Components/ParticleSystems/PolylineEmitter",Le);const Xe=Le,je=window[Symbol.for("X_ITE.X3D-8.11.6")].require("standard/Math/Geometry/Triangle3");var qe=i.n(je);function He(e){S.call(this,e),this.addType(_().SurfaceEmitter),this.surfaceNode=null,this.surfaceArray=new Float32Array,this.addSampler("surface"),this.addUniform("solid","uniform bool solid;"),this.addUniform("verticesIndex","uniform int verticesIndex;"),this.addUniform("normalsIndex","uniform int normalsIndex;"),this.addUniform("surface","uniform sampler2D surface;"),this.addFunction("vec4 position; vec3 getRandomVelocity ()\n {\n if (verticesIndex < 0)\n {\n return vec3 (0.0);\n }\n else\n {\n vec3 normal;\n\n getRandomPointOnSurface (surface, verticesIndex, normalsIndex, position, normal);\n\n if (solid == false && random () > 0.5)\n normal = -normal;\n\n return normal * getRandomSpeed ();\n }\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return verticesIndex < 0 ? vec4 (NaN) : position;\n }")}Object.assign(Object.setPrototypeOf(He.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this.surfaceTexture=this.createTexture(),this._surface.addInterest("set_surface__",this),this.set_surface__())},set_surface__(){this.surfaceNode&&(this.surfaceNode._solid.removeInterest("set_solid__",this),this.surfaceNode._rebuild.removeInterest("set_geometry__",this)),this.surfaceNode=j()(_().X3DGeometryNode,this._surface),this.surfaceNode&&(this.surfaceNode._solid.addInterest("set_solid__",this),this.surfaceNode._rebuild.addInterest("set_geometry__",this)),this.set_solid__(),this.set_geometry__()},set_solid__(){this.surfaceNode&&this.setUniform("uniform1i","solid",this.surfaceNode._solid.getValue())},set_geometry__:(()=>{const e=new(A())(0,0,0),t=new(A())(0,0,0),i=new(A())(0,0,0);return function(){const n=this.getBrowser().getContext();if(this.surfaceNode){const o=this.surfaceNode.getVertices().getValue(),r=this.surfaceNode.getNormals().getValue(),s=o.length/4,a=s/3+1,c=Math.ceil(Math.sqrt(a+s+s)),l=a,u=l+s;let d=this.surfaceArray;d.length<c*c*4&&(d=this.surfaceArray=new Float32Array(c*c*4));let m=0;for(let n=0,r=o.length;n<r;n+=12)e.set(o[n],o[n+1],o[n+2]),t.set(o[n+4],o[n+5],o[n+6]),i.set(o[n+8],o[n+9],o[n+10]),d[n/3+4]=m+=qe().area(e,t,i);d.set(o,4*l);for(let e=4*u,t=0,i=r.length;t<i;e+=4,t+=3)d[e+0]=r[t+0],d[e+1]=r[t+1],d[e+2]=r[t+2];this.setUniform("uniform1i","verticesIndex",s?l:-1),this.setUniform("uniform1i","normalsIndex",s?u:-1),c&&(n.bindTexture(n.TEXTURE_2D,this.surfaceTexture),n.texImage2D(n.TEXTURE_2D,0,n.RGBA32F,c,c,0,n.RGBA,n.FLOAT,d))}else this.setUniform("uniform1i","verticesIndex",-1),this.setUniform("uniform1i","normalsIndex",-1)}})(),activateTextures(e,t){e.activeTexture(e.TEXTURE0+t.surfaceTextureUnit),e.bindTexture(e.TEXTURE_2D,this.surfaceTexture)}}),Object.defineProperties(He,{typeName:{value:"SurfaceEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat)),new(s())(_().initializeOnly,"surface",new(o().SFNode))]),enumerable:!0}});const Ge=He;m().set("x_ite/Components/ParticleSystems/SurfaceEmitter",Ge);const ke=Ge,Ye=window[Symbol.for("X_ITE.X3D-8.11.6")].require("x_ite/Components/Geometry3D/IndexedFaceSet");var We=i.n(Ye);function Ke(e){S.call(this,e),this.addType(_().VolumeEmitter),this.volumeNode=new(We())(e),this.volumeArray=new Float32Array,this.addSampler("volume"),this.addUniform("direction","uniform vec3 direction;"),this.addUniform("verticesIndex","uniform int verticesIndex;"),this.addUniform("normalsIndex","uniform int normalsIndex;"),this.addUniform("hierarchyIndex","uniform int hierarchyIndex;"),this.addUniform("hierarchyRoot","uniform int hierarchyRoot;"),this.addUniform("volume","uniform sampler2D volume;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (hierarchyRoot < 0)\n {\n return vec3 (0.0);\n }\n else\n {\n if (direction == vec3 (0.0))\n return getRandomSphericalVelocity ();\n\n else\n return direction * getRandomSpeed ();\n }\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n if (hierarchyRoot < 0)\n {\n return vec4 (NaN);\n }\n else\n {\n vec4 point;\n vec3 normal;\n\n getRandomPointOnSurface (volume, verticesIndex, normalsIndex, point, normal);\n\n Line3 line = Line3 (point .xyz, getRandomSurfaceNormal (normal));\n\n vec4 points [ARRAY_SIZE];\n\n int numIntersections = getIntersections (volume, verticesIndex, hierarchyIndex, hierarchyRoot, line, points);\n\n numIntersections -= numIntersections % 2; // We need an even count of intersections.\n\n switch (numIntersections)\n {\n case 0:\n return vec4 (0.0);\n case 2:\n break;\n default:\n sort (points, numIntersections, plane3 (line .point, line .direction));\n break;\n }\n\n int index = int (fract (random ()) * float (numIntersections / 2)) * 2; // Select random intersection.\n\n return mix (points [index], points [index + 1], random ());\n }\n }")}Object.assign(Object.setPrototypeOf(Ke.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this.volumeTexture=this.createTexture(),this._set_coordIndex.addFieldInterest(this._coordIndex),this._direction.addInterest("set_direction__",this),this._coordIndex.addFieldInterest(this.volumeNode._coordIndex),this._coord.addFieldInterest(this.volumeNode._coord),this.volumeNode._creaseAngle=Math.PI,this.volumeNode._convex=!1,this.volumeNode._coordIndex=this._coordIndex,this.volumeNode._coord=this._coord,this.volumeNode._rebuild.addInterest("set_geometry__",this),this.volumeNode.setPrivate(!0),this.volumeNode.setup(),this.set_direction__(),this.set_geometry__())},set_direction__:(()=>{const e=new(A())(0,0,0);return function(){e.assign(this._direction.getValue()).normalize(),this.setUniform("uniform3f","direction",e.x,e.y,e.z)}})(),set_geometry__:(()=>{const e=new(A())(0,0,0),t=new(A())(0,0,0),i=new(A())(0,0,0);return function(){const n=this.getBrowser().getContext(),o=this.volumeNode.getVertices().getValue(),r=this.volumeNode.getNormals().getValue(),s=new Pe(o,r).toArray([]),a=o.length/4,c=r.length/3,l=a/3+1,u=s.length/4,d=Math.ceil(Math.sqrt(l+a+a+u)),m=l,h=m+a,p=h+c;let f=this.volumeArray;f.length<d*d*4&&(f=this.volumeArray=new Float32Array(d*d*4));let x=0;for(let n=0,r=o.length;n<r;n+=12)e.set(o[n],o[n+1],o[n+2]),t.set(o[n+4],o[n+5],o[n+6]),i.set(o[n+8],o[n+9],o[n+10]),f[n/3+4]=x+=qe().area(e,t,i);f.set(o,4*m);for(let e=4*h,t=0,i=r.length;t<i;e+=4,t+=3)f[e+0]=r[t+0],f[e+1]=r[t+1],f[e+2]=r[t+2];f.set(s,4*p),this.setUniform("uniform1i","verticesIndex",m),this.setUniform("uniform1i","normalsIndex",h),this.setUniform("uniform1i","hierarchyIndex",p),this.setUniform("uniform1i","hierarchyRoot",p+u-1),d&&(n.bindTexture(n.TEXTURE_2D,this.volumeTexture),n.texImage2D(n.TEXTURE_2D,0,n.RGBA32F,d,d,0,n.RGBA,n.FLOAT,f))}})(),activateTextures(e,t){e.activeTexture(e.TEXTURE0+t.volumeTextureUnit),e.bindTexture(e.TEXTURE_2D,this.volumeTexture)}}),Object.defineProperties(Ke,{typeName:{value:"VolumeEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOnly,"set_coordIndex",new(o().MFInt32)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().initializeOnly,"internal",new(o().SFBool)(!0)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat)),new(s())(_().initializeOnly,"coordIndex",new(o().MFInt32)(-1)),new(s())(_().inputOutput,"coord",new(o().SFNode))]),enumerable:!0}});const Ze=Ke;m().set("x_ite/Components/ParticleSystems/VolumeEmitter",Ze);const Qe=Ze,$e=window[Symbol.for("X_ITE.X3D-8.11.6")].require("standard/Math/Algorithm");var Je=i.n($e);function et(e){L.call(this,e),this.addType(_().WindPhysicsModel),this._speed.setUnit("speed")}Object.assign(Object.setPrototypeOf(et.prototype,L.prototype),{getRandomSpeed(e){const t=Math.max(0,this._speed.getValue()),i=t*Math.max(0,this._gustiness.getValue());return e.getRandomValue(Math.max(0,t-i),t+i)},addForce:(()=>{const e=new(A())(0,0,0);return function(t,i,n,o){if(this._enabled.getValue()){const r=i._surfaceArea.getValue(),s=this.getRandomSpeed(i),a=.64615*Math.pow(10,2*Math.log(s));return this._direction.getValue().equals(A().Zero)?i.getRandomNormal(e):e.assign(this._direction.getValue()).normalize(),o.set(e.multiply(r*a*n),4*t),o[4*t+3]=Math.PI*Je().clamp(this._turbulence.getValue(),0,1),!0}return!1}})()}),Object.defineProperties(et,{typeName:{value:"WindPhysicsModel",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"physics",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)),new(s())(_().inputOutput,"speed",new(o().SFFloat)(.1)),new(s())(_().inputOutput,"gustiness",new(o().SFFloat)(.1)),new(s())(_().inputOutput,"turbulence",new(o().SFFloat))]),enumerable:!0}});const tt=et;m().set("x_ite/Components/ParticleSystems/WindPhysicsModel",tt);const it=tt;t().add({name:"ParticleSystems",concreteNodes:[G,W,Q,ee,De,C,Xe,ke,Qe,it],abstractNodes:[S,L],browserContext:z});const nt=void 0;m().set("assets/components/ParticleSystems",nt)})()})();
1
+ /* X_ITE v8.11.8 */(()=>{"use strict";var e={355:e=>{e.exports=window[Symbol.for("X_ITE.X3D-8.11.8")].require("lib/jquery")}},t={};function i(n){var o=t[n];if(void 0!==o)return o.exports;var r=t[n]={exports:{}};return e[n](r,r.exports,i),r.exports}i.n=e=>{var t=e&&e.__esModule?()=>e.default:()=>e;return i.d(t,{a:t}),t},i.d=(e,t)=>{for(var n in t)i.o(t,n)&&!i.o(e,n)&&Object.defineProperty(e,n,{enumerable:!0,get:t[n]})},i.o=(e,t)=>Object.prototype.hasOwnProperty.call(e,t),(()=>{const e=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Components");var t=i.n(e);const n=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Fields");var o=i.n(n);const r=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Base/X3DFieldDefinition");var s=i.n(r);const a=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Base/FieldDefinitionArray");var c=i.n(a);const l=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Components/Core/X3DNode");var u=i.n(l);const d=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Namespace");var m=i.n(d);let h=0;const p={POINT:h++,LINE:h++,TRIANGLE:h++,QUAD:h++,SPRITE:h++,GEOMETRY:h++};m().set("x_ite/Browser/ParticleSystems/GeometryTypes",p);const f=p,x=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Base/X3DConstants");var _=i.n(x);const y="struct Line3{vec3 point;vec3 direction;};bool intersects(const in Line3 line,const in vec3 a,const in vec3 b,const in vec3 c,out vec3 r){vec3 edge1=b-a;vec3 edge2=c-a;vec3 pvec=cross(line.direction,edge2);float det=dot(edge1,pvec);if(det==0.0)return false;float inv_det=1.0/det;vec3 tvec=line.point-a;float u=dot(tvec,pvec)*inv_det;if(u<0.0||u>1.0)return false;vec3 qvec=cross(tvec,edge1);float v=dot(line.direction,qvec)*inv_det;if(v<0.0||u+v>1.0)return false;r=vec3(u,v,1.0-u-v);return true;}\n";m().set("x_ite/Browser/ParticleSystems/Line3.glsl",y);const g=y,v="struct Plane3{vec3 normal;float distanceFromOrigin;};Plane3 plane3(const in vec3 point,const in vec3 normal){return Plane3(normal,dot(normal,point));}float plane_distance(const in Plane3 plane,const in vec3 point){return dot(point,plane.normal)-plane.distanceFromOrigin;}bool intersects(const in Plane3 plane,const in Line3 line,out vec3 point){float theta=dot(line.direction,plane.normal);if(theta==0.0)return false;float t=(plane.distanceFromOrigin-dot(plane.normal,line.point))/theta;point=line.point+line.direction*t;return true;}void sort(inout vec4 points[ARRAY_SIZE],const in int count,const in Plane3 plane){const float shrink=1.0/1.3;int gap=count;bool exchanged=true;while(exchanged){gap=int(float(gap)*shrink);if(gap<=1){exchanged=false;gap=1;}for(int i=0,l=count-gap;i<l;++i){int j=gap+i;if(plane_distance(plane,points[i].xyz)>plane_distance(plane,points[j].xyz)){vec4 tmp1=points[i];points[i]=points[j];points[j]=tmp1;exchanged=true;}}}}int min_index(const in vec4 points[ARRAY_SIZE],const in int count,const in float value,const in Plane3 plane){int index=-1;float dist=1000000.0;for(int i=0;i<count;++i){float d=plane_distance(plane,points[i].xyz);if(d>=value&&d<dist){dist=d;index=i;}}return index;}\n";m().set("x_ite/Browser/ParticleSystems/Plane3.glsl",v);const T=v,w="bool intersects(const in vec3 min,const in vec3 max,const in Line3 line){vec3 intersection;if(intersects(plane3(max,vec3(0.0,0.0,1.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xy,max.xy),vec4(min.xy,intersection.xy))))return true;}if(intersects(plane3(min,vec3(0.0,0.0,-1.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xy,max.xy),vec4(min.xy,intersection.xy))))return true;}if(intersects(plane3(max,vec3(0.0,1.0,0.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xz,max.xz),vec4(min.xz,intersection.xz))))return true;}if(intersects(plane3(min,vec3(0.0,-1.0,0.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.xz,max.xz),vec4(min.xz,intersection.xz))))return true;}if(intersects(plane3(max,vec3(1.0,0.0,0.0)),line,intersection)){if(all(greaterThanEqual(vec4(intersection.yz,max.yz),vec4(min.yz,intersection.yz))))return true;}return false;}\n";m().set("x_ite/Browser/ParticleSystems/Box3.glsl",w);const b=w,R="#define BVH_NODE 0\n#define BVH_TRIANGLE 1\n#define BVH_STACK_SIZE 32\nint bvhNodeIndex=0;void setBVHIndex(const in int index){bvhNodeIndex=index;}int getBVHRoot(const in sampler2D volume,const in int hierarchyIndex,const in int rootIndex){return int(texelFetch(volume,rootIndex,0).x)+hierarchyIndex;}int getBVHType(const in sampler2D volume){return int(texelFetch(volume,bvhNodeIndex,0).x);}vec3 getBVHMin(const in sampler2D volume){return texelFetch(volume,bvhNodeIndex+1,0).xyz;}vec3 getBVHMax(const in sampler2D volume){return texelFetch(volume,bvhNodeIndex+2,0).xyz;}int getBVHLeft(const in sampler2D volume,const in int hierarchyIndex){return int(texelFetch(volume,bvhNodeIndex,0).y)+hierarchyIndex;}int getBVHRight(const in sampler2D volume,const in int hierarchyIndex){return int(texelFetch(volume,bvhNodeIndex,0).z)+hierarchyIndex;}int getBVHTriangle(const in sampler2D volume){return int(texelFetch(volume,bvhNodeIndex,0).y);}int getIntersections(const in sampler2D volume,const in int verticesIndex,const in int hierarchyIndex,const in int rootIndex,const in Line3 line,out vec4 points[ARRAY_SIZE]){int current=getBVHRoot(volume,hierarchyIndex,rootIndex);int count=0;int stackIndex=-1;int stack[BVH_STACK_SIZE];while(stackIndex>=0||current>=0){if(current>=0){setBVHIndex(current);if(getBVHType(volume)==BVH_NODE){if(intersects(getBVHMin(volume),getBVHMax(volume),line)){stack[++stackIndex]=current;current=getBVHLeft(volume,hierarchyIndex);}else{current=-1;}}else{int t=getBVHTriangle(volume);int v=verticesIndex+t;vec3 r=vec3(0.0);vec3 a=texelFetch(volume,v,0).xyz;vec3 b=texelFetch(volume,v+1,0).xyz;vec3 c=texelFetch(volume,v+2,0).xyz;if(intersects(line,a,b,c,r))points[count++]=vec4(r.z*a+r.x*b+r.y*c,1.0);current=-1;}}else{setBVHIndex(stack[stackIndex--]);current=getBVHRight(volume,hierarchyIndex);}}return count;}int getIntersections(const in sampler2D volume,const in int verticesIndex,const in int normalsIndex,const in int hierarchyIndex,const in int rootIndex,const in Line3 line,out vec4 points[ARRAY_SIZE],out vec3 normals[ARRAY_SIZE]){int current=getBVHRoot(volume,hierarchyIndex,rootIndex);int count=0;int stackIndex=-1;int stack[BVH_STACK_SIZE];while(stackIndex>=0||current>=0){if(current>=0){setBVHIndex(current);if(getBVHType(volume)==BVH_NODE){if(intersects(getBVHMin(volume),getBVHMax(volume),line)){stack[++stackIndex]=current;current=getBVHLeft(volume,hierarchyIndex);}else{current=-1;}}else{int t=getBVHTriangle(volume);int v=verticesIndex+t;vec3 r=vec3(0.0);vec3 a=texelFetch(volume,v,0).xyz;vec3 b=texelFetch(volume,v+1,0).xyz;vec3 c=texelFetch(volume,v+2,0).xyz;if(intersects(line,a,b,c,r)){points[count]=vec4(r.z*a+r.x*b+r.y*c,1.0);int n=normalsIndex+t;vec3 n0=texelFetch(volume,n,0).xyz;vec3 n1=texelFetch(volume,n+1,0).xyz;vec3 n2=texelFetch(volume,n+2,0).xyz;normals[count]=save_normalize(r.z*n0+r.x*n1+r.y*n2);++count;}current=-1;}}else{setBVHIndex(stack[stackIndex--]);current=getBVHRight(volume,hierarchyIndex);}}return count;}\n";m().set("x_ite/Browser/ParticleSystems/BVH.glsl",R);const I=R;function F(e){u().call(this,e),this.addType(_().X3DParticleEmitterNode),this._speed.setUnit("speed"),this._mass.setUnit("mass"),this._surfaceArea.setUnit("area"),this.samplers=[],this.uniforms={},this.functions=[],this.program=null,this.addSampler("forces"),this.addSampler("boundedVolume"),this.addSampler("colorRamp"),this.addSampler("texCoordRamp"),this.addUniform("speed","uniform float speed;"),this.addUniform("variation","uniform float variation;"),this.addFunction(g),this.addFunction(T),this.addFunction(b),this.addFunction(I)}Object.assign(Object.setPrototypeOf(F.prototype,u().prototype),{initialize(){u().prototype.initialize.call(this);const e=this.getBrowser().getContext();e.getVersion()<2||(this.program=this.createProgram(),this.transformFeedback=e.createTransformFeedback(),this._on.addInterest("set_on__",this),this._speed.addInterest("set_speed__",this),this._variation.addInterest("set_variation__",this),this._mass.addInterest("set_mass__",this),this.set_on__(),this.set_speed__(),this.set_variation__(),this.set_mass__())},isExplosive:()=>!1,getMass(){return this.mass},set_on__(){this.on=this._on.getValue()},set_speed__(){this.setUniform("uniform1f","speed",this._speed.getValue())},set_variation__(){this.setUniform("uniform1f","variation",this._variation.getValue())},set_mass__(){this.mass=this._mass.getValue()},getRandomValue:(e,t)=>Math.random()*(t-e)+e,getRandomNormal(e){const t=this.getRandomValue(-1,1)*Math.PI,i=this.getRandomValue(-1,1),n=Math.acos(i),o=Math.sin(n);return e.set(Math.sin(t)*o,Math.cos(t)*o,i)},animate(e,t){const i=this.getBrowser().getContext(),n=e.inputParticles,o=e.particleStride,r=e.particleOffsets,s=this.program;if(i.useProgram(s),i.uniform1i(s.randomSeed,4294967295*Math.random()),i.uniform1i(s.geometryType,e.geometryType),i.uniform1i(s.createParticles,e.createParticles&&this.on),i.uniform1f(s.particleLifetime,e.particleLifetime),i.uniform1f(s.lifetimeVariation,e.lifetimeVariation),i.uniform1f(s.deltaTime,t),i.uniform2f(s.particleSize,e._particleSize.x,e._particleSize.y),i.uniform1i(s.numForces,e.numForces),e.numForces&&(i.activeTexture(i.TEXTURE0+s.forcesTextureUnit),i.bindTexture(i.TEXTURE_2D,e.forcesTexture)),e.boundedHierarchyRoot<0?i.uniform1i(s.boundedHierarchyRoot,-1):(i.uniform1i(s.boundedVerticesIndex,e.boundedVerticesIndex),i.uniform1i(s.boundedNormalsIndex,e.boundedNormalsIndex),i.uniform1i(s.boundedHierarchyIndex,e.boundedHierarchyIndex),i.uniform1i(s.boundedHierarchyRoot,e.boundedHierarchyRoot),i.activeTexture(i.TEXTURE0+s.boundedVolumeTextureUnit),i.bindTexture(i.TEXTURE_2D,e.boundedTexture)),i.uniform1i(s.numColors,e.numColors),e.numColors&&(i.activeTexture(i.TEXTURE0+s.colorRampTextureUnit),i.bindTexture(i.TEXTURE_2D,e.colorRampTexture)),i.uniform1i(s.numTexCoords,e.numTexCoords),e.numTexCoords&&(i.uniform1i(s.texCoordCount,e.texCoordCount),i.activeTexture(i.TEXTURE0+s.texCoordRampTextureUnit),i.bindTexture(i.TEXTURE_2D,e.texCoordRampTexture)),this.activateTextures(i,s),n.vertexArrayObject.enable(s)){for(const[e,t]of s.inputs)i.bindBuffer(i.ARRAY_BUFFER,n),i.enableVertexAttribArray(t),i.vertexAttribPointer(t,4,i.FLOAT,!1,o,r[e]);i.bindBuffer(i.ARRAY_BUFFER,null)}i.bindTransformFeedback(i.TRANSFORM_FEEDBACK,this.transformFeedback),i.bindBufferBase(i.TRANSFORM_FEEDBACK_BUFFER,0,e.outputParticles),i.enable(i.RASTERIZER_DISCARD),i.beginTransformFeedback(i.POINTS),i.drawArrays(i.POINTS,0,e.numParticles),i.endTransformFeedback(),i.disable(i.RASTERIZER_DISCARD),i.bindTransformFeedback(i.TRANSFORM_FEEDBACK,null)},addSampler(e){this.samplers.push(e)},addUniform(e,t){this.uniforms[e]=t},setUniform(e,t,i,n,o){const r=this.getBrowser().getContext(),s=this.program;r.useProgram(s),r[e](s[t],i,n,o)},addFunction(e){this.functions.push(e)},createProgram(){const e=this.getBrowser(),t=e.getContext(),i=`#version 300 es\nprecision highp float;precision highp int;precision highp sampler2D;uniform int randomSeed;uniform int geometryType;uniform bool createParticles;uniform float particleLifetime;uniform float lifetimeVariation;uniform float deltaTime;uniform vec2 particleSize;uniform int numForces;uniform sampler2D forces;uniform int boundedVerticesIndex;uniform int boundedNormalsIndex;uniform int boundedHierarchyIndex;uniform int boundedHierarchyRoot;uniform sampler2D boundedVolume;uniform int numColors;uniform sampler2D colorRamp;uniform int texCoordCount;uniform int numTexCoords;uniform sampler2D texCoordRamp;\n${Object.values(this.uniforms).join("\n")}\n in vec4 input0;in vec4 input2;in vec4 input6;out vec4 output0;out vec4 output1;out vec4 output2;out vec4 output3;out vec4 output4;out vec4 output5;out vec4 output6;\n${Object.entries(f).map((([e,t])=>`#define ${e} ${t}`)).join("\n")}\n const int ARRAY_SIZE=32;const float M_PI=3.14159265359;uniform float NaN;vec4 texelFetch(const in sampler2D sampler,const in int index,const in int lod){int x=textureSize(sampler,lod).x;ivec2 p=ivec2(index % x,index/x);vec4 t=texelFetch(sampler,p,lod);return t;}vec3 save_normalize(const in vec3 vector){float l=length(vector);if(l==0.0)return vec3(0.0);return vector/l;}vec4 Quaternion(const in vec3 fromVector,const in vec3 toVector){vec3 from=save_normalize(fromVector);vec3 to=save_normalize(toVector);float cos_angle=dot(from,to);vec3 cross_vec=cross(from,to);float cross_len=length(cross_vec);if(cross_len==0.0){if(cos_angle>0.0){return vec4(0.0,0.0,0.0,1.0);}else{vec3 t=cross(from,vec3(1.0,0.0,0.0));if(dot(t,t)==0.0)t=cross(from,vec3(0.0,1.0,0.0));t=save_normalize(t);return vec4(t,0.0);}}else{float s=sqrt(abs(1.0-cos_angle)*0.5);cross_vec=save_normalize(cross_vec);return vec4(cross_vec*s,sqrt(abs(1.0+cos_angle)*0.5));}}vec3 multVecQuat(const in vec3 v,const in vec4 q){float a=q.w*q.w-q.x*q.x-q.y*q.y-q.z*q.z;float b=2.0*(v.x*q.x+v.y*q.y+v.z*q.z);float c=2.0*q.w;vec3 r=a*v.xyz+b*q.xyz+c*(q.yzx*v.zxy-q.zxy*v.yzx);return r;}mat3 Matrix3(const in vec4 quaternion){float x=quaternion.x;float y=quaternion.y;float z=quaternion.z;float w=quaternion.w;float A=y*y;float B=z*z;float C=x*y;float D=z*w;float E=z*x;float F=y*w;float G=x*x;float H=y*z;float I=x*w;return mat3(1.0-2.0*(A+B),2.0*(C+D),2.0*(E-F),2.0*(C-D),1.0-2.0*(B+G),2.0*(H+I),2.0*(E+F),2.0*(H-I),1.0-2.0*(A+G));}uint seed=1u;void srand(const in int value){seed=uint(value);}float random(){seed=seed*1103515245u+12345u;return float(seed)/4294967295.0;}float getRandomValue(const in float min,const in float max){return min+random()*(max-min);}float getRandomLifetime(){float v=particleLifetime*lifetimeVariation;float min_=max(0.0,particleLifetime-v);float max_=particleLifetime+v;return getRandomValue(min_,max_);}float getRandomSpeed(){float v=speed*variation;float min_=max(0.0,speed-v);float max_=speed+v;return getRandomValue(min_,max_);}vec3 getRandomNormal(){float theta=getRandomValue(-M_PI,M_PI);float cphi=getRandomValue(-1.0,1.0);float r=sqrt(1.0-cphi*cphi);return vec3(sin(theta)*r,cos(theta)*r,cphi);}vec3 getRandomNormalWithAngle(const in float angle){float theta=getRandomValue(-M_PI,M_PI);float cphi=getRandomValue(cos(angle),1.0);float r=sqrt(1.0-cphi*cphi);return vec3(sin(theta)*r,cos(theta)*r,cphi);}vec3 getRandomNormalWithDirectionAndAngle(const in vec3 direction,const in float angle){vec4 rotation=Quaternion(vec3(0.0,0.0,1.0),direction);vec3 normal=getRandomNormalWithAngle(angle);return multVecQuat(normal,rotation);}vec3 getRandomSurfaceNormal(const in vec3 direction){float theta=getRandomValue(-M_PI,M_PI);float cphi=pow(random(),1.0/3.0);float r=sqrt(1.0-cphi*cphi);vec3 normal=vec3(sin(theta)*r,cos(theta)*r,cphi);vec4 rotation=Quaternion(vec3(0.0,0.0,1.0),direction);return multVecQuat(normal,rotation);}vec3 getRandomSphericalVelocity(){vec3 normal=getRandomNormal();float speed=getRandomSpeed();return normal*speed;}int upperBound(const in sampler2D sampler,in int count,const in float value){int first=0;int step=0;while(count>0){int index=first;step=count>>1;index+=step;if(value<texelFetch(sampler,index,0).x){count=step;}else{first=++index;count-=step+1;}}return first;}void interpolate(const in sampler2D sampler,const in int count,const in float fraction,out int index0,out int index1,out float weight){if(count==1||fraction<=texelFetch(sampler,0,0).x){index0=0;index1=0;weight=0.0;}else if(fraction>=texelFetch(sampler,count-1,0).x){index0=count-2;index1=count-1;weight=1.0;}else{int index=upperBound(sampler,count,fraction);if(index<count){index1=index;index0=index-1;float key0=texelFetch(sampler,index0,0).x;float key1=texelFetch(sampler,index1,0).x;weight=clamp((fraction-key0)/(key1-key0),0.0,1.0);}else{index0=0;index1=0;weight=0.0;}}}void interpolate(const in sampler2D sampler,const in int count,const in float fraction,out int index0){if(count==1||fraction<=texelFetch(sampler,0,0).x){index0=0;}else if(fraction>=texelFetch(sampler,count-1,0).x){index0=count-2;}else{int index=upperBound(sampler,count,fraction);if(index<count)index0=index-1;else index0=0;}}vec3 getRandomBarycentricCoord(){float u=random();float v=random();if(u+v>1.0){u=1.0-u;v=1.0-v;}float t=1.0-u-v;return vec3(t,u,v);}void getRandomPointOnSurface(const in sampler2D surface,const in int verticesIndex,const in int normalsIndex,out vec4 position,out vec3 normal){float lastAreaSoFar=texelFetch(surface,verticesIndex-1,0).x;float fraction=random()*lastAreaSoFar;int index0;int index1;int index2;float weight;interpolate(surface,verticesIndex,fraction,index0,index1,weight);index0*=3;index1=index0+1;index2=index0+2;vec4 vertex0=texelFetch(surface,verticesIndex+index0,0);vec4 vertex1=texelFetch(surface,verticesIndex+index1,0);vec4 vertex2=texelFetch(surface,verticesIndex+index2,0);vec3 normal0=texelFetch(surface,normalsIndex+index0,0).xyz;vec3 normal1=texelFetch(surface,normalsIndex+index1,0).xyz;vec3 normal2=texelFetch(surface,normalsIndex+index2,0).xyz;vec3 r=getRandomBarycentricCoord();position=r.z*vertex0+r.x*vertex1+r.y*vertex2;normal=save_normalize(r.z*normal0+r.x*normal1+r.y*normal2);}\n${this.functions.join("\n")}\n vec4 getColor(const in float lifetime,const in float elapsedTime){if(numColors>0){float fraction=elapsedTime/lifetime;int index0;int index1;float weight;interpolate(colorRamp,numColors,fraction,index0,index1,weight);vec4 color0=texelFetch(colorRamp,numColors+index0,0);vec4 color1=texelFetch(colorRamp,numColors+index1,0);return mix(color0,color1,weight);}else{return vec4(1.0);}}void bounce(const in vec4 fromPosition,inout vec4 toPosition,inout vec3 velocity){if(boundedHierarchyRoot<0)return;Line3 line=Line3(fromPosition.xyz,save_normalize(velocity));vec4 points[ARRAY_SIZE];vec3 normals[ARRAY_SIZE];int numIntersections=getIntersections(boundedVolume,boundedVerticesIndex,boundedNormalsIndex,boundedHierarchyIndex,boundedHierarchyRoot,line,points,normals);if(numIntersections==0)return;Plane3 plane1=plane3(line.point,line.direction);int index=min_index(points,numIntersections,0.0,plane1);if(index==-1)return;Plane3 plane2=plane3(points[index].xyz,normals[index]);if(sign(plane_distance(plane2,fromPosition.xyz))==sign(plane_distance(plane2,toPosition.xyz)))return;velocity=reflect(velocity,normals[index]);toPosition=vec4(points[index].xyz+reflect(points[index].xyz-fromPosition.xyz,normals[index]),1.0);}int getTexCoordIndex0(const in float lifetime,const in float elapsedTime){if(numTexCoords==0){return-1;}else{float fraction=elapsedTime/lifetime;int index0=0;interpolate(texCoordRamp,numTexCoords,fraction,index0);return numTexCoords+index0*texCoordCount;}}void main(){int life=int(input0[0]);float lifetime=input0[1];float elapsedTime=input0[2]+deltaTime;srand((gl_VertexID+randomSeed)*randomSeed);if(elapsedTime>lifetime){lifetime=getRandomLifetime();elapsedTime=0.0;output0=vec4(max(life+1,1),lifetime,elapsedTime,getTexCoordIndex0(lifetime,elapsedTime));if(createParticles){output1=getColor(lifetime,elapsedTime);output2=vec4(getRandomVelocity(),0.0);output6=getRandomPosition();}else{output1=vec4(0.0);output2=vec4(0.0);output6=vec4(NaN);}}else{vec3 velocity=input2.xyz;vec4 position=input6;for(int i=0;i<numForces;++i){vec4 force=texelFetch(forces,i,0);float turbulence=force.w;vec3 normal=getRandomNormalWithDirectionAndAngle(force.xyz,turbulence);float speed=length(force.xyz);velocity+=normal*speed;}position.xyz+=velocity*deltaTime;bounce(input6,position,velocity);output0=vec4(life,lifetime,elapsedTime,getTexCoordIndex0(lifetime,elapsedTime));output1=getColor(lifetime,elapsedTime);output2=vec4(velocity,0.0);output6=position;}switch(geometryType){case POINT:case SPRITE:case GEOMETRY:{output3=vec4(1.0,0.0,0.0,0.0);output4=vec4(0.0,1.0,0.0,0.0);output5=vec4(0.0,0.0,1.0,0.0);break;}case LINE:{mat3 r=Matrix3(Quaternion(vec3(0.0,0.0,1.0),output2.xyz));mat3 s=mat3(1.0,0.0,0.0,0.0,1.0,0.0,0.0,0.0,particleSize.y);mat3 m=r*s;output3=vec4(m[0],0.0);output4=vec4(m[1],0.0);output5=vec4(m[2],0.0);break;}default:{output3=vec4(particleSize.x,0.0,0.0,0.0);output4=vec4(0.0,particleSize.y,0.0,0.0);output5=vec4(0.0,0.0,1.0,0.0);break;}}}\n`,n=t.createShader(t.VERTEX_SHADER);t.shaderSource(n,i),t.compileShader(n),t.getShaderParameter(n,t.COMPILE_STATUS)||console.error(t.getShaderInfoLog(n));const o=t.createShader(t.FRAGMENT_SHADER);t.shaderSource(o,"#version 300 es\nprecision highp float;void main(){}\n"),t.compileShader(o),t.getShaderParameter(o,t.COMPILE_STATUS)||console.error(t.getShaderInfoLog(o));const r=t.createProgram();t.attachShader(r,n),t.attachShader(r,o),t.transformFeedbackVaryings(r,Array.from({length:7},((e,t)=>"output"+t)),t.INTERLEAVED_ATTRIBS),t.linkProgram(r),t.getProgramParameter(r,t.LINK_STATUS)||console.error("Couldn't initialize particle shader: "+t.getProgramInfoLog(r)),r.inputs=[[0,t.getAttribLocation(r,"input0")],[2,t.getAttribLocation(r,"input2")],[6,t.getAttribLocation(r,"input6")]],r.randomSeed=t.getUniformLocation(r,"randomSeed"),r.geometryType=t.getUniformLocation(r,"geometryType"),r.createParticles=t.getUniformLocation(r,"createParticles"),r.particleLifetime=t.getUniformLocation(r,"particleLifetime"),r.lifetimeVariation=t.getUniformLocation(r,"lifetimeVariation"),r.deltaTime=t.getUniformLocation(r,"deltaTime"),r.particleSize=t.getUniformLocation(r,"particleSize"),r.numForces=t.getUniformLocation(r,"numForces"),r.forces=t.getUniformLocation(r,"forces"),r.boundedVerticesIndex=t.getUniformLocation(r,"boundedVerticesIndex"),r.boundedNormalsIndex=t.getUniformLocation(r,"boundedNormalsIndex"),r.boundedHierarchyIndex=t.getUniformLocation(r,"boundedHierarchyIndex"),r.boundedHierarchyRoot=t.getUniformLocation(r,"boundedHierarchyRoot"),r.boundedVolume=t.getUniformLocation(r,"boundedVolume"),r.numColors=t.getUniformLocation(r,"numColors"),r.colorRamp=t.getUniformLocation(r,"colorRamp"),r.texCoordCount=t.getUniformLocation(r,"texCoordCount"),r.numTexCoords=t.getUniformLocation(r,"numTexCoords"),r.texCoordRamp=t.getUniformLocation(r,"texCoordRamp");for(const e of Object.keys(this.uniforms))r[e]=t.getUniformLocation(r,e);r.NaN=t.getUniformLocation(r,"NaN"),t.useProgram(r);for(const i of this.samplers){const n=t.getUniformLocation(r,i);t.uniform1i(n,r[i+"TextureUnit"]=e.getTexture2DUnit())}return t.uniform1f(r.NaN,NaN),e.resetTextureUnits(),r},activateTextures(){},createTexture(){const e=this.getBrowser().getContext(),t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,1,1,0,e.RGBA,e.FLOAT,new Float32Array(4)),t},getTexture2DUnit(e,t,i){const n=t[i];return void 0===n?t[i]=e.getTexture2DUnit():n}}),Object.defineProperties(F,{typeName:{value:"X3DParticleEmitterNode",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0}});const E=F;m().set("x_ite/Components/ParticleSystems/X3DParticleEmitterNode",E);const S=E,P=window[Symbol.for("X_ITE.X3D-8.11.8")].require("standard/Math/Numbers/Vector3");var A=i.n(P);function N(e){S.call(this,e),this.addType(_().PointEmitter),this._position.setUnit("length"),this.addUniform("position","uniform vec3 position;"),this.addUniform("direction","uniform vec3 direction;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (direction == vec3 (0.0))\n return getRandomSphericalVelocity ();\n\n else\n return direction * getRandomSpeed ();\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return vec4 (position, 1.0);\n }")}Object.assign(Object.setPrototypeOf(N.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this),this.getBrowser().getContext().getVersion()<2||(this._position.addInterest("set_position__",this),this._direction.addInterest("set_direction__",this),this.set_position__(),this.set_direction__())},set_position__(){const e=this._position.getValue();this.setUniform("uniform3f","position",e.x,e.y,e.z)},set_direction__:(()=>{const e=new(A())(0,0,0);return function(){e.assign(this._direction.getValue()).normalize(),this.setUniform("uniform3f","direction",e.x,e.y,e.z)}})()}),Object.defineProperties(N,{typeName:{value:"PointEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"position",new(o().SFVec3f)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat))]),enumerable:!0}});const O=N;m().set("x_ite/Components/ParticleSystems/PointEmitter",O);const C=O,V=Symbol();Symbol();function B(){}Object.assign(B.prototype,{getDefaultEmitter(){return this[V]=new C(this.getPrivateScene()),this[V].setPrivate(!0),this[V].setup(),this.getDefaultEmitter=function(){return this[V]},Object.defineProperty(this,"getDefaultEmitter",{enumerable:!1}),this[V]}});const D=B;m().set("x_ite/Browser/ParticleSystems/X3DParticleSystemsContext",D);const z=D;function U(e){u().call(this,e),this.addType(_().X3DParticlePhysicsModelNode)}Object.assign(Object.setPrototypeOf(U.prototype,u().prototype),{addForce(){}}),Object.defineProperties(U,{typeName:{value:"X3DParticlePhysicsModelNode",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0}});const M=U;m().set("x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode",M);const L=M,X=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Base/X3DCast");var j=i.n(X);function q(e){L.call(this,e),this.addType(_().BoundedPhysicsModel)}Object.assign(Object.setPrototypeOf(q.prototype,L.prototype),{initialize(){L.prototype.initialize.call(this),this._geometry.addInterest("set_geometry__",this),this.set_geometry__()},set_geometry__(){this.geometryNode&&this.geometryNode._rebuild.removeInterest("addNodeEvent",this),this.geometryNode=j()(_().X3DGeometryNode,this._geometry),this.geometryNode&&this.geometryNode._rebuild.addInterest("addNodeEvent",this)},addGeometry(e,t){if(this.geometryNode&&this._enabled.getValue()){const i=this.geometryNode.getNormals().getValue(),n=this.geometryNode.getVertices().getValue();for(const t of i)e.push(t);for(const e of n)t.push(e)}}}),Object.defineProperties(q,{typeName:{value:"BoundedPhysicsModel",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"physics",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"geometry",new(o().SFNode))]),enumerable:!0}});const H=q;m().set("x_ite/Components/ParticleSystems/BoundedPhysicsModel",H);const G=H;function k(e){S.call(this,e),this.addType(_().ConeEmitter),this._position.setUnit("length"),this._angle.setUnit("angle"),this.addUniform("position","uniform vec3 position;"),this.addUniform("direction","uniform vec3 direction;"),this.addUniform("angle","uniform float angle;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (direction == vec3 (0.0))\n {\n return getRandomSphericalVelocity ();\n }\n else\n {\n vec3 normal = getRandomNormalWithDirectionAndAngle (direction, angle);\n float speed = getRandomSpeed ();\n\n return normal * speed;\n }\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return vec4 (position, 1.0);\n }")}Object.assign(Object.setPrototypeOf(k.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this),this.getBrowser().getContext().getVersion()<2||(this._position.addInterest("set_position__",this),this._direction.addInterest("set_direction__",this),this._angle.addInterest("set_angle__",this),this.set_position__(),this.set_direction__(),this.set_angle__())},set_position__(){const e=this._position.getValue();this.setUniform("uniform3f","position",e.x,e.y,e.z)},set_direction__(){const e=this._direction.getValue();this.setUniform("uniform3f","direction",e.x,e.y,e.z)},set_angle__(){this.setUniform("uniform1f","angle",this._angle.getValue())}}),Object.defineProperties(k,{typeName:{value:"ConeEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"position",new(o().SFVec3f)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"angle",new(o().SFFloat)(.785398)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat))]),enumerable:!0}});const Y=k;m().set("x_ite/Components/ParticleSystems/ConeEmitter",Y);const W=Y;function K(e){S.call(this,e),this.addType(_().ExplosionEmitter),this._position.setUnit("length"),this.addUniform("position","uniform vec3 position;"),this.addFunction("vec3 getRandomVelocity ()\n {\n return getRandomSphericalVelocity ();\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return vec4 (position, 1.0);\n }")}Object.assign(Object.setPrototypeOf(K.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this),this.getBrowser().getContext().getVersion()<2||(this._position.addInterest("set_position__",this),this.set_position__())},isExplosive:()=>!0,set_position__(){const e=this._position.getValue();this.setUniform("uniform3f","position",e.x,e.y,e.z)}}),Object.defineProperties(K,{typeName:{value:"ExplosionEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"position",new(o().SFVec3f)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat))]),enumerable:!0}});const Z=K;m().set("x_ite/Components/ParticleSystems/ExplosionEmitter",Z);const Q=Z;function $(e){L.call(this,e),this.addType(_().ForcePhysicsModel),this._force.setUnit("force")}Object.assign(Object.setPrototypeOf($.prototype,L.prototype),{addForce:(()=>{const e=new(A())(0,0,0);return function(t,i,n,o){return!!this._enabled.getValue()&&(o.set(e.assign(this._force.getValue()).multiply(n),4*t),o[4*t+3]=0,!0)}})()}),Object.defineProperties($,{typeName:{value:"ForcePhysicsModel",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"physics",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"force",new(o().SFVec3f)(0,-9.8,0))]),enumerable:!0}});const J=$;m().set("x_ite/Components/ParticleSystems/ForcePhysicsModel",J);const ee=J,te=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Components/Shape/X3DShapeNode");var ie=i.n(te);const ne=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Browser/Rendering/GeometryContext");var oe=i.n(ne);const re=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Rendering/VertexArray");var se=i.n(re);const ae=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Rendering/TraverseType");var ce=i.n(ae);const le=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Browser/Shape/AlphaMode");var ue=i.n(le);const de=window[Symbol.for("X_ITE.X3D-8.11.8")].require("standard/Math/Numbers/Matrix4");var me=i.n(de);const he=window[Symbol.for("X_ITE.X3D-8.11.8")].require("standard/Math/Numbers/Matrix3");var pe=i.n(he);const fe=window[Symbol.for("X_ITE.X3D-8.11.8")].require("standard/Math/Geometry/Plane3");var xe=i.n(fe);function _e(e,t){this.array=e,t&&(this.compare=t)}Object.assign(_e.prototype,{compare:(e,t)=>e<t,sort(e,t){t-e>1&&this.quicksort(e,t-1)},quicksort(e,t){let i=e,n=t;const{array:o,compare:r}=this,s=o[e+t>>>1];for(;;){for(;r(o[i],s);)++i;for(;r(s,o[n]);)--n;if(!(i<n)){i===n&&(++i,--n);break}{const e=o[i];o[i]=o[n],o[n]=e,i++,n--}}e<n&&this.quicksort(e,n),i<t&&this.quicksort(i,t)}});const ye=_e;m().set("standard/Math/Algorithms/QuickSort",ye);const ge=ye,ve=new(A())(0,0,0),Te=new(A())(0,0,0),we=new(A())(0,0,0),be={u:0,v:0,t:0},Re=[new(A())(0,0,1),new(A())(0,0,-1),new(A())(0,1,0),new(A())(0,-1,0),new(A())(1,0,0)];function Ie(e,t){this.vertices=e.vertices,this.normals=e.normals,this.triangle=t,this.i4=12*t,this.i3=9*t}function Fe(e,t,i,n){this.min=new(A())(0,0,0),this.max=new(A())(0,0,0),this.planes=[],this.intersection=new(A())(0,0,0);const o=e.vertices,r=this.min,s=this.max,a=i+n;let c=12*t[i];r.set(o[c],o[c+1],o[c+2]),s.assign(r);for(let e=i;e<a;++e)c=12*t[e],ve.set(o[c],o[c+1],o[c+2]),Te.set(o[c+4],o[c+5],o[c+6]),we.set(o[c+8],o[c+9],o[c+10]),r.min(ve,Te,we),s.max(ve,Te,we);for(let e=0;e<5;++e)this.planes[e]=new(xe())(e%2?r:s,Re[e]);if(n>2){e.sorter.compare.axis=this.getLongestAxis(r,s),e.sorter.sort(i,a);var l=n>>>1}else l=1;const u=n-l;this.left=l>1?new Fe(e,t,i,l):new Ie(e,t[i]),this.right=u>1?new Fe(e,t,i+l,u):new Ie(e,t[i+l])}function Ee(e,t){const i=e.length/12;switch(this.vertices=e,this.normals=t,i){case 0:this.root=null;break;case 1:this.root=new Ie(this,0);break;default:{const t=[];for(let e=0;e<i;++e)t.push(e);this.sorter=new ge(t,function(e,t){return function(i,n){return Math.min(e[i+t],e[i+4+t],e[i+8+t])<Math.min(e[n+t],e[n+4+t],e[n+8+t])}}(e,0)),this.root=new Fe(this,t,0,i);break}}}Object.assign(Ie.prototype,{intersectsLine(e,t,i){const n=this.vertices,o=this.normals,r=this.i4,s=this.i3;if(ve.x=n[r],ve.y=n[r+1],ve.z=n[r+2],Te.x=n[r+4],Te.y=n[r+5],Te.z=n[r+6],we.x=n[r+8],we.y=n[r+9],we.z=n[r+10],e.intersectsTriangle(ve,Te,we,be)){const e=be.u,a=be.v,c=1-e-a,l=t.size++;l>=t.length&&t.push(new(A())(0,0,0)),t[l].set(c*n[r]+e*n[r+4]+a*n[r+8],c*n[r+1]+e*n[r+5]+a*n[r+9],c*n[r+2]+e*n[r+6]+a*n[r+10]),i&&(l>=i.length&&i.push(new(A())(0,0,0)),i[l].set(c*o[s]+e*o[s+3]+a*o[s+6],c*o[s+1]+e*o[s+4]+a*o[s+7],c*o[s+2]+e*o[s+5]+a*o[s+8]))}},toArray(e){const t=e.length/4;return e.push(1,3*this.triangle,0,0),t}}),Object.assign(Fe.prototype,{intersectsLine(e,t,i){this.intersectsBBox(e)&&(this.left.intersectsLine(e,t,i),this.right.intersectsLine(e,t,i))},intersectsBBox(e){const t=this.planes,i=this.min,n=this.max,o=i.x,r=n.x,s=i.y,a=n.y,c=i.z,l=n.z,u=this.intersection;return!!(t[0].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.y>=s&&u.y<=a)||(!!(t[1].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.y>=s&&u.y<=a)||(!!(t[2].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.z>=c&&u.z<=l)||(!!(t[3].intersectsLine(e,u)&&u.x>=o&&u.x<=r&&u.z>=c&&u.z<=l)||!!(t[4].intersectsLine(e,u)&&u.y>=s&&u.y<=a&&u.z>=c&&u.z<=l))))},getLongestAxis(e,t){const i=t.x-e.x,n=t.y-e.y,o=t.z-e.z;return i<n?n<o?2:1:i<o?2:0},toArray(e){const t=this.left.toArray(e),i=this.right.toArray(e),n=this.min,o=this.max,r=e.length/4;return e.push(0,t,i,0,n.x,n.y,n.z,0,o.x,o.y,o.z,0),r}}),Object.assign(Ee.prototype,{intersectsLine(e,t,i){return t.size=0,this.root?(this.root.intersectsLine(e,t,i),t.size):0},toArray(e){if(this.root){const t=this.root.toArray(e);e.push(t,0,0,0)}return e}});const Se=Ee;m().set("standard/Math/Utility/BVH",Se);const Pe=Se;var Ae=i(355);const Ne=new Float32Array([0,0,0,1]),Oe=new Float32Array([0,0,0,1,1,0,0,1,0,0,-.5,1,0,0,.5,1]),Ce=new Float32Array([0,0,0,1,1,0,0,1,1,1,0,1,0,0,0,1,1,1,0,1,0,1,0,1,0,0,1,-.5,-.5,0,1,.5,-.5,0,1,.5,.5,0,1,-.5,-.5,0,1,.5,.5,0,1,-.5,.5,0,1]);function Ve(e){ie().call(this,e),this.addType(_().ParticleSystem),this._particleSize.setUnit("length"),e.getSpecificationVersion()<=3.3&&(this.addAlias("colorRamp",this._color),this.addAlias("texCoordRamp",this._texCoord));const t=this.getBrowser();this.maxParticles=0,this.numParticles=0,this.forcePhysicsModelNodes=[],this.forces=new Float32Array(4),this.boundedPhysicsModelNodes=[],this.boundedNormals=[],this.boundedVertices=[],this.colorRamp=new Float32Array,this.texCoordRamp=new Float32Array,this.geometryContext=new(oe())({textureCoordinateNode:t.getDefaultTextureCoordinate()}),this.creationTime=0,this.pauseTime=0,this.deltaTime=0,this.particleStride=7*Float32Array.BYTES_PER_ELEMENT*4,this.particleOffsets=Array.from({length:7},((e,t)=>4*Float32Array.BYTES_PER_ELEMENT*t)),this.particleOffset=this.particleOffsets[0],this.colorOffset=this.particleOffsets[1],this.matrixOffset=this.particleOffsets[3],this.texCoordOffset=0}Object.assign(Object.setPrototypeOf(Ve.prototype,ie().prototype),{initialize(){ie().prototype.initialize.call(this);const e=this.getBrowser(),t=e.getContext();e.getContext().getVersion()<2||(this.getLive().addInterest("set_live__",this),this._enabled.addInterest("set_enabled__",this),this._createParticles.addInterest("set_createParticles__",this),this._geometryType.addInterest("set_geometryType__",this),this._geometryType.addInterest("set_texCoord__",this),this._maxParticles.addInterest("set_enabled__",this),this._particleLifetime.addInterest("set_particleLifetime__",this),this._lifetimeVariation.addInterest("set_lifetimeVariation__",this),this._emitter.addInterest("set_emitter__",this),this._physics.addInterest("set_physics__",this),this._colorKey.addInterest("set_color__",this),this._color.addInterest("set_colorRamp__",this),this._texCoordKey.addInterest("set_texCoord__",this),this._texCoord.addInterest("set_texCoordRamp__",this),this.inputParticles=this.createBuffer(),this.outputParticles=this.createBuffer(),this.inputParticles.vertexArrayObject=new(se())(t),this.outputParticles.vertexArrayObject=new(se())(t),this.forcesTexture=this.createTexture(),this.boundedTexture=this.createTexture(),this.colorRampTexture=this.createTexture(),this.texCoordRampTexture=this.createTexture(),this.geometryBuffer=this.createBuffer(),this.texCoordBuffers=new Array(e.getMaxTextures()).fill(this.geometryBuffer),this.set_emitter__(),this.set_enabled__(),this.set_geometryType__(),this.set_createParticles__(),this.set_particleLifetime__(),this.set_lifetimeVariation__(),this.set_physics__(),this.set_colorRamp__(),this.set_texCoordRamp__())},getShapeKey(){return this.numTexCoords?2:1},getGeometryContext(){return this.geometryType===f.GEOMETRY?this.getGeometry():this.geometryContext},set_bbox__(){this._bboxSize.getValue().equals(this.getDefaultBBoxSize())?this.bbox.set():this.bbox.set(this._bboxSize.getValue(),this._bboxCenter.getValue()),this.bboxSize.assign(this.bbox.size),this.bboxCenter.assign(this.bbox.center)},set_transparent__(){if(this.getAppearance().getAlphaMode()===ue().AUTO)if(this.geometryType===f.POINT)this.setTransparent(!0);else this.setTransparent(!!(this.getAppearance().isTransparent()||this.colorRampNode?.isTransparent()||this.geometryType===f.GEOMETRY&&this.geometryNode?.isTransparent()));else this.setTransparent(this.getAppearance().isTransparent())},set_live__(){this.getLive().getValue()?this._isActive.getValue()&&this._maxParticles.getValue()&&(this.getBrowser().sensorEvents().addInterest("animateParticles",this),this.pauseTime&&(this.creationTime+=Date.now()/1e3-this.pauseTime,this.pauseTime=0)):this._isActive.getValue()&&this._maxParticles.getValue()&&(this.getBrowser().sensorEvents().removeInterest("animateParticles",this),0===this.pauseTime&&(this.pauseTime=Date.now()/1e3))},set_enabled__(){this._enabled.getValue()&&this._maxParticles.getValue()?this._isActive.getValue()||(this.getLive().getValue()?(this.getBrowser().sensorEvents().addInterest("animateParticles",this),this.pauseTime=0):this.pauseTime=Date.now()/1e3,this._isActive=!0,delete this.traverse):this._isActive.getValue()&&(this.getLive().getValue()&&this.getBrowser().sensorEvents().removeInterest("animateParticles",this),this._isActive=!1,this.numParticles=0,this.traverse=Function.prototype),this.set_maxParticles__()},set_createParticles__(){this.createParticles=this._createParticles.getValue()},set_geometryType__(){const e=this.getBrowser().getContext();switch(this.geometryType=Ae.enum(f,this._geometryType.getValue(),f.QUAD),this.geometryType){case f.POINT:this.geometryContext.geometryType=0,this.geometryContext.hasNormals=!1,this.texCoordCount=0,this.vertexCount=1,this.hasNormals=!1,this.verticesOffset=0,this.primitiveMode=e.POINTS,e.bindBuffer(e.ARRAY_BUFFER,this.geometryBuffer),e.bufferData(e.ARRAY_BUFFER,Ne,e.DYNAMIC_DRAW);break;case f.LINE:this.geometryContext.geometryType=1,this.geometryContext.hasNormals=!1,this.texCoordCount=2,this.vertexCount=2,this.hasNormals=!1,this.texCoordsOffset=0,this.verticesOffset=8*Float32Array.BYTES_PER_ELEMENT,this.primitiveMode=e.LINES,e.bindBuffer(e.ARRAY_BUFFER,this.geometryBuffer),e.bufferData(e.ARRAY_BUFFER,Oe,e.DYNAMIC_DRAW);break;case f.TRIANGLE:case f.QUAD:case f.SPRITE:this.geometryContext.geometryType=2,this.geometryContext.hasNormals=!0,this.texCoordCount=4,this.vertexCount=6,this.hasNormals=!0,this.texCoordsOffset=0,this.normalOffset=24*Float32Array.BYTES_PER_ELEMENT,this.verticesOffset=27*Float32Array.BYTES_PER_ELEMENT,this.primitiveMode=e.TRIANGLES,e.bindBuffer(e.ARRAY_BUFFER,this.geometryBuffer),e.bufferData(e.ARRAY_BUFFER,Ce,e.DYNAMIC_DRAW);break;case f.GEOMETRY:this.texCoordCount=0}this.geometryContext.updateGeometryKey(),this.updateVertexArrays(),this.set_transparent__()},set_maxParticles__(){const e=this.numParticles,t=Math.max(0,this._maxParticles.getValue());this.maxParticles=t,this.numParticles=Math.min(e,t),this.emitterNode.isExplosive()||(this.creationTime=Date.now()/1e3),this.resizeBuffers(e),this.updateVertexArrays()},set_particleLifetime__(){this.particleLifetime=this._particleLifetime.getValue()},set_lifetimeVariation__(){this.lifetimeVariation=this._lifetimeVariation.getValue()},set_emitter__(){this.emitterNode=j()(_().X3DParticleEmitterNode,this._emitter),this.emitterNode||(this.emitterNode=this.getBrowser().getDefaultEmitter()),this.createParticles=this._createParticles.getValue()},set_physics__(){const e=this._physics.getValue(),t=this.forcePhysicsModelNodes,i=this.boundedPhysicsModelNodes;for(let e=0,t=i.length;e<t;++e)i[e].removeInterest("set_boundedPhysics__",this);t.length=0,i.length=0;for(let n=0,o=e.length;n<o;++n)try{const o=e[n].getValue().getInnerNode(),r=o.getType();for(let e=r.length-1;e>=0;--e){switch(r[e]){case _().ForcePhysicsModel:case _().WindPhysicsModel:t.push(o);break;case _().BoundedPhysicsModel:o.addInterest("set_boundedPhysics__",this),i.push(o);break;default:continue}break}}catch{}this.set_boundedPhysics__()},set_boundedPhysics__(){const e=this.getBrowser().getContext(),t=this.boundedPhysicsModelNodes,i=this.boundedNormals,n=this.boundedVertices;i.length=0,n.length=0;for(let e=0,o=t.length;e<o;++e)t[e].addGeometry(i,n);const o=new Pe(n,i).toArray([]),r=n.length/4,s=i.length/3,a=o.length/4,c=Math.ceil(Math.sqrt(r+s+a)),l=new Float32Array(c*c*4);this.boundedVerticesIndex=0,this.boundedNormalsIndex=r,this.boundedHierarchyIndex=this.boundedNormalsIndex+s,this.boundedHierarchyRoot=this.boundedHierarchyIndex+a-1,l.set(n);for(let e=4*this.boundedNormalsIndex,t=0,n=i.length;t<n;e+=4,t+=3)l[e+0]=i[t+0],l[e+1]=i[t+1],l[e+2]=i[t+2];l.set(o,4*this.boundedHierarchyIndex),c&&(e.bindTexture(e.TEXTURE_2D,this.boundedTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,c,c,0,e.RGBA,e.FLOAT,l))},set_colorRamp__(){this.colorRampNode&&this.colorRampNode.removeInterest("set_color__",this),this.colorRampNode=j()(_().X3DColorNode,this._color),this.colorRampNode&&this.colorRampNode.addInterest("set_color__",this),this.set_color__(),this.set_transparent__()},set_color__(){const e=this.getBrowser().getContext(),t=this._colorKey,i=t.length,n=Math.ceil(Math.sqrt(2*i));let o=this.colorRamp;n*n*4>o.length&&(o=this.colorRamp=new Float32Array(n*n*4));for(let e=0;e<i;++e)o[4*e]=t[e];this.colorRampNode?o.set(this.colorRampNode.addColors([],i).slice(0,4*i),4*i):o.fill(1,4*i),n&&(e.bindTexture(e.TEXTURE_2D,this.colorRampTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,n,n,0,e.RGBA,e.FLOAT,o)),this.numColors=i,this.geometryContext.colorMaterial=!(!i||!this.colorRampNode),this.geometryContext.updateGeometryKey(),this.updateVertexArrays()},set_texCoordRamp__(){this.texCoordRampNode&&this.texCoordRampNode.removeInterest("set_texCoord__",this),this.texCoordRampNode=j()(_().X3DTextureCoordinateNode,this._texCoord),this.texCoordRampNode&&this.texCoordRampNode.addInterest("set_texCoord__",this),this.set_texCoord__()},set_texCoord__(){const e=this.getBrowser().getContext(),t=this._texCoordKey,i=t.length,n=Math.ceil(Math.sqrt(i+i*this.texCoordCount));let o=this.texCoordRamp;n*n*4>o.length?o=this.texCoordRamp=new Float32Array(n*n*4):o.fill(0);for(let e=0;e<i;++e)o[4*e]=t[e];this.texCoordRampNode&&o.set(this.texCoordRampNode.getPoints([]).slice(0,i*this.texCoordCount*4),4*i),n&&(e.bindTexture(e.TEXTURE_2D,this.texCoordRampTexture),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,n,n,0,e.RGBA,e.FLOAT,o)),this.numTexCoords=this.texCoordRampNode?i:0,this.updateVertexArrays()},updateVertexArrays(){this.inputParticles.vertexArrayObject.update(),this.outputParticles.vertexArrayObject.update()},createTexture(){const e=this.getBrowser().getContext(),t=e.createTexture();return e.bindTexture(e.TEXTURE_2D,t),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_S,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_WRAP_T,e.CLAMP_TO_EDGE),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MAG_FILTER,e.NEAREST),e.texParameteri(e.TEXTURE_2D,e.TEXTURE_MIN_FILTER,e.NEAREST),e.texImage2D(e.TEXTURE_2D,0,e.RGBA32F,1,1,0,e.RGBA,e.FLOAT,new Float32Array(4)),t},createBuffer(){const e=this.getBrowser().getContext(),t=e.createBuffer();return e.bindBuffer(e.ARRAY_BUFFER,t),e.bufferData(e.ARRAY_BUFFER,new Uint32Array,e.DYNAMIC_DRAW),t},resizeBuffers(e){const t=this.getBrowser().getContext(),i=this.maxParticles,n=this.particleStride,o=Object.assign(t.createBuffer(),this.outputParticles),r=new Uint8Array(i*n);t.bindBuffer(t.ARRAY_BUFFER,this.inputParticles),t.bufferData(t.ARRAY_BUFFER,r,t.DYNAMIC_DRAW),t.bindBuffer(t.COPY_READ_BUFFER,this.outputParticles),t.bindBuffer(t.ARRAY_BUFFER,o),t.bufferData(t.ARRAY_BUFFER,r,t.DYNAMIC_DRAW),t.copyBufferSubData(t.COPY_READ_BUFFER,t.ARRAY_BUFFER,0,0,Math.min(i*n,e*n)),t.deleteBuffer(this.outputParticles),this.outputParticles=o},animateParticles(){const e=this.getBrowser(),t=e.getContext(),i=this.emitterNode,n=1/Math.max(10,this.getBrowser().getCurrentFrameRate());let o=this.deltaTime=(14*this.deltaTime+n)/15;if(i.isExplosive()){const e=Date.now()/1e3,t=this.particleLifetime+this.particleLifetime*this.lifetimeVariation;e-this.creationTime>t?(this.creationTime=e,this.numParticles=this.maxParticles,this.createParticles=this._createParticles.getValue(),o=Number.POSITIVE_INFINITY):this.createParticles=!1}else if(this.numParticles<this.maxParticles){const e=Date.now()/1e3,t=Math.max(0,Math.floor((e-this.creationTime)*this.maxParticles/this.particleLifetime));t&&(this.creationTime=e),this.numParticles=Math.min(this.maxParticles,this.numParticles+t)}if(i.getMass()){const e=this.forcePhysicsModelNodes;let n=e.length,r=this.forces,s=o/i.getMass();4*n>r.length&&(r=this.forces=new Float32Array(4*n));let a=0;for(let t=0;t<n;++t)a+=!e[t].addForce(t-a,i,s,r);this.numForces=n-=a,n&&(t.bindTexture(t.TEXTURE_2D,this.forcesTexture),t.texImage2D(t.TEXTURE_2D,0,t.RGBA32F,n,1,0,t.RGBA,t.FLOAT,r))}else this.numForces=0;const r=this.outputParticles;this.outputParticles=this.inputParticles,this.inputParticles=r,i.animate(this,o),e.addBrowserEvent()},updateSprite:(()=>{const e=new Float32Array(Ce),t=[new(A())(-.5,-.5,0),new(A())(.5,-.5,0),new(A())(.5,.5,0),new(A())(-.5,-.5,0),new(A())(.5,.5,0),new(A())(-.5,.5,0)],i=new(A())(0,0,0),n=new(A())(0,0,0);return function(o,r){for(let t=0;t<3;++t)e[24+t]=r[6+t];n.set(this._particleSize.x,this._particleSize.y,1);for(let o=0;o<6;++o){const s=27+4*o;r.multVecMatrix(i.assign(t[o]).multVec(n)),e[s+0]=i.x,e[s+1]=i.y,e[s+2]=i.z}o.bindBuffer(o.ARRAY_BUFFER,this.geometryBuffer),o.bufferData(o.ARRAY_BUFFER,e,o.DYNAMIC_DRAW)}})(),intersectsBox(e,t){},traverse(e,t){switch(e){case ce().POINTER:t.addPointingShape(this);break;case ce().PICKING:case ce().COLLISION:break;case ce().SHADOW:this._castShadow.getValue()&&t.addShadowShape(this);break;case ce().DISPLAY:t.addDisplayShape(this)&&this.getAppearance().traverse(e,t)}this.geometryType===f.GEOMETRY&&this.getGeometry()&&this.getGeometry().traverse(e,t)},displaySimple(e,t,i){if(this.numParticles)switch(this.geometryType){case f.GEOMETRY:{const t=this.getGeometry();t&&t.displaySimpleParticles(e,i,this);break}case f.SPRITE:this.updateSprite(e,this.getScreenAlignedRotation(t.modelViewMatrix));default:{const t=this.outputParticles;if(t.vertexArrayObject.enable(i)){const n=this.particleStride;i.enableParticleAttribute(e,t,n,this.particleOffset,1),i.enableParticleMatrixAttribute(e,t,n,this.matrixOffset,1),i.enableVertexAttribute(e,this.geometryBuffer,0,this.verticesOffset)}e.drawArraysInstanced(this.primitiveMode,0,this.vertexCount,this.numParticles);break}}},display(e,t){if(this.numParticles)switch(this.geometryType){case f.GEOMETRY:{const i=this.getGeometry();i&&i.displayParticles(e,t,this);break}case f.SPRITE:this.updateSprite(e,this.getScreenAlignedRotation(t.modelViewMatrix));case f.QUAD:case f.TRIANGLE:{const i=me().prototype.determinant3.call(t.modelViewMatrix)>0;e.frontFace(i?e.CCW:e.CW),e.enable(e.CULL_FACE)}default:{const i=this.getBrowser(),n=this.getAppearance(),o=n.getShader(this.geometryContext,t),r=i.getPrimitiveMode(this.primitiveMode),s=n.getBlendMode();if(s?.enable(e),o.enable(e),o.setUniforms(e,this.geometryContext,t),this.numTexCoords){const t=i.getTexture2DUnit();e.activeTexture(e.TEXTURE0+t),e.bindTexture(e.TEXTURE_2D,this.texCoordRampTexture),e.uniform1i(o.x3d_TexCoordRamp,t)}const a=this.outputParticles;if(a.vertexArrayObject.enable(o)){const t=this.particleStride;o.enableParticleAttribute(e,a,t,this.particleOffset,1),o.enableParticleMatrixAttribute(e,a,t,this.matrixOffset,1),this.geometryContext.colorMaterial&&(o.enableColorAttribute(e,a,t,this.colorOffset),o.colorAttributeDivisor(e,1)),this.texCoordCount&&o.enableTexCoordAttribute(e,this.texCoordBuffers,0,this.texCoordOffset),this.hasNormals&&(o.enableNormalAttribute(e,this.geometryBuffer,0,this.normalOffset),o.normalAttributeDivisor(e,this.maxParticles)),o.enableVertexAttribute(e,this.geometryBuffer,0,this.verticesOffset)}e.drawArraysInstanced(r,0,this.vertexCount,this.numParticles),s?.disable(e);break}}},getScreenAlignedRotation:(()=>{const e=new(me()),t=new(A())(0,0,0),i=new(A())(0,0,0),n=new(A())(0,0,0),o=new(pe())(9);return function(r){e.assign(r).inverse(),e.multDirMatrix(t.assign(A().zAxis)),e.multDirMatrix(i.assign(A().yAxis));const s=i.cross(t);n.assign(t).cross(s);const a=t;return s.normalize(),n.normalize(),a.normalize(),o.set(s.x,s.y,s.z,n.x,n.y,n.z,a.x,a.y,a.z),o}})()}),Object.defineProperties(Ve,{typeName:{value:"ParticleSystem",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"children",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"createParticles",new(o().SFBool)(!0)),new(s())(_().initializeOnly,"geometryType",new(o().SFString)("QUAD")),new(s())(_().inputOutput,"maxParticles",new(o().SFInt32)(200)),new(s())(_().inputOutput,"particleLifetime",new(o().SFFloat)(5)),new(s())(_().inputOutput,"lifetimeVariation",new(o().SFFloat)(.25)),new(s())(_().inputOutput,"particleSize",new(o().SFVec2f)(.02,.02)),new(s())(_().initializeOnly,"emitter",new(o().SFNode)),new(s())(_().initializeOnly,"physics",new(o().MFNode)),new(s())(_().initializeOnly,"colorKey",new(o().MFFloat)),new(s())(_().initializeOnly,"color",new(o().SFNode)),new(s())(_().initializeOnly,"texCoordKey",new(o().MFFloat)),new(s())(_().initializeOnly,"texCoord",new(o().SFNode)),new(s())(_().outputOnly,"isActive",new(o().SFBool)),new(s())(_().inputOutput,"visible",new(o().SFBool)(!0)),new(s())(_().inputOutput,"castShadow",new(o().SFBool)(!0)),new(s())(_().inputOutput,"bboxDisplay",new(o().SFBool)),new(s())(_().initializeOnly,"bboxSize",new(o().SFVec3f)(-1,-1,-1)),new(s())(_().initializeOnly,"bboxCenter",new(o().SFVec3f)),new(s())(_().inputOutput,"appearance",new(o().SFNode)),new(s())(_().inputOutput,"geometry",new(o().SFNode))]),enumerable:!0}});const Be=Ve;m().set("x_ite/Components/ParticleSystems/ParticleSystem",Be);const De=Be,ze=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Components/Rendering/IndexedLineSet");var Ue=i.n(ze);function Me(e){S.call(this,e),this.addType(_().PolylineEmitter),this.polylinesNode=new(Ue())(e),this.polylinesArray=new Float32Array,this.addSampler("polylines"),this.addUniform("direction","uniform vec3 direction;"),this.addUniform("verticesIndex","uniform int verticesIndex;"),this.addUniform("polylines","uniform sampler2D polylines;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (direction == vec3 (0.0))\n return getRandomSphericalVelocity ();\n\n else\n return direction * getRandomSpeed ();\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n if (verticesIndex < 0)\n {\n return vec4 (NaN);\n }\n else\n {\n // Determine index0, index1 and weight.\n\n float lastLengthSoFar = texelFetch (polylines, verticesIndex - 1, 0) .x;\n float fraction = random () * lastLengthSoFar;\n\n int index0 = 0;\n int index1 = 0;\n float weight = 0.0;\n\n interpolate (polylines, verticesIndex, fraction, index0, index1, weight);\n\n // Interpolate and return position.\n\n index0 *= 2;\n index1 = index0 + 1;\n\n vec4 vertex0 = texelFetch (polylines, verticesIndex + index0, 0);\n vec4 vertex1 = texelFetch (polylines, verticesIndex + index1, 0);\n\n return mix (vertex0, vertex1, weight);\n }\n }")}Object.assign(Object.setPrototypeOf(Me.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this.polylinesTexture=this.createTexture(),this._direction.addInterest("set_direction__",this),this._coordIndex.addFieldInterest(this.polylinesNode._coordIndex),this._coord.addFieldInterest(this.polylinesNode._coord),this.polylinesNode._coordIndex=this._coordIndex,this.polylinesNode._coord=this._coord,this.polylinesNode._rebuild.addInterest("set_polyline",this),this.polylinesNode.setPrivate(!0),this.polylinesNode.setup(),this.set_direction__(),this.set_polyline())},set_direction__:(()=>{const e=new(A())(0,0,0);return function(){e.assign(this._direction.getValue()).normalize(),this.setUniform("uniform3f","direction",e.x,e.y,e.z)}})(),set_polyline:(()=>{const e=new(A())(0,0,0),t=new(A())(0,0,0);return function(){const i=this.getBrowser().getContext(),n=this.polylinesNode.getVertices().getValue(),o=n.length/4,r=o/2+1,s=Math.ceil(Math.sqrt(r+o)),a=r;let c=this.polylinesArray;c.length<s*s*4&&(c=this.polylinesArray=new Float32Array(s*s*4));let l=0;for(let i=0,o=n.length;i<o;i+=8)e.set(n[i],n[i+1],n[i+2]),t.set(n[i+4],n[i+5],n[i+6]),c[i/2+4]=l+=t.subtract(e).magnitude();c.set(n,4*a),this.setUniform("uniform1i","verticesIndex",o?a:-1),s&&(i.bindTexture(i.TEXTURE_2D,this.polylinesTexture),i.texImage2D(i.TEXTURE_2D,0,i.RGBA32F,s,s,0,i.RGBA,i.FLOAT,c))}})(),activateTextures(e,t){e.activeTexture(e.TEXTURE0+t.polylinesTextureUnit),e.bindTexture(e.TEXTURE_2D,this.polylinesTexture)}}),Object.defineProperties(Me,{typeName:{value:"PolylineEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat)),new(s())(_().inputOutput,"coordIndex",new(o().MFInt32)(-1)),new(s())(_().inputOutput,"coord",new(o().SFNode))]),enumerable:!0}});const Le=Me;m().set("x_ite/Components/ParticleSystems/PolylineEmitter",Le);const Xe=Le,je=window[Symbol.for("X_ITE.X3D-8.11.8")].require("standard/Math/Geometry/Triangle3");var qe=i.n(je);function He(e){S.call(this,e),this.addType(_().SurfaceEmitter),this.surfaceNode=null,this.surfaceArray=new Float32Array,this.addSampler("surface"),this.addUniform("solid","uniform bool solid;"),this.addUniform("verticesIndex","uniform int verticesIndex;"),this.addUniform("normalsIndex","uniform int normalsIndex;"),this.addUniform("surface","uniform sampler2D surface;"),this.addFunction("vec4 position; vec3 getRandomVelocity ()\n {\n if (verticesIndex < 0)\n {\n return vec3 (0.0);\n }\n else\n {\n vec3 normal;\n\n getRandomPointOnSurface (surface, verticesIndex, normalsIndex, position, normal);\n\n if (solid == false && random () > 0.5)\n normal = -normal;\n\n return normal * getRandomSpeed ();\n }\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n return verticesIndex < 0 ? vec4 (NaN) : position;\n }")}Object.assign(Object.setPrototypeOf(He.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this.surfaceTexture=this.createTexture(),this._surface.addInterest("set_surface__",this),this.set_surface__())},set_surface__(){this.surfaceNode&&(this.surfaceNode._solid.removeInterest("set_solid__",this),this.surfaceNode._rebuild.removeInterest("set_geometry__",this)),this.surfaceNode=j()(_().X3DGeometryNode,this._surface),this.surfaceNode&&(this.surfaceNode._solid.addInterest("set_solid__",this),this.surfaceNode._rebuild.addInterest("set_geometry__",this)),this.set_solid__(),this.set_geometry__()},set_solid__(){this.surfaceNode&&this.setUniform("uniform1i","solid",this.surfaceNode._solid.getValue())},set_geometry__:(()=>{const e=new(A())(0,0,0),t=new(A())(0,0,0),i=new(A())(0,0,0);return function(){const n=this.getBrowser().getContext();if(this.surfaceNode){const o=this.surfaceNode.getVertices().getValue(),r=this.surfaceNode.getNormals().getValue(),s=o.length/4,a=s/3+1,c=Math.ceil(Math.sqrt(a+s+s)),l=a,u=l+s;let d=this.surfaceArray;d.length<c*c*4&&(d=this.surfaceArray=new Float32Array(c*c*4));let m=0;for(let n=0,r=o.length;n<r;n+=12)e.set(o[n],o[n+1],o[n+2]),t.set(o[n+4],o[n+5],o[n+6]),i.set(o[n+8],o[n+9],o[n+10]),d[n/3+4]=m+=qe().area(e,t,i);d.set(o,4*l);for(let e=4*u,t=0,i=r.length;t<i;e+=4,t+=3)d[e+0]=r[t+0],d[e+1]=r[t+1],d[e+2]=r[t+2];this.setUniform("uniform1i","verticesIndex",s?l:-1),this.setUniform("uniform1i","normalsIndex",s?u:-1),c&&(n.bindTexture(n.TEXTURE_2D,this.surfaceTexture),n.texImage2D(n.TEXTURE_2D,0,n.RGBA32F,c,c,0,n.RGBA,n.FLOAT,d))}else this.setUniform("uniform1i","verticesIndex",-1),this.setUniform("uniform1i","normalsIndex",-1)}})(),activateTextures(e,t){e.activeTexture(e.TEXTURE0+t.surfaceTextureUnit),e.bindTexture(e.TEXTURE_2D,this.surfaceTexture)}}),Object.defineProperties(He,{typeName:{value:"SurfaceEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat)),new(s())(_().initializeOnly,"surface",new(o().SFNode))]),enumerable:!0}});const Ge=He;m().set("x_ite/Components/ParticleSystems/SurfaceEmitter",Ge);const ke=Ge,Ye=window[Symbol.for("X_ITE.X3D-8.11.8")].require("x_ite/Components/Geometry3D/IndexedFaceSet");var We=i.n(Ye);function Ke(e){S.call(this,e),this.addType(_().VolumeEmitter),this.volumeNode=new(We())(e),this.volumeArray=new Float32Array,this.addSampler("volume"),this.addUniform("direction","uniform vec3 direction;"),this.addUniform("verticesIndex","uniform int verticesIndex;"),this.addUniform("normalsIndex","uniform int normalsIndex;"),this.addUniform("hierarchyIndex","uniform int hierarchyIndex;"),this.addUniform("hierarchyRoot","uniform int hierarchyRoot;"),this.addUniform("volume","uniform sampler2D volume;"),this.addFunction("vec3 getRandomVelocity ()\n {\n if (hierarchyRoot < 0)\n {\n return vec3 (0.0);\n }\n else\n {\n if (direction == vec3 (0.0))\n return getRandomSphericalVelocity ();\n\n else\n return direction * getRandomSpeed ();\n }\n }"),this.addFunction("vec4 getRandomPosition ()\n {\n if (hierarchyRoot < 0)\n {\n return vec4 (NaN);\n }\n else\n {\n vec4 point;\n vec3 normal;\n\n getRandomPointOnSurface (volume, verticesIndex, normalsIndex, point, normal);\n\n Line3 line = Line3 (point .xyz, getRandomSurfaceNormal (normal));\n\n vec4 points [ARRAY_SIZE];\n\n int numIntersections = getIntersections (volume, verticesIndex, hierarchyIndex, hierarchyRoot, line, points);\n\n numIntersections -= numIntersections % 2; // We need an even count of intersections.\n\n switch (numIntersections)\n {\n case 0:\n return vec4 (0.0);\n case 2:\n break;\n default:\n sort (points, numIntersections, plane3 (line .point, line .direction));\n break;\n }\n\n int index = int (fract (random ()) * float (numIntersections / 2)) * 2; // Select random intersection.\n\n return mix (points [index], points [index + 1], random ());\n }\n }")}Object.assign(Object.setPrototypeOf(Ke.prototype,S.prototype),{initialize(){S.prototype.initialize.call(this);this.getBrowser().getContext().getVersion()<2||(this.volumeTexture=this.createTexture(),this._set_coordIndex.addFieldInterest(this._coordIndex),this._direction.addInterest("set_direction__",this),this._coordIndex.addFieldInterest(this.volumeNode._coordIndex),this._coord.addFieldInterest(this.volumeNode._coord),this.volumeNode._creaseAngle=Math.PI,this.volumeNode._convex=!1,this.volumeNode._coordIndex=this._coordIndex,this.volumeNode._coord=this._coord,this.volumeNode._rebuild.addInterest("set_geometry__",this),this.volumeNode.setPrivate(!0),this.volumeNode.setup(),this.set_direction__(),this.set_geometry__())},set_direction__:(()=>{const e=new(A())(0,0,0);return function(){e.assign(this._direction.getValue()).normalize(),this.setUniform("uniform3f","direction",e.x,e.y,e.z)}})(),set_geometry__:(()=>{const e=new(A())(0,0,0),t=new(A())(0,0,0),i=new(A())(0,0,0);return function(){const n=this.getBrowser().getContext(),o=this.volumeNode.getVertices().getValue(),r=this.volumeNode.getNormals().getValue(),s=new Pe(o,r).toArray([]),a=o.length/4,c=r.length/3,l=a/3+1,u=s.length/4,d=Math.ceil(Math.sqrt(l+a+a+u)),m=l,h=m+a,p=h+c;let f=this.volumeArray;f.length<d*d*4&&(f=this.volumeArray=new Float32Array(d*d*4));let x=0;for(let n=0,r=o.length;n<r;n+=12)e.set(o[n],o[n+1],o[n+2]),t.set(o[n+4],o[n+5],o[n+6]),i.set(o[n+8],o[n+9],o[n+10]),f[n/3+4]=x+=qe().area(e,t,i);f.set(o,4*m);for(let e=4*h,t=0,i=r.length;t<i;e+=4,t+=3)f[e+0]=r[t+0],f[e+1]=r[t+1],f[e+2]=r[t+2];f.set(s,4*p),this.setUniform("uniform1i","verticesIndex",m),this.setUniform("uniform1i","normalsIndex",h),this.setUniform("uniform1i","hierarchyIndex",p),this.setUniform("uniform1i","hierarchyRoot",p+u-1),d&&(n.bindTexture(n.TEXTURE_2D,this.volumeTexture),n.texImage2D(n.TEXTURE_2D,0,n.RGBA32F,d,d,0,n.RGBA,n.FLOAT,f))}})(),activateTextures(e,t){e.activeTexture(e.TEXTURE0+t.volumeTextureUnit),e.bindTexture(e.TEXTURE_2D,this.volumeTexture)}}),Object.defineProperties(Ke,{typeName:{value:"VolumeEmitter",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"emitter",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOnly,"set_coordIndex",new(o().MFInt32)),new(s())(_().inputOutput,"on",new(o().SFBool)(!0)),new(s())(_().initializeOnly,"internal",new(o().SFBool)(!0)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)(0,1,0)),new(s())(_().inputOutput,"speed",new(o().SFFloat)),new(s())(_().inputOutput,"variation",new(o().SFFloat)(.25)),new(s())(_().initializeOnly,"mass",new(o().SFFloat)),new(s())(_().initializeOnly,"surfaceArea",new(o().SFFloat)),new(s())(_().initializeOnly,"coordIndex",new(o().MFInt32)(-1)),new(s())(_().inputOutput,"coord",new(o().SFNode))]),enumerable:!0}});const Ze=Ke;m().set("x_ite/Components/ParticleSystems/VolumeEmitter",Ze);const Qe=Ze,$e=window[Symbol.for("X_ITE.X3D-8.11.8")].require("standard/Math/Algorithm");var Je=i.n($e);function et(e){L.call(this,e),this.addType(_().WindPhysicsModel),this._speed.setUnit("speed")}Object.assign(Object.setPrototypeOf(et.prototype,L.prototype),{getRandomSpeed(e){const t=Math.max(0,this._speed.getValue()),i=t*Math.max(0,this._gustiness.getValue());return e.getRandomValue(Math.max(0,t-i),t+i)},addForce:(()=>{const e=new(A())(0,0,0);return function(t,i,n,o){if(this._enabled.getValue()){const r=i._surfaceArea.getValue(),s=this.getRandomSpeed(i),a=.64615*Math.pow(10,2*Math.log(s));return this._direction.getValue().equals(A().Zero)?i.getRandomNormal(e):e.assign(this._direction.getValue()).normalize(),o.set(e.multiply(r*a*n),4*t),o[4*t+3]=Math.PI*Je().clamp(this._turbulence.getValue(),0,1),!0}return!1}})()}),Object.defineProperties(et,{typeName:{value:"WindPhysicsModel",enumerable:!0},componentName:{value:"ParticleSystems",enumerable:!0},containerField:{value:"physics",enumerable:!0},specificationRange:{value:Object.freeze(["3.2","Infinity"]),enumerable:!0},fieldDefinitions:{value:new(c())([new(s())(_().inputOutput,"metadata",new(o().SFNode)),new(s())(_().inputOutput,"enabled",new(o().SFBool)(!0)),new(s())(_().inputOutput,"direction",new(o().SFVec3f)),new(s())(_().inputOutput,"speed",new(o().SFFloat)(.1)),new(s())(_().inputOutput,"gustiness",new(o().SFFloat)(.1)),new(s())(_().inputOutput,"turbulence",new(o().SFFloat))]),enumerable:!0}});const tt=et;m().set("x_ite/Components/ParticleSystems/WindPhysicsModel",tt);const it=tt;t().add({name:"ParticleSystems",concreteNodes:[G,W,Q,ee,De,C,Xe,ke,Qe,it],abstractNodes:[S,L],browserContext:z});const nt=void 0;m().set("assets/components/ParticleSystems",nt)})()})();