@types/three 0.181.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 (351) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +0 -3
  3. three/examples/jsm/controls/ArcballControls.d.ts +1 -1
  4. three/examples/jsm/controls/DragControls.d.ts +1 -1
  5. three/examples/jsm/controls/FirstPersonControls.d.ts +1 -1
  6. three/examples/jsm/controls/FlyControls.d.ts +1 -1
  7. three/examples/jsm/controls/OrbitControls.d.ts +40 -1
  8. three/examples/jsm/controls/PointerLockControls.d.ts +1 -1
  9. three/examples/jsm/controls/TrackballControls.d.ts +1 -1
  10. three/examples/jsm/controls/TransformControls.d.ts +1 -1
  11. three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
  12. three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
  13. three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
  14. three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
  15. three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
  16. three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
  17. three/examples/jsm/inspector/ui/Item.d.ts +5 -0
  18. three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
  19. three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
  20. three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
  21. three/examples/jsm/loaders/UltraHDRLoader.d.ts +7 -0
  22. three/examples/jsm/loaders/VOXLoader.d.ts +22 -5
  23. three/examples/jsm/math/Octree.d.ts +36 -14
  24. three/examples/jsm/objects/SkyMesh.d.ts +16 -6
  25. three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
  26. three/examples/jsm/objects/WaterMesh.d.ts +6 -6
  27. three/examples/jsm/physics/AmmoPhysics.d.ts +1 -1
  28. three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
  29. three/examples/jsm/postprocessing/OutputPass.d.ts +10 -6
  30. three/examples/jsm/postprocessing/RenderPass.d.ts +15 -10
  31. three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
  32. three/examples/jsm/transpiler/AST.d.ts +17 -0
  33. three/examples/jsm/transpiler/TSLEncoder.d.ts +2 -0
  34. three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
  35. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
  36. three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
  37. three/examples/jsm/tsl/display/BleachBypass.d.ts +1 -1
  38. three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
  39. three/examples/jsm/tsl/display/CRT.d.ts +22 -0
  40. three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
  41. three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
  42. three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
  43. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
  44. three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
  45. three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
  46. three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
  47. three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
  48. three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
  49. three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
  50. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
  51. three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
  52. three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
  53. three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
  54. three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
  55. three/examples/jsm/tsl/display/SSSNode.d.ts +7 -5
  56. three/examples/jsm/tsl/display/Shape.d.ts +3 -0
  57. three/examples/jsm/tsl/display/TRAANode.d.ts +5 -0
  58. three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
  59. three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
  60. three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
  61. three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
  62. three/examples/jsm/tsl/display/radialBlur.d.ts +12 -0
  63. three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
  64. three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
  65. three/package.json +4 -4
  66. three/src/Three.Core.d.ts +1 -1
  67. three/src/Three.TSL.d.ts +20 -13
  68. three/src/Three.WebGPU.Nodes.d.ts +2 -0
  69. three/src/Three.WebGPU.d.ts +3 -0
  70. three/src/Three.d.ts +2 -2
  71. three/src/animation/AnimationClip.d.ts +1 -1
  72. three/src/animation/AnimationMixer.d.ts +42 -0
  73. three/src/animation/AnimationUtils.d.ts +3 -8
  74. three/src/animation/KeyframeTrack.d.ts +19 -5
  75. three/src/animation/PropertyMixer.d.ts +5 -4
  76. three/src/audio/Audio.d.ts +224 -157
  77. three/src/audio/AudioAnalyser.d.ts +32 -27
  78. three/src/audio/AudioContext.d.ts +12 -12
  79. three/src/audio/AudioListener.d.ts +44 -65
  80. three/src/audio/PositionalAudio.d.ts +69 -62
  81. three/src/cameras/ArrayCamera.d.ts +21 -24
  82. three/src/cameras/Camera.d.ts +14 -53
  83. three/src/cameras/CubeCamera.d.ts +32 -28
  84. three/src/cameras/OrthographicCamera.d.ts +70 -100
  85. three/src/cameras/PerspectiveCamera.d.ts +133 -146
  86. three/src/cameras/StereoCamera.d.ts +24 -30
  87. three/src/constants.d.ts +28 -2
  88. three/src/core/BufferGeometry.d.ts +3 -1
  89. three/src/core/Clock.d.ts +3 -0
  90. three/src/core/Object3D.d.ts +31 -7
  91. three/src/extras/Controls.d.ts +3 -3
  92. three/src/geometries/TorusGeometry.d.ts +22 -3
  93. three/src/helpers/ArrowHelper.d.ts +34 -50
  94. three/src/helpers/AxesHelper.d.ts +22 -36
  95. three/src/helpers/Box3Helper.d.ts +14 -25
  96. three/src/helpers/BoxHelper.d.ts +28 -39
  97. three/src/helpers/CameraHelper.d.ts +31 -52
  98. three/src/helpers/DirectionalLightHelper.d.ts +32 -53
  99. three/src/helpers/GridHelper.d.ts +15 -29
  100. three/src/helpers/HemisphereLightHelper.d.ts +26 -49
  101. three/src/helpers/PlaneHelper.d.ts +21 -33
  102. three/src/helpers/PointLightHelper.d.ts +25 -50
  103. three/src/helpers/PolarGridHelper.d.ts +19 -32
  104. three/src/helpers/SkeletonHelper.d.ts +26 -50
  105. three/src/helpers/SpotLightHelper.d.ts +28 -55
  106. three/src/lights/AmbientLight.d.ts +15 -23
  107. three/src/lights/DirectionalLight.d.ts +49 -83
  108. three/src/lights/DirectionalLightShadow.d.ts +6 -61
  109. three/src/lights/HemisphereLight.d.ts +27 -47
  110. three/src/lights/Light.d.ts +22 -56
  111. three/src/lights/LightProbe.d.ts +31 -32
  112. three/src/lights/LightShadow.d.ts +107 -91
  113. three/src/lights/PointLight.d.ts +47 -77
  114. three/src/lights/PointLightShadow.d.ts +7 -11
  115. three/src/lights/RectAreaLight.d.ts +39 -59
  116. three/src/lights/SpotLight.d.ts +78 -117
  117. three/src/lights/SpotLightShadow.d.ts +17 -59
  118. three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
  119. three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
  120. three/src/materials/Material.d.ts +1 -0
  121. three/src/materials/MeshLambertMaterial.d.ts +6 -0
  122. three/src/materials/MeshPhongMaterial.d.ts +6 -0
  123. three/src/materials/ShaderMaterial.d.ts +18 -3
  124. three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
  125. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
  126. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
  127. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
  128. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
  129. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
  130. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
  131. three/src/materials/nodes/NodeMaterial.d.ts +15 -2
  132. three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
  133. three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
  134. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
  135. three/src/math/Color.d.ts +1 -0
  136. three/src/math/Vector3.d.ts +2 -2
  137. three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
  138. three/src/nodes/Nodes.d.ts +55 -35
  139. three/src/nodes/TSL.d.ts +6 -6
  140. three/src/nodes/accessors/Arrays.d.ts +19 -10
  141. three/src/nodes/accessors/BufferAttributeNode.d.ts +108 -41
  142. three/src/nodes/accessors/BufferNode.d.ts +21 -7
  143. three/src/nodes/accessors/Camera.d.ts +10 -10
  144. three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
  145. three/src/nodes/accessors/InstanceNode.d.ts +13 -6
  146. three/src/nodes/accessors/Lights.d.ts +9 -6
  147. three/src/nodes/accessors/MaterialNode.d.ts +1 -3
  148. three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
  149. three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
  150. three/src/nodes/accessors/ModelNode.d.ts +34 -17
  151. three/src/nodes/accessors/MorphNode.d.ts +1 -1
  152. three/src/nodes/accessors/Normal.d.ts +13 -15
  153. three/src/nodes/accessors/Object3DNode.d.ts +35 -16
  154. three/src/nodes/accessors/Position.d.ts +9 -7
  155. three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
  156. three/src/nodes/accessors/ReflectVector.d.ts +4 -5
  157. three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
  158. three/src/nodes/accessors/SceneProperties.d.ts +5 -0
  159. three/src/nodes/accessors/SkinningNode.d.ts +5 -3
  160. three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
  161. three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
  162. three/src/nodes/accessors/Tangent.d.ts +5 -7
  163. three/src/nodes/accessors/Texture3DNode.d.ts +13 -1
  164. three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
  165. three/src/nodes/accessors/TextureNode.d.ts +19 -18
  166. three/src/nodes/accessors/UV.d.ts +1 -1
  167. three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
  168. three/src/nodes/accessors/UserDataNode.d.ts +1 -1
  169. three/src/nodes/accessors/VelocityNode.d.ts +3 -3
  170. three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
  171. three/src/nodes/code/FunctionCallNode.d.ts +0 -1
  172. three/src/nodes/code/FunctionNode.d.ts +7 -3
  173. three/src/nodes/core/ArrayNode.d.ts +2 -3
  174. three/src/nodes/core/AttributeNode.d.ts +12 -6
  175. three/src/nodes/core/BypassNode.d.ts +2 -3
  176. three/src/nodes/core/ConstNode.d.ts +10 -3
  177. three/src/nodes/core/ContextNode.d.ts +32 -21
  178. three/src/nodes/core/IndexNode.d.ts +1 -1
  179. three/src/nodes/core/InputNode.d.ts +12 -4
  180. three/src/nodes/core/InspectorNode.d.ts +2 -3
  181. three/src/nodes/core/IsolateNode.d.ts +2 -7
  182. three/src/nodes/core/MRTNode.d.ts +7 -0
  183. three/src/nodes/core/Node.d.ts +258 -39
  184. three/src/nodes/core/NodeAttribute.d.ts +30 -5
  185. three/src/nodes/core/NodeBuilder.d.ts +5 -3
  186. three/src/nodes/core/NodeCache.d.ts +24 -48
  187. three/src/nodes/core/NodeError.d.ts +9 -0
  188. three/src/nodes/core/NodeParser.d.ts +2 -0
  189. three/src/nodes/core/NodeUniform.d.ts +33 -9
  190. three/src/nodes/core/NodeUtils.d.ts +1 -1
  191. three/src/nodes/core/NodeVar.d.ts +33 -5
  192. three/src/nodes/core/NodeVarying.d.ts +32 -4
  193. three/src/nodes/core/ParameterNode.d.ts +11 -4
  194. three/src/nodes/core/PropertyNode.d.ts +45 -33
  195. three/src/nodes/core/StackTrace.d.ts +9 -0
  196. three/src/nodes/core/StructType.d.ts +3 -1
  197. three/src/nodes/core/StructTypeNode.d.ts +19 -5
  198. three/src/nodes/core/TempNode.d.ts +9 -3
  199. three/src/nodes/core/UniformNode.d.ts +53 -15
  200. three/src/nodes/core/VarNode.d.ts +15 -14
  201. three/src/nodes/core/VaryingNode.d.ts +14 -19
  202. three/src/nodes/core/constants.d.ts +9 -4
  203. three/src/nodes/display/BlendModes.d.ts +7 -27
  204. three/src/nodes/display/ColorAdjustment.d.ts +8 -9
  205. three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
  206. three/src/nodes/display/FrontFacingNode.d.ts +1 -1
  207. three/src/nodes/display/NormalMapNode.d.ts +3 -1
  208. three/src/nodes/display/PassNode.d.ts +16 -4
  209. three/src/nodes/display/RenderOutputNode.d.ts +3 -7
  210. three/src/nodes/display/ScreenNode.d.ts +25 -17
  211. three/src/nodes/display/ToneMappingNode.d.ts +3 -7
  212. three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
  213. three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
  214. three/src/nodes/fog/Fog.d.ts +5 -3
  215. three/src/nodes/functions/BSDF/DFGLUT.d.ts +12 -0
  216. three/src/nodes/functions/PhysicalLightingModel.d.ts +8 -1
  217. three/src/nodes/geometry/RangeNode.d.ts +51 -9
  218. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
  219. three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
  220. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
  221. three/src/nodes/lighting/AnalyticLightNode.d.ts +3 -1
  222. three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
  223. three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
  224. three/src/nodes/lighting/LightUtils.d.ts +1 -1
  225. three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
  226. three/src/nodes/lighting/PointShadowNode.d.ts +11 -15
  227. three/src/nodes/lighting/ShadowFilterNode.d.ts +2 -0
  228. three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
  229. three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
  230. three/src/nodes/math/BitcountNode.d.ts +23 -0
  231. three/src/nodes/math/ConditionalNode.d.ts +43 -22
  232. three/src/nodes/math/Hash.d.ts +1 -1
  233. three/src/nodes/math/MathNode.d.ts +603 -267
  234. three/src/nodes/math/MathUtils.d.ts +9 -5
  235. three/src/nodes/math/OperatorNode.d.ts +490 -227
  236. three/src/nodes/math/PackFloatNode.d.ts +19 -0
  237. three/src/nodes/math/TriNoise3D.d.ts +3 -3
  238. three/src/nodes/math/UnpackFloatNode.d.ts +18 -0
  239. three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
  240. three/src/nodes/procedural/Checker.d.ts +1 -1
  241. three/src/nodes/tsl/TSLCore.d.ts +1683 -224
  242. three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
  243. three/src/nodes/utils/DebugNode.d.ts +2 -5
  244. three/src/nodes/utils/Discard.d.ts +2 -3
  245. three/src/nodes/utils/FlipNode.d.ts +11 -0
  246. three/src/nodes/utils/LoopNode.d.ts +17 -13
  247. three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
  248. three/src/nodes/utils/Oscillators.d.ts +4 -4
  249. three/src/nodes/utils/Packing.d.ts +3 -2
  250. three/src/nodes/utils/PostProcessingUtils.d.ts +6 -4
  251. three/src/nodes/utils/RemapNode.d.ts +33 -39
  252. three/src/nodes/utils/RotateNode.d.ts +17 -8
  253. three/src/nodes/utils/SplitNode.d.ts +1 -2
  254. three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
  255. three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
  256. three/src/nodes/utils/Timer.d.ts +4 -4
  257. three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
  258. three/src/nodes/utils/UVUtils.d.ts +8 -3
  259. three/src/objects/BatchedMesh.d.ts +6 -4
  260. three/src/objects/InstancedMesh.d.ts +32 -24
  261. three/src/objects/LOD.d.ts +1 -1
  262. three/src/objects/Skeleton.d.ts +4 -2
  263. three/src/renderers/WebGLRenderer.d.ts +25 -96
  264. three/src/renderers/common/Animation.d.ts +46 -9
  265. three/src/renderers/common/Attributes.d.ts +11 -13
  266. three/src/renderers/common/Backend.d.ts +0 -2
  267. three/src/renderers/common/Background.d.ts +17 -15
  268. three/src/renderers/common/BindGroup.d.ts +27 -13
  269. three/src/renderers/common/Binding.d.ts +21 -3
  270. three/src/renderers/common/Bindings.d.ts +41 -17
  271. three/src/renderers/common/BlendMode.d.ts +22 -0
  272. three/src/renderers/common/Buffer.d.ts +53 -5
  273. three/src/renderers/common/BufferUtils.d.ts +3 -4
  274. three/src/renderers/common/BundleGroup.d.ts +16 -6
  275. three/src/renderers/common/CanvasTarget.d.ts +76 -13
  276. three/src/renderers/common/ChainMap.d.ts +18 -8
  277. three/src/renderers/common/ClippingContext.d.ts +61 -10
  278. three/src/renderers/common/Color4.d.ts +10 -5
  279. three/src/renderers/common/ComputePipeline.d.ts +16 -2
  280. three/src/renderers/common/Constants.d.ts +5 -3
  281. three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
  282. three/src/renderers/common/DataMap.d.ts +10 -18
  283. three/src/renderers/common/Geometries.d.ts +45 -19
  284. three/src/renderers/common/Info.d.ts +62 -9
  285. three/src/renderers/common/InspectorBase.d.ts +19 -7
  286. three/src/renderers/common/Lighting.d.ts +2 -6
  287. three/src/renderers/common/Pipeline.d.ts +14 -2
  288. three/src/renderers/common/Pipelines.d.ts +58 -60
  289. three/src/renderers/common/PostProcessing.d.ts +14 -17
  290. three/src/renderers/common/ProgrammableStage.d.ts +48 -8
  291. three/src/renderers/common/RenderBundle.d.ts +4 -2
  292. three/src/renderers/common/RenderBundles.d.ts +6 -3
  293. three/src/renderers/common/RenderContext.d.ts +175 -7
  294. three/src/renderers/common/RenderContexts.d.ts +21 -24
  295. three/src/renderers/common/RenderList.d.ts +77 -11
  296. three/src/renderers/common/RenderLists.d.ts +16 -4
  297. three/src/renderers/common/RenderObject.d.ts +229 -47
  298. three/src/renderers/common/{RenderPipeline.d.ts → RenderObjectPipeline.d.ts} +17 -5
  299. three/src/renderers/common/RenderObjects.d.ts +55 -22
  300. three/src/renderers/common/Renderer.d.ts +645 -216
  301. three/src/renderers/common/Textures.d.ts +24 -46
  302. three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
  303. three/src/renderers/common/Uniform.d.ts +143 -58
  304. three/src/renderers/common/UniformBuffer.d.ts +7 -5
  305. three/src/renderers/common/UniformsGroup.d.ts +51 -35
  306. three/src/renderers/common/XRManager.d.ts +321 -83
  307. three/src/renderers/common/XRRenderTarget.d.ts +49 -6
  308. three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
  309. three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
  310. three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
  311. three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
  312. three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
  313. three/src/renderers/shaders/ShaderLib.d.ts +1 -1
  314. three/src/renderers/shaders/UniformsLib.d.ts +0 -3
  315. three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
  316. three/src/renderers/webgl/WebGLCapabilities.d.ts +2 -2
  317. three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
  318. three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
  319. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
  320. three/src/renderers/webgl/WebGLLights.d.ts +19 -18
  321. three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
  322. three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
  323. three/src/renderers/webgl/WebGLPrograms.d.ts +2 -3
  324. three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
  325. three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
  326. three/src/renderers/webgl/WebGLState.d.ts +305 -28
  327. three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
  328. three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
  329. three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
  330. three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
  331. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
  332. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
  333. three/src/scenes/Fog.d.ts +31 -37
  334. three/src/scenes/FogExp2.d.ts +26 -31
  335. three/src/scenes/Scene.d.ts +51 -65
  336. three/src/textures/CompressedArrayTexture.d.ts +1 -1
  337. three/src/textures/CubeDepthTexture.d.ts +41 -0
  338. three/src/textures/CubeTexture.d.ts +4 -4
  339. three/src/textures/DataArrayTexture.d.ts +1 -1
  340. three/src/utils.d.ts +18 -1
  341. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
  342. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
  343. three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
  344. three/src/nodes/accessors/SceneNode.d.ts +0 -21
  345. three/src/nodes/code/ScriptableNode.d.ts +0 -21
  346. three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
  347. three/src/nodes/display/PosterizeNode.d.ts +0 -13
  348. three/src/nodes/functions/BSDF/DFGApprox.d.ts +0 -10
  349. three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
  350. three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
  351. three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
@@ -1,6 +1,6 @@
1
1
  import Node from "../core/Node.js";
2
2
 
3
- declare class ReferenceNode<T> extends Node {
3
+ interface ReferenceNodeInterface<T> extends Node {
4
4
  property: string;
5
5
 
6
6
  uniformType: string;
@@ -12,17 +12,26 @@ declare class ReferenceNode<T> extends Node {
12
12
  reference: T | null;
13
13
  node: Node | null;
14
14
 
15
- constructor(property: string, uniformType: string, object?: T | null, count?: number | null);
16
-
17
15
  setNodeType(uniformType: string): void;
18
16
  }
19
17
 
18
+ declare const ReferenceNode: {
19
+ new<TNodeType, T>(
20
+ property: string,
21
+ uniformType: TNodeType,
22
+ object?: T | null,
23
+ count?: number | null,
24
+ ): ReferenceNode<TNodeType, T>;
25
+ };
26
+
27
+ type ReferenceNode<TNodeType, T> = ReferenceNodeInterface<T> & Node<TNodeType>;
28
+
20
29
  export default ReferenceNode;
21
30
 
22
- export const reference: <T>(name: string, type: string, object: T) => ReferenceNode<T>;
23
- export const referenceBuffer: <T>(
31
+ export const reference: <const TNodeType, T>(name: string, type: TNodeType, object: T) => ReferenceNode<TNodeType, T>;
32
+ export const referenceBuffer: <const TNodeType, T>(
24
33
  name: string,
25
- type: string,
34
+ type: TNodeType,
26
35
  count: number,
27
36
  object: T,
28
- ) => ReferenceNode<T>;
37
+ ) => ReferenceNode<TNodeType, T>;
@@ -1,8 +1,7 @@
1
1
  import Node from "../core/Node.js";
2
- import VarNode from "../core/VarNode.js";
3
2
 
4
- export const reflectView: Node;
5
- export const refractView: Node;
3
+ export const reflectView: Node<"vec3">;
4
+ export const refractView: Node<"vec3">;
6
5
 
7
- export const reflectVector: VarNode;
8
- export const refractVector: VarNode;
6
+ export const reflectVector: Node<"vec3">;
7
+ export const refractVector: Node<"vec3">;
@@ -1,7 +1,7 @@
1
1
  import Renderer from "../../renderers/common/Renderer.js";
2
2
  import ReferenceNode from "./ReferenceNode.js";
3
3
 
4
- export default class RendererReferenceNode extends ReferenceNode<Renderer> {
4
+ export default class RendererReferenceNode extends ReferenceNode<unknown, Renderer> {
5
5
  renderer: Renderer | null;
6
6
 
7
7
  constructor(property: string, inputType: string, renderer?: Renderer | null);
@@ -0,0 +1,5 @@
1
+ import Node from "../core/Node.js";
2
+
3
+ export const backgroundBlurriness: Node<"float">;
4
+ export const backgroundIntensity: Node<"float">;
5
+ export const backgroundRotation: Node<"mat4">;
@@ -19,11 +19,13 @@ export default class SkinningNode extends Node {
19
19
 
20
20
  getSkinnedPosition(boneMatrices?: Node, position?: Node): Node;
21
21
 
22
- getSkinnedNormal(boneMatrices?: Node, normal?: Node): Node;
22
+ getSkinnedNormalAndTangent(
23
+ boneMatrices?: Node,
24
+ normal?: Node,
25
+ tangent?: Node,
26
+ ): { skinNormal: Node; skinTangent: Node };
23
27
 
24
28
  getPreviousSkinnedPosition(builder: NodeBuilder): Node;
25
-
26
- needsPreviousBoneMatrices(builder: NodeBuilder): boolean;
27
29
  }
28
30
 
29
31
  export const skinning: (skinnedMesh: SkinnedMesh) => SkinningNode;
@@ -8,7 +8,7 @@ import StructTypeNode from "../core/StructTypeNode.js";
8
8
  import StorageArrayElementNode from "../utils/StorageArrayElementNode.js";
9
9
  import BufferNode from "./BufferNode.js";
10
10
 
11
- export default class StorageBufferNode extends BufferNode<StorageBufferAttribute | StorageInstancedBufferAttribute> {
11
+ interface StorageBufferNodeInterface<TNodeType> {
12
12
  readonly isStorageBufferNode: true;
13
13
 
14
14
  structTypeNode: StructTypeNode | null;
@@ -19,13 +19,7 @@ export default class StorageBufferNode extends BufferNode<StorageBufferAttribute
19
19
 
20
20
  bufferObject: boolean;
21
21
 
22
- constructor(
23
- value: StorageBufferAttribute | StorageInstancedBufferAttribute,
24
- bufferType?: string | Struct | null,
25
- bufferCount?: number,
26
- );
27
-
28
- element: (indexNode: Node | number) => StorageArrayElementNode;
22
+ element: (indexNode: Node | number) => StorageArrayElementNode<TNodeType>;
29
23
 
30
24
  setPBO(value: boolean): this;
31
25
 
@@ -39,18 +33,51 @@ export default class StorageBufferNode extends BufferNode<StorageBufferAttribute
39
33
 
40
34
  toAtomic(): this;
41
35
  }
36
+ declare const StorageBufferNode: {
37
+ new<TNodeType>(
38
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute,
39
+ bufferType?: string | Struct | null,
40
+ bufferCount?: number,
41
+ ): StorageBufferNode<TNodeType>;
42
+ };
43
+
44
+ type StorageBufferNode<TNodeType> =
45
+ & StorageBufferNodeInterface<TNodeType>
46
+ & BufferNode<TNodeType, StorageBufferAttribute | StorageInstancedBufferAttribute>;
47
+
48
+ export default StorageBufferNode;
49
+
50
+ interface Storage {
51
+ (
52
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute | BufferAttribute,
53
+ type: "float",
54
+ count: number,
55
+ ): StorageBufferNode<"float">;
56
+ (
57
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute | BufferAttribute,
58
+ type: "uint",
59
+ count: number,
60
+ ): StorageBufferNode<"uint">;
61
+ (
62
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute | BufferAttribute,
63
+ type: "vec2",
64
+ count: number,
65
+ ): StorageBufferNode<"vec2">;
66
+ (
67
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute | BufferAttribute,
68
+ type: "vec3",
69
+ count: number,
70
+ ): StorageBufferNode<"vec3">;
71
+ (
72
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute | BufferAttribute,
73
+ type: "vec4",
74
+ count: number,
75
+ ): StorageBufferNode<"vec4">;
76
+ (
77
+ value: StorageBufferAttribute | StorageInstancedBufferAttribute | BufferAttribute,
78
+ type: Struct,
79
+ count: number,
80
+ ): StorageBufferNode<"struct">;
81
+ }
42
82
 
43
- export const storage: (
44
- value: StorageBufferAttribute | StorageInstancedBufferAttribute | BufferAttribute,
45
- type?: string | Struct | null,
46
- count?: number,
47
- ) => StorageBufferNode;
48
-
49
- /**
50
- * @deprecated
51
- */
52
- export const storageObject: (
53
- value: StorageBufferAttribute | StorageInstancedBufferAttribute,
54
- type?: string | Struct | null,
55
- count?: number,
56
- ) => StorageBufferNode;
83
+ export const storage: Storage;
@@ -39,7 +39,7 @@ export const storageTexture: (
39
39
  ) => StorageTextureNode;
40
40
 
41
41
  export const textureStore: (
42
- value: Texture,
42
+ value: Texture | StorageTextureNode,
43
43
  uvNode?: Node | null,
44
44
  storeNode?: Node,
45
45
  ) => StorageTextureNode;
@@ -1,8 +1,6 @@
1
- import AttributeNode from "../core/AttributeNode.js";
2
- import VaryingNode from "../core/VaryingNode.js";
3
- import MathNode from "../math/MathNode.js";
1
+ import Node from "../core/Node.js";
4
2
 
5
- export const tangentGeometry: AttributeNode;
6
- export const tangentLocal: VaryingNode;
7
- export const tangentView: MathNode;
8
- export const tangentWorld: MathNode;
3
+ export const tangentGeometry: Node<"vec4">;
4
+ export const tangentLocal: Node<"vec3">;
5
+ export const tangentView: Node<"vec3">;
6
+ export const tangentWorld: Node<"vec3">;
@@ -7,7 +7,7 @@ export default class Texture3DNode extends TextureNode {
7
7
 
8
8
  constructor(value: Texture, uvNode?: Node | null, levelNode?: Node | null);
9
9
 
10
- normal(uvNode: Node): Node;
10
+ normal(uvNode: Node): Node<"vec3">;
11
11
  }
12
12
 
13
13
  export const texture3D: (
@@ -15,3 +15,15 @@ export const texture3D: (
15
15
  uvNode?: Node | null,
16
16
  levelNode?: Node | number | null,
17
17
  ) => Texture3DNode;
18
+
19
+ export const texture3DLoad: (
20
+ value: Texture,
21
+ uvNode?: Node | null,
22
+ levelNode?: Node | number | null,
23
+ ) => Texture3DNode;
24
+
25
+ export const texture3DLevel: (
26
+ value: Texture,
27
+ uvNode?: Node | null,
28
+ levelNode?: Node | number | null,
29
+ ) => Texture3DNode;
@@ -1,5 +1,6 @@
1
1
  import Node from "../core/Node.js";
2
+ import TextureNode from "./TextureNode.js";
2
3
 
3
- export const textureBicubicLevel: (textureNode: Node, lodNode: Node) => Node;
4
+ export const textureBicubicLevel: (textureNode: Node, lodNode: Node) => TextureNode;
4
5
 
5
- export const textureBicubic: (textureNode: Node, strength: Node) => Node;
6
+ export const textureBicubic: (textureNode: Node, strength: Node) => TextureNode;
@@ -2,10 +2,10 @@ import { Texture } from "../../textures/Texture.js";
2
2
  import Node from "../core/Node.js";
3
3
  import UniformNode from "../core/UniformNode.js";
4
4
 
5
- export default class TextureNode extends UniformNode<Texture> {
5
+ interface TextureNodeInterface<TNodeType> {
6
6
  readonly isTextureNode: true;
7
7
 
8
- uvNode: Node | null;
8
+ uvNode: Node<"vec2"> | Node<"vec3"> | null;
9
9
  levelNode: Node | null;
10
10
  biasNode: Node | null;
11
11
  compareNode: Node | null;
@@ -17,27 +17,15 @@ export default class TextureNode extends UniformNode<Texture> {
17
17
 
18
18
  referenceNode: Node | null;
19
19
 
20
- constructor(
21
- value?: Texture,
22
- uvNode?: Node | null,
23
- levelNode?: Node | null,
24
- biasNode?: Node | null,
25
- );
26
-
27
20
  getDefaultUV(): Node;
28
21
 
29
22
  setSampler(value: boolean): this;
30
23
 
31
24
  getSampler(): boolean;
32
25
 
33
- /**
34
- * @deprecated
35
- */
36
- uv(uvNode: Node): Node;
37
-
38
- sample(uvNode: Node): Node;
26
+ sample(uvNode: Node): Node<TNodeType>;
39
27
 
40
- load(uvNode: Node): Node;
28
+ load(uvNode: Node): Node<TNodeType>;
41
29
 
42
30
  blur(amountNode: Node): Node;
43
31
 
@@ -51,13 +39,26 @@ export default class TextureNode extends UniformNode<Texture> {
51
39
 
52
40
  compare(compareNode: Node): Node;
53
41
 
54
- grad(gradeNodeX: Node, gradeNodeY: Node): Node;
42
+ grad(gradeNodeX: Node, gradeNodeY: Node): TextureNode;
55
43
 
56
- depth(depthNode: Node): Node;
44
+ depth(depthNode: Node): TextureNode;
57
45
 
58
46
  clone(): this;
59
47
  }
60
48
 
49
+ declare const TextureNode: {
50
+ new(
51
+ value?: Texture,
52
+ uvNode?: Node | null,
53
+ levelNode?: Node | null,
54
+ biasNode?: Node | null,
55
+ ): TextureNode;
56
+ };
57
+
58
+ type TextureNode<TNodeType = "vec4"> = TextureNodeInterface<TNodeType> & UniformNode<TNodeType, Texture>;
59
+
60
+ export default TextureNode;
61
+
61
62
  export const texture: (
62
63
  value?: Texture | TextureNode,
63
64
  uvNode?: Node | null,
@@ -1,3 +1,3 @@
1
1
  import AttributeNode from "../core/AttributeNode.js";
2
2
 
3
- export const uv: (index?: number) => AttributeNode;
3
+ export const uv: (index?: number) => AttributeNode<"vec2">;
@@ -2,24 +2,26 @@ import Node from "../core/Node.js";
2
2
  import ArrayElementNode from "../utils/ArrayElementNode.js";
3
3
  import BufferNode from "./BufferNode.js";
4
4
 
5
- declare class UniformArrayElementNode extends ArrayElementNode {
6
- constructor(arrayBuffer: Node, indexNode: Node);
7
- }
5
+ type UniformArrayElementNode<TNodeType> = ArrayElementNode<TNodeType>;
8
6
 
9
- declare class UniformArrayNode extends BufferNode<unknown[]> {
7
+ interface UniformArrayNodeInterface<TNodeType> {
10
8
  array: unknown[];
11
9
  elementType: string | null;
12
10
  paddedType: string;
13
11
 
14
12
  readonly isArrayBufferNode: true;
15
13
 
16
- constructor(value: unknown[], elementType?: string | null);
17
-
18
14
  getPaddedType(): string;
19
15
 
20
- element: (indexNode: Node) => UniformArrayElementNode;
16
+ element: (indexNode: Node | number) => UniformArrayElementNode<TNodeType>;
21
17
  }
22
18
 
19
+ declare const UniformArrayNode: {
20
+ new<TNodeType>(value: unknown[], elementType?: TNodeType | null): UniformArrayNode<TNodeType>;
21
+ };
22
+
23
+ type UniformArrayNode<TNodeType> = UniformArrayNodeInterface<TNodeType> & BufferNode<TNodeType, unknown[]>;
24
+
23
25
  export default UniformArrayNode;
24
26
 
25
- export const uniformArray: (values: unknown[], nodeType?: string | null) => UniformArrayNode;
27
+ export const uniformArray: <TNodeType>(values: unknown[], nodeType?: TNodeType | null) => UniformArrayNode<TNodeType>;
@@ -2,7 +2,7 @@ import ReferenceNode from "./ReferenceNode.js";
2
2
 
3
3
  export type NodeUserData = Record<string, any>;
4
4
 
5
- export default class UserDataNode extends ReferenceNode<NodeUserData> {
5
+ export default class UserDataNode extends ReferenceNode<unknown, NodeUserData> {
6
6
  userData: NodeUserData | null;
7
7
  constructor(property: string, inputType: string, userData?: NodeUserData | null);
8
8
  }
@@ -5,9 +5,9 @@ import UniformNode from "../core/UniformNode.js";
5
5
  declare class VelocityNode extends TempNode {
6
6
  projectionMatrix: Matrix4 | null;
7
7
 
8
- previousModelWorldMatrix: UniformNode<Matrix4>;
9
- previousProjectionMatrix: UniformNode<Matrix4>;
10
- previousCameraViewMatrix: UniformNode<Matrix4>;
8
+ previousModelWorldMatrix: UniformNode<"mat4", Matrix4>;
9
+ previousProjectionMatrix: UniformNode<"mat4", Matrix4>;
10
+ previousCameraViewMatrix: UniformNode<"mat4", Matrix4>;
11
11
 
12
12
  constructor();
13
13
 
@@ -1,6 +1,6 @@
1
1
  import AttributeNode from "../core/AttributeNode.js";
2
2
 
3
- export default class VertexColorNode extends AttributeNode {
3
+ export default class VertexColorNode extends AttributeNode<"vec4"> {
4
4
  readonly isVertexColorNode: true;
5
5
 
6
6
  index: number;
@@ -23,6 +23,5 @@ export const call: <P extends FunctionNodeArguments>(
23
23
  declare module "../Nodes.js" {
24
24
  interface FunctionNode<P extends FunctionNodeArguments> {
25
25
  call: (parameters?: ProxiedObject<P>) => FunctionCallNode<P>;
26
- callAssign: (parameters?: ProxiedObject<P>) => this;
27
26
  }
28
27
  }
@@ -14,23 +14,27 @@ export default class FunctionNode<P extends Array<Node | number> | { [name: stri
14
14
  getNodeFunction(builder: NodeBuilder): NodeFunction;
15
15
  }
16
16
 
17
+ // eslint-disable-next-line @definitelytyped/no-single-element-tuple-type
17
18
  type FnParameters<P extends FunctionNodeArguments> = P extends readonly [...unknown[]] ? ProxiedTuple<P>
19
+ // eslint-disable-next-line @definitelytyped/no-single-element-tuple-type
18
20
  : readonly [ProxiedObject<P>];
19
21
 
22
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
20
23
  export const nativeFn: <P extends FunctionNodeArguments>(
21
24
  code: string,
22
25
  includes?: CodeNodeInclude[],
23
26
  language?: string,
24
- // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
25
27
  ) => (...params: FnParameters<P>) => Node;
26
28
 
29
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
27
30
  export const glslFn: <P extends FunctionNodeArguments>(
28
31
  code: string,
29
32
  includes?: CodeNodeInclude[],
30
- // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
31
33
  ) => (...params: FnParameters<P>) => Node;
34
+ // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
32
35
  export const wgslFn: <P extends FunctionNodeArguments>(
33
36
  code: string,
34
37
  includes?: CodeNodeInclude[],
35
- // eslint-disable-next-line @definitelytyped/no-unnecessary-generics
36
38
  ) => (...params: FnParameters<P>) => Node;
39
+
40
+ export {};
@@ -18,9 +18,8 @@ interface ArrayFunction {
18
18
 
19
19
  export const array: ArrayFunction;
20
20
 
21
- declare module "../Nodes.js" {
22
- interface Node {
21
+ declare module "./Node.js" {
22
+ interface NodeElements {
23
23
  toArray: (count: number) => ArrayNode;
24
- toArrayAssign: (count: number) => this;
25
24
  }
26
25
  }
@@ -1,15 +1,21 @@
1
1
  import Node from "./Node.js";
2
2
  import NodeBuilder from "./NodeBuilder.js";
3
3
 
4
- export default class AttributeNode extends Node {
5
- constructor(attributeName: string, nodeType?: string | null);
6
-
4
+ interface AttributeNodeInterface {
7
5
  setAttributeName(attributeName: string): this;
8
6
 
9
7
  getAttributeName(builder: NodeBuilder): string;
10
8
  }
11
9
 
12
- export const attribute: (
10
+ declare const AttributeNode: {
11
+ new<TNodeType>(attributeName: string, TNodeType?: string | null): AttributeNode<TNodeType>;
12
+ };
13
+
14
+ type AttributeNode<TNodeType = unknown> = Node<TNodeType> & AttributeNodeInterface;
15
+
16
+ export default AttributeNode;
17
+
18
+ export const attribute: <TNodeType>(
13
19
  name: string,
14
- nodeType?: string | null,
15
- ) => AttributeNode;
20
+ nodeType?: TNodeType | null,
21
+ ) => AttributeNode<TNodeType>;
@@ -10,9 +10,8 @@ export default class BypassNode extends Node {
10
10
 
11
11
  export const bypass: (returnNode: Node, callNode: Node) => BypassNode;
12
12
 
13
- declare module "../Nodes.js" {
14
- interface Node {
13
+ declare module "./Node.js" {
14
+ interface NodeElements {
15
15
  bypass: (callNode: Node) => BypassNode;
16
- bypassAssign: (callNode: Node) => this;
17
16
  }
18
17
  }
@@ -1,9 +1,16 @@
1
1
  import InputNode from "./InputNode.js";
2
2
  import NodeBuilder from "./NodeBuilder.js";
3
3
 
4
- export default class ConstNode<Value> extends InputNode<Value> {
5
- isConstNode: true;
6
- constructor(value: Value, nodeType?: string | null);
4
+ interface ConstNodeInterface {
5
+ readonly isConstNode: true;
7
6
 
8
7
  generateConst(builder: NodeBuilder): string;
9
8
  }
9
+
10
+ declare const ConstNode: {
11
+ new<TNodeType, TValue>(value: TValue, nodeType?: TNodeType | null): ConstNode<TNodeType, TValue>;
12
+ };
13
+
14
+ type ConstNode<TNodeType, TValue> = InputNode<TNodeType, TValue> & ConstNodeInterface;
15
+
16
+ export default ConstNode;
@@ -1,46 +1,57 @@
1
+ import { Light } from "../../lights/Light.js";
1
2
  import Node from "./Node.js";
2
3
  import { NodeBuilderContext } from "./NodeBuilder.js";
3
4
 
4
- declare class ContextNode extends Node {
5
+ declare class ContextNodeInterface<TNodeType> extends Node {
5
6
  readonly isContextNode: true;
6
7
 
7
- node: Node;
8
+ node: Node<TNodeType> | null;
8
9
  value: NodeBuilderContext;
9
-
10
- constructor(node: Node, value?: NodeBuilderContext);
11
10
  }
12
11
 
12
+ declare const ContextNode: {
13
+ new<TNodeType>(node?: Node<TNodeType> | null, value?: NodeBuilderContext): ContextNode<TNodeType>;
14
+ };
15
+
16
+ type ContextNode<TNodeType> = ContextNodeInterface<TNodeType> & Node<TNodeType>;
17
+
13
18
  export default ContextNode;
14
19
 
15
- export const context: (node: Node, context?: NodeBuilderContext) => ContextNode;
20
+ interface ContextFunction {
21
+ (value?: NodeBuilderContext): ContextNode<unknown>;
22
+ <TNodeType>(node: Node<TNodeType>, value?: NodeBuilderContext): ContextNode<TNodeType>;
23
+ }
24
+
25
+ export const context: ContextFunction;
26
+
27
+ export const uniformFlow: <TNodeType>(node: Node<TNodeType>) => ContextNode<TNodeType>;
16
28
 
17
- export const uniformFlow: (node: Node) => ContextNode;
29
+ export const setName: <TNodeType>(node: Node<TNodeType>, label: string) => Node<TNodeType>;
18
30
 
19
- export const setName: (node: Node, label: string) => Node;
31
+ export function builtinShadowContext(shadowNode: Node, light: Light, node?: Node | null): ContextNode<unknown>;
32
+
33
+ export function builtinAOContext(aoNode: Node, node?: Node | null): ContextNode<unknown>;
20
34
 
21
35
  /**
22
36
  * @deprecated "label()" has been deprecated. Use "setName()" instead.
23
37
  */
24
- export function label(node: Node, label: string): Node;
38
+ export function label<TNodeType>(node: Node<TNodeType>, label: string): Node<TNodeType>;
25
39
 
26
- declare module "../Nodes.js" {
27
- interface Node {
28
- context: (context?: NodeBuilderContext) => ContextNode;
29
- contextAssign: (context?: NodeBuilderContext) => this;
40
+ declare module "./Node.js" {
41
+ interface NodeExtensions<TNodeType> {
42
+ context: (context?: NodeBuilderContext) => ContextNode<TNodeType>;
30
43
 
31
44
  /**
32
45
  * @deprecated "label()" has been deprecated. Use "setName()" instead.
33
46
  */
34
- label: (label: string) => Node;
35
- /**
36
- * @deprecated "label()" has been deprecated. Use "setName()" instead.
37
- */
38
- labelAssign: (label: string) => this;
47
+ label: (label: string) => Node<TNodeType>;
48
+
49
+ uniformFlow: () => ContextNode<TNodeType>;
50
+
51
+ setName: (label: string) => Node<TNodeType>;
39
52
 
40
- uniformFlow: () => ContextNode;
41
- uniformFlowAssign: () => this;
53
+ builtinShadowContext: (shadowNode: Node, light: Light) => ContextNode<TNodeType>;
42
54
 
43
- setName: (label: string) => Node;
44
- setNameAssign: (label: string) => this;
55
+ builtinAOContext: (aoValue: Node) => ContextNode<TNodeType>;
45
56
  }
46
57
  }
@@ -8,7 +8,7 @@ export type IndexNodeScope =
8
8
  | typeof IndexNode.INVOCATION_SUBGROUP
9
9
  | typeof IndexNode.DRAW;
10
10
 
11
- declare class IndexNode extends Node {
11
+ declare class IndexNode extends Node<"uint"> {
12
12
  scope: IndexNodeScope;
13
13
 
14
14
  readonly isInstanceNode: true;
@@ -3,13 +3,21 @@ import NodeBuilder from "./NodeBuilder.js";
3
3
 
4
4
  export type Precision = "low" | "medium" | "high";
5
5
 
6
- export default abstract class InputNode<Value> extends Node {
6
+ interface InputNodeInterface<TValue> {
7
7
  isInputNode: true;
8
- value: Value;
8
+ value: TValue;
9
9
  precision: Precision | null;
10
10
 
11
- constructor(value: Value, nodeType?: string | null);
12
-
13
11
  getInputType(builder: NodeBuilder): string | null;
14
12
  setPrecision(precision: Precision): this;
15
13
  }
14
+
15
+ declare const InputNode: {
16
+ new<TNodeType, TValue>(value: TValue, nodeType?: TNodeType | null): InputNode<TNodeType, TValue>;
17
+ };
18
+
19
+ type InputNode<TNodeType, TValue> = Node<TNodeType> & InputNodeInterface<TValue>;
20
+
21
+ export default InputNode;
22
+
23
+ export type { InputNode };
@@ -8,9 +8,8 @@ export default InspectorNode;
8
8
 
9
9
  export function inspector<T extends Node>(node: T, name?: string, callback?: (node: T) => Node): T;
10
10
 
11
- declare module "../Nodes.js" {
12
- interface Node {
11
+ declare module "./Node.js" {
12
+ interface NodeElements {
13
13
  toInspector: (name?: string, callback?: (node: this) => Node) => this;
14
- toInspectorAssign: (name?: string, callback?: (node: this) => Node) => this;
15
14
  }
16
15
  }
@@ -19,18 +19,13 @@ export const isolate: (node: Node) => IsolateNode;
19
19
  */
20
20
  export const cache: (node: Node, cache?: NodeCache) => IsolateNode;
21
21
 
22
- declare module "../Nodes.js" {
23
- interface Node {
22
+ declare module "./Node.js" {
23
+ interface NodeElements {
24
24
  /**
25
25
  * @deprecated "cache()" has been deprecated. Use "isolate()" instead.
26
26
  */
27
27
  cache: (cache?: NodeCache) => IsolateNode;
28
- /**
29
- * @deprecated "cache()" has been deprecated. Use "isolate()" instead.
30
- */
31
- cacheAssign: (cache?: NodeCache) => this;
32
28
 
33
29
  isolate: () => IsolateNode;
34
- isolateAssign: () => this;
35
30
  }
36
31
  }