@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/Misc/decorators.d.ts
CHANGED
|
@@ -1,35 +1,50 @@
|
|
|
1
1
|
import { type Nullable } from "../types.js";
|
|
2
|
-
|
|
3
|
-
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
7
|
-
|
|
8
|
-
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
|
|
12
|
-
|
|
13
|
-
export declare function
|
|
14
|
-
export declare function
|
|
2
|
+
/**
|
|
3
|
+
* TC39 decorator context types that serialization decorators can be applied to.
|
|
4
|
+
* Serialization decorators can be applied to fields, getters, setters, and auto-accessors.
|
|
5
|
+
* `metadata` can be undefined at runtime when `Symbol.metadata` is not available (e.g. tree-shaken
|
|
6
|
+
* usage on a runtime that lacks native support and never triggered the polyfill); in that case the
|
|
7
|
+
* serialization metadata is simply not recorded.
|
|
8
|
+
*/
|
|
9
|
+
type SerializableContext = {
|
|
10
|
+
name: string | symbol;
|
|
11
|
+
metadata: DecoratorMetadataObject | undefined;
|
|
12
|
+
};
|
|
13
|
+
export declare function expandToProperty(callback: string, targetKey?: Nullable<string>): <This, V>(_value: ClassAccessorDecoratorTarget<This, V>, context: ClassAccessorDecoratorContext<This, V>) => ClassAccessorDecoratorResult<This, V>;
|
|
14
|
+
export declare function serialize(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
15
|
+
export declare function serializeAsTexture(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
16
|
+
export declare function serializeAsColor3(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
17
|
+
export declare function serializeAsFresnelParameters(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
18
|
+
export declare function serializeAsVector2(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
19
|
+
export declare function serializeAsVector3(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
20
|
+
export declare function serializeAsMeshReference(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
21
|
+
export declare function serializeAsColorCurves(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
22
|
+
export declare function serializeAsColor4(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
23
|
+
export declare function serializeAsImageProcessingConfiguration(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
24
|
+
export declare function serializeAsQuaternion(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
25
|
+
export declare function serializeAsMatrix(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
26
|
+
export declare function serializeAsVector4(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
15
27
|
/**
|
|
16
28
|
* Decorator used to define property that can be serialized as reference to a camera
|
|
17
29
|
* @param sourceName defines the name of the property to decorate
|
|
18
30
|
* @returns Property Decorator
|
|
19
31
|
*/
|
|
20
|
-
export declare function serializeAsCameraReference(sourceName?: string): (
|
|
32
|
+
export declare function serializeAsCameraReference(sourceName?: string): (_value: unknown, context: SerializableContext) => void;
|
|
21
33
|
/**
|
|
22
34
|
* Decorator used to redirect a function to a native implementation if available.
|
|
23
35
|
* @internal
|
|
24
36
|
*/
|
|
25
|
-
export declare function nativeOverride<
|
|
37
|
+
export declare function nativeOverride<This, Args extends any[], Return>(originalMethod: (this: This, ...args: Args) => Return, context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Return>): (this: This, ...args: Args) => Return;
|
|
26
38
|
export declare namespace nativeOverride {
|
|
27
|
-
var filter: <T extends (...params: any) => boolean>(predicate: T) => (
|
|
39
|
+
var filter: <T extends (...params: any) => boolean>(predicate: T) => <This, Args extends any[], Return>(originalMethod: (this: This, ...args: Args) => Return, context: ClassMethodDecoratorContext<This, (this: This, ...args: Args) => Return>) => ((this: This, ...args: Args) => Return);
|
|
28
40
|
}
|
|
29
41
|
/**
|
|
30
42
|
* Adds accessors for a material property.
|
|
43
|
+
* Applied to an auto-accessor field. Reads/writes from a private backing field named by sourceKey (default: "_" + property name).
|
|
44
|
+
* The backing field is expected to have a `.value` property.
|
|
31
45
|
* @param setCallback - The name of the callback function to call when the property is set.
|
|
32
|
-
* @param
|
|
33
|
-
* @returns
|
|
46
|
+
* @param sourceKey - The name of the private field that stores the value (defaults to "_" + accessor name).
|
|
47
|
+
* @returns An accessor decorator.
|
|
34
48
|
*/
|
|
35
|
-
export declare function addAccessorsForMaterialProperty(setCallback: string,
|
|
49
|
+
export declare function addAccessorsForMaterialProperty(setCallback: string, sourceKey?: Nullable<string>): <This, V>(_value: ClassAccessorDecoratorTarget<This, V>, context: ClassAccessorDecoratorContext<This, V>) => ClassAccessorDecoratorResult<This, V>;
|
|
50
|
+
export {};
|
|
@@ -1,7 +1,38 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Internal helpers for reading and writing decorator metadata used by serialization.
|
|
3
|
+
*
|
|
4
|
+
* The serialization store is attached to each class constructor via `Symbol.metadata`. The polyfill
|
|
5
|
+
* required for `Symbol.metadata` lives in `symbolMetadataPolyfill.ts` and is applied at package
|
|
6
|
+
* entry points.
|
|
7
|
+
*/
|
|
8
|
+
import { type SerializedPropertyMetadataMap } from "./decorators.serializationUtilities.js";
|
|
9
|
+
/**
|
|
10
|
+
* The well-known `Symbol.metadata` symbol, resolved once at module-evaluation time.
|
|
11
|
+
*
|
|
12
|
+
* Reading (and thereby resolving) this symbol at module load guarantees that `Symbol.metadata`
|
|
13
|
+
* exists BEFORE any decorated class which imports the decorator infrastructure evaluates its class
|
|
14
|
+
* body. TypeScript's TC39 decorator emit captures `context.metadata` from `Symbol.metadata` at the
|
|
15
|
+
* top of the class `static {}` block (before the decorator factory runs), so if the symbol is not
|
|
16
|
+
* yet installed the metadata object is `void 0` and every metadata-based decorator throws.
|
|
17
|
+
*
|
|
18
|
+
* It is intentionally an exported `const` initialized from a function call: bundlers that treat this
|
|
19
|
+
* module as side-effect-free may drop bare top-level calls, but they cannot drop a `const` whose
|
|
20
|
+
* value is referenced by the retained decorator helpers below. The tree-shaking side-effect detector
|
|
21
|
+
* likewise skips `const X = ...` initializers, so this module stays classified as pure and remains
|
|
22
|
+
* importable from `.pure` modules.
|
|
23
|
+
* @internal
|
|
24
|
+
*/
|
|
25
|
+
export declare const MetadataSymbol: symbol;
|
|
26
|
+
/**
|
|
27
|
+
* Returns (creating if necessary) the serialization store owned by the provided decorator metadata.
|
|
28
|
+
* Used by the TC39 decorators, which receive `context.metadata` directly.
|
|
29
|
+
* @internal
|
|
30
|
+
*/
|
|
31
|
+
export declare function GetDirectStoreFromMetadata(metadata: DecoratorMetadataObject): SerializedPropertyMetadataMap;
|
|
1
32
|
/** @internal */
|
|
2
|
-
export declare function GetDirectStore(target: any):
|
|
33
|
+
export declare function GetDirectStore(target: any): SerializedPropertyMetadataMap;
|
|
3
34
|
/**
|
|
4
35
|
* @returns the list of properties flagged as serializable
|
|
5
36
|
* @param target host object
|
|
6
37
|
*/
|
|
7
|
-
export declare function GetMergedStore(target: any):
|
|
38
|
+
export declare function GetMergedStore(target: any): SerializedPropertyMetadataMap;
|
|
@@ -1,50 +1,129 @@
|
|
|
1
|
-
|
|
2
|
-
const
|
|
1
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
2
|
+
const __bjsSerializableKey = "__bjs_serializable__";
|
|
3
|
+
// eslint-disable-next-line @typescript-eslint/naming-convention
|
|
4
|
+
const _mergedStoreCache = new WeakMap();
|
|
5
|
+
// Universal `Object.hasOwn` equivalent. We intentionally avoid the native `Object.hasOwn` (ES2022)
|
|
6
|
+
// because TypeScript does not down-level runtime APIs and some Babylon Native engines (e.g. ChakraCore)
|
|
7
|
+
// do not provide it. `Object.prototype.hasOwnProperty` exists on every engine, and routing through it
|
|
8
|
+
// here also stays safe for the null-prototype metadata objects created below.
|
|
9
|
+
function HasOwn(target, key) {
|
|
10
|
+
return Object.prototype.hasOwnProperty.call(target, key);
|
|
11
|
+
}
|
|
12
|
+
function GetMetadataSymbol() {
|
|
13
|
+
let metadataSymbol = Symbol.metadata;
|
|
14
|
+
if (!metadataSymbol) {
|
|
15
|
+
// Defensive idempotent fallback for runtimes (or import orders) where the entry-point polyfill
|
|
16
|
+
// has not yet run. Matches symbolMetadataPolyfill.ts.
|
|
17
|
+
metadataSymbol = Symbol("Symbol.metadata");
|
|
18
|
+
Object.defineProperty(Symbol, "metadata", {
|
|
19
|
+
configurable: true,
|
|
20
|
+
writable: true,
|
|
21
|
+
value: metadataSymbol,
|
|
22
|
+
});
|
|
23
|
+
}
|
|
24
|
+
return metadataSymbol;
|
|
25
|
+
}
|
|
26
|
+
/**
|
|
27
|
+
* The well-known `Symbol.metadata` symbol, resolved once at module-evaluation time.
|
|
28
|
+
*
|
|
29
|
+
* Reading (and thereby resolving) this symbol at module load guarantees that `Symbol.metadata`
|
|
30
|
+
* exists BEFORE any decorated class which imports the decorator infrastructure evaluates its class
|
|
31
|
+
* body. TypeScript's TC39 decorator emit captures `context.metadata` from `Symbol.metadata` at the
|
|
32
|
+
* top of the class `static {}` block (before the decorator factory runs), so if the symbol is not
|
|
33
|
+
* yet installed the metadata object is `void 0` and every metadata-based decorator throws.
|
|
34
|
+
*
|
|
35
|
+
* It is intentionally an exported `const` initialized from a function call: bundlers that treat this
|
|
36
|
+
* module as side-effect-free may drop bare top-level calls, but they cannot drop a `const` whose
|
|
37
|
+
* value is referenced by the retained decorator helpers below. The tree-shaking side-effect detector
|
|
38
|
+
* likewise skips `const X = ...` initializers, so this module stays classified as pure and remains
|
|
39
|
+
* importable from `.pure` modules.
|
|
40
|
+
* @internal
|
|
41
|
+
*/
|
|
42
|
+
export const MetadataSymbol = GetMetadataSymbol();
|
|
43
|
+
// Returns the constructor for the provided decorator/serialization target.
|
|
44
|
+
// Experimental decorators pass a prototype; serialization passes an instance or a constructor.
|
|
45
|
+
function GetConstructor(target) {
|
|
46
|
+
return typeof target === "function" ? target : target?.constructor;
|
|
47
|
+
}
|
|
48
|
+
// Returns (creating if necessary) the metadata object owned by the given constructor.
|
|
49
|
+
// The metadata's prototype mirrors the class hierarchy so merged lookups can walk it.
|
|
50
|
+
function GetOwnMetadata(ctor) {
|
|
51
|
+
if (!ctor) {
|
|
52
|
+
return undefined;
|
|
53
|
+
}
|
|
54
|
+
if (!HasOwn(ctor, MetadataSymbol)) {
|
|
55
|
+
const parent = Object.getPrototypeOf(ctor);
|
|
56
|
+
const parentMetadata = parent ? parent[MetadataSymbol] : null;
|
|
57
|
+
Object.defineProperty(ctor, MetadataSymbol, {
|
|
58
|
+
value: Object.create(parentMetadata ?? null),
|
|
59
|
+
configurable: true,
|
|
60
|
+
writable: true,
|
|
61
|
+
enumerable: false,
|
|
62
|
+
});
|
|
63
|
+
}
|
|
64
|
+
return ctor[MetadataSymbol];
|
|
65
|
+
}
|
|
66
|
+
/**
|
|
67
|
+
* Returns (creating if necessary) the serialization store owned by the provided decorator metadata.
|
|
68
|
+
* Used by the TC39 decorators, which receive `context.metadata` directly.
|
|
69
|
+
* @internal
|
|
70
|
+
*/
|
|
71
|
+
export function GetDirectStoreFromMetadata(metadata) {
|
|
72
|
+
if (!metadata) {
|
|
73
|
+
// `metadata` is `context.metadata`, which is `void 0` when `Symbol.metadata` was not installed
|
|
74
|
+
// before the class was evaluated. Referencing `MetadataSymbol` here (a) produces an actionable
|
|
75
|
+
// error instead of a cryptic "Cannot convert undefined to object" and (b) keeps the module-load
|
|
76
|
+
// polyfill anchored so bundlers cannot tree-shake it away on the decorate-time serialize path.
|
|
77
|
+
throw new Error(`Decorator metadata is unavailable; the Symbol.metadata (${String(MetadataSymbol)}) polyfill must run before decorated classes are evaluated.`);
|
|
78
|
+
}
|
|
79
|
+
if (!HasOwn(metadata, __bjsSerializableKey)) {
|
|
80
|
+
metadata[__bjsSerializableKey] = {};
|
|
81
|
+
}
|
|
82
|
+
return metadata[__bjsSerializableKey];
|
|
83
|
+
}
|
|
3
84
|
/** @internal */
|
|
4
85
|
export function GetDirectStore(target) {
|
|
5
|
-
const
|
|
6
|
-
if (!
|
|
7
|
-
|
|
86
|
+
const metadata = GetOwnMetadata(GetConstructor(target));
|
|
87
|
+
if (!metadata) {
|
|
88
|
+
return {};
|
|
89
|
+
}
|
|
90
|
+
if (!HasOwn(metadata, __bjsSerializableKey)) {
|
|
91
|
+
metadata[__bjsSerializableKey] = {};
|
|
8
92
|
}
|
|
9
|
-
return
|
|
93
|
+
return metadata[__bjsSerializableKey];
|
|
10
94
|
}
|
|
11
95
|
/**
|
|
12
96
|
* @returns the list of properties flagged as serializable
|
|
13
97
|
* @param target host object
|
|
14
98
|
*/
|
|
15
99
|
export function GetMergedStore(target) {
|
|
16
|
-
const
|
|
17
|
-
|
|
18
|
-
|
|
19
|
-
|
|
20
|
-
|
|
21
|
-
const
|
|
22
|
-
|
|
23
|
-
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
|
|
27
|
-
|
|
28
|
-
|
|
29
|
-
|
|
30
|
-
|
|
31
|
-
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
|
|
36
|
-
|
|
37
|
-
|
|
38
|
-
|
|
100
|
+
const ctor = GetConstructor(target);
|
|
101
|
+
const metadata = ctor ? ctor[MetadataSymbol] : undefined;
|
|
102
|
+
if (!metadata) {
|
|
103
|
+
return {};
|
|
104
|
+
}
|
|
105
|
+
const cached = _mergedStoreCache.get(metadata);
|
|
106
|
+
if (cached) {
|
|
107
|
+
return cached;
|
|
108
|
+
}
|
|
109
|
+
const store = {};
|
|
110
|
+
// Walk the metadata prototype chain (most derived first); parents overwrite children to match the
|
|
111
|
+
// original class-name-keyed merge order.
|
|
112
|
+
const chain = [];
|
|
113
|
+
let current = metadata;
|
|
114
|
+
while (current) {
|
|
115
|
+
chain.push(current);
|
|
116
|
+
current = Object.getPrototypeOf(current);
|
|
117
|
+
}
|
|
118
|
+
for (const meta of chain) {
|
|
119
|
+
if (HasOwn(meta, __bjsSerializableKey)) {
|
|
120
|
+
const initialStore = meta[__bjsSerializableKey];
|
|
121
|
+
for (const property in initialStore) {
|
|
122
|
+
store[property] = initialStore[property];
|
|
39
123
|
}
|
|
40
|
-
currentTarget = parent;
|
|
41
|
-
} while (parent);
|
|
42
|
-
if (done) {
|
|
43
|
-
break;
|
|
44
124
|
}
|
|
45
|
-
currentKey = parent.getClassName();
|
|
46
|
-
currentTarget = parent;
|
|
47
125
|
}
|
|
126
|
+
_mergedStoreCache.set(metadata, store);
|
|
48
127
|
return store;
|
|
49
128
|
}
|
|
50
129
|
//# sourceMappingURL=decorators.functions.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"decorators.functions.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/decorators.functions.ts"],"names":[],"mappings":"
|
|
1
|
+
{"version":3,"file":"decorators.functions.js","sourceRoot":"","sources":["../../../../dev/core/src/Misc/decorators.functions.ts"],"names":[],"mappings":"AASA,gEAAgE;AAChE,MAAM,oBAAoB,GAAG,sBAAsB,CAAC;AAEpD,gEAAgE;AAChE,MAAM,iBAAiB,GAAG,IAAI,OAAO,EAAe,CAAC;AAErD,mGAAmG;AACnG,wGAAwG;AACxG,sGAAsG;AACtG,8EAA8E;AAC9E,SAAS,MAAM,CAAC,MAAc,EAAE,GAAgB;IAC5C,OAAO,MAAM,CAAC,SAAS,CAAC,cAAc,CAAC,IAAI,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;AAC7D,CAAC;AAED,SAAS,iBAAiB;IACtB,IAAI,cAAc,GAAI,MAAc,CAAC,QAA8B,CAAC;IACpE,IAAI,CAAC,cAAc,EAAE,CAAC;QAClB,+FAA+F;QAC/F,sDAAsD;QACtD,cAAc,GAAG,MAAM,CAAC,iBAAiB,CAAC,CAAC;QAC3C,MAAM,CAAC,cAAc,CAAC,MAAM,EAAE,UAAU,EAAE;YACtC,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,KAAK,EAAE,cAAc;SACxB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,cAAc,CAAC;AAC1B,CAAC;AAED;;;;;;;;;;;;;;;GAeG;AACH,MAAM,CAAC,MAAM,cAAc,GAAW,iBAAiB,EAAE,CAAC;AAE1D,2EAA2E;AAC3E,+FAA+F;AAC/F,SAAS,cAAc,CAAC,MAAW;IAC/B,OAAO,OAAO,MAAM,KAAK,UAAU,CAAC,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,MAAM,EAAE,WAAW,CAAC;AACvE,CAAC;AAED,sFAAsF;AACtF,sFAAsF;AACtF,SAAS,cAAc,CAAC,IAAS;IAC7B,IAAI,CAAC,IAAI,EAAE,CAAC;QACR,OAAO,SAAS,CAAC;IACrB,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,IAAI,EAAE,cAAc,CAAC,EAAE,CAAC;QAChC,MAAM,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,IAAI,CAAC,CAAC;QAC3C,MAAM,cAAc,GAAG,MAAM,CAAC,CAAC,CAAC,MAAM,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,IAAI,CAAC;QAC9D,MAAM,CAAC,cAAc,CAAC,IAAI,EAAE,cAAc,EAAE;YACxC,KAAK,EAAE,MAAM,CAAC,MAAM,CAAC,cAAc,IAAI,IAAI,CAAC;YAC5C,YAAY,EAAE,IAAI;YAClB,QAAQ,EAAE,IAAI;YACd,UAAU,EAAE,KAAK;SACpB,CAAC,CAAC;IACP,CAAC;IACD,OAAO,IAAI,CAAC,cAAc,CAAC,CAAC;AAChC,CAAC;AAED;;;;GAIG;AACH,MAAM,UAAU,0BAA0B,CAAC,QAAiC;IACxE,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,+FAA+F;QAC/F,+FAA+F;QAC/F,gGAAgG;QAChG,+FAA+F;QAC/F,MAAM,IAAI,KAAK,CAAC,2DAA2D,MAAM,CAAC,cAAc,CAAC,6DAA6D,CAAC,CAAC;IACpK,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;QACzC,QAAgB,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;IACjD,CAAC;IACD,OAAQ,QAAgB,CAAC,oBAAoB,CAAC,CAAC;AACnD,CAAC;AAED,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,MAAW;IACtC,MAAM,QAAQ,GAAG,cAAc,CAAC,cAAc,CAAC,MAAM,CAAC,CAAC,CAAC;IACxD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACd,CAAC;IACD,IAAI,CAAC,MAAM,CAAC,QAAQ,EAAE,oBAAoB,CAAC,EAAE,CAAC;QAC1C,QAAQ,CAAC,oBAAoB,CAAC,GAAG,EAAE,CAAC;IACxC,CAAC;IACD,OAAO,QAAQ,CAAC,oBAAoB,CAAC,CAAC;AAC1C,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAW;IACtC,MAAM,IAAI,GAAG,cAAc,CAAC,MAAM,CAAC,CAAC;IACpC,MAAM,QAAQ,GAAG,IAAI,CAAC,CAAC,CAAC,IAAI,CAAC,cAAc,CAAC,CAAC,CAAC,CAAC,SAAS,CAAC;IACzD,IAAI,CAAC,QAAQ,EAAE,CAAC;QACZ,OAAO,EAAE,CAAC;IACd,CAAC;IAED,MAAM,MAAM,GAAG,iBAAiB,CAAC,GAAG,CAAC,QAAQ,CAAC,CAAC;IAC/C,IAAI,MAAM,EAAE,CAAC;QACT,OAAO,MAAM,CAAC;IAClB,CAAC;IAED,MAAM,KAAK,GAAkC,EAAE,CAAC;IAChD,kGAAkG;IAClG,yCAAyC;IACzC,MAAM,KAAK,GAAU,EAAE,CAAC;IACxB,IAAI,OAAO,GAAQ,QAAQ,CAAC;IAC5B,OAAO,OAAO,EAAE,CAAC;QACb,KAAK,CAAC,IAAI,CAAC,OAAO,CAAC,CAAC;QACpB,OAAO,GAAG,MAAM,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;IAC7C,CAAC;IACD,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;QACvB,IAAI,MAAM,CAAC,IAAI,EAAE,oBAAoB,CAAC,EAAE,CAAC;YACrC,MAAM,YAAY,GAAG,IAAI,CAAC,oBAAoB,CAAkC,CAAC;YACjF,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;gBAClC,KAAK,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;YAC7C,CAAC;QACL,CAAC;IACL,CAAC;IAED,iBAAiB,CAAC,GAAG,CAAC,QAAQ,EAAE,KAAK,CAAC,CAAC;IACvC,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["/**\n * Internal helpers for reading and writing decorator metadata used by serialization.\n *\n * The serialization store is attached to each class constructor via `Symbol.metadata`. The polyfill\n * required for `Symbol.metadata` lives in `symbolMetadataPolyfill.ts` and is applied at package\n * entry points.\n */\nimport { type SerializedPropertyMetadataMap } from \"./decorators.serializationUtilities\";\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst __bjsSerializableKey = \"__bjs_serializable__\";\n\n// eslint-disable-next-line @typescript-eslint/naming-convention\nconst _mergedStoreCache = new WeakMap<object, any>();\n\n// Universal `Object.hasOwn` equivalent. We intentionally avoid the native `Object.hasOwn` (ES2022)\n// because TypeScript does not down-level runtime APIs and some Babylon Native engines (e.g. ChakraCore)\n// do not provide it. `Object.prototype.hasOwnProperty` exists on every engine, and routing through it\n// here also stays safe for the null-prototype metadata objects created below.\nfunction HasOwn(target: object, key: PropertyKey): boolean {\n return Object.prototype.hasOwnProperty.call(target, key);\n}\n\nfunction GetMetadataSymbol(): symbol {\n let metadataSymbol = (Symbol as any).metadata as symbol | undefined;\n if (!metadataSymbol) {\n // Defensive idempotent fallback for runtimes (or import orders) where the entry-point polyfill\n // has not yet run. Matches symbolMetadataPolyfill.ts.\n metadataSymbol = Symbol(\"Symbol.metadata\");\n Object.defineProperty(Symbol, \"metadata\", {\n configurable: true,\n writable: true,\n value: metadataSymbol,\n });\n }\n return metadataSymbol;\n}\n\n/**\n * The well-known `Symbol.metadata` symbol, resolved once at module-evaluation time.\n *\n * Reading (and thereby resolving) this symbol at module load guarantees that `Symbol.metadata`\n * exists BEFORE any decorated class which imports the decorator infrastructure evaluates its class\n * body. TypeScript's TC39 decorator emit captures `context.metadata` from `Symbol.metadata` at the\n * top of the class `static {}` block (before the decorator factory runs), so if the symbol is not\n * yet installed the metadata object is `void 0` and every metadata-based decorator throws.\n *\n * It is intentionally an exported `const` initialized from a function call: bundlers that treat this\n * module as side-effect-free may drop bare top-level calls, but they cannot drop a `const` whose\n * value is referenced by the retained decorator helpers below. The tree-shaking side-effect detector\n * likewise skips `const X = ...` initializers, so this module stays classified as pure and remains\n * importable from `.pure` modules.\n * @internal\n */\nexport const MetadataSymbol: symbol = GetMetadataSymbol();\n\n// Returns the constructor for the provided decorator/serialization target.\n// Experimental decorators pass a prototype; serialization passes an instance or a constructor.\nfunction GetConstructor(target: any): any {\n return typeof target === \"function\" ? target : target?.constructor;\n}\n\n// Returns (creating if necessary) the metadata object owned by the given constructor.\n// The metadata's prototype mirrors the class hierarchy so merged lookups can walk it.\nfunction GetOwnMetadata(ctor: any): any {\n if (!ctor) {\n return undefined;\n }\n if (!HasOwn(ctor, MetadataSymbol)) {\n const parent = Object.getPrototypeOf(ctor);\n const parentMetadata = parent ? parent[MetadataSymbol] : null;\n Object.defineProperty(ctor, MetadataSymbol, {\n value: Object.create(parentMetadata ?? null),\n configurable: true,\n writable: true,\n enumerable: false,\n });\n }\n return ctor[MetadataSymbol];\n}\n\n/**\n * Returns (creating if necessary) the serialization store owned by the provided decorator metadata.\n * Used by the TC39 decorators, which receive `context.metadata` directly.\n * @internal\n */\nexport function GetDirectStoreFromMetadata(metadata: DecoratorMetadataObject): SerializedPropertyMetadataMap {\n if (!metadata) {\n // `metadata` is `context.metadata`, which is `void 0` when `Symbol.metadata` was not installed\n // before the class was evaluated. Referencing `MetadataSymbol` here (a) produces an actionable\n // error instead of a cryptic \"Cannot convert undefined to object\" and (b) keeps the module-load\n // polyfill anchored so bundlers cannot tree-shake it away on the decorate-time serialize path.\n throw new Error(`Decorator metadata is unavailable; the Symbol.metadata (${String(MetadataSymbol)}) polyfill must run before decorated classes are evaluated.`);\n }\n if (!HasOwn(metadata, __bjsSerializableKey)) {\n (metadata as any)[__bjsSerializableKey] = {};\n }\n return (metadata as any)[__bjsSerializableKey];\n}\n\n/** @internal */\nexport function GetDirectStore(target: any): SerializedPropertyMetadataMap {\n const metadata = GetOwnMetadata(GetConstructor(target));\n if (!metadata) {\n return {};\n }\n if (!HasOwn(metadata, __bjsSerializableKey)) {\n metadata[__bjsSerializableKey] = {};\n }\n return metadata[__bjsSerializableKey];\n}\n\n/**\n * @returns the list of properties flagged as serializable\n * @param target host object\n */\nexport function GetMergedStore(target: any): SerializedPropertyMetadataMap {\n const ctor = GetConstructor(target);\n const metadata = ctor ? ctor[MetadataSymbol] : undefined;\n if (!metadata) {\n return {};\n }\n\n const cached = _mergedStoreCache.get(metadata);\n if (cached) {\n return cached;\n }\n\n const store: SerializedPropertyMetadataMap = {};\n // Walk the metadata prototype chain (most derived first); parents overwrite children to match the\n // original class-name-keyed merge order.\n const chain: any[] = [];\n let current: any = metadata;\n while (current) {\n chain.push(current);\n current = Object.getPrototypeOf(current);\n }\n for (const meta of chain) {\n if (HasOwn(meta, __bjsSerializableKey)) {\n const initialStore = meta[__bjsSerializableKey] as SerializedPropertyMetadataMap;\n for (const property in initialStore) {\n store[property] = initialStore[property];\n }\n }\n }\n\n _mergedStoreCache.set(metadata, store);\n return store;\n}\n"]}
|
package/Misc/decorators.js
CHANGED
|
@@ -1,21 +1,30 @@
|
|
|
1
|
-
import {
|
|
1
|
+
import { GetDirectStoreFromMetadata } from "./decorators.functions.js";
|
|
2
2
|
function generateSerializableMember(type, sourceName) {
|
|
3
|
-
return (
|
|
4
|
-
|
|
5
|
-
|
|
6
|
-
|
|
3
|
+
return (_value, context) => {
|
|
4
|
+
if (!context.metadata) {
|
|
5
|
+
return;
|
|
6
|
+
}
|
|
7
|
+
const propertyKey = String(context.name);
|
|
8
|
+
const store = GetDirectStoreFromMetadata(context.metadata);
|
|
9
|
+
if (!store[propertyKey]) {
|
|
10
|
+
store[propertyKey] = { type: type, sourceName: sourceName };
|
|
7
11
|
}
|
|
8
12
|
};
|
|
9
13
|
}
|
|
10
14
|
function generateExpandMember(setCallback, targetKey = null) {
|
|
11
|
-
return (
|
|
12
|
-
const key = targetKey || "_" +
|
|
13
|
-
|
|
14
|
-
|
|
15
|
-
|
|
15
|
+
return (_value, context) => {
|
|
16
|
+
const key = targetKey || "_" + String(context.name);
|
|
17
|
+
return {
|
|
18
|
+
init(value) {
|
|
19
|
+
if (value !== undefined || !(key in this)) {
|
|
20
|
+
this[key] = value;
|
|
21
|
+
}
|
|
22
|
+
return value;
|
|
23
|
+
},
|
|
24
|
+
get() {
|
|
16
25
|
return this[key];
|
|
17
26
|
},
|
|
18
|
-
set
|
|
27
|
+
set(value) {
|
|
19
28
|
// does this object (i.e. vector3) has an equals function? use it!
|
|
20
29
|
// Note - not using "with epsilon" here, it is expected te behave like the internal cache does.
|
|
21
30
|
if (typeof this[key]?.equals === "function") {
|
|
@@ -27,51 +36,52 @@ function generateExpandMember(setCallback, targetKey = null) {
|
|
|
27
36
|
return;
|
|
28
37
|
}
|
|
29
38
|
this[key] = value;
|
|
30
|
-
|
|
39
|
+
this[setCallback]();
|
|
31
40
|
},
|
|
32
|
-
|
|
33
|
-
configurable: true,
|
|
34
|
-
});
|
|
41
|
+
};
|
|
35
42
|
};
|
|
36
43
|
}
|
|
37
44
|
export function expandToProperty(callback, targetKey = null) {
|
|
38
45
|
return generateExpandMember(callback, targetKey);
|
|
39
46
|
}
|
|
40
47
|
export function serialize(sourceName) {
|
|
41
|
-
return generateSerializableMember(0
|
|
48
|
+
return generateSerializableMember(0 /* SerializedFieldType.VALUE */, sourceName);
|
|
42
49
|
}
|
|
43
50
|
export function serializeAsTexture(sourceName) {
|
|
44
|
-
return generateSerializableMember(1
|
|
51
|
+
return generateSerializableMember(1 /* SerializedFieldType.TEXTURE */, sourceName);
|
|
45
52
|
}
|
|
46
53
|
export function serializeAsColor3(sourceName) {
|
|
47
|
-
return generateSerializableMember(2
|
|
54
|
+
return generateSerializableMember(2 /* SerializedFieldType.COLOR3 */, sourceName);
|
|
48
55
|
}
|
|
49
56
|
export function serializeAsFresnelParameters(sourceName) {
|
|
50
|
-
return generateSerializableMember(3
|
|
57
|
+
return generateSerializableMember(3 /* SerializedFieldType.FRESNEL_PARAMETERS */, sourceName);
|
|
51
58
|
}
|
|
52
59
|
export function serializeAsVector2(sourceName) {
|
|
53
|
-
return generateSerializableMember(4
|
|
60
|
+
return generateSerializableMember(4 /* SerializedFieldType.VECTOR2 */, sourceName);
|
|
54
61
|
}
|
|
55
62
|
export function serializeAsVector3(sourceName) {
|
|
56
|
-
return generateSerializableMember(5
|
|
63
|
+
return generateSerializableMember(5 /* SerializedFieldType.VECTOR3 */, sourceName);
|
|
57
64
|
}
|
|
58
65
|
export function serializeAsMeshReference(sourceName) {
|
|
59
|
-
return generateSerializableMember(6
|
|
66
|
+
return generateSerializableMember(6 /* SerializedFieldType.MESH */, sourceName);
|
|
60
67
|
}
|
|
61
68
|
export function serializeAsColorCurves(sourceName) {
|
|
62
|
-
return generateSerializableMember(7
|
|
69
|
+
return generateSerializableMember(7 /* SerializedFieldType.COLOR_CURVES */, sourceName);
|
|
63
70
|
}
|
|
64
71
|
export function serializeAsColor4(sourceName) {
|
|
65
|
-
return generateSerializableMember(8
|
|
72
|
+
return generateSerializableMember(8 /* SerializedFieldType.COLOR4 */, sourceName);
|
|
66
73
|
}
|
|
67
74
|
export function serializeAsImageProcessingConfiguration(sourceName) {
|
|
68
|
-
return generateSerializableMember(9
|
|
75
|
+
return generateSerializableMember(9 /* SerializedFieldType.IMAGE_PROCESSING */, sourceName);
|
|
69
76
|
}
|
|
70
77
|
export function serializeAsQuaternion(sourceName) {
|
|
71
|
-
return generateSerializableMember(10
|
|
78
|
+
return generateSerializableMember(10 /* SerializedFieldType.QUATERNION */, sourceName);
|
|
72
79
|
}
|
|
73
80
|
export function serializeAsMatrix(sourceName) {
|
|
74
|
-
return generateSerializableMember(12
|
|
81
|
+
return generateSerializableMember(12 /* SerializedFieldType.MATRIX */, sourceName);
|
|
82
|
+
}
|
|
83
|
+
export function serializeAsVector4(sourceName) {
|
|
84
|
+
return generateSerializableMember(13 /* SerializedFieldType.VECTOR4 */, sourceName);
|
|
75
85
|
}
|
|
76
86
|
/**
|
|
77
87
|
* Decorator used to define property that can be serialized as reference to a camera
|
|
@@ -79,38 +89,47 @@ export function serializeAsMatrix(sourceName) {
|
|
|
79
89
|
* @returns Property Decorator
|
|
80
90
|
*/
|
|
81
91
|
export function serializeAsCameraReference(sourceName) {
|
|
82
|
-
return generateSerializableMember(11
|
|
92
|
+
return generateSerializableMember(11 /* SerializedFieldType.CAMERA */, sourceName);
|
|
83
93
|
}
|
|
84
94
|
/**
|
|
85
|
-
*
|
|
86
|
-
*
|
|
95
|
+
* Shared implementation for the {@link nativeOverride} decorator and its `.filter` variant.
|
|
96
|
+
* Both flavors install a wrapper that, on first invocation, resolves the function to use once:
|
|
97
|
+
* either the original JS function or (when running in a Babylon Native context) a native-aware
|
|
98
|
+
* function produced by `resolveNative`. The resolved function then replaces the wrapper on the
|
|
99
|
+
* target so subsequent calls skip this setup entirely.
|
|
100
|
+
* @param originalMethod - The decorated JS method.
|
|
101
|
+
* @param context - The TC39 method decorator context.
|
|
102
|
+
* @param resolveNative - Builds the function to use when a native override is present, given the
|
|
103
|
+
* native function and the original JS function.
|
|
104
|
+
* @returns The wrapper function that replaces the decorated method.
|
|
87
105
|
*/
|
|
88
|
-
|
|
89
|
-
|
|
90
|
-
|
|
91
|
-
|
|
92
|
-
|
|
93
|
-
|
|
94
|
-
|
|
95
|
-
|
|
96
|
-
|
|
97
|
-
|
|
98
|
-
// If a predicate was provided, then we'll need to invoke the predicate on each invocation of the underlying function to determine whether to call the native function or the JS function.
|
|
99
|
-
if (predicate) {
|
|
100
|
-
// The resolved function will execute the predicate and then either execute the native function or the JS function.
|
|
101
|
-
func = (...params) => (predicate(...params) ? nativeFunc(...params) : jsFunc(...params));
|
|
106
|
+
function ApplyNativeOverride(originalMethod, context, resolveNative) {
|
|
107
|
+
const propertyKey = String(context.name);
|
|
108
|
+
let resolvedFunc = null;
|
|
109
|
+
const wrapper = function (...params) {
|
|
110
|
+
if (resolvedFunc === null) {
|
|
111
|
+
// Default to the original JS function.
|
|
112
|
+
resolvedFunc = originalMethod;
|
|
113
|
+
// Check if we are executing in a Babylon Native context and if so, check for a function override.
|
|
114
|
+
if (typeof _native !== "undefined" && _native[propertyKey]) {
|
|
115
|
+
resolvedFunc = resolveNative(_native[propertyKey], originalMethod);
|
|
102
116
|
}
|
|
103
|
-
|
|
104
|
-
|
|
105
|
-
|
|
117
|
+
const target = (this && (context.static ? this : Object.getPrototypeOf(this)));
|
|
118
|
+
if (target?.[propertyKey] === wrapper) {
|
|
119
|
+
target[propertyKey] = resolvedFunc;
|
|
106
120
|
}
|
|
107
121
|
}
|
|
108
|
-
|
|
109
|
-
target[propertyKey] = func;
|
|
110
|
-
// The JS function has now been overridden based on whether we're executing in the context of Babylon Native, but we still need to invoke that function.
|
|
111
|
-
// Future invocations of the function will just directly invoke the final overridden function, not any of the decorator setup logic above.
|
|
112
|
-
return func(...params);
|
|
122
|
+
return resolvedFunc.apply(this, params);
|
|
113
123
|
};
|
|
124
|
+
return wrapper;
|
|
125
|
+
}
|
|
126
|
+
/**
|
|
127
|
+
* Decorator used to redirect a function to a native implementation if available.
|
|
128
|
+
* @internal
|
|
129
|
+
*/
|
|
130
|
+
export function nativeOverride(originalMethod, context) {
|
|
131
|
+
// When a native override exists, use it directly.
|
|
132
|
+
return ApplyNativeOverride(originalMethod, context, (nativeFunc) => nativeFunc);
|
|
114
133
|
}
|
|
115
134
|
/**
|
|
116
135
|
* Decorator factory that applies the nativeOverride decorator, but determines whether to redirect to the native implementation based on a filter function that evaluates the function arguments.
|
|
@@ -120,24 +139,35 @@ export function nativeOverride(target, propertyKey, descriptor, predicate) {
|
|
|
120
139
|
* @internal
|
|
121
140
|
*/
|
|
122
141
|
nativeOverride.filter = function (predicate) {
|
|
123
|
-
return (
|
|
142
|
+
return (originalMethod, context) => {
|
|
143
|
+
// When a native override exists, evaluate the predicate on each call to choose between the native and JS function.
|
|
144
|
+
return ApplyNativeOverride(originalMethod, context, (nativeFunc, jsFunc) => {
|
|
145
|
+
return function (...args) {
|
|
146
|
+
if (predicate(...args)) {
|
|
147
|
+
// The native function is invoked without a `this` binding, matching the original behavior.
|
|
148
|
+
return nativeFunc(...args);
|
|
149
|
+
}
|
|
150
|
+
return jsFunc.apply(this, args);
|
|
151
|
+
};
|
|
152
|
+
});
|
|
153
|
+
};
|
|
124
154
|
};
|
|
125
155
|
/**
|
|
126
156
|
* Adds accessors for a material property.
|
|
157
|
+
* Applied to an auto-accessor field. Reads/writes from a private backing field named by sourceKey (default: "_" + property name).
|
|
158
|
+
* The backing field is expected to have a `.value` property.
|
|
127
159
|
* @param setCallback - The name of the callback function to call when the property is set.
|
|
128
|
-
* @param
|
|
129
|
-
* @returns
|
|
160
|
+
* @param sourceKey - The name of the private field that stores the value (defaults to "_" + accessor name).
|
|
161
|
+
* @returns An accessor decorator.
|
|
130
162
|
*/
|
|
131
|
-
export function addAccessorsForMaterialProperty(setCallback,
|
|
132
|
-
return (
|
|
133
|
-
const key =
|
|
134
|
-
|
|
135
|
-
|
|
136
|
-
|
|
137
|
-
// eslint-disable-next-line @typescript-eslint/no-unsafe-return
|
|
138
|
-
return this[key].value;
|
|
163
|
+
export function addAccessorsForMaterialProperty(setCallback, sourceKey = null) {
|
|
164
|
+
return (_value, context) => {
|
|
165
|
+
const key = sourceKey || "_" + String(context.name);
|
|
166
|
+
return {
|
|
167
|
+
get() {
|
|
168
|
+
return this[key]?.value;
|
|
139
169
|
},
|
|
140
|
-
set
|
|
170
|
+
set(value) {
|
|
141
171
|
// does this object (i.e. vector3) has an equals function? use it!
|
|
142
172
|
// Note - not using "with epsilon" here, it is expected te behave like the internal cache does.
|
|
143
173
|
if (typeof this[key]?.value?.equals === "function") {
|
|
@@ -149,11 +179,9 @@ export function addAccessorsForMaterialProperty(setCallback, targetKey = null) {
|
|
|
149
179
|
return;
|
|
150
180
|
}
|
|
151
181
|
this[key].value = value;
|
|
152
|
-
|
|
182
|
+
this[setCallback]();
|
|
153
183
|
},
|
|
154
|
-
|
|
155
|
-
configurable: true,
|
|
156
|
-
});
|
|
184
|
+
};
|
|
157
185
|
};
|
|
158
186
|
}
|
|
159
187
|
//# sourceMappingURL=decorators.js.map
|