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
@@ -1,206 +1,206 @@
1
- import { TempNode } from '../core/TempNode.js';
2
-
3
- function MathNode(a, bOrMethod, cOrMethod, method) {
4
- TempNode.call(this);
5
- this.a = a;
6
- typeof bOrMethod !== 'string' ? this.b = bOrMethod : method = bOrMethod;
7
- typeof cOrMethod !== 'string' ? this.c = cOrMethod : method = cOrMethod;
8
- this.method = method;
9
- } // 1 input
10
-
11
-
12
- MathNode.RAD = 'radians';
13
- MathNode.DEG = 'degrees';
14
- MathNode.EXP = 'exp';
15
- MathNode.EXP2 = 'exp2';
16
- MathNode.LOG = 'log';
17
- MathNode.LOG2 = 'log2';
18
- MathNode.SQRT = 'sqrt';
19
- MathNode.INV_SQRT = 'inversesqrt';
20
- MathNode.FLOOR = 'floor';
21
- MathNode.CEIL = 'ceil';
22
- MathNode.NORMALIZE = 'normalize';
23
- MathNode.FRACT = 'fract';
24
- MathNode.SATURATE = 'saturate';
25
- MathNode.SIN = 'sin';
26
- MathNode.COS = 'cos';
27
- MathNode.TAN = 'tan';
28
- MathNode.ASIN = 'asin';
29
- MathNode.ACOS = 'acos';
30
- MathNode.ARCTAN = 'atan';
31
- MathNode.ABS = 'abs';
32
- MathNode.SIGN = 'sign';
33
- MathNode.LENGTH = 'length';
34
- MathNode.NEGATE = 'negate';
35
- MathNode.INVERT = 'invert'; // 2 inputs
36
-
37
- MathNode.MIN = 'min';
38
- MathNode.MAX = 'max';
39
- MathNode.MOD = 'mod';
40
- MathNode.STEP = 'step';
41
- MathNode.REFLECT = 'reflect';
42
- MathNode.DISTANCE = 'distance';
43
- MathNode.DOT = 'dot';
44
- MathNode.CROSS = 'cross';
45
- MathNode.POW = 'pow'; // 3 inputs
46
-
47
- MathNode.MIX = 'mix';
48
- MathNode.CLAMP = 'clamp';
49
- MathNode.REFRACT = 'refract';
50
- MathNode.SMOOTHSTEP = 'smoothstep';
51
- MathNode.FACEFORWARD = 'faceforward';
52
- MathNode.prototype = Object.create(TempNode.prototype);
53
- MathNode.prototype.constructor = MathNode;
54
- MathNode.prototype.nodeType = 'Math';
55
- MathNode.prototype.hashProperties = ['method'];
56
-
57
- MathNode.prototype.getNumInputs = function
58
- /*builder*/
59
- () {
60
- switch (this.method) {
61
- case MathNode.MIX:
62
- case MathNode.CLAMP:
63
- case MathNode.REFRACT:
64
- case MathNode.SMOOTHSTEP:
65
- case MathNode.FACEFORWARD:
66
- return 3;
67
-
68
- case MathNode.MIN:
69
- case MathNode.MAX:
70
- case MathNode.MOD:
71
- case MathNode.STEP:
72
- case MathNode.REFLECT:
73
- case MathNode.DISTANCE:
74
- case MathNode.DOT:
75
- case MathNode.CROSS:
76
- case MathNode.POW:
77
- return 2;
78
-
79
- default:
80
- return 1;
1
+ import _defineProperty from '@babel/runtime/helpers/esm/defineProperty';
2
+ import TempNode from '../core/TempNode.js';
3
+ import ExpressionNode from '../core/ExpressionNode.js';
4
+ import JoinNode from '../utils/JoinNode.js';
5
+ import SplitNode from '../utils/SplitNode.js';
6
+ import OperatorNode from './OperatorNode.js';
7
+
8
+ class MathNode extends TempNode {
9
+ // 1 input
10
+ // 2 inputs
11
+ // 3 inputs
12
+ constructor(method, aNode, bNode = null, cNode = null) {
13
+ super();
14
+ this.method = method;
15
+ this.aNode = aNode;
16
+ this.bNode = bNode;
17
+ this.cNode = cNode;
81
18
  }
82
- };
83
19
 
84
- MathNode.prototype.getInputType = function (builder) {
85
- var a = builder.getTypeLength(this.a.getType(builder));
86
- var b = this.b ? builder.getTypeLength(this.b.getType(builder)) : 0;
87
- var c = this.c ? builder.getTypeLength(this.c.getType(builder)) : 0;
88
-
89
- if (a > b && a > c) {
90
- return this.a.getType(builder);
91
- } else if (b > c) {
92
- return this.b.getType(builder);
20
+ getInputType(builder) {
21
+ const aType = this.aNode.getNodeType(builder);
22
+ const bType = this.bNode ? this.bNode.getNodeType(builder) : null;
23
+ const cType = this.cNode ? this.cNode.getNodeType(builder) : null;
24
+ const aLen = builder.getTypeLength(aType);
25
+ const bLen = builder.getTypeLength(bType);
26
+ const cLen = builder.getTypeLength(cType);
27
+
28
+ if (aLen > bLen && aLen > cLen) {
29
+ return aType;
30
+ } else if (bLen > cLen) {
31
+ return bType;
32
+ } else if (cLen > aLen) {
33
+ return cType;
34
+ }
35
+
36
+ return aType;
93
37
  }
94
38
 
95
- return this.c.getType(builder);
96
- };
97
-
98
- MathNode.prototype.getType = function (builder) {
99
- switch (this.method) {
100
- case MathNode.LENGTH:
101
- case MathNode.DISTANCE:
102
- case MathNode.DOT:
103
- return 'f';
39
+ getNodeType(builder) {
40
+ const method = this.method;
104
41
 
105
- case MathNode.CROSS:
106
- return 'v3';
42
+ if (method === MathNode.LENGTH || method === MathNode.DISTANCE || method === MathNode.DOT) {
43
+ return 'float';
44
+ } else if (method === MathNode.CROSS) {
45
+ return 'vec3';
46
+ } else {
47
+ return this.getInputType(builder);
48
+ }
107
49
  }
108
50
 
109
- return this.getInputType(builder);
110
- };
111
-
112
- MathNode.prototype.generate = function (builder, output) {
113
- var a,
114
- b,
115
- c,
116
- al = this.a ? builder.getTypeLength(this.a.getType(builder)) : 0,
117
- bl = this.b ? builder.getTypeLength(this.b.getType(builder)) : 0,
118
- cl = this.c ? builder.getTypeLength(this.c.getType(builder)) : 0,
119
- inputType = this.getInputType(builder),
120
- nodeType = this.getType(builder);
121
-
122
- switch (this.method) {
123
- // 1 input
124
- case MathNode.NEGATE:
125
- return builder.format('( -' + this.a.build(builder, inputType) + ' )', inputType, output);
126
-
127
- case MathNode.INVERT:
128
- return builder.format('( 1.0 - ' + this.a.build(builder, inputType) + ' )', inputType, output);
129
- // 2 inputs
130
-
131
- case MathNode.CROSS:
132
- a = this.a.build(builder, 'v3');
133
- b = this.b.build(builder, 'v3');
134
- break;
135
-
136
- case MathNode.STEP:
137
- a = this.a.build(builder, al === 1 ? 'f' : inputType);
138
- b = this.b.build(builder, inputType);
139
- break;
140
-
141
- case MathNode.MIN:
142
- case MathNode.MAX:
143
- case MathNode.MOD:
144
- a = this.a.build(builder, inputType);
145
- b = this.b.build(builder, bl === 1 ? 'f' : inputType);
146
- break;
147
- // 3 inputs
148
-
149
- case MathNode.REFRACT:
150
- a = this.a.build(builder, inputType);
151
- b = this.b.build(builder, inputType);
152
- c = this.c.build(builder, 'f');
153
- break;
154
-
155
- case MathNode.MIX:
156
- a = this.a.build(builder, inputType);
157
- b = this.b.build(builder, inputType);
158
- c = this.c.build(builder, cl === 1 ? 'f' : inputType);
159
- break;
160
- // default
161
-
162
- default:
163
- a = this.a.build(builder, inputType);
164
- if (this.b) b = this.b.build(builder, inputType);
165
- if (this.c) c = this.c.build(builder, inputType);
166
- break;
167
- } // build function call
168
-
169
-
170
- var params = [];
171
- params.push(a);
172
- if (b) params.push(b);
173
- if (c) params.push(c);
174
- var numInputs = this.getNumInputs(builder);
175
-
176
- if (params.length !== numInputs) {
177
- throw Error(`Arguments not match used in "${this.method}". Require ${numInputs}, currently ${params.length}.`);
51
+ generate(builder, output) {
52
+ const method = this.method;
53
+ const type = this.getNodeType(builder);
54
+ const inputType = this.getInputType(builder);
55
+ const a = this.aNode;
56
+ const b = this.bNode;
57
+ const c = this.cNode;
58
+ const isWebGL = builder.renderer.isWebGLRenderer === true;
59
+
60
+ if (isWebGL && (method === MathNode.DFDX || method === MathNode.DFDY) && output === 'vec3') {
61
+ // Workaround for Adreno 3XX dFd*( vec3 ) bug. See #9988
62
+ return new JoinNode([new MathNode(method, new SplitNode(a, 'x')), new MathNode(method, new SplitNode(a, 'y')), new MathNode(method, new SplitNode(a, 'z'))]).build(builder);
63
+ } else if (method === MathNode.TRANSFORM_DIRECTION) {
64
+ // dir can be either a direction vector or a normal vector
65
+ // upper-left 3x3 of matrix is assumed to be orthogonal
66
+ let tA = a;
67
+ let tB = b;
68
+
69
+ if (builder.isMatrix(tA.getNodeType(builder))) {
70
+ tB = new ExpressionNode(`${builder.getType('vec4')}( ${tB.build(builder, 'vec3')}, 0.0 )`, 'vec4');
71
+ } else {
72
+ tA = new ExpressionNode(`${builder.getType('vec4')}( ${tA.build(builder, 'vec3')}, 0.0 )`, 'vec4');
73
+ }
74
+
75
+ const mulNode = new SplitNode(new OperatorNode('*', tA, tB), 'xyz');
76
+ return new MathNode(MathNode.NORMALIZE, mulNode).build(builder);
77
+ } else if (method === MathNode.SATURATE) {
78
+ return builder.format(`clamp( ${a.build(builder, inputType)}, 0.0, 1.0 )`, type, output);
79
+ } else if (method === MathNode.NEGATE) {
80
+ return builder.format('( -' + a.build(builder, inputType) + ' )', type, output);
81
+ } else if (method === MathNode.INVERT) {
82
+ return builder.format('( 1.0 - ' + a.build(builder, inputType) + ' )', type, output);
83
+ } else {
84
+ const params = [];
85
+
86
+ if (method === MathNode.CROSS) {
87
+ params.push(a.build(builder, type), b.build(builder, type));
88
+ } else if (method === MathNode.STEP) {
89
+ params.push(a.build(builder, builder.getTypeLength(a.getNodeType(builder)) === 1 ? 'float' : inputType), b.build(builder, inputType));
90
+ } else if (isWebGL && (method === MathNode.MIN || method === MathNode.MAX) || method === MathNode.MOD) {
91
+ params.push(a.build(builder, inputType), b.build(builder, builder.getTypeLength(b.getNodeType(builder)) === 1 ? 'float' : inputType));
92
+ } else if (method === MathNode.REFRACT) {
93
+ params.push(a.build(builder, inputType), b.build(builder, inputType), c.build(builder, 'float'));
94
+ } else if (method === MathNode.MIX) {
95
+ params.push(a.build(builder, inputType), b.build(builder, inputType), c.build(builder, builder.getTypeLength(c.getNodeType(builder)) === 1 ? 'float' : inputType));
96
+ } else {
97
+ params.push(a.build(builder, inputType));
98
+
99
+ if (c !== null) {
100
+ params.push(b.build(builder, inputType), c.build(builder, inputType));
101
+ } else if (b !== null) {
102
+ params.push(b.build(builder, inputType));
103
+ }
104
+ }
105
+
106
+ return builder.format(`${builder.getMethod(method)}( ${params.join(', ')} )`, type, output);
107
+ }
178
108
  }
179
109
 
180
- return builder.format(this.method + '( ' + params.join(', ') + ' )', nodeType, output);
181
- };
182
-
183
- MathNode.prototype.copy = function (source) {
184
- TempNode.prototype.copy.call(this, source);
185
- this.a = source.a;
186
- this.b = source.b;
187
- this.c = source.c;
188
- this.method = source.method;
189
- return this;
190
- };
191
-
192
- MathNode.prototype.toJSON = function (meta) {
193
- var data = this.getJSONNode(meta);
194
-
195
- if (!data) {
196
- data = this.createJSONNode(meta);
197
- data.a = this.a.toJSON(meta).uuid;
198
- if (this.b) data.b = this.b.toJSON(meta).uuid;
199
- if (this.c) data.c = this.c.toJSON(meta).uuid;
110
+ serialize(data) {
111
+ super.serialize(data);
200
112
  data.method = this.method;
201
113
  }
202
114
 
203
- return data;
204
- };
115
+ deserialize(data) {
116
+ super.deserialize(data);
117
+ this.method = data.method;
118
+ }
119
+
120
+ }
121
+
122
+ _defineProperty(MathNode, "RAD", 'radians');
123
+
124
+ _defineProperty(MathNode, "DEG", 'degrees');
125
+
126
+ _defineProperty(MathNode, "EXP", 'exp');
127
+
128
+ _defineProperty(MathNode, "EXP2", 'exp2');
129
+
130
+ _defineProperty(MathNode, "LOG", 'log');
131
+
132
+ _defineProperty(MathNode, "LOG2", 'log2');
133
+
134
+ _defineProperty(MathNode, "SQRT", 'sqrt');
135
+
136
+ _defineProperty(MathNode, "INV_SQRT", 'inversesqrt');
137
+
138
+ _defineProperty(MathNode, "FLOOR", 'floor');
139
+
140
+ _defineProperty(MathNode, "CEIL", 'ceil');
141
+
142
+ _defineProperty(MathNode, "NORMALIZE", 'normalize');
143
+
144
+ _defineProperty(MathNode, "FRACT", 'fract');
145
+
146
+ _defineProperty(MathNode, "SIN", 'sin');
147
+
148
+ _defineProperty(MathNode, "COS", 'cos');
149
+
150
+ _defineProperty(MathNode, "TAN", 'tan');
151
+
152
+ _defineProperty(MathNode, "ASIN", 'asin');
153
+
154
+ _defineProperty(MathNode, "ACOS", 'acos');
155
+
156
+ _defineProperty(MathNode, "ATAN", 'atan');
157
+
158
+ _defineProperty(MathNode, "ABS", 'abs');
159
+
160
+ _defineProperty(MathNode, "SIGN", 'sign');
161
+
162
+ _defineProperty(MathNode, "LENGTH", 'length');
163
+
164
+ _defineProperty(MathNode, "NEGATE", 'negate');
165
+
166
+ _defineProperty(MathNode, "INVERT", 'invert');
167
+
168
+ _defineProperty(MathNode, "DFDX", 'dFdx');
169
+
170
+ _defineProperty(MathNode, "DFDY", 'dFdy');
171
+
172
+ _defineProperty(MathNode, "SATURATE", 'saturate');
173
+
174
+ _defineProperty(MathNode, "ROUND", 'round');
175
+
176
+ _defineProperty(MathNode, "MIN", 'min');
177
+
178
+ _defineProperty(MathNode, "MAX", 'max');
179
+
180
+ _defineProperty(MathNode, "MOD", 'mod');
181
+
182
+ _defineProperty(MathNode, "STEP", 'step');
183
+
184
+ _defineProperty(MathNode, "REFLECT", 'reflect');
185
+
186
+ _defineProperty(MathNode, "DISTANCE", 'distance');
187
+
188
+ _defineProperty(MathNode, "DOT", 'dot');
189
+
190
+ _defineProperty(MathNode, "CROSS", 'cross');
191
+
192
+ _defineProperty(MathNode, "POW", 'pow');
193
+
194
+ _defineProperty(MathNode, "TRANSFORM_DIRECTION", 'transformDirection');
195
+
196
+ _defineProperty(MathNode, "MIX", 'mix');
197
+
198
+ _defineProperty(MathNode, "CLAMP", 'clamp');
199
+
200
+ _defineProperty(MathNode, "REFRACT", 'refract');
201
+
202
+ _defineProperty(MathNode, "SMOOTHSTEP", 'smoothstep');
203
+
204
+ _defineProperty(MathNode, "FACEFORWARD", 'faceforward');
205
205
 
206
- export { MathNode };
206
+ export default MathNode;
@@ -1 +1 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("../core/TempNode.cjs.js");function e(e,o,r){t.TempNode.call(this),this.a=e,this.b=o,this.op=r}require("three"),require("../core/Node.cjs.js"),e.ADD="+",e.SUB="-",e.MUL="*",e.DIV="/",e.prototype=Object.create(t.TempNode.prototype),e.prototype.constructor=e,e.prototype.nodeType="Operator",e.prototype.getType=function(t){var e=this.a.getType(t),o=this.b.getType(t);return t.isTypeMatrix(e)?"v4":t.getTypeLength(o)>t.getTypeLength(e)?o:e},e.prototype.generate=function(t,e){var o=this.getType(t),r=this.a.build(t,o),p=this.b.build(t,o);return t.format("( "+r+" "+this.op+" "+p+" )",o,e)},e.prototype.copy=function(e){return t.TempNode.prototype.copy.call(this,e),this.a=e.a,this.b=e.b,this.op=e.op,this},e.prototype.toJSON=function(t){var e=this.getJSONNode(t);return e||((e=this.createJSONNode(t)).a=this.a.toJSON(t).uuid,e.b=this.b.toJSON(t).uuid,e.op=this.op),e},exports.OperatorNode=e;
1
+ "use strict";var e=require("../core/TempNode.cjs.js");require("../core/Node.cjs.js"),require("../core/constants.cjs.js"),require("../core/NodeUtils.cjs.js"),require("three");class t extends e{constructor(e,o,r,...i){if(super(),this.op=e,i.length>0){let o=r;for(let r=0;r<i.length;r++)o=new t(e,o,i[r]);r=o}this.aNode=o,this.bNode=r}getNodeType(e,t){const o=this.op,r=this.aNode,i=this.bNode,s=r.getNodeType(e),d=i.getNodeType(e);if("void"===s||"void"===d)return"void";if("="===o||"%"===o)return s;if("&"===o||"|"===o||"^"===o||">>"===o||"<<"===o)return"int";if("=="===o||"&&"===o||"||"===o||"^^"===o)return"bool";if("<"===o||">"===o||"<="===o||">="===o){const o=e.getTypeLength(t);return o>1?`bvec${o}`:"bool"}return"float"===s&&e.isMatrix(d)?d:e.isMatrix(s)&&e.isVector(d)?e.getVectorFromMatrix(s):e.isVector(s)&&e.isMatrix(d)?e.getVectorFromMatrix(d):e.getTypeLength(d)>e.getTypeLength(s)?d:s}generate(e,t){const o=this.op,r=this.aNode,i=this.bNode,s=this.getNodeType(e,t);let d=null,a=null;"void"!==s?(d=r.getNodeType(e),a=i.getNodeType(e),"="===o?a=d:"<"===o||">"===o||"<="===o||">="===o?e.isVector(d)?a=d:d=a="float":e.isMatrix(d)&&e.isVector(a)?a=e.getVectorFromMatrix(d):d=e.isVector(d)&&e.isMatrix(a)?e.getVectorFromMatrix(a):a=s):d=a=s;const n=r.build(e,d),c=i.build(e,a),h=e.getTypeLength(t);return"void"!==t?"="===o?(e.addFlowCode(`${n} ${this.op} ${c}`),n):">"===o&&h>1?e.format(`${e.getMethod("greaterThan")}( ${n}, ${c} )`,s,t):"<="===o&&h>1?e.format(`${e.getMethod("lessThanEqual")}( ${n}, ${c} )`,s,t):e.format(`( ${n} ${this.op} ${c} )`,s,t):"void"!==d?e.format(`${n} ${this.op} ${c}`,s,t):void 0}serialize(e){super.serialize(e),e.op=this.op}deserialize(e){super.deserialize(e),this.op=e.op}}module.exports=t;
@@ -1,60 +1,124 @@
1
- import { TempNode } from '../core/TempNode.js';
1
+ import TempNode from '../core/TempNode.js';
2
2
 
3
- function OperatorNode(a, b, op) {
4
- TempNode.call(this);
5
- this.a = a;
6
- this.b = b;
7
- this.op = op;
8
- }
3
+ class OperatorNode extends TempNode {
4
+ constructor(op, aNode, bNode, ...params) {
5
+ super();
6
+ this.op = op;
7
+
8
+ if (params.length > 0) {
9
+ let finalBNode = bNode;
10
+
11
+ for (let i = 0; i < params.length; i++) {
12
+ finalBNode = new OperatorNode(op, finalBNode, params[i]);
13
+ }
9
14
 
10
- OperatorNode.ADD = '+';
11
- OperatorNode.SUB = '-';
12
- OperatorNode.MUL = '*';
13
- OperatorNode.DIV = '/';
14
- OperatorNode.prototype = Object.create(TempNode.prototype);
15
- OperatorNode.prototype.constructor = OperatorNode;
16
- OperatorNode.prototype.nodeType = 'Operator';
17
-
18
- OperatorNode.prototype.getType = function (builder) {
19
- var a = this.a.getType(builder),
20
- b = this.b.getType(builder);
21
-
22
- if (builder.isTypeMatrix(a)) {
23
- return 'v4';
24
- } else if (builder.getTypeLength(b) > builder.getTypeLength(a)) {
25
- // use the greater length vector
26
- return b;
15
+ bNode = finalBNode;
16
+ }
17
+
18
+ this.aNode = aNode;
19
+ this.bNode = bNode;
27
20
  }
28
21
 
29
- return a;
30
- };
31
-
32
- OperatorNode.prototype.generate = function (builder, output) {
33
- var type = this.getType(builder);
34
- var a = this.a.build(builder, type),
35
- b = this.b.build(builder, type);
36
- return builder.format('( ' + a + ' ' + this.op + ' ' + b + ' )', type, output);
37
- };
38
-
39
- OperatorNode.prototype.copy = function (source) {
40
- TempNode.prototype.copy.call(this, source);
41
- this.a = source.a;
42
- this.b = source.b;
43
- this.op = source.op;
44
- return this;
45
- };
46
-
47
- OperatorNode.prototype.toJSON = function (meta) {
48
- var data = this.getJSONNode(meta);
49
-
50
- if (!data) {
51
- data = this.createJSONNode(meta);
52
- data.a = this.a.toJSON(meta).uuid;
53
- data.b = this.b.toJSON(meta).uuid;
22
+ getNodeType(builder, output) {
23
+ const op = this.op;
24
+ const aNode = this.aNode;
25
+ const bNode = this.bNode;
26
+ const typeA = aNode.getNodeType(builder);
27
+ const typeB = bNode.getNodeType(builder);
28
+
29
+ if (typeA === 'void' || typeB === 'void') {
30
+ return 'void';
31
+ } else if (op === '=' || op === '%') {
32
+ return typeA;
33
+ } else if (op === '&' || op === '|' || op === '^' || op === '>>' || op === '<<') {
34
+ return 'int';
35
+ } else if (op === '==' || op === '&&' || op === '||' || op === '^^') {
36
+ return 'bool';
37
+ } else if (op === '<' || op === '>' || op === '<=' || op === '>=') {
38
+ const typeLength = builder.getTypeLength(output);
39
+ return typeLength > 1 ? `bvec${typeLength}` : 'bool';
40
+ } else {
41
+ if (typeA === 'float' && builder.isMatrix(typeB)) {
42
+ return typeB;
43
+ } else if (builder.isMatrix(typeA) && builder.isVector(typeB)) {
44
+ // matrix x vector
45
+ return builder.getVectorFromMatrix(typeA);
46
+ } else if (builder.isVector(typeA) && builder.isMatrix(typeB)) {
47
+ // vector x matrix
48
+ return builder.getVectorFromMatrix(typeB);
49
+ } else if (builder.getTypeLength(typeB) > builder.getTypeLength(typeA)) {
50
+ // anytype x anytype: use the greater length vector
51
+ return typeB;
52
+ }
53
+
54
+ return typeA;
55
+ }
56
+ }
57
+
58
+ generate(builder, output) {
59
+ const op = this.op;
60
+ const aNode = this.aNode;
61
+ const bNode = this.bNode;
62
+ const type = this.getNodeType(builder, output);
63
+ let typeA = null;
64
+ let typeB = null;
65
+
66
+ if (type !== 'void') {
67
+ typeA = aNode.getNodeType(builder);
68
+ typeB = bNode.getNodeType(builder);
69
+
70
+ if (op === '=') {
71
+ typeB = typeA;
72
+ } else if (op === '<' || op === '>' || op === '<=' || op === '>=') {
73
+ if (builder.isVector(typeA)) {
74
+ typeB = typeA;
75
+ } else {
76
+ typeA = typeB = 'float';
77
+ }
78
+ } else if (builder.isMatrix(typeA) && builder.isVector(typeB)) {
79
+ // matrix x vector
80
+ typeB = builder.getVectorFromMatrix(typeA);
81
+ } else if (builder.isVector(typeA) && builder.isMatrix(typeB)) {
82
+ // vector x matrix
83
+ typeA = builder.getVectorFromMatrix(typeB);
84
+ } else {
85
+ // anytype x anytype
86
+ typeA = typeB = type;
87
+ }
88
+ } else {
89
+ typeA = typeB = type;
90
+ }
91
+
92
+ const a = aNode.build(builder, typeA);
93
+ const b = bNode.build(builder, typeB);
94
+ const outputLength = builder.getTypeLength(output);
95
+
96
+ if (output !== 'void') {
97
+ if (op === '=') {
98
+ builder.addFlowCode(`${a} ${this.op} ${b}`);
99
+ return a;
100
+ } else if (op === '>' && outputLength > 1) {
101
+ return builder.format(`${builder.getMethod('greaterThan')}( ${a}, ${b} )`, type, output);
102
+ } else if (op === '<=' && outputLength > 1) {
103
+ return builder.format(`${builder.getMethod('lessThanEqual')}( ${a}, ${b} )`, type, output);
104
+ } else {
105
+ return builder.format(`( ${a} ${this.op} ${b} )`, type, output);
106
+ }
107
+ } else if (typeA !== 'void') {
108
+ return builder.format(`${a} ${this.op} ${b}`, type, output);
109
+ }
110
+ }
111
+
112
+ serialize(data) {
113
+ super.serialize(data);
54
114
  data.op = this.op;
55
115
  }
56
116
 
57
- return data;
58
- };
117
+ deserialize(data) {
118
+ super.deserialize(data);
119
+ this.op = data.op;
120
+ }
121
+
122
+ }
59
123
 
60
- export { OperatorNode };
124
+ export default OperatorNode;
@@ -0,0 +1 @@
1
+ "use strict";var e=require("../core/NodeFunction.cjs.js"),t=require("../core/NodeFunctionInput.cjs.js");const o=/^\s*(highp|mediump|lowp)?\s*([a-z_0-9]+)\s*([a-z_0-9]+)?\s*\(([\s\S]*?)\)/i,s=/[a-z_0-9]+/gi;module.exports=class extends e{constructor(e){const{type:n,inputs:i,name:r,presicion:c,inputsCode:u,blockCode:d,headerCode:l}=(e=>{const n=(e=e.trim()).indexOf("#pragma main"),i=-1!==n?e.slice(n+"#pragma main".length):e,r=i.match(o);if(null!==r&&5===r.length){const o=r[4],c=[];let u=null;for(;null!==(u=s.exec(o));)c.push(u);const d=[];let l=0;for(;l<c.length;){const e="const"===c[l][0];!0===e&&l++;let o=c[l][0];"in"===o||"out"===o||"inout"===o?l++:o="";const s=c[l++][0];let n=Number.parseInt(c[l][0]);!1===Number.isNaN(n)?l++:n=null;const i=c[l++][0];d.push(new t(s,i,n,o,e))}const h=i.substring(r[0].length),p=void 0!==r[3]?r[3]:"";return{type:r[2],inputs:d,name:p,presicion:void 0!==r[1]?r[1]:"",inputsCode:o,blockCode:h,headerCode:-1!==n?e.slice(0,n):""}}throw new Error("FunctionNode: Function is not a GLSL code.")})(e);super(n,i,r,c),this.inputsCode=u,this.blockCode=d,this.headerCode=l}getCode(e=this.name){const t=this.headerCode,o=this.presicion;let s=`${this.type} ${e} ( ${this.inputsCode.trim()} )`;return""!==o&&(s=`${o} ${s}`),t+s+this.blockCode}};