@realsee/five-webgpu 1.0.0-alpha.13 → 1.0.0-alpha.15
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/_virtual/_rolldown/runtime.js +3 -3
- package/docs/assets/hierarchy.js +1 -1
- package/docs/assets/navigation.js +1 -1
- package/docs/assets/search.js +1 -1
- package/docs/classes/index.AdaptiveLuminancePass.html +1 -1
- package/docs/classes/index.BoundingMesh.html +1 -1
- package/docs/classes/index.Camera.html +1 -1
- package/docs/classes/index.EyeDomeLightingPass.html +1 -1
- package/docs/classes/index.Five.html +65 -64
- package/docs/classes/index.FivePass.html +1 -1
- package/docs/classes/index.FiveRenderer.html +4 -4
- package/docs/classes/index.FlowingFireworks3DPass.html +1 -1
- package/docs/classes/index.FlowingLight2DPass.html +1 -1
- package/docs/classes/index.FlowingLight3DPass.html +1 -1
- package/docs/classes/index.GaussianBlurPass.html +1 -1
- package/docs/classes/index.InternalWebGPURenderer.html +4 -4
- package/docs/classes/index.Model.html +1 -1
- package/docs/classes/index.ModelScene.html +1 -1
- package/docs/classes/index.NetworkSubscribe.html +1 -1
- package/docs/classes/index.PBMCustomNode.html +1 -1
- package/docs/classes/index.PBMGaussianSplattingNodeMaterial.html +1 -1
- package/docs/classes/index.PBMGaussianSplattingObject.html +1 -1
- package/docs/classes/index.PBMGaussianSplattingRenderMesh.html +1 -1
- package/docs/classes/index.PBMGroup.html +1 -1
- package/docs/classes/index.PBMMesh.html +1 -1
- package/docs/classes/index.PBMMeshBasicMaterial.html +1 -1
- package/docs/classes/index.PBMMeshBasicNodeMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPanoOnlyMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPanoOnlyNodeMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhongMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhongNodeMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhysicalMaterial.html +1 -1
- package/docs/classes/index.PBMMeshPhysicalNodeMaterial.html +1 -1
- package/docs/classes/index.PBMPanoFilter.html +1 -1
- package/docs/classes/index.PBMPointCloud.html +1 -1
- package/docs/classes/index.PBMPointCloudMaterial.html +1 -1
- package/docs/classes/index.PBMSkinnedMesh.html +1 -1
- package/docs/classes/index.PBMUpdateable.html +1 -1
- package/docs/classes/index.PanoCircleMesh.html +9 -5
- package/docs/classes/index.PanoCircleMeshCustom.html +9 -5
- package/docs/classes/index.PanoCircleMeshSolid.html +9 -5
- package/docs/classes/index.Parameter.html +1 -1
- package/docs/classes/index.Scene.html +1 -1
- package/docs/classes/index.Subscribe.html +1 -1
- package/docs/classes/index.Tile3D.html +1 -1
- package/docs/classes/index.TileNode.html +1 -1
- package/docs/classes/index.TrajectoryNode.html +1 -1
- package/docs/classes/index.Work.html +15 -22
- package/docs/classes/index.WorkResolvedObserver.html +22 -22
- package/docs/functions/index.createWorks.html +1 -1
- package/docs/functions/index.parseWork.html +1 -1
- package/docs/hierarchy.html +1 -1
- package/docs/interfaces/index.AddableObject.html +1 -1
- package/docs/interfaces/index.AjaxOptions.html +1 -1
- package/docs/interfaces/index.BaseEvent.html +1 -1
- package/docs/interfaces/index.Clock.html +1 -1
- package/docs/interfaces/index.EventCallback.html +3 -3
- package/docs/interfaces/index.GestureEvent.html +1 -1
- package/docs/interfaces/index.IPBMMaterial.html +1 -1
- package/docs/interfaces/index.ImageOptions.html +1 -1
- package/docs/interfaces/index.IntersectEvent.html +1 -1
- package/docs/interfaces/index.IntersectMesh.html +1 -1
- package/docs/interfaces/index.IntersectMeshInterface.html +1 -1
- package/docs/interfaces/index.Intersection.html +1 -1
- package/docs/interfaces/index.LooseWorkObserver.html +2 -2
- package/docs/interfaces/index.LooseWorkPanorama.html +2 -2
- package/docs/interfaces/index.LooseWorkWithExtrinsics.html +8 -8
- package/docs/interfaces/index.ModeChangeEvent.html +1 -1
- package/docs/interfaces/index.ModelControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ModelEvent.html +1 -1
- package/docs/interfaces/index.ModelSceneEvent.html +1 -1
- package/docs/interfaces/index.ModelTileEvent.html +1 -1
- package/docs/interfaces/index.MovePanoOptions.html +1 -1
- package/docs/interfaces/index.NetworkAbortError.html +1 -1
- package/docs/interfaces/index.NetworkFirbiddenError.html +1 -1
- package/docs/interfaces/index.NetworkOptions.html +1 -1
- package/docs/interfaces/index.NetworkProxyError.html +1 -1
- package/docs/interfaces/index.NetworkResourceEvent.html +1 -1
- package/docs/interfaces/index.NetworkResponseError.html +1 -1
- package/docs/interfaces/index.NetworkTimeoutError.html +1 -1
- package/docs/interfaces/index.ObjectEvent.html +1 -1
- package/docs/interfaces/index.PanoCircleMeshInterface.html +8 -4
- package/docs/interfaces/index.PanoCircleMeshOptions.html +2 -2
- package/docs/interfaces/index.PanoCircleMeshSolidOptions.html +2 -2
- package/docs/interfaces/index.PanoEvent.html +1 -1
- package/docs/interfaces/index.PanoPrepareEvent.html +1 -1
- package/docs/interfaces/index.PanoTextureEvent.html +1 -1
- package/docs/interfaces/index.PanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.PanoramaLikeControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ParameterMaterialValue.html +1 -1
- package/docs/interfaces/index.ParameterTilesetValue.html +1 -1
- package/docs/interfaces/index.ParameterValue.html +1 -1
- package/docs/interfaces/index.Pose.html +1 -1
- package/docs/interfaces/index.RenderEvent.html +1 -1
- package/docs/interfaces/index.ResolvedParameterValue.html +1 -1
- package/docs/interfaces/index.State.html +1 -1
- package/docs/interfaces/index.StateEvent.html +1 -1
- package/docs/interfaces/index.TextureOptions.html +1 -1
- package/docs/interfaces/index.TopviewControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.VRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.ViewLayer.html +1 -1
- package/docs/interfaces/index.WorkCubeHdrGainmapImage.html +2 -2
- package/docs/interfaces/index.WorkCubeImage.html +2 -2
- package/docs/interfaces/index.WorkImage.html +5 -5
- package/docs/interfaces/index.WorkInitial.html +8 -8
- package/docs/interfaces/index.WorkInitialJson.html +2 -2
- package/docs/interfaces/index.WorkJson.html +2 -4
- package/docs/interfaces/index.WorkModel.html +8 -8
- package/docs/interfaces/index.WorkModelJson.html +2 -2
- package/docs/interfaces/index.WorkModelLayer.html +6 -6
- package/docs/interfaces/index.WorkModelLayerJson.html +2 -2
- package/docs/interfaces/index.WorkObserver.html +23 -23
- package/docs/interfaces/index.WorkObserverJson.html +2 -2
- package/docs/interfaces/index.WorkPanoramaJson.html +2 -2
- package/docs/interfaces/index.WorkPanoramasJson.html +2 -2
- package/docs/interfaces/index.WorkTile.html +5 -5
- package/docs/interfaces/index.WorkVideo.html +4 -4
- package/docs/interfaces/index.WorksEvent.html +1 -1
- package/docs/interfaces/index.XRControllerEvent.html +1 -1
- package/docs/interfaces/index.XRGestureEvent.html +2 -2
- package/docs/interfaces/index.XRPanoramaControllerCustomInitArgs.html +1 -1
- package/docs/interfaces/index.XRSessionEvent.html +1 -1
- package/docs/modules/index.html +1 -1
- package/docs/types/index.LegacyEventType.html +3 -3
- package/docs/types/index.OutputTextureDataType.html +1 -1
- package/docs/types/index.ParseOptions.html +8 -8
- package/docs/types/index.PointCloudTransparencyMode.html +2 -0
- package/docs/types/index.Works.html +1 -1
- package/docs/variables/index.loadAt3d.html +2 -0
- package/docs/variables/index.loadDome.html +2 -0
- package/docs/variables/index.loadDomez.html +2 -0
- package/docs/variables/index.loadGltf.html +2 -0
- package/docs/variables/index.loadPbm.html +2 -0
- package/docs/variables/index.loadPly.html +2 -0
- package/five/application/five.d.ts +3 -2
- package/five/chunks/at3d.js +338 -0
- package/five/chunks/at3d.mjs +338 -0
- package/five/chunks/dome.js +338 -0
- package/five/chunks/dome.mjs +338 -0
- package/five/chunks/domez.js +338 -0
- package/five/chunks/domez.mjs +338 -0
- package/five/chunks/fbx.js +338 -0
- package/five/chunks/fbx.mjs +338 -0
- package/five/chunks/fflate.js +338 -0
- package/five/chunks/fflate.mjs +338 -0
- package/five/chunks/glTF-helpers.js +804 -0
- package/five/chunks/glTF-helpers.mjs +804 -0
- package/five/chunks/gltf.js +338 -0
- package/five/chunks/gltf.mjs +338 -0
- package/five/chunks/imageBitmap.js +338 -0
- package/five/chunks/imageBitmap.mjs +338 -0
- package/five/chunks/imageSupport.js +338 -0
- package/five/chunks/imageSupport.mjs +338 -0
- package/five/chunks/lzma.js +383 -0
- package/five/chunks/lzma.mjs +383 -0
- package/five/chunks/memoryUsage.js +339 -0
- package/five/chunks/memoryUsage.mjs +339 -0
- package/five/chunks/minimal.js +338 -0
- package/five/chunks/minimal.mjs +338 -0
- package/five/chunks/pbm.js +338 -0
- package/five/chunks/pbm.mjs +338 -0
- package/five/chunks/pbmGaussianSplattingObject.js +338 -0
- package/five/chunks/pbmGaussianSplattingObject.mjs +338 -0
- package/five/chunks/pbmMeshMaterial.js +338 -0
- package/five/chunks/pbmMeshMaterial.mjs +338 -0
- package/five/chunks/pick.js +338 -0
- package/five/chunks/pick.mjs +338 -0
- package/five/chunks/ply.js +339 -0
- package/five/chunks/ply.mjs +339 -0
- package/five/chunks/spz.js +364 -0
- package/five/chunks/spz.mjs +364 -0
- package/five/controllers/panorama.d.ts +6 -0
- package/five/core/webglBlendEquationFix.d.ts +41 -0
- package/five/index.d.ts +0 -1
- package/five/index.js +49 -626
- package/five/index.mjs +229 -32052
- package/five/meshes/panoCircleMesh.d.ts +1 -0
- package/five/meshes/panoCircleMeshCustom.d.ts +1 -0
- package/five/meshes/panoCircleMeshSolid.d.ts +1 -0
- package/five/meshes/panoSphereMesh.d.ts +1 -0
- package/five/model/index.d.ts +18 -6
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz.d.ts +1 -1
- package/five/model/loaders/glTF-helpers/extensions/KHR_gaussian_splatting_compression_spz_2.d.ts +1 -1
- package/five/model/loaders/spz.d.ts +1 -2
- package/five/model/loaders/spz.worker.d.ts +37 -0
- package/five/renderer/five-renderer.d.ts +1 -1
- package/five/renderer/index.d.ts +1 -1
- package/five/renderer/postprocessing/passes/pass.js +3 -3
- package/five/renderer/postprocessing/passes/pass.mjs +3 -3
- package/five/renderer/tools/full-screen-quad.js +3 -3
- package/five/renderer/tools/full-screen-quad.mjs +3 -3
- package/five/texture/initTexture.d.ts +8 -0
- package/five/texture/videoTextureBridge.d.ts +124 -15
- package/five/thirdparty/sha256.d.ts +149 -0
- package/five/types/panoCircleMeshInterface.d.ts +6 -0
- package/five/utils/calculateThreeMouse.js +3 -3
- package/five/utils/calculateThreeMouse.mjs +3 -3
- package/five/utils/distance.js +3 -3
- package/five/utils/distance.mjs +3 -3
- package/five/utils/isNil.js +3 -3
- package/five/utils/isNil.mjs +3 -3
- package/five/utils/memoryUsage.d.ts +1 -1
- package/five/utils/uuid.js +3 -3
- package/five/utils/uuid.mjs +3 -3
- package/five/work/looseWorkType.d.ts +2 -2
- package/five/work/work.d.ts +1 -8
- package/five/work/workJsonType.d.ts +2 -4
- package/gltf-loader/index.js +3 -3
- package/gltf-loader/index.mjs +3 -50
- package/line/index.js +3 -3
- package/line/index.mjs +3 -88
- package/package.json +1 -1
- package/plugins/BackgroundPlugin/Controller.js +4 -4
- package/plugins/BackgroundPlugin/Controller.mjs +4 -4
- package/plugins/BackgroundPlugin/index.js +3 -3
- package/plugins/BackgroundPlugin/index.mjs +3 -3
- package/plugins/BasePlugin/index.js +3 -3
- package/plugins/BasePlugin/index.mjs +3 -3
- package/plugins/CSS2DPlugin/Controller.js +3 -3
- package/plugins/CSS2DPlugin/Controller.mjs +3 -3
- package/plugins/CSS2DPlugin/index.js +3 -3
- package/plugins/CSS2DPlugin/index.mjs +3 -3
- package/plugins/CSS2DPlugin/style.css_raw.js +4 -4
- package/plugins/CSS2DPlugin/style.css_raw.mjs +4 -4
- package/plugins/CSS3DPlugin/Controller.js +3 -3
- package/plugins/CSS3DPlugin/Controller.mjs +3 -3
- package/plugins/CSS3DPlugin/index.js +3 -3
- package/plugins/CSS3DPlugin/index.mjs +3 -3
- package/plugins/CSS3DPlugin/style.css_raw.js +4 -4
- package/plugins/CSS3DPlugin/style.css_raw.mjs +4 -4
- package/plugins/FloorplanPlugin/Controller.js +3 -3
- package/plugins/FloorplanPlugin/Controller.mjs +3 -3
- package/plugins/FloorplanPlugin/index.js +3 -3
- package/plugins/FloorplanPlugin/index.mjs +3 -3
- package/plugins/FloorplanPlugin/render/assets.js +3 -3
- package/plugins/FloorplanPlugin/render/assets.mjs +3 -3
- package/plugins/FloorplanPlugin/render/index.js +3 -3
- package/plugins/FloorplanPlugin/render/index.mjs +3 -3
- package/plugins/FloorplanPlugin/render/isPointInPolygon.js +3 -3
- package/plugins/FloorplanPlugin/render/isPointInPolygon.mjs +3 -3
- package/plugins/FloorplanPlugin/render/renderFloor.js +3 -3
- package/plugins/FloorplanPlugin/render/renderFloor.mjs +3 -3
- package/plugins/FloorplanPlugin/render/roomLabelVisibility.js +3 -3
- package/plugins/FloorplanPlugin/render/roomLabelVisibility.mjs +3 -3
- package/plugins/FloorplanPlugin/render/style.css_raw.js +4 -4
- package/plugins/FloorplanPlugin/render/style.css_raw.mjs +4 -4
- package/plugins/FloorplanPlugin/utils/changeMode.js +3 -3
- package/plugins/FloorplanPlugin/utils/changeMode.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.js +3 -3
- package/plugins/FloorplanPlugin/utils/changeModelCanvasOpacity.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/correctFiveState.js +3 -3
- package/plugins/FloorplanPlugin/utils/correctFiveState.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/equal.js +3 -3
- package/plugins/FloorplanPlugin/utils/equal.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/filter.js +3 -3
- package/plugins/FloorplanPlugin/utils/filter.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/fiveModelLoad.js +3 -3
- package/plugins/FloorplanPlugin/utils/fiveModelLoad.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/formatData.js +3 -3
- package/plugins/FloorplanPlugin/utils/formatData.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/formatFloorplanJson.js +3 -3
- package/plugins/FloorplanPlugin/utils/formatFloorplanJson.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/formatPosition.js +3 -3
- package/plugins/FloorplanPlugin/utils/formatPosition.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/getDistanceFromModel.js +3 -3
- package/plugins/FloorplanPlugin/utils/getDistanceFromModel.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/getPxmm.js +3 -3
- package/plugins/FloorplanPlugin/utils/getPxmm.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/isTruelyObject.js +3 -3
- package/plugins/FloorplanPlugin/utils/isTruelyObject.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/nearlyEqual.js +3 -3
- package/plugins/FloorplanPlugin/utils/nearlyEqual.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/polylabel.js +3 -3
- package/plugins/FloorplanPlugin/utils/polylabel.mjs +3 -3
- package/plugins/FloorplanPlugin/utils/to.js +3 -3
- package/plugins/FloorplanPlugin/utils/to.mjs +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.js +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/Controller.mjs +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/index.js +3 -3
- package/plugins/GaussianSplattingEntranceAnimationPlugin/index.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controller.js +3 -3
- package/plugins/Object3DHelperPlugin/Controller.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BaseController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BaseController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/BoundingBoxController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/MoveController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/MoveController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/RotateController.js +3 -3
- package/plugins/Object3DHelperPlugin/Controllers/RotateController.mjs +3 -3
- package/plugins/Object3DHelperPlugin/FiveControllerWrapper.js +3 -3
- package/plugins/Object3DHelperPlugin/FiveControllerWrapper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BaseHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BaseHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/BoundingBoxHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/MoveHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/MoveHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/Helper/RotateHelper.js +3 -3
- package/plugins/Object3DHelperPlugin/Helper/RotateHelper.mjs +3 -3
- package/plugins/Object3DHelperPlugin/constant.js +3 -3
- package/plugins/Object3DHelperPlugin/constant.mjs +3 -3
- package/plugins/Object3DHelperPlugin/index.js +3 -3
- package/plugins/Object3DHelperPlugin/index.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/ArrowGroup.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/ArrowGroup.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/CenterHandle.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/CenterHandle.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/PlaneHandle.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/PlaneHandle.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/calculateScaleByCamera.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/cameraHooks.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/cameraHooks.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/direction.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/direction.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/getMouseRaycaster.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/getOrthographicCameraDirection.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/setObjectQuaternion.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/solidGuide.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/solidGuide.mjs +3 -3
- package/plugins/Object3DHelperPlugin/utils/tipsDom.js +3 -3
- package/plugins/Object3DHelperPlugin/utils/tipsDom.mjs +3 -3
- package/plugins/PanoAnimePlugin/Controller.js +3 -3
- package/plugins/PanoAnimePlugin/Controller.mjs +3 -3
- package/plugins/PanoAnimePlugin/index.js +3 -3
- package/plugins/PanoAnimePlugin/index.mjs +3 -3
- package/plugins/WordPassPlugin/Controller.js +3 -3
- package/plugins/WordPassPlugin/Controller.mjs +3 -3
- package/plugins/WordPassPlugin/hersheyFont.js +3 -3
- package/plugins/WordPassPlugin/hersheyFont.mjs +3 -3
- package/plugins/WordPassPlugin/index.js +3 -3
- package/plugins/WordPassPlugin/index.mjs +3 -3
- package/plugins/WordPassPlugin/textToStrokeOrderStrokes.js +4 -4
- package/plugins/WordPassPlugin/textToStrokeOrderStrokes.mjs +4 -4
- package/plugins/WordPassPlugin/word-pass.js +3 -3
- package/plugins/WordPassPlugin/word-pass.mjs +3 -3
- package/plugins/index.js +3 -3
- package/plugins/index.mjs +3 -3
- package/plugins/thirdParty/CSS2DRenderer.js +3 -3
- package/plugins/thirdParty/CSS2DRenderer.mjs +3 -3
- package/plugins/thirdParty/CSS3DRenderer.js +3 -3
- package/plugins/thirdParty/CSS3DRenderer.mjs +3 -3
- package/plugins/thirdParty/doctorstrange-model.js +75 -75
- package/plugins/thirdParty/doctorstrange-model.mjs +75 -75
- package/plugins/thirdParty/domevents.js +3 -3
- package/plugins/thirdParty/domevents.mjs +3 -3
- package/plugins/utils/absoluteUrl.js +3 -3
- package/plugins/utils/absoluteUrl.mjs +3 -3
- package/plugins/utils/calculatePath.js +3 -3
- package/plugins/utils/calculatePath.mjs +3 -3
- package/plugins/utils/clamp.js +3 -3
- package/plugins/utils/clamp.mjs +3 -3
- package/plugins/utils/uuid.js +3 -3
- package/plugins/utils/uuid.mjs +3 -3
- package/react/hooks/useFiveModelReadyState.d.ts +1 -1
- package/react/index.js +3 -3
- package/react/index.mjs +3 -644
- package/sticker/index.js +13 -4
- package/sticker/index.mjs +43 -260
- package/umd/five-gltf-loader.js +3 -3
- package/umd/five-line.js +3 -3
- package/umd/five-plugins.js +4 -4
- package/umd/five-react.js +2 -2
- package/umd/five-sticker.js +13 -4
- package/umd/five-vfx.js +2 -2
- package/umd/five.js +152 -190
- package/vfx/index.js +3 -3
- package/vfx/index.mjs +3 -486
- package/work-downloader/index.js +3 -3
- package/work-downloader/index.mjs +3 -315
- package/docs/functions/index.loadAt3d.html +0 -1
- package/docs/functions/index.loadDome.html +0 -1
- package/docs/functions/index.loadDomez.html +0 -1
- package/docs/functions/index.loadGltf.html +0 -1
- package/docs/functions/index.loadPbm.html +0 -1
- package/docs/functions/index.loadPly.html +0 -10
- package/five/certificates/hardware.d.ts +0 -1
- package/five/thirdparty/jsrsasign.d.ts +0 -753
- package/five/work/_ALLOW_HOST.d.ts +0 -2
- package/five/work/keychain.d.ts +0 -5
- package/five/work/verify.d.ts +0 -7
- package/five/work/workVerify.d.ts +0 -2
package/vfx/index.js
CHANGED
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
/**
|
|
2
2
|
* @license
|
|
3
3
|
* @realsee/five-webgpu
|
|
4
|
-
* Generated: 2026/
|
|
5
|
-
* Version: 1.0.0-alpha.
|
|
4
|
+
* Generated: 2026/11/4
|
|
5
|
+
* Version: 1.0.0-alpha.15
|
|
6
6
|
* License:
|
|
7
7
|
* Realsee SDK License Agreement
|
|
8
8
|
|
|
@@ -335,4 +335,4 @@
|
|
|
335
335
|
* writing and signed by Realsee. You and Realsee hereto confirm that this
|
|
336
336
|
* Agreement and all related documents shall be drafted in English.
|
|
337
337
|
|
|
338
|
-
*/Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var e=Object.create,t=Object.defineProperty,n=Object.getOwnPropertyDescriptor,r=Object.getOwnPropertyNames,i=Object.getPrototypeOf,a=Object.prototype.hasOwnProperty,o=(e,i,o,s)=>{if(i&&typeof i==`object`||typeof i==`function`)for(var c=r(i),l=0,u=c.length,d;l<u;l++)d=c[l],!a.call(e,d)&&d!==o&&t(e,d,{get:(e=>i[e]).bind(null,d),enumerable:!(s=n(i,d))||s.enumerable});return e},s=(n,r,a)=>(a=n==null?{}:e(i(n)),o(r||!n||!n.__esModule?t(a,`default`,{value:n,enumerable:!0}):a,n));let c=require("three/webgpu");c=s(c,1);let l=require("three/tsl");var u=(0,l.Fn)(([e])=>(0,l.mod)(e.mul(34).add(1).mul(e),289)),d=(0,l.Fn)(([e])=>(0,l.floor)((0,l.mod)(e.mul(34).add(1).mul(e),289))),f=(0,l.Fn)(([e])=>(0,l.float)(1.79284291400159).sub(e.mul(.85373472095314))),p=(0,l.Fn)(([e])=>(0,l.float)(1.79284291400159).sub(e.mul(.85373472095314))),m=(0,l.Fn)(([e,t])=>{let n=(0,l.vec4)(1,1,1,-1),r=(0,l.vec4)(0,0,0,0).toVar();r.xyz=(0,l.floor)((0,l.vec3)(e,e,e).mul(t.xyz).fract().mul(7)).mul(t.z).sub(1);let i=(0,l.abs)(r.xyz);r.w=(0,l.float)(1.5).sub((0,l.dot)(i,n.xyz));let a=(0,l.float)(1).sub((0,l.step)((0,l.vec4)(0,0,0,0),r));return r.xyz=r.xyz.add(a.xyz.mul(2).sub(1).mul(a.www)),r}),h=(0,l.Fn)(([e])=>{let t=(0,l.vec2)(.1381966011250105,.30901699437494745),n=(0,l.floor)(e.add((0,l.dot)(e,t.yyyy))).toVar(),r=e.sub(n).add((0,l.dot)(n,t.xxxx)).toVar(),i=(0,l.vec4)(0,0,0,0).toVar(),a=(0,l.step)(r.yzw,r.xxx),o=(0,l.step)(r.zww,r.yyz);i.x=a.x.add(a.y).add(a.z),i.yzw=(0,l.float)(1).sub(a),i.y=i.y.add(o.x).add(o.y),i.zw=i.zw.add((0,l.float)(1).sub(o.xy)),i.z=i.z.add(o.z),i.w=i.w.add((0,l.float)(1).sub(o.z));let s=i.clamp(0,1),c=i.sub(1).clamp(0,1),h=i.sub(2).clamp(0,1),g=r.sub(h).add(t.xxxx.mul(1)),_=r.sub(c).add(t.xxxx.mul(2)),v=r.sub(s).add(t.xxxx.mul(3)),y=r.sub(1).add(t.xxxx.mul(4)),b=(0,l.mod)(n,289),x=d(d(d(d(b.w).add(b.z)).add(b.y)).add(b.x)),S=u(u(u(u(b.w.add((0,l.vec4)(h.w,c.w,s.w,1))).add(b.z).add((0,l.vec4)(h.z,c.z,s.z,1))).add(b.y).add((0,l.vec4)(h.y,c.y,s.y,1))).add(b.x).add((0,l.vec4)(h.x,c.x,s.x,1))),C=(0,l.vec4)(1/294,1/49,1/7,0),w=m(x,C).toVar(),T=m(S.x,C).toVar(),E=m(S.y,C).toVar(),D=m(S.z,C).toVar(),O=m(S.w,C).toVar(),k=f((0,l.vec4)((0,l.dot)(w,w),(0,l.dot)(T,T),(0,l.dot)(E,E),(0,l.dot)(D,D)));w.assign(w.mul(k.x)),T.assign(T.mul(k.y)),E.assign(E.mul(k.z)),D.assign(D.mul(k.w)),O.assign(O.mul(p((0,l.dot)(O,O))));let A=(0,l.max)((0,l.float)(.6).sub((0,l.vec3)((0,l.dot)(r,r),(0,l.dot)(g,g),(0,l.dot)(_,_))),(0,l.vec3)(0,0,0)),j=(0,l.max)((0,l.float)(.6).sub((0,l.vec2)((0,l.dot)(v,v),(0,l.dot)(y,y))),(0,l.vec2)(0,0)),M=A.mul(A),N=j.mul(j);return(0,l.float)(49).mul((0,l.dot)(M.mul(M),(0,l.vec3)((0,l.dot)(w,r),(0,l.dot)(T,g),(0,l.dot)(E,_))).add((0,l.dot)(N.mul(N),(0,l.vec2)((0,l.dot)(D,v),(0,l.dot)(O,y)))))}),g=new c.SphereGeometry(1,300,300),_=[];for(let e=0;e<2;e++)_.push(new c.Vector2(Math.sin(e)/2+1,e*2-.8));var v=new c.LatheGeometry(_,300);function y(e,t,n,r,i){return e.sub(t).mul((i-r)/(n-t)).add(r)}function b(e,t,n){let r=(0,l.varyingProperty)(`float`,`flNoise`),i=(0,l.varyingProperty)(`vec3`,`flPosition`),a=Math.max(1,Math.round(n)),o=(0,l.Fn)(()=>{let t=l.positionGeometry;i.assign(t);let n=(0,l.vec4)(t.div(e.uNoise).sub((0,l.vec3)(0,e.uTime.mul(e.uSpeed),0)),0),o=(0,l.float)(0),s=.5;for(let e=0;e<a;e++)o=o.add(h(n).mul(s)),n=n.mul(2).add(100),s*=.5;return r.assign(y(o,-1,1,0,1)),t}),s=(0,l.Fn)(()=>{let t=i.y,n=(0,l.mix)((0,l.float)(0),(0,l.float)(1),t.add(1.75)),a=(0,l.float)(1).sub(n.mul(.3).step(r)),o=(0,l.mix)((0,l.float)(.3),(0,l.float)(1),t.add(.5)),s=(0,l.clamp)(a.mul(o.mul(10)),0,1),c=(0,l.mix)(e.uColor2,e.uColor1,t.add(.5)),u=c.y.mul((0,l.float)(1).add(n.mul(r)));return(0,l.vec4)((0,l.sRGBTransferEOTF)((0,l.vec3)(c.x,u,c.z)),s.mul(e.uOpacity))}),u=new c.NodeMaterial;return u.positionNode=o(),u.fragmentNode=s(),u.transparent=!0,u.depthWrite=!1,u.side=t,u}var x=class extends c.Group{constructor(e){super(),this.needsRender=!0,e instanceof c.BufferGeometry?this.geometry=e:e===`ring`?this.geometry=v:this.geometry=g,this._color1=new c.Color(`rgb(255, 177, 20)`).convertLinearToSRGB(),this._color2=new c.Color(`rgb(255, 0, 0)`).convertLinearToSRGB(),this.u={uTime:(0,l.uniform)(0),uColor1:(0,l.uniform)(new c.Vector3(this._color1.r,this._color1.g,this._color1.b)),uColor2:(0,l.uniform)(new c.Vector3(this._color2.r,this._color2.g,this._color2.b)),uNoise:(0,l.uniform)(1.2),uSpeed:(0,l.uniform)(1),uOpacity:(0,l.uniform)(1)},this._fragmentationDegree=2,this.innerMesh=new c.Mesh(this.geometry,b(this.u,c.BackSide,this._fragmentationDegree)),this.outerMesh=new c.Mesh(this.geometry,b(this.u,c.FrontSide,this._fragmentationDegree)),this.innerMesh.scale.setScalar(.1),this.outerMesh.scale.setScalar(.1),this.add(this.innerMesh),this.add(this.outerMesh)}setTime(e){this.startTime===void 0&&(this.startTime=e),this.u.uTime.value=(e-this.startTime)/1e3,this.needsRender=!0}set color1(e){this._color1=e.clone().convertLinearToSRGB(),this.u.uColor1.value.set(e.r,e.g,e.b),this.needsRender=!0}get color1(){return this._color1}set color2(e){this._color2=e.clone().convertLinearToSRGB(),this.u.uColor2.value.set(e.r,e.g,e.b),this.needsRender=!0}get color2(){return this._color2}set speed(e){this.u.uSpeed.value=e,this.needsRender=!0}get speed(){return this.u.uSpeed.value}set noise(e){this.u.uNoise.value=e,this.needsRender=!0}get noise(){return this.u.uNoise.value}set opacity(e){this.u.uOpacity.value=e,this.needsRender=!0}get opacity(){return this.u.uOpacity.value}set fragmentationDegree(e){e!==this._fragmentationDegree&&(this._fragmentationDegree=e,this.innerMesh.material.dispose(),this.outerMesh.material.dispose(),this.innerMesh.material=b(this.u,c.BackSide,e),this.outerMesh.material=b(this.u,c.FrontSide,e),this.needsRender=!0)}get fragmentationDegree(){return this._fragmentationDegree}};function S(e,t,n,r,i){return e.sub(t).mul((i-r)/(n-t)).add(r)}function C(){let e={uTime:(0,l.uniform)(0),uAttenuation:(0,l.uniform)(0),uAnglePower:(0,l.uniform)(2),uSpotPosition:(0,l.uniform)(new c.Vector3),uLightColor:(0,l.uniform)(new c.Color(16777215))},t=(0,l.varyingProperty)(`vec3`,`slWorldPosition`),n=(0,l.varyingProperty)(`vec3`,`slNormal`),r=(0,l.varyingProperty)(`float`,`slNoise`),i=(0,l.Fn)(()=>{n.assign((0,l.transformNormalToView)(l.normalLocal).normalize()),t.assign(l.positionWorld);let i=h((0,l.vec4)(l.positionGeometry.sub((0,l.vec3)(0,e.uTime.mul(.4),0)),0));return r.assign(S(i,-1,1,.5,1)),l.positionGeometry}),a=(0,l.Fn)(()=>{let i=(0,l.distance)(t,e.uSpotPosition).div(e.uAttenuation);i=(0,l.float)(1).sub((0,l.clamp)(i,.1,1));let a=(0,l.vec3)(n.x,n.y,(0,l.abs)(n.z)),o=(0,l.float)(e.uAnglePower).mul(r),s=(0,l.pow)((0,l.dot)(a,(0,l.vec3)(0,0,1)),o);return i=i.mul(s).mul(r),(0,l.vec4)(e.uLightColor,i)}),o=new c.NodeMaterial;return o.positionNode=i(),o.fragmentNode=a(),o.transparent=!0,o.side=c.FrontSide,o.depthWrite=!1,{material:o,u:e}}var w=class extends c.Group{constructor(e=1,t=.1,n=.2){super(),this.needsRender=!0;let{material:r,u:i}=C();this.u=i,this.u.uAttenuation.value=e*.9,this.u.uSpotPosition.value.copy(this.position);let a=new c.CylinderGeometry(t,n,e,64,20,!0);a.applyMatrix4(new c.Matrix4().makeTranslation(0,-e/2,0)),a.applyMatrix4(new c.Matrix4().makeRotationX(-Math.PI/2));let o=new c.Mesh(a,r);this.add(o)}setTime(e){this.startTime===void 0&&(this.startTime=e),this.u.uTime.value=(e-this.startTime)/1e3,this.u.uSpotPosition.value.copy(this.position),this.needsRender=!0}set attenuation(e){this.u.uAttenuation.value=e,this.needsRender=!0}get attenuation(){return this.u.uAttenuation.value}set anglePower(e){this.u.uAnglePower.value=e,this.needsRender=!0}get anglePower(){return this.u.uAnglePower.value}set color(e){this.u.uLightColor.value=e,this.needsRender=!0}get color(){return this.u.uLightColor.value}},T=new c.PlaneGeometry(1,1,200,200);T.translate(0,-.5,0);function E(e,t,n,r,i){return e.sub(t).mul((i-r)/(n-t)).add(r)}function D(e){let t={uTime:(0,l.uniform)(0),uSpeed:(0,l.uniform)(e.speed),uScale:(0,l.uniform)(e.scale),uExpand:(0,l.uniform)(e.expand),uColor:(0,l.uniform)(e.color),uOpacity:(0,l.uniform)(e.opacity)},n=(0,l.varyingProperty)(`float`,`afNoise`),r=(0,l.varyingProperty)(`vec3`,`afPosition`),i=(0,l.Fn)(()=>{let e=l.positionGeometry;r.assign(e);let i=h((0,l.vec4)(e.x.mul(t.uScale),e.y.add(t.uTime.mul(t.uSpeed)),0,0));n.assign(E(i,0,1,.5,1));let a=(0,l.float)(1).add(e.y.abs().mul(t.uExpand.sub(1)));return(0,l.vec3)(e.x.mul(a),e.y,e.z)}),a=(0,l.Fn)(()=>{let e=(0,l.mix)((0,l.float)(0),(0,l.float)(1),(0,l.float)(1).add(r.y)),i=n.mul(e).mul(t.uOpacity);return(0,l.vec4)(t.uColor,i)}),o=new c.NodeMaterial;return o.positionNode=i(),o.fragmentNode=a(),o.transparent=!0,o.side=c.DoubleSide,o.depthWrite=!1,{material:o,u:t}}var O=class extends c.Group{constructor(){super(),this.needsRender=!0;let e=D({speed:.75,scale:2,expand:1.2,color:new c.Color(.5,.5,.9),opacity:1}),t=D({speed:2,scale:20,expand:1.2,color:new c.Color(1,1,1),opacity:.1});this.outerU=e.u,this.innerU=t.u;let n=new c.Mesh(T,e.material),r=new c.Mesh(T,t.material);n.rotateX(-Math.PI/2),r.rotateX(-Math.PI/2),this.add(n),this.add(r)}setTime(e){this.startTime===void 0&&(this.startTime=e);let t=(e-this.startTime)/1e3;this.innerU.uTime.value=t,this.outerU.uTime.value=t,this.needsRender=!0}get expand(){return this.outerU.uExpand.value}set expand(e){this.outerU.uExpand.value=e,this.innerU.uExpand.value=e,this.needsRender=!0}get speed(){return this.innerU.uSpeed.value}set speed(e){this.innerU.uSpeed.value=e,this.needsRender=!0}get color(){return this.outerU.uColor.value}set color(e){this.outerU.uColor.value=e,this.needsRender=!0}get flowColor(){return this.innerU.uColor.value}set flowColor(e){this.innerU.uColor.value=e,this.needsRender=!0}};function k(e,t){return e+t*(Math.random()-.5)}function A(e,t){let n=new c.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);return new c.Vector3().addVectors(e,new c.Vector3().multiplyVectors(t,n))}function j(e,t,n){return e*n+t*n*n/2}function M(e,t,n){return new c.Vector3(j(e.x,t.x,n),j(e.y,t.y,n),j(e.z,t.z,n))}function N(e,t){let n=e.times.length,r=0;for(;r<n&&t>e.times[r];)r++;if(r==0)return e.values[0];if(r==n)return e.values[n-1];let i=(t-e.times[r-1])/(e.times[r]-e.times[r-1]),a=e.values[r-1],o=e.values[r];return typeof e.values[0]==`number`?a+i*(o-a):a.clone().lerp(o,i)}var P=class{constructor(e,t,n,r,i,a,o,s,c,l,u,d,f,p){this.birthTime=e,this.deathAge=t,this.position=n.clone(),this.velocity=r.clone(),this.acceleration=i.clone(),this.angle=a,this.angleVelocity=o,this.angleAcceleration=s,this.color=c,this.colorTween=l,this.size=u,this.sizeTween=d,this.opacity=f,this.opacityTween=p}getAlive(e){return this.deathAge>e-this.birthTime}getState(e){let t=this.getAlive(e),n=Math.min(this.deathAge,e-this.birthTime),r=M(this.velocity,this.acceleration,n).add(this.position),i=j(this.angleVelocity,this.angleAcceleration,n)+this.angle,a=(this.sizeTween?N(this.sizeTween,n):0)+this.size,o=(this.colorTween?N(this.colorTween,n):new c.Vector3).add(this.color);return{alive:t,age:n,position:r,angle:i,size:a,color:new c.Color().setHSL(o.x,o.y,o.z).convertLinearToSRGB(),opacity:(this.opacityTween?N(this.opacityTween,n):0)+this.opacity}}},F=class extends c.Mesh{constructor(e){var t,n,r,i,a,o,s,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,L,R,z,B,V;let H=new c.PlaneGeometry(1,1,1,1),U=new c.InstancedBufferGeometry;U.index=H.index,U.attributes=H.attributes,U.instanceCount=0;let W=(t=e.texture)==null?null:t;W&&(W.colorSpace=c.NoColorSpace);let G={map:(0,l.texture)(W==null?new c.Texture:W),useMap:(0,l.uniform)(+!!W),resolution:(0,l.uniform)(new c.Vector2(1,1))},K=I(G);K.blending=(n=e.blending)==null?c.NormalBlending:n,K.transparent=!0,K.depthWrite=!1,super(U,K),this.instances=[],this.capacity=0,this.instGeometry=U,this.particleMaterial=K,this.u=G,this._texture=W,this.frustumCulled=!1,this.needsRender=!0,this.birthTime=Date.now()/1e3,this.disposed=!1,this.paused=!1,this.positionBase=(i=(r=e.positionBase)==null?void 0:r.clone())==null?new c.Vector3:i,this.positionStyle=(a=e.positionStyle)==null?`CUBE`:a,this.positionCubeSpread=(s=(o=e.positionCubeSpread)==null?void 0:o.clone())==null?new c.Vector3:s,this.positionSphereSpread=(u=e.positionSphereSpread)==null?0:u,this.velocityStyle=(d=e.velocityStyle)==null?`CUBE`:d,this.velocityCubeBase=(p=(f=e.velocityCubeBase)==null?void 0:f.clone())==null?new c.Vector3:p,this.velocityCubeSpread=(h=(m=e.velocityCubeSpread)==null?void 0:m.clone())==null?new c.Vector3:h,this.velocitySphereBase=(g=e.velocitySphereBase)==null?0:g,this.velocitySphereSpread=(_=e.velocitySphereSpread)==null?0:_,this.accelerationBase=(y=(v=e.accelerationBase)==null?void 0:v.clone())==null?new c.Vector3:y,this.accelerationSpread=(x=(b=e.accelerationSpread)==null?void 0:b.clone())==null?new c.Vector3:x,this.angleBase=(S=e.angleBase)==null?0:S,this.angleSpread=(C=e.angleSpread)==null?0:C,this.angleVelocityBase=(w=e.angleVelocityBase)==null?0:w,this.angleVelocitySpread=(T=e.angleVelocitySpread)==null?0:T,this.angleAccelerationBase=(E=e.angleAccelerationBase)==null?0:E,this.angleAccelerationSpread=(D=e.angleAccelerationSpread)==null?0:D,this.sizeBase=(O=e.sizeBase)==null?.1:O,this.sizeSpread=(k=e.sizeSpread)==null?0:k,this.sizeTween=(A=e.sizeTween)==null?null:A,this.colorBase=(M=(j=e.colorBase)==null?void 0:j.clone())==null?new c.Vector3:M,this.colorSpread=(P=(N=e.colorSpread)==null?void 0:N.clone())==null?new c.Vector3:P,this.colorTween=(F=e.colorTween)==null?null:F,this.opacityBase=((L=e.opacityBase)==null?e.opacityTween:L)?0:1,this.opacitySpread=(R=e.opacitySpread)==null?0:R,this.opacityTween=(z=e.opacityTween)==null?null:z,this.particlesPerSecond=(B=e.particlesPerSecond)==null?60:B,this.particleDeathAge=(V=e.particleDeathAge)==null?1:V}get texture(){return this._texture}set texture(e){this._texture=e,this.u.map.value=e==null?new c.Texture:e,this.u.useMap.value=+!!e,this.needsRender=!0}get blending(){return this.particleMaterial.blending}set blending(e){this.particleMaterial.blending=e}ensureCapacity(e){if(this.capacity>=e)return;let t=(t,n)=>{let r=new Float32Array(e*n);return t&&r.set(t,0),r};this.arrPosition=t(this.arrPosition,3),this.arrColor=t(this.arrColor,3),this.arrOpacity=t(this.arrOpacity,1),this.arrSize=t(this.arrSize,1),this.arrAngle=t(this.arrAngle,1),this.arrAlive=t(this.arrAlive,1),this.capacity=e,this.instGeometry.setAttribute(`iPosition`,new c.InstancedBufferAttribute(this.arrPosition,3)),this.instGeometry.setAttribute(`iColor`,new c.InstancedBufferAttribute(this.arrColor,3)),this.instGeometry.setAttribute(`iOpacity`,new c.InstancedBufferAttribute(this.arrOpacity,1)),this.instGeometry.setAttribute(`iSize`,new c.InstancedBufferAttribute(this.arrSize,1)),this.instGeometry.setAttribute(`iAngle`,new c.InstancedBufferAttribute(this.arrAngle,1)),this.instGeometry.setAttribute(`iAlive`,new c.InstancedBufferAttribute(this.arrAlive,1))}createInstance(e){let t=this.positionBase.clone();switch(this.positionStyle){case`CUBE`:t=A(this.positionBase,this.positionCubeSpread);break;case`SPHERE`:{let e=2*Math.random()-1,n=Math.PI*2*Math.random(),r=Math.sqrt(1-e*e),i=new c.Vector3(r*Math.cos(n),r*Math.sin(n),e);t=new c.Vector3().addVectors(this.positionBase,i.multiplyScalar(this.positionSphereSpread));break}}let n=new c.Vector3;switch(this.velocityStyle){case`CUBE`:n=A(this.velocityCubeBase,this.velocityCubeSpread);break;case`SPHERE`:{let e=new c.Vector3().subVectors(t,this.positionBase),r=k(this.velocitySphereBase,this.velocitySphereSpread);n=e.normalize().multiplyScalar(r);break}}return new P(e,this.particleDeathAge,t,n,A(this.accelerationBase,this.accelerationSpread),k(this.angleBase,this.angleSpread),k(this.angleVelocityBase,this.angleVelocitySpread),k(this.angleAccelerationBase,this.angleAccelerationSpread),A(this.colorBase,this.colorSpread),this.colorTween,k(this.sizeBase,this.sizeSpread),this.sizeTween,k(this.opacityBase,this.opacitySpread),this.opacityTween)}pause(){this.paused!==!0&&(this.paused=!0,this.birthTime=Date.now()/1e3)}play(){this.paused!==!1&&(this.paused=!1,this.birthTime=Date.now()/1e3)}setTime(e){if(this.disposed)return;e/=1e3;let t=e-this.birthTime,n=Math.ceil(this.particlesPerSecond*this.particleDeathAge);this.ensureCapacity(n),this.instances.length<n&&(this.instances.length=n),this.instGeometry.instanceCount=n;for(let r=0;r<this.instances.length;r++){let i=this.instances[r];if(r<n&&this.paused===!1&&(i===void 0||i.getAlive(e)===!1)){let a=this.particleDeathAge/n*r;if(t>a){let n=e-(t-a)%this.particleDeathAge;this.instances[r]=i=this.createInstance(n)}}if(i){let{position:t,alive:n,color:a,opacity:o,size:s,angle:c}=i.getState(e);this.arrPosition[r*3]=t.x,this.arrPosition[r*3+1]=t.y,this.arrPosition[r*3+2]=t.z,this.arrColor[r*3]=a.r,this.arrColor[r*3+1]=a.g,this.arrColor[r*3+2]=a.b,this.arrOpacity[r]=o,this.arrSize[r]=s,this.arrAngle[r]=c,this.arrAlive[r]=+!!n}}this.instGeometry.getAttribute(`iPosition`).needsUpdate=!0,this.instGeometry.getAttribute(`iColor`).needsUpdate=!0,this.instGeometry.getAttribute(`iOpacity`).needsUpdate=!0,this.instGeometry.getAttribute(`iSize`).needsUpdate=!0,this.instGeometry.getAttribute(`iAngle`).needsUpdate=!0,this.instGeometry.getAttribute(`iAlive`).needsUpdate=!0,this.needsRender=!0}setResolution(e,t){this.u.resolution.value.set(e,t)}dispose(){var e;this.disposed=!0,this.instGeometry.dispose(),(e=this._texture)==null||e.dispose(),this.particleMaterial.dispose()}};function I(e){let t=(0,l.varyingProperty)(`vec4`,`pColor`),n=(0,l.varyingProperty)(`float`,`pAngle`),r=(0,l.Fn)(()=>{let r=(0,l.attribute)(`iPosition`,`vec3`),i=(0,l.attribute)(`iColor`,`vec3`),a=(0,l.attribute)(`iOpacity`,`float`),o=(0,l.attribute)(`iSize`,`float`),s=(0,l.attribute)(`iAngle`,`float`),c=(0,l.attribute)(`iAlive`,`float`),u=l.positionGeometry.xy,d=a.mul(c);t.assign((0,l.vec4)(i,d)),n.assign(s);let f=l.modelViewMatrix.mul((0,l.vec4)(r,1)),p=l.cameraProjectionMatrix.element(1).y,m=(0,l.max)((0,l.float)(.5).mul(e.resolution.y).mul(p),1e-4),h=o.mul(300).div(m).div(2),g=(0,l.vec4)(u.mul(h),0,0),_=f.add(g);return l.cameraProjectionMatrix.mul(_)}),i=(0,l.Fn)(()=>{(0,l.If)(t.a.lessThanEqual(0),()=>{(0,l.Discard)()});let r=(0,l.vec2)(l.positionGeometry.x,l.positionGeometry.y),i=(0,l.cos)(n),a=(0,l.sin)(n),o=i.mul(r.x).add(a.mul(r.y)).add(.5),s=i.mul(r.y).sub(a.mul(r.x)).add(.5),c=e.map.sample((0,l.vec2)(o,s)),u=t.mul(c),d=t.rgb.mul((0,l.float)(1).sub(e.useMap)).add(u.rgb.mul(e.useMap)),f=t.a.mul((0,l.float)(1).sub(e.useMap)).add(u.a.mul(e.useMap));return(0,l.vec4)((0,l.sRGBTransferEOTF)(d),f)}),a=new c.NodeMaterial;return a.vertexNode=r(),a.fragmentNode=i(),a}function L(e,t){return e+t*(Math.random()-.5)}function R(e,t){let n=new c.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);return new c.Vector3().addVectors(e,new c.Vector3().multiplyVectors(t,n))}var z=class extends c.Mesh{constructor(e){var t,n,r,i,a,o,s,u,d,f,p,m,h,g,_,v,y,b,x,S,C,w,T,E,D,O,k,A,j,M,N,P,F,I;let z=Math.ceil(((t=e.particlesPerSecond)==null?60:t)*((n=e.particleDeathAge)==null?1:n)),B=new Float32Array(z*4),H=new Float32Array(z*4),U=new Float32Array(z*4),W=new Float32Array(z*4),G=new Float32Array(z*4);for(let t=0;t<z;t++){let n=t*4,l=((r=e.particleDeathAge)==null?1:r)/z*t,N=(i=e.particleDeathAge)==null?1:i,P=(o=(a=e.positionBase)==null?void 0:a.clone())==null?new c.Vector3:o;switch((s=e.positionStyle)==null?`CUBE`:s){case`CUBE`:P=R((u=e.positionBase)==null?new c.Vector3:u,(d=e.positionCubeSpread)==null?new c.Vector3:d);break;case`SPHERE`:{let t=2*Math.random()-1,n=Math.PI*2*Math.random(),r=Math.sqrt(1-t*t),i=new c.Vector3(r*Math.cos(n),r*Math.sin(n),t);P=new c.Vector3().addVectors((f=e.positionBase)==null?new c.Vector3:f,i.multiplyScalar((p=e.positionSphereSpread)==null?0:p));break}}let F=new c.Vector3;switch((m=e.velocityStyle)==null?`CUBE`:m){case`CUBE`:F=R((h=e.velocityCubeBase)==null?new c.Vector3:h,(g=e.velocityCubeSpread)==null?new c.Vector3:g);break;case`SPHERE`:{let t=new c.Vector3().subVectors(P,(_=e.positionBase)==null?new c.Vector3:_),n=L((v=e.velocitySphereBase)==null?0:v,(y=e.velocitySphereSpread)==null?0:y);F=t.normalize().multiplyScalar(n);break}}let I=R((b=e.accelerationBase)==null?new c.Vector3:b,(x=e.accelerationSpread)==null?new c.Vector3:x),V=L((S=e.sizeBase)==null?.1:S,(C=e.sizeSpread)==null?0:C),K=(w=e.sizeGrowth)==null?0:w,q=R(new c.Vector3().setFromColor(new c.Color().setFromVector3((T=e.colorBase)==null?new c.Vector3:T).convertLinearToSRGB()),new c.Vector3().setFromColor(new c.Color().setFromVector3((E=e.colorSpread)==null?new c.Vector3:E).convertLinearToSRGB())),J=L((D=e.opacityBase)==null?1:D,(O=e.opacitySpread)==null?0:O),Y=L((k=e.angleBase)==null?0:k,(A=e.angleSpread)==null?0:A),X=L((j=e.angleVelocityBase)==null?0:j,(M=e.angleVelocitySpread)==null?0:M);B[n]=P.x,B[n+1]=P.y,B[n+2]=P.z,B[n+3]=l,H[n]=F.x,H[n+1]=F.y,H[n+2]=F.z,H[n+3]=N,U[n]=I.x,U[n+1]=I.y,U[n+2]=I.z,U[n+3]=V,W[n]=q.x,W[n+1]=q.y,W[n+2]=q.z,W[n+3]=K,G[n]=J,G[n+1]=Y,G[n+2]=X,G[n+3]=0}let K=new c.PlaneGeometry(1,1,1,1),q=new c.InstancedBufferGeometry;q.index=K.index,q.attributes=K.attributes,q.instanceCount=z,q.setAttribute(`iPack0`,new c.InstancedBufferAttribute(B,4)),q.setAttribute(`iPack1`,new c.InstancedBufferAttribute(H,4)),q.setAttribute(`iPack2`,new c.InstancedBufferAttribute(U,4)),q.setAttribute(`iPack3`,new c.InstancedBufferAttribute(W,4)),q.setAttribute(`iPack4`,new c.InstancedBufferAttribute(G,4));let J=(N=e.texture)==null?null:N;J&&(J.colorSpace=c.NoColorSpace);let Y={map:(0,l.texture)(J==null?new c.Texture:J),useMap:(0,l.uniform)(+!!J),uTime:(0,l.uniform)(0),resolution:(0,l.uniform)(new c.Vector2(1,1))},X=V(Y);X.blending=(P=e.blending)==null?c.NormalBlending:P,X.transparent=!0,X.depthWrite=!1,super(q,X),this.particleMaterial=X,this.u=Y,this._texture=J,this.frustumCulled=!1,this.needsRender=!0,this.startTime=Date.now()/1e3,this.disposed=!1,this.paused=!1,this.particleCount=z,this.particlesPerSecond=(F=e.particlesPerSecond)==null?60:F,this.particleDeathAge=(I=e.particleDeathAge)==null?1:I}get texture(){return this._texture}set texture(e){this._texture=e,e&&(e.colorSpace=c.NoColorSpace),this.u.map.value=e==null?new c.Texture:e,this.u.useMap.value=+!!e,this.needsRender=!0}get blending(){return this.particleMaterial.blending}set blending(e){this.particleMaterial.blending=e}pause(){this.paused!==!0&&(this.paused=!0,this.startTime=Date.now()/1e3)}play(){this.paused!==!1&&(this.paused=!1,this.startTime=Date.now()/1e3)}setTime(e){if(this.disposed||this.paused)return;let t=e/1e3-this.startTime;this.u.uTime.value=t,this.needsRender=!0}setResolution(e,t){this.u.resolution.value.set(e,t)}dispose(){var e;this.disposed=!0,this.geometry.dispose(),(e=this._texture)==null||e.dispose(),this.particleMaterial.dispose()}};function B(e){let t=(0,l.clamp)((0,l.mod)(e.x.mul(6).add((0,l.vec3)(0,4,2)),6).sub(3).abs().sub(1),0,1);return e.z.add(e.y.mul(t.sub(.5)).mul((0,l.float)(1).sub(e.z.mul(2).sub(1).abs())))}function V(e){let t=(0,l.varyingProperty)(`vec4`,`gpColor`),n=(0,l.varyingProperty)(`float`,`gpAngle`),r=(0,l.Fn)(()=>{let r=(e,t)=>(0,l.attribute)(e,t),i=r(`iPack0`,`vec4`),a=r(`iPack1`,`vec4`),o=r(`iPack2`,`vec4`),s=r(`iPack3`,`vec4`),c=r(`iPack4`,`vec4`),u=i.xyz,d=i.w,f=a.xyz,p=a.w,m=o.xyz,h=o.w,g=s.xyz,_=s.w,v=c.x,y=c.y,b=c.z,x=l.positionGeometry.xy,S=(0,l.mod)(e.uTime.add(d),p),C=(0,l.clamp)(S.div(p),0,1),w=f.add(m.mul(S)),T=u.add(w.mul(S)),E=h.add(_.mul(C));n.assign(y.add(b.mul(S)));let D=C.div(.1),O=(0,l.float)(1).sub(C).div(.2),k=v.mul(C.lessThan(.1).select((0,l.clamp)(D,0,1),C.greaterThan(.8).select((0,l.clamp)(O,0,1),(0,l.float)(1)))),A=B(g);t.assign((0,l.vec4)(A,k));let j=l.modelViewMatrix.mul((0,l.vec4)(T,1)),M=l.cameraProjectionMatrix.element(1).y,N=(0,l.max)((0,l.float)(.5).mul(e.resolution.y).mul(M),1e-4),P=E.mul(300).div(N).div(2),F=(0,l.vec4)(x.mul(P),0,0),I=j.add(F);return l.cameraProjectionMatrix.mul(I)}),i=(0,l.Fn)(()=>{(0,l.If)(t.a.lessThanEqual(0),()=>{(0,l.Discard)()});let r=(0,l.vec2)(l.positionGeometry.x,l.positionGeometry.y.negate()),i=(0,l.cos)(n),a=(0,l.sin)(n),o=i.mul(r.x).add(a.mul(r.y)).add(.5),s=i.mul(r.y).sub(a.mul(r.x)).add(.5),c=e.map.sample((0,l.vec2)(o,s)),u=t.mul(c),d=t.rgb.mul((0,l.float)(1).sub(e.useMap)).add(u.rgb.mul(e.useMap)),f=t.a.mul((0,l.float)(1).sub(e.useMap)).add(u.a.mul(e.useMap));return(0,l.vec4)((0,l.sRGBTransferEOTF)(d),f)}),a=new c.NodeMaterial;return a.vertexNode=r(),a.fragmentNode=i(),a}exports.Airflow=O,exports.Flame=x,exports.Particle=F,exports.ParticleGPU=z,exports.SpotLight=w;
|
|
338
|
+
*/Object.defineProperty(exports,Symbol.toStringTag,{value:`Module`});var __create=Object.create,__defProp=Object.defineProperty,__getOwnPropDesc=Object.getOwnPropertyDescriptor,__getOwnPropNames=Object.getOwnPropertyNames,__getProtoOf=Object.getPrototypeOf,__hasOwnProp=Object.prototype.hasOwnProperty,__copyProps=(to,from,except,desc)=>{if(from&&typeof from==`object`||typeof from==`function`)for(var keys=__getOwnPropNames(from),i=0,n=keys.length,key;i<n;i++)key=keys[i],!__hasOwnProp.call(to,key)&&key!==except&&__defProp(to,key,{get:(k=>from[k]).bind(null,key),enumerable:!(desc=__getOwnPropDesc(from,key))||desc.enumerable});return to},__toESM=(mod,isNodeMode,target)=>(target=mod==null?{}:__create(__getProtoOf(mod)),__copyProps(isNodeMode||!mod||!mod.__esModule?__defProp(target,`default`,{value:mod,enumerable:!0}):target,mod));let three_webgpu=require("three/webgpu");three_webgpu=__toESM(three_webgpu,1);let three_tsl=require("three/tsl");var permute4=(0,three_tsl.Fn)(([x])=>(0,three_tsl.mod)(x.mul(34).add(1).mul(x),289)),permute1=(0,three_tsl.Fn)(([x])=>(0,three_tsl.floor)((0,three_tsl.mod)(x.mul(34).add(1).mul(x),289))),taylorInvSqrt4=(0,three_tsl.Fn)(([r])=>(0,three_tsl.float)(1.79284291400159).sub(r.mul(.85373472095314))),taylorInvSqrt1=(0,three_tsl.Fn)(([r])=>(0,three_tsl.float)(1.79284291400159).sub(r.mul(.85373472095314))),grad4=(0,three_tsl.Fn)(([j,ip])=>{let ones=(0,three_tsl.vec4)(1,1,1,-1),p=(0,three_tsl.vec4)(0,0,0,0).toVar();p.xyz=(0,three_tsl.floor)((0,three_tsl.vec3)(j,j,j).mul(ip.xyz).fract().mul(7)).mul(ip.z).sub(1);let absXyz=(0,three_tsl.abs)(p.xyz);p.w=(0,three_tsl.float)(1.5).sub((0,three_tsl.dot)(absXyz,ones.xyz));let s=(0,three_tsl.float)(1).sub((0,three_tsl.step)((0,three_tsl.vec4)(0,0,0,0),p));return p.xyz=p.xyz.add(s.xyz.mul(2).sub(1).mul(s.www)),p}),simplexNoise4D=(0,three_tsl.Fn)(([v])=>{let C=(0,three_tsl.vec2)(.1381966011250105,.30901699437494745),i=(0,three_tsl.floor)(v.add((0,three_tsl.dot)(v,C.yyyy))).toVar(),x0=v.sub(i).add((0,three_tsl.dot)(i,C.xxxx)).toVar(),i0=(0,three_tsl.vec4)(0,0,0,0).toVar(),isX=(0,three_tsl.step)(x0.yzw,x0.xxx),isYZ=(0,three_tsl.step)(x0.zww,x0.yyz);i0.x=isX.x.add(isX.y).add(isX.z),i0.yzw=(0,three_tsl.float)(1).sub(isX),i0.y=i0.y.add(isYZ.x).add(isYZ.y),i0.zw=i0.zw.add((0,three_tsl.float)(1).sub(isYZ.xy)),i0.z=i0.z.add(isYZ.z),i0.w=i0.w.add((0,three_tsl.float)(1).sub(isYZ.z));let i3=i0.clamp(0,1),i2=i0.sub(1).clamp(0,1),i1=i0.sub(2).clamp(0,1),x1=x0.sub(i1).add(C.xxxx.mul(1)),x2=x0.sub(i2).add(C.xxxx.mul(2)),x3=x0.sub(i3).add(C.xxxx.mul(3)),x4=x0.sub(1).add(C.xxxx.mul(4)),ii=(0,three_tsl.mod)(i,289),j0=permute1(permute1(permute1(permute1(ii.w).add(ii.z)).add(ii.y)).add(ii.x)),j1=permute4(permute4(permute4(permute4(ii.w.add((0,three_tsl.vec4)(i1.w,i2.w,i3.w,1))).add(ii.z).add((0,three_tsl.vec4)(i1.z,i2.z,i3.z,1))).add(ii.y).add((0,three_tsl.vec4)(i1.y,i2.y,i3.y,1))).add(ii.x).add((0,three_tsl.vec4)(i1.x,i2.x,i3.x,1))),ip=(0,three_tsl.vec4)(1/294,1/49,1/7,0),p0=grad4(j0,ip).toVar(),p1=grad4(j1.x,ip).toVar(),p2=grad4(j1.y,ip).toVar(),p3=grad4(j1.z,ip).toVar(),p4=grad4(j1.w,ip).toVar(),norm=taylorInvSqrt4((0,three_tsl.vec4)((0,three_tsl.dot)(p0,p0),(0,three_tsl.dot)(p1,p1),(0,three_tsl.dot)(p2,p2),(0,three_tsl.dot)(p3,p3)));p0.assign(p0.mul(norm.x)),p1.assign(p1.mul(norm.y)),p2.assign(p2.mul(norm.z)),p3.assign(p3.mul(norm.w)),p4.assign(p4.mul(taylorInvSqrt1((0,three_tsl.dot)(p4,p4))));let m0=(0,three_tsl.max)((0,three_tsl.float)(.6).sub((0,three_tsl.vec3)((0,three_tsl.dot)(x0,x0),(0,three_tsl.dot)(x1,x1),(0,three_tsl.dot)(x2,x2))),(0,three_tsl.vec3)(0,0,0)),m1=(0,three_tsl.max)((0,three_tsl.float)(.6).sub((0,three_tsl.vec2)((0,three_tsl.dot)(x3,x3),(0,three_tsl.dot)(x4,x4))),(0,three_tsl.vec2)(0,0)),m0s=m0.mul(m0),m1s=m1.mul(m1);return(0,three_tsl.float)(49).mul((0,three_tsl.dot)(m0s.mul(m0s),(0,three_tsl.vec3)((0,three_tsl.dot)(p0,x0),(0,three_tsl.dot)(p1,x1),(0,three_tsl.dot)(p2,x2))).add((0,three_tsl.dot)(m1s.mul(m1s),(0,three_tsl.vec2)((0,three_tsl.dot)(p3,x3),(0,three_tsl.dot)(p4,x4)))))}),sharedSphereGeometry=new three_webgpu.SphereGeometry(1,300,300),points=[];for(let i=0;i<2;i++)points.push(new three_webgpu.Vector2(Math.sin(i)/2+1,i*2-.8));var sharedRingGeometry=new three_webgpu.LatheGeometry(points,300);function tslScale$2(value,fromMin,fromMax,toMin,toMax){return value.sub(fromMin).mul((toMax-toMin)/(fromMax-fromMin)).add(toMin)}function createFlameMaterial(u,side,fragmentationDegree){let vNoise=(0,three_tsl.varyingProperty)(`float`,`flNoise`),vPosition=(0,three_tsl.varyingProperty)(`vec3`,`flPosition`),degree=Math.max(1,Math.round(fragmentationDegree)),vertex=(0,three_tsl.Fn)(()=>{let pos=three_tsl.positionGeometry;vPosition.assign(pos);let x=(0,three_tsl.vec4)(pos.div(u.uNoise).sub((0,three_tsl.vec3)(0,u.uTime.mul(u.uSpeed),0)),0),v=(0,three_tsl.float)(0),a=.5;for(let i=0;i<degree;i++)v=v.add(simplexNoise4D(x).mul(a)),x=x.mul(2).add(100),a*=.5;return vNoise.assign(tslScale$2(v,-1,1,0,1)),pos}),fragment=(0,three_tsl.Fn)(()=>{let y=vPosition.y,gradient=(0,three_tsl.mix)((0,three_tsl.float)(0),(0,three_tsl.float)(1),y.add(1.75)),alphaFlag=(0,three_tsl.float)(1).sub(gradient.mul(.3).step(vNoise)),mask=(0,three_tsl.mix)((0,three_tsl.float)(.3),(0,three_tsl.float)(1),y.add(.5)),alpha=(0,three_tsl.clamp)(alphaFlag.mul(mask.mul(10)),0,1),colorMix=(0,three_tsl.mix)(u.uColor2,u.uColor1,y.add(.5)),g=colorMix.y.mul((0,three_tsl.float)(1).add(gradient.mul(vNoise)));return(0,three_tsl.vec4)((0,three_tsl.sRGBTransferEOTF)((0,three_tsl.vec3)(colorMix.x,g,colorMix.z)),alpha.mul(u.uOpacity))}),material=new three_webgpu.NodeMaterial;return material.positionNode=vertex(),material.fragmentNode=fragment(),material.transparent=!0,material.depthWrite=!1,material.side=side,material}var Flame=class extends three_webgpu.Group{constructor(geometry){super(),this.needsRender=!0,geometry instanceof three_webgpu.BufferGeometry?this.geometry=geometry:geometry===`ring`?this.geometry=sharedRingGeometry:this.geometry=sharedSphereGeometry,this._color1=new three_webgpu.Color(`rgb(255, 177, 20)`).convertLinearToSRGB(),this._color2=new three_webgpu.Color(`rgb(255, 0, 0)`).convertLinearToSRGB(),this.u={uTime:(0,three_tsl.uniform)(0),uColor1:(0,three_tsl.uniform)(new three_webgpu.Vector3(this._color1.r,this._color1.g,this._color1.b)),uColor2:(0,three_tsl.uniform)(new three_webgpu.Vector3(this._color2.r,this._color2.g,this._color2.b)),uNoise:(0,three_tsl.uniform)(1.2),uSpeed:(0,three_tsl.uniform)(1),uOpacity:(0,three_tsl.uniform)(1)},this._fragmentationDegree=2,this.innerMesh=new three_webgpu.Mesh(this.geometry,createFlameMaterial(this.u,three_webgpu.BackSide,this._fragmentationDegree)),this.outerMesh=new three_webgpu.Mesh(this.geometry,createFlameMaterial(this.u,three_webgpu.FrontSide,this._fragmentationDegree)),this.innerMesh.scale.setScalar(.1),this.outerMesh.scale.setScalar(.1),this.add(this.innerMesh),this.add(this.outerMesh)}setTime(time){this.startTime===void 0&&(this.startTime=time),this.u.uTime.value=(time-this.startTime)/1e3,this.needsRender=!0}set color1(value){this._color1=value.clone().convertLinearToSRGB(),this.u.uColor1.value.set(value.r,value.g,value.b),this.needsRender=!0}get color1(){return this._color1}set color2(value){this._color2=value.clone().convertLinearToSRGB(),this.u.uColor2.value.set(value.r,value.g,value.b),this.needsRender=!0}get color2(){return this._color2}set speed(value){this.u.uSpeed.value=value,this.needsRender=!0}get speed(){return this.u.uSpeed.value}set noise(value){this.u.uNoise.value=value,this.needsRender=!0}get noise(){return this.u.uNoise.value}set opacity(value){this.u.uOpacity.value=value,this.needsRender=!0}get opacity(){return this.u.uOpacity.value}set fragmentationDegree(value){value!==this._fragmentationDegree&&(this._fragmentationDegree=value,this.innerMesh.material.dispose(),this.outerMesh.material.dispose(),this.innerMesh.material=createFlameMaterial(this.u,three_webgpu.BackSide,value),this.outerMesh.material=createFlameMaterial(this.u,three_webgpu.FrontSide,value),this.needsRender=!0)}get fragmentationDegree(){return this._fragmentationDegree}};function tslScale$1(value,fromMin,fromMax,toMin,toMax){return value.sub(fromMin).mul((toMax-toMin)/(fromMax-fromMin)).add(toMin)}function createSpotLightMaterial(){let u={uTime:(0,three_tsl.uniform)(0),uAttenuation:(0,three_tsl.uniform)(0),uAnglePower:(0,three_tsl.uniform)(2),uSpotPosition:(0,three_tsl.uniform)(new three_webgpu.Vector3),uLightColor:(0,three_tsl.uniform)(new three_webgpu.Color(16777215))},vWorldPosition=(0,three_tsl.varyingProperty)(`vec3`,`slWorldPosition`),vNormal=(0,three_tsl.varyingProperty)(`vec3`,`slNormal`),vNoise=(0,three_tsl.varyingProperty)(`float`,`slNoise`),vertex=(0,three_tsl.Fn)(()=>{vNormal.assign((0,three_tsl.transformNormalToView)(three_tsl.normalLocal).normalize()),vWorldPosition.assign(three_tsl.positionWorld);let n=simplexNoise4D((0,three_tsl.vec4)(three_tsl.positionGeometry.sub((0,three_tsl.vec3)(0,u.uTime.mul(.4),0)),0));return vNoise.assign(tslScale$1(n,-1,1,.5,1)),three_tsl.positionGeometry}),fragment=(0,three_tsl.Fn)(()=>{let intensity=(0,three_tsl.distance)(vWorldPosition,u.uSpotPosition).div(u.uAttenuation);intensity=(0,three_tsl.float)(1).sub((0,three_tsl.clamp)(intensity,.1,1));let normal=(0,three_tsl.vec3)(vNormal.x,vNormal.y,(0,three_tsl.abs)(vNormal.z)),anglePower=(0,three_tsl.float)(u.uAnglePower).mul(vNoise),angleIntensity=(0,three_tsl.pow)((0,three_tsl.dot)(normal,(0,three_tsl.vec3)(0,0,1)),anglePower);return intensity=intensity.mul(angleIntensity).mul(vNoise),(0,three_tsl.vec4)(u.uLightColor,intensity)}),material=new three_webgpu.NodeMaterial;return material.positionNode=vertex(),material.fragmentNode=fragment(),material.transparent=!0,material.side=three_webgpu.FrontSide,material.depthWrite=!1,{material,u}}var SpotLight=class extends three_webgpu.Group{constructor(height=1,radiusTop=.1,radiusBottom=.2){super(),this.needsRender=!0;let{material,u}=createSpotLightMaterial();this.u=u,this.u.uAttenuation.value=height*.9,this.u.uSpotPosition.value.copy(this.position);let geometry=new three_webgpu.CylinderGeometry(radiusTop,radiusBottom,height,64,20,!0);geometry.applyMatrix4(new three_webgpu.Matrix4().makeTranslation(0,-height/2,0)),geometry.applyMatrix4(new three_webgpu.Matrix4().makeRotationX(-Math.PI/2));let outer=new three_webgpu.Mesh(geometry,material);this.add(outer)}setTime(time){this.startTime===void 0&&(this.startTime=time),this.u.uTime.value=(time-this.startTime)/1e3,this.u.uSpotPosition.value.copy(this.position),this.needsRender=!0}set attenuation(value){this.u.uAttenuation.value=value,this.needsRender=!0}get attenuation(){return this.u.uAttenuation.value}set anglePower(value){this.u.uAnglePower.value=value,this.needsRender=!0}get anglePower(){return this.u.uAnglePower.value}set color(value){this.u.uLightColor.value=value,this.needsRender=!0}get color(){return this.u.uLightColor.value}},sharedGeometry=new three_webgpu.PlaneGeometry(1,1,200,200);sharedGeometry.translate(0,-.5,0);function tslScale(value,fromMin,fromMax,toMin,toMax){return value.sub(fromMin).mul((toMax-toMin)/(fromMax-fromMin)).add(toMin)}function createAirflowMaterial(opts){let u={uTime:(0,three_tsl.uniform)(0),uSpeed:(0,three_tsl.uniform)(opts.speed),uScale:(0,three_tsl.uniform)(opts.scale),uExpand:(0,three_tsl.uniform)(opts.expand),uColor:(0,three_tsl.uniform)(opts.color),uOpacity:(0,three_tsl.uniform)(opts.opacity)},vNoise=(0,three_tsl.varyingProperty)(`float`,`afNoise`),vPosition=(0,three_tsl.varyingProperty)(`vec3`,`afPosition`),vertex=(0,three_tsl.Fn)(()=>{let pos=three_tsl.positionGeometry;vPosition.assign(pos);let n=simplexNoise4D((0,three_tsl.vec4)(pos.x.mul(u.uScale),pos.y.add(u.uTime.mul(u.uSpeed)),0,0));vNoise.assign(tslScale(n,0,1,.5,1));let expandX=(0,three_tsl.float)(1).add(pos.y.abs().mul(u.uExpand.sub(1)));return(0,three_tsl.vec3)(pos.x.mul(expandX),pos.y,pos.z)}),fragment=(0,three_tsl.Fn)(()=>{let gradient=(0,three_tsl.mix)((0,three_tsl.float)(0),(0,three_tsl.float)(1),(0,three_tsl.float)(1).add(vPosition.y)),alpha=vNoise.mul(gradient).mul(u.uOpacity);return(0,three_tsl.vec4)(u.uColor,alpha)}),material=new three_webgpu.NodeMaterial;return material.positionNode=vertex(),material.fragmentNode=fragment(),material.transparent=!0,material.side=three_webgpu.DoubleSide,material.depthWrite=!1,{material,u}}var Airflow=class extends three_webgpu.Group{constructor(){super(),this.needsRender=!0;let outer=createAirflowMaterial({speed:.75,scale:2,expand:1.2,color:new three_webgpu.Color(.5,.5,.9),opacity:1}),inner=createAirflowMaterial({speed:2,scale:20,expand:1.2,color:new three_webgpu.Color(1,1,1),opacity:.1});this.outerU=outer.u,this.innerU=inner.u;let outerMesh=new three_webgpu.Mesh(sharedGeometry,outer.material),innerMesh=new three_webgpu.Mesh(sharedGeometry,inner.material);outerMesh.rotateX(-Math.PI/2),innerMesh.rotateX(-Math.PI/2),this.add(outerMesh),this.add(innerMesh)}setTime(time){this.startTime===void 0&&(this.startTime=time);let t=(time-this.startTime)/1e3;this.innerU.uTime.value=t,this.outerU.uTime.value=t,this.needsRender=!0}get expand(){return this.outerU.uExpand.value}set expand(value){this.outerU.uExpand.value=value,this.innerU.uExpand.value=value,this.needsRender=!0}get speed(){return this.innerU.uSpeed.value}set speed(value){this.innerU.uSpeed.value=value,this.needsRender=!0}get color(){return this.outerU.uColor.value}set color(value){this.outerU.uColor.value=value,this.needsRender=!0}get flowColor(){return this.innerU.uColor.value}set flowColor(value){this.innerU.uColor.value=value,this.needsRender=!0}};function random$1(base,spread){return base+spread*(Math.random()-.5)}function randomVector3$1(base,spread){let rand3=new three_webgpu.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);return new three_webgpu.Vector3().addVectors(base,new three_webgpu.Vector3().multiplyVectors(spread,rand3))}function displacement(velocity,acceleration,time){return velocity*time+acceleration*time*time/2}function displacementVector3(velocity,acceleration,time){return new three_webgpu.Vector3(displacement(velocity.x,acceleration.x,time),displacement(velocity.y,acceleration.y,time),displacement(velocity.z,acceleration.z,time))}function tweenLerp(tweenKeyframe,time){let length=tweenKeyframe.times.length,i=0;for(;i<length&&time>tweenKeyframe.times[i];)i++;if(i==0)return tweenKeyframe.values[0];if(i==length)return tweenKeyframe.values[length-1];let progress=(time-tweenKeyframe.times[i-1])/(tweenKeyframe.times[i]-tweenKeyframe.times[i-1]),fromValue=tweenKeyframe.values[i-1],toValue=tweenKeyframe.values[i];return typeof tweenKeyframe.values[0]==`number`?fromValue+progress*(toValue-fromValue):fromValue.clone().lerp(toValue,progress)}var Instance=class{constructor(birthTime,deathAge,position,velocity,acceleration,angle,angleVelocity,angleAcceleration,color,colorTween,size,sizeTween,opacity,opacityTween){this.birthTime=birthTime,this.deathAge=deathAge,this.position=position.clone(),this.velocity=velocity.clone(),this.acceleration=acceleration.clone(),this.angle=angle,this.angleVelocity=angleVelocity,this.angleAcceleration=angleAcceleration,this.color=color,this.colorTween=colorTween,this.size=size,this.sizeTween=sizeTween,this.opacity=opacity,this.opacityTween=opacityTween}getAlive(time){return this.deathAge>time-this.birthTime}getState(time){let alive=this.getAlive(time),age=Math.min(this.deathAge,time-this.birthTime),position=displacementVector3(this.velocity,this.acceleration,age).add(this.position),angle=displacement(this.angleVelocity,this.angleAcceleration,age)+this.angle,size=(this.sizeTween?tweenLerp(this.sizeTween,age):0)+this.size,hsl=(this.colorTween?tweenLerp(this.colorTween,age):new three_webgpu.Vector3).add(this.color);return{alive,age,position,angle,size,color:new three_webgpu.Color().setHSL(hsl.x,hsl.y,hsl.z).convertLinearToSRGB(),opacity:(this.opacityTween?tweenLerp(this.opacityTween,age):0)+this.opacity}}},Particle=class extends three_webgpu.Mesh{constructor(args){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y,_z,_0,_1,_2,_3,_4,_5,_6,_7,_8,_9,_10,_11,_12,_13;let quad=new three_webgpu.PlaneGeometry(1,1,1,1),geometry=new three_webgpu.InstancedBufferGeometry;geometry.index=quad.index,geometry.attributes=quad.attributes,geometry.instanceCount=0;let tex=(_a=args.texture)==null?null:_a;tex&&(tex.colorSpace=three_webgpu.NoColorSpace);let u={map:(0,three_tsl.texture)(tex==null?new three_webgpu.Texture:tex),useMap:(0,three_tsl.uniform)(+!!tex),resolution:(0,three_tsl.uniform)(new three_webgpu.Vector2(1,1))},material=buildParticleMaterial(u);material.blending=(_b=args.blending)==null?three_webgpu.NormalBlending:_b,material.transparent=!0,material.depthWrite=!1,super(geometry,material),this.instances=[],this.capacity=0,this.instGeometry=geometry,this.particleMaterial=material,this.u=u,this._texture=tex,this.frustumCulled=!1,this.needsRender=!0,this.birthTime=Date.now()/1e3,this.disposed=!1,this.paused=!1,this.positionBase=(_d=(_c=args.positionBase)==null?void 0:_c.clone())==null?new three_webgpu.Vector3:_d,this.positionStyle=(_e=args.positionStyle)==null?`CUBE`:_e,this.positionCubeSpread=(_g=(_f=args.positionCubeSpread)==null?void 0:_f.clone())==null?new three_webgpu.Vector3:_g,this.positionSphereSpread=(_h=args.positionSphereSpread)==null?0:_h,this.velocityStyle=(_j=args.velocityStyle)==null?`CUBE`:_j,this.velocityCubeBase=(_l=(_k=args.velocityCubeBase)==null?void 0:_k.clone())==null?new three_webgpu.Vector3:_l,this.velocityCubeSpread=(_o=(_m=args.velocityCubeSpread)==null?void 0:_m.clone())==null?new three_webgpu.Vector3:_o,this.velocitySphereBase=(_p=args.velocitySphereBase)==null?0:_p,this.velocitySphereSpread=(_q=args.velocitySphereSpread)==null?0:_q,this.accelerationBase=(_s=(_r=args.accelerationBase)==null?void 0:_r.clone())==null?new three_webgpu.Vector3:_s,this.accelerationSpread=(_u=(_t=args.accelerationSpread)==null?void 0:_t.clone())==null?new three_webgpu.Vector3:_u,this.angleBase=(_v=args.angleBase)==null?0:_v,this.angleSpread=(_w=args.angleSpread)==null?0:_w,this.angleVelocityBase=(_x=args.angleVelocityBase)==null?0:_x,this.angleVelocitySpread=(_y=args.angleVelocitySpread)==null?0:_y,this.angleAccelerationBase=(_z=args.angleAccelerationBase)==null?0:_z,this.angleAccelerationSpread=(_0=args.angleAccelerationSpread)==null?0:_0,this.sizeBase=(_1=args.sizeBase)==null?.1:_1,this.sizeSpread=(_2=args.sizeSpread)==null?0:_2,this.sizeTween=(_3=args.sizeTween)==null?null:_3,this.colorBase=(_5=(_4=args.colorBase)==null?void 0:_4.clone())==null?new three_webgpu.Vector3:_5,this.colorSpread=(_7=(_6=args.colorSpread)==null?void 0:_6.clone())==null?new three_webgpu.Vector3:_7,this.colorTween=(_8=args.colorTween)==null?null:_8,this.opacityBase=((_9=args.opacityBase)==null?args.opacityTween:_9)?0:1,this.opacitySpread=(_10=args.opacitySpread)==null?0:_10,this.opacityTween=(_11=args.opacityTween)==null?null:_11,this.particlesPerSecond=(_12=args.particlesPerSecond)==null?60:_12,this.particleDeathAge=(_13=args.particleDeathAge)==null?1:_13}get texture(){return this._texture}set texture(value){this._texture=value,this.u.map.value=value==null?new three_webgpu.Texture:value,this.u.useMap.value=+!!value,this.needsRender=!0}get blending(){return this.particleMaterial.blending}set blending(value){this.particleMaterial.blending=value}ensureCapacity(count){if(this.capacity>=count)return;let grow=(old,comps)=>{let next=new Float32Array(count*comps);return old&&next.set(old,0),next};this.arrPosition=grow(this.arrPosition,3),this.arrColor=grow(this.arrColor,3),this.arrOpacity=grow(this.arrOpacity,1),this.arrSize=grow(this.arrSize,1),this.arrAngle=grow(this.arrAngle,1),this.arrAlive=grow(this.arrAlive,1),this.capacity=count,this.instGeometry.setAttribute(`iPosition`,new three_webgpu.InstancedBufferAttribute(this.arrPosition,3)),this.instGeometry.setAttribute(`iColor`,new three_webgpu.InstancedBufferAttribute(this.arrColor,3)),this.instGeometry.setAttribute(`iOpacity`,new three_webgpu.InstancedBufferAttribute(this.arrOpacity,1)),this.instGeometry.setAttribute(`iSize`,new three_webgpu.InstancedBufferAttribute(this.arrSize,1)),this.instGeometry.setAttribute(`iAngle`,new three_webgpu.InstancedBufferAttribute(this.arrAngle,1)),this.instGeometry.setAttribute(`iAlive`,new three_webgpu.InstancedBufferAttribute(this.arrAlive,1))}createInstance(birthTime){let position=this.positionBase.clone();switch(this.positionStyle){case`CUBE`:position=randomVector3$1(this.positionBase,this.positionCubeSpread);break;case`SPHERE`:{let z=2*Math.random()-1,t=Math.PI*2*Math.random(),r=Math.sqrt(1-z*z),vec=new three_webgpu.Vector3(r*Math.cos(t),r*Math.sin(t),z);position=new three_webgpu.Vector3().addVectors(this.positionBase,vec.multiplyScalar(this.positionSphereSpread));break}}let velocity=new three_webgpu.Vector3;switch(this.velocityStyle){case`CUBE`:velocity=randomVector3$1(this.velocityCubeBase,this.velocityCubeSpread);break;case`SPHERE`:{let direction=new three_webgpu.Vector3().subVectors(position,this.positionBase),speed=random$1(this.velocitySphereBase,this.velocitySphereSpread);velocity=direction.normalize().multiplyScalar(speed);break}}return new Instance(birthTime,this.particleDeathAge,position,velocity,randomVector3$1(this.accelerationBase,this.accelerationSpread),random$1(this.angleBase,this.angleSpread),random$1(this.angleVelocityBase,this.angleVelocitySpread),random$1(this.angleAccelerationBase,this.angleAccelerationSpread),randomVector3$1(this.colorBase,this.colorSpread),this.colorTween,random$1(this.sizeBase,this.sizeSpread),this.sizeTween,random$1(this.opacityBase,this.opacitySpread),this.opacityTween)}pause(){this.paused!==!0&&(this.paused=!0,this.birthTime=Date.now()/1e3)}play(){this.paused!==!1&&(this.paused=!1,this.birthTime=Date.now()/1e3)}setTime(time){if(this.disposed)return;time/=1e3;let age=time-this.birthTime,particleCount=Math.ceil(this.particlesPerSecond*this.particleDeathAge);this.ensureCapacity(particleCount),this.instances.length<particleCount&&(this.instances.length=particleCount),this.instGeometry.instanceCount=particleCount;for(let i=0;i<this.instances.length;i++){let instance=this.instances[i];if(i<particleCount&&this.paused===!1&&(instance===void 0||instance.getAlive(time)===!1)){let delay=this.particleDeathAge/particleCount*i;if(age>delay){let birthTime=time-(age-delay)%this.particleDeathAge;this.instances[i]=instance=this.createInstance(birthTime)}}if(instance){let{position,alive,color,opacity,size,angle}=instance.getState(time);this.arrPosition[i*3]=position.x,this.arrPosition[i*3+1]=position.y,this.arrPosition[i*3+2]=position.z,this.arrColor[i*3]=color.r,this.arrColor[i*3+1]=color.g,this.arrColor[i*3+2]=color.b,this.arrOpacity[i]=opacity,this.arrSize[i]=size,this.arrAngle[i]=angle,this.arrAlive[i]=+!!alive}}this.instGeometry.getAttribute(`iPosition`).needsUpdate=!0,this.instGeometry.getAttribute(`iColor`).needsUpdate=!0,this.instGeometry.getAttribute(`iOpacity`).needsUpdate=!0,this.instGeometry.getAttribute(`iSize`).needsUpdate=!0,this.instGeometry.getAttribute(`iAngle`).needsUpdate=!0,this.instGeometry.getAttribute(`iAlive`).needsUpdate=!0,this.needsRender=!0}setResolution(width,height){this.u.resolution.value.set(width,height)}dispose(){var _a;this.disposed=!0,this.instGeometry.dispose(),(_a=this._texture)==null||_a.dispose(),this.particleMaterial.dispose()}};function buildParticleMaterial(u){let vColor=(0,three_tsl.varyingProperty)(`vec4`,`pColor`),vAngle=(0,three_tsl.varyingProperty)(`float`,`pAngle`),vertex=(0,three_tsl.Fn)(()=>{let iPosition=(0,three_tsl.attribute)(`iPosition`,`vec3`),iColor=(0,three_tsl.attribute)(`iColor`,`vec3`),iOpacity=(0,three_tsl.attribute)(`iOpacity`,`float`),iSize=(0,three_tsl.attribute)(`iSize`,`float`),iAngle=(0,three_tsl.attribute)(`iAngle`,`float`),iAlive=(0,three_tsl.attribute)(`iAlive`,`float`),corner=three_tsl.positionGeometry.xy,a=iOpacity.mul(iAlive);vColor.assign((0,three_tsl.vec4)(iColor,a)),vAngle.assign(iAngle);let centerView=three_tsl.modelViewMatrix.mul((0,three_tsl.vec4)(iPosition,1)),p11=three_tsl.cameraProjectionMatrix.element(1).y,focal=(0,three_tsl.max)((0,three_tsl.float)(.5).mul(u.resolution.y).mul(p11),1e-4),viewSize=iSize.mul(300).div(focal).div(2),offsetView=(0,three_tsl.vec4)(corner.mul(viewSize),0,0),mvPosition=centerView.add(offsetView);return three_tsl.cameraProjectionMatrix.mul(mvPosition)}),fragment=(0,three_tsl.Fn)(()=>{(0,three_tsl.If)(vColor.a.lessThanEqual(0),()=>{(0,three_tsl.Discard)()});let coord=(0,three_tsl.vec2)(three_tsl.positionGeometry.x,three_tsl.positionGeometry.y),c=(0,three_tsl.cos)(vAngle),s=(0,three_tsl.sin)(vAngle),rotU=c.mul(coord.x).add(s.mul(coord.y)).add(.5),rotV=c.mul(coord.y).sub(s.mul(coord.x)).add(.5),texColor=u.map.sample((0,three_tsl.vec2)(rotU,rotV)),mapped=vColor.mul(texColor),srgbRgb=vColor.rgb.mul((0,three_tsl.float)(1).sub(u.useMap)).add(mapped.rgb.mul(u.useMap)),outA=vColor.a.mul((0,three_tsl.float)(1).sub(u.useMap)).add(mapped.a.mul(u.useMap));return(0,three_tsl.vec4)((0,three_tsl.sRGBTransferEOTF)(srgbRgb),outA)}),material=new three_webgpu.NodeMaterial;return material.vertexNode=vertex(),material.fragmentNode=fragment(),material}function random(base,spread){return base+spread*(Math.random()-.5)}function randomVector3(base,spread){let rand3=new three_webgpu.Vector3(Math.random()-.5,Math.random()-.5,Math.random()-.5);return new three_webgpu.Vector3().addVectors(base,new three_webgpu.Vector3().multiplyVectors(spread,rand3))}var Particle$1=class extends three_webgpu.Mesh{constructor(args){var _a,_b,_c,_d,_e,_f,_g,_h,_j,_k,_l,_m,_o,_p,_q,_r,_s,_t,_u,_v,_w,_x,_y,_z,_0,_1,_2,_3,_4,_5,_6,_7,_8,_9;let particleCount=Math.ceil(((_a=args.particlesPerSecond)==null?60:_a)*((_b=args.particleDeathAge)==null?1:_b)),pack0=new Float32Array(particleCount*4),pack1=new Float32Array(particleCount*4),pack2=new Float32Array(particleCount*4),pack3=new Float32Array(particleCount*4),pack4=new Float32Array(particleCount*4);for(let i=0;i<particleCount;i++){let i4=i*4,birthTime=((_c=args.particleDeathAge)==null?1:_c)/particleCount*i,lifeTime=(_d=args.particleDeathAge)==null?1:_d,position=(_f=(_e=args.positionBase)==null?void 0:_e.clone())==null?new three_webgpu.Vector3:_f;switch((_g=args.positionStyle)==null?`CUBE`:_g){case`CUBE`:position=randomVector3((_h=args.positionBase)==null?new three_webgpu.Vector3:_h,(_j=args.positionCubeSpread)==null?new three_webgpu.Vector3:_j);break;case`SPHERE`:{let z=2*Math.random()-1,t=Math.PI*2*Math.random(),r=Math.sqrt(1-z*z),vec=new three_webgpu.Vector3(r*Math.cos(t),r*Math.sin(t),z);position=new three_webgpu.Vector3().addVectors((_k=args.positionBase)==null?new three_webgpu.Vector3:_k,vec.multiplyScalar((_l=args.positionSphereSpread)==null?0:_l));break}}let velocity=new three_webgpu.Vector3;switch((_m=args.velocityStyle)==null?`CUBE`:_m){case`CUBE`:velocity=randomVector3((_o=args.velocityCubeBase)==null?new three_webgpu.Vector3:_o,(_p=args.velocityCubeSpread)==null?new three_webgpu.Vector3:_p);break;case`SPHERE`:{let direction=new three_webgpu.Vector3().subVectors(position,(_q=args.positionBase)==null?new three_webgpu.Vector3:_q),speed=random((_r=args.velocitySphereBase)==null?0:_r,(_s=args.velocitySphereSpread)==null?0:_s);velocity=direction.normalize().multiplyScalar(speed);break}}let acceleration=randomVector3((_t=args.accelerationBase)==null?new three_webgpu.Vector3:_t,(_u=args.accelerationSpread)==null?new three_webgpu.Vector3:_u),initialSize=random((_v=args.sizeBase)==null?.1:_v,(_w=args.sizeSpread)==null?0:_w),sizeGrowth=(_x=args.sizeGrowth)==null?0:_x,color=randomVector3(new three_webgpu.Vector3().setFromColor(new three_webgpu.Color().setFromVector3((_y=args.colorBase)==null?new three_webgpu.Vector3:_y).convertLinearToSRGB()),new three_webgpu.Vector3().setFromColor(new three_webgpu.Color().setFromVector3((_z=args.colorSpread)==null?new three_webgpu.Vector3:_z).convertLinearToSRGB())),opacity=random((_0=args.opacityBase)==null?1:_0,(_1=args.opacitySpread)==null?0:_1),angle=random((_2=args.angleBase)==null?0:_2,(_3=args.angleSpread)==null?0:_3),angleVelocity=random((_4=args.angleVelocityBase)==null?0:_4,(_5=args.angleVelocitySpread)==null?0:_5);pack0[i4]=position.x,pack0[i4+1]=position.y,pack0[i4+2]=position.z,pack0[i4+3]=birthTime,pack1[i4]=velocity.x,pack1[i4+1]=velocity.y,pack1[i4+2]=velocity.z,pack1[i4+3]=lifeTime,pack2[i4]=acceleration.x,pack2[i4+1]=acceleration.y,pack2[i4+2]=acceleration.z,pack2[i4+3]=initialSize,pack3[i4]=color.x,pack3[i4+1]=color.y,pack3[i4+2]=color.z,pack3[i4+3]=sizeGrowth,pack4[i4]=opacity,pack4[i4+1]=angle,pack4[i4+2]=angleVelocity,pack4[i4+3]=0}let quad=new three_webgpu.PlaneGeometry(1,1,1,1),geometry=new three_webgpu.InstancedBufferGeometry;geometry.index=quad.index,geometry.attributes=quad.attributes,geometry.instanceCount=particleCount,geometry.setAttribute(`iPack0`,new three_webgpu.InstancedBufferAttribute(pack0,4)),geometry.setAttribute(`iPack1`,new three_webgpu.InstancedBufferAttribute(pack1,4)),geometry.setAttribute(`iPack2`,new three_webgpu.InstancedBufferAttribute(pack2,4)),geometry.setAttribute(`iPack3`,new three_webgpu.InstancedBufferAttribute(pack3,4)),geometry.setAttribute(`iPack4`,new three_webgpu.InstancedBufferAttribute(pack4,4));let tex=(_6=args.texture)==null?null:_6;tex&&(tex.colorSpace=three_webgpu.NoColorSpace);let u={map:(0,three_tsl.texture)(tex==null?new three_webgpu.Texture:tex),useMap:(0,three_tsl.uniform)(+!!tex),uTime:(0,three_tsl.uniform)(0),resolution:(0,three_tsl.uniform)(new three_webgpu.Vector2(1,1))},material=buildGPUParticleMaterial(u);material.blending=(_7=args.blending)==null?three_webgpu.NormalBlending:_7,material.transparent=!0,material.depthWrite=!1,super(geometry,material),this.particleMaterial=material,this.u=u,this._texture=tex,this.frustumCulled=!1,this.needsRender=!0,this.startTime=Date.now()/1e3,this.disposed=!1,this.paused=!1,this.particleCount=particleCount,this.particlesPerSecond=(_8=args.particlesPerSecond)==null?60:_8,this.particleDeathAge=(_9=args.particleDeathAge)==null?1:_9}get texture(){return this._texture}set texture(value){this._texture=value,value&&(value.colorSpace=three_webgpu.NoColorSpace),this.u.map.value=value==null?new three_webgpu.Texture:value,this.u.useMap.value=+!!value,this.needsRender=!0}get blending(){return this.particleMaterial.blending}set blending(value){this.particleMaterial.blending=value}pause(){this.paused!==!0&&(this.paused=!0,this.startTime=Date.now()/1e3)}play(){this.paused!==!1&&(this.paused=!1,this.startTime=Date.now()/1e3)}setTime(time){if(this.disposed||this.paused)return;let age=time/1e3-this.startTime;this.u.uTime.value=age,this.needsRender=!0}setResolution(width,height){this.u.resolution.value.set(width,height)}dispose(){var _a;this.disposed=!0,this.geometry.dispose(),(_a=this._texture)==null||_a.dispose(),this.particleMaterial.dispose()}};function tslHsl2Rgb(c){let rgb=(0,three_tsl.clamp)((0,three_tsl.mod)(c.x.mul(6).add((0,three_tsl.vec3)(0,4,2)),6).sub(3).abs().sub(1),0,1);return c.z.add(c.y.mul(rgb.sub(.5)).mul((0,three_tsl.float)(1).sub(c.z.mul(2).sub(1).abs())))}function buildGPUParticleMaterial(u){let vColor=(0,three_tsl.varyingProperty)(`vec4`,`gpColor`),vAngle=(0,three_tsl.varyingProperty)(`float`,`gpAngle`),vertex=(0,three_tsl.Fn)(()=>{let attr=(name,type)=>(0,three_tsl.attribute)(name,type),pack0=attr(`iPack0`,`vec4`),pack1=attr(`iPack1`,`vec4`),pack2=attr(`iPack2`,`vec4`),pack3=attr(`iPack3`,`vec4`),pack4=attr(`iPack4`,`vec4`),initialPosition=pack0.xyz,birthTime=pack0.w,initialVelocity=pack1.xyz,lifeTime=pack1.w,acceleration=pack2.xyz,initialSize=pack2.w,initialColor=pack3.xyz,sizeGrowth=pack3.w,initialOpacity=pack4.x,initialAngle=pack4.y,angleVelocity=pack4.z,corner=three_tsl.positionGeometry.xy,age=(0,three_tsl.mod)(u.uTime.add(birthTime),lifeTime),normalizedAge=(0,three_tsl.clamp)(age.div(lifeTime),0,1),currentVelocity=initialVelocity.add(acceleration.mul(age)),currentPosition=initialPosition.add(currentVelocity.mul(age)),currentSize=initialSize.add(sizeGrowth.mul(normalizedAge));vAngle.assign(initialAngle.add(angleVelocity.mul(age)));let fadeIn=normalizedAge.div(.1),fadeOut=(0,three_tsl.float)(1).sub(normalizedAge).div(.2),op=initialOpacity.mul(normalizedAge.lessThan(.1).select((0,three_tsl.clamp)(fadeIn,0,1),normalizedAge.greaterThan(.8).select((0,three_tsl.clamp)(fadeOut,0,1),(0,three_tsl.float)(1)))),rgb=tslHsl2Rgb(initialColor);vColor.assign((0,three_tsl.vec4)(rgb,op));let centerView=three_tsl.modelViewMatrix.mul((0,three_tsl.vec4)(currentPosition,1)),p11=three_tsl.cameraProjectionMatrix.element(1).y,focal=(0,three_tsl.max)((0,three_tsl.float)(.5).mul(u.resolution.y).mul(p11),1e-4),viewSize=currentSize.mul(300).div(focal).div(2),offsetView=(0,three_tsl.vec4)(corner.mul(viewSize),0,0),mvPosition=centerView.add(offsetView);return three_tsl.cameraProjectionMatrix.mul(mvPosition)}),fragment=(0,three_tsl.Fn)(()=>{(0,three_tsl.If)(vColor.a.lessThanEqual(0),()=>{(0,three_tsl.Discard)()});let coord=(0,three_tsl.vec2)(three_tsl.positionGeometry.x,three_tsl.positionGeometry.y.negate()),c=(0,three_tsl.cos)(vAngle),s=(0,three_tsl.sin)(vAngle),rotU=c.mul(coord.x).add(s.mul(coord.y)).add(.5),rotV=c.mul(coord.y).sub(s.mul(coord.x)).add(.5),texColor=u.map.sample((0,three_tsl.vec2)(rotU,rotV)),mapped=vColor.mul(texColor),srgbRgb=vColor.rgb.mul((0,three_tsl.float)(1).sub(u.useMap)).add(mapped.rgb.mul(u.useMap)),outA=vColor.a.mul((0,three_tsl.float)(1).sub(u.useMap)).add(mapped.a.mul(u.useMap));return(0,three_tsl.vec4)((0,three_tsl.sRGBTransferEOTF)(srgbRgb),outA)}),material=new three_webgpu.NodeMaterial;return material.vertexNode=vertex(),material.fragmentNode=fragment(),material}exports.Airflow=Airflow,exports.Flame=Flame,exports.Particle=Particle,exports.ParticleGPU=Particle$1,exports.SpotLight=SpotLight;
|