@types/three 0.182.0 → 0.183.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (313) hide show
  1. three/README.md +1 -1
  2. three/examples/jsm/Addons.d.ts +0 -3
  3. three/examples/jsm/controls/OrbitControls.d.ts +39 -0
  4. three/examples/jsm/effects/AnaglyphEffect.d.ts +4 -0
  5. three/examples/jsm/environments/ColorEnvironment.d.ts +9 -0
  6. three/examples/jsm/gpgpu/BitonicSort.d.ts +5 -5
  7. three/examples/jsm/helpers/AnimationPathHelper.d.ts +38 -0
  8. three/examples/jsm/helpers/ViewHelper.d.ts +4 -1
  9. three/examples/jsm/inspector/tabs/Parameters.d.ts +3 -0
  10. three/examples/jsm/inspector/ui/Item.d.ts +5 -0
  11. three/examples/jsm/libs/meshopt_decoder.module.d.ts +1 -1
  12. three/examples/jsm/lights/LightProbeGenerator.d.ts +11 -5
  13. three/examples/jsm/loaders/ColladaLoader.d.ts +27 -4
  14. three/examples/jsm/objects/SkyMesh.d.ts +11 -6
  15. three/examples/jsm/objects/Water2Mesh.d.ts +7 -7
  16. three/examples/jsm/objects/WaterMesh.d.ts +6 -6
  17. three/examples/jsm/postprocessing/EffectComposer.d.ts +9 -10
  18. three/examples/jsm/postprocessing/UnrealBloomPass.d.ts +4 -9
  19. three/examples/jsm/tsl/display/AnaglyphPassNode.d.ts +30 -0
  20. three/examples/jsm/tsl/display/AnamorphicNode.d.ts +1 -1
  21. three/examples/jsm/tsl/display/BilateralBlurNode.d.ts +27 -0
  22. three/examples/jsm/tsl/display/BloomNode.d.ts +5 -5
  23. three/examples/jsm/tsl/display/CRT.d.ts +22 -0
  24. three/examples/jsm/tsl/display/DenoiseNode.d.ts +5 -5
  25. three/examples/jsm/tsl/display/DotScreenNode.d.ts +4 -6
  26. three/examples/jsm/tsl/display/GTAONode.d.ts +8 -8
  27. three/examples/jsm/tsl/display/GaussianBlurNode.d.ts +4 -2
  28. three/examples/jsm/tsl/display/GodraysNode.d.ts +20 -0
  29. three/examples/jsm/tsl/display/LensflareNode.d.ts +6 -6
  30. three/examples/jsm/tsl/display/Lut3DNode.d.ts +5 -5
  31. three/examples/jsm/tsl/display/MotionBlur.d.ts +1 -1
  32. three/examples/jsm/tsl/display/OutlineNode.d.ts +6 -6
  33. three/examples/jsm/tsl/display/PixelationPassNode.d.ts +10 -10
  34. three/examples/jsm/tsl/display/RGBShiftNode.d.ts +2 -2
  35. three/examples/jsm/tsl/display/RetroPassNode.d.ts +17 -0
  36. three/examples/jsm/tsl/display/SSAAPassNode.d.ts +1 -1
  37. three/examples/jsm/tsl/display/SSGINode.d.ts +11 -11
  38. three/examples/jsm/tsl/display/SSRNode.d.ts +6 -6
  39. three/examples/jsm/tsl/display/SSSNode.d.ts +5 -5
  40. three/examples/jsm/tsl/display/Shape.d.ts +3 -0
  41. three/examples/jsm/tsl/display/TransitionNode.d.ts +3 -3
  42. three/examples/jsm/tsl/display/boxBlur.d.ts +1 -1
  43. three/examples/jsm/tsl/display/depthAwareBlend.d.ts +15 -0
  44. three/examples/jsm/tsl/display/hashBlur.d.ts +1 -1
  45. three/examples/jsm/tsl/math/Bayer.d.ts +2 -0
  46. three/examples/jsm/tsl/utils/Raymarching.d.ts +2 -2
  47. three/package.json +3 -3
  48. three/src/Three.Core.d.ts +1 -1
  49. three/src/Three.TSL.d.ts +6 -11
  50. three/src/Three.WebGPU.Nodes.d.ts +2 -0
  51. three/src/Three.WebGPU.d.ts +3 -0
  52. three/src/Three.d.ts +2 -2
  53. three/src/animation/AnimationClip.d.ts +1 -1
  54. three/src/animation/KeyframeTrack.d.ts +19 -5
  55. three/src/animation/PropertyMixer.d.ts +5 -4
  56. three/src/audio/Audio.d.ts +224 -157
  57. three/src/audio/AudioAnalyser.d.ts +32 -27
  58. three/src/audio/AudioContext.d.ts +12 -12
  59. three/src/audio/AudioListener.d.ts +44 -65
  60. three/src/audio/PositionalAudio.d.ts +69 -62
  61. three/src/cameras/ArrayCamera.d.ts +21 -24
  62. three/src/cameras/Camera.d.ts +14 -53
  63. three/src/cameras/CubeCamera.d.ts +32 -28
  64. three/src/cameras/OrthographicCamera.d.ts +70 -100
  65. three/src/cameras/PerspectiveCamera.d.ts +133 -146
  66. three/src/cameras/StereoCamera.d.ts +24 -30
  67. three/src/constants.d.ts +14 -2
  68. three/src/core/Clock.d.ts +3 -0
  69. three/src/core/Object3D.d.ts +31 -7
  70. three/src/geometries/TorusGeometry.d.ts +22 -3
  71. three/src/helpers/ArrowHelper.d.ts +34 -50
  72. three/src/helpers/AxesHelper.d.ts +22 -36
  73. three/src/helpers/Box3Helper.d.ts +14 -25
  74. three/src/helpers/BoxHelper.d.ts +28 -39
  75. three/src/helpers/CameraHelper.d.ts +31 -52
  76. three/src/helpers/DirectionalLightHelper.d.ts +32 -53
  77. three/src/helpers/GridHelper.d.ts +15 -29
  78. three/src/helpers/HemisphereLightHelper.d.ts +26 -49
  79. three/src/helpers/PlaneHelper.d.ts +21 -33
  80. three/src/helpers/PointLightHelper.d.ts +25 -50
  81. three/src/helpers/PolarGridHelper.d.ts +19 -32
  82. three/src/helpers/SkeletonHelper.d.ts +26 -50
  83. three/src/helpers/SpotLightHelper.d.ts +28 -55
  84. three/src/lights/AmbientLight.d.ts +15 -23
  85. three/src/lights/DirectionalLight.d.ts +40 -82
  86. three/src/lights/DirectionalLightShadow.d.ts +6 -61
  87. three/src/lights/HemisphereLight.d.ts +20 -47
  88. three/src/lights/Light.d.ts +18 -48
  89. three/src/lights/LightProbe.d.ts +24 -29
  90. three/src/lights/LightShadow.d.ts +107 -91
  91. three/src/lights/PointLight.d.ts +36 -77
  92. three/src/lights/PointLightShadow.d.ts +9 -6
  93. three/src/lights/RectAreaLight.d.ts +39 -59
  94. three/src/lights/SpotLight.d.ts +62 -116
  95. three/src/lights/SpotLightShadow.d.ts +17 -59
  96. three/src/lights/webgpu/IESSpotLight.d.ts +13 -1
  97. three/src/lights/webgpu/ProjectorLight.d.ts +9 -10
  98. three/src/materials/MeshLambertMaterial.d.ts +6 -0
  99. three/src/materials/MeshPhongMaterial.d.ts +6 -0
  100. three/src/materials/nodes/Line2NodeMaterial.d.ts +0 -6
  101. three/src/materials/nodes/LineBasicNodeMaterial.d.ts +0 -4
  102. three/src/materials/nodes/MeshBasicNodeMaterial.d.ts +1 -2
  103. three/src/materials/nodes/MeshLambertNodeMaterial.d.ts +0 -2
  104. three/src/materials/nodes/MeshNormalNodeMaterial.d.ts +0 -2
  105. three/src/materials/nodes/MeshSSSNodeMaterial.d.ts +5 -8
  106. three/src/materials/nodes/MeshToonNodeMaterial.d.ts +0 -4
  107. three/src/materials/nodes/NodeMaterial.d.ts +9 -3
  108. three/src/materials/nodes/SpriteNodeMaterial.d.ts +0 -3
  109. three/src/materials/nodes/VolumeNodeMaterial.d.ts +0 -2
  110. three/src/materials/nodes/manager/NodeMaterialObserver.d.ts +39 -93
  111. three/src/math/Color.d.ts +1 -0
  112. three/src/math/Vector3.d.ts +2 -2
  113. three/src/math/interpolants/BezierInterpolant.d.ts +7 -0
  114. three/src/nodes/Nodes.d.ts +55 -35
  115. three/src/nodes/TSL.d.ts +2 -5
  116. three/src/nodes/accessors/Arrays.d.ts +19 -10
  117. three/src/nodes/accessors/BufferAttributeNode.d.ts +99 -33
  118. three/src/nodes/accessors/BufferNode.d.ts +21 -7
  119. three/src/nodes/accessors/Camera.d.ts +10 -10
  120. three/src/nodes/accessors/CubeTextureNode.d.ts +1 -1
  121. three/src/nodes/accessors/InstanceNode.d.ts +6 -0
  122. three/src/nodes/accessors/Lights.d.ts +9 -6
  123. three/src/nodes/accessors/MaterialNode.d.ts +1 -3
  124. three/src/nodes/accessors/MaterialProperties.d.ts +4 -4
  125. three/src/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
  126. three/src/nodes/accessors/ModelNode.d.ts +34 -17
  127. three/src/nodes/accessors/MorphNode.d.ts +1 -1
  128. three/src/nodes/accessors/Normal.d.ts +13 -15
  129. three/src/nodes/accessors/Object3DNode.d.ts +35 -16
  130. three/src/nodes/accessors/Position.d.ts +9 -7
  131. three/src/nodes/accessors/ReferenceNode.d.ts +16 -7
  132. three/src/nodes/accessors/ReflectVector.d.ts +4 -5
  133. three/src/nodes/accessors/RendererReferenceNode.d.ts +1 -1
  134. three/src/nodes/accessors/SceneProperties.d.ts +5 -0
  135. three/src/nodes/accessors/SkinningNode.d.ts +5 -3
  136. three/src/nodes/accessors/StorageBufferNode.d.ts +49 -22
  137. three/src/nodes/accessors/StorageTextureNode.d.ts +1 -1
  138. three/src/nodes/accessors/Tangent.d.ts +5 -7
  139. three/src/nodes/accessors/Texture3DNode.d.ts +1 -1
  140. three/src/nodes/accessors/TextureBicubic.d.ts +3 -2
  141. three/src/nodes/accessors/TextureNode.d.ts +19 -18
  142. three/src/nodes/accessors/UV.d.ts +1 -1
  143. three/src/nodes/accessors/UniformArrayNode.d.ts +10 -8
  144. three/src/nodes/accessors/UserDataNode.d.ts +1 -1
  145. three/src/nodes/accessors/VelocityNode.d.ts +3 -3
  146. three/src/nodes/accessors/VertexColorNode.d.ts +1 -1
  147. three/src/nodes/code/FunctionCallNode.d.ts +0 -1
  148. three/src/nodes/code/FunctionNode.d.ts +7 -3
  149. three/src/nodes/core/ArrayNode.d.ts +2 -3
  150. three/src/nodes/core/AttributeNode.d.ts +12 -6
  151. three/src/nodes/core/BypassNode.d.ts +2 -3
  152. three/src/nodes/core/ConstNode.d.ts +10 -3
  153. three/src/nodes/core/ContextNode.d.ts +23 -28
  154. three/src/nodes/core/IndexNode.d.ts +1 -1
  155. three/src/nodes/core/InputNode.d.ts +12 -4
  156. three/src/nodes/core/InspectorNode.d.ts +2 -3
  157. three/src/nodes/core/IsolateNode.d.ts +2 -7
  158. three/src/nodes/core/MRTNode.d.ts +7 -0
  159. three/src/nodes/core/Node.d.ts +258 -39
  160. three/src/nodes/core/NodeAttribute.d.ts +30 -5
  161. three/src/nodes/core/NodeBuilder.d.ts +5 -3
  162. three/src/nodes/core/NodeCache.d.ts +24 -48
  163. three/src/nodes/core/NodeError.d.ts +9 -0
  164. three/src/nodes/core/NodeParser.d.ts +2 -0
  165. three/src/nodes/core/NodeUniform.d.ts +33 -9
  166. three/src/nodes/core/NodeVar.d.ts +33 -5
  167. three/src/nodes/core/NodeVarying.d.ts +32 -4
  168. three/src/nodes/core/ParameterNode.d.ts +11 -4
  169. three/src/nodes/core/PropertyNode.d.ts +45 -35
  170. three/src/nodes/core/StackTrace.d.ts +9 -0
  171. three/src/nodes/core/StructType.d.ts +3 -1
  172. three/src/nodes/core/StructTypeNode.d.ts +19 -5
  173. three/src/nodes/core/TempNode.d.ts +9 -3
  174. three/src/nodes/core/UniformNode.d.ts +53 -15
  175. three/src/nodes/core/VarNode.d.ts +15 -14
  176. three/src/nodes/core/VaryingNode.d.ts +14 -19
  177. three/src/nodes/core/constants.d.ts +9 -4
  178. three/src/nodes/display/BlendModes.d.ts +7 -27
  179. three/src/nodes/display/ColorAdjustment.d.ts +8 -9
  180. three/src/nodes/display/ColorSpaceNode.d.ts +2 -8
  181. three/src/nodes/display/FrontFacingNode.d.ts +1 -1
  182. three/src/nodes/display/PassNode.d.ts +9 -5
  183. three/src/nodes/display/RenderOutputNode.d.ts +3 -7
  184. three/src/nodes/display/ScreenNode.d.ts +25 -17
  185. three/src/nodes/display/ToneMappingNode.d.ts +3 -7
  186. three/src/nodes/display/ViewportDepthNode.d.ts +11 -7
  187. three/src/nodes/display/ViewportTextureNode.d.ts +2 -0
  188. three/src/nodes/fog/Fog.d.ts +5 -3
  189. three/src/nodes/geometry/RangeNode.d.ts +51 -9
  190. three/src/nodes/gpgpu/AtomicFunctionNode.d.ts +2 -0
  191. three/src/nodes/gpgpu/BarrierNode.d.ts +2 -0
  192. three/src/nodes/gpgpu/ComputeNode.d.ts +2 -7
  193. three/src/nodes/lighting/AnalyticLightNode.d.ts +1 -1
  194. three/src/nodes/lighting/HemisphereLightNode.d.ts +3 -2
  195. three/src/nodes/lighting/LightProbeNode.d.ts +1 -1
  196. three/src/nodes/lighting/LightUtils.d.ts +1 -1
  197. three/src/nodes/lighting/LightingContextNode.d.ts +1 -1
  198. three/src/nodes/lighting/SpotLightNode.d.ts +0 -6
  199. three/src/nodes/materialx/MaterialXNodes.d.ts +11 -11
  200. three/src/nodes/math/BitcountNode.d.ts +2 -0
  201. three/src/nodes/math/ConditionalNode.d.ts +43 -22
  202. three/src/nodes/math/Hash.d.ts +1 -1
  203. three/src/nodes/math/MathNode.d.ts +603 -267
  204. three/src/nodes/math/MathUtils.d.ts +9 -5
  205. three/src/nodes/math/OperatorNode.d.ts +490 -227
  206. three/src/nodes/math/TriNoise3D.d.ts +3 -3
  207. three/src/nodes/pmrem/PMREMNode.d.ts +1 -1
  208. three/src/nodes/procedural/Checker.d.ts +1 -1
  209. three/src/nodes/tsl/TSLCore.d.ts +1683 -224
  210. three/src/nodes/utils/ArrayElementNode.d.ts +9 -4
  211. three/src/nodes/utils/DebugNode.d.ts +2 -5
  212. three/src/nodes/utils/Discard.d.ts +2 -3
  213. three/src/nodes/utils/FlipNode.d.ts +11 -0
  214. three/src/nodes/utils/LoopNode.d.ts +17 -13
  215. three/src/nodes/utils/MaxMipLevelNode.d.ts +1 -1
  216. three/src/nodes/utils/Oscillators.d.ts +4 -4
  217. three/src/nodes/utils/Packing.d.ts +3 -3
  218. three/src/nodes/utils/PostProcessingUtils.d.ts +5 -5
  219. three/src/nodes/utils/RemapNode.d.ts +33 -39
  220. three/src/nodes/utils/RotateNode.d.ts +17 -8
  221. three/src/nodes/utils/SplitNode.d.ts +1 -2
  222. three/src/nodes/utils/SpriteSheetUV.d.ts +7 -0
  223. three/src/nodes/utils/StorageArrayElementNode.d.ts +18 -9
  224. three/src/nodes/utils/Timer.d.ts +4 -4
  225. three/src/nodes/utils/TriplanarTextures.d.ts +2 -2
  226. three/src/nodes/utils/UVUtils.d.ts +6 -4
  227. three/src/objects/BatchedMesh.d.ts +6 -4
  228. three/src/objects/InstancedMesh.d.ts +32 -24
  229. three/src/renderers/WebGLRenderer.d.ts +4 -93
  230. three/src/renderers/common/Animation.d.ts +46 -9
  231. three/src/renderers/common/Attributes.d.ts +11 -13
  232. three/src/renderers/common/Backend.d.ts +0 -2
  233. three/src/renderers/common/Background.d.ts +17 -15
  234. three/src/renderers/common/BindGroup.d.ts +27 -13
  235. three/src/renderers/common/Binding.d.ts +15 -3
  236. three/src/renderers/common/Bindings.d.ts +41 -17
  237. three/src/renderers/common/BlendMode.d.ts +22 -0
  238. three/src/renderers/common/Buffer.d.ts +35 -11
  239. three/src/renderers/common/BufferUtils.d.ts +3 -4
  240. three/src/renderers/common/BundleGroup.d.ts +16 -6
  241. three/src/renderers/common/CanvasTarget.d.ts +76 -13
  242. three/src/renderers/common/ChainMap.d.ts +12 -9
  243. three/src/renderers/common/ClippingContext.d.ts +61 -10
  244. three/src/renderers/common/Color4.d.ts +10 -5
  245. three/src/renderers/common/ComputePipeline.d.ts +16 -2
  246. three/src/renderers/common/Constants.d.ts +5 -3
  247. three/src/renderers/common/CubeRenderTarget.d.ts +24 -7
  248. three/src/renderers/common/DataMap.d.ts +10 -18
  249. three/src/renderers/common/Geometries.d.ts +39 -20
  250. three/src/renderers/common/Info.d.ts +62 -9
  251. three/src/renderers/common/InspectorBase.d.ts +19 -7
  252. three/src/renderers/common/Lighting.d.ts +2 -6
  253. three/src/renderers/common/Pipeline.d.ts +14 -2
  254. three/src/renderers/common/Pipelines.d.ts +58 -60
  255. three/src/renderers/common/PostProcessing.d.ts +14 -17
  256. three/src/renderers/common/ProgrammableStage.d.ts +48 -8
  257. three/src/renderers/common/RenderBundle.d.ts +4 -2
  258. three/src/renderers/common/RenderBundles.d.ts +6 -3
  259. three/src/renderers/common/RenderContext.d.ts +175 -7
  260. three/src/renderers/common/RenderContexts.d.ts +20 -25
  261. three/src/renderers/common/RenderList.d.ts +77 -11
  262. three/src/renderers/common/RenderLists.d.ts +16 -4
  263. three/src/renderers/common/RenderObject.d.ts +223 -47
  264. three/src/renderers/common/RenderObjectPipeline.d.ts +33 -0
  265. three/src/renderers/common/RenderObjects.d.ts +55 -22
  266. three/src/renderers/common/RenderPipeline.d.ts +20 -17
  267. three/src/renderers/common/Renderer.d.ts +625 -207
  268. three/src/renderers/common/Textures.d.ts +24 -46
  269. three/src/renderers/common/TimestampQueryPool.d.ts +62 -8
  270. three/src/renderers/common/Uniform.d.ts +143 -58
  271. three/src/renderers/common/UniformBuffer.d.ts +7 -5
  272. three/src/renderers/common/UniformsGroup.d.ts +50 -35
  273. three/src/renderers/common/XRManager.d.ts +321 -83
  274. three/src/renderers/common/XRRenderTarget.d.ts +49 -6
  275. three/src/renderers/common/nodes/NodeBuilderState.d.ts +75 -15
  276. three/src/renderers/common/nodes/NodeLibrary.d.ts +25 -5
  277. three/src/renderers/common/nodes/{Nodes.d.ts → NodeManager.d.ts} +54 -73
  278. three/src/renderers/common/nodes/NodeUniform.d.ts +60 -70
  279. three/src/renderers/common/nodes/NodeUniformsGroup.d.ts +23 -4
  280. three/src/renderers/shaders/UniformsLib.d.ts +0 -3
  281. three/src/renderers/webgl/WebGLAttributes.d.ts +9 -7
  282. three/src/renderers/webgl/WebGLEnvironments.d.ts +8 -0
  283. three/src/renderers/webgl/WebGLExtensions.d.ts +1 -1
  284. three/src/renderers/webgl/WebGLIndexedBufferRenderer.d.ts +9 -5
  285. three/src/renderers/webgl/WebGLLights.d.ts +19 -18
  286. three/src/renderers/webgl/WebGLObjects.d.ts +15 -2
  287. three/src/renderers/webgl/WebGLProgram.d.ts +2 -10
  288. three/src/renderers/webgl/WebGLPrograms.d.ts +2 -2
  289. three/src/renderers/webgl/WebGLRenderLists.d.ts +1 -3
  290. three/src/renderers/webgl/WebGLShadowMap.d.ts +0 -5
  291. three/src/renderers/webgl/WebGLState.d.ts +305 -28
  292. three/src/renderers/webgl/WebGLTextures.d.ts +10 -9
  293. three/src/renderers/webgl/WebGLUniforms.d.ts +0 -7
  294. three/src/renderers/webgpu/WebGPUBackend.d.ts +0 -1
  295. three/src/renderers/webgpu/nodes/BasicNodeLibrary.d.ts +2 -4
  296. three/src/renderers/webgpu/nodes/StandardNodeLibrary.d.ts +15 -4
  297. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +1 -1
  298. three/src/scenes/Fog.d.ts +31 -37
  299. three/src/scenes/FogExp2.d.ts +26 -31
  300. three/src/scenes/Scene.d.ts +51 -65
  301. three/src/textures/CompressedArrayTexture.d.ts +1 -1
  302. three/src/textures/DataArrayTexture.d.ts +1 -1
  303. three/src/utils.d.ts +5 -0
  304. three/examples/jsm/materials/MeshGouraudMaterial.d.ts +0 -18
  305. three/examples/jsm/materials/MeshPostProcessingMaterial.d.ts +0 -13
  306. three/examples/jsm/shaders/GodRaysShader.d.ts +0 -44
  307. three/src/nodes/accessors/SceneNode.d.ts +0 -21
  308. three/src/nodes/code/ScriptableNode.d.ts +0 -21
  309. three/src/nodes/code/ScriptableValueNode.d.ts +0 -9
  310. three/src/nodes/display/PosterizeNode.d.ts +0 -13
  311. three/src/nodes/utils/SpriteSheetUVNode.d.ts +0 -15
  312. three/src/renderers/webgl/WebGLCubeMaps.d.ts +0 -8
  313. three/src/renderers/webgl/WebGLCubeUVMaps.d.ts +0 -9
@@ -2,21 +2,21 @@ import { Camera } from "../../cameras/Camera.js";
2
2
  import { BufferAttribute } from "../../core/BufferAttribute.js";
3
3
  import { BufferGeometry } from "../../core/BufferGeometry.js";
4
4
  import { InterleavedBuffer } from "../../core/InterleavedBuffer.js";
5
- import { InterleavedBufferAttribute } from "../../core/InterleavedBufferAttribute.js";
6
5
  import { Object3D } from "../../core/Object3D.js";
7
6
  import { Material } from "../../materials/Material.js";
8
7
  import NodeMaterialObserver from "../../materials/nodes/manager/NodeMaterialObserver.js";
9
- import { LightsNode } from "../../nodes/Nodes.js";
8
+ import LightsNode from "../../nodes/lighting/LightsNode.js";
10
9
  import { Scene } from "../../scenes/Scene.js";
11
10
  import BindGroup from "./BindGroup.js";
12
11
  import BundleGroup from "./BundleGroup.js";
13
12
  import ClippingContext from "./ClippingContext.js";
14
13
  import Geometries from "./Geometries.js";
15
14
  import NodeBuilderState from "./nodes/NodeBuilderState.js";
16
- import Nodes from "./nodes/Nodes.js";
15
+ import NodeManager from "./nodes/NodeManager.js";
17
16
  import RenderContext from "./RenderContext.js";
18
17
  import Renderer from "./Renderer.js";
19
18
  import RenderPipeline from "./RenderPipeline.js";
19
+
20
20
  /**
21
21
  * A render object is the renderer's representation of single entity that gets drawn
22
22
  * with a draw command. There is no unique mapping of render objects to 3D objects in the
@@ -36,76 +36,256 @@ import RenderPipeline from "./RenderPipeline.js";
36
36
  * @private
37
37
  */
38
38
  declare class RenderObject {
39
- _nodes: Nodes;
40
- _geometries: Geometries;
39
+ /**
40
+ * Constructs a new render object.
41
+ *
42
+ * @param {Nodes} nodes - Renderer component for managing nodes related logic.
43
+ * @param {Geometries} geometries - Renderer component for managing geometries.
44
+ * @param {Renderer} renderer - The renderer.
45
+ * @param {Object3D} object - The 3D object.
46
+ * @param {Material} material - The 3D object's material.
47
+ * @param {Scene} scene - The scene the 3D object belongs to.
48
+ * @param {Camera} camera - The camera the object should be rendered with.
49
+ * @param {LightsNode} lightsNode - The lights node.
50
+ * @param {RenderContext} renderContext - The render context.
51
+ * @param {ClippingContext} clippingContext - The clipping context.
52
+ */
53
+ constructor(
54
+ nodes: NodeManager,
55
+ geometries: Geometries,
56
+ renderer: Renderer,
57
+ object: Object3D,
58
+ material: Material,
59
+ scene: Scene,
60
+ camera: Camera,
61
+ lightsNode: LightsNode,
62
+ renderContext: RenderContext,
63
+ clippingContext: ClippingContext,
64
+ );
41
65
  id: number;
66
+ /**
67
+ * Renderer component for managing nodes related logic.
68
+ *
69
+ * @type {Nodes}
70
+ * @private
71
+ */
72
+ private _nodes;
73
+ /**
74
+ * Renderer component for managing geometries.
75
+ *
76
+ * @type {Geometries}
77
+ * @private
78
+ */
79
+ private _geometries;
80
+ /**
81
+ * The renderer.
82
+ *
83
+ * @type {Renderer}
84
+ */
42
85
  renderer: Renderer;
86
+ /**
87
+ * The 3D object.
88
+ *
89
+ * @type {Object3D}
90
+ */
43
91
  object: Object3D;
92
+ /**
93
+ * The 3D object's material.
94
+ *
95
+ * @type {Material}
96
+ */
44
97
  material: Material;
98
+ /**
99
+ * The scene the 3D object belongs to.
100
+ *
101
+ * @type {Scene}
102
+ */
45
103
  scene: Scene;
104
+ /**
105
+ * The camera the 3D object should be rendered with.
106
+ *
107
+ * @type {Camera}
108
+ */
46
109
  camera: Camera;
110
+ /**
111
+ * The lights node.
112
+ *
113
+ * @type {LightsNode}
114
+ */
47
115
  lightsNode: LightsNode;
116
+ /**
117
+ * The render context.
118
+ *
119
+ * @type {RenderContext}
120
+ */
48
121
  context: RenderContext;
122
+ /**
123
+ * The 3D object's geometry.
124
+ *
125
+ * @type {BufferGeometry}
126
+ */
49
127
  geometry: BufferGeometry;
128
+ /**
129
+ * The render object's version.
130
+ *
131
+ * @type {number}
132
+ */
50
133
  version: number;
134
+ /**
135
+ * The draw range of the geometry.
136
+ *
137
+ * @type {?Object}
138
+ * @default null
139
+ */
51
140
  drawRange: {
52
141
  start: number;
53
142
  count: number;
54
143
  } | null;
55
- attributes: Array<BufferAttribute | InterleavedBufferAttribute> | null;
144
+ /**
145
+ * An array holding the buffer attributes
146
+ * of the render object. This entails attribute
147
+ * definitions on geometry and node level.
148
+ *
149
+ * @type {?Array<BufferAttribute>}
150
+ * @default null
151
+ */
152
+ attributes: BufferAttribute[] | null;
153
+ /**
154
+ * An object holding the version of the
155
+ * attributes. The keys are the attribute names
156
+ * and the values are the attribute versions.
157
+ *
158
+ * @type {?Object<string, number>}
159
+ * @default null
160
+ */
56
161
  attributesId: {
57
- [attributeName: string]: number;
162
+ [x: string]: number;
58
163
  } | null;
59
- pipeline: RenderPipeline | null;
164
+ /**
165
+ * A reference to a render pipeline the render
166
+ * object is processed with.
167
+ *
168
+ * @type {RenderPipeline}
169
+ * @default null
170
+ */
171
+ pipeline: RenderPipeline;
172
+ /**
173
+ * Only relevant for objects using
174
+ * multiple materials. This represents a group entry
175
+ * from the respective `BufferGeometry`.
176
+ *
177
+ * @type {?{start: number, count: number}}
178
+ * @default null
179
+ */
60
180
  group: {
61
181
  start: number;
62
182
  count: number;
63
183
  } | null;
184
+ /**
185
+ * An array holding the vertex buffers which can
186
+ * be buffer attributes but also interleaved buffers.
187
+ *
188
+ * @type {?Array<BufferAttribute|InterleavedBuffer>}
189
+ * @default null
190
+ */
64
191
  vertexBuffers: Array<BufferAttribute | InterleavedBuffer> | null;
192
+ /**
193
+ * The parameters for the draw command.
194
+ *
195
+ * @type {?Object}
196
+ * @default null
197
+ */
65
198
  drawParams: {
66
199
  vertexCount: number;
67
200
  firstVertex: number;
68
201
  instanceCount: number;
69
202
  firstInstance: number;
70
203
  } | null;
204
+ /**
205
+ * If this render object is used inside a render bundle,
206
+ * this property points to the respective bundle group.
207
+ *
208
+ * @type {?BundleGroup}
209
+ * @default null
210
+ */
71
211
  bundle: BundleGroup | null;
72
- clippingContext: ClippingContext | null;
212
+ /**
213
+ * The clipping context.
214
+ *
215
+ * @type {ClippingContext}
216
+ */
217
+ clippingContext: ClippingContext;
218
+ /**
219
+ * The clipping context's cache key.
220
+ *
221
+ * @type {string}
222
+ */
73
223
  clippingContextCacheKey: string;
224
+ /**
225
+ * The initial node cache key.
226
+ *
227
+ * @type {number}
228
+ */
74
229
  initialNodesCacheKey: number;
230
+ /**
231
+ * The initial cache key.
232
+ *
233
+ * @type {number}
234
+ */
75
235
  initialCacheKey: number;
76
- _nodeBuilderState: NodeBuilderState | null;
77
- _bindings: BindGroup[] | null;
78
- _monitor: NodeMaterialObserver | null;
236
+ /**
237
+ * The node builder state.
238
+ *
239
+ * @type {?NodeBuilderState}
240
+ * @private
241
+ * @default null
242
+ */
243
+ private _nodeBuilderState;
244
+ /**
245
+ * An array of bindings.
246
+ *
247
+ * @type {?Array<BindGroup>}
248
+ * @private
249
+ * @default null
250
+ */
251
+ private _bindings;
252
+ /**
253
+ * Reference to the node material observer.
254
+ *
255
+ * @type {?NodeMaterialObserver}
256
+ * @private
257
+ * @default null
258
+ */
259
+ private _monitor;
260
+ /**
261
+ * An event listener which is defined by `RenderObjects`. It performs
262
+ * clean up tasks when `dispose()` on this render object.
263
+ *
264
+ * @method
265
+ */
79
266
  onDispose: (() => void) | null;
80
- readonly isRenderObject: true;
267
+ /**
268
+ * This flag can be used for type testing.
269
+ *
270
+ * @type {boolean}
271
+ * @readonly
272
+ * @default true
273
+ */
274
+ readonly isRenderObject: boolean;
275
+ /**
276
+ * An event listener which is executed when `dispose()` is called on
277
+ * the material of this render object.
278
+ *
279
+ * @method
280
+ */
81
281
  onMaterialDispose: () => void;
82
- onGeometryDispose: () => void;
83
282
  /**
84
- * Constructs a new render object.
283
+ * An event listener which is executed when `dispose()` is called on
284
+ * the geometry of this render object.
85
285
  *
86
- * @param {Nodes} nodes - Renderer component for managing nodes related logic.
87
- * @param {Geometries} geometries - Renderer component for managing geometries.
88
- * @param {Renderer} renderer - The renderer.
89
- * @param {Object3D} object - The 3D object.
90
- * @param {Material} material - The 3D object's material.
91
- * @param {Scene} scene - The scene the 3D object belongs to.
92
- * @param {Camera} camera - The camera the object should be rendered with.
93
- * @param {LightsNode} lightsNode - The lights node.
94
- * @param {RenderContext} renderContext - The render context.
95
- * @param {ClippingContext} clippingContext - The clipping context.
286
+ * @method
96
287
  */
97
- constructor(
98
- nodes: Nodes,
99
- geometries: Geometries,
100
- renderer: Renderer,
101
- object: Object3D,
102
- material: Material,
103
- scene: Scene,
104
- camera: Camera,
105
- lightsNode: LightsNode,
106
- renderContext: RenderContext,
107
- clippingContext: ClippingContext | null,
108
- );
288
+ onGeometryDispose: () => void;
109
289
  /**
110
290
  * Updates the clipping context.
111
291
  *
@@ -150,7 +330,7 @@ declare class RenderObject {
150
330
  * @param {string} name - The name of the binding group.
151
331
  * @return {?BindGroup} The bindings.
152
332
  */
153
- getBindingGroup(name: string): BindGroup | undefined;
333
+ getBindingGroup(name: string): BindGroup | null;
154
334
  /**
155
335
  * Returns the index of the render object's geometry.
156
336
  *
@@ -162,7 +342,7 @@ declare class RenderObject {
162
342
  *
163
343
  * @return {?BufferAttribute} The indirect attribute. `null` if no indirect drawing is used.
164
344
  */
165
- getIndirect(): import("./IndirectStorageBufferAttribute.js").default | null;
345
+ getIndirect(): BufferAttribute | null;
166
346
  /**
167
347
  * Returns the byte offset into the indirect attribute buffer.
168
348
  *
@@ -174,12 +354,7 @@ declare class RenderObject {
174
354
  *
175
355
  * @return {Array<Object>} An array with object references.
176
356
  */
177
- getChainArray(): readonly [
178
- Object3D<import("../../core/Object3D.js").Object3DEventMap>,
179
- Material,
180
- RenderContext,
181
- LightsNode,
182
- ];
357
+ getChainArray(): unknown[];
183
358
  /**
184
359
  * This method is used when the geometry of a 3D object has been exchanged and the
185
360
  * respective render object now requires an update.
@@ -193,13 +368,13 @@ declare class RenderObject {
193
368
  *
194
369
  * @return {Array<BufferAttribute>} An array with buffer attributes.
195
370
  */
196
- getAttributes(): (BufferAttribute | InterleavedBufferAttribute)[];
371
+ getAttributes(): BufferAttribute[];
197
372
  /**
198
373
  * Returns the vertex buffers of the render object.
199
374
  *
200
375
  * @return {Array<BufferAttribute|InterleavedBuffer>} An array with buffer attribute or interleaved buffers.
201
376
  */
202
- getVertexBuffers(): (BufferAttribute | InterleavedBuffer)[] | null;
377
+ getVertexBuffers(): Array<BufferAttribute | InterleavedBuffer>;
203
378
  /**
204
379
  * Returns the draw parameters for the render object.
205
380
  *
@@ -269,4 +444,5 @@ declare class RenderObject {
269
444
  */
270
445
  dispose(): void;
271
446
  }
447
+
272
448
  export default RenderObject;
@@ -0,0 +1,33 @@
1
+ import Pipeline from "./Pipeline.js";
2
+ import ProgrammableStage from "./ProgrammableStage.js";
3
+
4
+ /**
5
+ * Class for representing render pipelines.
6
+ *
7
+ * @private
8
+ * @augments Pipeline
9
+ */
10
+ declare class RenderObjectPipeline extends Pipeline {
11
+ /**
12
+ * Constructs a new render object pipeline.
13
+ *
14
+ * @param {string} cacheKey - The pipeline's cache key.
15
+ * @param {ProgrammableStage} vertexProgram - The pipeline's vertex shader.
16
+ * @param {ProgrammableStage} fragmentProgram - The pipeline's fragment shader.
17
+ */
18
+ constructor(cacheKey: string, vertexProgram: ProgrammableStage, fragmentProgram: ProgrammableStage);
19
+ /**
20
+ * The pipeline's vertex shader.
21
+ *
22
+ * @type {ProgrammableStage}
23
+ */
24
+ vertexProgram: ProgrammableStage;
25
+ /**
26
+ * The pipeline's fragment shader.
27
+ *
28
+ * @type {ProgrammableStage}
29
+ */
30
+ fragmentProgram: ProgrammableStage;
31
+ }
32
+
33
+ export default RenderObjectPipeline;
@@ -8,26 +8,18 @@ import ChainMap from "./ChainMap.js";
8
8
  import ClippingContext from "./ClippingContext.js";
9
9
  import Geometries from "./Geometries.js";
10
10
  import Info from "./Info.js";
11
- import Nodes from "./nodes/Nodes.js";
11
+ import NodeManager from "./nodes/NodeManager.js";
12
12
  import Pipelines from "./Pipelines.js";
13
13
  import RenderContext from "./RenderContext.js";
14
14
  import Renderer from "./Renderer.js";
15
15
  import RenderObject from "./RenderObject.js";
16
+
16
17
  /**
17
18
  * This module manages the render objects of the renderer.
18
19
  *
19
20
  * @private
20
21
  */
21
22
  declare class RenderObjects {
22
- renderer: Renderer;
23
- nodes: Nodes;
24
- geometries: Geometries;
25
- pipelines: Pipelines;
26
- bindings: Bindings;
27
- info: Info;
28
- chainMaps: {
29
- [passId: string]: ChainMap<readonly [Object3D, Material, RenderContext, LightsNode], RenderObject>;
30
- };
31
23
  /**
32
24
  * Constructs a new render object management component.
33
25
  *
@@ -40,12 +32,57 @@ declare class RenderObjects {
40
32
  */
41
33
  constructor(
42
34
  renderer: Renderer,
43
- nodes: Nodes,
35
+ nodes: NodeManager,
44
36
  geometries: Geometries,
45
37
  pipelines: Pipelines,
46
38
  bindings: Bindings,
47
39
  info: Info,
48
40
  );
41
+ /**
42
+ * The renderer.
43
+ *
44
+ * @type {Renderer}
45
+ */
46
+ renderer: Renderer;
47
+ /**
48
+ * Renderer component for managing nodes related logic.
49
+ *
50
+ * @type {Nodes}
51
+ */
52
+ nodes: NodeManager;
53
+ /**
54
+ * Renderer component for managing geometries.
55
+ *
56
+ * @type {Geometries}
57
+ */
58
+ geometries: Geometries;
59
+ /**
60
+ * Renderer component for managing pipelines.
61
+ *
62
+ * @type {Pipelines}
63
+ */
64
+ pipelines: Pipelines;
65
+ /**
66
+ * Renderer component for managing bindings.
67
+ *
68
+ * @type {Bindings}
69
+ */
70
+ bindings: Bindings;
71
+ /**
72
+ * Renderer component for managing metrics and monitoring data.
73
+ *
74
+ * @type {Info}
75
+ */
76
+ info: Info;
77
+ /**
78
+ * A dictionary that manages render contexts in chain maps
79
+ * for each pass ID.
80
+ *
81
+ * @type {Object<string,ChainMap>}
82
+ */
83
+ chainMaps: {
84
+ [x: string]: ChainMap;
85
+ };
49
86
  /**
50
87
  * Returns a render object for the given object and state data.
51
88
  *
@@ -66,8 +103,8 @@ declare class RenderObjects {
66
103
  camera: Camera,
67
104
  lightsNode: LightsNode,
68
105
  renderContext: RenderContext,
69
- clippingContext: ClippingContext | null,
70
- passId?: string | undefined,
106
+ clippingContext: ClippingContext,
107
+ passId?: string,
71
108
  ): RenderObject;
72
109
  /**
73
110
  * Returns a chain map for the given pass ID.
@@ -75,12 +112,7 @@ declare class RenderObjects {
75
112
  * @param {string} [passId='default'] - The pass ID.
76
113
  * @return {ChainMap} The chain map.
77
114
  */
78
- getChainMap(
79
- passId?: string,
80
- ): ChainMap<
81
- readonly [Object3D<import("../../core/Object3D.js").Object3DEventMap>, Material, RenderContext, LightsNode],
82
- RenderObject
83
- >;
115
+ getChainMap(passId?: string): ChainMap;
84
116
  /**
85
117
  * Frees internal resources.
86
118
  */
@@ -102,7 +134,7 @@ declare class RenderObjects {
102
134
  * @return {RenderObject} The render object.
103
135
  */
104
136
  createRenderObject(
105
- nodes: Nodes,
137
+ nodes: NodeManager,
106
138
  geometries: Geometries,
107
139
  renderer: Renderer,
108
140
  object: Object3D,
@@ -111,8 +143,9 @@ declare class RenderObjects {
111
143
  camera: Camera,
112
144
  lightsNode: LightsNode,
113
145
  renderContext: RenderContext,
114
- clippingContext: ClippingContext | null,
115
- passId: string | undefined,
146
+ clippingContext: ClippingContext,
147
+ passId?: string,
116
148
  ): RenderObject;
117
149
  }
150
+
118
151
  export default RenderObjects;
@@ -1,21 +1,24 @@
1
- import Pipeline from "./Pipeline.js";
2
- import ProgrammableStage from "./ProgrammableStage.js";
3
- /**
4
- * Class for representing render pipelines.
5
- *
6
- * @private
7
- * @augments Pipeline
8
- */
9
- declare class RenderPipeline extends Pipeline {
10
- vertexProgram: ProgrammableStage;
11
- fragmentProgram: ProgrammableStage;
1
+ import { Node } from "../../nodes/Nodes.js";
2
+ import Renderer from "./Renderer.js";
3
+
4
+ declare class RenderPipeline {
5
+ renderer: Renderer;
6
+ outputNode: Node;
7
+
8
+ outputColorTransform: boolean;
9
+
10
+ needsUpdate: boolean;
11
+
12
+ constructor(renderer: Renderer, outputNode?: Node);
13
+
14
+ render(): void;
15
+
16
+ dispose(): void;
17
+
12
18
  /**
13
- * Constructs a new render pipeline.
14
- *
15
- * @param {string} cacheKey - The pipeline's cache key.
16
- * @param {ProgrammableStage} vertexProgram - The pipeline's vertex shader.
17
- * @param {ProgrammableStage} fragmentProgram - The pipeline's fragment shader.
19
+ * @deprecated "renderAsync()" has been deprecated. Use "render()" and "await renderer.init();" when creating the renderer.
18
20
  */
19
- constructor(cacheKey: string, vertexProgram: ProgrammableStage, fragmentProgram: ProgrammableStage);
21
+ renderAsync(): Promise<void>;
20
22
  }
23
+
21
24
  export default RenderPipeline;