@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
@@ -5,6 +5,7 @@ import { InterleavedBufferAttribute } from "../../core/InterleavedBufferAttribut
5
5
  import InputNode from "../core/InputNode.js";
6
6
  import Node from "../core/Node.js";
7
7
  import NodeBuilder from "../core/NodeBuilder.js";
8
+
8
9
  /**
9
10
  * In earlier `three.js` versions it was only possible to define attribute data
10
11
  * on geometry level. With `BufferAttributeNode`, it is also possible to do this
@@ -27,15 +28,7 @@ import NodeBuilder from "../core/NodeBuilder.js";
27
28
  * ```
28
29
  * @augments InputNode
29
30
  */
30
- declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuffer | BufferAttribute> {
31
- static get type(): string;
32
- readonly isBufferNode: true;
33
- bufferType: string | null;
34
- bufferStride: number;
35
- bufferOffset: number;
36
- usage: Usage;
37
- instanced: boolean;
38
- attribute: BufferAttribute | InterleavedBufferAttribute | null;
31
+ declare class BufferAttributeNodeClass extends InputNode<unknown, TypedArray | InterleavedBuffer | BufferAttribute> {
39
32
  /**
40
33
  * Constructs a new buffer attribute node.
41
34
  *
@@ -45,11 +38,62 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
45
38
  * @param {number} [bufferOffset=0] - The buffer offset.
46
39
  */
47
40
  constructor(
48
- value: TypedArray | InterleavedBuffer | BufferAttribute,
41
+ value: BufferAttribute | InterleavedBuffer | TypedArray,
49
42
  bufferType?: string | null,
50
43
  bufferStride?: number,
51
44
  bufferOffset?: number,
52
45
  );
46
+ /**
47
+ * This flag can be used for type testing.
48
+ *
49
+ * @type {boolean}
50
+ * @readonly
51
+ * @default true
52
+ */
53
+ readonly isBufferNode: boolean;
54
+ /**
55
+ * The buffer type (e.g. `'vec3'`).
56
+ *
57
+ * @type {?string}
58
+ * @default null
59
+ */
60
+ bufferType: string | null;
61
+ /**
62
+ * The buffer stride.
63
+ *
64
+ * @type {number}
65
+ * @default 0
66
+ */
67
+ bufferStride: number;
68
+ /**
69
+ * The buffer offset.
70
+ *
71
+ * @type {number}
72
+ * @default 0
73
+ */
74
+ bufferOffset: number;
75
+ /**
76
+ * The usage property. Set this to `THREE.DynamicDrawUsage` via `.setUsage()`,
77
+ * if you are planning to update the attribute data per frame.
78
+ *
79
+ * @type {number}
80
+ * @default StaticDrawUsage
81
+ */
82
+ usage: Usage;
83
+ /**
84
+ * Whether the attribute is instanced or not.
85
+ *
86
+ * @type {boolean}
87
+ * @default false
88
+ */
89
+ instanced: boolean;
90
+ /**
91
+ * A reference to the buffer attribute.
92
+ *
93
+ * @type {?BufferAttribute}
94
+ * @default null
95
+ */
96
+ attribute: BufferAttribute | InterleavedBufferAttribute | null;
53
97
  /**
54
98
  * This method is overwritten since the attribute data might be shared
55
99
  * and thus the hash should be shared as well.
@@ -65,7 +109,7 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
65
109
  * @param {NodeBuilder} builder - The current node builder.
66
110
  * @return {string} The node type.
67
111
  */
68
- getNodeType(builder: NodeBuilder): string | null;
112
+ getNodeType(builder: NodeBuilder): string;
69
113
  /**
70
114
  * Depending on which value was passed to the node, `setup()` behaves
71
115
  * differently. If no instance of `BufferAttribute` was passed, the method
@@ -73,14 +117,14 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
73
117
  *
74
118
  * @param {NodeBuilder} builder - The current node builder.
75
119
  */
76
- setup(builder: NodeBuilder): void;
120
+ setup(builder: NodeBuilder): undefined;
77
121
  /**
78
122
  * Generates the code snippet of the buffer attribute node.
79
123
  *
80
124
  * @param {NodeBuilder} builder - The current node builder.
81
125
  * @return {string} The generated code snippet.
82
126
  */
83
- generate(builder: NodeBuilder): string | null | undefined;
127
+ generate(builder: NodeBuilder): string;
84
128
  /**
85
129
  * Overwrites the default implementation to return a fixed value `'bufferAttribute'`.
86
130
  *
@@ -103,11 +147,33 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
103
147
  */
104
148
  setInstanced(value: boolean): this;
105
149
  }
150
+
151
+ declare const BufferAttributeNode: {
152
+ /**
153
+ * Constructs a new buffer attribute node.
154
+ *
155
+ * @param {BufferAttribute|InterleavedBuffer|TypedArray} value - The attribute data.
156
+ * @param {?string} [bufferType=null] - The buffer type (e.g. `'vec3'`).
157
+ * @param {number} [bufferStride=0] - The buffer stride.
158
+ * @param {number} [bufferOffset=0] - The buffer offset.
159
+ */
160
+ new<TNodeType>(
161
+ value: TypedArray | InterleavedBuffer | BufferAttribute,
162
+ bufferType?: string | null,
163
+ bufferStride?: number,
164
+ bufferOffset?: number,
165
+ ): BufferAttributeNode<TNodeType>;
166
+ };
167
+
168
+ type BufferAttributeNode<TNodeType> =
169
+ & InputNode<TNodeType, TypedArray | InterleavedBuffer | BufferAttribute>
170
+ & BufferAttributeNodeClass;
171
+
106
172
  export default BufferAttributeNode;
173
+
107
174
  /**
108
175
  * TSL function for creating a buffer attribute node.
109
176
  *
110
- * @tsl
111
177
  * @function
112
178
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
113
179
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
@@ -115,17 +181,17 @@ export default BufferAttributeNode;
115
181
  * @param {number} [offset=0] - The buffer offset.
116
182
  * @returns {BufferAttributeNode|Node}
117
183
  */
118
- export declare const bufferAttribute: (
184
+ export declare const bufferAttribute: <TNodeType>(
119
185
  array: BufferAttribute | InterleavedBuffer | TypedArray,
120
- type?: string | null,
186
+ type?: TNodeType | null,
121
187
  stride?: number,
122
188
  offset?: number,
123
- ) => Node;
189
+ ) => Node<TNodeType>;
190
+
124
191
  /**
125
192
  * TSL function for creating a buffer attribute node but with dynamic draw usage.
126
193
  * Use this function if attribute data are updated per frame.
127
194
  *
128
- * @tsl
129
195
  * @function
130
196
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
131
197
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
@@ -133,16 +199,16 @@ export declare const bufferAttribute: (
133
199
  * @param {number} [offset=0] - The buffer offset.
134
200
  * @returns {BufferAttributeNode|Node}
135
201
  */
136
- export declare const dynamicBufferAttribute: (
202
+ export declare const dynamicBufferAttribute: <TNodeType>(
137
203
  array: BufferAttribute | InterleavedBuffer | TypedArray,
138
- type?: string | null,
204
+ type?: TNodeType | null,
139
205
  stride?: number,
140
206
  offset?: number,
141
- ) => Node;
207
+ ) => Node<TNodeType>;
208
+
142
209
  /**
143
210
  * TSL function for creating a buffer attribute node but with enabled instancing
144
211
  *
145
- * @tsl
146
212
  * @function
147
213
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
148
214
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
@@ -150,16 +216,16 @@ export declare const dynamicBufferAttribute: (
150
216
  * @param {number} [offset=0] - The buffer offset.
151
217
  * @returns {BufferAttributeNode|Node}
152
218
  */
153
- export declare const instancedBufferAttribute: (
219
+ export declare const instancedBufferAttribute: <TNodeType>(
154
220
  array: BufferAttribute | InterleavedBuffer | TypedArray,
155
- type?: string | null,
221
+ type?: TNodeType | null,
156
222
  stride?: number,
157
223
  offset?: number,
158
- ) => Node;
224
+ ) => Node<TNodeType>;
225
+
159
226
  /**
160
227
  * TSL function for creating a buffer attribute node but with dynamic draw usage and enabled instancing
161
228
  *
162
- * @tsl
163
229
  * @function
164
230
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
165
231
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
@@ -167,15 +233,15 @@ export declare const instancedBufferAttribute: (
167
233
  * @param {number} [offset=0] - The buffer offset.
168
234
  * @returns {BufferAttributeNode|Node}
169
235
  */
170
- export declare const instancedDynamicBufferAttribute: (
236
+ export declare const instancedDynamicBufferAttribute: <TNodeType>(
171
237
  array: BufferAttribute | InterleavedBuffer | TypedArray,
172
- type?: string | null,
238
+ type?: TNodeType | null,
173
239
  stride?: number,
174
240
  offset?: number,
175
- ) => Node;
176
- declare module "../Nodes.js" {
177
- interface BufferNode<TValue> {
178
- toAttribute: () => BufferAttributeNode;
179
- toAttributeAssign: () => this;
241
+ ) => Node<TNodeType>;
242
+
243
+ declare module "./BufferNode.js" {
244
+ interface BufferNodeExtensions<TNodeType, TValue> {
245
+ toAttribute: () => BufferAttributeNode<TNodeType>;
180
246
  }
181
247
  }
@@ -1,17 +1,31 @@
1
1
  import UniformNode from "../core/UniformNode.js";
2
- import { NodeOrType } from "../tsl/TSLCore.js";
3
2
 
4
- export default class BufferNode<TValue> extends UniformNode<TValue> {
3
+ export interface BufferNodeInterface {
5
4
  isBufferNode: true;
6
5
 
7
6
  bufferType: string;
8
7
  bufferCount: number;
8
+ }
9
+
10
+ declare const BufferNode: {
11
+ new<TNodeType, TValue>(value: TValue, bufferType: TNodeType, bufferCount?: number): BufferNode<TNodeType, TValue>;
12
+ };
9
13
 
10
- constructor(value: TValue, bufferType: string, bufferCount?: number);
14
+ // eslint-disable-next-line @typescript-eslint/no-empty-interface
15
+ export interface BufferNodeExtensions<TNodeType, TValue> {
11
16
  }
12
17
 
13
- export const buffer: <TValue>(
14
- value: unknown,
15
- nodeOrType: NodeOrType,
18
+ type BufferNode<TNodeType, TValue> =
19
+ & UniformNode<TNodeType, TValue>
20
+ & BufferNodeInterface
21
+ & BufferNodeExtensions<TNodeType, TValue>;
22
+
23
+ export default BufferNode;
24
+
25
+ export const buffer: <TNodeType, TValue>(
26
+ value: TValue,
27
+ type: TNodeType,
16
28
  count: number,
17
- ) => BufferNode<TValue>;
29
+ ) => BufferNode<TNodeType, TValue>;
30
+
31
+ export {};
@@ -4,13 +4,13 @@ import { Vector3 } from "../../math/Vector3.js";
4
4
  import { Vector4 } from "../../math/Vector4.js";
5
5
  import UniformNode from "../core/UniformNode.js";
6
6
 
7
- export const cameraIndex: UniformNode<number>;
8
- export const cameraNear: UniformNode<number>;
9
- export const cameraFar: UniformNode<number>;
10
- export const cameraProjectionMatrix: UniformNode<Matrix4>;
11
- export const cameraProjectionMatrixInverse: UniformNode<Matrix4>;
12
- export const cameraViewMatrix: UniformNode<Matrix4>;
13
- export const cameraWorldMatrix: UniformNode<Matrix4>;
14
- export const cameraNormalMatrix: UniformNode<Matrix3>;
15
- export const cameraPosition: UniformNode<Vector3>;
16
- export const cameraViewport: UniformNode<Vector4>;
7
+ export const cameraIndex: UniformNode<"uint", number>;
8
+ export const cameraNear: UniformNode<"float", number>;
9
+ export const cameraFar: UniformNode<"float", number>;
10
+ export const cameraProjectionMatrix: UniformNode<"mat4", Matrix4>;
11
+ export const cameraProjectionMatrixInverse: UniformNode<"mat4", Matrix4>;
12
+ export const cameraViewMatrix: UniformNode<"mat4", Matrix4>;
13
+ export const cameraWorldMatrix: UniformNode<"mat4", Matrix4>;
14
+ export const cameraNormalMatrix: UniformNode<"mat3", Matrix3>;
15
+ export const cameraPosition: UniformNode<"vec3", Vector3>;
16
+ export const cameraViewport: UniformNode<"vec4", Vector4>;
@@ -4,7 +4,7 @@ import TextureNode from "./TextureNode.js";
4
4
 
5
5
  declare class CubeTextureNode extends TextureNode {
6
6
  isCubeTextureNode: boolean;
7
- uvNode: Node | null;
7
+ uvNode: Node<"vec3"> | null;
8
8
  levelNode: Node | null;
9
9
 
10
10
  constructor(
@@ -1,4 +1,5 @@
1
1
  import { InstancedBufferAttribute } from "../../core/InstancedBufferAttribute.js";
2
+ import { InstancedInterleavedBuffer } from "../../core/InstancedInterleavedBuffer.js";
2
3
  import StorageInstancedBufferAttribute from "../../renderers/common/StorageInstancedBufferAttribute.js";
3
4
  import Node from "../core/Node.js";
4
5
 
@@ -10,6 +11,11 @@ export default class InstanceNode extends Node {
10
11
  instanceMatrixNode: Node | null;
11
12
  instanceColorNode: Node | null;
12
13
 
14
+ buffer: InstancedInterleavedBuffer | null;
15
+ bufferColor: InstancedBufferAttribute | null;
16
+
17
+ previousInstancedMatrixNode: Node | null;
18
+
13
19
  constructor(
14
20
  count: number,
15
21
  instanceMatrix: InstancedBufferAttribute | StorageInstancedBufferAttribute,
@@ -1,14 +1,17 @@
1
1
  import { Light } from "../../lights/Light.js";
2
+ import { Matrix4 } from "../../math/Matrix4.js";
3
+ import { Vector3 } from "../../math/Vector3.js";
2
4
  import Node from "../core/Node.js";
5
+ import UniformNode from "../core/UniformNode.js";
3
6
 
4
- export function lightShadowMatrix(light: Light): Node;
7
+ export function lightShadowMatrix(light: Light): UniformNode<"mat4", Matrix4>;
5
8
 
6
- export function lightProjectionUV(light: Light, position?: Node): Node;
9
+ export function lightProjectionUV(light: Light, position?: Node): Node<"vec3">;
7
10
 
8
- export function lightPosition(light: Light): Node;
11
+ export function lightPosition(light: Light): UniformNode<"vec3", Vector3>;
9
12
 
10
- export function lightTargetPosition(light: Light): Node;
13
+ export function lightTargetPosition(light: Light): UniformNode<"vec3", Vector3>;
11
14
 
12
- export function lightViewPosition(light: Light): Node;
15
+ export function lightViewPosition(light: Light): UniformNode<"vec3", Vector3>;
13
16
 
14
- export const lightTargetDirection: (light: Light) => Node;
17
+ export const lightTargetDirection: (light: Light) => Node<"vec3">;
@@ -1,6 +1,4 @@
1
- import { Vector2 } from "../../math/Vector2.js";
2
1
  import Node from "../core/Node.js";
3
- import UniformNode from "../core/UniformNode.js";
4
2
 
5
3
  export type MaterialNodeScope =
6
4
  | typeof MaterialNode.ALPHA_TEST
@@ -125,4 +123,4 @@ export const materialPointSize: MaterialNode;
125
123
  export const materialDispersion: MaterialNode;
126
124
  export const materialLightMap: MaterialNode;
127
125
  export const materialAO: MaterialNode;
128
- export const materialAnisotropyVector: UniformNode<Vector2>;
126
+ export const materialAnisotropyVector: MaterialNode;
@@ -1,8 +1,8 @@
1
- import { Matrix4 } from "../../math/Matrix4.js";
1
+ import Node from "../core/Node.js";
2
2
  import UniformNode from "../core/UniformNode.js";
3
3
 
4
- export const materialRefractionRatio: UniformNode<number>;
4
+ export const materialRefractionRatio: UniformNode<"float", number>;
5
5
 
6
- export const materialEnvIntensity: UniformNode<number>;
6
+ export const materialEnvIntensity: Node<"float">;
7
7
 
8
- export const materialEnvRotation: UniformNode<Matrix4>;
8
+ export const materialEnvRotation: Node<"mat4">;
@@ -2,7 +2,7 @@ import { Material } from "../../materials/Material.js";
2
2
  import { NodeOrType } from "../tsl/TSLCore.js";
3
3
  import ReferenceNode from "./ReferenceNode.js";
4
4
 
5
- export default class MaterialReferenceNode extends ReferenceNode<Material | null> {
5
+ export default class MaterialReferenceNode extends ReferenceNode<unknown, Material | null> {
6
6
  readonly isMaterialReferenceNode: true;
7
7
 
8
8
  constructor(property: string, inputType: string, material?: Material | null);
@@ -1,3 +1,4 @@
1
+ import { Matrix3 } from "../../math/Matrix3.js";
1
2
  import { Matrix4 } from "../../math/Matrix4.js";
2
3
  import Node from "../core/Node.js";
3
4
  import { UniformNode } from "../Nodes.js";
@@ -6,27 +7,43 @@ import Object3DNode from "./Object3DNode.js";
6
7
  /**
7
8
  * Similar to {@link Object3DNode} but the object comes from {@link NodeFrame}
8
9
  */
9
- export default class ModelNode extends Object3DNode {
10
- constructor(scope: string);
11
- }
12
-
13
- export const modelDirection: ModelNode;
14
- export const modelWorldMatrix: ModelNode;
15
- export const modelPosition: ModelNode;
16
- export const modelScale: ModelNode;
17
- export const modelViewPosition: ModelNode;
18
- export const modelRadius: ModelNode;
19
- export const modelNormalMatrix: Node;
20
- export const modelWorldMatrixInverse: UniformNode<Matrix4>;
21
-
22
- export const modelViewMatrix: ModelNode;
10
+ declare const ModelNode: {
11
+ new(scope: typeof ModelNode.WORLD_MATRIX): ModelNode<"mat4">;
12
+ new(scope: typeof ModelNode.POSITION): ModelNode<"vec3">;
13
+ new(scope: typeof ModelNode.SCALE): ModelNode<"vec3">;
14
+ new(scope: typeof ModelNode.VIEW_POSITION): ModelNode<"vec3">;
15
+ new(scope: typeof ModelNode.DIRECTION): ModelNode<"vec3">;
16
+ new(scope: typeof ModelNode.RADIUS): ModelNode<"float">;
17
+
18
+ WORLD_MATRIX: "worldMatrix";
19
+ POSITION: "position";
20
+ SCALE: "scale";
21
+ VIEW_POSITION: "viewPosition";
22
+ DIRECTION: "direction";
23
+ RADIUS: "radius";
24
+ };
25
+
26
+ type ModelNode<TNodeType> = Object3DNode<TNodeType>;
27
+
28
+ export default Object3DNode;
29
+
30
+ export const modelDirection: ModelNode<"vec3">;
31
+ export const modelWorldMatrix: ModelNode<"mat4">;
32
+ export const modelPosition: ModelNode<"vec3">;
33
+ export const modelScale: ModelNode<"vec3">;
34
+ export const modelViewPosition: ModelNode<"vec3">;
35
+ export const modelRadius: ModelNode<"float">;
36
+ export const modelNormalMatrix: UniformNode<"mat3", Matrix3>;
37
+ export const modelWorldMatrixInverse: UniformNode<"mat4", Matrix4>;
38
+
39
+ export const modelViewMatrix: Node<"mat4">;
23
40
 
24
41
  // GPU Precision
25
42
 
26
- export const mediumpModelViewMatrix: Node;
43
+ export const mediumpModelViewMatrix: Node<"mat4">;
27
44
 
28
45
  // CPU Precision
29
46
 
30
- export const highpModelViewMatrix: Node;
47
+ export const highpModelViewMatrix: Node<"mat4">;
31
48
 
32
- export const highpModelNormalViewMatrix: Node;
49
+ export const highpModelNormalViewMatrix: Node<"mat3">;
@@ -4,7 +4,7 @@ import UniformNode from "../core/UniformNode.js";
4
4
 
5
5
  declare class MorphNode extends Node {
6
6
  mesh: Mesh;
7
- morphBaseInfluence: UniformNode<number>;
7
+ morphBaseInfluence: UniformNode<"float", number>;
8
8
 
9
9
  constructor(mesh: Mesh);
10
10
  }
@@ -1,38 +1,36 @@
1
- import AttributeNode from "../core/AttributeNode.js";
2
1
  import Node from "../core/Node.js";
3
- import VarNode from "../core/VarNode.js";
4
2
 
5
- export const normalGeometry: AttributeNode;
3
+ export const normalGeometry: Node<"vec3">;
6
4
 
7
- export const normalLocal: VarNode;
5
+ export const normalLocal: Node<"vec3">;
8
6
 
9
- export const normalFlat: VarNode;
7
+ export const normalFlat: Node<"vec3">;
10
8
 
11
- export const normalViewGeometry: VarNode;
9
+ export const normalViewGeometry: Node<"vec3">;
12
10
 
13
- export const normalWorldGeometry: VarNode;
11
+ export const normalWorldGeometry: Node<"vec3">;
14
12
 
15
- export const normalView: VarNode;
13
+ export const normalView: Node<"vec3">;
16
14
 
17
- export const normalWorld: VarNode;
15
+ export const normalWorld: Node<"vec3">;
18
16
 
19
- export const clearcoatNormalView: VarNode;
17
+ export const clearcoatNormalView: Node<"vec3">;
20
18
 
21
- export const transformNormal: (normal: Node, matrix?: Node) => Node;
19
+ export const transformNormal: (normal: Node, matrix?: Node) => Node<"vec3">;
22
20
 
23
- export const transformNormalToView: (normal: Node) => Node;
21
+ export const transformNormalToView: (normal: Node) => Node<"vec3">;
24
22
 
25
23
  /**
26
24
  * @deprecated since r178. Use `normalView` instead.
27
25
  */
28
- export const transformedNormalView: VarNode;
26
+ export const transformedNormalView: Node<"vec3">;
29
27
 
30
28
  /**
31
29
  * @deprecated since r178. Use `normalWorld` instead.
32
30
  */
33
- export const transformedNormalWorld: VarNode;
31
+ export const transformedNormalWorld: Node<"vec3">;
34
32
 
35
33
  /**
36
34
  * @deprecated since r178. Use `clearcoatNormalView` instead.
37
35
  */
38
- export const transformedClearcoatNormalView: VarNode;
36
+ export const transformedClearcoatNormalView: Node<"vec3">;
@@ -1,23 +1,42 @@
1
1
  import { Object3D } from "../../core/Object3D.js";
2
2
  import Node from "../core/Node.js";
3
3
 
4
- export default class Object3DNode extends Node {
5
- scope: string;
4
+ export type Object3DNodeScope =
5
+ | typeof Object3DNode.WORLD_MATRIX
6
+ | typeof Object3DNode.POSITION
7
+ | typeof Object3DNode.SCALE
8
+ | typeof Object3DNode.VIEW_POSITION
9
+ | typeof Object3DNode.DIRECTION
10
+ | typeof Object3DNode.RADIUS;
11
+
12
+ interface Object3DNodeInterface {
13
+ scope: Object3DNodeScope;
6
14
  object3d: Object3D | null;
15
+ }
7
16
 
8
- constructor(scope: string, object3d?: Object3D | null);
17
+ declare const Object3DNode: {
18
+ new(scope: typeof Object3DNode.WORLD_MATRIX, object3d?: Object3D | null): Object3DNode<"mat4">;
19
+ new(scope: typeof Object3DNode.POSITION, object3d?: Object3D | null): Object3DNode<"vec3">;
20
+ new(scope: typeof Object3DNode.SCALE, object3d?: Object3D | null): Object3DNode<"vec3">;
21
+ new(scope: typeof Object3DNode.VIEW_POSITION, object3d?: Object3D | null): Object3DNode<"vec3">;
22
+ new(scope: typeof Object3DNode.DIRECTION, object3d?: Object3D | null): Object3DNode<"vec3">;
23
+ new(scope: typeof Object3DNode.RADIUS, object3d?: Object3D | null): Object3DNode<"float">;
9
24
 
10
- static WORLD_MATRIX: "worldMatrix";
11
- static POSITION: "position";
12
- static SCALE: "scale";
13
- static VIEW_POSITION: "viewPosition";
14
- static DIRECTION: "direction";
15
- static RADIUS: "radius";
16
- }
25
+ WORLD_MATRIX: "worldMatrix";
26
+ POSITION: "position";
27
+ SCALE: "scale";
28
+ VIEW_POSITION: "viewPosition";
29
+ DIRECTION: "direction";
30
+ RADIUS: "radius";
31
+ };
32
+
33
+ type Object3DNode<TNodeType> = Node<TNodeType> & Object3DNodeInterface;
34
+
35
+ export default Object3DNode;
17
36
 
18
- export const objectDirection: (object3d: Object3D | null) => Object3DNode;
19
- export const objectWorldMatrix: (object3d: Object3D | null) => Object3DNode;
20
- export const objectPosition: (object3d: Object3D | null) => Object3DNode;
21
- export const objectScale: (object3d: Object3D | null) => Object3DNode;
22
- export const objectViewPosition: (object3d: Object3D | null) => Object3DNode;
23
- export const objectRadius: (object3d: Object3D | null) => Object3DNode;
37
+ export const objectDirection: (object3d: Object3D | null) => Object3DNode<"vec3">;
38
+ export const objectWorldMatrix: (object3d: Object3D | null) => Object3DNode<"mat4">;
39
+ export const objectPosition: (object3d: Object3D | null) => Object3DNode<"vec3">;
40
+ export const objectScale: (object3d: Object3D | null) => Object3DNode<"vec3">;
41
+ export const objectViewPosition: (object3d: Object3D | null) => Object3DNode<"vec3">;
42
+ export const objectRadius: (object3d: Object3D | null) => Object3DNode<"float">;
@@ -1,9 +1,11 @@
1
+ import AttributeNode from "../core/AttributeNode.js";
1
2
  import Node from "../core/Node.js";
2
3
 
3
- export const positionGeometry: Node;
4
- export const positionLocal: Node;
5
- export const positionPrevious: Node;
6
- export const positionWorld: Node;
7
- export const positionWorldDirection: Node;
8
- export const positionView: Node;
9
- export const positionViewDirection: Node;
4
+ export const clipSpace: Node<"vec4">;
5
+ export const positionGeometry: AttributeNode<"vec3">;
6
+ export const positionLocal: AttributeNode<"vec3">;
7
+ export const positionPrevious: AttributeNode<"vec3">;
8
+ export const positionWorld: Node<"vec3">;
9
+ export const positionWorldDirection: Node<"vec3">;
10
+ export const positionView: Node<"vec3">;
11
+ export const positionViewDirection: Node<"vec3">;
@@ -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">;