@babylonjs/lite 0.1.1

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 (417) hide show
  1. package/_math-factory-C-QqW-Wi.js +55 -0
  2. package/_math-factory-C-QqW-Wi.js.map +1 -0
  3. package/add-block-CikX5gWy.js +6 -0
  4. package/add-block-CikX5gWy.js.map +1 -0
  5. package/alpha-test-fragment-CUiHCw7W.js +22 -0
  6. package/alpha-test-fragment-CUiHCw7W.js.map +1 -0
  7. package/ambient-occlusion-block-DForhWL3.js +77 -0
  8. package/ambient-occlusion-block-DForhWL3.js.map +1 -0
  9. package/anisotropy-block-D5fXH_OY.js +12 -0
  10. package/anisotropy-block-D5fXH_OY.js.map +1 -0
  11. package/anisotropy-fragment-HgasXS7l.js +89 -0
  12. package/anisotropy-fragment-HgasXS7l.js.map +1 -0
  13. package/arc-tan2-block-d8sWt_x0.js +12 -0
  14. package/arc-tan2-block-d8sWt_x0.js.map +1 -0
  15. package/assets/splat-sort-worker-Crg3CaCc.js.map +1 -0
  16. package/background-dds-skybox-yHTqabU3.js +221 -0
  17. package/background-dds-skybox-yHTqabU3.js.map +1 -0
  18. package/background-ground-DIw6D3qf.js +235 -0
  19. package/background-ground-DIw6D3qf.js.map +1 -0
  20. package/background-hdr-skybox-c4uuTmkP.js +179 -0
  21. package/background-hdr-skybox-c4uuTmkP.js.map +1 -0
  22. package/background-solid-skybox-DPGBpPbm.js +235 -0
  23. package/background-solid-skybox-DPGBpPbm.js.map +1 -0
  24. package/bake-local-matrix-Dfpd3b06.js +28 -0
  25. package/bake-local-matrix-Dfpd3b06.js.map +1 -0
  26. package/billboard-renderable-D8mlVGCd.js +242 -0
  27. package/billboard-renderable-D8mlVGCd.js.map +1 -0
  28. package/biplanar-block-DZnKuV81.js +115 -0
  29. package/biplanar-block-DZnKuV81.js.map +1 -0
  30. package/bones-block-D6IhqUVV.js +31 -0
  31. package/bones-block-D6IhqUVV.js.map +1 -0
  32. package/clamp-block-BdII67hT.js +21 -0
  33. package/clamp-block-BdII67hT.js.map +1 -0
  34. package/clearcoat-block-BGML4npi.js +12 -0
  35. package/clearcoat-block-BGML4npi.js.map +1 -0
  36. package/clearcoat-fragment-LCiG98Rf.js +256 -0
  37. package/clearcoat-fragment-LCiG98Rf.js.map +1 -0
  38. package/clip-planes-block-BPfFJrbf.js +26 -0
  39. package/clip-planes-block-BPfFJrbf.js.map +1 -0
  40. package/cloud-block-BeVrangc.js +90 -0
  41. package/cloud-block-BeVrangc.js.map +1 -0
  42. package/color-converter-block-CvwKiW4k.js +123 -0
  43. package/color-converter-block-CvwKiW4k.js.map +1 -0
  44. package/color-merger-CCu21ZII.js +57 -0
  45. package/color-merger-CCu21ZII.js.map +1 -0
  46. package/color-splitter-CGn1G4ow.js +33 -0
  47. package/color-splitter-CGn1G4ow.js.map +1 -0
  48. package/conditional-block-Cd2pbejI.js +51 -0
  49. package/conditional-block-Cd2pbejI.js.map +1 -0
  50. package/create-skeleton-C9JdIJnb.js +44 -0
  51. package/create-skeleton-C9JdIJnb.js.map +1 -0
  52. package/cross-block-DCrLwCpt.js +12 -0
  53. package/cross-block-DCrLwCpt.js.map +1 -0
  54. package/cubemap-skybox-material-DvXMVc4k.js +79 -0
  55. package/cubemap-skybox-material-DvXMVc4k.js.map +1 -0
  56. package/curve-block-BlJpXVYv.js +89 -0
  57. package/curve-block-BlJpXVYv.js.map +1 -0
  58. package/debug-block-D2pg4Yf6.js +14 -0
  59. package/debug-block-D2pg4Yf6.js.map +1 -0
  60. package/derivative-block-B8KjtaWs.js +20 -0
  61. package/derivative-block-B8KjtaWs.js.map +1 -0
  62. package/desaturate-block-C1RghNSB.js +15 -0
  63. package/desaturate-block-C1RghNSB.js.map +1 -0
  64. package/discard-block-B2jKjaEL.js +21 -0
  65. package/discard-block-B2jKjaEL.js.map +1 -0
  66. package/distance-block-3NkgFZ3f.js +16 -0
  67. package/distance-block-3NkgFZ3f.js.map +1 -0
  68. package/divide-block-ZyepIg_-.js +6 -0
  69. package/divide-block-ZyepIg_-.js.map +1 -0
  70. package/dot-block-VlfAC6cD.js +16 -0
  71. package/dot-block-VlfAC6cD.js.map +1 -0
  72. package/elbow-block-NEOiIxzO.js +10 -0
  73. package/elbow-block-NEOiIxzO.js.map +1 -0
  74. package/emissive-fragment-BnNvbBCw.js +39 -0
  75. package/emissive-fragment-BnNvbBCw.js.map +1 -0
  76. package/esm-shadow-view-DGKdF1NI.js +18 -0
  77. package/esm-shadow-view-DGKdF1NI.js.map +1 -0
  78. package/esm-shadow-view-DN9HIaM4.js +15 -0
  79. package/esm-shadow-view-DN9HIaM4.js.map +1 -0
  80. package/esm-shadow-view-Dk9NFtLq.js +15 -0
  81. package/esm-shadow-view-Dk9NFtLq.js.map +1 -0
  82. package/fog-block-DJ9hEolm.js +41 -0
  83. package/fog-block-DJ9hEolm.js.map +1 -0
  84. package/frag-coord-block-DzXfFgfV.js +25 -0
  85. package/frag-coord-block-DzXfFgfV.js.map +1 -0
  86. package/frag-depth-block-UQbeKP2D.js +34 -0
  87. package/frag-depth-block-UQbeKP2D.js.map +1 -0
  88. package/fragment-output-BOphkIeh.js +26 -0
  89. package/fragment-output-BOphkIeh.js.map +1 -0
  90. package/fresnel-block-DefHWeO-.js +20 -0
  91. package/fresnel-block-DefHWeO-.js.map +1 -0
  92. package/front-facing-0d6aiyrv.js +11 -0
  93. package/front-facing-0d6aiyrv.js.map +1 -0
  94. package/gaussian-splatting-pipeline-sh-DgJl7l56.js +500 -0
  95. package/gaussian-splatting-pipeline-sh-DgJl7l56.js.map +1 -0
  96. package/gltf-animation-D7uyTyO3.js +245 -0
  97. package/gltf-animation-D7uyTyO3.js.map +1 -0
  98. package/gltf-ext-anisotropy-CknJiJK8.js +22 -0
  99. package/gltf-ext-anisotropy-CknJiJK8.js.map +1 -0
  100. package/gltf-ext-basisu-CPg5kPrx.js +452 -0
  101. package/gltf-ext-basisu-CPg5kPrx.js.map +1 -0
  102. package/gltf-ext-clearcoat-CLH2SVph.js +31 -0
  103. package/gltf-ext-clearcoat-CLH2SVph.js.map +1 -0
  104. package/gltf-ext-dielectric-qHzlnvdl.js +105 -0
  105. package/gltf-ext-dielectric-qHzlnvdl.js.map +1 -0
  106. package/gltf-ext-emissive-strength-nzGZXZVK.js +19 -0
  107. package/gltf-ext-emissive-strength-nzGZXZVK.js.map +1 -0
  108. package/gltf-ext-iridescence-C6bq7jiM.js +26 -0
  109. package/gltf-ext-iridescence-C6bq7jiM.js.map +1 -0
  110. package/gltf-ext-node-visibility-MafA9ot2.js +25 -0
  111. package/gltf-ext-node-visibility-MafA9ot2.js.map +1 -0
  112. package/gltf-ext-orm-CT18G_vQ.js +33 -0
  113. package/gltf-ext-orm-CT18G_vQ.js.map +1 -0
  114. package/gltf-ext-quantization-CpZyLDIz.js +94 -0
  115. package/gltf-ext-quantization-CpZyLDIz.js.map +1 -0
  116. package/gltf-ext-sheen-BgIxUzyZ.js +25 -0
  117. package/gltf-ext-sheen-BgIxUzyZ.js.map +1 -0
  118. package/gltf-ext-spec-gloss-D0LJLBUM.js +24 -0
  119. package/gltf-ext-spec-gloss-D0LJLBUM.js.map +1 -0
  120. package/gltf-ext-unlit-D2ANui0V.js +16 -0
  121. package/gltf-ext-unlit-D2ANui0V.js.map +1 -0
  122. package/gltf-ext-uv-transform-CE_-T1Tr.js +38 -0
  123. package/gltf-ext-uv-transform-CE_-T1Tr.js.map +1 -0
  124. package/gltf-feature-animation-pointer-BjpwOOqo.js +88 -0
  125. package/gltf-feature-animation-pointer-BjpwOOqo.js.map +1 -0
  126. package/gltf-feature-animations-CCizegp8.js +15 -0
  127. package/gltf-feature-animations-CCizegp8.js.map +1 -0
  128. package/gltf-feature-draco-yGSMGTE3.js +124 -0
  129. package/gltf-feature-draco-yGSMGTE3.js.map +1 -0
  130. package/gltf-feature-gpu-instancing-2e_CFQnl.js +151 -0
  131. package/gltf-feature-gpu-instancing-2e_CFQnl.js.map +1 -0
  132. package/gltf-feature-lights-punctual-DDDg4j0U.js +71 -0
  133. package/gltf-feature-lights-punctual-DDDg4j0U.js.map +1 -0
  134. package/gltf-feature-meshopt-Des96YFI.js +84 -0
  135. package/gltf-feature-meshopt-Des96YFI.js.map +1 -0
  136. package/gltf-feature-morph-CKCw6tkX.js +29 -0
  137. package/gltf-feature-morph-CKCw6tkX.js.map +1 -0
  138. package/gltf-feature-skeleton-D8hWLqi2.js +36 -0
  139. package/gltf-feature-skeleton-D8hWLqi2.js.map +1 -0
  140. package/gltf-feature-variants-Ds6v9byg.js +17 -0
  141. package/gltf-feature-variants-Ds6v9byg.js.map +1 -0
  142. package/gltf-feature-xmp-BUfq_IVG.js +15 -0
  143. package/gltf-feature-xmp-BUfq_IVG.js.map +1 -0
  144. package/gltf-glb-parser-D6UZWFuC.js +27 -0
  145. package/gltf-glb-parser-D6UZWFuC.js.map +1 -0
  146. package/gltf-interleave-DGnUlz28.js +241 -0
  147. package/gltf-interleave-DGnUlz28.js.map +1 -0
  148. package/gltf-pbr-builder-ext-BFOxOCnQ.js +85 -0
  149. package/gltf-pbr-builder-ext-BFOxOCnQ.js.map +1 -0
  150. package/gltf-variants-DFbr8EES.js +88 -0
  151. package/gltf-variants-DFbr8EES.js.map +1 -0
  152. package/gradient-block-DL_60sDc.js +50 -0
  153. package/gradient-block-DL_60sDc.js.map +1 -0
  154. package/gs-picking-pipeline-DzfMASL9.js +280 -0
  155. package/gs-picking-pipeline-DzfMASL9.js.map +1 -0
  156. package/height-to-normal-block-DhPHkDFg.js +65 -0
  157. package/height-to-normal-block-DhPHkDFg.js.map +1 -0
  158. package/ibl-fragment-DqQVi8k0.js +91 -0
  159. package/ibl-fragment-DqQVi8k0.js.map +1 -0
  160. package/ibl-skybox-wgsl-DCah0kWV.js +13 -0
  161. package/ibl-skybox-wgsl-DCah0kWV.js.map +1 -0
  162. package/image-processing-block-DwrhhmuF.js +40 -0
  163. package/image-processing-block-DwrhhmuF.js.map +1 -0
  164. package/image-source-BuMJgd9-.js +17 -0
  165. package/image-source-BuMJgd9-.js.map +1 -0
  166. package/index-C8HOR2sB.js +19222 -0
  167. package/index-C8HOR2sB.js.map +1 -0
  168. package/index.d.ts +4611 -0
  169. package/index.js +309 -0
  170. package/index.js.map +1 -0
  171. package/input-block-DgAJBzN_.js +109 -0
  172. package/input-block-DgAJBzN_.js.map +1 -0
  173. package/instances-block-BaSSiz8m.js +12 -0
  174. package/instances-block-BaSSiz8m.js.map +1 -0
  175. package/iridescence-block-B0pRFoOU.js +67 -0
  176. package/iridescence-block-B0pRFoOU.js.map +1 -0
  177. package/iridescence-fragment-Gymp7or5.js +243 -0
  178. package/iridescence-fragment-Gymp7or5.js.map +1 -0
  179. package/length-block-ChOkeiHR.js +11 -0
  180. package/length-block-ChOkeiHR.js.map +1 -0
  181. package/lerp-block-DjI2SfmI.js +18 -0
  182. package/lerp-block-DjI2SfmI.js.map +1 -0
  183. package/light-block-B11ew7FA.js +123 -0
  184. package/light-block-B11ew7FA.js.map +1 -0
  185. package/light-information-VJbW0jbs.js +19 -0
  186. package/light-information-VJbW0jbs.js.map +1 -0
  187. package/loop-block-Bb23EOMb.js +71 -0
  188. package/loop-block-Bb23EOMb.js.map +1 -0
  189. package/manifold-AS8POaOr.js +3022 -0
  190. package/manifold-AS8POaOr.js.map +1 -0
  191. package/manifold-RCa7RkKz.js +5 -0
  192. package/manifold-RCa7RkKz.js.map +1 -0
  193. package/matrix-blocks-acWn_V6g.js +51 -0
  194. package/matrix-blocks-acWn_V6g.js.map +1 -0
  195. package/max-block-CjFgljZ7.js +6 -0
  196. package/max-block-CjFgljZ7.js.map +1 -0
  197. package/mesh-attribute-exists-block-BfK8UiSL.js +44 -0
  198. package/mesh-attribute-exists-block-BfK8UiSL.js.map +1 -0
  199. package/mesh-features-BLENkYVt.js +341 -0
  200. package/mesh-features-BLENkYVt.js.map +1 -0
  201. package/min-block-CHtBngNl.js +6 -0
  202. package/min-block-CHtBngNl.js.map +1 -0
  203. package/mod-block-Ceizv8Y7.js +6 -0
  204. package/mod-block-Ceizv8Y7.js.map +1 -0
  205. package/morph-fragment-DOVo70gP.js +59 -0
  206. package/morph-fragment-DOVo70gP.js.map +1 -0
  207. package/morph-targets-55z342ZB.js +35 -0
  208. package/morph-targets-55z342ZB.js.map +1 -0
  209. package/multilight-wgsl-BGyiIOp3.js +112 -0
  210. package/multilight-wgsl-BGyiIOp3.js.map +1 -0
  211. package/multiply-block-DaXLJ7Ud.js +6 -0
  212. package/multiply-block-DaXLJ7Ud.js.map +1 -0
  213. package/negate-block-9CSLc5pM.js +6 -0
  214. package/negate-block-9CSLc5pM.js.map +1 -0
  215. package/nlerp-block-BNK1adIb.js +21 -0
  216. package/nlerp-block-BNK1adIb.js.map +1 -0
  217. package/node-env-BPZXZzBf.js +39 -0
  218. package/node-env-BPZXZzBf.js.map +1 -0
  219. package/node-registry-DwgC4yth.js +190 -0
  220. package/node-registry-DwgC4yth.js.map +1 -0
  221. package/node-registry-extra-advanced-2DJVt67-.js +45 -0
  222. package/node-registry-extra-advanced-2DJVt67-.js.map +1 -0
  223. package/node-registry-extra-compat-Dhrw8fDQ.js +41 -0
  224. package/node-registry-extra-compat-Dhrw8fDQ.js.map +1 -0
  225. package/node-registry-extra-math-CsAHvIZo.js +49 -0
  226. package/node-registry-extra-math-CsAHvIZo.js.map +1 -0
  227. package/node-registry-extra-procedural-5pLQ3Bhz.js +45 -0
  228. package/node-registry-extra-procedural-5pLQ3Bhz.js.map +1 -0
  229. package/node-renderable-DlLIdBmd.js +269 -0
  230. package/node-renderable-DlLIdBmd.js.map +1 -0
  231. package/node-shadow-DKrcqmNg.js +122 -0
  232. package/node-shadow-DKrcqmNg.js.map +1 -0
  233. package/node-snippet-DUMm9qEO.js +22 -0
  234. package/node-snippet-DUMm9qEO.js.map +1 -0
  235. package/normal-blend-block-BfH_nBoj.js +29 -0
  236. package/normal-blend-block-BfH_nBoj.js.map +1 -0
  237. package/normal-map-fragment-DpsIXrJf.js +38 -0
  238. package/normal-map-fragment-DpsIXrJf.js.map +1 -0
  239. package/normalize-block-F2bLNj9K.js +6 -0
  240. package/normalize-block-F2bLNj9K.js.map +1 -0
  241. package/oneminus-block-BP9x4Dc3.js +6 -0
  242. package/oneminus-block-BP9x4Dc3.js.map +1 -0
  243. package/opposite-block-Cnqmm-lH.js +6 -0
  244. package/opposite-block-Cnqmm-lH.js.map +1 -0
  245. package/package.json +26 -0
  246. package/panner-block-BwMQq-6Y.js +13 -0
  247. package/panner-block-BwMQq-6Y.js.map +1 -0
  248. package/parse-camera-DM3oJJeT.js +23 -0
  249. package/parse-camera-DM3oJJeT.js.map +1 -0
  250. package/pbr-aces-wgsl-HpiQHGN_.js +13 -0
  251. package/pbr-aces-wgsl-HpiQHGN_.js.map +1 -0
  252. package/pbr-metallic-roughness-block-full-6vMm1Jk6.js +763 -0
  253. package/pbr-metallic-roughness-block-full-6vMm1Jk6.js.map +1 -0
  254. package/pbr-metallic-roughness-block-h_KAOZrW.js +104 -0
  255. package/pbr-metallic-roughness-block-h_KAOZrW.js.map +1 -0
  256. package/pbr-mr-helper-core-CIwm-T1G.js +237 -0
  257. package/pbr-mr-helper-core-CIwm-T1G.js.map +1 -0
  258. package/pbr-refraction-DGmMSa2v.js +17 -0
  259. package/pbr-refraction-DGmMSa2v.js.map +1 -0
  260. package/pbr-renderable-BJxUtPBb.js +961 -0
  261. package/pbr-renderable-BJxUtPBb.js.map +1 -0
  262. package/pbr-shadow-fragment-LO9SlbJj.js +14 -0
  263. package/pbr-shadow-fragment-LO9SlbJj.js.map +1 -0
  264. package/pbr-template-ext-8q7BcTDf.js +88 -0
  265. package/pbr-template-ext-8q7BcTDf.js.map +1 -0
  266. package/pbr-tracking-B3alzn91.js +31 -0
  267. package/pbr-tracking-B3alzn91.js.map +1 -0
  268. package/pbr-transmission-ext-BxW4CEGu.js +581 -0
  269. package/pbr-transmission-ext-BxW4CEGu.js.map +1 -0
  270. package/perturb-normal-0Q8EM9ig.js +39 -0
  271. package/perturb-normal-0Q8EM9ig.js.map +1 -0
  272. package/posterize-block-DfdKsbEf.js +28 -0
  273. package/posterize-block-DfdKsbEf.js.map +1 -0
  274. package/pow-block-DI5ICzhc.js +13 -0
  275. package/pow-block-DI5ICzhc.js.map +1 -0
  276. package/random-number-block-2OyRYljF.js +15 -0
  277. package/random-number-block-2OyRYljF.js.map +1 -0
  278. package/reciprocal-block-Ck3CW-j-.js +14 -0
  279. package/reciprocal-block-Ck3CW-j-.js.map +1 -0
  280. package/reflect-block-CizpzrX4.js +12 -0
  281. package/reflect-block-CizpzrX4.js.map +1 -0
  282. package/reflectance-fragment-BCrgPmrt.js +143 -0
  283. package/reflectance-fragment-BCrgPmrt.js.map +1 -0
  284. package/reflection-block-DqcwyYqr.js +12 -0
  285. package/reflection-block-DqcwyYqr.js.map +1 -0
  286. package/reflection-texture-base-block-1xmJ0HDj.js +10 -0
  287. package/reflection-texture-base-block-1xmJ0HDj.js.map +1 -0
  288. package/reflection-texture-block-C3QtzoV8.js +60 -0
  289. package/reflection-texture-block-C3QtzoV8.js.map +1 -0
  290. package/refract-block-HHiAk-7U.js +13 -0
  291. package/refract-block-HHiAk-7U.js.map +1 -0
  292. package/refraction-block-U8y6XiXs.js +11 -0
  293. package/refraction-block-U8y6XiXs.js.map +1 -0
  294. package/refraction-dispersion-wgsl-DdQCyyO1.js +16 -0
  295. package/refraction-dispersion-wgsl-DdQCyyO1.js.map +1 -0
  296. package/remap-block-DxK1W1vp.js +27 -0
  297. package/remap-block-DxK1W1vp.js.map +1 -0
  298. package/replace-color-block-1m--hiru.js +17 -0
  299. package/replace-color-block-1m--hiru.js.map +1 -0
  300. package/rgbd-decode-DCvzUYeI.js +110 -0
  301. package/rgbd-decode-DCvzUYeI.js.map +1 -0
  302. package/rotate2d-block-nEe1N2MJ.js +15 -0
  303. package/rotate2d-block-nEe1N2MJ.js.map +1 -0
  304. package/scale-block-C5Z8159G.js +13 -0
  305. package/scale-block-C5Z8159G.js.map +1 -0
  306. package/scene-material-swap-C2ykv55W.js +34 -0
  307. package/scene-material-swap-C2ykv55W.js.map +1 -0
  308. package/screen-size-block-BVNnOvE8.js +21 -0
  309. package/screen-size-block-BVNnOvE8.js.map +1 -0
  310. package/screen-space-block-CwaxdfSe.js +28 -0
  311. package/screen-space-block-CwaxdfSe.js.map +1 -0
  312. package/shader-renderable-D-6796KR.js +531 -0
  313. package/shader-renderable-D-6796KR.js.map +1 -0
  314. package/shadow-fragment-core-DHN2G6FI.js +110 -0
  315. package/shadow-fragment-core-DHN2G6FI.js.map +1 -0
  316. package/shadow-map-CQNQC-Fw.js +13 -0
  317. package/shadow-map-CQNQC-Fw.js.map +1 -0
  318. package/sheen-block-BugfJqK3.js +12 -0
  319. package/sheen-block-BugfJqK3.js.map +1 -0
  320. package/sheen-fragment-Dze2f7XJ.js +215 -0
  321. package/sheen-fragment-Dze2f7XJ.js.map +1 -0
  322. package/simplex-perlin-3d-block-CcMtofzV.js +58 -0
  323. package/simplex-perlin-3d-block-CcMtofzV.js.map +1 -0
  324. package/singlelight-directional-wgsl-CmUDZxwz.js +39 -0
  325. package/singlelight-directional-wgsl-CmUDZxwz.js.map +1 -0
  326. package/singlelight-hemispheric-wgsl-t-83IP_s.js +40 -0
  327. package/singlelight-hemispheric-wgsl-t-83IP_s.js.map +1 -0
  328. package/singlelight-point-wgsl-CLzULIYV.js +45 -0
  329. package/singlelight-point-wgsl-CLzULIYV.js.map +1 -0
  330. package/singlelight-spot-wgsl-DEEUrfVM.js +47 -0
  331. package/singlelight-spot-wgsl-DEEUrfVM.js.map +1 -0
  332. package/skeleton-fragment-B_XlFbtx.js +71 -0
  333. package/skeleton-fragment-B_XlFbtx.js.map +1 -0
  334. package/skybox-renderable-DDwzu-PT.js +92 -0
  335. package/skybox-renderable-DDwzu-PT.js.map +1 -0
  336. package/skybox.vertex-DJgi072W.js +5 -0
  337. package/skybox.vertex-DJgi072W.js.map +1 -0
  338. package/smoothstep-block-Di4t37x-.js +15 -0
  339. package/smoothstep-block-Di4t37x-.js.map +1 -0
  340. package/splat-ply-compressed-BahdBG1r.js +394 -0
  341. package/splat-ply-compressed-BahdBG1r.js.map +1 -0
  342. package/standard-renderable-GjxL9xSf.js +636 -0
  343. package/standard-renderable-GjxL9xSf.js.map +1 -0
  344. package/std-ambient-fragment-BoUsD06w.js +37 -0
  345. package/std-ambient-fragment-BoUsD06w.js.map +1 -0
  346. package/std-cube-reflection-fragment-ulqc3bsP.js +31 -0
  347. package/std-cube-reflection-fragment-ulqc3bsP.js.map +1 -0
  348. package/std-emissive-fragment-DNGj1HdQ.js +40 -0
  349. package/std-emissive-fragment-DNGj1HdQ.js.map +1 -0
  350. package/std-lightmap-fragment-Bqj89aIe.js +37 -0
  351. package/std-lightmap-fragment-Bqj89aIe.js.map +1 -0
  352. package/std-opacity-fragment-KuPh5N2Z.js +37 -0
  353. package/std-opacity-fragment-KuPh5N2Z.js.map +1 -0
  354. package/std-reflection-fragment-BA5Ghn_M.js +57 -0
  355. package/std-reflection-fragment-BA5Ghn_M.js.map +1 -0
  356. package/std-shadow-fragment-FNQfrJuC.js +8 -0
  357. package/std-shadow-fragment-FNQfrJuC.js.map +1 -0
  358. package/std-specular-fragment-CE-6scqd.js +37 -0
  359. package/std-specular-fragment-CE-6scqd.js.map +1 -0
  360. package/std-tracking-CNKZ-hJN.js +15 -0
  361. package/std-tracking-CNKZ-hJN.js.map +1 -0
  362. package/step-block-BkywzTYm.js +13 -0
  363. package/step-block-BkywzTYm.js.map +1 -0
  364. package/storage-read-block-BdzhJfln.js +25 -0
  365. package/storage-read-block-BdzhJfln.js.map +1 -0
  366. package/storage-write-block-DjLKZ0Ro.js +11 -0
  367. package/storage-write-block-DjLKZ0Ro.js.map +1 -0
  368. package/subsurface-block-CBhxT9ui.js +12 -0
  369. package/subsurface-block-CBhxT9ui.js.map +1 -0
  370. package/subsurface-fragment-liM3y2-P.js +158 -0
  371. package/subsurface-fragment-liM3y2-P.js.map +1 -0
  372. package/subtract-block-NPfKvzQP.js +6 -0
  373. package/subtract-block-NPfKvzQP.js.map +1 -0
  374. package/swapchain-overlay-DcCSFDp7.js +35 -0
  375. package/swapchain-overlay-DcCSFDp7.js.map +1 -0
  376. package/tbn-block-ByOI6Y43.js +43 -0
  377. package/tbn-block-ByOI6Y43.js.map +1 -0
  378. package/teleport-in-block-BMa17cqq.js +10 -0
  379. package/teleport-in-block-BMa17cqq.js.map +1 -0
  380. package/teleport-out-block-5AkB25H6.js +19 -0
  381. package/teleport-out-block-5AkB25H6.js.map +1 -0
  382. package/texture-block-rr21KIL_.js +70 -0
  383. package/texture-block-rr21KIL_.js.map +1 -0
  384. package/thin-instance-fragment-hsv-RyDs.js +69 -0
  385. package/thin-instance-fragment-hsv-RyDs.js.map +1 -0
  386. package/thin-instance-gpu-C9Gv_Z1w.js +62 -0
  387. package/thin-instance-gpu-C9Gv_Z1w.js.map +1 -0
  388. package/tracking-primitives-wgdBY85t.js +82 -0
  389. package/tracking-primitives-wgdBY85t.js.map +1 -0
  390. package/transform-block-DbRph9JI.js +32 -0
  391. package/transform-block-DbRph9JI.js.map +1 -0
  392. package/trigonometry-block-BYQcTHiD.js +36 -0
  393. package/trigonometry-block-BYQcTHiD.js.map +1 -0
  394. package/triplanar-block-BZHkD9hX.js +148 -0
  395. package/triplanar-block-BZHkD9hX.js.map +1 -0
  396. package/twirl-block-78WtdiBd.js +39 -0
  397. package/twirl-block-78WtdiBd.js.map +1 -0
  398. package/unlit-fragment-BIlhJpz6.js +43 -0
  399. package/unlit-fragment-BIlhJpz6.js.map +1 -0
  400. package/uv-transform-fragment-hYujGpZg.js +47 -0
  401. package/uv-transform-fragment-hYujGpZg.js.map +1 -0
  402. package/vector-merger-CrW-ONB0.js +43 -0
  403. package/vector-merger-CrW-ONB0.js.map +1 -0
  404. package/vector-splitter-BoJuHrAU.js +34 -0
  405. package/vector-splitter-BoJuHrAU.js.map +1 -0
  406. package/vertex-output-Cvft64y0.js +14 -0
  407. package/vertex-output-Cvft64y0.js.map +1 -0
  408. package/view-direction-CWVucfnT.js +12 -0
  409. package/view-direction-CWVucfnT.js.map +1 -0
  410. package/voronoi-noise-block-iNQxa_Ls.js +43 -0
  411. package/voronoi-noise-block-iNQxa_Ls.js.map +1 -0
  412. package/wave-block-CY_mk1ec.js +41 -0
  413. package/wave-block-CY_mk1ec.js.map +1 -0
  414. package/wgsl-helpers-DyzNzCeE.js +48 -0
  415. package/wgsl-helpers-DyzNzCeE.js.map +1 -0
  416. package/worley-noise-3d-block-CyR2-k4s.js +58 -0
  417. package/worley-noise-3d-block-CyR2-k4s.js.map +1 -0
@@ -0,0 +1 @@
1
+ {"version":3,"file":"morph-targets-55z342ZB.js","sources":["../src/material/node/blocks/morph-targets.ts"],"sourcesContent":["/** MorphTargetsBlock — applies per-target position/normal deltas sampled\n * from the morph-atlas texture.\n *\n * Inputs: position (vec3), normal (vec3), tangent (vec4), uv (vec2).\n * Outputs: positionOutput, normalOutput, tangentOutput, uvOutput.\n *\n * Only position and normal are currently wired to a real morph accumulation;\n * tangent/uv/uv2 are pass-through (Lite's morph atlas carries only pos/norm\n * deltas — see morph/create-morph-targets.ts). If a graph consumes\n * tangentOutput/uvOutput we simply return the base input.\n *\n * The block sets `state.usesMorphTargets`; node-pipeline.ts adds the\n * `morphTargets` texture + `morph` UBO bindings, emits the struct +\n * helper functions at module scope, and wires `@builtin(vertex_index)`\n * through as `vertexIndex` so the helpers can locate this vertex's row.\n */\n\nimport type { BlockEmitter, NodeExpr, NodeValueType } from \"../node-types.js\";\n\nconst PASSTHROUGH_KINDS = new Set([\"tangent\", \"uv\", \"uv2\"]);\n\nexport const emitter: BlockEmitter = {\n className: \"MorphTargetsBlock\",\n stage: \"vertex\",\n emit(block, outputName, stage, state, ctx) {\n state.usesMorphTargets = true;\n const kind = outputName.replace(/Output$/, \"\"); // position | normal | tangent | uv\n const input = block.inputs.get(kind);\n if (!input?.source) {\n return fallback(kind);\n }\n const v = ctx.resolve(block, kind, stage, state);\n if (kind === \"position\") {\n const base = ctx.cast(v, \"vec3f\").expr;\n return { expr: `nme_morphPosition(${base}, vertexIndex)`, type: \"vec3f\" };\n }\n if (kind === \"normal\") {\n const base = ctx.cast(v, \"vec3f\").expr;\n return { expr: `nme_morphNormal(${base}, vertexIndex)`, type: \"vec3f\" };\n }\n // Tangent/uv/uv2 — no delta bands stored; pass through.\n if (PASSTHROUGH_KINDS.has(kind)) {\n return v;\n }\n return v;\n },\n};\n\nfunction fallback(kind: string): NodeExpr {\n const type: NodeValueType = kind === \"uv\" || kind === \"uv2\" ? \"vec2f\" : kind === \"tangent\" ? \"vec4f\" : \"vec3f\";\n const zero = type === \"vec2f\" ? \"vec2<f32>(0.0)\" : type === \"vec4f\" ? \"vec4<f32>(0.0)\" : \"vec3<f32>(0.0)\";\n return { expr: zero, type };\n}\n"],"names":[],"mappings":"AAmBA,MAAM,oBAAoB,oBAAI,IAAI,CAAC,WAAW,MAAM,KAAK,CAAC;AAEnD,MAAM,UAAwB;AAAA,EACjC,WAAW;AAAA,EACX,OAAO;AAAA,EACP,KAAK,OAAO,YAAY,OAAO,OAAO,KAAK;AACvC,UAAM,mBAAmB;AACzB,UAAM,OAAO,WAAW,QAAQ,WAAW,EAAE;AAC7C,UAAM,QAAQ,MAAM,OAAO,IAAI,IAAI;AACnC,QAAI,EAAC,+BAAO,SAAQ;AAChB,aAAO,SAAS,IAAI;AAAA,IACxB;AACA,UAAM,IAAI,IAAI,QAAQ,OAAO,MAAM,OAAO,KAAK;AAC/C,QAAI,SAAS,YAAY;AACrB,YAAM,OAAO,IAAI,KAAK,GAAG,OAAO,EAAE;AAClC,aAAO,EAAE,MAAM,qBAAqB,IAAI,kBAAkB,MAAM,QAAA;AAAA,IACpE;AACA,QAAI,SAAS,UAAU;AACnB,YAAM,OAAO,IAAI,KAAK,GAAG,OAAO,EAAE;AAClC,aAAO,EAAE,MAAM,mBAAmB,IAAI,kBAAkB,MAAM,QAAA;AAAA,IAClE;AAEA,QAAI,kBAAkB,IAAI,IAAI,GAAG;AAC7B,aAAO;AAAA,IACX;AACA,WAAO;AAAA,EACX;AACJ;AAEA,SAAS,SAAS,MAAwB;AACtC,QAAM,OAAsB,SAAS,QAAQ,SAAS,QAAQ,UAAU,SAAS,YAAY,UAAU;AACvG,QAAM,OAAO,SAAS,UAAU,mBAAmB,SAAS,UAAU,mBAAmB;AACzF,SAAO,EAAE,MAAM,MAAM,KAAA;AACzB;"}
@@ -0,0 +1,112 @@
1
+ import { M as MAX_LIGHTS } from "./index-C8HOR2sB.js";
2
+ function MULTI_LIGHT_STRUCTS() {
3
+ return `
4
+ struct LightEntry {
5
+ vLightData: vec4<f32>,
6
+ vLightDiffuse: vec4<f32>,
7
+ vLightSpecular: vec4<f32>,
8
+ vLightDirection: vec4<f32>,
9
+ };
10
+ struct lightsUniforms {
11
+ count: u32, _p0: u32, _p1: u32, _p2: u32,
12
+ lights: array<LightEntry, ${MAX_LIGHTS}>,
13
+ };
14
+ `;
15
+ }
16
+ const COMPUTE_PBR_LIGHT = `
17
+ struct PbrLightResult { L: vec3<f32>, NdotL: f32, atten: f32, color: vec3<f32>, specColor: vec3<f32>, isHemi: bool };
18
+ fn computePbrLight(entry: LightEntry, N: vec3<f32>, worldPos: vec3<f32>, lightFalloffMode: f32) -> PbrLightResult {
19
+ var r: PbrLightResult;
20
+ let t = u32(entry.vLightData.w);
21
+ r.isHemi = t == 3u;
22
+ r.specColor = entry.vLightDiffuse.rgb;
23
+ if (t == 3u) {
24
+ r.L = normalize(entry.vLightData.xyz);
25
+ r.NdotL = dot(N, r.L) * 0.5 + 0.5;
26
+ r.atten = 1.0;
27
+ r.color = mix(entry.vLightDirection.xyz, entry.vLightDiffuse.rgb, r.NdotL);
28
+ return r;
29
+ }
30
+ if (t == 1u) {
31
+ r.L = normalize(-entry.vLightData.xyz);
32
+ r.atten = 1.0;
33
+ } else {
34
+ let toLight = entry.vLightData.xyz - worldPos;
35
+ let d2 = dot(toLight, toLight);
36
+ let dist = sqrt(d2);
37
+ r.L = toLight / max(dist, 0.0001);
38
+ let physicalFalloff = lightFalloffMode >= 0.5;
39
+ let rangeAtt = select(max(0.0, 1.0 - dist / entry.vLightDiffuse.a), 1.0 / max(d2, 0.0000001), physicalFalloff);
40
+ if (t == 2u) {
41
+ let cosHalfAngle = entry.vLightDirection.w;
42
+ let c = dot(-entry.vLightDirection.xyz, r.L);
43
+ let standardDirFalloff = select(0.0, max(0.0, pow(max(c, 0.0), entry.vLightSpecular.a)), c >= cosHalfAngle);
44
+ let kappa = 6.64385618977 / max(1.0 - cosHalfAngle, 0.0001);
45
+ let physicalDirFalloff = exp2(kappa * (c - 1.0));
46
+ r.atten = rangeAtt * select(standardDirFalloff, physicalDirFalloff, physicalFalloff);
47
+ } else {
48
+ r.atten = rangeAtt;
49
+ }
50
+ }
51
+ r.NdotL = max(dot(N, r.L), 0.0);
52
+ r.color = entry.vLightDiffuse.rgb;
53
+ return r;
54
+ }
55
+ `;
56
+ function getMultiLightLoop() {
57
+ return `var directDiffuse = vec3<f32>(0.0);
58
+ var directSpecular = vec3<f32>(0.0);
59
+ // BJS direct-light specular: roughness is clamped by the geometric AA factor
60
+ // BEFORE being squared (matches BJS pbrDirectLightingFunctions.fx line 103).
61
+ // The IBL-path alphaG already has AA_factor_y additively baked in; direct
62
+ // specular uses its own squaring after max(roughness, AA_factor_x).
63
+ let directRoughness = max(roughness, AA_factor_x);
64
+ let directAlphaG = directRoughness * directRoughness + 0.0005;
65
+ var shadowFactors = array<f32, ${MAX_LIGHTS}>(${new Array(MAX_LIGHTS).fill("1.0").join(", ")});
66
+ let lc = min(mesh.lc, ${MAX_LIGHTS}u);
67
+ /*AS*/
68
+ // First-light aliases — kept at directLightBlock scope so the AD slot below
69
+ // (clearcoat / sheen / subsurface) sees the same single-light variable names
70
+ // it was originally written against. Multi-light direct contributions
71
+ // for those ancillary BRDFs are not yet supported (single-light parity only).
72
+ let lightIndex0 = mli(0u);
73
+ let entry0 = lights.lights[lightIndex0];
74
+ let pl0 = computePbrLight(entry0, N, input.worldPos, material.lightFalloffMode);
75
+ let L = pl0.L;
76
+ let NdotL = pl0.NdotL;
77
+ let lightColor = pl0.specColor;
78
+ let lightAtten = pl0.atten * shadowFactors[lightIndex0];
79
+ let H = normalize(V + L);
80
+ let NdotH = clamp(dot(N, H), 0.0000001, 1.0);
81
+ let VdotH = saturate(dot(V, H));
82
+ for (var li = 0u; li < lc; li++) {
83
+ var pl: PbrLightResult;
84
+ let lightIndex = mli(li);
85
+ if (li == 0u) { pl = pl0; } else { pl = computePbrLight(lights.lights[lightIndex], N, input.worldPos, material.lightFalloffMode); }
86
+ let sf = shadowFactors[lightIndex];
87
+ if (pl.isHemi) {
88
+ directDiffuse += pl.color * surfaceAlbedo * material.directIntensity * sf;
89
+ } else {
90
+ directDiffuse += surfaceAlbedo * (1.0 / PI) * pl.NdotL * pl.color * pl.atten * material.directIntensity * sf;
91
+ }
92
+ // Specular uses pl.NdotL (hemispheric 0.5+0.5*dot for hemi, max(dot,0) for others)
93
+ // and pl.specColor (un-mixed light diffuse — matches single-light fast path
94
+ // and Std's LIGHTING_FN which uses vLightSpecular for the specular bounce).
95
+ if (pl.NdotL > 0.0 && pl.atten > 0.0) {
96
+ let specH = normalize(V + pl.L);
97
+ let specNdotH = clamp(dot(N, specH), 0.0000001, 1.0);
98
+ let specVdotH = saturate(dot(V, specH));
99
+ let D = distributionGGX(specNdotH, directAlphaG);
100
+ let G = geometrySmithGGX(pl.NdotL, NdotV, directAlphaG);
101
+ let coloredFresnel = fresnelSchlick(specVdotH, colorF0, colorF90);
102
+ directSpecular += coloredFresnel * D * G * pl.NdotL * pl.specColor * pl.atten * material.directIntensity * sf;
103
+ }
104
+ }
105
+ /*AD*/`;
106
+ }
107
+ export {
108
+ COMPUTE_PBR_LIGHT,
109
+ MULTI_LIGHT_STRUCTS,
110
+ getMultiLightLoop
111
+ };
112
+ //# sourceMappingURL=multilight-wgsl-BGyiIOp3.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multilight-wgsl-BGyiIOp3.js","sources":["../src/material/pbr/fragments/multilight-wgsl.ts"],"sourcesContent":["/** Multi-light WGSL helpers for PBR template.\n * Separated into its own module so non-shadow PBR scenes don't pay the bundle cost. */\n\nimport { MAX_LIGHTS } from \"../../../light/types.js\";\n\nexport function MULTI_LIGHT_STRUCTS(): string {\n return `\nstruct LightEntry {\nvLightData: vec4<f32>,\nvLightDiffuse: vec4<f32>,\nvLightSpecular: vec4<f32>,\nvLightDirection: vec4<f32>,\n};\nstruct lightsUniforms {\ncount: u32, _p0: u32, _p1: u32, _p2: u32,\nlights: array<LightEntry, ${MAX_LIGHTS}>,\n};\n`;\n}\n\nexport const COMPUTE_PBR_LIGHT = `\nstruct PbrLightResult { L: vec3<f32>, NdotL: f32, atten: f32, color: vec3<f32>, specColor: vec3<f32>, isHemi: bool };\nfn computePbrLight(entry: LightEntry, N: vec3<f32>, worldPos: vec3<f32>, lightFalloffMode: f32) -> PbrLightResult {\nvar r: PbrLightResult;\nlet t = u32(entry.vLightData.w);\nr.isHemi = t == 3u;\nr.specColor = entry.vLightDiffuse.rgb;\nif (t == 3u) {\nr.L = normalize(entry.vLightData.xyz);\nr.NdotL = dot(N, r.L) * 0.5 + 0.5;\nr.atten = 1.0;\nr.color = mix(entry.vLightDirection.xyz, entry.vLightDiffuse.rgb, r.NdotL);\nreturn r;\n}\nif (t == 1u) {\nr.L = normalize(-entry.vLightData.xyz);\nr.atten = 1.0;\n} else {\nlet toLight = entry.vLightData.xyz - worldPos;\nlet d2 = dot(toLight, toLight);\nlet dist = sqrt(d2);\nr.L = toLight / max(dist, 0.0001);\n let physicalFalloff = lightFalloffMode >= 0.5;\n let rangeAtt = select(max(0.0, 1.0 - dist / entry.vLightDiffuse.a), 1.0 / max(d2, 0.0000001), physicalFalloff);\n if (t == 2u) {\n let cosHalfAngle = entry.vLightDirection.w;\n let c = dot(-entry.vLightDirection.xyz, r.L);\n let standardDirFalloff = select(0.0, max(0.0, pow(max(c, 0.0), entry.vLightSpecular.a)), c >= cosHalfAngle);\n let kappa = 6.64385618977 / max(1.0 - cosHalfAngle, 0.0001);\n let physicalDirFalloff = exp2(kappa * (c - 1.0));\n r.atten = rangeAtt * select(standardDirFalloff, physicalDirFalloff, physicalFalloff);\n } else {\n r.atten = rangeAtt;\n }\n}\nr.NdotL = max(dot(N, r.L), 0.0);\nr.color = entry.vLightDiffuse.rgb;\nreturn r;\n}\n`;\n\n/** The multi-light direct lighting loop WGSL block for the PBR template.\n * Contains slot markers AD and BL for fragment injection.\n * Generated at call time because MAX_LIGHTS is runtime-configurable via `setMaxLights`. */\nexport function getMultiLightLoop(): string {\n return `var directDiffuse = vec3<f32>(0.0);\nvar directSpecular = vec3<f32>(0.0);\n// BJS direct-light specular: roughness is clamped by the geometric AA factor\n// BEFORE being squared (matches BJS pbrDirectLightingFunctions.fx line 103).\n// The IBL-path alphaG already has AA_factor_y additively baked in; direct\n// specular uses its own squaring after max(roughness, AA_factor_x).\nlet directRoughness = max(roughness, AA_factor_x);\nlet directAlphaG = directRoughness * directRoughness + 0.0005;\nvar shadowFactors = array<f32, ${MAX_LIGHTS}>(${new Array(MAX_LIGHTS).fill(\"1.0\").join(\", \")});\nlet lc = min(mesh.lc, ${MAX_LIGHTS}u);\n/*AS*/\n// First-light aliases — kept at directLightBlock scope so the AD slot below\n// (clearcoat / sheen / subsurface) sees the same single-light variable names\n// it was originally written against. Multi-light direct contributions\n// for those ancillary BRDFs are not yet supported (single-light parity only).\nlet lightIndex0 = mli(0u);\nlet entry0 = lights.lights[lightIndex0];\nlet pl0 = computePbrLight(entry0, N, input.worldPos, material.lightFalloffMode);\nlet L = pl0.L;\nlet NdotL = pl0.NdotL;\nlet lightColor = pl0.specColor;\nlet lightAtten = pl0.atten * shadowFactors[lightIndex0];\nlet H = normalize(V + L);\nlet NdotH = clamp(dot(N, H), 0.0000001, 1.0);\nlet VdotH = saturate(dot(V, H));\nfor (var li = 0u; li < lc; li++) {\nvar pl: PbrLightResult;\nlet lightIndex = mli(li);\nif (li == 0u) { pl = pl0; } else { pl = computePbrLight(lights.lights[lightIndex], N, input.worldPos, material.lightFalloffMode); }\nlet sf = shadowFactors[lightIndex];\nif (pl.isHemi) {\ndirectDiffuse += pl.color * surfaceAlbedo * material.directIntensity * sf;\n} else {\ndirectDiffuse += surfaceAlbedo * (1.0 / PI) * pl.NdotL * pl.color * pl.atten * material.directIntensity * sf;\n}\n// Specular uses pl.NdotL (hemispheric 0.5+0.5*dot for hemi, max(dot,0) for others)\n// and pl.specColor (un-mixed light diffuse — matches single-light fast path\n// and Std's LIGHTING_FN which uses vLightSpecular for the specular bounce).\nif (pl.NdotL > 0.0 && pl.atten > 0.0) {\nlet specH = normalize(V + pl.L);\nlet specNdotH = clamp(dot(N, specH), 0.0000001, 1.0);\nlet specVdotH = saturate(dot(V, specH));\nlet D = distributionGGX(specNdotH, directAlphaG);\nlet G = geometrySmithGGX(pl.NdotL, NdotV, directAlphaG);\nlet coloredFresnel = fresnelSchlick(specVdotH, colorF0, colorF90);\ndirectSpecular += coloredFresnel * D * G * pl.NdotL * pl.specColor * pl.atten * material.directIntensity * sf;\n}\n}\n/*AD*/`;\n}\n"],"names":[],"mappings":";AAKO,SAAS,sBAA8B;AAC1C,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,4BASiB,UAAU;AAAA;AAAA;AAGtC;AAEO,MAAM,oBAAoB;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AA4C1B,SAAS,oBAA4B;AACxC,SAAO;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA,iCAQsB,UAAU,KAAK,IAAI,MAAM,UAAU,EAAE,KAAK,KAAK,EAAE,KAAK,IAAI,CAAC;AAAA,wBACpE,UAAU;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAAA;AAwClC;"}
@@ -0,0 +1,6 @@
1
+ import { b as binaryEmitter } from "./_math-factory-C-QqW-Wi.js";
2
+ const emitter = binaryEmitter("MultiplyBlock", (l, r) => `${l} * ${r}`);
3
+ export {
4
+ emitter
5
+ };
6
+ //# sourceMappingURL=multiply-block-DaXLJ7Ud.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"multiply-block-DaXLJ7Ud.js","sources":["../src/material/node/blocks/multiply-block.ts"],"sourcesContent":["import { binaryEmitter } from \"./_math-factory.js\";\nexport const emitter = binaryEmitter(\"MultiplyBlock\", (l, r) => `${l} * ${r}`);\n"],"names":[],"mappings":";AACO,MAAM,UAAU,cAAc,iBAAiB,CAAC,GAAG,MAAM,GAAG,CAAC,MAAM,CAAC,EAAE;"}
@@ -0,0 +1,6 @@
1
+ import { u as unaryEmitter } from "./_math-factory-C-QqW-Wi.js";
2
+ const emitter = unaryEmitter("NegateBlock", (v) => `-${v}`, void 0, "value");
3
+ export {
4
+ emitter
5
+ };
6
+ //# sourceMappingURL=negate-block-9CSLc5pM.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"negate-block-9CSLc5pM.js","sources":["../src/material/node/blocks/negate-block.ts"],"sourcesContent":["import { unaryEmitter } from \"./_math-factory.js\";\nexport const emitter = unaryEmitter(\"NegateBlock\", (v) => `-${v}`, undefined, \"value\");\n"],"names":[],"mappings":";AACO,MAAM,UAAU,aAAa,eAAe,CAAC,MAAM,IAAI,CAAC,IAAI,QAAW,OAAO;"}
@@ -0,0 +1,21 @@
1
+ import { w as widerType } from "./_math-factory-C-QqW-Wi.js";
2
+ const emitter = {
3
+ className: "NLerpBlock",
4
+ emit(block, _outputName, stage, state, ctx) {
5
+ const left = ctx.resolve(block, "left", stage, state);
6
+ const right = ctx.resolve(block, "right", stage, state);
7
+ const gradient = ctx.resolve(block, "gradient", stage, state);
8
+ const t = widerType(left.type, right.type);
9
+ if (t === "f32") {
10
+ throw new Error("NodeMaterial: NLerpBlock requires a vector left/right input; Babylon.js emits normalize(mix(...)) for this block");
11
+ }
12
+ const lc = ctx.cast(left, t).expr;
13
+ const rc = ctx.cast(right, t).expr;
14
+ const gc = ctx.cast(gradient, t).expr;
15
+ return { expr: `normalize(mix(${lc}, ${rc}, ${gc}))`, type: t };
16
+ }
17
+ };
18
+ export {
19
+ emitter
20
+ };
21
+ //# sourceMappingURL=nlerp-block-BNK1adIb.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"nlerp-block-BNK1adIb.js","sources":["../src/material/node/blocks/nlerp-block.ts"],"sourcesContent":["import type { BlockEmitter } from \"../node-types.js\";\nimport { widerType } from \"./_math-factory.js\";\n\nexport const emitter: BlockEmitter = {\n className: \"NLerpBlock\",\n emit(block, _outputName, stage, state, ctx) {\n const left = ctx.resolve(block, \"left\", stage, state);\n const right = ctx.resolve(block, \"right\", stage, state);\n const gradient = ctx.resolve(block, \"gradient\", stage, state);\n const t = widerType(left.type, right.type);\n if (t === \"f32\") {\n throw new Error(\"NodeMaterial: NLerpBlock requires a vector left/right input; Babylon.js emits normalize(mix(...)) for this block\");\n }\n const lc = ctx.cast(left, t).expr;\n const rc = ctx.cast(right, t).expr;\n const gc = ctx.cast(gradient, t).expr;\n return { expr: `normalize(mix(${lc}, ${rc}, ${gc}))`, type: t };\n },\n};\n"],"names":[],"mappings":";AAGO,MAAM,UAAwB;AAAA,EACjC,WAAW;AAAA,EACX,KAAK,OAAO,aAAa,OAAO,OAAO,KAAK;AACxC,UAAM,OAAO,IAAI,QAAQ,OAAO,QAAQ,OAAO,KAAK;AACpD,UAAM,QAAQ,IAAI,QAAQ,OAAO,SAAS,OAAO,KAAK;AACtD,UAAM,WAAW,IAAI,QAAQ,OAAO,YAAY,OAAO,KAAK;AAC5D,UAAM,IAAI,UAAU,KAAK,MAAM,MAAM,IAAI;AACzC,QAAI,MAAM,OAAO;AACb,YAAM,IAAI,MAAM,kHAAkH;AAAA,IACtI;AACA,UAAM,KAAK,IAAI,KAAK,MAAM,CAAC,EAAE;AAC7B,UAAM,KAAK,IAAI,KAAK,OAAO,CAAC,EAAE;AAC9B,UAAM,KAAK,IAAI,KAAK,UAAU,CAAC,EAAE;AACjC,WAAO,EAAE,MAAM,iBAAiB,EAAE,KAAK,EAAE,KAAK,EAAE,MAAM,MAAM,EAAA;AAAA,EAChE;AACJ;"}
@@ -0,0 +1,39 @@
1
+ function emitEnv(startBinding) {
2
+ const iblTexBinding = startBinding;
3
+ const iblSampBinding = startBinding + 1;
4
+ const brdfTexBinding = startBinding + 2;
5
+ const brdfSampBinding = startBinding + 3;
6
+ const wgslDecls = [
7
+ `@group(1) @binding(${iblTexBinding}) var nmeIblTexture: texture_cube<f32>;`,
8
+ `@group(1) @binding(${iblSampBinding}) var nmeIblSampler: sampler;`,
9
+ `@group(1) @binding(${brdfTexBinding}) var nmeBrdfLUT: texture_2d<f32>;`,
10
+ `@group(1) @binding(${brdfSampBinding}) var nmeBrdfSampler: sampler;`
11
+ ].join("\n");
12
+ const bglEntries = [
13
+ { binding: iblTexBinding, visibility: GPUShaderStage.FRAGMENT, texture: { sampleType: "float", viewDimension: "cube" } },
14
+ { binding: iblSampBinding, visibility: GPUShaderStage.FRAGMENT, sampler: { type: "filtering" } },
15
+ { binding: brdfTexBinding, visibility: GPUShaderStage.FRAGMENT, texture: { sampleType: "float", viewDimension: "2d" } },
16
+ { binding: brdfSampBinding, visibility: GPUShaderStage.FRAGMENT, sampler: { type: "filtering" } }
17
+ ];
18
+ return {
19
+ bindings: { _iblTexture: iblTexBinding, _iblSampler: iblSampBinding, _brdfLUT: brdfTexBinding, _brdfSampler: brdfSampBinding },
20
+ wgslDecls,
21
+ bglEntries,
22
+ bindingCount: 4
23
+ };
24
+ }
25
+ function pushEnvBindGroupEntries(scene, envBindings, entries) {
26
+ const env = scene._envTextures;
27
+ if (!env) {
28
+ throw new Error("NodeMaterial: PBR/Reflection block requires scene environment but scene._envTextures is unset. Call loadEnvironment() before registerScene().");
29
+ }
30
+ entries.push({ binding: envBindings._iblTexture, resource: env.specularCubeView });
31
+ entries.push({ binding: envBindings._iblSampler, resource: env.cubeSampler });
32
+ entries.push({ binding: envBindings._brdfLUT, resource: env.brdfLutView });
33
+ entries.push({ binding: envBindings._brdfSampler, resource: env.brdfSampler });
34
+ }
35
+ export {
36
+ emitEnv,
37
+ pushEnvBindGroupEntries
38
+ };
39
+ //# sourceMappingURL=node-env-BPZXZzBf.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-env-BPZXZzBf.js","sources":["../src/material/node/node-env.ts"],"sourcesContent":["/** Node Material — env IBL extension (dynamically imported).\n *\n * Loaded ONLY when a graph's emitGraph pass set `state.usesEnv = true` (i.e.\n * a ReflectionBlock fed PBRMetallicRoughnessBlock.reflection). Scenes whose\n * NME graphs contain neither block never bundle this module — keeping the\n * per-NME-scene cost flat for non-env materials (scenes 60-66).\n *\n * Provides the env-aware compile + renderable paths:\n * 1. Group-1 binding allocation + WGSL var decls + BGL entries for the\n * env IBL textures and samplers (specular cube, BRDF LUT, plus their\n * samplers).\n * 2. Bind-group entry construction from `scene._envTextures`.\n *\n * SH coefficients and env scalars are read from the canonical frame-graph\n * scene UBO; NodeMaterial does not allocate or write a private scene UBO.\n */\n\nimport type { SceneContext } from \"../../scene/scene.js\";\n\nexport interface EnvEmit {\n readonly bindings: {\n /** @internal */\n readonly _iblTexture: number;\n /** @internal */\n readonly _iblSampler: number;\n /** @internal */\n readonly _brdfLUT: number;\n /** @internal */\n readonly _brdfSampler: number;\n };\n readonly wgslDecls: string;\n readonly bglEntries: readonly GPUBindGroupLayoutEntry[];\n readonly bindingCount: number;\n}\n\n/** Allocate the 4 group-1 bindings for env IBL (cube + sampler, BRDF LUT 2D + sampler)\n * starting at `startBinding`, and produce the WGSL `@group(1) @binding(...)` var decls\n * plus the matching BGL entries. */\nexport function emitEnv(startBinding: number): EnvEmit {\n const iblTexBinding = startBinding;\n const iblSampBinding = startBinding + 1;\n const brdfTexBinding = startBinding + 2;\n const brdfSampBinding = startBinding + 3;\n const wgslDecls = [\n `@group(1) @binding(${iblTexBinding}) var nmeIblTexture: texture_cube<f32>;`,\n `@group(1) @binding(${iblSampBinding}) var nmeIblSampler: sampler;`,\n `@group(1) @binding(${brdfTexBinding}) var nmeBrdfLUT: texture_2d<f32>;`,\n `@group(1) @binding(${brdfSampBinding}) var nmeBrdfSampler: sampler;`,\n ].join(\"\\n\");\n const bglEntries: GPUBindGroupLayoutEntry[] = [\n { binding: iblTexBinding, visibility: GPUShaderStage.FRAGMENT, texture: { sampleType: \"float\", viewDimension: \"cube\" } },\n { binding: iblSampBinding, visibility: GPUShaderStage.FRAGMENT, sampler: { type: \"filtering\" } },\n { binding: brdfTexBinding, visibility: GPUShaderStage.FRAGMENT, texture: { sampleType: \"float\", viewDimension: \"2d\" } },\n { binding: brdfSampBinding, visibility: GPUShaderStage.FRAGMENT, sampler: { type: \"filtering\" } },\n ];\n return {\n bindings: { _iblTexture: iblTexBinding, _iblSampler: iblSampBinding, _brdfLUT: brdfTexBinding, _brdfSampler: brdfSampBinding },\n wgslDecls,\n bglEntries,\n bindingCount: 4,\n };\n}\n\n/** Append env IBL texture/sampler entries to a bind-group entries array. */\nexport function pushEnvBindGroupEntries(\n scene: SceneContext,\n /** @internal */\n envBindings: { _iblTexture: number; _iblSampler: number; _brdfLUT: number; _brdfSampler: number },\n entries: GPUBindGroupEntry[]\n): void {\n const env = (scene as unknown as { _envTextures?: import(\"../../loader-env/load-env.js\").EnvironmentTextures })._envTextures;\n if (!env) {\n throw new Error(\"NodeMaterial: PBR/Reflection block requires scene environment but scene._envTextures is unset. Call loadEnvironment() before registerScene().\");\n }\n entries.push({ binding: envBindings._iblTexture, resource: env.specularCubeView });\n entries.push({ binding: envBindings._iblSampler, resource: env.cubeSampler });\n entries.push({ binding: envBindings._brdfLUT, resource: env.brdfLutView });\n entries.push({ binding: envBindings._brdfSampler, resource: env.brdfSampler });\n}\n"],"names":[],"mappings":"AAsCO,SAAS,QAAQ,cAA+B;AACnD,QAAM,gBAAgB;AACtB,QAAM,iBAAiB,eAAe;AACtC,QAAM,iBAAiB,eAAe;AACtC,QAAM,kBAAkB,eAAe;AACvC,QAAM,YAAY;AAAA,IACd,sBAAsB,aAAa;AAAA,IACnC,sBAAsB,cAAc;AAAA,IACpC,sBAAsB,cAAc;AAAA,IACpC,sBAAsB,eAAe;AAAA,EAAA,EACvC,KAAK,IAAI;AACX,QAAM,aAAwC;AAAA,IAC1C,EAAE,SAAS,eAAe,YAAY,eAAe,UAAU,SAAS,EAAE,YAAY,SAAS,eAAe,OAAA,EAAO;AAAA,IACrH,EAAE,SAAS,gBAAgB,YAAY,eAAe,UAAU,SAAS,EAAE,MAAM,cAAY;AAAA,IAC7F,EAAE,SAAS,gBAAgB,YAAY,eAAe,UAAU,SAAS,EAAE,YAAY,SAAS,eAAe,KAAA,EAAK;AAAA,IACpH,EAAE,SAAS,iBAAiB,YAAY,eAAe,UAAU,SAAS,EAAE,MAAM,YAAA,EAAY;AAAA,EAAE;AAEpG,SAAO;AAAA,IACH,UAAU,EAAE,aAAa,eAAe,aAAa,gBAAgB,UAAU,gBAAgB,cAAc,gBAAA;AAAA,IAC7G;AAAA,IACA;AAAA,IACA,cAAc;AAAA,EAAA;AAEtB;AAGO,SAAS,wBACZ,OAEA,aACA,SACI;AACJ,QAAM,MAAO,MAAmG;AAChH,MAAI,CAAC,KAAK;AACN,UAAM,IAAI,MAAM,+IAA+I;AAAA,EACnK;AACA,UAAQ,KAAK,EAAE,SAAS,YAAY,aAAa,UAAU,IAAI,kBAAkB;AACjF,UAAQ,KAAK,EAAE,SAAS,YAAY,aAAa,UAAU,IAAI,aAAa;AAC5E,UAAQ,KAAK,EAAE,SAAS,YAAY,UAAU,UAAU,IAAI,aAAa;AACzE,UAAQ,KAAK,EAAE,SAAS,YAAY,cAAc,UAAU,IAAI,aAAa;AACjF;"}
@@ -0,0 +1,190 @@
1
+ async function loadBlockEmitter(key) {
2
+ const baseLoader = baseBlockLoader(key);
3
+ if (baseLoader) {
4
+ return (await baseLoader()).emitter;
5
+ }
6
+ const extra = await loadExtraBlockEmitter(key);
7
+ if (extra) {
8
+ return extra;
9
+ }
10
+ throw new Error(`NodeMaterial: no emitter registered for block "${key}"`);
11
+ }
12
+ function hasBlockEmitter(key) {
13
+ return !!baseBlockLoader(key) || !!extraRegistryLoader(key);
14
+ }
15
+ function baseBlockLoader(key) {
16
+ switch (key) {
17
+ case "InputBlock":
18
+ return () => import("./input-block-DgAJBzN_.js");
19
+ case "VectorMergerBlock":
20
+ return () => import("./vector-merger-CrW-ONB0.js");
21
+ case "FragmentOutputBlock":
22
+ return () => import("./fragment-output-BOphkIeh.js");
23
+ case "AddBlock":
24
+ return () => import("./add-block-CikX5gWy.js");
25
+ case "SubtractBlock":
26
+ return () => import("./subtract-block-NPfKvzQP.js");
27
+ case "MultiplyBlock":
28
+ return () => import("./multiply-block-DaXLJ7Ud.js");
29
+ case "MinBlock":
30
+ return () => import("./min-block-CHtBngNl.js");
31
+ case "MaxBlock":
32
+ return () => import("./max-block-CjFgljZ7.js");
33
+ case "PowBlock":
34
+ return () => import("./pow-block-DI5ICzhc.js");
35
+ case "StepBlock":
36
+ return () => import("./step-block-BkywzTYm.js");
37
+ case "DotBlock":
38
+ return () => import("./dot-block-VlfAC6cD.js");
39
+ case "ScaleBlock":
40
+ return () => import("./scale-block-C5Z8159G.js");
41
+ case "OneMinusBlock":
42
+ return () => import("./oneminus-block-BP9x4Dc3.js");
43
+ case "NegateBlock":
44
+ return () => import("./negate-block-9CSLc5pM.js");
45
+ case "NormalizeBlock":
46
+ return () => import("./normalize-block-F2bLNj9K.js");
47
+ case "LerpBlock":
48
+ return () => import("./lerp-block-DjI2SfmI.js");
49
+ case "ClampBlock":
50
+ return () => import("./clamp-block-BdII67hT.js");
51
+ case "SmoothStepBlock":
52
+ return () => import("./smoothstep-block-Di4t37x-.js");
53
+ case "RemapBlock":
54
+ return () => import("./remap-block-DxK1W1vp.js");
55
+ case "TrigonometryBlock":
56
+ return () => import("./trigonometry-block-BYQcTHiD.js");
57
+ case "VectorSplitterBlock":
58
+ return () => import("./vector-splitter-BoJuHrAU.js");
59
+ case "ColorSplitterBlock":
60
+ return () => import("./color-splitter-CGn1G4ow.js");
61
+ case "TransformBlock":
62
+ return () => import("./transform-block-DbRph9JI.js");
63
+ case "VertexOutputBlock":
64
+ return () => import("./vertex-output-Cvft64y0.js");
65
+ case "TextureBlock":
66
+ return () => import("./texture-block-rr21KIL_.js");
67
+ case "ImageSourceBlock":
68
+ return () => import("./image-source-BuMJgd9-.js");
69
+ case "FrontFacingBlock":
70
+ return () => import("./front-facing-0d6aiyrv.js");
71
+ case "ViewDirectionBlock":
72
+ return () => import("./view-direction-CWVucfnT.js");
73
+ case "LightBlock":
74
+ return () => import("./light-block-B11ew7FA.js");
75
+ case "LightInformationBlock":
76
+ return () => import("./light-information-VJbW0jbs.js");
77
+ case "FogBlock":
78
+ return () => import("./fog-block-DJ9hEolm.js");
79
+ case "PerturbNormalBlock":
80
+ return () => import("./perturb-normal-0Q8EM9ig.js");
81
+ case "BonesBlock":
82
+ return () => import("./bones-block-D6IhqUVV.js");
83
+ case "InstancesBlock":
84
+ return () => import("./instances-block-BaSSiz8m.js");
85
+ case "MorphTargetsBlock":
86
+ return () => import("./morph-targets-55z342ZB.js");
87
+ case "ShadowMapBlock":
88
+ return () => import("./shadow-map-CQNQC-Fw.js");
89
+ case "DiscardBlock":
90
+ return () => import("./discard-block-B2jKjaEL.js");
91
+ case "ReflectionTextureBlock":
92
+ return () => import("./reflection-texture-block-C3QtzoV8.js");
93
+ case "PBRMetallicRoughnessBlock":
94
+ return () => import("./pbr-metallic-roughness-block-h_KAOZrW.js");
95
+ case "PBRMetallicRoughnessBlock__full":
96
+ return () => import("./pbr-metallic-roughness-block-full-6vMm1Jk6.js");
97
+ case "ReflectionBlock":
98
+ return () => import("./reflection-block-DqcwyYqr.js");
99
+ case "ClearCoatBlock":
100
+ return () => import("./clearcoat-block-BGML4npi.js");
101
+ case "SheenBlock":
102
+ return () => import("./sheen-block-BugfJqK3.js");
103
+ case "AnisotropyBlock":
104
+ return () => import("./anisotropy-block-D5fXH_OY.js");
105
+ case "SubSurfaceBlock":
106
+ return () => import("./subsurface-block-CBhxT9ui.js");
107
+ case "RefractionBlock":
108
+ return () => import("./refraction-block-U8y6XiXs.js");
109
+ default:
110
+ return null;
111
+ }
112
+ }
113
+ async function loadExtraBlockEmitter(key) {
114
+ const loader = extraRegistryLoader(key);
115
+ if (!loader) {
116
+ return null;
117
+ }
118
+ return (await loader()).loadExtraEmitter(key);
119
+ }
120
+ function extraRegistryLoader(key) {
121
+ switch (key) {
122
+ case "DivideBlock":
123
+ case "ModBlock":
124
+ case "ReciprocalBlock":
125
+ case "LengthBlock":
126
+ case "DistanceBlock":
127
+ case "CrossBlock":
128
+ case "ReflectBlock":
129
+ case "RefractBlock":
130
+ case "ArcTan2Block":
131
+ case "FresnelBlock":
132
+ case "OppositeBlock":
133
+ case "NLerpBlock":
134
+ case "ConditionalBlock":
135
+ case "CurveBlock":
136
+ case "WaveBlock":
137
+ case "RandomNumberBlock":
138
+ return () => import("./node-registry-extra-math-CsAHvIZo.js");
139
+ case "ColorMergerBlock":
140
+ case "ColorConverterBlock":
141
+ case "DesaturateBlock":
142
+ case "GradientBlock":
143
+ case "PosterizeBlock":
144
+ case "ReplaceColorBlock":
145
+ case "PannerBlock":
146
+ case "Rotate2dBlock":
147
+ case "TriPlanarBlock":
148
+ case "BiPlanarBlock":
149
+ case "CloudBlock":
150
+ case "SimplexPerlin3DBlock":
151
+ case "VoronoiNoiseBlock":
152
+ case "WorleyNoise3DBlock":
153
+ return () => import("./node-registry-extra-procedural-5pLQ3Bhz.js");
154
+ case "DerivativeBlock":
155
+ case "HeightToNormalBlock":
156
+ case "TBNBlock":
157
+ case "NormalBlendBlock":
158
+ case "AmbientOcclusionBlock":
159
+ case "FragCoordBlock":
160
+ case "ScreenSizeBlock":
161
+ case "ScreenSpaceBlock":
162
+ case "TwirlBlock":
163
+ case "FragDepthBlock":
164
+ case "MatrixBuilder":
165
+ case "MatrixSplitterBlock":
166
+ case "MatrixTransposeBlock":
167
+ case "MatrixDeterminantBlock":
168
+ return () => import("./node-registry-extra-advanced-2DJVt67-.js");
169
+ case "ElbowBlock":
170
+ case "NodeMaterialTeleportInBlock":
171
+ case "NodeMaterialTeleportOutBlock":
172
+ case "NodeMaterialDebugBlock":
173
+ case "MeshAttributeExistsBlock":
174
+ case "ClipPlanesBlock":
175
+ case "ReflectionTextureBaseBlock":
176
+ case "ImageProcessingBlock":
177
+ case "IridescenceBlock":
178
+ case "LoopBlock":
179
+ case "StorageReadBlock":
180
+ case "StorageWriteBlock":
181
+ return () => import("./node-registry-extra-compat-Dhrw8fDQ.js");
182
+ default:
183
+ return null;
184
+ }
185
+ }
186
+ export {
187
+ hasBlockEmitter,
188
+ loadBlockEmitter
189
+ };
190
+ //# sourceMappingURL=node-registry-DwgC4yth.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry-DwgC4yth.js","sources":["../src/material/node/node-registry.ts"],"sourcesContent":["/** Node-block registry — side-effect-free lazy dispatch.\n *\n * Each block lives in its own module under `./blocks/`. The base registry keeps\n * the pre-existing NME surface inline; newer block families are routed through\n * small extension registries so older scenes don't fetch every new loader.\n */\n\nimport type { BlockEmitter } from \"./node-types.js\";\n\nexport type BlockLoader = () => Promise<{ emitter: BlockEmitter }>;\n\n/** Resolve a block emitter by key. Throws if the block is not registered. */\nexport async function loadBlockEmitter(key: string): Promise<BlockEmitter> {\n const baseLoader = baseBlockLoader(key);\n if (baseLoader) {\n return (await baseLoader()).emitter;\n }\n const extra = await loadExtraBlockEmitter(key);\n if (extra) {\n return extra;\n }\n throw new Error(`NodeMaterial: no emitter registered for block \"${key}\"`);\n}\n\n/** Returns true if a key is registered (used by tests). */\nexport function hasBlockEmitter(key: string): boolean {\n return !!baseBlockLoader(key) || !!extraRegistryLoader(key);\n}\n\nfunction baseBlockLoader(key: string): BlockLoader | null {\n switch (key) {\n case \"InputBlock\":\n return () => import(\"./blocks/input-block.js\");\n case \"VectorMergerBlock\":\n return () => import(\"./blocks/vector-merger.js\");\n case \"FragmentOutputBlock\":\n return () => import(\"./blocks/fragment-output.js\");\n case \"AddBlock\":\n return () => import(\"./blocks/add-block.js\");\n case \"SubtractBlock\":\n return () => import(\"./blocks/subtract-block.js\");\n case \"MultiplyBlock\":\n return () => import(\"./blocks/multiply-block.js\");\n case \"MinBlock\":\n return () => import(\"./blocks/min-block.js\");\n case \"MaxBlock\":\n return () => import(\"./blocks/max-block.js\");\n case \"PowBlock\":\n return () => import(\"./blocks/pow-block.js\");\n case \"StepBlock\":\n return () => import(\"./blocks/step-block.js\");\n case \"DotBlock\":\n return () => import(\"./blocks/dot-block.js\");\n case \"ScaleBlock\":\n return () => import(\"./blocks/scale-block.js\");\n case \"OneMinusBlock\":\n return () => import(\"./blocks/oneminus-block.js\");\n case \"NegateBlock\":\n return () => import(\"./blocks/negate-block.js\");\n case \"NormalizeBlock\":\n return () => import(\"./blocks/normalize-block.js\");\n case \"LerpBlock\":\n return () => import(\"./blocks/lerp-block.js\");\n case \"ClampBlock\":\n return () => import(\"./blocks/clamp-block.js\");\n case \"SmoothStepBlock\":\n return () => import(\"./blocks/smoothstep-block.js\");\n case \"RemapBlock\":\n return () => import(\"./blocks/remap-block.js\");\n case \"TrigonometryBlock\":\n return () => import(\"./blocks/trigonometry-block.js\");\n case \"VectorSplitterBlock\":\n return () => import(\"./blocks/vector-splitter.js\");\n case \"ColorSplitterBlock\":\n return () => import(\"./blocks/color-splitter.js\");\n case \"TransformBlock\":\n return () => import(\"./blocks/transform-block.js\");\n case \"VertexOutputBlock\":\n return () => import(\"./blocks/vertex-output.js\");\n case \"TextureBlock\":\n return () => import(\"./blocks/texture-block.js\");\n case \"ImageSourceBlock\":\n return () => import(\"./blocks/image-source.js\");\n case \"FrontFacingBlock\":\n return () => import(\"./blocks/front-facing.js\");\n case \"ViewDirectionBlock\":\n return () => import(\"./blocks/view-direction.js\");\n case \"LightBlock\":\n return () => import(\"./blocks/light-block.js\");\n case \"LightInformationBlock\":\n return () => import(\"./blocks/light-information.js\");\n case \"FogBlock\":\n return () => import(\"./blocks/fog-block.js\");\n case \"PerturbNormalBlock\":\n return () => import(\"./blocks/perturb-normal.js\");\n case \"BonesBlock\":\n return () => import(\"./blocks/bones-block.js\");\n case \"InstancesBlock\":\n return () => import(\"./blocks/instances-block.js\");\n case \"MorphTargetsBlock\":\n return () => import(\"./blocks/morph-targets.js\");\n case \"ShadowMapBlock\":\n return () => import(\"./blocks/shadow-map.js\");\n case \"DiscardBlock\":\n return () => import(\"./blocks/discard-block.js\");\n case \"ReflectionTextureBlock\":\n return () => import(\"./blocks/reflection-texture-block.js\");\n case \"PBRMetallicRoughnessBlock\":\n return () => import(\"./blocks/pbr-metallic-roughness-block.js\");\n case \"PBRMetallicRoughnessBlock__full\":\n return () => import(\"./blocks/pbr-metallic-roughness-block-full.js\");\n case \"ReflectionBlock\":\n return () => import(\"./blocks/reflection-block.js\");\n case \"ClearCoatBlock\":\n return () => import(\"./blocks/clearcoat-block.js\");\n case \"SheenBlock\":\n return () => import(\"./blocks/sheen-block.js\");\n case \"AnisotropyBlock\":\n return () => import(\"./blocks/anisotropy-block.js\");\n case \"SubSurfaceBlock\":\n return () => import(\"./blocks/subsurface-block.js\");\n case \"RefractionBlock\":\n return () => import(\"./blocks/refraction-block.js\");\n default:\n return null;\n }\n}\n\nasync function loadExtraBlockEmitter(key: string): Promise<BlockEmitter | null> {\n const loader = extraRegistryLoader(key);\n if (!loader) {\n return null;\n }\n return (await loader()).loadExtraEmitter(key);\n}\n\nfunction extraRegistryLoader(key: string): (() => Promise<{ loadExtraEmitter(key: string): Promise<BlockEmitter> }>) | null {\n switch (key) {\n case \"DivideBlock\":\n case \"ModBlock\":\n case \"ReciprocalBlock\":\n case \"LengthBlock\":\n case \"DistanceBlock\":\n case \"CrossBlock\":\n case \"ReflectBlock\":\n case \"RefractBlock\":\n case \"ArcTan2Block\":\n case \"FresnelBlock\":\n case \"OppositeBlock\":\n case \"NLerpBlock\":\n case \"ConditionalBlock\":\n case \"CurveBlock\":\n case \"WaveBlock\":\n case \"RandomNumberBlock\":\n return () => import(\"./node-registry-extra-math.js\");\n case \"ColorMergerBlock\":\n case \"ColorConverterBlock\":\n case \"DesaturateBlock\":\n case \"GradientBlock\":\n case \"PosterizeBlock\":\n case \"ReplaceColorBlock\":\n case \"PannerBlock\":\n case \"Rotate2dBlock\":\n case \"TriPlanarBlock\":\n case \"BiPlanarBlock\":\n case \"CloudBlock\":\n case \"SimplexPerlin3DBlock\":\n case \"VoronoiNoiseBlock\":\n case \"WorleyNoise3DBlock\":\n return () => import(\"./node-registry-extra-procedural.js\");\n case \"DerivativeBlock\":\n case \"HeightToNormalBlock\":\n case \"TBNBlock\":\n case \"NormalBlendBlock\":\n case \"AmbientOcclusionBlock\":\n case \"FragCoordBlock\":\n case \"ScreenSizeBlock\":\n case \"ScreenSpaceBlock\":\n case \"TwirlBlock\":\n case \"FragDepthBlock\":\n case \"MatrixBuilder\":\n case \"MatrixSplitterBlock\":\n case \"MatrixTransposeBlock\":\n case \"MatrixDeterminantBlock\":\n return () => import(\"./node-registry-extra-advanced.js\");\n case \"ElbowBlock\":\n case \"NodeMaterialTeleportInBlock\":\n case \"NodeMaterialTeleportOutBlock\":\n case \"NodeMaterialDebugBlock\":\n case \"MeshAttributeExistsBlock\":\n case \"ClipPlanesBlock\":\n case \"ReflectionTextureBaseBlock\":\n case \"ImageProcessingBlock\":\n case \"IridescenceBlock\":\n case \"LoopBlock\":\n case \"StorageReadBlock\":\n case \"StorageWriteBlock\":\n return () => import(\"./node-registry-extra-compat.js\");\n default:\n return null;\n }\n}\n"],"names":[],"mappings":"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"}
@@ -0,0 +1,45 @@
1
+ function matrixBlocks() {
2
+ return import("./matrix-blocks-acWn_V6g.js");
3
+ }
4
+ function blockLoader(key) {
5
+ switch (key) {
6
+ case "DerivativeBlock":
7
+ return () => import("./derivative-block-B8KjtaWs.js");
8
+ case "HeightToNormalBlock":
9
+ return () => import("./height-to-normal-block-DhPHkDFg.js");
10
+ case "TBNBlock":
11
+ return () => import("./tbn-block-ByOI6Y43.js");
12
+ case "NormalBlendBlock":
13
+ return () => import("./normal-blend-block-BfH_nBoj.js");
14
+ case "AmbientOcclusionBlock":
15
+ return () => import("./ambient-occlusion-block-DForhWL3.js");
16
+ case "FragCoordBlock":
17
+ return () => import("./frag-coord-block-DzXfFgfV.js");
18
+ case "ScreenSizeBlock":
19
+ return () => import("./screen-size-block-BVNnOvE8.js");
20
+ case "ScreenSpaceBlock":
21
+ return () => import("./screen-space-block-CwaxdfSe.js");
22
+ case "TwirlBlock":
23
+ return () => import("./twirl-block-78WtdiBd.js");
24
+ case "FragDepthBlock":
25
+ return () => import("./frag-depth-block-UQbeKP2D.js");
26
+ case "MatrixBuilder":
27
+ case "MatrixSplitterBlock":
28
+ case "MatrixTransposeBlock":
29
+ case "MatrixDeterminantBlock":
30
+ return matrixBlocks;
31
+ default:
32
+ return null;
33
+ }
34
+ }
35
+ async function loadExtraEmitter(key) {
36
+ const loader = blockLoader(key);
37
+ if (!loader) {
38
+ throw new Error(`NodeMaterial: no advanced extension emitter registered for block "${key}"`);
39
+ }
40
+ return (await loader()).emitter;
41
+ }
42
+ export {
43
+ loadExtraEmitter
44
+ };
45
+ //# sourceMappingURL=node-registry-extra-advanced-2DJVt67-.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry-extra-advanced-2DJVt67-.js","sources":["../src/material/node/node-registry-extra-advanced.ts"],"sourcesContent":["import type { BlockEmitter } from \"./node-types.js\";\nimport type { BlockLoader } from \"./node-registry.js\";\n\nfunction matrixBlocks(): ReturnType<BlockLoader> {\n return import(\"./blocks/matrix-blocks.js\");\n}\n\nfunction blockLoader(key: string): BlockLoader | null {\n switch (key) {\n case \"DerivativeBlock\":\n return () => import(\"./blocks/derivative-block.js\");\n case \"HeightToNormalBlock\":\n return () => import(\"./blocks/height-to-normal-block.js\");\n case \"TBNBlock\":\n return () => import(\"./blocks/tbn-block.js\");\n case \"NormalBlendBlock\":\n return () => import(\"./blocks/normal-blend-block.js\");\n case \"AmbientOcclusionBlock\":\n return () => import(\"./blocks/ambient-occlusion-block.js\");\n case \"FragCoordBlock\":\n return () => import(\"./blocks/frag-coord-block.js\");\n case \"ScreenSizeBlock\":\n return () => import(\"./blocks/screen-size-block.js\");\n case \"ScreenSpaceBlock\":\n return () => import(\"./blocks/screen-space-block.js\");\n case \"TwirlBlock\":\n return () => import(\"./blocks/twirl-block.js\");\n case \"FragDepthBlock\":\n return () => import(\"./blocks/frag-depth-block.js\");\n case \"MatrixBuilder\":\n case \"MatrixSplitterBlock\":\n case \"MatrixTransposeBlock\":\n case \"MatrixDeterminantBlock\":\n return matrixBlocks;\n default:\n return null;\n }\n}\n\nexport async function loadExtraEmitter(key: string): Promise<BlockEmitter> {\n const loader = blockLoader(key);\n if (!loader) {\n throw new Error(`NodeMaterial: no advanced extension emitter registered for block \"${key}\"`);\n }\n return (await loader()).emitter;\n}\n"],"names":[],"mappings":"AAGA,SAAS,eAAwC;AAC7C,SAAO,OAAO,6BAA2B;AAC7C;AAEA,SAAS,YAAY,KAAiC;AAClD,UAAQ,KAAA;AAAA,IACJ,KAAK;AACD,aAAO,MAAM,OAAO,gCAA8B;AAAA,IACtD,KAAK;AACD,aAAO,MAAM,OAAO,sCAAoC;AAAA,IAC5D,KAAK;AACD,aAAO,MAAM,OAAO,yBAAuB;AAAA,IAC/C,KAAK;AACD,aAAO,MAAM,OAAO,kCAAgC;AAAA,IACxD,KAAK;AACD,aAAO,MAAM,OAAO,uCAAqC;AAAA,IAC7D,KAAK;AACD,aAAO,MAAM,OAAO,gCAA8B;AAAA,IACtD,KAAK;AACD,aAAO,MAAM,OAAO,iCAA+B;AAAA,IACvD,KAAK;AACD,aAAO,MAAM,OAAO,kCAAgC;AAAA,IACxD,KAAK;AACD,aAAO,MAAM,OAAO,2BAAyB;AAAA,IACjD,KAAK;AACD,aAAO,MAAM,OAAO,gCAA8B;AAAA,IACtD,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AAAA,IACL,KAAK;AACD,aAAO;AAAA,IACX;AACI,aAAO;AAAA,EAAA;AAEnB;AAEA,eAAsB,iBAAiB,KAAoC;AACvE,QAAM,SAAS,YAAY,GAAG;AAC9B,MAAI,CAAC,QAAQ;AACT,UAAM,IAAI,MAAM,qEAAqE,GAAG,GAAG;AAAA,EAC/F;AACA,UAAQ,MAAM,UAAU;AAC5B;"}
@@ -0,0 +1,41 @@
1
+ function blockLoader(key) {
2
+ switch (key) {
3
+ case "ElbowBlock":
4
+ return () => import("./elbow-block-NEOiIxzO.js");
5
+ case "NodeMaterialTeleportInBlock":
6
+ return () => import("./teleport-in-block-BMa17cqq.js");
7
+ case "NodeMaterialTeleportOutBlock":
8
+ return () => import("./teleport-out-block-5AkB25H6.js");
9
+ case "NodeMaterialDebugBlock":
10
+ return () => import("./debug-block-D2pg4Yf6.js");
11
+ case "MeshAttributeExistsBlock":
12
+ return () => import("./mesh-attribute-exists-block-BfK8UiSL.js");
13
+ case "ClipPlanesBlock":
14
+ return () => import("./clip-planes-block-BPfFJrbf.js");
15
+ case "ReflectionTextureBaseBlock":
16
+ return () => import("./reflection-texture-base-block-1xmJ0HDj.js");
17
+ case "ImageProcessingBlock":
18
+ return () => import("./image-processing-block-DwrhhmuF.js");
19
+ case "IridescenceBlock":
20
+ return () => import("./iridescence-block-B0pRFoOU.js");
21
+ case "LoopBlock":
22
+ return () => import("./loop-block-Bb23EOMb.js");
23
+ case "StorageReadBlock":
24
+ return () => import("./storage-read-block-BdzhJfln.js");
25
+ case "StorageWriteBlock":
26
+ return () => import("./storage-write-block-DjLKZ0Ro.js");
27
+ default:
28
+ return null;
29
+ }
30
+ }
31
+ async function loadExtraEmitter(key) {
32
+ const loader = blockLoader(key);
33
+ if (!loader) {
34
+ throw new Error(`NodeMaterial: no compatibility extension emitter registered for block "${key}"`);
35
+ }
36
+ return (await loader()).emitter;
37
+ }
38
+ export {
39
+ loadExtraEmitter
40
+ };
41
+ //# sourceMappingURL=node-registry-extra-compat-Dhrw8fDQ.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry-extra-compat-Dhrw8fDQ.js","sources":["../src/material/node/node-registry-extra-compat.ts"],"sourcesContent":["import type { BlockEmitter } from \"./node-types.js\";\nimport type { BlockLoader } from \"./node-registry.js\";\n\nfunction blockLoader(key: string): BlockLoader | null {\n switch (key) {\n case \"ElbowBlock\":\n return () => import(\"./blocks/elbow-block.js\");\n case \"NodeMaterialTeleportInBlock\":\n return () => import(\"./blocks/teleport-in-block.js\");\n case \"NodeMaterialTeleportOutBlock\":\n return () => import(\"./blocks/teleport-out-block.js\");\n case \"NodeMaterialDebugBlock\":\n return () => import(\"./blocks/debug-block.js\");\n case \"MeshAttributeExistsBlock\":\n return () => import(\"./blocks/mesh-attribute-exists-block.js\");\n case \"ClipPlanesBlock\":\n return () => import(\"./blocks/clip-planes-block.js\");\n case \"ReflectionTextureBaseBlock\":\n return () => import(\"./blocks/reflection-texture-base-block.js\");\n case \"ImageProcessingBlock\":\n return () => import(\"./blocks/image-processing-block.js\");\n case \"IridescenceBlock\":\n return () => import(\"./blocks/iridescence-block.js\");\n case \"LoopBlock\":\n return () => import(\"./blocks/loop-block.js\");\n case \"StorageReadBlock\":\n return () => import(\"./blocks/storage-read-block.js\");\n case \"StorageWriteBlock\":\n return () => import(\"./blocks/storage-write-block.js\");\n default:\n return null;\n }\n}\n\nexport async function loadExtraEmitter(key: string): Promise<BlockEmitter> {\n const loader = blockLoader(key);\n if (!loader) {\n throw new Error(`NodeMaterial: no compatibility extension emitter registered for block \"${key}\"`);\n }\n return (await loader()).emitter;\n}\n"],"names":[],"mappings":"AAGA,SAAS,YAAY,KAAiC;AAClD,UAAQ,KAAA;AAAA,IACJ,KAAK;AACD,aAAO,MAAM,OAAO,2BAAyB;AAAA,IACjD,KAAK;AACD,aAAO,MAAM,OAAO,iCAA+B;AAAA,IACvD,KAAK;AACD,aAAO,MAAM,OAAO,kCAAgC;AAAA,IACxD,KAAK;AACD,aAAO,MAAM,OAAO,2BAAyB;AAAA,IACjD,KAAK;AACD,aAAO,MAAM,OAAO,2CAAyC;AAAA,IACjE,KAAK;AACD,aAAO,MAAM,OAAO,iCAA+B;AAAA,IACvD,KAAK;AACD,aAAO,MAAM,OAAO,6CAA2C;AAAA,IACnE,KAAK;AACD,aAAO,MAAM,OAAO,sCAAoC;AAAA,IAC5D,KAAK;AACD,aAAO,MAAM,OAAO,iCAA+B;AAAA,IACvD,KAAK;AACD,aAAO,MAAM,OAAO,0BAAwB;AAAA,IAChD,KAAK;AACD,aAAO,MAAM,OAAO,kCAAgC;AAAA,IACxD,KAAK;AACD,aAAO,MAAM,OAAO,mCAAiC;AAAA,IACzD;AACI,aAAO;AAAA,EAAA;AAEnB;AAEA,eAAsB,iBAAiB,KAAoC;AACvE,QAAM,SAAS,YAAY,GAAG;AAC9B,MAAI,CAAC,QAAQ;AACT,UAAM,IAAI,MAAM,0EAA0E,GAAG,GAAG;AAAA,EACpG;AACA,UAAQ,MAAM,UAAU;AAC5B;"}
@@ -0,0 +1,49 @@
1
+ function blockLoader(key) {
2
+ switch (key) {
3
+ case "DivideBlock":
4
+ return () => import("./divide-block-ZyepIg_-.js");
5
+ case "ModBlock":
6
+ return () => import("./mod-block-Ceizv8Y7.js");
7
+ case "ReciprocalBlock":
8
+ return () => import("./reciprocal-block-Ck3CW-j-.js");
9
+ case "LengthBlock":
10
+ return () => import("./length-block-ChOkeiHR.js");
11
+ case "DistanceBlock":
12
+ return () => import("./distance-block-3NkgFZ3f.js");
13
+ case "CrossBlock":
14
+ return () => import("./cross-block-DCrLwCpt.js");
15
+ case "ReflectBlock":
16
+ return () => import("./reflect-block-CizpzrX4.js");
17
+ case "RefractBlock":
18
+ return () => import("./refract-block-HHiAk-7U.js");
19
+ case "ArcTan2Block":
20
+ return () => import("./arc-tan2-block-d8sWt_x0.js");
21
+ case "FresnelBlock":
22
+ return () => import("./fresnel-block-DefHWeO-.js");
23
+ case "OppositeBlock":
24
+ return () => import("./opposite-block-Cnqmm-lH.js");
25
+ case "NLerpBlock":
26
+ return () => import("./nlerp-block-BNK1adIb.js");
27
+ case "ConditionalBlock":
28
+ return () => import("./conditional-block-Cd2pbejI.js");
29
+ case "CurveBlock":
30
+ return () => import("./curve-block-BlJpXVYv.js");
31
+ case "WaveBlock":
32
+ return () => import("./wave-block-CY_mk1ec.js");
33
+ case "RandomNumberBlock":
34
+ return () => import("./random-number-block-2OyRYljF.js");
35
+ default:
36
+ return null;
37
+ }
38
+ }
39
+ async function loadExtraEmitter(key) {
40
+ const loader = blockLoader(key);
41
+ if (!loader) {
42
+ throw new Error(`NodeMaterial: no math extension emitter registered for block "${key}"`);
43
+ }
44
+ return (await loader()).emitter;
45
+ }
46
+ export {
47
+ loadExtraEmitter
48
+ };
49
+ //# sourceMappingURL=node-registry-extra-math-CsAHvIZo.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"node-registry-extra-math-CsAHvIZo.js","sources":["../src/material/node/node-registry-extra-math.ts"],"sourcesContent":["import type { BlockEmitter } from \"./node-types.js\";\nimport type { BlockLoader } from \"./node-registry.js\";\n\nfunction blockLoader(key: string): BlockLoader | null {\n switch (key) {\n case \"DivideBlock\":\n return () => import(\"./blocks/divide-block.js\");\n case \"ModBlock\":\n return () => import(\"./blocks/mod-block.js\");\n case \"ReciprocalBlock\":\n return () => import(\"./blocks/reciprocal-block.js\");\n case \"LengthBlock\":\n return () => import(\"./blocks/length-block.js\");\n case \"DistanceBlock\":\n return () => import(\"./blocks/distance-block.js\");\n case \"CrossBlock\":\n return () => import(\"./blocks/cross-block.js\");\n case \"ReflectBlock\":\n return () => import(\"./blocks/reflect-block.js\");\n case \"RefractBlock\":\n return () => import(\"./blocks/refract-block.js\");\n case \"ArcTan2Block\":\n return () => import(\"./blocks/arc-tan2-block.js\");\n case \"FresnelBlock\":\n return () => import(\"./blocks/fresnel-block.js\");\n case \"OppositeBlock\":\n return () => import(\"./blocks/opposite-block.js\");\n case \"NLerpBlock\":\n return () => import(\"./blocks/nlerp-block.js\");\n case \"ConditionalBlock\":\n return () => import(\"./blocks/conditional-block.js\");\n case \"CurveBlock\":\n return () => import(\"./blocks/curve-block.js\");\n case \"WaveBlock\":\n return () => import(\"./blocks/wave-block.js\");\n case \"RandomNumberBlock\":\n return () => import(\"./blocks/random-number-block.js\");\n default:\n return null;\n }\n}\n\nexport async function loadExtraEmitter(key: string): Promise<BlockEmitter> {\n const loader = blockLoader(key);\n if (!loader) {\n throw new Error(`NodeMaterial: no math extension emitter registered for block \"${key}\"`);\n }\n return (await loader()).emitter;\n}\n"],"names":[],"mappings":"AAGA,SAAS,YAAY,KAAiC;AAClD,UAAQ,KAAA;AAAA,IACJ,KAAK;AACD,aAAO,MAAM,OAAO,4BAA0B;AAAA,IAClD,KAAK;AACD,aAAO,MAAM,OAAO,yBAAuB;AAAA,IAC/C,KAAK;AACD,aAAO,MAAM,OAAO,gCAA8B;AAAA,IACtD,KAAK;AACD,aAAO,MAAM,OAAO,4BAA0B;AAAA,IAClD,KAAK;AACD,aAAO,MAAM,OAAO,8BAA4B;AAAA,IACpD,KAAK;AACD,aAAO,MAAM,OAAO,2BAAyB;AAAA,IACjD,KAAK;AACD,aAAO,MAAM,OAAO,6BAA2B;AAAA,IACnD,KAAK;AACD,aAAO,MAAM,OAAO,6BAA2B;AAAA,IACnD,KAAK;AACD,aAAO,MAAM,OAAO,8BAA4B;AAAA,IACpD,KAAK;AACD,aAAO,MAAM,OAAO,6BAA2B;AAAA,IACnD,KAAK;AACD,aAAO,MAAM,OAAO,8BAA4B;AAAA,IACpD,KAAK;AACD,aAAO,MAAM,OAAO,2BAAyB;AAAA,IACjD,KAAK;AACD,aAAO,MAAM,OAAO,iCAA+B;AAAA,IACvD,KAAK;AACD,aAAO,MAAM,OAAO,2BAAyB;AAAA,IACjD,KAAK;AACD,aAAO,MAAM,OAAO,0BAAwB;AAAA,IAChD,KAAK;AACD,aAAO,MAAM,OAAO,mCAAiC;AAAA,IACzD;AACI,aAAO;AAAA,EAAA;AAEnB;AAEA,eAAsB,iBAAiB,KAAoC;AACvE,QAAM,SAAS,YAAY,GAAG;AAC9B,MAAI,CAAC,QAAQ;AACT,UAAM,IAAI,MAAM,iEAAiE,GAAG,GAAG;AAAA,EAC3F;AACA,UAAQ,MAAM,UAAU;AAC5B;"}