@onerjs/core 8.53.4 → 8.53.6

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.
Files changed (841) hide show
  1. package/Animations/animationGroup.d.ts +0 -1
  2. package/Animations/animationGroup.js +0 -1
  3. package/Animations/animationGroup.js.map +1 -1
  4. package/Animations/animationGroup.pure.js +2 -0
  5. package/Animations/animationGroup.pure.js.map +1 -1
  6. package/Animations/runtimeAnimation.js +11 -0
  7. package/Animations/runtimeAnimation.js.map +1 -1
  8. package/Audio/audioSceneComponent.pure.js +1 -1
  9. package/AudioV2/abstractAudio/abstractSound.d.ts +2 -1
  10. package/AudioV2/abstractAudio/abstractSound.js +7 -2
  11. package/AudioV2/abstractAudio/abstractSound.js.map +1 -1
  12. package/AudioV2/abstractAudio/abstractSoundInstance.d.ts +3 -1
  13. package/AudioV2/abstractAudio/abstractSoundInstance.js.map +1 -1
  14. package/AudioV2/abstractAudio/staticSound.d.ts +6 -0
  15. package/AudioV2/abstractAudio/staticSound.js +17 -1
  16. package/AudioV2/abstractAudio/staticSound.js.map +1 -1
  17. package/AudioV2/abstractAudio/staticSoundInstance.d.ts +4 -2
  18. package/AudioV2/abstractAudio/staticSoundInstance.js.map +1 -1
  19. package/AudioV2/abstractAudio/streamingSound.d.ts +6 -0
  20. package/AudioV2/abstractAudio/streamingSound.js +9 -1
  21. package/AudioV2/abstractAudio/streamingSound.js.map +1 -1
  22. package/AudioV2/webAudio/webAudioStaticSound.d.ts +7 -1
  23. package/AudioV2/webAudio/webAudioStaticSound.js +56 -8
  24. package/AudioV2/webAudio/webAudioStaticSound.js.map +1 -1
  25. package/AudioV2/webAudio/webAudioStreamingSound.d.ts +3 -1
  26. package/AudioV2/webAudio/webAudioStreamingSound.js +16 -4
  27. package/AudioV2/webAudio/webAudioStreamingSound.js.map +1 -1
  28. package/BakedVertexAnimation/bakedVertexAnimationManager.d.ts +2 -2
  29. package/BakedVertexAnimation/bakedVertexAnimationManager.js +151 -121
  30. package/BakedVertexAnimation/bakedVertexAnimationManager.js.map +1 -1
  31. package/Behaviors/Cameras/interpolatingBehavior.d.ts +17 -2
  32. package/Behaviors/Cameras/interpolatingBehavior.js +53 -23
  33. package/Behaviors/Cameras/interpolatingBehavior.js.map +1 -1
  34. package/Bones/bone.pure.js +3 -3
  35. package/Buffers/buffer.pure.js +0 -12
  36. package/Buffers/buffer.pure.js.map +1 -1
  37. package/Cameras/Inputs/BaseCameraMouseWheelInput.js +141 -126
  38. package/Cameras/Inputs/BaseCameraMouseWheelInput.js.map +1 -1
  39. package/Cameras/Inputs/BaseCameraPointersInput.d.ts +2 -1
  40. package/Cameras/Inputs/BaseCameraPointersInput.js +290 -277
  41. package/Cameras/Inputs/BaseCameraPointersInput.js.map +1 -1
  42. package/Cameras/Inputs/arcRotateCameraGamepadInput.js +115 -102
  43. package/Cameras/Inputs/arcRotateCameraGamepadInput.js.map +1 -1
  44. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.d.ts +3 -0
  45. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js +334 -273
  46. package/Cameras/Inputs/arcRotateCameraKeyboardMoveInput.js.map +1 -1
  47. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js +273 -258
  48. package/Cameras/Inputs/arcRotateCameraMouseWheelInput.js.map +1 -1
  49. package/Cameras/Inputs/arcRotateCameraPointersInput.js +237 -213
  50. package/Cameras/Inputs/arcRotateCameraPointersInput.js.map +1 -1
  51. package/Cameras/Inputs/flyCameraKeyboardInput.js +199 -168
  52. package/Cameras/Inputs/flyCameraKeyboardInput.js.map +1 -1
  53. package/Cameras/Inputs/flyCameraMouseInput.js +243 -229
  54. package/Cameras/Inputs/flyCameraMouseInput.js.map +1 -1
  55. package/Cameras/Inputs/followCameraKeyboardMoveInput.js +311 -266
  56. package/Cameras/Inputs/followCameraKeyboardMoveInput.js.map +1 -1
  57. package/Cameras/Inputs/followCameraMouseWheelInput.js +139 -119
  58. package/Cameras/Inputs/followCameraMouseWheelInput.js.map +1 -1
  59. package/Cameras/Inputs/followCameraPointersInput.js +239 -203
  60. package/Cameras/Inputs/followCameraPointersInput.js.map +1 -1
  61. package/Cameras/Inputs/freeCameraGamepadInput.js +127 -114
  62. package/Cameras/Inputs/freeCameraGamepadInput.js.map +1 -1
  63. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js +278 -244
  64. package/Cameras/Inputs/freeCameraKeyboardMoveInput.js.map +1 -1
  65. package/Cameras/Inputs/freeCameraMouseInput.js +216 -202
  66. package/Cameras/Inputs/freeCameraMouseInput.js.map +1 -1
  67. package/Cameras/Inputs/freeCameraMouseWheelInput.js +368 -353
  68. package/Cameras/Inputs/freeCameraMouseWheelInput.js.map +1 -1
  69. package/Cameras/Inputs/freeCameraTouchInput.js +185 -172
  70. package/Cameras/Inputs/freeCameraTouchInput.js.map +1 -1
  71. package/Cameras/Inputs/geospatialCameraKeyboardInput.d.ts +2 -0
  72. package/Cameras/Inputs/geospatialCameraKeyboardInput.js +291 -246
  73. package/Cameras/Inputs/geospatialCameraKeyboardInput.js.map +1 -1
  74. package/Cameras/Inputs/geospatialCameraPointersInput.d.ts +11 -1
  75. package/Cameras/Inputs/geospatialCameraPointersInput.js +18 -2
  76. package/Cameras/Inputs/geospatialCameraPointersInput.js.map +1 -1
  77. package/Cameras/Inputs/orbitCameraPointersInput.js +112 -96
  78. package/Cameras/Inputs/orbitCameraPointersInput.js.map +1 -1
  79. package/Cameras/VR/vrExperienceHelper.d.ts +0 -2
  80. package/Cameras/VR/vrExperienceHelper.js +0 -2
  81. package/Cameras/VR/vrExperienceHelper.js.map +1 -1
  82. package/Cameras/VR/vrExperienceHelper.pure.js +5 -0
  83. package/Cameras/VR/vrExperienceHelper.pure.js.map +1 -1
  84. package/Cameras/arcRotateCamera.pure.js +1559 -1479
  85. package/Cameras/arcRotateCamera.pure.js.map +1 -1
  86. package/Cameras/camera.pure.js +1225 -1178
  87. package/Cameras/camera.pure.js.map +1 -1
  88. package/Cameras/flyCamera.pure.js +369 -351
  89. package/Cameras/flyCamera.pure.js.map +1 -1
  90. package/Cameras/followCamera.pure.js +229 -192
  91. package/Cameras/followCamera.pure.js.map +1 -1
  92. package/Cameras/freeCamera.pure.js +373 -351
  93. package/Cameras/freeCamera.pure.js.map +1 -1
  94. package/Cameras/geospatialCamera.pure.d.ts +30 -7
  95. package/Cameras/geospatialCamera.pure.js +502 -457
  96. package/Cameras/geospatialCamera.pure.js.map +1 -1
  97. package/Cameras/geospatialCameraMovement.js +2 -2
  98. package/Cameras/geospatialCameraMovement.js.map +1 -1
  99. package/Cameras/targetCamera.pure.d.ts +7 -0
  100. package/Cameras/targetCamera.pure.js +550 -509
  101. package/Cameras/targetCamera.pure.js.map +1 -1
  102. package/Cameras/universalCamera.pure.js +98 -85
  103. package/Cameras/universalCamera.pure.js.map +1 -1
  104. package/Collisions/gpuPicker.d.ts +111 -4
  105. package/Collisions/gpuPicker.js +696 -119
  106. package/Collisions/gpuPicker.js.map +1 -1
  107. package/Compute/computeShader.pure.js +372 -355
  108. package/Compute/computeShader.pure.js.map +1 -1
  109. package/Culling/Helper/transformFeedbackBoundingHelper.pure.js +2 -2
  110. package/Decorators/nodeDecorator.d.ts +11 -1
  111. package/Decorators/nodeDecorator.js +43 -6
  112. package/Decorators/nodeDecorator.js.map +1 -1
  113. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js +8 -0
  114. package/Engines/AbstractEngine/abstractEngine.loadFile.pure.js.map +1 -1
  115. package/Engines/Native/nativeHelpers.js +15 -0
  116. package/Engines/Native/nativeHelpers.js.map +1 -1
  117. package/Engines/Native/nativeInterfaces.d.ts +7 -2
  118. package/Engines/Native/nativeInterfaces.js.map +1 -1
  119. package/Engines/Native/nativeRenderTargetWrapper.d.ts +5 -0
  120. package/Engines/Native/nativeRenderTargetWrapper.js +35 -1
  121. package/Engines/Native/nativeRenderTargetWrapper.js.map +1 -1
  122. package/Engines/Processors/shaderProcessor.js +5 -3
  123. package/Engines/Processors/shaderProcessor.js.map +1 -1
  124. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js +16 -3
  125. package/Engines/WebGPU/Extensions/engine.videoTexture.pure.js.map +1 -1
  126. package/Engines/WebGPU/webgpuClearQuad.pure.js +7 -1
  127. package/Engines/WebGPU/webgpuClearQuad.pure.js.map +1 -1
  128. package/Engines/abstractEngine.functions.d.ts +8 -2
  129. package/Engines/abstractEngine.functions.js +12 -4
  130. package/Engines/abstractEngine.functions.js.map +1 -1
  131. package/Engines/abstractEngine.pure.d.ts +20 -1
  132. package/Engines/abstractEngine.pure.js +21 -134
  133. package/Engines/abstractEngine.pure.js.map +1 -1
  134. package/Engines/engine.d.ts +208 -0
  135. package/Engines/engine.pure.js +0 -15
  136. package/Engines/engine.pure.js.map +1 -1
  137. package/Engines/nullEngine.pure.d.ts +66 -0
  138. package/Engines/nullEngine.pure.js +97 -0
  139. package/Engines/nullEngine.pure.js.map +1 -1
  140. package/Engines/thinEngine.pure.d.ts +0 -13
  141. package/Engines/thinEngine.pure.js +4 -23
  142. package/Engines/thinEngine.pure.js.map +1 -1
  143. package/Engines/thinNativeEngine.d.ts +0 -1
  144. package/Engines/thinNativeEngine.js +0 -1
  145. package/Engines/thinNativeEngine.js.map +1 -1
  146. package/Engines/thinNativeEngine.pure.d.ts +27 -0
  147. package/Engines/thinNativeEngine.pure.js +383 -17
  148. package/Engines/thinNativeEngine.pure.js.map +1 -1
  149. package/Engines/webgpuEngine.d.ts +1 -0
  150. package/Engines/webgpuEngine.js +1 -0
  151. package/Engines/webgpuEngine.js.map +1 -1
  152. package/Engines/webgpuEngine.pure.d.ts +9 -0
  153. package/Engines/webgpuEngine.pure.js +7 -0
  154. package/Engines/webgpuEngine.pure.js.map +1 -1
  155. package/FlowGraph/flowGraph.js +9 -0
  156. package/FlowGraph/flowGraph.js.map +1 -1
  157. package/FlowGraph/flowGraphContext.js +597 -584
  158. package/FlowGraph/flowGraphContext.js.map +1 -1
  159. package/FlowGraph/flowGraphDataConnection.pure.d.ts +14 -0
  160. package/FlowGraph/flowGraphDataConnection.pure.js +38 -1
  161. package/FlowGraph/flowGraphDataConnection.pure.js.map +1 -1
  162. package/FlowGraph/serialization.d.ts +11 -0
  163. package/FlowGraph/serialization.js +11 -1
  164. package/FlowGraph/serialization.js.map +1 -1
  165. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js +182 -170
  166. package/FrameGraph/Node/Blocks/Layers/glowLayerBlock.pure.js.map +1 -1
  167. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js +196 -184
  168. package/FrameGraph/Node/Blocks/Layers/highlightLayerBlock.pure.js.map +1 -1
  169. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js +222 -210
  170. package/FrameGraph/Node/Blocks/Layers/selectionOutlineLayerBlock.pure.js.map +1 -1
  171. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js +123 -111
  172. package/FrameGraph/Node/Blocks/PostProcesses/basePostProcessBlock.js.map +1 -1
  173. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js +158 -146
  174. package/FrameGraph/Node/Blocks/PostProcesses/baseWithPropertiesPostProcessBlock.js.map +1 -1
  175. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js +63 -51
  176. package/FrameGraph/Node/Blocks/PostProcesses/blackAndWhitePostProcessBlock.pure.js.map +1 -1
  177. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js +122 -110
  178. package/FrameGraph/Node/Blocks/PostProcesses/bloomPostProcessBlock.pure.js.map +1 -1
  179. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js +76 -64
  180. package/FrameGraph/Node/Blocks/PostProcesses/blurPostProcessBlock.pure.js.map +1 -1
  181. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js +89 -77
  182. package/FrameGraph/Node/Blocks/PostProcesses/chromaticAberrationPostProcessBlock.pure.js.map +1 -1
  183. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js +134 -122
  184. package/FrameGraph/Node/Blocks/PostProcesses/circleOfConfusionPostProcessBlock.pure.js.map +1 -1
  185. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js +58 -46
  186. package/FrameGraph/Node/Blocks/PostProcesses/colorCorrectionPostProcessBlock.pure.js.map +1 -1
  187. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js +107 -95
  188. package/FrameGraph/Node/Blocks/PostProcesses/convolutionPostProcessBlock.pure.js.map +1 -1
  189. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js +181 -169
  190. package/FrameGraph/Node/Blocks/PostProcesses/depthOfFieldPostProcessBlock.pure.js.map +1 -1
  191. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js +63 -51
  192. package/FrameGraph/Node/Blocks/PostProcesses/extractHighlightsPostProcessBlock.pure.js.map +1 -1
  193. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js +63 -51
  194. package/FrameGraph/Node/Blocks/PostProcesses/filterPostProcessBlock.pure.js.map +1 -1
  195. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js +76 -64
  196. package/FrameGraph/Node/Blocks/PostProcesses/grainPostProcessBlock.pure.js.map +1 -1
  197. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js +246 -234
  198. package/FrameGraph/Node/Blocks/PostProcesses/imageProcessingPostProcessBlock.pure.js.map +1 -1
  199. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js +108 -96
  200. package/FrameGraph/Node/Blocks/PostProcesses/motionBlurPostProcessBlock.pure.js.map +1 -1
  201. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js +87 -75
  202. package/FrameGraph/Node/Blocks/PostProcesses/screenSpaceCurvaturePostProcessBlock.pure.js.map +1 -1
  203. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js +76 -64
  204. package/FrameGraph/Node/Blocks/PostProcesses/sharpenPostProcessBlock.pure.js.map +1 -1
  205. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js +313 -301
  206. package/FrameGraph/Node/Blocks/PostProcesses/ssao2PostProcessBlock.pure.js.map +1 -1
  207. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js +502 -490
  208. package/FrameGraph/Node/Blocks/PostProcesses/ssrPostProcessBlock.pure.js.map +1 -1
  209. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js +147 -135
  210. package/FrameGraph/Node/Blocks/PostProcesses/taaPostProcessBlock.pure.js.map +1 -1
  211. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js +90 -78
  212. package/FrameGraph/Node/Blocks/PostProcesses/tonemapPostProcessBlock.pure.js.map +1 -1
  213. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js +179 -167
  214. package/FrameGraph/Node/Blocks/PostProcesses/volumetricLightingBlock.pure.js.map +1 -1
  215. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js +462 -451
  216. package/FrameGraph/Node/Blocks/Rendering/baseObjectRendererBlock.js.map +1 -1
  217. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js +265 -253
  218. package/FrameGraph/Node/Blocks/Rendering/baseShadowGeneratorBlock.js.map +1 -1
  219. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js +204 -192
  220. package/FrameGraph/Node/Blocks/Rendering/csmShadowGeneratorBlock.pure.js.map +1 -1
  221. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js +611 -550
  222. package/FrameGraph/Node/Blocks/Rendering/geometryRendererBlock.pure.js.map +1 -1
  223. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js +320 -308
  224. package/FrameGraph/Node/Blocks/Rendering/iblShadowsRendererBlock.pure.js.map +1 -1
  225. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js +87 -75
  226. package/FrameGraph/Node/Blocks/Rendering/utilityLayerRendererBlock.pure.js.map +1 -1
  227. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js +154 -142
  228. package/FrameGraph/Node/Blocks/Textures/clearBlock.pure.js.map +1 -1
  229. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js +150 -138
  230. package/FrameGraph/Node/Blocks/Textures/copyTextureBlock.pure.js.map +1 -1
  231. package/FrameGraph/Node/Blocks/inputBlock.pure.js +270 -256
  232. package/FrameGraph/Node/Blocks/inputBlock.pure.js.map +1 -1
  233. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js +95 -83
  234. package/FrameGraph/Node/Blocks/lightingVolumeBlock.pure.js.map +1 -1
  235. package/FrameGraph/Node/nodeRenderGraph.js +715 -693
  236. package/FrameGraph/Node/nodeRenderGraph.js.map +1 -1
  237. package/FrameGraph/Node/nodeRenderGraphBlock.js +548 -533
  238. package/FrameGraph/Node/nodeRenderGraphBlock.js.map +1 -1
  239. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.d.ts +2 -2
  240. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js +43 -51
  241. package/FrameGraph/Tasks/Rendering/iblShadows/iblShadowsAccumulationTask.js.map +1 -1
  242. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.d.ts +0 -1
  243. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js +0 -1
  244. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.js.map +1 -1
  245. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.d.ts +0 -1
  246. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js +66 -35
  247. package/FrameGraph/Tasks/Rendering/iblShadowsRendererTask.pure.js.map +1 -1
  248. package/Helpers/environmentHelper.js +2 -2
  249. package/Helpers/environmentHelper.js.map +1 -1
  250. package/Layers/effectLayer.js +529 -519
  251. package/Layers/effectLayer.js.map +1 -1
  252. package/Layers/glowLayer.pure.js +428 -413
  253. package/Layers/glowLayer.pure.js.map +1 -1
  254. package/Layers/highlightLayer.pure.js +473 -458
  255. package/Layers/highlightLayer.pure.js.map +1 -1
  256. package/Layers/selectionOutlineLayer.pure.js +360 -345
  257. package/Layers/selectionOutlineLayer.pure.js.map +1 -1
  258. package/Lights/Clustered/clusteredLightContainer.pure.d.ts +1 -1
  259. package/Lights/Clustered/clusteredLightContainer.pure.js +583 -558
  260. package/Lights/Clustered/clusteredLightContainer.pure.js.map +1 -1
  261. package/Lights/Shadows/shadowGenerator.js +6 -1
  262. package/Lights/Shadows/shadowGenerator.js.map +1 -1
  263. package/Lights/areaLight.pure.js +61 -39
  264. package/Lights/areaLight.pure.js.map +1 -1
  265. package/Lights/directionalLight.pure.js +308 -284
  266. package/Lights/directionalLight.pure.js.map +1 -1
  267. package/Lights/hemisphericLight.pure.js +123 -104
  268. package/Lights/hemisphericLight.pure.js.map +1 -1
  269. package/Lights/light.d.ts +5 -3
  270. package/Lights/light.js +869 -827
  271. package/Lights/light.js.map +1 -1
  272. package/Lights/pointLight.pure.js +185 -174
  273. package/Lights/pointLight.pure.js.map +1 -1
  274. package/Lights/rectAreaLight.pure.d.ts +17 -0
  275. package/Lights/rectAreaLight.pure.js +238 -159
  276. package/Lights/rectAreaLight.pure.js.map +1 -1
  277. package/Lights/shadowLight.js +280 -268
  278. package/Lights/shadowLight.js.map +1 -1
  279. package/Lights/spotLight.pure.js +460 -427
  280. package/Lights/spotLight.pure.js.map +1 -1
  281. package/Loading/Plugins/babylonFileLoader.pure.js +17 -5
  282. package/Loading/Plugins/babylonFileLoader.pure.js.map +1 -1
  283. package/Loading/sceneLoader.d.ts +5 -1
  284. package/Loading/sceneLoader.js +299 -402
  285. package/Loading/sceneLoader.js.map +1 -1
  286. package/Materials/Background/backgroundMaterial.pure.d.ts +18 -18
  287. package/Materials/Background/backgroundMaterial.pure.js +949 -794
  288. package/Materials/Background/backgroundMaterial.pure.js.map +1 -1
  289. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.d.ts +15 -0
  290. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js +34 -1
  291. package/Materials/GaussianSplatting/gaussianSplattingGpuPickingMaterialPlugin.pure.js.map +1 -1
  292. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.d.ts +9 -0
  293. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js +26 -2
  294. package/Materials/GaussianSplatting/gaussianSplattingMaterial.pure.js.map +1 -1
  295. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.d.ts +2 -1
  296. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js +169 -149
  297. package/Materials/GaussianSplatting/gaussianSplattingSolidColorMaterialPlugin.pure.js.map +1 -1
  298. package/Materials/Node/Blocks/Dual/imageSourceBlock.pure.js +1 -1
  299. package/Materials/Node/Blocks/Dual/lightBlock.pure.js +442 -429
  300. package/Materials/Node/Blocks/Dual/lightBlock.pure.js.map +1 -1
  301. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js +396 -383
  302. package/Materials/Node/Blocks/Dual/reflectionTextureBaseBlock.pure.js.map +1 -1
  303. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js +237 -220
  304. package/Materials/Node/Blocks/Dual/sceneDepthBlock.pure.js.map +1 -1
  305. package/Materials/Node/Blocks/Dual/textureBlock.pure.js +1 -1
  306. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js +150 -133
  307. package/Materials/Node/Blocks/Fragment/ambientOcclusionBlock.pure.js.map +1 -1
  308. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js +265 -250
  309. package/Materials/Node/Blocks/Fragment/fragmentOutputBlock.pure.js.map +1 -1
  310. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js +159 -142
  311. package/Materials/Node/Blocks/Fragment/heightToNormalBlock.pure.js.map +1 -1
  312. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js +214 -201
  313. package/Materials/Node/Blocks/Fragment/imageProcessingBlock.pure.js.map +1 -1
  314. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js +419 -400
  315. package/Materials/Node/Blocks/Fragment/perturbNormalBlock.pure.js.map +1 -1
  316. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js +3 -1
  317. package/Materials/Node/Blocks/GaussianSplatting/gaussianSplattingBlock.pure.js.map +1 -1
  318. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js +302 -289
  319. package/Materials/Node/Blocks/PBR/clearCoatBlock.pure.js.map +1 -1
  320. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js +1327 -1272
  321. package/Materials/Node/Blocks/PBR/pbrMetallicRoughnessBlock.pure.js.map +1 -1
  322. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js +352 -337
  323. package/Materials/Node/Blocks/PBR/reflectionBlock.pure.js.map +1 -1
  324. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js +297 -277
  325. package/Materials/Node/Blocks/PBR/refractionBlock.pure.js.map +1 -1
  326. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js +146 -131
  327. package/Materials/Node/Blocks/PBR/sheenBlock.pure.js.map +1 -1
  328. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js +158 -145
  329. package/Materials/Node/Blocks/PBR/subSurfaceBlock.pure.js.map +1 -1
  330. package/Materials/Node/Blocks/clampBlock.pure.js +92 -77
  331. package/Materials/Node/Blocks/clampBlock.pure.js.map +1 -1
  332. package/Materials/Node/Blocks/cloudBlock.pure.js +145 -132
  333. package/Materials/Node/Blocks/cloudBlock.pure.js.map +1 -1
  334. package/Materials/Node/Blocks/conditionalBlock.pure.js +182 -169
  335. package/Materials/Node/Blocks/conditionalBlock.pure.js.map +1 -1
  336. package/Materials/Node/Blocks/curveBlock.pure.js +259 -246
  337. package/Materials/Node/Blocks/curveBlock.pure.js.map +1 -1
  338. package/Materials/Node/Blocks/debugBlock.pure.js +119 -106
  339. package/Materials/Node/Blocks/debugBlock.pure.js.map +1 -1
  340. package/Materials/Node/Blocks/loopBlock.pure.js +123 -110
  341. package/Materials/Node/Blocks/loopBlock.pure.js.map +1 -1
  342. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js +185 -172
  343. package/Materials/Node/Blocks/meshAttributeExistsBlock.pure.js.map +1 -1
  344. package/Materials/Node/Blocks/remapBlock.pure.js +127 -112
  345. package/Materials/Node/Blocks/remapBlock.pure.js.map +1 -1
  346. package/Materials/Node/Blocks/transformBlock.pure.js +196 -185
  347. package/Materials/Node/Blocks/transformBlock.pure.js.map +1 -1
  348. package/Materials/Node/Blocks/triPlanarBlock.pure.js +451 -438
  349. package/Materials/Node/Blocks/triPlanarBlock.pure.js.map +1 -1
  350. package/Materials/Node/Blocks/trigonometryBlock.pure.js +184 -171
  351. package/Materials/Node/Blocks/trigonometryBlock.pure.js.map +1 -1
  352. package/Materials/Node/Blocks/waveBlock.pure.js +97 -84
  353. package/Materials/Node/Blocks/waveBlock.pure.js.map +1 -1
  354. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js +276 -263
  355. package/Materials/Node/Blocks/worleyNoise3DBlock.pure.js.map +1 -1
  356. package/Materials/Node/nodeMaterial.pure.js +1765 -1737
  357. package/Materials/Node/nodeMaterial.pure.js.map +1 -1
  358. package/Materials/Node/nodeMaterialBuildState.d.ts +3 -3
  359. package/Materials/PBR/openpbrMaterial.pure.d.ts +102 -102
  360. package/Materials/PBR/openpbrMaterial.pure.js +3115 -2243
  361. package/Materials/PBR/openpbrMaterial.pure.js.map +1 -1
  362. package/Materials/PBR/pbrAnisotropicConfiguration.d.ts +3 -3
  363. package/Materials/PBR/pbrAnisotropicConfiguration.js +255 -227
  364. package/Materials/PBR/pbrAnisotropicConfiguration.js.map +1 -1
  365. package/Materials/PBR/pbrBRDFConfiguration.d.ts +9 -9
  366. package/Materials/PBR/pbrBRDFConfiguration.js +203 -155
  367. package/Materials/PBR/pbrBRDFConfiguration.js.map +1 -1
  368. package/Materials/PBR/pbrBaseMaterial.pure.d.ts +1 -1
  369. package/Materials/PBR/pbrBaseMaterial.pure.js +1751 -1736
  370. package/Materials/PBR/pbrBaseMaterial.pure.js.map +1 -1
  371. package/Materials/PBR/pbrBaseSimpleMaterial.d.ts +13 -13
  372. package/Materials/PBR/pbrBaseSimpleMaterial.js +205 -117
  373. package/Materials/PBR/pbrBaseSimpleMaterial.js.map +1 -1
  374. package/Materials/PBR/pbrClearCoatConfiguration.d.ts +9 -9
  375. package/Materials/PBR/pbrClearCoatConfiguration.js +464 -406
  376. package/Materials/PBR/pbrClearCoatConfiguration.js.map +1 -1
  377. package/Materials/PBR/pbrIridescenceConfiguration.d.ts +3 -3
  378. package/Materials/PBR/pbrIridescenceConfiguration.js +271 -239
  379. package/Materials/PBR/pbrIridescenceConfiguration.js.map +1 -1
  380. package/Materials/PBR/pbrMaterial.pure.d.ts +66 -66
  381. package/Materials/PBR/pbrMaterial.pure.js +1041 -685
  382. package/Materials/PBR/pbrMaterial.pure.js.map +1 -1
  383. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.d.ts +5 -5
  384. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js +176 -115
  385. package/Materials/PBR/pbrMetallicRoughnessMaterial.pure.js.map +1 -1
  386. package/Materials/PBR/pbrSheenConfiguration.d.ts +7 -7
  387. package/Materials/PBR/pbrSheenConfiguration.js +314 -270
  388. package/Materials/PBR/pbrSheenConfiguration.js.map +1 -1
  389. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.d.ts +5 -5
  390. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js +172 -117
  391. package/Materials/PBR/pbrSpecularGlossinessMaterial.pure.js.map +1 -1
  392. package/Materials/PBR/pbrSubSurfaceConfiguration.d.ts +16 -16
  393. package/Materials/PBR/pbrSubSurfaceConfiguration.js +864 -764
  394. package/Materials/PBR/pbrSubSurfaceConfiguration.js.map +1 -1
  395. package/Materials/Textures/HTML/htmlInCanvasPolyfill.d.ts +43 -0
  396. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js +64 -0
  397. package/Materials/Textures/HTML/htmlInCanvasPolyfill.js.map +1 -0
  398. package/Materials/Textures/HTML/htmlInteractionManager.d.ts +69 -0
  399. package/Materials/Textures/HTML/htmlInteractionManager.js +130 -0
  400. package/Materials/Textures/HTML/htmlInteractionManager.js.map +1 -0
  401. package/Materials/Textures/HTML/htmlRaycastInteractionManager.d.ts +84 -0
  402. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js +246 -0
  403. package/Materials/Textures/HTML/htmlRaycastInteractionManager.js.map +1 -0
  404. package/Materials/Textures/HTML/htmlTexture.d.ts +148 -0
  405. package/Materials/Textures/HTML/htmlTexture.js +455 -0
  406. package/Materials/Textures/HTML/htmlTexture.js.map +1 -0
  407. package/Materials/Textures/HTML/index.d.ts +4 -0
  408. package/Materials/Textures/HTML/index.js +5 -0
  409. package/Materials/Textures/HTML/index.js.map +1 -0
  410. package/Materials/Textures/HTML/pure.d.ts +5 -0
  411. package/Materials/Textures/HTML/pure.js +6 -0
  412. package/Materials/Textures/HTML/pure.js.map +1 -0
  413. package/Materials/Textures/Procedurals/proceduralTexture.pure.js +671 -643
  414. package/Materials/Textures/Procedurals/proceduralTexture.pure.js.map +1 -1
  415. package/Materials/Textures/baseTexture.pure.js +880 -825
  416. package/Materials/Textures/baseTexture.pure.js.map +1 -1
  417. package/Materials/Textures/cubeTexture.d.ts +0 -1
  418. package/Materials/Textures/cubeTexture.js +0 -1
  419. package/Materials/Textures/cubeTexture.js.map +1 -1
  420. package/Materials/Textures/cubeTexture.pure.js +368 -333
  421. package/Materials/Textures/cubeTexture.pure.js.map +1 -1
  422. package/Materials/Textures/dynamicTexture.d.ts +0 -1
  423. package/Materials/Textures/dynamicTexture.js +0 -1
  424. package/Materials/Textures/dynamicTexture.js.map +1 -1
  425. package/Materials/Textures/dynamicTexture.pure.js +2 -0
  426. package/Materials/Textures/dynamicTexture.pure.js.map +1 -1
  427. package/Materials/Textures/htmlElementTexture.d.ts +0 -2
  428. package/Materials/Textures/htmlElementTexture.js +0 -2
  429. package/Materials/Textures/htmlElementTexture.js.map +1 -1
  430. package/Materials/Textures/htmlElementTexture.pure.js +4 -0
  431. package/Materials/Textures/htmlElementTexture.pure.js.map +1 -1
  432. package/Materials/Textures/index.d.ts +1 -0
  433. package/Materials/Textures/index.js +1 -1
  434. package/Materials/Textures/index.js.map +1 -1
  435. package/Materials/Textures/multiRenderTarget.d.ts +0 -1
  436. package/Materials/Textures/multiRenderTarget.js +0 -1
  437. package/Materials/Textures/multiRenderTarget.js.map +1 -1
  438. package/Materials/Textures/multiRenderTarget.pure.js +2 -0
  439. package/Materials/Textures/multiRenderTarget.pure.js.map +1 -1
  440. package/Materials/Textures/pure.d.ts +1 -0
  441. package/Materials/Textures/pure.js +1 -0
  442. package/Materials/Textures/pure.js.map +1 -1
  443. package/Materials/Textures/texture.pure.js +961 -923
  444. package/Materials/Textures/texture.pure.js.map +1 -1
  445. package/Materials/Textures/videoTexture.pure.d.ts +3 -0
  446. package/Materials/Textures/videoTexture.pure.js +450 -401
  447. package/Materials/Textures/videoTexture.pure.js.map +1 -1
  448. package/Materials/colorCurves.pure.js +510 -477
  449. package/Materials/colorCurves.pure.js.map +1 -1
  450. package/Materials/effect.pure.js +0 -7
  451. package/Materials/effect.pure.js.map +1 -1
  452. package/Materials/imageProcessing.js +12 -4
  453. package/Materials/imageProcessing.js.map +1 -1
  454. package/Materials/imageProcessingConfiguration.pure.js +647 -587
  455. package/Materials/imageProcessingConfiguration.pure.js.map +1 -1
  456. package/Materials/material.decalMapConfiguration.pure.d.ts +2 -2
  457. package/Materials/material.decalMapConfiguration.pure.js +149 -130
  458. package/Materials/material.decalMapConfiguration.pure.js.map +1 -1
  459. package/Materials/material.detailMapConfiguration.d.ts +3 -3
  460. package/Materials/material.detailMapConfiguration.js +213 -175
  461. package/Materials/material.detailMapConfiguration.js.map +1 -1
  462. package/Materials/material.pure.js +1815 -1721
  463. package/Materials/material.pure.js.map +1 -1
  464. package/Materials/materialPluginBase.pure.js +270 -249
  465. package/Materials/materialPluginBase.pure.js.map +1 -1
  466. package/Materials/materialPluginManager.pure.js +18 -8
  467. package/Materials/materialPluginManager.pure.js.map +1 -1
  468. package/Materials/materialStencilState.js +211 -200
  469. package/Materials/materialStencilState.js.map +1 -1
  470. package/Materials/meshDebugPluginMaterial.pure.d.ts +2 -2
  471. package/Materials/meshDebugPluginMaterial.pure.js +397 -275
  472. package/Materials/meshDebugPluginMaterial.pure.js.map +1 -1
  473. package/Materials/standardMaterial.pure.d.ts +32 -32
  474. package/Materials/standardMaterial.pure.js +1804 -1394
  475. package/Materials/standardMaterial.pure.js.map +1 -1
  476. package/Maths/math.color.pure.js +5 -5
  477. package/Maths/math.functions.js +38 -30
  478. package/Maths/math.functions.js.map +1 -1
  479. package/Maths/math.vector.pure.js +25 -25
  480. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js +18 -8
  481. package/Meshes/GaussianSplatting/gaussianSplattingMesh.pure.js.map +1 -1
  482. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.d.ts +86 -1
  483. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js +255 -104
  484. package/Meshes/GaussianSplatting/gaussianSplattingMeshBase.pure.js.map +1 -1
  485. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.d.ts +39 -0
  486. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js +322 -0
  487. package/Meshes/GaussianSplatting/gaussianSplattingSortWorker.js.map +1 -0
  488. package/Meshes/GreasedLine/greasedLineMesh.pure.js +4 -4
  489. package/Meshes/GreasedLine/greasedLineRibbonMesh.pure.js +3 -3
  490. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js +107 -94
  491. package/Meshes/Node/Blocks/Instances/instantiateBaseBlock.js.map +1 -1
  492. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js +276 -263
  493. package/Meshes/Node/Blocks/Instances/instantiateOnFacesBlock.pure.js.map +1 -1
  494. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js +247 -232
  495. package/Meshes/Node/Blocks/Instances/instantiateOnVerticesBlock.pure.js.map +1 -1
  496. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js +299 -284
  497. package/Meshes/Node/Blocks/Instances/instantiateOnVolumeBlock.pure.js.map +1 -1
  498. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js +196 -181
  499. package/Meshes/Node/Blocks/Set/aggregatorBlock.pure.js.map +1 -1
  500. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js +198 -179
  501. package/Meshes/Node/Blocks/Set/latticeBlock.pure.js.map +1 -1
  502. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js +151 -138
  503. package/Meshes/Node/Blocks/Set/setColorsBlock.pure.js.map +1 -1
  504. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js +107 -94
  505. package/Meshes/Node/Blocks/Set/setMaterialIDBlock.pure.js.map +1 -1
  506. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js +138 -125
  507. package/Meshes/Node/Blocks/Set/setNormalsBlock.pure.js.map +1 -1
  508. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js +213 -200
  509. package/Meshes/Node/Blocks/Set/setPositionsBlock.pure.js.map +1 -1
  510. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js +138 -125
  511. package/Meshes/Node/Blocks/Set/setTangentsBlock.pure.js.map +1 -1
  512. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js +179 -164
  513. package/Meshes/Node/Blocks/Set/setUVsBlock.pure.js.map +1 -1
  514. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js +183 -170
  515. package/Meshes/Node/Blocks/Sources/boxBlock.pure.js.map +1 -1
  516. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js +125 -112
  517. package/Meshes/Node/Blocks/Sources/capsuleBlock.pure.js.map +1 -1
  518. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js +153 -140
  519. package/Meshes/Node/Blocks/Sources/cylinderBlock.pure.js.map +1 -1
  520. package/Meshes/Node/Blocks/Sources/discBlock.pure.js +112 -99
  521. package/Meshes/Node/Blocks/Sources/discBlock.pure.js.map +1 -1
  522. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js +133 -120
  523. package/Meshes/Node/Blocks/Sources/gridBlock.pure.js.map +1 -1
  524. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js +128 -115
  525. package/Meshes/Node/Blocks/Sources/icoSphereBlock.pure.js.map +1 -1
  526. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js +116 -103
  527. package/Meshes/Node/Blocks/Sources/meshBlock.pure.js.map +1 -1
  528. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js +160 -147
  529. package/Meshes/Node/Blocks/Sources/planeBlock.pure.js.map +1 -1
  530. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js +144 -131
  531. package/Meshes/Node/Blocks/Sources/sphereBlock.pure.js.map +1 -1
  532. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js +112 -99
  533. package/Meshes/Node/Blocks/Sources/torusBlock.pure.js.map +1 -1
  534. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js +200 -185
  535. package/Meshes/Node/Blocks/Textures/geometryTextureFetchBlock.pure.js.map +1 -1
  536. package/Meshes/Node/Blocks/bevelBlock.pure.js +111 -98
  537. package/Meshes/Node/Blocks/bevelBlock.pure.js.map +1 -1
  538. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js +182 -165
  539. package/Meshes/Node/Blocks/booleanGeometryBlock.pure.js.map +1 -1
  540. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js +89 -76
  541. package/Meshes/Node/Blocks/cleanGeometryBlock.pure.js.map +1 -1
  542. package/Meshes/Node/Blocks/conditionBlock.pure.js +184 -169
  543. package/Meshes/Node/Blocks/conditionBlock.pure.js.map +1 -1
  544. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js +270 -255
  545. package/Meshes/Node/Blocks/extrudeGeometryBlock.pure.js.map +1 -1
  546. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js +172 -159
  547. package/Meshes/Node/Blocks/geometryCollectionBlock.pure.js.map +1 -1
  548. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js +230 -217
  549. package/Meshes/Node/Blocks/geometryCurveBlock.pure.js.map +1 -1
  550. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js +256 -245
  551. package/Meshes/Node/Blocks/geometryEaseBlock.pure.js.map +1 -1
  552. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js +206 -189
  553. package/Meshes/Node/Blocks/geometryOptimizeBlock.pure.js.map +1 -1
  554. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js +166 -153
  555. package/Meshes/Node/Blocks/geometryTransformBlock.pure.js.map +1 -1
  556. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js +221 -208
  557. package/Meshes/Node/Blocks/geometryTrigonometryBlock.pure.js.map +1 -1
  558. package/Meshes/Node/Blocks/mappingBlock.pure.js +150 -137
  559. package/Meshes/Node/Blocks/mappingBlock.pure.js.map +1 -1
  560. package/Meshes/Node/Blocks/mathBlock.pure.js +269 -256
  561. package/Meshes/Node/Blocks/mathBlock.pure.js.map +1 -1
  562. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js +141 -128
  563. package/Meshes/Node/Blocks/mergeGeometryBlock.pure.js.map +1 -1
  564. package/Meshes/Node/Blocks/randomBlock.pure.js +161 -148
  565. package/Meshes/Node/Blocks/randomBlock.pure.js.map +1 -1
  566. package/Meshes/Node/Blocks/subdivideBlock.pure.js +102 -87
  567. package/Meshes/Node/Blocks/subdivideBlock.pure.js.map +1 -1
  568. package/Meshes/Node/nodeGeometry.js +560 -538
  569. package/Meshes/Node/nodeGeometry.js.map +1 -1
  570. package/Meshes/Node/nodeGeometryBlock.js +473 -458
  571. package/Meshes/Node/nodeGeometryBlock.js.map +1 -1
  572. package/Meshes/abstractMesh.pure.js +2218 -2207
  573. package/Meshes/abstractMesh.pure.js.map +1 -1
  574. package/Meshes/geometry.js +30 -15
  575. package/Meshes/geometry.js.map +1 -1
  576. package/Meshes/mesh.pure.js +26 -14
  577. package/Meshes/mesh.pure.js.map +1 -1
  578. package/Meshes/mesh.vertexData.js +1665 -1655
  579. package/Meshes/mesh.vertexData.js.map +1 -1
  580. package/Meshes/transformNode.pure.js +1400 -1372
  581. package/Meshes/transformNode.pure.js.map +1 -1
  582. package/Misc/decorators.d.ts +34 -19
  583. package/Misc/decorators.functions.d.ts +33 -2
  584. package/Misc/decorators.functions.js +114 -35
  585. package/Misc/decorators.functions.js.map +1 -1
  586. package/Misc/decorators.js +96 -68
  587. package/Misc/decorators.js.map +1 -1
  588. package/Misc/decorators.serialization.js +47 -40
  589. package/Misc/decorators.serialization.js.map +1 -1
  590. package/Misc/decorators.serializationUtilities.d.ts +24 -0
  591. package/Misc/decorators.serializationUtilities.js +20 -0
  592. package/Misc/decorators.serializationUtilities.js.map +1 -0
  593. package/Misc/dumpTools.pure.js +43 -33
  594. package/Misc/dumpTools.pure.js.map +1 -1
  595. package/Misc/fileTools.pure.js +8 -0
  596. package/Misc/fileTools.pure.js.map +1 -1
  597. package/Misc/observable.pure.js +0 -7
  598. package/Misc/observable.pure.js.map +1 -1
  599. package/Misc/snapshotRenderingHelper.d.ts +4 -1
  600. package/Misc/snapshotRenderingHelper.js.map +1 -1
  601. package/Misc/symbolMetadataPolyfill.d.ts +11 -0
  602. package/Misc/symbolMetadataPolyfill.js +22 -0
  603. package/Misc/symbolMetadataPolyfill.js.map +1 -0
  604. package/Misc/tools.pure.js +2 -2
  605. package/Misc/tools.pure.js.map +1 -1
  606. package/Morph/morphTarget.js +382 -365
  607. package/Morph/morphTarget.js.map +1 -1
  608. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js +160 -145
  609. package/Particles/Node/Blocks/Conditions/particleConditionBlock.pure.js.map +1 -1
  610. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js +187 -174
  611. package/Particles/Node/Blocks/Emitters/coneShapeBlock.pure.js.map +1 -1
  612. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js +238 -219
  613. package/Particles/Node/Blocks/Emitters/meshShapeBlock.pure.js.map +1 -1
  614. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js +140 -115
  615. package/Particles/Node/Blocks/Emitters/setupSpriteSheetBlock.pure.js.map +1 -1
  616. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js +157 -144
  617. package/Particles/Node/Blocks/Emitters/sphereShapeBlock.pure.js.map +1 -1
  618. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js +133 -119
  619. package/Particles/Node/Blocks/Triggers/particleTriggerBlock.pure.js.map +1 -1
  620. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js +93 -80
  621. package/Particles/Node/Blocks/Update/alignAngleBlock.pure.js.map +1 -1
  622. package/Particles/Node/Blocks/particleDebugBlock.pure.js +117 -105
  623. package/Particles/Node/Blocks/particleDebugBlock.pure.js.map +1 -1
  624. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js +105 -92
  625. package/Particles/Node/Blocks/particleFloatToIntBlock.pure.js.map +1 -1
  626. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js +82 -69
  627. package/Particles/Node/Blocks/particleGradientValueBlock.pure.js.map +1 -1
  628. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js +113 -101
  629. package/Particles/Node/Blocks/particleLocalVariableBlock.pure.js.map +1 -1
  630. package/Particles/Node/Blocks/particleMathBlock.pure.js +278 -265
  631. package/Particles/Node/Blocks/particleMathBlock.pure.js.map +1 -1
  632. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js +155 -142
  633. package/Particles/Node/Blocks/particleNumberMathBlock.pure.js.map +1 -1
  634. package/Particles/Node/Blocks/particleRandomBlock.pure.js +156 -143
  635. package/Particles/Node/Blocks/particleRandomBlock.pure.js.map +1 -1
  636. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js +217 -204
  637. package/Particles/Node/Blocks/particleTrigonometryBlock.pure.js.map +1 -1
  638. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js +106 -93
  639. package/Particles/Node/Blocks/particleVectorMathBlock.pure.js.map +1 -1
  640. package/Particles/Node/Blocks/systemBlock.pure.js +366 -330
  641. package/Particles/Node/Blocks/systemBlock.pure.js.map +1 -1
  642. package/Particles/Node/nodeParticleBlock.js +339 -324
  643. package/Particles/Node/nodeParticleBlock.js.map +1 -1
  644. package/Particles/Node/nodeParticleSystemSet.js +494 -473
  645. package/Particles/Node/nodeParticleSystemSet.js.map +1 -1
  646. package/Particles/gpuParticleSystem.d.ts +0 -1
  647. package/Particles/gpuParticleSystem.js +0 -1
  648. package/Particles/gpuParticleSystem.js.map +1 -1
  649. package/Particles/gpuParticleSystem.pure.d.ts +4 -3
  650. package/Particles/gpuParticleSystem.pure.js +27 -16
  651. package/Particles/gpuParticleSystem.pure.js.map +1 -1
  652. package/Particles/particleSystem.pure.js +57 -2
  653. package/Particles/particleSystem.pure.js.map +1 -1
  654. package/Particles/thinParticleSystem.d.ts +0 -1
  655. package/Particles/thinParticleSystem.js +0 -1
  656. package/Particles/thinParticleSystem.js.map +1 -1
  657. package/Particles/thinParticleSystem.pure.js +2 -0
  658. package/Particles/thinParticleSystem.pure.js.map +1 -1
  659. package/Particles/webgl2ParticleSystem.pure.js +2 -0
  660. package/Particles/webgl2ParticleSystem.pure.js.map +1 -1
  661. package/Physics/v1/physicsImpostor.pure.js +4 -4
  662. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js +675 -656
  663. package/PostProcesses/RenderPipeline/Pipelines/defaultRenderingPipeline.pure.js.map +1 -1
  664. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.d.ts +0 -1
  665. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js +0 -1
  666. package/PostProcesses/RenderPipeline/Pipelines/lensRenderingPipeline.js.map +1 -1
  667. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js +521 -486
  668. package/PostProcesses/RenderPipeline/Pipelines/ssao2RenderingPipeline.pure.js.map +1 -1
  669. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.d.ts +0 -1
  670. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js +0 -1
  671. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.js.map +1 -1
  672. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js +241 -220
  673. package/PostProcesses/RenderPipeline/Pipelines/ssaoRenderingPipeline.pure.js.map +1 -1
  674. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js +852 -835
  675. package/PostProcesses/RenderPipeline/Pipelines/ssrRenderingPipeline.pure.js.map +1 -1
  676. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js +1135 -1073
  677. package/PostProcesses/RenderPipeline/Pipelines/standardRenderingPipeline.pure.js.map +1 -1
  678. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js +319 -303
  679. package/PostProcesses/RenderPipeline/Pipelines/taaRenderingPipeline.pure.js.map +1 -1
  680. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js +212 -199
  681. package/PostProcesses/RenderPipeline/postProcessRenderPipeline.js.map +1 -1
  682. package/PostProcesses/blackAndWhitePostProcess.pure.js +67 -55
  683. package/PostProcesses/blackAndWhitePostProcess.pure.js.map +1 -1
  684. package/PostProcesses/bloomMergePostProcess.pure.js +74 -62
  685. package/PostProcesses/bloomMergePostProcess.pure.js.map +1 -1
  686. package/PostProcesses/blurPostProcess.pure.js +127 -115
  687. package/PostProcesses/blurPostProcess.pure.js.map +1 -1
  688. package/PostProcesses/chromaticAberrationPostProcess.pure.js +130 -118
  689. package/PostProcesses/chromaticAberrationPostProcess.pure.js.map +1 -1
  690. package/PostProcesses/circleOfConfusionPostProcess.pure.js +115 -104
  691. package/PostProcesses/circleOfConfusionPostProcess.pure.js.map +1 -1
  692. package/PostProcesses/colorCorrectionPostProcess.pure.js +55 -43
  693. package/PostProcesses/colorCorrectionPostProcess.pure.js.map +1 -1
  694. package/PostProcesses/convolutionPostProcess.pure.js +96 -84
  695. package/PostProcesses/convolutionPostProcess.pure.js.map +1 -1
  696. package/PostProcesses/extractHighlightsPostProcess.pure.js +68 -57
  697. package/PostProcesses/extractHighlightsPostProcess.pure.js.map +1 -1
  698. package/PostProcesses/filterPostProcess.pure.js +66 -54
  699. package/PostProcesses/filterPostProcess.pure.js.map +1 -1
  700. package/PostProcesses/fxaaPostProcess.pure.js.map +1 -1
  701. package/PostProcesses/grainPostProcess.pure.js +82 -70
  702. package/PostProcesses/grainPostProcess.pure.js.map +1 -1
  703. package/PostProcesses/imageProcessingPostProcess.js +334 -322
  704. package/PostProcesses/imageProcessingPostProcess.js.map +1 -1
  705. package/PostProcesses/motionBlurPostProcess.pure.js +246 -235
  706. package/PostProcesses/motionBlurPostProcess.pure.js.map +1 -1
  707. package/PostProcesses/passPostProcess.pure.js +75 -63
  708. package/PostProcesses/passPostProcess.pure.js.map +1 -1
  709. package/PostProcesses/postProcess.pure.js +899 -835
  710. package/PostProcesses/postProcess.pure.js.map +1 -1
  711. package/PostProcesses/refractionPostProcess.pure.js +114 -87
  712. package/PostProcesses/refractionPostProcess.pure.js.map +1 -1
  713. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js +108 -96
  714. package/PostProcesses/screenSpaceCurvaturePostProcess.pure.js.map +1 -1
  715. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js +241 -220
  716. package/PostProcesses/screenSpaceReflectionPostProcess.pure.js.map +1 -1
  717. package/PostProcesses/sharpenPostProcess.pure.js +86 -74
  718. package/PostProcesses/sharpenPostProcess.pure.js.map +1 -1
  719. package/PostProcesses/tonemapPostProcess.pure.js +82 -70
  720. package/PostProcesses/tonemapPostProcess.pure.js.map +1 -1
  721. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js +500 -465
  722. package/PostProcesses/volumetricLightScatteringPostProcess.pure.js.map +1 -1
  723. package/PostProcesses/vrMultiviewToSingleviewPostProcess.d.ts +0 -1
  724. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js +0 -1
  725. package/PostProcesses/vrMultiviewToSingleviewPostProcess.js.map +1 -1
  726. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js +2 -0
  727. package/PostProcesses/vrMultiviewToSingleviewPostProcess.pure.js.map +1 -1
  728. package/Probes/reflectionProbe.pure.js +238 -224
  729. package/Probes/reflectionProbe.pure.js.map +1 -1
  730. package/Rendering/GlobalIllumination/giRSMManager.pure.d.ts +1 -1
  731. package/Rendering/GlobalIllumination/giRSMManager.pure.js +138 -105
  732. package/Rendering/GlobalIllumination/giRSMManager.pure.js.map +1 -1
  733. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.d.ts +1 -1
  734. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js +155 -138
  735. package/Rendering/IBLShadows/iblShadowsPluginMaterial.pure.js.map +1 -1
  736. package/Rendering/IBLShadows/iblShadowsRenderPipeline.d.ts +0 -2
  737. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js +0 -2
  738. package/Rendering/IBLShadows/iblShadowsRenderPipeline.js.map +1 -1
  739. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js +5 -0
  740. package/Rendering/IBLShadows/iblShadowsRenderPipeline.pure.js.map +1 -1
  741. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.d.ts +0 -1
  742. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js +0 -1
  743. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.js.map +1 -1
  744. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.d.ts +1 -0
  745. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js +34 -0
  746. package/Rendering/IBLShadows/iblShadowsVoxelRenderer.pure.js.map +1 -1
  747. package/Rendering/edgesRenderer.pure.js.map +1 -1
  748. package/Rendering/prePassRenderer.d.ts +0 -2
  749. package/Rendering/prePassRenderer.js +0 -2
  750. package/Rendering/prePassRenderer.js.map +1 -1
  751. package/Rendering/prePassRenderer.pure.js +2 -0
  752. package/Rendering/prePassRenderer.pure.js.map +1 -1
  753. package/Rendering/reflectiveShadowMap.pure.d.ts +1 -1
  754. package/Rendering/reflectiveShadowMap.pure.js +151 -130
  755. package/Rendering/reflectiveShadowMap.pure.js.map +1 -1
  756. package/Rendering/thinDepthPeelingRenderer.d.ts +0 -1
  757. package/Rendering/thinDepthPeelingRenderer.js +0 -1
  758. package/Rendering/thinDepthPeelingRenderer.js.map +1 -1
  759. package/Shaders/ShadersInclude/gaussianSplatting.js +1 -0
  760. package/Shaders/ShadersInclude/gaussianSplatting.js.map +1 -1
  761. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js +35 -5
  762. package/Shaders/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  763. package/Shaders/gaussianSplatting.fragment.js +17 -1
  764. package/Shaders/gaussianSplatting.fragment.js.map +1 -1
  765. package/Shaders/gaussianSplatting.vertex.js +1 -1
  766. package/Shaders/gaussianSplatting.vertex.js.map +1 -1
  767. package/Shaders/gaussianSplattingDepth.vertex.js +1 -1
  768. package/Shaders/gaussianSplattingDepth.vertex.js.map +1 -1
  769. package/Shaders/picking.fragment.js +39 -3
  770. package/Shaders/picking.fragment.js.map +1 -1
  771. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js +3 -1
  772. package/ShadersWGSL/ShadersInclude/gaussianSplatting.js.map +1 -1
  773. package/ShadersWGSL/ShadersInclude/helperFunctions.js +2 -2
  774. package/ShadersWGSL/ShadersInclude/helperFunctions.js.map +1 -1
  775. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js +39 -7
  776. package/ShadersWGSL/ShadersInclude/openpbrEnvironmentLighting.js.map +1 -1
  777. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js +4 -3
  778. package/ShadersWGSL/ShadersInclude/openpbrIblFunctions.js.map +1 -1
  779. package/ShadersWGSL/gaussianSplatting.fragment.js +14 -1
  780. package/ShadersWGSL/gaussianSplatting.fragment.js.map +1 -1
  781. package/ShadersWGSL/gaussianSplatting.vertex.js +2 -2
  782. package/ShadersWGSL/gaussianSplatting.vertex.js.map +1 -1
  783. package/ShadersWGSL/gaussianSplattingDepth.vertex.js +2 -2
  784. package/ShadersWGSL/gaussianSplattingDepth.vertex.js.map +1 -1
  785. package/ShadersWGSL/lightingVolume.compute.js +2 -2
  786. package/ShadersWGSL/lightingVolume.compute.js.map +1 -1
  787. package/ShadersWGSL/picking.fragment.js +22 -1
  788. package/ShadersWGSL/picking.fragment.js.map +1 -1
  789. package/XR/features/Layers/WebXRCompositionLayer.d.ts +3 -2
  790. package/XR/features/Layers/WebXRCompositionLayer.js +2 -2
  791. package/XR/features/Layers/WebXRCompositionLayer.js.map +1 -1
  792. package/XR/features/Layers/WebXRWebGPUCompositionLayer.d.ts +59 -0
  793. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js +120 -0
  794. package/XR/features/Layers/WebXRWebGPUCompositionLayer.js.map +1 -0
  795. package/XR/features/Layers/WebXRWebGPUProjectionLayer.d.ts +25 -0
  796. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js +69 -0
  797. package/XR/features/Layers/WebXRWebGPUProjectionLayer.js.map +1 -0
  798. package/XR/features/WebXRLayers.pure.d.ts +8 -0
  799. package/XR/features/WebXRLayers.pure.js +43 -6
  800. package/XR/features/WebXRLayers.pure.js.map +1 -1
  801. package/XR/native/nativeXRRenderTarget.d.ts +2 -2
  802. package/XR/native/nativeXRRenderTarget.js +2 -2
  803. package/XR/native/nativeXRRenderTarget.js.map +1 -1
  804. package/XR/webXRExperienceHelper.js +10 -1
  805. package/XR/webXRExperienceHelper.js.map +1 -1
  806. package/XR/webXRGraphicsBinding.d.ts +90 -0
  807. package/XR/webXRGraphicsBinding.js +85 -0
  808. package/XR/webXRGraphicsBinding.js.map +1 -0
  809. package/XR/webXRLayerRenderTargetTexture.d.ts +24 -0
  810. package/XR/webXRLayerRenderTargetTexture.js +30 -0
  811. package/XR/webXRLayerRenderTargetTexture.js.map +1 -0
  812. package/XR/webXRManagedOutputCanvas.d.ts +14 -0
  813. package/XR/webXRManagedOutputCanvas.js +24 -5
  814. package/XR/webXRManagedOutputCanvas.js.map +1 -1
  815. package/XR/webXRRenderTargetTextureProvider.d.ts +25 -4
  816. package/XR/webXRRenderTargetTextureProvider.js +33 -35
  817. package/XR/webXRRenderTargetTextureProvider.js.map +1 -1
  818. package/XR/webXRSessionManager.d.ts +11 -0
  819. package/XR/webXRSessionManager.js +37 -0
  820. package/XR/webXRSessionManager.js.map +1 -1
  821. package/XR/webXRTypes.d.ts +9 -6
  822. package/XR/webXRTypes.js.map +1 -1
  823. package/XR/webXRWebGLLayer.d.ts +2 -2
  824. package/XR/webXRWebGLLayer.js +2 -2
  825. package/XR/webXRWebGLLayer.js.map +1 -1
  826. package/XR/webXRWebGLRenderTargetTextureProvider.d.ts +12 -0
  827. package/XR/webXRWebGLRenderTargetTextureProvider.js +58 -0
  828. package/XR/webXRWebGLRenderTargetTextureProvider.js.map +1 -0
  829. package/XR/webXRWebGPURenderTargetTextureProvider.d.ts +69 -0
  830. package/XR/webXRWebGPURenderTargetTextureProvider.js +148 -0
  831. package/XR/webXRWebGPURenderTargetTextureProvider.js.map +1 -0
  832. package/index.d.ts +1 -0
  833. package/index.js +1 -0
  834. package/index.js.map +1 -1
  835. package/node.js +878 -845
  836. package/node.js.map +1 -1
  837. package/package.json +8 -14
  838. package/scene.pure.d.ts +12 -0
  839. package/scene.pure.js +36 -0
  840. package/scene.pure.js.map +1 -1
  841. package/tslib.es6.js +304 -150
@@ -1,35 +1,50 @@
1
1
  import { type Nullable } from "../types.js";
2
- export declare function expandToProperty(callback: string, targetKey?: Nullable<string>): (target: any, propertyKey: string) => void;
3
- export declare function serialize(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
4
- export declare function serializeAsTexture(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
5
- export declare function serializeAsColor3(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
6
- export declare function serializeAsFresnelParameters(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
7
- export declare function serializeAsVector2(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
8
- export declare function serializeAsVector3(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
9
- export declare function serializeAsMeshReference(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
10
- export declare function serializeAsColorCurves(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
11
- export declare function serializeAsColor4(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
12
- export declare function serializeAsImageProcessingConfiguration(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
13
- export declare function serializeAsQuaternion(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
14
- export declare function serializeAsMatrix(sourceName?: string): (target: any, propertyKey: string | symbol) => void;
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): (target: any, propertyKey: string | symbol) => void;
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<T extends (...params: any[]) => boolean>(target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...params: Parameters<T>) => any>, predicate?: T): void;
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) => (target: any, propertyKey: string, descriptor: TypedPropertyDescriptor<(...params: Parameters<T>) => unknown>) => void;
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 targetKey - The key to use for the target property (defaults to the original property key).
33
- * @returns A property decorator.
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, targetKey?: Nullable<string>): (target: any, propertyKey: string) => void;
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): 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): any;
38
+ export declare function GetMergedStore(target: any): SerializedPropertyMetadataMap;
@@ -1,50 +1,129 @@
1
- const MergedStore = {};
2
- const DecoratorInitialStore = {};
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 classKey = target.getClassName();
6
- if (!DecoratorInitialStore[classKey]) {
7
- DecoratorInitialStore[classKey] = {};
86
+ const metadata = GetOwnMetadata(GetConstructor(target));
87
+ if (!metadata) {
88
+ return {};
89
+ }
90
+ if (!HasOwn(metadata, __bjsSerializableKey)) {
91
+ metadata[__bjsSerializableKey] = {};
8
92
  }
9
- return DecoratorInitialStore[classKey];
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 classKey = target.getClassName();
17
- if (MergedStore[classKey]) {
18
- return MergedStore[classKey];
19
- }
20
- MergedStore[classKey] = {};
21
- const store = MergedStore[classKey];
22
- let currentTarget = target;
23
- let currentKey = classKey;
24
- while (currentKey) {
25
- const initialStore = DecoratorInitialStore[currentKey];
26
- for (const property in initialStore) {
27
- store[property] = initialStore[property];
28
- }
29
- let parent;
30
- let done = false;
31
- do {
32
- parent = Object.getPrototypeOf(currentTarget);
33
- if (!parent.getClassName) {
34
- done = true;
35
- break;
36
- }
37
- if (parent.getClassName() !== currentKey) {
38
- break;
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":"AAAA,MAAM,WAAW,GAAG,EAAE,CAAC;AAEvB,MAAM,qBAAqB,GAAG,EAAE,CAAC;AAEjC,gBAAgB;AAChB,MAAM,UAAU,cAAc,CAAC,MAAW;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAEvC,IAAI,CAAO,qBAAsB,CAAC,QAAQ,CAAC,EAAE,CAAC;QACpC,qBAAsB,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAChD,CAAC;IAED,OAAa,qBAAsB,CAAC,QAAQ,CAAC,CAAC;AAClD,CAAC;AAED;;;GAGG;AACH,MAAM,UAAU,cAAc,CAAC,MAAW;IACtC,MAAM,QAAQ,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;IAEvC,IAAU,WAAY,CAAC,QAAQ,CAAC,EAAE,CAAC;QAC/B,OAAa,WAAY,CAAC,QAAQ,CAAC,CAAC;IACxC,CAAC;IAEK,WAAY,CAAC,QAAQ,CAAC,GAAG,EAAE,CAAC;IAElC,MAAM,KAAK,GAAS,WAAY,CAAC,QAAQ,CAAC,CAAC;IAC3C,IAAI,aAAa,GAAG,MAAM,CAAC;IAC3B,IAAI,UAAU,GAAG,QAAQ,CAAC;IAC1B,OAAO,UAAU,EAAE,CAAC;QAChB,MAAM,YAAY,GAAS,qBAAsB,CAAC,UAAU,CAAC,CAAC;QAC9D,KAAK,MAAM,QAAQ,IAAI,YAAY,EAAE,CAAC;YAClC,KAAK,CAAC,QAAQ,CAAC,GAAG,YAAY,CAAC,QAAQ,CAAC,CAAC;QAC7C,CAAC;QAED,IAAI,MAAW,CAAC;QAChB,IAAI,IAAI,GAAG,KAAK,CAAC;QAEjB,GAAG,CAAC;YACA,MAAM,GAAG,MAAM,CAAC,cAAc,CAAC,aAAa,CAAC,CAAC;YAC9C,IAAI,CAAC,MAAM,CAAC,YAAY,EAAE,CAAC;gBACvB,IAAI,GAAG,IAAI,CAAC;gBACZ,MAAM;YACV,CAAC;YAED,IAAI,MAAM,CAAC,YAAY,EAAE,KAAK,UAAU,EAAE,CAAC;gBACvC,MAAM;YACV,CAAC;YAED,aAAa,GAAG,MAAM,CAAC;QAC3B,CAAC,QAAQ,MAAM,EAAE;QAEjB,IAAI,IAAI,EAAE,CAAC;YACP,MAAM;QACV,CAAC;QAED,UAAU,GAAG,MAAM,CAAC,YAAY,EAAE,CAAC;QACnC,aAAa,GAAG,MAAM,CAAC;IAC3B,CAAC;IAED,OAAO,KAAK,CAAC;AACjB,CAAC","sourcesContent":["const MergedStore = {};\r\n\r\nconst DecoratorInitialStore = {};\r\n\r\n/** @internal */\r\nexport function GetDirectStore(target: any): any {\r\n const classKey = target.getClassName();\r\n\r\n if (!(<any>DecoratorInitialStore)[classKey]) {\r\n (<any>DecoratorInitialStore)[classKey] = {};\r\n }\r\n\r\n return (<any>DecoratorInitialStore)[classKey];\r\n}\r\n\r\n/**\r\n * @returns the list of properties flagged as serializable\r\n * @param target host object\r\n */\r\nexport function GetMergedStore(target: any): any {\r\n const classKey = target.getClassName();\r\n\r\n if ((<any>MergedStore)[classKey]) {\r\n return (<any>MergedStore)[classKey];\r\n }\r\n\r\n (<any>MergedStore)[classKey] = {};\r\n\r\n const store = (<any>MergedStore)[classKey];\r\n let currentTarget = target;\r\n let currentKey = classKey;\r\n while (currentKey) {\r\n const initialStore = (<any>DecoratorInitialStore)[currentKey];\r\n for (const property in initialStore) {\r\n store[property] = initialStore[property];\r\n }\r\n\r\n let parent: any;\r\n let done = false;\r\n\r\n do {\r\n parent = Object.getPrototypeOf(currentTarget);\r\n if (!parent.getClassName) {\r\n done = true;\r\n break;\r\n }\r\n\r\n if (parent.getClassName() !== currentKey) {\r\n break;\r\n }\r\n\r\n currentTarget = parent;\r\n } while (parent);\r\n\r\n if (done) {\r\n break;\r\n }\r\n\r\n currentKey = parent.getClassName();\r\n currentTarget = parent;\r\n }\r\n\r\n return store;\r\n}\r\n"]}
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"]}
@@ -1,21 +1,30 @@
1
- import { GetDirectStore } from "./decorators.functions.js";
1
+ import { GetDirectStoreFromMetadata } from "./decorators.functions.js";
2
2
  function generateSerializableMember(type, sourceName) {
3
- return (target, propertyKey) => {
4
- const classStore = GetDirectStore(target);
5
- if (!classStore[propertyKey]) {
6
- classStore[propertyKey] = { type: type, sourceName: sourceName };
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 (target, propertyKey) => {
12
- const key = targetKey || "_" + propertyKey;
13
- Object.defineProperty(target, propertyKey, {
14
- get: function () {
15
- // eslint-disable-next-line @typescript-eslint/no-unsafe-return
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: function (value) {
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
- target[setCallback].apply(this);
39
+ this[setCallback]();
31
40
  },
32
- enumerable: true,
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, sourceName); // value member
48
+ return generateSerializableMember(0 /* SerializedFieldType.VALUE */, sourceName);
42
49
  }
43
50
  export function serializeAsTexture(sourceName) {
44
- return generateSerializableMember(1, sourceName); // texture member
51
+ return generateSerializableMember(1 /* SerializedFieldType.TEXTURE */, sourceName);
45
52
  }
46
53
  export function serializeAsColor3(sourceName) {
47
- return generateSerializableMember(2, sourceName); // color3 member
54
+ return generateSerializableMember(2 /* SerializedFieldType.COLOR3 */, sourceName);
48
55
  }
49
56
  export function serializeAsFresnelParameters(sourceName) {
50
- return generateSerializableMember(3, sourceName); // fresnel parameters member
57
+ return generateSerializableMember(3 /* SerializedFieldType.FRESNEL_PARAMETERS */, sourceName);
51
58
  }
52
59
  export function serializeAsVector2(sourceName) {
53
- return generateSerializableMember(4, sourceName); // vector2 member
60
+ return generateSerializableMember(4 /* SerializedFieldType.VECTOR2 */, sourceName);
54
61
  }
55
62
  export function serializeAsVector3(sourceName) {
56
- return generateSerializableMember(5, sourceName); // vector3 member
63
+ return generateSerializableMember(5 /* SerializedFieldType.VECTOR3 */, sourceName);
57
64
  }
58
65
  export function serializeAsMeshReference(sourceName) {
59
- return generateSerializableMember(6, sourceName); // mesh reference member
66
+ return generateSerializableMember(6 /* SerializedFieldType.MESH */, sourceName);
60
67
  }
61
68
  export function serializeAsColorCurves(sourceName) {
62
- return generateSerializableMember(7, sourceName); // color curves
69
+ return generateSerializableMember(7 /* SerializedFieldType.COLOR_CURVES */, sourceName);
63
70
  }
64
71
  export function serializeAsColor4(sourceName) {
65
- return generateSerializableMember(8, sourceName); // color 4
72
+ return generateSerializableMember(8 /* SerializedFieldType.COLOR4 */, sourceName);
66
73
  }
67
74
  export function serializeAsImageProcessingConfiguration(sourceName) {
68
- return generateSerializableMember(9, sourceName); // image processing
75
+ return generateSerializableMember(9 /* SerializedFieldType.IMAGE_PROCESSING */, sourceName);
69
76
  }
70
77
  export function serializeAsQuaternion(sourceName) {
71
- return generateSerializableMember(10, sourceName); // quaternion member
78
+ return generateSerializableMember(10 /* SerializedFieldType.QUATERNION */, sourceName);
72
79
  }
73
80
  export function serializeAsMatrix(sourceName) {
74
- return generateSerializableMember(12, sourceName); // matrix member
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, sourceName); // camera reference member
92
+ return generateSerializableMember(11 /* SerializedFieldType.CAMERA */, sourceName);
83
93
  }
84
94
  /**
85
- * Decorator used to redirect a function to a native implementation if available.
86
- * @internal
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
- export function nativeOverride(target, propertyKey, descriptor, predicate) {
89
- // Cache the original JS function for later.
90
- const jsFunc = descriptor.value;
91
- // Override the JS function to check for a native override on first invocation. Setting descriptor.value overrides the function at the early stage of code being loaded/imported.
92
- descriptor.value = (...params) => {
93
- // Assume the resolved function will be the original JS function, then we will check for the Babylon Native context.
94
- let func = jsFunc;
95
- // Check if we are executing in a Babylon Native context (e.g. check the presence of the _native global property) and if so also check if a function override is available.
96
- if (typeof _native !== "undefined" && _native[propertyKey]) {
97
- const nativeFunc = _native[propertyKey];
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
- else {
104
- // The resolved function will directly execute the native function.
105
- func = nativeFunc;
117
+ const target = (this && (context.static ? this : Object.getPrototypeOf(this)));
118
+ if (target?.[propertyKey] === wrapper) {
119
+ target[propertyKey] = resolvedFunc;
106
120
  }
107
121
  }
108
- // Override the JS function again with the final resolved target function.
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 (target, propertyKey, descriptor) => nativeOverride(target, propertyKey, descriptor, predicate);
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 targetKey - The key to use for the target property (defaults to the original property key).
129
- * @returns A property decorator.
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, targetKey = null) {
132
- return (target, propertyKey) => {
133
- const key = propertyKey;
134
- const newKey = targetKey || "";
135
- Object.defineProperty(target, newKey, {
136
- get: function () {
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: function (value) {
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
- target[setCallback].apply(this);
182
+ this[setCallback]();
153
183
  },
154
- enumerable: true,
155
- configurable: true,
156
- });
184
+ };
157
185
  };
158
186
  }
159
187
  //# sourceMappingURL=decorators.js.map