@onerjs/core 8.32.0 → 8.32.2
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/Audio/Interfaces/ISoundOptions.d.ts +1 -1
- package/Audio/Interfaces/ISoundOptions.js.map +1 -1
- package/Audio/audioEngine.d.ts +3 -4
- package/Audio/audioEngine.js +9 -6
- package/Audio/audioEngine.js.map +1 -1
- package/Audio/sound.d.ts +33 -54
- package/Audio/sound.js +450 -718
- package/Audio/sound.js.map +1 -1
- package/AudioV2/abstractAudio/abstractAudioOutNode.d.ts +1 -1
- package/AudioV2/abstractAudio/abstractAudioOutNode.js +1 -1
- package/AudioV2/abstractAudio/abstractAudioOutNode.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSound.d.ts +1 -1
- package/AudioV2/abstractAudio/abstractSound.js +2 -2
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSoundSource.d.ts +11 -3
- package/AudioV2/abstractAudio/abstractSoundSource.js +37 -1
- package/AudioV2/abstractAudio/abstractSoundSource.js.map +1 -1
- package/AudioV2/abstractAudio/audioBus.d.ts +8 -3
- package/AudioV2/abstractAudio/audioBus.js +24 -1
- package/AudioV2/abstractAudio/audioBus.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.d.ts +1 -1
- package/AudioV2/abstractAudio/staticSound.js +2 -2
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/streamingSound.d.ts +1 -1
- package/AudioV2/abstractAudio/streamingSound.js +2 -2
- package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
- package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.d.ts +1 -1
- package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.js +3 -0
- package/AudioV2/abstractAudio/subNodes/abstractAudioSubGraph.js.map +1 -1
- package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.d.ts +1 -0
- package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.js +1 -0
- package/AudioV2/abstractAudio/subNodes/spatialAudioSubNode.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.d.ts +12 -2
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js +2 -0
- package/AudioV2/abstractAudio/subProperties/abstractSpatialAudio.js.map +1 -1
- package/AudioV2/abstractAudio/subProperties/spatialAudio.d.ts +6 -0
- package/AudioV2/abstractAudio/subProperties/spatialAudio.js +25 -0
- package/AudioV2/abstractAudio/subProperties/spatialAudio.js.map +1 -1
- package/AudioV2/webAudio/components/webAudioParameterComponent.js +2 -2
- package/AudioV2/webAudio/components/webAudioParameterComponent.js.map +1 -1
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.d.ts +3 -0
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js +14 -17
- package/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.js.map +1 -1
- package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js +1 -0
- package/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.js.map +1 -1
- package/AudioV2/webAudio/subProperties/spatialWebAudio.js +1 -0
- package/AudioV2/webAudio/subProperties/spatialWebAudio.js.map +1 -1
- package/AudioV2/webAudio/webAudioBus.d.ts +2 -7
- package/AudioV2/webAudio/webAudioBus.js +4 -24
- package/AudioV2/webAudio/webAudioBus.js.map +1 -1
- package/AudioV2/webAudio/webAudioEngine.js +1 -0
- package/AudioV2/webAudio/webAudioEngine.js.map +1 -1
- package/AudioV2/webAudio/webAudioSoundSource.d.ts +2 -7
- package/AudioV2/webAudio/webAudioSoundSource.js +3 -24
- package/AudioV2/webAudio/webAudioSoundSource.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.d.ts +3 -7
- package/AudioV2/webAudio/webAudioStaticSound.js +13 -26
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -7
- package/AudioV2/webAudio/webAudioStreamingSound.js +6 -23
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/Cameras/arcRotateCamera.js +4 -5
- package/Cameras/arcRotateCamera.js.map +1 -1
- package/Compute/computeEffect.js +5 -1
- package/Compute/computeEffect.js.map +1 -1
- package/Compute/computeShader.d.ts +4 -0
- package/Compute/computeShader.js +9 -3
- package/Compute/computeShader.js.map +1 -1
- package/Debug/debugLayer.d.ts +1 -1
- package/Debug/debugLayer.js.map +1 -1
- package/Engines/abstractEngine.d.ts +2 -2
- package/Engines/abstractEngine.js +2 -2
- package/Engines/abstractEngine.js.map +1 -1
- package/Engines/thinEngine.js +1 -1
- package/Engines/thinEngine.js.map +1 -1
- package/Engines/webgpuEngine.js +8 -9
- package/Engines/webgpuEngine.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.d.ts +74 -0
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.js +179 -0
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.js.map +1 -0
- package/FrameGraph/Node/Blocks/index.d.ts +2 -0
- package/FrameGraph/Node/Blocks/index.js +2 -0
- package/FrameGraph/Node/Blocks/index.js.map +1 -1
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.d.ts +43 -0
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.js +93 -0
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.js.map +1 -0
- package/FrameGraph/Passes/renderPass.js +2 -2
- package/FrameGraph/Passes/renderPass.js.map +1 -1
- package/FrameGraph/Tasks/Layers/baseLayerTask.d.ts +2 -0
- package/FrameGraph/Tasks/Layers/baseLayerTask.js +6 -0
- package/FrameGraph/Tasks/Layers/baseLayerTask.js.map +1 -1
- package/FrameGraph/Tasks/Layers/glowLayerTask.d.ts +1 -0
- package/FrameGraph/Tasks/Layers/glowLayerTask.js +3 -0
- package/FrameGraph/Tasks/Layers/glowLayerTask.js.map +1 -1
- package/FrameGraph/Tasks/Layers/highlightLayerTask.d.ts +1 -0
- package/FrameGraph/Tasks/Layers/highlightLayerTask.js +3 -0
- package/FrameGraph/Tasks/Layers/highlightLayerTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/computeShaderTask.d.ts +1 -0
- package/FrameGraph/Tasks/Misc/computeShaderTask.js +3 -0
- package/FrameGraph/Tasks/Misc/computeShaderTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/cullObjectsTask.d.ts +1 -0
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js +3 -0
- package/FrameGraph/Tasks/Misc/cullObjectsTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/executeTask.d.ts +1 -0
- package/FrameGraph/Tasks/Misc/executeTask.js +3 -0
- package/FrameGraph/Tasks/Misc/executeTask.js.map +1 -1
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.d.ts +32 -0
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js +63 -0
- package/FrameGraph/Tasks/Misc/lightingVolumeTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/anaglyphTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/anaglyphTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/anaglyphTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/blackAndWhiteTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/blackAndWhiteTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/blackAndWhiteTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/bloomMergeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/bloomTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/bloomTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/blurTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/blurTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/blurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/chromaticAberrationTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/chromaticAberrationTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/chromaticAberrationTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/circleOfConfusionTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/colorCorrectionTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/colorCorrectionTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/colorCorrectionTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/convolutionTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/convolutionTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/convolutionTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/customPostProcessTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/customPostProcessTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/customPostProcessTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldMergeTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/depthOfFieldTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/extractHighlightsTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/extractHighlightsTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/extractHighlightsTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/filterTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/filterTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/filterTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/fxaaTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/fxaaTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/fxaaTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/grainTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/grainTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/grainTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/imageProcessingTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/imageProcessingTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/imageProcessingTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/motionBlurTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/motionBlurTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/motionBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/passTask.d.ts +2 -0
- package/FrameGraph/Tasks/PostProcesses/passTask.js +6 -0
- package/FrameGraph/Tasks/PostProcesses/passTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.d.ts +3 -2
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/postProcessTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/screenSpaceCurvatureTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/screenSpaceCurvatureTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/screenSpaceCurvatureTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/sharpenTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/sharpenTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/sharpenTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssao2BlurTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssao2BlurTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/ssao2BlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssao2RenderingPipelineTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssao2RenderingPipelineTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/ssao2RenderingPipelineTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssao2Task.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssao2Task.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/ssao2Task.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/ssrBlurTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/ssrRenderingPipelineTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/ssrTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/ssrTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/ssrTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/taaTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/taaTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/taaTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/tonemapTask.d.ts +1 -0
- package/FrameGraph/Tasks/PostProcesses/tonemapTask.js +3 -0
- package/FrameGraph/Tasks/PostProcesses/tonemapTask.js.map +1 -1
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.d.ts +31 -0
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js +60 -0
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingBlendVolumeTask.js.map +1 -0
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.d.ts +93 -0
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js +183 -0
- package/FrameGraph/Tasks/PostProcesses/volumetricLightingTask.js.map +1 -0
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.d.ts +1 -0
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js +3 -0
- package/FrameGraph/Tasks/Rendering/csmShadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.d.ts +1 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js +3 -0
- package/FrameGraph/Tasks/Rendering/geometryRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.d.ts +1 -0
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js +4 -1
- package/FrameGraph/Tasks/Rendering/objectRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.d.ts +1 -0
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js +3 -0
- package/FrameGraph/Tasks/Rendering/shadowGeneratorTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/utilityLayerRendererTask.d.ts +1 -0
- package/FrameGraph/Tasks/Rendering/utilityLayerRendererTask.js +3 -0
- package/FrameGraph/Tasks/Rendering/utilityLayerRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.d.ts +1 -0
- package/FrameGraph/Tasks/Texture/clearTextureTask.js +4 -1
- package/FrameGraph/Tasks/Texture/clearTextureTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/copyToBackbufferColorTask.d.ts +1 -0
- package/FrameGraph/Tasks/Texture/copyToBackbufferColorTask.js +3 -0
- package/FrameGraph/Tasks/Texture/copyToBackbufferColorTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/copyToTextureTask.d.ts +1 -0
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js +21 -4
- package/FrameGraph/Tasks/Texture/copyToTextureTask.js.map +1 -1
- package/FrameGraph/Tasks/Texture/generateMipMapsTask.d.ts +1 -0
- package/FrameGraph/Tasks/Texture/generateMipMapsTask.js +3 -0
- package/FrameGraph/Tasks/Texture/generateMipMapsTask.js.map +1 -1
- package/FrameGraph/frameGraphRenderContext.d.ts +3 -2
- package/FrameGraph/frameGraphRenderContext.js +14 -5
- package/FrameGraph/frameGraphRenderContext.js.map +1 -1
- package/FrameGraph/frameGraphTask.d.ts +5 -0
- package/FrameGraph/frameGraphTask.js +11 -2
- package/FrameGraph/frameGraphTask.js.map +1 -1
- package/FrameGraph/index.d.ts +2 -0
- package/FrameGraph/index.js +2 -0
- package/FrameGraph/index.js.map +1 -1
- package/Inputs/scene.inputManager.d.ts +8 -0
- package/Inputs/scene.inputManager.js +33 -2
- package/Inputs/scene.inputManager.js.map +1 -1
- package/Lights/lightingVolume.d.ts +12 -6
- package/Lights/lightingVolume.js +218 -108
- package/Lights/lightingVolume.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.js +2 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js +2 -2
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.js.map +1 -1
- package/Meshes/geometry.d.ts +2 -1
- package/Meshes/geometry.js +6 -2
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.d.ts +2 -1
- package/Meshes/mesh.js +4 -3
- package/Meshes/mesh.js.map +1 -1
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.d.ts +9 -1
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.js +8 -0
- package/Particles/Node/Blocks/Update/updateFlowMapBlock.js.map +1 -1
- package/Particles/Node/Blocks/Update/updateNoiseBlock.d.ts +39 -0
- package/Particles/Node/Blocks/Update/updateNoiseBlock.js +102 -0
- package/Particles/Node/Blocks/Update/updateNoiseBlock.js.map +1 -0
- package/Particles/Node/Blocks/index.d.ts +1 -0
- package/Particles/Node/Blocks/index.js +1 -0
- package/Particles/Node/Blocks/index.js.map +1 -1
- package/Particles/Node/Blocks/particleSourceTextureBlock.d.ts +9 -5
- package/Particles/Node/Blocks/particleSourceTextureBlock.js +31 -13
- package/Particles/Node/Blocks/particleSourceTextureBlock.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.helper.js +39 -21
- package/Particles/Node/nodeParticleSystemSet.helper.js.map +1 -1
- package/Particles/particle.d.ts +2 -2
- package/Particles/particle.js +4 -2
- package/Particles/particle.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +1 -1
- package/Particles/thinParticleSystem.function.js +2 -2
- package/Particles/thinParticleSystem.function.js.map +1 -1
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Physics/v2/characterController.d.ts +42 -2
- package/Physics/v2/characterController.js +140 -46
- package/Physics/v2/characterController.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +2 -2
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/volumetricLightingBlendVolume.fragment.d.ts +5 -0
- package/Shaders/volumetricLightingBlendVolume.fragment.js +21 -0
- package/Shaders/volumetricLightingBlendVolume.fragment.js.map +1 -0
- package/Shaders/volumetricLightingRenderVolume.fragment.d.ts +7 -0
- package/Shaders/volumetricLightingRenderVolume.fragment.js +25 -0
- package/Shaders/volumetricLightingRenderVolume.fragment.js.map +1 -0
- package/Shaders/volumetricLightingRenderVolume.vertex.d.ts +9 -0
- package/Shaders/volumetricLightingRenderVolume.vertex.js +18 -0
- package/Shaders/volumetricLightingRenderVolume.vertex.js.map +1 -0
- package/ShadersWGSL/gaussianSplatting.vertex.js +3 -3
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/lightingVolume.compute.js +10 -4
- package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
- package/ShadersWGSL/volumetricLightingBlendVolume.fragment.d.ts +5 -0
- package/ShadersWGSL/volumetricLightingBlendVolume.fragment.js +22 -0
- package/ShadersWGSL/volumetricLightingBlendVolume.fragment.js.map +1 -0
- package/ShadersWGSL/volumetricLightingRenderVolume.fragment.d.ts +7 -0
- package/ShadersWGSL/volumetricLightingRenderVolume.fragment.js +27 -0
- package/ShadersWGSL/volumetricLightingRenderVolume.fragment.js.map +1 -0
- package/ShadersWGSL/volumetricLightingRenderVolume.vertex.d.ts +7 -0
- package/ShadersWGSL/volumetricLightingRenderVolume.vertex.js +17 -0
- package/ShadersWGSL/volumetricLightingRenderVolume.vertex.js.map +1 -0
- package/States/IStencilState.d.ts +48 -2
- package/States/IStencilState.js.map +1 -1
- package/States/alphaCullingState.d.ts +1 -0
- package/States/alphaCullingState.js +3 -0
- package/States/alphaCullingState.js.map +1 -1
- package/package.json +1 -1
|
@@ -12,6 +12,7 @@ export declare abstract class _SpatialAudio extends AbstractSpatialAudio {
|
|
|
12
12
|
private _distanceModel;
|
|
13
13
|
private _maxDistance;
|
|
14
14
|
private _minDistance;
|
|
15
|
+
private _orientation;
|
|
15
16
|
private _panningModel;
|
|
16
17
|
private _position;
|
|
17
18
|
private _rolloffFactor;
|
|
@@ -21,6 +22,8 @@ export declare abstract class _SpatialAudio extends AbstractSpatialAudio {
|
|
|
21
22
|
/** @internal */
|
|
22
23
|
constructor(subGraph: _AbstractAudioSubGraph);
|
|
23
24
|
/** @internal */
|
|
25
|
+
dispose(): void;
|
|
26
|
+
/** @internal */
|
|
24
27
|
get coneInnerAngle(): number;
|
|
25
28
|
set coneInnerAngle(value: number);
|
|
26
29
|
/** @internal */
|
|
@@ -41,6 +44,9 @@ export declare abstract class _SpatialAudio extends AbstractSpatialAudio {
|
|
|
41
44
|
get minDistance(): number;
|
|
42
45
|
set minDistance(value: number);
|
|
43
46
|
/** @internal */
|
|
47
|
+
get orientation(): Vector3;
|
|
48
|
+
set orientation(value: Vector3);
|
|
49
|
+
/** @internal */
|
|
44
50
|
get panningModel(): PanningModelType;
|
|
45
51
|
set panningModel(value: PanningModelType);
|
|
46
52
|
/** @internal */
|
|
@@ -15,11 +15,13 @@ export class _SpatialAudio extends AbstractSpatialAudio {
|
|
|
15
15
|
this._rolloffFactor = _SpatialAudioDefaults.rolloffFactor;
|
|
16
16
|
const subNode = _GetSpatialAudioSubNode(subGraph);
|
|
17
17
|
if (subNode) {
|
|
18
|
+
this._orientation = subNode.orientation.clone();
|
|
18
19
|
this._position = subNode.position.clone();
|
|
19
20
|
this._rotation = subNode.rotation.clone();
|
|
20
21
|
this._rotationQuaternion = subNode.rotationQuaternion.clone();
|
|
21
22
|
}
|
|
22
23
|
else {
|
|
24
|
+
this._orientation = _SpatialAudioDefaults.orientation.clone();
|
|
23
25
|
this._position = _SpatialAudioDefaults.position.clone();
|
|
24
26
|
this._rotation = _SpatialAudioDefaults.rotation.clone();
|
|
25
27
|
this._rotationQuaternion = _SpatialAudioDefaults.rotationQuaternion.clone();
|
|
@@ -29,6 +31,11 @@ export class _SpatialAudio extends AbstractSpatialAudio {
|
|
|
29
31
|
this._subGraph = subGraph;
|
|
30
32
|
}
|
|
31
33
|
/** @internal */
|
|
34
|
+
dispose() {
|
|
35
|
+
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
36
|
+
this._subGraph.removeSubNodeAsync(_GetSpatialAudioSubNode(this._subGraph));
|
|
37
|
+
}
|
|
38
|
+
/** @internal */
|
|
32
39
|
get coneInnerAngle() {
|
|
33
40
|
return this._coneInnerAngle;
|
|
34
41
|
}
|
|
@@ -84,6 +91,14 @@ export class _SpatialAudio extends AbstractSpatialAudio {
|
|
|
84
91
|
_SetSpatialAudioProperty(this._subGraph, "minDistance", value);
|
|
85
92
|
}
|
|
86
93
|
/** @internal */
|
|
94
|
+
get orientation() {
|
|
95
|
+
return this._orientation;
|
|
96
|
+
}
|
|
97
|
+
set orientation(value) {
|
|
98
|
+
this._orientation = value;
|
|
99
|
+
this._updateRotation();
|
|
100
|
+
}
|
|
101
|
+
/** @internal */
|
|
87
102
|
get panningModel() {
|
|
88
103
|
return this._panningModel;
|
|
89
104
|
}
|
|
@@ -179,10 +194,20 @@ export class _SpatialAudio extends AbstractSpatialAudio {
|
|
|
179
194
|
if (!subNode.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)) {
|
|
180
195
|
subNode.rotationQuaternion.copyFrom(this._rotationQuaternion);
|
|
181
196
|
subNode._updateRotation();
|
|
197
|
+
this._orientation.copyFrom(subNode.orientation);
|
|
198
|
+
this._rotation.copyFrom(subNode.rotation);
|
|
182
199
|
}
|
|
183
200
|
else if (!subNode.rotation.equalsWithEpsilon(this._rotation)) {
|
|
184
201
|
subNode.rotation.copyFrom(this._rotation);
|
|
185
202
|
subNode._updateRotation();
|
|
203
|
+
this._orientation.copyFrom(subNode.orientation);
|
|
204
|
+
this._rotationQuaternion.copyFrom(subNode.rotationQuaternion);
|
|
205
|
+
}
|
|
206
|
+
else if (!subNode.orientation.equalsWithEpsilon(this._orientation)) {
|
|
207
|
+
subNode.orientation.copyFrom(this._orientation);
|
|
208
|
+
subNode._updateRotation();
|
|
209
|
+
this._rotation.copyFrom(subNode.rotation);
|
|
210
|
+
this._rotationQuaternion.copyFrom(subNode.rotationQuaternion);
|
|
186
211
|
}
|
|
187
212
|
}
|
|
188
213
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatialAudio.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/abstractAudio/subProperties/spatialAudio.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Quaternion, Vector3 } from \"../../../Maths/math.vector\";\nimport type { Node } from \"../../../node\";\nimport type { Nullable } from \"../../../types\";\nimport { SpatialAudioAttachmentType } from \"../../spatialAudioAttachmentType\";\nimport type { _AbstractAudioSubGraph } from \"../subNodes/abstractAudioSubGraph\";\nimport { AudioSubNode } from \"../subNodes/audioSubNode\";\nimport type { _SpatialAudioSubNode } from \"../subNodes/spatialAudioSubNode\";\nimport { _GetSpatialAudioSubNode, _SetSpatialAudioProperty } from \"../subNodes/spatialAudioSubNode\";\nimport { _SpatialAudioDefaults, AbstractSpatialAudio } from \"./abstractSpatialAudio\";\n\n/** @internal */\nexport abstract class _SpatialAudio extends AbstractSpatialAudio {\n private _coneInnerAngle: number = _SpatialAudioDefaults.coneInnerAngle;\n private _coneOuterAngle: number = _SpatialAudioDefaults.coneOuterAngle;\n private _coneOuterVolume: number = _SpatialAudioDefaults.coneOuterVolume;\n private _distanceModel: DistanceModelType = _SpatialAudioDefaults.distanceModel;\n private _maxDistance: number = _SpatialAudioDefaults.maxDistance;\n private _minDistance: number = _SpatialAudioDefaults.minDistance;\n private _panningModel: PanningModelType = _SpatialAudioDefaults.panningModel;\n private _position: Vector3;\n private _rolloffFactor: number = _SpatialAudioDefaults.rolloffFactor;\n private _rotation: Vector3;\n private _rotationQuaternion: Quaternion;\n private _subGraph: _AbstractAudioSubGraph;\n\n /** @internal */\n public constructor(subGraph: _AbstractAudioSubGraph) {\n super();\n\n const subNode = _GetSpatialAudioSubNode(subGraph);\n if (subNode) {\n this._position = subNode.position.clone();\n this._rotation = subNode.rotation.clone();\n this._rotationQuaternion = subNode.rotationQuaternion.clone();\n } else {\n this._position = _SpatialAudioDefaults.position.clone();\n this._rotation = _SpatialAudioDefaults.rotation.clone();\n this._rotationQuaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n subGraph.createAndAddSubNodeAsync(AudioSubNode.SPATIAL);\n }\n\n this._subGraph = subGraph;\n }\n\n /** @internal */\n public get coneInnerAngle(): number {\n return this._coneInnerAngle;\n }\n\n public set coneInnerAngle(value: number) {\n this._coneInnerAngle = value;\n _SetSpatialAudioProperty(this._subGraph, \"coneInnerAngle\", value);\n }\n\n /** @internal */\n public get coneOuterAngle(): number {\n return this._coneOuterAngle;\n }\n\n public set coneOuterAngle(value: number) {\n this._coneOuterAngle = value;\n _SetSpatialAudioProperty(this._subGraph, \"coneOuterAngle\", value);\n }\n\n /** @internal */\n public get coneOuterVolume(): number {\n return this._coneOuterVolume;\n }\n\n public set coneOuterVolume(value: number) {\n this._coneOuterVolume = value;\n _SetSpatialAudioProperty(this._subGraph, \"coneOuterVolume\", value);\n }\n\n /** @internal */\n public get distanceModel(): DistanceModelType {\n return this._distanceModel;\n }\n\n public set distanceModel(value: DistanceModelType) {\n this._distanceModel = value;\n _SetSpatialAudioProperty(this._subGraph, \"distanceModel\", value);\n }\n\n /** @internal */\n public get isAttached(): boolean {\n return this._subGraph.getSubNode<_SpatialAudioSubNode>(AudioSubNode.SPATIAL)?.isAttached ?? false;\n }\n\n /** @internal */\n public get maxDistance(): number {\n return this._maxDistance;\n }\n\n public set maxDistance(value: number) {\n if (value <= 0) {\n value = 0.000001;\n }\n\n this._maxDistance = value;\n _SetSpatialAudioProperty(this._subGraph, \"maxDistance\", value);\n }\n\n /** @internal */\n public get minDistance(): number {\n return this._minDistance;\n }\n\n public set minDistance(value: number) {\n this._minDistance = value;\n _SetSpatialAudioProperty(this._subGraph, \"minDistance\", value);\n }\n\n /** @internal */\n public get panningModel(): PanningModelType {\n return this._panningModel;\n }\n\n public set panningModel(value: PanningModelType) {\n this._panningModel = value;\n _SetSpatialAudioProperty(this._subGraph, \"panningModel\", value);\n }\n\n /** @internal */\n public get position(): Vector3 {\n return this._position;\n }\n\n public set position(value: Vector3) {\n this._position = value;\n this._updatePosition();\n }\n\n /** @internal */\n public get rolloffFactor(): number {\n return this._rolloffFactor;\n }\n\n public set rolloffFactor(value: number) {\n this._rolloffFactor = value;\n _SetSpatialAudioProperty(this._subGraph, \"rolloffFactor\", value);\n }\n\n /** @internal */\n public get rotation(): Vector3 {\n return this._rotation;\n }\n\n public set rotation(value: Vector3) {\n this._rotation = value;\n this._updateRotation();\n }\n\n /** @internal */\n public get rotationQuaternion(): Quaternion {\n return this._rotationQuaternion;\n }\n\n public set rotationQuaternion(value: Quaternion) {\n this._rotationQuaternion = value;\n this._updateRotation();\n }\n\n /**\n * Attaches to a scene node.\n *\n * Detaches automatically before attaching to the given scene node.\n * If `sceneNode` is `null` it is the same as calling `detach()`.\n *\n * @param sceneNode The scene node to attach to, or `null` to detach.\n * @param useBoundingBox Whether to use the bounding box of the node for positioning. Defaults to `false`.\n * @param attachmentType Whether to attach to the node's position and/or rotation. Defaults to `PositionAndRotation`.\n */\n public attach(sceneNode: Nullable<Node>, useBoundingBox: boolean = false, attachmentType: SpatialAudioAttachmentType = SpatialAudioAttachmentType.PositionAndRotation): void {\n _GetSpatialAudioSubNode(this._subGraph)?.attach(sceneNode, useBoundingBox, attachmentType);\n }\n\n /**\n * Detaches from the scene node if attached.\n */\n public detach(): void {\n _GetSpatialAudioSubNode(this._subGraph)?.detach();\n }\n\n /** @internal */\n public update(): void {\n const subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n\n if (subNode.isAttached) {\n subNode.update();\n } else {\n this._updatePosition(subNode);\n this._updateRotation(subNode);\n }\n }\n\n private _updatePosition(subNode: Nullable<_SpatialAudioSubNode> = null): void {\n if (!subNode) {\n subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n }\n\n const position = subNode.position;\n if (!position.equalsWithEpsilon(this._position)) {\n subNode.position.copyFrom(this._position);\n subNode._updatePosition();\n }\n }\n\n private _updateRotation(subNode: Nullable<_SpatialAudioSubNode> = null): void {\n if (!subNode) {\n subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n }\n\n if (!subNode.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)) {\n subNode.rotationQuaternion.copyFrom(this._rotationQuaternion);\n subNode._updateRotation();\n } else if (!subNode.rotation.equalsWithEpsilon(this._rotation)) {\n subNode.rotation.copyFrom(this._rotation);\n subNode._updateRotation();\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"spatialAudio.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/abstractAudio/subProperties/spatialAudio.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Quaternion, Vector3 } from \"../../../Maths/math.vector\";\nimport type { Node } from \"../../../node\";\nimport type { Nullable } from \"../../../types\";\nimport { SpatialAudioAttachmentType } from \"../../spatialAudioAttachmentType\";\nimport type { _AbstractAudioSubGraph } from \"../subNodes/abstractAudioSubGraph\";\nimport { AudioSubNode } from \"../subNodes/audioSubNode\";\nimport type { _SpatialAudioSubNode } from \"../subNodes/spatialAudioSubNode\";\nimport { _GetSpatialAudioSubNode, _SetSpatialAudioProperty } from \"../subNodes/spatialAudioSubNode\";\nimport { _SpatialAudioDefaults, AbstractSpatialAudio } from \"./abstractSpatialAudio\";\n\n/** @internal */\nexport abstract class _SpatialAudio extends AbstractSpatialAudio {\n private _coneInnerAngle: number = _SpatialAudioDefaults.coneInnerAngle;\n private _coneOuterAngle: number = _SpatialAudioDefaults.coneOuterAngle;\n private _coneOuterVolume: number = _SpatialAudioDefaults.coneOuterVolume;\n private _distanceModel: DistanceModelType = _SpatialAudioDefaults.distanceModel;\n private _maxDistance: number = _SpatialAudioDefaults.maxDistance;\n private _minDistance: number = _SpatialAudioDefaults.minDistance;\n private _orientation: Vector3;\n private _panningModel: PanningModelType = _SpatialAudioDefaults.panningModel;\n private _position: Vector3;\n private _rolloffFactor: number = _SpatialAudioDefaults.rolloffFactor;\n private _rotation: Vector3;\n private _rotationQuaternion: Quaternion;\n private _subGraph: _AbstractAudioSubGraph;\n\n /** @internal */\n public constructor(subGraph: _AbstractAudioSubGraph) {\n super();\n\n const subNode = _GetSpatialAudioSubNode(subGraph);\n if (subNode) {\n this._orientation = subNode.orientation.clone();\n this._position = subNode.position.clone();\n this._rotation = subNode.rotation.clone();\n this._rotationQuaternion = subNode.rotationQuaternion.clone();\n } else {\n this._orientation = _SpatialAudioDefaults.orientation.clone();\n this._position = _SpatialAudioDefaults.position.clone();\n this._rotation = _SpatialAudioDefaults.rotation.clone();\n this._rotationQuaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\n\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n subGraph.createAndAddSubNodeAsync(AudioSubNode.SPATIAL);\n }\n\n this._subGraph = subGraph;\n }\n\n /** @internal */\n public dispose(): void {\n // eslint-disable-next-line @typescript-eslint/no-floating-promises\n this._subGraph.removeSubNodeAsync(_GetSpatialAudioSubNode(this._subGraph));\n }\n\n /** @internal */\n public get coneInnerAngle(): number {\n return this._coneInnerAngle;\n }\n\n public set coneInnerAngle(value: number) {\n this._coneInnerAngle = value;\n _SetSpatialAudioProperty(this._subGraph, \"coneInnerAngle\", value);\n }\n\n /** @internal */\n public get coneOuterAngle(): number {\n return this._coneOuterAngle;\n }\n\n public set coneOuterAngle(value: number) {\n this._coneOuterAngle = value;\n _SetSpatialAudioProperty(this._subGraph, \"coneOuterAngle\", value);\n }\n\n /** @internal */\n public get coneOuterVolume(): number {\n return this._coneOuterVolume;\n }\n\n public set coneOuterVolume(value: number) {\n this._coneOuterVolume = value;\n _SetSpatialAudioProperty(this._subGraph, \"coneOuterVolume\", value);\n }\n\n /** @internal */\n public get distanceModel(): DistanceModelType {\n return this._distanceModel;\n }\n\n public set distanceModel(value: DistanceModelType) {\n this._distanceModel = value;\n _SetSpatialAudioProperty(this._subGraph, \"distanceModel\", value);\n }\n\n /** @internal */\n public get isAttached(): boolean {\n return this._subGraph.getSubNode<_SpatialAudioSubNode>(AudioSubNode.SPATIAL)?.isAttached ?? false;\n }\n\n /** @internal */\n public get maxDistance(): number {\n return this._maxDistance;\n }\n\n public set maxDistance(value: number) {\n if (value <= 0) {\n value = 0.000001;\n }\n\n this._maxDistance = value;\n _SetSpatialAudioProperty(this._subGraph, \"maxDistance\", value);\n }\n\n /** @internal */\n public get minDistance(): number {\n return this._minDistance;\n }\n\n public set minDistance(value: number) {\n this._minDistance = value;\n _SetSpatialAudioProperty(this._subGraph, \"minDistance\", value);\n }\n\n /** @internal */\n public get orientation(): Vector3 {\n return this._orientation;\n }\n\n public set orientation(value: Vector3) {\n this._orientation = value;\n this._updateRotation();\n }\n\n /** @internal */\n public get panningModel(): PanningModelType {\n return this._panningModel;\n }\n\n public set panningModel(value: PanningModelType) {\n this._panningModel = value;\n _SetSpatialAudioProperty(this._subGraph, \"panningModel\", value);\n }\n\n /** @internal */\n public get position(): Vector3 {\n return this._position;\n }\n\n public set position(value: Vector3) {\n this._position = value;\n this._updatePosition();\n }\n\n /** @internal */\n public get rolloffFactor(): number {\n return this._rolloffFactor;\n }\n\n public set rolloffFactor(value: number) {\n this._rolloffFactor = value;\n _SetSpatialAudioProperty(this._subGraph, \"rolloffFactor\", value);\n }\n\n /** @internal */\n public get rotation(): Vector3 {\n return this._rotation;\n }\n\n public set rotation(value: Vector3) {\n this._rotation = value;\n this._updateRotation();\n }\n\n /** @internal */\n public get rotationQuaternion(): Quaternion {\n return this._rotationQuaternion;\n }\n\n public set rotationQuaternion(value: Quaternion) {\n this._rotationQuaternion = value;\n this._updateRotation();\n }\n\n /**\n * Attaches to a scene node.\n *\n * Detaches automatically before attaching to the given scene node.\n * If `sceneNode` is `null` it is the same as calling `detach()`.\n *\n * @param sceneNode The scene node to attach to, or `null` to detach.\n * @param useBoundingBox Whether to use the bounding box of the node for positioning. Defaults to `false`.\n * @param attachmentType Whether to attach to the node's position and/or rotation. Defaults to `PositionAndRotation`.\n */\n public attach(sceneNode: Nullable<Node>, useBoundingBox: boolean = false, attachmentType: SpatialAudioAttachmentType = SpatialAudioAttachmentType.PositionAndRotation): void {\n _GetSpatialAudioSubNode(this._subGraph)?.attach(sceneNode, useBoundingBox, attachmentType);\n }\n\n /**\n * Detaches from the scene node if attached.\n */\n public detach(): void {\n _GetSpatialAudioSubNode(this._subGraph)?.detach();\n }\n\n /** @internal */\n public update(): void {\n const subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n\n if (subNode.isAttached) {\n subNode.update();\n } else {\n this._updatePosition(subNode);\n this._updateRotation(subNode);\n }\n }\n\n private _updatePosition(subNode: Nullable<_SpatialAudioSubNode> = null): void {\n if (!subNode) {\n subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n }\n\n const position = subNode.position;\n if (!position.equalsWithEpsilon(this._position)) {\n subNode.position.copyFrom(this._position);\n subNode._updatePosition();\n }\n }\n\n private _updateRotation(subNode: Nullable<_SpatialAudioSubNode> = null): void {\n if (!subNode) {\n subNode = _GetSpatialAudioSubNode(this._subGraph);\n\n if (!subNode) {\n return;\n }\n }\n\n if (!subNode.rotationQuaternion.equalsWithEpsilon(this._rotationQuaternion)) {\n subNode.rotationQuaternion.copyFrom(this._rotationQuaternion);\n subNode._updateRotation();\n this._orientation.copyFrom(subNode.orientation);\n this._rotation.copyFrom(subNode.rotation);\n } else if (!subNode.rotation.equalsWithEpsilon(this._rotation)) {\n subNode.rotation.copyFrom(this._rotation);\n subNode._updateRotation();\n this._orientation.copyFrom(subNode.orientation);\n this._rotationQuaternion.copyFrom(subNode.rotationQuaternion);\n } else if (!subNode.orientation.equalsWithEpsilon(this._orientation)) {\n subNode.orientation.copyFrom(this._orientation);\n subNode._updateRotation();\n this._rotation.copyFrom(subNode.rotation);\n this._rotationQuaternion.copyFrom(subNode.rotationQuaternion);\n }\n }\n}\n"]}
|
|
@@ -44,7 +44,7 @@ export class _WebAudioParameterComponent {
|
|
|
44
44
|
const shape = typeof options?.shape === "string" ? options.shape : "linear" /* AudioParameterRampShape.Linear */;
|
|
45
45
|
const startTime = this._engine.currentTime;
|
|
46
46
|
if (shape === "none" /* AudioParameterRampShape.None */) {
|
|
47
|
-
this._param.cancelScheduledValues(
|
|
47
|
+
this._param.cancelScheduledValues(0);
|
|
48
48
|
this._param.value = this._targetValue = value;
|
|
49
49
|
this._rampEndTime = startTime;
|
|
50
50
|
return;
|
|
@@ -54,7 +54,7 @@ export class _WebAudioParameterComponent {
|
|
|
54
54
|
this._param.setValueAtTime((this._targetValue = value), startTime);
|
|
55
55
|
return;
|
|
56
56
|
}
|
|
57
|
-
this._param.cancelScheduledValues(
|
|
57
|
+
this._param.cancelScheduledValues(0);
|
|
58
58
|
this._param.setValueCurveAtTime(_GetAudioParamCurveValues(shape, this._param.value, (this._targetValue = value)), startTime, duration);
|
|
59
59
|
this._rampEndTime = startTime + duration;
|
|
60
60
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webAudioParameterComponent.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/components/webAudioParameterComponent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D;;;;;GAKG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,gBAAgB;AAChB,MAAM,OAAO,2BAA2B;IAMpC,gBAAgB;IAChB,YAAY,MAAuB,EAAE,KAAiB;QAN9C,iBAAY,GAAW,CAAC,CAAC;QAO7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,gBAAgB;IAChB,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;IACxD,CAAC;IAED,gBAAgB;IAChB,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB;IAChB,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,gBAAgB;IACT,OAAO;QACV,IAAI,CAAC,MAAM,GAAG,IAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAa,EAAE,UAAyD,IAAI;QAC9F,MAAM,KAAK,GAAG,OAAO,OAAO,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,8CAA+B,CAAC;QAElG,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE3C,IAAI,KAAK,8CAAiC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,
|
|
1
|
+
{"version":3,"file":"webAudioParameterComponent.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/components/webAudioParameterComponent.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,yBAAyB,EAAE,MAAM,kBAAkB,CAAC;AAG7D;;;;;GAKG;AACH,MAAM,eAAe,GAAG,QAAQ,CAAC;AAEjC,gBAAgB;AAChB,MAAM,OAAO,2BAA2B;IAMpC,gBAAgB;IAChB,YAAY,MAAuB,EAAE,KAAiB;QAN9C,iBAAY,GAAW,CAAC,CAAC;QAO7B,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC;QACtB,IAAI,CAAC,MAAM,GAAG,KAAK,CAAC;QACpB,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,KAAK,CAAC;IACpC,CAAC;IAED,gBAAgB;IAChB,IAAW,SAAS;QAChB,OAAO,IAAI,CAAC,OAAO,CAAC,WAAW,GAAG,IAAI,CAAC,YAAY,CAAC;IACxD,CAAC;IAED,gBAAgB;IAChB,IAAW,WAAW;QAClB,OAAO,IAAI,CAAC,YAAY,CAAC;IAC7B,CAAC;IAED,IAAW,WAAW,CAAC,KAAa;QAChC,IAAI,CAAC,cAAc,CAAC,KAAK,CAAC,CAAC;IAC/B,CAAC;IAED,gBAAgB;IAChB,IAAW,KAAK;QACZ,OAAO,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC;IAC7B,CAAC;IAED,gBAAgB;IACT,OAAO;QACV,IAAI,CAAC,MAAM,GAAG,IAAK,CAAC;QACpB,IAAI,CAAC,OAAO,GAAG,IAAK,CAAC;IACzB,CAAC;IAED;;;;OAIG;IACI,cAAc,CAAC,KAAa,EAAE,UAAyD,IAAI;QAC9F,MAAM,KAAK,GAAG,OAAO,OAAO,EAAE,KAAK,KAAK,QAAQ,CAAC,CAAC,CAAC,OAAO,CAAC,KAAK,CAAC,CAAC,8CAA+B,CAAC;QAElG,MAAM,SAAS,GAAG,IAAI,CAAC,OAAO,CAAC,WAAW,CAAC;QAE3C,IAAI,KAAK,8CAAiC,EAAE,CAAC;YACzC,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;YACrC,IAAI,CAAC,MAAM,CAAC,KAAK,GAAG,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC;YAC9C,IAAI,CAAC,YAAY,GAAG,SAAS,CAAC;YAC9B,OAAO;QACX,CAAC;QAED,IAAI,QAAQ,GAAG,OAAO,OAAO,EAAE,QAAQ,KAAK,QAAQ,CAAC,CAAC,CAAC,IAAI,CAAC,GAAG,CAAC,OAAO,CAAC,QAAQ,EAAE,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,CAAC;QAE3J,IAAI,CAAC,QAAQ,GAAG,IAAI,CAAC,GAAG,CAAC,IAAI,CAAC,OAAO,CAAC,qBAAqB,EAAE,QAAQ,CAAC,CAAC,GAAG,eAAe,EAAE,CAAC;YACxF,IAAI,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,EAAE,SAAS,CAAC,CAAC;YACnE,OAAO;QACX,CAAC;QAED,IAAI,CAAC,MAAM,CAAC,qBAAqB,CAAC,CAAC,CAAC,CAAC;QACrC,IAAI,CAAC,MAAM,CAAC,mBAAmB,CAAC,yBAAyB,CAAC,KAAK,EAAE,IAAI,CAAC,MAAM,CAAC,KAAK,EAAE,CAAC,IAAI,CAAC,YAAY,GAAG,KAAK,CAAC,CAAC,EAAE,SAAS,EAAE,QAAQ,CAAC,CAAC;QAEvI,IAAI,CAAC,YAAY,GAAG,SAAS,GAAG,QAAQ,CAAC;IAC7C,CAAC;CACJ","sourcesContent":["import type { Nullable } from \"../../../types\";\nimport type { IAudioParameterRampOptions } from \"../../audioParameter\";\nimport { AudioParameterRampShape } from \"../../audioParameter\";\nimport { _GetAudioParamCurveValues } from \"../../audioUtils\";\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\n\n/**\n * Minimum duration in seconds for a ramp to be considered valid.\n *\n * If the duration is less than this value, the value will be set immediately instead of being ramped smoothly since\n * there is no perceptual difference for such short durations, so a ramp is not needed.\n */\nconst MinRampDuration = 0.000001;\n\n/** @internal */\nexport class _WebAudioParameterComponent {\n private _rampEndTime: number = 0;\n private _engine: _WebAudioEngine;\n private _param: AudioParam;\n private _targetValue: number;\n\n /** @internal */\n constructor(engine: _WebAudioEngine, param: AudioParam) {\n this._engine = engine;\n this._param = param;\n this._targetValue = param.value;\n }\n\n /** @internal */\n public get isRamping(): boolean {\n return this._engine.currentTime < this._rampEndTime;\n }\n\n /** @internal */\n public get targetValue(): number {\n return this._targetValue;\n }\n\n public set targetValue(value: number) {\n this.setTargetValue(value);\n }\n\n /** @internal */\n public get value(): number {\n return this._param.value;\n }\n\n /** @internal */\n public dispose(): void {\n this._param = null!;\n this._engine = null!;\n }\n\n /**\n * Sets the target value of the audio parameter with an optional ramping duration and shape.\n *\n * @internal\n */\n public setTargetValue(value: number, options: Nullable<Partial<IAudioParameterRampOptions>> = null): void {\n const shape = typeof options?.shape === \"string\" ? options.shape : AudioParameterRampShape.Linear;\n\n const startTime = this._engine.currentTime;\n\n if (shape === AudioParameterRampShape.None) {\n this._param.cancelScheduledValues(0);\n this._param.value = this._targetValue = value;\n this._rampEndTime = startTime;\n return;\n }\n\n let duration = typeof options?.duration === \"number\" ? Math.max(options.duration, this._engine.parameterRampDuration) : this._engine.parameterRampDuration;\n\n if ((duration = Math.max(this._engine.parameterRampDuration, duration)) < MinRampDuration) {\n this._param.setValueAtTime((this._targetValue = value), startTime);\n return;\n }\n\n this._param.cancelScheduledValues(0);\n this._param.setValueCurveAtTime(_GetAudioParamCurveValues(shape, this._param.value, (this._targetValue = value)), startTime, duration);\n\n this._rampEndTime = startTime + duration;\n }\n}\n"]}
|
|
@@ -6,6 +6,7 @@ import type { IWebAudioInNode } from "../webAudioNode.js";
|
|
|
6
6
|
export declare function _CreateSpatialAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_SpatialAudioSubNode>;
|
|
7
7
|
/** @internal */
|
|
8
8
|
export declare class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
|
|
9
|
+
private _lastOrientation;
|
|
9
10
|
private _lastPosition;
|
|
10
11
|
private _lastRotation;
|
|
11
12
|
private _lastRotationQuaternion;
|
|
@@ -18,6 +19,8 @@ export declare class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
|
|
|
18
19
|
/** @internal */
|
|
19
20
|
readonly engine: _WebAudioEngine;
|
|
20
21
|
/** @internal */
|
|
22
|
+
readonly orientation: Vector3;
|
|
23
|
+
/** @internal */
|
|
21
24
|
readonly position: Vector3;
|
|
22
25
|
/** @internal */
|
|
23
26
|
readonly rotation: Vector3;
|
|
@@ -4,7 +4,6 @@ import { _SpatialAudioDefaults } from "../../abstractAudio/subProperties/abstrac
|
|
|
4
4
|
import { _WebAudioParameterComponent } from "../components/webAudioParameterComponent.js";
|
|
5
5
|
const TmpMatrix = Matrix.Zero();
|
|
6
6
|
const TmpQuaternion = new Quaternion();
|
|
7
|
-
const TmpVector = Vector3.Zero();
|
|
8
7
|
function D2r(degrees) {
|
|
9
8
|
return (degrees * Math.PI) / 180;
|
|
10
9
|
}
|
|
@@ -21,10 +20,13 @@ export class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
|
|
|
21
20
|
/** @internal */
|
|
22
21
|
constructor(engine) {
|
|
23
22
|
super(engine);
|
|
23
|
+
this._lastOrientation = Vector3.Zero();
|
|
24
24
|
this._lastPosition = Vector3.Zero();
|
|
25
25
|
this._lastRotation = Vector3.Zero();
|
|
26
26
|
this._lastRotationQuaternion = new Quaternion();
|
|
27
27
|
/** @internal */
|
|
28
|
+
this.orientation = _SpatialAudioDefaults.orientation.clone();
|
|
29
|
+
/** @internal */
|
|
28
30
|
this.position = _SpatialAudioDefaults.position.clone();
|
|
29
31
|
/** @internal */
|
|
30
32
|
this.rotation = _SpatialAudioDefaults.rotation.clone();
|
|
@@ -122,11 +124,6 @@ export class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
|
|
|
122
124
|
if (this._lastPosition.equalsWithEpsilon(this.position)) {
|
|
123
125
|
return;
|
|
124
126
|
}
|
|
125
|
-
// If attached and there is a ramp in progress, we assume another update is coming soon that we can wait for.
|
|
126
|
-
// We don't do this for unattached nodes because there may not be another update coming.
|
|
127
|
-
if (this.isAttached && (this._positionX.isRamping || this._positionY.isRamping || this._positionZ.isRamping)) {
|
|
128
|
-
return;
|
|
129
|
-
}
|
|
130
127
|
this._positionX.targetValue = this.position.x;
|
|
131
128
|
this._positionY.targetValue = this.position.y;
|
|
132
129
|
this._positionZ.targetValue = this.position.z;
|
|
@@ -134,27 +131,27 @@ export class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {
|
|
|
134
131
|
}
|
|
135
132
|
/** @internal */
|
|
136
133
|
_updateRotation() {
|
|
137
|
-
|
|
138
|
-
// We don't do this for unattached nodes because there may not be another update coming.
|
|
139
|
-
if (this.isAttached && (this._orientationX.isRamping || this._orientationY.isRamping || this._orientationZ.isRamping)) {
|
|
140
|
-
return;
|
|
141
|
-
}
|
|
134
|
+
let rotated = false;
|
|
142
135
|
if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {
|
|
143
136
|
TmpQuaternion.copyFrom(this.rotationQuaternion);
|
|
144
137
|
this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);
|
|
138
|
+
rotated = true;
|
|
145
139
|
}
|
|
146
140
|
else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {
|
|
147
141
|
Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);
|
|
148
142
|
this._lastRotation.copyFrom(this.rotation);
|
|
143
|
+
rotated = true;
|
|
149
144
|
}
|
|
150
|
-
else {
|
|
145
|
+
else if (this._lastOrientation.equalsWithEpsilon(this.orientation)) {
|
|
151
146
|
return;
|
|
152
147
|
}
|
|
153
|
-
|
|
154
|
-
|
|
155
|
-
|
|
156
|
-
|
|
157
|
-
this.
|
|
148
|
+
if (rotated) {
|
|
149
|
+
Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);
|
|
150
|
+
Vector3.TransformNormalToRef(Vector3.RightReadOnly, TmpMatrix, this.orientation);
|
|
151
|
+
}
|
|
152
|
+
this._orientationX.targetValue = this.orientation.x;
|
|
153
|
+
this._orientationY.targetValue = this.orientation.y;
|
|
154
|
+
this._orientationZ.targetValue = this.orientation.z;
|
|
158
155
|
}
|
|
159
156
|
_connect(node) {
|
|
160
157
|
const connected = super._connect(node);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatialWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\r\nimport { _SpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\r\nimport { _SpatialAudioDefaults } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\r\nimport { _WebAudioParameterComponent } from \"../components/webAudioParameterComponent\";\r\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\r\nimport type { IWebAudioInNode } from \"../webAudioNode\";\r\n\r\nconst TmpMatrix = Matrix.Zero();\r\nconst TmpQuaternion = new Quaternion();\r\nconst TmpVector = Vector3.Zero();\r\n\r\nfunction D2r(degrees: number): number {\r\n return (degrees * Math.PI) / 180;\r\n}\r\n\r\nfunction R2d(radians: number): number {\r\n return (radians * 180) / Math.PI;\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line @typescript-eslint/require-await\r\nexport async function _CreateSpatialAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_SpatialAudioSubNode> {\r\n return new _SpatialWebAudioSubNode(engine);\r\n}\r\n\r\n/** @internal */\r\nexport class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {\r\n private _lastPosition: Vector3 = Vector3.Zero();\r\n private _lastRotation: Vector3 = Vector3.Zero();\r\n private _lastRotationQuaternion: Quaternion = new Quaternion();\r\n private _orientationX: _WebAudioParameterComponent;\r\n private _orientationY: _WebAudioParameterComponent;\r\n private _orientationZ: _WebAudioParameterComponent;\r\n private _positionX: _WebAudioParameterComponent;\r\n private _positionY: _WebAudioParameterComponent;\r\n private _positionZ: _WebAudioParameterComponent;\r\n\r\n /** @internal */\r\n public override readonly engine: _WebAudioEngine;\r\n\r\n /** @internal */\r\n public readonly position = _SpatialAudioDefaults.position.clone();\r\n /** @internal */\r\n public readonly rotation: Vector3 = _SpatialAudioDefaults.rotation.clone();\r\n /** @internal */\r\n public readonly rotationQuaternion: Quaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\r\n\r\n /** @internal */\r\n public readonly node: PannerNode;\r\n\r\n /** @internal */\r\n public constructor(engine: _WebAudioEngine) {\r\n super(engine);\r\n\r\n this.node = new PannerNode(engine._audioContext);\r\n\r\n this._orientationX = new _WebAudioParameterComponent(engine, this.node.orientationX);\r\n this._orientationY = new _WebAudioParameterComponent(engine, this.node.orientationY);\r\n this._orientationZ = new _WebAudioParameterComponent(engine, this.node.orientationZ);\r\n\r\n this._positionX = new _WebAudioParameterComponent(engine, this.node.positionX);\r\n this._positionY = new _WebAudioParameterComponent(engine, this.node.positionY);\r\n this._positionZ = new _WebAudioParameterComponent(engine, this.node.positionZ);\r\n }\r\n\r\n /** @internal */\r\n public override dispose(): void {\r\n super.dispose();\r\n\r\n this._orientationX.dispose();\r\n this._orientationY.dispose();\r\n this._orientationZ.dispose();\r\n this._positionX.dispose();\r\n this._positionY.dispose();\r\n this._positionZ.dispose();\r\n\r\n this.node.disconnect();\r\n }\r\n\r\n /** @internal */\r\n public get coneInnerAngle(): number {\r\n return D2r(this.node.coneInnerAngle);\r\n }\r\n\r\n public set coneInnerAngle(value: number) {\r\n this.node.coneInnerAngle = R2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterAngle(): number {\r\n return D2r(this.node.coneOuterAngle);\r\n }\r\n\r\n public set coneOuterAngle(value: number) {\r\n this.node.coneOuterAngle = R2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterVolume(): number {\r\n return this.node.coneOuterGain;\r\n }\r\n\r\n public set coneOuterVolume(value: number) {\r\n this.node.coneOuterGain = value;\r\n }\r\n\r\n /** @internal */\r\n public get distanceModel(): \"linear\" | \"inverse\" | \"exponential\" {\r\n return this.node.distanceModel;\r\n }\r\n\r\n public set distanceModel(value: \"linear\" | \"inverse\" | \"exponential\") {\r\n this.node.distanceModel = value;\r\n\r\n // Wiggle the max distance to make the change take effect.\r\n const maxDistance = this.node.maxDistance;\r\n this.node.maxDistance = maxDistance + 0.001;\r\n this.node.maxDistance = maxDistance;\r\n }\r\n\r\n /** @internal */\r\n public get minDistance(): number {\r\n return this.node.refDistance;\r\n }\r\n\r\n public set minDistance(value: number) {\r\n this.node.refDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get maxDistance(): number {\r\n return this.node.maxDistance;\r\n }\r\n\r\n public set maxDistance(value: number) {\r\n this.node.maxDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get panningModel(): \"equalpower\" | \"HRTF\" {\r\n return this.node.panningModel;\r\n }\r\n\r\n public set panningModel(value: \"equalpower\" | \"HRTF\") {\r\n this.node.panningModel = value;\r\n }\r\n\r\n /** @internal */\r\n public get rolloffFactor(): number {\r\n return this.node.rolloffFactor;\r\n }\r\n\r\n public set rolloffFactor(value: number) {\r\n this.node.rolloffFactor = value;\r\n }\r\n\r\n /** @internal */\r\n public get _inNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public get _outNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public _updatePosition(): void {\r\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\r\n return;\r\n }\r\n\r\n // If attached and there is a ramp in progress, we assume another update is coming soon that we can wait for.\r\n // We don't do this for unattached nodes because there may not be another update coming.\r\n if (this.isAttached && (this._positionX.isRamping || this._positionY.isRamping || this._positionZ.isRamping)) {\r\n return;\r\n }\r\n\r\n this._positionX.targetValue = this.position.x;\r\n this._positionY.targetValue = this.position.y;\r\n this._positionZ.targetValue = this.position.z;\r\n\r\n this._lastPosition.copyFrom(this.position);\r\n }\r\n\r\n /** @internal */\r\n public _updateRotation(): void {\r\n // If attached and there is a ramp in progress, we assume another update is coming soon that we can wait for.\r\n // We don't do this for unattached nodes because there may not be another update coming.\r\n if (this.isAttached && (this._orientationX.isRamping || this._orientationY.isRamping || this._orientationZ.isRamping)) {\r\n return;\r\n }\r\n\r\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\r\n TmpQuaternion.copyFrom(this.rotationQuaternion);\r\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\r\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\r\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\r\n this._lastRotation.copyFrom(this.rotation);\r\n } else {\r\n return;\r\n }\r\n\r\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\r\n Vector3.TransformNormalToRef(Vector3.RightReadOnly, TmpMatrix, TmpVector);\r\n\r\n this._orientationX.targetValue = TmpVector.x;\r\n this._orientationY.targetValue = TmpVector.y;\r\n this._orientationZ.targetValue = TmpVector.z;\r\n }\r\n\r\n protected override _connect(node: IWebAudioInNode): boolean {\r\n const connected = super._connect(node);\r\n\r\n if (!connected) {\r\n return false;\r\n }\r\n\r\n // If the wrapped node is not available now, it will be connected later by the subgraph.\r\n if (node._inNode) {\r\n this.node.connect(node._inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected override _disconnect(node: IWebAudioInNode): boolean {\r\n const disconnected = super._disconnect(node);\r\n\r\n if (!disconnected) {\r\n return false;\r\n }\r\n\r\n if (node._inNode) {\r\n this.node.disconnect(node._inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public getClassName(): string {\r\n return \"_SpatialWebAudioSubNode\";\r\n }\r\n}\r\n"]}
|
|
1
|
+
{"version":3,"file":"spatialWebAudioSubNode.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/spatialWebAudioSubNode.ts"],"names":[],"mappings":"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","sourcesContent":["import { Matrix, Quaternion, Vector3 } from \"../../../Maths/math.vector\";\r\nimport { _SpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\r\nimport { _SpatialAudioDefaults } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\r\nimport { _WebAudioParameterComponent } from \"../components/webAudioParameterComponent\";\r\nimport type { _WebAudioEngine } from \"../webAudioEngine\";\r\nimport type { IWebAudioInNode } from \"../webAudioNode\";\r\n\r\nconst TmpMatrix = Matrix.Zero();\r\nconst TmpQuaternion = new Quaternion();\r\n\r\nfunction D2r(degrees: number): number {\r\n return (degrees * Math.PI) / 180;\r\n}\r\n\r\nfunction R2d(radians: number): number {\r\n return (radians * 180) / Math.PI;\r\n}\r\n\r\n/** @internal */\r\n// eslint-disable-next-line @typescript-eslint/require-await\r\nexport async function _CreateSpatialAudioSubNodeAsync(engine: _WebAudioEngine): Promise<_SpatialAudioSubNode> {\r\n return new _SpatialWebAudioSubNode(engine);\r\n}\r\n\r\n/** @internal */\r\nexport class _SpatialWebAudioSubNode extends _SpatialAudioSubNode {\r\n private _lastOrientation: Vector3 = Vector3.Zero();\r\n private _lastPosition: Vector3 = Vector3.Zero();\r\n private _lastRotation: Vector3 = Vector3.Zero();\r\n private _lastRotationQuaternion: Quaternion = new Quaternion();\r\n private _orientationX: _WebAudioParameterComponent;\r\n private _orientationY: _WebAudioParameterComponent;\r\n private _orientationZ: _WebAudioParameterComponent;\r\n private _positionX: _WebAudioParameterComponent;\r\n private _positionY: _WebAudioParameterComponent;\r\n private _positionZ: _WebAudioParameterComponent;\r\n\r\n /** @internal */\r\n public override readonly engine: _WebAudioEngine;\r\n\r\n /** @internal */\r\n public readonly orientation: Vector3 = _SpatialAudioDefaults.orientation.clone();\r\n /** @internal */\r\n public readonly position = _SpatialAudioDefaults.position.clone();\r\n /** @internal */\r\n public readonly rotation: Vector3 = _SpatialAudioDefaults.rotation.clone();\r\n /** @internal */\r\n public readonly rotationQuaternion: Quaternion = _SpatialAudioDefaults.rotationQuaternion.clone();\r\n\r\n /** @internal */\r\n public readonly node: PannerNode;\r\n\r\n /** @internal */\r\n public constructor(engine: _WebAudioEngine) {\r\n super(engine);\r\n\r\n this.node = new PannerNode(engine._audioContext);\r\n\r\n this._orientationX = new _WebAudioParameterComponent(engine, this.node.orientationX);\r\n this._orientationY = new _WebAudioParameterComponent(engine, this.node.orientationY);\r\n this._orientationZ = new _WebAudioParameterComponent(engine, this.node.orientationZ);\r\n\r\n this._positionX = new _WebAudioParameterComponent(engine, this.node.positionX);\r\n this._positionY = new _WebAudioParameterComponent(engine, this.node.positionY);\r\n this._positionZ = new _WebAudioParameterComponent(engine, this.node.positionZ);\r\n }\r\n\r\n /** @internal */\r\n public override dispose(): void {\r\n super.dispose();\r\n\r\n this._orientationX.dispose();\r\n this._orientationY.dispose();\r\n this._orientationZ.dispose();\r\n this._positionX.dispose();\r\n this._positionY.dispose();\r\n this._positionZ.dispose();\r\n\r\n this.node.disconnect();\r\n }\r\n\r\n /** @internal */\r\n public get coneInnerAngle(): number {\r\n return D2r(this.node.coneInnerAngle);\r\n }\r\n\r\n public set coneInnerAngle(value: number) {\r\n this.node.coneInnerAngle = R2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterAngle(): number {\r\n return D2r(this.node.coneOuterAngle);\r\n }\r\n\r\n public set coneOuterAngle(value: number) {\r\n this.node.coneOuterAngle = R2d(value);\r\n }\r\n\r\n /** @internal */\r\n public get coneOuterVolume(): number {\r\n return this.node.coneOuterGain;\r\n }\r\n\r\n public set coneOuterVolume(value: number) {\r\n this.node.coneOuterGain = value;\r\n }\r\n\r\n /** @internal */\r\n public get distanceModel(): \"linear\" | \"inverse\" | \"exponential\" {\r\n return this.node.distanceModel;\r\n }\r\n\r\n public set distanceModel(value: \"linear\" | \"inverse\" | \"exponential\") {\r\n this.node.distanceModel = value;\r\n\r\n // Wiggle the max distance to make the change take effect.\r\n const maxDistance = this.node.maxDistance;\r\n this.node.maxDistance = maxDistance + 0.001;\r\n this.node.maxDistance = maxDistance;\r\n }\r\n\r\n /** @internal */\r\n public get minDistance(): number {\r\n return this.node.refDistance;\r\n }\r\n\r\n public set minDistance(value: number) {\r\n this.node.refDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get maxDistance(): number {\r\n return this.node.maxDistance;\r\n }\r\n\r\n public set maxDistance(value: number) {\r\n this.node.maxDistance = value;\r\n }\r\n\r\n /** @internal */\r\n public get panningModel(): \"equalpower\" | \"HRTF\" {\r\n return this.node.panningModel;\r\n }\r\n\r\n public set panningModel(value: \"equalpower\" | \"HRTF\") {\r\n this.node.panningModel = value;\r\n }\r\n\r\n /** @internal */\r\n public get rolloffFactor(): number {\r\n return this.node.rolloffFactor;\r\n }\r\n\r\n public set rolloffFactor(value: number) {\r\n this.node.rolloffFactor = value;\r\n }\r\n\r\n /** @internal */\r\n public get _inNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public get _outNode(): AudioNode {\r\n return this.node;\r\n }\r\n\r\n /** @internal */\r\n public _updatePosition(): void {\r\n if (this._lastPosition.equalsWithEpsilon(this.position)) {\r\n return;\r\n }\r\n\r\n this._positionX.targetValue = this.position.x;\r\n this._positionY.targetValue = this.position.y;\r\n this._positionZ.targetValue = this.position.z;\r\n\r\n this._lastPosition.copyFrom(this.position);\r\n }\r\n\r\n /** @internal */\r\n public _updateRotation(): void {\r\n let rotated = false;\r\n if (!this._lastRotationQuaternion.equalsWithEpsilon(this.rotationQuaternion)) {\r\n TmpQuaternion.copyFrom(this.rotationQuaternion);\r\n this._lastRotationQuaternion.copyFrom(this.rotationQuaternion);\r\n rotated = true;\r\n } else if (!this._lastRotation.equalsWithEpsilon(this.rotation)) {\r\n Quaternion.FromEulerAnglesToRef(this.rotation.x, this.rotation.y, this.rotation.z, TmpQuaternion);\r\n this._lastRotation.copyFrom(this.rotation);\r\n rotated = true;\r\n } else if (this._lastOrientation.equalsWithEpsilon(this.orientation)) {\r\n return;\r\n }\r\n\r\n if (rotated) {\r\n Matrix.FromQuaternionToRef(TmpQuaternion, TmpMatrix);\r\n Vector3.TransformNormalToRef(Vector3.RightReadOnly, TmpMatrix, this.orientation);\r\n }\r\n\r\n this._orientationX.targetValue = this.orientation.x;\r\n this._orientationY.targetValue = this.orientation.y;\r\n this._orientationZ.targetValue = this.orientation.z;\r\n }\r\n\r\n protected override _connect(node: IWebAudioInNode): boolean {\r\n const connected = super._connect(node);\r\n\r\n if (!connected) {\r\n return false;\r\n }\r\n\r\n // If the wrapped node is not available now, it will be connected later by the subgraph.\r\n if (node._inNode) {\r\n this.node.connect(node._inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n protected override _disconnect(node: IWebAudioInNode): boolean {\r\n const disconnected = super._disconnect(node);\r\n\r\n if (!disconnected) {\r\n return false;\r\n }\r\n\r\n if (node._inNode) {\r\n this.node.disconnect(node._inNode);\r\n }\r\n\r\n return true;\r\n }\r\n\r\n /** @internal */\r\n public getClassName(): string {\r\n return \"_SpatialWebAudioSubNode\";\r\n }\r\n}\r\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webAudioBusAndSoundSubGraph.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../../types\";\nimport type { AbstractAudioNode } from \"../../abstractAudio/abstractAudioNode\";\nimport type { _AbstractAudioSubNode } from \"../../abstractAudio/subNodes/abstractAudioSubNode\";\nimport { AudioSubNode } from \"../../abstractAudio/subNodes/audioSubNode\";\nimport { _GetSpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\nimport { _GetStereoAudioSubNode } from \"../../abstractAudio/subNodes/stereoAudioSubNode\";\nimport type { IVolumeAudioOptions } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport { _GetVolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { ISpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport { _HasSpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport type { IStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport { _HasStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport type { IWebAudioOutNode, IWebAudioSubNode } from \"../webAudioNode\";\nimport type { _SpatialWebAudioSubNode } from \"./spatialWebAudioSubNode\";\nimport { _CreateSpatialAudioSubNodeAsync } from \"./spatialWebAudioSubNode\";\nimport type { _StereoWebAudioSubNode } from \"./stereoWebAudioSubNode\";\nimport { _CreateStereoAudioSubNodeAsync } from \"./stereoWebAudioSubNode\";\nimport type { _VolumeWebAudioSubNode } from \"./volumeWebAudioSubNode\";\nimport { _WebAudioBaseSubGraph } from \"./webAudioBaseSubGraph\";\n\n/** @internal */\nexport interface IWebAudioBusAndSoundSubGraphOptions extends ISpatialAudioOptions, IStereoAudioOptions, IVolumeAudioOptions {}\n\n/** @internal */\nexport abstract class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {\n private _rootNode: Nullable<GainNode> = null;\n protected abstract readonly _upstreamNodes: Nullable<Set<AbstractAudioNode>>;\n\n protected _inputNode: Nullable<AudioNode> = null;\n\n /** @internal */\n public override async initAsync(options: Partial<IWebAudioBusAndSoundSubGraphOptions>): Promise<void> {\n await super.initAsync(options);\n\n let hasSpatialOptions = false;\n let hasStereoOptions = false;\n\n if ((hasSpatialOptions = _HasSpatialAudioOptions(options))) {\n await this.createAndAddSubNodeAsync(AudioSubNode.SPATIAL);\n }\n if ((hasStereoOptions = _HasStereoAudioOptions(options))) {\n await this.createAndAddSubNodeAsync(AudioSubNode.STEREO);\n }\n\n await this._createSubNodePromisesResolvedAsync();\n\n if (hasSpatialOptions) {\n _GetSpatialAudioSubNode(this)?.setOptions(options);\n }\n if (hasStereoOptions) {\n _GetStereoAudioSubNode(this)?.setOptions(options);\n }\n }\n\n /** @internal */\n public override get _inNode(): Nullable<AudioNode> {\n return this._inputNode;\n }\n\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n protected override _createSubNode(name: string): Promise<_AbstractAudioSubNode> {\n try {\n const node = super._createSubNode(name);\n return node;\n } catch (e) {}\n\n switch (name) {\n case AudioSubNode.SPATIAL:\n return _CreateSpatialAudioSubNodeAsync(this._owner.engine);\n case AudioSubNode.STEREO:\n return _CreateStereoAudioSubNodeAsync(this._owner.engine);\n default:\n throw new Error(`Unknown subnode name: ${name}`);\n }\n }\n\n protected override _onSubNodesChanged(): void {\n super._onSubNodesChanged();\n\n const spatialNode = _GetSpatialAudioSubNode(this);\n const stereoNode = _GetStereoAudioSubNode(this);\n const volumeNode = _GetVolumeAudioSubNode(this);\n\n if (spatialNode && spatialNode.getClassName() !== \"_SpatialWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (stereoNode && stereoNode.getClassName() !== \"_StereoWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (volumeNode && volumeNode.getClassName() !== \"_VolumeWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n\n if (spatialNode) {\n spatialNode.disconnectAll();\n\n if (volumeNode) {\n spatialNode.connect(volumeNode);\n }\n }\n\n if (stereoNode) {\n stereoNode.disconnectAll();\n\n if (volumeNode) {\n stereoNode.connect(volumeNode);\n }\n }\n\n if (spatialNode && stereoNode) {\n this._rootNode = new GainNode(this._owner.engine._audioContext);\n this._rootNode.connect((spatialNode as _SpatialWebAudioSubNode)._outNode);\n this._rootNode.connect((stereoNode as _StereoWebAudioSubNode)._outNode);\n } else {\n this._rootNode?.disconnect();\n this._rootNode = null;\n }\n\n let inSubNode: Nullable<IWebAudioSubNode> = null;\n\n let inNode: Nullable<AudioNode> = null;\n\n if (this._rootNode) {\n inNode = this._rootNode;\n } else {\n if (spatialNode) {\n inSubNode = spatialNode as _SpatialWebAudioSubNode;\n } else if (stereoNode) {\n inSubNode = stereoNode as _StereoWebAudioSubNode;\n } else if (volumeNode) {\n inSubNode = volumeNode as _VolumeWebAudioSubNode;\n }\n\n inNode = inSubNode?.node ?? null;\n }\n\n if (this._inputNode !== inNode) {\n // Disconnect the wrapped upstream WebAudio nodes from the old wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (this._inputNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode)._outNode?.disconnect(this._inputNode);\n }\n }\n\n this._inputNode = inNode;\n\n // Connect the wrapped upstream WebAudio nodes to the new wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (inNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode)._outNode?.connect(inNode);\n }\n }\n }\n }\n}\n"]}
|
|
1
|
+
{"version":3,"file":"webAudioBusAndSoundSubGraph.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subNodes/webAudioBusAndSoundSubGraph.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"../../../types\";\nimport type { AbstractAudioNode } from \"../../abstractAudio/abstractAudioNode\";\nimport type { _AbstractAudioSubNode } from \"../../abstractAudio/subNodes/abstractAudioSubNode\";\nimport { AudioSubNode } from \"../../abstractAudio/subNodes/audioSubNode\";\nimport { _GetSpatialAudioSubNode } from \"../../abstractAudio/subNodes/spatialAudioSubNode\";\nimport { _GetStereoAudioSubNode } from \"../../abstractAudio/subNodes/stereoAudioSubNode\";\nimport type { IVolumeAudioOptions } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport { _GetVolumeAudioSubNode } from \"../../abstractAudio/subNodes/volumeAudioSubNode\";\nimport type { ISpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport { _HasSpatialAudioOptions } from \"../../abstractAudio/subProperties/abstractSpatialAudio\";\nimport type { IStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport { _HasStereoAudioOptions } from \"../../abstractAudio/subProperties/abstractStereoAudio\";\nimport type { IWebAudioOutNode, IWebAudioSubNode } from \"../webAudioNode\";\nimport type { _SpatialWebAudioSubNode } from \"./spatialWebAudioSubNode\";\nimport { _CreateSpatialAudioSubNodeAsync } from \"./spatialWebAudioSubNode\";\nimport type { _StereoWebAudioSubNode } from \"./stereoWebAudioSubNode\";\nimport { _CreateStereoAudioSubNodeAsync } from \"./stereoWebAudioSubNode\";\nimport type { _VolumeWebAudioSubNode } from \"./volumeWebAudioSubNode\";\nimport { _WebAudioBaseSubGraph } from \"./webAudioBaseSubGraph\";\n\n/** @internal */\nexport interface IWebAudioBusAndSoundSubGraphOptions extends ISpatialAudioOptions, IStereoAudioOptions, IVolumeAudioOptions {}\n\n/** @internal */\nexport abstract class _WebAudioBusAndSoundSubGraph extends _WebAudioBaseSubGraph {\n private _rootNode: Nullable<GainNode> = null;\n protected abstract readonly _upstreamNodes: Nullable<Set<AbstractAudioNode>>;\n\n protected _inputNode: Nullable<AudioNode> = null;\n\n /** @internal */\n public override async initAsync(options: Partial<IWebAudioBusAndSoundSubGraphOptions>): Promise<void> {\n await super.initAsync(options);\n\n let hasSpatialOptions = false;\n let hasStereoOptions = false;\n\n if ((hasSpatialOptions = _HasSpatialAudioOptions(options))) {\n await this.createAndAddSubNodeAsync(AudioSubNode.SPATIAL);\n }\n if ((hasStereoOptions = _HasStereoAudioOptions(options))) {\n await this.createAndAddSubNodeAsync(AudioSubNode.STEREO);\n }\n\n await this._createSubNodePromisesResolvedAsync();\n\n if (hasSpatialOptions) {\n _GetSpatialAudioSubNode(this)?.setOptions(options);\n }\n if (hasStereoOptions) {\n _GetStereoAudioSubNode(this)?.setOptions(options);\n }\n }\n\n /** @internal */\n public override get _inNode(): Nullable<AudioNode> {\n return this._inputNode;\n }\n\n // eslint-disable-next-line @typescript-eslint/promise-function-async\n protected override _createSubNode(name: string): Promise<_AbstractAudioSubNode> {\n try {\n const node = super._createSubNode(name);\n return node;\n // eslint-disable-next-line @typescript-eslint/no-unused-vars\n } catch (e) {}\n\n switch (name) {\n case AudioSubNode.SPATIAL:\n return _CreateSpatialAudioSubNodeAsync(this._owner.engine);\n case AudioSubNode.STEREO:\n return _CreateStereoAudioSubNodeAsync(this._owner.engine);\n default:\n throw new Error(`Unknown subnode name: ${name}`);\n }\n }\n\n protected override _onSubNodesChanged(): void {\n super._onSubNodesChanged();\n\n const spatialNode = _GetSpatialAudioSubNode(this);\n const stereoNode = _GetStereoAudioSubNode(this);\n const volumeNode = _GetVolumeAudioSubNode(this);\n\n if (spatialNode && spatialNode.getClassName() !== \"_SpatialWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (stereoNode && stereoNode.getClassName() !== \"_StereoWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n if (volumeNode && volumeNode.getClassName() !== \"_VolumeWebAudioSubNode\") {\n throw new Error(\"Not a WebAudio subnode.\");\n }\n\n if (spatialNode) {\n spatialNode.disconnectAll();\n\n if (volumeNode) {\n spatialNode.connect(volumeNode);\n }\n }\n\n if (stereoNode) {\n stereoNode.disconnectAll();\n\n if (volumeNode) {\n stereoNode.connect(volumeNode);\n }\n }\n\n if (spatialNode && stereoNode) {\n this._rootNode = new GainNode(this._owner.engine._audioContext);\n this._rootNode.connect((spatialNode as _SpatialWebAudioSubNode)._outNode);\n this._rootNode.connect((stereoNode as _StereoWebAudioSubNode)._outNode);\n } else {\n this._rootNode?.disconnect();\n this._rootNode = null;\n }\n\n let inSubNode: Nullable<IWebAudioSubNode> = null;\n\n let inNode: Nullable<AudioNode> = null;\n\n if (this._rootNode) {\n inNode = this._rootNode;\n } else {\n if (spatialNode) {\n inSubNode = spatialNode as _SpatialWebAudioSubNode;\n } else if (stereoNode) {\n inSubNode = stereoNode as _StereoWebAudioSubNode;\n } else if (volumeNode) {\n inSubNode = volumeNode as _VolumeWebAudioSubNode;\n }\n\n inNode = inSubNode?.node ?? null;\n }\n\n if (this._inputNode !== inNode) {\n // Disconnect the wrapped upstream WebAudio nodes from the old wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (this._inputNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode)._outNode?.disconnect(this._inputNode);\n }\n }\n\n this._inputNode = inNode;\n\n // Connect the wrapped upstream WebAudio nodes to the new wrapped WebAudio node.\n // The wrapper nodes are unaware of this change.\n if (inNode && this._upstreamNodes) {\n const it = this._upstreamNodes.values();\n for (let next = it.next(); !next.done; next = it.next()) {\n (next.value as IWebAudioOutNode)._outNode?.connect(inNode);\n }\n }\n }\n }\n}\n"]}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"spatialWebAudio.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subProperties/spatialWebAudio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AAEjG,gBAAgB;AAChB,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAG/C,gBAAgB;IAChB,YAAmB,QAAgC,EAAE,UAAmB,EAAE,aAAqB;QAC3F,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,IAAI,CAAC,iBAAiB,GAAG,IAAI,gCAAgC,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACnG,CAAC;IAED,gBAAgB;IAChB,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;IAChD,CAAC;IAED,gBAAgB;IAChB,IAAW,aAAa,CAAC,KAAa;QAClC,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,KAAK,CAAC;IACjD,CAAC;IAED,gBAAgB;
|
|
1
|
+
{"version":3,"file":"spatialWebAudio.js","sourceRoot":"","sources":["../../../../../../dev/core/src/AudioV2/webAudio/subProperties/spatialWebAudio.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,gDAAgD,CAAC;AAC/E,OAAO,EAAE,gCAAgC,EAAE,MAAM,+CAA+C,CAAC;AAEjG,gBAAgB;AAChB,MAAM,OAAO,gBAAiB,SAAQ,aAAa;IAG/C,gBAAgB;IAChB,YAAmB,QAAgC,EAAE,UAAmB,EAAE,aAAqB;QAC3F,KAAK,CAAC,QAAQ,CAAC,CAAC;QAEhB,IAAI,CAAC,iBAAiB,GAAG,IAAI,gCAAgC,CAAC,IAAI,EAAE,UAAU,EAAE,aAAa,CAAC,CAAC;IACnG,CAAC;IAED,gBAAgB;IAChB,IAAW,aAAa;QACpB,OAAO,IAAI,CAAC,iBAAiB,CAAC,aAAa,CAAC;IAChD,CAAC;IAED,gBAAgB;IAChB,IAAW,aAAa,CAAC,KAAa;QAClC,IAAI,CAAC,iBAAiB,CAAC,aAAa,GAAG,KAAK,CAAC;IACjD,CAAC;IAED,gBAAgB;IACA,OAAO;QACnB,KAAK,CAAC,OAAO,EAAE,CAAC;QAEhB,IAAI,CAAC,iBAAiB,CAAC,OAAO,EAAE,CAAC;QACjC,IAAI,CAAC,iBAAiB,GAAG,IAAK,CAAC;IACnC,CAAC;CACJ","sourcesContent":["import type { _AbstractAudioSubGraph } from \"../../abstractAudio/subNodes/abstractAudioSubGraph\";\nimport { _SpatialAudio } from \"../../abstractAudio/subProperties/spatialAudio\";\nimport { _SpatialWebAudioUpdaterComponent } from \"../components/spatialWebAudioUpdaterComponent\";\n\n/** @internal */\nexport class _SpatialWebAudio extends _SpatialAudio {\n private _updaterComponent: _SpatialWebAudioUpdaterComponent;\n\n /** @internal */\n public constructor(subGraph: _AbstractAudioSubGraph, autoUpdate: boolean, minUpdateTime: number) {\n super(subGraph);\n\n this._updaterComponent = new _SpatialWebAudioUpdaterComponent(this, autoUpdate, minUpdateTime);\n }\n\n /** @internal */\n public get minUpdateTime(): number {\n return this._updaterComponent.minUpdateTime;\n }\n\n /** @internal */\n public set minUpdateTime(value: number) {\n this._updaterComponent.minUpdateTime = value;\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._updaterComponent.dispose();\n this._updaterComponent = null!;\n }\n}\n"]}
|
|
@@ -1,16 +1,13 @@
|
|
|
1
1
|
import type { Nullable } from "../../types.js";
|
|
2
2
|
import type { IAudioBusOptions } from "../abstractAudio/audioBus.js";
|
|
3
3
|
import { AudioBus } from "../abstractAudio/audioBus.js";
|
|
4
|
-
import type
|
|
4
|
+
import { type AbstractSpatialAudio } from "../abstractAudio/subProperties/abstractSpatialAudio.js";
|
|
5
5
|
import { _StereoAudio } from "../abstractAudio/subProperties/stereoAudio.js";
|
|
6
6
|
import { _WebAudioBusAndSoundSubGraph } from "./subNodes/webAudioBusAndSoundSubGraph.js";
|
|
7
7
|
import type { _WebAudioEngine } from "./webAudioEngine.js";
|
|
8
8
|
import type { IWebAudioInNode, IWebAudioSuperNode } from "./webAudioNode.js";
|
|
9
9
|
/** @internal */
|
|
10
10
|
export declare class _WebAudioBus extends AudioBus implements IWebAudioSuperNode {
|
|
11
|
-
private _spatial;
|
|
12
|
-
private readonly _spatialAutoUpdate;
|
|
13
|
-
private readonly _spatialMinUpdateTime;
|
|
14
11
|
private _stereo;
|
|
15
12
|
protected _subGraph: _WebAudioBusAndSoundSubGraph;
|
|
16
13
|
/** @internal */
|
|
@@ -26,13 +23,11 @@ export declare class _WebAudioBus extends AudioBus implements IWebAudioSuperNode
|
|
|
26
23
|
/** @internal */
|
|
27
24
|
get _outNode(): Nullable<AudioNode>;
|
|
28
25
|
/** @internal */
|
|
29
|
-
get spatial(): _SpatialAudio;
|
|
30
|
-
/** @internal */
|
|
31
26
|
get stereo(): _StereoAudio;
|
|
32
27
|
/** @internal */
|
|
33
28
|
getClassName(): string;
|
|
29
|
+
protected _createSpatialProperty(autoUpdate: boolean, minUpdateTime: number): AbstractSpatialAudio;
|
|
34
30
|
protected _connect(node: IWebAudioInNode): boolean;
|
|
35
31
|
protected _disconnect(node: IWebAudioInNode): boolean;
|
|
36
|
-
private _initSpatialProperty;
|
|
37
32
|
private static _SubGraph;
|
|
38
33
|
}
|
|
@@ -7,17 +7,8 @@ import { _SpatialWebAudio } from "./subProperties/spatialWebAudio.js";
|
|
|
7
7
|
export class _WebAudioBus extends AudioBus {
|
|
8
8
|
/** @internal */
|
|
9
9
|
constructor(name, engine, options) {
|
|
10
|
-
super(name, engine);
|
|
11
|
-
this._spatial = null;
|
|
12
|
-
this._spatialAutoUpdate = true;
|
|
13
|
-
this._spatialMinUpdateTime = 0;
|
|
10
|
+
super(name, engine, options);
|
|
14
11
|
this._stereo = null;
|
|
15
|
-
if (typeof options.spatialAutoUpdate === "boolean") {
|
|
16
|
-
this._spatialAutoUpdate = options.spatialAutoUpdate;
|
|
17
|
-
}
|
|
18
|
-
if (typeof options.spatialMinUpdateTime === "number") {
|
|
19
|
-
this._spatialMinUpdateTime = options.spatialMinUpdateTime;
|
|
20
|
-
}
|
|
21
12
|
this._subGraph = new _WebAudioBus._SubGraph(this);
|
|
22
13
|
}
|
|
23
14
|
/** @internal */
|
|
@@ -38,7 +29,6 @@ export class _WebAudioBus extends AudioBus {
|
|
|
38
29
|
/** @internal */
|
|
39
30
|
dispose() {
|
|
40
31
|
super.dispose();
|
|
41
|
-
this._spatial = null;
|
|
42
32
|
this._stereo = null;
|
|
43
33
|
this.engine._removeNode(this);
|
|
44
34
|
}
|
|
@@ -51,13 +41,6 @@ export class _WebAudioBus extends AudioBus {
|
|
|
51
41
|
return this._subGraph._outNode;
|
|
52
42
|
}
|
|
53
43
|
/** @internal */
|
|
54
|
-
get spatial() {
|
|
55
|
-
if (this._spatial) {
|
|
56
|
-
return this._spatial;
|
|
57
|
-
}
|
|
58
|
-
return this._initSpatialProperty();
|
|
59
|
-
}
|
|
60
|
-
/** @internal */
|
|
61
44
|
get stereo() {
|
|
62
45
|
return this._stereo ?? (this._stereo = new _StereoAudio(this._subGraph));
|
|
63
46
|
}
|
|
@@ -65,6 +48,9 @@ export class _WebAudioBus extends AudioBus {
|
|
|
65
48
|
getClassName() {
|
|
66
49
|
return "_WebAudioBus";
|
|
67
50
|
}
|
|
51
|
+
_createSpatialProperty(autoUpdate, minUpdateTime) {
|
|
52
|
+
return new _SpatialWebAudio(this._subGraph, autoUpdate, minUpdateTime);
|
|
53
|
+
}
|
|
68
54
|
_connect(node) {
|
|
69
55
|
const connected = super._connect(node);
|
|
70
56
|
if (!connected) {
|
|
@@ -85,12 +71,6 @@ export class _WebAudioBus extends AudioBus {
|
|
|
85
71
|
}
|
|
86
72
|
return true;
|
|
87
73
|
}
|
|
88
|
-
_initSpatialProperty() {
|
|
89
|
-
if (!this._spatial) {
|
|
90
|
-
this._spatial = new _SpatialWebAudio(this._subGraph, this._spatialAutoUpdate, this._spatialMinUpdateTime);
|
|
91
|
-
}
|
|
92
|
-
return this._spatial;
|
|
93
|
-
}
|
|
94
74
|
}
|
|
95
75
|
_WebAudioBus._SubGraph = class extends _WebAudioBusAndSoundSubGraph {
|
|
96
76
|
get _downstreamNodes() {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"webAudioBus.js","sourceRoot":"","sources":["../../../../../dev/core/src/AudioV2/webAudio/webAudioBus.ts"],"names":[],"mappings":"AAGA,OAAO,EAAE,QAAQ,EAAE,MAAM,2BAA2B,CAAC;AACrD,OAAO,EAAE,uBAAuB,
|
|
1
|
+
{"version":3,"file":"webAudioBus.js","sourceRoot":"","sources":["../../../../../dev/core/src/AudioV2/webAudio/webAudioBus.ts"],"names":[],"mappings":"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","sourcesContent":["import type { Nullable } from \"core/types\";\nimport type { AbstractAudioNode } from \"../abstractAudio/abstractAudioNode\";\nimport type { IAudioBusOptions } from \"../abstractAudio/audioBus\";\nimport { AudioBus } from \"../abstractAudio/audioBus\";\nimport { _HasSpatialAudioOptions, type AbstractSpatialAudio } from \"../abstractAudio/subProperties/abstractSpatialAudio\";\nimport { _StereoAudio } from \"../abstractAudio/subProperties/stereoAudio\";\nimport { _WebAudioBusAndSoundSubGraph } from \"./subNodes/webAudioBusAndSoundSubGraph\";\nimport { _SpatialWebAudio } from \"./subProperties/spatialWebAudio\";\nimport type { _WebAudioEngine } from \"./webAudioEngine\";\nimport type { IWebAudioInNode, IWebAudioSuperNode } from \"./webAudioNode\";\n\n/** @internal */\nexport class _WebAudioBus extends AudioBus implements IWebAudioSuperNode {\n private _stereo: Nullable<_StereoAudio> = null;\n\n protected _subGraph: _WebAudioBusAndSoundSubGraph;\n\n /** @internal */\n public override readonly engine: _WebAudioEngine;\n\n /** @internal */\n public constructor(name: string, engine: _WebAudioEngine, options: Partial<IAudioBusOptions>) {\n super(name, engine, options);\n\n this._subGraph = new _WebAudioBus._SubGraph(this);\n }\n\n /** @internal */\n public async _initAsync(options: Partial<IAudioBusOptions>): Promise<void> {\n if (options.outBus) {\n this.outBus = options.outBus;\n } else {\n await this.engine.isReadyPromise;\n this.outBus = this.engine.defaultMainBus;\n }\n\n await this._subGraph.initAsync(options);\n\n if (_HasSpatialAudioOptions(options)) {\n this._initSpatialProperty();\n }\n\n this.engine._addNode(this);\n }\n\n /** @internal */\n public override dispose(): void {\n super.dispose();\n\n this._stereo = null;\n\n this.engine._removeNode(this);\n }\n\n /** @internal */\n public get _inNode() {\n return this._subGraph._inNode;\n }\n\n /** @internal */\n public get _outNode() {\n return this._subGraph._outNode;\n }\n\n /** @internal */\n public override get stereo(): _StereoAudio {\n return this._stereo ?? (this._stereo = new _StereoAudio(this._subGraph));\n }\n\n /** @internal */\n public getClassName(): string {\n return \"_WebAudioBus\";\n }\n\n protected override _createSpatialProperty(autoUpdate: boolean, minUpdateTime: number): AbstractSpatialAudio {\n return new _SpatialWebAudio(this._subGraph, autoUpdate, minUpdateTime);\n }\n\n protected override _connect(node: IWebAudioInNode): boolean {\n const connected = super._connect(node);\n\n if (!connected) {\n return false;\n }\n\n if (node._inNode) {\n this._outNode?.connect(node._inNode);\n }\n\n return true;\n }\n\n protected override _disconnect(node: IWebAudioInNode): boolean {\n const disconnected = super._disconnect(node);\n\n if (!disconnected) {\n return false;\n }\n\n if (node._inNode) {\n this._outNode?.disconnect(node._inNode);\n }\n\n return true;\n }\n\n private static _SubGraph = class extends _WebAudioBusAndSoundSubGraph {\n protected override _owner: _WebAudioBus;\n\n protected get _downstreamNodes(): Nullable<Set<AbstractAudioNode>> {\n return this._owner._downstreamNodes ?? null;\n }\n\n protected get _upstreamNodes(): Nullable<Set<AbstractAudioNode>> {\n return this._owner._upstreamNodes ?? null;\n }\n };\n}\n"]}
|
|
@@ -327,6 +327,7 @@ export class _WebAudioEngine extends AudioEngineV2 {
|
|
|
327
327
|
return this._resumePromise;
|
|
328
328
|
}
|
|
329
329
|
this._resumePromise = this._audioContext.resume();
|
|
330
|
+
this.stateChangedObservable.notifyObservers(this.state);
|
|
330
331
|
return this._resumePromise;
|
|
331
332
|
}
|
|
332
333
|
/** @internal */
|