@types/three 0.180.0 → 0.181.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 (269) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/geometries/TextGeometry.d.ts +2 -0
  3. three/examples/jsm/gpgpu/BitonicSort.d.ts +21 -0
  4. three/examples/jsm/inspector/Inspector.d.ts +10 -0
  5. three/examples/jsm/inspector/RendererInspector.d.ts +4 -0
  6. three/examples/jsm/inspector/tabs/Parameters.d.ts +95 -0
  7. three/examples/jsm/inspector/ui/Tab.d.ts +3 -0
  8. three/examples/jsm/inspector/ui/Values.d.ts +80 -0
  9. three/examples/jsm/interactive/SelectionBox.d.ts +9 -9
  10. three/examples/jsm/lighting/TiledLighting.d.ts +1 -2
  11. three/examples/jsm/loaders/FontLoader.d.ts +1 -1
  12. three/examples/jsm/loaders/KTX2Loader.d.ts +3 -0
  13. three/examples/jsm/objects/SkyMesh.d.ts +6 -7
  14. three/examples/jsm/objects/WaterMesh.d.ts +2 -2
  15. three/examples/jsm/renderers/CSS2DRenderer.d.ts +15 -10
  16. three/examples/jsm/tsl/display/AfterImageNode.d.ts +4 -5
  17. three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +1 -2
  18. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -2
  19. three/examples/jsm/tsl/display/BleachBypass.d.ts +1 -2
  20. three/examples/jsm/tsl/display/BloomNode.d.ts +2 -3
  21. three/examples/jsm/tsl/display/ChromaticAberrationNode.d.ts +1 -2
  22. three/examples/jsm/tsl/display/DenoiseNode.d.ts +1 -2
  23. three/examples/jsm/tsl/display/DepthOfFieldNode.d.ts +1 -2
  24. three/examples/jsm/tsl/display/DotScreenNode.d.ts +1 -2
  25. three/examples/jsm/tsl/display/FXAANode.d.ts +1 -2
  26. three/examples/jsm/tsl/display/FilmNode.d.ts +1 -2
  27. three/examples/jsm/tsl/display/GTAONode.d.ts +11 -10
  28. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +2 -3
  29. three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -7
  30. three/examples/jsm/tsl/display/Lut3DNode.d.ts +2 -3
  31. three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -2
  32. three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -7
  33. three/examples/jsm/tsl/display/ParallaxBarrierPassNode.d.ts +1 -2
  34. three/examples/jsm/tsl/display/PixelationPassNode.d.ts +1 -2
  35. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +1 -2
  36. three/examples/jsm/tsl/display/SMAANode.d.ts +1 -2
  37. three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -2
  38. three/examples/jsm/tsl/display/SSGINode.d.ts +30 -0
  39. three/examples/jsm/tsl/display/SSRNode.d.ts +12 -13
  40. three/examples/jsm/tsl/display/SSSNode.d.ts +18 -0
  41. three/examples/jsm/tsl/display/Sepia.d.ts +1 -2
  42. three/examples/jsm/tsl/display/SobelOperatorNode.d.ts +1 -2
  43. three/examples/jsm/tsl/display/StereoPassNode.d.ts +1 -2
  44. three/examples/jsm/tsl/display/TRAANode.d.ts +1 -2
  45. three/examples/jsm/tsl/display/TransitionNode.d.ts +1 -2
  46. three/examples/jsm/tsl/display/boxBlur.d.ts +1 -2
  47. three/examples/jsm/tsl/display/hashBlur.d.ts +1 -2
  48. three/examples/jsm/tsl/lighting/TiledLightsNode.d.ts +3 -4
  49. three/examples/jsm/tsl/math/Bayer.d.ts +1 -2
  50. three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -3
  51. three/package.json +2 -2
  52. three/src/Three.Core.d.ts +1 -1
  53. three/src/Three.TSL.d.ts +7 -1
  54. three/src/Three.WebGPU.Nodes.d.ts +2 -0
  55. three/src/Three.WebGPU.d.ts +2 -0
  56. three/src/animation/AnimationMixer.d.ts +3 -3
  57. three/src/lights/DirectionalLight.d.ts +0 -1
  58. three/src/loaders/ObjectLoader.d.ts +3 -3
  59. three/src/loaders/TextureLoader.d.ts +3 -3
  60. three/src/materials/Material.d.ts +2 -2
  61. three/src/materials/MeshLambertMaterial.d.ts +1 -1
  62. three/src/materials/MeshMatcapMaterial.d.ts +14 -0
  63. three/src/materials/MeshPhongMaterial.d.ts +1 -1
  64. three/src/materials/MeshPhysicalMaterial.d.ts +1 -1
  65. three/src/materials/MeshStandardMaterial.d.ts +7 -7
  66. three/src/materials/PointsMaterial.d.ts +1 -1
  67. three/src/materials/ShaderMaterial.d.ts +8 -8
  68. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +1 -1
  69. three/src/materials/nodes/NodeMaterial.d.ts +2 -3
  70. three/src/materials/nodes/VolumeNodeMaterial.d.ts +1 -2
  71. three/src/math/Vector3.d.ts +2 -2
  72. three/src/nodes/Nodes.d.ts +1 -1
  73. three/src/nodes/TSL.d.ts +1 -1
  74. three/src/nodes/accessors/AccessorsUtils.d.ts +4 -5
  75. three/src/nodes/accessors/Arrays.d.ts +2 -3
  76. three/src/nodes/accessors/BatchNode.d.ts +1 -2
  77. three/src/nodes/accessors/Bitangent.d.ts +4 -5
  78. three/src/nodes/accessors/BufferAttributeNode.d.ts +8 -9
  79. three/src/nodes/accessors/BufferNode.d.ts +2 -2
  80. three/src/nodes/accessors/BuiltinNode.d.ts +1 -2
  81. three/src/nodes/accessors/Camera.d.ts +10 -11
  82. three/src/nodes/accessors/ClippingNode.d.ts +3 -6
  83. three/src/nodes/accessors/CubeTextureNode.d.ts +8 -9
  84. three/src/nodes/accessors/InstanceNode.d.ts +1 -2
  85. three/src/nodes/accessors/InstancedMeshNode.d.ts +1 -2
  86. three/src/nodes/accessors/Lights.d.ts +6 -7
  87. three/src/nodes/accessors/MaterialNode.d.ts +38 -39
  88. three/src/nodes/accessors/MaterialProperties.d.ts +3 -4
  89. three/src/nodes/accessors/MaterialReferenceNode.d.ts +2 -2
  90. three/src/nodes/accessors/ModelNode.d.ts +12 -13
  91. three/src/nodes/accessors/ModelViewProjectionNode.d.ts +1 -2
  92. three/src/nodes/accessors/MorphNode.d.ts +1 -2
  93. three/src/nodes/accessors/Normal.d.ts +13 -14
  94. three/src/nodes/accessors/Object3DNode.d.ts +6 -7
  95. three/src/nodes/accessors/PointUVNode.d.ts +1 -2
  96. three/src/nodes/accessors/Position.d.ts +7 -8
  97. three/src/nodes/accessors/ReferenceBaseNode.d.ts +2 -3
  98. three/src/nodes/accessors/ReferenceNode.d.ts +2 -3
  99. three/src/nodes/accessors/ReflectVector.d.ts +4 -5
  100. three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -2
  101. three/src/nodes/accessors/SceneNode.d.ts +3 -4
  102. three/src/nodes/accessors/SkinningNode.d.ts +5 -6
  103. three/src/nodes/accessors/StorageBufferNode.d.ts +5 -5
  104. three/src/nodes/accessors/StorageTextureNode.d.ts +7 -4
  105. three/src/nodes/accessors/Tangent.d.ts +4 -6
  106. three/src/nodes/accessors/TangentUtils.d.ts +2 -3
  107. three/src/nodes/accessors/Texture3DNode.d.ts +3 -4
  108. three/src/nodes/accessors/TextureBicubic.d.ts +2 -3
  109. three/src/nodes/accessors/TextureNode.d.ts +29 -24
  110. three/src/nodes/accessors/TextureSizeNode.d.ts +1 -2
  111. three/src/nodes/accessors/UV.d.ts +1 -2
  112. three/src/nodes/accessors/UniformArrayNode.d.ts +2 -3
  113. three/src/nodes/accessors/UserDataNode.d.ts +1 -2
  114. three/src/nodes/accessors/VelocityNode.d.ts +1 -2
  115. three/src/nodes/accessors/VertexColorNode.d.ts +1 -2
  116. three/src/nodes/code/CodeNode.d.ts +4 -5
  117. three/src/nodes/code/ExpressionNode.d.ts +1 -2
  118. three/src/nodes/code/FunctionCallNode.d.ts +6 -5
  119. three/src/nodes/code/FunctionNode.d.ts +4 -6
  120. three/src/nodes/code/ScriptableNode.d.ts +1 -2
  121. three/src/nodes/code/ScriptableValueNode.d.ts +1 -2
  122. three/src/nodes/core/ArrayNode.d.ts +6 -6
  123. three/src/nodes/core/AssignNode.d.ts +1 -8
  124. three/src/nodes/core/AttributeNode.d.ts +1 -2
  125. three/src/nodes/core/BypassNode.d.ts +5 -5
  126. three/src/nodes/core/ContextNode.d.ts +24 -12
  127. three/src/nodes/core/IndexNode.d.ts +10 -7
  128. three/src/nodes/core/InspectorNode.d.ts +16 -0
  129. three/src/nodes/core/IsolateNode.d.ts +36 -0
  130. three/src/nodes/core/MRTNode.d.ts +3 -4
  131. three/src/nodes/core/Node.d.ts +18 -2
  132. three/src/nodes/core/NodeUtils.d.ts +0 -10
  133. three/src/nodes/core/OutputStructNode.d.ts +1 -2
  134. three/src/nodes/core/ParameterNode.d.ts +1 -2
  135. three/src/nodes/core/PropertyNode.d.ts +30 -31
  136. three/src/nodes/core/StackNode.d.ts +1 -4
  137. three/src/nodes/core/StructNode.d.ts +3 -4
  138. three/src/nodes/core/SubBuildNode.d.ts +1 -2
  139. three/src/nodes/core/UniformNode.d.ts +3 -6
  140. three/src/nodes/core/VarNode.d.ts +12 -8
  141. three/src/nodes/core/VaryingNode.d.ts +12 -10
  142. three/src/nodes/display/BlendModes.d.ts +11 -12
  143. three/src/nodes/display/BumpMapNode.d.ts +1 -2
  144. three/src/nodes/display/ColorAdjustment.d.ts +7 -8
  145. three/src/nodes/display/ColorSpaceFunctions.d.ts +2 -3
  146. three/src/nodes/display/ColorSpaceNode.d.ts +19 -9
  147. three/src/nodes/display/FrontFacingNode.d.ts +3 -4
  148. three/src/nodes/display/NormalMapNode.d.ts +1 -2
  149. three/src/nodes/display/PassNode.d.ts +20 -11
  150. three/src/nodes/display/PosterizeNode.d.ts +1 -2
  151. three/src/nodes/display/RenderOutputNode.d.ts +11 -6
  152. three/src/nodes/display/ScreenNode.d.ts +9 -10
  153. three/src/nodes/display/ToneMappingFunctions.d.ts +6 -7
  154. three/src/nodes/display/ToneMappingNode.d.ts +9 -8
  155. three/src/nodes/display/ToonOutlinePassNode.d.ts +1 -2
  156. three/src/nodes/display/ViewportDepthNode.d.ts +3 -4
  157. three/src/nodes/display/ViewportDepthTextureNode.d.ts +1 -2
  158. three/src/nodes/display/ViewportSharedTextureNode.d.ts +1 -2
  159. three/src/nodes/display/ViewportTextureNode.d.ts +2 -3
  160. three/src/nodes/fog/Fog.d.ts +5 -6
  161. three/src/nodes/functions/BSDF/BRDF_GGX.d.ts +4 -5
  162. three/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.d.ts +14 -0
  163. three/src/nodes/functions/BSDF/BRDF_Lambert.d.ts +1 -2
  164. three/src/nodes/functions/BSDF/BRDF_Sheen.d.ts +1 -2
  165. three/src/nodes/functions/BSDF/DFGApprox.d.ts +1 -2
  166. three/src/nodes/functions/BSDF/D_GGX.d.ts +1 -2
  167. three/src/nodes/functions/BSDF/D_GGX_Anisotropic.d.ts +1 -2
  168. three/src/nodes/functions/BSDF/F_Schlick.d.ts +1 -2
  169. three/src/nodes/functions/BSDF/Schlick_to_F0.d.ts +1 -2
  170. three/src/nodes/functions/BSDF/V_GGX_SmithCorrelated.d.ts +1 -2
  171. three/src/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.d.ts +1 -2
  172. three/src/nodes/functions/ShadowMaskModel.d.ts +1 -2
  173. three/src/nodes/functions/material/getAlphaHashThreshold.d.ts +1 -2
  174. three/src/nodes/functions/material/getGeometryRoughness.d.ts +1 -2
  175. three/src/nodes/functions/material/getParallaxCorrectNormal.d.ts +1 -2
  176. three/src/nodes/functions/material/getRoughness.d.ts +1 -2
  177. three/src/nodes/functions/material/getShIrradianceAt.d.ts +1 -2
  178. three/src/nodes/geometry/RangeNode.d.ts +1 -2
  179. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +10 -11
  180. three/src/nodes/gpgpu/BarrierNode.d.ts +3 -4
  181. three/src/nodes/gpgpu/ComputeBuiltinNode.d.ts +5 -6
  182. three/src/nodes/gpgpu/ComputeNode.d.ts +21 -13
  183. three/src/nodes/gpgpu/SubgroupFunctionNode.d.ts +25 -26
  184. three/src/nodes/gpgpu/WorkgroupInfoNode.d.ts +1 -2
  185. three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -2
  186. three/src/nodes/lighting/LightUtils.d.ts +1 -2
  187. three/src/nodes/lighting/LightingContextNode.d.ts +1 -2
  188. three/src/nodes/lighting/LightsNode.d.ts +1 -2
  189. three/src/nodes/lighting/PointLightNode.d.ts +5 -6
  190. three/src/nodes/lighting/PointShadowNode.d.ts +4 -5
  191. three/src/nodes/lighting/ShadowBaseNode.d.ts +1 -2
  192. three/src/nodes/lighting/ShadowFilterNode.d.ts +4 -5
  193. three/src/nodes/lighting/ShadowNode.d.ts +1 -2
  194. three/src/nodes/lighting/SpotLightNode.d.ts +1 -2
  195. three/src/nodes/materialx/MaterialXNodes.d.ts +41 -42
  196. three/src/nodes/materialx/lib/mx_hsv.d.ts +2 -3
  197. three/src/nodes/materialx/lib/mx_noise.d.ts +73 -74
  198. three/src/nodes/materialx/lib/mx_transform_color.d.ts +1 -2
  199. three/src/nodes/math/BitcastNode.d.ts +5 -6
  200. three/src/nodes/math/ConditionalNode.d.ts +11 -5
  201. three/src/nodes/math/Hash.d.ts +1 -2
  202. three/src/nodes/math/MathNode.d.ts +223 -77
  203. three/src/nodes/math/OperatorNode.d.ts +203 -59
  204. three/src/nodes/math/TriNoise3D.d.ts +3 -4
  205. three/src/nodes/pmrem/PMREMNode.d.ts +1 -2
  206. three/src/nodes/pmrem/PMREMUtils.d.ts +3 -4
  207. three/src/nodes/procedural/Checker.d.ts +1 -2
  208. three/src/nodes/shapes/Shapes.d.ts +1 -2
  209. three/src/nodes/tsl/TSLBase.d.ts +2 -1
  210. three/src/nodes/tsl/TSLCore.d.ts +235 -128
  211. three/src/nodes/utils/CubeMapNode.d.ts +1 -2
  212. three/src/nodes/utils/DebugNode.d.ts +9 -5
  213. three/src/nodes/utils/Discard.d.ts +6 -6
  214. three/src/nodes/utils/EquirectUV.d.ts +1 -2
  215. three/src/nodes/utils/EventNode.d.ts +8 -3
  216. three/src/nodes/utils/FunctionOverloadingNode.d.ts +1 -2
  217. three/src/nodes/utils/LoopNode.d.ts +7 -6
  218. three/src/nodes/utils/MatcapUV.d.ts +1 -2
  219. three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -2
  220. three/src/nodes/utils/Oscillators.d.ts +4 -5
  221. three/src/nodes/utils/Packing.d.ts +2 -3
  222. three/src/nodes/utils/PostProcessingUtils.d.ts +5 -4
  223. three/src/nodes/utils/RTTNode.d.ts +2 -3
  224. three/src/nodes/utils/ReflectorNode.d.ts +2 -3
  225. three/src/nodes/utils/RemapNode.d.ts +29 -7
  226. three/src/nodes/utils/RotateNode.d.ts +1 -2
  227. three/src/nodes/utils/SampleNode.d.ts +1 -2
  228. three/src/nodes/utils/SpriteSheetUVNode.d.ts +1 -2
  229. three/src/nodes/utils/SpriteUtils.d.ts +1 -2
  230. three/src/nodes/utils/StorageArrayElementNode.d.ts +1 -2
  231. three/src/nodes/utils/Timer.d.ts +3 -4
  232. three/src/nodes/utils/TriplanarTextures.d.ts +2 -3
  233. three/src/nodes/utils/UVUtils.d.ts +2 -3
  234. three/src/nodes/utils/ViewportUtils.d.ts +1 -2
  235. three/src/renderers/common/Animation.d.ts +4 -1
  236. three/src/renderers/common/Bindings.d.ts +12 -0
  237. three/src/renderers/common/CanvasTarget.d.ts +142 -0
  238. three/src/renderers/common/Geometries.d.ts +1 -0
  239. three/src/renderers/common/InspectorBase.d.ts +105 -0
  240. three/src/renderers/common/PostProcessing.d.ts +3 -0
  241. three/src/renderers/common/QuadMesh.d.ts +3 -0
  242. three/src/renderers/common/RenderContexts.d.ts +3 -1
  243. three/src/renderers/common/Renderer.d.ts +124 -36
  244. three/src/renderers/common/SampledTexture.d.ts +2 -0
  245. three/src/renderers/common/Sampler.d.ts +2 -0
  246. three/src/renderers/common/Textures.d.ts +20 -0
  247. three/src/renderers/common/TimestampQueryPool.d.ts +24 -1
  248. three/src/renderers/common/extras/PMREMGenerator.d.ts +19 -1
  249. three/src/renderers/common/nodes/NodeLibrary.d.ts +3 -7
  250. three/src/renderers/common/nodes/Nodes.d.ts +13 -14
  251. three/src/renderers/webgpu/utils/WebGPUConstants.d.ts +5 -0
  252. three/src/scenes/Scene.d.ts +2 -2
  253. three/src/textures/CanvasTexture.d.ts +3 -3
  254. three/src/textures/CompressedArrayTexture.d.ts +6 -9
  255. three/src/textures/CompressedCubeTexture.d.ts +3 -3
  256. three/src/textures/CompressedTexture.d.ts +6 -8
  257. three/src/textures/CubeTexture.d.ts +4 -11
  258. three/src/textures/Data3DTexture.d.ts +5 -10
  259. three/src/textures/DataArrayTexture.d.ts +10 -10
  260. three/src/textures/DataTexture.d.ts +4 -11
  261. three/src/textures/DepthTexture.d.ts +7 -8
  262. three/src/textures/ExternalTexture.d.ts +3 -1
  263. three/src/textures/FramebufferTexture.d.ts +6 -1
  264. three/src/textures/Source.d.ts +3 -3
  265. three/src/textures/Texture.d.ts +8 -8
  266. three/src/textures/VideoFrameTexture.d.ts +1 -1
  267. three/src/textures/VideoTexture.d.ts +2 -2
  268. three/src/utils.d.ts +18 -2
  269. three/src/nodes/core/CacheNode.d.ts +0 -21
@@ -1,11 +1,11 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
- export const Discard: (conditional?: Node) => ShaderNodeObject<Node>;
5
- export const Return: () => ShaderNodeObject<Node>;
3
+ export const Discard: (conditional?: Node) => Node;
4
+ export const Return: () => Node;
6
5
 
7
- declare module "../tsl/TSLCore.js" {
8
- interface NodeElements {
9
- discard: typeof Discard;
6
+ declare module "../Nodes.js" {
7
+ interface Node {
8
+ discard: () => Node;
9
+ discardAssign: () => this;
10
10
  }
11
11
  }
@@ -1,4 +1,3 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
- export const equirectUV: (dirNode?: Node) => ShaderNodeObject<Node>;
3
+ export const equirectUV: (dirNode?: Node) => Node;
@@ -1,6 +1,5 @@
1
1
  import Node from "../core/Node.js";
2
2
  import NodeFrame from "../core/NodeFrame.js";
3
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
4
3
 
5
4
  export type EventNodeType = typeof EventNode.OBJECT | typeof EventNode.MATERIAL;
6
5
 
@@ -12,10 +11,16 @@ declare class EventNode extends Node {
12
11
 
13
12
  static OBJECT: "object";
14
13
  static MATERIAL: "material";
14
+ static BEFORE_OBJECT: "beforeObject";
15
+ static BEFORE_MATERIAL: "beforeMaterial";
15
16
  }
16
17
 
17
18
  export default EventNode;
18
19
 
19
- export const OnObjectUpdate: (callback: (frame: NodeFrame) => void) => ShaderNodeObject<Node>;
20
+ export const OnObjectUpdate: (callback: (frame: NodeFrame) => void) => Node;
20
21
 
21
- export const OnMaterialUpdate: (callback: (frame: NodeFrame) => void) => ShaderNodeObject<Node>;
22
+ export const OnMaterialUpdate: (callback: (frame: NodeFrame) => void) => Node;
23
+
24
+ export const OnBeforeObjectUpdate: (callback: (frame: NodeFrame) => void) => Node;
25
+
26
+ export const OnBeforeMaterialUpdate: (callback: (frame: NodeFrame) => void) => Node;
@@ -1,5 +1,4 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
3
  declare class FunctionOverloadingNode extends Node {
5
4
  functionNodes: Node[];
@@ -10,4 +9,4 @@ declare class FunctionOverloadingNode extends Node {
10
9
 
11
10
  export default FunctionOverloadingNode;
12
11
 
13
- export const overloadingFn: (functionNodes: Node[]) => (...params: Node[]) => ShaderNodeObject<FunctionOverloadingNode>;
12
+ export const overloadingFn: (functionNodes: Node[]) => (...params: Node[]) => FunctionOverloadingNode;
@@ -1,6 +1,6 @@
1
1
  import Node from "../core/Node.js";
2
2
  import NodeBuilder from "../core/NodeBuilder.js";
3
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
+ import { VarNode } from "../Nodes.js";
4
4
 
5
5
  interface LoopNodeObjectParameter {
6
6
  // TODO Expand to other types and update loop function types appropriately
@@ -10,6 +10,7 @@ interface LoopNodeObjectParameter {
10
10
  start: number | Node;
11
11
  end: number | Node;
12
12
  condition?: string;
13
+ update?: VarNode | number | string;
13
14
  }
14
15
 
15
16
  type LoopNodeParameter = Node | number | LoopNodeObjectParameter;
@@ -25,14 +26,14 @@ declare class LoopNode extends Node {
25
26
  export default LoopNode;
26
27
 
27
28
  interface Loop {
28
- (i: LoopNodeParameter, func: (inputs: { readonly i: number }) => void): ShaderNodeObject<Node>;
29
+ (i: LoopNodeParameter, func: (inputs: { readonly i: Node }) => void): Node;
29
30
  (
30
31
  i: LoopNodeParameter,
31
32
  j: LoopNodeParameter,
32
- func: (inputs: { readonly i: number; readonly j: number }) => void,
33
- ): ShaderNodeObject<Node>;
33
+ func: (inputs: { readonly i: Node; readonly j: Node }) => void,
34
+ ): Node;
34
35
  }
35
36
 
36
37
  export const Loop: Loop;
37
- export const Continue: () => ShaderNodeObject<Node>;
38
- export const Break: () => ShaderNodeObject<Node>;
38
+ export const Continue: () => Node;
39
+ export const Break: () => Node;
@@ -1,4 +1,3 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
- export const matcapUV: ShaderNodeObject<Node>;
3
+ export const matcapUV: Node;
@@ -1,7 +1,6 @@
1
1
  import { Texture } from "../../textures/Texture.js";
2
2
  import TextureNode from "../accessors/TextureNode.js";
3
3
  import UniformNode from "../core/UniformNode.js";
4
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
5
4
 
6
5
  export default class MaxMipLevelNode extends UniformNode<0> {
7
6
  constructor(textureNode: TextureNode);
@@ -11,4 +10,4 @@ export default class MaxMipLevelNode extends UniformNode<0> {
11
10
  get texture(): Texture;
12
11
  }
13
12
 
14
- export const maxMipLevel: (texture: Texture) => ShaderNodeObject<MaxMipLevelNode>;
13
+ export const maxMipLevel: (texture: Texture) => MaxMipLevelNode;
@@ -1,7 +1,6 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
- export const oscSine: (timeNode?: Node) => ShaderNodeObject<Node>;
5
- export const oscSquare: (timeNode?: Node) => ShaderNodeObject<Node>;
6
- export const oscTriangle: (timeNode?: Node) => ShaderNodeObject<Node>;
7
- export const oscSawtooth: (timeNode?: Node) => ShaderNodeObject<Node>;
3
+ export const oscSine: (timeNode?: Node) => Node;
4
+ export const oscSquare: (timeNode?: Node) => Node;
5
+ export const oscTriangle: (timeNode?: Node) => Node;
6
+ export const oscSawtooth: (timeNode?: Node) => Node;
@@ -1,5 +1,4 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
- export const directionToColor: (node: Node) => ShaderNodeObject<Node>;
5
- export const colorToDirection: (node: Node) => ShaderNodeObject<Node>;
3
+ export const directionToColor: (node: Node) => Node;
4
+ export const colorToDirection: (node: Node) => Node;
@@ -1,5 +1,4 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
3
  /**
5
4
  * Computes a position in view space based on a fragment's screen position expressed as uv coordinates, the fragments
@@ -14,7 +13,7 @@ export const getViewPosition: (
14
13
  screenPosition: Node,
15
14
  depth: Node,
16
15
  projectionMatrixInverse: Node,
17
- ) => ShaderNodeObject<Node>;
16
+ ) => Node;
18
17
 
19
18
  /**
20
19
  * Computes a screen position expressed as uv coordinates based on a fragment's position in view space and the camera's
@@ -27,7 +26,7 @@ export const getViewPosition: (
27
26
  export const getScreenPosition: (
28
27
  viewPosition: Node,
29
28
  projectionMatrix: Node,
30
- ) => ShaderNodeObject<Node>;
29
+ ) => Node;
31
30
 
32
31
  /**
33
32
  * Computes a normal vector based on depth data. Can be used as a fallback when no normal render target is available or
@@ -42,4 +41,6 @@ export const getNormalFromDepth: (
42
41
  uv: Node,
43
42
  depthTexture: Node,
44
43
  projectionMatrixInverse: Node,
45
- ) => ShaderNodeObject<Node>;
44
+ ) => Node;
45
+
46
+ export const interleavedGradientNoise: (position: Node) => Node;
@@ -2,7 +2,6 @@ import { TextureDataType } from "../../constants.js";
2
2
  import { RenderTarget } from "../../core/RenderTarget.js";
3
3
  import TextureNode from "../accessors/TextureNode.js";
4
4
  import Node from "../core/Node.js";
5
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
6
5
 
7
6
  export interface RTTNodeOptions {
8
7
  type: TextureDataType;
@@ -38,10 +37,10 @@ export const rtt: (
38
37
  width?: number | null,
39
38
  height?: number | null,
40
39
  options?: RTTNodeOptions,
41
- ) => ShaderNodeObject<RTTNode>;
40
+ ) => RTTNode;
42
41
  export const convertToTexture: (
43
42
  node: Node,
44
43
  width?: number | null,
45
44
  height?: number | null,
46
45
  options?: RTTNodeOptions,
47
- ) => ShaderNodeObject<RTTNode>;
46
+ ) => RTTNode;
@@ -3,7 +3,6 @@ import { Object3D } from "../../core/Object3D.js";
3
3
  import { RenderTarget } from "../../core/RenderTarget.js";
4
4
  import TextureNode from "../accessors/TextureNode.js";
5
5
  import Node from "../core/Node.js";
6
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
7
6
 
8
7
  export interface ReflectorNodeParameters {
9
8
  target?: Object3D | undefined;
@@ -25,7 +24,7 @@ declare class ReflectorNode extends TextureNode {
25
24
 
26
25
  get target(): Object3D;
27
26
 
28
- getDepthNode(): ShaderNodeObject<ReflectorNode>;
27
+ getDepthNode(): ReflectorNode;
29
28
  }
30
29
 
31
30
  declare class ReflectorBaseNode extends Node {
@@ -57,6 +56,6 @@ declare class ReflectorBaseNode extends Node {
57
56
  set resolution(value: number);
58
57
  }
59
58
 
60
- export const reflector: (parameters?: ReflectorNodeParameters) => ShaderNodeObject<ReflectorNode>;
59
+ export const reflector: (parameters?: ReflectorNodeParameters) => ReflectorNode;
61
60
 
62
61
  export default ReflectorNode;
@@ -1,5 +1,4 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
3
  export default class RemapNode extends Node {
5
4
  node: Node;
@@ -19,18 +18,41 @@ export const remap: (
19
18
  inHighNode: Node | number,
20
19
  outLowNode?: Node | number,
21
20
  outHighNode?: Node | number,
22
- ) => ShaderNodeObject<RemapNode>;
21
+ ) => RemapNode;
23
22
  export const remapClamp: (
24
23
  node: Node,
25
24
  inLowNode: Node | number,
26
25
  inHighNode: Node | number,
27
26
  outLowNode?: Node | number,
28
27
  outHighNode?: Node | number,
29
- ) => ShaderNodeObject<RemapNode>;
28
+ ) => RemapNode;
30
29
 
31
- declare module "../tsl/TSLCore.js" {
32
- interface NodeElements {
33
- remap: typeof remap;
34
- remapClamp: typeof remapClamp;
30
+ declare module "../Nodes.js" {
31
+ interface Node {
32
+ remap: (
33
+ inLowNode: Node | number,
34
+ inHighNode: Node | number,
35
+ outLowNode?: Node | number,
36
+ outHighNode?: Node | number,
37
+ ) => RemapNode;
38
+ remapAssign: (
39
+ inLowNode: Node | number,
40
+ inHighNode: Node | number,
41
+ outLowNode?: Node | number,
42
+ outHighNode?: Node | number,
43
+ ) => this;
44
+
45
+ remapClamp: (
46
+ inLowNode: Node | number,
47
+ inHighNode: Node | number,
48
+ outLowNode?: Node | number,
49
+ outHighNode?: Node | number,
50
+ ) => RemapNode;
51
+ remapClampAssign: (
52
+ inLowNode: Node | number,
53
+ inHighNode: Node | number,
54
+ outLowNode?: Node | number,
55
+ outHighNode?: Node | number,
56
+ ) => this;
35
57
  }
36
58
  }
@@ -1,6 +1,5 @@
1
1
  import Node from "../core/Node.js";
2
2
  import TempNode from "../core/TempNode.js";
3
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
4
3
 
5
4
  export default class RotateNode extends TempNode {
6
5
  positionNode: Node;
@@ -12,4 +11,4 @@ export default class RotateNode extends TempNode {
12
11
  export const rotate: (
13
12
  positionNode: Node,
14
13
  rotationNode: Node | number,
15
- ) => ShaderNodeObject<RotateNode>;
14
+ ) => RotateNode;
@@ -1,5 +1,4 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
3
  declare class SampleNode extends Node {
5
4
  callback: (uv: Node) => Node;
@@ -14,4 +13,4 @@ declare class SampleNode extends Node {
14
13
 
15
14
  export default SampleNode;
16
15
 
17
- export const sample: (callback: (uv: Node) => Node, uv?: Node | null) => ShaderNodeObject<SampleNode>;
16
+ export const sample: (callback: (uv: Node) => Node, uv?: Node | null) => SampleNode;
@@ -1,5 +1,4 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
3
  export default class SpriteSheetUVNode extends Node {
5
4
  countNode: Node;
@@ -13,4 +12,4 @@ export const spritesheetUV: (
13
12
  countNode: Node,
14
13
  uvNode: Node | null,
15
14
  frameNode: Node | null,
16
- ) => ShaderNodeObject<SpriteSheetUVNode>;
15
+ ) => SpriteSheetUVNode;
@@ -1,6 +1,5 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
3
  export const billboarding: (
5
4
  args?: { position?: Node | null; horizontal?: boolean; vertical?: boolean },
6
- ) => ShaderNodeObject<Node>;
5
+ ) => Node;
@@ -1,6 +1,5 @@
1
1
  import StorageBufferNode from "../accessors/StorageBufferNode.js";
2
2
  import Node from "../core/Node.js";
3
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
4
3
  import ArrayElementNode from "./ArrayElementNode.js";
5
4
 
6
5
  export default class StorageArrayElementNode extends ArrayElementNode {
@@ -17,4 +16,4 @@ export default class StorageArrayElementNode extends ArrayElementNode {
17
16
  export const storageElement: (
18
17
  storageBufferNode: Node,
19
18
  indexNode: Node,
20
- ) => ShaderNodeObject<StorageArrayElementNode>;
19
+ ) => StorageArrayElementNode;
@@ -1,6 +1,5 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
- export const time: ShaderNodeObject<Node>;
5
- export const deltaTime: ShaderNodeObject<Node>;
6
- export const frameId: ShaderNodeObject<Node>;
3
+ export const time: Node;
4
+ export const deltaTime: Node;
5
+ export const frameId: Node;
@@ -1,5 +1,4 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
3
  export const triplanarTextures: (
5
4
  textureXNode: Node,
@@ -8,7 +7,7 @@ export const triplanarTextures: (
8
7
  scaleNode?: Node,
9
8
  positionNode?: Node,
10
9
  normalNode?: Node,
11
- ) => ShaderNodeObject<Node>;
10
+ ) => Node;
12
11
 
13
12
  export const triplanarTexture: (
14
13
  textureXNode: Node,
@@ -17,4 +16,4 @@ export const triplanarTexture: (
17
16
  scaleNode?: Node,
18
17
  positionNode?: Node,
19
18
  normalNode?: Node,
20
- ) => ShaderNodeObject<Node>;
19
+ ) => Node;
@@ -1,15 +1,14 @@
1
1
  import Node from "../core/Node.js";
2
2
  import OperatorNode from "../math/OperatorNode.js";
3
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
4
3
 
5
4
  export const rotateUV: (
6
5
  uv: Node,
7
6
  rotation: Node,
8
7
  center?: Node,
9
- ) => ShaderNodeObject<OperatorNode>;
8
+ ) => OperatorNode;
10
9
 
11
10
  export const spherizeUV: (
12
11
  uv: Node,
13
12
  strength: Node | number,
14
13
  center?: Node,
15
- ) => ShaderNodeObject<OperatorNode>;
14
+ ) => OperatorNode;
@@ -1,4 +1,3 @@
1
1
  import Node from "../core/Node.js";
2
- import { ShaderNodeObject } from "../tsl/TSLCore.js";
3
2
 
4
- export const viewportSafeUV: (uv?: Node | null) => ShaderNodeObject<Node>;
3
+ export const viewportSafeUV: (uv?: Node | null) => Node;
@@ -1,5 +1,6 @@
1
1
  import Info from "./Info.js";
2
2
  import Nodes from "./nodes/Nodes.js";
3
+ import Renderer from "./Renderer.js";
3
4
  export interface AnimationContext {
4
5
  requestAnimationFrame(callback: FrameRequestCallback, xrFrame?: XRFrame): number;
5
6
  cancelAnimationFrame(handle: number): void;
@@ -10,6 +11,7 @@ export interface AnimationContext {
10
11
  * @private
11
12
  */
12
13
  declare class Animation {
14
+ renderer: Renderer;
13
15
  nodes: Nodes;
14
16
  info: Info;
15
17
  _context: AnimationContext | null;
@@ -18,10 +20,11 @@ declare class Animation {
18
20
  /**
19
21
  * Constructs a new animation loop management component.
20
22
  *
23
+ * @param {Renderer} renderer - A reference to the main renderer.
21
24
  * @param {Nodes} nodes - Renderer component for managing nodes related logic.
22
25
  * @param {Info} info - Renderer component for managing metrics and monitoring data.
23
26
  */
24
- constructor(nodes: Nodes, info: Info);
27
+ constructor(renderer: Renderer, nodes: Nodes, info: Info);
25
28
  /**
26
29
  * Starts the internal animation loop.
27
30
  */
@@ -73,6 +73,18 @@ declare class Bindings extends DataMap<{
73
73
  * @param {RenderObject} renderObject - The render object.
74
74
  */
75
75
  updateForRender(renderObject: RenderObject): void;
76
+ /**
77
+ * Deletes the bindings for the given compute node.
78
+ *
79
+ * @param {Node} computeNode - The compute node.
80
+ */
81
+ deleteForCompute(computeNode: ComputeNode): void;
82
+ /**
83
+ * Deletes the bindings for the given renderObject node.
84
+ *
85
+ * @param {RenderObject} renderObject - The renderObject.
86
+ */
87
+ deleteForRender(renderObject: RenderObject): void;
76
88
  /**
77
89
  * Updates the given array of bindings.
78
90
  *
@@ -0,0 +1,142 @@
1
+ import { EventDispatcher } from "../../core/EventDispatcher.js";
2
+ import { Vector2 } from "../../math/Vector2.js";
3
+ import { Vector4 } from "../../math/Vector4.js";
4
+ import { DepthTexture } from "../../textures/DepthTexture.js";
5
+ import { FramebufferTexture } from "../../textures/FramebufferTexture.js";
6
+ export interface CanvasTargetEventMap {
7
+ resize: {};
8
+ dispose: {};
9
+ }
10
+ /**
11
+ * CanvasTarget is a class that represents the final output destination of the renderer.
12
+ *
13
+ * @augments EventDispatcher
14
+ */
15
+ declare class CanvasTarget extends EventDispatcher<CanvasTargetEventMap> {
16
+ domElement: HTMLCanvasElement;
17
+ _pixelRatio: number;
18
+ _width: number;
19
+ _height: number;
20
+ _viewport: Vector4;
21
+ _scissor: Vector4;
22
+ _scissorTest: boolean;
23
+ colorTexture: FramebufferTexture;
24
+ depthTexture: DepthTexture;
25
+ /**
26
+ * Constructs a new CanvasTarget.
27
+ *
28
+ * @param {HTMLCanvasElement|OffscreenCanvas} domElement - The canvas element to render to.
29
+ */
30
+ constructor(domElement: HTMLCanvasElement);
31
+ /**
32
+ * Returns the pixel ratio.
33
+ *
34
+ * @return {number} The pixel ratio.
35
+ */
36
+ getPixelRatio(): number;
37
+ /**
38
+ * Returns the drawing buffer size in physical pixels. This method honors the pixel ratio.
39
+ *
40
+ * @param {Vector2} target - The method writes the result in this target object.
41
+ * @return {Vector2} The drawing buffer size.
42
+ */
43
+ getDrawingBufferSize(target: Vector2): Vector2;
44
+ /**
45
+ * Returns the renderer's size in logical pixels. This method does not honor the pixel ratio.
46
+ *
47
+ * @param {Vector2} target - The method writes the result in this target object.
48
+ * @return {Vector2} The renderer's size in logical pixels.
49
+ */
50
+ getSize(target: Vector2): Vector2;
51
+ /**
52
+ * Sets the given pixel ratio and resizes the canvas if necessary.
53
+ *
54
+ * @param {number} [value=1] - The pixel ratio.
55
+ */
56
+ setPixelRatio(value?: number): void;
57
+ /**
58
+ * This method allows to define the drawing buffer size by specifying
59
+ * width, height and pixel ratio all at once. The size of the drawing
60
+ * buffer is computed with this formula:
61
+ * ```js
62
+ * size.x = width * pixelRatio;
63
+ * size.y = height * pixelRatio;
64
+ * ```
65
+ *
66
+ * @param {number} width - The width in logical pixels.
67
+ * @param {number} height - The height in logical pixels.
68
+ * @param {number} pixelRatio - The pixel ratio.
69
+ */
70
+ setDrawingBufferSize(width: number, height: number, pixelRatio: number): void;
71
+ /**
72
+ * Sets the size of the renderer.
73
+ *
74
+ * @param {number} width - The width in logical pixels.
75
+ * @param {number} height - The height in logical pixels.
76
+ * @param {boolean} [updateStyle=true] - Whether to update the `style` attribute of the canvas or not.
77
+ */
78
+ setSize(width: number, height: number, updateStyle?: boolean): void;
79
+ /**
80
+ * Returns the scissor rectangle.
81
+ *
82
+ * @param {Vector4} target - The method writes the result in this target object.
83
+ * @return {Vector4} The scissor rectangle.
84
+ */
85
+ getScissor(target: Vector4): Vector4;
86
+ /**
87
+ * Defines the scissor rectangle.
88
+ *
89
+ * @param {number | Vector4} x - The horizontal coordinate for the lower left corner of the box in logical pixel unit.
90
+ * Instead of passing four arguments, the method also works with a single four-dimensional vector.
91
+ * @param {number} y - The vertical coordinate for the lower left corner of the box in logical pixel unit.
92
+ * @param {number} width - The width of the scissor box in logical pixel unit.
93
+ * @param {number} height - The height of the scissor box in logical pixel unit.
94
+ */
95
+ setScissor(x: Vector4): void;
96
+ setScissor(x: number, y: number, width: number, height: number): void;
97
+ /**
98
+ * Returns the scissor test value.
99
+ *
100
+ * @return {boolean} Whether the scissor test should be enabled or not.
101
+ */
102
+ getScissorTest(): boolean;
103
+ /**
104
+ * Defines the scissor test.
105
+ *
106
+ * @param {boolean} boolean - Whether the scissor test should be enabled or not.
107
+ */
108
+ setScissorTest(boolean: boolean): void;
109
+ /**
110
+ * Returns the viewport definition.
111
+ *
112
+ * @param {Vector4} target - The method writes the result in this target object.
113
+ * @return {Vector4} The viewport definition.
114
+ */
115
+ getViewport(target: Vector4): Vector4;
116
+ /**
117
+ * Defines the viewport.
118
+ *
119
+ * @param {number | Vector4} x - The horizontal coordinate for the lower left corner of the viewport origin in logical pixel unit.
120
+ * @param {number} y - The vertical coordinate for the lower left corner of the viewport origin in logical pixel unit.
121
+ * @param {number} width - The width of the viewport in logical pixel unit.
122
+ * @param {number} height - The height of the viewport in logical pixel unit.
123
+ * @param {number} minDepth - The minimum depth value of the viewport. WebGPU only.
124
+ * @param {number} maxDepth - The maximum depth value of the viewport. WebGPU only.
125
+ */
126
+ setViewport(x: Vector4): void;
127
+ setViewport(x: number, y: number, width: number, height: number, minDepth?: number, maxDepth?: number): void;
128
+ /**
129
+ * Dispatches the resize event.
130
+ *
131
+ * @private
132
+ */
133
+ _dispatchResize(): void;
134
+ /**
135
+ * Frees the GPU-related resources allocated by this instance. Call this
136
+ * method whenever this instance is no longer used in your app.
137
+ *
138
+ * @fires RenderTarget#dispose
139
+ */
140
+ dispose(): void;
141
+ }
142
+ export default CanvasTarget;
@@ -80,5 +80,6 @@ declare class Geometries extends DataMap<{
80
80
  * @return {?BufferAttribute} The index. Returns `null` for non-indexed geometries.
81
81
  */
82
82
  getIndex(renderObject: RenderObject): BufferAttribute | null;
83
+ dispose(): void;
83
84
  }
84
85
  export default Geometries;