super-three 0.173.5 → 0.176.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 (832) hide show
  1. package/build/three.cjs +21993 -1359
  2. package/build/three.core.js +21129 -1188
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +835 -142
  5. package/build/three.module.min.js +1 -1
  6. package/build/three.tsl.js +8 -2
  7. package/build/three.tsl.min.js +1 -1
  8. package/build/three.webgpu.js +19493 -17617
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +19477 -17617
  11. package/build/three.webgpu.nodes.min.js +1 -1
  12. package/examples/jsm/Addons.js +1 -1
  13. package/examples/jsm/animation/AnimationClipCreator.js +57 -6
  14. package/examples/jsm/animation/CCDIKSolver.js +144 -42
  15. package/examples/jsm/capabilities/WebGL.js +28 -3
  16. package/examples/jsm/capabilities/WebGPU.js +16 -6
  17. package/examples/jsm/controls/ArcballControls.js +424 -154
  18. package/examples/jsm/controls/DragControls.js +93 -2
  19. package/examples/jsm/controls/FirstPersonControls.js +113 -4
  20. package/examples/jsm/controls/FlyControls.js +49 -2
  21. package/examples/jsm/controls/MapControls.js +42 -9
  22. package/examples/jsm/controls/OrbitControls.js +345 -42
  23. package/examples/jsm/controls/PointerLockControls.js +111 -9
  24. package/examples/jsm/controls/TrackballControls.js +159 -8
  25. package/examples/jsm/controls/TransformControls.js +252 -6
  26. package/examples/jsm/csm/CSM.js +226 -15
  27. package/examples/jsm/csm/CSMFrustum.js +52 -0
  28. package/examples/jsm/csm/CSMHelper.js +47 -0
  29. package/examples/jsm/csm/CSMShader.js +10 -1
  30. package/examples/jsm/csm/CSMShadowNode.js +156 -13
  31. package/examples/jsm/curves/CurveExtras.js +289 -31
  32. package/examples/jsm/curves/NURBSCurve.js +57 -14
  33. package/examples/jsm/curves/NURBSSurface.js +50 -6
  34. package/examples/jsm/curves/NURBSUtils.js +96 -112
  35. package/examples/jsm/curves/NURBSVolume.js +22 -4
  36. package/examples/jsm/effects/AnaglyphEffect.js +30 -0
  37. package/examples/jsm/effects/AsciiEffect.js +60 -15
  38. package/examples/jsm/effects/OutlineEffect.js +59 -111
  39. package/examples/jsm/effects/ParallaxBarrierEffect.js +28 -0
  40. package/examples/jsm/effects/PeppersGhostEffect.js +21 -2
  41. package/examples/jsm/effects/StereoEffect.js +29 -0
  42. package/examples/jsm/environments/DebugEnvironment.js +49 -0
  43. package/examples/jsm/environments/RoomEnvironment.js +23 -4
  44. package/examples/jsm/exporters/DRACOExporter.js +53 -13
  45. package/examples/jsm/exporters/EXRExporter.js +37 -8
  46. package/examples/jsm/exporters/GLTFExporter.js +194 -71
  47. package/examples/jsm/exporters/KTX2Exporter.js +20 -0
  48. package/examples/jsm/exporters/OBJExporter.js +18 -0
  49. package/examples/jsm/exporters/PLYExporter.js +39 -9
  50. package/examples/jsm/exporters/STLExporter.js +25 -5
  51. package/examples/jsm/exporters/USDZExporter.js +70 -3
  52. package/examples/jsm/geometries/BoxLineGeometry.js +22 -0
  53. package/examples/jsm/geometries/ConvexGeometry.js +18 -0
  54. package/examples/jsm/geometries/DecalGeometry.js +20 -9
  55. package/examples/jsm/geometries/ParametricFunctions.js +97 -0
  56. package/examples/jsm/geometries/ParametricGeometry.js +37 -5
  57. package/examples/jsm/geometries/RoundedBoxGeometry.js +21 -0
  58. package/examples/jsm/geometries/TeapotGeometry.js +22 -38
  59. package/examples/jsm/geometries/TextGeometry.js +44 -16
  60. package/examples/jsm/helpers/LightProbeHelper.js +35 -0
  61. package/examples/jsm/helpers/LightProbeHelperGPU.js +36 -0
  62. package/examples/jsm/helpers/OctreeHelper.js +35 -0
  63. package/examples/jsm/helpers/PositionalAudioHelper.js +59 -0
  64. package/examples/jsm/helpers/RectAreaLightHelper.js +35 -3
  65. package/examples/jsm/helpers/TextureHelper.js +27 -0
  66. package/examples/jsm/helpers/TextureHelperGPU.js +28 -0
  67. package/examples/jsm/helpers/VertexNormalsHelper.js +58 -2
  68. package/examples/jsm/helpers/VertexTangentsHelper.js +46 -2
  69. package/examples/jsm/helpers/ViewHelper.js +75 -1
  70. package/examples/jsm/interactive/HTMLMesh.js +25 -0
  71. package/examples/jsm/interactive/InteractiveGroup.js +65 -5
  72. package/examples/jsm/interactive/SelectionBox.js +74 -9
  73. package/examples/jsm/interactive/SelectionHelper.js +74 -30
  74. package/examples/jsm/libs/motion-controllers.module.js +1 -1
  75. package/examples/jsm/lighting/TiledLighting.js +23 -0
  76. package/examples/jsm/lights/LightProbeGenerator.js +26 -1
  77. package/examples/jsm/lights/RectAreaLightTexturesLib.js +48 -13
  78. package/examples/jsm/lights/RectAreaLightUniformsLib.js +15 -0
  79. package/examples/jsm/lines/Line2.js +36 -0
  80. package/examples/jsm/lines/LineGeometry.js +52 -0
  81. package/examples/jsm/lines/LineMaterial.js +95 -0
  82. package/examples/jsm/lines/LineSegments2.js +51 -2
  83. package/examples/jsm/lines/LineSegmentsGeometry.js +62 -8
  84. package/examples/jsm/lines/Wireframe.js +38 -2
  85. package/examples/jsm/lines/WireframeGeometry2.js +24 -0
  86. package/examples/jsm/lines/webgpu/Line2.js +25 -1
  87. package/examples/jsm/lines/webgpu/LineSegments2.js +44 -6
  88. package/examples/jsm/lines/webgpu/Wireframe.js +30 -2
  89. package/examples/jsm/loaders/3DMLoader.js +71 -2
  90. package/examples/jsm/loaders/3MFLoader.js +51 -5
  91. package/examples/jsm/loaders/AMFLoader.js +31 -12
  92. package/examples/jsm/loaders/BVHLoader.js +57 -11
  93. package/examples/jsm/loaders/ColladaLoader.js +36 -1
  94. package/examples/jsm/loaders/DDSLoader.js +25 -1
  95. package/examples/jsm/loaders/DRACOLoader.js +73 -1
  96. package/examples/jsm/loaders/EXRLoader.js +40 -8
  97. package/examples/jsm/loaders/FBXLoader.js +71 -14
  98. package/examples/jsm/loaders/FontLoader.js +60 -2
  99. package/examples/jsm/loaders/GCodeLoader.js +33 -5
  100. package/examples/jsm/loaders/GLTFLoader.js +222 -9
  101. package/examples/jsm/loaders/HDRCubeTextureLoader.js +48 -0
  102. package/examples/jsm/loaders/IESLoader.js +41 -0
  103. package/examples/jsm/loaders/KMZLoader.js +32 -0
  104. package/examples/jsm/loaders/KTX2Loader.js +87 -19
  105. package/examples/jsm/loaders/KTXLoader.js +26 -6
  106. package/examples/jsm/loaders/LDrawLoader.js +115 -5
  107. package/examples/jsm/loaders/LUT3dlLoader.js +46 -10
  108. package/examples/jsm/loaders/LUTCubeLoader.js +45 -9
  109. package/examples/jsm/loaders/LUTImageLoader.js +78 -38
  110. package/examples/jsm/loaders/LWOLoader.js +46 -7
  111. package/examples/jsm/loaders/LottieLoader.js +37 -0
  112. package/examples/jsm/loaders/MD2Loader.js +36 -1
  113. package/examples/jsm/loaders/MDDLoader.js +56 -12
  114. package/examples/jsm/loaders/MTLLoader.js +56 -33
  115. package/examples/jsm/loaders/MaterialXLoader.js +33 -0
  116. package/examples/jsm/loaders/NRRDLoader.js +36 -5
  117. package/examples/jsm/loaders/OBJLoader.js +48 -1
  118. package/examples/jsm/loaders/PCDLoader.js +47 -0
  119. package/examples/jsm/loaders/PDBLoader.js +40 -2
  120. package/examples/jsm/loaders/PLYLoader.js +62 -32
  121. package/examples/jsm/loaders/PVRLoader.js +23 -5
  122. package/examples/jsm/loaders/RGBELoader.js +38 -5
  123. package/examples/jsm/loaders/RGBMLoader.js +67 -1
  124. package/examples/jsm/loaders/STLLoader.js +47 -38
  125. package/examples/jsm/loaders/SVGLoader.js +113 -20
  126. package/examples/jsm/loaders/TDSLoader.js +90 -70
  127. package/examples/jsm/loaders/TGALoader.js +22 -0
  128. package/examples/jsm/loaders/TIFFLoader.js +22 -0
  129. package/examples/jsm/loaders/TTFLoader.js +36 -2
  130. package/examples/jsm/loaders/USDZLoader.js +34 -1
  131. package/examples/jsm/loaders/UltraHDRLoader.js +58 -12
  132. package/examples/jsm/loaders/VOXLoader.js +57 -0
  133. package/examples/jsm/loaders/VRMLLoader.js +32 -1
  134. package/examples/jsm/loaders/VTKLoader.js +38 -0
  135. package/examples/jsm/loaders/XYZLoader.js +35 -0
  136. package/examples/jsm/materials/LDrawConditionalLineMaterial.js +39 -0
  137. package/examples/jsm/materials/LDrawConditionalLineNodeMaterial.js +39 -0
  138. package/examples/jsm/materials/MeshPostProcessingMaterial.js +24 -2
  139. package/examples/jsm/math/Capsule.js +89 -14
  140. package/examples/jsm/math/ColorConverter.js +21 -0
  141. package/examples/jsm/math/ColorSpaces.js +53 -0
  142. package/examples/jsm/math/ConvexHull.js +514 -92
  143. package/examples/jsm/math/ImprovedNoise.js +14 -2
  144. package/examples/jsm/math/Lut.js +111 -0
  145. package/examples/jsm/math/MeshSurfaceSampler.js +76 -13
  146. package/examples/jsm/math/OBB.js +139 -46
  147. package/examples/jsm/math/Octree.js +132 -5
  148. package/examples/jsm/math/SimplexNoise.js +66 -42
  149. package/examples/jsm/misc/ConvexObjectBreaker.js +43 -25
  150. package/examples/jsm/misc/GPUComputationRenderer.js +92 -17
  151. package/examples/jsm/misc/Gyroscope.js +11 -0
  152. package/examples/jsm/misc/MD2Character.js +115 -2
  153. package/examples/jsm/misc/MD2CharacterComplex.js +170 -8
  154. package/examples/jsm/misc/MorphAnimMesh.js +43 -0
  155. package/examples/jsm/misc/MorphBlendMesh.js +102 -0
  156. package/examples/jsm/misc/ProgressiveLightMap.js +40 -15
  157. package/examples/jsm/misc/ProgressiveLightMapGPU.js +33 -13
  158. package/examples/jsm/misc/RollerCoaster.js +52 -0
  159. package/examples/jsm/misc/Timer.js +105 -13
  160. package/examples/jsm/misc/TubePainter.js +53 -0
  161. package/examples/jsm/misc/Volume.js +109 -73
  162. package/examples/jsm/misc/VolumeSlice.js +91 -48
  163. package/examples/jsm/modifiers/CurveModifier.js +57 -34
  164. package/examples/jsm/modifiers/CurveModifierGPU.js +36 -17
  165. package/examples/jsm/modifiers/EdgeSplitModifier.js +18 -0
  166. package/examples/jsm/modifiers/SimplifyModifier.js +20 -8
  167. package/examples/jsm/modifiers/TessellateModifier.js +33 -2
  168. package/examples/jsm/objects/GroundedSkybox.js +23 -5
  169. package/examples/jsm/objects/Lensflare.js +91 -2
  170. package/examples/jsm/objects/LensflareMesh.js +53 -2
  171. package/examples/jsm/objects/MarchingCubes.js +88 -5
  172. package/examples/jsm/objects/Reflector.js +75 -2
  173. package/examples/jsm/objects/ReflectorForSSRPass.js +39 -0
  174. package/examples/jsm/objects/Refractor.js +61 -0
  175. package/examples/jsm/objects/ShadowMesh.js +53 -4
  176. package/examples/jsm/objects/Sky.js +26 -9
  177. package/examples/jsm/objects/SkyMesh.js +60 -9
  178. package/examples/jsm/objects/Water.js +44 -5
  179. package/examples/jsm/objects/Water2.js +42 -3
  180. package/examples/jsm/objects/Water2Mesh.js +38 -3
  181. package/examples/jsm/objects/WaterMesh.js +94 -7
  182. package/examples/jsm/physics/AmmoPhysics.js +47 -0
  183. package/examples/jsm/physics/JoltPhysics.js +48 -0
  184. package/examples/jsm/physics/RapierPhysics.js +56 -0
  185. package/examples/jsm/postprocessing/AfterimagePass.js +90 -38
  186. package/examples/jsm/postprocessing/BloomPass.js +125 -24
  187. package/examples/jsm/postprocessing/BokehPass.js +98 -22
  188. package/examples/jsm/postprocessing/ClearPass.js +53 -3
  189. package/examples/jsm/postprocessing/CubeTexturePass.js +81 -21
  190. package/examples/jsm/postprocessing/DotScreenPass.js +58 -10
  191. package/examples/jsm/postprocessing/EffectComposer.js +134 -0
  192. package/examples/jsm/postprocessing/FilmPass.js +53 -5
  193. package/examples/jsm/postprocessing/GTAOPass.js +191 -48
  194. package/examples/jsm/postprocessing/GlitchPass.js +84 -33
  195. package/examples/jsm/postprocessing/HalftonePass.js +64 -10
  196. package/examples/jsm/postprocessing/LUTPass.js +37 -8
  197. package/examples/jsm/postprocessing/MaskPass.js +90 -0
  198. package/examples/jsm/postprocessing/OutlinePass.js +268 -134
  199. package/examples/jsm/postprocessing/OutputPass.js +53 -14
  200. package/examples/jsm/postprocessing/Pass.js +98 -4
  201. package/examples/jsm/postprocessing/RenderPass.js +83 -0
  202. package/examples/jsm/postprocessing/RenderPixelatedPass.js +123 -45
  203. package/examples/jsm/postprocessing/RenderTransitionPass.js +119 -21
  204. package/examples/jsm/postprocessing/SAOPass.js +126 -53
  205. package/examples/jsm/postprocessing/SMAAPass.js +103 -71
  206. package/examples/jsm/postprocessing/SSAARenderPass.js +117 -35
  207. package/examples/jsm/postprocessing/SSAOPass.js +160 -47
  208. package/examples/jsm/postprocessing/SSRPass.js +230 -49
  209. package/examples/jsm/postprocessing/SavePass.js +68 -16
  210. package/examples/jsm/postprocessing/ShaderPass.js +64 -7
  211. package/examples/jsm/postprocessing/TAARenderPass.js +78 -24
  212. package/examples/jsm/postprocessing/TexturePass.js +71 -8
  213. package/examples/jsm/postprocessing/UnrealBloomPass.js +113 -37
  214. package/examples/jsm/renderers/CSS2DRenderer.js +77 -1
  215. package/examples/jsm/renderers/CSS3DRenderer.js +99 -3
  216. package/examples/jsm/renderers/Projector.js +18 -2
  217. package/examples/jsm/renderers/SVGRenderer.js +124 -0
  218. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +9 -5
  219. package/examples/jsm/shaders/AfterimageShader.js +6 -4
  220. package/examples/jsm/shaders/BasicShader.js +6 -2
  221. package/examples/jsm/shaders/BleachBypassShader.js +8 -4
  222. package/examples/jsm/shaders/BlendShader.js +6 -2
  223. package/examples/jsm/shaders/BokehShader.js +7 -4
  224. package/examples/jsm/shaders/BokehShader2.js +7 -3
  225. package/examples/jsm/shaders/BrightnessContrastShader.js +8 -5
  226. package/examples/jsm/shaders/ColorCorrectionShader.js +6 -2
  227. package/examples/jsm/shaders/ColorifyShader.js +6 -2
  228. package/examples/jsm/shaders/ConvolutionShader.js +7 -39
  229. package/examples/jsm/shaders/CopyShader.js +6 -2
  230. package/examples/jsm/shaders/DOFMipMapShader.js +8 -4
  231. package/examples/jsm/shaders/DepthLimitedBlurShader.js +7 -1
  232. package/examples/jsm/shaders/DigitalGlitch.js +7 -7
  233. package/examples/jsm/shaders/DotScreenShader.js +6 -4
  234. package/examples/jsm/shaders/ExposureShader.js +6 -2
  235. package/examples/jsm/shaders/FXAAShader.js +15 -7
  236. package/examples/jsm/shaders/FilmShader.js +10 -0
  237. package/examples/jsm/shaders/FocusShader.js +6 -4
  238. package/examples/jsm/shaders/FreiChenShader.js +7 -3
  239. package/examples/jsm/shaders/GTAOShader.js +33 -39
  240. package/examples/jsm/shaders/GammaCorrectionShader.js +8 -2
  241. package/examples/jsm/shaders/GodRaysShader.js +14 -5
  242. package/examples/jsm/shaders/HalftoneShader.js +11 -5
  243. package/examples/jsm/shaders/HorizontalBlurShader.js +9 -3
  244. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +6 -2
  245. package/examples/jsm/shaders/HueSaturationShader.js +7 -3
  246. package/examples/jsm/shaders/KaleidoShader.js +8 -4
  247. package/examples/jsm/shaders/LuminosityHighPassShader.js +6 -5
  248. package/examples/jsm/shaders/LuminosityShader.js +6 -3
  249. package/examples/jsm/shaders/MirrorShader.js +7 -4
  250. package/examples/jsm/shaders/NormalMapShader.js +5 -3
  251. package/examples/jsm/shaders/OutputShader.js +11 -0
  252. package/examples/jsm/shaders/PoissonDenoiseShader.js +21 -15
  253. package/examples/jsm/shaders/RGBShiftShader.js +5 -1
  254. package/examples/jsm/shaders/SAOShader.js +8 -2
  255. package/examples/jsm/shaders/SMAAShader.js +23 -1
  256. package/examples/jsm/shaders/SSAOShader.js +23 -5
  257. package/examples/jsm/shaders/SSRShader.js +25 -1
  258. package/examples/jsm/shaders/SepiaShader.js +6 -4
  259. package/examples/jsm/shaders/SobelOperatorShader.js +5 -2
  260. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +10 -8
  261. package/examples/jsm/shaders/TechnicolorShader.js +7 -4
  262. package/examples/jsm/shaders/ToonShader.js +29 -7
  263. package/examples/jsm/shaders/TriangleBlurShader.js +6 -4
  264. package/examples/jsm/shaders/UnpackDepthRGBAShader.js +6 -3
  265. package/examples/jsm/shaders/VelocityShader.js +6 -2
  266. package/examples/jsm/shaders/VerticalBlurShader.js +6 -2
  267. package/examples/jsm/shaders/VerticalTiltShiftShader.js +5 -1
  268. package/examples/jsm/shaders/VignetteShader.js +6 -4
  269. package/examples/jsm/shaders/VolumeShader.js +7 -1
  270. package/examples/jsm/shaders/WaterRefractionShader.js +8 -0
  271. package/examples/jsm/textures/FlakesTexture.js +12 -0
  272. package/examples/jsm/transpiler/AST.js +10 -0
  273. package/examples/jsm/transpiler/GLSLDecoder.js +17 -3
  274. package/examples/jsm/transpiler/TSLEncoder.js +83 -15
  275. package/examples/jsm/transpiler/Transpiler.js +31 -0
  276. package/examples/jsm/tsl/display/AfterImageNode.js +24 -25
  277. package/examples/jsm/tsl/display/AnaglyphPassNode.js +2 -3
  278. package/examples/jsm/tsl/display/AnamorphicNode.js +8 -9
  279. package/examples/jsm/tsl/display/BleachBypass.js +1 -2
  280. package/examples/jsm/tsl/display/BloomNode.js +15 -16
  281. package/examples/jsm/tsl/display/DenoiseNode.js +9 -10
  282. package/examples/jsm/tsl/display/DepthOfFieldNode.js +5 -6
  283. package/examples/jsm/tsl/display/DotScreenNode.js +5 -6
  284. package/examples/jsm/tsl/display/FXAANode.js +2 -3
  285. package/examples/jsm/tsl/display/FilmNode.js +9 -8
  286. package/examples/jsm/tsl/display/GTAONode.js +11 -12
  287. package/examples/jsm/tsl/display/GaussianBlurNode.js +14 -14
  288. package/examples/jsm/tsl/display/LensflareNode.js +15 -16
  289. package/examples/jsm/tsl/display/Lut3DNode.js +4 -5
  290. package/examples/jsm/tsl/display/MotionBlur.js +1 -2
  291. package/examples/jsm/tsl/display/OutlineNode.js +7 -8
  292. package/examples/jsm/tsl/display/ParallaxBarrierPassNode.js +2 -3
  293. package/examples/jsm/tsl/display/PixelationPassNode.js +14 -15
  294. package/examples/jsm/tsl/display/RGBShiftNode.js +5 -6
  295. package/examples/jsm/tsl/display/SMAANode.js +13 -7
  296. package/examples/jsm/tsl/display/SSAAPassNode.js +7 -7
  297. package/examples/jsm/tsl/display/SSRNode.js +6 -7
  298. package/examples/jsm/tsl/display/Sepia.js +1 -2
  299. package/examples/jsm/tsl/display/SobelOperatorNode.js +2 -3
  300. package/examples/jsm/tsl/display/StereoCompositePassNode.js +4 -4
  301. package/examples/jsm/tsl/display/StereoPassNode.js +2 -3
  302. package/examples/jsm/tsl/display/TRAAPassNode.js +11 -10
  303. package/examples/jsm/tsl/display/TransitionNode.js +4 -5
  304. package/examples/jsm/tsl/display/hashBlur.js +1 -2
  305. package/examples/jsm/tsl/lighting/TiledLightsNode.js +33 -7
  306. package/examples/jsm/tsl/math/Bayer.js +31 -0
  307. package/examples/jsm/tsl/utils/Raymarching.js +67 -0
  308. package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
  309. package/examples/jsm/utils/CameraUtils.js +10 -7
  310. package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
  311. package/examples/jsm/utils/GeometryUtils.js +12 -13
  312. package/examples/jsm/utils/LDrawUtils.js +11 -4
  313. package/examples/jsm/utils/SceneOptimizer.js +66 -20
  314. package/examples/jsm/utils/SceneUtils.js +50 -3
  315. package/examples/jsm/utils/ShadowMapViewer.js +47 -24
  316. package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
  317. package/examples/jsm/utils/SkeletonUtils.js +45 -0
  318. package/examples/jsm/utils/SortUtils.js +14 -5
  319. package/examples/jsm/utils/UVsDebug.js +9 -4
  320. package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
  321. package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
  322. package/examples/jsm/utils/WorkerPool.js +65 -2
  323. package/examples/jsm/webxr/ARButton.js +18 -0
  324. package/examples/jsm/webxr/OculusHandModel.js +83 -0
  325. package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
  326. package/examples/jsm/webxr/Text2D.js +11 -0
  327. package/examples/jsm/webxr/VRButton.js +30 -0
  328. package/examples/jsm/webxr/XRButton.js +22 -0
  329. package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
  330. package/examples/jsm/webxr/XREstimatedLight.js +33 -3
  331. package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
  332. package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
  333. package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
  334. package/examples/jsm/webxr/XRPlanes.js +17 -0
  335. package/package.json +3 -4
  336. package/src/Three.TSL.js +7 -1
  337. package/src/animation/AnimationAction.js +262 -30
  338. package/src/animation/AnimationClip.js +141 -2
  339. package/src/animation/AnimationMixer.js +99 -15
  340. package/src/animation/AnimationObjectGroup.js +41 -18
  341. package/src/animation/AnimationUtils.js +169 -19
  342. package/src/animation/KeyframeTrack.js +144 -10
  343. package/src/animation/PropertyBinding.js +77 -3
  344. package/src/animation/PropertyMixer.js +72 -5
  345. package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
  346. package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
  347. package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
  348. package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
  349. package/src/animation/tracks/StringKeyframeTrack.js +33 -2
  350. package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
  351. package/src/audio/Audio.js +339 -0
  352. package/src/audio/AudioAnalyser.js +58 -1
  353. package/src/audio/AudioContext.js +15 -0
  354. package/src/audio/AudioListener.js +76 -0
  355. package/src/audio/PositionalAudio.js +107 -0
  356. package/src/cameras/ArrayCamera.js +28 -0
  357. package/src/cameras/Camera.js +47 -0
  358. package/src/cameras/CubeCamera.js +66 -0
  359. package/src/cameras/OrthographicCamera.js +109 -0
  360. package/src/cameras/PerspectiveCamera.js +163 -40
  361. package/src/cameras/StereoCamera.js +46 -0
  362. package/src/constants.js +1429 -5
  363. package/src/core/BufferAttribute.js +413 -3
  364. package/src/core/BufferGeometry.js +337 -1
  365. package/src/core/Clock.js +60 -0
  366. package/src/core/EventDispatcher.js +44 -2
  367. package/src/core/GLBufferAttribute.js +99 -0
  368. package/src/core/InstancedBufferAttribute.js +29 -0
  369. package/src/core/InstancedBufferGeometry.js +20 -0
  370. package/src/core/InstancedInterleavedBuffer.js +26 -0
  371. package/src/core/InterleavedBuffer.js +137 -3
  372. package/src/core/InterleavedBufferAttribute.js +197 -0
  373. package/src/core/Layers.js +71 -10
  374. package/src/core/Object3D.js +593 -0
  375. package/src/core/Raycaster.js +134 -1
  376. package/src/core/RenderTarget.js +170 -11
  377. package/src/core/RenderTarget3D.js +25 -0
  378. package/src/core/RenderTargetArray.js +18 -0
  379. package/src/core/Uniform.js +29 -0
  380. package/src/core/UniformsGroup.js +84 -2
  381. package/src/extras/Controls.js +88 -1
  382. package/src/extras/DataUtils.js +48 -8
  383. package/src/extras/Earcut.js +13 -780
  384. package/src/extras/ImageUtils.js +20 -2
  385. package/src/extras/PMREMGenerator.js +41 -25
  386. package/src/extras/ShapeUtils.js +24 -2
  387. package/src/extras/TextureUtils.js +95 -15
  388. package/src/extras/core/Curve.js +150 -50
  389. package/src/extras/core/CurvePath.js +63 -22
  390. package/src/extras/core/Interpolations.js +29 -3
  391. package/src/extras/core/Path.js +134 -1
  392. package/src/extras/core/Shape.js +63 -0
  393. package/src/extras/core/ShapePath.js +76 -0
  394. package/src/extras/curves/ArcCurve.js +22 -0
  395. package/src/extras/curves/CatmullRomCurve3.js +89 -18
  396. package/src/extras/curves/CubicBezierCurve.js +67 -0
  397. package/src/extras/curves/CubicBezierCurve3.js +50 -0
  398. package/src/extras/curves/EllipseCurve.js +102 -0
  399. package/src/extras/curves/LineCurve.js +36 -0
  400. package/src/extras/curves/LineCurve3.js +36 -0
  401. package/src/extras/curves/QuadraticBezierCurve.js +59 -0
  402. package/src/extras/curves/QuadraticBezierCurve3.js +43 -0
  403. package/src/extras/curves/SplineCurve.js +48 -0
  404. package/src/extras/lib/earcut.js +685 -0
  405. package/src/geometries/BoxGeometry.js +38 -0
  406. package/src/geometries/CapsuleGeometry.js +34 -0
  407. package/src/geometries/CircleGeometry.js +40 -0
  408. package/src/geometries/ConeGeometry.js +38 -0
  409. package/src/geometries/CylinderGeometry.js +39 -0
  410. package/src/geometries/DodecahedronGeometry.js +32 -0
  411. package/src/geometries/EdgesGeometry.js +28 -0
  412. package/src/geometries/ExtrudeGeometry.js +112 -28
  413. package/src/geometries/IcosahedronGeometry.js +32 -0
  414. package/src/geometries/LatheGeometry.js +40 -0
  415. package/src/geometries/OctahedronGeometry.js +32 -0
  416. package/src/geometries/PlaneGeometry.js +34 -0
  417. package/src/geometries/PolyhedronGeometry.js +29 -0
  418. package/src/geometries/RingGeometry.js +36 -0
  419. package/src/geometries/ShapeGeometry.js +37 -0
  420. package/src/geometries/SphereGeometry.js +37 -0
  421. package/src/geometries/TetrahedronGeometry.js +32 -0
  422. package/src/geometries/TorusGeometry.js +35 -0
  423. package/src/geometries/TorusKnotGeometry.js +38 -0
  424. package/src/geometries/TubeGeometry.js +49 -0
  425. package/src/geometries/WireframeGeometry.js +32 -0
  426. package/src/helpers/ArrowHelper.js +60 -3
  427. package/src/helpers/AxesHelper.js +28 -0
  428. package/src/helpers/Box3Helper.js +28 -0
  429. package/src/helpers/BoxHelper.js +43 -7
  430. package/src/helpers/CameraHelper.js +45 -5
  431. package/src/helpers/DirectionalLightHelper.js +52 -0
  432. package/src/helpers/GridHelper.js +26 -0
  433. package/src/helpers/HemisphereLightHelper.js +39 -0
  434. package/src/helpers/PlaneHelper.js +33 -0
  435. package/src/helpers/PointLightHelper.js +43 -0
  436. package/src/helpers/PolarGridHelper.js +30 -0
  437. package/src/helpers/SkeletonHelper.js +39 -2
  438. package/src/helpers/SpotLightHelper.js +40 -0
  439. package/src/lights/AmbientLight.js +25 -0
  440. package/src/lights/DirectionalLight.js +57 -0
  441. package/src/lights/DirectionalLightShadow.js +15 -0
  442. package/src/lights/HemisphereLight.js +32 -0
  443. package/src/lights/Light.js +36 -0
  444. package/src/lights/LightProbe.js +43 -0
  445. package/src/lights/LightShadow.js +159 -0
  446. package/src/lights/PointLight.js +59 -0
  447. package/src/lights/PointLightShadow.js +21 -0
  448. package/src/lights/RectAreaLight.js +59 -0
  449. package/src/lights/SpotLight.js +102 -0
  450. package/src/lights/SpotLightShadow.js +22 -0
  451. package/src/lights/webgpu/IESSpotLight.js +21 -0
  452. package/src/loaders/AnimationLoader.js +31 -0
  453. package/src/loaders/AudioLoader.js +31 -0
  454. package/src/loaders/BufferGeometryLoader.js +34 -0
  455. package/src/loaders/Cache.js +45 -0
  456. package/src/loaders/CompressedTextureLoader.js +36 -3
  457. package/src/loaders/CubeTextureLoader.js +45 -0
  458. package/src/loaders/DataTextureLoader.js +44 -3
  459. package/src/loaders/FileLoader.js +57 -1
  460. package/src/loaders/ImageBitmapLoader.js +57 -0
  461. package/src/loaders/ImageLoader.js +30 -0
  462. package/src/loaders/Loader.js +130 -0
  463. package/src/loaders/LoaderUtils.js +18 -36
  464. package/src/loaders/LoadingManager.js +142 -0
  465. package/src/loaders/MaterialLoader.js +57 -0
  466. package/src/loaders/ObjectLoader.js +53 -0
  467. package/src/loaders/TextureLoader.js +33 -0
  468. package/src/loaders/nodes/NodeLoader.js +13 -9
  469. package/src/loaders/nodes/NodeMaterialLoader.js +6 -6
  470. package/src/loaders/nodes/NodeObjectLoader.js +12 -12
  471. package/src/materials/LineBasicMaterial.js +74 -1
  472. package/src/materials/LineDashedMaterial.js +52 -0
  473. package/src/materials/Material.js +481 -4
  474. package/src/materials/MeshBasicMaterial.js +165 -0
  475. package/src/materials/MeshDepthMaterial.js +93 -0
  476. package/src/materials/MeshDistanceMaterial.js +76 -0
  477. package/src/materials/MeshLambertMaterial.js +273 -0
  478. package/src/materials/MeshMatcapMaterial.js +142 -0
  479. package/src/materials/MeshNormalMaterial.js +113 -0
  480. package/src/materials/MeshPhongMaterial.js +288 -0
  481. package/src/materials/MeshPhysicalMaterial.js +292 -1
  482. package/src/materials/MeshStandardMaterial.js +297 -0
  483. package/src/materials/MeshToonMaterial.js +218 -0
  484. package/src/materials/PointsMaterial.js +89 -0
  485. package/src/materials/RawShaderMaterial.js +25 -0
  486. package/src/materials/ShaderMaterial.js +215 -6
  487. package/src/materials/ShadowMaterial.js +54 -0
  488. package/src/materials/SpriteMaterial.js +82 -0
  489. package/src/materials/nodes/Line2NodeMaterial.js +14 -14
  490. package/src/materials/nodes/LineBasicNodeMaterial.js +3 -3
  491. package/src/materials/nodes/LineDashedNodeMaterial.js +12 -12
  492. package/src/materials/nodes/MeshBasicNodeMaterial.js +7 -7
  493. package/src/materials/nodes/MeshLambertNodeMaterial.js +5 -5
  494. package/src/materials/nodes/MeshMatcapNodeMaterial.js +3 -3
  495. package/src/materials/nodes/MeshNormalNodeMaterial.js +8 -4
  496. package/src/materials/nodes/MeshPhongNodeMaterial.js +9 -9
  497. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +43 -43
  498. package/src/materials/nodes/MeshSSSNodeMaterial.js +18 -21
  499. package/src/materials/nodes/MeshStandardNodeMaterial.js +11 -11
  500. package/src/materials/nodes/MeshToonNodeMaterial.js +4 -4
  501. package/src/materials/nodes/NodeMaterial.js +66 -47
  502. package/src/materials/nodes/PointsNodeMaterial.js +6 -6
  503. package/src/materials/nodes/ShadowNodeMaterial.js +13 -4
  504. package/src/materials/nodes/SpriteNodeMaterial.js +17 -9
  505. package/src/materials/nodes/VolumeNodeMaterial.js +25 -128
  506. package/src/materials/nodes/manager/NodeMaterialObserver.js +8 -8
  507. package/src/math/Box2.js +177 -0
  508. package/src/math/Box3.js +243 -0
  509. package/src/math/Color.js +343 -0
  510. package/src/math/Cylindrical.js +65 -6
  511. package/src/math/Euler.js +137 -4
  512. package/src/math/Frustum.js +83 -0
  513. package/src/math/Interpolant.js +87 -8
  514. package/src/math/Line3.js +94 -0
  515. package/src/math/MathUtils.js +405 -19
  516. package/src/math/Matrix2.js +70 -0
  517. package/src/math/Matrix3.js +229 -4
  518. package/src/math/Matrix4.js +368 -3
  519. package/src/math/Plane.js +164 -2
  520. package/src/math/Quaternion.js +262 -6
  521. package/src/math/Ray.js +160 -0
  522. package/src/math/Sphere.js +147 -0
  523. package/src/math/Spherical.js +70 -8
  524. package/src/math/SphericalHarmonics3.js +112 -14
  525. package/src/math/Triangle.js +206 -2
  526. package/src/math/Vector2.js +388 -2
  527. package/src/math/Vector3.js +541 -4
  528. package/src/math/Vector4.js +393 -0
  529. package/src/math/interpolants/CubicInterpolant.js +10 -1
  530. package/src/math/interpolants/DiscreteInterpolant.js +10 -2
  531. package/src/math/interpolants/LinearInterpolant.js +13 -0
  532. package/src/math/interpolants/QuaternionLinearInterpolant.js +10 -1
  533. package/src/nodes/Nodes.js +1 -0
  534. package/src/nodes/TSL.js +1 -0
  535. package/src/nodes/accessors/AccessorsUtils.js +4 -2
  536. package/src/nodes/accessors/Arrays.js +6 -6
  537. package/src/nodes/accessors/BatchNode.js +10 -11
  538. package/src/nodes/accessors/Bitangent.js +6 -2
  539. package/src/nodes/accessors/BufferAttributeNode.js +33 -31
  540. package/src/nodes/accessors/BufferNode.js +12 -13
  541. package/src/nodes/accessors/BuiltinNode.js +7 -8
  542. package/src/nodes/accessors/Camera.js +9 -2
  543. package/src/nodes/accessors/ClippingNode.js +4 -4
  544. package/src/nodes/accessors/CubeTextureNode.js +17 -19
  545. package/src/nodes/accessors/InstanceNode.js +10 -11
  546. package/src/nodes/accessors/InstancedMeshNode.js +3 -4
  547. package/src/nodes/accessors/Lights.js +12 -15
  548. package/src/nodes/accessors/MaterialNode.js +45 -9
  549. package/src/nodes/accessors/MaterialProperties.js +51 -2
  550. package/src/nodes/accessors/MaterialReferenceNode.js +11 -12
  551. package/src/nodes/accessors/ModelNode.js +20 -3
  552. package/src/nodes/accessors/ModelViewProjectionNode.js +1 -2
  553. package/src/nodes/accessors/MorphNode.js +29 -26
  554. package/src/nodes/accessors/Normal.js +11 -3
  555. package/src/nodes/accessors/Object3DNode.js +51 -16
  556. package/src/nodes/accessors/PointUVNode.js +2 -3
  557. package/src/nodes/accessors/Position.js +8 -3
  558. package/src/nodes/accessors/ReferenceBaseNode.js +29 -29
  559. package/src/nodes/accessors/ReferenceNode.js +31 -31
  560. package/src/nodes/accessors/ReflectVector.js +4 -2
  561. package/src/nodes/accessors/RendererReferenceNode.js +9 -10
  562. package/src/nodes/accessors/SceneNode.js +5 -4
  563. package/src/nodes/accessors/SkinningNode.js +53 -44
  564. package/src/nodes/accessors/StorageBufferNode.js +24 -24
  565. package/src/nodes/accessors/StorageTextureNode.js +17 -17
  566. package/src/nodes/accessors/Tangent.js +6 -2
  567. package/src/nodes/accessors/Texture3DNode.js +11 -12
  568. package/src/nodes/accessors/TextureBicubic.js +2 -3
  569. package/src/nodes/accessors/TextureNode.js +68 -47
  570. package/src/nodes/accessors/TextureSizeNode.js +5 -6
  571. package/src/nodes/accessors/UV.js +2 -3
  572. package/src/nodes/accessors/UniformArrayNode.js +24 -24
  573. package/src/nodes/accessors/UserDataNode.js +11 -12
  574. package/src/nodes/accessors/VelocityNode.js +4 -5
  575. package/src/nodes/accessors/VertexColorNode.js +7 -8
  576. package/src/nodes/code/CodeNode.js +15 -13
  577. package/src/nodes/code/ExpressionNode.js +8 -9
  578. package/src/nodes/code/FunctionCallNode.js +29 -9
  579. package/src/nodes/code/FunctionNode.js +1 -1
  580. package/src/nodes/code/ScriptableNode.js +27 -28
  581. package/src/nodes/code/ScriptableValueNode.js +11 -12
  582. package/src/nodes/core/ArrayNode.js +29 -12
  583. package/src/nodes/core/AssignNode.js +4 -5
  584. package/src/nodes/core/AttributeNode.js +8 -9
  585. package/src/nodes/core/BypassNode.js +3 -4
  586. package/src/nodes/core/CacheNode.js +5 -6
  587. package/src/nodes/core/ConstNode.js +4 -4
  588. package/src/nodes/core/ContextNode.js +9 -9
  589. package/src/nodes/core/IndexNode.js +8 -4
  590. package/src/nodes/core/InputNode.js +7 -7
  591. package/src/nodes/core/LightingModel.js +17 -17
  592. package/src/nodes/core/MRTNode.js +9 -10
  593. package/src/nodes/core/Node.js +49 -37
  594. package/src/nodes/core/NodeAttribute.js +7 -7
  595. package/src/nodes/core/NodeBuilder.js +248 -175
  596. package/src/nodes/core/NodeCache.js +4 -4
  597. package/src/nodes/core/NodeCode.js +6 -6
  598. package/src/nodes/core/NodeFrame.js +10 -10
  599. package/src/nodes/core/NodeFunction.js +8 -8
  600. package/src/nodes/core/NodeFunctionInput.js +8 -8
  601. package/src/nodes/core/NodeParser.js +1 -1
  602. package/src/nodes/core/NodeUniform.js +7 -7
  603. package/src/nodes/core/NodeUtils.js +22 -24
  604. package/src/nodes/core/NodeVar.js +9 -9
  605. package/src/nodes/core/NodeVarying.js +4 -4
  606. package/src/nodes/core/OutputStructNode.js +2 -3
  607. package/src/nodes/core/ParameterNode.js +6 -7
  608. package/src/nodes/core/PropertyNode.js +41 -13
  609. package/src/nodes/core/StackNode.js +11 -12
  610. package/src/nodes/core/StructNode.js +2 -3
  611. package/src/nodes/core/StructTypeNode.js +10 -6
  612. package/src/nodes/core/TempNode.js +3 -3
  613. package/src/nodes/core/UniformGroupNode.js +15 -12
  614. package/src/nodes/core/UniformNode.js +9 -10
  615. package/src/nodes/core/VarNode.js +14 -18
  616. package/src/nodes/core/VaryingNode.js +10 -10
  617. package/src/nodes/core/constants.js +0 -2
  618. package/src/nodes/display/BlendModes.js +21 -14
  619. package/src/nodes/display/BumpMapNode.js +5 -6
  620. package/src/nodes/display/ColorAdjustment.js +13 -9
  621. package/src/nodes/display/ColorSpaceFunctions.js +4 -4
  622. package/src/nodes/display/ColorSpaceNode.js +15 -12
  623. package/src/nodes/display/FrontFacingNode.js +3 -3
  624. package/src/nodes/display/NormalMapNode.js +5 -6
  625. package/src/nodes/display/PassNode.js +122 -35
  626. package/src/nodes/display/PosterizeNode.js +2 -3
  627. package/src/nodes/display/RenderOutputNode.js +8 -9
  628. package/src/nodes/display/ScreenNode.js +16 -7
  629. package/src/nodes/display/ToneMappingFunctions.js +12 -8
  630. package/src/nodes/display/ToneMappingNode.js +8 -8
  631. package/src/nodes/display/ToonOutlinePassNode.js +3 -4
  632. package/src/nodes/display/ViewportDepthNode.js +15 -7
  633. package/src/nodes/display/ViewportDepthTextureNode.js +6 -7
  634. package/src/nodes/display/ViewportSharedTextureNode.js +6 -7
  635. package/src/nodes/display/ViewportTextureNode.js +16 -16
  636. package/src/nodes/fog/Fog.js +5 -2
  637. package/src/nodes/functions/BSDF/LTC.js +45 -1
  638. package/src/nodes/functions/BasicLightingModel.js +5 -8
  639. package/src/nodes/functions/PhongLightingModel.js +6 -8
  640. package/src/nodes/functions/PhysicalLightingModel.js +40 -42
  641. package/src/nodes/functions/ShadowMaskModel.js +4 -4
  642. package/src/nodes/functions/ToonLightingModel.js +5 -6
  643. package/src/nodes/functions/VolumetricLightingModel.js +183 -0
  644. package/src/nodes/functions/material/getParallaxCorrectNormal.js +8 -8
  645. package/src/nodes/geometry/RangeNode.js +4 -5
  646. package/src/nodes/gpgpu/AtomicFunctionNode.js +33 -48
  647. package/src/nodes/gpgpu/BarrierNode.js +6 -4
  648. package/src/nodes/gpgpu/ComputeBuiltinNode.js +26 -31
  649. package/src/nodes/gpgpu/ComputeNode.js +43 -16
  650. package/src/nodes/gpgpu/WorkgroupInfoNode.js +16 -17
  651. package/src/nodes/lighting/AONode.js +2 -2
  652. package/src/nodes/lighting/AmbientLightNode.js +1 -1
  653. package/src/nodes/lighting/AnalyticLightNode.js +50 -9
  654. package/src/nodes/lighting/BasicLightMapNode.js +2 -2
  655. package/src/nodes/lighting/DirectionalLightNode.js +3 -12
  656. package/src/nodes/lighting/EnvironmentNode.js +5 -8
  657. package/src/nodes/lighting/HemisphereLightNode.js +1 -1
  658. package/src/nodes/lighting/LightProbeNode.js +1 -1
  659. package/src/nodes/lighting/LightUtils.js +1 -5
  660. package/src/nodes/lighting/LightingContextNode.js +10 -10
  661. package/src/nodes/lighting/LightingNode.js +1 -1
  662. package/src/nodes/lighting/LightsNode.js +68 -25
  663. package/src/nodes/lighting/PointLightNode.js +12 -27
  664. package/src/nodes/lighting/PointShadowNode.js +5 -6
  665. package/src/nodes/lighting/RectAreaLightNode.js +5 -10
  666. package/src/nodes/lighting/ShadowBaseNode.js +8 -9
  667. package/src/nodes/lighting/ShadowNode.js +28 -15
  668. package/src/nodes/lighting/SpotLightNode.js +8 -19
  669. package/src/nodes/math/ConditionalNode.js +26 -9
  670. package/src/nodes/math/Hash.js +2 -3
  671. package/src/nodes/math/MathNode.js +217 -150
  672. package/src/nodes/math/MathUtils.js +8 -6
  673. package/src/nodes/math/OperatorNode.js +198 -89
  674. package/src/nodes/math/TriNoise3D.js +2 -3
  675. package/src/nodes/parsers/GLSLNodeFunction.js +3 -3
  676. package/src/nodes/parsers/GLSLNodeParser.js +1 -1
  677. package/src/nodes/pmrem/PMREMNode.js +61 -37
  678. package/src/nodes/pmrem/PMREMUtils.js +2 -2
  679. package/src/nodes/procedural/Checker.js +2 -3
  680. package/src/nodes/shapes/Shapes.js +2 -3
  681. package/src/nodes/tsl/TSLBase.js +2 -1
  682. package/src/nodes/tsl/TSLCore.js +117 -19
  683. package/src/nodes/utils/ArrayElementNode.js +5 -3
  684. package/src/nodes/utils/ConvertNode.js +3 -3
  685. package/src/nodes/utils/CubeMapNode.js +7 -8
  686. package/src/nodes/utils/DebugNode.js +70 -0
  687. package/src/nodes/utils/Discard.js +5 -5
  688. package/src/nodes/utils/EquirectUVNode.js +3 -4
  689. package/src/nodes/utils/FlipNode.js +3 -3
  690. package/src/nodes/utils/FunctionOverloadingNode.js +3 -4
  691. package/src/nodes/utils/JoinNode.js +29 -4
  692. package/src/nodes/utils/LoopNode.js +67 -35
  693. package/src/nodes/utils/MatcapUVNode.js +1 -2
  694. package/src/nodes/utils/MaxMipLevelNode.js +4 -5
  695. package/src/nodes/utils/MemberNode.js +2 -2
  696. package/src/nodes/utils/Oscillators.js +8 -6
  697. package/src/nodes/utils/Packing.js +4 -4
  698. package/src/nodes/utils/PostProcessingUtils.js +6 -5
  699. package/src/nodes/utils/RTTNode.js +19 -19
  700. package/src/nodes/utils/ReflectorNode.js +35 -25
  701. package/src/nodes/utils/RemapNode.js +9 -9
  702. package/src/nodes/utils/RotateNode.js +3 -4
  703. package/src/nodes/utils/SetNode.js +3 -3
  704. package/src/nodes/utils/SplitNode.js +5 -5
  705. package/src/nodes/utils/SpriteSheetUVNode.js +4 -5
  706. package/src/nodes/utils/SpriteUtils.js +5 -6
  707. package/src/nodes/utils/StorageArrayElementNode.js +3 -4
  708. package/src/nodes/utils/Timer.js +9 -5
  709. package/src/nodes/utils/TriplanarTexturesNode.js +20 -20
  710. package/src/nodes/utils/UVUtils.js +4 -4
  711. package/src/nodes/utils/ViewportUtils.js +3 -4
  712. package/src/objects/BatchedMesh.js +319 -32
  713. package/src/objects/Bone.js +24 -0
  714. package/src/objects/ClippingGroup.js +4 -4
  715. package/src/objects/Group.js +24 -0
  716. package/src/objects/InstancedMesh.js +120 -2
  717. package/src/objects/LOD.js +99 -5
  718. package/src/objects/Line.js +82 -0
  719. package/src/objects/LineLoop.js +20 -0
  720. package/src/objects/LineSegments.js +18 -0
  721. package/src/objects/Mesh.js +75 -0
  722. package/src/objects/Points.js +60 -0
  723. package/src/objects/Skeleton.js +105 -0
  724. package/src/objects/SkinnedMesh.js +99 -5
  725. package/src/objects/Sprite.js +54 -0
  726. package/src/renderers/WebGL3DRenderTarget.js +25 -0
  727. package/src/renderers/WebGLArrayRenderTarget.js +25 -0
  728. package/src/renderers/WebGLCubeRenderTarget.js +39 -1
  729. package/src/renderers/WebGLRenderTarget.js +19 -0
  730. package/src/renderers/WebGLRenderer.js +622 -83
  731. package/src/renderers/common/Animation.js +6 -6
  732. package/src/renderers/common/Attributes.js +3 -3
  733. package/src/renderers/common/Backend.js +40 -31
  734. package/src/renderers/common/Background.js +4 -3
  735. package/src/renderers/common/BindGroup.js +5 -5
  736. package/src/renderers/common/Binding.js +4 -4
  737. package/src/renderers/common/Bindings.js +10 -0
  738. package/src/renderers/common/Buffer.js +5 -5
  739. package/src/renderers/common/BufferUtils.js +7 -9
  740. package/src/renderers/common/BundleGroup.js +6 -6
  741. package/src/renderers/common/ChainMap.js +3 -3
  742. package/src/renderers/common/ClippingContext.js +8 -8
  743. package/src/renderers/common/Color4.js +8 -8
  744. package/src/renderers/common/ComputePipeline.js +2 -2
  745. package/src/renderers/common/CubeRenderTarget.js +13 -0
  746. package/src/renderers/common/DataMap.js +2 -2
  747. package/src/renderers/common/Geometries.js +6 -6
  748. package/src/renderers/common/IndirectStorageBufferAttribute.js +3 -3
  749. package/src/renderers/common/Info.js +17 -17
  750. package/src/renderers/common/Pipeline.js +3 -3
  751. package/src/renderers/common/Pipelines.js +12 -12
  752. package/src/renderers/common/PostProcessing.js +13 -1
  753. package/src/renderers/common/ProgrammableStage.js +11 -11
  754. package/src/renderers/common/QuadMesh.js +5 -3
  755. package/src/renderers/common/RenderContext.js +24 -24
  756. package/src/renderers/common/RenderContexts.js +4 -4
  757. package/src/renderers/common/RenderList.js +16 -16
  758. package/src/renderers/common/RenderObject.js +27 -27
  759. package/src/renderers/common/RenderObjects.js +4 -4
  760. package/src/renderers/common/RenderPipeline.js +1 -1
  761. package/src/renderers/common/Renderer.js +272 -200
  762. package/src/renderers/common/RendererUtils.js +0 -2
  763. package/src/renderers/common/SampledTexture.js +20 -20
  764. package/src/renderers/common/Sampler.js +5 -5
  765. package/src/renderers/common/StorageBuffer.js +2 -2
  766. package/src/renderers/common/StorageBufferAttribute.js +4 -4
  767. package/src/renderers/common/StorageInstancedBufferAttribute.js +4 -4
  768. package/src/renderers/common/StorageTexture.js +6 -6
  769. package/src/renderers/common/Textures.js +6 -6
  770. package/src/renderers/common/TimestampQueryPool.js +66 -7
  771. package/src/renderers/common/Uniform.js +26 -26
  772. package/src/renderers/common/UniformBuffer.js +2 -2
  773. package/src/renderers/common/UniformsGroup.js +18 -18
  774. package/src/renderers/common/XRManager.js +369 -54
  775. package/src/renderers/common/XRRenderTarget.js +5 -5
  776. package/src/renderers/common/extras/PMREMGenerator.js +62 -37
  777. package/src/renderers/common/nodes/NodeBuilderState.js +7 -7
  778. package/src/renderers/common/nodes/NodeLibrary.js +13 -13
  779. package/src/renderers/common/nodes/NodeSampledTexture.js +12 -12
  780. package/src/renderers/common/nodes/NodeSampler.js +1 -1
  781. package/src/renderers/common/nodes/NodeStorageBuffer.js +1 -1
  782. package/src/renderers/common/nodes/NodeUniform.js +9 -9
  783. package/src/renderers/common/nodes/NodeUniformsGroup.js +3 -3
  784. package/src/renderers/common/nodes/Nodes.js +13 -13
  785. package/src/renderers/shaders/UniformsLib.js +1 -4
  786. package/src/renderers/shaders/UniformsUtils.js +1 -3
  787. package/src/renderers/webgl/WebGLBackground.js +4 -2
  788. package/src/renderers/webgl/WebGLState.js +19 -19
  789. package/src/renderers/webgl-fallback/WebGLBackend.js +163 -146
  790. package/src/renderers/webgl-fallback/WebGLBufferRenderer.js +4 -4
  791. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +89 -99
  792. package/src/renderers/webgl-fallback/utils/WebGLCapabilities.js +2 -2
  793. package/src/renderers/webgl-fallback/utils/WebGLExtensions.js +5 -5
  794. package/src/renderers/webgl-fallback/utils/WebGLState.js +97 -47
  795. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +79 -31
  796. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +37 -29
  797. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +3 -3
  798. package/src/renderers/webgpu/WebGPUBackend.js +200 -119
  799. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +3 -13
  800. package/src/renderers/webgpu/WebGPURenderer.js +19 -13
  801. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +171 -178
  802. package/src/renderers/webgpu/nodes/WGSLNodeFunction.js +3 -3
  803. package/src/renderers/webgpu/nodes/WGSLNodeParser.js +1 -1
  804. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +43 -9
  805. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +2 -2
  806. package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
  807. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +18 -10
  808. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +9 -9
  809. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +37 -37
  810. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +31 -18
  811. package/src/renderers/webgpu/utils/WebGPUUtils.js +9 -9
  812. package/src/renderers/webxr/WebXRController.js +87 -2
  813. package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
  814. package/src/renderers/webxr/WebXRManager.js +185 -9
  815. package/src/scenes/Fog.js +60 -0
  816. package/src/scenes/FogExp2.js +51 -0
  817. package/src/scenes/Scene.js +88 -0
  818. package/src/textures/CanvasTexture.js +28 -0
  819. package/src/textures/CompressedArrayTexture.js +57 -0
  820. package/src/textures/CompressedCubeTexture.js +29 -0
  821. package/src/textures/CompressedTexture.js +64 -6
  822. package/src/textures/CubeTexture.js +52 -4
  823. package/src/textures/Data3DTexture.js +77 -0
  824. package/src/textures/DataArrayTexture.js +93 -0
  825. package/src/textures/DataTexture.js +65 -0
  826. package/src/textures/DepthTexture.js +61 -9
  827. package/src/textures/FramebufferTexture.js +62 -0
  828. package/src/textures/Source.js +69 -0
  829. package/src/textures/Texture.js +362 -3
  830. package/src/textures/VideoFrameTexture.js +43 -6
  831. package/src/textures/VideoTexture.js +49 -4
  832. package/examples/jsm/geometries/ParametricGeometries.js +0 -254
@@ -1,10 +1,8 @@
1
1
  import TempNode from '../core/TempNode.js';
2
- import { sub, mul, div } from './OperatorNode.js';
2
+ import { sub, mul, div, mod, equal } from './OperatorNode.js';
3
3
  import { addMethodChaining, nodeObject, nodeProxy, float, vec2, vec3, vec4, Fn } from '../tsl/TSLCore.js';
4
4
  import { WebGLCoordinateSystem, WebGPUCoordinateSystem } from '../../constants.js';
5
5
 
6
- /** @module MathNode **/
7
-
8
6
  /**
9
7
  * This node represents a variety of mathematical methods available in shaders.
10
8
  * They are divided into three categories:
@@ -26,19 +24,37 @@ class MathNode extends TempNode {
26
24
  /**
27
25
  * Constructs a new math node.
28
26
  *
29
- * @param {String} method - The method name.
27
+ * @param {string} method - The method name.
30
28
  * @param {Node} aNode - The first input.
31
- * @param {Node?} [bNode=null] - The second input.
32
- * @param {Node?} [cNode=null] - The third input.
29
+ * @param {?Node} [bNode=null] - The second input.
30
+ * @param {?Node} [cNode=null] - The third input.
33
31
  */
34
32
  constructor( method, aNode, bNode = null, cNode = null ) {
35
33
 
36
34
  super();
37
35
 
36
+ // Allow the max() and min() functions to take an arbitrary number of arguments.
37
+
38
+ if ( ( method === MathNode.MAX || method === MathNode.MIN ) && arguments.length > 3 ) {
39
+
40
+ let finalOp = new MathNode( method, aNode, bNode );
41
+
42
+ for ( let i = 2; i < arguments.length - 1; i ++ ) {
43
+
44
+ finalOp = new MathNode( method, finalOp, arguments[ i ] );
45
+
46
+ }
47
+
48
+ aNode = finalOp;
49
+ bNode = arguments[ arguments.length - 1 ];
50
+ cNode = null;
51
+
52
+ }
53
+
38
54
  /**
39
55
  * The method name.
40
56
  *
41
- * @type {String}
57
+ * @type {string}
42
58
  */
43
59
  this.method = method;
44
60
 
@@ -52,7 +68,7 @@ class MathNode extends TempNode {
52
68
  /**
53
69
  * The second input.
54
70
  *
55
- * @type {Node?}
71
+ * @type {?Node}
56
72
  * @default null
57
73
  */
58
74
  this.bNode = bNode;
@@ -60,7 +76,7 @@ class MathNode extends TempNode {
60
76
  /**
61
77
  * The third input.
62
78
  *
63
- * @type {Node?}
79
+ * @type {?Node}
64
80
  * @default null
65
81
  */
66
82
  this.cNode = cNode;
@@ -68,7 +84,7 @@ class MathNode extends TempNode {
68
84
  /**
69
85
  * This flag can be used for type testing.
70
86
  *
71
- * @type {Boolean}
87
+ * @type {boolean}
72
88
  * @readonly
73
89
  * @default true
74
90
  */
@@ -80,7 +96,7 @@ class MathNode extends TempNode {
80
96
  * The input type is inferred from the node types of the input nodes.
81
97
  *
82
98
  * @param {NodeBuilder} builder - The current node builder.
83
- * @return {String} The input type.
99
+ * @return {string} The input type.
84
100
  */
85
101
  getInputType( builder ) {
86
102
 
@@ -114,7 +130,7 @@ class MathNode extends TempNode {
114
130
  * The selected method as well as the input type determine the node type of this node.
115
131
  *
116
132
  * @param {NodeBuilder} builder - The current node builder.
117
- * @return {String} The node type.
133
+ * @return {string} The node type.
118
134
  */
119
135
  getNodeType( builder ) {
120
136
 
@@ -128,7 +144,7 @@ class MathNode extends TempNode {
128
144
 
129
145
  return 'vec3';
130
146
 
131
- } else if ( method === MathNode.ALL ) {
147
+ } else if ( method === MathNode.ALL || method === MathNode.ANY ) {
132
148
 
133
149
  return 'bool';
134
150
 
@@ -136,10 +152,6 @@ class MathNode extends TempNode {
136
152
 
137
153
  return builder.changeComponentType( this.aNode.getNodeType( builder ), 'bool' );
138
154
 
139
- } else if ( method === MathNode.MOD ) {
140
-
141
- return this.aNode.getNodeType( builder );
142
-
143
155
  } else {
144
156
 
145
157
  return this.getInputType( builder );
@@ -203,7 +215,7 @@ class MathNode extends TempNode {
203
215
 
204
216
  const params = [];
205
217
 
206
- if ( method === MathNode.CROSS || method === MathNode.MOD ) {
218
+ if ( method === MathNode.CROSS ) {
207
219
 
208
220
  params.push(
209
221
  a.build( builder, type ),
@@ -217,7 +229,7 @@ class MathNode extends TempNode {
217
229
  b.build( builder, inputType )
218
230
  );
219
231
 
220
- } else if ( ( coordinateSystem === WebGLCoordinateSystem && ( method === MathNode.MIN || method === MathNode.MAX ) ) || method === MathNode.MOD ) {
232
+ } else if ( coordinateSystem === WebGLCoordinateSystem && ( method === MathNode.MIN || method === MathNode.MAX ) ) {
221
233
 
222
234
  params.push(
223
235
  a.build( builder, inputType ),
@@ -320,7 +332,6 @@ MathNode.BITCAST = 'bitcast';
320
332
  MathNode.EQUALS = 'equals';
321
333
  MathNode.MIN = 'min';
322
334
  MathNode.MAX = 'max';
323
- MathNode.MOD = 'mod';
324
335
  MathNode.STEP = 'step';
325
336
  MathNode.REFLECT = 'reflect';
326
337
  MathNode.DISTANCE = 'distance';
@@ -345,6 +356,7 @@ export default MathNode;
345
356
  /**
346
357
  * A small value used to handle floating-point precision errors.
347
358
  *
359
+ * @tsl
348
360
  * @type {Node<float>}
349
361
  */
350
362
  export const EPSILON = /*@__PURE__*/ float( 1e-6 );
@@ -352,6 +364,7 @@ export const EPSILON = /*@__PURE__*/ float( 1e-6 );
352
364
  /**
353
365
  * Represents infinity.
354
366
  *
367
+ * @tsl
355
368
  * @type {Node<float>}
356
369
  */
357
370
  export const INFINITY = /*@__PURE__*/ float( 1e6 );
@@ -359,6 +372,7 @@ export const INFINITY = /*@__PURE__*/ float( 1e6 );
359
372
  /**
360
373
  * Represents PI.
361
374
  *
375
+ * @tsl
362
376
  * @type {Node<float>}
363
377
  */
364
378
  export const PI = /*@__PURE__*/ float( Math.PI );
@@ -366,6 +380,7 @@ export const PI = /*@__PURE__*/ float( Math.PI );
366
380
  /**
367
381
  * Represents PI * 2.
368
382
  *
383
+ * @tsl
369
384
  * @type {Node<float>}
370
385
  */
371
386
  export const PI2 = /*@__PURE__*/ float( Math.PI * 2 );
@@ -373,457 +388,499 @@ export const PI2 = /*@__PURE__*/ float( Math.PI * 2 );
373
388
  /**
374
389
  * Returns `true` if all components of `x` are `true`.
375
390
  *
391
+ * @tsl
376
392
  * @function
377
- * @param {Node | Number} x - The parameter.
393
+ * @param {Node | number} x - The parameter.
378
394
  * @returns {Node<bool>}
379
395
  */
380
- export const all = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ALL );
396
+ export const all = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ALL ).setParameterLength( 1 );
381
397
 
382
398
  /**
383
399
  * Returns `true` if any components of `x` are `true`.
384
400
  *
401
+ * @tsl
385
402
  * @function
386
- * @param {Node | Number} x - The parameter.
403
+ * @param {Node | number} x - The parameter.
387
404
  * @returns {Node<bool>}
388
405
  */
389
- export const any = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ANY );
406
+ export const any = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ANY ).setParameterLength( 1 );
390
407
 
391
408
  /**
392
409
  * Converts a quantity in degrees to radians.
393
410
  *
411
+ * @tsl
394
412
  * @function
395
- * @param {Node | Number} x - The input in degrees.
413
+ * @param {Node | number} x - The input in degrees.
396
414
  * @returns {Node}
397
415
  */
398
- export const radians = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RADIANS );
416
+ export const radians = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RADIANS ).setParameterLength( 1 );
399
417
 
400
418
  /**
401
419
  * Convert a quantity in radians to degrees.
402
420
  *
421
+ * @tsl
403
422
  * @function
404
- * @param {Node | Number} x - The input in radians.
423
+ * @param {Node | number} x - The input in radians.
405
424
  * @returns {Node}
406
425
  */
407
- export const degrees = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DEGREES );
426
+ export const degrees = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DEGREES ).setParameterLength( 1 );
408
427
 
409
428
  /**
410
429
  * Returns the natural exponentiation of the parameter.
411
430
  *
431
+ * @tsl
412
432
  * @function
413
- * @param {Node | Number} x - The parameter.
433
+ * @param {Node | number} x - The parameter.
414
434
  * @returns {Node}
415
435
  */
416
- export const exp = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP );
436
+ export const exp = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP ).setParameterLength( 1 );
417
437
 
418
438
  /**
419
439
  * Returns 2 raised to the power of the parameter.
420
440
  *
441
+ * @tsl
421
442
  * @function
422
- * @param {Node | Number} x - The parameter.
443
+ * @param {Node | number} x - The parameter.
423
444
  * @returns {Node}
424
445
  */
425
- export const exp2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP2 );
446
+ export const exp2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EXP2 ).setParameterLength( 1 );
426
447
 
427
448
  /**
428
449
  * Returns the natural logarithm of the parameter.
429
450
  *
451
+ * @tsl
430
452
  * @function
431
- * @param {Node | Number} x - The parameter.
453
+ * @param {Node | number} x - The parameter.
432
454
  * @returns {Node}
433
455
  */
434
- export const log = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG );
456
+ export const log = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG ).setParameterLength( 1 );
435
457
 
436
458
  /**
437
459
  * Returns the base 2 logarithm of the parameter.
438
460
  *
461
+ * @tsl
439
462
  * @function
440
- * @param {Node | Number} x - The parameter.
463
+ * @param {Node | number} x - The parameter.
441
464
  * @returns {Node}
442
465
  */
443
- export const log2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG2 );
466
+ export const log2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LOG2 ).setParameterLength( 1 );
444
467
 
445
468
  /**
446
469
  * Returns the square root of the parameter.
447
470
  *
471
+ * @tsl
448
472
  * @function
449
- * @param {Node | Number} x - The parameter.
473
+ * @param {Node | number} x - The parameter.
450
474
  * @returns {Node}
451
475
  */
452
- export const sqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SQRT );
476
+ export const sqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SQRT ).setParameterLength( 1 );
453
477
 
454
478
  /**
455
479
  * Returns the inverse of the square root of the parameter.
456
480
  *
481
+ * @tsl
457
482
  * @function
458
- * @param {Node | Number} x - The parameter.
483
+ * @param {Node | number} x - The parameter.
459
484
  * @returns {Node}
460
485
  */
461
- export const inverseSqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.INVERSE_SQRT );
486
+ export const inverseSqrt = /*@__PURE__*/ nodeProxy( MathNode, MathNode.INVERSE_SQRT ).setParameterLength( 1 );
462
487
 
463
488
  /**
464
489
  * Finds the nearest integer less than or equal to the parameter.
465
490
  *
491
+ * @tsl
466
492
  * @function
467
- * @param {Node | Number} x - The parameter.
493
+ * @param {Node | number} x - The parameter.
468
494
  * @returns {Node}
469
495
  */
470
- export const floor = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FLOOR );
496
+ export const floor = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FLOOR ).setParameterLength( 1 );
471
497
 
472
498
  /**
473
499
  * Finds the nearest integer that is greater than or equal to the parameter.
474
500
  *
501
+ * @tsl
475
502
  * @function
476
- * @param {Node | Number} x - The parameter.
503
+ * @param {Node | number} x - The parameter.
477
504
  * @returns {Node}
478
505
  */
479
- export const ceil = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CEIL );
506
+ export const ceil = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CEIL ).setParameterLength( 1 );
480
507
 
481
508
  /**
482
509
  * Calculates the unit vector in the same direction as the original vector.
483
510
  *
511
+ * @tsl
484
512
  * @function
485
513
  * @param {Node} x - The input vector.
486
514
  * @returns {Node}
487
515
  */
488
- export const normalize = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NORMALIZE );
516
+ export const normalize = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NORMALIZE ).setParameterLength( 1 );
489
517
 
490
518
  /**
491
519
  * Computes the fractional part of the parameter.
492
520
  *
521
+ * @tsl
493
522
  * @function
494
- * @param {Node | Number} x - The parameter.
523
+ * @param {Node | number} x - The parameter.
495
524
  * @returns {Node}
496
525
  */
497
- export const fract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FRACT );
526
+ export const fract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FRACT ).setParameterLength( 1 );
498
527
 
499
528
  /**
500
529
  * Returns the sine of the parameter.
501
530
  *
531
+ * @tsl
502
532
  * @function
503
- * @param {Node | Number} x - The parameter.
533
+ * @param {Node | number} x - The parameter.
504
534
  * @returns {Node}
505
535
  */
506
- export const sin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIN );
536
+ export const sin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIN ).setParameterLength( 1 );
507
537
 
508
538
  /**
509
539
  * Returns the cosine of the parameter.
510
540
  *
541
+ * @tsl
511
542
  * @function
512
- * @param {Node | Number} x - The parameter.
543
+ * @param {Node | number} x - The parameter.
513
544
  * @returns {Node}
514
545
  */
515
- export const cos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.COS );
546
+ export const cos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.COS ).setParameterLength( 1 );
516
547
 
517
548
  /**
518
549
  * Returns the tangent of the parameter.
519
550
  *
551
+ * @tsl
520
552
  * @function
521
- * @param {Node | Number} x - The parameter.
553
+ * @param {Node | number} x - The parameter.
522
554
  * @returns {Node}
523
555
  */
524
- export const tan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TAN );
556
+ export const tan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TAN ).setParameterLength( 1 );
525
557
 
526
558
  /**
527
559
  * Returns the arcsine of the parameter.
528
560
  *
561
+ * @tsl
529
562
  * @function
530
- * @param {Node | Number} x - The parameter.
563
+ * @param {Node | number} x - The parameter.
531
564
  * @returns {Node}
532
565
  */
533
- export const asin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ASIN );
566
+ export const asin = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ASIN ).setParameterLength( 1 );
534
567
 
535
568
  /**
536
569
  * Returns the arccosine of the parameter.
537
570
  *
571
+ * @tsl
538
572
  * @function
539
- * @param {Node | Number} x - The parameter.
573
+ * @param {Node | number} x - The parameter.
540
574
  * @returns {Node}
541
575
  */
542
- export const acos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ACOS );
576
+ export const acos = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ACOS ).setParameterLength( 1 );
543
577
 
544
578
  /**
545
579
  * Returns the arc-tangent of the parameter.
546
580
  * If two parameters are provided, the result is `atan2(y/x)`.
547
581
  *
582
+ * @tsl
548
583
  * @function
549
- * @param {Node | Number} y - The y parameter.
550
- * @param {(Node | Number)?} x - The x parameter.
584
+ * @param {Node | number} y - The y parameter.
585
+ * @param {?(Node | number)} x - The x parameter.
551
586
  * @returns {Node}
552
587
  */
553
- export const atan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ATAN );
588
+ export const atan = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ATAN ).setParameterLength( 1, 2 );
554
589
 
555
590
  /**
556
591
  * Returns the absolute value of the parameter.
557
592
  *
593
+ * @tsl
558
594
  * @function
559
- * @param {Node | Number} x - The parameter.
595
+ * @param {Node | number} x - The parameter.
560
596
  * @returns {Node}
561
597
  */
562
- export const abs = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ABS );
598
+ export const abs = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ABS ).setParameterLength( 1 );
563
599
 
564
600
  /**
565
601
  * Extracts the sign of the parameter.
566
602
  *
603
+ * @tsl
567
604
  * @function
568
- * @param {Node | Number} x - The parameter.
605
+ * @param {Node | number} x - The parameter.
569
606
  * @returns {Node}
570
607
  */
571
- export const sign = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIGN );
608
+ export const sign = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SIGN ).setParameterLength( 1 );
572
609
 
573
610
  /**
574
611
  * Calculates the length of a vector.
575
612
  *
613
+ * @tsl
576
614
  * @function
577
615
  * @param {Node} x - The parameter.
578
616
  * @returns {Node<float>}
579
617
  */
580
- export const length = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LENGTH );
618
+ export const length = /*@__PURE__*/ nodeProxy( MathNode, MathNode.LENGTH ).setParameterLength( 1 );
581
619
 
582
620
  /**
583
621
  * Negates the value of the parameter (-x).
584
622
  *
623
+ * @tsl
585
624
  * @function
586
- * @param {Node | Number} x - The parameter.
625
+ * @param {Node | number} x - The parameter.
587
626
  * @returns {Node}
588
627
  */
589
- export const negate = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NEGATE );
628
+ export const negate = /*@__PURE__*/ nodeProxy( MathNode, MathNode.NEGATE ).setParameterLength( 1 );
590
629
 
591
630
  /**
592
631
  * Return `1` minus the parameter.
593
632
  *
633
+ * @tsl
594
634
  * @function
595
- * @param {Node | Number} x - The parameter.
635
+ * @param {Node | number} x - The parameter.
596
636
  * @returns {Node}
597
637
  */
598
- export const oneMinus = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ONE_MINUS );
638
+ export const oneMinus = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ONE_MINUS ).setParameterLength( 1 );
599
639
 
600
640
  /**
601
641
  * Returns the partial derivative of the parameter with respect to x.
602
642
  *
643
+ * @tsl
603
644
  * @function
604
- * @param {Node | Number} x - The parameter.
645
+ * @param {Node | number} x - The parameter.
605
646
  * @returns {Node}
606
647
  */
607
- export const dFdx = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDX );
648
+ export const dFdx = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDX ).setParameterLength( 1 );
608
649
 
609
650
  /**
610
651
  * Returns the partial derivative of the parameter with respect to y.
611
652
  *
653
+ * @tsl
612
654
  * @function
613
- * @param {Node | Number} x - The parameter.
655
+ * @param {Node | number} x - The parameter.
614
656
  * @returns {Node}
615
657
  */
616
- export const dFdy = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDY );
658
+ export const dFdy = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DFDY ).setParameterLength( 1 );
617
659
 
618
660
  /**
619
661
  * Rounds the parameter to the nearest integer.
620
662
  *
663
+ * @tsl
621
664
  * @function
622
- * @param {Node | Number} x - The parameter.
665
+ * @param {Node | number} x - The parameter.
623
666
  * @returns {Node}
624
667
  */
625
- export const round = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ROUND );
668
+ export const round = /*@__PURE__*/ nodeProxy( MathNode, MathNode.ROUND ).setParameterLength( 1 );
626
669
 
627
670
  /**
628
671
  * Returns the reciprocal of the parameter `(1/x)`.
629
672
  *
673
+ * @tsl
630
674
  * @function
631
- * @param {Node | Number} x - The parameter.
675
+ * @param {Node | number} x - The parameter.
632
676
  * @returns {Node}
633
677
  */
634
- export const reciprocal = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RECIPROCAL );
678
+ export const reciprocal = /*@__PURE__*/ nodeProxy( MathNode, MathNode.RECIPROCAL ).setParameterLength( 1 );
635
679
 
636
680
  /**
637
681
  * Truncates the parameter, removing the fractional part.
638
682
  *
683
+ * @tsl
639
684
  * @function
640
- * @param {Node | Number} x - The parameter.
685
+ * @param {Node | number} x - The parameter.
641
686
  * @returns {Node}
642
687
  */
643
- export const trunc = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRUNC );
688
+ export const trunc = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRUNC ).setParameterLength( 1 );
644
689
 
645
690
  /**
646
691
  * Returns the sum of the absolute derivatives in x and y.
647
692
  *
693
+ * @tsl
648
694
  * @function
649
- * @param {Node | Number} x - The parameter.
695
+ * @param {Node | number} x - The parameter.
650
696
  * @returns {Node}
651
697
  */
652
- export const fwidth = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FWIDTH );
698
+ export const fwidth = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FWIDTH ).setParameterLength( 1 );
653
699
 
654
700
  /**
655
701
  * Returns the transpose of a matrix.
656
702
  *
703
+ * @tsl
657
704
  * @function
658
705
  * @param {Node<mat2|mat3|mat4>} x - The parameter.
659
706
  * @returns {Node}
660
707
  */
661
- export const transpose = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSPOSE );
708
+ export const transpose = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSPOSE ).setParameterLength( 1 );
662
709
 
663
710
  // 2 inputs
664
711
 
665
712
  /**
666
713
  * Reinterpret the bit representation of a value in one type as a value in another type.
667
714
  *
715
+ * @tsl
668
716
  * @function
669
- * @param {Node | Number} x - The parameter.
670
- * @param {String} y - The new type.
717
+ * @param {Node | number} x - The parameter.
718
+ * @param {string} y - The new type.
671
719
  * @returns {Node}
672
720
  */
673
- export const bitcast = /*@__PURE__*/ nodeProxy( MathNode, MathNode.BITCAST );
721
+ export const bitcast = /*@__PURE__*/ nodeProxy( MathNode, MathNode.BITCAST ).setParameterLength( 2 );
674
722
 
675
723
  /**
676
724
  * Returns `true` if `x` equals `y`.
677
725
  *
726
+ * @tsl
678
727
  * @function
679
- * @param {Node | Number} x - The first parameter.
680
- * @param {Node | Number} y - The second parameter.
728
+ * @param {Node | number} x - The first parameter.
729
+ * @param {Node | number} y - The second parameter.
730
+ * @deprecated since r175. Use {@link equal} instead.
681
731
  * @returns {Node<bool>}
682
732
  */
683
- export const equals = /*@__PURE__*/ nodeProxy( MathNode, MathNode.EQUALS );
733
+ export const equals = ( x, y ) => { // @deprecated, r172
684
734
 
685
- /**
686
- * Returns the lesser of two values.
687
- *
688
- * @function
689
- * @param {Node | Number} x - The y parameter.
690
- * @param {Node | Number} y - The x parameter.
691
- * @returns {Node}
692
- */
693
- export const min = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIN );
735
+ console.warn( 'THREE.TSL: "equals" is deprecated. Use "equal" inside a vector instead, like: "bvec*( equal( ... ) )"' );
736
+ return equal( x, y );
737
+
738
+ };
694
739
 
695
740
  /**
696
- * Returns the greater of two values.
741
+ * Returns the least of the given values.
697
742
  *
743
+ * @tsl
698
744
  * @function
699
- * @param {Node | Number} x - The y parameter.
700
- * @param {Node | Number} y - The x parameter.
745
+ * @param {...(Node | number)} values - The values to compare.
701
746
  * @returns {Node}
702
747
  */
703
- export const max = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MAX );
748
+ export const min = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIN ).setParameterLength( 2, Infinity );
704
749
 
705
750
  /**
706
- * Computes the remainder of dividing the first node by the second one.
751
+ * Returns the greatest of the given values.
707
752
  *
753
+ * @tsl
708
754
  * @function
709
- * @param {Node | Number} x - The y parameter.
710
- * @param {Node | Number} y - The x parameter.
755
+ * @param {...(Node | number)} values - The values to compare.
711
756
  * @returns {Node}
712
757
  */
713
- export const mod = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MOD );
758
+ export const max = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MAX ).setParameterLength( 2, Infinity );
714
759
 
715
760
  /**
716
761
  * Generate a step function by comparing two values.
717
762
  *
763
+ * @tsl
718
764
  * @function
719
- * @param {Node | Number} x - The y parameter.
720
- * @param {Node | Number} y - The x parameter.
765
+ * @param {Node | number} x - The y parameter.
766
+ * @param {Node | number} y - The x parameter.
721
767
  * @returns {Node}
722
768
  */
723
- export const step = /*@__PURE__*/ nodeProxy( MathNode, MathNode.STEP );
769
+ export const step = /*@__PURE__*/ nodeProxy( MathNode, MathNode.STEP ).setParameterLength( 2 );
724
770
 
725
771
  /**
726
772
  * Calculates the reflection direction for an incident vector.
727
773
  *
774
+ * @tsl
728
775
  * @function
729
776
  * @param {Node<vec2|vec3|vec4>} I - The incident vector.
730
777
  * @param {Node<vec2|vec3|vec4>} N - The normal vector.
731
778
  * @returns {Node<vec2|vec3|vec4>}
732
779
  */
733
- export const reflect = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFLECT );
780
+ export const reflect = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFLECT ).setParameterLength( 2 );
734
781
 
735
782
  /**
736
783
  * Calculates the distance between two points.
737
784
  *
785
+ * @tsl
738
786
  * @function
739
787
  * @param {Node<vec2|vec3|vec4>} x - The first point.
740
788
  * @param {Node<vec2|vec3|vec4>} y - The second point.
741
789
  * @returns {Node<float>}
742
790
  */
743
- export const distance = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DISTANCE );
791
+ export const distance = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DISTANCE ).setParameterLength( 2 );
744
792
 
745
793
  /**
746
794
  * Calculates the absolute difference between two values.
747
795
  *
796
+ * @tsl
748
797
  * @function
749
- * @param {Node | Number} x - The first parameter.
750
- * @param {Node | Number} y - The second parameter.
798
+ * @param {Node | number} x - The first parameter.
799
+ * @param {Node | number} y - The second parameter.
751
800
  * @returns {Node}
752
801
  */
753
- export const difference = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DIFFERENCE );
802
+ export const difference = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DIFFERENCE ).setParameterLength( 2 );
754
803
 
755
804
  /**
756
805
  * Calculates the dot product of two vectors.
757
806
  *
807
+ * @tsl
758
808
  * @function
759
809
  * @param {Node<vec2|vec3|vec4>} x - The first vector.
760
810
  * @param {Node<vec2|vec3|vec4>} y - The second vector.
761
811
  * @returns {Node<float>}
762
812
  */
763
- export const dot = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DOT );
813
+ export const dot = /*@__PURE__*/ nodeProxy( MathNode, MathNode.DOT ).setParameterLength( 2 );
764
814
 
765
815
  /**
766
816
  * Calculates the cross product of two vectors.
767
817
  *
818
+ * @tsl
768
819
  * @function
769
820
  * @param {Node<vec2|vec3|vec4>} x - The first vector.
770
821
  * @param {Node<vec2|vec3|vec4>} y - The second vector.
771
822
  * @returns {Node<vec2|vec3|vec4>}
772
823
  */
773
- export const cross = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CROSS );
824
+ export const cross = /*@__PURE__*/ nodeProxy( MathNode, MathNode.CROSS ).setParameterLength( 2 );
774
825
 
775
826
  /**
776
827
  * Return the value of the first parameter raised to the power of the second one.
777
828
  *
829
+ * @tsl
778
830
  * @function
779
- * @param {Node | Number} x - The first parameter.
780
- * @param {Node | Number} y - The second parameter.
831
+ * @param {Node | number} x - The first parameter.
832
+ * @param {Node | number} y - The second parameter.
781
833
  * @returns {Node}
782
834
  */
783
- export const pow = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW );
835
+ export const pow = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW ).setParameterLength( 2 );
784
836
 
785
837
  /**
786
838
  * Returns the square of the parameter.
787
839
  *
840
+ * @tsl
788
841
  * @function
789
- * @param {Node | Number} x - The first parameter.
842
+ * @param {Node | number} x - The first parameter.
790
843
  * @returns {Node}
791
844
  */
792
- export const pow2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 2 );
845
+ export const pow2 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 2 ).setParameterLength( 1 );
793
846
 
794
847
  /**
795
848
  * Returns the cube of the parameter.
796
849
  *
850
+ * @tsl
797
851
  * @function
798
- * @param {Node | Number} x - The first parameter.
852
+ * @param {Node | number} x - The first parameter.
799
853
  * @returns {Node}
800
854
  */
801
- export const pow3 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 3 );
855
+ export const pow3 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 3 ).setParameterLength( 1 );
802
856
 
803
857
  /**
804
858
  * Returns the fourth power of the parameter.
805
859
  *
860
+ * @tsl
806
861
  * @function
807
- * @param {Node | Number} x - The first parameter.
862
+ * @param {Node | number} x - The first parameter.
808
863
  * @returns {Node}
809
864
  */
810
- export const pow4 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 4 );
865
+ export const pow4 = /*@__PURE__*/ nodeProxy( MathNode, MathNode.POW, 4 ).setParameterLength( 1 );
811
866
 
812
867
  /**
813
868
  * Transforms the direction of a vector by a matrix and then normalizes the result.
814
869
  *
870
+ * @tsl
815
871
  * @function
816
872
  * @param {Node<vec2|vec3|vec4>} direction - The direction vector.
817
873
  * @param {Node<mat2|mat3|mat4>} matrix - The transformation matrix.
818
874
  * @returns {Node}
819
875
  */
820
- export const transformDirection = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSFORM_DIRECTION );
876
+ export const transformDirection = /*@__PURE__*/ nodeProxy( MathNode, MathNode.TRANSFORM_DIRECTION ).setParameterLength( 2 );
821
877
 
822
878
  /**
823
879
  * Returns the cube root of a number.
824
880
  *
881
+ * @tsl
825
882
  * @function
826
- * @param {Node | Number} a - The first parameter.
883
+ * @param {Node | number} a - The first parameter.
827
884
  * @returns {Node}
828
885
  */
829
886
  export const cbrt = ( a ) => mul( sign( a ), pow( abs( a ), 1.0 / 3.0 ) );
@@ -831,6 +888,7 @@ export const cbrt = ( a ) => mul( sign( a ), pow( abs( a ), 1.0 / 3.0 ) );
831
888
  /**
832
889
  * Calculate the squared length of a vector.
833
890
  *
891
+ * @tsl
834
892
  * @function
835
893
  * @param {Node<vec2|vec3|vec4>} a - The vector.
836
894
  * @returns {Node<float>}
@@ -840,21 +898,23 @@ export const lengthSq = ( a ) => dot( a, a );
840
898
  /**
841
899
  * Linearly interpolates between two values.
842
900
  *
901
+ * @tsl
843
902
  * @function
844
- * @param {Node | Number} a - The first parameter.
845
- * @param {Node | Number} b - The second parameter.
846
- * @param {Node | Number} t - The interpolation value.
903
+ * @param {Node | number} a - The first parameter.
904
+ * @param {Node | number} b - The second parameter.
905
+ * @param {Node | number} t - The interpolation value.
847
906
  * @returns {Node}
848
907
  */
849
- export const mix = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIX );
908
+ export const mix = /*@__PURE__*/ nodeProxy( MathNode, MathNode.MIX ).setParameterLength( 3 );
850
909
 
851
910
  /**
852
911
  * Constrains a value to lie between two further values.
853
912
  *
913
+ * @tsl
854
914
  * @function
855
- * @param {Node | Number} value - The value to constrain.
856
- * @param {Node | Number} [low=0] - The lower bound.
857
- * @param {Node | Number} [high=1] - The upper bound.
915
+ * @param {Node | number} value - The value to constrain.
916
+ * @param {Node | number} [low=0] - The lower bound.
917
+ * @param {Node | number} [high=1] - The upper bound.
858
918
  * @returns {Node}
859
919
  */
860
920
  export const clamp = ( value, low = 0, high = 1 ) => nodeObject( new MathNode( MathNode.CLAMP, nodeObject( value ), nodeObject( low ), nodeObject( high ) ) );
@@ -862,8 +922,9 @@ export const clamp = ( value, low = 0, high = 1 ) => nodeObject( new MathNode( M
862
922
  /**
863
923
  * Constrains a value between `0` and `1`.
864
924
  *
925
+ * @tsl
865
926
  * @function
866
- * @param {Node | Number} value - The value to constrain.
927
+ * @param {Node | number} value - The value to constrain.
867
928
  * @returns {Node}
868
929
  */
869
930
  export const saturate = ( value ) => clamp( value );
@@ -871,39 +932,43 @@ export const saturate = ( value ) => clamp( value );
871
932
  /**
872
933
  * Calculates the refraction direction for an incident vector.
873
934
  *
935
+ * @tsl
874
936
  * @function
875
937
  * @param {Node<vec2|vec3|vec4>} I - The incident vector.
876
938
  * @param {Node<vec2|vec3|vec4>} N - The normal vector.
877
- * @param {Node<float>} eta - The the ratio of indices of refraction.
939
+ * @param {Node<float>} eta - The ratio of indices of refraction.
878
940
  * @returns {Node<vec2|vec3|vec4>}
879
941
  */
880
- export const refract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFRACT );
942
+ export const refract = /*@__PURE__*/ nodeProxy( MathNode, MathNode.REFRACT ).setParameterLength( 3 );
881
943
 
882
944
  /**
883
945
  * Performs a Hermite interpolation between two values.
884
946
  *
947
+ * @tsl
885
948
  * @function
886
- * @param {Node | Number} low - The value of the lower edge of the Hermite function.
887
- * @param {Node | Number} high - The value of the upper edge of the Hermite function.
888
- * @param {Node | Number} x - The source value for interpolation.
949
+ * @param {Node | number} low - The value of the lower edge of the Hermite function.
950
+ * @param {Node | number} high - The value of the upper edge of the Hermite function.
951
+ * @param {Node | number} x - The source value for interpolation.
889
952
  * @returns {Node}
890
953
  */
891
- export const smoothstep = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SMOOTHSTEP );
954
+ export const smoothstep = /*@__PURE__*/ nodeProxy( MathNode, MathNode.SMOOTHSTEP ).setParameterLength( 3 );
892
955
 
893
956
  /**
894
957
  * Returns a vector pointing in the same direction as another.
895
958
  *
959
+ * @tsl
896
960
  * @function
897
961
  * @param {Node<vec2|vec3|vec4>} N - The vector to orient.
898
962
  * @param {Node<vec2|vec3|vec4>} I - The incident vector.
899
963
  * @param {Node<vec2|vec3|vec4>} Nref - The reference vector.
900
964
  * @returns {Node<vec2|vec3|vec4>}
901
965
  */
902
- export const faceForward = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FACEFORWARD );
966
+ export const faceForward = /*@__PURE__*/ nodeProxy( MathNode, MathNode.FACEFORWARD ).setParameterLength( 3 );
903
967
 
904
968
  /**
905
969
  * Returns a random value for the given uv.
906
970
  *
971
+ * @tsl
907
972
  * @function
908
973
  * @param {Node<vec2>} uv - The uv node.
909
974
  * @returns {Node<float>}
@@ -920,10 +985,11 @@ export const rand = /*@__PURE__*/ Fn( ( [ uv ] ) => {
920
985
  /**
921
986
  * Alias for `mix()` with a different parameter order.
922
987
  *
988
+ * @tsl
923
989
  * @function
924
- * @param {Node | Number} t - The interpolation value.
925
- * @param {Node | Number} e1 - The first parameter.
926
- * @param {Node | Number} e2 - The second parameter.
990
+ * @param {Node | number} t - The interpolation value.
991
+ * @param {Node | number} e1 - The first parameter.
992
+ * @param {Node | number} e2 - The second parameter.
927
993
  * @returns {Node}
928
994
  */
929
995
  export const mixElement = ( t, e1, e2 ) => mix( e1, e2, t );
@@ -931,10 +997,11 @@ export const mixElement = ( t, e1, e2 ) => mix( e1, e2, t );
931
997
  /**
932
998
  * Alias for `smoothstep()` with a different parameter order.
933
999
  *
1000
+ * @tsl
934
1001
  * @function
935
- * @param {Node | Number} x - The source value for interpolation.
936
- * @param {Node | Number} low - The value of the lower edge of the Hermite function.
937
- * @param {Node | Number} high - The value of the upper edge of the Hermite function.
1002
+ * @param {Node | number} x - The source value for interpolation.
1003
+ * @param {Node | number} low - The value of the lower edge of the Hermite function.
1004
+ * @param {Node | number} high - The value of the upper edge of the Hermite function.
938
1005
  * @returns {Node}
939
1006
  */
940
1007
  export const smoothstepElement = ( x, low, high ) => smoothstep( low, high, x );
@@ -942,11 +1009,12 @@ export const smoothstepElement = ( x, low, high ) => smoothstep( low, high, x );
942
1009
  /**
943
1010
  * Returns the arc-tangent of the quotient of its parameters.
944
1011
  *
1012
+ * @tsl
945
1013
  * @function
946
1014
  * @deprecated since r172. Use {@link atan} instead.
947
1015
  *
948
- * @param {Node | Number} y - The y parameter.
949
- * @param {Node | Number} x - The x parameter.
1016
+ * @param {Node | number} y - The y parameter.
1017
+ * @param {Node | number} x - The x parameter.
950
1018
  * @returns {Node}
951
1019
  */
952
1020
  export const atan2 = ( y, x ) => { // @deprecated, r172
@@ -1000,7 +1068,6 @@ addMethodChaining( 'fwidth', fwidth );
1000
1068
  addMethodChaining( 'atan2', atan2 );
1001
1069
  addMethodChaining( 'min', min );
1002
1070
  addMethodChaining( 'max', max );
1003
- addMethodChaining( 'mod', mod );
1004
1071
  addMethodChaining( 'step', step );
1005
1072
  addMethodChaining( 'reflect', reflect );
1006
1073
  addMethodChaining( 'distance', distance );