@awesome-flow/noise 0.9.5 → 0.11.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 (264) hide show
  1. package/dist/abstract/index.cjs +7 -11
  2. package/dist/abstract/index.d.cts +4 -140
  3. package/dist/abstract/index.d.mts +4 -0
  4. package/dist/abstract/index.mjs +3 -0
  5. package/dist/abstract-3knbwDkz.cjs +1768 -0
  6. package/dist/abstract-3knbwDkz.cjs.map +1 -0
  7. package/dist/{abstract-Dhf_tSuO.js → abstract-DNmiw2MC.mjs} +562 -234
  8. package/dist/abstract-DNmiw2MC.mjs.map +1 -0
  9. package/dist/generators-BF_0y3pd.cjs +337 -0
  10. package/dist/generators-BF_0y3pd.cjs.map +1 -0
  11. package/dist/{generators-BzkwG_6g.js → generators-DSwgPqW2.mjs} +35 -110
  12. package/dist/generators-DSwgPqW2.mjs.map +1 -0
  13. package/dist/groups-BiuJL0DE.mjs +13 -0
  14. package/dist/groups-BiuJL0DE.mjs.map +1 -0
  15. package/dist/groups-DF2FTSBC.cjs +18 -0
  16. package/dist/groups-DF2FTSBC.cjs.map +1 -0
  17. package/dist/index-B09XEo3I.d.cts +496 -0
  18. package/dist/index-B09XEo3I.d.cts.map +1 -0
  19. package/dist/index-BGF1mgi8.d.mts +98 -0
  20. package/dist/index-BGF1mgi8.d.mts.map +1 -0
  21. package/dist/{modules/index.d.ts → index-BbHM1kxc.d.cts} +2 -4
  22. package/dist/index-BbHM1kxc.d.cts.map +1 -0
  23. package/dist/index-BgWB8f25.d.cts +53 -0
  24. package/dist/index-BgWB8f25.d.cts.map +1 -0
  25. package/dist/index-BhJiS2YS.d.mts +496 -0
  26. package/dist/index-BhJiS2YS.d.mts.map +1 -0
  27. package/dist/index-BwLhWefF.d.cts +43 -0
  28. package/dist/index-BwLhWefF.d.cts.map +1 -0
  29. package/dist/index-Bxg8IB-v.d.cts +26 -0
  30. package/dist/index-Bxg8IB-v.d.cts.map +1 -0
  31. package/dist/index-C0hF9uhX.d.mts +12 -0
  32. package/dist/index-C0hF9uhX.d.mts.map +1 -0
  33. package/dist/{index-C7MZeUpC.d.cts → index-CBvjQM3o.d.cts} +4 -2
  34. package/dist/index-CBvjQM3o.d.cts.map +1 -0
  35. package/dist/index-CDJdO0Cl.d.mts +11 -0
  36. package/dist/index-CDJdO0Cl.d.mts.map +1 -0
  37. package/dist/index-CiHIo5l6.d.cts +89 -0
  38. package/dist/index-CiHIo5l6.d.cts.map +1 -0
  39. package/dist/index-CkAu8Jje.d.mts +43 -0
  40. package/dist/index-CkAu8Jje.d.mts.map +1 -0
  41. package/dist/index-DQ5-4LVA.d.mts +26 -0
  42. package/dist/index-DQ5-4LVA.d.mts.map +1 -0
  43. package/dist/index-NvNXQIOG.d.mts +89 -0
  44. package/dist/index-NvNXQIOG.d.mts.map +1 -0
  45. package/dist/index-Rk69VHHb.d.cts +98 -0
  46. package/dist/index-Rk69VHHb.d.cts.map +1 -0
  47. package/dist/index-aAcFA6x8.d.mts +53 -0
  48. package/dist/index-aAcFA6x8.d.mts.map +1 -0
  49. package/dist/modifiers-BLV074OG.cjs +406 -0
  50. package/dist/modifiers-BLV074OG.cjs.map +1 -0
  51. package/dist/{modifiers-MSA4z6Gq.js → modifiers-I7YC0m3o.mjs} +72 -198
  52. package/dist/modifiers-I7YC0m3o.mjs.map +1 -0
  53. package/dist/module-group-template-CE4b0J24.d.cts +42 -0
  54. package/dist/module-group-template-CE4b0J24.d.cts.map +1 -0
  55. package/dist/module-group-template-D5doDEoa.d.mts +42 -0
  56. package/dist/module-group-template-D5doDEoa.d.mts.map +1 -0
  57. package/dist/modules/index.cjs +20 -2
  58. package/dist/modules/index.cjs.map +1 -0
  59. package/dist/modules/index.d.cts +2 -14
  60. package/dist/modules/index.d.mts +2 -0
  61. package/dist/{normalize-noise-module-CTxqByn9.js → modules/index.mjs} +1 -1
  62. package/dist/modules/index.mjs.map +1 -0
  63. package/dist/{node-props-CkXCceW9.d.ts → node-props-CoXzPLD6.d.cts} +11 -10
  64. package/dist/node-props-CoXzPLD6.d.cts.map +1 -0
  65. package/dist/{node-props-wMYPlIzZ.d.cts → node-props-GcUBDDY0.d.mts} +11 -10
  66. package/dist/node-props-GcUBDDY0.d.mts.map +1 -0
  67. package/dist/nodes/generators/index.cjs +2 -1
  68. package/dist/nodes/generators/index.d.cts +2 -3
  69. package/dist/nodes/generators/index.d.mts +2 -0
  70. package/dist/nodes/generators/{index.js → index.mjs} +1 -1
  71. package/dist/nodes/groups/index.cjs +2 -1
  72. package/dist/nodes/groups/index.d.cts +2 -2
  73. package/dist/nodes/groups/index.d.mts +2 -0
  74. package/dist/nodes/groups/index.mjs +3 -0
  75. package/dist/nodes/index.cjs +10 -9
  76. package/dist/nodes/index.d.cts +7 -9
  77. package/dist/nodes/index.d.mts +7 -0
  78. package/dist/nodes/index.mjs +8 -0
  79. package/dist/nodes/modifiers/index.cjs +2 -2
  80. package/dist/nodes/modifiers/index.d.cts +2 -3
  81. package/dist/nodes/modifiers/index.d.mts +2 -0
  82. package/dist/nodes/modifiers/index.mjs +3 -0
  83. package/dist/nodes/output/index.cjs +3 -7
  84. package/dist/nodes/output/index.d.cts +2 -2
  85. package/dist/nodes/output/index.d.mts +2 -0
  86. package/dist/nodes/output/index.mjs +3 -0
  87. package/dist/nodes/selectors/index.cjs +4 -8
  88. package/dist/nodes/selectors/index.d.cts +2 -3
  89. package/dist/nodes/selectors/index.d.mts +2 -0
  90. package/dist/nodes/selectors/index.mjs +3 -0
  91. package/dist/nodes/transformers/index.cjs +2 -1
  92. package/dist/nodes/transformers/index.d.cts +2 -3
  93. package/dist/nodes/transformers/index.d.mts +2 -0
  94. package/dist/nodes/transformers/index.mjs +3 -0
  95. package/dist/position-grid-template-Da_-z-NN.d.cts +79 -0
  96. package/dist/position-grid-template-Da_-z-NN.d.cts.map +1 -0
  97. package/dist/position-grid-template-FY_7BJcV.d.mts +79 -0
  98. package/dist/position-grid-template-FY_7BJcV.d.mts.map +1 -0
  99. package/dist/selectors-35pwVJ7Z.cjs +92 -0
  100. package/dist/selectors-35pwVJ7Z.cjs.map +1 -0
  101. package/dist/selectors-BHPJTidb.mjs +81 -0
  102. package/dist/selectors-BHPJTidb.mjs.map +1 -0
  103. package/dist/templates/generators/index.cjs +2 -7
  104. package/dist/templates/generators/index.d.cts +2 -4
  105. package/dist/templates/generators/index.d.mts +2 -0
  106. package/dist/templates/generators/index.mjs +3 -0
  107. package/dist/templates/groups/index.cjs +2 -7
  108. package/dist/templates/groups/index.d.cts +2 -3
  109. package/dist/templates/groups/index.d.mts +2 -0
  110. package/dist/templates/groups/index.mjs +3 -0
  111. package/dist/templates/index.cjs +9 -13
  112. package/dist/templates/index.d.cts +4 -14
  113. package/dist/templates/index.d.mts +4 -0
  114. package/dist/templates/index.mjs +9 -0
  115. package/dist/templates/modifiers/index.cjs +2 -7
  116. package/dist/templates/modifiers/index.d.cts +2 -4
  117. package/dist/templates/modifiers/index.d.mts +2 -0
  118. package/dist/templates/modifiers/index.mjs +3 -0
  119. package/dist/templates/output/index.cjs +3 -8
  120. package/dist/templates/output/index.d.cts +2 -3
  121. package/dist/templates/output/index.d.mts +2 -0
  122. package/dist/templates/output/index.mjs +3 -0
  123. package/dist/templates/selectors/index.cjs +2 -7
  124. package/dist/templates/selectors/index.d.cts +2 -4
  125. package/dist/templates/selectors/index.d.mts +2 -0
  126. package/dist/templates/selectors/index.mjs +3 -0
  127. package/dist/templates/transformers/index.cjs +2 -7
  128. package/dist/templates/transformers/index.d.cts +2 -4
  129. package/dist/templates/transformers/index.d.mts +2 -0
  130. package/dist/templates/transformers/index.mjs +3 -0
  131. package/dist/{transformers-Cpxm1ER8.js → transformers-D9B9IjR_.mjs} +11 -90
  132. package/dist/transformers-D9B9IjR_.mjs.map +1 -0
  133. package/dist/transformers-D9SfPky8.cjs +226 -0
  134. package/dist/transformers-D9SfPky8.cjs.map +1 -0
  135. package/package.json +26 -24
  136. package/dist/abstract/index.d.cts.map +0 -1
  137. package/dist/abstract/index.d.ts +0 -140
  138. package/dist/abstract/index.d.ts.map +0 -1
  139. package/dist/abstract/index.js +0 -8
  140. package/dist/abstract-Db8fFoLp.cjs +0 -1423
  141. package/dist/abstract-Db8fFoLp.cjs.map +0 -1
  142. package/dist/abstract-Dhf_tSuO.js.map +0 -1
  143. package/dist/chunk-CUT6urMc.cjs +0 -30
  144. package/dist/generators-BzkwG_6g.js.map +0 -1
  145. package/dist/generators-CEKtVh81.cjs +0 -0
  146. package/dist/generators-D3RjZdMN.cjs +0 -413
  147. package/dist/generators-D3RjZdMN.cjs.map +0 -1
  148. package/dist/generators-DUbGjGwn.js +0 -0
  149. package/dist/groups-7QhtZ7S3.js +0 -0
  150. package/dist/groups-BIS2AF5M.cjs +0 -32
  151. package/dist/groups-BIS2AF5M.cjs.map +0 -1
  152. package/dist/groups-CH_lk8Aw.js +0 -26
  153. package/dist/groups-CH_lk8Aw.js.map +0 -1
  154. package/dist/groups-_x04PMtP.cjs +0 -0
  155. package/dist/index-0fK2DhR9.d.ts +0 -96
  156. package/dist/index-0fK2DhR9.d.ts.map +0 -1
  157. package/dist/index-B5F3AfVc.d.ts +0 -1
  158. package/dist/index-BAvw94zl.d.ts +0 -9
  159. package/dist/index-BAvw94zl.d.ts.map +0 -1
  160. package/dist/index-BLREDRDJ.d.cts +0 -1
  161. package/dist/index-BQGb02a-.d.cts +0 -1
  162. package/dist/index-BQbubdsk.d.ts +0 -89
  163. package/dist/index-BQbubdsk.d.ts.map +0 -1
  164. package/dist/index-Be7jjS77.d.ts +0 -1
  165. package/dist/index-BlgxGbc0.d.cts +0 -89
  166. package/dist/index-BlgxGbc0.d.cts.map +0 -1
  167. package/dist/index-C7MZeUpC.d.cts.map +0 -1
  168. package/dist/index-CLcwj8U0.d.ts +0 -1
  169. package/dist/index-CUPkUUOR.d.ts +0 -1
  170. package/dist/index-CnAUb7AL.d.cts +0 -24
  171. package/dist/index-CnAUb7AL.d.cts.map +0 -1
  172. package/dist/index-CtCMUyZA.d.cts +0 -1
  173. package/dist/index-DAwMsCZ3.d.ts +0 -1
  174. package/dist/index-DHdW2oFJ.d.ts +0 -51
  175. package/dist/index-DHdW2oFJ.d.ts.map +0 -1
  176. package/dist/index-DOvrmvAP.d.cts +0 -1
  177. package/dist/index-Dh6J9gb5.d.cts +0 -1
  178. package/dist/index-DiHZ0kDx.d.ts +0 -41
  179. package/dist/index-DiHZ0kDx.d.ts.map +0 -1
  180. package/dist/index-DjNzlSLZ.d.cts +0 -41
  181. package/dist/index-DjNzlSLZ.d.cts.map +0 -1
  182. package/dist/index-Dpmi5zcN.d.cts +0 -1
  183. package/dist/index-DtihvA2Y.d.cts +0 -96
  184. package/dist/index-DtihvA2Y.d.cts.map +0 -1
  185. package/dist/index-I2m6W13H.d.ts +0 -1
  186. package/dist/index-QAtBiMxG.d.cts +0 -1
  187. package/dist/index-kr8Wk7v5.d.ts +0 -1
  188. package/dist/index-nJ2Hzacu.d.ts +0 -24
  189. package/dist/index-nJ2Hzacu.d.ts.map +0 -1
  190. package/dist/index-p2iXZqXH.d.cts +0 -51
  191. package/dist/index-p2iXZqXH.d.cts.map +0 -1
  192. package/dist/modifiers-BFuezug6.js +0 -0
  193. package/dist/modifiers-BPTSn-15.cjs +0 -0
  194. package/dist/modifiers-DU7AkD-K.cjs +0 -545
  195. package/dist/modifiers-DU7AkD-K.cjs.map +0 -1
  196. package/dist/modifiers-MSA4z6Gq.js.map +0 -1
  197. package/dist/module-group-template-8oC4dg0a.d.ts +0 -11
  198. package/dist/module-group-template-8oC4dg0a.d.ts.map +0 -1
  199. package/dist/module-group-template-CBWW-oGM.d.cts +0 -11
  200. package/dist/module-group-template-CBWW-oGM.d.cts.map +0 -1
  201. package/dist/modules/index.d.cts.map +0 -1
  202. package/dist/modules/index.d.ts.map +0 -1
  203. package/dist/modules/index.js +0 -3
  204. package/dist/node-props-CkXCceW9.d.ts.map +0 -1
  205. package/dist/node-props-wMYPlIzZ.d.cts.map +0 -1
  206. package/dist/nodes/generators/index.d.ts +0 -3
  207. package/dist/nodes/groups/index.d.ts +0 -2
  208. package/dist/nodes/groups/index.js +0 -3
  209. package/dist/nodes/index.d.ts +0 -9
  210. package/dist/nodes/index.js +0 -8
  211. package/dist/nodes/modifiers/index.d.ts +0 -3
  212. package/dist/nodes/modifiers/index.js +0 -4
  213. package/dist/nodes/output/index.d.ts +0 -2
  214. package/dist/nodes/output/index.js +0 -8
  215. package/dist/nodes/selectors/index.d.ts +0 -3
  216. package/dist/nodes/selectors/index.js +0 -8
  217. package/dist/nodes/transformers/index.d.ts +0 -3
  218. package/dist/nodes/transformers/index.js +0 -3
  219. package/dist/noise-select-template-DySK_9N4.d.ts +0 -18
  220. package/dist/noise-select-template-DySK_9N4.d.ts.map +0 -1
  221. package/dist/noise-select-template-NyFIrMMB.d.cts +0 -18
  222. package/dist/noise-select-template-NyFIrMMB.d.cts.map +0 -1
  223. package/dist/noise-terrace-template-00K3BKMq.d.ts +0 -60
  224. package/dist/noise-terrace-template-00K3BKMq.d.ts.map +0 -1
  225. package/dist/noise-terrace-template-9_PoAyoY.d.cts +0 -60
  226. package/dist/noise-terrace-template-9_PoAyoY.d.cts.map +0 -1
  227. package/dist/noise-turbulence-template-CMhGn5Ja.d.cts +0 -63
  228. package/dist/noise-turbulence-template-CMhGn5Ja.d.cts.map +0 -1
  229. package/dist/noise-turbulence-template-Xv-hmmfh.d.ts +0 -63
  230. package/dist/noise-turbulence-template-Xv-hmmfh.d.ts.map +0 -1
  231. package/dist/normalize-noise-module-CTxqByn9.js.map +0 -1
  232. package/dist/normalize-noise-module-U3fMmZRj.cjs +0 -26
  233. package/dist/normalize-noise-module-U3fMmZRj.cjs.map +0 -1
  234. package/dist/output-CsgQ-PfN.js +0 -0
  235. package/dist/output-DhHW36T8.cjs +0 -0
  236. package/dist/position-grid-template-2Acjbquv.d.ts +0 -66
  237. package/dist/position-grid-template-2Acjbquv.d.ts.map +0 -1
  238. package/dist/position-grid-template-DWH5cUR0.d.cts +0 -66
  239. package/dist/position-grid-template-DWH5cUR0.d.cts.map +0 -1
  240. package/dist/position-logger-template-CvH32Xjm.d.ts +0 -29
  241. package/dist/position-logger-template-CvH32Xjm.d.ts.map +0 -1
  242. package/dist/position-logger-template-DPBhlahQ.d.cts +0 -29
  243. package/dist/position-logger-template-DPBhlahQ.d.cts.map +0 -1
  244. package/dist/selectors-DOtoPc8O.cjs +0 -0
  245. package/dist/selectors-DPitHA56.js +0 -0
  246. package/dist/templates/generators/index.d.ts +0 -4
  247. package/dist/templates/generators/index.js +0 -9
  248. package/dist/templates/groups/index.d.ts +0 -3
  249. package/dist/templates/groups/index.js +0 -9
  250. package/dist/templates/index.d.ts +0 -14
  251. package/dist/templates/index.js +0 -14
  252. package/dist/templates/modifiers/index.d.ts +0 -4
  253. package/dist/templates/modifiers/index.js +0 -9
  254. package/dist/templates/output/index.d.ts +0 -3
  255. package/dist/templates/output/index.js +0 -9
  256. package/dist/templates/selectors/index.d.ts +0 -4
  257. package/dist/templates/selectors/index.js +0 -9
  258. package/dist/templates/transformers/index.d.ts +0 -4
  259. package/dist/templates/transformers/index.js +0 -9
  260. package/dist/transformers-C-NV_u9j.cjs +0 -324
  261. package/dist/transformers-C-NV_u9j.cjs.map +0 -1
  262. package/dist/transformers-CbfR4wDy.js +0 -0
  263. package/dist/transformers-Cpxm1ER8.js.map +0 -1
  264. package/dist/transformers-iRDXBonP.cjs +0 -0
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-Db8fFoLp.cjs","names":["NodeContainer","Text","Divider","Stack","handleData: Record<NoiseHandleType, ComputedPositionsData[] | ComputedModuleData[]>","NoiseHandleType","noise: PositionNoiseValue[]","NodeContainer","HandlesIncomingDataStatus","Text","NodeContainer","Stack","Group","NodeContainer","Text","Divider","Stack","incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>","NoiseSourceControlHandle","module","Blend","NodeContainer","HandlesIncomingDataStatus","incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>","NoiseSourceControlHandle","module","Select","NodeContainer","Stack","Group","NumberInput","HandlesIncomingDataStatus","Position","CoreHandleType","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","CoreHandleType","NoiseHandleType","Position","CoreHandleType","NoiseHandleType","Position","CoreHandleType","NoiseHandleType","Position","CoreHandleType","NoiseHandleType","Position","CoreHandleType","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","CoreTemplateGroup","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","NoiseCombineType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","NoiseSourceControlHandle","Position","NoiseHandleType","NoiseSourceControlHandle","Position","NoiseHandleType","DisplacementHandle","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","Position","NoiseHandleType","CoreHandleType","ModuleGroupNode","PositionConstNode","PositionGridNode","NoiseOutputNode","NoiseRawTextureNode","NoiseLoggerNode","PositionsLoggerNode","NoiseConstNode","NoiseBillowNode","NoiseCheckerboardNode","NoiseCylindersNode","NoisePerlinNode","NoiseRidgedMultiNode","NoiseSpheresNode","NoiseVoronoiNode","NoiseCombineNode","NoiseClampNode","NoiseAbsNode","NoiseNormalizeNode","NoiseCurveNode","NoiseExponentNode","NoiseInvertNode","NoiseScaleBiasNode","NoiseTerraceNode","NoiseBlendNode","NoiseSelectNode","NoiseDisplaceNode","NoiseRotatePointNode","NoiseScalePointNode","NoiseTranslatePointNode","NoiseTurbulenceNode"],"sources":["../src/nodes/output/noise-logger-node.tsx","../src/nodes/output/noise-output-node.tsx","../src/nodes/output/noise-raw-texture-node.tsx","../src/nodes/output/positions-logger-node.tsx","../src/nodes/selectors/noise-blend-node.tsx","../src/nodes/selectors/noise-select-node.tsx","../src/abstract/templates.ts","../src/templates/generators/noise-billow-template.ts","../src/templates/generators/noise-checkerboard-template.ts","../src/templates/generators/noise-const-template.ts","../src/templates/generators/noise-cylinders-template.ts","../src/templates/generators/noise-perlin-template.ts","../src/templates/generators/noise-ridgedmulti-template.ts","../src/templates/generators/noise-spheres-template.ts","../src/templates/generators/noise-voronoi-template.ts","../src/templates/generators/position-const-template.ts","../src/templates/generators/position-grid-template.ts","../src/templates/groups/module-group-template.ts","../src/templates/modifiers/noise-abs-template.ts","../src/templates/modifiers/noise-clamp-template.ts","../src/templates/modifiers/noise-combine-template.ts","../src/templates/modifiers/noise-curve-template.ts","../src/templates/modifiers/noise-exponent-template.ts","../src/templates/modifiers/noise-invert-template.ts","../src/templates/modifiers/noise-normalize-template.ts","../src/templates/modifiers/noise-scalebias-template.ts","../src/templates/modifiers/noise-terrace-template.ts","../src/templates/output/noise-logger-template.ts","../src/templates/output/noise-output-template.ts","../src/templates/output/noise-raw-texture-template.ts","../src/templates/output/position-logger-template.ts","../src/templates/selectors/noise-blend-template.ts","../src/templates/selectors/noise-select-template.ts","../src/templates/transformers/noise-displace-template.ts","../src/templates/transformers/noise-rotate-point-template.ts","../src/templates/transformers/noise-scale-point-template.ts","../src/templates/transformers/noise-translate-point-template.ts","../src/templates/transformers/noise-turbulence-template.ts","../src/abstract/node-types.ts"],"sourcesContent":["import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { useIncomingComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Divider, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useMemo } from 'react';\nimport { ComputedNoiseData } from '../../abstract/node-props';\n\nfunction NoiseLoggerNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const incoming = useIncomingComputedData<ComputedNoiseData>(id);\n const noise = useMemo(() => incoming?.map((p) => p.noise).flat(), [incoming]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Text>Size: {noise?.length || 0}</Text>\n <Divider h={5} />\n <Stack>\n {noise?.map((v, i) => (\n <Text key={i}>\n {v.position?.x}:{v.position?.y}:{v.position?.z}: {v.value}\n </Text>\n ))}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseLoggerNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useState } from 'react';\nimport { NoiseHandleType } from '../../abstract';\nimport {\n ComputedModuleData,\n ComputedNoiseData,\n ComputedPositionsData,\n PositionNoiseValue\n} from '../../abstract/node-props';\n\nfunction NoiseOutputNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const [size, setSize] = useState(0);\n\n const updateComputedData = useUpdateNodeComputedData<ComputedNoiseData>();\n\n const onDataUpdated = useCallback(\n (handleData: Record<NoiseHandleType, ComputedPositionsData[] | ComputedModuleData[]>) => {\n const incomingPositions = handleData[NoiseHandleType.position] as ComputedPositionsData[];\n const incomingModule = handleData[NoiseHandleType.module] as ComputedModuleData[];\n\n if (incomingPositions?.length && incomingModule?.length && incomingModule[0]?.module) {\n const { module } = incomingModule[0];\n\n const noise: PositionNoiseValue[] = [];\n\n for (const input of incomingPositions) {\n for (const position of input.positions) {\n const value = module.getValue(position.x, position.y, position.z);\n\n noise.push({\n position,\n value\n });\n }\n }\n\n updateComputedData(id, { noise, module });\n setSize(noise.length);\n }\n },\n [updateComputedData, id]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <HandlesIncomingDataStatus\n nodeId={id}\n handles={data.handles}\n groupBy=\"dataType\"\n onDataUpdated={onDataUpdated}\n type=\"target\"\n resetComputedData\n />\n <Text mt={5}>Noise points: {size}</Text>\n </NodeContainer>\n );\n}\n\nexport default NoiseOutputNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { useIncomingComputedData, useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { ComputedNoiseData, ComputedNoiseTextureData } from '../../abstract/node-props';\n\nfunction NoiseRawTextureNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedNoiseTextureData>();\n\n const [dataLength, setDataLength] = useState(0);\n const [resolution, setResolution] = useState(0);\n\n const incoming = useIncomingComputedData<ComputedNoiseData>(id);\n const noise = useMemo(() => incoming?.map((p) => p.noise).flat(), [incoming]);\n\n useEffect(() => {\n if (noise?.length) {\n const size = Math.ceil(Math.sqrt(noise.length));\n\n const colors = noise.map((n) => [n.value * 255, n.value * 255, n.value * 255, 255]).flat();\n const dataArray = new Uint8Array(size * size * 4);\n dataArray.set(colors);\n\n setResolution(size);\n setDataLength(dataArray.length);\n\n updateComputedData(id, {\n textureData: dataArray,\n textureResolutionX: size,\n textureResolutionY: size\n });\n }\n }, [noise, updateComputedData, id]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n Resolution: {resolution}x{resolution}\n </Group>\n <Group>Input Length: {noise?.length || 0}</Group>\n <Group>\n Output Length ({resolution}*{resolution}*4): {dataLength}\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseRawTextureNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { useIncomingComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Divider, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useMemo } from 'react';\nimport { ComputedPositionsData } from '../../abstract/node-props';\n\nfunction PositionsLoggerNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const incoming = useIncomingComputedData<ComputedPositionsData>(id);\n\n const positions = useMemo(() => {\n return incoming?.map((p) => p.positions).flat();\n }, [incoming]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Text>Size: {positions?.length || 0}</Text>\n <Divider h={5} />\n <Stack>\n {positions?.map((v, i) => (\n <Text key={i}>\n {v.x}:{v.y}:{v.z}\n </Text>\n ))}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default PositionsLoggerNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Blend } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { NoiseSourceControlHandle } from '../../abstract';\nimport { ComputedModuleData } from '../../abstract/node-props';\n\nfunction NoiseBlendNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onDataUpdated = useCallback(\n (incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>) => {\n const incomingSources = incomingData[NoiseSourceControlHandle.source];\n const incomingControl = incomingData[NoiseSourceControlHandle.control];\n if (incomingSources?.length >= 2 && incomingControl?.length) {\n const module = new Blend(\n incomingSources[0].module,\n incomingSources[1].module,\n incomingControl[0].module\n );\n\n updateComputedData(id, { module });\n }\n },\n [id, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <HandlesIncomingDataStatus\n nodeId={id}\n handles={data.handles}\n groupBy=\"dataId\"\n onDataUpdated={onDataUpdated}\n type=\"target\"\n resetComputedData\n />\n </NodeContainer>\n );\n}\n\nexport default NoiseBlendNode;\n","import { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Select } from 'libnoise-simplex-ts';\nimport { useCallback, useEffect, useState } from 'react';\nimport { NoiseSourceControlHandle } from '../../abstract';\nimport { ComputedModuleData, NodeSelectNoiseData } from '../../abstract/node-props';\n\nfunction NoiseSelectNode({ id, selected, data, type }: NodeProps<Node<NodeSelectNoiseData>>) {\n const [edgeFalloff, setEdgeFalloff] = useState(data.edgeFalloff);\n const [lowerBound, setLowerBound] = useState(data.lowerBound);\n const [upperBound, setUpperBound] = useState(data.upperBound);\n\n const updateNodeData = useUpdateNodeData<NodeSelectNoiseData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n updateNodeData(id, { edgeFalloff, lowerBound, upperBound });\n }, [edgeFalloff, lowerBound, upperBound, id, updateNodeData]);\n\n const onDataUpdated = useCallback(\n (incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>) => {\n const incomingSources = incomingData[NoiseSourceControlHandle.source];\n const incomingControl = incomingData[NoiseSourceControlHandle.control];\n\n if (incomingSources?.length >= 2 && incomingControl?.length) {\n const module = new Select(\n incomingSources[0].module,\n incomingSources[1].module,\n incomingControl[0].module,\n edgeFalloff,\n lowerBound,\n upperBound\n );\n\n updateComputedData(id, { module });\n }\n },\n [updateComputedData, id, edgeFalloff, lowerBound, upperBound]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n Edge Falloff:\n <NumberInput\n size=\"xs\"\n w={100}\n value={edgeFalloff}\n onChange={(e) => setEdgeFalloff(Number(e))}\n step={0.1}\n />\n </Group>\n <Group>\n Lower Bound:\n <NumberInput\n size=\"xs\"\n w={100}\n value={lowerBound}\n onChange={(e) => setLowerBound(Number(e))}\n step={0.1}\n />\n </Group>\n <Group>\n Upper Bound:\n <NumberInput\n size=\"xs\"\n w={100}\n value={upperBound}\n onChange={(e) => setUpperBound(Number(e))}\n step={0.1}\n />\n </Group>\n <HandlesIncomingDataStatus\n nodeId={id}\n handles={data.handles}\n groupBy=\"dataId\"\n onDataUpdated={onDataUpdated}\n type=\"target\"\n resetComputedData\n />\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseSelectNode;\n","export enum NoiseTemplateGroup {\n positions = 'Positions',\n output = 'Output',\n noiseGenerators = 'Noise Generators',\n noiseModifiers = 'Noise Modifiers',\n noiseSelectors = 'Noise Selectors',\n noiseTransformers = 'Noise Transformers'\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeFBMNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseBillowNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeFBMNoiseData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.noiseBillow,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Billow Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 5,\n persistence: 0.5,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseCheckerboardNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseCheckerboard,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Checkerboard Noise'\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeConstNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseConstNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeConstNoiseData> = {\n type: NoiseNodeType.noiseConst,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Const Value Noise',\n noise: 0,\n min: -1,\n max: 1\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeCylindersNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseCylindersNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCylindersNoiseData> = {\n type: NoiseNodeType.noiseCylinders,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Cylinders Noise',\n frequency: 0.1\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeFBMNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoisePerlinNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeFBMNoiseData> = {\n type: NoiseNodeType.noisePerlin,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Perlin Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 5,\n persistence: 0.5,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeRidgedNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseRidgedMultiNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeRidgedNoiseData> = {\n type: NoiseNodeType.noiseRidgedMulti,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Ridged Multi Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 6,\n offset: 1.0,\n gain: 2.0,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeSpheresNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseSpheresNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeSpheresNoiseData> = {\n type: NoiseNodeType.noiseSpheres,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Spheres Noise',\n frequency: 0.1\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeVoronoiNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseVoronoiNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeVoronoiNoiseData> = {\n type: NoiseNodeType.noiseVoronoi,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Voronoi Noise',\n frequency: 0.1,\n displacement: 1.0,\n distance: true,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodePositionData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class PositionConstNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodePositionData> = {\n type: NoiseNodeType.position,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Position Output',\n position: { x: 0, y: 0, z: 0 }\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.position,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeGridData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class PositionGridNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeGridData> = {\n type: NoiseNodeType.grid,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Grid Output',\n center: { x: 0, y: 0, z: 0 },\n radius: 1\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.position,\n connection: 'source'\n }\n ]\n };\n}\n","import {\n BasicNodeData,\n CoreTemplateGroup,\n ITemplateFactory,\n NodeTemplate\n} from '@awesome-flow/core/abstract';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class ModuleGroupNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.groupModule,\n group: CoreTemplateGroup.groups,\n data: {\n title: 'Modules Group',\n isGroup: true,\n initialSize: {\n width: 300,\n height: 200\n },\n collapsedSize: {\n width: 300,\n height: 80\n }\n },\n handles: [\n {\n position: Position.Bottom,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1,\n hideOnCollapse: true\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseAbsNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseAbs,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Abs Noise'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeClampNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseClampNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeClampNoiseData> = {\n type: NoiseNodeType.noiseClamp,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Clamp Noise',\n lowerBound: -1,\n upperBound: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeCombineNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseCombineType } from '../../abstract/operations';\n\nexport class NoiseCombineNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCombineNoiseData> = {\n type: NoiseNodeType.noiseCombine,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Combine Noise',\n operation: NoiseCombineType.add\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 2\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeCurveNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseCurveNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCurveNoiseData> = {\n type: NoiseNodeType.noiseCurve,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Curve',\n points: []\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeExponentNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseExponentNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeExponentNoiseData> = {\n type: NoiseNodeType.noiseExponent,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Exponent',\n exponent: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseInvertNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseInvert,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Invert Noise'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeNormalizeNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseNormalizeNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeNormalizeNoiseData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.noiseNormalize,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Normalize Noise',\n intervalStart: -1,\n intervalEnd: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeScaleBiasNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseScaleBiasNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeScaleBiasNoiseData> = {\n type: NoiseNodeType.noiseScaleBias,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Scale/Bias Noise',\n scale: 1.0,\n bias: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeTerraceNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseTerraceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTerraceNoiseData> = {\n type: NoiseNodeType.noiseTerrace,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Terrace',\n points: []\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseLoggerNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseLogger,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Noise Logger'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.noise,\n connection: 'target'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseOutputNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseOutput,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Noise Output'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.position,\n connection: 'target'\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.noise,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseRawTextureTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.textureData,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Texture Data'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.noise,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.texture,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class PositionLoggerNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.positionLogger,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Position Logger'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.position,\n connection: 'target'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType, NoiseSourceControlHandle } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseBlendNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseBlend,\n group: NoiseTemplateGroup.noiseSelectors,\n data: {\n title: 'Noise Blend'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Modules',\n dataId: NoiseSourceControlHandle.source,\n maxConnections: 2,\n minConnections: 2\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.control,\n connection: 'target',\n label: 'Control Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.output,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType, NoiseSourceControlHandle } from '../../abstract/handle-types';\nimport { NodeSelectNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseSelectNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeSelectNoiseData> = {\n type: NoiseNodeType.noiseSelect,\n group: NoiseTemplateGroup.noiseSelectors,\n data: {\n title: 'Noise Select',\n edgeFalloff: 0.0,\n lowerBound: -1.0,\n upperBound: 1.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.source,\n connection: 'target',\n label: 'Source Modules',\n maxConnections: 2,\n minConnections: 2\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.control,\n connection: 'target',\n label: 'Control Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.output,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport {\n DisplacementHandle,\n DisplacementModuleHandle,\n NoiseHandleType\n} from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseDisplaceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData, Omit<DisplacementModuleHandle, 'handleId'>> = {\n type: NoiseNodeType.noiseDisplace,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Displace'\n },\n handles: [\n {\n position: Position.Left,\n connection: 'target',\n label: 'Source Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.sourceModule,\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'X Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.xModule,\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'Y Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.yModule,\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'Z Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.zModule,\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.output,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeRotatePointNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseRotatePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeRotatePointNoiseData> = {\n type: NoiseNodeType.noiseRotatePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Rotate Point',\n xAngle: 0.0,\n yAngle: 0.0,\n zAngle: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeScalePointNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseScalePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeScalePointNoiseData> = {\n type: NoiseNodeType.noiseScalePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Scale Point',\n xScale: 1.0,\n yScale: 1.0,\n zScale: 1.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeTranslatePointNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseTranslatePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTranslatePointNoiseData> = {\n type: NoiseNodeType.noiseTranslatePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Translate Point',\n translateX: 0.0,\n translateY: 0.0,\n translateZ: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeTurbulenceNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseTurbulenceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTurbulenceNoiseData> = {\n type: NoiseNodeType.noiseTurbulence,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Turbulence',\n frequency: 1.0,\n power: 1.0,\n roughness: 1.0,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n label: 'Variable Properties',\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory } from '@awesome-flow/core/abstract';\nimport { NodeTypes } from '@xyflow/react';\nimport { ModuleGroupNode } from '../nodes';\nimport NoiseBillowNode from '../nodes/generators/noise-billow-node';\nimport NoiseCheckerboardNode from '../nodes/generators/noise-checkerboard-node';\nimport NoiseConstNode from '../nodes/generators/noise-const-node';\nimport NoiseCylindersNode from '../nodes/generators/noise-cylinders-node';\nimport NoisePerlinNode from '../nodes/generators/noise-perlin-node';\nimport NoiseRidgedMultiNode from '../nodes/generators/noise-ridgedmulti-node';\nimport NoiseSpheresNode from '../nodes/generators/noise-spheres-node';\nimport NoiseVoronoiNode from '../nodes/generators/noise-voronoi-node';\nimport PositionConstNode from '../nodes/generators/position-const-node';\nimport PositionGridNode from '../nodes/generators/position-grid-node';\nimport NoiseAbsNode from '../nodes/modifiers/noise-abs-node';\nimport NoiseClampNode from '../nodes/modifiers/noise-clamp-node';\nimport NoiseCombineNode from '../nodes/modifiers/noise-combine-node';\nimport NoiseCurveNode from '../nodes/modifiers/noise-curve-node';\nimport NoiseExponentNode from '../nodes/modifiers/noise-exponent-node';\nimport NoiseInvertNode from '../nodes/modifiers/noise-invert-node';\nimport NoiseNormalizeNode from '../nodes/modifiers/noise-normalize-node';\nimport NoiseScaleBiasNode from '../nodes/modifiers/noise-scale-bias-node';\nimport NoiseTerraceNode from '../nodes/modifiers/noise-terrace-node';\nimport NoiseLoggerNode from '../nodes/output/noise-logger-node';\nimport NoiseOutputNode from '../nodes/output/noise-output-node';\nimport NoiseRawTextureNode from '../nodes/output/noise-raw-texture-node';\nimport PositionsLoggerNode from '../nodes/output/positions-logger-node';\nimport NoiseBlendNode from '../nodes/selectors/noise-blend-node';\nimport NoiseSelectNode from '../nodes/selectors/noise-select-node';\nimport NoiseDisplaceNode from '../nodes/transformers/noise-displace-node';\nimport NoiseRotatePointNode from '../nodes/transformers/noise-rotate-point-node';\nimport NoiseScalePointNode from '../nodes/transformers/noise-scale-point-node';\nimport NoiseTranslatePointNode from '../nodes/transformers/noise-translate-point-node';\nimport NoiseTurbulenceNode from '../nodes/transformers/noise-turbulence-node';\nimport { NoiseBillowNodeTemplateFactory } from '../templates/generators/noise-billow-template';\nimport { NoiseCheckerboardNodeTemplateFactory } from '../templates/generators/noise-checkerboard-template';\nimport { NoiseConstNodeTemplateFactory } from '../templates/generators/noise-const-template';\nimport { NoiseCylindersNodeTemplateFactory } from '../templates/generators/noise-cylinders-template';\nimport { NoisePerlinNodeTemplateFactory } from '../templates/generators/noise-perlin-template';\nimport { NoiseRidgedMultiNodeTemplateFactory } from '../templates/generators/noise-ridgedmulti-template';\nimport { NoiseSpheresNodeTemplateFactory } from '../templates/generators/noise-spheres-template';\nimport { NoiseVoronoiNodeTemplateFactory } from '../templates/generators/noise-voronoi-template';\nimport { PositionConstNodeTemplateFactory } from '../templates/generators/position-const-template';\nimport { PositionGridNodeTemplateFactory } from '../templates/generators/position-grid-template';\nimport { ModuleGroupNodeTemplateFactory } from '../templates/groups/module-group-template';\nimport { NoiseAbsNodeTemplateFactory } from '../templates/modifiers/noise-abs-template';\nimport { NoiseClampNodeTemplateFactory } from '../templates/modifiers/noise-clamp-template';\nimport { NoiseCombineNodeTemplateFactory } from '../templates/modifiers/noise-combine-template';\nimport { NoiseCurveNodeTemplateFactory } from '../templates/modifiers/noise-curve-template';\nimport { NoiseExponentNodeTemplateFactory } from '../templates/modifiers/noise-exponent-template';\nimport { NoiseInvertNodeTemplateFactory } from '../templates/modifiers/noise-invert-template';\nimport { NoiseNormalizeNodeTemplateFactory } from '../templates/modifiers/noise-normalize-template';\nimport { NoiseScaleBiasNodeTemplateFactory } from '../templates/modifiers/noise-scalebias-template';\nimport { NoiseTerraceNodeTemplateFactory } from '../templates/modifiers/noise-terrace-template';\nimport { NoiseLoggerNodeTemplateFactory } from '../templates/output/noise-logger-template';\nimport { NoiseOutputNodeTemplateFactory } from '../templates/output/noise-output-template';\nimport { NoiseRawTextureTemplateFactory } from '../templates/output/noise-raw-texture-template';\nimport { PositionLoggerNodeTemplateFactory } from '../templates/output/position-logger-template';\nimport { NoiseBlendNodeTemplateFactory } from '../templates/selectors/noise-blend-template';\nimport { NoiseSelectNodeTemplateFactory } from '../templates/selectors/noise-select-template';\nimport { NoiseDisplaceNodeTemplateFactory } from '../templates/transformers/noise-displace-template';\nimport { NoiseRotatePointNodeTemplateFactory } from '../templates/transformers/noise-rotate-point-template';\nimport { NoiseScalePointNodeTemplateFactory } from '../templates/transformers/noise-scale-point-template';\nimport { NoiseTranslatePointNodeTemplateFactory } from '../templates/transformers/noise-translate-point-template';\nimport { NoiseTurbulenceNodeTemplateFactory } from '../templates/transformers/noise-turbulence-template';\n\nexport enum NoiseNodeType {\n position = 'position',\n grid = 'grid',\n textureData = 'texture-data',\n groupModule = 'group-module',\n positionLogger = 'position-logger',\n noiseLogger = 'noise-logger',\n noiseOutput = 'noise-output',\n noiseConst = 'noise-constant',\n noiseBillow = 'noise-billow',\n noiseCheckerboard = 'noise-checkerboard',\n noiseNormalize = 'noise-normalize',\n noiseCylinders = 'noise-cylinders',\n noisePerlin = 'noise-perlin',\n noiseRidgedMulti = 'noise-ridged-multi',\n noiseSpheres = 'noise-spheres',\n noiseVoronoi = 'noise-voronoi',\n noiseCombine = 'noise-combiner',\n noiseClamp = 'noise-clamp',\n noiseAbs = 'noise-abs',\n noiseCurve = 'noise-curve',\n noiseExponent = 'noise-exponent',\n noiseInvert = 'noise-invert',\n noiseScaleBias = 'noise-scale-bias',\n noiseTerrace = 'noise-terrace',\n noiseBlend = 'noise-blend',\n noiseSelect = 'noise-select',\n noiseDisplace = 'noise-displace',\n noiseRotatePoint = 'noise-rotate-point',\n noiseScalePoint = 'noise-scale-point',\n noiseTranslatePoint = 'noise-translate-point',\n noiseTurbulence = 'noise-turbulence'\n}\n\nexport const noiseNodeTypes = {\n [NoiseNodeType.groupModule]: ModuleGroupNode,\n [NoiseNodeType.position]: PositionConstNode,\n [NoiseNodeType.grid]: PositionGridNode,\n [NoiseNodeType.noiseOutput]: NoiseOutputNode,\n [NoiseNodeType.textureData]: NoiseRawTextureNode,\n [NoiseNodeType.noiseLogger]: NoiseLoggerNode,\n [NoiseNodeType.positionLogger]: PositionsLoggerNode,\n [NoiseNodeType.noiseConst]: NoiseConstNode,\n [NoiseNodeType.noiseBillow]: NoiseBillowNode,\n [NoiseNodeType.noiseCheckerboard]: NoiseCheckerboardNode,\n [NoiseNodeType.noiseCylinders]: NoiseCylindersNode,\n [NoiseNodeType.noisePerlin]: NoisePerlinNode,\n [NoiseNodeType.noiseRidgedMulti]: NoiseRidgedMultiNode,\n [NoiseNodeType.noiseSpheres]: NoiseSpheresNode,\n [NoiseNodeType.noiseVoronoi]: NoiseVoronoiNode,\n [NoiseNodeType.noiseCombine]: NoiseCombineNode,\n [NoiseNodeType.noiseClamp]: NoiseClampNode,\n [NoiseNodeType.noiseAbs]: NoiseAbsNode,\n [NoiseNodeType.noiseNormalize]: NoiseNormalizeNode,\n [NoiseNodeType.noiseCurve]: NoiseCurveNode,\n [NoiseNodeType.noiseExponent]: NoiseExponentNode,\n [NoiseNodeType.noiseInvert]: NoiseInvertNode,\n [NoiseNodeType.noiseScaleBias]: NoiseScaleBiasNode,\n [NoiseNodeType.noiseTerrace]: NoiseTerraceNode,\n [NoiseNodeType.noiseBlend]: NoiseBlendNode,\n [NoiseNodeType.noiseSelect]: NoiseSelectNode,\n [NoiseNodeType.noiseDisplace]: NoiseDisplaceNode,\n [NoiseNodeType.noiseRotatePoint]: NoiseRotatePointNode,\n [NoiseNodeType.noiseScalePoint]: NoiseScalePointNode,\n [NoiseNodeType.noiseTranslatePoint]: NoiseTranslatePointNode,\n [NoiseNodeType.noiseTurbulence]: NoiseTurbulenceNode\n} satisfies NodeTypes;\n\nexport const noiseNodeTemplates = {\n [NoiseNodeType.noiseOutput]: new NoiseOutputNodeTemplateFactory(),\n [NoiseNodeType.noiseBillow]: new NoiseBillowNodeTemplateFactory(),\n [NoiseNodeType.noiseCheckerboard]: new NoiseCheckerboardNodeTemplateFactory(),\n [NoiseNodeType.noiseNormalize]: new NoiseNormalizeNodeTemplateFactory(),\n [NoiseNodeType.noiseLogger]: new NoiseLoggerNodeTemplateFactory(),\n [NoiseNodeType.noiseConst]: new NoiseConstNodeTemplateFactory(),\n [NoiseNodeType.position]: new PositionConstNodeTemplateFactory(),\n [NoiseNodeType.positionLogger]: new PositionLoggerNodeTemplateFactory(),\n [NoiseNodeType.grid]: new PositionGridNodeTemplateFactory(),\n [NoiseNodeType.textureData]: new NoiseRawTextureTemplateFactory(),\n [NoiseNodeType.noiseCylinders]: new NoiseCylindersNodeTemplateFactory(),\n [NoiseNodeType.noisePerlin]: new NoisePerlinNodeTemplateFactory(),\n [NoiseNodeType.noiseRidgedMulti]: new NoiseRidgedMultiNodeTemplateFactory(),\n [NoiseNodeType.noiseSpheres]: new NoiseSpheresNodeTemplateFactory(),\n [NoiseNodeType.noiseVoronoi]: new NoiseVoronoiNodeTemplateFactory(),\n [NoiseNodeType.noiseCombine]: new NoiseCombineNodeTemplateFactory(),\n [NoiseNodeType.noiseClamp]: new NoiseClampNodeTemplateFactory(),\n [NoiseNodeType.noiseAbs]: new NoiseAbsNodeTemplateFactory(),\n [NoiseNodeType.noiseCurve]: new NoiseCurveNodeTemplateFactory(),\n [NoiseNodeType.noiseExponent]: new NoiseExponentNodeTemplateFactory(),\n [NoiseNodeType.noiseInvert]: new NoiseInvertNodeTemplateFactory(),\n [NoiseNodeType.noiseScaleBias]: new NoiseScaleBiasNodeTemplateFactory(),\n [NoiseNodeType.noiseTerrace]: new NoiseTerraceNodeTemplateFactory(),\n [NoiseNodeType.noiseBlend]: new NoiseBlendNodeTemplateFactory(),\n [NoiseNodeType.noiseSelect]: new NoiseSelectNodeTemplateFactory(),\n [NoiseNodeType.noiseDisplace]: new NoiseDisplaceNodeTemplateFactory(),\n [NoiseNodeType.noiseRotatePoint]: new NoiseRotatePointNodeTemplateFactory(),\n [NoiseNodeType.noiseScalePoint]: new NoiseScalePointNodeTemplateFactory(),\n [NoiseNodeType.noiseTranslatePoint]: new NoiseTranslatePointNodeTemplateFactory(),\n [NoiseNodeType.noiseTurbulence]: new NoiseTurbulenceNodeTemplateFactory(),\n [NoiseNodeType.groupModule]: new ModuleGroupNodeTemplateFactory()\n} satisfies Record<NoiseNodeType, ITemplateFactory>;\n"],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"abstract-Dhf_tSuO.js","names":["handleData: Record<NoiseHandleType, ComputedPositionsData[] | ComputedModuleData[]>","noise: PositionNoiseValue[]","incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>","incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>","ModuleGroupNode","PositionConstNode","PositionGridNode","NoiseOutputNode","NoiseRawTextureNode","NoiseLoggerNode","PositionsLoggerNode","NoiseConstNode","NoiseBillowNode","NoiseCheckerboardNode","NoiseCylindersNode","NoisePerlinNode","NoiseRidgedMultiNode","NoiseSpheresNode","NoiseVoronoiNode","NoiseCombineNode","NoiseClampNode","NoiseAbsNode","NoiseNormalizeNode","NoiseCurveNode","NoiseExponentNode","NoiseInvertNode","NoiseScaleBiasNode","NoiseTerraceNode","NoiseBlendNode","NoiseSelectNode","NoiseDisplaceNode","NoiseRotatePointNode","NoiseScalePointNode","NoiseTranslatePointNode","NoiseTurbulenceNode"],"sources":["../src/nodes/output/noise-logger-node.tsx","../src/nodes/output/noise-output-node.tsx","../src/nodes/output/noise-raw-texture-node.tsx","../src/nodes/output/positions-logger-node.tsx","../src/nodes/selectors/noise-blend-node.tsx","../src/nodes/selectors/noise-select-node.tsx","../src/abstract/templates.ts","../src/templates/generators/noise-billow-template.ts","../src/templates/generators/noise-checkerboard-template.ts","../src/templates/generators/noise-const-template.ts","../src/templates/generators/noise-cylinders-template.ts","../src/templates/generators/noise-perlin-template.ts","../src/templates/generators/noise-ridgedmulti-template.ts","../src/templates/generators/noise-spheres-template.ts","../src/templates/generators/noise-voronoi-template.ts","../src/templates/generators/position-const-template.ts","../src/templates/generators/position-grid-template.ts","../src/templates/groups/module-group-template.ts","../src/templates/modifiers/noise-abs-template.ts","../src/templates/modifiers/noise-clamp-template.ts","../src/templates/modifiers/noise-combine-template.ts","../src/templates/modifiers/noise-curve-template.ts","../src/templates/modifiers/noise-exponent-template.ts","../src/templates/modifiers/noise-invert-template.ts","../src/templates/modifiers/noise-normalize-template.ts","../src/templates/modifiers/noise-scalebias-template.ts","../src/templates/modifiers/noise-terrace-template.ts","../src/templates/output/noise-logger-template.ts","../src/templates/output/noise-output-template.ts","../src/templates/output/noise-raw-texture-template.ts","../src/templates/output/position-logger-template.ts","../src/templates/selectors/noise-blend-template.ts","../src/templates/selectors/noise-select-template.ts","../src/templates/transformers/noise-displace-template.ts","../src/templates/transformers/noise-rotate-point-template.ts","../src/templates/transformers/noise-scale-point-template.ts","../src/templates/transformers/noise-translate-point-template.ts","../src/templates/transformers/noise-turbulence-template.ts","../src/abstract/node-types.ts"],"sourcesContent":["import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { useIncomingComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Divider, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useMemo } from 'react';\nimport { ComputedNoiseData } from '../../abstract/node-props';\n\nfunction NoiseLoggerNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const incoming = useIncomingComputedData<ComputedNoiseData>(id);\n const noise = useMemo(() => incoming?.map((p) => p.noise).flat(), [incoming]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Text>Size: {noise?.length || 0}</Text>\n <Divider h={5} />\n <Stack>\n {noise?.map((v, i) => (\n <Text key={i}>\n {v.position?.x}:{v.position?.y}:{v.position?.z}: {v.value}\n </Text>\n ))}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseLoggerNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useCallback, useState } from 'react';\nimport { NoiseHandleType } from '../../abstract';\nimport {\n ComputedModuleData,\n ComputedNoiseData,\n ComputedPositionsData,\n PositionNoiseValue\n} from '../../abstract/node-props';\n\nfunction NoiseOutputNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const [size, setSize] = useState(0);\n\n const updateComputedData = useUpdateNodeComputedData<ComputedNoiseData>();\n\n const onDataUpdated = useCallback(\n (handleData: Record<NoiseHandleType, ComputedPositionsData[] | ComputedModuleData[]>) => {\n const incomingPositions = handleData[NoiseHandleType.position] as ComputedPositionsData[];\n const incomingModule = handleData[NoiseHandleType.module] as ComputedModuleData[];\n\n if (incomingPositions?.length && incomingModule?.length && incomingModule[0]?.module) {\n const { module } = incomingModule[0];\n\n const noise: PositionNoiseValue[] = [];\n\n for (const input of incomingPositions) {\n for (const position of input.positions) {\n const value = module.getValue(position.x, position.y, position.z);\n\n noise.push({\n position,\n value\n });\n }\n }\n\n updateComputedData(id, { noise, module });\n setSize(noise.length);\n }\n },\n [updateComputedData, id]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <HandlesIncomingDataStatus\n nodeId={id}\n handles={data.handles}\n groupBy=\"dataType\"\n onDataUpdated={onDataUpdated}\n type=\"target\"\n resetComputedData\n />\n <Text mt={5}>Noise points: {size}</Text>\n </NodeContainer>\n );\n}\n\nexport default NoiseOutputNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { useIncomingComputedData, useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useMemo, useState } from 'react';\nimport { ComputedNoiseData, ComputedNoiseTextureData } from '../../abstract/node-props';\n\nfunction NoiseRawTextureNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedNoiseTextureData>();\n\n const [dataLength, setDataLength] = useState(0);\n const [resolution, setResolution] = useState(0);\n\n const incoming = useIncomingComputedData<ComputedNoiseData>(id);\n const noise = useMemo(() => incoming?.map((p) => p.noise).flat(), [incoming]);\n\n useEffect(() => {\n if (noise?.length) {\n const size = Math.ceil(Math.sqrt(noise.length));\n\n const colors = noise.map((n) => [n.value * 255, n.value * 255, n.value * 255, 255]).flat();\n const dataArray = new Uint8Array(size * size * 4);\n dataArray.set(colors);\n\n setResolution(size);\n setDataLength(dataArray.length);\n\n updateComputedData(id, {\n textureData: dataArray,\n textureResolutionX: size,\n textureResolutionY: size\n });\n }\n }, [noise, updateComputedData, id]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n Resolution: {resolution}x{resolution}\n </Group>\n <Group>Input Length: {noise?.length || 0}</Group>\n <Group>\n Output Length ({resolution}*{resolution}*4): {dataLength}\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseRawTextureNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { useIncomingComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Divider, Stack, Text } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useMemo } from 'react';\nimport { ComputedPositionsData } from '../../abstract/node-props';\n\nfunction PositionsLoggerNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const incoming = useIncomingComputedData<ComputedPositionsData>(id);\n\n const positions = useMemo(() => {\n return incoming?.map((p) => p.positions).flat();\n }, [incoming]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Text>Size: {positions?.length || 0}</Text>\n <Divider h={5} />\n <Stack>\n {positions?.map((v, i) => (\n <Text key={i}>\n {v.x}:{v.y}:{v.z}\n </Text>\n ))}\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default PositionsLoggerNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Blend } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { NoiseSourceControlHandle } from '../../abstract';\nimport { ComputedModuleData } from '../../abstract/node-props';\n\nfunction NoiseBlendNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onDataUpdated = useCallback(\n (incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>) => {\n const incomingSources = incomingData[NoiseSourceControlHandle.source];\n const incomingControl = incomingData[NoiseSourceControlHandle.control];\n if (incomingSources?.length >= 2 && incomingControl?.length) {\n const module = new Blend(\n incomingSources[0].module,\n incomingSources[1].module,\n incomingControl[0].module\n );\n\n updateComputedData(id, { module });\n }\n },\n [id, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <HandlesIncomingDataStatus\n nodeId={id}\n handles={data.handles}\n groupBy=\"dataId\"\n onDataUpdated={onDataUpdated}\n type=\"target\"\n resetComputedData\n />\n </NodeContainer>\n );\n}\n\nexport default NoiseBlendNode;\n","import { HandlesIncomingDataStatus } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Select } from 'libnoise-simplex-ts';\nimport { useCallback, useEffect, useState } from 'react';\nimport { NoiseSourceControlHandle } from '../../abstract';\nimport { ComputedModuleData, NodeSelectNoiseData } from '../../abstract/node-props';\n\nfunction NoiseSelectNode({ id, selected, data, type }: NodeProps<Node<NodeSelectNoiseData>>) {\n const [edgeFalloff, setEdgeFalloff] = useState(data.edgeFalloff);\n const [lowerBound, setLowerBound] = useState(data.lowerBound);\n const [upperBound, setUpperBound] = useState(data.upperBound);\n\n const updateNodeData = useUpdateNodeData<NodeSelectNoiseData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n updateNodeData(id, { edgeFalloff, lowerBound, upperBound });\n }, [edgeFalloff, lowerBound, upperBound, id, updateNodeData]);\n\n const onDataUpdated = useCallback(\n (incomingData: Record<NoiseSourceControlHandle, ComputedModuleData[]>) => {\n const incomingSources = incomingData[NoiseSourceControlHandle.source];\n const incomingControl = incomingData[NoiseSourceControlHandle.control];\n\n if (incomingSources?.length >= 2 && incomingControl?.length) {\n const module = new Select(\n incomingSources[0].module,\n incomingSources[1].module,\n incomingControl[0].module,\n edgeFalloff,\n lowerBound,\n upperBound\n );\n\n updateComputedData(id, { module });\n }\n },\n [updateComputedData, id, edgeFalloff, lowerBound, upperBound]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n Edge Falloff:\n <NumberInput\n size=\"xs\"\n w={100}\n value={edgeFalloff}\n onChange={(e) => setEdgeFalloff(Number(e))}\n step={0.1}\n />\n </Group>\n <Group>\n Lower Bound:\n <NumberInput\n size=\"xs\"\n w={100}\n value={lowerBound}\n onChange={(e) => setLowerBound(Number(e))}\n step={0.1}\n />\n </Group>\n <Group>\n Upper Bound:\n <NumberInput\n size=\"xs\"\n w={100}\n value={upperBound}\n onChange={(e) => setUpperBound(Number(e))}\n step={0.1}\n />\n </Group>\n <HandlesIncomingDataStatus\n nodeId={id}\n handles={data.handles}\n groupBy=\"dataId\"\n onDataUpdated={onDataUpdated}\n type=\"target\"\n resetComputedData\n />\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseSelectNode;\n","export enum NoiseTemplateGroup {\n positions = 'Positions',\n output = 'Output',\n noiseGenerators = 'Noise Generators',\n noiseModifiers = 'Noise Modifiers',\n noiseSelectors = 'Noise Selectors',\n noiseTransformers = 'Noise Transformers'\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeFBMNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseBillowNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeFBMNoiseData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.noiseBillow,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Billow Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 5,\n persistence: 0.5,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseCheckerboardNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseCheckerboard,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Checkerboard Noise'\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeConstNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseConstNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeConstNoiseData> = {\n type: NoiseNodeType.noiseConst,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Const Value Noise',\n noise: 0,\n min: -1,\n max: 1\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeCylindersNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseCylindersNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCylindersNoiseData> = {\n type: NoiseNodeType.noiseCylinders,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Cylinders Noise',\n frequency: 0.1\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeFBMNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoisePerlinNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeFBMNoiseData> = {\n type: NoiseNodeType.noisePerlin,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Perlin Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 5,\n persistence: 0.5,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeRidgedNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseRidgedMultiNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeRidgedNoiseData> = {\n type: NoiseNodeType.noiseRidgedMulti,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Ridged Multi Noise',\n frequency: 0.1,\n lacunarity: 2.0,\n octaves: 6,\n offset: 1.0,\n gain: 2.0,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeSpheresNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseSpheresNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeSpheresNoiseData> = {\n type: NoiseNodeType.noiseSpheres,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Spheres Noise',\n frequency: 0.1\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeVoronoiNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class NoiseVoronoiNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeVoronoiNoiseData> = {\n type: NoiseNodeType.noiseVoronoi,\n group: NoiseTemplateGroup.noiseGenerators,\n data: {\n title: 'Voronoi Noise',\n frequency: 0.1,\n displacement: 1.0,\n distance: true,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodePositionData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class PositionConstNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodePositionData> = {\n type: NoiseNodeType.position,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Position Output',\n position: { x: 0, y: 0, z: 0 }\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.position,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeGridData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseTemplateGroup } from '../../abstract/templates';\n\nexport class PositionGridNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeGridData> = {\n type: NoiseNodeType.grid,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Grid Output',\n center: { x: 0, y: 0, z: 0 },\n radius: 1\n },\n handles: [\n {\n position: Position.Right,\n dataType: NoiseHandleType.position,\n connection: 'source'\n }\n ]\n };\n}\n","import {\n BasicNodeData,\n CoreTemplateGroup,\n ITemplateFactory,\n NodeTemplate\n} from '@awesome-flow/core/abstract';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class ModuleGroupNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.groupModule,\n group: CoreTemplateGroup.groups,\n data: {\n title: 'Modules Group',\n isGroup: true,\n initialSize: {\n width: 300,\n height: 200\n },\n collapsedSize: {\n width: 300,\n height: 80\n }\n },\n handles: [\n {\n position: Position.Bottom,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1,\n hideOnCollapse: true\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseAbsNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseAbs,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Abs Noise'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeClampNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseClampNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeClampNoiseData> = {\n type: NoiseNodeType.noiseClamp,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Clamp Noise',\n lowerBound: -1,\n upperBound: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeCombineNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\nimport { NoiseCombineType } from '../../abstract/operations';\n\nexport class NoiseCombineNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCombineNoiseData> = {\n type: NoiseNodeType.noiseCombine,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Combine Noise',\n operation: NoiseCombineType.add\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 2\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeCurveNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseCurveNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeCurveNoiseData> = {\n type: NoiseNodeType.noiseCurve,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Curve',\n points: []\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeExponentNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseExponentNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeExponentNoiseData> = {\n type: NoiseNodeType.noiseExponent,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Exponent',\n exponent: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseInvertNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseInvert,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Invert Noise'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { IDGenerator } from '@awesome-flow/core/utils';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeNormalizeNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseNormalizeNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeNormalizeNoiseData> = {\n id: IDGenerator.template(),\n type: NoiseNodeType.noiseNormalize,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Normalize Noise',\n intervalStart: -1,\n intervalEnd: 1\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeScaleBiasNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseScaleBiasNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeScaleBiasNoiseData> = {\n type: NoiseNodeType.noiseScaleBias,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Scale/Bias Noise',\n scale: 1.0,\n bias: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeTerraceNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseTerraceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTerraceNoiseData> = {\n type: NoiseNodeType.noiseTerrace,\n group: NoiseTemplateGroup.noiseModifiers,\n data: {\n title: 'Noise Terrace',\n points: []\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseLoggerNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseLogger,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Noise Logger'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.noise,\n connection: 'target'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseOutputNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseOutput,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Noise Output'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.position,\n connection: 'target'\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.noise,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseRawTextureTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.textureData,\n group: NoiseTemplateGroup.output,\n data: {\n title: 'Texture Data'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.noise,\n connection: 'target',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.texture,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class PositionLoggerNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.positionLogger,\n group: NoiseTemplateGroup.positions,\n data: {\n title: 'Position Logger'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.position,\n connection: 'target'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType, NoiseSourceControlHandle } from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseBlendNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData> = {\n type: NoiseNodeType.noiseBlend,\n group: NoiseTemplateGroup.noiseSelectors,\n data: {\n title: 'Noise Blend'\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Modules',\n dataId: NoiseSourceControlHandle.source,\n maxConnections: 2,\n minConnections: 2\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.control,\n connection: 'target',\n label: 'Control Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.output,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType, NoiseSourceControlHandle } from '../../abstract/handle-types';\nimport { NodeSelectNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseSelectNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeSelectNoiseData> = {\n type: NoiseNodeType.noiseSelect,\n group: NoiseTemplateGroup.noiseSelectors,\n data: {\n title: 'Noise Select',\n edgeFalloff: 0.0,\n lowerBound: -1.0,\n upperBound: 1.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.source,\n connection: 'target',\n label: 'Source Modules',\n maxConnections: 2,\n minConnections: 2\n },\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.control,\n connection: 'target',\n label: 'Control Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: NoiseSourceControlHandle.output,\n connection: 'source'\n }\n ]\n };\n}\n","import { BasicNodeData, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport {\n DisplacementHandle,\n DisplacementModuleHandle,\n NoiseHandleType\n} from '../../abstract/handle-types';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseDisplaceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<BasicNodeData, Omit<DisplacementModuleHandle, 'handleId'>> = {\n type: NoiseNodeType.noiseDisplace,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Displace'\n },\n handles: [\n {\n position: Position.Left,\n connection: 'target',\n label: 'Source Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.sourceModule,\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'X Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.xModule,\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'Y Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.yModule,\n maxConnections: 1\n },\n {\n position: Position.Left,\n connection: 'target',\n label: 'Z Module',\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.zModule,\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n dataId: DisplacementHandle.output,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeRotatePointNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseRotatePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeRotatePointNoiseData> = {\n type: NoiseNodeType.noiseRotatePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Rotate Point',\n xAngle: 0.0,\n yAngle: 0.0,\n zAngle: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeScalePointNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseScalePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeScalePointNoiseData> = {\n type: NoiseNodeType.noiseScalePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Scale Point',\n xScale: 1.0,\n yScale: 1.0,\n zScale: 1.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeTranslatePointNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseTranslatePointNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTranslatePointNoiseData> = {\n type: NoiseNodeType.noiseTranslatePoint,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Translate Point',\n translateX: 0.0,\n translateY: 0.0,\n translateZ: 0.0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { CoreHandleType, ITemplateFactory, NodeTemplate } from '@awesome-flow/core/abstract';\nimport { Position } from '@xyflow/system';\nimport { NoiseTemplateGroup } from '../../abstract';\nimport { NoiseHandleType } from '../../abstract/handle-types';\nimport { NodeTurbulenceNoiseData } from '../../abstract/node-props';\nimport { NoiseNodeType } from '../../abstract/node-types';\n\nexport class NoiseTurbulenceNodeTemplateFactory implements ITemplateFactory {\n readonly template: NodeTemplate<NodeTurbulenceNoiseData> = {\n type: NoiseNodeType.noiseTurbulence,\n group: NoiseTemplateGroup.noiseTransformers,\n data: {\n title: 'Noise Turbulence',\n frequency: 1.0,\n power: 1.0,\n roughness: 1.0,\n seed: 0\n },\n handles: [\n {\n position: Position.Left,\n dataType: NoiseHandleType.module,\n connection: 'target',\n label: 'Source Module',\n maxConnections: 1\n },\n {\n position: Position.Left,\n dataType: CoreHandleType.variableProperty,\n label: 'Variable Properties',\n connection: 'target'\n },\n {\n position: Position.Right,\n dataType: NoiseHandleType.module,\n connection: 'source'\n }\n ]\n };\n}\n","import { ITemplateFactory } from '@awesome-flow/core/abstract';\nimport { NodeTypes } from '@xyflow/react';\nimport { ModuleGroupNode } from '../nodes';\nimport NoiseBillowNode from '../nodes/generators/noise-billow-node';\nimport NoiseCheckerboardNode from '../nodes/generators/noise-checkerboard-node';\nimport NoiseConstNode from '../nodes/generators/noise-const-node';\nimport NoiseCylindersNode from '../nodes/generators/noise-cylinders-node';\nimport NoisePerlinNode from '../nodes/generators/noise-perlin-node';\nimport NoiseRidgedMultiNode from '../nodes/generators/noise-ridgedmulti-node';\nimport NoiseSpheresNode from '../nodes/generators/noise-spheres-node';\nimport NoiseVoronoiNode from '../nodes/generators/noise-voronoi-node';\nimport PositionConstNode from '../nodes/generators/position-const-node';\nimport PositionGridNode from '../nodes/generators/position-grid-node';\nimport NoiseAbsNode from '../nodes/modifiers/noise-abs-node';\nimport NoiseClampNode from '../nodes/modifiers/noise-clamp-node';\nimport NoiseCombineNode from '../nodes/modifiers/noise-combine-node';\nimport NoiseCurveNode from '../nodes/modifiers/noise-curve-node';\nimport NoiseExponentNode from '../nodes/modifiers/noise-exponent-node';\nimport NoiseInvertNode from '../nodes/modifiers/noise-invert-node';\nimport NoiseNormalizeNode from '../nodes/modifiers/noise-normalize-node';\nimport NoiseScaleBiasNode from '../nodes/modifiers/noise-scale-bias-node';\nimport NoiseTerraceNode from '../nodes/modifiers/noise-terrace-node';\nimport NoiseLoggerNode from '../nodes/output/noise-logger-node';\nimport NoiseOutputNode from '../nodes/output/noise-output-node';\nimport NoiseRawTextureNode from '../nodes/output/noise-raw-texture-node';\nimport PositionsLoggerNode from '../nodes/output/positions-logger-node';\nimport NoiseBlendNode from '../nodes/selectors/noise-blend-node';\nimport NoiseSelectNode from '../nodes/selectors/noise-select-node';\nimport NoiseDisplaceNode from '../nodes/transformers/noise-displace-node';\nimport NoiseRotatePointNode from '../nodes/transformers/noise-rotate-point-node';\nimport NoiseScalePointNode from '../nodes/transformers/noise-scale-point-node';\nimport NoiseTranslatePointNode from '../nodes/transformers/noise-translate-point-node';\nimport NoiseTurbulenceNode from '../nodes/transformers/noise-turbulence-node';\nimport { NoiseBillowNodeTemplateFactory } from '../templates/generators/noise-billow-template';\nimport { NoiseCheckerboardNodeTemplateFactory } from '../templates/generators/noise-checkerboard-template';\nimport { NoiseConstNodeTemplateFactory } from '../templates/generators/noise-const-template';\nimport { NoiseCylindersNodeTemplateFactory } from '../templates/generators/noise-cylinders-template';\nimport { NoisePerlinNodeTemplateFactory } from '../templates/generators/noise-perlin-template';\nimport { NoiseRidgedMultiNodeTemplateFactory } from '../templates/generators/noise-ridgedmulti-template';\nimport { NoiseSpheresNodeTemplateFactory } from '../templates/generators/noise-spheres-template';\nimport { NoiseVoronoiNodeTemplateFactory } from '../templates/generators/noise-voronoi-template';\nimport { PositionConstNodeTemplateFactory } from '../templates/generators/position-const-template';\nimport { PositionGridNodeTemplateFactory } from '../templates/generators/position-grid-template';\nimport { ModuleGroupNodeTemplateFactory } from '../templates/groups/module-group-template';\nimport { NoiseAbsNodeTemplateFactory } from '../templates/modifiers/noise-abs-template';\nimport { NoiseClampNodeTemplateFactory } from '../templates/modifiers/noise-clamp-template';\nimport { NoiseCombineNodeTemplateFactory } from '../templates/modifiers/noise-combine-template';\nimport { NoiseCurveNodeTemplateFactory } from '../templates/modifiers/noise-curve-template';\nimport { NoiseExponentNodeTemplateFactory } from '../templates/modifiers/noise-exponent-template';\nimport { NoiseInvertNodeTemplateFactory } from '../templates/modifiers/noise-invert-template';\nimport { NoiseNormalizeNodeTemplateFactory } from '../templates/modifiers/noise-normalize-template';\nimport { NoiseScaleBiasNodeTemplateFactory } from '../templates/modifiers/noise-scalebias-template';\nimport { NoiseTerraceNodeTemplateFactory } from '../templates/modifiers/noise-terrace-template';\nimport { NoiseLoggerNodeTemplateFactory } from '../templates/output/noise-logger-template';\nimport { NoiseOutputNodeTemplateFactory } from '../templates/output/noise-output-template';\nimport { NoiseRawTextureTemplateFactory } from '../templates/output/noise-raw-texture-template';\nimport { PositionLoggerNodeTemplateFactory } from '../templates/output/position-logger-template';\nimport { NoiseBlendNodeTemplateFactory } from '../templates/selectors/noise-blend-template';\nimport { NoiseSelectNodeTemplateFactory } from '../templates/selectors/noise-select-template';\nimport { NoiseDisplaceNodeTemplateFactory } from '../templates/transformers/noise-displace-template';\nimport { NoiseRotatePointNodeTemplateFactory } from '../templates/transformers/noise-rotate-point-template';\nimport { NoiseScalePointNodeTemplateFactory } from '../templates/transformers/noise-scale-point-template';\nimport { NoiseTranslatePointNodeTemplateFactory } from '../templates/transformers/noise-translate-point-template';\nimport { NoiseTurbulenceNodeTemplateFactory } from '../templates/transformers/noise-turbulence-template';\n\nexport enum NoiseNodeType {\n position = 'position',\n grid = 'grid',\n textureData = 'texture-data',\n groupModule = 'group-module',\n positionLogger = 'position-logger',\n noiseLogger = 'noise-logger',\n noiseOutput = 'noise-output',\n noiseConst = 'noise-constant',\n noiseBillow = 'noise-billow',\n noiseCheckerboard = 'noise-checkerboard',\n noiseNormalize = 'noise-normalize',\n noiseCylinders = 'noise-cylinders',\n noisePerlin = 'noise-perlin',\n noiseRidgedMulti = 'noise-ridged-multi',\n noiseSpheres = 'noise-spheres',\n noiseVoronoi = 'noise-voronoi',\n noiseCombine = 'noise-combiner',\n noiseClamp = 'noise-clamp',\n noiseAbs = 'noise-abs',\n noiseCurve = 'noise-curve',\n noiseExponent = 'noise-exponent',\n noiseInvert = 'noise-invert',\n noiseScaleBias = 'noise-scale-bias',\n noiseTerrace = 'noise-terrace',\n noiseBlend = 'noise-blend',\n noiseSelect = 'noise-select',\n noiseDisplace = 'noise-displace',\n noiseRotatePoint = 'noise-rotate-point',\n noiseScalePoint = 'noise-scale-point',\n noiseTranslatePoint = 'noise-translate-point',\n noiseTurbulence = 'noise-turbulence'\n}\n\nexport const noiseNodeTypes = {\n [NoiseNodeType.groupModule]: ModuleGroupNode,\n [NoiseNodeType.position]: PositionConstNode,\n [NoiseNodeType.grid]: PositionGridNode,\n [NoiseNodeType.noiseOutput]: NoiseOutputNode,\n [NoiseNodeType.textureData]: NoiseRawTextureNode,\n [NoiseNodeType.noiseLogger]: NoiseLoggerNode,\n [NoiseNodeType.positionLogger]: PositionsLoggerNode,\n [NoiseNodeType.noiseConst]: NoiseConstNode,\n [NoiseNodeType.noiseBillow]: NoiseBillowNode,\n [NoiseNodeType.noiseCheckerboard]: NoiseCheckerboardNode,\n [NoiseNodeType.noiseCylinders]: NoiseCylindersNode,\n [NoiseNodeType.noisePerlin]: NoisePerlinNode,\n [NoiseNodeType.noiseRidgedMulti]: NoiseRidgedMultiNode,\n [NoiseNodeType.noiseSpheres]: NoiseSpheresNode,\n [NoiseNodeType.noiseVoronoi]: NoiseVoronoiNode,\n [NoiseNodeType.noiseCombine]: NoiseCombineNode,\n [NoiseNodeType.noiseClamp]: NoiseClampNode,\n [NoiseNodeType.noiseAbs]: NoiseAbsNode,\n [NoiseNodeType.noiseNormalize]: NoiseNormalizeNode,\n [NoiseNodeType.noiseCurve]: NoiseCurveNode,\n [NoiseNodeType.noiseExponent]: NoiseExponentNode,\n [NoiseNodeType.noiseInvert]: NoiseInvertNode,\n [NoiseNodeType.noiseScaleBias]: NoiseScaleBiasNode,\n [NoiseNodeType.noiseTerrace]: NoiseTerraceNode,\n [NoiseNodeType.noiseBlend]: NoiseBlendNode,\n [NoiseNodeType.noiseSelect]: NoiseSelectNode,\n [NoiseNodeType.noiseDisplace]: NoiseDisplaceNode,\n [NoiseNodeType.noiseRotatePoint]: NoiseRotatePointNode,\n [NoiseNodeType.noiseScalePoint]: NoiseScalePointNode,\n [NoiseNodeType.noiseTranslatePoint]: NoiseTranslatePointNode,\n [NoiseNodeType.noiseTurbulence]: NoiseTurbulenceNode\n} satisfies NodeTypes;\n\nexport const noiseNodeTemplates = {\n [NoiseNodeType.noiseOutput]: new NoiseOutputNodeTemplateFactory(),\n [NoiseNodeType.noiseBillow]: new NoiseBillowNodeTemplateFactory(),\n [NoiseNodeType.noiseCheckerboard]: new NoiseCheckerboardNodeTemplateFactory(),\n [NoiseNodeType.noiseNormalize]: new NoiseNormalizeNodeTemplateFactory(),\n [NoiseNodeType.noiseLogger]: new NoiseLoggerNodeTemplateFactory(),\n [NoiseNodeType.noiseConst]: new NoiseConstNodeTemplateFactory(),\n [NoiseNodeType.position]: new PositionConstNodeTemplateFactory(),\n [NoiseNodeType.positionLogger]: new PositionLoggerNodeTemplateFactory(),\n [NoiseNodeType.grid]: new PositionGridNodeTemplateFactory(),\n [NoiseNodeType.textureData]: new NoiseRawTextureTemplateFactory(),\n [NoiseNodeType.noiseCylinders]: new NoiseCylindersNodeTemplateFactory(),\n [NoiseNodeType.noisePerlin]: new NoisePerlinNodeTemplateFactory(),\n [NoiseNodeType.noiseRidgedMulti]: new NoiseRidgedMultiNodeTemplateFactory(),\n [NoiseNodeType.noiseSpheres]: new NoiseSpheresNodeTemplateFactory(),\n [NoiseNodeType.noiseVoronoi]: new NoiseVoronoiNodeTemplateFactory(),\n [NoiseNodeType.noiseCombine]: new NoiseCombineNodeTemplateFactory(),\n [NoiseNodeType.noiseClamp]: new NoiseClampNodeTemplateFactory(),\n [NoiseNodeType.noiseAbs]: new NoiseAbsNodeTemplateFactory(),\n [NoiseNodeType.noiseCurve]: new NoiseCurveNodeTemplateFactory(),\n [NoiseNodeType.noiseExponent]: new NoiseExponentNodeTemplateFactory(),\n [NoiseNodeType.noiseInvert]: new NoiseInvertNodeTemplateFactory(),\n [NoiseNodeType.noiseScaleBias]: new NoiseScaleBiasNodeTemplateFactory(),\n [NoiseNodeType.noiseTerrace]: new NoiseTerraceNodeTemplateFactory(),\n [NoiseNodeType.noiseBlend]: new NoiseBlendNodeTemplateFactory(),\n [NoiseNodeType.noiseSelect]: new NoiseSelectNodeTemplateFactory(),\n [NoiseNodeType.noiseDisplace]: new NoiseDisplaceNodeTemplateFactory(),\n [NoiseNodeType.noiseRotatePoint]: new NoiseRotatePointNodeTemplateFactory(),\n [NoiseNodeType.noiseScalePoint]: new NoiseScalePointNodeTemplateFactory(),\n [NoiseNodeType.noiseTranslatePoint]: new NoiseTranslatePointNodeTemplateFactory(),\n [NoiseNodeType.noiseTurbulence]: new NoiseTurbulenceNodeTemplateFactory(),\n [NoiseNodeType.groupModule]: new ModuleGroupNodeTemplateFactory()\n} satisfies Record<NoiseNodeType, ITemplateFactory>;\n"],"mappings":"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"}
@@ -1,30 +0,0 @@
1
- //#region rolldown:runtime
2
- var __create = Object.create;
3
- var __defProp = Object.defineProperty;
4
- var __getOwnPropDesc = Object.getOwnPropertyDescriptor;
5
- var __getOwnPropNames = Object.getOwnPropertyNames;
6
- var __getProtoOf = Object.getPrototypeOf;
7
- var __hasOwnProp = Object.prototype.hasOwnProperty;
8
- var __copyProps = (to, from, except, desc) => {
9
- if (from && typeof from === "object" || typeof from === "function") for (var keys = __getOwnPropNames(from), i = 0, n = keys.length, key; i < n; i++) {
10
- key = keys[i];
11
- if (!__hasOwnProp.call(to, key) && key !== except) __defProp(to, key, {
12
- get: ((k) => from[k]).bind(null, key),
13
- enumerable: !(desc = __getOwnPropDesc(from, key)) || desc.enumerable
14
- });
15
- }
16
- return to;
17
- };
18
- var __toESM = (mod, isNodeMode, target) => (target = mod != null ? __create(__getProtoOf(mod)) : {}, __copyProps(isNodeMode || !mod || !mod.__esModule ? __defProp(target, "default", {
19
- value: mod,
20
- enumerable: true
21
- }) : target, mod));
22
-
23
- //#endregion
24
-
25
- Object.defineProperty(exports, '__toESM', {
26
- enumerable: true,
27
- get: function () {
28
- return __toESM;
29
- }
30
- });
@@ -1 +0,0 @@
1
- {"version":3,"file":"generators-BzkwG_6g.js","names":["properties: Record<string, PropertyValue>","properties: Record<string, PropertyValue>","properties: Record<string, PropertyValue>","properties: Record<string, PropertyValue>","properties: Record<string, PropertyValue>","properties: Record<string, PropertyValue<number & boolean>>","position","positions: Position[]"],"sources":["../src/nodes/generators/noise-billow-node.tsx","../src/nodes/generators/noise-checkerboard-node.tsx","../src/nodes/generators/noise-const-node.tsx","../src/nodes/generators/noise-cylinders-node.tsx","../src/nodes/generators/noise-perlin-node.tsx","../src/nodes/generators/noise-ridgedmulti-node.tsx","../src/nodes/generators/noise-spheres-node.tsx","../src/nodes/generators/noise-voronoi-node.tsx","../src/nodes/generators/position-const-node.tsx","../src/nodes/generators/position-grid-node.tsx"],"sourcesContent":["import { PropertyValue } from '@awesome-flow/core/abstract';\nimport { NodePropertiesList } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Billow } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { ComputedModuleData, NodeFBMNoiseData } from '../../abstract/node-props';\n\nfunction NoiseBillowNode({ id, selected, data, type }: NodeProps<Node<NodeFBMNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n const module = new Billow();\n\n Object.keys(properties).forEach((k) => (module[k] = properties[k].value));\n\n updateComputedData(id, { module });\n },\n [id, updateComputedData]\n );\n\n return (\n <>\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertiesList data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n </NodeContainer>\n </>\n );\n}\n\nexport default NoiseBillowNode;\n","import { BasicNodeData } from '@awesome-flow/core/abstract';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Checkerboard } from 'libnoise-simplex-ts';\nimport { useEffect } from 'react';\nimport { ComputedModuleData } from '../../abstract/node-props';\n\nfunction NoiseCheckerboardNode({ id, selected, data, type }: NodeProps<Node<BasicNodeData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n const module = new Checkerboard();\n updateComputedData(id, { module });\n }, [id, updateComputedData]);\n\n return <NodeContainer id={id} selected={selected} data={data} type={type} />;\n}\n\nexport default NoiseCheckerboardNode;\n","import { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Const } from 'libnoise-simplex-ts';\nimport { useEffect, useState } from 'react';\nimport { ComputedModuleData, NodeConstNoiseData } from '../../abstract/node-props';\n\nfunction NoiseConstNode({ id, selected, data, type }: NodeProps<Node<NodeConstNoiseData>>) {\n const [min, setMin] = useState(data.min);\n const [max, setMax] = useState(data.max);\n const [noise, setNoise] = useState(data.noise);\n\n const updateNodeData = useUpdateNodeData<NodeConstNoiseData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n useEffect(() => {\n const module = new Const(noise);\n\n updateNodeData(id, { noise, min, max });\n updateComputedData(id, { module });\n }, [id, noise, min, max, updateNodeData, updateComputedData]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n <NumberInput size=\"xs\" w={100} value={min} onChange={(e) => setMin(Number(e))} />\n <NumberInput size=\"xs\" w={100} value={max} onChange={(e) => setMax(Number(e))} />\n </Group>\n <Group>\n noise:\n <NumberInput\n size=\"xs\"\n value={noise}\n onChange={(e) => setNoise(Number(e))}\n max={max}\n min={min}\n step={0.1}\n />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default NoiseConstNode;\n","import { PropertyValue } from '@awesome-flow/core/abstract';\nimport { NodePropertiesList } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Cylinders } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { ComputedModuleData, NodeCylindersNoiseData } from '../../abstract/node-props';\n\nfunction NoiseCylindersNode({ id, selected, data, type }: NodeProps<Node<NodeCylindersNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n const module = new Cylinders();\n\n Object.keys(properties).forEach((k) => (module[k] = properties[k].value));\n\n updateComputedData(id, { module });\n },\n [id, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertiesList data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n </NodeContainer>\n );\n}\n\nexport default NoiseCylindersNode;\n","import { PropertyValue } from '@awesome-flow/core/abstract';\nimport { NodePropertiesList } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Perlin } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { ComputedModuleData, NodeFBMNoiseData } from '../../abstract/node-props';\n\nfunction NoisePerlinNode({ id, selected, data, type }: NodeProps<Node<NodeFBMNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n const module = new Perlin();\n\n Object.keys(properties).forEach((k) => (module[k] = properties[k].value));\n\n updateComputedData(id, { module });\n },\n [id, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertiesList data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n </NodeContainer>\n );\n}\n\nexport default NoisePerlinNode;\n","import { PropertyValue } from '@awesome-flow/core/abstract';\nimport { NodePropertiesList } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { RidgedMulti } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { ComputedModuleData, NodeRidgedNoiseData } from '../../abstract/node-props';\n\nfunction NoiseRidgedMultiNode({ id, selected, data, type }: NodeProps<Node<NodeRidgedNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n const module = new RidgedMulti();\n Object.keys(properties).forEach((k) => (module[k] = properties[k].value));\n updateComputedData(id, { module });\n },\n [id, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertiesList data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n </NodeContainer>\n );\n}\n\nexport default NoiseRidgedMultiNode;\n","import { PropertyValue } from '@awesome-flow/core/abstract';\nimport { NodePropertiesList } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Spheres } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { ComputedModuleData, NodeSpheresNoiseData } from '../../abstract/node-props';\n\nfunction NoiseSpheresNode({ id, selected, data, type }: NodeProps<Node<NodeSpheresNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue>) => {\n const module = new Spheres();\n\n Object.keys(properties).forEach((k) => (module[k] = properties[k].value));\n updateComputedData(id, { module });\n },\n [id, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertiesList data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n </NodeContainer>\n );\n}\n\nexport default NoiseSpheresNode;\n","import { PropertyValue } from '@awesome-flow/core/abstract';\nimport { NodePropertiesList } from '@awesome-flow/core/components';\nimport { useUpdateNodeComputedData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { Voronoi } from 'libnoise-simplex-ts';\nimport { useCallback } from 'react';\nimport { ComputedModuleData, NodeVoronoiNoiseData } from '../../abstract/node-props';\n\nfunction NoiseVoronoiNode({ id, selected, data, type }: NodeProps<Node<NodeVoronoiNoiseData>>) {\n const updateComputedData = useUpdateNodeComputedData<ComputedModuleData>();\n\n const onPropertiesChange = useCallback(\n (properties: Record<string, PropertyValue<number & boolean>>) => {\n const module = new Voronoi(\n properties.frequency.value,\n properties.displacement.value,\n properties.distance.value,\n properties.seed.value\n );\n\n updateComputedData(id, { module });\n },\n [id, updateComputedData]\n );\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <NodePropertiesList data={data} nodeId={id} onPropertiesChange={onPropertiesChange} />\n </NodeContainer>\n );\n}\n\nexport default NoiseVoronoiNode;\n","import { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useState } from 'react';\nimport { ComputedPositionsData, NodePositionData } from '../../abstract/node-props';\n\nfunction PositionConstNode({ id, selected, data, type }: NodeProps<Node<NodePositionData>>) {\n const position = data.position ?? { x: 0, y: 0, z: 0 };\n\n const [x, setX] = useState(position.x);\n const [y, setY] = useState(position.y);\n const [z, setZ] = useState(position.z);\n\n const updateNodeData = useUpdateNodeData<NodePositionData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedPositionsData>();\n\n useEffect(() => {\n const position = { x, y, z };\n\n updateNodeData(id, {\n position\n });\n\n updateComputedData(id, {\n positions: [position]\n });\n }, [x, y, z, id, updateComputedData, updateNodeData]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n x: <NumberInput size=\"xs\" w={100} value={x} onChange={(e) => setX(Number(e))} />\n </Group>\n <Group>\n y: <NumberInput size=\"xs\" w={100} value={y} onChange={(e) => setY(Number(e))} />\n </Group>\n <Group>\n z: <NumberInput size=\"xs\" w={100} value={z} onChange={(e) => setZ(Number(e))} />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default PositionConstNode;\n","import { useUpdateNodeComputedData, useUpdateNodeData } from '@awesome-flow/core/hooks';\nimport { NodeContainer } from '@awesome-flow/core/layout';\nimport { Group, NumberInput, Stack } from '@mantine/core';\nimport { Node, NodeProps } from '@xyflow/react';\nimport { useEffect, useState } from 'react';\nimport { ComputedPositionsData, NodeGridData, Position } from '../../abstract/node-props';\n\nfunction PositionGridNode({ id, selected, data, type }: NodeProps<Node<NodeGridData>>) {\n const [x, setX] = useState(data.center?.x);\n const [y, setY] = useState(data.center?.y);\n const [z, setZ] = useState(data.center?.z);\n\n const [radius, setRadius] = useState(data.radius);\n\n const updateNodeData = useUpdateNodeData<NodeGridData>();\n const updateComputedData = useUpdateNodeComputedData<ComputedPositionsData>();\n\n useEffect(() => {\n updateNodeData(id, {\n center: { x, y, z }\n });\n }, [x, y, z, id, updateNodeData]);\n\n useEffect(() => {\n updateNodeData(id, {\n radius\n });\n }, [radius, id, updateNodeData]);\n\n useEffect(() => {\n const positions: Position[] = [];\n\n for (let i = -radius; i < radius; i++) {\n for (let j = -radius; j < radius; j++) {\n positions.push({ x: x + i, y: y + j, z });\n }\n }\n\n updateComputedData(id, {\n positions\n });\n }, [x, y, z, radius, id, updateComputedData]);\n\n return (\n <NodeContainer id={id} selected={selected} data={data} type={type}>\n <Stack>\n <Group>\n x: <NumberInput size=\"xs\" w={100} value={x} onChange={(e) => setX(Number(e))} />\n </Group>\n <Group>\n y: <NumberInput size=\"xs\" w={100} value={y} onChange={(e) => setY(Number(e))} />\n </Group>\n <Group>\n z: <NumberInput size=\"xs\" w={100} value={z} onChange={(e) => setZ(Number(e))} />\n </Group>\n <Group>\n r: <NumberInput size=\"xs\" w={100} value={radius} onChange={(e) => setRadius(Number(e))} />\n </Group>\n </Stack>\n </NodeContainer>\n );\n}\n\nexport default PositionGridNode;\n"],"mappings":"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"}
File without changes