@awesome-flow/noise 0.9.2 → 0.9.4

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 (196) hide show
  1. package/dist/abstract/index.cjs +16 -29
  2. package/dist/abstract/index.d.cts +131 -121
  3. package/dist/abstract/index.d.cts.map +1 -0
  4. package/dist/abstract/index.d.ts +131 -121
  5. package/dist/abstract/index.d.ts.map +1 -0
  6. package/dist/abstract/index.js +8 -29
  7. package/dist/abstract-Db8fFoLp.cjs +1423 -0
  8. package/dist/abstract-Db8fFoLp.cjs.map +1 -0
  9. package/dist/abstract-Dhf_tSuO.js +1177 -0
  10. package/dist/abstract-Dhf_tSuO.js.map +1 -0
  11. package/dist/chunk-CUT6urMc.cjs +30 -0
  12. package/dist/generators-BzkwG_6g.js +353 -0
  13. package/dist/generators-BzkwG_6g.js.map +1 -0
  14. package/dist/generators-D3RjZdMN.cjs +413 -0
  15. package/dist/generators-D3RjZdMN.cjs.map +1 -0
  16. package/dist/groups-BIS2AF5M.cjs +32 -0
  17. package/dist/groups-BIS2AF5M.cjs.map +1 -0
  18. package/dist/groups-CH_lk8Aw.js +26 -0
  19. package/dist/groups-CH_lk8Aw.js.map +1 -0
  20. package/dist/index-B5F3AfVc.d.ts +1 -0
  21. package/dist/index-B9liqMk7.d.cts +106 -0
  22. package/dist/index-B9liqMk7.d.cts.map +1 -0
  23. package/dist/index-BLREDRDJ.d.cts +1 -0
  24. package/dist/index-BQGb02a-.d.cts +1 -0
  25. package/dist/index-Be7jjS77.d.ts +1 -0
  26. package/dist/index-C2UIRuQU.d.ts +56 -0
  27. package/dist/index-C2UIRuQU.d.ts.map +1 -0
  28. package/dist/index-C7p7kRl6.d.ts +106 -0
  29. package/dist/index-C7p7kRl6.d.ts.map +1 -0
  30. package/dist/index-CLcwj8U0.d.ts +1 -0
  31. package/dist/index-CUPkUUOR.d.ts +1 -0
  32. package/dist/index-CdUm_2Oy.d.cts +45 -0
  33. package/dist/index-CdUm_2Oy.d.cts.map +1 -0
  34. package/dist/index-CnGot0Ls.d.ts +26 -0
  35. package/dist/index-CnGot0Ls.d.ts.map +1 -0
  36. package/dist/index-CtCMUyZA.d.cts +1 -0
  37. package/dist/index-DAwMsCZ3.d.ts +1 -0
  38. package/dist/index-DHPGVj1Q.d.cts +56 -0
  39. package/dist/index-DHPGVj1Q.d.cts.map +1 -0
  40. package/dist/index-DOvrmvAP.d.cts +1 -0
  41. package/dist/index-Dh6J9gb5.d.cts +1 -0
  42. package/dist/index-Dpmi5zcN.d.cts +1 -0
  43. package/dist/index-DsrVbQfJ.d.cts +26 -0
  44. package/dist/index-DsrVbQfJ.d.cts.map +1 -0
  45. package/dist/index-Dun4VhYj.d.ts +10 -0
  46. package/dist/index-Dun4VhYj.d.ts.map +1 -0
  47. package/dist/index-Dyw_KDIi.d.ts +45 -0
  48. package/dist/index-Dyw_KDIi.d.ts.map +1 -0
  49. package/dist/index-I2m6W13H.d.ts +1 -0
  50. package/dist/index-QAtBiMxG.d.cts +1 -0
  51. package/dist/index-XpRnF8C9.d.cts +98 -0
  52. package/dist/index-XpRnF8C9.d.cts.map +1 -0
  53. package/dist/index-b3KxQSTX.d.ts +98 -0
  54. package/dist/index-b3KxQSTX.d.ts.map +1 -0
  55. package/dist/index-kr8Wk7v5.d.ts +1 -0
  56. package/dist/index-uyclP-_e.d.cts +10 -0
  57. package/dist/index-uyclP-_e.d.cts.map +1 -0
  58. package/dist/modifiers-DU7AkD-K.cjs +545 -0
  59. package/dist/modifiers-DU7AkD-K.cjs.map +1 -0
  60. package/dist/modifiers-MSA4z6Gq.js +479 -0
  61. package/dist/modifiers-MSA4z6Gq.js.map +1 -0
  62. package/dist/module-group-template-evi7UU-G.d.ts +12 -0
  63. package/dist/module-group-template-evi7UU-G.d.ts.map +1 -0
  64. package/dist/module-group-template-hN1W1MZD.d.cts +12 -0
  65. package/dist/module-group-template-hN1W1MZD.d.cts.map +1 -0
  66. package/dist/modules/index.cjs +2 -5
  67. package/dist/modules/index.d.cts +10 -5
  68. package/dist/modules/index.d.cts.map +1 -0
  69. package/dist/modules/index.d.ts +10 -5
  70. package/dist/modules/index.d.ts.map +1 -0
  71. package/dist/modules/index.js +3 -6
  72. package/dist/node-props-76LXd76e.d.ts +141 -0
  73. package/dist/node-props-76LXd76e.d.ts.map +1 -0
  74. package/dist/node-props-D-fSg180.d.cts +141 -0
  75. package/dist/node-props-D-fSg180.d.cts.map +1 -0
  76. package/dist/nodes/generators/index.cjs +12 -24
  77. package/dist/nodes/generators/index.d.cts +3 -27
  78. package/dist/nodes/generators/index.d.ts +3 -27
  79. package/dist/nodes/generators/index.js +3 -24
  80. package/dist/nodes/groups/index.cjs +2 -5
  81. package/dist/nodes/groups/index.d.cts +2 -7
  82. package/dist/nodes/groups/index.d.ts +2 -7
  83. package/dist/nodes/groups/index.js +3 -6
  84. package/dist/nodes/index.cjs +38 -75
  85. package/dist/nodes/index.d.cts +9 -13
  86. package/dist/nodes/index.d.ts +9 -13
  87. package/dist/nodes/index.js +8 -75
  88. package/dist/nodes/modifiers/index.cjs +12 -23
  89. package/dist/nodes/modifiers/index.d.cts +3 -12
  90. package/dist/nodes/modifiers/index.d.ts +3 -12
  91. package/dist/nodes/modifiers/index.js +4 -23
  92. package/dist/nodes/output/index.cjs +11 -17
  93. package/dist/nodes/output/index.d.cts +2 -13
  94. package/dist/nodes/output/index.d.ts +2 -13
  95. package/dist/nodes/output/index.js +8 -17
  96. package/dist/nodes/selectors/index.cjs +9 -13
  97. package/dist/nodes/selectors/index.d.cts +3 -11
  98. package/dist/nodes/selectors/index.d.ts +3 -11
  99. package/dist/nodes/selectors/index.js +8 -13
  100. package/dist/nodes/transformers/index.cjs +6 -13
  101. package/dist/nodes/transformers/index.d.cts +3 -17
  102. package/dist/nodes/transformers/index.d.ts +3 -17
  103. package/dist/nodes/transformers/index.js +3 -14
  104. package/dist/noise-select-template-BIc5lJ3B.d.ts +20 -0
  105. package/dist/noise-select-template-BIc5lJ3B.d.ts.map +1 -0
  106. package/dist/noise-select-template-DCaVwZ3-.d.cts +20 -0
  107. package/dist/noise-select-template-DCaVwZ3-.d.cts.map +1 -0
  108. package/dist/noise-terrace-template-0WFJalF_.d.cts +69 -0
  109. package/dist/noise-terrace-template-0WFJalF_.d.cts.map +1 -0
  110. package/dist/noise-terrace-template-li40jZuF.d.ts +69 -0
  111. package/dist/noise-terrace-template-li40jZuF.d.ts.map +1 -0
  112. package/dist/noise-turbulence-template-BhxPzE9y.d.ts +68 -0
  113. package/dist/noise-turbulence-template-BhxPzE9y.d.ts.map +1 -0
  114. package/dist/noise-turbulence-template-D1wvZo6-.d.cts +68 -0
  115. package/dist/noise-turbulence-template-D1wvZo6-.d.cts.map +1 -0
  116. package/dist/normalize-noise-module-CTxqByn9.js +20 -0
  117. package/dist/normalize-noise-module-CTxqByn9.js.map +1 -0
  118. package/dist/normalize-noise-module-U3fMmZRj.cjs +26 -0
  119. package/dist/normalize-noise-module-U3fMmZRj.cjs.map +1 -0
  120. package/dist/output-CsgQ-PfN.js +0 -0
  121. package/dist/output-DhHW36T8.cjs +0 -0
  122. package/dist/position-grid-template-B7YMhe83.d.cts +76 -0
  123. package/dist/position-grid-template-B7YMhe83.d.cts.map +1 -0
  124. package/dist/position-grid-template-QuIcXmat.d.ts +76 -0
  125. package/dist/position-grid-template-QuIcXmat.d.ts.map +1 -0
  126. package/dist/position-logger-template-Bj6c2m8v.d.ts +33 -0
  127. package/dist/position-logger-template-Bj6c2m8v.d.ts.map +1 -0
  128. package/dist/position-logger-template-DmcBLwwL.d.cts +33 -0
  129. package/dist/position-logger-template-DmcBLwwL.d.cts.map +1 -0
  130. package/dist/selectors-DOtoPc8O.cjs +0 -0
  131. package/dist/selectors-DPitHA56.js +0 -0
  132. package/dist/templates/generators/index.cjs +18 -30
  133. package/dist/templates/generators/index.d.cts +4 -45
  134. package/dist/templates/generators/index.d.ts +4 -45
  135. package/dist/templates/generators/index.js +9 -30
  136. package/dist/templates/groups/index.cjs +9 -12
  137. package/dist/templates/groups/index.d.cts +3 -7
  138. package/dist/templates/groups/index.d.ts +3 -7
  139. package/dist/templates/groups/index.js +9 -12
  140. package/dist/templates/index.cjs +44 -77
  141. package/dist/templates/index.d.cts +14 -9
  142. package/dist/templates/index.d.ts +14 -9
  143. package/dist/templates/index.js +14 -77
  144. package/dist/templates/modifiers/index.cjs +17 -28
  145. package/dist/templates/modifiers/index.d.cts +4 -41
  146. package/dist/templates/modifiers/index.d.ts +4 -41
  147. package/dist/templates/modifiers/index.js +9 -28
  148. package/dist/templates/output/index.cjs +12 -18
  149. package/dist/templates/output/index.d.cts +3 -19
  150. package/dist/templates/output/index.d.ts +3 -19
  151. package/dist/templates/output/index.js +9 -18
  152. package/dist/templates/selectors/index.cjs +10 -14
  153. package/dist/templates/selectors/index.d.cts +4 -13
  154. package/dist/templates/selectors/index.d.ts +4 -13
  155. package/dist/templates/selectors/index.js +9 -14
  156. package/dist/templates/transformers/index.cjs +13 -20
  157. package/dist/templates/transformers/index.d.cts +4 -4
  158. package/dist/templates/transformers/index.d.ts +4 -4
  159. package/dist/templates/transformers/index.js +9 -20
  160. package/dist/transformers-C-NV_u9j.cjs +324 -0
  161. package/dist/transformers-C-NV_u9j.cjs.map +1 -0
  162. package/dist/transformers-CbfR4wDy.js +0 -0
  163. package/dist/transformers-Cpxm1ER8.js +276 -0
  164. package/dist/transformers-Cpxm1ER8.js.map +1 -0
  165. package/dist/transformers-iRDXBonP.cjs +0 -0
  166. package/package.json +14 -15
  167. package/dist/chunk-36USJJC4.cjs +0 -576
  168. package/dist/chunk-4PQ4USYV.cjs +0 -1
  169. package/dist/chunk-DQE5NXY7.cjs +0 -911
  170. package/dist/chunk-FFQRP23R.cjs +0 -1
  171. package/dist/chunk-FMJZTXJQ.js +0 -576
  172. package/dist/chunk-JACBT4MS.cjs +0 -1
  173. package/dist/chunk-LKDSXT7I.cjs +0 -896
  174. package/dist/chunk-M26CSOHC.js +0 -911
  175. package/dist/chunk-N6YNJKLS.cjs +0 -1
  176. package/dist/chunk-NUA3VGOA.js +0 -896
  177. package/dist/chunk-OLJKWO2H.cjs +0 -1591
  178. package/dist/chunk-Q5FVGKKM.cjs +0 -1
  179. package/dist/chunk-R6TU3SBX.js +0 -49
  180. package/dist/chunk-SGHEOOLW.js +0 -19
  181. package/dist/chunk-UNMRBZ5X.cjs +0 -19
  182. package/dist/chunk-W4T6Q7A5.js +0 -1591
  183. package/dist/chunk-WOJTKQKO.cjs +0 -1
  184. package/dist/chunk-XC7VF5YC.cjs +0 -49
  185. package/dist/index-BZr1EROK.d.cts +0 -49
  186. package/dist/index-DzD3jbPF.d.ts +0 -49
  187. package/dist/node-props-D8SnrgWa.d.cts +0 -137
  188. package/dist/node-props-D8SnrgWa.d.ts +0 -137
  189. package/dist/noise-terrace-node-D2ezdTnC.d.cts +0 -22
  190. package/dist/noise-terrace-node-DW81ZQk6.d.ts +0 -22
  191. /package/dist/{chunk-2Y22M2Y4.js → generators-CEKtVh81.cjs} +0 -0
  192. /package/dist/{chunk-5ELMFIRV.js → generators-DUbGjGwn.js} +0 -0
  193. /package/dist/{chunk-RVWCBH7K.js → groups-7QhtZ7S3.js} +0 -0
  194. /package/dist/{chunk-SD3T3LFY.js → groups-_x04PMtP.cjs} +0 -0
  195. /package/dist/{chunk-TOYKGWYO.js → modifiers-BFuezug6.js} +0 -0
  196. /package/dist/{chunk-XZQQ6N3L.js → modifiers-BPTSn-15.cjs} +0 -0
@@ -0,0 +1 @@
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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"}