three-stdlib 2.8.9 → 2.8.12

Sign up to get free protection for your applications and to get access to all the features.
Files changed (480) hide show
  1. package/Nodes-607e9ed8.js +471 -0
  2. package/Nodes-627a8bdf.js +1 -0
  3. package/index.cjs.js +1 -1
  4. package/index.d.ts +1 -127
  5. package/index.js +122 -128
  6. package/lines/LineMaterial.d.ts +7 -6
  7. package/loaders/NodeMaterialLoader.cjs.js +1 -1
  8. package/loaders/NodeMaterialLoader.js +2 -136
  9. package/modifiers/CurveModifier.cjs.js +1 -1
  10. package/modifiers/CurveModifier.d.ts +13 -9
  11. package/modifiers/CurveModifier.js +27 -30
  12. package/nodes/Nodes.cjs.js +1 -1
  13. package/nodes/Nodes.js +203 -76
  14. package/nodes/ShaderNode.cjs.js +1 -0
  15. package/nodes/ShaderNode.js +308 -0
  16. package/nodes/accessors/BufferNode.cjs.js +1 -0
  17. package/nodes/accessors/BufferNode.js +18 -0
  18. package/nodes/accessors/CameraNode.cjs.js +1 -1
  19. package/nodes/accessors/CameraNode.js +32 -138
  20. package/nodes/accessors/CubeTextureNode.cjs.js +1 -0
  21. package/nodes/accessors/CubeTextureNode.js +53 -0
  22. package/nodes/accessors/MaterialNode.cjs.js +1 -0
  23. package/nodes/accessors/MaterialNode.js +80 -0
  24. package/nodes/accessors/MaterialReferenceNode.cjs.js +1 -0
  25. package/nodes/accessors/MaterialReferenceNode.js +16 -0
  26. package/nodes/accessors/ModelNode.cjs.js +1 -0
  27. package/nodes/accessors/ModelNode.js +10 -0
  28. package/nodes/accessors/ModelViewProjectionNode.cjs.js +1 -0
  29. package/nodes/accessors/ModelViewProjectionNode.js +22 -0
  30. package/nodes/accessors/NormalNode.cjs.js +1 -1
  31. package/nodes/accessors/NormalNode.js +48 -78
  32. package/nodes/accessors/Object3DNode.cjs.js +1 -0
  33. package/nodes/accessors/Object3DNode.js +85 -0
  34. package/nodes/accessors/PointUVNode.cjs.js +1 -0
  35. package/nodes/accessors/PointUVNode.js +16 -0
  36. package/nodes/accessors/PositionNode.cjs.js +1 -1
  37. package/nodes/accessors/PositionNode.js +49 -87
  38. package/nodes/accessors/ReferenceNode.cjs.js +1 -0
  39. package/nodes/accessors/ReferenceNode.js +43 -0
  40. package/nodes/accessors/ReflectNode.cjs.js +1 -1
  41. package/nodes/accessors/ReflectNode.js +35 -98
  42. package/nodes/accessors/SkinningNode.cjs.js +1 -0
  43. package/nodes/accessors/SkinningNode.js +59 -0
  44. package/nodes/accessors/TextureNode.cjs.js +1 -0
  45. package/nodes/accessors/TextureNode.js +68 -0
  46. package/nodes/accessors/UVNode.cjs.js +1 -1
  47. package/nodes/accessors/UVNode.js +20 -38
  48. package/nodes/core/ArrayUniformNode.cjs.js +1 -0
  49. package/nodes/core/ArrayUniformNode.js +17 -0
  50. package/nodes/core/AttributeNode.cjs.js +1 -1
  51. package/nodes/core/AttributeNode.js +31 -40
  52. package/nodes/core/BypassNode.cjs.js +1 -0
  53. package/nodes/core/BypassNode.js +28 -0
  54. package/nodes/core/CodeNode.cjs.js +1 -0
  55. package/nodes/core/CodeNode.js +35 -0
  56. package/nodes/core/ConstNode.cjs.js +1 -1
  57. package/nodes/core/ConstNode.js +10 -78
  58. package/nodes/core/ContextNode.cjs.js +1 -0
  59. package/nodes/core/ContextNode.js +26 -0
  60. package/nodes/core/ExpressionNode.cjs.js +1 -1
  61. package/nodes/core/ExpressionNode.js +19 -8
  62. package/nodes/core/FunctionCallNode.cjs.js +1 -1
  63. package/nodes/core/FunctionCallNode.js +31 -60
  64. package/nodes/core/FunctionNode.cjs.js +1 -1
  65. package/nodes/core/FunctionNode.js +45 -166
  66. package/nodes/core/InputNode.cjs.js +1 -1
  67. package/nodes/core/InputNode.js +43 -57
  68. package/nodes/core/Node.cjs.js +1 -1
  69. package/nodes/core/Node.js +155 -113
  70. package/nodes/core/NodeAttribute.cjs.js +1 -0
  71. package/nodes/core/NodeAttribute.js +11 -0
  72. package/nodes/core/NodeBuilder.cjs.js +1 -1
  73. package/nodes/core/NodeBuilder.js +422 -548
  74. package/nodes/core/NodeCode.cjs.js +1 -0
  75. package/nodes/core/NodeCode.js +13 -0
  76. package/nodes/core/NodeFrame.cjs.js +1 -1
  77. package/nodes/core/NodeFrame.js +34 -27
  78. package/nodes/core/NodeFunction.cjs.js +1 -0
  79. package/nodes/core/NodeFunction.js +17 -0
  80. package/nodes/core/NodeFunctionInput.cjs.js +1 -0
  81. package/nodes/core/NodeFunctionInput.js +14 -0
  82. package/nodes/core/NodeKeywords.cjs.js +1 -0
  83. package/nodes/core/NodeKeywords.js +54 -0
  84. package/nodes/core/NodeParser.cjs.js +1 -0
  85. package/nodes/core/NodeParser.js +8 -0
  86. package/nodes/core/NodeUniform.cjs.js +1 -1
  87. package/nodes/core/NodeUniform.js +18 -17
  88. package/nodes/core/NodeUtils.cjs.js +1 -1
  89. package/nodes/core/NodeUtils.js +55 -35
  90. package/nodes/core/NodeVar.cjs.js +1 -0
  91. package/nodes/core/NodeVar.js +11 -0
  92. package/nodes/core/NodeVary.cjs.js +1 -0
  93. package/nodes/core/NodeVary.js +11 -0
  94. package/nodes/core/PropertyNode.cjs.js +1 -0
  95. package/nodes/core/PropertyNode.js +26 -0
  96. package/nodes/core/TempNode.cjs.js +1 -1
  97. package/nodes/core/TempNode.js +21 -88
  98. package/nodes/core/UniformNode.cjs.js +1 -0
  99. package/nodes/core/UniformNode.js +28 -0
  100. package/nodes/core/VarNode.cjs.js +1 -1
  101. package/nodes/core/VarNode.js +28 -35
  102. package/nodes/core/VaryNode.cjs.js +1 -0
  103. package/nodes/core/VaryNode.js +38 -0
  104. package/nodes/core/constants.cjs.js +1 -0
  105. package/nodes/core/constants.js +11 -0
  106. package/nodes/display/ColorSpaceNode.cjs.js +1 -0
  107. package/nodes/display/ColorSpaceNode.js +67 -0
  108. package/nodes/display/NormalMapNode.cjs.js +1 -0
  109. package/nodes/display/NormalMapNode.js +71 -0
  110. package/nodes/fog/FogNode.cjs.js +1 -0
  111. package/nodes/fog/FogNode.js +18 -0
  112. package/nodes/fog/FogRangeNode.cjs.js +1 -0
  113. package/nodes/fog/FogRangeNode.js +20 -0
  114. package/nodes/functions/BSDFs.cjs.js +1 -0
  115. package/nodes/functions/BSDFs.js +121 -0
  116. package/nodes/functions/PhysicalMaterialFunctions.cjs.js +1 -0
  117. package/nodes/functions/PhysicalMaterialFunctions.js +57 -0
  118. package/nodes/lights/LightContextNode.cjs.js +1 -0
  119. package/nodes/lights/LightContextNode.js +43 -0
  120. package/nodes/lights/LightNode.cjs.js +1 -0
  121. package/nodes/lights/LightNode.js +61 -0
  122. package/nodes/lights/LightsNode.cjs.js +1 -0
  123. package/nodes/lights/LightsNode.js +77 -0
  124. package/nodes/loaders/NodeLoader.cjs.js +1 -0
  125. package/nodes/loaders/NodeLoader.js +80 -0
  126. package/nodes/loaders/NodeMaterialLoader.cjs.js +1 -0
  127. package/nodes/loaders/NodeMaterialLoader.js +29 -0
  128. package/nodes/loaders/NodeObjectLoader.cjs.js +1 -0
  129. package/nodes/loaders/NodeObjectLoader.js +49 -0
  130. package/nodes/materials/LineBasicNodeMaterial.cjs.js +1 -0
  131. package/nodes/materials/LineBasicNodeMaterial.js +31 -0
  132. package/nodes/materials/Materials.cjs.js +1 -0
  133. package/nodes/materials/Materials.js +27 -0
  134. package/nodes/materials/MeshBasicNodeMaterial.cjs.js +1 -0
  135. package/nodes/materials/MeshBasicNodeMaterial.js +32 -0
  136. package/nodes/materials/MeshStandardNodeMaterial.cjs.js +1 -1
  137. package/nodes/materials/MeshStandardNodeMaterial.js +41 -13
  138. package/nodes/materials/NodeMaterial.cjs.js +1 -1
  139. package/nodes/materials/NodeMaterial.js +67 -140
  140. package/nodes/materials/PointsNodeMaterial.cjs.js +1 -0
  141. package/nodes/materials/PointsNodeMaterial.js +34 -0
  142. package/nodes/math/CondNode.cjs.js +1 -1
  143. package/nodes/math/CondNode.js +33 -74
  144. package/nodes/math/MathNode.cjs.js +1 -1
  145. package/nodes/math/MathNode.js +193 -193
  146. package/nodes/math/OperatorNode.cjs.js +1 -1
  147. package/nodes/math/OperatorNode.js +116 -52
  148. package/nodes/parsers/GLSLNodeFunction.cjs.js +1 -0
  149. package/nodes/parsers/GLSLNodeFunction.js +101 -0
  150. package/nodes/parsers/GLSLNodeParser.cjs.js +1 -0
  151. package/nodes/parsers/GLSLNodeParser.js +13 -0
  152. package/nodes/parsers/WGSLNodeFunction.cjs.js +1 -0
  153. package/nodes/parsers/WGSLNodeFunction.js +71 -0
  154. package/nodes/parsers/WGSLNodeParser.cjs.js +1 -0
  155. package/nodes/parsers/WGSLNodeParser.js +13 -0
  156. package/nodes/procedural/CheckerNode.cjs.js +1 -1
  157. package/nodes/procedural/CheckerNode.js +22 -40
  158. package/nodes/utils/ArrayElementNode.cjs.js +1 -0
  159. package/nodes/utils/ArrayElementNode.js +22 -0
  160. package/nodes/utils/ConvertNode.cjs.js +1 -0
  161. package/nodes/utils/ConvertNode.js +29 -0
  162. package/nodes/utils/JoinNode.cjs.js +1 -1
  163. package/nodes/utils/JoinNode.js +19 -69
  164. package/nodes/utils/MatcapUVNode.cjs.js +1 -0
  165. package/nodes/utils/MatcapUVNode.js +18 -0
  166. package/nodes/utils/OscNode.cjs.js +1 -0
  167. package/nodes/utils/OscNode.js +55 -0
  168. package/nodes/utils/SplitNode.cjs.js +1 -0
  169. package/nodes/utils/SplitNode.js +58 -0
  170. package/nodes/utils/SpriteSheetUVNode.cjs.js +1 -0
  171. package/nodes/utils/SpriteSheetUVNode.js +39 -0
  172. package/nodes/utils/TimerNode.cjs.js +1 -1
  173. package/nodes/utils/TimerNode.js +38 -56
  174. package/objects/Lensflare.cjs.js +1 -1
  175. package/objects/Lensflare.js +11 -3
  176. package/package.json +3 -3
  177. package/postprocessing/AfterimagePass.d.ts +2 -30
  178. package/shaders/ACESFilmicToneMappingShader.cjs.js +1 -1
  179. package/shaders/ACESFilmicToneMappingShader.d.ts +9 -0
  180. package/shaders/ACESFilmicToneMappingShader.js +1 -1
  181. package/shaders/AfterimageShader.d.ts +9 -15
  182. package/shaders/BasicShader.cjs.js +1 -1
  183. package/shaders/BasicShader.d.ts +5 -5
  184. package/shaders/BasicShader.js +1 -1
  185. package/shaders/BleachBypassShader.cjs.js +1 -1
  186. package/shaders/BleachBypassShader.d.ts +8 -9
  187. package/shaders/BleachBypassShader.js +1 -1
  188. package/shaders/BlendShader.cjs.js +1 -1
  189. package/shaders/BlendShader.d.ts +13 -7
  190. package/shaders/BlendShader.js +1 -1
  191. package/shaders/BokehShader.cjs.js +1 -1
  192. package/shaders/BokehShader.d.ts +18 -19
  193. package/shaders/BokehShader.js +1 -1
  194. package/shaders/BokehShader2.cjs.js +1 -1
  195. package/shaders/BokehShader2.d.ts +80 -34
  196. package/shaders/BokehShader2.js +2 -2
  197. package/shaders/BrightnessContrastShader.cjs.js +1 -1
  198. package/shaders/BrightnessContrastShader.d.ts +10 -6
  199. package/shaders/BrightnessContrastShader.js +1 -1
  200. package/shaders/ColorCorrectionShader.cjs.js +1 -1
  201. package/shaders/ColorCorrectionShader.d.ts +14 -7
  202. package/shaders/ColorCorrectionShader.js +1 -1
  203. package/shaders/ColorifyShader.cjs.js +1 -1
  204. package/shaders/ColorifyShader.d.ts +8 -5
  205. package/shaders/ColorifyShader.js +1 -1
  206. package/shaders/ConvolutionShader.cjs.js +1 -1
  207. package/shaders/ConvolutionShader.d.ts +15 -16
  208. package/shaders/ConvolutionShader.js +9 -14
  209. package/shaders/CopyShader.d.ts +8 -12
  210. package/shaders/DOFMipMapShader.cjs.js +1 -1
  211. package/shaders/DOFMipMapShader.d.ts +13 -7
  212. package/shaders/DOFMipMapShader.js +1 -1
  213. package/shaders/DepthLimitedBlurShader.cjs.js +1 -1
  214. package/shaders/DepthLimitedBlurShader.d.ts +26 -25
  215. package/shaders/DepthLimitedBlurShader.js +12 -16
  216. package/shaders/DigitalGlitch.cjs.js +1 -1
  217. package/shaders/DigitalGlitch.d.ts +34 -14
  218. package/shaders/DigitalGlitch.js +1 -10
  219. package/shaders/DotScreenShader.cjs.js +1 -1
  220. package/shaders/DotScreenShader.d.ts +17 -8
  221. package/shaders/DotScreenShader.js +1 -1
  222. package/shaders/FXAAShader.cjs.js +1 -1
  223. package/shaders/FXAAShader.d.ts +8 -5
  224. package/shaders/FXAAShader.js +1 -1
  225. package/shaders/FilmShader.cjs.js +1 -1
  226. package/shaders/FilmShader.d.ts +19 -9
  227. package/shaders/FilmShader.js +1 -1
  228. package/shaders/FocusShader.cjs.js +1 -1
  229. package/shaders/FocusShader.d.ts +16 -8
  230. package/shaders/FocusShader.js +1 -1
  231. package/shaders/FreiChenShader.cjs.js +1 -1
  232. package/shaders/FreiChenShader.d.ts +8 -5
  233. package/shaders/FreiChenShader.js +1 -1
  234. package/shaders/FresnelShader.cjs.js +1 -1
  235. package/shaders/FresnelShader.d.ts +21 -0
  236. package/shaders/FresnelShader.js +1 -1
  237. package/shaders/GammaCorrectionShader.d.ts +7 -7
  238. package/shaders/GodRaysShader.cjs.js +1 -1
  239. package/shaders/GodRaysShader.d.ts +38 -20
  240. package/shaders/GodRaysShader.js +4 -4
  241. package/shaders/HalftoneShader.cjs.js +1 -1
  242. package/shaders/HalftoneShader.d.ts +40 -16
  243. package/shaders/HalftoneShader.js +1 -1
  244. package/shaders/HorizontalBlurShader.d.ts +8 -8
  245. package/shaders/HorizontalTiltShiftShader.cjs.js +1 -1
  246. package/shaders/HorizontalTiltShiftShader.d.ts +10 -6
  247. package/shaders/HorizontalTiltShiftShader.js +1 -1
  248. package/shaders/HueSaturationShader.cjs.js +1 -1
  249. package/shaders/HueSaturationShader.d.ts +10 -6
  250. package/shaders/HueSaturationShader.js +1 -1
  251. package/shaders/KaleidoShader.cjs.js +1 -1
  252. package/shaders/KaleidoShader.d.ts +10 -6
  253. package/shaders/KaleidoShader.js +1 -1
  254. package/shaders/LuminosityHighPassShader.cjs.js +1 -1
  255. package/shaders/LuminosityHighPassShader.d.ts +17 -8
  256. package/shaders/LuminosityHighPassShader.js +1 -1
  257. package/shaders/LuminosityShader.cjs.js +1 -1
  258. package/shaders/LuminosityShader.d.ts +4 -4
  259. package/shaders/LuminosityShader.js +1 -1
  260. package/shaders/MirrorShader.cjs.js +1 -1
  261. package/shaders/MirrorShader.d.ts +7 -5
  262. package/shaders/MirrorShader.js +1 -1
  263. package/shaders/NormalMapShader.cjs.js +1 -1
  264. package/shaders/NormalMapShader.d.ts +14 -7
  265. package/shaders/NormalMapShader.js +1 -1
  266. package/shaders/ParallaxShader.cjs.js +1 -1
  267. package/shaders/ParallaxShader.d.ts +28 -0
  268. package/shaders/ParallaxShader.js +1 -1
  269. package/shaders/PixelShader.cjs.js +1 -1
  270. package/shaders/PixelShader.d.ts +10 -6
  271. package/shaders/PixelShader.js +1 -1
  272. package/shaders/RGBShiftShader.cjs.js +1 -1
  273. package/shaders/RGBShiftShader.d.ts +10 -6
  274. package/shaders/RGBShiftShader.js +1 -1
  275. package/shaders/SAOShader.cjs.js +1 -1
  276. package/shaders/SAOShader.d.ts +24 -29
  277. package/shaders/SAOShader.js +1 -5
  278. package/shaders/SMAAShader.cjs.js +1 -1
  279. package/shaders/SMAAShader.d.ts +31 -16
  280. package/shaders/SMAAShader.js +3 -3
  281. package/shaders/SSAOShader.cjs.js +1 -1
  282. package/shaders/SSAOShader.d.ts +58 -25
  283. package/shaders/SSAOShader.js +3 -3
  284. package/shaders/SSRShader.cjs.js +1 -1
  285. package/shaders/SSRShader.d.ts +67 -36
  286. package/shaders/SSRShader.js +3 -3
  287. package/shaders/SepiaShader.cjs.js +1 -1
  288. package/shaders/SepiaShader.d.ts +7 -5
  289. package/shaders/SepiaShader.js +1 -1
  290. package/shaders/SobelOperatorShader.cjs.js +1 -1
  291. package/shaders/SobelOperatorShader.d.ts +8 -5
  292. package/shaders/SobelOperatorShader.js +1 -1
  293. package/shaders/SubsurfaceScatteringShader.cjs.js +1 -1
  294. package/shaders/SubsurfaceScatteringShader.d.ts +2 -34
  295. package/shaders/SubsurfaceScatteringShader.js +3 -3
  296. package/shaders/TechnicolorShader.cjs.js +1 -1
  297. package/shaders/TechnicolorShader.d.ts +4 -4
  298. package/shaders/TechnicolorShader.js +1 -1
  299. package/shaders/ToneMapShader.cjs.js +1 -1
  300. package/shaders/ToneMapShader.d.ts +19 -9
  301. package/shaders/ToneMapShader.js +1 -1
  302. package/shaders/ToonShader.cjs.js +1 -1
  303. package/shaders/ToonShader.d.ts +80 -34
  304. package/shaders/ToonShader.js +4 -4
  305. package/shaders/TriangleBlurShader.cjs.js +1 -1
  306. package/shaders/TriangleBlurShader.d.ts +8 -5
  307. package/shaders/TriangleBlurShader.js +1 -1
  308. package/shaders/UnpackDepthRGBAShader.cjs.js +1 -1
  309. package/shaders/UnpackDepthRGBAShader.d.ts +7 -5
  310. package/shaders/UnpackDepthRGBAShader.js +1 -1
  311. package/shaders/VerticalBlurShader.cjs.js +1 -1
  312. package/shaders/VerticalBlurShader.d.ts +8 -8
  313. package/shaders/VerticalBlurShader.js +1 -1
  314. package/shaders/VerticalTiltShiftShader.cjs.js +1 -1
  315. package/shaders/VerticalTiltShiftShader.d.ts +10 -6
  316. package/shaders/VerticalTiltShiftShader.js +1 -1
  317. package/shaders/VignetteShader.cjs.js +1 -1
  318. package/shaders/VignetteShader.d.ts +10 -6
  319. package/shaders/VignetteShader.js +1 -1
  320. package/shaders/VolumeShader.cjs.js +1 -1
  321. package/shaders/VolumeShader.d.ts +20 -9
  322. package/shaders/VolumeShader.js +1 -1
  323. package/shaders/WaterRefractionShader.cjs.js +1 -1
  324. package/shaders/WaterRefractionShader.d.ts +16 -8
  325. package/shaders/WaterRefractionShader.js +1 -1
  326. package/shaders/index.cjs.js +1 -0
  327. package/shaders/index.d.ts +53 -0
  328. package/shaders/index.js +53 -0
  329. package/shaders/types.cjs.js +1 -0
  330. package/shaders/types.d.ts +14 -0
  331. package/shaders/types.js +1 -0
  332. package/types/shared.d.ts +0 -20
  333. package/Nodes-894ac9dc.js +0 -1
  334. package/Nodes-af575af7.js +0 -157
  335. package/nodes/accessors/ColorsNode.cjs.js +0 -1
  336. package/nodes/accessors/ColorsNode.d.ts +0 -10
  337. package/nodes/accessors/ColorsNode.js +0 -40
  338. package/nodes/accessors/LightNode.cjs.js +0 -1
  339. package/nodes/accessors/LightNode.d.ts +0 -12
  340. package/nodes/accessors/LightNode.js +0 -41
  341. package/nodes/accessors/ResolutionNode.cjs.js +0 -1
  342. package/nodes/accessors/ResolutionNode.d.ts +0 -14
  343. package/nodes/accessors/ResolutionNode.js +0 -41
  344. package/nodes/accessors/ScreenUVNode.cjs.js +0 -1
  345. package/nodes/accessors/ScreenUVNode.d.ts +0 -11
  346. package/nodes/accessors/ScreenUVNode.js +0 -43
  347. package/nodes/core/NodeLib.cjs.js +0 -1
  348. package/nodes/core/NodeLib.d.ts +0 -22
  349. package/nodes/core/NodeLib.js +0 -37
  350. package/nodes/core/StructNode.cjs.js +0 -1
  351. package/nodes/core/StructNode.d.ts +0 -19
  352. package/nodes/core/StructNode.js +0 -72
  353. package/nodes/effects/BlurNode.cjs.js +0 -1
  354. package/nodes/effects/BlurNode.d.ts +0 -31
  355. package/nodes/effects/BlurNode.js +0 -100
  356. package/nodes/effects/ColorAdjustmentNode.cjs.js +0 -1
  357. package/nodes/effects/ColorAdjustmentNode.d.ts +0 -27
  358. package/nodes/effects/ColorAdjustmentNode.js +0 -73
  359. package/nodes/effects/LuminanceNode.cjs.js +0 -1
  360. package/nodes/effects/LuminanceNode.d.ts +0 -18
  361. package/nodes/effects/LuminanceNode.js +0 -46
  362. package/nodes/inputs/BoolNode.cjs.js +0 -1
  363. package/nodes/inputs/BoolNode.d.ts +0 -19
  364. package/nodes/inputs/BoolNode.js +0 -36
  365. package/nodes/inputs/ColorNode.cjs.js +0 -1
  366. package/nodes/inputs/ColorNode.d.ts +0 -21
  367. package/nodes/inputs/ColorNode.js +0 -41
  368. package/nodes/inputs/CubeTextureNode.cjs.js +0 -1
  369. package/nodes/inputs/CubeTextureNode.d.ts +0 -17
  370. package/nodes/inputs/CubeTextureNode.js +0 -79
  371. package/nodes/inputs/FloatNode.cjs.js +0 -1
  372. package/nodes/inputs/FloatNode.d.ts +0 -19
  373. package/nodes/inputs/FloatNode.js +0 -36
  374. package/nodes/inputs/IntNode.cjs.js +0 -1
  375. package/nodes/inputs/IntNode.d.ts +0 -19
  376. package/nodes/inputs/IntNode.js +0 -36
  377. package/nodes/inputs/Matrix3Node.cjs.js +0 -1
  378. package/nodes/inputs/Matrix3Node.d.ts +0 -22
  379. package/nodes/inputs/Matrix3Node.js +0 -46
  380. package/nodes/inputs/Matrix4Node.cjs.js +0 -1
  381. package/nodes/inputs/Matrix4Node.d.ts +0 -22
  382. package/nodes/inputs/Matrix4Node.js +0 -46
  383. package/nodes/inputs/PropertyNode.cjs.js +0 -1
  384. package/nodes/inputs/PropertyNode.d.ts +0 -10
  385. package/nodes/inputs/PropertyNode.js +0 -35
  386. package/nodes/inputs/RTTNode.cjs.js +0 -1
  387. package/nodes/inputs/RTTNode.d.ts +0 -27
  388. package/nodes/inputs/RTTNode.js +0 -103
  389. package/nodes/inputs/ReflectorNode.cjs.js +0 -1
  390. package/nodes/inputs/ReflectorNode.d.ts +0 -21
  391. package/nodes/inputs/ReflectorNode.js +0 -60
  392. package/nodes/inputs/ScreenNode.cjs.js +0 -1
  393. package/nodes/inputs/ScreenNode.d.ts +0 -11
  394. package/nodes/inputs/ScreenNode.js +0 -20
  395. package/nodes/inputs/TextureNode.cjs.js +0 -1
  396. package/nodes/inputs/TextureNode.d.ts +0 -20
  397. package/nodes/inputs/TextureNode.js +0 -83
  398. package/nodes/inputs/Vector2Node.cjs.js +0 -1
  399. package/nodes/inputs/Vector2Node.d.ts +0 -21
  400. package/nodes/inputs/Vector2Node.js +0 -40
  401. package/nodes/inputs/Vector3Node.cjs.js +0 -1
  402. package/nodes/inputs/Vector3Node.d.ts +0 -21
  403. package/nodes/inputs/Vector3Node.js +0 -41
  404. package/nodes/inputs/Vector4Node.cjs.js +0 -1
  405. package/nodes/inputs/Vector4Node.d.ts +0 -21
  406. package/nodes/inputs/Vector4Node.js +0 -42
  407. package/nodes/materials/BasicNodeMaterial.cjs.js +0 -1
  408. package/nodes/materials/BasicNodeMaterial.d.ts +0 -11
  409. package/nodes/materials/BasicNodeMaterial.js +0 -15
  410. package/nodes/materials/PhongNodeMaterial.cjs.js +0 -1
  411. package/nodes/materials/PhongNodeMaterial.d.ts +0 -21
  412. package/nodes/materials/PhongNodeMaterial.js +0 -15
  413. package/nodes/materials/SpriteNodeMaterial.cjs.js +0 -1
  414. package/nodes/materials/SpriteNodeMaterial.d.ts +0 -12
  415. package/nodes/materials/SpriteNodeMaterial.js +0 -15
  416. package/nodes/materials/StandardNodeMaterial.cjs.js +0 -1
  417. package/nodes/materials/StandardNodeMaterial.d.ts +0 -25
  418. package/nodes/materials/StandardNodeMaterial.js +0 -15
  419. package/nodes/materials/nodes/BasicNode.cjs.js +0 -1
  420. package/nodes/materials/nodes/BasicNode.d.ts +0 -15
  421. package/nodes/materials/nodes/BasicNode.js +0 -91
  422. package/nodes/materials/nodes/MeshStandardNode.cjs.js +0 -1
  423. package/nodes/materials/nodes/MeshStandardNode.d.ts +0 -25
  424. package/nodes/materials/nodes/MeshStandardNode.js +0 -81
  425. package/nodes/materials/nodes/PhongNode.cjs.js +0 -1
  426. package/nodes/materials/nodes/PhongNode.d.ts +0 -14
  427. package/nodes/materials/nodes/PhongNode.js +0 -212
  428. package/nodes/materials/nodes/RawNode.cjs.js +0 -1
  429. package/nodes/materials/nodes/RawNode.d.ts +0 -10
  430. package/nodes/materials/nodes/RawNode.js +0 -42
  431. package/nodes/materials/nodes/SpriteNode.cjs.js +0 -1
  432. package/nodes/materials/nodes/SpriteNode.d.ts +0 -13
  433. package/nodes/materials/nodes/SpriteNode.js +0 -113
  434. package/nodes/materials/nodes/StandardNode.cjs.js +0 -1
  435. package/nodes/materials/nodes/StandardNode.d.ts +0 -15
  436. package/nodes/materials/nodes/StandardNode.js +0 -336
  437. package/nodes/misc/BumpMapNode.cjs.js +0 -1
  438. package/nodes/misc/BumpMapNode.d.ts +0 -21
  439. package/nodes/misc/BumpMapNode.js +0 -80
  440. package/nodes/misc/NormalMapNode.cjs.js +0 -1
  441. package/nodes/misc/NormalMapNode.d.ts +0 -19
  442. package/nodes/misc/NormalMapNode.js +0 -102
  443. package/nodes/misc/TextureCubeNode.cjs.js +0 -1
  444. package/nodes/misc/TextureCubeNode.d.ts +0 -21
  445. package/nodes/misc/TextureCubeNode.js +0 -52
  446. package/nodes/misc/TextureCubeUVNode.cjs.js +0 -1
  447. package/nodes/misc/TextureCubeUVNode.d.ts +0 -18
  448. package/nodes/misc/TextureCubeUVNode.js +0 -229
  449. package/nodes/postprocessing/NodePass.cjs.js +0 -1
  450. package/nodes/postprocessing/NodePass.d.ts +0 -15
  451. package/nodes/postprocessing/NodePass.js +0 -61
  452. package/nodes/postprocessing/NodePostProcessing.cjs.js +0 -1
  453. package/nodes/postprocessing/NodePostProcessing.d.ts +0 -26
  454. package/nodes/postprocessing/NodePostProcessing.js +0 -91
  455. package/nodes/procedural/NoiseNode.cjs.js +0 -1
  456. package/nodes/procedural/NoiseNode.d.ts +0 -17
  457. package/nodes/procedural/NoiseNode.js +0 -43
  458. package/nodes/utils/BypassNode.cjs.js +0 -1
  459. package/nodes/utils/BypassNode.d.ts +0 -11
  460. package/nodes/utils/BypassNode.js +0 -55
  461. package/nodes/utils/ColorSpaceNode.cjs.js +0 -1
  462. package/nodes/utils/ColorSpaceNode.d.ts +0 -55
  463. package/nodes/utils/ColorSpaceNode.js +0 -106
  464. package/nodes/utils/MaxMIPLevelNode.cjs.js +0 -1
  465. package/nodes/utils/MaxMIPLevelNode.d.ts +0 -11
  466. package/nodes/utils/MaxMIPLevelNode.js +0 -38
  467. package/nodes/utils/SpecularMIPLevelNode.cjs.js +0 -1
  468. package/nodes/utils/SpecularMIPLevelNode.d.ts +0 -17
  469. package/nodes/utils/SpecularMIPLevelNode.js +0 -61
  470. package/nodes/utils/SubSlotNode.cjs.js +0 -1
  471. package/nodes/utils/SubSlotNode.js +0 -53
  472. package/nodes/utils/SwitchNode.cjs.js +0 -1
  473. package/nodes/utils/SwitchNode.d.ts +0 -11
  474. package/nodes/utils/SwitchNode.js +0 -69
  475. package/nodes/utils/UVTransformNode.cjs.js +0 -1
  476. package/nodes/utils/UVTransformNode.d.ts +0 -15
  477. package/nodes/utils/UVTransformNode.js +0 -46
  478. package/nodes/utils/VelocityNode.cjs.js +0 -1
  479. package/nodes/utils/VelocityNode.d.ts +0 -28
  480. package/nodes/utils/VelocityNode.js +0 -115
@@ -0,0 +1 @@
1
+ "use strict";var e=require("./Node.cjs.js");require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three");class t extends e{constructor(e,t={}){super(),this.node=e,this.context=t}getNodeType(e){return this.node.getNodeType(e)}generate(e,t){const s=e.getContext();e.setContext(Object.assign({},e.context,this.context));const o=this.node.build(e,t);return e.setContext(s),o}}t.prototype.isContextNode=!0,module.exports=t;
@@ -0,0 +1,26 @@
1
+ import Node from './Node.js';
2
+
3
+ class ContextNode extends Node {
4
+ constructor(node, context = {}) {
5
+ super();
6
+ this.node = node;
7
+ this.context = context;
8
+ }
9
+
10
+ getNodeType(builder) {
11
+ return this.node.getNodeType(builder);
12
+ }
13
+
14
+ generate(builder, output) {
15
+ const previousContext = builder.getContext();
16
+ builder.setContext(Object.assign({}, builder.context, this.context));
17
+ const snippet = this.node.build(builder, output);
18
+ builder.setContext(previousContext);
19
+ return snippet;
20
+ }
21
+
22
+ }
23
+
24
+ ContextNode.prototype.isContextNode = true;
25
+
26
+ export default ContextNode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./FunctionNode.cjs.js");function o(o,r,t,s,c){e.FunctionNode.call(this,o,c,s,t,r)}require("./TempNode.cjs.js"),require("three"),require("./Node.cjs.js"),require("./NodeLib.cjs.js"),o.prototype=Object.create(e.FunctionNode.prototype),o.prototype.constructor=o,o.prototype.nodeType="Expression",exports.ExpressionNode=o;
1
+ "use strict";var e=require("./TempNode.cjs.js");require("./Node.cjs.js"),require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three");module.exports=class extends e{constructor(e="",s="void"){super(s),this.snipped=e}generate(e){const s=this.getNodeType(e),r=this.snipped;if("void"!==s)return`( ${r} )`;e.addFlowCode(r)}};
@@ -1,11 +1,22 @@
1
- import { FunctionNode } from './FunctionNode.js';
1
+ import TempNode from './TempNode.js';
2
2
 
3
- function ExpressionNode(src, type, keywords, extensions, includes) {
4
- FunctionNode.call(this, src, includes, extensions, keywords, type);
5
- }
3
+ class ExpressionNode extends TempNode {
4
+ constructor(snipped = '', nodeType = 'void') {
5
+ super(nodeType);
6
+ this.snipped = snipped;
7
+ }
8
+
9
+ generate(builder) {
10
+ const type = this.getNodeType(builder);
11
+ const snipped = this.snipped;
6
12
 
7
- ExpressionNode.prototype = Object.create(FunctionNode.prototype);
8
- ExpressionNode.prototype.constructor = ExpressionNode;
9
- ExpressionNode.prototype.nodeType = 'Expression';
13
+ if (type === 'void') {
14
+ builder.addFlowCode(snipped);
15
+ } else {
16
+ return `( ${snipped} )`;
17
+ }
18
+ }
19
+
20
+ }
10
21
 
11
- export { ExpressionNode };
22
+ export default ExpressionNode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("./TempNode.cjs.js");function e(e,i){t.TempNode.call(this),this.setFunction(e,i)}require("three"),require("./Node.cjs.js"),e.prototype=Object.create(t.TempNode.prototype),e.prototype.constructor=e,e.prototype.nodeType="FunctionCall",e.prototype.setFunction=function(t,e){this.value=t,this.inputs=e||[]},e.prototype.getFunction=function(){return this.value},e.prototype.getType=function(t){return this.value.getType(t)},e.prototype.generate=function(t,e){var i=this.getType(t),o=this.value,n=o.build(t,e)+"( ",u=[];for(let e=0;e<o.inputs.length;e++){var p=o.inputs[e],r=this.inputs[e]||this.inputs[p.name];u.push(r.build(t,t.getTypeByFormat(p.type)))}return n+=u.join(", ")+" )",t.format(n,i,e)},e.prototype.copy=function(e){t.TempNode.prototype.copy.call(this,e);for(let t in e.inputs)this.inputs[t]=e.inputs[t];return this.value=e.value,this},e.prototype.toJSON=function(t){var e=this.getJSONNode(t);if(!e){var i=this.value;if((e=this.createJSONNode(t)).value=this.value.toJSON(t).uuid,i.inputs.length){e.inputs={};for(let u=0;u<i.inputs.length;u++){var o=i.inputs[u],n=this.inputs[u]||this.inputs[o.name];e.inputs[o.name]=n.toJSON(t).uuid}}}return e},exports.FunctionCallNode=e;
1
+ "use strict";var e=require("./TempNode.cjs.js");require("./Node.cjs.js"),require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three");module.exports=class extends e{constructor(e=null,t={}){super(),this.functionNode=e,this.parameters=t}setParameters(e){return this.parameters=e,this}getParameters(){return this.parameters}getNodeType(e){return this.functionNode.getNodeType(e)}generate(e){const t=[],r=this.functionNode,s=r.getInputs(e),n=this.parameters;for(const r of s){const s=n[r.name];if(void 0===s)throw new Error(`FunctionCallNode: Input '${r.name}' not found in FunctionNode.`);t.push(s.build(e,r.type))}return`${r.build(e,"property")}( ${t.join(", ")} )`}};
@@ -1,74 +1,45 @@
1
- import { TempNode } from './TempNode.js';
1
+ import TempNode from './TempNode.js';
2
2
 
3
- function FunctionCallNode(func, inputs) {
4
- TempNode.call(this);
5
- this.setFunction(func, inputs);
6
- }
7
-
8
- FunctionCallNode.prototype = Object.create(TempNode.prototype);
9
- FunctionCallNode.prototype.constructor = FunctionCallNode;
10
- FunctionCallNode.prototype.nodeType = 'FunctionCall';
11
-
12
- FunctionCallNode.prototype.setFunction = function (func, inputs) {
13
- this.value = func;
14
- this.inputs = inputs || [];
15
- };
16
-
17
- FunctionCallNode.prototype.getFunction = function () {
18
- return this.value;
19
- };
20
-
21
- FunctionCallNode.prototype.getType = function (builder) {
22
- return this.value.getType(builder);
23
- };
24
-
25
- FunctionCallNode.prototype.generate = function (builder, output) {
26
- var type = this.getType(builder),
27
- func = this.value;
28
- var code = func.build(builder, output) + '( ',
29
- params = [];
30
-
31
- for (let i = 0; i < func.inputs.length; i++) {
32
- var inpt = func.inputs[i],
33
- param = this.inputs[i] || this.inputs[inpt.name];
34
- params.push(param.build(builder, builder.getTypeByFormat(inpt.type)));
3
+ class FunctionCallNode extends TempNode {
4
+ constructor(functionNode = null, parameters = {}) {
5
+ super();
6
+ this.functionNode = functionNode;
7
+ this.parameters = parameters;
35
8
  }
36
9
 
37
- code += params.join(', ') + ' )';
38
- return builder.format(code, type, output);
39
- };
40
-
41
- FunctionCallNode.prototype.copy = function (source) {
42
- TempNode.prototype.copy.call(this, source);
43
-
44
- for (let prop in source.inputs) {
45
- this.inputs[prop] = source.inputs[prop];
10
+ setParameters(parameters) {
11
+ this.parameters = parameters;
12
+ return this;
46
13
  }
47
14
 
48
- this.value = source.value;
49
- return this;
50
- };
15
+ getParameters() {
16
+ return this.parameters;
17
+ }
51
18
 
52
- FunctionCallNode.prototype.toJSON = function (meta) {
53
- var data = this.getJSONNode(meta);
19
+ getNodeType(builder) {
20
+ return this.functionNode.getNodeType(builder);
21
+ }
54
22
 
55
- if (!data) {
56
- var func = this.value;
57
- data = this.createJSONNode(meta);
58
- data.value = this.value.toJSON(meta).uuid;
23
+ generate(builder) {
24
+ const params = [];
25
+ const functionNode = this.functionNode;
26
+ const inputs = functionNode.getInputs(builder);
27
+ const parameters = this.parameters;
59
28
 
60
- if (func.inputs.length) {
61
- data.inputs = {};
29
+ for (const inputNode of inputs) {
30
+ const node = parameters[inputNode.name];
62
31
 
63
- for (let i = 0; i < func.inputs.length; i++) {
64
- var inpt = func.inputs[i],
65
- node = this.inputs[i] || this.inputs[inpt.name];
66
- data.inputs[inpt.name] = node.toJSON(meta).uuid;
32
+ if (node !== undefined) {
33
+ params.push(node.build(builder, inputNode.type));
34
+ } else {
35
+ throw new Error(`FunctionCallNode: Input '${inputNode.name}' not found in FunctionNode.`);
67
36
  }
68
37
  }
38
+
39
+ const functionName = functionNode.build(builder, 'property');
40
+ return `${functionName}( ${params.join(', ')} )`;
69
41
  }
70
42
 
71
- return data;
72
- };
43
+ }
73
44
 
74
- export { FunctionCallNode };
45
+ export default FunctionCallNode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./TempNode.cjs.js"),t=require("./NodeLib.cjs.js");require("three"),require("./Node.cjs.js");var s=/^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,i=/[a-z_0-9]+/gi;function o(t,s,i,o,r){this.isMethod=void 0===r,this.isInterface=!1,e.TempNode.call(this,r),this.parse(t,s,i,o)}o.prototype=Object.create(e.TempNode.prototype),o.prototype.constructor=o,o.prototype.nodeType="Function",o.prototype.useKeywords=!0,o.prototype.getShared=function(){return!this.isMethod},o.prototype.getType=function(e){return e.getTypeByFormat(this.type)},o.prototype.getInputByName=function(e){for(var t=this.inputs.length;t--;)if(this.inputs[t].name===e)return this.inputs[t]},o.prototype.getIncludeByName=function(e){for(var t=this.includes.length;t--;)if(this.includes[t].name===e)return this.includes[t]},o.prototype.generate=function(e,s){var o=0,r=this.src;for(let t=0;t<this.includes.length;t++)e.include(this.includes[t],this);for(let t in this.extensions)e.extensions[t]=!0;for(var n=[];h=i.exec(this.src);)n.push(h);for(let s=0;s<n.length;s++){var h,d=(h=n[s])[0],u=!this.isMethod||!this.getInputByName(d),p=d;if(this.keywords[d]||this.useKeywords&&u&&t.NodeLib.containsKeyword(d)){var c=this.keywords[d];if(!c){var y=t.NodeLib.getKeywordData(d);y.cache&&(c=e.keywords[d]),c=c||t.NodeLib.getKeyword(d,e),y.cache&&(e.keywords[d]=c)}p=c.build(e)}d!==p&&(r=r.substring(0,h.index+o)+p+r.substring(h.index+d.length+o),o+=p.length-d.length),void 0===this.getIncludeByName(p)&&t.NodeLib.contains(p)&&e.include(t.NodeLib.get(p))}return"source"===s?r:this.isMethod?(this.isInterface||e.include(this,!1,r),this.name):e.format("( "+r+" )",this.getType(e),s)},o.prototype.parse=function(e,t,o,r){if(this.src=e||"",this.includes=t||[],this.extensions=o||{},this.keywords=r||{},this.isMethod){var n=this.src.match(s);if(this.inputs=[],n&&4==n.length){this.type=n[1],this.name=n[2];var h=n[3].match(i);if(h)for(var d=0;d<h.length;){var u,p,c=h[d++];"in"===c||"out"===c||"inout"===c?u=h[d++]:(u=c,c=""),p=h[d++],this.inputs.push({name:p,type:u,qualifier:c})}this.isInterface=-1===this.src.indexOf("{")}else this.type="",this.name=""}},o.prototype.copy=function(t){return e.TempNode.prototype.copy.call(this,t),this.isMethod=t.isMethod,this.useKeywords=t.useKeywords,this.parse(t.src,t.includes,t.extensions,t.keywords),void 0!==t.type&&(this.type=t.type),this},o.prototype.toJSON=function(e){var t=this.getJSONNode(e);if(!t){(t=this.createJSONNode(e)).src=this.src,t.isMethod=this.isMethod,t.useKeywords=this.useKeywords,this.isMethod||(t.type=this.type),t.extensions=JSON.parse(JSON.stringify(this.extensions)),t.keywords={};for(let s in this.keywords)t.keywords[s]=this.keywords[s].toJSON(e).uuid;if(this.includes.length){t.includes=[];for(let s=0;s<this.includes.length;s++)t.includes.push(this.includes[s].toJSON(e).uuid)}}return t},exports.FunctionNode=o;
1
+ "use strict";var e=require("./CodeNode.cjs.js"),t=require("./FunctionCallNode.cjs.js");require("./Node.cjs.js"),require("./constants.cjs.js"),require("./NodeUtils.cjs.js"),require("three"),require("./TempNode.cjs.js");module.exports=class extends e{constructor(e=""){super(e),this.keywords={}}getNodeType(e){return this.getNodeFunction(e).type}getInputs(e){return this.getNodeFunction(e).inputs}getNodeFunction(e){const t=e.getDataFromNode(this);let o=t.nodeFunction;return void 0===o&&(o=e.parser.parseFunction(this.code),t.nodeFunction=o),o}call(e={}){return new t(this,e)}generate(e,t){super.generate(e);const o=this.getNodeFunction(e),r=o.name,s=o.type,n=e.getCodeFromNode(this,s);""!==r&&(n.name=r);const i=e.getPropertyName(n);let c=this.getNodeFunction(e).getCode(i);const u=this.keywords,d=Object.keys(u);if(d.length>0)for(const t of d){const o=new RegExp(`\\b${t}\\b`,"g"),r=u[t].build(e,"property");c=c.replace(o,r)}return n.code=c,"property"===t?i:e.format(`${i}()`,s,t)}};
@@ -1,191 +1,70 @@
1
- import { TempNode } from './TempNode.js';
2
- import { NodeLib } from './NodeLib.js';
1
+ import CodeNode from './CodeNode.js';
2
+ import FunctionCallNode from './FunctionCallNode.js';
3
3
 
4
- var declarationRegexp = /^\s*([a-z_0-9]+)\s([a-z_0-9]+)\s*\((.*?)\)/i,
5
- propertiesRegexp = /[a-z_0-9]+/gi;
6
-
7
- function FunctionNode(src, includes, extensions, keywords, type) {
8
- this.isMethod = type === undefined;
9
- this.isInterface = false;
10
- TempNode.call(this, type);
11
- this.parse(src, includes, extensions, keywords);
12
- }
13
-
14
- FunctionNode.prototype = Object.create(TempNode.prototype);
15
- FunctionNode.prototype.constructor = FunctionNode;
16
- FunctionNode.prototype.nodeType = 'Function';
17
- FunctionNode.prototype.useKeywords = true;
18
-
19
- FunctionNode.prototype.getShared = function
20
- /* builder, output */
21
- () {
22
- return !this.isMethod;
23
- };
24
-
25
- FunctionNode.prototype.getType = function (builder) {
26
- return builder.getTypeByFormat(this.type);
27
- };
28
-
29
- FunctionNode.prototype.getInputByName = function (name) {
30
- var i = this.inputs.length;
31
-
32
- while (i--) {
33
- if (this.inputs[i].name === name) {
34
- return this.inputs[i];
35
- }
4
+ class FunctionNode extends CodeNode {
5
+ constructor(code = '') {
6
+ super(code);
7
+ this.keywords = {};
36
8
  }
37
- };
38
9
 
39
- FunctionNode.prototype.getIncludeByName = function (name) {
40
- var i = this.includes.length;
41
-
42
- while (i--) {
43
- if (this.includes[i].name === name) {
44
- return this.includes[i];
45
- }
10
+ getNodeType(builder) {
11
+ return this.getNodeFunction(builder).type;
46
12
  }
47
- };
48
13
 
49
- FunctionNode.prototype.generate = function (builder, output) {
50
- var match,
51
- offset = 0,
52
- src = this.src;
53
-
54
- for (let i = 0; i < this.includes.length; i++) {
55
- builder.include(this.includes[i], this);
56
- }
57
-
58
- for (let ext in this.extensions) {
59
- builder.extensions[ext] = true;
14
+ getInputs(builder) {
15
+ return this.getNodeFunction(builder).inputs;
60
16
  }
61
17
 
62
- var matches = [];
63
-
64
- while (match = propertiesRegexp.exec(this.src)) matches.push(match);
65
-
66
- for (let i = 0; i < matches.length; i++) {
67
- var match = matches[i];
68
- var prop = match[0],
69
- isGlobal = this.isMethod ? !this.getInputByName(prop) : true,
70
- reference = prop;
71
-
72
- if (this.keywords[prop] || this.useKeywords && isGlobal && NodeLib.containsKeyword(prop)) {
73
- var node = this.keywords[prop];
74
-
75
- if (!node) {
76
- var keyword = NodeLib.getKeywordData(prop);
77
- if (keyword.cache) node = builder.keywords[prop];
78
- node = node || NodeLib.getKeyword(prop, builder);
79
- if (keyword.cache) builder.keywords[prop] = node;
80
- }
81
-
82
- reference = node.build(builder);
83
- }
18
+ getNodeFunction(builder) {
19
+ const nodeData = builder.getDataFromNode(this);
20
+ let nodeFunction = nodeData.nodeFunction;
84
21
 
85
- if (prop !== reference) {
86
- src = src.substring(0, match.index + offset) + reference + src.substring(match.index + prop.length + offset);
87
- offset += reference.length - prop.length;
22
+ if (nodeFunction === undefined) {
23
+ nodeFunction = builder.parser.parseFunction(this.code);
24
+ nodeData.nodeFunction = nodeFunction;
88
25
  }
89
26
 
90
- if (this.getIncludeByName(reference) === undefined && NodeLib.contains(reference)) {
91
- builder.include(NodeLib.get(reference));
92
- }
27
+ return nodeFunction;
93
28
  }
94
29
 
95
- if (output === 'source') {
96
- return src;
97
- } else if (this.isMethod) {
98
- if (!this.isInterface) {
99
- builder.include(this, false, src);
100
- }
101
-
102
- return this.name;
103
- } else {
104
- return builder.format('( ' + src + ' )', this.getType(builder), output);
30
+ call(parameters = {}) {
31
+ return new FunctionCallNode(this, parameters);
105
32
  }
106
- };
107
-
108
- FunctionNode.prototype.parse = function (src, includes, extensions, keywords) {
109
- this.src = src || '';
110
- this.includes = includes || [];
111
- this.extensions = extensions || {};
112
- this.keywords = keywords || {};
113
33
 
114
- if (this.isMethod) {
115
- var match = this.src.match(declarationRegexp);
116
- this.inputs = [];
34
+ generate(builder, output) {
35
+ super.generate(builder);
36
+ const nodeFunction = this.getNodeFunction(builder);
37
+ const name = nodeFunction.name;
38
+ const type = nodeFunction.type;
39
+ const nodeCode = builder.getCodeFromNode(this, type);
117
40
 
118
- if (match && match.length == 4) {
119
- this.type = match[1];
120
- this.name = match[2];
121
- var inputs = match[3].match(propertiesRegexp);
122
-
123
- if (inputs) {
124
- var i = 0;
125
-
126
- while (i < inputs.length) {
127
- var qualifier = inputs[i++];
128
- var type, name;
129
-
130
- if (qualifier === 'in' || qualifier === 'out' || qualifier === 'inout') {
131
- type = inputs[i++];
132
- } else {
133
- type = qualifier;
134
- qualifier = '';
135
- }
136
-
137
- name = inputs[i++];
138
- this.inputs.push({
139
- name: name,
140
- type: type,
141
- qualifier: qualifier
142
- });
143
- }
144
- }
145
-
146
- this.isInterface = this.src.indexOf('{') === -1;
147
- } else {
148
- this.type = '';
149
- this.name = '';
41
+ if (name !== '') {
42
+ // use a custom property name
43
+ nodeCode.name = name;
150
44
  }
151
- }
152
- };
153
-
154
- FunctionNode.prototype.copy = function (source) {
155
- TempNode.prototype.copy.call(this, source);
156
- this.isMethod = source.isMethod;
157
- this.useKeywords = source.useKeywords;
158
- this.parse(source.src, source.includes, source.extensions, source.keywords);
159
- if (source.type !== undefined) this.type = source.type;
160
- return this;
161
- };
162
-
163
- FunctionNode.prototype.toJSON = function (meta) {
164
- var data = this.getJSONNode(meta);
165
45
 
166
- if (!data) {
167
- data = this.createJSONNode(meta);
168
- data.src = this.src;
169
- data.isMethod = this.isMethod;
170
- data.useKeywords = this.useKeywords;
171
- if (!this.isMethod) data.type = this.type;
172
- data.extensions = JSON.parse(JSON.stringify(this.extensions));
173
- data.keywords = {};
46
+ const propertyName = builder.getPropertyName(nodeCode);
47
+ let code = this.getNodeFunction(builder).getCode(propertyName);
48
+ const keywords = this.keywords;
49
+ const keywordsProperties = Object.keys(keywords);
174
50
 
175
- for (let keyword in this.keywords) {
176
- data.keywords[keyword] = this.keywords[keyword].toJSON(meta).uuid;
51
+ if (keywordsProperties.length > 0) {
52
+ for (const property of keywordsProperties) {
53
+ const propertyRegExp = new RegExp(`\\b${property}\\b`, 'g');
54
+ const nodeProperty = keywords[property].build(builder, 'property');
55
+ code = code.replace(propertyRegExp, nodeProperty);
56
+ }
177
57
  }
178
58
 
179
- if (this.includes.length) {
180
- data.includes = [];
59
+ nodeCode.code = code;
181
60
 
182
- for (let i = 0; i < this.includes.length; i++) {
183
- data.includes.push(this.includes[i].toJSON(meta).uuid);
184
- }
61
+ if (output === 'property') {
62
+ return propertyName;
63
+ } else {
64
+ return builder.format(`${propertyName}()`, type, output);
185
65
  }
186
66
  }
187
67
 
188
- return data;
189
- };
68
+ }
190
69
 
191
- export { FunctionNode };
70
+ export default FunctionNode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("./TempNode.cjs.js");function t(t,r){(r=r||{}).shared=void 0!==r.shared&&r.shared,e.TempNode.call(this,t,r),this.readonly=!1}require("three"),require("./Node.cjs.js"),t.prototype=Object.create(e.TempNode.prototype),t.prototype.constructor=t,t.prototype.setReadonly=function(e){return this.readonly=e,this.hashProperties=this.readonly?["value"]:void 0,this},t.prototype.getReadonly=function(){return this.readonly},t.prototype.copy=function(t){return e.TempNode.prototype.copy.call(this,t),void 0!==t.readonly&&(this.readonly=t.readonly),this},t.prototype.createJSONNode=function(t){var r=e.TempNode.prototype.createJSONNode.call(this,t);return!0===this.readonly&&(r.readonly=this.readonly),r},t.prototype.generate=function(e,t,r,o,a,n){r=e.getUuid(r||this.getUuid()),o=o||this.getType(e);var i=e.getNodeData(r);return this.getReadonly(e)&&void 0!==this.generateReadonly?this.generateReadonly(e,t,r,o,a,n):e.isShader("vertex")?(i.vertex||(i.vertex=e.createVertexUniform(o,this,a,n,this.getLabel())),e.format(i.vertex.name,o,t)):(i.fragment||(i.fragment=e.createFragmentUniform(o,this,a,n,this.getLabel())),e.format(i.fragment.name,o,t))},exports.InputNode=t;
1
+ "use strict";var e=require("./Node.cjs.js"),l=require("./NodeUtils.cjs.js");require("./constants.cjs.js"),require("three");class t extends e{constructor(e,l=null){super(l),this.value=e}getNodeType(){return null===this.nodeType?l.getValueType(this.value):this.nodeType}getInputType(e){return this.getNodeType(e)}serialize(e){var t,s;super.serialize(e),e.value=(null===(t=this.value)||void 0===t||null===(s=t.toArray)||void 0===s?void 0:s.call(t))||this.value,e.valueType=l.getValueType(this.value),e.nodeType=this.nodeType}deserialize(e){var t,s;super.deserialize(e),this.nodeType=e.nodeType,this.value=l.getValueFromType(e.valueType),this.value=(null===(t=this.value)||void 0===t||null===(s=t.fromArray)||void 0===s?void 0:s.call(t,e.value))||e.value}generate(){console.warn("Abstract function.")}}t.prototype.isInputNode=!0,module.exports=t;
@@ -1,62 +1,48 @@
1
- import { TempNode } from './TempNode.js';
1
+ import Node from './Node.js';
2
+ import { getValueType, getValueFromType } from './NodeUtils.js';
2
3
 
3
- function InputNode(type, params) {
4
- params = params || {};
5
- params.shared = params.shared !== undefined ? params.shared : false;
6
- TempNode.call(this, type, params);
7
- this.readonly = false;
8
- }
4
+ class InputNode extends Node {
5
+ constructor(value, nodeType = null) {
6
+ super(nodeType);
7
+ this.value = value;
8
+ }
9
9
 
10
- InputNode.prototype = Object.create(TempNode.prototype);
11
- InputNode.prototype.constructor = InputNode;
12
-
13
- InputNode.prototype.setReadonly = function (value) {
14
- this.readonly = value;
15
- this.hashProperties = this.readonly ? ['value'] : undefined;
16
- return this;
17
- };
18
-
19
- InputNode.prototype.getReadonly = function
20
- /* builder */
21
- () {
22
- return this.readonly;
23
- };
24
-
25
- InputNode.prototype.copy = function (source) {
26
- TempNode.prototype.copy.call(this, source);
27
- if (source.readonly !== undefined) this.readonly = source.readonly;
28
- return this;
29
- };
30
-
31
- InputNode.prototype.createJSONNode = function (meta) {
32
- var data = TempNode.prototype.createJSONNode.call(this, meta);
33
- if (this.readonly === true) data.readonly = this.readonly;
34
- return data;
35
- };
36
-
37
- InputNode.prototype.generate = function (builder, output, uuid, type, ns, needsUpdate) {
38
- uuid = builder.getUuid(uuid || this.getUuid());
39
- type = type || this.getType(builder);
40
- var data = builder.getNodeData(uuid),
41
- readonly = this.getReadonly(builder) && this.generateReadonly !== undefined;
42
-
43
- if (readonly) {
44
- return this.generateReadonly(builder, output, uuid, type, ns, needsUpdate);
45
- } else {
46
- if (builder.isShader('vertex')) {
47
- if (!data.vertex) {
48
- data.vertex = builder.createVertexUniform(type, this, ns, needsUpdate, this.getLabel());
49
- }
50
-
51
- return builder.format(data.vertex.name, type, output);
52
- } else {
53
- if (!data.fragment) {
54
- data.fragment = builder.createFragmentUniform(type, this, ns, needsUpdate, this.getLabel());
55
- }
56
-
57
- return builder.format(data.fragment.name, type, output);
10
+ getNodeType() {
11
+ if (this.nodeType === null) {
12
+ return getValueType(this.value);
58
13
  }
14
+
15
+ return this.nodeType;
16
+ }
17
+
18
+ getInputType(builder) {
19
+ return this.getNodeType(builder);
20
+ }
21
+
22
+ serialize(data) {
23
+ var _this$value, _this$value$toArray;
24
+
25
+ super.serialize(data);
26
+ data.value = ((_this$value = this.value) === null || _this$value === void 0 ? void 0 : (_this$value$toArray = _this$value.toArray) === null || _this$value$toArray === void 0 ? void 0 : _this$value$toArray.call(_this$value)) || this.value;
27
+ data.valueType = getValueType(this.value);
28
+ data.nodeType = this.nodeType;
59
29
  }
60
- };
61
30
 
62
- export { InputNode };
31
+ deserialize(data) {
32
+ var _this$value2, _this$value2$fromArra;
33
+
34
+ super.deserialize(data);
35
+ this.nodeType = data.nodeType;
36
+ this.value = getValueFromType(data.valueType);
37
+ this.value = ((_this$value2 = this.value) === null || _this$value2 === void 0 ? void 0 : (_this$value2$fromArra = _this$value2.fromArray) === null || _this$value2$fromArra === void 0 ? void 0 : _this$value2$fromArra.call(_this$value2, data.value)) || data.value;
38
+ }
39
+
40
+ generate() {
41
+ console.warn('Abstract function.');
42
+ }
43
+
44
+ }
45
+
46
+ InputNode.prototype.isInputNode = true;
47
+
48
+ export default InputNode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three");function t(t){this.uuid=e.MathUtils.generateUUID(),this.name="",this.type=t,this.userData={}}t.prototype={constructor:t,isNode:!0,hashProperties:void 0,analyze:function(e,t){t=t||{},e.analyzing=!0,this.build(e.addFlow(t.slot,t.cache,t.context),"v4"),e.clearVertexNodeCode(),e.clearFragmentNodeCode(),e.removeFlow(),e.analyzing=!1},analyzeAndFlow:function(e,t,i){return i=i||{},this.analyze(e,i),this.flow(e,t,i)},flow:function(e,t,i){i=i||{},e.addFlow(i.slot,i.cache,i.context);var s={};return s.result=this.build(e,t),s.code=e.clearNodeCode(),s.extra=e.context.extra,e.removeFlow(),s},build:function(e,t,i){t=t||this.getType(e,t);var s=e.getNodeData(i||this);return e.analyzing&&this.appendDepsNode(e,s,t),-1===e.nodes.indexOf(this)&&e.nodes.push(this),void 0!==this.updateFrame&&-1===e.updaters.indexOf(this)&&e.updaters.push(this),this.generate(e,t,i)},generate:function(){},getHash:function(){var e,i,s="{";for(e in this)(i=this[e])instanceof t&&(s+='"'+e+'":'+i.getHash()+",");if(this.hashProperties)for(let t=0;t<this.hashProperties.length;t++)i=this[e=this.hashProperties[t]],s+='"'+e+'":"'+String(i)+'",';return s+='"id":"'+this.uuid+'"}'},appendDepsNode:function(e,t,i){t.deps=(t.deps||0)+1;var s=e.getTypeLength(i);(s>(t.outputMax||0)||this.getType(e,i))&&(t.outputMax=s,t.output=i)},setName:function(e){return this.name=e,this},getName:function(){return this.name},getType:function(e,t){return"sampler2D"===t||"samplerCube"===t?t:this.type},getJSONNode:function(e){if(!(void 0===e||"string"==typeof e)&&void 0!==e.nodes[this.uuid])return e.nodes[this.uuid]},copy:function(e){return void 0!==e.name&&(this.name=e.name),void 0!==e.userData&&(this.userData=JSON.parse(JSON.stringify(e.userData))),this},createJSONNode:function(e){var t=void 0===e||"string"==typeof e,i={};if("string"!=typeof this.nodeType)throw new Error("Node does not allow serialization.");return i.uuid=this.uuid,i.nodeType=this.nodeType,""!==this.name&&(i.name=this.name),"{}"!==JSON.stringify(this.userData)&&(i.userData=this.userData),t||(e.nodes[this.uuid]=i),i},toJSON:function(e){return this.getJSONNode(e)||this.createJSONNode(e)}},exports.Node=t;
1
+ "use strict";var e=require("./constants.cjs.js"),t=require("./NodeUtils.cjs.js"),s=require("three");let o=0;class n{constructor(t=null){this.nodeType=t,this.updateType=e.NodeUpdateType.None,this.uuid=s.MathUtils.generateUUID(),Object.defineProperty(this,"id",{value:o++})}get type(){return this.constructor.name}getHash(){return this.uuid}getUpdateType(){return this.updateType}getNodeType(){return this.nodeType}update(){console.warn("Abstract function.")}generate(){console.warn("Abstract function.")}analyze(e){const s=this.getHash(e),o=e.getNodeFromHash(s);if(void 0!==o&&this!==o)return o.analyze(e);const n=e.getDataFromNode(this);n.dependenciesCount=void 0===n.dependenciesCount?1:n.dependenciesCount+1;const i=t.getNodesKeys(this);for(const t of i)this[t].analyze(e)}build(e,t=null){const s=this.getHash(e),o=e.getNodeFromHash(s);if(void 0!==o&&this!==o)return o.build(e,t);e.addNode(this),e.addStack(this);const n=e.getDataFromNode(this);let i=null;if(1===this.generate.length){const s=this.getNodeType(e);i=n.snippet,void 0===i&&(i=this.generate(e)||"",n.snippet=i),i=e.format(i,s,t)}else i=this.generate(e,t)||"";return e.removeStack(this),i}serialize(e){const s=t.getNodesKeys(this);if(s.length>0){const t={};for(const o of s)t[o]=this[o].toJSON(e.meta).uuid;e.inputNodes=t}}deserialize(e){if(void 0!==e.inputNodes){const t=e.meta.nodes;for(const s in e.inputNodes){const o=e.inputNodes[s];this[s]=t[o]}}}toJSON(e){const{uuid:t,type:s}=this,o=void 0===e||"string"==typeof e;o&&(e={textures:{},images:{},nodes:{}});let n=e.nodes[t];function i(e){const t=[];for(const s in e){const o=e[s];delete o.metadata,t.push(o)}return t}if(void 0===n&&(n={uuid:t,type:s,meta:e,metadata:{version:4.5,type:"Node",generator:"Node.toJSON"}},e.nodes[n.uuid]=n,this.serialize(n),delete n.meta),o){const t=i(e.textures),s=i(e.images),o=i(e.nodes);t.length>0&&(n.textures=t),s.length>0&&(n.images=s),o.length>0&&(n.nodes=o)}return n}}n.prototype.isNode=!0,module.exports=n;