super-three 0.141.0 → 0.147.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 (646) hide show
  1. package/README.md +9 -9
  2. package/build/three.cjs +2441 -1569
  3. package/build/three.js +2441 -1569
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +2847 -1576
  6. package/examples/js/animation/AnimationClipCreator.js +0 -8
  7. package/examples/js/animation/CCDIKSolver.js +50 -67
  8. package/examples/js/animation/MMDAnimationHelper.js +66 -137
  9. package/examples/js/animation/MMDPhysics.js +71 -150
  10. package/examples/js/cameras/CinematicCamera.js +33 -22
  11. package/examples/js/controls/ArcballControls.js +149 -403
  12. package/examples/js/controls/DragControls.js +8 -33
  13. package/examples/js/controls/FirstPersonControls.js +32 -61
  14. package/examples/js/controls/FlyControls.js +29 -63
  15. package/examples/js/controls/OrbitControls.js +125 -103
  16. package/examples/js/controls/PointerLockControls.js +5 -22
  17. package/examples/js/controls/TrackballControls.js +33 -88
  18. package/examples/js/controls/TransformControls.js +101 -182
  19. package/examples/js/csm/CSM.js +4 -39
  20. package/examples/js/csm/CSMFrustum.js +3 -9
  21. package/examples/js/csm/CSMHelper.js +24 -4
  22. package/examples/js/csm/CSMShader.js +2 -6
  23. package/examples/js/curves/CurveExtras.js +27 -27
  24. package/examples/js/curves/NURBSCurve.js +4 -16
  25. package/examples/js/curves/NURBSSurface.js +3 -9
  26. package/examples/js/curves/NURBSUtils.js +8 -45
  27. package/examples/js/effects/AnaglyphEffect.js +6 -20
  28. package/examples/js/effects/AsciiEffect.js +32 -31
  29. package/examples/js/effects/OutlineEffect.js +30 -54
  30. package/examples/js/effects/ParallaxBarrierEffect.js +2 -15
  31. package/examples/js/effects/PeppersGhostEffect.js +14 -41
  32. package/examples/js/effects/StereoEffect.js +2 -6
  33. package/examples/js/environments/RoomEnvironment.js +32 -8
  34. package/examples/js/exporters/ColladaExporter.js +52 -78
  35. package/examples/js/exporters/DRACOExporter.js +22 -34
  36. package/examples/js/exporters/EXRExporter.js +15 -18
  37. package/examples/js/exporters/GLTFExporter.js +168 -345
  38. package/examples/js/exporters/MMDExporter.js +5 -12
  39. package/examples/js/exporters/OBJExporter.js +40 -52
  40. package/examples/js/exporters/PLYExporter.js +50 -57
  41. package/examples/js/exporters/STLExporter.js +5 -14
  42. package/examples/js/exporters/USDZExporter.js +119 -27
  43. package/examples/js/geometries/BoxLineGeometry.js +0 -1
  44. package/examples/js/geometries/ConvexGeometry.js +12 -7
  45. package/examples/js/geometries/DecalGeometry.js +53 -20
  46. package/examples/js/geometries/LightningStrike.js +54 -67
  47. package/examples/js/geometries/ParametricGeometries.js +8 -7
  48. package/examples/js/geometries/ParametricGeometry.js +23 -17
  49. package/examples/js/geometries/RoundedBoxGeometry.js +21 -19
  50. package/examples/js/geometries/TeapotGeometry.js +54 -50
  51. package/examples/js/geometries/TextGeometry.js +6 -4
  52. package/examples/js/helpers/LightProbeHelper.js +1 -2
  53. package/examples/js/helpers/OctreeHelper.js +22 -20
  54. package/examples/js/helpers/PositionalAudioHelper.js +8 -6
  55. package/examples/js/helpers/RectAreaLightHelper.js +6 -7
  56. package/examples/js/helpers/VertexNormalsHelper.js +15 -13
  57. package/examples/js/helpers/VertexTangentsHelper.js +15 -9
  58. package/examples/js/helpers/ViewHelper.js +31 -16
  59. package/examples/js/interactive/HTMLMesh.js +25 -39
  60. package/examples/js/interactive/InteractiveGroup.js +9 -14
  61. package/examples/js/interactive/SelectionBox.js +3 -70
  62. package/examples/js/interactive/SelectionHelper.js +2 -8
  63. package/examples/js/libs/ktx-parse.umd.js +1 -0
  64. package/examples/js/libs/meshopt_decoder.js +98 -32
  65. package/examples/js/lights/LightProbeGenerator.js +32 -39
  66. package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
  67. package/examples/js/lines/LineGeometry.js +3 -5
  68. package/examples/js/lines/LineMaterial.js +4 -11
  69. package/examples/js/lines/LineSegments2.js +40 -89
  70. package/examples/js/lines/LineSegmentsGeometry.js +7 -28
  71. package/examples/js/lines/Wireframe.js +2 -7
  72. package/examples/js/lines/WireframeGeometry2.js +3 -1
  73. package/examples/js/loaders/3DMLoader.js +58 -155
  74. package/examples/js/loaders/3MFLoader.js +72 -106
  75. package/examples/js/loaders/AMFLoader.js +0 -25
  76. package/examples/js/loaders/BVHLoader.js +44 -43
  77. package/examples/js/loaders/BasisTextureLoader.js +16 -46
  78. package/examples/js/loaders/ColladaLoader.js +229 -359
  79. package/examples/js/loaders/DDSLoader.js +24 -25
  80. package/examples/js/loaders/DRACOLoader.js +30 -90
  81. package/examples/js/loaders/EXRLoader.js +69 -177
  82. package/examples/js/loaders/FBXLoader.js +294 -441
  83. package/examples/js/loaders/FontLoader.js +9 -31
  84. package/examples/js/loaders/GCodeLoader.js +15 -16
  85. package/examples/js/loaders/GLTFLoader.js +458 -739
  86. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -17
  87. package/examples/js/loaders/KMZLoader.js +3 -7
  88. package/examples/js/loaders/KTXLoader.js +12 -30
  89. package/examples/js/loaders/LDrawLoader.js +309 -355
  90. package/examples/js/loaders/LUT3dlLoader.js +7 -11
  91. package/examples/js/loaders/LUTCubeLoader.js +0 -8
  92. package/examples/js/loaders/LWOLoader.js +59 -124
  93. package/examples/js/loaders/LogLuvLoader.js +27 -77
  94. package/examples/js/loaders/LottieLoader.js +4 -4
  95. package/examples/js/loaders/MD2Loader.js +26 -27
  96. package/examples/js/loaders/MDDLoader.js +6 -10
  97. package/examples/js/loaders/MMDLoader.js +180 -189
  98. package/examples/js/loaders/MTLLoader.js +18 -47
  99. package/examples/js/loaders/NRRDLoader.js +44 -84
  100. package/examples/js/loaders/OBJLoader.js +56 -77
  101. package/examples/js/loaders/PCDLoader.js +92 -42
  102. package/examples/js/loaders/PDBLoader.js +17 -13
  103. package/examples/js/loaders/PLYLoader.js +65 -51
  104. package/examples/js/loaders/PRWMLoader.js +11 -22
  105. package/examples/js/loaders/PVRLoader.js +7 -16
  106. package/examples/js/loaders/RGBELoader.js +36 -61
  107. package/examples/js/loaders/RGBMLoader.js +26 -87
  108. package/examples/js/loaders/STLLoader.js +20 -27
  109. package/examples/js/loaders/SVGLoader.js +365 -236
  110. package/examples/js/loaders/TDSLoader.js +81 -118
  111. package/examples/js/loaders/TGALoader.js +39 -41
  112. package/examples/js/loaders/TIFFLoader.js +30 -0
  113. package/examples/js/loaders/TTFLoader.js +0 -8
  114. package/examples/js/loaders/TiltLoader.js +14 -15
  115. package/examples/js/loaders/VOXLoader.js +8 -16
  116. package/examples/js/loaders/VRMLLoader.js +266 -354
  117. package/examples/js/loaders/VTKLoader.js +102 -119
  118. package/examples/js/loaders/XYZLoader.js +2 -4
  119. package/examples/js/loaders/lwo/IFFParser.js +55 -136
  120. package/examples/js/loaders/lwo/LWO2Parser.js +39 -89
  121. package/examples/js/loaders/lwo/LWO3Parser.js +38 -79
  122. package/examples/js/materials/MeshGouraudMaterial.js +387 -0
  123. package/examples/js/math/Capsule.js +0 -17
  124. package/examples/js/math/ColorConverter.js +3 -53
  125. package/examples/js/math/ConvexHull.js +185 -141
  126. package/examples/js/math/ImprovedNoise.js +1 -1
  127. package/examples/js/math/Lut.js +8 -15
  128. package/examples/js/math/MeshSurfaceSampler.js +6 -28
  129. package/examples/js/math/OBB.js +90 -49
  130. package/examples/js/math/Octree.js +2 -57
  131. package/examples/js/math/SimplexNoise.js +74 -88
  132. package/examples/js/misc/ConvexObjectBreaker.js +37 -48
  133. package/examples/js/misc/GPUComputationRenderer.js +47 -14
  134. package/examples/js/misc/Gyroscope.js +5 -9
  135. package/examples/js/misc/MD2Character.js +14 -23
  136. package/examples/js/misc/MD2CharacterComplex.js +73 -54
  137. package/examples/js/misc/MorphAnimMesh.js +0 -6
  138. package/examples/js/misc/MorphBlendMesh.js +3 -30
  139. package/examples/js/misc/ProgressiveLightMap.js +47 -43
  140. package/examples/js/misc/RollerCoaster.js +17 -24
  141. package/examples/js/misc/TubePainter.js +18 -12
  142. package/examples/js/misc/Volume.js +173 -194
  143. package/examples/js/misc/VolumeSlice.js +91 -99
  144. package/examples/js/modifiers/CurveModifier.js +19 -21
  145. package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
  146. package/examples/js/modifiers/SimplifyModifier.js +57 -60
  147. package/examples/js/modifiers/TessellateModifier.js +2 -9
  148. package/examples/js/objects/GroundProjectedEnv.js +181 -0
  149. package/examples/js/objects/Lensflare.js +47 -38
  150. package/examples/js/objects/LightningStorm.js +10 -13
  151. package/examples/js/objects/MarchingCubes.js +80 -59
  152. package/examples/js/objects/Reflector.js +31 -22
  153. package/examples/js/objects/ReflectorForSSRPass.js +20 -25
  154. package/examples/js/objects/Refractor.js +61 -33
  155. package/examples/js/objects/ShadowMesh.js +6 -3
  156. package/examples/js/objects/Sky.js +2 -7
  157. package/examples/js/objects/Water.js +23 -18
  158. package/examples/js/objects/Water2.js +20 -19
  159. package/examples/js/physics/AmmoPhysics.js +23 -20
  160. package/examples/js/physics/OimoPhysics.js +19 -17
  161. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
  162. package/examples/js/postprocessing/AfterimagePass.js +19 -12
  163. package/examples/js/postprocessing/BloomPass.js +38 -17
  164. package/examples/js/postprocessing/BokehPass.js +29 -12
  165. package/examples/js/postprocessing/ClearPass.js +1 -6
  166. package/examples/js/postprocessing/CubeTexturePass.js +12 -9
  167. package/examples/js/postprocessing/DotScreenPass.js +7 -5
  168. package/examples/js/postprocessing/EffectComposer.js +25 -32
  169. package/examples/js/postprocessing/FilmPass.js +7 -5
  170. package/examples/js/postprocessing/GlitchPass.js +10 -11
  171. package/examples/js/postprocessing/HalftonePass.js +9 -9
  172. package/examples/js/postprocessing/LUTPass.js +2 -15
  173. package/examples/js/postprocessing/MaskPass.js +20 -17
  174. package/examples/js/postprocessing/OutlinePass.js +49 -38
  175. package/examples/js/postprocessing/Pass.js +11 -14
  176. package/examples/js/postprocessing/RenderPass.js +3 -7
  177. package/examples/js/postprocessing/RenderPixelatedPass.js +215 -0
  178. package/examples/js/postprocessing/SAOPass.js +40 -32
  179. package/examples/js/postprocessing/SMAAPass.js +34 -17
  180. package/examples/js/postprocessing/SSAARenderPass.js +14 -14
  181. package/examples/js/postprocessing/SSAOPass.js +56 -42
  182. package/examples/js/postprocessing/SSRPass.js +78 -61
  183. package/examples/js/postprocessing/SavePass.js +14 -6
  184. package/examples/js/postprocessing/ShaderPass.js +9 -8
  185. package/examples/js/postprocessing/TAARenderPass.js +11 -9
  186. package/examples/js/postprocessing/TexturePass.js +7 -4
  187. package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
  188. package/examples/js/renderers/CSS2DRenderer.js +4 -23
  189. package/examples/js/renderers/CSS3DRenderer.js +5 -26
  190. package/examples/js/renderers/Projector.js +31 -108
  191. package/examples/js/renderers/SVGRenderer.js +4 -50
  192. package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
  193. package/examples/js/shaders/AfterimageShader.js +3 -6
  194. package/examples/js/shaders/BasicShader.js +3 -6
  195. package/examples/js/shaders/BleachBypassShader.js +3 -6
  196. package/examples/js/shaders/BlendShader.js +3 -6
  197. package/examples/js/shaders/BokehShader.js +3 -6
  198. package/examples/js/shaders/BokehShader2.js +4 -13
  199. package/examples/js/shaders/BrightnessContrastShader.js +3 -6
  200. package/examples/js/shaders/ColorCorrectionShader.js +2 -6
  201. package/examples/js/shaders/ColorifyShader.js +2 -6
  202. package/examples/js/shaders/ConvolutionShader.js +5 -10
  203. package/examples/js/shaders/CopyShader.js +3 -6
  204. package/examples/js/shaders/DOFMipMapShader.js +3 -6
  205. package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
  206. package/examples/js/shaders/DigitalGlitch.js +3 -6
  207. package/examples/js/shaders/DotScreenShader.js +2 -6
  208. package/examples/js/shaders/FXAAShader.js +1 -3
  209. package/examples/js/shaders/FilmShader.js +3 -6
  210. package/examples/js/shaders/FocusShader.js +3 -6
  211. package/examples/js/shaders/FreiChenShader.js +2 -6
  212. package/examples/js/shaders/GammaCorrectionShader.js +3 -6
  213. package/examples/js/shaders/GodRaysShader.js +11 -24
  214. package/examples/js/shaders/HalftoneShader.js +3 -6
  215. package/examples/js/shaders/HorizontalBlurShader.js +3 -6
  216. package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
  217. package/examples/js/shaders/HueSaturationShader.js +3 -6
  218. package/examples/js/shaders/KaleidoShader.js +3 -6
  219. package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
  220. package/examples/js/shaders/LuminosityShader.js +4 -7
  221. package/examples/js/shaders/MMDToonShader.js +2 -4
  222. package/examples/js/shaders/MirrorShader.js +3 -6
  223. package/examples/js/shaders/NormalMapShader.js +2 -6
  224. package/examples/js/shaders/RGBShiftShader.js +3 -6
  225. package/examples/js/shaders/SAOShader.js +2 -6
  226. package/examples/js/shaders/SMAAShader.js +6 -18
  227. package/examples/js/shaders/SSAOShader.js +2 -6
  228. package/examples/js/shaders/SSRShader.js +6 -18
  229. package/examples/js/shaders/SepiaShader.js +3 -6
  230. package/examples/js/shaders/SobelOperatorShader.js +2 -6
  231. package/examples/js/shaders/TechnicolorShader.js +3 -6
  232. package/examples/js/shaders/ToneMapShader.js +4 -7
  233. package/examples/js/shaders/ToonShader.js +8 -24
  234. package/examples/js/shaders/TriangleBlurShader.js +2 -6
  235. package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
  236. package/examples/js/shaders/VelocityShader.js +126 -0
  237. package/examples/js/shaders/VerticalBlurShader.js +3 -6
  238. package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
  239. package/examples/js/shaders/VignetteShader.js +3 -6
  240. package/examples/js/shaders/VolumeShader.js +2 -6
  241. package/examples/js/shaders/WaterRefractionShader.js +2 -6
  242. package/examples/js/textures/FlakesTexture.js +0 -1
  243. package/examples/js/utils/BufferGeometryUtils.js +237 -171
  244. package/examples/js/utils/CameraUtils.js +5 -20
  245. package/examples/js/utils/GPUStatsPanel.js +3 -12
  246. package/examples/js/utils/GeometryCompressionUtils.js +19 -44
  247. package/examples/js/utils/GeometryUtils.js +15 -36
  248. package/examples/js/utils/LDrawUtils.js +8 -11
  249. package/examples/js/utils/PackedPhongMaterial.js +6 -4
  250. package/examples/js/utils/SceneUtils.js +109 -14
  251. package/examples/js/utils/ShadowMapViewer.js +17 -14
  252. package/examples/js/utils/SkeletonUtils.js +13 -27
  253. package/examples/js/utils/UVsDebug.js +20 -12
  254. package/examples/js/utils/WorkerPool.js +1 -11
  255. package/examples/jsm/animation/CCDIKSolver.js +27 -3
  256. package/examples/jsm/animation/MMDPhysics.js +28 -22
  257. package/examples/jsm/capabilities/WebGPU.js +3 -1
  258. package/examples/jsm/controls/ArcballControls.js +17 -2
  259. package/examples/jsm/controls/FirstPersonControls.js +20 -27
  260. package/examples/jsm/controls/FlyControls.js +16 -24
  261. package/examples/jsm/controls/OrbitControls.js +44 -9
  262. package/examples/jsm/controls/PointerLockControls.js +0 -7
  263. package/examples/jsm/controls/TrackballControls.js +14 -5
  264. package/examples/jsm/controls/TransformControls.js +18 -16
  265. package/examples/jsm/csm/CSM.js +1 -0
  266. package/examples/jsm/csm/CSMHelper.js +30 -0
  267. package/examples/jsm/effects/AnaglyphEffect.js +2 -2
  268. package/examples/jsm/effects/OutlineEffect.js +4 -25
  269. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
  270. package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
  271. package/examples/jsm/effects/StereoEffect.js +2 -2
  272. package/examples/jsm/environments/RoomEnvironment.js +23 -0
  273. package/examples/jsm/exporters/ColladaExporter.js +4 -13
  274. package/examples/jsm/exporters/DRACOExporter.js +0 -13
  275. package/examples/jsm/exporters/GLTFExporter.js +29 -110
  276. package/examples/jsm/exporters/KTX2Exporter.js +29 -29
  277. package/examples/jsm/exporters/OBJExporter.js +0 -18
  278. package/examples/jsm/exporters/PLYExporter.js +14 -22
  279. package/examples/jsm/exporters/STLExporter.js +1 -9
  280. package/examples/jsm/exporters/USDZExporter.js +107 -4
  281. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  282. package/examples/jsm/geometries/ParametricGeometry.js +0 -6
  283. package/examples/jsm/helpers/OctreeHelper.js +22 -8
  284. package/examples/jsm/helpers/VertexNormalsHelper.js +7 -1
  285. package/examples/jsm/helpers/VertexTangentsHelper.js +7 -0
  286. package/examples/jsm/helpers/ViewHelper.js +24 -0
  287. package/examples/jsm/interactive/HTMLMesh.js +14 -15
  288. package/examples/jsm/interactive/InteractiveGroup.js +4 -2
  289. package/examples/jsm/interactive/SelectionHelper.js +5 -3
  290. package/examples/jsm/libs/flow.module.js +610 -160
  291. package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
  292. package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
  293. package/examples/jsm/libs/utif.module.js +1579 -0
  294. package/examples/jsm/libs/zstddec.module.js +1 -0
  295. package/examples/jsm/lines/LineSegments2.js +4 -0
  296. package/examples/jsm/loaders/3DMLoader.js +1 -2
  297. package/examples/jsm/loaders/ColladaLoader.js +29 -0
  298. package/examples/jsm/loaders/DRACOLoader.js +2 -28
  299. package/examples/jsm/loaders/EXRLoader.js +3 -13
  300. package/examples/jsm/loaders/FBXLoader.js +26 -3
  301. package/examples/jsm/loaders/FontLoader.js +3 -16
  302. package/examples/jsm/loaders/GLTFLoader.js +321 -464
  303. package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
  304. package/examples/jsm/loaders/KTX2Loader.js +254 -53
  305. package/examples/jsm/loaders/LDrawLoader.js +149 -87
  306. package/examples/jsm/loaders/LottieLoader.js +4 -2
  307. package/examples/jsm/loaders/MaterialXLoader.js +728 -0
  308. package/examples/jsm/loaders/OBJLoader.js +6 -14
  309. package/examples/jsm/loaders/PCDLoader.js +60 -14
  310. package/examples/jsm/loaders/PLYLoader.js +71 -19
  311. package/examples/jsm/loaders/RGBELoader.js +1 -1
  312. package/examples/jsm/loaders/SVGLoader.js +231 -17
  313. package/examples/jsm/loaders/TIFFLoader.js +36 -0
  314. package/examples/jsm/loaders/USDZLoader.js +633 -0
  315. package/examples/jsm/loaders/VRMLLoader.js +36 -26
  316. package/examples/jsm/loaders/VTKLoader.js +1 -1
  317. package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
  318. package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
  319. package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
  320. package/examples/jsm/math/ColorConverter.js +1 -49
  321. package/examples/jsm/math/ConvexHull.js +4 -4
  322. package/examples/jsm/math/Octree.js +1 -1
  323. package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
  324. package/examples/jsm/misc/Volume.js +169 -171
  325. package/examples/jsm/misc/VolumeSlice.js +78 -80
  326. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  327. package/examples/jsm/node-editor/NodeEditor.js +91 -12
  328. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
  329. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  330. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  331. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  332. package/examples/jsm/node-editor/core/BaseNode.js +10 -3
  333. package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
  334. package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
  335. package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
  336. package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
  337. package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
  338. package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
  339. package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
  340. package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
  341. package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
  342. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +7 -10
  343. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
  344. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +7 -10
  345. package/examples/jsm/node-editor/math/AngleEditor.js +4 -4
  346. package/examples/jsm/node-editor/math/DotEditor.js +1 -1
  347. package/examples/jsm/node-editor/math/InvertEditor.js +3 -3
  348. package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
  349. package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
  350. package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
  351. package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
  352. package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
  353. package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
  354. package/examples/jsm/node-editor/scene/MeshEditor.js +11 -8
  355. package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
  356. package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
  357. package/examples/jsm/node-editor/utils/PreviewEditor.js +7 -3
  358. package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
  359. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  360. package/examples/jsm/nodes/Nodes.js +70 -13
  361. package/examples/jsm/nodes/accessors/BitangentNode.js +62 -0
  362. package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
  363. package/examples/jsm/nodes/accessors/NormalNode.js +8 -8
  364. package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
  365. package/examples/jsm/nodes/accessors/PositionNode.js +11 -5
  366. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  367. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
  368. package/examples/jsm/nodes/accessors/SkinningNode.js +8 -1
  369. package/examples/jsm/nodes/accessors/TangentNode.js +95 -0
  370. package/examples/jsm/nodes/core/AttributeNode.js +32 -9
  371. package/examples/jsm/nodes/core/CodeNode.js +3 -3
  372. package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
  373. package/examples/jsm/nodes/core/FunctionNode.js +2 -2
  374. package/examples/jsm/nodes/core/Node.js +15 -13
  375. package/examples/jsm/nodes/core/NodeBuilder.js +67 -18
  376. package/examples/jsm/nodes/core/NodeFrame.js +2 -2
  377. package/examples/jsm/nodes/core/NodeUtils.js +23 -1
  378. package/examples/jsm/nodes/core/NodeVarying.js +17 -0
  379. package/examples/jsm/nodes/core/VaryingNode.js +56 -0
  380. package/examples/jsm/nodes/core/constants.js +13 -13
  381. package/examples/jsm/nodes/display/BlendModeNode.js +85 -0
  382. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +84 -0
  383. package/examples/jsm/nodes/display/NormalMapNode.js +19 -12
  384. package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
  385. package/examples/jsm/nodes/display/ViewportNode.js +106 -0
  386. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +5 -5
  387. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +3 -3
  388. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +2 -2
  389. package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
  390. package/examples/jsm/nodes/gpgpu/ComputeNode.js +3 -1
  391. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
  392. package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
  393. package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
  394. package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
  395. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +33 -0
  396. package/examples/jsm/nodes/materials/Materials.js +21 -31
  397. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
  398. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
  399. package/examples/jsm/nodes/materials/NodeMaterial.js +11 -3
  400. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
  401. package/examples/jsm/nodes/materialx/DISCLAIMER.md +199 -0
  402. package/examples/jsm/nodes/materialx/MaterialXNodes.js +59 -0
  403. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +56 -0
  404. package/examples/jsm/nodes/materialx/lib/mx_noise.js +617 -0
  405. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
  406. package/examples/jsm/nodes/math/MathNode.js +7 -17
  407. package/examples/jsm/nodes/math/OperatorNode.js +16 -3
  408. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
  409. package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
  410. package/examples/jsm/nodes/shadernode/ShaderNode.js +40 -25
  411. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +95 -68
  412. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +49 -6
  413. package/examples/jsm/nodes/utils/ConvertNode.js +18 -12
  414. package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
  415. package/examples/jsm/nodes/utils/JoinNode.js +15 -9
  416. package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
  417. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +3 -2
  418. package/examples/jsm/nodes/utils/OscNode.js +2 -2
  419. package/examples/jsm/nodes/utils/RemapNode.js +34 -0
  420. package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
  421. package/examples/jsm/nodes/utils/SplitNode.js +21 -5
  422. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
  423. package/examples/jsm/nodes/utils/TimerNode.js +23 -3
  424. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
  425. package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
  426. package/examples/jsm/objects/Reflector.js +12 -5
  427. package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
  428. package/examples/jsm/objects/Refractor.js +12 -6
  429. package/examples/jsm/objects/ShadowMesh.js +8 -2
  430. package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
  431. package/examples/jsm/postprocessing/BloomPass.js +22 -3
  432. package/examples/jsm/postprocessing/BokehPass.js +18 -4
  433. package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
  434. package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
  435. package/examples/jsm/postprocessing/EffectComposer.js +9 -0
  436. package/examples/jsm/postprocessing/FilmPass.js +8 -0
  437. package/examples/jsm/postprocessing/GlitchPass.js +13 -1
  438. package/examples/jsm/postprocessing/HalftonePass.js +8 -0
  439. package/examples/jsm/postprocessing/OutlinePass.js +25 -3
  440. package/examples/jsm/postprocessing/Pass.js +2 -0
  441. package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
  442. package/examples/jsm/postprocessing/SAOPass.js +20 -0
  443. package/examples/jsm/postprocessing/SMAAPass.js +16 -0
  444. package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
  445. package/examples/jsm/postprocessing/SavePass.js +17 -1
  446. package/examples/jsm/postprocessing/ShaderPass.js +8 -0
  447. package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
  448. package/examples/jsm/postprocessing/TexturePass.js +8 -0
  449. package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
  450. package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
  451. package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
  452. package/examples/jsm/renderers/Projector.js +2 -24
  453. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
  454. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +363 -231
  455. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
  456. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
  457. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
  458. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +68 -3
  459. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
  460. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
  461. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  462. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
  463. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
  464. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
  465. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +113 -93
  466. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
  467. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
  468. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
  469. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +63 -36
  470. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  471. package/examples/jsm/shaders/LuminosityShader.js +1 -1
  472. package/examples/jsm/shaders/MMDToonShader.js +2 -4
  473. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  474. package/examples/jsm/shaders/VelocityShader.js +128 -0
  475. package/examples/jsm/utils/BufferGeometryUtils.js +176 -43
  476. package/examples/jsm/utils/GeometryUtils.js +17 -25
  477. package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
  478. package/examples/jsm/utils/SceneUtils.js +117 -12
  479. package/examples/jsm/webxr/OculusHandModel.js +3 -2
  480. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
  481. package/examples/jsm/webxr/VRButton.js +1 -7
  482. package/examples/jsm/webxr/XRHandMeshModel.js +8 -3
  483. package/package.json +22 -18
  484. package/src/Three.Legacy.js +262 -36
  485. package/src/Three.js +4 -2
  486. package/src/animation/AnimationAction.js +6 -5
  487. package/src/animation/AnimationClip.js +1 -1
  488. package/src/animation/AnimationMixer.js +1 -1
  489. package/src/animation/AnimationUtils.js +204 -199
  490. package/src/animation/KeyframeTrack.js +1 -1
  491. package/src/animation/PropertyBinding.js +31 -5
  492. package/src/audio/AudioContext.js +5 -5
  493. package/src/cameras/CubeCamera.js +14 -21
  494. package/src/constants.js +2 -4
  495. package/src/core/BufferAttribute.js +81 -111
  496. package/src/core/BufferGeometry.js +3 -41
  497. package/src/core/InstancedBufferAttribute.js +0 -10
  498. package/src/core/InstancedBufferGeometry.js +1 -7
  499. package/src/core/InterleavedBuffer.js +1 -1
  500. package/src/core/InterleavedBufferAttribute.js +57 -8
  501. package/src/core/Object3D.js +22 -5
  502. package/src/core/Uniform.js +0 -7
  503. package/src/core/UniformsGroup.js +92 -0
  504. package/src/extras/DataUtils.js +104 -88
  505. package/src/extras/Earcut.js +67 -67
  506. package/src/extras/core/Path.js +1 -0
  507. package/src/extras/core/ShapePath.js +1 -4
  508. package/src/extras/curves/CatmullRomCurve3.js +4 -2
  509. package/src/geometries/BoxGeometry.js +1 -1
  510. package/src/geometries/CapsuleGeometry.js +1 -1
  511. package/src/geometries/CircleGeometry.js +1 -1
  512. package/src/geometries/ConeGeometry.js +1 -1
  513. package/src/geometries/CylinderGeometry.js +2 -1
  514. package/src/geometries/DodecahedronGeometry.js +1 -1
  515. package/src/geometries/EdgesGeometry.js +5 -4
  516. package/src/geometries/ExtrudeGeometry.js +2 -11
  517. package/src/geometries/IcosahedronGeometry.js +1 -1
  518. package/src/geometries/LatheGeometry.js +2 -2
  519. package/src/geometries/OctahedronGeometry.js +1 -1
  520. package/src/geometries/PlaneGeometry.js +2 -1
  521. package/src/geometries/PolyhedronGeometry.js +2 -2
  522. package/src/geometries/RingGeometry.js +1 -1
  523. package/src/geometries/ShapeGeometry.js +3 -2
  524. package/src/geometries/SphereGeometry.js +2 -1
  525. package/src/geometries/TetrahedronGeometry.js +1 -1
  526. package/src/geometries/TorusGeometry.js +2 -1
  527. package/src/geometries/TorusKnotGeometry.js +2 -1
  528. package/src/geometries/TubeGeometry.js +2 -1
  529. package/src/geometries/WireframeGeometry.js +1 -0
  530. package/src/helpers/ArrowHelper.js +9 -0
  531. package/src/helpers/Box3Helper.js +7 -0
  532. package/src/helpers/BoxHelper.js +7 -1
  533. package/src/helpers/CameraHelper.js +97 -38
  534. package/src/helpers/DirectionalLightHelper.js +6 -1
  535. package/src/helpers/GridHelper.js +7 -0
  536. package/src/helpers/HemisphereLightHelper.js +5 -1
  537. package/src/helpers/PlaneHelper.js +15 -9
  538. package/src/helpers/PointLightHelper.js +2 -1
  539. package/src/helpers/PolarGridHelper.js +25 -14
  540. package/src/helpers/SkeletonHelper.js +7 -0
  541. package/src/helpers/SpotLightHelper.js +5 -2
  542. package/src/lights/LightShadow.js +1 -2
  543. package/src/lights/PointLight.js +2 -2
  544. package/src/lights/SpotLight.js +4 -2
  545. package/src/loaders/FileLoader.js +16 -2
  546. package/src/loaders/LoadingManager.js +1 -1
  547. package/src/loaders/MaterialLoader.js +49 -7
  548. package/src/loaders/ObjectLoader.js +9 -42
  549. package/src/materials/Material.js +2 -34
  550. package/src/materials/Materials.js +0 -27
  551. package/src/materials/MeshLambertMaterial.js +28 -1
  552. package/src/materials/MeshPhysicalMaterial.js +1 -1
  553. package/src/materials/ShaderMaterial.js +3 -7
  554. package/src/math/Color.js +8 -18
  555. package/src/math/MathUtils.js +1 -7
  556. package/src/math/Matrix3.js +54 -25
  557. package/src/math/Matrix4.js +3 -27
  558. package/src/math/Quaternion.js +1 -21
  559. package/src/math/Ray.js +2 -5
  560. package/src/math/Sphere.js +36 -21
  561. package/src/math/Vector2.js +4 -24
  562. package/src/math/Vector3.js +7 -46
  563. package/src/math/Vector4.js +4 -24
  564. package/src/objects/InstancedMesh.js +7 -0
  565. package/src/objects/LOD.js +25 -6
  566. package/src/renderers/WebGL3DRenderTarget.js +1 -1
  567. package/src/renderers/WebGLArrayRenderTarget.js +1 -1
  568. package/src/renderers/WebGLCubeRenderTarget.js +1 -1
  569. package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
  570. package/src/renderers/WebGLRenderTarget.js +1 -1
  571. package/src/renderers/WebGLRenderer.js +119 -69
  572. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
  573. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
  574. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
  575. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
  576. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
  577. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
  578. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
  579. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
  580. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
  581. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -13
  582. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
  583. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +28 -0
  584. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
  585. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
  586. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
  587. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
  588. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -4
  589. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
  590. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
  591. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
  592. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
  593. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
  594. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
  595. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  596. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
  597. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +2 -2
  598. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
  599. package/src/renderers/shaders/ShaderChunk.js +7 -2
  600. package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
  601. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
  602. package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
  603. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
  604. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
  605. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  606. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +0 -3
  607. package/src/renderers/shaders/ShaderLib.js +50 -36
  608. package/src/renderers/shaders/UniformsLib.js +13 -12
  609. package/src/renderers/shaders/UniformsUtils.js +29 -0
  610. package/src/renderers/webgl/WebGLAttributes.js +2 -0
  611. package/src/renderers/webgl/WebGLBackground.js +17 -9
  612. package/src/renderers/webgl/WebGLLights.js +37 -17
  613. package/src/renderers/webgl/WebGLMaterials.js +2 -1
  614. package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
  615. package/src/renderers/webgl/WebGLProgram.js +6 -11
  616. package/src/renderers/webgl/WebGLPrograms.js +30 -26
  617. package/src/renderers/webgl/WebGLRenderLists.js +5 -4
  618. package/src/renderers/webgl/WebGLRenderStates.js +5 -4
  619. package/src/renderers/webgl/WebGLShaderCache.js +9 -6
  620. package/src/renderers/webgl/WebGLShadowMap.js +13 -16
  621. package/src/renderers/webgl/WebGLState.js +125 -41
  622. package/src/renderers/webgl/WebGLTextures.js +94 -39
  623. package/src/renderers/webgl/WebGLUniforms.js +156 -28
  624. package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
  625. package/src/renderers/webgl/WebGLUtils.js +3 -1
  626. package/src/renderers/webvr/WebVRManager.js +42 -9
  627. package/src/renderers/webvr/WebVRUtils.js +1 -1
  628. package/src/renderers/webxr/WebXRController.js +91 -50
  629. package/src/renderers/webxr/WebXRManager.js +127 -34
  630. package/src/scenes/Scene.js +24 -3
  631. package/src/textures/CompressedArrayTexture.js +18 -0
  632. package/src/textures/Source.js +1 -1
  633. package/src/textures/Texture.js +2 -1
  634. package/src/utils.js +1 -1
  635. package/examples/js/controls/experimental/CameraControls.js +0 -1048
  636. package/examples/js/libs/lottie_canvas.js +0 -12751
  637. package/examples/js/loaders/KTX2Loader.js +0 -558
  638. package/examples/js/shaders/PixelShader.js +0 -51
  639. package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
  640. package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
  641. package/examples/jsm/nodes/core/NodeVary.js +0 -14
  642. package/examples/jsm/nodes/core/VaryNode.js +0 -54
  643. package/examples/jsm/package.json +0 -3
  644. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
  645. package/examples/jsm/shaders/PixelShader.js +0 -44
  646. package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
@@ -1,343 +1,339 @@
1
1
  import { Quaternion } from '../math/Quaternion.js';
2
2
  import { AdditiveAnimationBlendMode } from '../constants.js';
3
3
 
4
- const AnimationUtils = {
4
+ // same as Array.prototype.slice, but also works on typed arrays
5
+ function arraySlice( array, from, to ) {
5
6
 
6
- // same as Array.prototype.slice, but also works on typed arrays
7
- arraySlice: function ( array, from, to ) {
7
+ if ( isTypedArray( array ) ) {
8
8
 
9
- if ( AnimationUtils.isTypedArray( array ) ) {
9
+ // in ios9 array.subarray(from, undefined) will return empty array
10
+ // but array.subarray(from) or array.subarray(from, len) is correct
11
+ return new array.constructor( array.subarray( from, to !== undefined ? to : array.length ) );
10
12
 
11
- // in ios9 array.subarray(from, undefined) will return empty array
12
- // but array.subarray(from) or array.subarray(from, len) is correct
13
- return new array.constructor( array.subarray( from, to !== undefined ? to : array.length ) );
14
-
15
- }
13
+ }
16
14
 
17
- return array.slice( from, to );
15
+ return array.slice( from, to );
18
16
 
19
- },
17
+ }
20
18
 
21
- // converts an array to a specific type
22
- convertArray: function ( array, type, forceClone ) {
19
+ // converts an array to a specific type
20
+ function convertArray( array, type, forceClone ) {
23
21
 
24
- if ( ! array || // let 'undefined' and 'null' pass
25
- ! forceClone && array.constructor === type ) return array;
22
+ if ( ! array || // let 'undefined' and 'null' pass
23
+ ! forceClone && array.constructor === type ) return array;
26
24
 
27
- if ( typeof type.BYTES_PER_ELEMENT === 'number' ) {
25
+ if ( typeof type.BYTES_PER_ELEMENT === 'number' ) {
28
26
 
29
- return new type( array ); // create typed array
27
+ return new type( array ); // create typed array
30
28
 
31
- }
32
-
33
- return Array.prototype.slice.call( array ); // create Array
29
+ }
34
30
 
35
- },
31
+ return Array.prototype.slice.call( array ); // create Array
36
32
 
37
- isTypedArray: function ( object ) {
33
+ }
38
34
 
39
- return ArrayBuffer.isView( object ) &&
40
- ! ( object instanceof DataView );
35
+ function isTypedArray( object ) {
41
36
 
42
- },
37
+ return ArrayBuffer.isView( object ) &&
38
+ ! ( object instanceof DataView );
43
39
 
44
- // returns an array by which times and values can be sorted
45
- getKeyframeOrder: function ( times ) {
40
+ }
46
41
 
47
- function compareTime( i, j ) {
42
+ // returns an array by which times and values can be sorted
43
+ function getKeyframeOrder( times ) {
48
44
 
49
- return times[ i ] - times[ j ];
45
+ function compareTime( i, j ) {
50
46
 
51
- }
47
+ return times[ i ] - times[ j ];
52
48
 
53
- const n = times.length;
54
- const result = new Array( n );
55
- for ( let i = 0; i !== n; ++ i ) result[ i ] = i;
49
+ }
56
50
 
57
- result.sort( compareTime );
51
+ const n = times.length;
52
+ const result = new Array( n );
53
+ for ( let i = 0; i !== n; ++ i ) result[ i ] = i;
58
54
 
59
- return result;
55
+ result.sort( compareTime );
60
56
 
61
- },
57
+ return result;
62
58
 
63
- // uses the array previously returned by 'getKeyframeOrder' to sort data
64
- sortedArray: function ( values, stride, order ) {
59
+ }
65
60
 
66
- const nValues = values.length;
67
- const result = new values.constructor( nValues );
61
+ // uses the array previously returned by 'getKeyframeOrder' to sort data
62
+ function sortedArray( values, stride, order ) {
68
63
 
69
- for ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {
64
+ const nValues = values.length;
65
+ const result = new values.constructor( nValues );
70
66
 
71
- const srcOffset = order[ i ] * stride;
67
+ for ( let i = 0, dstOffset = 0; dstOffset !== nValues; ++ i ) {
72
68
 
73
- for ( let j = 0; j !== stride; ++ j ) {
69
+ const srcOffset = order[ i ] * stride;
74
70
 
75
- result[ dstOffset ++ ] = values[ srcOffset + j ];
71
+ for ( let j = 0; j !== stride; ++ j ) {
76
72
 
77
- }
73
+ result[ dstOffset ++ ] = values[ srcOffset + j ];
78
74
 
79
75
  }
80
76
 
81
- return result;
77
+ }
82
78
 
83
- },
79
+ return result;
84
80
 
85
- // function for parsing AOS keyframe formats
86
- flattenJSON: function ( jsonKeys, times, values, valuePropertyName ) {
81
+ }
87
82
 
88
- let i = 1, key = jsonKeys[ 0 ];
83
+ // function for parsing AOS keyframe formats
84
+ function flattenJSON( jsonKeys, times, values, valuePropertyName ) {
89
85
 
90
- while ( key !== undefined && key[ valuePropertyName ] === undefined ) {
86
+ let i = 1, key = jsonKeys[ 0 ];
91
87
 
92
- key = jsonKeys[ i ++ ];
88
+ while ( key !== undefined && key[ valuePropertyName ] === undefined ) {
93
89
 
94
- }
90
+ key = jsonKeys[ i ++ ];
95
91
 
96
- if ( key === undefined ) return; // no data
92
+ }
97
93
 
98
- let value = key[ valuePropertyName ];
99
- if ( value === undefined ) return; // no data
94
+ if ( key === undefined ) return; // no data
100
95
 
101
- if ( Array.isArray( value ) ) {
96
+ let value = key[ valuePropertyName ];
97
+ if ( value === undefined ) return; // no data
102
98
 
103
- do {
99
+ if ( Array.isArray( value ) ) {
104
100
 
105
- value = key[ valuePropertyName ];
101
+ do {
106
102
 
107
- if ( value !== undefined ) {
103
+ value = key[ valuePropertyName ];
108
104
 
109
- times.push( key.time );
110
- values.push.apply( values, value ); // push all elements
105
+ if ( value !== undefined ) {
111
106
 
112
- }
107
+ times.push( key.time );
108
+ values.push.apply( values, value ); // push all elements
113
109
 
114
- key = jsonKeys[ i ++ ];
110
+ }
115
111
 
116
- } while ( key !== undefined );
112
+ key = jsonKeys[ i ++ ];
117
113
 
118
- } else if ( value.toArray !== undefined ) {
114
+ } while ( key !== undefined );
119
115
 
120
- // ...assume THREE.Math-ish
116
+ } else if ( value.toArray !== undefined ) {
121
117
 
122
- do {
118
+ // ...assume THREE.Math-ish
123
119
 
124
- value = key[ valuePropertyName ];
120
+ do {
125
121
 
126
- if ( value !== undefined ) {
122
+ value = key[ valuePropertyName ];
127
123
 
128
- times.push( key.time );
129
- value.toArray( values, values.length );
124
+ if ( value !== undefined ) {
130
125
 
131
- }
126
+ times.push( key.time );
127
+ value.toArray( values, values.length );
132
128
 
133
- key = jsonKeys[ i ++ ];
129
+ }
134
130
 
135
- } while ( key !== undefined );
131
+ key = jsonKeys[ i ++ ];
136
132
 
137
- } else {
133
+ } while ( key !== undefined );
138
134
 
139
- // otherwise push as-is
135
+ } else {
140
136
 
141
- do {
137
+ // otherwise push as-is
142
138
 
143
- value = key[ valuePropertyName ];
139
+ do {
144
140
 
145
- if ( value !== undefined ) {
141
+ value = key[ valuePropertyName ];
146
142
 
147
- times.push( key.time );
148
- values.push( value );
143
+ if ( value !== undefined ) {
149
144
 
150
- }
145
+ times.push( key.time );
146
+ values.push( value );
151
147
 
152
- key = jsonKeys[ i ++ ];
148
+ }
153
149
 
154
- } while ( key !== undefined );
150
+ key = jsonKeys[ i ++ ];
155
151
 
156
- }
152
+ } while ( key !== undefined );
157
153
 
158
- },
154
+ }
159
155
 
160
- subclip: function ( sourceClip, name, startFrame, endFrame, fps = 30 ) {
156
+ }
161
157
 
162
- const clip = sourceClip.clone();
158
+ function subclip( sourceClip, name, startFrame, endFrame, fps = 30 ) {
163
159
 
164
- clip.name = name;
160
+ const clip = sourceClip.clone();
165
161
 
166
- const tracks = [];
162
+ clip.name = name;
167
163
 
168
- for ( let i = 0; i < clip.tracks.length; ++ i ) {
164
+ const tracks = [];
169
165
 
170
- const track = clip.tracks[ i ];
171
- const valueSize = track.getValueSize();
166
+ for ( let i = 0; i < clip.tracks.length; ++ i ) {
172
167
 
173
- const times = [];
174
- const values = [];
168
+ const track = clip.tracks[ i ];
169
+ const valueSize = track.getValueSize();
175
170
 
176
- for ( let j = 0; j < track.times.length; ++ j ) {
171
+ const times = [];
172
+ const values = [];
177
173
 
178
- const frame = track.times[ j ] * fps;
174
+ for ( let j = 0; j < track.times.length; ++ j ) {
179
175
 
180
- if ( frame < startFrame || frame >= endFrame ) continue;
176
+ const frame = track.times[ j ] * fps;
181
177
 
182
- times.push( track.times[ j ] );
178
+ if ( frame < startFrame || frame >= endFrame ) continue;
183
179
 
184
- for ( let k = 0; k < valueSize; ++ k ) {
180
+ times.push( track.times[ j ] );
185
181
 
186
- values.push( track.values[ j * valueSize + k ] );
182
+ for ( let k = 0; k < valueSize; ++ k ) {
187
183
 
188
- }
184
+ values.push( track.values[ j * valueSize + k ] );
189
185
 
190
186
  }
191
187
 
192
- if ( times.length === 0 ) continue;
188
+ }
193
189
 
194
- track.times = AnimationUtils.convertArray( times, track.times.constructor );
195
- track.values = AnimationUtils.convertArray( values, track.values.constructor );
190
+ if ( times.length === 0 ) continue;
196
191
 
197
- tracks.push( track );
192
+ track.times = convertArray( times, track.times.constructor );
193
+ track.values = convertArray( values, track.values.constructor );
198
194
 
199
- }
195
+ tracks.push( track );
200
196
 
201
- clip.tracks = tracks;
197
+ }
202
198
 
203
- // find minimum .times value across all tracks in the trimmed clip
199
+ clip.tracks = tracks;
204
200
 
205
- let minStartTime = Infinity;
201
+ // find minimum .times value across all tracks in the trimmed clip
206
202
 
207
- for ( let i = 0; i < clip.tracks.length; ++ i ) {
203
+ let minStartTime = Infinity;
208
204
 
209
- if ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {
205
+ for ( let i = 0; i < clip.tracks.length; ++ i ) {
210
206
 
211
- minStartTime = clip.tracks[ i ].times[ 0 ];
207
+ if ( minStartTime > clip.tracks[ i ].times[ 0 ] ) {
212
208
 
213
- }
209
+ minStartTime = clip.tracks[ i ].times[ 0 ];
214
210
 
215
211
  }
216
212
 
217
- // shift all tracks such that clip begins at t=0
213
+ }
218
214
 
219
- for ( let i = 0; i < clip.tracks.length; ++ i ) {
215
+ // shift all tracks such that clip begins at t=0
220
216
 
221
- clip.tracks[ i ].shift( - 1 * minStartTime );
217
+ for ( let i = 0; i < clip.tracks.length; ++ i ) {
222
218
 
223
- }
219
+ clip.tracks[ i ].shift( - 1 * minStartTime );
224
220
 
225
- clip.resetDuration();
221
+ }
226
222
 
227
- return clip;
223
+ clip.resetDuration();
228
224
 
229
- },
225
+ return clip;
230
226
 
231
- makeClipAdditive: function ( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {
227
+ }
232
228
 
233
- if ( fps <= 0 ) fps = 30;
229
+ function makeClipAdditive( targetClip, referenceFrame = 0, referenceClip = targetClip, fps = 30 ) {
234
230
 
235
- const numTracks = referenceClip.tracks.length;
236
- const referenceTime = referenceFrame / fps;
231
+ if ( fps <= 0 ) fps = 30;
237
232
 
238
- // Make each track's values relative to the values at the reference frame
239
- for ( let i = 0; i < numTracks; ++ i ) {
233
+ const numTracks = referenceClip.tracks.length;
234
+ const referenceTime = referenceFrame / fps;
240
235
 
241
- const referenceTrack = referenceClip.tracks[ i ];
242
- const referenceTrackType = referenceTrack.ValueTypeName;
236
+ // Make each track's values relative to the values at the reference frame
237
+ for ( let i = 0; i < numTracks; ++ i ) {
243
238
 
244
- // Skip this track if it's non-numeric
245
- if ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;
239
+ const referenceTrack = referenceClip.tracks[ i ];
240
+ const referenceTrackType = referenceTrack.ValueTypeName;
246
241
 
247
- // Find the track in the target clip whose name and type matches the reference track
248
- const targetTrack = targetClip.tracks.find( function ( track ) {
242
+ // Skip this track if it's non-numeric
243
+ if ( referenceTrackType === 'bool' || referenceTrackType === 'string' ) continue;
249
244
 
250
- return track.name === referenceTrack.name
251
- && track.ValueTypeName === referenceTrackType;
245
+ // Find the track in the target clip whose name and type matches the reference track
246
+ const targetTrack = targetClip.tracks.find( function ( track ) {
252
247
 
253
- } );
248
+ return track.name === referenceTrack.name
249
+ && track.ValueTypeName === referenceTrackType;
254
250
 
255
- if ( targetTrack === undefined ) continue;
251
+ } );
256
252
 
257
- let referenceOffset = 0;
258
- const referenceValueSize = referenceTrack.getValueSize();
253
+ if ( targetTrack === undefined ) continue;
259
254
 
260
- if ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {
255
+ let referenceOffset = 0;
256
+ const referenceValueSize = referenceTrack.getValueSize();
261
257
 
262
- referenceOffset = referenceValueSize / 3;
258
+ if ( referenceTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {
263
259
 
264
- }
260
+ referenceOffset = referenceValueSize / 3;
265
261
 
266
- let targetOffset = 0;
267
- const targetValueSize = targetTrack.getValueSize();
262
+ }
268
263
 
269
- if ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {
264
+ let targetOffset = 0;
265
+ const targetValueSize = targetTrack.getValueSize();
270
266
 
271
- targetOffset = targetValueSize / 3;
267
+ if ( targetTrack.createInterpolant.isInterpolantFactoryMethodGLTFCubicSpline ) {
272
268
 
273
- }
269
+ targetOffset = targetValueSize / 3;
274
270
 
275
- const lastIndex = referenceTrack.times.length - 1;
276
- let referenceValue;
271
+ }
277
272
 
278
- // Find the value to subtract out of the track
279
- if ( referenceTime <= referenceTrack.times[ 0 ] ) {
273
+ const lastIndex = referenceTrack.times.length - 1;
274
+ let referenceValue;
280
275
 
281
- // Reference frame is earlier than the first keyframe, so just use the first keyframe
282
- const startIndex = referenceOffset;
283
- const endIndex = referenceValueSize - referenceOffset;
284
- referenceValue = AnimationUtils.arraySlice( referenceTrack.values, startIndex, endIndex );
276
+ // Find the value to subtract out of the track
277
+ if ( referenceTime <= referenceTrack.times[ 0 ] ) {
285
278
 
286
- } else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {
279
+ // Reference frame is earlier than the first keyframe, so just use the first keyframe
280
+ const startIndex = referenceOffset;
281
+ const endIndex = referenceValueSize - referenceOffset;
282
+ referenceValue = arraySlice( referenceTrack.values, startIndex, endIndex );
287
283
 
288
- // Reference frame is after the last keyframe, so just use the last keyframe
289
- const startIndex = lastIndex * referenceValueSize + referenceOffset;
290
- const endIndex = startIndex + referenceValueSize - referenceOffset;
291
- referenceValue = AnimationUtils.arraySlice( referenceTrack.values, startIndex, endIndex );
284
+ } else if ( referenceTime >= referenceTrack.times[ lastIndex ] ) {
292
285
 
293
- } else {
286
+ // Reference frame is after the last keyframe, so just use the last keyframe
287
+ const startIndex = lastIndex * referenceValueSize + referenceOffset;
288
+ const endIndex = startIndex + referenceValueSize - referenceOffset;
289
+ referenceValue = arraySlice( referenceTrack.values, startIndex, endIndex );
294
290
 
295
- // Interpolate to the reference value
296
- const interpolant = referenceTrack.createInterpolant();
297
- const startIndex = referenceOffset;
298
- const endIndex = referenceValueSize - referenceOffset;
299
- interpolant.evaluate( referenceTime );
300
- referenceValue = AnimationUtils.arraySlice( interpolant.resultBuffer, startIndex, endIndex );
291
+ } else {
301
292
 
302
- }
293
+ // Interpolate to the reference value
294
+ const interpolant = referenceTrack.createInterpolant();
295
+ const startIndex = referenceOffset;
296
+ const endIndex = referenceValueSize - referenceOffset;
297
+ interpolant.evaluate( referenceTime );
298
+ referenceValue = arraySlice( interpolant.resultBuffer, startIndex, endIndex );
303
299
 
304
- // Conjugate the quaternion
305
- if ( referenceTrackType === 'quaternion' ) {
300
+ }
306
301
 
307
- const referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();
308
- referenceQuat.toArray( referenceValue );
302
+ // Conjugate the quaternion
303
+ if ( referenceTrackType === 'quaternion' ) {
309
304
 
310
- }
305
+ const referenceQuat = new Quaternion().fromArray( referenceValue ).normalize().conjugate();
306
+ referenceQuat.toArray( referenceValue );
311
307
 
312
- // Subtract the reference value from all of the track values
308
+ }
313
309
 
314
- const numTimes = targetTrack.times.length;
315
- for ( let j = 0; j < numTimes; ++ j ) {
310
+ // Subtract the reference value from all of the track values
316
311
 
317
- const valueStart = j * targetValueSize + targetOffset;
312
+ const numTimes = targetTrack.times.length;
313
+ for ( let j = 0; j < numTimes; ++ j ) {
318
314
 
319
- if ( referenceTrackType === 'quaternion' ) {
315
+ const valueStart = j * targetValueSize + targetOffset;
320
316
 
321
- // Multiply the conjugate for quaternion track types
322
- Quaternion.multiplyQuaternionsFlat(
323
- targetTrack.values,
324
- valueStart,
325
- referenceValue,
326
- 0,
327
- targetTrack.values,
328
- valueStart
329
- );
317
+ if ( referenceTrackType === 'quaternion' ) {
330
318
 
331
- } else {
319
+ // Multiply the conjugate for quaternion track types
320
+ Quaternion.multiplyQuaternionsFlat(
321
+ targetTrack.values,
322
+ valueStart,
323
+ referenceValue,
324
+ 0,
325
+ targetTrack.values,
326
+ valueStart
327
+ );
332
328
 
333
- const valueEnd = targetValueSize - targetOffset * 2;
329
+ } else {
334
330
 
335
- // Subtract each value for all other numeric track types
336
- for ( let k = 0; k < valueEnd; ++ k ) {
331
+ const valueEnd = targetValueSize - targetOffset * 2;
337
332
 
338
- targetTrack.values[ valueStart + k ] -= referenceValue[ k ];
333
+ // Subtract each value for all other numeric track types
334
+ for ( let k = 0; k < valueEnd; ++ k ) {
339
335
 
340
- }
336
+ targetTrack.values[ valueStart + k ] -= referenceValue[ k ];
341
337
 
342
338
  }
343
339
 
@@ -345,12 +341,21 @@ const AnimationUtils = {
345
341
 
346
342
  }
347
343
 
348
- targetClip.blendMode = AdditiveAnimationBlendMode;
344
+ }
345
+
346
+ targetClip.blendMode = AdditiveAnimationBlendMode;
349
347
 
350
- return targetClip;
348
+ return targetClip;
351
349
 
352
- }
350
+ }
353
351
 
352
+ export {
353
+ arraySlice,
354
+ convertArray,
355
+ isTypedArray,
356
+ getKeyframeOrder,
357
+ sortedArray,
358
+ flattenJSON,
359
+ subclip,
360
+ makeClipAdditive
354
361
  };
355
-
356
- export { AnimationUtils };
@@ -6,7 +6,7 @@ import {
6
6
  import { CubicInterpolant } from '../math/interpolants/CubicInterpolant.js';
7
7
  import { LinearInterpolant } from '../math/interpolants/LinearInterpolant.js';
8
8
  import { DiscreteInterpolant } from '../math/interpolants/DiscreteInterpolant.js';
9
- import { AnimationUtils } from './AnimationUtils.js';
9
+ import * as AnimationUtils from './AnimationUtils.js';
10
10
 
11
11
  class KeyframeTrack {
12
12
 
@@ -10,18 +10,18 @@ const _wordCharOrDot = '[^' + _RESERVED_CHARS_RE.replace( '\\.', '' ) + ']';
10
10
 
11
11
  // Parent directories, delimited by '/' or ':'. Currently unused, but must
12
12
  // be matched to parse the rest of the track name.
13
- const _directoryRe = /((?:WC+[\/:])*)/.source.replace( 'WC', _wordChar );
13
+ const _directoryRe = /*@__PURE__*/ /((?:WC+[\/:])*)/.source.replace( 'WC', _wordChar );
14
14
 
15
15
  // Target node. May contain word characters (a-zA-Z0-9_) and '.' or '-'.
16
- const _nodeRe = /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );
16
+ const _nodeRe = /*@__PURE__*/ /(WCOD+)?/.source.replace( 'WCOD', _wordCharOrDot );
17
17
 
18
18
  // Object on target node, and accessor. May not contain reserved
19
19
  // characters. Accessor may contain any character except closing bracket.
20
- const _objectRe = /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace( 'WC', _wordChar );
20
+ const _objectRe = /*@__PURE__*/ /(?:\.(WC+)(?:\[(.+)\])?)?/.source.replace( 'WC', _wordChar );
21
21
 
22
22
  // Property and accessor. May not contain reserved characters. Accessor may
23
23
  // contain any non-bracket characters.
24
- const _propertyRe = /\.(WC+)(?:\[(.+)\])?/.source.replace( 'WC', _wordChar );
24
+ const _propertyRe = /*@__PURE__*/ /\.(WC+)(?:\[(.+)\])?/.source.replace( 'WC', _wordChar );
25
25
 
26
26
  const _trackRe = new RegExp( ''
27
27
  + '^'
@@ -32,7 +32,7 @@ const _trackRe = new RegExp( ''
32
32
  + '$'
33
33
  );
34
34
 
35
- const _supportedObjectNames = [ 'material', 'materials', 'bones' ];
35
+ const _supportedObjectNames = [ 'material', 'materials', 'bones', 'map' ];
36
36
 
37
37
  class Composite {
38
38
 
@@ -496,6 +496,32 @@ class PropertyBinding {
496
496
 
497
497
  break;
498
498
 
499
+ case 'map':
500
+
501
+ if ( 'map' in targetObject ) {
502
+
503
+ targetObject = targetObject.map;
504
+ break;
505
+
506
+ }
507
+
508
+ if ( ! targetObject.material ) {
509
+
510
+ console.error( 'THREE.PropertyBinding: Can not bind to material as node does not have a material.', this );
511
+ return;
512
+
513
+ }
514
+
515
+ if ( ! targetObject.material.map ) {
516
+
517
+ console.error( 'THREE.PropertyBinding: Can not bind to material.map as node.material does not have a map.', this );
518
+ return;
519
+
520
+ }
521
+
522
+ targetObject = targetObject.material.map;
523
+ break;
524
+
499
525
  default:
500
526
 
501
527
  if ( targetObject[ objectName ] === undefined ) {
@@ -1,8 +1,8 @@
1
1
  let _context;
2
2
 
3
- const AudioContext = {
3
+ class AudioContext {
4
4
 
5
- getContext: function () {
5
+ static getContext() {
6
6
 
7
7
  if ( _context === undefined ) {
8
8
 
@@ -12,14 +12,14 @@ const AudioContext = {
12
12
 
13
13
  return _context;
14
14
 
15
- },
15
+ }
16
16
 
17
- setContext: function ( value ) {
17
+ static setContext( value ) {
18
18
 
19
19
  _context = value;
20
20
 
21
21
  }
22
22
 
23
- };
23
+ }
24
24
 
25
25
  export { AudioContext };