@zephyr3d/scene 0.7.0 → 0.8.0

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 (368) hide show
  1. package/dist/animation/animation.js +4 -33
  2. package/dist/animation/animation.js.map +1 -1
  3. package/dist/animation/animationset.js +24 -11
  4. package/dist/animation/animationset.js.map +1 -1
  5. package/dist/animation/animationtrack.js +1 -0
  6. package/dist/animation/animationtrack.js.map +1 -1
  7. package/dist/animation/eulerrotationtrack.js +0 -1
  8. package/dist/animation/eulerrotationtrack.js.map +1 -1
  9. package/dist/animation/ik/ccd_solver.js +372 -0
  10. package/dist/animation/ik/ccd_solver.js.map +1 -0
  11. package/dist/animation/ik/fabrik_solver.js +399 -0
  12. package/dist/animation/ik/fabrik_solver.js.map +1 -0
  13. package/dist/animation/ik/ik_angle_constraint.js +181 -0
  14. package/dist/animation/ik/ik_angle_constraint.js.map +1 -0
  15. package/dist/animation/ik/ik_chain.js +163 -0
  16. package/dist/animation/ik/ik_chain.js.map +1 -0
  17. package/dist/animation/ik/ik_chain_builder.js +68 -0
  18. package/dist/animation/ik/ik_chain_builder.js.map +1 -0
  19. package/dist/animation/ik/ik_constraint.js +25 -0
  20. package/dist/animation/ik/ik_constraint.js.map +1 -0
  21. package/dist/animation/ik/ik_pole_constraint.js +123 -0
  22. package/dist/animation/ik/ik_pole_constraint.js.map +1 -0
  23. package/dist/animation/ik/ik_solver.js +48 -0
  24. package/dist/animation/ik/ik_solver.js.map +1 -0
  25. package/dist/animation/ik/ik_track.js +96 -0
  26. package/dist/animation/ik/ik_track.js.map +1 -0
  27. package/dist/animation/ik/ik_utils.js +270 -0
  28. package/dist/animation/ik/ik_utils.js.map +1 -0
  29. package/dist/animation/ik/two_bone_ik_solver.js +332 -0
  30. package/dist/animation/ik/two_bone_ik_solver.js.map +1 -0
  31. package/dist/animation/ik_modifier.js +61 -0
  32. package/dist/animation/ik_modifier.js.map +1 -0
  33. package/dist/animation/ik_postprocessor.js +71 -0
  34. package/dist/animation/ik_postprocessor.js.map +1 -0
  35. package/dist/animation/manual_transform_processor.js +156 -0
  36. package/dist/animation/manual_transform_processor.js.map +1 -0
  37. package/dist/animation/morphtarget.js +7 -1
  38. package/dist/animation/morphtarget.js.map +1 -1
  39. package/dist/animation/morphtrack.js +3 -3
  40. package/dist/animation/morphtrack.js.map +1 -1
  41. package/dist/animation/proptrack.js +37 -41
  42. package/dist/animation/proptrack.js.map +1 -1
  43. package/dist/animation/rotationtrack.js +0 -1
  44. package/dist/animation/rotationtrack.js.map +1 -1
  45. package/dist/animation/scaletrack.js +0 -1
  46. package/dist/animation/scaletrack.js.map +1 -1
  47. package/dist/animation/skeleton.js +57 -60
  48. package/dist/animation/skeleton.js.map +1 -1
  49. package/dist/animation/skeleton_modifier.js +38 -0
  50. package/dist/animation/skeleton_modifier.js.map +1 -0
  51. package/dist/animation/skeleton_postprocessor.js +50 -0
  52. package/dist/animation/skeleton_postprocessor.js.map +1 -0
  53. package/dist/animation/spring/multi_chain_spring_system.js +503 -0
  54. package/dist/animation/spring/multi_chain_spring_system.js.map +1 -0
  55. package/dist/animation/spring/spring_chain.js +103 -0
  56. package/dist/animation/spring/spring_chain.js.map +1 -0
  57. package/dist/animation/spring/spring_collider.js +247 -0
  58. package/dist/animation/spring/spring_collider.js.map +1 -0
  59. package/dist/animation/spring/spring_constraint.js +21 -0
  60. package/dist/animation/spring/spring_constraint.js.map +1 -0
  61. package/dist/animation/spring/spring_particle.js +20 -0
  62. package/dist/animation/spring/spring_particle.js.map +1 -0
  63. package/dist/animation/spring/spring_system.js +526 -0
  64. package/dist/animation/spring/spring_system.js.map +1 -0
  65. package/dist/animation/spring_modifier.js +45 -0
  66. package/dist/animation/spring_modifier.js.map +1 -0
  67. package/dist/animation/spring_postprocessor.js +54 -0
  68. package/dist/animation/spring_postprocessor.js.map +1 -0
  69. package/dist/animation/translationtrack.js +0 -1
  70. package/dist/animation/translationtrack.js.map +1 -1
  71. package/dist/app/api.js +13 -4
  72. package/dist/app/api.js.map +1 -1
  73. package/dist/app/app.js +13 -1
  74. package/dist/app/app.js.map +1 -1
  75. package/dist/app/engine.js +33 -45
  76. package/dist/app/engine.js.map +1 -1
  77. package/dist/app/inputmgr.js.map +1 -1
  78. package/dist/app/runtimescript.js.map +1 -1
  79. package/dist/app/screen.js +318 -0
  80. package/dist/app/screen.js.map +1 -0
  81. package/dist/app/scriptingsystem.js +10 -6
  82. package/dist/app/scriptingsystem.js.map +1 -1
  83. package/dist/app/scriptregistry.js +11 -22
  84. package/dist/app/scriptregistry.js.map +1 -1
  85. package/dist/asset/assetmanager.js +79 -58
  86. package/dist/asset/assetmanager.js.map +1 -1
  87. package/dist/asset/builtin.js +5 -5
  88. package/dist/asset/builtin.js.map +1 -1
  89. package/dist/asset/loaders/dds/dds.js +6 -2
  90. package/dist/asset/loaders/dds/dds.js.map +1 -1
  91. package/dist/asset/loaders/dds/dds_loader.js +1 -1
  92. package/dist/asset/loaders/dds/dds_loader.js.map +1 -1
  93. package/dist/asset/loaders/gltf/gltf_loader.js +14 -6
  94. package/dist/asset/loaders/gltf/gltf_loader.js.map +1 -1
  95. package/dist/asset/loaders/gltf/helpers.js +6 -2
  96. package/dist/asset/loaders/gltf/helpers.js.map +1 -1
  97. package/dist/asset/loaders/hdr/hdr.js +22 -15
  98. package/dist/asset/loaders/hdr/hdr.js.map +1 -1
  99. package/dist/asset/loaders/image/tga_Loader.js +2 -1
  100. package/dist/asset/loaders/image/tga_Loader.js.map +1 -1
  101. package/dist/asset/loaders/image/webimage_loader.js.map +1 -1
  102. package/dist/asset/loaders/loader.js +2 -2
  103. package/dist/asset/loaders/loader.js.map +1 -1
  104. package/dist/asset/model.js +9 -5
  105. package/dist/asset/model.js.map +1 -1
  106. package/dist/blitter/bilateralblur.js.map +1 -1
  107. package/dist/blitter/blitter.js +9 -11
  108. package/dist/blitter/blitter.js.map +1 -1
  109. package/dist/blitter/box.js +0 -1
  110. package/dist/blitter/box.js.map +1 -1
  111. package/dist/blitter/copy.js.map +1 -1
  112. package/dist/blitter/gaussianblur.js.map +1 -1
  113. package/dist/camera/base.js +1 -3
  114. package/dist/camera/base.js.map +1 -1
  115. package/dist/camera/camera.js +121 -37
  116. package/dist/camera/camera.js.map +1 -1
  117. package/dist/camera/fps.js +19 -17
  118. package/dist/camera/fps.js.map +1 -1
  119. package/dist/camera/orbit.js +45 -43
  120. package/dist/camera/orbit.js.map +1 -1
  121. package/dist/camera/orthocamera.js +27 -21
  122. package/dist/camera/orthocamera.js.map +1 -1
  123. package/dist/camera/perspectivecamera.js +28 -19
  124. package/dist/camera/perspectivecamera.js.map +1 -1
  125. package/dist/index.d.ts +15802 -15577
  126. package/dist/index.js +33 -11
  127. package/dist/index.js.map +1 -1
  128. package/dist/material/blinn.js.map +1 -1
  129. package/dist/material/grassmaterial.js.map +1 -1
  130. package/dist/material/lambert.js.map +1 -1
  131. package/dist/material/material.js +11 -5
  132. package/dist/material/material.js.map +1 -1
  133. package/dist/material/meshmaterial.js +10 -9
  134. package/dist/material/meshmaterial.js.map +1 -1
  135. package/dist/material/mixins/albedocolor.js.map +1 -1
  136. package/dist/material/mixins/foliage.js.map +1 -1
  137. package/dist/material/mixins/lightmodel/blinnphong.js +66 -4
  138. package/dist/material/mixins/lightmodel/blinnphong.js.map +1 -1
  139. package/dist/material/mixins/lightmodel/lambert.js.map +1 -1
  140. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js +7 -0
  141. package/dist/material/mixins/lightmodel/pbrblueprintmixin.js.map +1 -1
  142. package/dist/material/mixins/lightmodel/pbrmetallicroughness.js.map +1 -1
  143. package/dist/material/mixins/lightmodel/pbrspecularglossness.js.map +1 -1
  144. package/dist/material/mixins/lit.js +3 -3
  145. package/dist/material/mixins/lit.js.map +1 -1
  146. package/dist/material/mixins/pbr/brdf.js.map +1 -1
  147. package/dist/material/mixins/pbr/common.js.map +1 -1
  148. package/dist/material/mixins/texture.js +3 -0
  149. package/dist/material/mixins/texture.js.map +1 -1
  150. package/dist/material/mixins/vertexcolor.js.map +1 -1
  151. package/dist/material/particle.js.map +1 -1
  152. package/dist/material/pbrblueprint.js +180 -22
  153. package/dist/material/pbrblueprint.js.map +1 -1
  154. package/dist/material/pbrmr.js.map +1 -1
  155. package/dist/material/pbrsg.js.map +1 -1
  156. package/dist/material/shader/helper.js +41 -56
  157. package/dist/material/shader/helper.js.map +1 -1
  158. package/dist/material/sprite.js +301 -0
  159. package/dist/material/sprite.js.map +1 -0
  160. package/dist/material/sprite3d.js +301 -0
  161. package/dist/material/sprite3d.js.map +1 -0
  162. package/dist/material/sprite3d_std.js +116 -0
  163. package/dist/material/sprite3d_std.js.map +1 -0
  164. package/dist/material/sprite3dblueprint.js +235 -0
  165. package/dist/material/sprite3dblueprint.js.map +1 -0
  166. package/dist/material/sprite_std.js +116 -0
  167. package/dist/material/sprite_std.js.map +1 -0
  168. package/dist/material/spriteblueprint.js +235 -0
  169. package/dist/material/spriteblueprint.js.map +1 -0
  170. package/dist/material/terrain-cm.js +0 -1
  171. package/dist/material/terrain-cm.js.map +1 -1
  172. package/dist/material/unlit.js.map +1 -1
  173. package/dist/material/water.js.map +1 -1
  174. package/dist/posteffect/bloom.js.map +1 -1
  175. package/dist/posteffect/compositor.js.map +1 -1
  176. package/dist/posteffect/fxaa.js.map +1 -1
  177. package/dist/posteffect/grayscale.js.map +1 -1
  178. package/dist/posteffect/motionblur.js.map +1 -1
  179. package/dist/posteffect/posteffect.js.map +1 -1
  180. package/dist/posteffect/sao.js.map +1 -1
  181. package/dist/posteffect/ssr.js +7 -5
  182. package/dist/posteffect/ssr.js.map +1 -1
  183. package/dist/posteffect/taa.js.map +1 -1
  184. package/dist/posteffect/tonemap.js.map +1 -1
  185. package/dist/render/abuffer_oit.js +8 -6
  186. package/dist/render/abuffer_oit.js.map +1 -1
  187. package/dist/render/clipmap.js +0 -10
  188. package/dist/render/clipmap.js.map +1 -1
  189. package/dist/render/cluster_light.js +4 -4
  190. package/dist/render/cluster_light.js.map +1 -1
  191. package/dist/render/cull_visitor.js +15 -17
  192. package/dist/render/cull_visitor.js.map +1 -1
  193. package/dist/render/depthpass.js +3 -4
  194. package/dist/render/depthpass.js.map +1 -1
  195. package/dist/render/drawable.js +15 -0
  196. package/dist/render/drawable.js.map +1 -0
  197. package/dist/render/drawable_mixin.js +8 -4
  198. package/dist/render/drawable_mixin.js.map +1 -1
  199. package/dist/render/envlight.js.map +1 -1
  200. package/dist/render/fbm_wavegenerator.js +3 -1
  201. package/dist/render/fbm_wavegenerator.js.map +1 -1
  202. package/dist/render/fft_wavegenerator.js +67 -64
  203. package/dist/render/fft_wavegenerator.js.map +1 -1
  204. package/dist/render/fullscreenquad.js.map +1 -1
  205. package/dist/render/gerstner_wavegenerator.js +3 -1
  206. package/dist/render/gerstner_wavegenerator.js.map +1 -1
  207. package/dist/render/globalbindgroup_allocator.js +3 -1
  208. package/dist/render/globalbindgroup_allocator.js.map +1 -1
  209. package/dist/render/hzb.js +1 -2
  210. package/dist/render/hzb.js.map +1 -1
  211. package/dist/render/lightpass.js +13 -13
  212. package/dist/render/lightpass.js.map +1 -1
  213. package/dist/render/objectcolorpass.js +4 -7
  214. package/dist/render/objectcolorpass.js.map +1 -1
  215. package/dist/render/primitive.js +4 -5
  216. package/dist/render/primitive.js.map +1 -1
  217. package/dist/render/render_queue.js +10 -5
  218. package/dist/render/render_queue.js.map +1 -1
  219. package/dist/render/renderer.js +16 -22
  220. package/dist/render/renderer.js.map +1 -1
  221. package/dist/render/renderpass.js +27 -52
  222. package/dist/render/renderpass.js.map +1 -1
  223. package/dist/render/rendertarget.js +5 -0
  224. package/dist/render/rendertarget.js.map +1 -0
  225. package/dist/render/screenrendertarget.js +56 -0
  226. package/dist/render/screenrendertarget.js.map +1 -0
  227. package/dist/render/shadowmap_pass.js +4 -5
  228. package/dist/render/shadowmap_pass.js.map +1 -1
  229. package/dist/render/sky.js +16 -14
  230. package/dist/render/sky.js.map +1 -1
  231. package/dist/render/weightedblended_oit.js.map +1 -1
  232. package/dist/scene/basesprite.js +296 -0
  233. package/dist/scene/basesprite.js.map +1 -0
  234. package/dist/scene/batchgroup.js +4 -2
  235. package/dist/scene/batchgroup.js.map +1 -1
  236. package/dist/scene/environment.js +9 -10
  237. package/dist/scene/environment.js.map +1 -1
  238. package/dist/scene/graph_node.js.map +1 -1
  239. package/dist/scene/light.js +22 -4
  240. package/dist/scene/light.js.map +1 -1
  241. package/dist/scene/mesh.js +96 -26
  242. package/dist/scene/mesh.js.map +1 -1
  243. package/dist/scene/octree.js.map +1 -1
  244. package/dist/scene/particlesys.js +25 -22
  245. package/dist/scene/particlesys.js.map +1 -1
  246. package/dist/scene/raycast_visitor.js +0 -16
  247. package/dist/scene/raycast_visitor.js.map +1 -1
  248. package/dist/scene/scene.js +7 -4
  249. package/dist/scene/scene.js.map +1 -1
  250. package/dist/scene/scene_node.js +20 -35
  251. package/dist/scene/scene_node.js.map +1 -1
  252. package/dist/scene/sprite.js +18 -0
  253. package/dist/scene/sprite.js.map +1 -0
  254. package/dist/scene/sprite3d.js +18 -0
  255. package/dist/scene/sprite3d.js.map +1 -0
  256. package/dist/scene/terrain-cm/grass.js +5 -4
  257. package/dist/scene/terrain-cm/grass.js.map +1 -1
  258. package/dist/scene/terrain-cm/grassmaterial.js +3 -1
  259. package/dist/scene/terrain-cm/grassmaterial.js.map +1 -1
  260. package/dist/scene/terrain-cm/terrain-cm.js +65 -48
  261. package/dist/scene/terrain-cm/terrain-cm.js.map +1 -1
  262. package/dist/scene/water.js +35 -30
  263. package/dist/scene/water.js.map +1 -1
  264. package/dist/shaders/atmosphere.js +17 -29
  265. package/dist/shaders/atmosphere.js.map +1 -1
  266. package/dist/shaders/fog.js.map +1 -1
  267. package/dist/shaders/misc.js.map +1 -1
  268. package/dist/shaders/noise.js.map +1 -1
  269. package/dist/shaders/pbr.js.map +1 -1
  270. package/dist/shaders/shadow.js.map +1 -1
  271. package/dist/shaders/ssr.js.map +1 -1
  272. package/dist/shaders/temporal.js.map +1 -1
  273. package/dist/shaders/water.js.map +1 -1
  274. package/dist/shadow/esm.js +1 -1
  275. package/dist/shadow/esm.js.map +1 -1
  276. package/dist/shadow/pcf_opt.js.map +1 -1
  277. package/dist/shadow/pcf_pd.js.map +1 -1
  278. package/dist/shadow/shader.js +3 -1
  279. package/dist/shadow/shader.js.map +1 -1
  280. package/dist/shadow/shadow_impl.js.map +1 -1
  281. package/dist/shadow/shadowmapper.js +6 -18
  282. package/dist/shadow/shadowmapper.js.map +1 -1
  283. package/dist/shadow/ssm.js.map +1 -1
  284. package/dist/shadow/vsm.js.map +1 -1
  285. package/dist/shapes/box.js +9 -3
  286. package/dist/shapes/box.js.map +1 -1
  287. package/dist/shapes/cylinder.js +2 -2
  288. package/dist/shapes/cylinder.js.map +1 -1
  289. package/dist/shapes/plane.js +2 -2
  290. package/dist/shapes/plane.js.map +1 -1
  291. package/dist/shapes/shape.js +2 -1
  292. package/dist/shapes/shape.js.map +1 -1
  293. package/dist/shapes/sphere.js +2 -2
  294. package/dist/shapes/sphere.js.map +1 -1
  295. package/dist/shapes/tetrahedron.js +5 -6
  296. package/dist/shapes/tetrahedron.js.map +1 -1
  297. package/dist/shapes/torus.js +2 -2
  298. package/dist/shapes/torus.js.map +1 -1
  299. package/dist/utility/aabbtree.js +1 -1
  300. package/dist/utility/aabbtree.js.map +1 -1
  301. package/dist/utility/blueprint/common/constants.js +578 -104
  302. package/dist/utility/blueprint/common/constants.js.map +1 -1
  303. package/dist/utility/blueprint/common/math.js +471 -9
  304. package/dist/utility/blueprint/common/math.js.map +1 -1
  305. package/dist/utility/blueprint/common.js +1 -1
  306. package/dist/utility/blueprint/common.js.map +1 -1
  307. package/dist/utility/blueprint/material/func.js +9 -5
  308. package/dist/utility/blueprint/material/func.js.map +1 -1
  309. package/dist/utility/blueprint/material/inputs.js.map +1 -1
  310. package/dist/utility/blueprint/material/ir.js +288 -80
  311. package/dist/utility/blueprint/material/ir.js.map +1 -1
  312. package/dist/utility/blueprint/material/pbr.js +92 -4
  313. package/dist/utility/blueprint/material/pbr.js.map +1 -1
  314. package/dist/utility/blueprint/material/texture.js +62 -45
  315. package/dist/utility/blueprint/material/texture.js.map +1 -1
  316. package/dist/utility/blueprint/node.js +28 -1
  317. package/dist/utility/blueprint/node.js.map +1 -1
  318. package/dist/utility/bounding_volume.js.map +1 -1
  319. package/dist/utility/debug.js.map +1 -1
  320. package/dist/utility/draco/decoder.js.map +1 -1
  321. package/dist/utility/misc.js +1 -1
  322. package/dist/utility/misc.js.map +1 -1
  323. package/dist/utility/panorama.js.map +1 -1
  324. package/dist/utility/pmrem.js.map +1 -1
  325. package/dist/utility/rendermipmap.js.map +1 -1
  326. package/dist/utility/serialization/json.js +19 -15
  327. package/dist/utility/serialization/json.js.map +1 -1
  328. package/dist/utility/serialization/manager.js +89 -22
  329. package/dist/utility/serialization/manager.js.map +1 -1
  330. package/dist/utility/serialization/scene/animation.js +44 -41
  331. package/dist/utility/serialization/scene/animation.js.map +1 -1
  332. package/dist/utility/serialization/scene/batch.js +4 -3
  333. package/dist/utility/serialization/scene/batch.js.map +1 -1
  334. package/dist/utility/serialization/scene/camera.js +97 -9
  335. package/dist/utility/serialization/scene/camera.js.map +1 -1
  336. package/dist/utility/serialization/scene/common.js +102 -28
  337. package/dist/utility/serialization/scene/common.js.map +1 -1
  338. package/dist/utility/serialization/scene/light.js +14 -12
  339. package/dist/utility/serialization/scene/light.js.map +1 -1
  340. package/dist/utility/serialization/scene/material.js +216 -26
  341. package/dist/utility/serialization/scene/material.js.map +1 -1
  342. package/dist/utility/serialization/scene/mesh.js +71 -100
  343. package/dist/utility/serialization/scene/mesh.js.map +1 -1
  344. package/dist/utility/serialization/scene/misc.js +3 -2
  345. package/dist/utility/serialization/scene/misc.js.map +1 -1
  346. package/dist/utility/serialization/scene/node.js +42 -9
  347. package/dist/utility/serialization/scene/node.js.map +1 -1
  348. package/dist/utility/serialization/scene/particle.js +7 -5
  349. package/dist/utility/serialization/scene/particle.js.map +1 -1
  350. package/dist/utility/serialization/scene/primitive.js +18 -15
  351. package/dist/utility/serialization/scene/primitive.js.map +1 -1
  352. package/dist/utility/serialization/scene/scene.js +3 -2
  353. package/dist/utility/serialization/scene/scene.js.map +1 -1
  354. package/dist/utility/serialization/scene/sprite.js +164 -0
  355. package/dist/utility/serialization/scene/sprite.js.map +1 -0
  356. package/dist/utility/serialization/scene/terrain.js +8 -6
  357. package/dist/utility/serialization/scene/terrain.js.map +1 -1
  358. package/dist/utility/serialization/scene/water.js +11 -9
  359. package/dist/utility/serialization/scene/water.js.map +1 -1
  360. package/dist/utility/serialization/types.js +6 -0
  361. package/dist/utility/serialization/types.js.map +1 -0
  362. package/dist/utility/shprojector.js.map +1 -1
  363. package/dist/utility/textures/ggxlut.js.map +1 -1
  364. package/dist/utility/textures/gradientnoise.js.map +1 -1
  365. package/dist/utility/textures/randomnoise.js.map +1 -1
  366. package/dist/values.js +14 -14
  367. package/dist/values.js.map +1 -1
  368. package/package.json +80 -80
@@ -1 +1 @@
1
- {"version":3,"file":"constants.js","sources":["../../../../src/utility/blueprint/common/constants.ts"],"sourcesContent":["import type { SerializableClass } from '../../serialization';\r\nimport { getParamName } from '../common';\r\nimport { BaseGraphNode } from '../node';\r\n\r\n/**\r\n * Constant scalar (float) value node\r\n *\r\n * @remarks\r\n * Represents a single floating-point constant in the material graph.\r\n * Can be either a literal constant or exposed as a uniform parameter.\r\n *\r\n * When set as uniform:\r\n * - Generates a shader uniform variable\r\n * - Can be modified at runtime without recompiling the shader\r\n * - Useful for material parameters like roughness, metallic, etc.\r\n *\r\n * When set as literal:\r\n * - Value is baked into the shader code\r\n * - More efficient but requires shader recompilation to change\r\n *\r\n * @example\r\n * ```typescript\r\n * const roughness = new ConstantScalarNode();\r\n * roughness.x = 0.5;\r\n * roughness.isUniform = true;\r\n * roughness.paramName = 'u_roughness';\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class ConstantScalarNode extends BaseGraphNode {\r\n /** The scalar float value */\r\n private _value: number;\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /**\r\n * Creates a new constant scalar node\r\n *\r\n * @remarks\r\n * Initializes with a value of 0 and a single unnamed output slot.\r\n */\r\n constructor() {\r\n super();\r\n this._value = 0;\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [{ id: 1, name: '' }];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise the rounded numeric value\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform ? this._paramName : `${Math.round(this._value * 1000) / 1000}`;\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Defines how to serialize the isUniform flag, parameter name, and value.\r\n */\r\n static getSerializationCls(): SerializableClass {\r\n return {\r\n ctor: ConstantScalarNode,\r\n name: 'ConstantScalarNode',\r\n getProps() {\r\n return [\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantScalarNode, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantScalarNode, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantScalarNode, value) {\r\n value.str[0] = this.paramName;\r\n },\r\n set(this: ConstantScalarNode, value) {\r\n this.paramName = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantScalarNode, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantScalarNode, value) {\r\n this.x = value.num[0];\r\n }\r\n }\r\n ];\r\n }\r\n };\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (val !== this.paramName) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the scalar value\r\n */\r\n get x() {\r\n return this._value;\r\n }\r\n set x(val: number) {\r\n if (val !== this._value) {\r\n this._value = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate(): string {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for this node\r\n *\r\n * @returns 'float' for scalar output\r\n */\r\n protected getType(): string {\r\n return 'float';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 2D vector (vec2) value node\r\n *\r\n * @remarks\r\n * Represents a 2-component vector constant (e.g., UV coordinates, 2D positions).\r\n * Provides multiple output slots:\r\n * - Output 1: The full vec2 value\r\n * - Output 2: The x component (swizzle)\r\n * - Output 3: The y component (swizzle)\r\n *\r\n * Can be exposed as a uniform parameter for runtime modification.\r\n *\r\n * @example\r\n * ```typescript\r\n * const offset = new ConstantVec2Node();\r\n * offset.x = 0.5;\r\n * offset.y = 0.5;\r\n * offset.isUniform = true;\r\n * offset.paramName = 'u_uvOffset';\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class ConstantVec2Node extends BaseGraphNode {\r\n /** The 2D vector value [x, y] */\r\n private _value: number[];\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /**\r\n * Creates a new constant vec2 node\r\n *\r\n * @remarks\r\n * Initializes with [0, 0] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [0, 0];\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform\r\n ? this._paramName\r\n : `${Math.round(this._value[0] * 1000) / 1000},${Math.round(this._value[1] * 1000) / 1000}`;\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (val !== this._paramName) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: number) {\r\n if (val !== this._value[0]) {\r\n this._value[0] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: number) {\r\n if (val !== this._value[1]) {\r\n this._value[1] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n */\r\n static getSerializationCls(): SerializableClass {\r\n return {\r\n ctor: ConstantVec2Node,\r\n name: 'ConstantVec2Node',\r\n getProps() {\r\n return [\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantVec2Node, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantVec2Node, value) {\r\n value.str[0] = this.paramName;\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n this.paramName = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantVec2Node, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n this.x = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'float',\r\n get(this: ConstantVec2Node, value) {\r\n value.num[0] = this.y;\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n this.y = value.num[0];\r\n }\r\n }\r\n ];\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate(): string {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'float' for component outputs (id \\> 1), 'vec2' for the full vector\r\n */\r\n protected getType(id: number): string {\r\n return id > 1 ? 'float' : 'vec2';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 3D vector (vec3) value node\r\n *\r\n * @remarks\r\n * Represents a 3-component vector constant (e.g., RGB colors, 3D positions, normals).\r\n * Provides multiple output slots:\r\n * - Output 1: The full vec3 value\r\n * - Output 2: The x component (swizzle)\r\n * - Output 3: The y component (swizzle)\r\n * - Output 4: The z component (swizzle)\r\n *\r\n * Includes special 'rgb' serialization property for color picker integration.\r\n * Can be exposed as a uniform parameter for runtime modification.\r\n *\r\n * @example\r\n * ```typescript\r\n * const color = new ConstantVec3Node();\r\n * color.x = 1.0; // Red\r\n * color.y = 0.0; // Green\r\n * color.z = 0.0; // Blue\r\n * color.isUniform = true;\r\n * color.paramName = 'u_baseColor';\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class ConstantVec3Node extends BaseGraphNode {\r\n /** The 3D vector value [x, y, z] */\r\n private _value: number[];\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /**\r\n * Creates a new constant vec3 node\r\n *\r\n * @remarks\r\n * Initializes with [0, 0, 0] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [0, 0, 0];\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' },\r\n { id: 4, name: 'z', swizzle: 'z' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform\r\n ? this._paramName\r\n : `${Math.round(this._value[0] * 1000) / 1000},${Math.round(this._value[1] * 1000) / 1000},${\r\n Math.round(this._value[2] * 1000) / 1000\r\n }`;\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (val !== this._paramName) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: number) {\r\n if (val !== this._value[0]) {\r\n this._value[0] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: number) {\r\n if (val !== this._value[1]) {\r\n this._value[1] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the z component of the vector\r\n */\r\n get z() {\r\n return this._value[2];\r\n }\r\n set z(val: number) {\r\n if (val !== this._value[2]) {\r\n this._value[2] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Includes an 'rgb' property for color picker integration.\r\n */\r\n static getSerializationCls(): SerializableClass {\r\n return {\r\n ctor: ConstantVec3Node,\r\n name: 'ConstantVec3Node',\r\n getProps() {\r\n return [\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantVec3Node, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantVec3Node, value) {\r\n value.str[0] = this.paramName;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.paramName = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.x = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'float',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.y;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.y = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'z',\r\n type: 'float',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.z;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.z = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'rgb',\r\n type: 'rgb',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.x;\r\n value.num[1] = this.y;\r\n value.num[2] = this.z;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.x = value.num[0];\r\n this.y = value.num[1];\r\n this.z = value.num[2];\r\n }\r\n }\r\n ];\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate(): string {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'float' for component outputs (id \\> 1), 'vec3' for the full vector\r\n */\r\n protected getType(id: number): string {\r\n return id > 1 ? 'float' : 'vec3';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 4D vector (vec4) value node\r\n *\r\n * @remarks\r\n * Represents a 4-component vector constant (e.g., RGBA colors with alpha, 4D positions).\r\n * Provides multiple output slots:\r\n * - Output 1: The full vec4 value\r\n * - Output 2: The x component (swizzle)\r\n * - Output 3: The y component (swizzle)\r\n * - Output 4: The z component (swizzle)\r\n * - Output 5: The w component (swizzle)\r\n *\r\n * Includes special 'rgba' serialization property for color picker integration with alpha.\r\n * Can be exposed as a uniform parameter for runtime modification.\r\n *\r\n * @example\r\n * ```typescript\r\n * const color = new ConstantVec4Node();\r\n * color.x = 1.0; // Red\r\n * color.y = 0.5; // Green\r\n * color.z = 0.0; // Blue\r\n * color.w = 0.8; // Alpha\r\n * color.isUniform = true;\r\n * color.paramName = 'u_tintColor';\r\n * ```\r\n *\r\n * @public\r\n */\r\nexport class ConstantVec4Node extends BaseGraphNode {\r\n /** The 4D vector value [x, y, z, w] */\r\n private _value: number[];\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /**\r\n * Creates a new constant vec4 node\r\n *\r\n * @remarks\r\n * Initializes with [0, 0, 0, 0] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [0, 0, 0, 0];\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' },\r\n { id: 4, name: 'z', swizzle: 'z' },\r\n { id: 5, name: 'w', swizzle: 'w' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform\r\n ? this._paramName\r\n : `${Math.round(this._value[0] * 1000) / 1000},${Math.round(this._value[1] * 1000) / 1000},${\r\n Math.round(this._value[2] * 1000) / 1000\r\n },${Math.round(this._value[3] * 1000) / 1000}`;\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (val !== this._paramName) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: number) {\r\n if (val !== this._value[0]) {\r\n this._value[0] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: number) {\r\n if (val !== this._value[1]) {\r\n this._value[1] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the z component of the vector\r\n */\r\n get z() {\r\n return this._value[2];\r\n }\r\n set z(val: number) {\r\n if (val !== this._value[2]) {\r\n this._value[2] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the w component of the vector\r\n */\r\n get w() {\r\n return this._value[3];\r\n }\r\n set w(val: number) {\r\n if (val !== this._value[3]) {\r\n this._value[3] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Includes an 'rgba' property for color picker integration with alpha channel.\r\n */\r\n static getSerializationCls(): SerializableClass {\r\n return {\r\n ctor: ConstantVec4Node,\r\n name: 'ConstantVec4Node',\r\n getProps() {\r\n return [\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantVec4Node, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantVec4Node, value) {\r\n value.str[0] = this.paramName;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.paramName = value.str[0];\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.x = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.y;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.y = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'z',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.z;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.z = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'w',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.w;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.w = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'rgba',\r\n type: 'rgba',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.x;\r\n value.num[1] = this.y;\r\n value.num[2] = this.z;\r\n value.num[3] = this.w;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.x = value.num[0];\r\n this.y = value.num[1];\r\n this.z = value.num[2];\r\n this.w = value.num[3];\r\n }\r\n }\r\n ];\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate(): string {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'float' for component outputs (id \\> 1), 'vec4' for the full vector\r\n */\r\n protected getType(id: number): string {\r\n return id > 1 ? 'float' : 'vec4';\r\n }\r\n}\r\n"],"names":["ConstantScalarNode","BaseGraphNode","_value","_isUniform","_paramName","_outputs","id","name","toString","Math","round","getSerializationCls","ctor","getProps","type","get","value","bool","isUniform","set","str","paramName","num","x","val","getParamName","dispatchEvent","ConstantVec2Node","swizzle","y","getType","ConstantVec3Node","z","ConstantVec4Node","w"],"mappings":"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"}
1
+ {"version":3,"file":"constants.js","sources":["../../../../src/utility/blueprint/common/constants.ts"],"sourcesContent":["import { defineProps } from '../../serialization/types';\r\nimport { getParamName } from '../common';\r\nimport { BaseGraphNode } from '../node';\r\n\r\n/**\r\n * Constant scalar (float) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantScalarNode extends BaseGraphNode {\r\n /** The scalar float value */\r\n private _value: number;\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /**\r\n * Creates a new constant scalar node\r\n *\r\n * @remarks\r\n * Initializes with a value of 0 and a single unnamed output slot.\r\n */\r\n constructor() {\r\n super();\r\n this._value = 0;\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [{ id: 1, name: '' }];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise the rounded numeric value\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform ? this._paramName : `${Math.round(this._value * 1000) / 1000}`;\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Defines how to serialize the isUniform flag, parameter name, and value.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantScalarNode,\r\n name: 'ConstantScalarNode',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantScalarNode, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantScalarNode, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantScalarNode, value) {\r\n value.str[0] = this.paramName ? this.paramName.slice(2) : '';\r\n },\r\n set(this: ConstantScalarNode, value) {\r\n if (!/^[A-Za-z0-9_]+$/.test(value.str[0])) {\r\n console.log(`Invalid parameter name: ${value.str[0]}`);\r\n } else {\r\n this.paramName = `u_${value.str[0]}`;\r\n }\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantScalarNode, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantScalarNode, value) {\r\n this.x = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (this._paramName !== val) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the scalar value\r\n */\r\n get x() {\r\n return this._value;\r\n }\r\n set x(val: number) {\r\n if (val !== this._value) {\r\n this._value = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for this node\r\n *\r\n * @returns 'float' for scalar output\r\n */\r\n protected getType() {\r\n return 'float';\r\n }\r\n}\r\n\r\n/**\r\n * Constant scalar (bool) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantBooleanNode extends BaseGraphNode {\r\n /** The scalar boolean value */\r\n private _value: boolean;\r\n /**\r\n * Creates a new constant boolean node\r\n *\r\n * @remarks\r\n * Initializes with a value of false and a single unnamed output slot.\r\n */\r\n constructor() {\r\n super();\r\n this._value = false;\r\n this._outputs = [{ id: 1, name: '' }];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise the rounded numeric value\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return String(this._value);\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Defines how to serialize the isUniform flag, parameter name, and value.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantBooleanNode,\r\n name: 'ConstantBooleanNode',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'x',\r\n type: 'bool',\r\n get(this: ConstantBooleanNode, value) {\r\n value.bool[0] = this.x;\r\n },\r\n set(this: ConstantBooleanNode, value) {\r\n this.x = value.bool[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Gets the scalar value\r\n */\r\n get x() {\r\n return this._value;\r\n }\r\n set x(val: boolean) {\r\n if (!!val !== this._value) {\r\n this._value = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for this node\r\n *\r\n * @returns 'bool' for scalar output\r\n */\r\n protected getType() {\r\n return 'bool';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 2D vector (vec2) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantVec2Node extends BaseGraphNode {\r\n /** The 2D vector value [x, y] */\r\n private _value: number[];\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /**\r\n * Creates a new constant vec2 node\r\n *\r\n * @remarks\r\n * Initializes with [0, 0] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [0, 0];\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform\r\n ? this._paramName\r\n : `${Math.round(this._value[0] * 1000) / 1000},${Math.round(this._value[1] * 1000) / 1000}`;\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (this._paramName !== val) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: number) {\r\n if (val !== this._value[0]) {\r\n this._value[0] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: number) {\r\n if (val !== this._value[1]) {\r\n this._value[1] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantVec2Node,\r\n name: 'ConstantVec2Node',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantVec2Node, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantVec2Node, value) {\r\n value.str[0] = this.paramName ? this.paramName.slice(2) : '';\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n if (!/^[A-Za-z0-9_]+$/.test(value.str[0])) {\r\n console.log(`Invalid parameter name: ${value.str[0]}`);\r\n } else {\r\n this.paramName = `u_${value.str[0]}`;\r\n }\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantVec2Node, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n this.x = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'float',\r\n get(this: ConstantVec2Node, value) {\r\n value.num[0] = this.y;\r\n },\r\n set(this: ConstantVec2Node, value) {\r\n this.y = value.num[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'float' for component outputs (id \\> 1), 'vec2' for the full vector\r\n */\r\n protected getType(id: number) {\r\n return id > 1 ? 'float' : 'vec2';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 2D boolean vector (bvec2) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantBVec2Node extends BaseGraphNode {\r\n /** The 2D vector value [x, y] */\r\n private _value: boolean[];\r\n /**\r\n * Creates a new constant bvec2 node\r\n *\r\n * @remarks\r\n * Initializes with [false, false] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [false, false];\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return `${String(this._value[0])},${String(this._value[1])}`;\r\n }\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: boolean) {\r\n if (!!val !== this._value[0]) {\r\n this._value[0] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: boolean) {\r\n if (!!val !== this._value[1]) {\r\n this._value[1] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantBVec2Node,\r\n name: 'ConstantBVec2Node',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'x',\r\n type: 'bool',\r\n get(this: ConstantBVec2Node, value) {\r\n value.bool[0] = this.x;\r\n },\r\n set(this: ConstantBVec2Node, value) {\r\n this.x = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'bool',\r\n get(this: ConstantBVec2Node, value) {\r\n value.bool[0] = this.y;\r\n },\r\n set(this: ConstantBVec2Node, value) {\r\n this.y = value.bool[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'bool' for component outputs (id \\> 1), 'bvec2' for the full vector\r\n */\r\n protected getType(id: number) {\r\n return id > 1 ? 'bool' : 'bvec2';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 3D vector (vec3) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantVec3Node extends BaseGraphNode {\r\n /** The 3D vector value [x, y, z] */\r\n private _value: number[];\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /**\r\n * Creates a new constant vec3 node\r\n *\r\n * @remarks\r\n * Initializes with [0, 0, 0] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [0, 0, 0];\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' },\r\n { id: 4, name: 'z', swizzle: 'z' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform\r\n ? this._paramName\r\n : `${Math.round(this._value[0] * 1000) / 1000},${Math.round(this._value[1] * 1000) / 1000},${\r\n Math.round(this._value[2] * 1000) / 1000\r\n }`;\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (this._paramName !== val) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: number) {\r\n if (val !== this._value[0]) {\r\n this._value[0] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: number) {\r\n if (val !== this._value[1]) {\r\n this._value[1] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the z component of the vector\r\n */\r\n get z() {\r\n return this._value[2];\r\n }\r\n set z(val: number) {\r\n if (val !== this._value[2]) {\r\n this._value[2] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Includes an 'rgb' property for color picker integration.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantVec3Node,\r\n name: 'ConstantVec3Node',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantVec3Node, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantVec3Node, value) {\r\n value.str[0] = this.paramName ? this.paramName.slice(2) : '';\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n if (!/^[A-Za-z0-9_]+$/.test(value.str[0])) {\r\n console.log(`Invalid parameter name: ${value.str[0]}`);\r\n } else {\r\n this.paramName = `u_${value.str[0]}`;\r\n }\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.x = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'float',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.y;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.y = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'z',\r\n type: 'float',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.z;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.z = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'rgb',\r\n type: 'rgb',\r\n get(this: ConstantVec3Node, value) {\r\n value.num[0] = this.x;\r\n value.num[1] = this.y;\r\n value.num[2] = this.z;\r\n },\r\n set(this: ConstantVec3Node, value) {\r\n this.x = value.num[0];\r\n this.y = value.num[1];\r\n this.z = value.num[2];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'float' for component outputs (id \\> 1), 'vec3' for the full vector\r\n */\r\n protected getType(id: number) {\r\n return id > 1 ? 'float' : 'vec3';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 3D boolean vector (bvec3) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantBVec3Node extends BaseGraphNode {\r\n /** The 3D vector value [x, y, z] */\r\n private _value: boolean[];\r\n /**\r\n * Creates a new constant bvec3 node\r\n *\r\n * @remarks\r\n * Initializes with [false, false, false] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [false, false, false];\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' },\r\n { id: 4, name: 'z', swizzle: 'z' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return `${String(this._value[0])},${String(this._value[1])},${String(this._value[2])}`;\r\n }\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: boolean) {\r\n if (!!val !== this._value[0]) {\r\n this._value[0] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: boolean) {\r\n if (!!val !== this._value[1]) {\r\n this._value[1] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the z component of the vector\r\n */\r\n get z() {\r\n return this._value[2];\r\n }\r\n set z(val: boolean) {\r\n if (!!val !== this._value[2]) {\r\n this._value[2] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Includes an 'rgb' property for color picker integration.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantBVec3Node,\r\n name: 'ConstantBVec3Node',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'x',\r\n type: 'bool',\r\n get(this: ConstantBVec3Node, value) {\r\n value.bool[0] = this.x;\r\n },\r\n set(this: ConstantBVec3Node, value) {\r\n this.x = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'bool',\r\n get(this: ConstantBVec3Node, value) {\r\n value.bool[0] = this.y;\r\n },\r\n set(this: ConstantBVec3Node, value) {\r\n this.y = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'z',\r\n type: 'bool',\r\n get(this: ConstantBVec3Node, value) {\r\n value.bool[0] = this.z;\r\n },\r\n set(this: ConstantBVec3Node, value) {\r\n this.z = value.bool[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'bool' for component outputs (id \\> 1), 'bvec3' for the full vector\r\n */\r\n protected getType(id: number) {\r\n return id > 1 ? 'bool' : 'bvec3';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 4D vector (vec4) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantVec4Node extends BaseGraphNode {\r\n /** The 4D vector value [x, y, z, w] */\r\n private _value: number[];\r\n /** The uniform parameter name (only used when isUniform is true) */\r\n private _paramName: string;\r\n /** Whether this constant should be exposed as a uniform parameter */\r\n private _isUniform: boolean;\r\n /**\r\n * Creates a new constant vec4 node\r\n *\r\n * @remarks\r\n * Initializes with [0, 0, 0, 0] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [0, 0, 0, 0];\r\n this._isUniform = false;\r\n this._paramName = '';\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' },\r\n { id: 4, name: 'z', swizzle: 'z' },\r\n { id: 5, name: 'w', swizzle: 'w' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return this._isUniform\r\n ? this._paramName\r\n : `${Math.round(this._value[0] * 1000) / 1000},${Math.round(this._value[1] * 1000) / 1000},${\r\n Math.round(this._value[2] * 1000) / 1000\r\n },${Math.round(this._value[3] * 1000) / 1000}`;\r\n }\r\n /**\r\n * Gets whether this constant is exposed as a uniform parameter\r\n */\r\n get isUniform() {\r\n return this._isUniform;\r\n }\r\n set isUniform(val: boolean) {\r\n if (this._isUniform !== !!val) {\r\n this._isUniform = !!val;\r\n if (!this._paramName) {\r\n this._paramName = getParamName();\r\n }\r\n }\r\n }\r\n /**\r\n * Gets the uniform parameter name\r\n */\r\n get paramName() {\r\n return this._paramName;\r\n }\r\n set paramName(val: string) {\r\n if (this._paramName !== val) {\r\n this._paramName = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: number) {\r\n if (val !== this._value[0]) {\r\n this._value[0] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: number) {\r\n if (val !== this._value[1]) {\r\n this._value[1] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the z component of the vector\r\n */\r\n get z() {\r\n return this._value[2];\r\n }\r\n set z(val: number) {\r\n if (val !== this._value[2]) {\r\n this._value[2] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the w component of the vector\r\n */\r\n get w() {\r\n return this._value[3];\r\n }\r\n set w(val: number) {\r\n if (val !== this._value[3]) {\r\n this._value[3] = val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Includes an 'rgba' property for color picker integration with alpha channel.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantVec4Node,\r\n name: 'ConstantVec4Node',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'isUniform',\r\n type: 'bool',\r\n get(this: ConstantVec4Node, value) {\r\n value.bool[0] = this.isUniform;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.isUniform = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'paramName',\r\n type: 'string',\r\n get(this: ConstantVec4Node, value) {\r\n value.str[0] = this.paramName ? this.paramName.slice(2) : '';\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n if (!/^[A-Za-z0-9_]+$/.test(value.str[0])) {\r\n console.log(`Invalid parameter name: ${value.str[0]}`);\r\n } else {\r\n this.paramName = `u_${value.str[0]}`;\r\n }\r\n }\r\n },\r\n {\r\n name: 'x',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.x;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.x = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.y;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.y = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'z',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.z;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.z = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'w',\r\n type: 'float',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.w;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.w = value.num[0];\r\n }\r\n },\r\n {\r\n name: 'rgba',\r\n type: 'rgba',\r\n get(this: ConstantVec4Node, value) {\r\n value.num[0] = this.x;\r\n value.num[1] = this.y;\r\n value.num[2] = this.z;\r\n value.num[3] = this.w;\r\n },\r\n set(this: ConstantVec4Node, value) {\r\n this.x = value.num[0];\r\n this.y = value.num[1];\r\n this.z = value.num[2];\r\n this.w = value.num[3];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'float' for component outputs (id \\> 1), 'vec4' for the full vector\r\n */\r\n protected getType(id: number) {\r\n return id > 1 ? 'float' : 'vec4';\r\n }\r\n}\r\n\r\n/**\r\n * Constant 4D boolean vector (bvec4) value node\r\n *\r\n * @public\r\n */\r\nexport class ConstantBVec4Node extends BaseGraphNode {\r\n /** The 4D vector value [x, y, z, w] */\r\n private _value: boolean[];\r\n /**\r\n * Creates a new constant vec4 node\r\n *\r\n * @remarks\r\n * Initializes with [false, false, false, false] and creates output slots for the full vector\r\n * and individual components.\r\n */\r\n constructor() {\r\n super();\r\n this._value = [false, false, false, false];\r\n this._outputs = [\r\n { id: 1, name: '' },\r\n { id: 2, name: 'x', swizzle: 'x' },\r\n { id: 3, name: 'y', swizzle: 'y' },\r\n { id: 4, name: 'z', swizzle: 'z' },\r\n { id: 5, name: 'w', swizzle: 'w' }\r\n ];\r\n }\r\n /**\r\n * Generates a string representation of this node\r\n *\r\n * @returns The parameter name if uniform, otherwise comma-separated values\r\n *\r\n * @remarks\r\n * Values are rounded to 3 decimal places for display purposes.\r\n */\r\n toString() {\r\n return `${String(this._value[0])},${String(this._value[1])},${String(\r\n this._value[2]\r\n )},${String(this._value[3])}`;\r\n }\r\n /**\r\n * Gets the x component of the vector\r\n */\r\n get x() {\r\n return this._value[0];\r\n }\r\n set x(val: boolean) {\r\n if (!!val !== this._value[0]) {\r\n this._value[0] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the y component of the vector\r\n */\r\n get y() {\r\n return this._value[1];\r\n }\r\n set y(val: boolean) {\r\n if (!!val !== this._value[1]) {\r\n this._value[1] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the z component of the vector\r\n */\r\n get z() {\r\n return this._value[2];\r\n }\r\n set z(val: boolean) {\r\n if (!!val !== this._value[2]) {\r\n this._value[2] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the w component of the vector\r\n */\r\n get w() {\r\n return this._value[3];\r\n }\r\n set w(val: boolean) {\r\n if (!!val !== this._value[3]) {\r\n this._value[3] = !!val;\r\n this.dispatchEvent('changed');\r\n }\r\n }\r\n /**\r\n * Gets the serialization descriptor for this node type\r\n *\r\n * @returns Serialization class descriptor with property definitions\r\n *\r\n * @remarks\r\n * Used by the serialization system to save/load node graphs.\r\n * Includes an 'rgba' property for color picker integration with alpha channel.\r\n */\r\n static getSerializationCls() {\r\n return {\r\n ctor: ConstantBVec4Node,\r\n name: 'ConstantBVec4Node',\r\n getProps() {\r\n return defineProps([\r\n {\r\n name: 'x',\r\n type: 'bool',\r\n get(this: ConstantBVec4Node, value) {\r\n value.bool[0] = this.x;\r\n },\r\n set(this: ConstantBVec4Node, value) {\r\n this.x = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'y',\r\n type: 'bool',\r\n get(this: ConstantBVec4Node, value) {\r\n value.bool[0] = this.y;\r\n },\r\n set(this: ConstantBVec4Node, value) {\r\n this.y = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'z',\r\n type: 'bool',\r\n get(this: ConstantBVec4Node, value) {\r\n value.bool[0] = this.z;\r\n },\r\n set(this: ConstantBVec4Node, value) {\r\n this.z = value.bool[0];\r\n }\r\n },\r\n {\r\n name: 'w',\r\n type: 'bool',\r\n get(this: ConstantBVec4Node, value) {\r\n value.bool[0] = this.w;\r\n },\r\n set(this: ConstantBVec4Node, value) {\r\n this.w = value.bool[0];\r\n }\r\n }\r\n ]);\r\n }\r\n };\r\n }\r\n /**\r\n * Validates the node state\r\n *\r\n * @returns Empty string (always valid)\r\n *\r\n * @remarks\r\n * Constant nodes have no validation requirements.\r\n */\r\n protected validate() {\r\n return '';\r\n }\r\n /**\r\n * Gets the output type for a specific output slot\r\n *\r\n * @param id - The output slot ID\r\n * @returns 'bool' for component outputs (id \\> 1), 'bvec4' for the full vector\r\n */\r\n protected getType(id: number) {\r\n return id > 1 ? 'bool' : 'bvec4';\r\n }\r\n}\r\n"],"names":["ConstantScalarNode","BaseGraphNode","_value","_isUniform","_paramName","_outputs","id","name","toString","Math","round","getSerializationCls","ctor","getProps","defineProps","type","get","value","bool","isUniform","set","str","paramName","slice","test","console","log","num","x","val","getParamName","dispatchEvent","ConstantBooleanNode","String","ConstantVec2Node","swizzle","y","getType","ConstantBVec2Node","ConstantVec3Node","z","ConstantBVec3Node","ConstantVec4Node","w","ConstantBVec4Node"],"mappings":"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"}