@plastic-software/three 0.174.0 → 0.175.1

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (567) hide show
  1. package/build/three.cjs +10744 -1476
  2. package/build/three.core.js +9633 -1096
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +918 -189
  5. package/build/three.module.min.js +1 -1
  6. package/build/three.tsl.js +4 -2
  7. package/build/three.tsl.min.js +1 -1
  8. package/build/three.webgpu.js +2658 -1697
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +2654 -1709
  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 +93 -39
  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 +171 -48
  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 +71 -29
  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 +41 -3
  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 +35 -0
  94. package/examples/jsm/loaders/DDSLoader.js +24 -0
  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 +42 -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 +218 -5
  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 +86 -18
  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 +38 -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 +81 -61
  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 +79 -2
  160. package/examples/jsm/misc/TubePainter.js +53 -0
  161. package/examples/jsm/misc/Volume.js +108 -72
  162. package/examples/jsm/misc/VolumeSlice.js +88 -45
  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 +70 -0
  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 +131 -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 +266 -133
  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/Transpiler.js +31 -0
  273. package/examples/jsm/tsl/display/AfterImageNode.js +1 -1
  274. package/examples/jsm/tsl/display/BloomNode.js +1 -1
  275. package/examples/jsm/tsl/display/PixelationPassNode.js +4 -4
  276. package/examples/jsm/tsl/display/SSRNode.js +1 -1
  277. package/examples/jsm/tsl/lighting/TiledLightsNode.js +29 -3
  278. package/examples/jsm/tsl/math/Bayer.js +14 -1
  279. package/examples/jsm/tsl/utils/Raymarching.js +4 -2
  280. package/examples/jsm/utils/BufferGeometryUtils.js +88 -29
  281. package/examples/jsm/utils/CameraUtils.js +10 -7
  282. package/examples/jsm/utils/GeometryCompressionUtils.js +20 -30
  283. package/examples/jsm/utils/GeometryUtils.js +12 -13
  284. package/examples/jsm/utils/LDrawUtils.js +11 -4
  285. package/examples/jsm/utils/SceneOptimizer.js +66 -20
  286. package/examples/jsm/utils/SceneUtils.js +50 -3
  287. package/examples/jsm/utils/ShadowMapViewer.js +47 -24
  288. package/examples/jsm/utils/ShadowMapViewerGPU.js +47 -24
  289. package/examples/jsm/utils/SkeletonUtils.js +45 -0
  290. package/examples/jsm/utils/SortUtils.js +14 -5
  291. package/examples/jsm/utils/UVsDebug.js +9 -4
  292. package/examples/jsm/utils/WebGLTextureUtils.js +13 -0
  293. package/examples/jsm/utils/WebGPUTextureUtils.js +14 -0
  294. package/examples/jsm/utils/WorkerPool.js +65 -2
  295. package/examples/jsm/webxr/ARButton.js +18 -0
  296. package/examples/jsm/webxr/OculusHandModel.js +83 -0
  297. package/examples/jsm/webxr/OculusHandPointerModel.js +125 -0
  298. package/examples/jsm/webxr/Text2D.js +11 -0
  299. package/examples/jsm/webxr/VRButton.js +30 -0
  300. package/examples/jsm/webxr/XRButton.js +22 -0
  301. package/examples/jsm/webxr/XRControllerModelFactory.js +87 -3
  302. package/examples/jsm/webxr/XREstimatedLight.js +33 -3
  303. package/examples/jsm/webxr/XRHandMeshModel.js +35 -0
  304. package/examples/jsm/webxr/XRHandModelFactory.js +92 -0
  305. package/examples/jsm/webxr/XRHandPrimitiveModel.js +42 -0
  306. package/examples/jsm/webxr/XRPlanes.js +17 -0
  307. package/package.json +1 -1
  308. package/src/Three.TSL.js +3 -1
  309. package/src/animation/AnimationAction.js +262 -30
  310. package/src/animation/AnimationClip.js +141 -2
  311. package/src/animation/AnimationMixer.js +99 -15
  312. package/src/animation/AnimationObjectGroup.js +41 -18
  313. package/src/animation/AnimationUtils.js +168 -18
  314. package/src/animation/KeyframeTrack.js +144 -10
  315. package/src/animation/PropertyBinding.js +77 -3
  316. package/src/animation/PropertyMixer.js +72 -5
  317. package/src/animation/tracks/BooleanKeyframeTrack.js +33 -6
  318. package/src/animation/tracks/ColorKeyframeTrack.js +26 -5
  319. package/src/animation/tracks/NumberKeyframeTrack.js +26 -2
  320. package/src/animation/tracks/QuaternionKeyframeTrack.js +30 -1
  321. package/src/animation/tracks/StringKeyframeTrack.js +33 -2
  322. package/src/animation/tracks/VectorKeyframeTrack.js +26 -2
  323. package/src/audio/AudioAnalyser.js +1 -1
  324. package/src/audio/AudioListener.js +2 -2
  325. package/src/audio/PositionalAudio.js +5 -5
  326. package/src/constants.js +1432 -5
  327. package/src/core/BufferAttribute.js +413 -3
  328. package/src/core/BufferGeometry.js +337 -1
  329. package/src/core/Clock.js +60 -0
  330. package/src/core/GLBufferAttribute.js +99 -0
  331. package/src/core/InstancedBufferAttribute.js +29 -0
  332. package/src/core/InstancedBufferGeometry.js +20 -0
  333. package/src/core/InstancedInterleavedBuffer.js +26 -0
  334. package/src/core/InterleavedBuffer.js +137 -3
  335. package/src/core/InterleavedBufferAttribute.js +197 -0
  336. package/src/core/Layers.js +71 -10
  337. package/src/core/Object3D.js +23 -0
  338. package/src/core/Raycaster.js +134 -1
  339. package/src/core/RenderTarget.js +166 -7
  340. package/src/core/RenderTarget3D.js +25 -0
  341. package/src/core/RenderTargetArray.js +18 -0
  342. package/src/core/Uniform.js +29 -0
  343. package/src/core/UniformsGroup.js +84 -2
  344. package/src/extras/Controls.js +16 -1
  345. package/src/extras/Earcut.js +3 -781
  346. package/src/extras/ImageUtils.js +3 -2
  347. package/src/extras/PMREMGenerator.js +22 -17
  348. package/src/extras/core/Curve.js +1 -1
  349. package/src/extras/core/Path.js +1 -1
  350. package/src/extras/lib/earcut.js +685 -0
  351. package/src/geometries/ConeGeometry.js +2 -2
  352. package/src/geometries/CylinderGeometry.js +2 -2
  353. package/src/geometries/ExtrudeGeometry.js +71 -39
  354. package/src/geometries/LatheGeometry.js +1 -1
  355. package/src/lights/LightShadow.js +1 -1
  356. package/src/lights/webgpu/IESSpotLight.js +1 -1
  357. package/src/loaders/AnimationLoader.js +31 -0
  358. package/src/loaders/AudioLoader.js +31 -0
  359. package/src/loaders/BufferGeometryLoader.js +34 -0
  360. package/src/loaders/Cache.js +45 -0
  361. package/src/loaders/CompressedTextureLoader.js +36 -3
  362. package/src/loaders/CubeTextureLoader.js +45 -0
  363. package/src/loaders/DataTextureLoader.js +44 -3
  364. package/src/loaders/FileLoader.js +57 -1
  365. package/src/loaders/ImageBitmapLoader.js +57 -0
  366. package/src/loaders/ImageLoader.js +30 -0
  367. package/src/loaders/Loader.js +4 -6
  368. package/src/loaders/LoaderUtils.js +18 -36
  369. package/src/loaders/LoadingManager.js +142 -0
  370. package/src/loaders/MaterialLoader.js +57 -0
  371. package/src/loaders/ObjectLoader.js +58 -1
  372. package/src/loaders/TextureLoader.js +33 -0
  373. package/src/loaders/nodes/NodeLoader.js +6 -2
  374. package/src/loaders/nodes/NodeMaterialLoader.js +1 -1
  375. package/src/loaders/nodes/NodeObjectLoader.js +3 -3
  376. package/src/materials/LineBasicMaterial.js +74 -1
  377. package/src/materials/LineDashedMaterial.js +52 -0
  378. package/src/materials/Material.js +18 -3
  379. package/src/materials/MeshBasicMaterial.js +165 -0
  380. package/src/materials/MeshDepthMaterial.js +93 -0
  381. package/src/materials/MeshDistanceMaterial.js +76 -0
  382. package/src/materials/MeshLambertMaterial.js +273 -0
  383. package/src/materials/MeshMatcapMaterial.js +142 -0
  384. package/src/materials/MeshNormalMaterial.js +113 -0
  385. package/src/materials/MeshPhongMaterial.js +288 -0
  386. package/src/materials/MeshPhysicalMaterial.js +292 -1
  387. package/src/materials/MeshStandardMaterial.js +297 -0
  388. package/src/materials/MeshToonMaterial.js +218 -0
  389. package/src/materials/PointsMaterial.js +89 -0
  390. package/src/materials/RawShaderMaterial.js +25 -0
  391. package/src/materials/ShaderMaterial.js +215 -6
  392. package/src/materials/ShadowMaterial.js +54 -0
  393. package/src/materials/SpriteMaterial.js +82 -0
  394. package/src/materials/nodes/Line2NodeMaterial.js +1 -1
  395. package/src/materials/nodes/LineBasicNodeMaterial.js +2 -2
  396. package/src/materials/nodes/LineDashedNodeMaterial.js +2 -2
  397. package/src/materials/nodes/MeshBasicNodeMaterial.js +2 -2
  398. package/src/materials/nodes/MeshLambertNodeMaterial.js +2 -2
  399. package/src/materials/nodes/MeshMatcapNodeMaterial.js +2 -2
  400. package/src/materials/nodes/MeshNormalNodeMaterial.js +2 -2
  401. package/src/materials/nodes/MeshPhongNodeMaterial.js +2 -2
  402. package/src/materials/nodes/MeshPhysicalNodeMaterial.js +2 -2
  403. package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
  404. package/src/materials/nodes/MeshStandardNodeMaterial.js +2 -2
  405. package/src/materials/nodes/MeshToonNodeMaterial.js +2 -2
  406. package/src/materials/nodes/NodeMaterial.js +7 -3
  407. package/src/materials/nodes/PointsNodeMaterial.js +1 -1
  408. package/src/materials/nodes/ShadowNodeMaterial.js +11 -2
  409. package/src/materials/nodes/SpriteNodeMaterial.js +1 -1
  410. package/src/materials/nodes/VolumeNodeMaterial.js +10 -1
  411. package/src/math/Color.js +1 -1
  412. package/src/math/MathUtils.js +223 -0
  413. package/src/nodes/Nodes.js +1 -0
  414. package/src/nodes/accessors/BatchNode.js +8 -8
  415. package/src/nodes/accessors/BuiltinNode.js +1 -1
  416. package/src/nodes/accessors/CubeTextureNode.js +1 -1
  417. package/src/nodes/accessors/InstanceNode.js +5 -5
  418. package/src/nodes/accessors/InstancedMeshNode.js +1 -1
  419. package/src/nodes/accessors/MorphNode.js +27 -23
  420. package/src/nodes/accessors/Normal.js +1 -1
  421. package/src/nodes/accessors/Object3DNode.js +12 -12
  422. package/src/nodes/accessors/ReferenceBaseNode.js +2 -2
  423. package/src/nodes/accessors/ReferenceNode.js +1 -1
  424. package/src/nodes/accessors/SkinningNode.js +46 -37
  425. package/src/nodes/accessors/StorageBufferNode.js +1 -1
  426. package/src/nodes/accessors/StorageTextureNode.js +3 -3
  427. package/src/nodes/accessors/Texture3DNode.js +1 -1
  428. package/src/nodes/accessors/TextureNode.js +25 -5
  429. package/src/nodes/accessors/TextureSizeNode.js +1 -1
  430. package/src/nodes/accessors/UniformArrayNode.js +2 -2
  431. package/src/nodes/code/CodeNode.js +4 -4
  432. package/src/nodes/code/ExpressionNode.js +4 -4
  433. package/src/nodes/code/FunctionCallNode.js +23 -3
  434. package/src/nodes/code/ScriptableNode.js +4 -4
  435. package/src/nodes/code/ScriptableValueNode.js +2 -2
  436. package/src/nodes/core/AssignNode.js +1 -1
  437. package/src/nodes/core/AttributeNode.js +1 -1
  438. package/src/nodes/core/BypassNode.js +1 -1
  439. package/src/nodes/core/CacheNode.js +1 -1
  440. package/src/nodes/core/ContextNode.js +1 -1
  441. package/src/nodes/core/InputNode.js +2 -2
  442. package/src/nodes/core/Node.js +14 -2
  443. package/src/nodes/core/NodeBuilder.js +86 -14
  444. package/src/nodes/core/StackNode.js +5 -5
  445. package/src/nodes/core/StructNode.js +1 -1
  446. package/src/nodes/core/StructTypeNode.js +2 -2
  447. package/src/nodes/core/VarNode.js +2 -8
  448. package/src/nodes/core/VaryingNode.js +3 -3
  449. package/src/nodes/display/BlendModes.js +4 -4
  450. package/src/nodes/display/BumpMapNode.js +1 -1
  451. package/src/nodes/display/NormalMapNode.js +1 -1
  452. package/src/nodes/display/PosterizeNode.js +1 -1
  453. package/src/nodes/display/ScreenNode.js +3 -3
  454. package/src/nodes/display/ViewportDepthNode.js +2 -2
  455. package/src/nodes/display/ViewportDepthTextureNode.js +2 -2
  456. package/src/nodes/display/ViewportSharedTextureNode.js +2 -2
  457. package/src/nodes/display/ViewportTextureNode.js +4 -4
  458. package/src/nodes/functions/ShadowMaskModel.js +4 -4
  459. package/src/nodes/functions/material/getParallaxCorrectNormal.js +6 -6
  460. package/src/nodes/geometry/RangeNode.js +1 -1
  461. package/src/nodes/gpgpu/AtomicFunctionNode.js +16 -40
  462. package/src/nodes/gpgpu/ComputeBuiltinNode.js +1 -1
  463. package/src/nodes/gpgpu/ComputeNode.js +30 -2
  464. package/src/nodes/lighting/AnalyticLightNode.js +9 -1
  465. package/src/nodes/lighting/LightsNode.js +3 -3
  466. package/src/nodes/lighting/ShadowNode.js +1 -1
  467. package/src/nodes/math/ConditionalNode.js +20 -3
  468. package/src/nodes/math/MathNode.js +83 -78
  469. package/src/nodes/math/OperatorNode.js +171 -82
  470. package/src/nodes/pmrem/PMREMNode.js +4 -4
  471. package/src/nodes/pmrem/PMREMUtils.js +2 -2
  472. package/src/nodes/tsl/TSLBase.js +2 -1
  473. package/src/nodes/tsl/TSLCore.js +115 -12
  474. package/src/nodes/utils/ArrayElementNode.js +3 -1
  475. package/src/nodes/utils/CubeMapNode.js +3 -3
  476. package/src/nodes/utils/DebugNode.js +70 -0
  477. package/src/nodes/utils/EquirectUVNode.js +2 -2
  478. package/src/nodes/utils/JoinNode.js +27 -2
  479. package/src/nodes/utils/LoopNode.js +58 -28
  480. package/src/nodes/utils/MaxMipLevelNode.js +1 -1
  481. package/src/nodes/utils/ReflectorNode.js +2 -2
  482. package/src/nodes/utils/RemapNode.js +6 -6
  483. package/src/nodes/utils/RotateNode.js +1 -1
  484. package/src/nodes/utils/SpriteSheetUVNode.js +3 -3
  485. package/src/nodes/utils/StorageArrayElementNode.js +1 -1
  486. package/src/nodes/utils/TriplanarTexturesNode.js +3 -3
  487. package/src/objects/BatchedMesh.js +4 -4
  488. package/src/objects/InstancedMesh.js +2 -2
  489. package/src/objects/LOD.js +1 -1
  490. package/src/objects/Skeleton.js +1 -1
  491. package/src/renderers/WebGL3DRenderTarget.js +25 -0
  492. package/src/renderers/WebGLArrayRenderTarget.js +25 -0
  493. package/src/renderers/WebGLCubeRenderTarget.js +39 -1
  494. package/src/renderers/WebGLRenderTarget.js +19 -0
  495. package/src/renderers/WebGLRenderer.js +617 -79
  496. package/src/renderers/common/Animation.js +2 -2
  497. package/src/renderers/common/Attributes.js +2 -2
  498. package/src/renderers/common/Backend.js +12 -3
  499. package/src/renderers/common/Background.js +1 -0
  500. package/src/renderers/common/Color4.js +1 -1
  501. package/src/renderers/common/CubeRenderTarget.js +13 -0
  502. package/src/renderers/common/PostProcessing.js +2 -0
  503. package/src/renderers/common/QuadMesh.js +2 -0
  504. package/src/renderers/common/RenderList.js +2 -2
  505. package/src/renderers/common/RenderObject.js +1 -1
  506. package/src/renderers/common/RenderObjects.js +2 -2
  507. package/src/renderers/common/Renderer.js +52 -31
  508. package/src/renderers/common/XRManager.js +333 -10
  509. package/src/renderers/common/extras/PMREMGenerator.js +6 -0
  510. package/src/renderers/common/nodes/NodeBuilderState.js +3 -3
  511. package/src/renderers/shaders/ShaderChunk/alphamap_fragment.glsl.js +10 -1
  512. package/src/renderers/shaders/ShaderChunk/aomap_fragment.glsl.js +8 -1
  513. package/src/renderers/shaders/ShaderChunk/clearcoat_normal_fragment_maps.glsl.js +5 -1
  514. package/src/renderers/shaders/ShaderChunk/common.glsl.js +82 -0
  515. package/src/renderers/shaders/ShaderChunk/defaultnormal_vertex.glsl.js +22 -2
  516. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +12 -1
  517. package/src/renderers/shaders/ShaderChunk/metalnessmap_fragment.glsl.js +8 -2
  518. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +31 -11
  519. package/src/renderers/shaders/ShaderChunk/normal_fragment_maps.glsl.js +5 -1
  520. package/src/renderers/shaders/ShaderChunk/normal_pars_fragment.glsl.js +1 -1
  521. package/src/renderers/shaders/ShaderChunk/normal_pars_vertex.glsl.js +1 -1
  522. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -1
  523. package/src/renderers/shaders/ShaderChunk/roughnessmap_fragment.glsl.js +12 -1
  524. package/src/renderers/shaders/ShaderChunk/triplanar_fragment.glsl.js +20 -0
  525. package/src/renderers/shaders/ShaderChunk/uv_pars_fragment.glsl.js +52 -7
  526. package/src/renderers/shaders/ShaderChunk/uv_pars_vertex.glsl.js +25 -6
  527. package/src/renderers/shaders/ShaderChunk/uv_vertex.glsl.js +19 -7
  528. package/src/renderers/shaders/ShaderChunk.js +2 -0
  529. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +2 -0
  530. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +1 -0
  531. package/src/renderers/shaders/UniformsLib.js +6 -5
  532. package/src/renderers/shaders/UniformsUtils.js +1 -3
  533. package/src/renderers/webgl/WebGLBackground.js +4 -2
  534. package/src/renderers/webgl/WebGLMaterials.js +12 -0
  535. package/src/renderers/webgl/WebGLProgram.js +25 -5
  536. package/src/renderers/webgl/WebGLPrograms.js +21 -7
  537. package/src/renderers/webgl/WebGLState.js +9 -9
  538. package/src/renderers/webgl-fallback/WebGLBackend.js +25 -26
  539. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +3 -12
  540. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +67 -19
  541. package/src/renderers/webgl-fallback/utils/WebGLUtils.js +1 -1
  542. package/src/renderers/webgpu/WebGPUBackend.js +128 -87
  543. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +1 -11
  544. package/src/renderers/webgpu/WebGPURenderer.js +17 -11
  545. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +4 -4
  546. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +5 -3
  547. package/src/renderers/webgpu/utils/WebGPUConstants.js +1 -1
  548. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +1 -1
  549. package/src/renderers/webxr/WebXRController.js +87 -2
  550. package/src/renderers/webxr/WebXRDepthSensing.js +49 -0
  551. package/src/renderers/webxr/WebXRManager.js +173 -1
  552. package/src/scenes/Scene.js +2 -1
  553. package/src/textures/CanvasTexture.js +28 -0
  554. package/src/textures/CompressedArrayTexture.js +57 -0
  555. package/src/textures/CompressedCubeTexture.js +29 -0
  556. package/src/textures/CompressedTexture.js +64 -6
  557. package/src/textures/CubeTexture.js +52 -4
  558. package/src/textures/Data3DTexture.js +77 -0
  559. package/src/textures/DataArrayTexture.js +93 -0
  560. package/src/textures/DataTexture.js +65 -0
  561. package/src/textures/DepthTexture.js +59 -9
  562. package/src/textures/FramebufferTexture.js +62 -0
  563. package/src/textures/Source.js +69 -0
  564. package/src/textures/Texture.js +5 -5
  565. package/src/textures/VideoFrameTexture.js +43 -6
  566. package/src/textures/VideoTexture.js +49 -4
  567. package/examples/jsm/geometries/ParametricGeometries.js +0 -254
package/src/constants.js CHANGED
@@ -1,216 +1,1643 @@
1
- export const REVISION = '174';
1
+ export const REVISION = '175';
2
2
 
3
+ /**
4
+ * Represents mouse buttons and interaction types in context of controls.
5
+ *
6
+ * @type {ConstantsMouse}
7
+ * @constant
8
+ */
3
9
  export const MOUSE = { LEFT: 0, MIDDLE: 1, RIGHT: 2, ROTATE: 0, DOLLY: 1, PAN: 2 };
10
+
11
+ /**
12
+ * Represents touch interaction types in context of controls.
13
+ *
14
+ * @type {ConstantsTouch}
15
+ * @constant
16
+ */
4
17
  export const TOUCH = { ROTATE: 0, PAN: 1, DOLLY_PAN: 2, DOLLY_ROTATE: 3 };
18
+
19
+ /**
20
+ * Disables face culling.
21
+ *
22
+ * @type {number}
23
+ * @constant
24
+ */
5
25
  export const CullFaceNone = 0;
26
+
27
+ /**
28
+ * Culls back faces.
29
+ *
30
+ * @type {number}
31
+ * @constant
32
+ */
6
33
  export const CullFaceBack = 1;
34
+
35
+ /**
36
+ * Culls front faces.
37
+ *
38
+ * @type {number}
39
+ * @constant
40
+ */
7
41
  export const CullFaceFront = 2;
42
+
43
+ /**
44
+ * Culls both front and back faces.
45
+ *
46
+ * @type {number}
47
+ * @constant
48
+ */
8
49
  export const CullFaceFrontBack = 3;
50
+
51
+ /**
52
+ * Gives unfiltered shadow maps - fastest, but lowest quality.
53
+ *
54
+ * @type {number}
55
+ * @constant
56
+ */
9
57
  export const BasicShadowMap = 0;
58
+
59
+ /**
60
+ * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm.
61
+ *
62
+ * @type {number}
63
+ * @constant
64
+ */
10
65
  export const PCFShadowMap = 1;
66
+
67
+ /**
68
+ * Filters shadow maps using the Percentage-Closer Filtering (PCF) algorithm with
69
+ * better soft shadows especially when using low-resolution shadow maps.
70
+ *
71
+ * @type {number}
72
+ * @constant
73
+ */
11
74
  export const PCFSoftShadowMap = 2;
75
+
76
+ /**
77
+ * Filters shadow maps using the Variance Shadow Map (VSM) algorithm.
78
+ * When using VSMShadowMap all shadow receivers will also cast shadows.
79
+ *
80
+ * @type {number}
81
+ * @constant
82
+ */
12
83
  export const VSMShadowMap = 3;
84
+
85
+ /**
86
+ * Only front faces are rendered.
87
+ *
88
+ * @type {number}
89
+ * @constant
90
+ */
13
91
  export const FrontSide = 0;
92
+
93
+ /**
94
+ * Only back faces are rendered.
95
+ *
96
+ * @type {number}
97
+ * @constant
98
+ */
14
99
  export const BackSide = 1;
100
+
101
+ /**
102
+ * Both front and back faces are rendered.
103
+ *
104
+ * @type {number}
105
+ * @constant
106
+ */
15
107
  export const DoubleSide = 2;
108
+
109
+ /**
110
+ * No blending is performed which effectively disables
111
+ * alpha transparency.
112
+ *
113
+ * @type {number}
114
+ * @constant
115
+ */
16
116
  export const NoBlending = 0;
117
+
118
+ /**
119
+ * The default blending.
120
+ *
121
+ * @type {number}
122
+ * @constant
123
+ */
17
124
  export const NormalBlending = 1;
125
+
126
+ /**
127
+ * Represents additive blending.
128
+ *
129
+ * @type {number}
130
+ * @constant
131
+ */
18
132
  export const AdditiveBlending = 2;
133
+
134
+ /**
135
+ * Represents subtractive blending.
136
+ *
137
+ * @type {number}
138
+ * @constant
139
+ */
19
140
  export const SubtractiveBlending = 3;
141
+
142
+ /**
143
+ * Represents multiply blending.
144
+ *
145
+ * @type {number}
146
+ * @constant
147
+ */
20
148
  export const MultiplyBlending = 4;
149
+
150
+ /**
151
+ * Represents custom blending.
152
+ *
153
+ * @type {number}
154
+ * @constant
155
+ */
21
156
  export const CustomBlending = 5;
157
+
158
+ /**
159
+ * A `source + destination` blending equation.
160
+ *
161
+ * @type {number}
162
+ * @constant
163
+ */
22
164
  export const AddEquation = 100;
165
+
166
+ /**
167
+ * A `source - destination` blending equation.
168
+ *
169
+ * @type {number}
170
+ * @constant
171
+ */
23
172
  export const SubtractEquation = 101;
173
+
174
+ /**
175
+ * A `destination - source` blending equation.
176
+ *
177
+ * @type {number}
178
+ * @constant
179
+ */
24
180
  export const ReverseSubtractEquation = 102;
181
+
182
+ /**
183
+ * A blend equation that uses the minimum of source and destination.
184
+ *
185
+ * @type {number}
186
+ * @constant
187
+ */
25
188
  export const MinEquation = 103;
189
+
190
+ /**
191
+ * A blend equation that uses the maximum of source and destination.
192
+ *
193
+ * @type {number}
194
+ * @constant
195
+ */
26
196
  export const MaxEquation = 104;
197
+
198
+ /**
199
+ * Multiplies all colors by `0`.
200
+ *
201
+ * @type {number}
202
+ * @constant
203
+ */
27
204
  export const ZeroFactor = 200;
205
+
206
+ /**
207
+ * Multiplies all colors by `1`.
208
+ *
209
+ * @type {number}
210
+ * @constant
211
+ */
28
212
  export const OneFactor = 201;
213
+
214
+ /**
215
+ * Multiplies all colors by the source colors.
216
+ *
217
+ * @type {number}
218
+ * @constant
219
+ */
29
220
  export const SrcColorFactor = 202;
221
+
222
+ /**
223
+ * Multiplies all colors by `1` minus each source color.
224
+ *
225
+ * @type {number}
226
+ * @constant
227
+ */
30
228
  export const OneMinusSrcColorFactor = 203;
229
+
230
+ /**
231
+ * Multiplies all colors by the source alpha value.
232
+ *
233
+ * @type {number}
234
+ * @constant
235
+ */
31
236
  export const SrcAlphaFactor = 204;
237
+
238
+ /**
239
+ * Multiplies all colors by 1 minus the source alpha value.
240
+ *
241
+ * @type {number}
242
+ * @constant
243
+ */
32
244
  export const OneMinusSrcAlphaFactor = 205;
245
+
246
+ /**
247
+ * Multiplies all colors by the destination alpha value.
248
+ *
249
+ * @type {number}
250
+ * @constant
251
+ */
33
252
  export const DstAlphaFactor = 206;
253
+
254
+ /**
255
+ * Multiplies all colors by `1` minus the destination alpha value.
256
+ *
257
+ * @type {number}
258
+ * @constant
259
+ */
34
260
  export const OneMinusDstAlphaFactor = 207;
261
+
262
+ /**
263
+ * Multiplies all colors by the destination color.
264
+ *
265
+ * @type {number}
266
+ * @constant
267
+ */
35
268
  export const DstColorFactor = 208;
269
+
270
+ /**
271
+ * Multiplies all colors by `1` minus each destination color.
272
+ *
273
+ * @type {number}
274
+ * @constant
275
+ */
36
276
  export const OneMinusDstColorFactor = 209;
277
+
278
+ /**
279
+ * Multiplies the RGB colors by the smaller of either the source alpha
280
+ * value or the value of `1` minus the destination alpha value. The alpha
281
+ * value is multiplied by `1`.
282
+ *
283
+ * @type {number}
284
+ * @constant
285
+ */
37
286
  export const SrcAlphaSaturateFactor = 210;
287
+
288
+ /**
289
+ * Multiplies all colors by a constant color.
290
+ *
291
+ * @type {number}
292
+ * @constant
293
+ */
38
294
  export const ConstantColorFactor = 211;
295
+
296
+ /**
297
+ * Multiplies all colors by `1` minus a constant color.
298
+ *
299
+ * @type {number}
300
+ * @constant
301
+ */
39
302
  export const OneMinusConstantColorFactor = 212;
303
+
304
+ /**
305
+ * Multiplies all colors by a constant alpha value.
306
+ *
307
+ * @type {number}
308
+ * @constant
309
+ */
40
310
  export const ConstantAlphaFactor = 213;
311
+
312
+ /**
313
+ * Multiplies all colors by 1 minus a constant alpha value.
314
+ *
315
+ * @type {number}
316
+ * @constant
317
+ */
41
318
  export const OneMinusConstantAlphaFactor = 214;
319
+
320
+ /**
321
+ * Never pass.
322
+ *
323
+ * @type {number}
324
+ * @constant
325
+ */
42
326
  export const NeverDepth = 0;
327
+
328
+ /**
329
+ * Always pass.
330
+ *
331
+ * @type {number}
332
+ * @constant
333
+ */
43
334
  export const AlwaysDepth = 1;
335
+
336
+ /**
337
+ * Pass if the incoming value is less than the depth buffer value.
338
+ *
339
+ * @type {number}
340
+ * @constant
341
+ */
44
342
  export const LessDepth = 2;
343
+
344
+ /**
345
+ * Pass if the incoming value is less than or equal to the depth buffer value.
346
+ *
347
+ * @type {number}
348
+ * @constant
349
+ */
45
350
  export const LessEqualDepth = 3;
351
+
352
+ /**
353
+ * Pass if the incoming value equals the depth buffer value.
354
+ *
355
+ * @type {number}
356
+ * @constant
357
+ */
46
358
  export const EqualDepth = 4;
359
+
360
+ /**
361
+ * Pass if the incoming value is greater than or equal to the depth buffer value.
362
+ *
363
+ * @type {number}
364
+ * @constant
365
+ */
47
366
  export const GreaterEqualDepth = 5;
367
+
368
+ /**
369
+ * Pass if the incoming value is greater than the depth buffer value.
370
+ *
371
+ * @type {number}
372
+ * @constant
373
+ */
48
374
  export const GreaterDepth = 6;
375
+
376
+ /**
377
+ * Pass if the incoming value is not equal to the depth buffer value.
378
+ *
379
+ * @type {number}
380
+ * @constant
381
+ */
49
382
  export const NotEqualDepth = 7;
383
+
384
+ /**
385
+ * Multiplies the environment map color with the surface color.
386
+ *
387
+ * @type {number}
388
+ * @constant
389
+ */
50
390
  export const MultiplyOperation = 0;
391
+
392
+ /**
393
+ * Uses reflectivity to blend between the two colors.
394
+ *
395
+ * @type {number}
396
+ * @constant
397
+ */
51
398
  export const MixOperation = 1;
399
+
400
+ /**
401
+ * Adds the two colors.
402
+ *
403
+ * @type {number}
404
+ * @constant
405
+ */
52
406
  export const AddOperation = 2;
407
+
408
+ /**
409
+ * No tone mapping is applied.
410
+ *
411
+ * @type {number}
412
+ * @constant
413
+ */
53
414
  export const NoToneMapping = 0;
415
+
416
+ /**
417
+ * Linear tone mapping.
418
+ *
419
+ * @type {number}
420
+ * @constant
421
+ */
54
422
  export const LinearToneMapping = 1;
423
+
424
+ /**
425
+ * Reinhard tone mapping.
426
+ *
427
+ * @type {number}
428
+ * @constant
429
+ */
55
430
  export const ReinhardToneMapping = 2;
431
+
432
+ /**
433
+ * Cineon tone mapping.
434
+ *
435
+ * @type {number}
436
+ * @constant
437
+ */
56
438
  export const CineonToneMapping = 3;
439
+
440
+ /**
441
+ * ACES Filmic tone mapping.
442
+ *
443
+ * @type {number}
444
+ * @constant
445
+ */
57
446
  export const ACESFilmicToneMapping = 4;
447
+
448
+ /**
449
+ * Custom tone mapping.
450
+ *
451
+ * Expects a custom implementation by modifying shader code of the material's fragment shader.
452
+ *
453
+ * @type {number}
454
+ * @constant
455
+ */
58
456
  export const CustomToneMapping = 5;
457
+
458
+ /**
459
+ * AgX tone mapping.
460
+ *
461
+ * @type {number}
462
+ * @constant
463
+ */
59
464
  export const AgXToneMapping = 6;
465
+
466
+ /**
467
+ * Neutral tone mapping.
468
+ *
469
+ * Implementation based on the Khronos 3D Commerce Group standard tone mapping.
470
+ *
471
+ * @type {number}
472
+ * @constant
473
+ */
60
474
  export const NeutralToneMapping = 7;
475
+
476
+ /**
477
+ * The skinned mesh shares the same world space as the skeleton.
478
+ *
479
+ * @type {string}
480
+ * @constant
481
+ */
61
482
  export const AttachedBindMode = 'attached';
483
+
484
+ /**
485
+ * The skinned mesh does not share the same world space as the skeleton.
486
+ * This is useful when a skeleton is shared across multiple skinned meshes.
487
+ *
488
+ * @type {string}
489
+ * @constant
490
+ */
62
491
  export const DetachedBindMode = 'detached';
63
492
 
493
+ /**
494
+ * Maps textures using the geometry's UV coordinates.
495
+ *
496
+ * @type {number}
497
+ * @constant
498
+ */
64
499
  export const UVMapping = 300;
500
+
501
+ /**
502
+ * Reflection mapping for cube textures.
503
+ *
504
+ * @type {number}
505
+ * @constant
506
+ */
65
507
  export const CubeReflectionMapping = 301;
508
+
509
+ /**
510
+ * Refraction mapping for cube textures.
511
+ *
512
+ * @type {number}
513
+ * @constant
514
+ */
66
515
  export const CubeRefractionMapping = 302;
516
+
517
+ /**
518
+ * Reflection mapping for equirectangular textures.
519
+ *
520
+ * @type {number}
521
+ * @constant
522
+ */
67
523
  export const EquirectangularReflectionMapping = 303;
524
+
525
+ /**
526
+ * Refraction mapping for equirectangular textures.
527
+ *
528
+ * @type {number}
529
+ * @constant
530
+ */
68
531
  export const EquirectangularRefractionMapping = 304;
532
+
533
+ /**
534
+ * Reflection mapping for PMREM textures.
535
+ *
536
+ * @type {number}
537
+ * @constant
538
+ */
69
539
  export const CubeUVReflectionMapping = 306;
540
+
541
+ export const TriPlanarMapping = 307;
542
+ export const CylindricalMapping = 308;
543
+
544
+ /**
545
+ * The texture will simply repeat to infinity.
546
+ *
547
+ * @type {number}
548
+ * @constant
549
+ */
70
550
  export const RepeatWrapping = 1000;
551
+
552
+ /**
553
+ * The last pixel of the texture stretches to the edge of the mesh.
554
+ *
555
+ * @type {number}
556
+ * @constant
557
+ */
71
558
  export const ClampToEdgeWrapping = 1001;
559
+
560
+ /**
561
+ * The texture will repeats to infinity, mirroring on each repeat.
562
+ *
563
+ * @type {number}
564
+ * @constant
565
+ */
72
566
  export const MirroredRepeatWrapping = 1002;
567
+
568
+ /**
569
+ * Returns the value of the texture element that is nearest (in Manhattan distance)
570
+ * to the specified texture coordinates.
571
+ *
572
+ * @type {number}
573
+ * @constant
574
+ */
73
575
  export const NearestFilter = 1003;
576
+
577
+ /**
578
+ * Chooses the mipmap that most closely matches the size of the pixel being textured
579
+ * and uses the `NearestFilter` criterion (the texel nearest to the center of the pixel)
580
+ * to produce a texture value.
581
+ *
582
+ * @type {number}
583
+ * @constant
584
+ */
74
585
  export const NearestMipmapNearestFilter = 1004;
75
- export const NearestMipMapNearestFilter = 1004;
586
+ export const NearestMipMapNearestFilter = 1004; // legacy
587
+
588
+ /**
589
+ * Chooses the two mipmaps that most closely match the size of the pixel being textured and
590
+ * uses the `NearestFilter` criterion to produce a texture value from each mipmap.
591
+ * The final texture value is a weighted average of those two values.
592
+ *
593
+ * @type {number}
594
+ * @constant
595
+ */
76
596
  export const NearestMipmapLinearFilter = 1005;
77
- export const NearestMipMapLinearFilter = 1005;
597
+ export const NearestMipMapLinearFilter = 1005; // legacy
598
+
599
+ /**
600
+ * Returns the weighted average of the four texture elements that are closest to the specified
601
+ * texture coordinates, and can include items wrapped or repeated from other parts of a texture,
602
+ * depending on the values of `wrapS` and `wrapT`, and on the exact mapping.
603
+ *
604
+ * @type {number}
605
+ * @constant
606
+ */
78
607
  export const LinearFilter = 1006;
608
+
609
+ /**
610
+ * Chooses the mipmap that most closely matches the size of the pixel being textured and uses
611
+ * the `LinearFilter` criterion (a weighted average of the four texels that are closest to the
612
+ * center of the pixel) to produce a texture value.
613
+ *
614
+ * @type {number}
615
+ * @constant
616
+ */
79
617
  export const LinearMipmapNearestFilter = 1007;
80
- export const LinearMipMapNearestFilter = 1007;
618
+ export const LinearMipMapNearestFilter = 1007; // legacy
619
+
620
+ /**
621
+ * Chooses the two mipmaps that most closely match the size of the pixel being textured and uses
622
+ * the `LinearFilter` criterion to produce a texture value from each mipmap. The final texture value
623
+ * is a weighted average of those two values.
624
+ *
625
+ * @type {number}
626
+ * @constant
627
+ */
81
628
  export const LinearMipmapLinearFilter = 1008;
82
- export const LinearMipMapLinearFilter = 1008;
629
+ export const LinearMipMapLinearFilter = 1008; // legacy
630
+
631
+ /**
632
+ * An unsigned byte data type for textures.
633
+ *
634
+ * @type {number}
635
+ * @constant
636
+ */
83
637
  export const UnsignedByteType = 1009;
638
+
639
+ /**
640
+ * A byte data type for textures.
641
+ *
642
+ * @type {number}
643
+ * @constant
644
+ */
84
645
  export const ByteType = 1010;
646
+
647
+ /**
648
+ * A short data type for textures.
649
+ *
650
+ * @type {number}
651
+ * @constant
652
+ */
85
653
  export const ShortType = 1011;
654
+
655
+ /**
656
+ * An unsigned short data type for textures.
657
+ *
658
+ * @type {number}
659
+ * @constant
660
+ */
86
661
  export const UnsignedShortType = 1012;
662
+
663
+ /**
664
+ * An int data type for textures.
665
+ *
666
+ * @type {number}
667
+ * @constant
668
+ */
87
669
  export const IntType = 1013;
670
+
671
+ /**
672
+ * An unsigned int data type for textures.
673
+ *
674
+ * @type {number}
675
+ * @constant
676
+ */
88
677
  export const UnsignedIntType = 1014;
678
+
679
+ /**
680
+ * A float data type for textures.
681
+ *
682
+ * @type {number}
683
+ * @constant
684
+ */
89
685
  export const FloatType = 1015;
686
+
687
+ /**
688
+ * A half float data type for textures.
689
+ *
690
+ * @type {number}
691
+ * @constant
692
+ */
90
693
  export const HalfFloatType = 1016;
694
+
695
+ /**
696
+ * An unsigned short 4_4_4_4 (packed) data type for textures.
697
+ *
698
+ * @type {number}
699
+ * @constant
700
+ */
91
701
  export const UnsignedShort4444Type = 1017;
702
+
703
+ /**
704
+ * An unsigned short 5_5_5_1 (packed) data type for textures.
705
+ *
706
+ * @type {number}
707
+ * @constant
708
+ */
92
709
  export const UnsignedShort5551Type = 1018;
710
+
711
+ /**
712
+ * An unsigned int 24_8 data type for textures.
713
+ *
714
+ * @type {number}
715
+ * @constant
716
+ */
93
717
  export const UnsignedInt248Type = 1020;
718
+
719
+ /**
720
+ * An unsigned int 5_9_9_9 (packed) data type for textures.
721
+ *
722
+ * @type {number}
723
+ * @constant
724
+ */
94
725
  export const UnsignedInt5999Type = 35902;
726
+
727
+ /**
728
+ * Discards the red, green and blue components and reads just the alpha component.
729
+ *
730
+ * @type {number}
731
+ * @constant
732
+ */
95
733
  export const AlphaFormat = 1021;
734
+
735
+ /**
736
+ * Discards the alpha component and reads the red, green and blue component.
737
+ *
738
+ * @type {number}
739
+ * @constant
740
+ */
96
741
  export const RGBFormat = 1022;
742
+
743
+ /**
744
+ * Reads the red, green, blue and alpha components.
745
+ *
746
+ * @type {number}
747
+ * @constant
748
+ */
97
749
  export const RGBAFormat = 1023;
750
+
751
+ /**
752
+ * reads each element as a single luminance component. This is then converted to a floating point,
753
+ * clamped to the range `[0,1]`, and then assembled into an RGBA element by placing the luminance value
754
+ * in the red, green and blue channels, and attaching 1.0 to the alpha channel.
755
+ *
756
+ * @type {number}
757
+ * @constant
758
+ */
98
759
  export const LuminanceFormat = 1024;
760
+
761
+ /**
762
+ * Reads each element as a luminance/alpha double. The same process occurs as for the `LuminanceFormat`,
763
+ * except that the alpha channel may have values other than `1.0`.
764
+ *
765
+ * @type {number}
766
+ * @constant
767
+ */
99
768
  export const LuminanceAlphaFormat = 1025;
769
+
770
+ /**
771
+ * Reads each element as a single depth value, converts it to floating point, and clamps to the range `[0,1]`.
772
+ *
773
+ * @type {number}
774
+ * @constant
775
+ */
100
776
  export const DepthFormat = 1026;
777
+
778
+ /**
779
+ * Reads each element is a pair of depth and stencil values. The depth component of the pair is interpreted as
780
+ * in `DepthFormat`. The stencil component is interpreted based on the depth + stencil internal format.
781
+ *
782
+ * @type {number}
783
+ * @constant
784
+ */
101
785
  export const DepthStencilFormat = 1027;
786
+
787
+ /**
788
+ * Discards the green, blue and alpha components and reads just the red component.
789
+ *
790
+ * @type {number}
791
+ * @constant
792
+ */
102
793
  export const RedFormat = 1028;
794
+
795
+ /**
796
+ * Discards the green, blue and alpha components and reads just the red component. The texels are read as integers instead of floating point.
797
+ *
798
+ * @type {number}
799
+ * @constant
800
+ */
103
801
  export const RedIntegerFormat = 1029;
802
+
803
+ /**
804
+ * Discards the alpha, and blue components and reads the red, and green components.
805
+ *
806
+ * @type {number}
807
+ * @constant
808
+ */
104
809
  export const RGFormat = 1030;
810
+
811
+ /**
812
+ * Discards the alpha, and blue components and reads the red, and green components. The texels are read as integers instead of floating point.
813
+ *
814
+ * @type {number}
815
+ * @constant
816
+ */
105
817
  export const RGIntegerFormat = 1031;
818
+
819
+ /**
820
+ * Discards the alpha component and reads the red, green and blue component. The texels are read as integers instead of floating point.
821
+ *
822
+ * @type {number}
823
+ * @constant
824
+ */
106
825
  export const RGBIntegerFormat = 1032;
826
+
827
+ /**
828
+ * Reads the red, green, blue and alpha components. The texels are read as integers instead of floating point.
829
+ *
830
+ * @type {number}
831
+ * @constant
832
+ */
107
833
  export const RGBAIntegerFormat = 1033;
108
834
 
835
+ /**
836
+ * A DXT1-compressed image in an RGB image format.
837
+ *
838
+ * @type {number}
839
+ * @constant
840
+ */
109
841
  export const RGB_S3TC_DXT1_Format = 33776;
842
+
843
+ /**
844
+ * A DXT1-compressed image in an RGB image format with a simple on/off alpha value.
845
+ *
846
+ * @type {number}
847
+ * @constant
848
+ */
110
849
  export const RGBA_S3TC_DXT1_Format = 33777;
850
+
851
+ /**
852
+ * A DXT3-compressed image in an RGBA image format. Compared to a 32-bit RGBA texture, it offers 4:1 compression.
853
+ *
854
+ * @type {number}
855
+ * @constant
856
+ */
111
857
  export const RGBA_S3TC_DXT3_Format = 33778;
858
+
859
+ /**
860
+ * A DXT5-compressed image in an RGBA image format. It also provides a 4:1 compression, but differs to the DXT3
861
+ * compression in how the alpha compression is done.
862
+ *
863
+ * @type {number}
864
+ * @constant
865
+ */
112
866
  export const RGBA_S3TC_DXT5_Format = 33779;
867
+
868
+ /**
869
+ * PVRTC RGB compression in 4-bit mode. One block for each 4×4 pixels.
870
+ *
871
+ * @type {number}
872
+ * @constant
873
+ */
113
874
  export const RGB_PVRTC_4BPPV1_Format = 35840;
875
+
876
+ /**
877
+ * PVRTC RGB compression in 2-bit mode. One block for each 8×4 pixels.
878
+ *
879
+ * @type {number}
880
+ * @constant
881
+ */
114
882
  export const RGB_PVRTC_2BPPV1_Format = 35841;
883
+
884
+ /**
885
+ * PVRTC RGBA compression in 4-bit mode. One block for each 4×4 pixels.
886
+ *
887
+ * @type {number}
888
+ * @constant
889
+ */
115
890
  export const RGBA_PVRTC_4BPPV1_Format = 35842;
891
+
892
+ /**
893
+ * PVRTC RGBA compression in 2-bit mode. One block for each 8×4 pixels.
894
+ *
895
+ * @type {number}
896
+ * @constant
897
+ */
116
898
  export const RGBA_PVRTC_2BPPV1_Format = 35843;
899
+
900
+ /**
901
+ * ETC1 RGB format.
902
+ *
903
+ * @type {number}
904
+ * @constant
905
+ */
117
906
  export const RGB_ETC1_Format = 36196;
907
+
908
+ /**
909
+ * ETC2 RGB format.
910
+ *
911
+ * @type {number}
912
+ * @constant
913
+ */
118
914
  export const RGB_ETC2_Format = 37492;
915
+
916
+ /**
917
+ * ETC2 RGBA format.
918
+ *
919
+ * @type {number}
920
+ * @constant
921
+ */
119
922
  export const RGBA_ETC2_EAC_Format = 37496;
923
+
924
+ /**
925
+ * ASTC RGBA 4x4 format.
926
+ *
927
+ * @type {number}
928
+ * @constant
929
+ */
120
930
  export const RGBA_ASTC_4x4_Format = 37808;
931
+
932
+ /**
933
+ * ASTC RGBA 5x4 format.
934
+ *
935
+ * @type {number}
936
+ * @constant
937
+ */
121
938
  export const RGBA_ASTC_5x4_Format = 37809;
939
+
940
+ /**
941
+ * ASTC RGBA 5x5 format.
942
+ *
943
+ * @type {number}
944
+ * @constant
945
+ */
122
946
  export const RGBA_ASTC_5x5_Format = 37810;
947
+
948
+ /**
949
+ * ASTC RGBA 6x5 format.
950
+ *
951
+ * @type {number}
952
+ * @constant
953
+ */
123
954
  export const RGBA_ASTC_6x5_Format = 37811;
955
+
956
+ /**
957
+ * ASTC RGBA 6x6 format.
958
+ *
959
+ * @type {number}
960
+ * @constant
961
+ */
124
962
  export const RGBA_ASTC_6x6_Format = 37812;
963
+
964
+ /**
965
+ * ASTC RGBA 8x5 format.
966
+ *
967
+ * @type {number}
968
+ * @constant
969
+ */
125
970
  export const RGBA_ASTC_8x5_Format = 37813;
971
+
972
+ /**
973
+ * ASTC RGBA 8x6 format.
974
+ *
975
+ * @type {number}
976
+ * @constant
977
+ */
126
978
  export const RGBA_ASTC_8x6_Format = 37814;
979
+
980
+ /**
981
+ * ASTC RGBA 8x8 format.
982
+ *
983
+ * @type {number}
984
+ * @constant
985
+ */
127
986
  export const RGBA_ASTC_8x8_Format = 37815;
987
+
988
+ /**
989
+ * ASTC RGBA 10x5 format.
990
+ *
991
+ * @type {number}
992
+ * @constant
993
+ */
128
994
  export const RGBA_ASTC_10x5_Format = 37816;
995
+
996
+ /**
997
+ * ASTC RGBA 10x6 format.
998
+ *
999
+ * @type {number}
1000
+ * @constant
1001
+ */
129
1002
  export const RGBA_ASTC_10x6_Format = 37817;
1003
+
1004
+ /**
1005
+ * ASTC RGBA 10x8 format.
1006
+ *
1007
+ * @type {number}
1008
+ * @constant
1009
+ */
130
1010
  export const RGBA_ASTC_10x8_Format = 37818;
1011
+
1012
+ /**
1013
+ * ASTC RGBA 10x10 format.
1014
+ *
1015
+ * @type {number}
1016
+ * @constant
1017
+ */
131
1018
  export const RGBA_ASTC_10x10_Format = 37819;
1019
+
1020
+ /**
1021
+ * ASTC RGBA 12x10 format.
1022
+ *
1023
+ * @type {number}
1024
+ * @constant
1025
+ */
132
1026
  export const RGBA_ASTC_12x10_Format = 37820;
1027
+
1028
+ /**
1029
+ * ASTC RGBA 12x12 format.
1030
+ *
1031
+ * @type {number}
1032
+ * @constant
1033
+ */
133
1034
  export const RGBA_ASTC_12x12_Format = 37821;
1035
+
1036
+ /**
1037
+ * BPTC RGBA format.
1038
+ *
1039
+ * @type {number}
1040
+ * @constant
1041
+ */
134
1042
  export const RGBA_BPTC_Format = 36492;
1043
+
1044
+ /**
1045
+ * BPTC Signed RGB format.
1046
+ *
1047
+ * @type {number}
1048
+ * @constant
1049
+ */
135
1050
  export const RGB_BPTC_SIGNED_Format = 36494;
1051
+
1052
+ /**
1053
+ * BPTC Unsigned RGB format.
1054
+ *
1055
+ * @type {number}
1056
+ * @constant
1057
+ */
136
1058
  export const RGB_BPTC_UNSIGNED_Format = 36495;
1059
+
1060
+ /**
1061
+ * RGTC1 Red format.
1062
+ *
1063
+ * @type {number}
1064
+ * @constant
1065
+ */
137
1066
  export const RED_RGTC1_Format = 36283;
1067
+
1068
+ /**
1069
+ * RGTC1 Signed Red format.
1070
+ *
1071
+ * @type {number}
1072
+ * @constant
1073
+ */
138
1074
  export const SIGNED_RED_RGTC1_Format = 36284;
1075
+
1076
+ /**
1077
+ * RGTC2 Red Green format.
1078
+ *
1079
+ * @type {number}
1080
+ * @constant
1081
+ */
139
1082
  export const RED_GREEN_RGTC2_Format = 36285;
1083
+
1084
+ /**
1085
+ * RGTC2 Signed Red Green format.
1086
+ *
1087
+ * @type {number}
1088
+ * @constant
1089
+ */
140
1090
  export const SIGNED_RED_GREEN_RGTC2_Format = 36286;
1091
+
1092
+ /**
1093
+ * Animations are played once.
1094
+ *
1095
+ * @type {number}
1096
+ * @constant
1097
+ */
141
1098
  export const LoopOnce = 2200;
1099
+
1100
+ /**
1101
+ * Animations are played with a chosen number of repetitions, each time jumping from
1102
+ * the end of the clip directly to its beginning.
1103
+ *
1104
+ * @type {number}
1105
+ * @constant
1106
+ */
142
1107
  export const LoopRepeat = 2201;
1108
+
1109
+ /**
1110
+ * Animations are played with a chosen number of repetitions, alternately playing forward
1111
+ * and backward.
1112
+ *
1113
+ * @type {number}
1114
+ * @constant
1115
+ */
143
1116
  export const LoopPingPong = 2202;
1117
+
1118
+ /**
1119
+ * Discrete interpolation mode for keyframe tracks.
1120
+ *
1121
+ * @type {number}
1122
+ * @constant
1123
+ */
144
1124
  export const InterpolateDiscrete = 2300;
1125
+
1126
+ /**
1127
+ * Linear interpolation mode for keyframe tracks.
1128
+ *
1129
+ * @type {number}
1130
+ * @constant
1131
+ */
145
1132
  export const InterpolateLinear = 2301;
1133
+
1134
+ /**
1135
+ * Smooth interpolation mode for keyframe tracks.
1136
+ *
1137
+ * @type {number}
1138
+ * @constant
1139
+ */
146
1140
  export const InterpolateSmooth = 2302;
1141
+
1142
+ /**
1143
+ * Zero curvature ending for animations.
1144
+ *
1145
+ * @type {number}
1146
+ * @constant
1147
+ */
147
1148
  export const ZeroCurvatureEnding = 2400;
1149
+
1150
+ /**
1151
+ * Zero slope ending for animations.
1152
+ *
1153
+ * @type {number}
1154
+ * @constant
1155
+ */
148
1156
  export const ZeroSlopeEnding = 2401;
1157
+
1158
+ /**
1159
+ * Wrap around ending for animations.
1160
+ *
1161
+ * @type {number}
1162
+ * @constant
1163
+ */
149
1164
  export const WrapAroundEnding = 2402;
1165
+
1166
+ /**
1167
+ * Default animation blend mode.
1168
+ *
1169
+ * @type {number}
1170
+ * @constant
1171
+ */
150
1172
  export const NormalAnimationBlendMode = 2500;
1173
+
1174
+ /**
1175
+ * Additive animation blend mode. Can be used to layer motions on top of
1176
+ * each other to build complex performances from smaller re-usable assets.
1177
+ *
1178
+ * @type {number}
1179
+ * @constant
1180
+ */
151
1181
  export const AdditiveAnimationBlendMode = 2501;
1182
+
1183
+ /**
1184
+ * For every three vertices draw a single triangle.
1185
+ *
1186
+ * @type {number}
1187
+ * @constant
1188
+ */
152
1189
  export const TrianglesDrawMode = 0;
1190
+
1191
+ /**
1192
+ * For each vertex draw a triangle from the last three vertices.
1193
+ *
1194
+ * @type {number}
1195
+ * @constant
1196
+ */
153
1197
  export const TriangleStripDrawMode = 1;
1198
+
1199
+ /**
1200
+ * For each vertex draw a triangle from the first vertex and the last two vertices.
1201
+ *
1202
+ * @type {number}
1203
+ * @constant
1204
+ */
154
1205
  export const TriangleFanDrawMode = 2;
1206
+
1207
+ /**
1208
+ * Basic depth packing.
1209
+ *
1210
+ * @type {number}
1211
+ * @constant
1212
+ */
155
1213
  export const BasicDepthPacking = 3200;
1214
+
1215
+ /**
1216
+ * A depth value is packed into 32 bit RGBA.
1217
+ *
1218
+ * @type {number}
1219
+ * @constant
1220
+ */
156
1221
  export const RGBADepthPacking = 3201;
1222
+
1223
+ /**
1224
+ * A depth value is packed into 24 bit RGB.
1225
+ *
1226
+ * @type {number}
1227
+ * @constant
1228
+ */
157
1229
  export const RGBDepthPacking = 3202;
1230
+
1231
+ /**
1232
+ * A depth value is packed into 16 bit RG.
1233
+ *
1234
+ * @type {number}
1235
+ * @constant
1236
+ */
158
1237
  export const RGDepthPacking = 3203;
1238
+
1239
+ /**
1240
+ * Normal information is relative to the underlying surface.
1241
+ *
1242
+ * @type {number}
1243
+ * @constant
1244
+ */
159
1245
  export const TangentSpaceNormalMap = 0;
1246
+
1247
+ /**
1248
+ * Normal information is relative to the object orientation.
1249
+ *
1250
+ * @type {number}
1251
+ * @constant
1252
+ */
160
1253
  export const ObjectSpaceNormalMap = 1;
161
1254
 
162
1255
  // Color space string identifiers, matching CSS Color Module Level 4 and WebGPU names where available.
1256
+
1257
+ /**
1258
+ * No color space.
1259
+ *
1260
+ * @type {string}
1261
+ * @constant
1262
+ */
163
1263
  export const NoColorSpace = '';
1264
+
1265
+ /**
1266
+ * sRGB color space.
1267
+ *
1268
+ * @type {string}
1269
+ * @constant
1270
+ */
164
1271
  export const SRGBColorSpace = 'srgb';
1272
+
1273
+ /**
1274
+ * sRGB-linear color space.
1275
+ *
1276
+ * @type {string}
1277
+ * @constant
1278
+ */
165
1279
  export const LinearSRGBColorSpace = 'srgb-linear';
166
1280
 
1281
+ /**
1282
+ * Linear transfer function.
1283
+ *
1284
+ * @type {string}
1285
+ * @constant
1286
+ */
167
1287
  export const LinearTransfer = 'linear';
1288
+
1289
+ /**
1290
+ * sRGB transfer function.
1291
+ *
1292
+ * @type {string}
1293
+ * @constant
1294
+ */
168
1295
  export const SRGBTransfer = 'srgb';
169
1296
 
1297
+ /**
1298
+ * Sets the stencil buffer value to `0`.
1299
+ *
1300
+ * @type {number}
1301
+ * @constant
1302
+ */
170
1303
  export const ZeroStencilOp = 0;
1304
+
1305
+ /**
1306
+ * Keeps the current value.
1307
+ *
1308
+ * @type {number}
1309
+ * @constant
1310
+ */
171
1311
  export const KeepStencilOp = 7680;
1312
+
1313
+ /**
1314
+ * Sets the stencil buffer value to the specified reference value.
1315
+ *
1316
+ * @type {number}
1317
+ * @constant
1318
+ */
172
1319
  export const ReplaceStencilOp = 7681;
1320
+
1321
+ /**
1322
+ * Increments the current stencil buffer value. Clamps to the maximum representable unsigned value.
1323
+ *
1324
+ * @type {number}
1325
+ * @constant
1326
+ */
173
1327
  export const IncrementStencilOp = 7682;
1328
+
1329
+ /**
1330
+ * Decrements the current stencil buffer value. Clamps to `0`.
1331
+ *
1332
+ * @type {number}
1333
+ * @constant
1334
+ */
174
1335
  export const DecrementStencilOp = 7683;
1336
+
1337
+ /**
1338
+ * Increments the current stencil buffer value. Wraps stencil buffer value to zero when incrementing
1339
+ * the maximum representable unsigned value.
1340
+ *
1341
+ * @type {number}
1342
+ * @constant
1343
+ */
175
1344
  export const IncrementWrapStencilOp = 34055;
1345
+
1346
+ /**
1347
+ * Decrements the current stencil buffer value. Wraps stencil buffer value to the maximum representable
1348
+ * unsigned value when decrementing a stencil buffer value of `0`.
1349
+ *
1350
+ * @type {number}
1351
+ * @constant
1352
+ */
176
1353
  export const DecrementWrapStencilOp = 34056;
1354
+
1355
+ /**
1356
+ * Inverts the current stencil buffer value bitwise.
1357
+ *
1358
+ * @type {number}
1359
+ * @constant
1360
+ */
177
1361
  export const InvertStencilOp = 5386;
178
1362
 
1363
+ /**
1364
+ * Will never return true.
1365
+ *
1366
+ * @type {number}
1367
+ * @constant
1368
+ */
179
1369
  export const NeverStencilFunc = 512;
1370
+
1371
+ /**
1372
+ * Will return true if the stencil reference value is less than the current stencil value.
1373
+ *
1374
+ * @type {number}
1375
+ * @constant
1376
+ */
180
1377
  export const LessStencilFunc = 513;
1378
+
1379
+ /**
1380
+ * Will return true if the stencil reference value is equal to the current stencil value.
1381
+ *
1382
+ * @type {number}
1383
+ * @constant
1384
+ */
181
1385
  export const EqualStencilFunc = 514;
1386
+
1387
+ /**
1388
+ * Will return true if the stencil reference value is less than or equal to the current stencil value.
1389
+ *
1390
+ * @type {number}
1391
+ * @constant
1392
+ */
182
1393
  export const LessEqualStencilFunc = 515;
1394
+
1395
+ /**
1396
+ * Will return true if the stencil reference value is greater than the current stencil value.
1397
+ *
1398
+ * @type {number}
1399
+ * @constant
1400
+ */
183
1401
  export const GreaterStencilFunc = 516;
1402
+
1403
+ /**
1404
+ * Will return true if the stencil reference value is not equal to the current stencil value.
1405
+ *
1406
+ * @type {number}
1407
+ * @constant
1408
+ */
184
1409
  export const NotEqualStencilFunc = 517;
1410
+
1411
+ /**
1412
+ * Will return true if the stencil reference value is greater than or equal to the current stencil value.
1413
+ *
1414
+ * @type {number}
1415
+ * @constant
1416
+ */
185
1417
  export const GreaterEqualStencilFunc = 518;
1418
+
1419
+ /**
1420
+ * Will always return true.
1421
+ *
1422
+ * @type {number}
1423
+ * @constant
1424
+ */
186
1425
  export const AlwaysStencilFunc = 519;
187
1426
 
1427
+ /**
1428
+ * Never pass.
1429
+ *
1430
+ * @type {number}
1431
+ * @constant
1432
+ */
188
1433
  export const NeverCompare = 512;
1434
+
1435
+ /**
1436
+ * Pass if the incoming value is less than the texture value.
1437
+ *
1438
+ * @type {number}
1439
+ * @constant
1440
+ */
189
1441
  export const LessCompare = 513;
1442
+
1443
+ /**
1444
+ * Pass if the incoming value equals the texture value.
1445
+ *
1446
+ * @type {number}
1447
+ * @constant
1448
+ */
190
1449
  export const EqualCompare = 514;
1450
+
1451
+ /**
1452
+ * Pass if the incoming value is less than or equal to the texture value.
1453
+ *
1454
+ * @type {number}
1455
+ * @constant
1456
+ */
191
1457
  export const LessEqualCompare = 515;
1458
+
1459
+ /**
1460
+ * Pass if the incoming value is greater than the texture value.
1461
+ *
1462
+ * @type {number}
1463
+ * @constant
1464
+ */
192
1465
  export const GreaterCompare = 516;
1466
+
1467
+ /**
1468
+ * Pass if the incoming value is not equal to the texture value.
1469
+ *
1470
+ * @type {number}
1471
+ * @constant
1472
+ */
193
1473
  export const NotEqualCompare = 517;
1474
+
1475
+ /**
1476
+ * Pass if the incoming value is greater than or equal to the texture value.
1477
+ *
1478
+ * @type {number}
1479
+ * @constant
1480
+ */
194
1481
  export const GreaterEqualCompare = 518;
1482
+
1483
+ /**
1484
+ * Always pass.
1485
+ *
1486
+ * @type {number}
1487
+ * @constant
1488
+ */
195
1489
  export const AlwaysCompare = 519;
196
1490
 
1491
+ /**
1492
+ * The contents are intended to be specified once by the application, and used many
1493
+ * times as the source for drawing and image specification commands.
1494
+ *
1495
+ * @type {number}
1496
+ * @constant
1497
+ */
197
1498
  export const StaticDrawUsage = 35044;
1499
+
1500
+ /**
1501
+ * The contents are intended to be respecified repeatedly by the application, and
1502
+ * used many times as the source for drawing and image specification commands.
1503
+ *
1504
+ * @type {number}
1505
+ * @constant
1506
+ */
198
1507
  export const DynamicDrawUsage = 35048;
1508
+
1509
+ /**
1510
+ * The contents are intended to be specified once by the application, and used at most
1511
+ * a few times as the source for drawing and image specification commands.
1512
+ *
1513
+ * @type {number}
1514
+ * @constant
1515
+ */
199
1516
  export const StreamDrawUsage = 35040;
1517
+
1518
+ /**
1519
+ * The contents are intended to be specified once by reading data from the 3D API, and queried
1520
+ * many times by the application.
1521
+ *
1522
+ * @type {number}
1523
+ * @constant
1524
+ */
200
1525
  export const StaticReadUsage = 35045;
1526
+
1527
+ /**
1528
+ * The contents are intended to be respecified repeatedly by reading data from the 3D API, and queried
1529
+ * many times by the application.
1530
+ *
1531
+ * @type {number}
1532
+ * @constant
1533
+ */
201
1534
  export const DynamicReadUsage = 35049;
1535
+
1536
+ /**
1537
+ * The contents are intended to be specified once by reading data from the 3D API, and queried at most
1538
+ * a few times by the application
1539
+ *
1540
+ * @type {number}
1541
+ * @constant
1542
+ */
202
1543
  export const StreamReadUsage = 35041;
1544
+
1545
+ /**
1546
+ * The contents are intended to be specified once by reading data from the 3D API, and used many times as
1547
+ * the source for WebGL drawing and image specification commands.
1548
+ *
1549
+ * @type {number}
1550
+ * @constant
1551
+ */
203
1552
  export const StaticCopyUsage = 35046;
1553
+
1554
+ /**
1555
+ * The contents are intended to be respecified repeatedly by reading data from the 3D API, and used many times
1556
+ * as the source for WebGL drawing and image specification commands.
1557
+ *
1558
+ * @type {number}
1559
+ * @constant
1560
+ */
204
1561
  export const DynamicCopyUsage = 35050;
1562
+
1563
+ /**
1564
+ * The contents are intended to be specified once by reading data from the 3D API, and used at most a few times
1565
+ * as the source for WebGL drawing and image specification commands.
1566
+ *
1567
+ * @type {number}
1568
+ * @constant
1569
+ */
205
1570
  export const StreamCopyUsage = 35042;
206
1571
 
1572
+ /**
1573
+ * GLSL 1 shader code.
1574
+ *
1575
+ * @type {string}
1576
+ * @constant
1577
+ */
207
1578
  export const GLSL1 = '100';
1579
+
1580
+ /**
1581
+ * GLSL 3 shader code.
1582
+ *
1583
+ * @type {string}
1584
+ * @constant
1585
+ */
208
1586
  export const GLSL3 = '300 es';
209
1587
 
1588
+ /**
1589
+ * WebGL coordinate system.
1590
+ *
1591
+ * @type {number}
1592
+ * @constant
1593
+ */
210
1594
  export const WebGLCoordinateSystem = 2000;
1595
+
1596
+ /**
1597
+ * WebGPU coordinate system.
1598
+ *
1599
+ * @type {number}
1600
+ * @constant
1601
+ */
211
1602
  export const WebGPUCoordinateSystem = 2001;
212
1603
 
1604
+ /**
1605
+ * Represents the different timestamp query types.
1606
+ *
1607
+ * @type {ConstantsTimestampQuery}
1608
+ * @constant
1609
+ */
213
1610
  export const TimestampQuery = {
214
1611
  COMPUTE: 'compute',
215
1612
  RENDER: 'render'
216
1613
  };
1614
+
1615
+ /**
1616
+ * This type represents mouse buttons and interaction types in context of controls.
1617
+ *
1618
+ * @typedef {Object} ConstantsMouse
1619
+ * @property {number} MIDDLE - The left mouse button.
1620
+ * @property {number} LEFT - The middle mouse button.
1621
+ * @property {number} RIGHT - The right mouse button.
1622
+ * @property {number} ROTATE - A rotate interaction.
1623
+ * @property {number} DOLLY - A dolly interaction.
1624
+ * @property {number} PAN - A pan interaction.
1625
+ **/
1626
+
1627
+ /**
1628
+ * This type represents touch interaction types in context of controls.
1629
+ *
1630
+ * @typedef {Object} ConstantsTouch
1631
+ * @property {number} ROTATE - A rotate interaction.
1632
+ * @property {number} PAN - A pan interaction.
1633
+ * @property {number} DOLLY_PAN - The dolly-pan interaction.
1634
+ * @property {number} DOLLY_ROTATE - A dolly-rotate interaction.
1635
+ **/
1636
+
1637
+ /**
1638
+ * This type represents the different timestamp query types.
1639
+ *
1640
+ * @typedef {Object} ConstantsTimestampQuery
1641
+ * @property {string} COMPUTE - A `compute` timestamp query.
1642
+ * @property {string} RENDER - A `render` timestamp query.
1643
+ **/