@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
@@ -3,7 +3,9 @@ import { BufferAttribute, TypedArray } from "../../core/BufferAttribute.js";
3
3
  import { InterleavedBuffer } from "../../core/InterleavedBuffer.js";
4
4
  import { InterleavedBufferAttribute } from "../../core/InterleavedBufferAttribute.js";
5
5
  import InputNode from "../core/InputNode.js";
6
+ import Node from "../core/Node.js";
6
7
  import NodeBuilder from "../core/NodeBuilder.js";
8
+
7
9
  /**
8
10
  * In earlier `three.js` versions it was only possible to define attribute data
9
11
  * on geometry level. With `BufferAttributeNode`, it is also possible to do this
@@ -26,15 +28,7 @@ import NodeBuilder from "../core/NodeBuilder.js";
26
28
  * ```
27
29
  * @augments InputNode
28
30
  */
29
- declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuffer | BufferAttribute> {
30
- static get type(): string;
31
- readonly isBufferNode: true;
32
- bufferType: string | null;
33
- bufferStride: number;
34
- bufferOffset: number;
35
- usage: Usage;
36
- instanced: boolean;
37
- attribute: BufferAttribute | InterleavedBufferAttribute | null;
31
+ declare class BufferAttributeNodeClass extends InputNode<unknown, TypedArray | InterleavedBuffer | BufferAttribute> {
38
32
  /**
39
33
  * Constructs a new buffer attribute node.
40
34
  *
@@ -44,11 +38,62 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
44
38
  * @param {number} [bufferOffset=0] - The buffer offset.
45
39
  */
46
40
  constructor(
47
- value: TypedArray | InterleavedBuffer | BufferAttribute,
41
+ value: BufferAttribute | InterleavedBuffer | TypedArray,
48
42
  bufferType?: string | null,
49
43
  bufferStride?: number,
50
44
  bufferOffset?: number,
51
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;
52
97
  /**
53
98
  * This method is overwritten since the attribute data might be shared
54
99
  * and thus the hash should be shared as well.
@@ -64,7 +109,7 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
64
109
  * @param {NodeBuilder} builder - The current node builder.
65
110
  * @return {string} The node type.
66
111
  */
67
- getNodeType(builder: NodeBuilder): string | null;
112
+ getNodeType(builder: NodeBuilder): string;
68
113
  /**
69
114
  * Depending on which value was passed to the node, `setup()` behaves
70
115
  * differently. If no instance of `BufferAttribute` was passed, the method
@@ -72,14 +117,14 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
72
117
  *
73
118
  * @param {NodeBuilder} builder - The current node builder.
74
119
  */
75
- setup(builder: NodeBuilder): void;
120
+ setup(builder: NodeBuilder): undefined;
76
121
  /**
77
122
  * Generates the code snippet of the buffer attribute node.
78
123
  *
79
124
  * @param {NodeBuilder} builder - The current node builder.
80
125
  * @return {string} The generated code snippet.
81
126
  */
82
- generate(builder: NodeBuilder): string | null | undefined;
127
+ generate(builder: NodeBuilder): string;
83
128
  /**
84
129
  * Overwrites the default implementation to return a fixed value `'bufferAttribute'`.
85
130
  *
@@ -102,79 +147,101 @@ declare class BufferAttributeNode extends InputNode<TypedArray | InterleavedBuff
102
147
  */
103
148
  setInstanced(value: boolean): this;
104
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
+
105
172
  export default BufferAttributeNode;
173
+
106
174
  /**
107
175
  * TSL function for creating a buffer attribute node.
108
176
  *
109
- * @tsl
110
177
  * @function
111
178
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
112
179
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
113
180
  * @param {number} [stride=0] - The buffer stride.
114
181
  * @param {number} [offset=0] - The buffer offset.
115
- * @returns {BufferAttributeNode}
182
+ * @returns {BufferAttributeNode|Node}
116
183
  */
117
- export declare const bufferAttribute: (
118
- array: TypedArray | InterleavedBuffer | BufferAttribute,
119
- type?: string | null,
184
+ export declare const bufferAttribute: <TNodeType>(
185
+ array: BufferAttribute | InterleavedBuffer | TypedArray,
186
+ type?: TNodeType | null,
120
187
  stride?: number,
121
188
  offset?: number,
122
- ) => BufferAttributeNode;
189
+ ) => Node<TNodeType>;
190
+
123
191
  /**
124
192
  * TSL function for creating a buffer attribute node but with dynamic draw usage.
125
193
  * Use this function if attribute data are updated per frame.
126
194
  *
127
- * @tsl
128
195
  * @function
129
196
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
130
197
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
131
198
  * @param {number} [stride=0] - The buffer stride.
132
199
  * @param {number} [offset=0] - The buffer offset.
133
- * @returns {BufferAttributeNode}
200
+ * @returns {BufferAttributeNode|Node}
134
201
  */
135
- export declare const dynamicBufferAttribute: (
136
- array: TypedArray | InterleavedBuffer | BufferAttribute,
137
- type?: string | null,
202
+ export declare const dynamicBufferAttribute: <TNodeType>(
203
+ array: BufferAttribute | InterleavedBuffer | TypedArray,
204
+ type?: TNodeType | null,
138
205
  stride?: number,
139
206
  offset?: number,
140
- ) => BufferAttributeNode;
207
+ ) => Node<TNodeType>;
208
+
141
209
  /**
142
210
  * TSL function for creating a buffer attribute node but with enabled instancing
143
211
  *
144
- * @tsl
145
212
  * @function
146
213
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
147
214
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
148
215
  * @param {number} [stride=0] - The buffer stride.
149
216
  * @param {number} [offset=0] - The buffer offset.
150
- * @returns {BufferAttributeNode}
217
+ * @returns {BufferAttributeNode|Node}
151
218
  */
152
- export declare const instancedBufferAttribute: (
153
- array: TypedArray | InterleavedBuffer | BufferAttribute,
154
- type?: string | null,
219
+ export declare const instancedBufferAttribute: <TNodeType>(
220
+ array: BufferAttribute | InterleavedBuffer | TypedArray,
221
+ type?: TNodeType | null,
155
222
  stride?: number,
156
223
  offset?: number,
157
- ) => BufferAttributeNode;
224
+ ) => Node<TNodeType>;
225
+
158
226
  /**
159
227
  * TSL function for creating a buffer attribute node but with dynamic draw usage and enabled instancing
160
228
  *
161
- * @tsl
162
229
  * @function
163
230
  * @param {BufferAttribute|InterleavedBuffer|TypedArray} array - The attribute data.
164
231
  * @param {?string} [type=null] - The buffer type (e.g. `'vec3'`).
165
232
  * @param {number} [stride=0] - The buffer stride.
166
233
  * @param {number} [offset=0] - The buffer offset.
167
- * @returns {BufferAttributeNode}
234
+ * @returns {BufferAttributeNode|Node}
168
235
  */
169
- export declare const instancedDynamicBufferAttribute: (
170
- array: TypedArray | InterleavedBuffer | BufferAttribute,
171
- type?: string | null,
236
+ export declare const instancedDynamicBufferAttribute: <TNodeType>(
237
+ array: BufferAttribute | InterleavedBuffer | TypedArray,
238
+ type?: TNodeType | null,
172
239
  stride?: number,
173
240
  offset?: number,
174
- ) => BufferAttributeNode;
175
- declare module "../Nodes.js" {
176
- interface BufferNode<TValue> {
177
- toAttribute: () => BufferAttributeNode;
178
- toAttributeAssign: () => this;
241
+ ) => Node<TNodeType>;
242
+
243
+ declare module "./BufferNode.js" {
244
+ interface BufferNodeExtensions<TNodeType, TValue> {
245
+ toAttribute: () => BufferAttributeNode<TNodeType>;
179
246
  }
180
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,23 +1,30 @@
1
1
  import { InstancedBufferAttribute } from "../../core/InstancedBufferAttribute.js";
2
+ import { InstancedInterleavedBuffer } from "../../core/InstancedInterleavedBuffer.js";
3
+ import StorageInstancedBufferAttribute from "../../renderers/common/StorageInstancedBufferAttribute.js";
2
4
  import Node from "../core/Node.js";
3
5
 
4
6
  export default class InstanceNode extends Node {
5
7
  count: number;
6
- instanceMatrix: InstancedBufferAttribute;
7
- instanceColor: InstancedBufferAttribute | null;
8
+ instanceMatrix: InstancedBufferAttribute | StorageInstancedBufferAttribute;
9
+ instanceColor: InstancedBufferAttribute | StorageInstancedBufferAttribute | null;
8
10
 
9
11
  instanceMatrixNode: Node | null;
10
12
  instanceColorNode: Node | null;
11
13
 
14
+ buffer: InstancedInterleavedBuffer | null;
15
+ bufferColor: InstancedBufferAttribute | null;
16
+
17
+ previousInstancedMatrixNode: Node | null;
18
+
12
19
  constructor(
13
20
  count: number,
14
- instanceMatrix: InstancedBufferAttribute,
15
- instanceColor?: InstancedBufferAttribute | null,
21
+ instanceMatrix: InstancedBufferAttribute | StorageInstancedBufferAttribute,
22
+ instanceColor?: InstancedBufferAttribute | StorageInstancedBufferAttribute | null,
16
23
  );
17
24
  }
18
25
 
19
26
  export const instance: (
20
27
  count: number,
21
- instanceMatrix: InstancedBufferAttribute,
22
- instanceColor?: InstancedBufferAttribute | null,
28
+ instanceMatrix: InstancedBufferAttribute | StorageInstancedBufferAttribute,
29
+ instanceColor?: InstancedBufferAttribute | StorageInstancedBufferAttribute | null,
23
30
  ) => InstanceNode;
@@ -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">;