@types/three 0.182.0 → 0.183.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (312) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +0 -3
  3. three/examples/jsm/controls/OrbitControls.d.ts +39 -0
  4. three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
  5. three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
  6. three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
  7. three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
  8. three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
  9. three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
  10. three/examples/jsm/inspector/ui/Item.d.ts +5 -0
  11. three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
  12. three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
  13. three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
  14. three/examples/jsm/objects/SkyMesh.d.ts +11 -6
  15. three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
  16. three/examples/jsm/objects/WaterMesh.d.ts +6 -6
  17. three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
  18. three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
  19. three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
  20. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
  21. three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
  22. three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
  23. three/examples/jsm/tsl/display/CRT.d.ts +22 -0
  24. three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
  25. three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
  26. three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
  27. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
  28. three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
  29. three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
  30. three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
  31. three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
  32. three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
  33. three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
  34. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
  35. three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
  36. three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
  37. three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
  38. three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
  39. three/examples/jsm/tsl/display/SSSNode.d.ts +5 -5
  40. three/examples/jsm/tsl/display/Shape.d.ts +3 -0
  41. three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
  42. three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
  43. three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
  44. three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
  45. three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
  46. three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
  47. three/package.json +3 -3
  48. three/src/Three.Core.d.ts +1 -1
  49. three/src/Three.TSL.d.ts +6 -11
  50. three/src/Three.WebGPU.Nodes.d.ts +2 -0
  51. three/src/Three.WebGPU.d.ts +3 -0
  52. three/src/Three.d.ts +2 -2
  53. three/src/animation/AnimationClip.d.ts +1 -1
  54. three/src/animation/KeyframeTrack.d.ts +19 -5
  55. three/src/animation/PropertyMixer.d.ts +5 -4
  56. three/src/audio/Audio.d.ts +224 -157
  57. three/src/audio/AudioAnalyser.d.ts +32 -27
  58. three/src/audio/AudioContext.d.ts +12 -12
  59. three/src/audio/AudioListener.d.ts +44 -65
  60. three/src/audio/PositionalAudio.d.ts +69 -62
  61. three/src/cameras/ArrayCamera.d.ts +21 -24
  62. three/src/cameras/Camera.d.ts +14 -53
  63. three/src/cameras/CubeCamera.d.ts +32 -28
  64. three/src/cameras/OrthographicCamera.d.ts +70 -100
  65. three/src/cameras/PerspectiveCamera.d.ts +133 -146
  66. three/src/cameras/StereoCamera.d.ts +24 -30
  67. three/src/constants.d.ts +14 -2
  68. three/src/core/Clock.d.ts +3 -0
  69. three/src/core/Object3D.d.ts +31 -7
  70. three/src/geometries/TorusGeometry.d.ts +22 -3
  71. three/src/helpers/ArrowHelper.d.ts +34 -50
  72. three/src/helpers/AxesHelper.d.ts +22 -36
  73. three/src/helpers/Box3Helper.d.ts +14 -25
  74. three/src/helpers/BoxHelper.d.ts +28 -39
  75. three/src/helpers/CameraHelper.d.ts +31 -52
  76. three/src/helpers/DirectionalLightHelper.d.ts +32 -53
  77. three/src/helpers/GridHelper.d.ts +15 -29
  78. three/src/helpers/HemisphereLightHelper.d.ts +26 -49
  79. three/src/helpers/PlaneHelper.d.ts +21 -33
  80. three/src/helpers/PointLightHelper.d.ts +25 -50
  81. three/src/helpers/PolarGridHelper.d.ts +19 -32
  82. three/src/helpers/SkeletonHelper.d.ts +26 -50
  83. three/src/helpers/SpotLightHelper.d.ts +28 -55
  84. three/src/lights/AmbientLight.d.ts +15 -23
  85. three/src/lights/DirectionalLight.d.ts +40 -82
  86. three/src/lights/DirectionalLightShadow.d.ts +6 -61
  87. three/src/lights/HemisphereLight.d.ts +20 -47
  88. three/src/lights/Light.d.ts +18 -48
  89. three/src/lights/LightProbe.d.ts +24 -29
  90. three/src/lights/LightShadow.d.ts +107 -91
  91. three/src/lights/PointLight.d.ts +36 -77
  92. three/src/lights/PointLightShadow.d.ts +9 -6
  93. three/src/lights/RectAreaLight.d.ts +39 -59
  94. three/src/lights/SpotLight.d.ts +62 -116
  95. three/src/lights/SpotLightShadow.d.ts +17 -59
  96. three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
  97. three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
  98. three/src/materials/MeshLambertMaterial.d.ts +6 -0
  99. three/src/materials/MeshPhongMaterial.d.ts +6 -0
  100. three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
  101. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
  102. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
  103. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
  104. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
  105. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
  106. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
  107. three/src/materials/nodes/NodeMaterial.d.ts +9 -3
  108. three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
  109. three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
  110. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
  111. three/src/math/Color.d.ts +1 -0
  112. three/src/math/Vector3.d.ts +2 -2
  113. three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
  114. three/src/nodes/Nodes.d.ts +55 -35
  115. three/src/nodes/TSL.d.ts +2 -5
  116. three/src/nodes/accessors/Arrays.d.ts +19 -10
  117. three/src/nodes/accessors/BufferAttributeNode.d.ts +99 -33
  118. three/src/nodes/accessors/BufferNode.d.ts +21 -7
  119. three/src/nodes/accessors/Camera.d.ts +10 -10
  120. three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
  121. three/src/nodes/accessors/InstanceNode.d.ts +6 -0
  122. three/src/nodes/accessors/Lights.d.ts +9 -6
  123. three/src/nodes/accessors/MaterialNode.d.ts +1 -3
  124. three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
  125. three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
  126. three/src/nodes/accessors/ModelNode.d.ts +34 -17
  127. three/src/nodes/accessors/MorphNode.d.ts +1 -1
  128. three/src/nodes/accessors/Normal.d.ts +13 -15
  129. three/src/nodes/accessors/Object3DNode.d.ts +35 -16
  130. three/src/nodes/accessors/Position.d.ts +9 -7
  131. three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
  132. three/src/nodes/accessors/ReflectVector.d.ts +4 -5
  133. three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
  134. three/src/nodes/accessors/SceneProperties.d.ts +5 -0
  135. three/src/nodes/accessors/SkinningNode.d.ts +5 -3
  136. three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
  137. three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
  138. three/src/nodes/accessors/Tangent.d.ts +5 -7
  139. three/src/nodes/accessors/Texture3DNode.d.ts +1 -1
  140. three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
  141. three/src/nodes/accessors/TextureNode.d.ts +19 -18
  142. three/src/nodes/accessors/UV.d.ts +1 -1
  143. three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
  144. three/src/nodes/accessors/UserDataNode.d.ts +1 -1
  145. three/src/nodes/accessors/VelocityNode.d.ts +3 -3
  146. three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
  147. three/src/nodes/code/FunctionCallNode.d.ts +0 -1
  148. three/src/nodes/code/FunctionNode.d.ts +7 -3
  149. three/src/nodes/core/ArrayNode.d.ts +2 -3
  150. three/src/nodes/core/AttributeNode.d.ts +12 -6
  151. three/src/nodes/core/BypassNode.d.ts +2 -3
  152. three/src/nodes/core/ConstNode.d.ts +10 -3
  153. three/src/nodes/core/ContextNode.d.ts +23 -28
  154. three/src/nodes/core/IndexNode.d.ts +1 -1
  155. three/src/nodes/core/InputNode.d.ts +12 -4
  156. three/src/nodes/core/InspectorNode.d.ts +2 -3
  157. three/src/nodes/core/IsolateNode.d.ts +2 -7
  158. three/src/nodes/core/MRTNode.d.ts +7 -0
  159. three/src/nodes/core/Node.d.ts +258 -39
  160. three/src/nodes/core/NodeAttribute.d.ts +30 -5
  161. three/src/nodes/core/NodeBuilder.d.ts +5 -3
  162. three/src/nodes/core/NodeCache.d.ts +24 -48
  163. three/src/nodes/core/NodeError.d.ts +9 -0
  164. three/src/nodes/core/NodeParser.d.ts +2 -0
  165. three/src/nodes/core/NodeUniform.d.ts +33 -9
  166. three/src/nodes/core/NodeVar.d.ts +33 -5
  167. three/src/nodes/core/NodeVarying.d.ts +32 -4
  168. three/src/nodes/core/ParameterNode.d.ts +11 -4
  169. three/src/nodes/core/PropertyNode.d.ts +45 -35
  170. three/src/nodes/core/StackTrace.d.ts +9 -0
  171. three/src/nodes/core/StructType.d.ts +3 -1
  172. three/src/nodes/core/StructTypeNode.d.ts +19 -5
  173. three/src/nodes/core/TempNode.d.ts +9 -3
  174. three/src/nodes/core/UniformNode.d.ts +53 -15
  175. three/src/nodes/core/VarNode.d.ts +15 -14
  176. three/src/nodes/core/VaryingNode.d.ts +14 -19
  177. three/src/nodes/core/constants.d.ts +9 -4
  178. three/src/nodes/display/BlendModes.d.ts +7 -27
  179. three/src/nodes/display/ColorAdjustment.d.ts +8 -9
  180. three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
  181. three/src/nodes/display/FrontFacingNode.d.ts +1 -1
  182. three/src/nodes/display/PassNode.d.ts +9 -5
  183. three/src/nodes/display/RenderOutputNode.d.ts +3 -7
  184. three/src/nodes/display/ScreenNode.d.ts +25 -17
  185. three/src/nodes/display/ToneMappingNode.d.ts +3 -7
  186. three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
  187. three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
  188. three/src/nodes/fog/Fog.d.ts +5 -3
  189. three/src/nodes/geometry/RangeNode.d.ts +51 -9
  190. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
  191. three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
  192. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
  193. three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -1
  194. three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
  195. three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
  196. three/src/nodes/lighting/LightUtils.d.ts +1 -1
  197. three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
  198. three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
  199. three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
  200. three/src/nodes/math/BitcountNode.d.ts +2 -0
  201. three/src/nodes/math/ConditionalNode.d.ts +43 -22
  202. three/src/nodes/math/Hash.d.ts +1 -1
  203. three/src/nodes/math/MathNode.d.ts +603 -267
  204. three/src/nodes/math/MathUtils.d.ts +9 -5
  205. three/src/nodes/math/OperatorNode.d.ts +490 -227
  206. three/src/nodes/math/TriNoise3D.d.ts +3 -3
  207. three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
  208. three/src/nodes/procedural/Checker.d.ts +1 -1
  209. three/src/nodes/tsl/TSLCore.d.ts +1683 -224
  210. three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
  211. three/src/nodes/utils/DebugNode.d.ts +2 -5
  212. three/src/nodes/utils/Discard.d.ts +2 -3
  213. three/src/nodes/utils/FlipNode.d.ts +11 -0
  214. three/src/nodes/utils/LoopNode.d.ts +17 -13
  215. three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
  216. three/src/nodes/utils/Oscillators.d.ts +4 -4
  217. three/src/nodes/utils/Packing.d.ts +3 -3
  218. three/src/nodes/utils/PostProcessingUtils.d.ts +5 -5
  219. three/src/nodes/utils/RemapNode.d.ts +33 -39
  220. three/src/nodes/utils/RotateNode.d.ts +17 -8
  221. three/src/nodes/utils/SplitNode.d.ts +1 -2
  222. three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
  223. three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
  224. three/src/nodes/utils/Timer.d.ts +4 -4
  225. three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
  226. three/src/nodes/utils/UVUtils.d.ts +6 -4
  227. three/src/objects/BatchedMesh.d.ts +6 -4
  228. three/src/objects/InstancedMesh.d.ts +32 -24
  229. three/src/renderers/WebGLRenderer.d.ts +4 -93
  230. three/src/renderers/common/Animation.d.ts +46 -9
  231. three/src/renderers/common/Attributes.d.ts +11 -13
  232. three/src/renderers/common/Backend.d.ts +0 -2
  233. three/src/renderers/common/Background.d.ts +17 -15
  234. three/src/renderers/common/BindGroup.d.ts +27 -13
  235. three/src/renderers/common/Binding.d.ts +15 -3
  236. three/src/renderers/common/Bindings.d.ts +41 -17
  237. three/src/renderers/common/BlendMode.d.ts +22 -0
  238. three/src/renderers/common/Buffer.d.ts +35 -11
  239. three/src/renderers/common/BufferUtils.d.ts +3 -4
  240. three/src/renderers/common/BundleGroup.d.ts +16 -6
  241. three/src/renderers/common/CanvasTarget.d.ts +76 -13
  242. three/src/renderers/common/ChainMap.d.ts +12 -9
  243. three/src/renderers/common/ClippingContext.d.ts +61 -10
  244. three/src/renderers/common/Color4.d.ts +10 -5
  245. three/src/renderers/common/ComputePipeline.d.ts +16 -2
  246. three/src/renderers/common/Constants.d.ts +5 -3
  247. three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
  248. three/src/renderers/common/DataMap.d.ts +10 -18
  249. three/src/renderers/common/Geometries.d.ts +39 -20
  250. three/src/renderers/common/Info.d.ts +62 -9
  251. three/src/renderers/common/InspectorBase.d.ts +19 -7
  252. three/src/renderers/common/Lighting.d.ts +2 -6
  253. three/src/renderers/common/Pipeline.d.ts +14 -2
  254. three/src/renderers/common/Pipelines.d.ts +58 -60
  255. three/src/renderers/common/PostProcessing.d.ts +14 -17
  256. three/src/renderers/common/ProgrammableStage.d.ts +48 -8
  257. three/src/renderers/common/RenderBundle.d.ts +4 -2
  258. three/src/renderers/common/RenderBundles.d.ts +6 -3
  259. three/src/renderers/common/RenderContext.d.ts +175 -7
  260. three/src/renderers/common/RenderContexts.d.ts +20 -25
  261. three/src/renderers/common/RenderList.d.ts +77 -11
  262. three/src/renderers/common/RenderLists.d.ts +16 -4
  263. three/src/renderers/common/RenderObject.d.ts +223 -47
  264. three/src/renderers/common/{RenderPipeline.d.ts → RenderObjectPipeline.d.ts} +17 -5
  265. three/src/renderers/common/RenderObjects.d.ts +55 -22
  266. three/src/renderers/common/Renderer.d.ts +625 -207
  267. three/src/renderers/common/Textures.d.ts +24 -46
  268. three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
  269. three/src/renderers/common/Uniform.d.ts +143 -58
  270. three/src/renderers/common/UniformBuffer.d.ts +7 -5
  271. three/src/renderers/common/UniformsGroup.d.ts +50 -35
  272. three/src/renderers/common/XRManager.d.ts +321 -83
  273. three/src/renderers/common/XRRenderTarget.d.ts +49 -6
  274. three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
  275. three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
  276. three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
  277. three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
  278. three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
  279. three/src/renderers/shaders/UniformsLib.d.ts +0 -3
  280. three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
  281. three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
  282. three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
  283. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
  284. three/src/renderers/webgl/WebGLLights.d.ts +19 -18
  285. three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
  286. three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
  287. three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
  288. three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
  289. three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
  290. three/src/renderers/webgl/WebGLState.d.ts +305 -28
  291. three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
  292. three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
  293. three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
  294. three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
  295. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
  296. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
  297. three/src/scenes/Fog.d.ts +31 -37
  298. three/src/scenes/FogExp2.d.ts +26 -31
  299. three/src/scenes/Scene.d.ts +51 -65
  300. three/src/textures/CompressedArrayTexture.d.ts +1 -1
  301. three/src/textures/DataArrayTexture.d.ts +1 -1
  302. three/src/utils.d.ts +5 -0
  303. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
  304. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
  305. three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
  306. three/src/nodes/accessors/SceneNode.d.ts +0 -21
  307. three/src/nodes/code/ScriptableNode.d.ts +0 -21
  308. three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
  309. three/src/nodes/display/PosterizeNode.d.ts +0 -13
  310. three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
  311. three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
  312. three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
@@ -1,7 +1,8 @@
1
+ import { Vector2 } from "../../math/Vector2.js";
1
2
  import { Vector3 } from "../../math/Vector3.js";
3
+ import { Vector4 } from "../../math/Vector4.js";
2
4
  import Node from "../core/Node.js";
3
5
  import TempNode from "../core/TempNode.js";
4
- import OperatorNode from "./OperatorNode.js";
5
6
 
6
7
  export type MathNodeMethod1 =
7
8
  | typeof MathNode.RADIANS
@@ -62,7 +63,6 @@ export default class MathNode extends TempNode {
62
63
 
63
64
  static ALL: "all";
64
65
  static ANY: "any";
65
- static EQUALS: "equals";
66
66
 
67
67
  static RADIANS: "radians";
68
68
  static DEGREES: "degrees";
@@ -99,6 +99,7 @@ export default class MathNode extends TempNode {
99
99
 
100
100
  // 2 inputs
101
101
 
102
+ static EQUALS: "equals";
102
103
  static MIN: "min";
103
104
  static MAX: "max";
104
105
  static STEP: "step";
@@ -129,319 +130,654 @@ export default class MathNode extends TempNode {
129
130
  constructor(method: MathNodeMethod3, aNode: Node, bNode: Node, cNode: Node);
130
131
  }
131
132
 
132
- export const EPSILON: Node;
133
- export const INFINITY: Node;
134
- export const PI: Node;
135
-
136
- /**
137
- * @deprecated Please use the non-deprecated version `TWO_PI`.
138
- */
139
- export const PI2: Node;
140
-
141
- export const TWO_PI: Node;
142
-
143
- export const HALF_PI: Node;
133
+ type FloatOrNumber = Node<"float"> | number;
134
+ type IntOrNumber = Node<"int"> | number;
135
+ type FloatVector = Node<"vec2"> | Node<"vec3"> | Node<"vec4">;
136
+ type FloatVectorOrNumber = FloatOrNumber | Node<"vec2"> | Node<"vec3"> | Node<"vec4">;
144
137
 
145
- type MathNodeParameter = Node | number;
138
+ type BoolVector = Node<"bvec2"> | Node<"bvec3"> | Node<"bvec4">;
146
139
 
147
- type Unary = (a: MathNodeParameter) => MathNode;
140
+ type Matrix = Node<"mat2"> | Node<"mat3"> | Node<"mat4">;
148
141
 
149
- export const all: Unary;
150
- export const any: Unary;
142
+ type Vec2OrLessOrFloat = FloatOrNumber | Node<"vec2">;
143
+ type Vec3OrLessOrFloat = Vec2OrLessOrFloat | Node<"vec3">;
144
+ type Vec4OrLessOrFloat = Vec3OrLessOrFloat | Node<"vec4">;
151
145
 
152
- /**
153
- * @deprecated "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"
154
- */
155
- export const equals: Unary;
156
-
157
- export const radians: Unary;
158
- export const degrees: Unary;
159
- export const exp: Unary;
160
- export const exp2: Unary;
161
- export const log: Unary;
162
- export const log2: Unary;
163
- export const sqrt: Unary;
164
- export const inverseSqrt: Unary;
165
- export const floor: Unary;
166
- export const ceil: Unary;
167
- export const normalize: (a: Node | Vector3) => MathNode;
168
- export const fract: Unary;
169
- export const sin: Unary;
170
- export const cos: Unary;
171
- export const tan: Unary;
172
- export const asin: Unary;
173
- export const acos: Unary;
174
- export const atan: (a: MathNodeParameter, b?: MathNodeParameter) => MathNode;
175
- export const abs: Unary;
176
- export const sign: Unary;
177
- export const length: Unary;
178
- export const negate: Unary;
179
- export const oneMinus: Unary;
180
- export const dFdx: Unary;
181
- export const dFdy: Unary;
182
- export const round: Unary;
183
- export const reciprocal: Unary;
184
- export const trunc: Unary;
185
- export const fwidth: Unary;
186
- export const transpose: Unary;
187
- export const determinant: (x: Node) => MathNode;
188
- export const inverse: (x: Node) => MathNode;
189
-
190
- type Binary = (a: MathNodeParameter, b: MathNodeParameter) => MathNode;
191
-
192
- export const min: (
193
- x: MathNodeParameter,
194
- y: MathNodeParameter,
195
- ...values: MathNodeParameter[]
196
- ) => MathNode;
197
- export const max: (
198
- x: MathNodeParameter,
199
- y: MathNodeParameter,
200
- ...values: MathNodeParameter[]
201
- ) => MathNode;
202
- export const step: Binary;
203
- export const reflect: Binary;
204
- export const distance: Binary;
205
- export const difference: Binary;
206
- export const dot: Binary;
207
- export const cross: (x: Node, y: Node) => MathNode;
208
- export const pow: Binary;
209
- export const pow2: Unary;
210
- export const pow3: Unary;
211
- export const pow4: Unary;
212
- export const transformDirection: Binary;
213
- export const cbrt: Unary;
214
- export const lengthSq: Unary;
215
-
216
- type Ternary = (a: MathNodeParameter, b: MathNodeParameter, c: MathNodeParameter) => MathNode;
217
-
218
- export const mix: Ternary;
219
- export const clamp: (
220
- a: MathNodeParameter,
221
- b?: MathNodeParameter,
222
- c?: MathNodeParameter,
223
- ) => MathNode;
224
- export const saturate: Unary;
225
- export const refract: Ternary;
226
- export const smoothstep: Ternary;
227
- export const faceForward: Ternary;
228
-
229
- export const rand: (uv: MathNodeParameter) => OperatorNode;
230
-
231
- export const mixElement: Ternary;
232
- export const smoothstepElement: Ternary;
233
- export const stepElement: Binary;
146
+ export const EPSILON: Node<"float">;
147
+ export const INFINITY: Node<"float">;
148
+ export const PI: Node<"float">;
234
149
 
235
150
  /**
236
- * @deprecated
151
+ * @deprecated Please use the non-deprecated version `TWO_PI`.
237
152
  */
238
- export const atan2: Binary;
239
-
240
- // GLSL alias function
241
-
242
- export const faceforward: typeof faceForward;
243
- export const inversesqrt: typeof inverseSqrt;
244
-
245
- // Method chaining
246
-
247
- declare module "../Nodes.js" {
248
- interface Node {
249
- all: () => MathNode;
250
- allAssign: () => this;
251
-
252
- any: () => MathNode;
253
- anyAssign: () => this;
254
-
255
- /**
256
- * @deprecated "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"
257
- */
258
- equals: () => MathNode;
259
- /**
260
- * @deprecated "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"
261
- */
262
- equalsAssign: () => this;
263
-
264
- radians: () => MathNode;
265
- radiansAssign: () => this;
266
-
267
- degrees: () => MathNode;
268
- degreesAssign: () => this;
269
-
270
- exp: () => MathNode;
271
- expAssign: () => this;
153
+ export const PI2: Node<"float">;
272
154
 
273
- exp2: () => MathNode;
274
- exp2Assign: () => this;
155
+ export const TWO_PI: Node<"float">;
275
156
 
276
- log: () => MathNode;
277
- logAssign: () => this;
157
+ export const HALF_PI: Node<"float">;
278
158
 
279
- log2: () => MathNode;
280
- log2Assign: () => this;
281
-
282
- sqrt: () => MathNode;
283
- sqrtAssign: () => this;
284
-
285
- inverseSqrt: () => MathNode;
286
- inverseSqrtAssign: () => this;
287
-
288
- floor: () => MathNode;
289
- floorAssign: () => this;
290
-
291
- ceil: () => MathNode;
292
- ceilAssign: () => this;
293
-
294
- normalize: () => MathNode;
295
- normalizeAssign: () => this;
296
-
297
- fract: () => MathNode;
298
- fractAssign: () => this;
299
-
300
- sin: () => MathNode;
301
- sinAssign: () => this;
302
-
303
- cos: () => MathNode;
304
- cosAssign: () => this;
159
+ export const all: (x: BoolVector) => Node<"bool">;
160
+ export const any: (x: BoolVector) => Node<"bool">;
161
+ declare module "../core/Node.js" {
162
+ interface BvecExtensions {
163
+ all: () => Node<"bool">;
164
+ any: () => Node<"bool">;
165
+ }
166
+ }
305
167
 
306
- tan: () => MathNode;
307
- tanAssign: () => this;
168
+ interface UnaryFunction {
169
+ (x: FloatOrNumber): Node<"float">;
170
+ }
171
+ export const radians: UnaryFunction;
172
+ export const degrees: UnaryFunction;
173
+ export const exp: UnaryFunction;
174
+ export const exp2: UnaryFunction;
175
+ export const log: UnaryFunction;
176
+ export const log2: UnaryFunction;
177
+ export const sqrt: UnaryFunction;
178
+ export const inverseSqrt: UnaryFunction;
179
+ declare module "../core/Node.js" {
180
+ interface FloatExtensions {
181
+ radians: () => Node<"float">;
182
+ degrees: () => Node<"float">;
183
+ exp: () => Node<"float">;
184
+ exp2: () => Node<"float">;
185
+ log: () => Node<"float">;
186
+ log2: () => Node<"float">;
187
+ sqrt: () => Node<"float">;
188
+ inverseSqrt: () => Node<"float">;
189
+ }
190
+ }
308
191
 
309
- asin: () => MathNode;
310
- asinAssign: () => this;
192
+ interface FloorCeil {
193
+ (x: FloatOrNumber): Node<"float">;
194
+ (x: Node<"vec2">): Node<"vec2">;
195
+ (x: Node<"vec3">): Node<"vec3">;
196
+ (x: Node<"vec4">): Node<"vec4">;
197
+ }
198
+ export const floor: FloorCeil;
199
+ export const ceil: FloorCeil;
200
+ declare module "../core/Node.js" {
201
+ interface FloatExtensions {
202
+ floor: () => Node<"float">;
203
+ ceil: () => Node<"float">;
204
+ }
205
+ interface FloatVecExtensions<TVec extends FloatVecType> {
206
+ floor: () => Node<TVec>;
207
+ ceil: () => Node<TVec>;
208
+ }
209
+ }
311
210
 
312
- acos: () => MathNode;
313
- acosAssign: () => this;
211
+ interface Normalize {
212
+ (x: Node<"vec2"> | Vector2): Node<"vec2">;
213
+ (x: Node<"vec3"> | Vector3): Node<"vec3">;
214
+ (x: Node<"vec4"> | Vector4): Node<"vec4">;
215
+ }
216
+ export const normalize: Normalize;
217
+ declare module "../core/Node.js" {
218
+ interface FloatVecExtensions<TVec extends FloatVecType> {
219
+ normalize: () => Node<TVec>;
220
+ }
221
+ }
314
222
 
315
- atan: (b?: MathNodeParameter) => MathNode;
316
- atanAssign: (b?: MathNodeParameter) => this;
223
+ interface Fract {
224
+ (x: FloatOrNumber): Node<"float">;
225
+ (x: Node<"vec2">): Node<"vec2">;
226
+ (x: Node<"vec3">): Node<"vec3">;
227
+ (x: Node<"vec4">): Node<"vec4">;
228
+ }
229
+ export const fract: Fract;
230
+ declare module "../core/Node.js" {
231
+ interface FloatExtensions {
232
+ fract: () => Node<"float">;
233
+ }
234
+ interface FloatVecExtensions<TVec extends FloatVecType> {
235
+ fract: () => Node<TVec>;
236
+ }
237
+ }
317
238
 
318
- abs: () => MathNode;
319
- absAssign: () => this;
239
+ export const sin: (x: FloatOrNumber) => Node<"float">;
240
+ export const cos: (x: FloatOrNumber) => Node<"float">;
241
+ export const tan: (x: FloatOrNumber) => Node<"float">;
242
+ export const asin: (x: FloatOrNumber) => Node<"float">;
243
+ export const acos: (x: FloatOrNumber) => Node<"float">;
244
+ export const atan: (y: FloatOrNumber, x?: FloatOrNumber) => Node<"float">;
245
+ declare module "../core/Node.js" {
246
+ interface FloatExtensions {
247
+ sin: () => Node<"float">;
248
+ cos: () => Node<"float">;
249
+ tan: () => Node<"float">;
250
+ asin: () => Node<"float">;
251
+ acos: () => Node<"float">;
252
+ atan: (x?: FloatOrNumber) => Node<"float">;
253
+ }
254
+ }
320
255
 
321
- sign: () => MathNode;
322
- signAssign: () => this;
256
+ interface Abs {
257
+ (x: FloatOrNumber): Node<"float">;
258
+ (x: Node<"vec2">): Node<"vec2">;
259
+ (x: Node<"vec3">): Node<"vec3">;
260
+ (x: Node<"vec4">): Node<"vec4">;
261
+ (x: IntOrNumber): Node<"int">;
262
+ }
263
+ export const abs: Abs;
264
+ declare module "../core/Node.js" {
265
+ interface FloatExtensions {
266
+ abs: () => Node<"float">;
267
+ }
268
+ interface IntExtensions {
269
+ abs: () => Node<"int">;
270
+ }
271
+ interface FloatVecExtensions<TVec extends FloatVecType> {
272
+ abs: () => Node<TVec>;
273
+ }
274
+ }
323
275
 
324
- length: () => MathNode;
325
- lengthAssign: () => this;
276
+ interface Sign {
277
+ (x: FloatOrNumber): Node<"float">;
278
+ (x: Node<"vec2">): Node<"vec2">;
279
+ (x: Node<"vec3">): Node<"vec3">;
280
+ (x: Node<"vec4">): Node<"vec4">;
281
+ }
282
+ export const sign: Sign;
283
+ declare module "../core/Node.js" {
284
+ interface FloatExtensions {
285
+ sign: () => Node<"float">;
286
+ }
287
+ interface FloatVecExtensions<TVec extends FloatVecType> {
288
+ sign: () => Node<TVec>;
289
+ }
290
+ }
326
291
 
327
- lengthSq: () => MathNode;
328
- lengthSqAssign: () => this;
292
+ export const length: (x: FloatVector | Node) => Node<"float">;
293
+ declare module "../core/Node.js" {
294
+ interface FloatVecExtensions<TVec extends FloatVecType> {
295
+ length: () => Node<"float">;
296
+ }
297
+ }
329
298
 
330
- negate: () => MathNode;
331
- negateAssign: () => this;
299
+ interface Negate {
300
+ (x: FloatOrNumber): Node<"float">;
301
+ (x: Node<"vec2">): Node<"vec2">;
302
+ (x: Node<"vec3">): Node<"vec3">;
303
+ (x: Node<"vec4">): Node<"vec4">;
304
+ }
305
+ export const negate: Negate;
306
+ declare module "../core/Node.js" {
307
+ interface FloatExtensions {
308
+ negate: () => Node<"float">;
309
+ }
310
+ interface FloatVecExtensions<TVec extends FloatVecType> {
311
+ negate: () => Node<TVec>;
312
+ }
313
+ }
332
314
 
333
- oneMinus: () => MathNode;
334
- oneMinusAssign: () => this;
315
+ interface OneMinus {
316
+ (x: FloatOrNumber): Node<"float">;
317
+ (x: Node<"vec2">): Node<"vec2">;
318
+ (x: Node<"vec3">): Node<"vec3">;
319
+ (x: Node<"vec4">): Node<"vec4">;
320
+ }
321
+ export const oneMinus: OneMinus;
322
+ declare module "../core/Node.js" {
323
+ interface FloatExtensions {
324
+ oneMinus: () => Node<"float">;
325
+ }
326
+ interface FloatVecExtensions<TVec extends FloatVecType> {
327
+ oneMinus: () => Node<TVec>;
328
+ }
329
+ }
335
330
 
336
- dFdx: () => MathNode;
337
- dFdxAssign: () => this;
331
+ interface Derivative {
332
+ (x: Node<"vec2">): Node<"vec2">;
333
+ (x: Node<"vec3">): Node<"vec3">;
334
+ (x: Node<"vec4">): Node<"vec4">;
335
+ }
336
+ export const dFdx: Derivative;
337
+ export const dFdy: Derivative;
338
+ declare module "../core/Node.js" {
339
+ interface FloatVecExtensions<TVec extends FloatVecType> {
340
+ dFdx: () => Node<TVec>;
341
+ dFdy: () => Node<TVec>;
342
+ }
343
+ }
338
344
 
339
- dFdy: () => MathNode;
340
- dFdyAssign: () => this;
345
+ export const round: (x: FloatOrNumber) => Node<"float">;
346
+ export const reciprocal: (x: FloatOrNumber) => Node<"float">;
347
+ export const trunc: (x: FloatOrNumber) => Node<"float">;
348
+ declare module "../core/Node.js" {
349
+ interface FloatExtensions {
350
+ round: () => Node<"float">;
351
+ reciprocal: () => Node<"float">;
352
+ trunc: () => Node<"float">;
353
+ }
354
+ }
341
355
 
342
- round: () => MathNode;
343
- roundAssign: () => this;
356
+ interface Fwidth {
357
+ (x: FloatOrNumber): Node<"float">;
358
+ (x: Node<"vec2">): Node<"vec2">;
359
+ (x: Node<"vec3">): Node<"vec3">;
360
+ (x: Node<"vec4">): Node<"vec4">;
361
+ }
362
+ export const fwidth: Fwidth;
363
+ declare module "../core/Node.js" {
364
+ interface FloatExtensions {
365
+ fwidth: () => Node<"float">;
366
+ }
367
+ interface FloatVecExtensions<TVec extends FloatVecType> {
368
+ fwidth: () => Node<TVec>;
369
+ }
370
+ }
344
371
 
345
- reciprocal: () => MathNode;
346
- reciprocalAssign: () => this;
372
+ interface Transpose {
373
+ (x: Node<"mat2">): Node<"mat2">;
374
+ (x: Node<"mat3">): Node<"mat3">;
375
+ (x: Node<"mat4">): Node<"mat4">;
376
+ }
377
+ export const transpose: Transpose;
378
+ declare module "../core/Node.js" {
379
+ interface MatExtensions<TMat extends MatType> {
380
+ transpose: () => Node<TMat>;
381
+ }
382
+ }
347
383
 
348
- trunc: () => MathNode;
349
- truncAssign: () => this;
384
+ export const determinant: (x: Matrix) => Node<"float">;
385
+ declare module "../core/Node.js" {
386
+ interface MatExtensions<TMat extends MatType> {
387
+ determinant: () => Node<"float">;
388
+ }
389
+ }
350
390
 
351
- fwidth: () => MathNode;
352
- fwidthAssign: () => this;
391
+ interface Inverse {
392
+ (x: Node<"mat2">): Node<"mat2">;
393
+ (x: Node<"mat3">): Node<"mat3">;
394
+ (x: Node<"mat4">): Node<"mat4">;
395
+ }
396
+ export const inverse: Inverse;
397
+ declare module "../core/Node.js" {
398
+ interface MatExtensions<TMat extends MatType> {
399
+ inverse: () => Node<TMat>;
400
+ }
401
+ }
353
402
 
354
- /**
355
- * @deprecated
356
- */
357
- atan2: (b: MathNodeParameter) => MathNode;
358
- /**
359
- * @deprecated
360
- */
361
- atan2Assign: (b: MathNodeParameter) => this;
403
+ interface MinMax {
404
+ (x: FloatOrNumber, y: FloatOrNumber, ...params: FloatOrNumber[]): Node<"float">;
405
+ (x: Vec2OrLessOrFloat, y: Vec2OrLessOrFloat, ...params: Vec2OrLessOrFloat[]): Node<"vec2">;
406
+ (x: Vec3OrLessOrFloat, y: Vec3OrLessOrFloat, ...params: Vec3OrLessOrFloat[]): Node<"vec3">;
407
+ (x: Vec4OrLessOrFloat, y: Vec4OrLessOrFloat, ...params: Vec4OrLessOrFloat[]): Node<"vec4">;
408
+ }
409
+ export const min: MinMax;
410
+ export const max: MinMax;
411
+ interface MinMaxFloatExtension {
412
+ (y: FloatOrNumber, ...params: FloatOrNumber[]): Node<"float">;
413
+ (y: Vec2OrLessOrFloat, ...params: Vec2OrLessOrFloat[]): Node<"vec2">;
414
+ (y: Vec3OrLessOrFloat, ...params: Vec3OrLessOrFloat[]): Node<"vec3">;
415
+ (y: Vec4OrLessOrFloat, ...params: Vec4OrLessOrFloat[]): Node<"vec4">;
416
+ }
417
+ interface MinMaxVec2Extension {
418
+ (y: Vec2OrLessOrFloat, ...params: Vec2OrLessOrFloat[]): Node<"vec2">;
419
+ (y: Vec3OrLessOrFloat, ...params: Vec3OrLessOrFloat[]): Node<"vec3">;
420
+ (y: Vec4OrLessOrFloat, ...params: Vec4OrLessOrFloat[]): Node<"vec4">;
421
+ }
422
+ interface MinMaxVec3Extension {
423
+ (y: Vec3OrLessOrFloat, ...params: Vec3OrLessOrFloat[]): Node<"vec3">;
424
+ (y: Vec4OrLessOrFloat, ...params: Vec4OrLessOrFloat[]): Node<"vec4">;
425
+ }
426
+ interface MinMaxVec4Extension {
427
+ (y: Vec4OrLessOrFloat, ...params: Vec4OrLessOrFloat[]): Node<"vec4">;
428
+ }
429
+ declare module "../core/Node.js" {
430
+ interface FloatExtensions {
431
+ min: MinMaxFloatExtension;
432
+ max: MinMaxFloatExtension;
433
+ }
434
+ interface Vec2Extensions {
435
+ min: MinMaxVec2Extension;
436
+ max: MinMaxVec2Extension;
437
+ }
438
+ interface Vec3Extensions {
439
+ min: MinMaxVec3Extension;
440
+ max: MinMaxVec3Extension;
441
+ }
442
+ interface Vec4Extensions {
443
+ min: MinMaxVec4Extension;
444
+ max: MinMaxVec4Extension;
445
+ }
446
+ }
362
447
 
363
- min: (
364
- y: MathNodeParameter,
365
- ...values: MathNodeParameter[]
366
- ) => MathNode;
367
- minAssign: (
368
- y: MathNodeParameter,
369
- ...values: MathNodeParameter[]
370
- ) => this;
448
+ export const step: (x: FloatOrNumber, y: FloatOrNumber) => Node<"float">;
371
449
 
372
- max: (
373
- y: MathNodeParameter,
374
- ...values: MathNodeParameter[]
375
- ) => MathNode;
376
- maxAssign: (
377
- y: MathNodeParameter,
378
- ...values: MathNodeParameter[]
379
- ) => this;
450
+ interface Reflect {
451
+ (I: Vec2OrLessOrFloat, N: Vec2OrLessOrFloat): Node<"vec2">;
452
+ (I: Vec3OrLessOrFloat, N: Vec3OrLessOrFloat): Node<"vec3">;
453
+ (I: Vec4OrLessOrFloat, N: Vec4OrLessOrFloat): Node<"vec4">;
454
+ }
455
+ export const reflect: Reflect;
456
+ interface ReflectVec2Extension {
457
+ (N: Vec2OrLessOrFloat): Node<"vec2">;
458
+ (N: Vec3OrLessOrFloat): Node<"vec3">;
459
+ (N: Vec4OrLessOrFloat): Node<"vec4">;
460
+ }
461
+ interface ReflectVec3Extension {
462
+ (N: Vec3OrLessOrFloat): Node<"vec3">;
463
+ (N: Vec4OrLessOrFloat): Node<"vec4">;
464
+ }
465
+ interface ReflectVec4Extension {
466
+ (N: Vec4OrLessOrFloat): Node<"vec4">;
467
+ }
468
+ declare module "../core/Node.js" {
469
+ interface Vec2Extensions {
470
+ reflect: ReflectVec2Extension;
471
+ }
472
+ interface Vec3Extensions {
473
+ reflect: ReflectVec3Extension;
474
+ }
475
+ interface Vec4Extensions {
476
+ reflect: ReflectVec4Extension;
477
+ }
478
+ }
380
479
 
381
- step: (b: MathNodeParameter) => MathNode;
382
- stepAssign: (b: MathNodeParameter) => this;
480
+ export const distance: (x: FloatVectorOrNumber, y: FloatVectorOrNumber) => Node<"float">;
481
+ declare module "../core/Node.js" {
482
+ interface FloatExtensions {
483
+ distance: (y: FloatVectorOrNumber) => Node<"float">;
484
+ }
485
+ interface FloatVecExtensions<TVec extends FloatVecType> {
486
+ distance: (y: FloatVectorOrNumber) => Node<"float">;
487
+ }
488
+ }
383
489
 
384
- reflect: (b: MathNodeParameter) => MathNode;
385
- reflectAssign: (b: MathNodeParameter) => this;
490
+ interface Difference {
491
+ (x: FloatOrNumber, y: FloatOrNumber): Node<"float">;
492
+ (x: Vec2OrLessOrFloat, y: Vec2OrLessOrFloat): Node<"vec2">;
493
+ (x: Vec3OrLessOrFloat, y: Vec3OrLessOrFloat): Node<"vec3">;
494
+ (x: Vec4OrLessOrFloat, y: Vec4OrLessOrFloat): Node<"vec4">;
495
+ }
496
+ export const difference: Difference;
497
+ interface DifferenceFloatExtension {
498
+ (y: FloatOrNumber): Node<"float">;
499
+ (y: Vec2OrLessOrFloat): Node<"vec2">;
500
+ (y: Vec3OrLessOrFloat): Node<"vec3">;
501
+ (y: Vec4OrLessOrFloat): Node<"vec4">;
502
+ }
503
+ interface DifferenceVec2Extension {
504
+ (y: Vec2OrLessOrFloat): Node<"vec2">;
505
+ (y: Vec3OrLessOrFloat): Node<"vec3">;
506
+ (y: Vec4OrLessOrFloat): Node<"vec4">;
507
+ }
508
+ interface DifferenceVec3Extension {
509
+ (y: Vec3OrLessOrFloat): Node<"vec3">;
510
+ (y: Vec4OrLessOrFloat): Node<"vec4">;
511
+ }
512
+ interface DifferenceVec4Extension {
513
+ (y: Vec4OrLessOrFloat): Node<"vec4">;
514
+ }
515
+ declare module "../core/Node.js" {
516
+ interface FloatExtensions {
517
+ difference: DifferenceFloatExtension;
518
+ }
519
+ interface Vec2Extensions {
520
+ difference: DifferenceVec2Extension;
521
+ }
522
+ interface Vec3Extensions {
523
+ difference: DifferenceVec3Extension;
524
+ }
525
+ interface Vec4Extensions {
526
+ difference: DifferenceVec4Extension;
527
+ }
528
+ }
386
529
 
387
- distance: (b: MathNodeParameter) => MathNode;
388
- distanceAssign: (b: MathNodeParameter) => this;
530
+ export const dot: (x: FloatVector, y: FloatVector) => Node<"float">;
531
+ declare module "../core/Node.js" {
532
+ interface FloatVecExtensions<TVec extends FloatVecType> {
533
+ dot: (y: FloatVector) => Node<"float">;
534
+ }
535
+ }
389
536
 
390
- dot: (b: MathNodeParameter) => MathNode;
391
- dotAssign: (b: MathNodeParameter) => this;
537
+ export const cross: (x: Node<"vec3">, y: Node<"vec3">) => Node<"vec3">;
538
+ declare module "../core/Node.js" {
539
+ interface Vec3Extensions {
540
+ cross: (y: Node<"vec3">) => Node<"vec3">;
541
+ }
542
+ }
392
543
 
393
- cross: (y: Node) => MathNode;
394
- crossAssign: (y: Node) => this;
544
+ interface Pow {
545
+ (x: FloatOrNumber, y: FloatOrNumber): Node<"float">;
546
+ (x: Node<"vec2">, y: Node<"vec2">): Node<"vec2">;
547
+ (x: Node<"vec3">, y: Node<"vec3">): Node<"vec3">;
548
+ (x: Node<"vec4">, y: Node<"vec4">): Node<"vec4">;
549
+ }
550
+ export const pow: (x: FloatOrNumber, y: FloatOrNumber) => Node<"float">;
551
+ declare module "../core/Node.js" {
552
+ interface FloatExtensions {
553
+ pow: (y: FloatOrNumber) => Node<"float">;
554
+ }
555
+ interface FloatVecExtensions<TVec extends FloatVecType> {
556
+ pow: (y: Node<TVec>) => Node<TVec>;
557
+ }
558
+ }
395
559
 
396
- pow: (b: MathNodeParameter) => MathNode;
397
- powAssign: (b: MathNodeParameter) => this;
560
+ interface PowConstant {
561
+ (x: FloatOrNumber): Node<"float">;
562
+ (x: Node<"vec2">): Node<"vec2">;
563
+ (x: Node<"vec3">): Node<"vec3">;
564
+ (x: Node<"vec4">): Node<"vec4">;
565
+ }
566
+ export const pow2: PowConstant;
567
+ export const pow3: PowConstant;
568
+ export const pow4: PowConstant;
569
+ declare module "../core/Node.js" {
570
+ interface FloatExtensions {
571
+ pow2: () => Node<"float">;
572
+ pow3: () => Node<"float">;
573
+ pow4: () => Node<"float">;
574
+ }
575
+ interface FloatVecExtensions<TVec extends FloatVecType> {
576
+ pow2: () => Node<TVec>;
577
+ pow3: () => Node<TVec>;
578
+ pow4: () => Node<TVec>;
579
+ }
580
+ }
398
581
 
399
- pow2: () => MathNode;
400
- pow2Assign: () => this;
582
+ export const transformDirection: (direction: Node<"vec3">, matrix: Node<"mat3"> | Node<"mat4">) => Node<"vec3">;
583
+ declare module "../core/Node.js" {
584
+ interface Vec3Extensions {
585
+ transformDirection: (matrix: Node<"mat3"> | Node<"mat4">) => Node<"vec3">;
586
+ }
587
+ }
401
588
 
402
- pow3: () => MathNode;
403
- pow3Assign: () => this;
589
+ export const cbrt: (a: FloatOrNumber) => Node<"float">;
590
+ declare module "../core/Node.js" {
591
+ interface FloatExtensions {
592
+ cbrt: () => Node<"float">;
593
+ }
594
+ }
404
595
 
405
- pow4: () => MathNode;
406
- pow4Assign: () => this;
596
+ export const lengthSq: (a: FloatVector) => Node<"float">;
597
+ declare module "../core/Node.js" {
598
+ interface FloatVecExtensions<TVec extends FloatVecType> {
599
+ lengthSq: () => Node<"float">;
600
+ }
601
+ }
407
602
 
408
- transformDirection: (b: MathNodeParameter) => MathNode;
409
- transformDirectionAssign: (b: MathNodeParameter) => this;
603
+ interface Mix {
604
+ (a: FloatOrNumber, b: FloatOrNumber, t: FloatOrNumber): Node<"float">;
605
+ (a: Vec2OrLessOrFloat, b: Vec2OrLessOrFloat, t: FloatOrNumber): Node<"vec2">;
606
+ (a: Vec3OrLessOrFloat | Node<"color">, b: Vec3OrLessOrFloat | Node<"color">, t: FloatOrNumber): Node<"vec3">;
607
+ (a: Vec4OrLessOrFloat, b: Vec4OrLessOrFloat, t: FloatOrNumber): Node<"vec4">;
608
+ }
609
+ export const mix: Mix;
410
610
 
411
- mix: (b: MathNodeParameter, c: MathNodeParameter) => MathNode;
412
- mixAssign: (b: MathNodeParameter, c: MathNodeParameter) => this;
611
+ interface Clamp {
612
+ (value: FloatOrNumber, low?: FloatOrNumber, high?: FloatOrNumber): Node<"float">;
613
+ (value: Vec2OrLessOrFloat, low?: Vec2OrLessOrFloat, high?: Vec2OrLessOrFloat): Node<"vec2">;
614
+ (value: Vec3OrLessOrFloat, low?: Vec3OrLessOrFloat, high?: Vec3OrLessOrFloat): Node<"vec3">;
615
+ (value: Vec4OrLessOrFloat, low?: Vec4OrLessOrFloat, high?: Vec4OrLessOrFloat): Node<"vec4">;
616
+ }
617
+ export const clamp: Clamp;
618
+ interface ClampFloatExtension {
619
+ (low?: FloatOrNumber, high?: FloatOrNumber): Node<"float">;
620
+ (low?: Vec2OrLessOrFloat, high?: Vec2OrLessOrFloat): Node<"vec2">;
621
+ (low?: Vec3OrLessOrFloat, high?: Vec3OrLessOrFloat): Node<"vec3">;
622
+ (low?: Vec4OrLessOrFloat, high?: Vec4OrLessOrFloat): Node<"vec4">;
623
+ }
624
+ interface ClampVec2Extension {
625
+ (low?: Vec2OrLessOrFloat, high?: Vec2OrLessOrFloat): Node<"vec2">;
626
+ (low?: Vec3OrLessOrFloat, high?: Vec3OrLessOrFloat): Node<"vec3">;
627
+ (low?: Vec4OrLessOrFloat, high?: Vec4OrLessOrFloat): Node<"vec4">;
628
+ }
629
+ interface ClampVec3Extension {
630
+ (low?: Vec3OrLessOrFloat, high?: Vec3OrLessOrFloat): Node<"vec3">;
631
+ (low?: Vec4OrLessOrFloat, high?: Vec4OrLessOrFloat): Node<"vec4">;
632
+ }
633
+ interface ClampVec4Extension {
634
+ (low?: Vec4OrLessOrFloat, high?: Vec4OrLessOrFloat): Node<"vec4">;
635
+ }
636
+ declare module "../core/Node.js" {
637
+ interface FloatExtensions {
638
+ clamp: ClampFloatExtension;
639
+ }
640
+ interface Vec2Extensions {
641
+ clamp: ClampVec2Extension;
642
+ }
643
+ interface Vec3Extensions {
644
+ clamp: ClampVec3Extension;
645
+ }
646
+ interface Vec4Extensions {
647
+ clamp: ClampVec4Extension;
648
+ }
649
+ }
413
650
 
414
- clamp: (b?: MathNodeParameter, c?: MathNodeParameter) => MathNode;
415
- clampAssign: (b?: MathNodeParameter, c?: MathNodeParameter) => this;
651
+ interface Saturate {
652
+ (value: FloatOrNumber): Node<"float">;
653
+ (value: Node<"vec2">): Node<"vec2">;
654
+ (value: Node<"vec3">): Node<"vec3">;
655
+ (value: Node<"vec4">): Node<"vec4">;
656
+ }
657
+ export const saturate: Saturate;
658
+ declare module "../core/Node.js" {
659
+ interface FloatExtensions {
660
+ saturate: () => Node<"float">;
661
+ }
662
+ interface FloatVecExtensions<TVec extends FloatVecType> {
663
+ saturate: () => Node<TVec>;
664
+ }
665
+ }
416
666
 
417
- refract: (b: MathNodeParameter, c: MathNodeParameter) => MathNode;
418
- refractAssign: (b: MathNodeParameter, c: MathNodeParameter) => this;
667
+ interface Refract {
668
+ (I: Vec2OrLessOrFloat, N: Vec2OrLessOrFloat, ratio: FloatOrNumber): Node<"vec2">;
669
+ (I: Vec3OrLessOrFloat, N: Vec3OrLessOrFloat, ratio: FloatOrNumber): Node<"vec3">;
670
+ (I: Vec4OrLessOrFloat, N: Vec4OrLessOrFloat, ratio: FloatOrNumber): Node<"vec4">;
671
+ }
672
+ export const refract: Refract;
673
+ interface RefractVec2Extension {
674
+ (N: Vec2OrLessOrFloat, ratio: FloatOrNumber): Node<"vec2">;
675
+ (N: Vec3OrLessOrFloat, ratio: FloatOrNumber): Node<"vec3">;
676
+ (N: Vec4OrLessOrFloat, ratio: FloatOrNumber): Node<"vec4">;
677
+ }
678
+ interface RefractVec3Extension {
679
+ (N: Vec3OrLessOrFloat, ratio: FloatOrNumber): Node<"vec3">;
680
+ (N: Vec4OrLessOrFloat, ratio: FloatOrNumber): Node<"vec4">;
681
+ }
682
+ interface RefractVec4Extension {
683
+ (N: Vec4OrLessOrFloat, ratio: FloatOrNumber): Node<"vec4">;
684
+ }
685
+ declare module "../core/Node.js" {
686
+ interface Vec2Extensions {
687
+ refract: RefractVec2Extension;
688
+ }
689
+ interface Vec3Extensions {
690
+ refract: RefractVec3Extension;
691
+ }
692
+ interface Vec4Extensions {
693
+ refract: RefractVec4Extension;
694
+ }
695
+ }
419
696
 
420
- smoothstep: (b: MathNodeParameter, c: MathNodeParameter) => MathNode;
421
- smoothstepAssign: (b: MathNodeParameter, c: MathNodeParameter) => this;
697
+ interface Smoothstep {
698
+ (low: FloatOrNumber, high: FloatOrNumber, x: FloatOrNumber): Node<"float">;
699
+ }
700
+ export const smoothstep: Smoothstep;
422
701
 
423
- faceForward: (b: MathNodeParameter, c: MathNodeParameter) => MathNode;
424
- faceForwardAssign: (b: MathNodeParameter, c: MathNodeParameter) => this;
702
+ interface FaceForward {
703
+ (N: Vec2OrLessOrFloat, I: Vec2OrLessOrFloat, Nref: Vec2OrLessOrFloat): Node<"vec2">;
704
+ (N: Vec3OrLessOrFloat, I: Vec3OrLessOrFloat, Nref: Vec3OrLessOrFloat): Node<"vec3">;
705
+ (N: Vec4OrLessOrFloat, I: Vec4OrLessOrFloat, Nref: Vec4OrLessOrFloat): Node<"vec4">;
706
+ }
707
+ export const faceForward: FaceForward;
708
+ interface FaceForwardVec2Extension {
709
+ (I: Vec2OrLessOrFloat, Nref: Vec2OrLessOrFloat): Node<"vec2">;
710
+ (I: Vec3OrLessOrFloat, Nref: Vec3OrLessOrFloat): Node<"vec3">;
711
+ (I: Vec4OrLessOrFloat, Nref: Vec4OrLessOrFloat): Node<"vec4">;
712
+ }
713
+ interface FaceForwardVec3Extension {
714
+ (N: Vec3OrLessOrFloat, ratio: Vec3OrLessOrFloat): Node<"vec3">;
715
+ (N: Vec4OrLessOrFloat, ratio: Vec4OrLessOrFloat): Node<"vec4">;
716
+ }
717
+ interface FaceForwardVec4Extension {
718
+ (N: Vec4OrLessOrFloat, ratio: Vec4OrLessOrFloat): Node<"vec4">;
719
+ }
720
+ declare module "../core/Node.js" {
721
+ interface Vec2Extensions {
722
+ faceForward: FaceForwardVec2Extension;
723
+ }
724
+ interface Vec3Extensions {
725
+ faceForward: FaceForwardVec3Extension;
726
+ }
727
+ interface Vec4Extensions {
728
+ faceForward: FaceForwardVec4Extension;
729
+ }
730
+ }
425
731
 
426
- difference: (b: MathNodeParameter) => MathNode;
427
- differenceAssign: (b: MathNodeParameter) => this;
732
+ export const rand: (uv: Node<"vec2">) => Node<"float">;
733
+ declare module "../core/Node.js" {
734
+ interface Vec2Extensions {
735
+ rand: () => Node<"float">;
736
+ }
737
+ }
428
738
 
429
- saturate: () => MathNode;
430
- saturateAssign: () => this;
739
+ interface MixElement {
740
+ (t: FloatOrNumber, e1: FloatOrNumber, e2: FloatOrNumber): Node<"float">;
741
+ (t: FloatOrNumber, e1: Vec2OrLessOrFloat, e2: Vec2OrLessOrFloat): Node<"vec2">;
742
+ (t: FloatOrNumber, e1: Vec3OrLessOrFloat | Node<"color">, e2: Vec3OrLessOrFloat | Node<"color">): Node<"vec3">;
743
+ (t: FloatOrNumber, e1: Vec4OrLessOrFloat, e2: Vec4OrLessOrFloat): Node<"vec4">;
744
+ }
745
+ export const mixElement: MixElement;
746
+ interface MixExtension {
747
+ (e1: FloatOrNumber, e2: FloatOrNumber): Node<"float">;
748
+ (e1: Vec2OrLessOrFloat, e2: Vec2OrLessOrFloat): Node<"vec2">;
749
+ (e1: Vec3OrLessOrFloat | Node<"color">, e2: Vec3OrLessOrFloat | Node<"color">): Node<"vec3">;
750
+ (e1: Vec4OrLessOrFloat | Node<"color">, e2: Vec4OrLessOrFloat | Node<"color">): Node<"vec4">;
751
+ }
752
+ declare module "../core/Node.js" {
753
+ interface FloatExtensions {
754
+ mix: MixExtension;
755
+ }
756
+ }
431
757
 
432
- cbrt: () => MathNode;
433
- cbrtAssign: () => this;
758
+ interface SmoothstepElement {
759
+ (x: FloatOrNumber, low: FloatOrNumber, high: FloatOrNumber): Node<"float">;
760
+ }
761
+ export const smoothstepElement: SmoothstepElement;
762
+ interface SmoothstepExtension {
763
+ (low: FloatOrNumber, high: FloatOrNumber): Node<"float">;
764
+ }
765
+ declare module "../core/Node.js" {
766
+ interface FloatExtensions {
767
+ smoothstep: SmoothstepExtension;
768
+ }
769
+ }
434
770
 
435
- transpose: () => MathNode;
436
- transposeAssign: () => this;
771
+ export const stepElement: (x: FloatOrNumber, edge: FloatOrNumber) => Node<"float">;
772
+ declare module "../core/Node.js" {
773
+ interface FloatExtensions {
774
+ step: (edge: FloatOrNumber) => Node<"float">;
775
+ }
776
+ }
437
777
 
438
- determinant: () => MathNode;
439
- determinantAssign: () => this;
778
+ // GLSL alias function
440
779
 
441
- inverse: () => MathNode;
442
- inverseAssign: () => this;
780
+ export const faceforward: typeof faceForward;
781
+ export const inversesqrt: typeof inverseSqrt;
443
782
 
444
- rand: () => OperatorNode;
445
- randAssign: () => this;
446
- }
447
- }
783
+ export {};