@types/three 0.165.0 → 0.167.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 (330) hide show
  1. three/README.md +1 -1
  2. three/build/three.webgpu.d.ts +1 -0
  3. three/build/three.webgpu.min.d.ts +1 -0
  4. three/examples/jsm/Addons.d.ts +1 -1
  5. three/examples/jsm/animation/MMDPhysics.d.ts +4 -4
  6. three/examples/jsm/csm/CSM.d.ts +3 -4
  7. three/examples/jsm/csm/CSMFrustum.d.ts +1 -1
  8. three/examples/jsm/exporters/GLTFExporter.d.ts +6 -0
  9. three/examples/jsm/geometries/TeapotGeometry.d.ts +24 -0
  10. three/examples/jsm/helpers/ViewHelper.d.ts +8 -6
  11. three/examples/jsm/lights/RectAreaLightTexturesLib.d.ts +7 -0
  12. three/examples/jsm/lights/RectAreaLightUniformsLib.d.ts +4 -2
  13. three/examples/jsm/lines/LineMaterial.d.ts +2 -4
  14. three/examples/jsm/lines/webgpu/Line2.d.ts +14 -0
  15. three/examples/jsm/lines/webgpu/LineSegments2.d.ts +15 -0
  16. three/examples/jsm/loaders/DDSLoader.d.ts +8 -2
  17. three/examples/jsm/loaders/GLTFLoader.d.ts +3 -1
  18. three/examples/jsm/loaders/KTX2Loader.d.ts +1 -2
  19. three/examples/jsm/loaders/KTXLoader.d.ts +8 -2
  20. three/examples/jsm/loaders/LUTImageLoader.d.ts +18 -0
  21. three/examples/jsm/loaders/MaterialXLoader.d.ts +1 -2
  22. three/examples/jsm/loaders/PVRLoader.d.ts +2 -2
  23. three/examples/jsm/loaders/UltraHDRLoader.d.ts +21 -0
  24. three/package.json +6 -5
  25. three/src/Three.WebGPU.d.ts +184 -0
  26. three/src/Three.d.ts +26 -91
  27. three/src/animation/AnimationClip.d.ts +12 -4
  28. three/src/animation/AnimationUtils.d.ts +32 -7
  29. three/src/animation/KeyframeTrack.d.ts +9 -1
  30. three/src/animation/PropertyBinding.d.ts +12 -12
  31. three/src/cameras/OrthographicCamera.d.ts +27 -0
  32. three/src/cameras/PerspectiveCamera.d.ts +31 -0
  33. three/src/constants.d.ts +13 -1
  34. three/src/core/BufferAttribute.d.ts +11 -6
  35. three/src/core/BufferGeometry.d.ts +26 -3
  36. three/src/core/InterleavedBufferAttribute.d.ts +3 -3
  37. three/src/core/Object3D.d.ts +51 -6
  38. three/src/extras/DataUtils.d.ts +9 -2
  39. three/src/extras/ImageUtils.d.ts +6 -7
  40. three/src/extras/ShapeUtils.d.ts +5 -8
  41. three/src/extras/TextureUtils.d.ts +42 -0
  42. three/src/extras/core/Curve.d.ts +8 -2
  43. three/src/extras/core/CurvePath.d.ts +9 -1
  44. three/src/extras/core/Path.d.ts +9 -2
  45. three/src/extras/core/Shape.d.ts +9 -1
  46. three/src/lights/Light.d.ts +19 -2
  47. three/src/lights/LightShadow.d.ts +18 -2
  48. three/src/lights/webgpu/IESSpotLight.d.ts +6 -0
  49. three/src/loaders/Cache.d.ts +13 -8
  50. three/src/materials/Material.d.ts +185 -14
  51. three/src/materials/ShaderMaterial.d.ts +49 -2
  52. three/src/math/ColorManagement.d.ts +3 -0
  53. three/src/math/Euler.d.ts +4 -2
  54. three/src/math/Matrix2.d.ts +53 -0
  55. three/src/math/Matrix3.d.ts +67 -115
  56. three/src/math/Matrix4.d.ts +48 -100
  57. three/src/math/Quaternion.d.ts +5 -3
  58. three/src/math/Vector2.d.ts +1 -1
  59. three/src/math/Vector4.d.ts +6 -0
  60. three/{examples/jsm → src}/nodes/Nodes.d.ts +37 -7
  61. three/{examples/jsm → src}/nodes/accessors/BatchNode.d.ts +1 -1
  62. three/{examples/jsm → src}/nodes/accessors/BufferAttributeNode.d.ts +5 -1
  63. three/{examples/jsm → src}/nodes/accessors/CameraNode.d.ts +3 -1
  64. three/{examples/jsm → src}/nodes/accessors/CubeTextureNode.d.ts +11 -3
  65. three/{examples/jsm → src}/nodes/accessors/InstanceNode.d.ts +1 -1
  66. three/{examples/jsm → src}/nodes/accessors/MaterialNode.d.ts +11 -2
  67. three/{examples/jsm → src}/nodes/accessors/MaterialReferenceNode.d.ts +1 -1
  68. three/{examples/jsm → src}/nodes/accessors/ModelNode.d.ts +1 -1
  69. three/{examples/jsm → src}/nodes/accessors/NormalNode.d.ts +3 -3
  70. three/{examples/jsm → src}/nodes/accessors/Object3DNode.d.ts +1 -1
  71. three/{examples/jsm → src}/nodes/accessors/ReflectVectorNode.d.ts +3 -0
  72. three/{examples/jsm → src}/nodes/accessors/SkinningNode.d.ts +1 -1
  73. three/{examples/jsm → src}/nodes/accessors/StorageBufferNode.d.ts +7 -0
  74. three/src/nodes/accessors/StorageTextureNode.d.ts +40 -0
  75. three/{examples/jsm → src}/nodes/accessors/Texture3DNode.d.ts +3 -2
  76. three/{examples/jsm → src}/nodes/accessors/TextureNode.d.ts +9 -2
  77. three/{examples/jsm → src}/nodes/core/CacheNode.d.ts +4 -5
  78. three/{examples/jsm → src}/nodes/core/IndexNode.d.ts +3 -1
  79. three/{examples/jsm → src}/nodes/core/LightingModel.d.ts +12 -3
  80. three/src/nodes/core/MRTNode.d.ts +19 -0
  81. three/{examples/jsm → src}/nodes/core/Node.d.ts +6 -10
  82. three/{examples/jsm → src}/nodes/core/NodeBuilder.d.ts +13 -3
  83. three/{examples/jsm → src}/nodes/core/NodeCache.d.ts +13 -4
  84. three/{examples/jsm → src}/nodes/core/NodeFrame.d.ts +5 -2
  85. three/{examples/jsm → src}/nodes/core/NodeFunction.d.ts +2 -2
  86. three/{examples/jsm → src}/nodes/core/NodeUniform.d.ts +1 -1
  87. three/{examples/jsm → src}/nodes/core/NodeUtils.d.ts +6 -1
  88. three/{examples/jsm → src}/nodes/core/PropertyNode.d.ts +1 -0
  89. three/{examples/jsm → src}/nodes/core/UniformNode.d.ts +2 -0
  90. three/{examples/jsm → src}/nodes/core/VarNode.d.ts +2 -0
  91. three/{examples/jsm → src}/nodes/display/AnamorphicNode.d.ts +1 -1
  92. three/src/nodes/display/BloomNode.d.ts +35 -0
  93. three/{examples/jsm → src}/nodes/display/ColorAdjustmentNode.d.ts +0 -1
  94. three/{examples/jsm → src}/nodes/display/ColorSpaceNode.d.ts +1 -1
  95. three/src/nodes/display/DenoiseNode.d.ts +38 -0
  96. three/src/nodes/display/DepthOfFieldNode.d.ts +30 -0
  97. three/src/nodes/display/DotScreenNode.d.ts +27 -0
  98. three/src/nodes/display/FXAANode.d.ts +19 -0
  99. three/src/nodes/display/FilmNode.d.ts +25 -0
  100. three/src/nodes/display/GTAONode.d.ts +46 -0
  101. three/{examples/jsm → src}/nodes/display/GaussianBlurNode.d.ts +8 -5
  102. three/src/nodes/display/Lut3DNode.d.ts +30 -0
  103. three/{examples/jsm → src}/nodes/display/NormalMapNode.d.ts +1 -2
  104. three/src/nodes/display/PassNode.d.ts +62 -0
  105. three/src/nodes/display/PixelationPassNode.d.ts +67 -0
  106. three/src/nodes/display/RGBShiftNode.d.ts +24 -0
  107. three/src/nodes/display/RenderOutputNode.d.ts +28 -0
  108. three/src/nodes/display/SobelOperatorNode.d.ts +17 -0
  109. three/{examples/jsm → src}/nodes/display/ToneMappingNode.d.ts +1 -1
  110. three/src/nodes/display/TransitionNode.d.ts +41 -0
  111. three/{examples/jsm → src}/nodes/display/ViewportDepthNode.d.ts +4 -6
  112. three/{examples/jsm → src}/nodes/display/ViewportTextureNode.d.ts +1 -1
  113. three/src/nodes/functions/BSDF/LTC.d.ts +9 -0
  114. three/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated_Anisotropic.d.ts +1 -1
  115. three/src/nodes/functions/BasicLightingModel.d.ts +7 -0
  116. three/src/nodes/functions/PhongLightingModel.d.ts +7 -0
  117. three/{examples/jsm → src}/nodes/geometry/RangeNode.d.ts +4 -1
  118. three/{examples/jsm → src}/nodes/lighting/AnalyticLightNode.d.ts +1 -1
  119. three/src/nodes/lighting/BasicEnvironmentNode.d.ts +10 -0
  120. three/src/nodes/lighting/BasicLightMapNode.d.ts +8 -0
  121. three/{examples/jsm → src}/nodes/lighting/HemisphereLightNode.d.ts +1 -1
  122. three/{examples/jsm → src}/nodes/lighting/LightingNode.d.ts +2 -0
  123. three/{examples/jsm → src}/nodes/lighting/LightsNode.d.ts +1 -1
  124. three/{examples/jsm → src}/nodes/lighting/PointLightNode.d.ts +1 -1
  125. three/src/nodes/lighting/RectAreaLightNode.d.ts +21 -0
  126. three/{examples/jsm → src}/nodes/lighting/SpotLightNode.d.ts +1 -1
  127. three/{examples/jsm → src}/nodes/loaders/NodeLoader.d.ts +3 -1
  128. three/{examples/jsm → src}/nodes/loaders/NodeMaterialLoader.d.ts +1 -1
  129. three/{examples/jsm → src}/nodes/loaders/NodeObjectLoader.d.ts +3 -1
  130. three/src/nodes/materials/Line2NodeMaterial.d.ts +53 -0
  131. three/{examples/jsm → src}/nodes/materials/LineBasicNodeMaterial.d.ts +3 -1
  132. three/{examples/jsm → src}/nodes/materials/Materials.d.ts +2 -1
  133. three/{examples/jsm → src}/nodes/materials/MeshBasicNodeMaterial.d.ts +5 -1
  134. three/{examples/jsm → src}/nodes/materials/MeshMatcapNodeMaterial.d.ts +5 -1
  135. three/{examples/jsm → src}/nodes/materials/MeshNormalNodeMaterial.d.ts +4 -1
  136. three/{examples/jsm → src}/nodes/materials/MeshPhongNodeMaterial.d.ts +8 -4
  137. three/{examples/jsm → src}/nodes/materials/MeshPhysicalNodeMaterial.d.ts +21 -20
  138. three/src/nodes/materials/MeshSSSNodeMaterial.d.ts +16 -0
  139. three/{examples/jsm → src}/nodes/materials/MeshStandardNodeMaterial.d.ts +9 -5
  140. three/{examples/jsm → src}/nodes/materials/MeshToonNodeMaterial.d.ts +5 -1
  141. three/{examples/jsm → src}/nodes/materials/NodeMaterial.d.ts +54 -49
  142. three/{examples/jsm → src}/nodes/materials/PointsNodeMaterial.d.ts +3 -1
  143. three/{examples/jsm → src}/nodes/materials/ShadowNodeMaterial.d.ts +2 -1
  144. three/{examples/jsm → src}/nodes/materials/SpriteNodeMaterial.d.ts +5 -4
  145. three/{examples/jsm → src}/nodes/materialx/lib/mx_hsv.d.ts +1 -0
  146. three/src/nodes/materialx/lib/mx_noise.d.ts +359 -0
  147. three/{examples/jsm → src}/nodes/math/MathNode.d.ts +9 -1
  148. three/{examples/jsm → src}/nodes/pmrem/PMREMNode.d.ts +1 -1
  149. three/{examples/jsm → src}/nodes/utils/DiscardNode.d.ts +1 -0
  150. three/{examples/jsm → src}/nodes/utils/MaxMipLevelNode.d.ts +3 -3
  151. three/src/nodes/utils/PackingNode.d.ts +24 -0
  152. three/src/nodes/utils/RTTNode.d.ts +45 -0
  153. three/{examples/jsm → src}/nodes/utils/ReflectorNode.d.ts +3 -1
  154. three/src/objects/BatchedMesh.d.ts +58 -54
  155. three/src/objects/InstancedMesh.d.ts +15 -2
  156. three/src/objects/LOD.d.ts +17 -1
  157. three/src/objects/Mesh.d.ts +11 -1
  158. three/src/objects/Points.d.ts +0 -3
  159. three/src/objects/Skeleton.d.ts +10 -3
  160. three/src/objects/SkinnedMesh.d.ts +15 -3
  161. three/{examples/jsm → src}/renderers/common/Animation.d.ts +0 -1
  162. three/{examples/jsm → src}/renderers/common/Attributes.d.ts +4 -2
  163. three/{examples/jsm → src}/renderers/common/Backend.d.ts +1 -1
  164. three/{examples/jsm → src}/renderers/common/Background.d.ts +2 -1
  165. three/src/renderers/common/BindGroup.d.ts +9 -0
  166. three/{examples/jsm → src}/renderers/common/Bindings.d.ts +11 -14
  167. three/{examples/jsm → src}/renderers/common/ClippingContext.d.ts +6 -1
  168. three/{examples/jsm → src}/renderers/common/Color4.d.ts +1 -1
  169. three/{examples/jsm → src}/renderers/common/CubeRenderTarget.d.ts +4 -1
  170. three/{examples/jsm → src}/renderers/common/Geometries.d.ts +6 -3
  171. three/{examples/jsm → src}/renderers/common/Info.d.ts +7 -2
  172. three/{examples/jsm → src}/renderers/common/PostProcessing.d.ts +9 -1
  173. three/{examples/jsm/objects → src/renderers/common}/QuadMesh.d.ts +4 -2
  174. three/{examples/jsm → src}/renderers/common/RenderBundle.d.ts +2 -1
  175. three/{examples/jsm → src}/renderers/common/RenderBundles.d.ts +2 -1
  176. three/{examples/jsm → src}/renderers/common/RenderContext.d.ts +4 -1
  177. three/{examples/jsm → src}/renderers/common/RenderContexts.d.ts +3 -1
  178. three/{examples/jsm → src}/renderers/common/RenderList.d.ts +5 -1
  179. three/{examples/jsm → src}/renderers/common/RenderLists.d.ts +2 -1
  180. three/{examples/jsm → src}/renderers/common/RenderObject.d.ts +19 -16
  181. three/{examples/jsm → src}/renderers/common/RenderObjects.d.ts +5 -2
  182. three/{examples/jsm → src}/renderers/common/Renderer.d.ts +41 -29
  183. three/src/renderers/common/SampledTexture.d.ts +27 -0
  184. three/src/renderers/common/Sampler.d.ts +11 -0
  185. three/{examples/jsm → src}/renderers/common/StorageBufferAttribute.d.ts +1 -1
  186. three/{examples/jsm → src}/renderers/common/StorageInstancedBufferAttribute.d.ts +2 -1
  187. three/{examples/jsm → src}/renderers/common/StorageTexture.d.ts +1 -1
  188. three/{examples/jsm → src}/renderers/common/Textures.d.ts +4 -1
  189. three/{examples/jsm → src}/renderers/common/Uniform.d.ts +9 -4
  190. three/{examples/jsm → src}/renderers/common/UniformsGroup.d.ts +4 -2
  191. three/{examples/jsm → src}/renderers/common/extras/PMREMGenerator.d.ts +2 -1
  192. three/{examples/jsm → src}/renderers/common/nodes/NodeBuilderState.d.ts +8 -4
  193. three/src/renderers/common/nodes/NodeSampledTexture.d.ts +29 -0
  194. three/src/renderers/common/nodes/NodeSampler.d.ts +12 -0
  195. three/{examples/jsm → src}/renderers/common/nodes/NodeUniform.d.ts +10 -5
  196. three/{examples/jsm → src}/renderers/common/nodes/NodeUniformsGroup.d.ts +1 -3
  197. three/{examples/jsm → src}/renderers/common/nodes/Nodes.d.ts +22 -8
  198. three/src/renderers/shaders/ShaderLib.d.ts +3 -1
  199. three/src/renderers/shaders/UniformsLib.d.ts +3 -0
  200. three/src/renderers/shaders/UniformsUtils.d.ts +6 -3
  201. three/{examples/jsm/renderers/webgl → src/renderers/webgl-fallback}/WebGLBackend.d.ts +1 -1
  202. three/{examples/jsm → src}/renderers/webgpu/WebGPUBackend.d.ts +1 -1
  203. three/src/renderers/webgpu/nodes/WGSLNodeBuilder.d.ts +125 -0
  204. three/src/renderers/webgpu/nodes/WGSLNodeFunction.d.ts +6 -0
  205. three/src/renderers/webgpu/nodes/WGSLNodeParser.d.ts +6 -0
  206. three/src/renderers/webgpu/utils/WebGPUConstants.d.ts +328 -0
  207. three/src/renderers/webxr/WebXRDepthSensing.d.ts +2 -0
  208. three/src/renderers/webxr/WebXRManager.d.ts +33 -23
  209. three/src/scenes/Fog.d.ts +7 -24
  210. three/src/scenes/FogExp2.d.ts +9 -3
  211. three/src/scenes/Scene.d.ts +21 -5
  212. three/src/textures/CompressedArrayTexture.d.ts +4 -4
  213. three/src/textures/CompressedTexture.d.ts +16 -8
  214. three/src/textures/Source.d.ts +15 -1
  215. three/src/textures/Texture.d.ts +40 -2
  216. three/examples/jsm/deprecated/Geometry.d.ts +0 -341
  217. three/examples/jsm/lights/IESSpotLight.d.ts +0 -5
  218. three/examples/jsm/nodes/display/PassNode.d.ts +0 -46
  219. three/examples/jsm/nodes/functions/PhongLightingModel.d.ts +0 -7
  220. three/examples/jsm/nodes/materials/MeshSSSNodeMaterial.d.ts +0 -17
  221. three/examples/jsm/nodes/materialx/lib/mx_noise.d.ts +0 -129
  222. three/examples/jsm/renderers/webgl/nodes/SlotNode.d.ts +0 -17
  223. three/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.d.ts +0 -37
  224. three/examples/jsm/renderers/webgl/nodes/WebGLNodes.d.ts +0 -3
  225. /three/{examples/jsm → src}/nodes/accessors/AccessorsUtils.d.ts +0 -0
  226. /three/{examples/jsm → src}/nodes/accessors/BitangentNode.d.ts +0 -0
  227. /three/{examples/jsm → src}/nodes/accessors/BufferNode.d.ts +0 -0
  228. /three/{examples/jsm → src}/nodes/accessors/ClippingNode.d.ts +0 -0
  229. /three/{examples/jsm → src}/nodes/accessors/ModelViewProjectionNode.d.ts +0 -0
  230. /three/{examples/jsm → src}/nodes/accessors/PointUVNode.d.ts +0 -0
  231. /three/{examples/jsm → src}/nodes/accessors/PositionNode.d.ts +0 -0
  232. /three/{examples/jsm → src}/nodes/accessors/ReferenceNode.d.ts +0 -0
  233. /three/{examples/jsm → src}/nodes/accessors/RendererReferenceNode.d.ts +0 -0
  234. /three/{examples/jsm → src}/nodes/accessors/TangentNode.d.ts +0 -0
  235. /three/{examples/jsm → src}/nodes/accessors/TextureBicubicNode.d.ts +0 -0
  236. /three/{examples/jsm → src}/nodes/accessors/UVNode.d.ts +0 -0
  237. /three/{examples/jsm → src}/nodes/accessors/UniformsNode.d.ts +0 -0
  238. /three/{examples/jsm → src}/nodes/accessors/UserDataNode.d.ts +0 -0
  239. /three/{examples/jsm → src}/nodes/accessors/VertexColorNode.d.ts +0 -0
  240. /three/{examples/jsm → src}/nodes/code/CodeNode.d.ts +0 -0
  241. /three/{examples/jsm → src}/nodes/code/ExpressionNode.d.ts +0 -0
  242. /three/{examples/jsm → src}/nodes/code/FunctionCallNode.d.ts +0 -0
  243. /three/{examples/jsm → src}/nodes/code/FunctionNode.d.ts +0 -0
  244. /three/{examples/jsm → src}/nodes/core/AssignNode.d.ts +0 -0
  245. /three/{examples/jsm → src}/nodes/core/AttributeNode.d.ts +0 -0
  246. /three/{examples/jsm → src}/nodes/core/BypassNode.d.ts +0 -0
  247. /three/{examples/jsm → src}/nodes/core/ConstNode.d.ts +0 -0
  248. /three/{examples/jsm → src}/nodes/core/ContextNode.d.ts +0 -0
  249. /three/{examples/jsm → src}/nodes/core/InputNode.d.ts +0 -0
  250. /three/{examples/jsm → src}/nodes/core/NodeAttribute.d.ts +0 -0
  251. /three/{examples/jsm → src}/nodes/core/NodeCode.d.ts +0 -0
  252. /three/{examples/jsm → src}/nodes/core/NodeFunctionInput.d.ts +0 -0
  253. /three/{examples/jsm → src}/nodes/core/NodeKeywords.d.ts +0 -0
  254. /three/{examples/jsm → src}/nodes/core/NodeParser.d.ts +0 -0
  255. /three/{examples/jsm → src}/nodes/core/NodeVar.d.ts +0 -0
  256. /three/{examples/jsm → src}/nodes/core/NodeVarying.d.ts +0 -0
  257. /three/{examples/jsm → src}/nodes/core/OutputStructNode.d.ts +0 -0
  258. /three/{examples/jsm → src}/nodes/core/StackNode.d.ts +0 -0
  259. /three/{examples/jsm → src}/nodes/core/StructTypeNode.d.ts +0 -0
  260. /three/{examples/jsm → src}/nodes/core/TempNode.d.ts +0 -0
  261. /three/{examples/jsm → src}/nodes/core/UniformGroup.d.ts +0 -0
  262. /three/{examples/jsm → src}/nodes/core/UniformGroupNode.d.ts +0 -0
  263. /three/{examples/jsm → src}/nodes/core/VaryingNode.d.ts +0 -0
  264. /three/{examples/jsm → src}/nodes/core/constants.d.ts +0 -0
  265. /three/{examples/jsm → src}/nodes/display/AfterImageNode.d.ts +0 -0
  266. /three/{examples/jsm → src}/nodes/display/BlendModeNode.d.ts +0 -0
  267. /three/{examples/jsm → src}/nodes/display/FrontFacingNode.d.ts +0 -0
  268. /three/{examples/jsm → src}/nodes/display/PosterizeNode.d.ts +0 -0
  269. /three/{examples/jsm → src}/nodes/display/ViewportDepthTextureNode.d.ts +0 -0
  270. /three/{examples/jsm → src}/nodes/display/ViewportNode.d.ts +0 -0
  271. /three/{examples/jsm → src}/nodes/display/ViewportSharedTextureNode.d.ts +0 -0
  272. /three/{examples/jsm → src}/nodes/fog/FogExp2Node.d.ts +0 -0
  273. /three/{examples/jsm → src}/nodes/fog/FogNode.d.ts +0 -0
  274. /three/{examples/jsm → src}/nodes/fog/FogRangeNode.d.ts +0 -0
  275. /three/{examples/jsm → src}/nodes/functions/BSDF/BRDF_GGX.d.ts +0 -0
  276. /three/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Lambert.d.ts +0 -0
  277. /three/{examples/jsm → src}/nodes/functions/BSDF/BRDF_Sheen.d.ts +0 -0
  278. /three/{examples/jsm → src}/nodes/functions/BSDF/DFGApprox.d.ts +0 -0
  279. /three/{examples/jsm → src}/nodes/functions/BSDF/D_GGX.d.ts +0 -0
  280. /three/{examples/jsm → src}/nodes/functions/BSDF/D_GGX_Anisotropic.d.ts +0 -0
  281. /three/{examples/jsm → src}/nodes/functions/BSDF/F_Schlick.d.ts +0 -0
  282. /three/{examples/jsm → src}/nodes/functions/BSDF/V_GGX_SmithCorrelated.d.ts +0 -0
  283. /three/{examples/jsm → src}/nodes/functions/PhysicalLightingModel.d.ts +0 -0
  284. /three/{examples/jsm → src}/nodes/functions/ShadowMaskModel.d.ts +0 -0
  285. /three/{examples/jsm → src}/nodes/functions/ToonLightingModel.d.ts +0 -0
  286. /three/{examples/jsm → src}/nodes/functions/material/getGeometryRoughness.d.ts +0 -0
  287. /three/{examples/jsm → src}/nodes/functions/material/getRoughness.d.ts +0 -0
  288. /three/{examples/jsm → src}/nodes/gpgpu/ComputeNode.d.ts +0 -0
  289. /three/{examples/jsm → src}/nodes/lighting/AONode.d.ts +0 -0
  290. /three/{examples/jsm → src}/nodes/lighting/EnvironmentNode.d.ts +0 -0
  291. /three/{examples/jsm → src}/nodes/lighting/IrradianceNode.d.ts +0 -0
  292. /three/{examples/jsm → src}/nodes/lighting/LightUtils.d.ts +0 -0
  293. /three/{examples/jsm → src}/nodes/lighting/LightingContextNode.d.ts +0 -0
  294. /three/{examples/jsm → src}/nodes/materials/VolumeNodeMaterial.d.ts +0 -0
  295. /three/{examples/jsm → src}/nodes/materialx/MaterialXNodes.d.ts +0 -0
  296. /three/{examples/jsm → src}/nodes/materialx/lib/mx_transform_color.d.ts +0 -0
  297. /three/{examples/jsm → src}/nodes/math/CondNode.d.ts +0 -0
  298. /three/{examples/jsm → src}/nodes/math/HashNode.d.ts +0 -0
  299. /three/{examples/jsm → src}/nodes/math/MathUtils.d.ts +0 -0
  300. /three/{examples/jsm → src}/nodes/math/OperatorNode.d.ts +0 -0
  301. /three/{examples/jsm → src}/nodes/math/TriNoise3D.d.ts +0 -0
  302. /three/{examples/jsm → src}/nodes/procedural/CheckerNode.d.ts +0 -0
  303. /three/{examples/jsm → src}/nodes/shadernode/ShaderNode.d.ts +0 -0
  304. /three/{examples/jsm → src}/nodes/utils/ArrayElementNode.d.ts +0 -0
  305. /three/{examples/jsm → src}/nodes/utils/ConvertNode.d.ts +0 -0
  306. /three/{examples/jsm → src}/nodes/utils/EquirectUVNode.d.ts +0 -0
  307. /three/{examples/jsm → src}/nodes/utils/JoinNode.d.ts +0 -0
  308. /three/{examples/jsm → src}/nodes/utils/MatcapUVNode.d.ts +0 -0
  309. /three/{examples/jsm → src}/nodes/utils/OscNode.d.ts +0 -0
  310. /three/{examples/jsm → src}/nodes/utils/RemapNode.d.ts +0 -0
  311. /three/{examples/jsm → src}/nodes/utils/RotateNode.d.ts +0 -0
  312. /three/{examples/jsm → src}/nodes/utils/RotateUVNode.d.ts +0 -0
  313. /three/{examples/jsm → src}/nodes/utils/SplitNode.d.ts +0 -0
  314. /three/{examples/jsm → src}/nodes/utils/SpriteSheetUVNode.d.ts +0 -0
  315. /three/{examples/jsm → src}/nodes/utils/StoargeArrayElementNode.d.ts +0 -0
  316. /three/{examples/jsm → src}/nodes/utils/TimerNode.d.ts +0 -0
  317. /three/{examples/jsm → src}/nodes/utils/TriplanarTexturesNode.d.ts +0 -0
  318. /three/{examples/jsm → src}/renderers/common/Binding.d.ts +0 -0
  319. /three/{examples/jsm → src}/renderers/common/Buffer.d.ts +0 -0
  320. /three/{examples/jsm → src}/renderers/common/BufferUtils.d.ts +0 -0
  321. /three/{examples/jsm → src}/renderers/common/ChainMap.d.ts +0 -0
  322. /three/{examples/jsm → src}/renderers/common/ComputePipeline.d.ts +0 -0
  323. /three/{examples/jsm → src}/renderers/common/Constants.d.ts +0 -0
  324. /three/{examples/jsm → src}/renderers/common/DataMap.d.ts +0 -0
  325. /three/{examples/jsm → src}/renderers/common/Pipeline.d.ts +0 -0
  326. /three/{examples/jsm → src}/renderers/common/Pipelines.d.ts +0 -0
  327. /three/{examples/jsm → src}/renderers/common/ProgrammableStage.d.ts +0 -0
  328. /three/{examples/jsm → src}/renderers/common/RenderPipeline.d.ts +0 -0
  329. /three/{examples/jsm → src}/renderers/common/UniformBuffer.d.ts +0 -0
  330. /three/{examples/jsm → src}/renderers/webgpu/WebGPURenderer.d.ts +0 -0
@@ -9,26 +9,36 @@ import { Mesh } from "./Mesh.js";
9
9
 
10
10
  /**
11
11
  * A special version of {@link Mesh} with multi draw batch rendering support. Use {@link BatchedMesh} if you have to
12
- * render a large number of objects with the same material but with different world transformations and geometry. The
13
- * usage of {@link BatchedMesh} will help you to reduce the number of draw calls and thus improve the overall rendering
12
+ * render a large number of objects with the same material but with different world transformations. The usage of
13
+ * {@link BatchedMesh} will help you to reduce the number of draw calls and thus improve the overall rendering
14
14
  * performance in your application.
15
15
  *
16
16
  * If the {@link https://developer.mozilla.org/en-US/docs/Web/API/WEBGL_multi_draw WEBGL_multi_draw extension} is not
17
- * supported then a less performant callback is used.
17
+ * supported then a less performant fallback is used.
18
18
  *
19
19
  * @example
20
20
  * const box = new THREE.BoxGeometry( 1, 1, 1 );
21
- * const sphere = new THREE.BoxGeometry( 1, 1, 1 );
21
+ * const sphere = new THREE.SphereGeometry( 1, 12, 12 );
22
22
  * const material = new THREE.MeshBasicMaterial( { color: 0x00ff00 } );
23
23
  *
24
24
  * // initialize and add geometries into the batched mesh
25
25
  * const batchedMesh = new BatchedMesh( 10, 5000, 10000, material );
26
- * const boxId = batchedMesh.addGeometry( box );
27
- * const sphereId = batchedMesh.addGeometry( sphere );
26
+ * const boxGeometryId = batchedMesh.addGeometry( box );
27
+ * const sphereGeometryId = batchedMesh.addGeometry( sphere );
28
+ *
29
+ * // create instances of those geometries
30
+ * const boxInstancedId1 = batchedMesh.addInstance( boxGeometryId );
31
+ * const boxInstancedId2 = batchedMesh.addInstance( boxGeometryId );
32
+ *
33
+ * const sphereInstancedId1 = batchedMesh.addInstance( sphereGeometryId );
34
+ * const sphereInstancedId2 = batchedMesh.addInstance( sphereGeometryId );
28
35
  *
29
36
  * // position the geometries
30
- * batchedMesh.setMatrixAt( boxId, boxMatrix );
31
- * batchedMesh.setMatrixAt( sphereId, sphereMatrix );
37
+ * batchedMesh.setMatrixAt( boxInstancedId1, boxMatrix1 );
38
+ * batchedMesh.setMatrixAt( boxInstancedId2, boxMatrix2 );
39
+ *
40
+ * batchedMesh.setMatrixAt( sphereInstancedId1, sphereMatrix1 );
41
+ * batchedMesh.setMatrixAt( sphereInstancedId2, sphereMatrix2 );
32
42
  *
33
43
  * scene.add( batchedMesh );
34
44
  *
@@ -68,20 +78,20 @@ declare class BatchedMesh extends Mesh<BufferGeometry, Material> {
68
78
  /**
69
79
  * The maximum number of individual geometries that can be stored in the {@link BatchedMesh}. Read only.
70
80
  */
71
- get maxGeometryCount(): number;
81
+ get maxInstanceCount(): number;
72
82
 
73
83
  /**
74
84
  * Read-only flag to check if a given object is of type {@link BatchedMesh}.
75
85
  */
76
- isBatchedMesh: true;
86
+ readonly isBatchedMesh: true;
77
87
 
78
88
  /**
79
- * @param maxGeometryCount the max number of individual geometries planned to be added.
89
+ * @param maxInstanceCount the max number of individual geometries planned to be added.
80
90
  * @param maxVertexCount the max number of vertices to be used by all geometries.
81
91
  * @param maxIndexCount the max number of indices to be used by all geometries.
82
- * @param material an instance of [page:Material]. Default is a new {@link MeshBasicMaterial}.
92
+ * @param material an instance of {@link Material}. Default is a new {@link MeshBasicMaterial}.
83
93
  */
84
- constructor(maxGeometryCount: number, maxVertexCount: number, maxIndexCount?: number, material?: Material);
94
+ constructor(maxInstanceCount: number, maxVertexCount: number, maxIndexCount?: number, material?: Material);
85
95
 
86
96
  /**
87
97
  * Computes the bounding box, updating {@link .boundingBox} attribute.
@@ -102,54 +112,55 @@ declare class BatchedMesh extends Mesh<BufferGeometry, Material> {
102
112
  dispose(): this;
103
113
 
104
114
  /**
105
- * Takes a sort a function that is run before render. The function takes a list of items to sort and a camera. The
106
- * objects in the list include a "z" field to perform a depth-ordered sort with.
115
+ * Takes a sort a function that is run before render. The function takes a list of instances to sort and a camera.
116
+ * The objects in the list include a "z" field to perform a depth-ordered sort with.
107
117
  */
108
118
  setCustomSort(
109
- func: ((this: this, list: Array<{ start: number; count: number; z: number }>, camera: Camera) => void) | null,
119
+ sortFunction:
120
+ | ((this: this, list: Array<{ start: number; count: number; z: number }>, camera: Camera) => void)
121
+ | null,
110
122
  ): this;
111
123
 
112
124
  /**
113
125
  * Get the color of the defined geometry.
114
- * @param index The index of a geometry. Values have to be in the range [0, count].
115
- * @param color This color object will be set to the color of the defined geometry.
126
+ * @param instanceId The id of an instance to get the color of.
127
+ * @param target The target object to copy the color in to.
116
128
  */
117
- getColorAt(index: number, color: Color): void;
129
+ getColorAt(instanceId: number, target: Color): void;
118
130
 
119
131
  /**
120
132
  * Get the local transformation matrix of the defined instance.
121
- * @param index The index of an instance. Values have to be in the range [0, count].
122
- * @param matrix This 4x4 matrix will be set to the local transformation matrix of the defined instance.
133
+ * @param instanceId The id of an instance to get the matrix of.
134
+ * @param target This 4x4 matrix will be set to the local transformation matrix of the defined instance.
123
135
  */
124
- getMatrixAt(index: number, matrix: Matrix4): Matrix4;
136
+ getMatrixAt(instanceId: number, target: Matrix4): Matrix4;
125
137
 
126
138
  /**
127
139
  * Get whether the given instance is marked as "visible" or not.
128
- * @param index The index of an instance. Values have to be in the range [0, count].
140
+ * @param instanceId The id of an instance to get the visibility state of.
129
141
  */
130
- getVisibleAt(index: number): boolean;
142
+ getVisibleAt(instanceId: number): boolean;
131
143
 
132
144
  /**
133
- * Sets the given color to the defined geometry.
134
- * @param index The index of a geometry. Values have to be in the range [0, count].
135
- * @param color The color of a single geometry.
145
+ * Sets the given color to the defined geometry instance.
146
+ * @param instanceId The id of the instance to set the color of.
147
+ * @param color The color to set the instance to.
136
148
  */
137
- setColorAt(index: number, color: Color): void;
149
+ setColorAt(instanceId: number, color: Color): void;
138
150
 
139
151
  /**
140
- * Sets the given local transformation matrix to the defined instance. Make sure you set {@link .instanceMatrix}
141
- * {@link BufferAttribute.needsUpdate} to true after updating all the matrices.
142
- * @param index The index of an instance. Values have to be in the range [0, count].
152
+ * Sets the given local transformation matrix to the defined instance.
153
+ * @param instanceId The id of an instance to set the matrix of.
143
154
  * @param matrix A 4x4 matrix representing the local transformation of a single instance.
144
155
  */
145
- setMatrixAt(index: number, matrix: Matrix4): this;
156
+ setMatrixAt(instanceId: number, matrix: Matrix4): this;
146
157
 
147
158
  /**
148
- * Sets the visibility of the object at the given index.
149
- * @param index The index of an instance. Values have to be in the range [0, count].
159
+ * Sets the visibility of the instance at the given index.
160
+ * @param instanceId The id of the instance to set the visibility of.
150
161
  * @param visible A boolean value indicating the visibility state.
151
162
  */
152
- setVisibleAt(index: number, visible: boolean): this;
163
+ setVisibleAt(instanceId: number, visible: boolean): this;
153
164
 
154
165
  /**
155
166
  * Adds the given geometry to the {@link BatchedMesh} and returns the associated index referring to it.
@@ -164,30 +175,23 @@ declare class BatchedMesh extends Mesh<BufferGeometry, Material> {
164
175
  addGeometry(geometry: BufferGeometry, reservedVertexRange?: number, reservedIndexRange?: number): number;
165
176
 
166
177
  /**
167
- * Replaces the geometry at `index` with the provided geometry. Throws an error if there is not enough space
168
- * reserved for geometry at the index.
169
- * @param index Which geometry index to replace with this geometry.
170
- * @param geometry The geometry to substitute at the given geometry index.
178
+ * Adds a new instance to the {@link BatchedMesh} using the geometry of the given geometryId and returns a new id
179
+ * referring to the new instance to be used by other functions.
180
+ * @param geometryId The id of a previously added geometry via "addGeometry" to add into the {@link BatchedMesh} to
181
+ * render.
171
182
  */
172
- setGeometryAt(index: number, geometry: BufferGeometry): number;
183
+ addInstance(geometryId: number): number;
173
184
 
174
185
  /**
175
- * Gets the instance count of the geometry at `index`. Returns `null` if instance counts are not configured.
176
- * @param index The index of an instance. Values have to be in the range [0, count].
186
+ * Replaces the geometry at `geometryId` with the provided geometry. Throws an error if there is not enough space
187
+ * reserved for geometry. Calling this will change all instances that are rendering that geometry.
188
+ * @param geometryId Which geometry id to replace with this geometry.
189
+ * @param geometry The geometry to substitute at the given geometry id.
177
190
  */
178
- getInstanceCountAt(index: number): number | null;
179
-
180
- /**
181
- * Sets an instance count of the geometry at `index`.
182
- * @param index Which geometry index to configure an instance count for.
183
- * @param instanceCount The number of instances to render of the given geometry index.
184
- */
185
- setInstanceCountAt(index: number, instanceCount: number): number;
186
-
187
- deleteGeometry(index: number): this;
191
+ setGeometryAt(geometryId: number, geometry: BufferGeometry): number;
188
192
 
189
- getBoundingBoxAt(index: number, target: Box3): Box3 | null;
190
- getBoundingSphereAt(index: number, target: Sphere): Sphere | null;
193
+ getBoundingBoxAt(geometryId: number, target: Box3): Box3 | null;
194
+ getBoundingSphereAt(geometryId: number, target: Sphere): Sphere | null;
191
195
  }
192
196
 
193
197
  export { BatchedMesh };
@@ -1,13 +1,24 @@
1
+ import { BufferAttributeJSON } from "./../core/BufferAttribute.js";
1
2
  import { BufferGeometry } from "../core/BufferGeometry.js";
2
3
  import { InstancedBufferAttribute } from "../core/InstancedBufferAttribute.js";
3
- import { Object3DEventMap } from "../core/Object3D.js";
4
+ import { JSONMeta, Object3DEventMap } from "../core/Object3D.js";
4
5
  import { Material } from "../materials/Material.js";
5
6
  import { Box3 } from "../math/Box3.js";
6
7
  import { Color } from "../math/Color.js";
7
8
  import { Matrix4 } from "../math/Matrix4.js";
8
9
  import { Sphere } from "../math/Sphere.js";
9
10
  import { DataTexture } from "../textures/DataTexture.js";
10
- import { Mesh } from "./Mesh.js";
11
+ import { Mesh, MeshJSONObject } from "./Mesh.js";
12
+
13
+ export interface InstancedMeshJSONObject extends MeshJSONObject {
14
+ count: number;
15
+ instanceMatrix: BufferAttributeJSON;
16
+ instanceColor?: BufferAttributeJSON;
17
+ }
18
+
19
+ export interface InstancedMeshJSON extends MeshJSONObject {
20
+ object: InstancedMeshJSONObject;
21
+ }
11
22
 
12
23
  export interface InstancedMeshEventMap extends Object3DEventMap {
13
24
  dispose: {};
@@ -163,4 +174,6 @@ export class InstancedMesh<
163
174
  * Call this method whenever this instance is no longer used in your app.
164
175
  */
165
176
  dispose(): this;
177
+
178
+ toJSON(meta?: JSONMeta): InstancedMeshJSON;
166
179
  }
@@ -1,5 +1,19 @@
1
1
  import { Camera } from "../cameras/Camera.js";
2
- import { Object3D, Object3DEventMap } from "../core/Object3D.js";
2
+ import { JSONMeta, Object3D, Object3DEventMap, Object3DJSON, Object3DJSONObject } from "../core/Object3D.js";
3
+
4
+ export interface LODJSONObject extends Object3DJSONObject {
5
+ autoUpdate?: boolean;
6
+
7
+ levels: Array<{
8
+ object: string;
9
+ distance: number;
10
+ hysteresis: number;
11
+ }>;
12
+ }
13
+
14
+ export interface LODJSON extends Object3DJSON {
15
+ object: LODJSONObject;
16
+ }
3
17
 
4
18
  /**
5
19
  * Every level is associated with an object, and rendering can be switched between them at the distances specified
@@ -85,4 +99,6 @@ export class LOD<TEventMap extends Object3DEventMap = Object3DEventMap> extends
85
99
  * @param camera
86
100
  */
87
101
  update(camera: Camera): void;
102
+
103
+ toJSON(meta?: JSONMeta): LODJSON;
88
104
  }
@@ -1,8 +1,16 @@
1
1
  import { BufferGeometry } from "../core/BufferGeometry.js";
2
- import { Object3D, Object3DEventMap } from "../core/Object3D.js";
2
+ import { JSONMeta, Object3D, Object3DEventMap, Object3DJSON, Object3DJSONObject } from "../core/Object3D.js";
3
3
  import { Material } from "../materials/Material.js";
4
4
  import { Vector3 } from "../math/Vector3.js";
5
5
 
6
+ export interface MeshJSONObject extends Object3DJSONObject {
7
+ geometry: string;
8
+ }
9
+
10
+ export interface MeshJSON extends Object3DJSON {
11
+ object: MeshJSONObject;
12
+ }
13
+
6
14
  /**
7
15
  * Class representing triangular {@link https://en.wikipedia.org/wiki/Polygon_mesh | polygon mesh} based objects.
8
16
  * @remarks
@@ -81,4 +89,6 @@ export class Mesh<
81
89
  * @param target
82
90
  */
83
91
  getVertexPosition(index: number, target: Vector3): Vector3;
92
+
93
+ toJSON(meta?: JSONMeta): MeshJSON;
84
94
  }
@@ -1,7 +1,4 @@
1
- import { BufferAttribute } from "../core/BufferAttribute.js";
2
1
  import { BufferGeometry, NormalOrGLBufferAttributes } from "../core/BufferGeometry.js";
3
- import { GLBufferAttribute } from "../core/GLBufferAttribute.js";
4
- import { InterleavedBufferAttribute } from "../core/InterleavedBufferAttribute.js";
5
2
  import { Object3D, Object3DEventMap } from "../core/Object3D.js";
6
3
  import { Material } from "../materials/Material.js";
7
4
 
@@ -1,7 +1,14 @@
1
- import { Matrix4 } from "../math/Matrix4.js";
1
+ import { Matrix4, Matrix4Tuple } from "../math/Matrix4.js";
2
2
  import { DataTexture } from "../textures/DataTexture.js";
3
3
  import { Bone } from "./Bone.js";
4
4
 
5
+ export interface SkeletonJSON {
6
+ metadata: { version: number; type: string; generator: string };
7
+ bones: string[];
8
+ boneInverses: Matrix4Tuple[];
9
+ uuid: string;
10
+ }
11
+
5
12
  /**
6
13
  * Use an array of {@link Bone | bones} to create a {@link Skeleton} that can be used by a {@link THREE.SkinnedMesh | SkinnedMesh}.
7
14
  * @example
@@ -107,7 +114,7 @@ export class Skeleton {
107
114
  */
108
115
  dispose(): void;
109
116
 
110
- toJSON(): unknown;
117
+ toJSON(): SkeletonJSON;
111
118
 
112
- fromJSON(json: unknown, bones: Record<string, Bone>): void;
119
+ fromJSON(json: SkeletonJSON, bones: Record<string, Bone>): void;
113
120
  }
@@ -1,14 +1,24 @@
1
1
  import { BindMode } from "../constants.js";
2
2
  import { BufferGeometry } from "../core/BufferGeometry.js";
3
- import { Object3DEventMap } from "../core/Object3D.js";
3
+ import { JSONMeta, Object3DEventMap } from "../core/Object3D.js";
4
4
  import { Material } from "../materials/Material.js";
5
5
  import { Box3 } from "../math/Box3.js";
6
- import { Matrix4 } from "../math/Matrix4.js";
6
+ import { Matrix4, Matrix4Tuple } from "../math/Matrix4.js";
7
7
  import { Sphere } from "../math/Sphere.js";
8
8
  import { Vector3 } from "../math/Vector3.js";
9
- import { Mesh } from "./Mesh.js";
9
+ import { Mesh, MeshJSON, MeshJSONObject } from "./Mesh.js";
10
10
  import { Skeleton } from "./Skeleton.js";
11
11
 
12
+ export interface SkinnedMeshJSONObject extends MeshJSONObject {
13
+ bindMode: BindMode;
14
+ bindMatrix: Matrix4Tuple;
15
+ skeleton?: string;
16
+ }
17
+
18
+ export interface SkinnedMeshJSON extends MeshJSON {
19
+ object: SkinnedMeshJSONObject;
20
+ }
21
+
12
22
  /**
13
23
  * A mesh that has a {@link THREE.Skeleton | Skeleton} with {@link Bone | bones} that can then be used to animate the vertices of the geometry.
14
24
  * @example
@@ -145,4 +155,6 @@ export class SkinnedMesh<
145
155
  * @param vector
146
156
  */
147
157
  applyBoneTransform(index: number, vector: Vector3): Vector3;
158
+
159
+ toJSON(meta?: JSONMeta): SkinnedMeshJSON;
148
160
  }
@@ -1,4 +1,3 @@
1
- /// <reference types="webxr" />
2
1
  import Info from "./Info.js";
3
2
  import Nodes from "./nodes/Nodes.js";
4
3
  declare class Animation {
@@ -1,4 +1,6 @@
1
- import { BufferAttribute, InterleavedBuffer, InterleavedBufferAttribute } from "three";
1
+ import { BufferAttribute } from "../../core/BufferAttribute.js";
2
+ import { InterleavedBuffer } from "../../core/InterleavedBuffer.js";
3
+ import { InterleavedBufferAttribute } from "../../core/InterleavedBufferAttribute.js";
2
4
  import Backend from "./Backend.js";
3
5
  import { AttributeType } from "./Constants.js";
4
6
  import DataMap from "./DataMap.js";
@@ -15,6 +17,6 @@ declare class Attributes extends DataMap<{
15
17
  constructor(backend: Backend);
16
18
  delete(attribute: BufferAttribute | InterleavedBufferAttribute): Data;
17
19
  update(attribute: BufferAttribute | InterleavedBufferAttribute, type: AttributeType): void;
18
- _getBufferAttribute(attribute: BufferAttribute | InterleavedBufferAttribute): InterleavedBuffer | BufferAttribute;
20
+ _getBufferAttribute(attribute: BufferAttribute | InterleavedBufferAttribute): BufferAttribute | InterleavedBuffer;
19
21
  }
20
22
  export default Attributes;
@@ -1,4 +1,4 @@
1
- import { CoordinateSystem } from "three";
1
+ import { CoordinateSystem } from "../../constants.js";
2
2
  import Renderer from "./Renderer.js";
3
3
 
4
4
  export interface BackendParameters {
@@ -1,4 +1,5 @@
1
- import { Mesh, Scene } from "three";
1
+ import { Mesh } from "../../objects/Mesh.js";
2
+ import { Scene } from "../../scenes/Scene.js";
2
3
  import DataMap from "./DataMap.js";
3
4
  import Nodes from "./nodes/Nodes.js";
4
5
  import RenderContext from "./RenderContext.js";
@@ -0,0 +1,9 @@
1
+ import Binding from "./Binding.js";
2
+ import NodeUniformsGroup from "./nodes/NodeUniformsGroup.js";
3
+ declare class BindGroup {
4
+ name: string;
5
+ bindings: NodeUniformsGroup[] | Binding[];
6
+ id: number;
7
+ constructor(name?: string, bindings?: NodeUniformsGroup[]);
8
+ }
9
+ export default BindGroup;
@@ -1,24 +1,20 @@
1
1
  import ComputeNode from "../../nodes/gpgpu/ComputeNode.js";
2
2
  import Attributes from "./Attributes.js";
3
3
  import Backend from "./Backend.js";
4
- import Binding from "./Binding.js";
4
+ import BindGroup from "./BindGroup.js";
5
5
  import DataMap from "./DataMap.js";
6
6
  import Info from "./Info.js";
7
7
  import Nodes from "./nodes/Nodes.js";
8
8
  import Pipelines from "./Pipelines.js";
9
9
  import RenderObject from "./RenderObject.js";
10
10
  import Textures from "./Textures.js";
11
- interface Data {
12
- bindings?: Binding[] | undefined;
11
+ interface BindGroupData {
12
+ bindGroup?: BindGroup | undefined;
13
13
  }
14
14
  declare class Bindings extends DataMap<{
15
- renderObject: {
16
- key: RenderObject;
17
- value: Data;
18
- };
19
- computeNode: {
20
- key: ComputeNode;
21
- value: Data;
15
+ bindGroup: {
16
+ key: BindGroup;
17
+ value: BindGroupData;
22
18
  };
23
19
  }> {
24
20
  backend: Backend;
@@ -35,11 +31,12 @@ declare class Bindings extends DataMap<{
35
31
  pipelines: Pipelines,
36
32
  info: Info,
37
33
  );
38
- getForRender(renderObject: RenderObject): Binding[];
39
- getForCompute(computeNode: ComputeNode): Binding[];
34
+ getForRender(renderObject: RenderObject): BindGroup[];
35
+ getForCompute(computeNode: ComputeNode): BindGroup[];
40
36
  updateForCompute(computeNode: ComputeNode): void;
41
37
  updateForRender(renderObject: RenderObject): void;
42
- _init(bindings: Binding[]): void;
43
- _update(object: ComputeNode | RenderObject, bindings: Binding[]): void;
38
+ _updateBindings(object: ComputeNode | RenderObject, bindings: BindGroup[]): void;
39
+ _init(bindGroup: BindGroup): void;
40
+ _update(object: ComputeNode | RenderObject, bindGroup: BindGroup, bindings: BindGroup[]): void;
44
41
  }
45
42
  export default Bindings;
@@ -1,4 +1,9 @@
1
- import { Camera, Material, Matrix3, Matrix4, Plane, Vector4 } from "three";
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { Material } from "../../materials/Material.js";
3
+ import { Matrix3 } from "../../math/Matrix3.js";
4
+ import { Matrix4 } from "../../math/Matrix4.js";
5
+ import { Plane } from "../../math/Plane.js";
6
+ import { Vector4 } from "../../math/Vector4.js";
2
7
  import Renderer from "./Renderer.js";
3
8
  declare class ClippingContext {
4
9
  version: number;
@@ -1,4 +1,4 @@
1
- import { Color, ColorRepresentation } from "three";
1
+ import { Color, ColorRepresentation } from "../../math/Color.js";
2
2
  declare class Color4 extends Color {
3
3
  a: number;
4
4
  constructor(color?: ColorRepresentation);
@@ -1,4 +1,7 @@
1
- import { RenderTargetOptions, Texture, WebGLCubeRenderTarget, WebGLRenderer } from "three";
1
+ import { RenderTargetOptions } from "../../core/RenderTarget.js";
2
+ import { WebGLCubeRenderTarget } from "../../renderers/WebGLCubeRenderTarget.js";
3
+ import { Texture } from "../../textures/Texture.js";
4
+ import { WebGLRenderer } from "../WebGLRenderer.js";
2
5
  declare class CubeRenderTarget extends WebGLCubeRenderTarget {
3
6
  readonly isCubeRenderTarget: true;
4
7
  constructor(size?: number, options?: RenderTargetOptions);
@@ -1,4 +1,7 @@
1
- import { BufferAttribute, BufferGeometry } from "three";
1
+ import { BufferAttribute } from "../../core/BufferAttribute.js";
2
+ import { BufferGeometry } from "../../core/BufferGeometry.js";
3
+ import { InterleavedBuffer } from "../../core/InterleavedBuffer.js";
4
+ import { InterleavedBufferAttribute } from "../../core/InterleavedBufferAttribute.js";
2
5
  import Attributes from "./Attributes.js";
3
6
  import { AttributeType } from "./Constants.js";
4
7
  import DataMap from "./DataMap.js";
@@ -16,13 +19,13 @@ declare class Geometries extends DataMap<{
16
19
  attributes: Attributes;
17
20
  info: Info;
18
21
  wireframes: WeakMap<BufferGeometry, BufferAttribute>;
19
- attributeCall: WeakMap<BufferAttribute, number>;
22
+ attributeCall: WeakMap<BufferAttribute | InterleavedBufferAttribute | InterleavedBuffer, number>;
20
23
  constructor(attributes: Attributes, info: Info);
21
24
  has(renderObject: RenderObject | BufferGeometry): boolean;
22
25
  updateForRender(renderObject: RenderObject): void;
23
26
  initGeometry(renderObject: RenderObject): void;
24
27
  updateAttributes(renderObject: RenderObject): void;
25
- updateAttribute(attribute: BufferAttribute, type: AttributeType): void;
28
+ updateAttribute(attribute: BufferAttribute | InterleavedBufferAttribute, type: AttributeType): void;
26
29
  getIndex(renderObject: RenderObject): BufferAttribute | null;
27
30
  }
28
31
  export default Geometries;
@@ -1,20 +1,25 @@
1
- import { Object3D } from "three";
1
+ import { Object3D } from "../../core/Object3D.js";
2
2
  declare class Info {
3
3
  autoReset: boolean;
4
4
  frame: number;
5
5
  calls: number;
6
6
  render: {
7
7
  calls: number;
8
+ frameCalls: number;
8
9
  drawCalls: number;
9
10
  triangles: number;
10
11
  points: number;
11
12
  lines: number;
12
13
  timestamp: number;
14
+ previousFrameCalls: number;
15
+ timestampCalls: number;
13
16
  };
14
17
  compute: {
15
18
  calls: number;
16
- computeCalls: number;
19
+ frameCalls: number;
17
20
  timestamp: number;
21
+ previousFrameCalls: number;
22
+ timestampCalls: number;
18
23
  };
19
24
  memory: {
20
25
  geometries: number;
@@ -1,13 +1,21 @@
1
1
  import { Node } from "../../nodes/Nodes.js";
2
2
  import Renderer from "./Renderer.js";
3
3
 
4
- export default class PostProcessing {
4
+ declare class PostProcessing {
5
5
  renderer: Renderer;
6
6
  outputNode: Node;
7
7
 
8
+ outputColorTransform: boolean;
9
+
10
+ needsUpdate: boolean;
11
+
8
12
  constructor(renderer: Renderer, outputNode?: Node);
9
13
 
10
14
  render(): void;
11
15
 
16
+ update(): void;
17
+
12
18
  renderAsync(): Promise<void>;
13
19
  }
20
+
21
+ export default PostProcessing;
@@ -1,5 +1,7 @@
1
- import { Material, Mesh, OrthographicCamera } from "three";
2
- import Renderer from "../renderers/common/Renderer.js";
1
+ import { OrthographicCamera } from "../../cameras/OrthographicCamera.js";
2
+ import { Material } from "../../materials/Material.js";
3
+ import { Mesh } from "../../objects/Mesh.js";
4
+ import Renderer from "./Renderer.js";
3
5
 
4
6
  export default class QuadMesh extends Mesh {
5
7
  camera: OrthographicCamera;
@@ -1,4 +1,5 @@
1
- import { Camera, Object3D } from "three";
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { Object3D } from "../../core/Object3D.js";
2
3
  declare class RenderBundle {
3
4
  scene: Object3D;
4
5
  camera: Camera;
@@ -1,4 +1,5 @@
1
- import { Camera, Object3D } from "three";
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { Object3D } from "../../core/Object3D.js";
2
3
  import ChainMap from "./ChainMap.js";
3
4
  import RenderBundle from "./RenderBundle.js";
4
5
  declare class RenderBundles {
@@ -1,4 +1,7 @@
1
- import { DepthTexture, RenderTarget, Texture, Vector4 } from "three";
1
+ import { RenderTarget } from "../../core/RenderTarget.js";
2
+ import { Vector4 } from "../../math/Vector4.js";
3
+ import { DepthTexture } from "../../textures/DepthTexture.js";
4
+ import { Texture } from "../../textures/Texture.js";
2
5
  import ClippingContext from "./ClippingContext.js";
3
6
  declare class RenderContext {
4
7
  id: number;
@@ -1,4 +1,6 @@
1
- import { Camera, RenderTarget, Scene } from "three";
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { RenderTarget } from "../../core/RenderTarget.js";
3
+ import { Scene } from "../../scenes/Scene.js";
2
4
  import ChainMap from "./ChainMap.js";
3
5
  import RenderContext from "./RenderContext.js";
4
6
  declare class RenderContexts {
@@ -1,4 +1,8 @@
1
- import { BufferGeometry, Camera, GeometryGroup, Light, Material, Object3D } from "three";
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { BufferGeometry, GeometryGroup } from "../../core/BufferGeometry.js";
3
+ import { Object3D } from "../../core/Object3D.js";
4
+ import { Light } from "../../lights/Light.js";
5
+ import { Material } from "../../materials/Material.js";
2
6
  import { LightsNode } from "../../nodes/Nodes.js";
3
7
  export interface Bundle {
4
8
  object: Object3D;
@@ -1,4 +1,5 @@
1
- import { Camera, Object3D } from "three";
1
+ import { Camera } from "../../cameras/Camera.js";
2
+ import { Object3D } from "../../core/Object3D.js";
2
3
  import ChainMap from "./ChainMap.js";
3
4
  import RenderList from "./RenderList.js";
4
5
  declare class RenderLists {