x_ite 8.11.7 → 8.11.9
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.
- package/README.md +4 -0
- package/dist/assets/components/Annotation.js +13 -13
- package/dist/assets/components/Annotation.min.js +1 -1
- package/dist/assets/components/CADGeometry.js +13 -13
- package/dist/assets/components/CADGeometry.min.js +1 -1
- package/dist/assets/components/CubeMapTexturing.js +25 -25
- package/dist/assets/components/CubeMapTexturing.min.js +1 -1
- package/dist/assets/components/DIS.js +13 -13
- package/dist/assets/components/DIS.min.js +1 -1
- package/dist/assets/components/EventUtilities.js +9 -9
- package/dist/assets/components/EventUtilities.min.js +1 -1
- package/dist/assets/components/Geometry2D.js +19 -19
- package/dist/assets/components/Geometry2D.min.js +1 -1
- package/dist/assets/components/Geospatial.js +33 -33
- package/dist/assets/components/Geospatial.min.js +1 -1
- package/dist/assets/components/HAnim.js +23 -23
- package/dist/assets/components/HAnim.min.js +1 -1
- package/dist/assets/components/KeyDeviceSensor.js +8 -8
- package/dist/assets/components/KeyDeviceSensor.min.js +1 -1
- package/dist/assets/components/Layout.js +26 -26
- package/dist/assets/components/Layout.min.js +1 -1
- package/dist/assets/components/NURBS.js +24 -24
- package/dist/assets/components/NURBS.min.js +1 -1
- package/dist/assets/components/ParticleSystems.js +23 -23
- package/dist/assets/components/ParticleSystems.min.js +1 -1
- package/dist/assets/components/Picking.js +18 -18
- package/dist/assets/components/Picking.min.js +1 -1
- package/dist/assets/components/RigidBodyPhysics.js +17 -17
- package/dist/assets/components/RigidBodyPhysics.min.js +1 -1
- package/dist/assets/components/Scripting.js +37 -37
- package/dist/assets/components/Scripting.min.js +1 -1
- package/dist/assets/components/Text.js +24 -24
- package/dist/assets/components/Text.min.js +1 -1
- package/dist/assets/components/TextureProjector.js +14 -14
- package/dist/assets/components/TextureProjector.min.js +1 -1
- package/dist/assets/components/Texturing3D.js +30 -30
- package/dist/assets/components/Texturing3D.min.js +1 -1
- package/dist/assets/components/VolumeRendering.js +18 -18
- package/dist/assets/components/VolumeRendering.min.js +1 -1
- package/dist/assets/components/X_ITE.js +9 -9
- package/dist/assets/components/X_ITE.min.js +1 -1
- package/dist/x_ite.css +1 -1
- package/dist/x_ite.js +159 -145
- package/dist/x_ite.min.js +1 -1
- package/dist/x_ite.zip +0 -0
- package/package.json +16 -13
- package/.github/workflows/pages-deploy.yml +0 -64
- package/.vscode/launch.json +0 -15
- package/.vscode/settings.json +0 -44
- package/.vscode/tasks.json +0 -31
- package/Makefile +0 -82
- package/build/bin/bump.pl +0 -21
- package/build/bin/tests.pl +0 -203
- package/build/bin/version.pl +0 -157
- package/build/docs/components.js +0 -218
- package/build/docs/glTF-samples.pl +0 -151
- package/build/docs/nodes.pl +0 -434
- package/build/docs/tags.pl +0 -28
- package/build/src/nodes.pl +0 -41
- package/docs/Gemfile +0 -19
- package/docs/LICENSE +0 -21
- package/docs/README.md +0 -46
- package/docs/_config.yml +0 -203
- package/docs/_data/assets/cross_origin.yml +0 -62
- package/docs/_data/assets/self_host.yml +0 -51
- package/docs/_data/contact.yml +0 -30
- package/docs/_data/locales/bg-BG.yml +0 -83
- package/docs/_data/locales/de-DE.yml +0 -82
- package/docs/_data/locales/en.yml +0 -93
- package/docs/_data/locales/es-ES.yml +0 -79
- package/docs/_data/locales/fr-FR.yml +0 -79
- package/docs/_data/locales/hu-HU.yml +0 -81
- package/docs/_data/locales/id-ID.yml +0 -79
- package/docs/_data/locales/ko-KR.yml +0 -86
- package/docs/_data/locales/my-MM.yml +0 -79
- package/docs/_data/locales/pt-BR.yml +0 -79
- package/docs/_data/locales/ru-RU.yml +0 -79
- package/docs/_data/locales/tr-TR.yml +0 -79
- package/docs/_data/locales/uk-UA.yml +0 -79
- package/docs/_data/locales/vi-VN.yml +0 -77
- package/docs/_data/locales/zh-CN.yml +0 -85
- package/docs/_data/nav/components-CADGeometry.yml +0 -14
- package/docs/_data/nav/components-Core.yml +0 -16
- package/docs/_data/nav/components-CubeMapTexturing.yml +0 -8
- package/docs/_data/nav/components-DIS.yml +0 -14
- package/docs/_data/nav/components-EnvironmentalEffects.yml +0 -12
- package/docs/_data/nav/components-EnvironmentalSensor.yml +0 -8
- package/docs/_data/nav/components-EventUtilities.yml +0 -16
- package/docs/_data/nav/components-Followers.yml +0 -30
- package/docs/_data/nav/components-Geometry2D.yml +0 -18
- package/docs/_data/nav/components-Geometry3D.yml +0 -16
- package/docs/_data/nav/components-Geospatial.yml +0 -24
- package/docs/_data/nav/components-Grouping.yml +0 -10
- package/docs/_data/nav/components-HAnim.yml +0 -14
- package/docs/_data/nav/components-Interpolation.yml +0 -28
- package/docs/_data/nav/components-KeyDeviceSensor.yml +0 -6
- package/docs/_data/nav/components-Layering.yml +0 -8
- package/docs/_data/nav/components-Layout.yml +0 -12
- package/docs/_data/nav/components-Lighting.yml +0 -10
- package/docs/_data/nav/components-NURBS.yml +0 -30
- package/docs/_data/nav/components-Navigation.yml +0 -16
- package/docs/_data/nav/components-Networking.yml +0 -8
- package/docs/_data/nav/components-ParticleSystems.yml +0 -22
- package/docs/_data/nav/components-Picking.yml +0 -12
- package/docs/_data/nav/components-PointingDeviceSensor.yml +0 -10
- package/docs/_data/nav/components-Rendering.yml +0 -30
- package/docs/_data/nav/components-RigidBodyPhysics.yml +0 -30
- package/docs/_data/nav/components-Scripting.yml +0 -4
- package/docs/_data/nav/components-Shaders.yml +0 -18
- package/docs/_data/nav/components-Shape.yml +0 -22
- package/docs/_data/nav/components-Sound.yml +0 -44
- package/docs/_data/nav/components-Text.yml +0 -6
- package/docs/_data/nav/components-TextureProjector.yml +0 -6
- package/docs/_data/nav/components-Texturing.yml +0 -22
- package/docs/_data/nav/components-Texturing3D.yml +0 -18
- package/docs/_data/nav/components-Time.yml +0 -4
- package/docs/_data/nav/components-VolumeRendering.yml +0 -28
- package/docs/_data/nav/components-X_ITE.yml +0 -4
- package/docs/_data/nav/main.yml +0 -26
- package/docs/_data/nav/reference.yml +0 -18
- package/docs/_data/nav/tutorials-animation-sensors-and-geometry.yml +0 -18
- package/docs/_data/nav/tutorials-basic.yml +0 -6
- package/docs/_data/nav/tutorials-optimize-your-scene.yml +0 -6
- package/docs/_data/nav/tutorials-scripts-and-prototypes.yml +0 -12
- package/docs/_data/nav/tutorials-shapes-geometry-and-appearance.yml +0 -16
- package/docs/_data/nav/tutorials-textures-lights-and-environment.yml +0 -20
- package/docs/_data/share.yml +0 -27
- package/docs/_includes/nav.html +0 -19
- package/docs/_includes/scripts.html +0 -3
- package/docs/_layouts/compress.html +0 -11
- package/docs/_layouts/redirect-page.html +0 -6
- package/docs/_layouts/wide.html +0 -52
- package/docs/_layouts/wrap.html +0 -4
- package/docs/_layouts/x_ite.html +0 -8
- package/docs/_plugins/no_date.rb +0 -11
- package/docs/_plugins/posts-lastmod-hook.rb +0 -14
- package/docs/_posts/accessing-the-external-browser.md +0 -312
- package/docs/_posts/browser-support.md +0 -53
- package/docs/_posts/components/CADGeometry/CADAssembly.md +0 -126
- package/docs/_posts/components/CADGeometry/CADFace.md +0 -113
- package/docs/_posts/components/CADGeometry/CADLayer.md +0 -126
- package/docs/_posts/components/CADGeometry/CADPart.md +0 -164
- package/docs/_posts/components/CADGeometry/IndexedQuadSet.md +0 -154
- package/docs/_posts/components/CADGeometry/QuadSet.md +0 -145
- package/docs/_posts/components/Core/MetadataBoolean.md +0 -83
- package/docs/_posts/components/Core/MetadataDouble.md +0 -84
- package/docs/_posts/components/Core/MetadataFloat.md +0 -84
- package/docs/_posts/components/Core/MetadataInteger.md +0 -83
- package/docs/_posts/components/Core/MetadataSet.md +0 -80
- package/docs/_posts/components/Core/MetadataString.md +0 -83
- package/docs/_posts/components/Core/WorldInfo.md +0 -65
- package/docs/_posts/components/CubeMapTexturing/ComposedCubeMapTexture.md +0 -123
- package/docs/_posts/components/CubeMapTexturing/GeneratedCubeMapTexture.md +0 -82
- package/docs/_posts/components/CubeMapTexturing/ImageCubeMapTexture.md +0 -112
- package/docs/_posts/components/DIS/DISEntityManager.md +0 -98
- package/docs/_posts/components/DIS/DISEntityTypeMapping.md +0 -131
- package/docs/_posts/components/DIS/EspduTransform.md +0 -566
- package/docs/_posts/components/DIS/ReceiverPdu.md +0 -235
- package/docs/_posts/components/DIS/SignalPdu.md +0 -239
- package/docs/_posts/components/DIS/TransmitterPdu.md +0 -299
- package/docs/_posts/components/EnvironmentalEffects/Background.md +0 -230
- package/docs/_posts/components/EnvironmentalEffects/Fog.md +0 -118
- package/docs/_posts/components/EnvironmentalEffects/FogCoordinate.md +0 -44
- package/docs/_posts/components/EnvironmentalEffects/LocalFog.md +0 -91
- package/docs/_posts/components/EnvironmentalEffects/TextureBackground.md +0 -194
- package/docs/_posts/components/EnvironmentalSensor/ProximitySensor.md +0 -118
- package/docs/_posts/components/EnvironmentalSensor/TransformSensor.md +0 -115
- package/docs/_posts/components/EnvironmentalSensor/VisibilitySensor.md +0 -89
- package/docs/_posts/components/EventUtilities/BooleanFilter.md +0 -75
- package/docs/_posts/components/EventUtilities/BooleanSequencer.md +0 -115
- package/docs/_posts/components/EventUtilities/BooleanToggle.md +0 -67
- package/docs/_posts/components/EventUtilities/BooleanTrigger.md +0 -64
- package/docs/_posts/components/EventUtilities/IntegerSequencer.md +0 -119
- package/docs/_posts/components/EventUtilities/IntegerTrigger.md +0 -76
- package/docs/_posts/components/EventUtilities/TimeTrigger.md +0 -68
- package/docs/_posts/components/Followers/ColorChaser.md +0 -101
- package/docs/_posts/components/Followers/ColorDamper.md +0 -105
- package/docs/_posts/components/Followers/CoordinateChaser.md +0 -100
- package/docs/_posts/components/Followers/CoordinateDamper.md +0 -100
- package/docs/_posts/components/Followers/OrientationChaser.md +0 -96
- package/docs/_posts/components/Followers/OrientationDamper.md +0 -100
- package/docs/_posts/components/Followers/PositionChaser.md +0 -96
- package/docs/_posts/components/Followers/PositionChaser2D.md +0 -96
- package/docs/_posts/components/Followers/PositionDamper.md +0 -100
- package/docs/_posts/components/Followers/PositionDamper2D.md +0 -100
- package/docs/_posts/components/Followers/ScalarChaser.md +0 -100
- package/docs/_posts/components/Followers/ScalarDamper.md +0 -100
- package/docs/_posts/components/Followers/TexCoordChaser2D.md +0 -96
- package/docs/_posts/components/Followers/TexCoordDamper2D.md +0 -100
- package/docs/_posts/components/Geometry2D/Arc2D.md +0 -96
- package/docs/_posts/components/Geometry2D/ArcClose2D.md +0 -115
- package/docs/_posts/components/Geometry2D/Circle2D.md +0 -66
- package/docs/_posts/components/Geometry2D/Disk2D.md +0 -93
- package/docs/_posts/components/Geometry2D/Polyline2D.md +0 -69
- package/docs/_posts/components/Geometry2D/Polypoint2D.md +0 -62
- package/docs/_posts/components/Geometry2D/Rectangle2D.md +0 -77
- package/docs/_posts/components/Geometry2D/TriangleSet2D.md +0 -77
- package/docs/_posts/components/Geometry3D/Box.md +0 -79
- package/docs/_posts/components/Geometry3D/Cone.md +0 -98
- package/docs/_posts/components/Geometry3D/Cylinder.md +0 -102
- package/docs/_posts/components/Geometry3D/ElevationGrid.md +0 -206
- package/docs/_posts/components/Geometry3D/Extrusion.md +0 -222
- package/docs/_posts/components/Geometry3D/IndexedFaceSet.md +0 -260
- package/docs/_posts/components/Geometry3D/Sphere.md +0 -78
- package/docs/_posts/components/Geospatial/GeoCoordinate.md +0 -81
- package/docs/_posts/components/Geospatial/GeoElevationGrid.md +0 -225
- package/docs/_posts/components/Geospatial/GeoLOD.md +0 -184
- package/docs/_posts/components/Geospatial/GeoLocation.md +0 -148
- package/docs/_posts/components/Geospatial/GeoMetadata.md +0 -117
- package/docs/_posts/components/Geospatial/GeoOrigin.md +0 -84
- package/docs/_posts/components/Geospatial/GeoPositionInterpolator.md +0 -141
- package/docs/_posts/components/Geospatial/GeoProximitySensor.md +0 -158
- package/docs/_posts/components/Geospatial/GeoTouchSensor.md +0 -153
- package/docs/_posts/components/Geospatial/GeoTransform.md +0 -182
- package/docs/_posts/components/Geospatial/GeoViewpoint.md +0 -214
- package/docs/_posts/components/Grouping/Group.md +0 -108
- package/docs/_posts/components/Grouping/StaticGroup.md +0 -103
- package/docs/_posts/components/Grouping/Switch.md +0 -125
- package/docs/_posts/components/Grouping/Transform.md +0 -160
- package/docs/_posts/components/HAnim/HAnimDisplacer.md +0 -108
- package/docs/_posts/components/HAnim/HAnimHumanoid.md +0 -351
- package/docs/_posts/components/HAnim/HAnimJoint.md +0 -256
- package/docs/_posts/components/HAnim/HAnimMotion.md +0 -186
- package/docs/_posts/components/HAnim/HAnimSegment.md +0 -172
- package/docs/_posts/components/HAnim/HAnimSite.md +0 -176
- package/docs/_posts/components/Interpolation/ColorInterpolator.md +0 -103
- package/docs/_posts/components/Interpolation/CoordinateInterpolator.md +0 -102
- package/docs/_posts/components/Interpolation/CoordinateInterpolator2D.md +0 -102
- package/docs/_posts/components/Interpolation/EaseInEaseOut.md +0 -91
- package/docs/_posts/components/Interpolation/NormalInterpolator.md +0 -98
- package/docs/_posts/components/Interpolation/OrientationInterpolator.md +0 -102
- package/docs/_posts/components/Interpolation/PositionInterpolator.md +0 -102
- package/docs/_posts/components/Interpolation/PositionInterpolator2D.md +0 -106
- package/docs/_posts/components/Interpolation/ScalarInterpolator.md +0 -102
- package/docs/_posts/components/Interpolation/SplinePositionInterpolator.md +0 -118
- package/docs/_posts/components/Interpolation/SplinePositionInterpolator2D.md +0 -118
- package/docs/_posts/components/Interpolation/SplineScalarInterpolator.md +0 -122
- package/docs/_posts/components/Interpolation/SquadOrientationInterpolator.md +0 -102
- package/docs/_posts/components/KeyDeviceSensor/KeySensor.md +0 -120
- package/docs/_posts/components/KeyDeviceSensor/StringSensor.md +0 -92
- package/docs/_posts/components/Layering/Layer.md +0 -92
- package/docs/_posts/components/Layering/LayerSet.md +0 -84
- package/docs/_posts/components/Layering/Viewport.md +0 -113
- package/docs/_posts/components/Layout/Layout.md +0 -118
- package/docs/_posts/components/Layout/LayoutGroup.md +0 -118
- package/docs/_posts/components/Layout/LayoutLayer.md +0 -99
- package/docs/_posts/components/Layout/ScreenFontStyle.md +0 -164
- package/docs/_posts/components/Layout/ScreenGroup.md +0 -104
- package/docs/_posts/components/Lighting/DirectionalLight.md +0 -108
- package/docs/_posts/components/Lighting/EnvironmentLight.md +0 -87
- package/docs/_posts/components/Lighting/PointLight.md +0 -115
- package/docs/_posts/components/Lighting/SpotLight.md +0 -145
- package/docs/_posts/components/NURBS/Contour2D.md +0 -65
- package/docs/_posts/components/NURBS/ContourPolyline2D.md +0 -50
- package/docs/_posts/components/NURBS/CoordinateDouble.md +0 -51
- package/docs/_posts/components/NURBS/NurbsCurve.md +0 -75
- package/docs/_posts/components/NURBS/NurbsCurve2D.md +0 -70
- package/docs/_posts/components/NURBS/NurbsOrientationInterpolator.md +0 -86
- package/docs/_posts/components/NURBS/NurbsPatchSurface.md +0 -112
- package/docs/_posts/components/NURBS/NurbsPositionInterpolator.md +0 -86
- package/docs/_posts/components/NURBS/NurbsSet.md +0 -117
- package/docs/_posts/components/NURBS/NurbsSurfaceInterpolator.md +0 -110
- package/docs/_posts/components/NURBS/NurbsSweptSurface.md +0 -86
- package/docs/_posts/components/NURBS/NurbsSwungSurface.md +0 -76
- package/docs/_posts/components/NURBS/NurbsTextureCoordinate.md +0 -81
- package/docs/_posts/components/NURBS/NurbsTrimmedSurface.md +0 -124
- package/docs/_posts/components/Navigation/Billboard.md +0 -121
- package/docs/_posts/components/Navigation/Collision.md +0 -156
- package/docs/_posts/components/Navigation/LOD.md +0 -146
- package/docs/_posts/components/Navigation/NavigationInfo.md +0 -170
- package/docs/_posts/components/Navigation/OrthoViewpoint.md +0 -209
- package/docs/_posts/components/Navigation/Viewpoint.md +0 -213
- package/docs/_posts/components/Navigation/ViewpointGroup.md +0 -91
- package/docs/_posts/components/Networking/Anchor.md +0 -160
- package/docs/_posts/components/Networking/Inline.md +0 -161
- package/docs/_posts/components/Networking/LoadSensor.md +0 -123
- package/docs/_posts/components/ParticleSystems/BoundedPhysicsModel.md +0 -62
- package/docs/_posts/components/ParticleSystems/ConeEmitter.md +0 -95
- package/docs/_posts/components/ParticleSystems/ExplosionEmitter.md +0 -83
- package/docs/_posts/components/ParticleSystems/ForcePhysicsModel.md +0 -65
- package/docs/_posts/components/ParticleSystems/ParticleSystem.md +0 -249
- package/docs/_posts/components/ParticleSystems/PointEmitter.md +0 -87
- package/docs/_posts/components/ParticleSystems/PolylineEmitter.md +0 -106
- package/docs/_posts/components/ParticleSystems/SurfaceEmitter.md +0 -101
- package/docs/_posts/components/ParticleSystems/VolumeEmitter.md +0 -109
- package/docs/_posts/components/ParticleSystems/WindPhysicsModel.md +0 -72
- package/docs/_posts/components/Picking/LinePickSensor.md +0 -151
- package/docs/_posts/components/Picking/PickableGroup.md +0 -128
- package/docs/_posts/components/Picking/PointPickSensor.md +0 -133
- package/docs/_posts/components/Picking/PrimitivePickSensor.md +0 -126
- package/docs/_posts/components/Picking/VolumePickSensor.md +0 -124
- package/docs/_posts/components/PointingDeviceSensor/CylinderSensor.md +0 -147
- package/docs/_posts/components/PointingDeviceSensor/PlaneSensor.md +0 -137
- package/docs/_posts/components/PointingDeviceSensor/SphereSensor.md +0 -111
- package/docs/_posts/components/PointingDeviceSensor/TouchSensor.md +0 -121
- package/docs/_posts/components/Rendering/ClipPlane.md +0 -72
- package/docs/_posts/components/Rendering/Color.md +0 -56
- package/docs/_posts/components/Rendering/ColorRGBA.md +0 -65
- package/docs/_posts/components/Rendering/Coordinate.md +0 -49
- package/docs/_posts/components/Rendering/IndexedLineSet.md +0 -156
- package/docs/_posts/components/Rendering/IndexedTriangleFanSet.md +0 -149
- package/docs/_posts/components/Rendering/IndexedTriangleSet.md +0 -149
- package/docs/_posts/components/Rendering/IndexedTriangleStripSet.md +0 -141
- package/docs/_posts/components/Rendering/LineSet.md +0 -97
- package/docs/_posts/components/Rendering/Normal.md +0 -63
- package/docs/_posts/components/Rendering/PointSet.md +0 -89
- package/docs/_posts/components/Rendering/TriangleFanSet.md +0 -137
- package/docs/_posts/components/Rendering/TriangleSet.md +0 -133
- package/docs/_posts/components/Rendering/TriangleStripSet.md +0 -141
- package/docs/_posts/components/RigidBodyPhysics/BallJoint.md +0 -90
- package/docs/_posts/components/RigidBodyPhysics/CollidableOffset.md +0 -115
- package/docs/_posts/components/RigidBodyPhysics/CollidableShape.md +0 -118
- package/docs/_posts/components/RigidBodyPhysics/CollisionCollection.md +0 -95
- package/docs/_posts/components/RigidBodyPhysics/CollisionSensor.md +0 -74
- package/docs/_posts/components/RigidBodyPhysics/CollisionSpace.md +0 -106
- package/docs/_posts/components/RigidBodyPhysics/Contact.md +0 -121
- package/docs/_posts/components/RigidBodyPhysics/DoubleAxisHingeJoint.md +0 -164
- package/docs/_posts/components/RigidBodyPhysics/MotorJoint.md +0 -235
- package/docs/_posts/components/RigidBodyPhysics/RigidBody.md +0 -185
- package/docs/_posts/components/RigidBodyPhysics/RigidBodyCollection.md +0 -136
- package/docs/_posts/components/RigidBodyPhysics/SingleAxisHingeJoint.md +0 -118
- package/docs/_posts/components/RigidBodyPhysics/SliderJoint.md +0 -118
- package/docs/_posts/components/RigidBodyPhysics/UniversalJoint.md +0 -127
- package/docs/_posts/components/Scripting/Script.md +0 -139
- package/docs/_posts/components/Shaders/ComposedShader.md +0 -94
- package/docs/_posts/components/Shaders/FloatVertexAttribute.md +0 -74
- package/docs/_posts/components/Shaders/Matrix3VertexAttribute.md +0 -62
- package/docs/_posts/components/Shaders/Matrix4VertexAttribute.md +0 -62
- package/docs/_posts/components/Shaders/PackagedShader.md +0 -137
- package/docs/_posts/components/Shaders/ProgramShader.md +0 -91
- package/docs/_posts/components/Shaders/ShaderPart.md +0 -127
- package/docs/_posts/components/Shaders/ShaderProgram.md +0 -121
- package/docs/_posts/components/Shape/AcousticProperties.md +0 -80
- package/docs/_posts/components/Shape/Appearance.md +0 -130
- package/docs/_posts/components/Shape/FillProperties.md +0 -74
- package/docs/_posts/components/Shape/LineProperties.md +0 -71
- package/docs/_posts/components/Shape/Material.md +0 -235
- package/docs/_posts/components/Shape/PhysicalMaterial.md +0 -189
- package/docs/_posts/components/Shape/PointProperties.md +0 -83
- package/docs/_posts/components/Shape/Shape.md +0 -107
- package/docs/_posts/components/Shape/TwoSidedMaterial.md +0 -148
- package/docs/_posts/components/Shape/UnlitMaterial.md +0 -119
- package/docs/_posts/components/Sound/Analyser.md +0 -205
- package/docs/_posts/components/Sound/AudioClip.md +0 -223
- package/docs/_posts/components/Sound/AudioDestination.md +0 -128
- package/docs/_posts/components/Sound/BiquadFilter.md +0 -213
- package/docs/_posts/components/Sound/BufferAudioSource.md +0 -284
- package/docs/_posts/components/Sound/ChannelMerger.md +0 -108
- package/docs/_posts/components/Sound/ChannelSelector.md +0 -112
- package/docs/_posts/components/Sound/ChannelSplitter.md +0 -116
- package/docs/_posts/components/Sound/Convolver.md +0 -190
- package/docs/_posts/components/Sound/Delay.md +0 -185
- package/docs/_posts/components/Sound/DynamicsCompressor.md +0 -201
- package/docs/_posts/components/Sound/Gain.md +0 -177
- package/docs/_posts/components/Sound/ListenerPointSource.md +0 -171
- package/docs/_posts/components/Sound/MicrophoneSource.md +0 -145
- package/docs/_posts/components/Sound/OscillatorSource.md +0 -153
- package/docs/_posts/components/Sound/PeriodicWave.md +0 -83
- package/docs/_posts/components/Sound/Sound.md +0 -139
- package/docs/_posts/components/Sound/SpatialSound.md +0 -187
- package/docs/_posts/components/Sound/StreamAudioDestination.md +0 -132
- package/docs/_posts/components/Sound/StreamAudioSource.md +0 -145
- package/docs/_posts/components/Sound/WaveShaper.md +0 -189
- package/docs/_posts/components/Text/FontStyle.md +0 -171
- package/docs/_posts/components/Text/Text.md +0 -124
- package/docs/_posts/components/TextureProjector/TextureProjector.md +0 -111
- package/docs/_posts/components/TextureProjector/TextureProjectorParallel.md +0 -112
- package/docs/_posts/components/Texturing/ImageTexture.md +0 -138
- package/docs/_posts/components/Texturing/MovieTexture.md +0 -264
- package/docs/_posts/components/Texturing/MultiTexture.md +0 -128
- package/docs/_posts/components/Texturing/MultiTextureCoordinate.md +0 -64
- package/docs/_posts/components/Texturing/MultiTextureTransform.md +0 -69
- package/docs/_posts/components/Texturing/PixelTexture.md +0 -100
- package/docs/_posts/components/Texturing/TextureCoordinate.md +0 -62
- package/docs/_posts/components/Texturing/TextureCoordinateGenerator.md +0 -74
- package/docs/_posts/components/Texturing/TextureProperties.md +0 -162
- package/docs/_posts/components/Texturing/TextureTransform.md +0 -82
- package/docs/_posts/components/Texturing3D/ComposedTexture3D.md +0 -84
- package/docs/_posts/components/Texturing3D/ImageTexture3D.md +0 -141
- package/docs/_posts/components/Texturing3D/ImageTextureAtlas.md +0 -137
- package/docs/_posts/components/Texturing3D/PixelTexture3D.md +0 -87
- package/docs/_posts/components/Texturing3D/TextureCoordinate3D.md +0 -65
- package/docs/_posts/components/Texturing3D/TextureCoordinate4D.md +0 -64
- package/docs/_posts/components/Texturing3D/TextureTransform3D.md +0 -78
- package/docs/_posts/components/Texturing3D/TextureTransformMatrix3D.md +0 -67
- package/docs/_posts/components/Time/TimeSensor.md +0 -187
- package/docs/_posts/components/VolumeRendering/BlendedVolumeStyle.md +0 -113
- package/docs/_posts/components/VolumeRendering/BoundaryEnhancementVolumeStyle.md +0 -63
- package/docs/_posts/components/VolumeRendering/CartoonVolumeStyle.md +0 -86
- package/docs/_posts/components/VolumeRendering/ComposedVolumeStyle.md +0 -59
- package/docs/_posts/components/VolumeRendering/EdgeEnhancementVolumeStyle.md +0 -75
- package/docs/_posts/components/VolumeRendering/IsoSurfaceVolumeData.md +0 -138
- package/docs/_posts/components/VolumeRendering/OpacityMapVolumeStyle.md +0 -59
- package/docs/_posts/components/VolumeRendering/ProjectionVolumeStyle.md +0 -70
- package/docs/_posts/components/VolumeRendering/SegmentedVolumeData.md +0 -130
- package/docs/_posts/components/VolumeRendering/ShadedVolumeStyle.md +0 -83
- package/docs/_posts/components/VolumeRendering/SilhouetteEnhancementVolumeStyle.md +0 -71
- package/docs/_posts/components/VolumeRendering/ToneMappedVolumeStyle.md +0 -80
- package/docs/_posts/components/VolumeRendering/VolumeData.md +0 -105
- package/docs/_posts/components/X_ITE/BlendMode.md +0 -101
- package/docs/_posts/custom-shaders.md +0 -720
- package/docs/_posts/dom-integration.md +0 -237
- package/docs/_posts/features.md +0 -56
- package/docs/_posts/getting-started.md +0 -845
- package/docs/_posts/glossary.md +0 -344
- package/docs/_posts/how-to-configure-your-web-server.md +0 -61
- package/docs/_posts/laboratory/x3d-file-converter.md +0 -188
- package/docs/_posts/reference/browser-services.md +0 -466
- package/docs/_posts/reference/constants-services.md +0 -381
- package/docs/_posts/reference/ecmascript-object-and-function-definitions.md +0 -50
- package/docs/_posts/reference/field-services-and-objects.md +0 -1137
- package/docs/_posts/reference/prototype-services.md +0 -146
- package/docs/_posts/reference/route-services.md +0 -54
- package/docs/_posts/reference/scene-services.md +0 -392
- package/docs/_posts/reference/script-node-authoring-interface.md +0 -347
- package/docs/_posts/report-a-bug.md +0 -17
- package/docs/_posts/setup-a-localhost-server.md +0 -46
- package/docs/_posts/supported-nodes.md +0 -378
- package/docs/_posts/tutorials/adding-backgrounds.md +0 -273
- package/docs/_posts/tutorials/adding-fog.md +0 -72
- package/docs/_posts/tutorials/adding-sound.md +0 -333
- package/docs/_posts/tutorials/animating-transforms.md +0 -390
- package/docs/_posts/tutorials/basic-nodes.md +0 -312
- package/docs/_posts/tutorials/building-a-x3d-world.md +0 -174
- package/docs/_posts/tutorials/building-elevation-grids.md +0 -177
- package/docs/_posts/tutorials/building-extruded-shapes.md +0 -150
- package/docs/_posts/tutorials/building-primitive-shapes.md +0 -211
- package/docs/_posts/tutorials/building-shapes-out-of-points-lines-and-faces.md +0 -315
- package/docs/_posts/tutorials/controlling-appearance-with-materials.md +0 -193
- package/docs/_posts/tutorials/controlling-color-on-coordinate-based-geometry.md +0 -213
- package/docs/_posts/tutorials/controlling-detail.md +0 -137
- package/docs/_posts/tutorials/controlling-how-textures-are-mapped.md +0 -282
- package/docs/_posts/tutorials/controlling-navigation.md +0 -75
- package/docs/_posts/tutorials/controlling-shading-on-coordinate-based-geometry.md +0 -185
- package/docs/_posts/tutorials/controlling-the-viewpoint.md +0 -54
- package/docs/_posts/tutorials/creating-new-node-types.md +0 -340
- package/docs/_posts/tutorials/grouping-nodes.md +0 -242
- package/docs/_posts/tutorials/hello-world.md +0 -198
- package/docs/_posts/tutorials/improving-performance.md +0 -229
- package/docs/_posts/tutorials/increasing-rendering-speed.md +0 -115
- package/docs/_posts/tutorials/introducing-animation.md +0 -216
- package/docs/_posts/tutorials/introducing-script-use.md +0 -132
- package/docs/_posts/tutorials/introducing-x3d.md +0 -100
- package/docs/_posts/tutorials/lighting-your-world.md +0 -144
- package/docs/_posts/tutorials/mapping-textures.md +0 -217
- package/docs/_posts/tutorials/naming-nodes.md +0 -168
- package/docs/_posts/tutorials/overview.md +0 -83
- package/docs/_posts/tutorials/providing-information-about-your-world.md +0 -35
- package/docs/_posts/tutorials/sensing-the-viewer.md +0 -210
- package/docs/_posts/tutorials/sensing-viewer-actions.md +0 -219
- package/docs/_posts/tutorials/transforming-shapes.md +0 -275
- package/docs/_posts/tutorials/writing-program-scripts-with-ecmascript.md +0 -637
- package/docs/_posts/what's-new.md +0 -1115
- package/docs/_tabs/components.md +0 -383
- package/docs/_tabs/laboratory.md +0 -52
- package/docs/_tabs/playground.html +0 -407
- package/docs/_tabs/reference.md +0 -8
- package/docs/_tabs/tags.md +0 -5
- package/docs/_tabs/tutorials.md +0 -7
- package/docs/assets/X3D/teaser/Michroma-Regular.ttf +0 -0
- package/docs/assets/X3D/teaser/peakpx.jpg +0 -0
- package/docs/assets/X3D/teaser/teaser.x3d +0 -55
- package/docs/assets/css/style.scss +0 -320
- package/docs/assets/img/favicons/android-chrome-192x192.png +0 -0
- package/docs/assets/img/favicons/android-chrome-512x512.png +0 -0
- package/docs/assets/img/favicons/apple-touch-icon.png +0 -0
- package/docs/assets/img/favicons/favicon-16x16.png +0 -0
- package/docs/assets/img/favicons/favicon-32x32.png +0 -0
- package/docs/assets/img/favicons/favicon.ico +0 -0
- package/docs/assets/img/favicons/mstile-150x150.png +0 -0
- package/docs/assets/img/favicons/safari-pinned-tab.svg +0 -71
- package/docs/assets/img/laboratory/blend-mode.png +0 -0
- package/docs/assets/img/laboratory/dicom-nrrd.png +0 -0
- package/docs/assets/img/laboratory/earthquake.png +0 -0
- package/docs/assets/img/laboratory/gltf.png +0 -0
- package/docs/assets/img/laboratory/l-system.png +0 -0
- package/docs/assets/img/logo.png +0 -0
- package/docs/assets/js/example.js +0 -128
- package/docs/google3696ee938394d7b6.html +0 -1
- package/docs/laboratory/3d-l-system-generator.html +0 -169
- package/docs/laboratory/gltf-sample-viewer.html +0 -811
- package/docs/laboratory/online-dicom-and-nrrd-file-viewer.html +0 -72
- package/docs/laboratory/real-time-earth-quake-information.html +0 -50
- package/docs/laboratory/x3d-visual-blend-mode-editor.html +0 -228
- package/meta/logo/icon.svg +0 -432
- package/meta/logo/logo.png +0 -0
- package/meta/logo/logo.s.svg +0 -470
- package/meta/logo/logo.svg +0 -396
- package/src/LICENSE.txt +0 -46
- package/src/assets/components/Annotation.js +0 -74
- package/src/assets/components/CADGeometry.js +0 -74
- package/src/assets/components/CubeMapTexturing.js +0 -68
- package/src/assets/components/DIS.js +0 -72
- package/src/assets/components/EventUtilities.js +0 -78
- package/src/assets/components/Geometry2D.js +0 -78
- package/src/assets/components/Geospatial.js +0 -84
- package/src/assets/components/HAnim.js +0 -72
- package/src/assets/components/KeyDeviceSensor.js +0 -68
- package/src/assets/components/Layout.js +0 -74
- package/src/assets/components/NURBS.js +0 -94
- package/src/assets/components/ParticleSystems.js +0 -86
- package/src/assets/components/Picking.js +0 -74
- package/src/assets/components/RigidBodyPhysics.js +0 -94
- package/src/assets/components/Scripting.js +0 -64
- package/src/assets/components/Text.js +0 -68
- package/src/assets/components/TextureProjector.js +0 -66
- package/src/assets/components/Texturing3D.js +0 -78
- package/src/assets/components/VolumeRendering.js +0 -94
- package/src/assets/components/X_ITE.js +0 -62
- package/src/assets/fonts/DroidSerif-Bold.ttf +0 -0
- package/src/assets/fonts/DroidSerif-BoldItalic.ttf +0 -0
- package/src/assets/fonts/DroidSerif-Italic.ttf +0 -0
- package/src/assets/fonts/DroidSerif-Regular.ttf +0 -0
- package/src/assets/fonts/Ubuntu-B.ttf +0 -0
- package/src/assets/fonts/Ubuntu-BI.ttf +0 -0
- package/src/assets/fonts/Ubuntu-R.ttf +0 -0
- package/src/assets/fonts/Ubuntu-RI.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-B.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-BI.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-R.ttf +0 -0
- package/src/assets/fonts/UbuntuMono-RI.ttf +0 -0
- package/src/assets/hatching/1.png +0 -0
- package/src/assets/hatching/10.png +0 -0
- package/src/assets/hatching/11.png +0 -0
- package/src/assets/hatching/12.png +0 -0
- package/src/assets/hatching/13.png +0 -0
- package/src/assets/hatching/14.png +0 -0
- package/src/assets/hatching/15.png +0 -0
- package/src/assets/hatching/16.png +0 -0
- package/src/assets/hatching/17.png +0 -0
- package/src/assets/hatching/18.png +0 -0
- package/src/assets/hatching/19.png +0 -0
- package/src/assets/hatching/2.png +0 -0
- package/src/assets/hatching/3.png +0 -0
- package/src/assets/hatching/4.png +0 -0
- package/src/assets/hatching/5.png +0 -0
- package/src/assets/hatching/6.png +0 -0
- package/src/assets/hatching/7.png +0 -0
- package/src/assets/hatching/8.png +0 -0
- package/src/assets/hatching/9.png +0 -0
- package/src/assets/images/ExamineViewer.png +0 -0
- package/src/assets/images/FlyViewer.png +0 -0
- package/src/assets/images/NoneViewer.png +0 -0
- package/src/assets/images/PlaneViewer.png +0 -0
- package/src/assets/images/PrimitiveQuality.png +0 -0
- package/src/assets/images/Shading.png +0 -0
- package/src/assets/images/TextureQuality.png +0 -0
- package/src/assets/images/Time.png +0 -0
- package/src/assets/images/Viewpoint.png +0 -0
- package/src/assets/images/WalkViewer.png +0 -0
- package/src/assets/images/go-next.png +0 -0
- package/src/assets/images/gtk-fullscreen.png +0 -0
- package/src/assets/images/gtk-leave-fullscreen.png +0 -0
- package/src/assets/images/gtk-zoom-fit.png +0 -0
- package/src/assets/images/gtk-zoom-in.png +0 -0
- package/src/assets/images/help-about.png +0 -0
- package/src/assets/images/icon.bw.png +0 -0
- package/src/assets/images/icon.png +0 -0
- package/src/assets/images/logo.128.png +0 -0
- package/src/assets/images/logo.bw.png +0 -0
- package/src/assets/images/logo.png +0 -0
- package/src/assets/lib/draco_decoder_gltf.js +0 -29
- package/src/assets/linetype/linetypes.png +0 -0
- package/src/assets/shaders/Types.glsl.js +0 -312
- package/src/assets/shaders/webgl1/Default.vs.js +0 -14
- package/src/assets/shaders/webgl1/Depth.fs.js +0 -25
- package/src/assets/shaders/webgl1/Depth.vs.js +0 -31
- package/src/assets/shaders/webgl1/Gouraud.fs.js +0 -40
- package/src/assets/shaders/webgl1/Gouraud.vs.js +0 -58
- package/src/assets/shaders/webgl1/PBR.fs.js +0 -366
- package/src/assets/shaders/webgl1/Phong.fs.js +0 -211
- package/src/assets/shaders/webgl1/Pointing.fs.js +0 -40
- package/src/assets/shaders/webgl1/Pointing.vs.js +0 -46
- package/src/assets/shaders/webgl1/Unlit.fs.js +0 -55
- package/src/assets/shaders/webgl1/include/ClipPlanes.glsl.js +0 -17
- package/src/assets/shaders/webgl1/include/Colors.glsl.js +0 -27
- package/src/assets/shaders/webgl1/include/Fog.glsl.js +0 -32
- package/src/assets/shaders/webgl1/include/Fragment.glsl.js +0 -137
- package/src/assets/shaders/webgl1/include/Hatch.glsl.js +0 -22
- package/src/assets/shaders/webgl1/include/Material.glsl.js +0 -59
- package/src/assets/shaders/webgl1/include/Normal.glsl.js +0 -48
- package/src/assets/shaders/webgl1/include/Perlin.glsl.js +0 -41
- package/src/assets/shaders/webgl1/include/Point.glsl.js +0 -47
- package/src/assets/shaders/webgl1/include/PointSize.glsl.js +0 -31
- package/src/assets/shaders/webgl1/include/Shadow.glsl.js +0 -314
- package/src/assets/shaders/webgl1/include/SpotFactor.glsl.js +0 -14
- package/src/assets/shaders/webgl1/include/Texture.glsl.js +0 -532
- package/src/assets/shaders/webgl1/include/Vertex.glsl.js +0 -154
- package/src/assets/shaders/webgl2/Compose.fs.js +0 -29
- package/src/assets/shaders/webgl2/Compose.vs.js +0 -14
- package/src/assets/shaders/webgl2/Default.vs.js +0 -16
- package/src/assets/shaders/webgl2/Depth.fs.js +0 -28
- package/src/assets/shaders/webgl2/Depth.vs.js +0 -37
- package/src/assets/shaders/webgl2/Gouraud.fs.js +0 -42
- package/src/assets/shaders/webgl2/Gouraud.vs.js +0 -60
- package/src/assets/shaders/webgl2/LineTransform.fs.js +0 -7
- package/src/assets/shaders/webgl2/LineTransform.vs.js +0 -90
- package/src/assets/shaders/webgl2/PBR.fs.js +0 -373
- package/src/assets/shaders/webgl2/Phong.fs.js +0 -225
- package/src/assets/shaders/webgl2/Pointing.fs.js +0 -49
- package/src/assets/shaders/webgl2/Pointing.vs.js +0 -68
- package/src/assets/shaders/webgl2/Unlit.fs.js +0 -60
- package/src/assets/shaders/webgl2/include/ClipPlanes.glsl.js +0 -17
- package/src/assets/shaders/webgl2/include/Colors.glsl.js +0 -27
- package/src/assets/shaders/webgl2/include/Fog.glsl.js +0 -32
- package/src/assets/shaders/webgl2/include/Fragment.glsl.js +0 -162
- package/src/assets/shaders/webgl2/include/Hatch.glsl.js +0 -22
- package/src/assets/shaders/webgl2/include/Line2.glsl.js +0 -22
- package/src/assets/shaders/webgl2/include/Material.glsl.js +0 -59
- package/src/assets/shaders/webgl2/include/Normal.glsl.js +0 -50
- package/src/assets/shaders/webgl2/include/Particle.glsl.js +0 -34
- package/src/assets/shaders/webgl2/include/Perlin.glsl.js +0 -41
- package/src/assets/shaders/webgl2/include/Point.glsl.js +0 -47
- package/src/assets/shaders/webgl2/include/PointSize.glsl.js +0 -31
- package/src/assets/shaders/webgl2/include/Shadow.glsl.js +0 -328
- package/src/assets/shaders/webgl2/include/Skin.glsl.js +0 -88
- package/src/assets/shaders/webgl2/include/SpotFactor.glsl.js +0 -14
- package/src/assets/shaders/webgl2/include/Stipple.glsl.js +0 -43
- package/src/assets/shaders/webgl2/include/Texture.glsl.js +0 -527
- package/src/assets/shaders/webgl2/include/Utils.glsl.js +0 -13
- package/src/assets/shaders/webgl2/include/Vertex.glsl.js +0 -180
- package/src/bookmarks.js +0 -297
- package/src/example.html +0 -21
- package/src/examples.js +0 -156
- package/src/lib/ammojs/AmmoClass.js +0 -50
- package/src/lib/ammojs/Makefile +0 -25
- package/src/lib/ammojs/ammo.idl +0 -1031
- package/src/lib/ammojs/ammo.js +0 -35
- package/src/lib/jquery.js +0 -66
- package/src/lib/libgif/libgif.js +0 -1004
- package/src/lib/libtess.js +0 -1
- package/src/lib/nurbs/extras/sample.js +0 -233
- package/src/lib/nurbs/nurbs.js +0 -325
- package/src/lib/nurbs/src/evaluate.js +0 -402
- package/src/lib/nurbs/src/numerical-derivative.js +0 -49
- package/src/lib/nurbs/src/support.js +0 -140
- package/src/lib/nurbs/src/transform.js +0 -70
- package/src/lib/nurbs/src/utils/accessor-preamble.js +0 -27
- package/src/lib/nurbs/src/utils/bisection-search.js +0 -22
- package/src/lib/nurbs/src/utils/cache-key.js +0 -50
- package/src/lib/nurbs/src/utils/create-accessors.js +0 -103
- package/src/lib/nurbs/src/utils/infer-type.js +0 -44
- package/src/lib/nurbs/src/utils/is-array-like.js +0 -5
- package/src/lib/nurbs/src/utils/is-ndarray-like.js +0 -13
- package/src/lib/nurbs/src/utils/is-ndarray.js +0 -16
- package/src/lib/nurbs/src/utils/ndloop.js +0 -18
- package/src/lib/nurbs/src/utils/size-getter.js +0 -16
- package/src/lib/nurbs/src/utils/variable.js +0 -26
- package/src/locale/de.po.js +0 -182
- package/src/locale/fr.po.js +0 -179
- package/src/locale/gettext.js +0 -120
- package/src/shim.js +0 -81
- package/src/standard/Geospatial/Geodetic.js +0 -257
- package/src/standard/Geospatial/ReferenceEllipsoids.js +0 -92
- package/src/standard/Geospatial/UniversalTransverseMercator.js +0 -205
- package/src/standard/Math/Algorithm.js +0 -237
- package/src/standard/Math/Algorithms/Bezier.js +0 -232
- package/src/standard/Math/Algorithms/MergeSort.js +0 -104
- package/src/standard/Math/Algorithms/PartialSort.js +0 -92
- package/src/standard/Math/Algorithms/QuickSort.js +0 -106
- package/src/standard/Math/Algorithms/SAT.js +0 -109
- package/src/standard/Math/Algorithms/eigen_decomposition.js +0 -190
- package/src/standard/Math/Geometry/Box2.js +0 -257
- package/src/standard/Math/Geometry/Box3.js +0 -665
- package/src/standard/Math/Geometry/Camera.js +0 -127
- package/src/standard/Math/Geometry/Cylinder3.js +0 -159
- package/src/standard/Math/Geometry/Line2.js +0 -155
- package/src/standard/Math/Geometry/Line3.js +0 -235
- package/src/standard/Math/Geometry/Plane3.js +0 -163
- package/src/standard/Math/Geometry/Sphere3.js +0 -191
- package/src/standard/Math/Geometry/Spheroid3.js +0 -86
- package/src/standard/Math/Geometry/Triangle2.js +0 -78
- package/src/standard/Math/Geometry/Triangle3.js +0 -140
- package/src/standard/Math/Geometry/ViewVolume.js +0 -422
- package/src/standard/Math/Numbers/Color3.js +0 -258
- package/src/standard/Math/Numbers/Color4.js +0 -188
- package/src/standard/Math/Numbers/Complex.js +0 -246
- package/src/standard/Math/Numbers/Matrix2.js +0 -274
- package/src/standard/Math/Numbers/Matrix3.js +0 -673
- package/src/standard/Math/Numbers/Matrix4.js +0 -794
- package/src/standard/Math/Numbers/Quaternion.js +0 -665
- package/src/standard/Math/Numbers/Rotation4.js +0 -478
- package/src/standard/Math/Numbers/Vector2.js +0 -238
- package/src/standard/Math/Numbers/Vector3.js +0 -292
- package/src/standard/Math/Numbers/Vector4.js +0 -307
- package/src/standard/Math/Utility/BVH.js +0 -378
- package/src/standard/Math/Utility/MatrixStack.js +0 -114
- package/src/standard/Time/StopWatch.js +0 -84
- package/src/standard/Utility/BitSet.js +0 -117
- package/src/standard/Utility/DataStorage.js +0 -132
- package/src/standard/Utility/MapUtilities.js +0 -83
- package/src/standard/Utility/ObjectCache.js +0 -72
- package/src/standard/Utility/Shuffle.js +0 -66
- package/src/tests.js +0 -399
- package/src/x_ite/Base/Events.js +0 -73
- package/src/x_ite/Base/FieldArray.js +0 -70
- package/src/x_ite/Base/FieldDefinitionArray.js +0 -70
- package/src/x_ite/Base/X3DArrayField.js +0 -138
- package/src/x_ite/Base/X3DBaseNode.js +0 -639
- package/src/x_ite/Base/X3DCast.js +0 -75
- package/src/x_ite/Base/X3DChildObject.js +0 -265
- package/src/x_ite/Base/X3DConstants.js +0 -146
- package/src/x_ite/Base/X3DField.js +0 -429
- package/src/x_ite/Base/X3DFieldDefinition.js +0 -75
- package/src/x_ite/Base/X3DInfoArray.js +0 -381
- package/src/x_ite/Base/X3DObject.js +0 -254
- package/src/x_ite/Base/X3DObjectArrayField.js +0 -541
- package/src/x_ite/Base/X3DTypedArrayField.js +0 -1018
- package/src/x_ite/Browser/Core/BrowserOptions.js +0 -388
- package/src/x_ite/Browser/Core/BrowserProperties.js +0 -84
- package/src/x_ite/Browser/Core/BrowserTimings.js +0 -300
- package/src/x_ite/Browser/Core/Context.js +0 -278
- package/src/x_ite/Browser/Core/ContextMenu.js +0 -718
- package/src/x_ite/Browser/Core/Notification.js +0 -117
- package/src/x_ite/Browser/Core/PrimitiveQuality.js +0 -57
- package/src/x_ite/Browser/Core/RenderingProperties.js +0 -104
- package/src/x_ite/Browser/Core/Shading.js +0 -59
- package/src/x_ite/Browser/Core/TextureQuality.js +0 -57
- package/src/x_ite/Browser/Core/X3DCoreContext.js +0 -758
- package/src/x_ite/Browser/DOMIntegration.js +0 -383
- package/src/x_ite/Browser/EnvironmentalEffects/X3DEnvironmentalEffectsContext.js +0 -76
- package/src/x_ite/Browser/Followers/X3DArrayChaserTemplate.js +0 -78
- package/src/x_ite/Browser/Followers/X3DArrayFollowerTemplate.js +0 -176
- package/src/x_ite/Browser/Geometry2D/Arc2DOptions.js +0 -70
- package/src/x_ite/Browser/Geometry2D/ArcClose2DOptions.js +0 -70
- package/src/x_ite/Browser/Geometry2D/Circle2DOptions.js +0 -106
- package/src/x_ite/Browser/Geometry2D/Disk2DOptions.js +0 -159
- package/src/x_ite/Browser/Geometry2D/Rectangle2DOptions.js +0 -112
- package/src/x_ite/Browser/Geometry2D/X3DGeometry2DContext.js +0 -134
- package/src/x_ite/Browser/Geometry3D/BoxOptions.js +0 -123
- package/src/x_ite/Browser/Geometry3D/ConeOptions.js +0 -71
- package/src/x_ite/Browser/Geometry3D/CylinderOptions.js +0 -71
- package/src/x_ite/Browser/Geometry3D/IcoSphere.js +0 -404
- package/src/x_ite/Browser/Geometry3D/IcoSphereOptions.js +0 -115
- package/src/x_ite/Browser/Geometry3D/QuadSphereOptions.js +0 -287
- package/src/x_ite/Browser/Geometry3D/X3DGeometry3DContext.js +0 -128
- package/src/x_ite/Browser/Geospatial/Geocentric.js +0 -75
- package/src/x_ite/Browser/Geospatial/Geospatial.js +0 -205
- package/src/x_ite/Browser/Grouping/X3DGroupingContext.js +0 -84
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator.js +0 -186
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator1.js +0 -87
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator2.js +0 -53
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolator3.js +0 -53
- package/src/x_ite/Browser/Interpolation/CatmullRomSplineInterpolatorTemplate.js +0 -107
- package/src/x_ite/Browser/Interpolation/SquatInterpolator.js +0 -112
- package/src/x_ite/Browser/KeyDeviceSensor/X3DKeyDeviceSensorContext.js +0 -97
- package/src/x_ite/Browser/Layering/X3DLayeringContext.js +0 -70
- package/src/x_ite/Browser/Layout/ScreenText.js +0 -412
- package/src/x_ite/Browser/Layout/X3DLayoutContext.js +0 -131
- package/src/x_ite/Browser/Legacy.js +0 -84
- package/src/x_ite/Browser/Lighting/X3DLightingContext.js +0 -105
- package/src/x_ite/Browser/NURBS/NURBS.js +0 -471
- package/src/x_ite/Browser/Navigation/ExamineViewer.js +0 -866
- package/src/x_ite/Browser/Navigation/FlyViewer.js +0 -99
- package/src/x_ite/Browser/Navigation/LookAtViewer.js +0 -519
- package/src/x_ite/Browser/Navigation/NoneViewer.js +0 -77
- package/src/x_ite/Browser/Navigation/PlaneViewer.js +0 -243
- package/src/x_ite/Browser/Navigation/WalkViewer.js +0 -130
- package/src/x_ite/Browser/Navigation/X3DFlyViewer.js +0 -727
- package/src/x_ite/Browser/Navigation/X3DNavigationContext.js +0 -240
- package/src/x_ite/Browser/Navigation/X3DViewer.js +0 -204
- package/src/x_ite/Browser/Networking/URLs.js +0 -103
- package/src/x_ite/Browser/Networking/X3DNetworkingContext.js +0 -227
- package/src/x_ite/Browser/ParticleSystems/BVH.glsl.js +0 -185
- package/src/x_ite/Browser/ParticleSystems/Box3.glsl.js +0 -49
- package/src/x_ite/Browser/ParticleSystems/GeometryTypes.js +0 -59
- package/src/x_ite/Browser/ParticleSystems/Line3.glsl.js +0 -57
- package/src/x_ite/Browser/ParticleSystems/Plane3.glsl.js +0 -162
- package/src/x_ite/Browser/ParticleSystems/X3DParticleSystemsContext.js +0 -72
- package/src/x_ite/Browser/Picking/IntersectionType.js +0 -56
- package/src/x_ite/Browser/Picking/MatchCriterion.js +0 -57
- package/src/x_ite/Browser/Picking/SortOrder.js +0 -58
- package/src/x_ite/Browser/Picking/VolumePicker.js +0 -177
- package/src/x_ite/Browser/Picking/X3DPickingContext.js +0 -132
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDevice.js +0 -279
- package/src/x_ite/Browser/PointingDeviceSensor/PointingDeviceSensorContainer.js +0 -85
- package/src/x_ite/Browser/PointingDeviceSensor/X3DPointingDeviceSensorContext.js +0 -395
- package/src/x_ite/Browser/Rendering/GeometryContext.js +0 -83
- package/src/x_ite/Browser/Rendering/X3DRenderingContext.js +0 -270
- package/src/x_ite/Browser/RigidBodyPhysics/AppliedParametersType.js +0 -63
- package/src/x_ite/Browser/Scripting/X3DScriptingContext.js +0 -67
- package/src/x_ite/Browser/Scripting/evaluate.js +0 -68
- package/src/x_ite/Browser/Shaders/ShaderCompiler.js +0 -97
- package/src/x_ite/Browser/Shaders/ShaderSource.js +0 -204
- package/src/x_ite/Browser/Shaders/Shaders.js +0 -191
- package/src/x_ite/Browser/Shaders/X3DShadersContext.js +0 -190
- package/src/x_ite/Browser/Shape/AlphaMode.js +0 -58
- package/src/x_ite/Browser/Shape/X3DShapeContext.js +0 -209
- package/src/x_ite/Browser/Sound/X3DSoundContext.js +0 -57
- package/src/x_ite/Browser/Text/PolygonText.js +0 -360
- package/src/x_ite/Browser/Text/TextAlignment.js +0 -58
- package/src/x_ite/Browser/Text/X3DTextContext.js +0 -134
- package/src/x_ite/Browser/Text/X3DTextGeometry.js +0 -614
- package/src/x_ite/Browser/Texturing/FunctionType.js +0 -57
- package/src/x_ite/Browser/Texturing/GifMedia.js +0 -113
- package/src/x_ite/Browser/Texturing/ModeType.js +0 -74
- package/src/x_ite/Browser/Texturing/SourceType.js +0 -58
- package/src/x_ite/Browser/Texturing/TextureCoordinateGeneratorModeType.js +0 -66
- package/src/x_ite/Browser/Texturing/X3DTexturingContext.js +0 -340
- package/src/x_ite/Browser/Texturing3D/DICOMParser.js +0 -1097
- package/src/x_ite/Browser/Texturing3D/NRRDParser.js +0 -458
- package/src/x_ite/Browser/Time/X3DTimeContext.js +0 -108
- package/src/x_ite/Browser/VERSION.js +0 -48
- package/src/x_ite/Browser/VolumeRendering/VolumeMaterial.js +0 -145
- package/src/x_ite/Browser/VolumeRendering/VolumeStyle.fs.js +0 -60
- package/src/x_ite/Browser/VolumeRendering/VolumeStyle.vs.js +0 -26
- package/src/x_ite/Browser/VolumeRendering/X3DVolumeRenderingContext.js +0 -131
- package/src/x_ite/Browser/X3DBrowser.js +0 -1060
- package/src/x_ite/Browser/X3DBrowserContext.js +0 -436
- package/src/x_ite/Components/Annotation/AnnotationLayer.js +0 -109
- package/src/x_ite/Components/Annotation/AnnotationTarget.js +0 -104
- package/src/x_ite/Components/Annotation/GroupAnnotation.js +0 -119
- package/src/x_ite/Components/Annotation/IconAnnotation.js +0 -117
- package/src/x_ite/Components/Annotation/TextAnnotation.js +0 -105
- package/src/x_ite/Components/Annotation/URLAnnotation.js +0 -104
- package/src/x_ite/Components/Annotation/X3DAnnotationNode.js +0 -80
- package/src/x_ite/Components/CADGeometry/CADAssembly.js +0 -107
- package/src/x_ite/Components/CADGeometry/CADFace.js +0 -252
- package/src/x_ite/Components/CADGeometry/CADLayer.js +0 -102
- package/src/x_ite/Components/CADGeometry/CADPart.js +0 -112
- package/src/x_ite/Components/CADGeometry/IndexedQuadSet.js +0 -132
- package/src/x_ite/Components/CADGeometry/QuadSet.js +0 -127
- package/src/x_ite/Components/CADGeometry/X3DProductStructureChildNode.js +0 -74
- package/src/x_ite/Components/Core/MetadataBoolean.js +0 -119
- package/src/x_ite/Components/Core/MetadataDouble.js +0 -119
- package/src/x_ite/Components/Core/MetadataFloat.js +0 -119
- package/src/x_ite/Components/Core/MetadataInteger.js +0 -119
- package/src/x_ite/Components/Core/MetadataSet.js +0 -119
- package/src/x_ite/Components/Core/MetadataString.js +0 -119
- package/src/x_ite/Components/Core/WorldInfo.js +0 -110
- package/src/x_ite/Components/Core/X3DBindableNode.js +0 -108
- package/src/x_ite/Components/Core/X3DChildNode.js +0 -101
- package/src/x_ite/Components/Core/X3DInfoNode.js +0 -74
- package/src/x_ite/Components/Core/X3DMetadataObject.js +0 -75
- package/src/x_ite/Components/Core/X3DNode.js +0 -1393
- package/src/x_ite/Components/Core/X3DPrototypeInstance.js +0 -1012
- package/src/x_ite/Components/Core/X3DSensorNode.js +0 -74
- package/src/x_ite/Components/Core.js +0 -85
- package/src/x_ite/Components/CubeMapTexturing/ComposedCubeMapTexture.js +0 -250
- package/src/x_ite/Components/CubeMapTexturing/GeneratedCubeMapTexture.js +0 -295
- package/src/x_ite/Components/CubeMapTexturing/ImageCubeMapTexture.js +0 -278
- package/src/x_ite/Components/CubeMapTexturing/X3DEnvironmentTextureNode.js +0 -141
- package/src/x_ite/Components/DIS/DISEntityManager.js +0 -104
- package/src/x_ite/Components/DIS/DISEntityTypeMapping.js +0 -120
- package/src/x_ite/Components/DIS/EspduTransform.js +0 -194
- package/src/x_ite/Components/DIS/ReceiverPdu.js +0 -139
- package/src/x_ite/Components/DIS/SignalPdu.js +0 -139
- package/src/x_ite/Components/DIS/TransmitterPdu.js +0 -155
- package/src/x_ite/Components/EnvironmentalEffects/Background.js +0 -159
- package/src/x_ite/Components/EnvironmentalEffects/Fog.js +0 -132
- package/src/x_ite/Components/EnvironmentalEffects/FogCoordinate.js +0 -153
- package/src/x_ite/Components/EnvironmentalEffects/LocalFog.js +0 -129
- package/src/x_ite/Components/EnvironmentalEffects/TextureBackground.js +0 -133
- package/src/x_ite/Components/EnvironmentalEffects/X3DBackgroundNode.js +0 -613
- package/src/x_ite/Components/EnvironmentalEffects/X3DFogObject.js +0 -176
- package/src/x_ite/Components/EnvironmentalEffects.js +0 -71
- package/src/x_ite/Components/EnvironmentalSensor/ProximitySensor.js +0 -280
- package/src/x_ite/Components/EnvironmentalSensor/TransformSensor.js +0 -319
- package/src/x_ite/Components/EnvironmentalSensor/VisibilitySensor.js +0 -177
- package/src/x_ite/Components/EnvironmentalSensor/X3DEnvironmentalSensorNode.js +0 -143
- package/src/x_ite/Components/EnvironmentalSensor.js +0 -65
- package/src/x_ite/Components/EventUtilities/BooleanFilter.js +0 -118
- package/src/x_ite/Components/EventUtilities/BooleanSequencer.js +0 -116
- package/src/x_ite/Components/EventUtilities/BooleanToggle.js +0 -109
- package/src/x_ite/Components/EventUtilities/BooleanTrigger.js +0 -108
- package/src/x_ite/Components/EventUtilities/IntegerSequencer.js +0 -116
- package/src/x_ite/Components/EventUtilities/IntegerTrigger.js +0 -109
- package/src/x_ite/Components/EventUtilities/TimeTrigger.js +0 -108
- package/src/x_ite/Components/EventUtilities/X3DSequencerNode.js +0 -153
- package/src/x_ite/Components/EventUtilities/X3DTriggerNode.js +0 -74
- package/src/x_ite/Components/Followers/ColorChaser.js +0 -147
- package/src/x_ite/Components/Followers/ColorDamper.js +0 -145
- package/src/x_ite/Components/Followers/CoordinateChaser.js +0 -113
- package/src/x_ite/Components/Followers/CoordinateDamper.js +0 -115
- package/src/x_ite/Components/Followers/OrientationChaser.js +0 -134
- package/src/x_ite/Components/Followers/OrientationDamper.js +0 -130
- package/src/x_ite/Components/Followers/PositionChaser.js +0 -108
- package/src/x_ite/Components/Followers/PositionChaser2D.js +0 -108
- package/src/x_ite/Components/Followers/PositionDamper.js +0 -110
- package/src/x_ite/Components/Followers/PositionDamper2D.js +0 -110
- package/src/x_ite/Components/Followers/ScalarChaser.js +0 -136
- package/src/x_ite/Components/Followers/ScalarDamper.js +0 -126
- package/src/x_ite/Components/Followers/TexCoordChaser2D.js +0 -113
- package/src/x_ite/Components/Followers/TexCoordDamper2D.js +0 -115
- package/src/x_ite/Components/Followers/X3DChaserNode.js +0 -241
- package/src/x_ite/Components/Followers/X3DDamperNode.js +0 -176
- package/src/x_ite/Components/Followers/X3DFollowerNode.js +0 -151
- package/src/x_ite/Components/Followers.js +0 -91
- package/src/x_ite/Components/Geometry2D/Arc2D.js +0 -162
- package/src/x_ite/Components/Geometry2D/ArcClose2D.js +0 -227
- package/src/x_ite/Components/Geometry2D/Circle2D.js +0 -130
- package/src/x_ite/Components/Geometry2D/Disk2D.js +0 -257
- package/src/x_ite/Components/Geometry2D/Polyline2D.js +0 -111
- package/src/x_ite/Components/Geometry2D/Polypoint2D.js +0 -110
- package/src/x_ite/Components/Geometry2D/Rectangle2D.js +0 -148
- package/src/x_ite/Components/Geometry2D/TriangleSet2D.js +0 -142
- package/src/x_ite/Components/Geometry3D/Box.js +0 -146
- package/src/x_ite/Components/Geometry3D/Cone.js +0 -248
- package/src/x_ite/Components/Geometry3D/Cylinder.js +0 -309
- package/src/x_ite/Components/Geometry3D/ElevationGrid.js +0 -439
- package/src/x_ite/Components/Geometry3D/Extrusion.js +0 -729
- package/src/x_ite/Components/Geometry3D/IndexedFaceSet.js +0 -473
- package/src/x_ite/Components/Geometry3D/Sphere.js +0 -146
- package/src/x_ite/Components/Geometry3D.js +0 -71
- package/src/x_ite/Components/Geospatial/GeoCoordinate.js +0 -238
- package/src/x_ite/Components/Geospatial/GeoElevationGrid.js +0 -433
- package/src/x_ite/Components/Geospatial/GeoLOD.js +0 -466
- package/src/x_ite/Components/Geospatial/GeoLocation.js +0 -130
- package/src/x_ite/Components/Geospatial/GeoMetadata.js +0 -117
- package/src/x_ite/Components/Geospatial/GeoOrigin.js +0 -118
- package/src/x_ite/Components/Geospatial/GeoPositionInterpolator.js +0 -156
- package/src/x_ite/Components/Geospatial/GeoProximitySensor.js +0 -163
- package/src/x_ite/Components/Geospatial/GeoTouchSensor.js +0 -135
- package/src/x_ite/Components/Geospatial/GeoTransform.js +0 -145
- package/src/x_ite/Components/Geospatial/GeoViewpoint.js +0 -290
- package/src/x_ite/Components/Geospatial/X3DGeospatialObject.js +0 -272
- package/src/x_ite/Components/Grouping/Group.js +0 -101
- package/src/x_ite/Components/Grouping/StaticGroup.js +0 -244
- package/src/x_ite/Components/Grouping/Switch.js +0 -257
- package/src/x_ite/Components/Grouping/Transform.js +0 -106
- package/src/x_ite/Components/Grouping/X3DBoundedObject.js +0 -150
- package/src/x_ite/Components/Grouping/X3DGroupingNode.js +0 -722
- package/src/x_ite/Components/Grouping/X3DTransformMatrix3DNode.js +0 -135
- package/src/x_ite/Components/Grouping/X3DTransformNode.js +0 -95
- package/src/x_ite/Components/Grouping.js +0 -73
- package/src/x_ite/Components/HAnim/HAnimDisplacer.js +0 -101
- package/src/x_ite/Components/HAnim/HAnimHumanoid.js +0 -640
- package/src/x_ite/Components/HAnim/HAnimJoint.js +0 -198
- package/src/x_ite/Components/HAnim/HAnimMotion.js +0 -434
- package/src/x_ite/Components/HAnim/HAnimSegment.js +0 -110
- package/src/x_ite/Components/HAnim/HAnimSite.js +0 -108
- package/src/x_ite/Components/Interpolation/ColorInterpolator.js +0 -132
- package/src/x_ite/Components/Interpolation/CoordinateInterpolator.js +0 -132
- package/src/x_ite/Components/Interpolation/CoordinateInterpolator2D.js +0 -129
- package/src/x_ite/Components/Interpolation/EaseInEaseOut.js +0 -149
- package/src/x_ite/Components/Interpolation/NormalInterpolator.js +0 -158
- package/src/x_ite/Components/Interpolation/OrientationInterpolator.js +0 -134
- package/src/x_ite/Components/Interpolation/PositionInterpolator.js +0 -125
- package/src/x_ite/Components/Interpolation/PositionInterpolator2D.js +0 -125
- package/src/x_ite/Components/Interpolation/ScalarInterpolator.js +0 -120
- package/src/x_ite/Components/Interpolation/SplinePositionInterpolator.js +0 -147
- package/src/x_ite/Components/Interpolation/SplinePositionInterpolator2D.js +0 -147
- package/src/x_ite/Components/Interpolation/SplineScalarInterpolator.js +0 -147
- package/src/x_ite/Components/Interpolation/SquadOrientationInterpolator.js +0 -137
- package/src/x_ite/Components/Interpolation/X3DInterpolatorNode.js +0 -137
- package/src/x_ite/Components/Interpolation.js +0 -85
- package/src/x_ite/Components/KeyDeviceSensor/KeySensor.js +0 -379
- package/src/x_ite/Components/KeyDeviceSensor/StringSensor.js +0 -164
- package/src/x_ite/Components/KeyDeviceSensor/X3DKeyDeviceSensorNode.js +0 -120
- package/src/x_ite/Components/Layering/Layer.js +0 -120
- package/src/x_ite/Components/Layering/LayerSet.js +0 -208
- package/src/x_ite/Components/Layering/Viewport.js +0 -180
- package/src/x_ite/Components/Layering/X3DLayerNode.js +0 -407
- package/src/x_ite/Components/Layering/X3DViewportNode.js +0 -74
- package/src/x_ite/Components/Layering.js +0 -67
- package/src/x_ite/Components/Layout/Layout.js +0 -642
- package/src/x_ite/Components/Layout/LayoutGroup.js +0 -188
- package/src/x_ite/Components/Layout/LayoutLayer.js +0 -124
- package/src/x_ite/Components/Layout/ScreenFontStyle.js +0 -120
- package/src/x_ite/Components/Layout/ScreenGroup.js +0 -138
- package/src/x_ite/Components/Layout/X3DLayoutNode.js +0 -74
- package/src/x_ite/Components/Lighting/DirectionalLight.js +0 -291
- package/src/x_ite/Components/Lighting/EnvironmentLight.js +0 -157
- package/src/x_ite/Components/Lighting/PointLight.js +0 -341
- package/src/x_ite/Components/Lighting/SpotLight.js +0 -360
- package/src/x_ite/Components/Lighting/X3DLightNode.js +0 -222
- package/src/x_ite/Components/Lighting.js +0 -67
- package/src/x_ite/Components/NURBS/Contour2D.js +0 -170
- package/src/x_ite/Components/NURBS/ContourPolyline2D.js +0 -165
- package/src/x_ite/Components/NURBS/CoordinateDouble.js +0 -95
- package/src/x_ite/Components/NURBS/NurbsCurve.js +0 -234
- package/src/x_ite/Components/NURBS/NurbsCurve2D.js +0 -212
- package/src/x_ite/Components/NURBS/NurbsOrientationInterpolator.js +0 -229
- package/src/x_ite/Components/NURBS/NurbsPatchSurface.js +0 -108
- package/src/x_ite/Components/NURBS/NurbsPositionInterpolator.js +0 -217
- package/src/x_ite/Components/NURBS/NurbsSet.js +0 -186
- package/src/x_ite/Components/NURBS/NurbsSurfaceInterpolator.js +0 -189
- package/src/x_ite/Components/NURBS/NurbsSweptSurface.js +0 -181
- package/src/x_ite/Components/NURBS/NurbsSwungSurface.js +0 -181
- package/src/x_ite/Components/NURBS/NurbsTextureCoordinate.js +0 -156
- package/src/x_ite/Components/NURBS/NurbsTrimmedSurface.js +0 -177
- package/src/x_ite/Components/NURBS/X3DNurbsControlCurveNode.js +0 -74
- package/src/x_ite/Components/NURBS/X3DNurbsSurfaceGeometryNode.js +0 -393
- package/src/x_ite/Components/NURBS/X3DParametricGeometryNode.js +0 -81
- package/src/x_ite/Components/Navigation/Billboard.js +0 -188
- package/src/x_ite/Components/Navigation/Collision.js +0 -184
- package/src/x_ite/Components/Navigation/LOD.js +0 -335
- package/src/x_ite/Components/Navigation/NavigationInfo.js +0 -344
- package/src/x_ite/Components/Navigation/OrthoViewpoint.js +0 -356
- package/src/x_ite/Components/Navigation/Viewpoint.js +0 -200
- package/src/x_ite/Components/Navigation/ViewpointGroup.js +0 -257
- package/src/x_ite/Components/Navigation/X3DViewpointNode.js +0 -594
- package/src/x_ite/Components/Navigation.js +0 -73
- package/src/x_ite/Components/Networking/Anchor.js +0 -220
- package/src/x_ite/Components/Networking/Inline.js +0 -314
- package/src/x_ite/Components/Networking/LoadSensor.js +0 -265
- package/src/x_ite/Components/Networking/X3DNetworkSensorNode.js +0 -74
- package/src/x_ite/Components/Networking/X3DUrlObject.js +0 -296
- package/src/x_ite/Components/Networking.js +0 -67
- package/src/x_ite/Components/ParticleSystems/BoundedPhysicsModel.js +0 -132
- package/src/x_ite/Components/ParticleSystems/ConeEmitter.js +0 -162
- package/src/x_ite/Components/ParticleSystems/ExplosionEmitter.js +0 -137
- package/src/x_ite/Components/ParticleSystems/ForcePhysicsModel.js +0 -120
- package/src/x_ite/Components/ParticleSystems/ParticleSystem.js +0 -1081
- package/src/x_ite/Components/ParticleSystems/PointEmitter.js +0 -153
- package/src/x_ite/Components/ParticleSystems/PolylineEmitter.js +0 -244
- package/src/x_ite/Components/ParticleSystems/SurfaceEmitter.js +0 -252
- package/src/x_ite/Components/ParticleSystems/VolumeEmitter.js +0 -289
- package/src/x_ite/Components/ParticleSystems/WindPhysicsModel.js +0 -142
- package/src/x_ite/Components/ParticleSystems/X3DParticleEmitterNode.js +0 -1004
- package/src/x_ite/Components/ParticleSystems/X3DParticlePhysicsModelNode.js +0 -78
- package/src/x_ite/Components/Picking/LinePickSensor.js +0 -339
- package/src/x_ite/Components/Picking/PickableGroup.js +0 -223
- package/src/x_ite/Components/Picking/PointPickSensor.js +0 -350
- package/src/x_ite/Components/Picking/PrimitivePickSensor.js +0 -270
- package/src/x_ite/Components/Picking/VolumePickSensor.js +0 -245
- package/src/x_ite/Components/Picking/X3DPickSensorNode.js +0 -441
- package/src/x_ite/Components/Picking/X3DPickableObject.js +0 -95
- package/src/x_ite/Components/PointingDeviceSensor/CylinderSensor.js +0 -303
- package/src/x_ite/Components/PointingDeviceSensor/PlaneSensor.js +0 -300
- package/src/x_ite/Components/PointingDeviceSensor/SphereSensor.js +0 -220
- package/src/x_ite/Components/PointingDeviceSensor/TouchSensor.js +0 -104
- package/src/x_ite/Components/PointingDeviceSensor/X3DDragSensorNode.js +0 -76
- package/src/x_ite/Components/PointingDeviceSensor/X3DPointingDeviceSensorNode.js +0 -132
- package/src/x_ite/Components/PointingDeviceSensor/X3DTouchSensorNode.js +0 -106
- package/src/x_ite/Components/PointingDeviceSensor.js +0 -71
- package/src/x_ite/Components/Rendering/ClipPlane.js +0 -180
- package/src/x_ite/Components/Rendering/Color.js +0 -163
- package/src/x_ite/Components/Rendering/ColorRGBA.js +0 -166
- package/src/x_ite/Components/Rendering/Coordinate.js +0 -97
- package/src/x_ite/Components/Rendering/IndexedLineSet.js +0 -307
- package/src/x_ite/Components/Rendering/IndexedTriangleFanSet.js +0 -165
- package/src/x_ite/Components/Rendering/IndexedTriangleSet.js +0 -122
- package/src/x_ite/Components/Rendering/IndexedTriangleStripSet.js +0 -173
- package/src/x_ite/Components/Rendering/LineSet.js +0 -240
- package/src/x_ite/Components/Rendering/Normal.js +0 -193
- package/src/x_ite/Components/Rendering/PointSet.js +0 -222
- package/src/x_ite/Components/Rendering/TriangleFanSet.js +0 -147
- package/src/x_ite/Components/Rendering/TriangleSet.js +0 -117
- package/src/x_ite/Components/Rendering/TriangleStripSet.js +0 -151
- package/src/x_ite/Components/Rendering/X3DColorNode.js +0 -88
- package/src/x_ite/Components/Rendering/X3DComposedGeometryNode.js +0 -363
- package/src/x_ite/Components/Rendering/X3DCoordinateNode.js +0 -193
- package/src/x_ite/Components/Rendering/X3DGeometricPropertyNode.js +0 -74
- package/src/x_ite/Components/Rendering/X3DGeometryNode.js +0 -1189
- package/src/x_ite/Components/Rendering/X3DLineGeometryNode.js +0 -489
- package/src/x_ite/Components/Rendering/X3DNormalNode.js +0 -74
- package/src/x_ite/Components/Rendering/X3DPointGeometryNode.js +0 -182
- package/src/x_ite/Components/Rendering.js +0 -99
- package/src/x_ite/Components/RigidBodyPhysics/BallJoint.js +0 -210
- package/src/x_ite/Components/RigidBodyPhysics/CollidableOffset.js +0 -261
- package/src/x_ite/Components/RigidBodyPhysics/CollidableShape.js +0 -497
- package/src/x_ite/Components/RigidBodyPhysics/CollisionCollection.js +0 -214
- package/src/x_ite/Components/RigidBodyPhysics/CollisionSensor.js +0 -281
- package/src/x_ite/Components/RigidBodyPhysics/CollisionSpace.js +0 -180
- package/src/x_ite/Components/RigidBodyPhysics/Contact.js +0 -118
- package/src/x_ite/Components/RigidBodyPhysics/DoubleAxisHingeJoint.js +0 -292
- package/src/x_ite/Components/RigidBodyPhysics/MotorJoint.js +0 -132
- package/src/x_ite/Components/RigidBodyPhysics/RigidBody.js +0 -518
- package/src/x_ite/Components/RigidBodyPhysics/RigidBodyCollection.js +0 -389
- package/src/x_ite/Components/RigidBodyPhysics/SingleAxisHingeJoint.js +0 -251
- package/src/x_ite/Components/RigidBodyPhysics/SliderJoint.js +0 -230
- package/src/x_ite/Components/RigidBodyPhysics/UniversalJoint.js +0 -114
- package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollidableNode.js +0 -167
- package/src/x_ite/Components/RigidBodyPhysics/X3DNBodyCollisionSpaceNode.js +0 -89
- package/src/x_ite/Components/RigidBodyPhysics/X3DRigidJointNode.js +0 -221
- package/src/x_ite/Components/Scripting/Script.js +0 -510
- package/src/x_ite/Components/Scripting/X3DScriptNode.js +0 -89
- package/src/x_ite/Components/Shaders/ComposedShader.js +0 -228
- package/src/x_ite/Components/Shaders/FloatVertexAttribute.js +0 -151
- package/src/x_ite/Components/Shaders/Matrix3VertexAttribute.js +0 -142
- package/src/x_ite/Components/Shaders/Matrix4VertexAttribute.js +0 -141
- package/src/x_ite/Components/Shaders/PackagedShader.js +0 -129
- package/src/x_ite/Components/Shaders/ProgramShader.js +0 -99
- package/src/x_ite/Components/Shaders/ShaderPart.js +0 -238
- package/src/x_ite/Components/Shaders/ShaderProgram.js +0 -126
- package/src/x_ite/Components/Shaders/X3DProgrammableShaderObject.js +0 -1357
- package/src/x_ite/Components/Shaders/X3DShaderNode.js +0 -105
- package/src/x_ite/Components/Shaders/X3DVertexAttributeNode.js +0 -89
- package/src/x_ite/Components/Shaders.js +0 -79
- package/src/x_ite/Components/Shape/AcousticProperties.js +0 -100
- package/src/x_ite/Components/Shape/Appearance.js +0 -458
- package/src/x_ite/Components/Shape/FillProperties.js +0 -181
- package/src/x_ite/Components/Shape/LineProperties.js +0 -184
- package/src/x_ite/Components/Shape/Material.js +0 -412
- package/src/x_ite/Components/Shape/PhysicalMaterial.js +0 -308
- package/src/x_ite/Components/Shape/PointProperties.js +0 -169
- package/src/x_ite/Components/Shape/Shape.js +0 -205
- package/src/x_ite/Components/Shape/TwoSidedMaterial.js +0 -292
- package/src/x_ite/Components/Shape/UnlitMaterial.js +0 -142
- package/src/x_ite/Components/Shape/X3DAppearanceChildNode.js +0 -74
- package/src/x_ite/Components/Shape/X3DAppearanceNode.js +0 -88
- package/src/x_ite/Components/Shape/X3DMaterialNode.js +0 -350
- package/src/x_ite/Components/Shape/X3DOneSidedMaterialNode.js +0 -212
- package/src/x_ite/Components/Shape/X3DShapeNode.js +0 -211
- package/src/x_ite/Components/Shape.js +0 -87
- package/src/x_ite/Components/Sound/Analyser.js +0 -118
- package/src/x_ite/Components/Sound/AudioClip.js +0 -212
- package/src/x_ite/Components/Sound/AudioDestination.js +0 -107
- package/src/x_ite/Components/Sound/BiquadFilter.js +0 -117
- package/src/x_ite/Components/Sound/BufferAudioSource.js +0 -142
- package/src/x_ite/Components/Sound/ChannelMerger.js +0 -104
- package/src/x_ite/Components/Sound/ChannelSelector.js +0 -105
- package/src/x_ite/Components/Sound/ChannelSplitter.js +0 -105
- package/src/x_ite/Components/Sound/Convolver.js +0 -115
- package/src/x_ite/Components/Sound/Delay.js +0 -115
- package/src/x_ite/Components/Sound/DynamicsCompressor.js +0 -119
- package/src/x_ite/Components/Sound/Gain.js +0 -113
- package/src/x_ite/Components/Sound/ListenerPointSource.js +0 -116
- package/src/x_ite/Components/Sound/MicrophoneSource.js +0 -110
- package/src/x_ite/Components/Sound/OscillatorSource.js +0 -112
- package/src/x_ite/Components/Sound/PeriodicWave.js +0 -99
- package/src/x_ite/Components/Sound/Sound.js +0 -302
- package/src/x_ite/Components/Sound/SpatialSound.js +0 -116
- package/src/x_ite/Components/Sound/StreamAudioDestination.js +0 -107
- package/src/x_ite/Components/Sound/StreamAudioSource.js +0 -110
- package/src/x_ite/Components/Sound/WaveShaper.js +0 -115
- package/src/x_ite/Components/Sound/X3DSoundChannelNode.js +0 -74
- package/src/x_ite/Components/Sound/X3DSoundDestinationNode.js +0 -74
- package/src/x_ite/Components/Sound/X3DSoundNode.js +0 -74
- package/src/x_ite/Components/Sound/X3DSoundProcessingNode.js +0 -92
- package/src/x_ite/Components/Sound/X3DSoundSourceNode.js +0 -227
- package/src/x_ite/Components/Sound.js +0 -109
- package/src/x_ite/Components/Text/FontStyle.js +0 -116
- package/src/x_ite/Components/Text/Text.js +0 -185
- package/src/x_ite/Components/Text/X3DFontStyleNode.js +0 -261
- package/src/x_ite/Components/TextureProjector/TextureProjector.js +0 -213
- package/src/x_ite/Components/TextureProjector/TextureProjectorParallel.js +0 -268
- package/src/x_ite/Components/TextureProjector/X3DTextureProjectorNode.js +0 -224
- package/src/x_ite/Components/Texturing/ImageTexture.js +0 -294
- package/src/x_ite/Components/Texturing/MovieTexture.js +0 -287
- package/src/x_ite/Components/Texturing/MultiTexture.js +0 -345
- package/src/x_ite/Components/Texturing/MultiTextureCoordinate.js +0 -200
- package/src/x_ite/Components/Texturing/MultiTextureTransform.js +0 -154
- package/src/x_ite/Components/Texturing/PixelTexture.js +0 -284
- package/src/x_ite/Components/Texturing/TextureCoordinate.js +0 -179
- package/src/x_ite/Components/Texturing/TextureCoordinateGenerator.js +0 -163
- package/src/x_ite/Components/Texturing/TextureProperties.js +0 -226
- package/src/x_ite/Components/Texturing/TextureTransform.js +0 -162
- package/src/x_ite/Components/Texturing/X3DSingleTextureCoordinateNode.js +0 -101
- package/src/x_ite/Components/Texturing/X3DSingleTextureNode.js +0 -195
- package/src/x_ite/Components/Texturing/X3DSingleTextureTransformNode.js +0 -99
- package/src/x_ite/Components/Texturing/X3DTexture2DNode.js +0 -172
- package/src/x_ite/Components/Texturing/X3DTextureCoordinateNode.js +0 -74
- package/src/x_ite/Components/Texturing/X3DTextureNode.js +0 -88
- package/src/x_ite/Components/Texturing/X3DTextureTransformNode.js +0 -74
- package/src/x_ite/Components/Texturing.js +0 -91
- package/src/x_ite/Components/Texturing3D/ComposedTexture3D.js +0 -201
- package/src/x_ite/Components/Texturing3D/ImageTexture3D.js +0 -183
- package/src/x_ite/Components/Texturing3D/ImageTextureAtlas.js +0 -245
- package/src/x_ite/Components/Texturing3D/PixelTexture3D.js +0 -221
- package/src/x_ite/Components/Texturing3D/TextureCoordinate3D.js +0 -179
- package/src/x_ite/Components/Texturing3D/TextureCoordinate4D.js +0 -179
- package/src/x_ite/Components/Texturing3D/TextureTransform3D.js +0 -151
- package/src/x_ite/Components/Texturing3D/TextureTransformMatrix3D.js +0 -114
- package/src/x_ite/Components/Texturing3D/X3DTexture3DNode.js +0 -173
- package/src/x_ite/Components/Time/TimeSensor.js +0 -223
- package/src/x_ite/Components/Time/X3DTimeDependentNode.js +0 -369
- package/src/x_ite/Components/Time.js +0 -61
- package/src/x_ite/Components/VolumeRendering/BlendedVolumeStyle.js +0 -355
- package/src/x_ite/Components/VolumeRendering/BoundaryEnhancementVolumeStyle.js +0 -154
- package/src/x_ite/Components/VolumeRendering/CartoonVolumeStyle.js +0 -311
- package/src/x_ite/Components/VolumeRendering/ComposedVolumeStyle.js +0 -204
- package/src/x_ite/Components/VolumeRendering/EdgeEnhancementVolumeStyle.js +0 -180
- package/src/x_ite/Components/VolumeRendering/IsoSurfaceVolumeData.js +0 -367
- package/src/x_ite/Components/VolumeRendering/OpacityMapVolumeStyle.js +0 -179
- package/src/x_ite/Components/VolumeRendering/ProjectionVolumeStyle.js +0 -230
- package/src/x_ite/Components/VolumeRendering/SegmentedVolumeData.js +0 -280
- package/src/x_ite/Components/VolumeRendering/ShadedVolumeStyle.js +0 -280
- package/src/x_ite/Components/VolumeRendering/SilhouetteEnhancementVolumeStyle.js +0 -179
- package/src/x_ite/Components/VolumeRendering/ToneMappedVolumeStyle.js +0 -186
- package/src/x_ite/Components/VolumeRendering/VolumeData.js +0 -214
- package/src/x_ite/Components/VolumeRendering/X3DComposableVolumeRenderStyleNode.js +0 -74
- package/src/x_ite/Components/VolumeRendering/X3DVolumeDataNode.js +0 -241
- package/src/x_ite/Components/VolumeRendering/X3DVolumeRenderStyleNode.js +0 -138
- package/src/x_ite/Components/X_ITE/BlendMode.js +0 -206
- package/src/x_ite/Components.js +0 -99
- package/src/x_ite/Configuration/AbstractNodes.js +0 -50
- package/src/x_ite/Configuration/AbstractNodesArray.js +0 -78
- package/src/x_ite/Configuration/ComponentInfo.js +0 -137
- package/src/x_ite/Configuration/ComponentInfoArray.js +0 -76
- package/src/x_ite/Configuration/ConcreteNodes.js +0 -50
- package/src/x_ite/Configuration/ConcreteNodesArray.js +0 -87
- package/src/x_ite/Configuration/ProfileInfo.js +0 -92
- package/src/x_ite/Configuration/ProfileInfoArray.js +0 -77
- package/src/x_ite/Configuration/SupportedComponents.js +0 -307
- package/src/x_ite/Configuration/SupportedProfiles.js +0 -245
- package/src/x_ite/Configuration/UnitInfo.js +0 -158
- package/src/x_ite/Configuration/UnitInfoArray.js +0 -70
- package/src/x_ite/DEVELOPMENT.js +0 -50
- package/src/x_ite/Execution/BindableList.js +0 -203
- package/src/x_ite/Execution/BindableStack.js +0 -163
- package/src/x_ite/Execution/ExportedNodesArray.js +0 -70
- package/src/x_ite/Execution/ImportedNodesArray.js +0 -70
- package/src/x_ite/Execution/NamedNodesArray.js +0 -70
- package/src/x_ite/Execution/NamedNodesHandling.js +0 -84
- package/src/x_ite/Execution/X3DExecutionContext.js +0 -1022
- package/src/x_ite/Execution/X3DExportedNode.js +0 -201
- package/src/x_ite/Execution/X3DImportedNode.js +0 -565
- package/src/x_ite/Execution/X3DScene.js +0 -1112
- package/src/x_ite/Execution/X3DWorld.js +0 -160
- package/src/x_ite/Features.js +0 -59
- package/src/x_ite/Fields/ArrayFields.js +0 -492
- package/src/x_ite/Fields/SFBool.js +0 -104
- package/src/x_ite/Fields/SFColor.js +0 -231
- package/src/x_ite/Fields/SFColorRGBA.js +0 -198
- package/src/x_ite/Fields/SFDouble.js +0 -108
- package/src/x_ite/Fields/SFFloat.js +0 -108
- package/src/x_ite/Fields/SFImage.js +0 -370
- package/src/x_ite/Fields/SFInt32.js +0 -104
- package/src/x_ite/Fields/SFMatrix3.js +0 -140
- package/src/x_ite/Fields/SFMatrix4.js +0 -133
- package/src/x_ite/Fields/SFMatrixPrototypeTemplate.js +0 -191
- package/src/x_ite/Fields/SFNode.js +0 -435
- package/src/x_ite/Fields/SFNodeCache.js +0 -108
- package/src/x_ite/Fields/SFRotation.js +0 -275
- package/src/x_ite/Fields/SFString.js +0 -134
- package/src/x_ite/Fields/SFTime.js +0 -104
- package/src/x_ite/Fields/SFVec2.js +0 -120
- package/src/x_ite/Fields/SFVec3.js +0 -140
- package/src/x_ite/Fields/SFVec4.js +0 -148
- package/src/x_ite/Fields/SFVecPrototypeTemplate.js +0 -201
- package/src/x_ite/Fields.js +0 -87
- package/src/x_ite/InputOutput/FileLoader.js +0 -340
- package/src/x_ite/InputOutput/Generator.js +0 -592
- package/src/x_ite/Namespace.js +0 -52
- package/src/x_ite/Parser/Expressions.js +0 -85
- package/src/x_ite/Parser/GLB2Parser.js +0 -146
- package/src/x_ite/Parser/GLTF2Parser.js +0 -2800
- package/src/x_ite/Parser/GoldenGate.js +0 -163
- package/src/x_ite/Parser/HTMLSupport.js +0 -74
- package/src/x_ite/Parser/JSONParser.js +0 -414
- package/src/x_ite/Parser/OBJParser.js +0 -1091
- package/src/x_ite/Parser/PLYAParser.js +0 -615
- package/src/x_ite/Parser/PLYBParser.js +0 -222
- package/src/x_ite/Parser/STLAParser.js +0 -377
- package/src/x_ite/Parser/STLBParser.js +0 -155
- package/src/x_ite/Parser/SVGParser.js +0 -2762
- package/src/x_ite/Parser/VRMLParser.js +0 -2548
- package/src/x_ite/Parser/X3DOptimizer.js +0 -220
- package/src/x_ite/Parser/X3DParser.js +0 -152
- package/src/x_ite/Parser/XMLParser.js +0 -1189
- package/src/x_ite/Prototype/ExternProtoDeclarationArray.js +0 -70
- package/src/x_ite/Prototype/ProtoDeclarationArray.js +0 -70
- package/src/x_ite/Prototype/X3DExternProtoDeclaration.js +0 -446
- package/src/x_ite/Prototype/X3DProtoDeclaration.js +0 -571
- package/src/x_ite/Prototype/X3DProtoDeclarationNode.js +0 -112
- package/src/x_ite/Rendering/DependentRenderer.js +0 -132
- package/src/x_ite/Rendering/MultiSampleFrameBuffer.js +0 -394
- package/src/x_ite/Rendering/PointingBuffer.js +0 -189
- package/src/x_ite/Rendering/TextureBuffer.js +0 -231
- package/src/x_ite/Rendering/TraverseType.js +0 -60
- package/src/x_ite/Rendering/VertexArray.js +0 -95
- package/src/x_ite/Rendering/X3DRenderObject.js +0 -1144
- package/src/x_ite/Routing/RouteArray.js +0 -70
- package/src/x_ite/Routing/X3DRoute.js +0 -316
- package/src/x_ite/Routing/X3DRoutingContext.js +0 -116
- package/src/x_ite/X3D.js +0 -250
- package/src/x_ite/X3DCanvasElement.js +0 -126
- package/src/x_ite.css +0 -587
- package/src/x_ite.html +0 -470
- package/src/x_ite.js +0 -60
- package/webpack.config.js +0 -341
- package/x_ite.min.html +0 -451
|
@@ -1,11 +1,11 @@
|
|
|
1
|
-
/* X_ITE v8.11.
|
|
1
|
+
/* X_ITE v8.11.9 */(() => { // 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.
|
|
8
|
+
module.exports = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
76
|
+
const Components_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
79
|
+
const Fields_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
82
|
+
const X3DFieldDefinition_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
85
|
+
const FieldDefinitionArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
88
|
+
const X3DNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
91
|
+
const Namespace_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
158
|
+
const X3DConstants_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
626
|
+
const Vector3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
947
|
+
const X3DCast_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1521
|
+
const X3DShapeNode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1524
|
+
const GeometryContext_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1527
|
+
const VertexArray_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1530
|
+
const TraverseType_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1533
|
+
const AlphaMode_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1536
|
+
const Matrix4_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1539
|
+
const Matrix3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
1542
|
+
const Plane3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
3126
|
+
const IndexedLineSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
3378
|
+
const Triangle3_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
3638
|
+
const IndexedFaceSet_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.
|
|
3935
|
+
const Algorithm_namespaceObject = window [Symbol .for ("X_ITE.X3D-8.11.9")] .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.7 */(()=>{"use strict";var e={355:e=>{e.exports=window[Symbol.for("X_ITE.X3D-8.11.7")].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.7")].require("x_ite/Components");var t=i.n(e);const n=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Fields");var o=i.n(n);const r=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Base/X3DFieldDefinition");var s=i.n(r);const a=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Base/FieldDefinitionArray");var c=i.n(a);const l=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Components/Core/X3DNode");var u=i.n(l);const d=window[Symbol.for("X_ITE.X3D-8.11.7")].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.7")].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.7")].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.7")].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.7")].require("x_ite/Components/Shape/X3DShapeNode");var ie=i.n(te);const ne=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Browser/Rendering/GeometryContext");var oe=i.n(ne);const re=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Rendering/VertexArray");var se=i.n(re);const ae=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Rendering/TraverseType");var ce=i.n(ae);const le=window[Symbol.for("X_ITE.X3D-8.11.7")].require("x_ite/Browser/Shape/AlphaMode");var ue=i.n(le);const de=window[Symbol.for("X_ITE.X3D-8.11.7")].require("standard/Math/Numbers/Matrix4");var me=i.n(de);const he=window[Symbol.for("X_ITE.X3D-8.11.7")].require("standard/Math/Numbers/Matrix3");var pe=i.n(he);const fe=window[Symbol.for("X_ITE.X3D-8.11.7")].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.7")].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.7")].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.7")].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.7")].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.9 */(()=>{"use strict";var e={355:e=>{e.exports=window[Symbol.for("X_ITE.X3D-8.11.9")].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.9")].require("x_ite/Components");var t=i.n(e);const n=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Fields");var o=i.n(n);const r=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Base/X3DFieldDefinition");var s=i.n(r);const a=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Base/FieldDefinitionArray");var c=i.n(a);const l=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Components/Core/X3DNode");var u=i.n(l);const d=window[Symbol.for("X_ITE.X3D-8.11.9")].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.9")].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.9")].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.9")].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.9")].require("x_ite/Components/Shape/X3DShapeNode");var ie=i.n(te);const ne=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Browser/Rendering/GeometryContext");var oe=i.n(ne);const re=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Rendering/VertexArray");var se=i.n(re);const ae=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Rendering/TraverseType");var ce=i.n(ae);const le=window[Symbol.for("X_ITE.X3D-8.11.9")].require("x_ite/Browser/Shape/AlphaMode");var ue=i.n(le);const de=window[Symbol.for("X_ITE.X3D-8.11.9")].require("standard/Math/Numbers/Matrix4");var me=i.n(de);const he=window[Symbol.for("X_ITE.X3D-8.11.9")].require("standard/Math/Numbers/Matrix3");var pe=i.n(he);const fe=window[Symbol.for("X_ITE.X3D-8.11.9")].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.9")].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.9")].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.9")].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.9")].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)})()})();
|