@onerjs/core 8.53.5 → 8.53.7
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/Animations/animationGroup.d.ts +0 -1
- package/Animations/animationGroup.js +0 -1
- package/Animations/animationGroup.js.map +1 -1
- package/Animations/animationGroup.pure.js +2 -0
- package/Animations/animationGroup.pure.js.map +1 -1
- package/Animations/runtimeAnimation.js +11 -0
- package/Animations/runtimeAnimation.js.map +1 -1
- package/Audio/audioSceneComponent.pure.js +1 -1
- package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
- package/AudioV2/abstractAudio/abstractSound.js +7 -2
- package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
- package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
- package/AudioV2/abstractAudio/staticSound.js +17 -1
- package/AudioV2/abstractAudio/staticSound.js.map +1 -1
- package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
- package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
- package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
- package/AudioV2/abstractAudio/streamingSound.js +9 -1
- package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
- package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
- package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
- package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
- package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
- package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
- package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
- package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
- package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
- package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
- package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
- package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
- package/Bones/bone.pure.js +3 -3
- package/Buffers/buffer.pure.js +0 -12
- package/Buffers/buffer.pure.js.map +1 -1
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
- package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
- package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
- package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
- package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
- package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
- package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
- package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
- package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
- package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
- package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
- package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/followCameraPointersInput.js +239 -203
- package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
- package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
- package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
- package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
- package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
- package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
- package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
- package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
- package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
- package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
- package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
- package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
- package/Cameras/VR/vrExperienceHelper.js +0 -2
- package/Cameras/VR/vrExperienceHelper.js.map +1 -1
- package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
- package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
- package/Cameras/arcRotateCamera.pure.js +1559 -1479
- package/Cameras/arcRotateCamera.pure.js.map +1 -1
- package/Cameras/camera.pure.js +1225 -1178
- package/Cameras/camera.pure.js.map +1 -1
- package/Cameras/flyCamera.pure.js +369 -351
- package/Cameras/flyCamera.pure.js.map +1 -1
- package/Cameras/followCamera.pure.js +229 -192
- package/Cameras/followCamera.pure.js.map +1 -1
- package/Cameras/freeCamera.pure.js +373 -351
- package/Cameras/freeCamera.pure.js.map +1 -1
- package/Cameras/geospatialCamera.pure.d.ts +30 -7
- package/Cameras/geospatialCamera.pure.js +502 -457
- package/Cameras/geospatialCamera.pure.js.map +1 -1
- package/Cameras/geospatialCameraMovement.js +2 -2
- package/Cameras/geospatialCameraMovement.js.map +1 -1
- package/Cameras/targetCamera.pure.d.ts +7 -0
- package/Cameras/targetCamera.pure.js +550 -509
- package/Cameras/targetCamera.pure.js.map +1 -1
- package/Cameras/universalCamera.pure.js +98 -85
- package/Cameras/universalCamera.pure.js.map +1 -1
- package/Collisions/gpuPicker.d.ts +111 -4
- package/Collisions/gpuPicker.js +696 -119
- package/Collisions/gpuPicker.js.map +1 -1
- package/Compute/computeShader.pure.js +372 -355
- package/Compute/computeShader.pure.js.map +1 -1
- package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
- package/Decorators/nodeDecorator.d.ts +11 -1
- package/Decorators/nodeDecorator.js +43 -6
- package/Decorators/nodeDecorator.js.map +1 -1
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
- package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
- package/Engines/Native/nativeHelpers.js +15 -0
- package/Engines/Native/nativeHelpers.js.map +1 -1
- package/Engines/Native/nativeInterfaces.d.ts +7 -2
- package/Engines/Native/nativeInterfaces.js.map +1 -1
- package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
- package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
- package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
- package/Engines/Processors/shaderProcessor.js +5 -3
- package/Engines/Processors/shaderProcessor.js.map +1 -1
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
- package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
- package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
- package/Engines/abstractEngine.functions.d.ts +8 -2
- package/Engines/abstractEngine.functions.js +12 -4
- package/Engines/abstractEngine.functions.js.map +1 -1
- package/Engines/abstractEngine.pure.d.ts +20 -1
- package/Engines/abstractEngine.pure.js +21 -134
- package/Engines/abstractEngine.pure.js.map +1 -1
- package/Engines/engine.d.ts +208 -0
- package/Engines/engine.pure.js +0 -15
- package/Engines/engine.pure.js.map +1 -1
- package/Engines/nullEngine.pure.d.ts +66 -0
- package/Engines/nullEngine.pure.js +97 -0
- package/Engines/nullEngine.pure.js.map +1 -1
- package/Engines/thinEngine.pure.d.ts +0 -13
- package/Engines/thinEngine.pure.js +4 -23
- package/Engines/thinEngine.pure.js.map +1 -1
- package/Engines/thinNativeEngine.d.ts +0 -1
- package/Engines/thinNativeEngine.js +0 -1
- package/Engines/thinNativeEngine.js.map +1 -1
- package/Engines/thinNativeEngine.pure.d.ts +27 -0
- package/Engines/thinNativeEngine.pure.js +383 -17
- package/Engines/thinNativeEngine.pure.js.map +1 -1
- package/Engines/webgpuEngine.d.ts +1 -0
- package/Engines/webgpuEngine.js +1 -0
- package/Engines/webgpuEngine.js.map +1 -1
- package/Engines/webgpuEngine.pure.d.ts +9 -0
- package/Engines/webgpuEngine.pure.js +7 -0
- package/Engines/webgpuEngine.pure.js.map +1 -1
- package/FlowGraph/flowGraph.js +9 -0
- package/FlowGraph/flowGraph.js.map +1 -1
- package/FlowGraph/flowGraphContext.js +597 -584
- package/FlowGraph/flowGraphContext.js.map +1 -1
- package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
- package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
- package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
- package/FlowGraph/serialization.d.ts +11 -0
- package/FlowGraph/serialization.js +11 -1
- package/FlowGraph/serialization.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
- package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
- package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
- package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
- package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
- package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
- package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
- package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
- package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
- package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
- package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
- package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
- package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
- package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
- package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
- package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
- package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
- package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
- package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
- package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
- package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
- package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
- package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
- package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
- package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
- package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
- package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
- package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
- package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
- package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
- package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraph.js +715 -693
- package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
- package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
- package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
- package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
- package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
- package/Helpers/environmentHelper.js +2 -2
- package/Helpers/environmentHelper.js.map +1 -1
- package/Layers/effectLayer.js +529 -519
- package/Layers/effectLayer.js.map +1 -1
- package/Layers/glowLayer.pure.js +428 -413
- package/Layers/glowLayer.pure.js.map +1 -1
- package/Layers/highlightLayer.pure.js +473 -458
- package/Layers/highlightLayer.pure.js.map +1 -1
- package/Layers/selectionOutlineLayer.pure.js +360 -345
- package/Layers/selectionOutlineLayer.pure.js.map +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
- package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
- package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
- package/Lights/Shadows/shadowGenerator.js +6 -1
- package/Lights/Shadows/shadowGenerator.js.map +1 -1
- package/Lights/areaLight.pure.js +61 -39
- package/Lights/areaLight.pure.js.map +1 -1
- package/Lights/directionalLight.pure.js +308 -284
- package/Lights/directionalLight.pure.js.map +1 -1
- package/Lights/hemisphericLight.pure.js +123 -104
- package/Lights/hemisphericLight.pure.js.map +1 -1
- package/Lights/light.d.ts +5 -3
- package/Lights/light.js +869 -827
- package/Lights/light.js.map +1 -1
- package/Lights/pointLight.pure.js +185 -174
- package/Lights/pointLight.pure.js.map +1 -1
- package/Lights/rectAreaLight.pure.d.ts +17 -0
- package/Lights/rectAreaLight.pure.js +238 -159
- package/Lights/rectAreaLight.pure.js.map +1 -1
- package/Lights/shadowLight.js +280 -268
- package/Lights/shadowLight.js.map +1 -1
- package/Lights/spotLight.pure.js +460 -427
- package/Lights/spotLight.pure.js.map +1 -1
- package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
- package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
- package/Loading/sceneLoader.d.ts +5 -1
- package/Loading/sceneLoader.js +299 -402
- package/Loading/sceneLoader.js.map +1 -1
- package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
- package/Materials/Background/backgroundMaterial.pure.js +949 -794
- package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
- package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
- package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
- package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
- package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
- package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
- package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
- package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
- package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
- package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
- package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
- package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
- package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
- package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
- package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
- package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
- package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
- package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
- package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
- package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
- package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
- package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
- package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
- package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
- package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
- package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
- package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
- package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
- package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
- package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
- package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
- package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
- package/Materials/Node/nodeMaterial.pure.js +1765 -1737
- package/Materials/Node/nodeMaterial.pure.js.map +1 -1
- package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
- package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
- package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
- package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
- package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
- package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
- package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
- package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
- package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
- package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
- package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
- package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
- package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
- package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
- package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
- package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
- package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
- package/Materials/PBR/pbrMaterial.pure.js +1041 -685
- package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
- package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
- package/Materials/PBR/pbrSheenConfiguration.js +314 -270
- package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
- package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
- package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
- package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
- package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
- package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
- package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
- package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
- package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
- package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
- package/Materials/Textures/HTML/htmlTexture.js +455 -0
- package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
- package/Materials/Textures/HTML/index.d.ts +4 -0
- package/Materials/Textures/HTML/index.js +5 -0
- package/Materials/Textures/HTML/index.js.map +1 -0
- package/Materials/Textures/HTML/pure.d.ts +5 -0
- package/Materials/Textures/HTML/pure.js +6 -0
- package/Materials/Textures/HTML/pure.js.map +1 -0
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
- package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
- package/Materials/Textures/baseTexture.pure.js +880 -825
- package/Materials/Textures/baseTexture.pure.js.map +1 -1
- package/Materials/Textures/cubeTexture.d.ts +0 -1
- package/Materials/Textures/cubeTexture.js +0 -1
- package/Materials/Textures/cubeTexture.js.map +1 -1
- package/Materials/Textures/cubeTexture.pure.js +368 -333
- package/Materials/Textures/cubeTexture.pure.js.map +1 -1
- package/Materials/Textures/dynamicTexture.d.ts +0 -1
- package/Materials/Textures/dynamicTexture.js +0 -1
- package/Materials/Textures/dynamicTexture.js.map +1 -1
- package/Materials/Textures/dynamicTexture.pure.js +2 -0
- package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.d.ts +0 -2
- package/Materials/Textures/htmlElementTexture.js +0 -2
- package/Materials/Textures/htmlElementTexture.js.map +1 -1
- package/Materials/Textures/htmlElementTexture.pure.js +4 -0
- package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
- package/Materials/Textures/index.d.ts +1 -0
- package/Materials/Textures/index.js +1 -1
- package/Materials/Textures/index.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.d.ts +0 -1
- package/Materials/Textures/multiRenderTarget.js +0 -1
- package/Materials/Textures/multiRenderTarget.js.map +1 -1
- package/Materials/Textures/multiRenderTarget.pure.js +2 -0
- package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
- package/Materials/Textures/pure.d.ts +1 -0
- package/Materials/Textures/pure.js +1 -0
- package/Materials/Textures/pure.js.map +1 -1
- package/Materials/Textures/texture.pure.js +961 -923
- package/Materials/Textures/texture.pure.js.map +1 -1
- package/Materials/Textures/videoTexture.pure.d.ts +3 -0
- package/Materials/Textures/videoTexture.pure.js +450 -401
- package/Materials/Textures/videoTexture.pure.js.map +1 -1
- package/Materials/colorCurves.pure.js +510 -477
- package/Materials/colorCurves.pure.js.map +1 -1
- package/Materials/effect.pure.js +0 -7
- package/Materials/effect.pure.js.map +1 -1
- package/Materials/imageProcessing.js +12 -4
- package/Materials/imageProcessing.js.map +1 -1
- package/Materials/imageProcessingConfiguration.pure.js +647 -587
- package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
- package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
- package/Materials/material.decalMapConfiguration.pure.js +149 -130
- package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
- package/Materials/material.detailMapConfiguration.d.ts +3 -3
- package/Materials/material.detailMapConfiguration.js +213 -175
- package/Materials/material.detailMapConfiguration.js.map +1 -1
- package/Materials/material.pure.js +1815 -1721
- package/Materials/material.pure.js.map +1 -1
- package/Materials/materialPluginBase.pure.js +270 -249
- package/Materials/materialPluginBase.pure.js.map +1 -1
- package/Materials/materialPluginManager.pure.js +18 -8
- package/Materials/materialPluginManager.pure.js.map +1 -1
- package/Materials/materialStencilState.js +211 -200
- package/Materials/materialStencilState.js.map +1 -1
- package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
- package/Materials/meshDebugPluginMaterial.pure.js +397 -275
- package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
- package/Materials/standardMaterial.pure.d.ts +32 -32
- package/Materials/standardMaterial.pure.js +1804 -1394
- package/Materials/standardMaterial.pure.js.map +1 -1
- package/Maths/math.color.pure.js +5 -5
- package/Maths/math.functions.js +38 -30
- package/Maths/math.functions.js.map +1 -1
- package/Maths/math.vector.pure.js +25 -25
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
- package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
- package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
- package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
- package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
- package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
- package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
- package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
- package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
- package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
- package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
- package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
- package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
- package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
- package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
- package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
- package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
- package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
- package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
- package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
- package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
- package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
- package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
- package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
- package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
- package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
- package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
- package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
- package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
- package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
- package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
- package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
- package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
- package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
- package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
- package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
- package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
- package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
- package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
- package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
- package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
- package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
- package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
- package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
- package/Meshes/Node/nodeGeometry.js +560 -538
- package/Meshes/Node/nodeGeometry.js.map +1 -1
- package/Meshes/Node/nodeGeometryBlock.js +473 -458
- package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
- package/Meshes/abstractMesh.pure.js +2218 -2207
- package/Meshes/abstractMesh.pure.js.map +1 -1
- package/Meshes/geometry.js +30 -15
- package/Meshes/geometry.js.map +1 -1
- package/Meshes/mesh.pure.js +26 -14
- package/Meshes/mesh.pure.js.map +1 -1
- package/Meshes/mesh.vertexData.js +1665 -1655
- package/Meshes/mesh.vertexData.js.map +1 -1
- package/Meshes/transformNode.pure.js +1400 -1372
- package/Meshes/transformNode.pure.js.map +1 -1
- package/Misc/decorators.d.ts +34 -19
- package/Misc/decorators.functions.d.ts +33 -2
- package/Misc/decorators.functions.js +114 -35
- package/Misc/decorators.functions.js.map +1 -1
- package/Misc/decorators.js +96 -68
- package/Misc/decorators.js.map +1 -1
- package/Misc/decorators.serialization.js +47 -40
- package/Misc/decorators.serialization.js.map +1 -1
- package/Misc/decorators.serializationUtilities.d.ts +24 -0
- package/Misc/decorators.serializationUtilities.js +20 -0
- package/Misc/decorators.serializationUtilities.js.map +1 -0
- package/Misc/dumpTools.pure.js +43 -33
- package/Misc/dumpTools.pure.js.map +1 -1
- package/Misc/fileTools.pure.js +8 -0
- package/Misc/fileTools.pure.js.map +1 -1
- package/Misc/observable.pure.js +0 -7
- package/Misc/observable.pure.js.map +1 -1
- package/Misc/snapshotRenderingHelper.d.ts +4 -1
- package/Misc/snapshotRenderingHelper.js.map +1 -1
- package/Misc/symbolMetadataPolyfill.d.ts +11 -0
- package/Misc/symbolMetadataPolyfill.js +22 -0
- package/Misc/symbolMetadataPolyfill.js.map +1 -0
- package/Misc/tools.pure.js +2 -2
- package/Misc/tools.pure.js.map +1 -1
- package/Morph/morphTarget.js +382 -365
- package/Morph/morphTarget.js.map +1 -1
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
- package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
- package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
- package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
- package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
- package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
- package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
- package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
- package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
- package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
- package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
- package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
- package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
- package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
- package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
- package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
- package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
- package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
- package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
- package/Particles/Node/nodeParticleBlock.js +339 -324
- package/Particles/Node/nodeParticleBlock.js.map +1 -1
- package/Particles/Node/nodeParticleSystemSet.js +494 -473
- package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
- package/Particles/gpuParticleSystem.d.ts +0 -1
- package/Particles/gpuParticleSystem.js +0 -1
- package/Particles/gpuParticleSystem.js.map +1 -1
- package/Particles/gpuParticleSystem.pure.d.ts +4 -3
- package/Particles/gpuParticleSystem.pure.js +27 -16
- package/Particles/gpuParticleSystem.pure.js.map +1 -1
- package/Particles/particleSystem.pure.js +57 -2
- package/Particles/particleSystem.pure.js.map +1 -1
- package/Particles/thinParticleSystem.d.ts +0 -1
- package/Particles/thinParticleSystem.js +0 -1
- package/Particles/thinParticleSystem.js.map +1 -1
- package/Particles/thinParticleSystem.pure.js +2 -0
- package/Particles/thinParticleSystem.pure.js.map +1 -1
- package/Particles/webgl2ParticleSystem.pure.js +2 -0
- package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
- package/Physics/v1/physicsImpostor.pure.js +4 -4
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
- package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
- package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
- package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
- package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
- package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
- package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
- package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
- package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
- package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
- package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
- package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
- package/PostProcesses/blurPostProcess.pure.js +127 -115
- package/PostProcesses/blurPostProcess.pure.js.map +1 -1
- package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
- package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
- package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
- package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
- package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
- package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/convolutionPostProcess.pure.js +96 -84
- package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
- package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
- package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
- package/PostProcesses/filterPostProcess.pure.js +66 -54
- package/PostProcesses/filterPostProcess.pure.js.map +1 -1
- package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
- package/PostProcesses/grainPostProcess.pure.js +82 -70
- package/PostProcesses/grainPostProcess.pure.js.map +1 -1
- package/PostProcesses/imageProcessingPostProcess.js +334 -322
- package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
- package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
- package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
- package/PostProcesses/passPostProcess.pure.js +75 -63
- package/PostProcesses/passPostProcess.pure.js.map +1 -1
- package/PostProcesses/postProcess.pure.js +899 -835
- package/PostProcesses/postProcess.pure.js.map +1 -1
- package/PostProcesses/refractionPostProcess.pure.js +114 -87
- package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
- package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
- package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
- package/PostProcesses/sharpenPostProcess.pure.js +86 -74
- package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
- package/PostProcesses/tonemapPostProcess.pure.js +82 -70
- package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
- package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
- package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
- package/Probes/reflectionProbe.pure.js +238 -224
- package/Probes/reflectionProbe.pure.js.map +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
- package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
- package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
- package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
- package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
- package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
- package/Rendering/edgesRenderer.pure.js.map +1 -1
- package/Rendering/prePassRenderer.d.ts +0 -2
- package/Rendering/prePassRenderer.js +0 -2
- package/Rendering/prePassRenderer.js.map +1 -1
- package/Rendering/prePassRenderer.pure.js +2 -0
- package/Rendering/prePassRenderer.pure.js.map +1 -1
- package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
- package/Rendering/reflectiveShadowMap.pure.js +151 -130
- package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
- package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
- package/Rendering/thinDepthPeelingRenderer.js +0 -1
- package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
- package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
- package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
- package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/Shaders/gaussianSplatting.fragment.js +17 -1
- package/Shaders/gaussianSplatting.fragment.js.map +1 -1
- package/Shaders/gaussianSplatting.vertex.js +1 -1
- package/Shaders/gaussianSplatting.vertex.js.map +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
- package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
- package/Shaders/picking.fragment.js +39 -3
- package/Shaders/picking.fragment.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
- package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
- package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
- package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
- package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
- package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
- package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
- package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
- package/ShadersWGSL/lightingVolume.compute.js +2 -2
- package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
- package/ShadersWGSL/picking.fragment.js +22 -1
- package/ShadersWGSL/picking.fragment.js.map +1 -1
- package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
- package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
- package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
- package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
- package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
- package/XR/features/WebXRLayers.pure.d.ts +8 -0
- package/XR/features/WebXRLayers.pure.js +43 -6
- package/XR/features/WebXRLayers.pure.js.map +1 -1
- package/XR/native/nativeXRRenderTarget.d.ts +2 -2
- package/XR/native/nativeXRRenderTarget.js +2 -2
- package/XR/native/nativeXRRenderTarget.js.map +1 -1
- package/XR/webXRExperienceHelper.js +10 -1
- package/XR/webXRExperienceHelper.js.map +1 -1
- package/XR/webXRGraphicsBinding.d.ts +90 -0
- package/XR/webXRGraphicsBinding.js +85 -0
- package/XR/webXRGraphicsBinding.js.map +1 -0
- package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
- package/XR/webXRLayerRenderTargetTexture.js +30 -0
- package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
- package/XR/webXRManagedOutputCanvas.d.ts +14 -0
- package/XR/webXRManagedOutputCanvas.js +24 -5
- package/XR/webXRManagedOutputCanvas.js.map +1 -1
- package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
- package/XR/webXRRenderTargetTextureProvider.js +33 -35
- package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
- package/XR/webXRSessionManager.d.ts +11 -0
- package/XR/webXRSessionManager.js +37 -0
- package/XR/webXRSessionManager.js.map +1 -1
- package/XR/webXRTypes.d.ts +9 -6
- package/XR/webXRTypes.js.map +1 -1
- package/XR/webXRWebGLLayer.d.ts +2 -2
- package/XR/webXRWebGLLayer.js +2 -2
- package/XR/webXRWebGLLayer.js.map +1 -1
- package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
- package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
- package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
- package/index.d.ts +1 -0
- package/index.js +1 -0
- package/index.js.map +1 -1
- package/node.js +878 -845
- package/node.js.map +1 -1
- package/package.json +8 -14
- package/scene.pure.d.ts +12 -0
- package/scene.pure.js +36 -0
- package/scene.pure.js.map +1 -1
- package/tslib.es6.js +304 -150
package/Loading/sceneLoader.js
CHANGED
|
@@ -101,15 +101,95 @@ function formatErrorMessage(fileInfo, message, exception) {
|
|
|
101
101
|
}
|
|
102
102
|
return errorMessage;
|
|
103
103
|
}
|
|
104
|
-
|
|
104
|
+
function createLoadError(fileInfo, message, exception) {
|
|
105
|
+
const errorMessage = formatErrorMessage(fileInfo, message, exception);
|
|
106
|
+
return new RuntimeError(errorMessage, ErrorCodes.SceneLoaderError, exception);
|
|
107
|
+
}
|
|
108
|
+
function getErrorMessage(error) {
|
|
109
|
+
return error instanceof Error ? error.message : String(error);
|
|
110
|
+
}
|
|
111
|
+
// Converts an error into a SceneLoader RuntimeError, leaving an already-wrapped SceneLoader error untouched
|
|
112
|
+
// so that it is not double-wrapped (which would duplicate the "Unable to load from ..." prefix).
|
|
113
|
+
function toLoadError(fileInfo, error) {
|
|
114
|
+
return error instanceof RuntimeError && error.errorCode === ErrorCodes.SceneLoaderError ? error : createLoadError(fileInfo, getErrorMessage(error), error);
|
|
115
|
+
}
|
|
116
|
+
const loadAssetContainerNotSupportedMessage = "LoadAssetContainer is not supported by this plugin. Plugin did not provide a loadAssetContainer or loadAssetContainerAsync method.";
|
|
117
|
+
// A synchronous plugin exposes the synchronous import/load methods; an asynchronous plugin exposes the *Async methods.
|
|
118
|
+
function isSyncPlugin(plugin) {
|
|
119
|
+
const candidate = plugin;
|
|
120
|
+
return !!candidate.importMesh || !!candidate.load || !!candidate.loadAssetContainer;
|
|
121
|
+
}
|
|
122
|
+
// Adapts a synchronous ISceneLoaderPlugin into an ISceneLoaderPluginAsync so that callers can use a single
|
|
123
|
+
// promise-based code path regardless of whether the underlying plugin is synchronous or asynchronous.
|
|
124
|
+
// Asynchronous plugins are returned unchanged. The synchronous plugin reports failure via an onError callback
|
|
125
|
+
// and/or a falsy return value; both are translated into a rejected promise.
|
|
126
|
+
function toAsyncPlugin(plugin, fileInfo) {
|
|
127
|
+
if (!isSyncPlugin(plugin)) {
|
|
128
|
+
return plugin;
|
|
129
|
+
}
|
|
130
|
+
const runSync = (invoke) => {
|
|
131
|
+
let pluginError;
|
|
132
|
+
const result = invoke((message, exception) => {
|
|
133
|
+
pluginError = { message, exception };
|
|
134
|
+
});
|
|
135
|
+
if (!result) {
|
|
136
|
+
throw createLoadError(fileInfo, pluginError?.message, pluginError?.exception);
|
|
137
|
+
}
|
|
138
|
+
return result;
|
|
139
|
+
};
|
|
140
|
+
return {
|
|
141
|
+
name: plugin.name,
|
|
142
|
+
extensions: plugin.extensions,
|
|
143
|
+
importMeshAsync: async (meshesNames, scene, data, rootUrl) => {
|
|
144
|
+
const meshes = [];
|
|
145
|
+
const particleSystems = [];
|
|
146
|
+
const skeletons = [];
|
|
147
|
+
runSync((onError) => plugin.importMesh(meshesNames, scene, data, rootUrl, meshes, particleSystems, skeletons, onError));
|
|
148
|
+
return { meshes, particleSystems, skeletons, animationGroups: [], transformNodes: [], geometries: [], lights: [], spriteManagers: [] };
|
|
149
|
+
},
|
|
150
|
+
loadAsync: async (scene, data, rootUrl) => {
|
|
151
|
+
runSync((onError) => plugin.load(scene, data, rootUrl, onError));
|
|
152
|
+
},
|
|
153
|
+
loadAssetContainerAsync: async (scene, data, rootUrl) => {
|
|
154
|
+
return runSync((onError) => plugin.loadAssetContainer(scene, data, rootUrl, onError));
|
|
155
|
+
},
|
|
156
|
+
};
|
|
157
|
+
}
|
|
158
|
+
// Reports a load failure to the legacy onError callback. The onError signature requires a Scene, but a scene
|
|
159
|
+
// may not be available (e.g. the error occurred before any scene was created). In that case, fall back to
|
|
160
|
+
// logging so the error handler does not throw a secondary error and mask the original failure.
|
|
161
|
+
function reportLegacyLoadError(onError, reportScene, error) {
|
|
162
|
+
const message = getErrorMessage(error);
|
|
163
|
+
if (onError && reportScene) {
|
|
164
|
+
onError(reportScene, message, error);
|
|
165
|
+
}
|
|
166
|
+
else {
|
|
167
|
+
Logger.Error(message);
|
|
168
|
+
}
|
|
169
|
+
}
|
|
170
|
+
// Wraps a user supplied progress callback so that an exception thrown by it is logged rather than
|
|
171
|
+
// aborting the entire loading operation.
|
|
172
|
+
function wrapProgress(onProgress) {
|
|
173
|
+
if (!onProgress) {
|
|
174
|
+
return undefined;
|
|
175
|
+
}
|
|
176
|
+
return (event) => {
|
|
177
|
+
try {
|
|
178
|
+
onProgress(event);
|
|
179
|
+
}
|
|
180
|
+
catch (error) {
|
|
181
|
+
Logger.Warn("Error in onProgress callback: " + getErrorMessage(error));
|
|
182
|
+
}
|
|
183
|
+
};
|
|
184
|
+
}
|
|
185
|
+
async function loadDataAsync(fileInfo, scene, onProgress, pluginExtension, name, pluginOptions) {
|
|
105
186
|
const directLoad = getDirectLoad(fileInfo.url);
|
|
106
187
|
if (fileInfo.rawData && !pluginExtension) {
|
|
107
|
-
|
|
108
|
-
throw "When using ArrayBufferView to load data the file extension must be provided.";
|
|
188
|
+
throw new Error("When using ArrayBufferView to load data the file extension must be provided.");
|
|
109
189
|
}
|
|
110
190
|
if (fileInfo.jsonData && !pluginExtension) {
|
|
111
191
|
// eslint-disable-next-line no-throw-literal
|
|
112
|
-
throw "When using object to load data the file extension must be provided.";
|
|
192
|
+
throw new Error("When using object to load data the file extension must be provided.");
|
|
113
193
|
}
|
|
114
194
|
const fileExtension = !directLoad && !pluginExtension ? getFilenameExtension(fileInfo.url) : "";
|
|
115
195
|
let registeredPlugin = pluginExtension
|
|
@@ -123,7 +203,6 @@ async function loadDataAsync(fileInfo, scene, onSuccess, onProgress, onError, on
|
|
|
123
203
|
const response = await _FetchAsync(fileInfo.url, { method: "HEAD", responseHeaders: ["Content-Type"] });
|
|
124
204
|
const mimeType = response.headerValues ? response.headerValues["Content-Type"] : "";
|
|
125
205
|
if (mimeType) {
|
|
126
|
-
// eslint-disable-next-line require-atomic-updates
|
|
127
206
|
registeredPlugin = getPluginForMimeType(mimeType);
|
|
128
207
|
}
|
|
129
208
|
}
|
|
@@ -138,101 +217,103 @@ async function loadDataAsync(fileInfo, scene, onSuccess, onProgress, onError, on
|
|
|
138
217
|
throw new Error(`The '${registeredPlugin.plugin.name}' plugin is disabled via the loader options passed to the loading operation.`);
|
|
139
218
|
}
|
|
140
219
|
if (fileInfo.rawData && !registeredPlugin.isBinary) {
|
|
141
|
-
|
|
142
|
-
|
|
143
|
-
|
|
144
|
-
|
|
145
|
-
|
|
146
|
-
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
|
|
150
|
-
|
|
151
|
-
|
|
152
|
-
|
|
153
|
-
|
|
154
|
-
onError("Error instantiating plugin.", error);
|
|
155
|
-
});
|
|
156
|
-
// When async factories are used, the plugin instance cannot be returned synchronously.
|
|
157
|
-
// In this case, the legacy loader functions will return null.
|
|
158
|
-
return null;
|
|
159
|
-
}
|
|
160
|
-
else {
|
|
161
|
-
callback(partialPlugin);
|
|
162
|
-
return partialPlugin;
|
|
163
|
-
}
|
|
164
|
-
}
|
|
165
|
-
else {
|
|
166
|
-
callback(registeredPlugin.plugin);
|
|
167
|
-
return registeredPlugin.plugin;
|
|
220
|
+
throw new Error("Loading from ArrayBufferView can not be used with plugins that don't support binary loading.");
|
|
221
|
+
}
|
|
222
|
+
// For plugin factories, the plugin is instantiated on each SceneLoader operation. This makes options handling
|
|
223
|
+
// much simpler as we can just pass the options to the factory, rather than passing options through to every possible
|
|
224
|
+
// plugin call. Given this, options are only supported for plugins that provide a factory function.
|
|
225
|
+
let plugin;
|
|
226
|
+
if (IsFactory(registeredPlugin.plugin)) {
|
|
227
|
+
const pluginFactory = registeredPlugin.plugin;
|
|
228
|
+
try {
|
|
229
|
+
// Only await when the factory is actually asynchronous, so that for synchronous factories the plugin is
|
|
230
|
+
// instantiated (and onPluginActivatedObservable is notified) synchronously within the calling load operation.
|
|
231
|
+
const createdPlugin = pluginFactory.createPlugin((pluginOptions ?? {}));
|
|
232
|
+
plugin = createdPlugin instanceof Promise ? await createdPlugin : createdPlugin;
|
|
168
233
|
}
|
|
169
|
-
|
|
170
|
-
|
|
171
|
-
if (!plugin) {
|
|
172
|
-
// eslint-disable-next-line no-throw-literal
|
|
173
|
-
throw `The loader plugin corresponding to the '${pluginExtension}' file type has not been found. If using es6, please import the plugin you wish to use before.`;
|
|
234
|
+
catch (error) {
|
|
235
|
+
throw createLoadError(fileInfo, "Error instantiating plugin.", error);
|
|
174
236
|
}
|
|
175
|
-
|
|
176
|
-
|
|
177
|
-
|
|
178
|
-
|
|
179
|
-
|
|
180
|
-
|
|
181
|
-
|
|
182
|
-
|
|
183
|
-
|
|
184
|
-
|
|
185
|
-
|
|
186
|
-
|
|
187
|
-
|
|
188
|
-
|
|
189
|
-
|
|
190
|
-
});
|
|
191
|
-
}
|
|
192
|
-
else {
|
|
193
|
-
onSuccess(plugin, result);
|
|
194
|
-
}
|
|
237
|
+
}
|
|
238
|
+
else {
|
|
239
|
+
plugin = registeredPlugin.plugin;
|
|
240
|
+
}
|
|
241
|
+
if (!plugin) {
|
|
242
|
+
throw new Error(`The loader plugin corresponding to the '${pluginExtension}' file type has not been found. If using es6, please import the plugin you wish to use before.`);
|
|
243
|
+
}
|
|
244
|
+
onPluginActivatedObservable.notifyObservers(plugin);
|
|
245
|
+
// Check if we have a direct load url. If the plugin is registered to handle
|
|
246
|
+
// it or it's not a base64 data url, then pass it through the direct load path.
|
|
247
|
+
if (directLoad && ((plugin.canDirectLoad && plugin.canDirectLoad(fileInfo.url)) || !IsBase64DataUrl(fileInfo.url))) {
|
|
248
|
+
if (plugin.directLoad) {
|
|
249
|
+
let data;
|
|
250
|
+
try {
|
|
251
|
+
data = await plugin.directLoad(scene, directLoad);
|
|
195
252
|
}
|
|
196
|
-
|
|
197
|
-
|
|
253
|
+
catch (error) {
|
|
254
|
+
throw createLoadError(fileInfo, "Error in directLoad of _loadData: " + error, error);
|
|
198
255
|
}
|
|
199
|
-
return;
|
|
256
|
+
return { plugin, data };
|
|
200
257
|
}
|
|
201
|
-
|
|
202
|
-
|
|
203
|
-
|
|
204
|
-
|
|
205
|
-
return;
|
|
206
|
-
}
|
|
207
|
-
onSuccess(plugin, data, responseURL);
|
|
208
|
-
};
|
|
258
|
+
return { plugin, data: directLoad };
|
|
259
|
+
}
|
|
260
|
+
const useArrayBuffer = registeredPlugin.isBinary;
|
|
261
|
+
return await new Promise((resolve, reject) => {
|
|
209
262
|
let request = null;
|
|
210
263
|
let pluginDisposed = false;
|
|
211
|
-
plugin.onDisposeObservable?.add(() => {
|
|
264
|
+
const onDisposeObserver = plugin.onDisposeObservable?.add(() => {
|
|
212
265
|
pluginDisposed = true;
|
|
213
266
|
if (request) {
|
|
214
267
|
request.abort();
|
|
215
268
|
request = null;
|
|
216
269
|
}
|
|
217
|
-
|
|
270
|
+
rejectAndCleanup(createLoadError(fileInfo, "Loading was aborted because the plugin was disposed."));
|
|
218
271
|
});
|
|
272
|
+
// Ensure the onDispose observer is removed once the promise settles, so observers do not accumulate across loads.
|
|
273
|
+
const cleanup = () => {
|
|
274
|
+
if (onDisposeObserver) {
|
|
275
|
+
plugin.onDisposeObservable?.remove(onDisposeObserver);
|
|
276
|
+
}
|
|
277
|
+
};
|
|
278
|
+
const resolveAndCleanup = (value) => {
|
|
279
|
+
cleanup();
|
|
280
|
+
resolve(value);
|
|
281
|
+
};
|
|
282
|
+
const rejectAndCleanup = (error) => {
|
|
283
|
+
cleanup();
|
|
284
|
+
reject(error);
|
|
285
|
+
};
|
|
286
|
+
const dataCallback = (data, responseURL) => {
|
|
287
|
+
if (scene.isDisposed) {
|
|
288
|
+
rejectAndCleanup(createLoadError(fileInfo, "Scene has been disposed"));
|
|
289
|
+
return;
|
|
290
|
+
}
|
|
291
|
+
resolveAndCleanup({ plugin, data, responseURL });
|
|
292
|
+
};
|
|
219
293
|
const manifestChecked = () => {
|
|
220
294
|
if (pluginDisposed) {
|
|
221
295
|
return;
|
|
222
296
|
}
|
|
223
297
|
const errorCallback = (request, exception) => {
|
|
224
|
-
|
|
298
|
+
rejectAndCleanup(createLoadError(fileInfo, request?.statusText, exception));
|
|
225
299
|
};
|
|
226
300
|
if (!plugin.loadFile && fileInfo.rawData) {
|
|
227
|
-
|
|
228
|
-
|
|
301
|
+
rejectAndCleanup(createLoadError(fileInfo, "Plugin does not support loading ArrayBufferView."));
|
|
302
|
+
return;
|
|
303
|
+
}
|
|
304
|
+
try {
|
|
305
|
+
request = plugin.loadFile
|
|
306
|
+
? plugin.loadFile(scene, fileInfo.rawData || fileInfo.file || fileInfo.url, fileInfo.rootUrl, dataCallback, onProgress, useArrayBuffer, errorCallback, name)
|
|
307
|
+
: scene._loadFile(fileInfo.jsonData || fileInfo.file || fileInfo.url, dataCallback, onProgress, true, useArrayBuffer, errorCallback);
|
|
308
|
+
}
|
|
309
|
+
catch (error) {
|
|
310
|
+
rejectAndCleanup(createLoadError(fileInfo, undefined, error));
|
|
229
311
|
}
|
|
230
|
-
request = plugin.loadFile
|
|
231
|
-
? plugin.loadFile(scene, fileInfo.rawData || fileInfo.file || fileInfo.url, fileInfo.rootUrl, dataCallback, onProgress, useArrayBuffer, errorCallback, name)
|
|
232
|
-
: scene._loadFile(fileInfo.jsonData || fileInfo.file || fileInfo.url, dataCallback, onProgress, true, useArrayBuffer, errorCallback);
|
|
233
312
|
};
|
|
234
313
|
const engine = scene.getEngine();
|
|
235
|
-
|
|
314
|
+
// File objects and raw data buffers are already in-memory and are not URL-backed requests, so they must
|
|
315
|
+
// not be routed through the offline (manifest/cache) provider.
|
|
316
|
+
let canUseOfflineSupport = !fileInfo.file && !fileInfo.rawData && engine.enableOfflineSupport;
|
|
236
317
|
if (canUseOfflineSupport) {
|
|
237
318
|
// Also check for exceptions
|
|
238
319
|
let exceptionFound = false;
|
|
@@ -246,7 +327,12 @@ async function loadDataAsync(fileInfo, scene, onSuccess, onProgress, onError, on
|
|
|
246
327
|
}
|
|
247
328
|
if (canUseOfflineSupport && AbstractEngine.OfflineProviderFactory) {
|
|
248
329
|
// Checking if a manifest file has been set for this scene and if offline mode has been requested
|
|
249
|
-
|
|
330
|
+
try {
|
|
331
|
+
scene.offlineProvider = AbstractEngine.OfflineProviderFactory(fileInfo.url, manifestChecked, engine.disableManifestCheck);
|
|
332
|
+
}
|
|
333
|
+
catch (error) {
|
|
334
|
+
rejectAndCleanup(createLoadError(fileInfo, undefined, error));
|
|
335
|
+
}
|
|
250
336
|
}
|
|
251
337
|
else {
|
|
252
338
|
manifestChecked();
|
|
@@ -361,120 +447,55 @@ export function GetRegisteredSceneLoaderPluginMetadata() {
|
|
|
361
447
|
*/
|
|
362
448
|
export async function ImportMeshAsync(source, scene, options) {
|
|
363
449
|
const { meshNames, rootUrl = "", onProgress, pluginExtension, name, pluginOptions } = options ?? {};
|
|
364
|
-
return await
|
|
450
|
+
return await importMeshCoreAsync(meshNames, rootUrl, source, scene, onProgress, pluginExtension, name, pluginOptions);
|
|
365
451
|
}
|
|
366
|
-
async function
|
|
452
|
+
async function importMeshCoreAsync(meshNames, rootUrl, sceneFilename = "", scene = EngineStore.LastCreatedScene, onProgress, pluginExtension, name = "", pluginOptions = {}) {
|
|
367
453
|
if (!scene) {
|
|
368
|
-
|
|
369
|
-
return null;
|
|
454
|
+
throw new Error("No scene available to import mesh to");
|
|
370
455
|
}
|
|
371
456
|
const fileInfo = GetFileInfo(rootUrl, sceneFilename);
|
|
372
457
|
if (!fileInfo) {
|
|
373
|
-
|
|
458
|
+
throw new Error("Cannot load file: a valid scene filename or root url was not provided.");
|
|
374
459
|
}
|
|
375
460
|
const loadingToken = {};
|
|
376
461
|
scene.addPendingData(loadingToken);
|
|
377
|
-
const
|
|
378
|
-
|
|
379
|
-
|
|
380
|
-
const errorHandler = (message, exception) => {
|
|
381
|
-
const errorMessage = formatErrorMessage(fileInfo, message, exception);
|
|
382
|
-
if (onError) {
|
|
383
|
-
onError(scene, errorMessage, new RuntimeError(errorMessage, ErrorCodes.SceneLoaderError, exception));
|
|
384
|
-
}
|
|
385
|
-
else {
|
|
386
|
-
Logger.Error(errorMessage);
|
|
387
|
-
// should the exception be thrown?
|
|
388
|
-
}
|
|
389
|
-
disposeHandler();
|
|
390
|
-
};
|
|
391
|
-
const progressHandler = onProgress
|
|
392
|
-
? (event) => {
|
|
393
|
-
try {
|
|
394
|
-
onProgress(event);
|
|
395
|
-
}
|
|
396
|
-
catch (e) {
|
|
397
|
-
errorHandler("Error in onProgress callback: " + e, e);
|
|
398
|
-
}
|
|
399
|
-
}
|
|
400
|
-
: undefined;
|
|
401
|
-
const successHandler = (meshes, particleSystems, skeletons, animationGroups, transformNodes, geometries, lights, spriteManagers) => {
|
|
402
|
-
scene.importedMeshesFiles.push(fileInfo.url);
|
|
403
|
-
if (onSuccess) {
|
|
404
|
-
try {
|
|
405
|
-
onSuccess(meshes, particleSystems, skeletons, animationGroups, transformNodes, geometries, lights, spriteManagers);
|
|
406
|
-
}
|
|
407
|
-
catch (e) {
|
|
408
|
-
errorHandler("Error in onSuccess callback: " + e, e);
|
|
409
|
-
}
|
|
410
|
-
}
|
|
411
|
-
scene.removePendingData(loadingToken);
|
|
412
|
-
};
|
|
413
|
-
return await loadDataAsync(fileInfo, scene, (plugin, data, responseURL) => {
|
|
462
|
+
const progressHandler = wrapProgress(onProgress);
|
|
463
|
+
try {
|
|
464
|
+
const { plugin, data, responseURL } = await loadDataAsync(fileInfo, scene, progressHandler, pluginExtension ?? null, name, pluginOptions);
|
|
414
465
|
if (plugin.rewriteRootURL) {
|
|
415
466
|
fileInfo.rootUrl = plugin.rewriteRootURL(fileInfo.rootUrl, responseURL);
|
|
416
467
|
}
|
|
417
|
-
|
|
418
|
-
const syncedPlugin = plugin;
|
|
419
|
-
const meshes = [];
|
|
420
|
-
const particleSystems = [];
|
|
421
|
-
const skeletons = [];
|
|
422
|
-
if (!syncedPlugin.importMesh(meshNames, scene, data, fileInfo.rootUrl, meshes, particleSystems, skeletons, errorHandler)) {
|
|
423
|
-
return;
|
|
424
|
-
}
|
|
425
|
-
scene.loadingPluginName = plugin.name;
|
|
426
|
-
successHandler(meshes, particleSystems, skeletons, [], [], [], [], []);
|
|
427
|
-
}
|
|
428
|
-
else {
|
|
429
|
-
const asyncedPlugin = plugin;
|
|
430
|
-
asyncedPlugin
|
|
431
|
-
.importMeshAsync(meshNames, scene, data, fileInfo.rootUrl, progressHandler, fileInfo.name)
|
|
432
|
-
// eslint-disable-next-line github/no-then
|
|
433
|
-
.then((result) => {
|
|
434
|
-
scene.loadingPluginName = plugin.name;
|
|
435
|
-
successHandler(result.meshes, result.particleSystems, result.skeletons, result.animationGroups, result.transformNodes, result.geometries, result.lights, result.spriteManagers);
|
|
436
|
-
})
|
|
437
|
-
// eslint-disable-next-line github/no-then
|
|
438
|
-
.catch((error) => {
|
|
439
|
-
errorHandler(error.message, error);
|
|
440
|
-
});
|
|
441
|
-
}
|
|
442
|
-
}, progressHandler, errorHandler, disposeHandler, pluginExtension, name, pluginOptions);
|
|
443
|
-
}
|
|
444
|
-
async function importMeshAsyncCoreAsync(meshNames, rootUrl, sceneFilename, scene, onProgress, pluginExtension, name, pluginOptions) {
|
|
445
|
-
return await new Promise((resolve, reject) => {
|
|
468
|
+
let result;
|
|
446
469
|
try {
|
|
447
|
-
|
|
448
|
-
resolve({
|
|
449
|
-
meshes: meshes,
|
|
450
|
-
particleSystems: particleSystems,
|
|
451
|
-
skeletons: skeletons,
|
|
452
|
-
animationGroups: animationGroups,
|
|
453
|
-
transformNodes: transformNodes,
|
|
454
|
-
geometries: geometries,
|
|
455
|
-
lights: lights,
|
|
456
|
-
spriteManagers: spriteManagers,
|
|
457
|
-
});
|
|
458
|
-
}, onProgress, (scene, message, exception) => {
|
|
459
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
460
|
-
reject(exception || new Error(message));
|
|
461
|
-
}, pluginExtension, name, pluginOptions
|
|
462
|
-
// eslint-disable-next-line github/no-then
|
|
463
|
-
).catch(reject);
|
|
470
|
+
result = await toAsyncPlugin(plugin, fileInfo).importMeshAsync(meshNames, scene, data, fileInfo.rootUrl, progressHandler, fileInfo.name);
|
|
464
471
|
}
|
|
465
472
|
catch (error) {
|
|
466
|
-
|
|
467
|
-
reject(error);
|
|
473
|
+
throw toLoadError(fileInfo, error);
|
|
468
474
|
}
|
|
469
|
-
|
|
475
|
+
// eslint-disable-next-line require-atomic-updates
|
|
476
|
+
scene.loadingPluginName = plugin.name;
|
|
477
|
+
scene.importedMeshesFiles.push(fileInfo.url);
|
|
478
|
+
return result;
|
|
479
|
+
}
|
|
480
|
+
finally {
|
|
481
|
+
scene.removePendingData(loadingToken);
|
|
482
|
+
}
|
|
470
483
|
}
|
|
471
484
|
// This is the core implementation of load scene
|
|
472
|
-
async function
|
|
485
|
+
async function loadSceneCoreAsync(rootUrl, sceneFilename = "", engine = EngineStore.LastCreatedEngine, onProgress, pluginExtension, name = "", pluginOptions = {}) {
|
|
473
486
|
if (!engine) {
|
|
474
|
-
|
|
475
|
-
return;
|
|
487
|
+
throw new Error("No engine available");
|
|
476
488
|
}
|
|
477
|
-
|
|
489
|
+
const scene = new Scene(engine);
|
|
490
|
+
try {
|
|
491
|
+
await appendSceneCoreAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name, pluginOptions);
|
|
492
|
+
}
|
|
493
|
+
catch (error) {
|
|
494
|
+
// The scene was created here, so dispose it on failure to avoid leaking the partially loaded scene.
|
|
495
|
+
scene.dispose();
|
|
496
|
+
throw error;
|
|
497
|
+
}
|
|
498
|
+
return scene;
|
|
478
499
|
}
|
|
479
500
|
/**
|
|
480
501
|
* Load a scene
|
|
@@ -485,7 +506,7 @@ async function loadSceneImplAsync(rootUrl, sceneFilename = "", engine = EngineSt
|
|
|
485
506
|
*/
|
|
486
507
|
export async function LoadSceneAsync(source, engine, options) {
|
|
487
508
|
const { rootUrl = "", onProgress, pluginExtension, name, pluginOptions } = options ?? {};
|
|
488
|
-
return await
|
|
509
|
+
return await loadSceneCoreAsync(rootUrl, source, engine, onProgress, pluginExtension, name, pluginOptions);
|
|
489
510
|
}
|
|
490
511
|
/**
|
|
491
512
|
* Load a scene
|
|
@@ -498,33 +519,17 @@ export async function LoadSceneAsync(source, engine, options) {
|
|
|
498
519
|
export async function loadSceneAsync(source, engine, options) {
|
|
499
520
|
return await LoadSceneAsync(source, engine, options);
|
|
500
521
|
}
|
|
501
|
-
// This function is shared between the new module level loadSceneAsync and the legacy SceneLoader.LoadAsync
|
|
502
|
-
async function loadSceneSharedAsync(rootUrl, sceneFilename, engine, onProgress, pluginExtension, name, pluginOptions) {
|
|
503
|
-
return await new Promise((resolve, reject) => {
|
|
504
|
-
// eslint-disable-next-line @typescript-eslint/no-floating-promises
|
|
505
|
-
loadSceneImplAsync(rootUrl, sceneFilename, engine, (scene) => {
|
|
506
|
-
resolve(scene);
|
|
507
|
-
}, onProgress, (scene, message, exception) => {
|
|
508
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
509
|
-
reject(exception || new Error(message));
|
|
510
|
-
}, pluginExtension, name, pluginOptions);
|
|
511
|
-
});
|
|
512
|
-
}
|
|
513
522
|
// This is the core implementation of append scene
|
|
514
|
-
async function
|
|
523
|
+
async function appendSceneCoreAsync(rootUrl, sceneFilename = "", scene = EngineStore.LastCreatedScene, onProgress, pluginExtension, name = "", pluginOptions = {}) {
|
|
515
524
|
if (!scene) {
|
|
516
|
-
|
|
517
|
-
return null;
|
|
525
|
+
throw new Error("No scene available to append to");
|
|
518
526
|
}
|
|
519
527
|
const fileInfo = GetFileInfo(rootUrl, sceneFilename);
|
|
520
528
|
if (!fileInfo) {
|
|
521
|
-
|
|
529
|
+
throw new Error("Cannot load file: a valid scene filename or root url was not provided.");
|
|
522
530
|
}
|
|
523
531
|
const loadingToken = {};
|
|
524
532
|
scene.addPendingData(loadingToken);
|
|
525
|
-
const disposeHandler = () => {
|
|
526
|
-
scene.removePendingData(loadingToken);
|
|
527
|
-
};
|
|
528
533
|
if (SceneLoaderFlags.ShowLoadingScreen && !showingLoadingScreen) {
|
|
529
534
|
showingLoadingScreen = true;
|
|
530
535
|
scene.getEngine().displayLoadingUI();
|
|
@@ -533,62 +538,22 @@ async function appendSceneImplAsync(rootUrl, sceneFilename = "", scene = EngineS
|
|
|
533
538
|
showingLoadingScreen = false;
|
|
534
539
|
});
|
|
535
540
|
}
|
|
536
|
-
const
|
|
537
|
-
|
|
538
|
-
|
|
539
|
-
|
|
540
|
-
|
|
541
|
-
else {
|
|
542
|
-
Logger.Error(errorMessage);
|
|
543
|
-
// should the exception be thrown?
|
|
544
|
-
}
|
|
545
|
-
disposeHandler();
|
|
546
|
-
};
|
|
547
|
-
const progressHandler = onProgress
|
|
548
|
-
? (event) => {
|
|
549
|
-
try {
|
|
550
|
-
onProgress(event);
|
|
551
|
-
}
|
|
552
|
-
catch (e) {
|
|
553
|
-
errorHandler("Error in onProgress callback", e);
|
|
554
|
-
}
|
|
541
|
+
const progressHandler = wrapProgress(onProgress);
|
|
542
|
+
try {
|
|
543
|
+
const { plugin, data } = await loadDataAsync(fileInfo, scene, progressHandler, pluginExtension ?? null, name, pluginOptions);
|
|
544
|
+
try {
|
|
545
|
+
await toAsyncPlugin(plugin, fileInfo).loadAsync(scene, data, fileInfo.rootUrl, progressHandler, fileInfo.name);
|
|
555
546
|
}
|
|
556
|
-
|
|
557
|
-
|
|
558
|
-
if (onSuccess) {
|
|
559
|
-
try {
|
|
560
|
-
onSuccess(scene);
|
|
561
|
-
}
|
|
562
|
-
catch (e) {
|
|
563
|
-
errorHandler("Error in onSuccess callback", e);
|
|
564
|
-
}
|
|
547
|
+
catch (error) {
|
|
548
|
+
throw toLoadError(fileInfo, error);
|
|
565
549
|
}
|
|
550
|
+
// eslint-disable-next-line require-atomic-updates
|
|
551
|
+
scene.loadingPluginName = plugin.name;
|
|
552
|
+
return scene;
|
|
553
|
+
}
|
|
554
|
+
finally {
|
|
566
555
|
scene.removePendingData(loadingToken);
|
|
567
|
-
}
|
|
568
|
-
return await loadDataAsync(fileInfo, scene, (plugin, data) => {
|
|
569
|
-
if (plugin.load) {
|
|
570
|
-
const syncedPlugin = plugin;
|
|
571
|
-
if (!syncedPlugin.load(scene, data, fileInfo.rootUrl, errorHandler)) {
|
|
572
|
-
return;
|
|
573
|
-
}
|
|
574
|
-
scene.loadingPluginName = plugin.name;
|
|
575
|
-
successHandler();
|
|
576
|
-
}
|
|
577
|
-
else {
|
|
578
|
-
const asyncedPlugin = plugin;
|
|
579
|
-
asyncedPlugin
|
|
580
|
-
.loadAsync(scene, data, fileInfo.rootUrl, progressHandler, fileInfo.name)
|
|
581
|
-
// eslint-disable-next-line github/no-then
|
|
582
|
-
.then(() => {
|
|
583
|
-
scene.loadingPluginName = plugin.name;
|
|
584
|
-
successHandler();
|
|
585
|
-
})
|
|
586
|
-
// eslint-disable-next-line github/no-then
|
|
587
|
-
.catch((error) => {
|
|
588
|
-
errorHandler(error.message, error);
|
|
589
|
-
});
|
|
590
|
-
}
|
|
591
|
-
}, progressHandler, errorHandler, disposeHandler, pluginExtension, name, pluginOptions);
|
|
556
|
+
}
|
|
592
557
|
}
|
|
593
558
|
/**
|
|
594
559
|
* Append a scene
|
|
@@ -599,7 +564,7 @@ async function appendSceneImplAsync(rootUrl, sceneFilename = "", scene = EngineS
|
|
|
599
564
|
*/
|
|
600
565
|
export async function AppendSceneAsync(source, scene, options) {
|
|
601
566
|
const { rootUrl = "", onProgress, pluginExtension, name, pluginOptions } = options ?? {};
|
|
602
|
-
await
|
|
567
|
+
await appendSceneCoreAsync(rootUrl, source, scene, onProgress, pluginExtension, name, pluginOptions);
|
|
603
568
|
}
|
|
604
569
|
/**
|
|
605
570
|
* Append a scene
|
|
@@ -612,102 +577,39 @@ export async function AppendSceneAsync(source, scene, options) {
|
|
|
612
577
|
export async function appendSceneAsync(source, scene, options) {
|
|
613
578
|
return await AppendSceneAsync(source, scene, options);
|
|
614
579
|
}
|
|
615
|
-
// This function is shared between the new module level appendSceneAsync and the legacy SceneLoader.AppendAsync
|
|
616
|
-
async function appendSceneSharedAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name, pluginOptions) {
|
|
617
|
-
return await new Promise((resolve, reject) => {
|
|
618
|
-
try {
|
|
619
|
-
appendSceneImplAsync(rootUrl, sceneFilename, scene, (scene) => {
|
|
620
|
-
resolve(scene);
|
|
621
|
-
}, onProgress, (scene, message, exception) => {
|
|
622
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
623
|
-
reject(exception || new Error(message));
|
|
624
|
-
}, pluginExtension, name, pluginOptions
|
|
625
|
-
// eslint-disable-next-line github/no-then
|
|
626
|
-
).catch(reject);
|
|
627
|
-
}
|
|
628
|
-
catch (error) {
|
|
629
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
630
|
-
reject(error);
|
|
631
|
-
}
|
|
632
|
-
});
|
|
633
|
-
}
|
|
634
580
|
// This is the core implementation of load asset container
|
|
635
|
-
async function
|
|
581
|
+
async function loadAssetContainerCoreAsync(rootUrl, sceneFilename = "", scene = EngineStore.LastCreatedScene, onProgress, pluginExtension, name = "", pluginOptions = {}) {
|
|
636
582
|
if (!scene) {
|
|
637
|
-
|
|
638
|
-
return null;
|
|
583
|
+
throw new Error("No scene available to load asset container to");
|
|
639
584
|
}
|
|
640
585
|
const fileInfo = GetFileInfo(rootUrl, sceneFilename);
|
|
641
586
|
if (!fileInfo) {
|
|
642
|
-
|
|
587
|
+
throw new Error("Cannot load file: a valid scene filename or root url was not provided.");
|
|
643
588
|
}
|
|
644
589
|
const loadingToken = {};
|
|
645
590
|
scene.addPendingData(loadingToken);
|
|
646
|
-
const
|
|
647
|
-
|
|
648
|
-
|
|
649
|
-
|
|
650
|
-
|
|
651
|
-
|
|
652
|
-
|
|
653
|
-
|
|
654
|
-
|
|
655
|
-
|
|
656
|
-
// should the exception be thrown?
|
|
657
|
-
}
|
|
658
|
-
disposeHandler();
|
|
659
|
-
};
|
|
660
|
-
const progressHandler = onProgress
|
|
661
|
-
? (event) => {
|
|
662
|
-
try {
|
|
663
|
-
onProgress(event);
|
|
664
|
-
}
|
|
665
|
-
catch (e) {
|
|
666
|
-
errorHandler("Error in onProgress callback", e);
|
|
667
|
-
}
|
|
591
|
+
const progressHandler = wrapProgress(onProgress);
|
|
592
|
+
try {
|
|
593
|
+
const { plugin, data } = await loadDataAsync(fileInfo, scene, progressHandler, pluginExtension ?? null, name, pluginOptions);
|
|
594
|
+
const asyncPlugin = toAsyncPlugin(plugin, fileInfo);
|
|
595
|
+
if (!asyncPlugin.loadAssetContainerAsync) {
|
|
596
|
+
throw createLoadError(fileInfo, loadAssetContainerNotSupportedMessage);
|
|
597
|
+
}
|
|
598
|
+
let assetContainer;
|
|
599
|
+
try {
|
|
600
|
+
assetContainer = await asyncPlugin.loadAssetContainerAsync(scene, data, fileInfo.rootUrl, progressHandler, fileInfo.name);
|
|
668
601
|
}
|
|
669
|
-
|
|
670
|
-
|
|
671
|
-
if (onSuccess) {
|
|
672
|
-
try {
|
|
673
|
-
onSuccess(assets);
|
|
674
|
-
}
|
|
675
|
-
catch (e) {
|
|
676
|
-
errorHandler("Error in onSuccess callback", e);
|
|
677
|
-
}
|
|
602
|
+
catch (error) {
|
|
603
|
+
throw toLoadError(fileInfo, error);
|
|
678
604
|
}
|
|
605
|
+
assetContainer.populateRootNodes();
|
|
606
|
+
// eslint-disable-next-line require-atomic-updates
|
|
607
|
+
scene.loadingPluginName = plugin.name;
|
|
608
|
+
return assetContainer;
|
|
609
|
+
}
|
|
610
|
+
finally {
|
|
679
611
|
scene.removePendingData(loadingToken);
|
|
680
|
-
}
|
|
681
|
-
return await loadDataAsync(fileInfo, scene, (plugin, data) => {
|
|
682
|
-
if (plugin.loadAssetContainer) {
|
|
683
|
-
const syncedPlugin = plugin;
|
|
684
|
-
const assetContainer = syncedPlugin.loadAssetContainer(scene, data, fileInfo.rootUrl, errorHandler);
|
|
685
|
-
if (!assetContainer) {
|
|
686
|
-
return;
|
|
687
|
-
}
|
|
688
|
-
assetContainer.populateRootNodes();
|
|
689
|
-
scene.loadingPluginName = plugin.name;
|
|
690
|
-
successHandler(assetContainer);
|
|
691
|
-
}
|
|
692
|
-
else if (plugin.loadAssetContainerAsync) {
|
|
693
|
-
const asyncedPlugin = plugin;
|
|
694
|
-
asyncedPlugin
|
|
695
|
-
.loadAssetContainerAsync(scene, data, fileInfo.rootUrl, progressHandler, fileInfo.name)
|
|
696
|
-
// eslint-disable-next-line github/no-then
|
|
697
|
-
.then((assetContainer) => {
|
|
698
|
-
assetContainer.populateRootNodes();
|
|
699
|
-
scene.loadingPluginName = plugin.name;
|
|
700
|
-
successHandler(assetContainer);
|
|
701
|
-
})
|
|
702
|
-
// eslint-disable-next-line github/no-then
|
|
703
|
-
.catch((error) => {
|
|
704
|
-
errorHandler(error.message, error);
|
|
705
|
-
});
|
|
706
|
-
}
|
|
707
|
-
else {
|
|
708
|
-
errorHandler("LoadAssetContainer is not supported by this plugin. Plugin did not provide a loadAssetContainer or loadAssetContainerAsync method.");
|
|
709
|
-
}
|
|
710
|
-
}, progressHandler, errorHandler, disposeHandler, pluginExtension, name, pluginOptions);
|
|
612
|
+
}
|
|
711
613
|
}
|
|
712
614
|
/**
|
|
713
615
|
* Load a scene into an asset container
|
|
@@ -718,7 +620,7 @@ async function loadAssetContainerImplAsync(rootUrl, sceneFilename = "", scene =
|
|
|
718
620
|
*/
|
|
719
621
|
export async function LoadAssetContainerAsync(source, scene, options) {
|
|
720
622
|
const { rootUrl = "", onProgress, pluginExtension, name, pluginOptions } = options ?? {};
|
|
721
|
-
return await
|
|
623
|
+
return await loadAssetContainerCoreAsync(rootUrl, source, scene, onProgress, pluginExtension, name, pluginOptions);
|
|
722
624
|
}
|
|
723
625
|
/**
|
|
724
626
|
* Load a scene into an asset container
|
|
@@ -731,30 +633,10 @@ export async function LoadAssetContainerAsync(source, scene, options) {
|
|
|
731
633
|
export async function loadAssetContainerAsync(source, scene, options) {
|
|
732
634
|
return await LoadAssetContainerAsync(source, scene, options);
|
|
733
635
|
}
|
|
734
|
-
// This function is shared between the new module level loadAssetContainerAsync and the legacy SceneLoader.LoadAssetContainerAsync
|
|
735
|
-
async function loadAssetContainerSharedAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name, pluginOptions) {
|
|
736
|
-
return await new Promise((resolve, reject) => {
|
|
737
|
-
try {
|
|
738
|
-
loadAssetContainerImplAsync(rootUrl, sceneFilename, scene, (assets) => {
|
|
739
|
-
resolve(assets);
|
|
740
|
-
}, onProgress, (scene, message, exception) => {
|
|
741
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
742
|
-
reject(exception || new Error(message));
|
|
743
|
-
}, pluginExtension, name, pluginOptions
|
|
744
|
-
// eslint-disable-next-line github/no-then
|
|
745
|
-
).catch(reject);
|
|
746
|
-
}
|
|
747
|
-
catch (error) {
|
|
748
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
749
|
-
reject(error);
|
|
750
|
-
}
|
|
751
|
-
});
|
|
752
|
-
}
|
|
753
636
|
// This is the core implementation of import animations
|
|
754
|
-
async function
|
|
637
|
+
async function importAnimationsCoreAsync(rootUrl, sceneFilename = "", scene = EngineStore.LastCreatedScene, overwriteAnimations = true, animationGroupLoadingMode = 0 /* SceneLoaderAnimationGroupLoadingMode.Clean */, targetConverter = null, onProgress, pluginExtension, name = "", pluginOptions = {}) {
|
|
755
638
|
if (!scene) {
|
|
756
|
-
|
|
757
|
-
return;
|
|
639
|
+
throw new Error("No scene available to load animations to");
|
|
758
640
|
}
|
|
759
641
|
if (overwriteAnimations) {
|
|
760
642
|
// Reset, stop and dispose all animations before loading new ones
|
|
@@ -796,20 +678,14 @@ async function importAnimationsImplAsync(rootUrl, sceneFilename = "", scene = En
|
|
|
796
678
|
// nothing to do
|
|
797
679
|
break;
|
|
798
680
|
default:
|
|
799
|
-
|
|
800
|
-
return;
|
|
681
|
+
throw new Error("Unknown animation group loading mode value '" + animationGroupLoadingMode + "'");
|
|
801
682
|
}
|
|
802
683
|
}
|
|
803
684
|
const startingIndexForNewAnimatables = scene.animatables.length;
|
|
804
|
-
const
|
|
805
|
-
|
|
806
|
-
|
|
807
|
-
|
|
808
|
-
if (onSuccess) {
|
|
809
|
-
onSuccess(scene);
|
|
810
|
-
}
|
|
811
|
-
};
|
|
812
|
-
await loadAssetContainerImplAsync(rootUrl, sceneFilename, scene, onAssetContainerLoaded, onProgress, onError, pluginExtension, name, pluginOptions);
|
|
685
|
+
const container = await loadAssetContainerCoreAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name, pluginOptions);
|
|
686
|
+
container.mergeAnimationsTo(scene, scene.animatables.slice(startingIndexForNewAnimatables), targetConverter);
|
|
687
|
+
container.dispose();
|
|
688
|
+
scene.onAnimationFileImportedObservable.notifyObservers(scene);
|
|
813
689
|
}
|
|
814
690
|
/**
|
|
815
691
|
* Import animations from a file into a scene
|
|
@@ -820,7 +696,7 @@ async function importAnimationsImplAsync(rootUrl, sceneFilename = "", scene = En
|
|
|
820
696
|
*/
|
|
821
697
|
export async function ImportAnimationsAsync(source, scene, options) {
|
|
822
698
|
const { rootUrl = "", overwriteAnimations, animationGroupLoadingMode, targetConverter, onProgress, pluginExtension, name, pluginOptions } = options ?? {};
|
|
823
|
-
await
|
|
699
|
+
await importAnimationsCoreAsync(rootUrl, source, scene, overwriteAnimations, animationGroupLoadingMode, targetConverter, onProgress, pluginExtension, name, pluginOptions);
|
|
824
700
|
}
|
|
825
701
|
/**
|
|
826
702
|
* Import animations from a file into a scene
|
|
@@ -833,25 +709,6 @@ export async function ImportAnimationsAsync(source, scene, options) {
|
|
|
833
709
|
export async function importAnimationsAsync(source, scene, options) {
|
|
834
710
|
return await ImportAnimationsAsync(source, scene, options);
|
|
835
711
|
}
|
|
836
|
-
// This function is shared between the new module level importAnimationsAsync and the legacy SceneLoader.ImportAnimationsAsync
|
|
837
|
-
async function importAnimationsSharedAsync(rootUrl, sceneFilename, scene, overwriteAnimations, animationGroupLoadingMode, targetConverter, onProgress, pluginExtension, name, pluginOptions) {
|
|
838
|
-
return await new Promise((resolve, reject) => {
|
|
839
|
-
try {
|
|
840
|
-
importAnimationsImplAsync(rootUrl, sceneFilename, scene, overwriteAnimations, animationGroupLoadingMode, targetConverter, (scene) => {
|
|
841
|
-
resolve(scene);
|
|
842
|
-
}, onProgress, (scene, message, exception) => {
|
|
843
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
844
|
-
reject(exception || new Error(message));
|
|
845
|
-
}, pluginExtension, name, pluginOptions
|
|
846
|
-
// eslint-disable-next-line github/no-then
|
|
847
|
-
).catch(reject);
|
|
848
|
-
}
|
|
849
|
-
catch (error) {
|
|
850
|
-
// eslint-disable-next-line @typescript-eslint/prefer-promise-reject-errors
|
|
851
|
-
reject(error);
|
|
852
|
-
}
|
|
853
|
-
});
|
|
854
|
-
}
|
|
855
712
|
/**
|
|
856
713
|
* Class used to load scene from various file formats using registered plugins
|
|
857
714
|
* @see https://doc.babylonjs.com/features/featuresDeepDive/importers/loadingFileTypes
|
|
@@ -944,8 +801,16 @@ export class SceneLoader {
|
|
|
944
801
|
* @deprecated Please use the module level {@link ImportMeshAsync} instead
|
|
945
802
|
*/
|
|
946
803
|
static ImportMesh(meshNames, rootUrl, sceneFilename, scene, onSuccess, onProgress, onError, pluginExtension, name, pluginOptions) {
|
|
947
|
-
|
|
948
|
-
|
|
804
|
+
const reportScene = scene ?? EngineStore.LastCreatedScene;
|
|
805
|
+
void (async () => {
|
|
806
|
+
try {
|
|
807
|
+
const result = await importMeshCoreAsync(meshNames, rootUrl, sceneFilename, scene, onProgress, pluginExtension, name, pluginOptions);
|
|
808
|
+
onSuccess?.(result.meshes, result.particleSystems, result.skeletons, result.animationGroups, result.transformNodes, result.geometries, result.lights, result.spriteManagers);
|
|
809
|
+
}
|
|
810
|
+
catch (error) {
|
|
811
|
+
reportLegacyLoadError(onError, reportScene, error);
|
|
812
|
+
}
|
|
813
|
+
})();
|
|
949
814
|
}
|
|
950
815
|
/**
|
|
951
816
|
* Import meshes into a scene
|
|
@@ -960,7 +825,7 @@ export class SceneLoader {
|
|
|
960
825
|
* @deprecated Please use the module level {@link ImportMeshAsync} instead
|
|
961
826
|
*/
|
|
962
827
|
static async ImportMeshAsync(meshNames, rootUrl, sceneFilename, scene, onProgress, pluginExtension, name) {
|
|
963
|
-
return await
|
|
828
|
+
return await importMeshCoreAsync(meshNames, rootUrl, sceneFilename, scene, onProgress, pluginExtension, name);
|
|
964
829
|
}
|
|
965
830
|
/**
|
|
966
831
|
* Load a scene
|
|
@@ -975,8 +840,15 @@ export class SceneLoader {
|
|
|
975
840
|
* @deprecated Please use the module level {@link LoadSceneAsync} instead
|
|
976
841
|
*/
|
|
977
842
|
static Load(rootUrl, sceneFilename, engine, onSuccess, onProgress, onError, pluginExtension, name) {
|
|
978
|
-
|
|
979
|
-
|
|
843
|
+
void (async () => {
|
|
844
|
+
try {
|
|
845
|
+
const scene = await loadSceneCoreAsync(rootUrl, sceneFilename, engine, onProgress, pluginExtension, name);
|
|
846
|
+
onSuccess?.(scene);
|
|
847
|
+
}
|
|
848
|
+
catch (error) {
|
|
849
|
+
reportLegacyLoadError(onError, EngineStore.LastCreatedScene, error);
|
|
850
|
+
}
|
|
851
|
+
})();
|
|
980
852
|
}
|
|
981
853
|
/**
|
|
982
854
|
* Load a scene
|
|
@@ -990,7 +862,7 @@ export class SceneLoader {
|
|
|
990
862
|
* @deprecated Please use the module level {@link LoadSceneAsync} instead
|
|
991
863
|
*/
|
|
992
864
|
static async LoadAsync(rootUrl, sceneFilename, engine, onProgress, pluginExtension, name) {
|
|
993
|
-
return await
|
|
865
|
+
return await loadSceneCoreAsync(rootUrl, sceneFilename, engine, onProgress, pluginExtension, name);
|
|
994
866
|
}
|
|
995
867
|
/**
|
|
996
868
|
* Append a scene
|
|
@@ -1005,8 +877,16 @@ export class SceneLoader {
|
|
|
1005
877
|
* @deprecated Please use the module level {@link AppendSceneAsync} instead
|
|
1006
878
|
*/
|
|
1007
879
|
static Append(rootUrl, sceneFilename, scene, onSuccess, onProgress, onError, pluginExtension, name) {
|
|
1008
|
-
|
|
1009
|
-
|
|
880
|
+
const reportScene = scene ?? EngineStore.LastCreatedScene;
|
|
881
|
+
void (async () => {
|
|
882
|
+
try {
|
|
883
|
+
const appendedScene = await appendSceneCoreAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name);
|
|
884
|
+
onSuccess?.(appendedScene);
|
|
885
|
+
}
|
|
886
|
+
catch (error) {
|
|
887
|
+
reportLegacyLoadError(onError, reportScene, error);
|
|
888
|
+
}
|
|
889
|
+
})();
|
|
1010
890
|
}
|
|
1011
891
|
/**
|
|
1012
892
|
* Append a scene
|
|
@@ -1020,7 +900,7 @@ export class SceneLoader {
|
|
|
1020
900
|
* @deprecated Please use the module level {@link AppendSceneAsync} instead
|
|
1021
901
|
*/
|
|
1022
902
|
static async AppendAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name) {
|
|
1023
|
-
return await
|
|
903
|
+
return await appendSceneCoreAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name);
|
|
1024
904
|
}
|
|
1025
905
|
/**
|
|
1026
906
|
* Load a scene into an asset container
|
|
@@ -1035,8 +915,16 @@ export class SceneLoader {
|
|
|
1035
915
|
* @deprecated Please use the module level {@link LoadAssetContainerAsync} instead
|
|
1036
916
|
*/
|
|
1037
917
|
static LoadAssetContainer(rootUrl, sceneFilename, scene, onSuccess, onProgress, onError, pluginExtension, name) {
|
|
1038
|
-
|
|
1039
|
-
|
|
918
|
+
const reportScene = scene ?? EngineStore.LastCreatedScene;
|
|
919
|
+
void (async () => {
|
|
920
|
+
try {
|
|
921
|
+
const assets = await loadAssetContainerCoreAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name);
|
|
922
|
+
onSuccess?.(assets);
|
|
923
|
+
}
|
|
924
|
+
catch (error) {
|
|
925
|
+
reportLegacyLoadError(onError, reportScene, error);
|
|
926
|
+
}
|
|
927
|
+
})();
|
|
1040
928
|
}
|
|
1041
929
|
/**
|
|
1042
930
|
* Load a scene into an asset container
|
|
@@ -1050,7 +938,7 @@ export class SceneLoader {
|
|
|
1050
938
|
* @deprecated Please use the module level {@link LoadAssetContainerAsync} instead
|
|
1051
939
|
*/
|
|
1052
940
|
static async LoadAssetContainerAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name) {
|
|
1053
|
-
return await
|
|
941
|
+
return await loadAssetContainerCoreAsync(rootUrl, sceneFilename, scene, onProgress, pluginExtension, name);
|
|
1054
942
|
}
|
|
1055
943
|
/**
|
|
1056
944
|
* Import animations from a file into a scene
|
|
@@ -1068,9 +956,16 @@ export class SceneLoader {
|
|
|
1068
956
|
* @deprecated Please use the module level {@link ImportAnimationsAsync} instead
|
|
1069
957
|
*/
|
|
1070
958
|
static ImportAnimations(rootUrl, sceneFilename, scene, overwriteAnimations, animationGroupLoadingMode, targetConverter, onSuccess, onProgress, onError, pluginExtension, name) {
|
|
1071
|
-
|
|
1072
|
-
|
|
1073
|
-
|
|
959
|
+
const reportScene = scene ?? EngineStore.LastCreatedScene;
|
|
960
|
+
void (async () => {
|
|
961
|
+
try {
|
|
962
|
+
await importAnimationsCoreAsync(rootUrl, sceneFilename, scene, overwriteAnimations, animationGroupLoadingMode, targetConverter, onProgress, pluginExtension, name);
|
|
963
|
+
onSuccess?.(reportScene);
|
|
964
|
+
}
|
|
965
|
+
catch (error) {
|
|
966
|
+
reportLegacyLoadError(onError, reportScene, error);
|
|
967
|
+
}
|
|
968
|
+
})();
|
|
1074
969
|
}
|
|
1075
970
|
/**
|
|
1076
971
|
* Import animations from a file into a scene
|
|
@@ -1093,7 +988,9 @@ export class SceneLoader {
|
|
|
1093
988
|
onSuccess, onProgress,
|
|
1094
989
|
// eslint-disable-next-line @typescript-eslint/no-unused-vars
|
|
1095
990
|
onError, pluginExtension, name) {
|
|
1096
|
-
|
|
991
|
+
const targetScene = scene ?? EngineStore.LastCreatedScene;
|
|
992
|
+
await importAnimationsCoreAsync(rootUrl, sceneFilename, targetScene, overwriteAnimations, animationGroupLoadingMode, targetConverter, onProgress, pluginExtension, name);
|
|
993
|
+
return targetScene;
|
|
1097
994
|
}
|
|
1098
995
|
}
|
|
1099
996
|
/**
|