@types/three 0.182.0 → 0.183.1

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 (313) 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/RenderObjectPipeline.d.ts +33 -0
  265. three/src/renderers/common/RenderObjects.d.ts +55 -22
  266. three/src/renderers/common/RenderPipeline.d.ts +20 -17
  267. three/src/renderers/common/Renderer.d.ts +625 -207
  268. three/src/renderers/common/Textures.d.ts +24 -46
  269. three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
  270. three/src/renderers/common/Uniform.d.ts +143 -58
  271. three/src/renderers/common/UniformBuffer.d.ts +7 -5
  272. three/src/renderers/common/UniformsGroup.d.ts +50 -35
  273. three/src/renderers/common/XRManager.d.ts +321 -83
  274. three/src/renderers/common/XRRenderTarget.d.ts +49 -6
  275. three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
  276. three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
  277. three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
  278. three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
  279. three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
  280. three/src/renderers/shaders/UniformsLib.d.ts +0 -3
  281. three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
  282. three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
  283. three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
  284. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
  285. three/src/renderers/webgl/WebGLLights.d.ts +19 -18
  286. three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
  287. three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
  288. three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
  289. three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
  290. three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
  291. three/src/renderers/webgl/WebGLState.d.ts +305 -28
  292. three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
  293. three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
  294. three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
  295. three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
  296. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
  297. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
  298. three/src/scenes/Fog.d.ts +31 -37
  299. three/src/scenes/FogExp2.d.ts +26 -31
  300. three/src/scenes/Scene.d.ts +51 -65
  301. three/src/textures/CompressedArrayTexture.d.ts +1 -1
  302. three/src/textures/DataArrayTexture.d.ts +1 -1
  303. three/src/utils.d.ts +5 -0
  304. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
  305. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
  306. three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
  307. three/src/nodes/accessors/SceneNode.d.ts +0 -21
  308. three/src/nodes/code/ScriptableNode.d.ts +0 -21
  309. three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
  310. three/src/nodes/display/PosterizeNode.d.ts +0 -13
  311. three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
  312. three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
  313. three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
@@ -1,35 +1,15 @@
1
1
  import Node from "../core/Node.js";
2
2
 
3
- export const blendBurn: (base: Node, blend: Node) => Node;
3
+ export const blendBurn: (base: Node, blend: Node) => Node<"vec3">;
4
4
 
5
- export const blendDodge: (base: Node, blend: Node) => Node;
5
+ export const blendDodge: (base: Node, blend: Node) => Node<"vec3">;
6
6
 
7
- export const blendScreen: (base: Node, blend: Node) => Node;
7
+ export const blendScreen: (base: Node, blend: Node) => Node<"vec3">;
8
8
 
9
- export const blendOverlay: (base: Node, blend: Node) => Node;
9
+ export const blendOverlay: (base: Node, blend: Node) => Node<"vec3">;
10
10
 
11
- export const blendColor: (base: Node, blend: Node) => Node;
11
+ export const blendColor: (base: Node, blend: Node) => Node<"vec4">;
12
12
 
13
- export const premultiplyAlpha: (color: Node) => Node;
13
+ export const premultiplyAlpha: (color: Node) => Node<"vec4">;
14
14
 
15
- export const unpremultiplyAlpha: (color: Node) => Node;
16
-
17
- /**
18
- * @deprecated
19
- */
20
- export const burn: (base: Node, blend: Node) => Node;
21
-
22
- /**
23
- * @deprecated
24
- */
25
- export const dodge: (base: Node, blend: Node) => Node;
26
-
27
- /**
28
- * @deprecated
29
- */
30
- export const screen: (base: Node, blend: Node) => Node;
31
-
32
- /**
33
- * @deprecated
34
- */
35
- export const overlay: (base: Node, blend: Node) => Node;
15
+ export const unpremultiplyAlpha: (color: Node) => Node<"vec4">;
@@ -1,29 +1,26 @@
1
1
  import Node from "../core/Node.js";
2
- import MathNode from "../math/MathNode.js";
3
2
 
4
- export const grayscale: (color: Node) => Node;
3
+ export const grayscale: (color: Node) => Node<"vec3">;
5
4
 
6
5
  export const saturation: (
7
6
  color: Node,
8
7
  adjustment?: Node | number,
9
- ) => Node;
8
+ ) => Node<"vec3">;
10
9
 
11
10
  export const vibrance: (
12
11
  color: Node,
13
12
  adjustment?: Node | number,
14
- ) => Node;
13
+ ) => Node<"vec3">;
15
14
 
16
15
  export const hue: (
17
16
  color: Node,
18
17
  adjustment?: Node | number,
19
- ) => Node;
18
+ ) => Node<"vec3">;
20
19
 
21
20
  export const luminance: (
22
21
  color: Node,
23
22
  luminanceCoefficients?: Node,
24
- ) => MathNode;
25
-
26
- export const threshold: (color: Node, thershold: Node) => MathNode;
23
+ ) => Node<"float">;
27
24
 
28
25
  /**
29
26
  * Color Decision List (CDL) v1.2
@@ -52,4 +49,6 @@ export const cdl: (
52
49
  power?: Node,
53
50
  saturation?: Node,
54
51
  luminanceCoefficients?: Node,
55
- ) => Node;
52
+ ) => Node<"vec4">;
53
+
54
+ export const posterize: <TNodeType>(sourceNode: Node<TNodeType>, stepsNode: Node | number) => Node<TNodeType>;
@@ -41,20 +41,14 @@ export const convertColorSpace: (
41
41
  targetColorSpace: string,
42
42
  ) => ColorSpaceNode;
43
43
 
44
- declare module "../Nodes.js" {
45
- interface Node {
44
+ declare module "../core/Node.js" {
45
+ interface NodeElements {
46
46
  workingToColorSpace: (
47
47
  targetColorSpace: string,
48
48
  ) => ColorSpaceNode;
49
- workingToColorSpaceAssign: (
50
- targetColorSpace: string,
51
- ) => this;
52
49
 
53
50
  colorSpaceToWorking: (
54
51
  sourceColorSpace: string,
55
52
  ) => ColorSpaceNode;
56
- colorSpaceToWorkingAssign: (
57
- sourceColorSpace: string,
58
- ) => this;
59
53
  }
60
54
  }
@@ -1,6 +1,6 @@
1
1
  import Node from "../core/Node.js";
2
2
 
3
- declare class FrontFacingNode extends Node {
3
+ declare class FrontFacingNode extends Node<"bool"> {
4
4
  isFrontFacingNode: true;
5
5
  constructor();
6
6
  }
@@ -15,6 +15,8 @@ import TempNode from "../core/TempNode.js";
15
15
  declare class PassTextureNode extends TextureNode {
16
16
  passNode: PassNode;
17
17
 
18
+ readonly isPassTextureNode: boolean;
19
+
18
20
  constructor(passNode: PassNode, texture: Texture);
19
21
  }
20
22
 
@@ -22,12 +24,14 @@ declare class PassMultipleTextureNode extends PassTextureNode {
22
24
  textureName: string;
23
25
  previousTexture: boolean;
24
26
 
27
+ readonly isPassMultipleTextureNode: boolean;
28
+
25
29
  constructor(passNode: PassNode, textureName: string, previousTexture?: boolean);
26
30
 
27
31
  updateTexture(): void;
28
32
  }
29
33
 
30
- declare class PassNode extends TempNode {
34
+ declare class PassNode extends TempNode<"vec4"> {
31
35
  scope: PassNodeScope;
32
36
  scene: Object3D;
33
37
  camera: Camera;
@@ -38,7 +42,7 @@ declare class PassNode extends TempNode {
38
42
  transparent: boolean;
39
43
  opaque: boolean;
40
44
 
41
- contextNode: ContextNode | null;
45
+ contextNode: ContextNode<unknown> | null;
42
46
 
43
47
  readonly isPassNode: true;
44
48
 
@@ -74,11 +78,11 @@ declare class PassNode extends TempNode {
74
78
 
75
79
  getTextureNode(name?: string): TextureNode;
76
80
 
77
- getPreviousTextureNode(name?: string): Node;
81
+ getPreviousTextureNode(name?: string): TextureNode;
78
82
 
79
- getViewZNode(name?: string): Node;
83
+ getViewZNode(name?: string): Node<"float">;
80
84
 
81
- getLinearDepthNode(name?: string): Node;
85
+ getLinearDepthNode(name?: string): Node<"float">;
82
86
 
83
87
  compileAsync(renderer: Renderer): Promise<void>;
84
88
 
@@ -2,7 +2,7 @@ import { ToneMapping } from "../../constants.js";
2
2
  import Node from "../core/Node.js";
3
3
  import TempNode from "../core/TempNode.js";
4
4
 
5
- declare class RenderOutputNode extends TempNode {
5
+ declare class RenderOutputNode extends TempNode<"vec4"> {
6
6
  colorNode: Node;
7
7
  outputColorSpace: string | null;
8
8
 
@@ -19,15 +19,11 @@ export const renderOutput: (
19
19
  outputColorSpace?: string | null,
20
20
  ) => RenderOutputNode;
21
21
 
22
- declare module "../Nodes.js" {
23
- interface Node {
22
+ declare module "../core/Node.js" {
23
+ interface NodeElements {
24
24
  renderOutput: (
25
25
  toneMapping?: ToneMapping | null,
26
26
  outputColorSpace?: string | null,
27
27
  ) => RenderOutputNode;
28
- renderOutputAssign: (
29
- toneMapping?: ToneMapping | null,
30
- outputColorSpace?: string | null,
31
- ) => this;
32
28
  }
33
29
  }
@@ -7,39 +7,47 @@ export type ScreenNodeScope =
7
7
  | typeof ScreenNode.UV
8
8
  | typeof ScreenNode.DPR;
9
9
 
10
- declare class ScreenNode extends Node {
10
+ interface ScreenNodeInterface {
11
11
  scope: ScreenNodeScope;
12
12
 
13
13
  readonly isViewportNode: true;
14
+ }
14
15
 
15
- constructor(scope: ScreenNodeScope);
16
+ declare const ScreenNode: {
17
+ new(scope: typeof ScreenNode.COORDINATE): ScreenNode<"vec2">;
18
+ new(scope: typeof ScreenNode.VIEWPORT): ScreenNode<"vec4">;
19
+ new(scope: typeof ScreenNode.SIZE): ScreenNode<"vec2">;
20
+ new(scope: typeof ScreenNode.UV): ScreenNode<"vec2">;
21
+ new(scope: typeof ScreenNode.DPR): ScreenNode<"float">;
16
22
 
17
- static COORDINATE: "coordinate";
18
- static VIEWPORT: "viewport";
19
- static SIZE: "size";
20
- static UV: "uv";
21
- static DPR: "dpr";
22
- }
23
+ COORDINATE: "coordinate";
24
+ VIEWPORT: "viewport";
25
+ SIZE: "size";
26
+ UV: "uv";
27
+ DPR: "dpr";
28
+ };
29
+
30
+ type ScreenNode<TValue> = Node<TValue> & ScreenNodeInterface;
23
31
 
24
32
  export default ScreenNode;
25
33
 
26
34
  // Screen
27
35
 
28
- export const screenDPR: ScreenNode;
29
- export const screenUV: ScreenNode;
30
- export const screenSize: ScreenNode;
31
- export const screenCoordinate: ScreenNode;
36
+ export const screenDPR: ScreenNode<"float">;
37
+ export const screenUV: ScreenNode<"vec2">;
38
+ export const screenSize: ScreenNode<"vec2">;
39
+ export const screenCoordinate: ScreenNode<"vec2">;
32
40
 
33
41
  // Viewport
34
42
 
35
- export const viewport: ScreenNode;
36
- export const viewportSize: Node;
37
- export const viewportCoordinate: Node;
38
- export const viewportUV: Node;
43
+ export const viewport: ScreenNode<"vec4">;
44
+ export const viewportSize: Node<"vec2">;
45
+ export const viewportCoordinate: Node<"vec2">;
46
+ export const viewportUV: Node<"vec2">;
39
47
 
40
48
  // Deprecated
41
49
 
42
50
  /**
43
51
  * @deprecated "viewportResolution" is deprecated. Use "screenSize" instead.
44
52
  */
45
- export const viewportResolution: ScreenNode;
53
+ export const viewportResolution: Node<"vec2">;
@@ -3,7 +3,7 @@ import RendererReferenceNode from "../accessors/RendererReferenceNode.js";
3
3
  import Node from "../core/Node.js";
4
4
  import TempNode from "../core/TempNode.js";
5
5
 
6
- declare class ToneMappingNode extends TempNode {
6
+ declare class ToneMappingNode extends TempNode<"vec3"> {
7
7
  exposureNode: Node;
8
8
  colorNode: Node | null;
9
9
 
@@ -19,15 +19,11 @@ export const toneMapping: (
19
19
  ) => ToneMappingNode;
20
20
  export const toneMappingExposure: RendererReferenceNode;
21
21
 
22
- declare module "../Nodes.js" {
23
- interface Node {
22
+ declare module "../core/Node.js" {
23
+ interface NodeElements {
24
24
  toneMapping: (
25
25
  mapping?: ToneMapping,
26
26
  exposure?: Node | number,
27
27
  ) => ToneMappingNode;
28
- toneMappingAssign: (
29
- mapping?: ToneMapping,
30
- exposure?: Node | number,
31
- ) => this;
32
28
  }
33
29
  }
@@ -1,6 +1,6 @@
1
1
  import Node from "../core/Node.js";
2
2
 
3
- declare class ViewportDepthNode extends Node {
3
+ declare class ViewportDepthNode extends Node<"float"> {
4
4
  scope: ViewportDepthNodeScope;
5
5
  valueNode: Node;
6
6
 
@@ -20,17 +20,21 @@ export type ViewportDepthNodeScope =
20
20
 
21
21
  export default ViewportDepthNode;
22
22
 
23
- export const viewZToOrthographicDepth: (viewZ: Node, near: Node, far: Node) => Node;
23
+ export const viewZToOrthographicDepth: (viewZ: Node, near: Node, far: Node) => Node<"float">;
24
24
 
25
- export const orthographicDepthToViewZ: (depth: Node, near: Node, far: Node) => Node;
25
+ export const viewZToReversedOrthographicDepth: (viewZ: Node, near: Node, far: Node) => Node<"float">;
26
26
 
27
- export const viewZToPerspectiveDepth: (viewZ: Node, near: Node, far: Node) => Node;
27
+ export const orthographicDepthToViewZ: (depth: Node, near: Node, far: Node) => Node<"float">;
28
28
 
29
- export const perspectiveDepthToViewZ: (depth: Node, near: Node, far: Node) => Node;
29
+ export const viewZToPerspectiveDepth: (viewZ: Node, near: Node, far: Node) => Node<"float">;
30
30
 
31
- export const viewZToLogarithmicDepth: (viewZ: Node, near: Node, far: Node) => Node;
31
+ export const viewZToReversedPerspectiveDepth: (viewZ: Node, near: Node, far: Node) => Node<"float">;
32
32
 
33
- export const logarithmicDepthToViewZ: (depth: Node, near: Node, far: Node) => Node;
33
+ export const perspectiveDepthToViewZ: (depth: Node, near: Node, far: Node) => Node<"float">;
34
+
35
+ export const viewZToLogarithmicDepth: (viewZ: Node, near: Node, far: Node) => Node<"float">;
36
+
37
+ export const logarithmicDepthToViewZ: (depth: Node, near: Node, far: Node) => Node<"float">;
34
38
 
35
39
  export const depth: ViewportDepthNode;
36
40
  export const linearDepth: (valueNode?: Node | null) => ViewportDepthNode;
@@ -29,3 +29,5 @@ export const viewportMipTexture: (
29
29
  levelNode?: Node | null,
30
30
  framebufferTexture?: FramebufferTexture | null,
31
31
  ) => Node;
32
+
33
+ export const viewportOpaqueMipTexture: (uv?: Node, level?: Node | null) => Node;
@@ -1,10 +1,12 @@
1
1
  import Node from "../core/Node.js";
2
2
 
3
- export const rangeFogFactor: (near: Node | number, far: Node | number) => Node;
3
+ export const rangeFogFactor: (near: Node | number, far: Node | number) => Node<"float">;
4
4
 
5
- export const densityFogFactor: (density: Node) => Node;
5
+ export const densityFogFactor: (density: Node) => Node<"float">;
6
6
 
7
- export const fog: (color: Node, factor: Node) => Node;
7
+ export const exponentialHeightFogFactor: (density: Node, height: Node) => Node;
8
+
9
+ export const fog: (color: Node, factor: Node) => Node<"vec4">;
8
10
 
9
11
  /**
10
12
  * @deprecated
@@ -5,16 +5,58 @@ import { Vector4 } from "../../math/Vector4.js";
5
5
  import Node from "../core/Node.js";
6
6
  import NodeBuilder from "../core/NodeBuilder.js";
7
7
 
8
- export default class RangeNode extends Node {
9
- minNode: Node;
10
- maxNode: Node;
11
-
12
- constructor(minNode: Node, maxNode: Node);
8
+ interface RangeNodeInterface<TNodeType> {
9
+ minNode: Node<TNodeType>;
10
+ maxNode: Node<TNodeType>;
13
11
 
14
12
  getVectorLength(builder: NodeBuilder): number;
15
13
  }
16
14
 
17
- export const range: (
18
- minNode: Node | number | Color | Vector2 | Vector3 | Vector4,
19
- maxNode: Node | number | Color | Vector2 | Vector3 | Vector4,
20
- ) => RangeNode;
15
+ declare const RangeNode: {
16
+ new<TNodeType>(minNode: Node<TNodeType>, maxNode: Node<TNodeType>): RangeNode<TNodeType>;
17
+ };
18
+
19
+ type RangeNode<TNodeType> = RangeNodeInterface<TNodeType> & Node<TNodeType>;
20
+
21
+ export default RangeNode;
22
+
23
+ interface Range {
24
+ (
25
+ minNode: number,
26
+ maxNode: number,
27
+ ): RangeNode<"float">;
28
+ (
29
+ minNode: Vector2,
30
+ maxNode: Vector2,
31
+ ): RangeNode<"vec2">;
32
+ (
33
+ minNode: Vector3,
34
+ maxNode: Vector3,
35
+ ): RangeNode<"vec3">;
36
+ (
37
+ minNode: Vector4,
38
+ maxNode: Vector4,
39
+ ): RangeNode<"vec4">;
40
+ (
41
+ minNode: Color,
42
+ maxNode: Color,
43
+ ): RangeNode<"vec3">;
44
+ (
45
+ minNode: Node<"float">,
46
+ maxNode: Node<"float">,
47
+ ): RangeNode<"float">;
48
+ (
49
+ minNode: Node<"vec2">,
50
+ maxNode: Node<"vec2">,
51
+ ): RangeNode<"vec2">;
52
+ (
53
+ minNode: Node<"vec3">,
54
+ maxNode: Node<"vec3">,
55
+ ): RangeNode<"vec3">;
56
+ (
57
+ minNode: Node<"vec4">,
58
+ maxNode: Node<"vec4">,
59
+ ): RangeNode<"vec4">;
60
+ }
61
+
62
+ export const range: Range;
@@ -30,6 +30,8 @@ declare class AtomicFunctionNode extends Node {
30
30
  static ATOMIC_XOR: "atomicXor";
31
31
  }
32
32
 
33
+ export default AtomicFunctionNode;
34
+
33
35
  export const atomicFunc: (
34
36
  method: AtomicMethod,
35
37
  pointerNode: Node,
@@ -6,6 +6,8 @@ declare class BarrierNode extends Node {
6
6
  constructor(scope: string);
7
7
  }
8
8
 
9
+ export default BarrierNode;
10
+
9
11
  export const workgroupBarrier: () => Node;
10
12
  export const storageBarrier: () => Node;
11
13
  export const textureBarrier: () => Node;
@@ -34,18 +34,13 @@ export const compute: (
34
34
  workgroupSize?: number[],
35
35
  ) => ComputeNode;
36
36
 
37
- declare module "../Nodes.js" {
38
- interface Node {
37
+ declare module "../core/Node.js" {
38
+ interface NodeElements {
39
39
  compute: (
40
40
  count: number,
41
41
  workgroupSize?: number[],
42
42
  ) => ComputeNode;
43
- computeAssign: (
44
- count: number,
45
- workgroupSize?: number[],
46
- ) => this;
47
43
 
48
44
  computeKernel: (workgroupSize?: number[]) => ComputeNode;
49
- computeKernelAssign: (workgroupSize?: number[]) => this;
50
45
  }
51
46
  }
@@ -6,7 +6,7 @@ import { DirectLightData, DirectRectAreaLightData } from "./LightsNode.js";
6
6
  import ShadowNode from "./ShadowNode.js";
7
7
 
8
8
  declare module "../../lights/LightShadow.js" {
9
- export interface LightShadow {
9
+ interface LightShadow {
10
10
  shadowNode?: Node;
11
11
  }
12
12
  }
@@ -1,10 +1,11 @@
1
1
  import { HemisphereLight } from "../../lights/HemisphereLight.js";
2
- import Object3DNode from "../accessors/Object3DNode.js";
2
+ import { Vector3 } from "../../math/Vector3.js";
3
3
  import Node from "../core/Node.js";
4
+ import UniformNode from "../core/UniformNode.js";
4
5
  import AnalyticLightNode from "./AnalyticLightNode.js";
5
6
 
6
7
  export default class HemisphereLightNode extends AnalyticLightNode<HemisphereLight> {
7
- lightPositionNode: Object3DNode;
8
+ lightPositionNode: UniformNode<"vec3", Vector3>;
8
9
  lightDirectionNode: Node;
9
10
 
10
11
  groundColorNode: Node;
@@ -3,7 +3,7 @@ import UniformArrayNode from "../accessors/UniformArrayNode.js";
3
3
  import AnalyticLightNode from "./AnalyticLightNode.js";
4
4
 
5
5
  declare class LightProbeNode extends AnalyticLightNode<LightProbe> {
6
- lightProbe: UniformArrayNode;
6
+ lightProbe: UniformArrayNode<"vec3">;
7
7
 
8
8
  constructor(light?: LightProbe | null);
9
9
  }
@@ -5,4 +5,4 @@ export const getDistanceAttenuation: (args: {
5
5
  lightDistance: Node;
6
6
  cutoffDistance: Node;
7
7
  decayExponent: Node;
8
- }) => ConditionalNode;
8
+ }) => Node<"float">;
@@ -13,7 +13,7 @@ export interface LightingContext {
13
13
  backdropAlpha: Node;
14
14
  }
15
15
 
16
- export default class LightingContextNode extends ContextNode {
16
+ export default class LightingContextNode extends ContextNode<unknown> {
17
17
  lightingModelNode: LightingModel | null;
18
18
  backdropNode: Node | null;
19
19
  backdropAlphaNode: Node | null;
@@ -19,10 +19,4 @@ declare class SpotLightNode extends AnalyticLightNode<SpotLight> {
19
19
  getLightCoord(builder: NodeBuilder): Node;
20
20
  }
21
21
 
22
- declare module "three" {
23
- export interface SpotLight {
24
- attenuationNode?: ((lightNode: SpotLightNode) => Node) | null | undefined;
25
- }
26
- }
27
-
28
22
  export default SpotLightNode;
@@ -55,17 +55,17 @@ export const mx_noise_float: (
55
55
  texcoord?: Node,
56
56
  amplitude?: Node | number,
57
57
  pivot?: Node | number,
58
- ) => Node;
58
+ ) => Node<"float">;
59
59
  export const mx_noise_vec3: (
60
60
  texcoord?: Node,
61
61
  amplitude?: Node | number,
62
62
  pivot?: Node | number,
63
- ) => Node;
63
+ ) => Node<"vec3">;
64
64
  export const mx_noise_vec4: (
65
65
  texcoord?: Node,
66
66
  amplitude?: Node | number,
67
67
  pivot?: Node | number,
68
- ) => Node;
68
+ ) => Node<"vec4">;
69
69
 
70
70
  export const mx_unifiednoise2d: (
71
71
  noiseType: Node,
@@ -97,17 +97,17 @@ export const mx_unifiednoise3d: (
97
97
  export function mx_worley_noise_float(
98
98
  texcoord?: Node,
99
99
  jitter?: Node | number,
100
- ): Node;
100
+ ): Node<"float">;
101
101
  export function mx_worley_noise_vec2(
102
102
  texcoord?: Node,
103
103
  jitter?: Node | number,
104
- ): Node;
104
+ ): Node<"vec2">;
105
105
  export function mx_worley_noise_vec3(
106
106
  texcoord?: Node,
107
107
  jitter?: Node | number,
108
- ): Node;
108
+ ): Node<"vec3">;
109
109
 
110
- export function mx_cell_noise_float(texcoord?: Node): Node;
110
+ export function mx_cell_noise_float(texcoord?: Node): Node<"float">;
111
111
 
112
112
  export function mx_fractal_noise_float(
113
113
  position?: Node,
@@ -115,28 +115,28 @@ export function mx_fractal_noise_float(
115
115
  lacunarity?: Node | number,
116
116
  diminish?: Node | number,
117
117
  amplitude?: Node | number,
118
- ): Node;
118
+ ): Node<"float">;
119
119
  export function mx_fractal_noise_vec2(
120
120
  position?: Node,
121
121
  octaves?: Node | number,
122
122
  lacunarity?: Node | number,
123
123
  diminish?: Node | number,
124
124
  amplitude?: Node | number,
125
- ): Node;
125
+ ): Node<"vec2">;
126
126
  export function mx_fractal_noise_vec3(
127
127
  position?: Node,
128
128
  octaves?: Node | number,
129
129
  lacunarity?: Node | number,
130
130
  diminish?: Node | number,
131
131
  amplitude?: Node | number,
132
- ): Node;
132
+ ): Node<"vec3">;
133
133
  export function mx_fractal_noise_vec4(
134
134
  position?: Node,
135
135
  octaves?: Node | number,
136
136
  lacunarity?: Node | number,
137
137
  diminish?: Node | number,
138
138
  amplitude?: Node | number,
139
- ): Node;
139
+ ): Node<"vec4">;
140
140
 
141
141
  export { mx_hsvtorgb, mx_rgbtohsv, mx_srgb_texture_to_lin_rec709 };
142
142
 
@@ -16,6 +16,8 @@ declare class BitcountNode extends MathNode {
16
16
  static COUNT_ONE_BITS: "countOneBits";
17
17
  }
18
18
 
19
+ export default BitcountNode;
20
+
19
21
  export const countTrailingZeros: (x: Node | number) => BitcountNode;
20
22
  export const countLeadingZeros: (x: Node | number) => BitcountNode;
21
23
  export const countOneBits: (x: Node | number) => BitcountNode;