super-three 0.136.0 → 0.141.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 (768) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +24 -26
  3. package/build/three.cjs +35889 -0
  4. package/build/three.js +4837 -6036
  5. package/build/three.min.js +2 -2
  6. package/build/three.module.js +16548 -17930
  7. package/examples/js/animation/CCDIKSolver.js +3 -2
  8. package/examples/js/animation/MMDAnimationHelper.js +3 -1
  9. package/examples/js/animation/MMDPhysics.js +3 -3
  10. package/examples/js/cameras/CinematicCamera.js +2 -7
  11. package/examples/js/controls/ArcballControls.js +3 -1
  12. package/examples/js/controls/PointerLockControls.js +3 -2
  13. package/examples/js/controls/TrackballControls.js +1 -4
  14. package/examples/js/controls/TransformControls.js +5 -6
  15. package/examples/js/controls/experimental/CameraControls.js +8 -4
  16. package/examples/js/csm/CSMFrustum.js +1 -1
  17. package/examples/js/csm/CSMShader.js +51 -35
  18. package/examples/js/curves/CurveExtras.js +14 -18
  19. package/examples/js/effects/AnaglyphEffect.js +7 -4
  20. package/examples/js/effects/AsciiEffect.js +10 -29
  21. package/examples/js/exporters/ColladaExporter.js +29 -7
  22. package/examples/js/exporters/EXRExporter.js +458 -0
  23. package/examples/js/exporters/GLTFExporter.js +233 -105
  24. package/examples/js/exporters/MMDExporter.js +1 -1
  25. package/examples/js/exporters/OBJExporter.js +12 -18
  26. package/examples/js/exporters/PLYExporter.js +15 -20
  27. package/examples/js/exporters/USDZExporter.js +13 -0
  28. package/examples/js/geometries/ConvexGeometry.js +1 -1
  29. package/examples/js/geometries/DecalGeometry.js +0 -7
  30. package/examples/js/geometries/LightningStrike.js +2 -2
  31. package/examples/js/geometries/ParametricGeometries.js +3 -3
  32. package/examples/js/geometries/TextGeometry.js +12 -10
  33. package/examples/js/helpers/OctreeHelper.js +74 -0
  34. package/examples/js/helpers/VertexNormalsHelper.js +4 -23
  35. package/examples/js/helpers/VertexTangentsHelper.js +3 -13
  36. package/examples/js/helpers/ViewHelper.js +266 -0
  37. package/examples/js/interactive/HTMLMesh.js +249 -42
  38. package/examples/js/interactive/SelectionHelper.js +1 -1
  39. package/examples/js/libs/opentype.min.js +1 -118
  40. package/examples/js/lines/Line2.js +1 -2
  41. package/examples/js/lines/LineGeometry.js +10 -21
  42. package/examples/js/lines/LineMaterial.js +2 -3
  43. package/examples/js/lines/LineSegments2.js +214 -140
  44. package/examples/js/lines/LineSegmentsGeometry.js +3 -14
  45. package/examples/js/lines/Wireframe.js +2 -3
  46. package/examples/js/lines/WireframeGeometry2.js +1 -2
  47. package/examples/js/loaders/3MFLoader.js +21 -17
  48. package/examples/js/loaders/AMFLoader.js +1 -1
  49. package/examples/js/loaders/BasisTextureLoader.js +1 -0
  50. package/examples/js/loaders/ColladaLoader.js +33 -12
  51. package/examples/js/loaders/DDSLoader.js +23 -30
  52. package/examples/js/loaders/EXRLoader.js +314 -294
  53. package/examples/js/loaders/FBXLoader.js +11 -0
  54. package/examples/js/loaders/FontLoader.js +1 -2
  55. package/examples/js/loaders/GCodeLoader.js +0 -1
  56. package/examples/js/loaders/GLTFLoader.js +250 -61
  57. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -2
  58. package/examples/js/loaders/KMZLoader.js +1 -1
  59. package/examples/js/loaders/KTX2Loader.js +1 -9
  60. package/examples/js/loaders/LDrawLoader.js +1342 -962
  61. package/examples/js/loaders/LUT3dlLoader.js +18 -11
  62. package/examples/js/loaders/LUTCubeLoader.js +4 -5
  63. package/examples/js/loaders/LWOLoader.js +4 -2
  64. package/examples/js/loaders/LogLuvLoader.js +1 -2
  65. package/examples/js/loaders/MD2Loader.js +5 -5
  66. package/examples/js/loaders/MMDLoader.js +18 -4
  67. package/examples/js/loaders/MTLLoader.js +10 -3
  68. package/examples/js/loaders/NRRDLoader.js +1 -1
  69. package/examples/js/loaders/OBJLoader.js +9 -5
  70. package/examples/js/loaders/PCDLoader.js +24 -15
  71. package/examples/js/loaders/PDBLoader.js +11 -11
  72. package/examples/js/loaders/PLYLoader.js +5 -1
  73. package/examples/js/loaders/RGBELoader.js +9 -17
  74. package/examples/js/loaders/RGBMLoader.js +13 -16
  75. package/examples/js/loaders/STLLoader.js +1 -1
  76. package/examples/js/loaders/SVGLoader.js +21 -11
  77. package/examples/js/loaders/VOXLoader.js +3 -4
  78. package/examples/js/loaders/VRMLLoader.js +9 -21
  79. package/examples/js/loaders/VTKLoader.js +260 -295
  80. package/examples/js/loaders/lwo/LWO2Parser.js +4 -4
  81. package/examples/js/loaders/lwo/LWO3Parser.js +4 -4
  82. package/examples/js/math/ConvexHull.js +13 -28
  83. package/examples/js/math/Lut.js +27 -26
  84. package/examples/js/misc/MorphAnimMesh.js +2 -2
  85. package/examples/js/misc/ProgressiveLightMap.js +1 -1
  86. package/examples/js/misc/Volume.js +39 -48
  87. package/examples/js/misc/VolumeSlice.js +21 -21
  88. package/examples/js/modifiers/CurveModifier.js +8 -7
  89. package/examples/js/modifiers/EdgeSplitModifier.js +0 -13
  90. package/examples/js/modifiers/SimplifyModifier.js +1 -18
  91. package/examples/js/modifiers/TessellateModifier.js +0 -7
  92. package/examples/js/objects/Lensflare.js +4 -4
  93. package/examples/js/objects/LightningStorm.js +4 -5
  94. package/examples/js/objects/MarchingCubes.js +6 -11
  95. package/examples/js/objects/Reflector.js +10 -16
  96. package/examples/js/objects/ReflectorForSSRPass.js +1 -11
  97. package/examples/js/objects/Refractor.js +10 -16
  98. package/examples/js/objects/ShadowMesh.js +1 -2
  99. package/examples/js/objects/Sky.js +1 -1
  100. package/examples/js/objects/Water.js +2 -15
  101. package/examples/js/objects/Water2.js +1 -1
  102. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +6 -10
  103. package/examples/js/postprocessing/AfterimagePass.js +2 -6
  104. package/examples/js/postprocessing/BloomPass.js +50 -19
  105. package/examples/js/postprocessing/DotScreenPass.js +1 -1
  106. package/examples/js/postprocessing/EffectComposer.js +1 -6
  107. package/examples/js/postprocessing/GlitchPass.js +4 -5
  108. package/examples/js/postprocessing/LUTPass.js +2 -2
  109. package/examples/js/postprocessing/OutlinePass.js +8 -17
  110. package/examples/js/postprocessing/SAOPass.js +2 -7
  111. package/examples/js/postprocessing/SMAAPass.js +2 -9
  112. package/examples/js/postprocessing/SSAARenderPass.js +1 -6
  113. package/examples/js/postprocessing/SSAOPass.js +9 -21
  114. package/examples/js/postprocessing/SSRPass.js +3 -8
  115. package/examples/js/postprocessing/SavePass.js +1 -5
  116. package/examples/js/postprocessing/TAARenderPass.js +4 -4
  117. package/examples/js/postprocessing/UnrealBloomPass.js +3 -12
  118. package/examples/js/renderers/CSS2DRenderer.js +20 -19
  119. package/examples/js/renderers/CSS3DRenderer.js +40 -36
  120. package/examples/js/renderers/Projector.js +97 -124
  121. package/examples/js/renderers/SVGRenderer.js +3 -4
  122. package/examples/js/shaders/BlendShader.js +2 -1
  123. package/examples/js/shaders/CopyShader.js +4 -3
  124. package/examples/js/shaders/DigitalGlitch.js +3 -3
  125. package/examples/js/shaders/FXAAShader.js +239 -1069
  126. package/examples/js/shaders/FreiChenShader.js +1 -1
  127. package/examples/js/shaders/HorizontalBlurShader.js +1 -1
  128. package/examples/js/shaders/HorizontalTiltShiftShader.js +1 -1
  129. package/examples/js/shaders/MMDToonShader.js +0 -1
  130. package/examples/js/shaders/SSAOShader.js +1 -1
  131. package/examples/js/shaders/SSRShader.js +3 -3
  132. package/examples/js/shaders/ToneMapShader.js +1 -1
  133. package/examples/js/utils/BufferGeometryUtils.js +282 -22
  134. package/examples/js/utils/GPUStatsPanel.js +1 -1
  135. package/examples/js/utils/LDrawUtils.js +182 -0
  136. package/examples/js/utils/SceneUtils.js +59 -0
  137. package/examples/js/utils/SkeletonUtils.js +1 -1
  138. package/examples/js/utils/UVsDebug.js +23 -33
  139. package/examples/jsm/animation/CCDIKSolver.js +3 -9
  140. package/examples/jsm/animation/MMDPhysics.js +2 -2
  141. package/examples/jsm/cameras/CinematicCamera.js +2 -5
  142. package/examples/jsm/{WebGL.js → capabilities/WebGL.js} +2 -2
  143. package/examples/jsm/{renderers/webgpu → capabilities}/WebGPU.js +7 -1
  144. package/examples/jsm/controls/ArcballControls.js +3 -1
  145. package/examples/jsm/controls/PointerLockControls.js +4 -2
  146. package/examples/jsm/controls/TrackballControls.js +1 -4
  147. package/examples/jsm/controls/TransformControls.js +6 -6
  148. package/examples/jsm/controls/experimental/CameraControls.js +2 -2
  149. package/examples/jsm/csm/CSMFrustum.js +1 -1
  150. package/examples/jsm/csm/CSMShader.js +51 -35
  151. package/examples/jsm/curves/CurveExtras.js +15 -17
  152. package/examples/jsm/effects/AnaglyphEffect.js +4 -4
  153. package/examples/jsm/effects/AsciiEffect.js +9 -22
  154. package/examples/jsm/exporters/ColladaExporter.js +31 -6
  155. package/examples/jsm/exporters/EXRExporter.js +507 -0
  156. package/examples/jsm/exporters/GLTFExporter.js +261 -103
  157. package/examples/jsm/exporters/KTX2Exporter.js +281 -0
  158. package/examples/jsm/exporters/MMDExporter.js +1 -1
  159. package/examples/jsm/exporters/OBJExporter.js +11 -18
  160. package/examples/jsm/exporters/PLYExporter.js +23 -21
  161. package/examples/jsm/exporters/USDZExporter.js +12 -0
  162. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  163. package/examples/jsm/geometries/DecalGeometry.js +0 -7
  164. package/examples/jsm/geometries/LightningStrike.js +2 -2
  165. package/examples/jsm/geometries/ParametricGeometries.js +3 -3
  166. package/examples/jsm/geometries/TextGeometry.js +13 -13
  167. package/examples/jsm/helpers/OctreeHelper.js +58 -0
  168. package/examples/jsm/helpers/VertexNormalsHelper.js +4 -25
  169. package/examples/jsm/helpers/VertexTangentsHelper.js +3 -15
  170. package/examples/jsm/helpers/ViewHelper.js +295 -0
  171. package/examples/jsm/interactive/HTMLMesh.js +268 -36
  172. package/examples/jsm/interactive/SelectionHelper.js +1 -1
  173. package/examples/jsm/libs/flow.module.js +947 -183
  174. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  175. package/examples/jsm/libs/lil-gui.module.min.js +2 -2
  176. package/examples/jsm/libs/mikktspace.module.js +128 -0
  177. package/examples/jsm/libs/opentype.module.js +14568 -0
  178. package/examples/jsm/lines/Line2.js +2 -2
  179. package/examples/jsm/lines/LineGeometry.js +11 -19
  180. package/examples/jsm/lines/LineMaterial.js +3 -3
  181. package/examples/jsm/lines/LineSegments2.js +210 -145
  182. package/examples/jsm/lines/LineSegmentsGeometry.js +3 -12
  183. package/examples/jsm/lines/Wireframe.js +3 -3
  184. package/examples/jsm/lines/WireframeGeometry2.js +2 -2
  185. package/examples/jsm/loaders/3DMLoader.js +3 -2
  186. package/examples/jsm/loaders/3MFLoader.js +21 -17
  187. package/examples/jsm/loaders/AMFLoader.js +1 -1
  188. package/examples/jsm/loaders/BasisTextureLoader.js +7 -0
  189. package/examples/jsm/loaders/ColladaLoader.js +40 -12
  190. package/examples/jsm/loaders/DDSLoader.js +21 -28
  191. package/examples/jsm/loaders/EXRLoader.js +309 -293
  192. package/examples/jsm/loaders/FBXLoader.js +11 -0
  193. package/examples/jsm/loaders/FontLoader.js +2 -2
  194. package/examples/jsm/loaders/GCodeLoader.js +0 -1
  195. package/examples/jsm/loaders/GLTFLoader.js +263 -68
  196. package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -4
  197. package/examples/jsm/loaders/KMZLoader.js +1 -1
  198. package/examples/jsm/loaders/KTX2Loader.js +1 -10
  199. package/examples/jsm/loaders/LDrawLoader.js +1335 -988
  200. package/examples/jsm/loaders/LUT3dlLoader.js +19 -14
  201. package/examples/jsm/loaders/LUTCubeLoader.js +5 -7
  202. package/examples/jsm/loaders/LWOLoader.js +5 -3
  203. package/examples/jsm/loaders/LogLuvLoader.js +2 -2
  204. package/examples/jsm/loaders/MD2Loader.js +5 -5
  205. package/examples/jsm/loaders/MMDLoader.js +21 -3
  206. package/examples/jsm/loaders/MTLLoader.js +11 -4
  207. package/examples/jsm/loaders/NRRDLoader.js +1 -2
  208. package/examples/jsm/loaders/OBJLoader.js +11 -7
  209. package/examples/jsm/loaders/PCDLoader.js +25 -17
  210. package/examples/jsm/loaders/PDBLoader.js +11 -11
  211. package/examples/jsm/loaders/PLYLoader.js +10 -2
  212. package/examples/jsm/loaders/RGBELoader.js +11 -20
  213. package/examples/jsm/loaders/RGBMLoader.js +15 -12
  214. package/examples/jsm/loaders/STLLoader.js +1 -1
  215. package/examples/jsm/loaders/SVGLoader.js +26 -11
  216. package/examples/jsm/loaders/TTFLoader.js +1 -1
  217. package/examples/jsm/loaders/VOXLoader.js +5 -5
  218. package/examples/jsm/loaders/VRMLLoader.js +9 -23
  219. package/examples/jsm/loaders/VTKLoader.js +256 -284
  220. package/examples/jsm/loaders/ifc/web-ifc-api.js +9 -8
  221. package/examples/jsm/loaders/lwo/LWO2Parser.js +4 -4
  222. package/examples/jsm/loaders/lwo/LWO3Parser.js +4 -4
  223. package/examples/jsm/math/ConvexHull.js +13 -28
  224. package/examples/jsm/math/Lut.js +35 -25
  225. package/examples/jsm/misc/MorphAnimMesh.js +2 -2
  226. package/examples/jsm/misc/ProgressiveLightMap.js +1 -1
  227. package/examples/jsm/misc/Volume.js +39 -46
  228. package/examples/jsm/misc/VolumeSlice.js +21 -21
  229. package/examples/jsm/modifiers/CurveModifier.js +9 -8
  230. package/examples/jsm/modifiers/EdgeSplitModifier.js +0 -13
  231. package/examples/jsm/modifiers/SimplifyModifier.js +1 -18
  232. package/examples/jsm/modifiers/TessellateModifier.js +0 -7
  233. package/examples/jsm/node-editor/NodeEditor.js +485 -163
  234. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +14 -0
  235. package/examples/jsm/node-editor/accessors/NormalEditor.js +9 -9
  236. package/examples/jsm/node-editor/accessors/PositionEditor.js +9 -9
  237. package/examples/jsm/node-editor/accessors/UVEditor.js +7 -8
  238. package/examples/jsm/node-editor/core/BaseNode.js +89 -0
  239. package/examples/jsm/node-editor/core/DataFile.js +59 -0
  240. package/examples/jsm/node-editor/core/FileEditor.js +20 -0
  241. package/examples/jsm/node-editor/core/FileURLEditor.js +29 -0
  242. package/examples/jsm/node-editor/display/BlendEditor.js +10 -9
  243. package/examples/jsm/node-editor/display/NormalMapEditor.js +49 -0
  244. package/examples/jsm/node-editor/examples/animate-uv.json +1 -1
  245. package/examples/jsm/node-editor/examples/fake-top-light.json +1 -1
  246. package/examples/jsm/node-editor/examples/matcap.json +1 -0
  247. package/examples/jsm/node-editor/examples/oscillator-color.json +1 -1
  248. package/examples/jsm/node-editor/examples/rim.json +1 -1
  249. package/examples/jsm/node-editor/inputs/ColorEditor.js +18 -13
  250. package/examples/jsm/node-editor/inputs/FloatEditor.js +8 -9
  251. package/examples/jsm/node-editor/inputs/SliderEditor.js +6 -7
  252. package/examples/jsm/node-editor/inputs/TextureEditor.js +155 -0
  253. package/examples/jsm/node-editor/inputs/Vector2Editor.js +9 -9
  254. package/examples/jsm/node-editor/inputs/Vector3Editor.js +11 -11
  255. package/examples/jsm/node-editor/inputs/Vector4Editor.js +12 -12
  256. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +87 -0
  257. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +102 -0
  258. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +31 -18
  259. package/examples/jsm/node-editor/math/AngleEditor.js +40 -0
  260. package/examples/jsm/node-editor/math/DotEditor.js +8 -9
  261. package/examples/jsm/node-editor/math/InvertEditor.js +8 -7
  262. package/examples/jsm/node-editor/math/LimiterEditor.js +28 -14
  263. package/examples/jsm/node-editor/math/NormalizeEditor.js +9 -7
  264. package/examples/jsm/node-editor/math/OperatorEditor.js +29 -16
  265. package/examples/jsm/node-editor/math/PowerEditor.js +20 -10
  266. package/examples/jsm/node-editor/math/TrigonometryEditor.js +15 -9
  267. package/examples/jsm/node-editor/procedural/CheckerEditor.js +7 -6
  268. package/examples/jsm/node-editor/scene/MeshEditor.js +99 -0
  269. package/examples/jsm/node-editor/scene/Object3DEditor.js +160 -0
  270. package/examples/jsm/node-editor/scene/PointsEditor.js +99 -0
  271. package/examples/jsm/node-editor/utils/JoinEditor.js +58 -0
  272. package/examples/jsm/node-editor/utils/OscillatorEditor.js +9 -8
  273. package/examples/jsm/node-editor/utils/PreviewEditor.js +166 -0
  274. package/examples/jsm/node-editor/utils/SplitEditor.js +39 -0
  275. package/examples/jsm/node-editor/utils/TimerEditor.js +7 -6
  276. package/examples/jsm/nodes/Nodes.js +283 -94
  277. package/examples/jsm/nodes/accessors/BufferNode.js +24 -0
  278. package/examples/jsm/nodes/accessors/CameraNode.js +27 -196
  279. package/examples/jsm/nodes/accessors/CubeTextureNode.js +103 -0
  280. package/examples/jsm/nodes/accessors/InstanceNode.js +58 -0
  281. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialNode.js +49 -11
  282. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialReferenceNode.js +0 -0
  283. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelNode.js +8 -0
  284. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelViewProjectionNode.js +0 -0
  285. package/examples/jsm/nodes/accessors/NormalNode.js +39 -99
  286. package/examples/jsm/{renderers/nodes → nodes}/accessors/Object3DNode.js +34 -17
  287. package/examples/jsm/{renderers/nodes → nodes}/accessors/PointUVNode.js +2 -2
  288. package/examples/jsm/nodes/accessors/PositionNode.js +41 -110
  289. package/examples/jsm/nodes/accessors/ReferenceNode.js +65 -0
  290. package/examples/jsm/nodes/accessors/ReflectNode.js +34 -121
  291. package/examples/jsm/nodes/accessors/SkinningNode.js +102 -0
  292. package/examples/jsm/nodes/accessors/StorageBufferNode.js +21 -0
  293. package/examples/jsm/nodes/accessors/TextureNode.js +100 -0
  294. package/examples/jsm/nodes/accessors/UVNode.js +17 -43
  295. package/examples/jsm/nodes/accessors/UserDataNode.js +23 -0
  296. package/examples/jsm/nodes/core/ArrayUniformNode.js +23 -0
  297. package/examples/jsm/nodes/core/AttributeNode.js +33 -30
  298. package/examples/jsm/{renderers/nodes → nodes}/core/BypassNode.js +2 -2
  299. package/examples/jsm/{renderers/nodes → nodes}/core/CodeNode.js +2 -30
  300. package/examples/jsm/nodes/core/ConstNode.js +10 -106
  301. package/examples/jsm/{renderers/nodes → nodes}/core/ContextNode.js +17 -3
  302. package/examples/jsm/nodes/core/ExpressionNode.js +24 -7
  303. package/examples/jsm/nodes/core/FunctionCallNode.js +26 -67
  304. package/examples/jsm/nodes/core/FunctionNode.js +43 -216
  305. package/examples/jsm/nodes/core/InputNode.js +28 -60
  306. package/examples/jsm/nodes/core/InstanceIndexNode.js +21 -0
  307. package/examples/jsm/nodes/core/Node.js +228 -94
  308. package/examples/jsm/{renderers/nodes → nodes}/core/NodeAttribute.js +2 -2
  309. package/examples/jsm/nodes/core/NodeBuilder.js +388 -560
  310. package/examples/jsm/{renderers/nodes → nodes}/core/NodeCode.js +0 -0
  311. package/examples/jsm/nodes/core/NodeFrame.js +30 -23
  312. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunction.js +0 -0
  313. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunctionInput.js +0 -0
  314. package/examples/jsm/{renderers/nodes → nodes}/core/NodeKeywords.js +0 -0
  315. package/examples/jsm/{renderers/nodes → nodes}/core/NodeParser.js +0 -0
  316. package/examples/jsm/nodes/core/NodeUniform.js +8 -6
  317. package/examples/jsm/nodes/core/NodeUtils.js +69 -37
  318. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVar.js +2 -2
  319. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVary.js +2 -2
  320. package/examples/jsm/{renderers/nodes → nodes}/core/PropertyNode.js +0 -0
  321. package/examples/jsm/nodes/core/TempNode.js +20 -112
  322. package/examples/jsm/nodes/core/UniformNode.js +46 -0
  323. package/examples/jsm/nodes/core/VarNode.js +58 -27
  324. package/examples/jsm/{renderers/nodes → nodes}/core/VaryNode.js +0 -0
  325. package/examples/jsm/{renderers/nodes → nodes}/core/constants.js +0 -0
  326. package/examples/jsm/nodes/display/ColorSpaceNode.js +95 -0
  327. package/examples/jsm/nodes/display/FrontFacingNode.js +21 -0
  328. package/examples/jsm/nodes/display/NormalMapNode.js +86 -0
  329. package/examples/jsm/nodes/display/ToneMappingNode.js +51 -0
  330. package/examples/jsm/nodes/fog/FogNode.js +31 -0
  331. package/examples/jsm/nodes/fog/FogRangeNode.js +27 -0
  332. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +33 -0
  333. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +9 -0
  334. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +27 -0
  335. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +18 -0
  336. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +18 -0
  337. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +18 -0
  338. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +94 -0
  339. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +22 -0
  340. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +12 -0
  341. package/examples/jsm/nodes/functions/material/getRoughness.js +18 -0
  342. package/examples/jsm/nodes/gpgpu/ComputeNode.js +63 -0
  343. package/examples/jsm/nodes/lighting/AONode.js +25 -0
  344. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +37 -0
  345. package/examples/jsm/nodes/lighting/EnvironmentNode.js +65 -0
  346. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +50 -0
  347. package/examples/jsm/nodes/lighting/LightingContextNode.js +75 -0
  348. package/examples/jsm/nodes/lighting/LightingNode.js +19 -0
  349. package/examples/jsm/nodes/lighting/LightsNode.js +120 -0
  350. package/examples/jsm/nodes/lighting/PunctualLightNode.js +68 -0
  351. package/examples/jsm/nodes/loaders/NodeLoader.js +107 -0
  352. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +42 -0
  353. package/examples/jsm/nodes/loaders/NodeObjectLoader.js +70 -0
  354. package/examples/jsm/{renderers/nodes → nodes}/materials/LineBasicNodeMaterial.js +11 -4
  355. package/examples/jsm/nodes/materials/Materials.js +65 -0
  356. package/examples/jsm/{renderers/nodes → nodes}/materials/MeshBasicNodeMaterial.js +13 -4
  357. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +162 -22
  358. package/examples/jsm/nodes/materials/NodeMaterial.js +128 -113
  359. package/examples/jsm/{renderers/nodes → nodes}/materials/PointsNodeMaterial.js +13 -4
  360. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +84 -16
  361. package/examples/jsm/nodes/math/CondNode.js +26 -95
  362. package/examples/jsm/nodes/math/MathNode.js +164 -187
  363. package/examples/jsm/nodes/math/OperatorNode.js +161 -41
  364. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeFunction.js +2 -2
  365. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeParser.js +0 -0
  366. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeFunction.js +20 -5
  367. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeParser.js +0 -0
  368. package/examples/jsm/nodes/procedural/CheckerNode.js +16 -57
  369. package/examples/jsm/nodes/shadernode/ShaderNode.js +262 -0
  370. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +274 -0
  371. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +106 -0
  372. package/examples/jsm/{renderers/nodes → nodes}/utils/ArrayElementNode.js +3 -3
  373. package/examples/jsm/{renderers/nodes → nodes}/utils/ConvertNode.js +11 -3
  374. package/examples/jsm/nodes/utils/JoinNode.js +17 -89
  375. package/examples/jsm/nodes/utils/MatcapUVNode.js +25 -0
  376. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +32 -0
  377. package/examples/jsm/{renderers/nodes → nodes}/utils/OscNode.js +18 -2
  378. package/examples/jsm/{renderers/nodes → nodes}/utils/SplitNode.js +35 -4
  379. package/examples/jsm/{renderers/nodes → nodes}/utils/SpriteSheetUVNode.js +3 -3
  380. package/examples/jsm/nodes/utils/TimerNode.js +30 -65
  381. package/examples/jsm/objects/Lensflare.js +6 -6
  382. package/examples/jsm/objects/LightningStorm.js +4 -4
  383. package/examples/jsm/objects/MarchingCubes.js +5 -9
  384. package/examples/jsm/objects/Reflector.js +8 -19
  385. package/examples/jsm/objects/ReflectorForSSRPass.js +2 -14
  386. package/examples/jsm/objects/Refractor.js +8 -19
  387. package/examples/jsm/objects/ShadowMesh.js +2 -2
  388. package/examples/jsm/objects/Sky.js +2 -2
  389. package/examples/jsm/objects/Water.js +3 -18
  390. package/examples/jsm/objects/Water2.js +2 -2
  391. package/examples/jsm/offscreen/jank.js +5 -5
  392. package/examples/jsm/offscreen/offscreen.js +1 -1
  393. package/examples/jsm/offscreen/scene.js +11 -11
  394. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +5 -7
  395. package/examples/jsm/postprocessing/AfterimagePass.js +0 -10
  396. package/examples/jsm/postprocessing/BloomPass.js +48 -20
  397. package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
  398. package/examples/jsm/postprocessing/EffectComposer.js +1 -9
  399. package/examples/jsm/postprocessing/GlitchPass.js +7 -6
  400. package/examples/jsm/postprocessing/LUTPass.js +2 -2
  401. package/examples/jsm/postprocessing/OutlinePass.js +8 -15
  402. package/examples/jsm/postprocessing/SAOPass.js +2 -9
  403. package/examples/jsm/postprocessing/SMAAPass.js +2 -11
  404. package/examples/jsm/postprocessing/SSAARenderPass.js +1 -4
  405. package/examples/jsm/postprocessing/SSAOPass.js +13 -25
  406. package/examples/jsm/postprocessing/SSRPass.js +3 -9
  407. package/examples/jsm/postprocessing/SavePass.js +1 -3
  408. package/examples/jsm/postprocessing/TAARenderPass.js +4 -4
  409. package/examples/jsm/postprocessing/UnrealBloomPass.js +3 -8
  410. package/examples/jsm/renderers/CSS2DRenderer.js +21 -19
  411. package/examples/jsm/renderers/CSS3DRenderer.js +39 -34
  412. package/examples/jsm/renderers/Projector.js +101 -128
  413. package/examples/jsm/renderers/SVGRenderer.js +4 -4
  414. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +1 -1
  415. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +127 -23
  416. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +14 -3
  417. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +5 -5
  418. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +4 -4
  419. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +16 -10
  420. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +8 -7
  421. package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +43 -0
  422. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +14 -7
  423. package/examples/jsm/renderers/webgpu/WebGPUInfo.js +1 -1
  424. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -6
  425. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +20 -20
  426. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +2 -1
  427. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +66 -0
  428. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +49 -28
  429. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +14 -14
  430. package/examples/jsm/renderers/webgpu/WebGPUSampler.js +2 -2
  431. package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +5 -8
  432. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +23 -20
  433. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +38 -20
  434. package/examples/jsm/renderers/webgpu/WebGPUUniform.js +14 -14
  435. package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +5 -32
  436. package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +2 -2
  437. package/examples/jsm/renderers/webgpu/constants.js +3 -2
  438. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +276 -278
  439. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeSampledTexture.js +20 -2
  440. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +24 -14
  441. package/examples/jsm/shaders/BlendShader.js +2 -1
  442. package/examples/jsm/shaders/CopyShader.js +4 -3
  443. package/examples/jsm/shaders/DigitalGlitch.js +3 -3
  444. package/examples/jsm/shaders/FXAAShader.js +219 -1051
  445. package/examples/jsm/shaders/FreiChenShader.js +1 -1
  446. package/examples/jsm/shaders/HorizontalBlurShader.js +1 -1
  447. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +1 -1
  448. package/examples/jsm/shaders/MMDToonShader.js +0 -1
  449. package/examples/jsm/shaders/SSAOShader.js +1 -1
  450. package/examples/jsm/shaders/SSRShader.js +3 -3
  451. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  452. package/examples/jsm/utils/BufferGeometryUtils.js +292 -22
  453. package/examples/jsm/utils/GPUStatsPanel.js +1 -1
  454. package/examples/jsm/utils/LDrawUtils.js +202 -0
  455. package/examples/jsm/utils/SceneUtils.js +76 -2
  456. package/examples/jsm/utils/SkeletonUtils.js +1 -1
  457. package/examples/jsm/utils/UVsDebug.js +23 -32
  458. package/examples/jsm/webxr/ARButton.js +14 -4
  459. package/examples/jsm/webxr/OculusHandPointerModel.js +3 -3
  460. package/examples/jsm/webxr/Text2D.js +1 -1
  461. package/examples/jsm/webxr/VRButton.js +39 -1
  462. package/examples/jsm/webxr/XREstimatedLight.js +2 -0
  463. package/examples/jsm/webxr/XRHandMeshModel.js +3 -7
  464. package/examples/jsm/webxr/XRHandModelFactory.js +3 -0
  465. package/package.json +53 -25
  466. package/src/Three.Legacy.js +41 -1912
  467. package/src/Three.js +6 -3
  468. package/src/animation/AnimationClip.js +1 -1
  469. package/src/animation/AnimationMixer.js +6 -3
  470. package/src/animation/AnimationObjectGroup.js +2 -2
  471. package/src/animation/PropertyBinding.js +8 -18
  472. package/src/audio/PositionalAudio.js +8 -0
  473. package/src/cameras/ArrayCamera.js +2 -3
  474. package/src/cameras/Camera.js +2 -2
  475. package/src/cameras/CubeCamera.js +8 -1
  476. package/src/cameras/OrthographicCamera.js +2 -2
  477. package/src/cameras/PerspectiveCamera.js +2 -2
  478. package/src/constants.js +8 -18
  479. package/src/core/BufferAttribute.js +7 -12
  480. package/src/core/BufferGeometry.js +6 -6
  481. package/src/core/GLBufferAttribute.js +2 -2
  482. package/src/core/InstancedBufferAttribute.js +2 -2
  483. package/src/core/InstancedBufferGeometry.js +2 -2
  484. package/src/core/InstancedInterleavedBuffer.js +2 -2
  485. package/src/core/InterleavedBuffer.js +2 -2
  486. package/src/core/InterleavedBufferAttribute.js +5 -11
  487. package/src/core/Object3D.js +6 -3
  488. package/src/core/Raycaster.js +2 -2
  489. package/src/extras/DataUtils.js +127 -40
  490. package/src/extras/Earcut.js +2 -2
  491. package/src/extras/ImageUtils.js +63 -0
  492. package/src/extras/PMREMGenerator.js +152 -174
  493. package/src/extras/core/CurvePath.js +3 -3
  494. package/src/extras/core/ShapePath.js +5 -6
  495. package/src/extras/curves/ArcCurve.js +2 -2
  496. package/src/extras/curves/CatmullRomCurve3.js +2 -2
  497. package/src/extras/curves/CubicBezierCurve.js +2 -2
  498. package/src/extras/curves/CubicBezierCurve3.js +2 -2
  499. package/src/extras/curves/EllipseCurve.js +2 -2
  500. package/src/extras/curves/LineCurve.js +2 -2
  501. package/src/extras/curves/LineCurve3.js +2 -1
  502. package/src/extras/curves/QuadraticBezierCurve.js +2 -2
  503. package/src/extras/curves/QuadraticBezierCurve3.js +2 -2
  504. package/src/extras/curves/SplineCurve.js +2 -2
  505. package/src/geometries/CapsuleGeometry.js +33 -0
  506. package/src/geometries/ExtrudeGeometry.js +2 -0
  507. package/src/geometries/Geometries.js +1 -0
  508. package/src/geometries/LatheGeometry.js +1 -1
  509. package/src/geometries/TorusKnotGeometry.js +2 -2
  510. package/src/geometries/WireframeGeometry.js +3 -2
  511. package/src/helpers/BoxHelper.js +2 -2
  512. package/src/helpers/PointLightHelper.js +1 -1
  513. package/src/helpers/SkeletonHelper.js +3 -2
  514. package/src/lights/AmbientLight.js +2 -2
  515. package/src/lights/AmbientLightProbe.js +2 -2
  516. package/src/lights/DirectionalLight.js +2 -2
  517. package/src/lights/DirectionalLightShadow.js +2 -2
  518. package/src/lights/HemisphereLight.js +4 -4
  519. package/src/lights/HemisphereLightProbe.js +2 -2
  520. package/src/lights/Light.js +4 -4
  521. package/src/lights/LightProbe.js +2 -2
  522. package/src/lights/PointLight.js +4 -4
  523. package/src/lights/PointLightShadow.js +2 -2
  524. package/src/lights/RectAreaLight.js +2 -2
  525. package/src/lights/SpotLight.js +4 -4
  526. package/src/lights/SpotLightShadow.js +2 -2
  527. package/src/loaders/FileLoader.js +23 -4
  528. package/src/loaders/ImageBitmapLoader.js +2 -2
  529. package/src/loaders/ImageLoader.js +1 -1
  530. package/src/loaders/LoaderUtils.js +1 -1
  531. package/src/loaders/MaterialLoader.js +8 -3
  532. package/src/loaders/ObjectLoader.js +23 -25
  533. package/src/materials/LineBasicMaterial.js +6 -13
  534. package/src/materials/LineDashedMaterial.js +2 -15
  535. package/src/materials/Material.js +49 -15
  536. package/src/materials/Materials.js +66 -18
  537. package/src/materials/MeshBasicMaterial.js +6 -31
  538. package/src/materials/MeshDepthMaterial.js +2 -22
  539. package/src/materials/MeshDistanceMaterial.js +2 -22
  540. package/src/materials/MeshLambertMaterial.js +6 -34
  541. package/src/materials/MeshMatcapMaterial.js +6 -28
  542. package/src/materials/MeshNormalMaterial.js +2 -26
  543. package/src/materials/MeshPhongMaterial.js +6 -48
  544. package/src/materials/MeshPhysicalMaterial.js +32 -35
  545. package/src/materials/MeshStandardMaterial.js +6 -54
  546. package/src/materials/MeshToonMaterial.js +6 -38
  547. package/src/materials/PointsMaterial.js +6 -15
  548. package/src/materials/RawShaderMaterial.js +2 -2
  549. package/src/materials/ShaderMaterial.js +3 -17
  550. package/src/materials/ShadowMaterial.js +6 -8
  551. package/src/materials/SpriteMaterial.js +6 -12
  552. package/src/math/Box2.js +2 -2
  553. package/src/math/Box3.js +29 -15
  554. package/src/math/Color.js +85 -36
  555. package/src/math/ColorManagement.js +74 -0
  556. package/src/math/Euler.js +16 -14
  557. package/src/math/Interpolant.js +4 -9
  558. package/src/math/MathUtils.js +76 -7
  559. package/src/math/Matrix3.js +2 -2
  560. package/src/math/Matrix4.js +2 -3
  561. package/src/math/Plane.js +2 -2
  562. package/src/math/Quaternion.js +12 -3
  563. package/src/math/Spherical.js +1 -1
  564. package/src/math/SphericalHarmonics3.js +2 -2
  565. package/src/math/Vector2.js +2 -2
  566. package/src/math/Vector3.js +12 -3
  567. package/src/math/Vector4.js +2 -2
  568. package/src/math/interpolants/DiscreteInterpolant.js +1 -1
  569. package/src/objects/Bone.js +2 -2
  570. package/src/objects/Group.js +2 -2
  571. package/src/objects/InstancedMesh.js +4 -4
  572. package/src/objects/Line.js +76 -107
  573. package/src/objects/LineLoop.js +2 -2
  574. package/src/objects/LineSegments.js +15 -23
  575. package/src/objects/Mesh.js +82 -104
  576. package/src/objects/Points.js +32 -54
  577. package/src/objects/SkinnedMesh.js +5 -8
  578. package/src/objects/Sprite.js +4 -4
  579. package/src/renderers/WebGL3DRenderTarget.js +22 -0
  580. package/src/renderers/WebGLArrayRenderTarget.js +22 -0
  581. package/src/renderers/WebGLCubeRenderTarget.js +7 -16
  582. package/src/renderers/WebGLMultipleRenderTargets.js +8 -5
  583. package/src/renderers/WebGLRenderTarget.js +19 -18
  584. package/src/renderers/WebGLRenderer.js +112 -133
  585. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +46 -0
  586. package/src/renderers/shaders/ShaderChunk/common.glsl.js +1 -0
  587. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +12 -13
  588. package/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +1 -1
  589. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +0 -2
  590. package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -4
  591. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -2
  592. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +3 -19
  593. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +107 -0
  594. package/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js +14 -0
  595. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -7
  596. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +25 -0
  597. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -7
  598. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +25 -2
  599. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +43 -5
  600. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +10 -3
  601. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +1 -2
  602. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +24 -0
  603. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +1 -1
  604. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +7 -7
  605. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +1 -9
  606. package/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +16 -31
  607. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +9 -8
  608. package/src/renderers/shaders/ShaderChunk.js +6 -0
  609. package/src/renderers/shaders/ShaderLib/background.glsl.js +8 -2
  610. package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -3
  611. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +1 -0
  612. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +3 -2
  613. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +1 -0
  614. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +2 -2
  615. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +6 -0
  616. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +1 -0
  617. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +10 -0
  618. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +1 -0
  619. package/src/renderers/shaders/ShaderLib/points.glsl.js +1 -0
  620. package/src/renderers/shaders/ShaderLib.js +8 -2
  621. package/src/renderers/shaders/UniformsLib.js +2 -2
  622. package/src/renderers/webgl/WebGLAttributes.js +6 -6
  623. package/src/renderers/webgl/WebGLBackground.js +5 -2
  624. package/src/renderers/webgl/WebGLBindingStates.js +57 -29
  625. package/src/renderers/webgl/WebGLCubeMaps.js +0 -4
  626. package/src/renderers/webgl/WebGLCubeUVMaps.js +29 -16
  627. package/src/renderers/webgl/WebGLGeometries.js +2 -2
  628. package/src/renderers/webgl/WebGLLights.js +0 -1
  629. package/src/renderers/webgl/WebGLMaterials.js +72 -187
  630. package/src/renderers/webgl/WebGLMorphtargets.js +59 -23
  631. package/src/renderers/webgl/WebGLProgram.js +56 -30
  632. package/src/renderers/webgl/WebGLPrograms.js +80 -130
  633. package/src/renderers/webgl/WebGLShaderCache.js +4 -3
  634. package/src/renderers/webgl/WebGLShadowMap.js +6 -8
  635. package/src/renderers/webgl/WebGLState.js +83 -2
  636. package/src/renderers/webgl/WebGLTextures.js +618 -375
  637. package/src/renderers/webgl/WebGLUniforms.js +79 -80
  638. package/src/renderers/webgl/WebGLUtils.js +97 -30
  639. package/src/renderers/webxr/WebXRManager.js +64 -47
  640. package/src/scenes/Fog.js +2 -2
  641. package/src/scenes/FogExp2.js +2 -2
  642. package/src/scenes/Scene.js +2 -2
  643. package/src/textures/CanvasTexture.js +2 -2
  644. package/src/textures/CompressedTexture.js +2 -2
  645. package/src/textures/CubeTexture.js +2 -2
  646. package/src/textures/{DataTexture3D.js → Data3DTexture.js} +4 -4
  647. package/src/textures/{DataTexture2DArray.js → DataArrayTexture.js} +4 -4
  648. package/src/textures/DataTexture.js +2 -5
  649. package/src/textures/DepthTexture.js +5 -5
  650. package/src/textures/FramebufferTexture.js +2 -2
  651. package/src/textures/Source.js +123 -0
  652. package/src/textures/Texture.js +29 -98
  653. package/src/textures/VideoTexture.js +2 -4
  654. package/src/utils.js +15 -1
  655. package/examples/js/WebGL.js +0 -90
  656. package/examples/js/csm/Frustum.js +0 -133
  657. package/examples/js/deprecated/Geometry.js +0 -1656
  658. package/examples/js/loaders/VRMLoader.js +0 -72
  659. package/examples/js/objects/ReflectorRTT.js +0 -16
  660. package/examples/js/postprocessing/SSRrPass.js +0 -494
  661. package/examples/js/shaders/SSRrShader.js +0 -336
  662. package/examples/js/utils/RoughnessMipmapper.js +0 -268
  663. package/examples/jsm/deprecated/Geometry.js +0 -1869
  664. package/examples/jsm/libs/opentype.module.min.js +0 -119
  665. package/examples/jsm/loaders/NodeMaterialLoader.js +0 -263
  666. package/examples/jsm/loaders/VRMLoader.js +0 -78
  667. package/examples/jsm/nodes/accessors/ColorsNode.js +0 -56
  668. package/examples/jsm/nodes/accessors/LightNode.js +0 -60
  669. package/examples/jsm/nodes/accessors/ResolutionNode.js +0 -64
  670. package/examples/jsm/nodes/accessors/ScreenUVNode.js +0 -64
  671. package/examples/jsm/nodes/core/NodeLib.js +0 -64
  672. package/examples/jsm/nodes/core/StructNode.js +0 -106
  673. package/examples/jsm/nodes/effects/BlurNode.js +0 -171
  674. package/examples/jsm/nodes/effects/ColorAdjustmentNode.js +0 -140
  675. package/examples/jsm/nodes/effects/LuminanceNode.js +0 -75
  676. package/examples/jsm/nodes/inputs/BoolNode.js +0 -51
  677. package/examples/jsm/nodes/inputs/ColorNode.js +0 -58
  678. package/examples/jsm/nodes/inputs/CubeTextureNode.js +0 -108
  679. package/examples/jsm/nodes/inputs/FloatNode.js +0 -51
  680. package/examples/jsm/nodes/inputs/IntNode.js +0 -51
  681. package/examples/jsm/nodes/inputs/Matrix3Node.js +0 -63
  682. package/examples/jsm/nodes/inputs/Matrix4Node.js +0 -63
  683. package/examples/jsm/nodes/inputs/PropertyNode.js +0 -47
  684. package/examples/jsm/nodes/inputs/RTTNode.js +0 -157
  685. package/examples/jsm/nodes/inputs/ReflectorNode.js +0 -90
  686. package/examples/jsm/nodes/inputs/ScreenNode.js +0 -28
  687. package/examples/jsm/nodes/inputs/TextureNode.js +0 -116
  688. package/examples/jsm/nodes/inputs/Vector2Node.js +0 -57
  689. package/examples/jsm/nodes/inputs/Vector3Node.js +0 -58
  690. package/examples/jsm/nodes/inputs/Vector4Node.js +0 -59
  691. package/examples/jsm/nodes/materials/BasicNodeMaterial.js +0 -26
  692. package/examples/jsm/nodes/materials/PhongNodeMaterial.js +0 -36
  693. package/examples/jsm/nodes/materials/StandardNodeMaterial.js +0 -40
  694. package/examples/jsm/nodes/materials/nodes/BasicNode.js +0 -154
  695. package/examples/jsm/nodes/materials/nodes/MeshStandardNode.js +0 -116
  696. package/examples/jsm/nodes/materials/nodes/PhongNode.js +0 -409
  697. package/examples/jsm/nodes/materials/nodes/RawNode.js +0 -62
  698. package/examples/jsm/nodes/materials/nodes/SpriteNode.js +0 -236
  699. package/examples/jsm/nodes/materials/nodes/StandardNode.js +0 -609
  700. package/examples/jsm/nodes/misc/BumpMapNode.js +0 -163
  701. package/examples/jsm/nodes/misc/NormalMapNode.js +0 -138
  702. package/examples/jsm/nodes/misc/TextureCubeNode.js +0 -86
  703. package/examples/jsm/nodes/misc/TextureCubeUVNode.js +0 -280
  704. package/examples/jsm/nodes/postprocessing/NodePass.js +0 -93
  705. package/examples/jsm/nodes/postprocessing/NodePostProcessing.js +0 -148
  706. package/examples/jsm/nodes/procedural/Fractal3DNode.js +0 -104
  707. package/examples/jsm/nodes/procedural/Noise2DNode.js +0 -149
  708. package/examples/jsm/nodes/procedural/Noise3DNode.js +0 -141
  709. package/examples/jsm/nodes/utils/BypassNode.js +0 -85
  710. package/examples/jsm/nodes/utils/ColorSpaceNode.js +0 -154
  711. package/examples/jsm/nodes/utils/MaxMIPLevelNode.js +0 -56
  712. package/examples/jsm/nodes/utils/RemapNode.js +0 -155
  713. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -101
  714. package/examples/jsm/nodes/utils/SubSlotNode.js +0 -77
  715. package/examples/jsm/nodes/utils/SwitchNode.js +0 -103
  716. package/examples/jsm/nodes/utils/UVTransformNode.js +0 -66
  717. package/examples/jsm/nodes/utils/VelocityNode.js +0 -170
  718. package/examples/jsm/objects/ReflectorRTT.js +0 -15
  719. package/examples/jsm/postprocessing/SSRrPass.js +0 -579
  720. package/examples/jsm/renderers/nodes/Nodes.js +0 -164
  721. package/examples/jsm/renderers/nodes/ShaderNode.js +0 -346
  722. package/examples/jsm/renderers/nodes/accessors/CameraNode.js +0 -68
  723. package/examples/jsm/renderers/nodes/accessors/NormalNode.js +0 -63
  724. package/examples/jsm/renderers/nodes/accessors/PositionNode.js +0 -67
  725. package/examples/jsm/renderers/nodes/accessors/ReferenceNode.js +0 -91
  726. package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +0 -107
  727. package/examples/jsm/renderers/nodes/accessors/UVNode.js +0 -25
  728. package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +0 -23
  729. package/examples/jsm/renderers/nodes/core/AttributeNode.js +0 -54
  730. package/examples/jsm/renderers/nodes/core/ExpressionNode.js +0 -32
  731. package/examples/jsm/renderers/nodes/core/FunctionCallNode.js +0 -67
  732. package/examples/jsm/renderers/nodes/core/FunctionNode.js +0 -87
  733. package/examples/jsm/renderers/nodes/core/InputNode.js +0 -66
  734. package/examples/jsm/renderers/nodes/core/Node.js +0 -104
  735. package/examples/jsm/renderers/nodes/core/NodeBuilder.js +0 -633
  736. package/examples/jsm/renderers/nodes/core/NodeFrame.js +0 -59
  737. package/examples/jsm/renderers/nodes/core/NodeUniform.js +0 -28
  738. package/examples/jsm/renderers/nodes/core/TempNode.js +0 -43
  739. package/examples/jsm/renderers/nodes/core/VarNode.js +0 -51
  740. package/examples/jsm/renderers/nodes/display/ColorSpaceNode.js +0 -133
  741. package/examples/jsm/renderers/nodes/display/NormalMapNode.js +0 -87
  742. package/examples/jsm/renderers/nodes/functions/BSDFs.js +0 -122
  743. package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +0 -27
  744. package/examples/jsm/renderers/nodes/inputs/BufferNode.js +0 -25
  745. package/examples/jsm/renderers/nodes/inputs/ColorNode.js +0 -18
  746. package/examples/jsm/renderers/nodes/inputs/FloatNode.js +0 -17
  747. package/examples/jsm/renderers/nodes/inputs/IntNode.js +0 -17
  748. package/examples/jsm/renderers/nodes/inputs/Matrix3Node.js +0 -18
  749. package/examples/jsm/renderers/nodes/inputs/Matrix4Node.js +0 -18
  750. package/examples/jsm/renderers/nodes/inputs/TextureNode.js +0 -79
  751. package/examples/jsm/renderers/nodes/inputs/Vector2Node.js +0 -18
  752. package/examples/jsm/renderers/nodes/inputs/Vector3Node.js +0 -18
  753. package/examples/jsm/renderers/nodes/inputs/Vector4Node.js +0 -18
  754. package/examples/jsm/renderers/nodes/lights/LightContextNode.js +0 -59
  755. package/examples/jsm/renderers/nodes/lights/LightNode.js +0 -79
  756. package/examples/jsm/renderers/nodes/lights/LightsNode.js +0 -44
  757. package/examples/jsm/renderers/nodes/materials/Materials.js +0 -11
  758. package/examples/jsm/renderers/nodes/materials/MeshStandardNodeMaterial.js +0 -63
  759. package/examples/jsm/renderers/nodes/math/CondNode.js +0 -60
  760. package/examples/jsm/renderers/nodes/math/MathNode.js +0 -241
  761. package/examples/jsm/renderers/nodes/math/OperatorNode.js +0 -174
  762. package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +0 -36
  763. package/examples/jsm/renderers/nodes/utils/JoinNode.js +0 -42
  764. package/examples/jsm/renderers/nodes/utils/TimerNode.js +0 -47
  765. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -20
  766. package/examples/jsm/shaders/SSRrShader.js +0 -307
  767. package/examples/jsm/utils/RoughnessMipmapper.js +0 -288
  768. package/src/renderers/WebGLMultisampleRenderTarget.js +0 -33
@@ -109,9 +109,9 @@
109
109
 
110
110
  function reverseLutFromBitmap( bitmap, lut ) {
111
111
 
112
- var k = 0;
112
+ let k = 0;
113
113
 
114
- for ( var i = 0; i < USHORT_RANGE; ++ i ) {
114
+ for ( let i = 0; i < USHORT_RANGE; ++ i ) {
115
115
 
116
116
  if ( i == 0 || bitmap[ i >> 3 ] & 1 << ( i & 7 ) ) {
117
117
 
@@ -121,7 +121,7 @@
121
121
 
122
122
  }
123
123
 
124
- var n = k - 1;
124
+ const n = k - 1;
125
125
 
126
126
  while ( k < USHORT_RANGE ) lut[ k ++ ] = 0;
127
127
 
@@ -131,7 +131,7 @@
131
131
 
132
132
  function hufClearDecTable( hdec ) {
133
133
 
134
- for ( var i = 0; i < HUF_DECSIZE; i ++ ) {
134
+ for ( let i = 0; i < HUF_DECSIZE; i ++ ) {
135
135
 
136
136
  hdec[ i ] = {};
137
137
  hdec[ i ].len = 0;
@@ -168,40 +168,40 @@
168
168
 
169
169
  function hufCanonicalCodeTable( hcode ) {
170
170
 
171
- for ( var i = 0; i <= 58; ++ i ) hufTableBuffer[ i ] = 0;
171
+ for ( let i = 0; i <= 58; ++ i ) hufTableBuffer[ i ] = 0;
172
172
 
173
- for ( var i = 0; i < HUF_ENCSIZE; ++ i ) hufTableBuffer[ hcode[ i ] ] += 1;
173
+ for ( let i = 0; i < HUF_ENCSIZE; ++ i ) hufTableBuffer[ hcode[ i ] ] += 1;
174
174
 
175
- var c = 0;
175
+ let c = 0;
176
176
 
177
- for ( var i = 58; i > 0; -- i ) {
177
+ for ( let i = 58; i > 0; -- i ) {
178
178
 
179
- var nc = c + hufTableBuffer[ i ] >> 1;
179
+ const nc = c + hufTableBuffer[ i ] >> 1;
180
180
  hufTableBuffer[ i ] = c;
181
181
  c = nc;
182
182
 
183
183
  }
184
184
 
185
- for ( var i = 0; i < HUF_ENCSIZE; ++ i ) {
185
+ for ( let i = 0; i < HUF_ENCSIZE; ++ i ) {
186
186
 
187
- var l = hcode[ i ];
187
+ const l = hcode[ i ];
188
188
  if ( l > 0 ) hcode[ i ] = l | hufTableBuffer[ l ] ++ << 6;
189
189
 
190
190
  }
191
191
 
192
192
  }
193
193
 
194
- function hufUnpackEncTable( uInt8Array, inDataView, inOffset, ni, im, iM, hcode ) {
194
+ function hufUnpackEncTable( uInt8Array, inOffset, ni, im, iM, hcode ) {
195
195
 
196
- var p = inOffset;
197
- var c = 0;
198
- var lc = 0;
196
+ const p = inOffset;
197
+ let c = 0;
198
+ let lc = 0;
199
199
 
200
200
  for ( ; im <= iM; im ++ ) {
201
201
 
202
202
  if ( p.value - inOffset.value > ni ) return false;
203
203
  getBits( 6, c, lc, uInt8Array, p );
204
- var l = getBitsReturn.l;
204
+ const l = getBitsReturn.l;
205
205
  c = getBitsReturn.c;
206
206
  lc = getBitsReturn.lc;
207
207
  hcode[ im ] = l;
@@ -210,18 +210,18 @@
210
210
 
211
211
  if ( p.value - inOffset.value > ni ) {
212
212
 
213
- throw 'Something wrong with hufUnpackEncTable';
213
+ throw new Error( 'Something wrong with hufUnpackEncTable' );
214
214
 
215
215
  }
216
216
 
217
217
  getBits( 8, c, lc, uInt8Array, p );
218
- var zerun = getBitsReturn.l + SHORTEST_LONG_RUN;
218
+ let zerun = getBitsReturn.l + SHORTEST_LONG_RUN;
219
219
  c = getBitsReturn.c;
220
220
  lc = getBitsReturn.lc;
221
221
 
222
222
  if ( im + zerun > iM + 1 ) {
223
223
 
224
- throw 'Something wrong with hufUnpackEncTable';
224
+ throw new Error( 'Something wrong with hufUnpackEncTable' );
225
225
 
226
226
  }
227
227
 
@@ -231,11 +231,11 @@
231
231
 
232
232
  } else if ( l >= SHORT_ZEROCODE_RUN ) {
233
233
 
234
- var zerun = l - SHORT_ZEROCODE_RUN + 2;
234
+ let zerun = l - SHORT_ZEROCODE_RUN + 2;
235
235
 
236
236
  if ( im + zerun > iM + 1 ) {
237
237
 
238
- throw 'Something wrong with hufUnpackEncTable';
238
+ throw new Error( 'Something wrong with hufUnpackEncTable' );
239
239
 
240
240
  }
241
241
 
@@ -267,22 +267,22 @@
267
267
 
268
268
  for ( ; im <= iM; im ++ ) {
269
269
 
270
- var c = hufCode( hcode[ im ] );
271
- var l = hufLength( hcode[ im ] );
270
+ const c = hufCode( hcode[ im ] );
271
+ const l = hufLength( hcode[ im ] );
272
272
 
273
273
  if ( c >> l ) {
274
274
 
275
- throw 'Invalid table entry';
275
+ throw new Error( 'Invalid table entry' );
276
276
 
277
277
  }
278
278
 
279
279
  if ( l > HUF_DECBITS ) {
280
280
 
281
- var pl = hdecod[ c >> l - HUF_DECBITS ];
281
+ const pl = hdecod[ c >> l - HUF_DECBITS ];
282
282
 
283
283
  if ( pl.len ) {
284
284
 
285
- throw 'Invalid table entry';
285
+ throw new Error( 'Invalid table entry' );
286
286
 
287
287
  }
288
288
 
@@ -290,10 +290,10 @@
290
290
 
291
291
  if ( pl.p ) {
292
292
 
293
- var p = pl.p;
293
+ const p = pl.p;
294
294
  pl.p = new Array( pl.lit );
295
295
 
296
- for ( var i = 0; i < pl.lit - 1; ++ i ) {
296
+ for ( let i = 0; i < pl.lit - 1; ++ i ) {
297
297
 
298
298
  pl.p[ i ] = p[ i ];
299
299
 
@@ -309,15 +309,15 @@
309
309
 
310
310
  } else if ( l ) {
311
311
 
312
- var plOffset = 0;
312
+ let plOffset = 0;
313
313
 
314
- for ( var i = 1 << HUF_DECBITS - l; i > 0; i -- ) {
314
+ for ( let i = 1 << HUF_DECBITS - l; i > 0; i -- ) {
315
315
 
316
- var pl = hdecod[ ( c << HUF_DECBITS - l ) + plOffset ];
316
+ const pl = hdecod[ ( c << HUF_DECBITS - l ) + plOffset ];
317
317
 
318
318
  if ( pl.len || pl.p ) {
319
319
 
320
- throw 'Invalid table entry';
320
+ throw new Error( 'Invalid table entry' );
321
321
 
322
322
  }
323
323
 
@@ -354,7 +354,7 @@
354
354
  lc: 0
355
355
  };
356
356
 
357
- function getCode( po, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outBufferOffset, outBufferEndOffset ) {
357
+ function getCode( po, rlc, c, lc, uInt8Array, inOffset, outBuffer, outBufferOffset, outBufferEndOffset ) {
358
358
 
359
359
  if ( po == rlc ) {
360
360
 
@@ -367,8 +367,8 @@
367
367
  }
368
368
 
369
369
  lc -= 8;
370
- var cs = c >> lc;
371
- var cs = new Uint8Array( [ cs ] )[ 0 ];
370
+ let cs = c >> lc;
371
+ cs = new Uint8Array( [ cs ] )[ 0 ];
372
372
 
373
373
  if ( outBufferOffset.value + cs > outBufferEndOffset ) {
374
374
 
@@ -376,7 +376,7 @@
376
376
 
377
377
  }
378
378
 
379
- var s = outBuffer[ outBufferOffset.value - 1 ];
379
+ const s = outBuffer[ outBufferOffset.value - 1 ];
380
380
 
381
381
  while ( cs -- > 0 ) {
382
382
 
@@ -407,7 +407,7 @@
407
407
 
408
408
  function Int16( value ) {
409
409
 
410
- var ref = UInt16( value );
410
+ const ref = UInt16( value );
411
411
  return ref > 0x7FFF ? ref - 0x10000 : ref;
412
412
 
413
413
  }
@@ -419,12 +419,12 @@
419
419
 
420
420
  function wdec14( l, h ) {
421
421
 
422
- var ls = Int16( l );
423
- var hs = Int16( h );
424
- var hi = hs;
425
- var ai = ls + ( hi & 1 ) + ( hi >> 1 );
426
- var as = ai;
427
- var bs = ai - hi;
422
+ const ls = Int16( l );
423
+ const hs = Int16( h );
424
+ const hi = hs;
425
+ const ai = ls + ( hi & 1 ) + ( hi >> 1 );
426
+ const as = ai;
427
+ const bs = ai - hi;
428
428
  wdec14Return.a = as;
429
429
  wdec14Return.b = bs;
430
430
 
@@ -432,10 +432,10 @@
432
432
 
433
433
  function wdec16( l, h ) {
434
434
 
435
- var m = UInt16( l );
436
- var d = UInt16( h );
437
- var bb = m - ( d >> 1 ) & MOD_MASK;
438
- var aa = d + bb - A_OFFSET & MOD_MASK;
435
+ const m = UInt16( l );
436
+ const d = UInt16( h );
437
+ const bb = m - ( d >> 1 ) & MOD_MASK;
438
+ const aa = d + bb - A_OFFSET & MOD_MASK;
439
439
  wdec14Return.a = aa;
440
440
  wdec14Return.b = bb;
441
441
 
@@ -443,10 +443,11 @@
443
443
 
444
444
  function wav2Decode( buffer, j, nx, ox, ny, oy, mx ) {
445
445
 
446
- var w14 = mx < 1 << 14;
447
- var n = nx > ny ? ny : nx;
448
- var p = 1;
449
- var p2;
446
+ const w14 = mx < 1 << 14;
447
+ const n = nx > ny ? ny : nx;
448
+ let p = 1;
449
+ let p2;
450
+ let py;
450
451
 
451
452
  while ( p <= n ) p <<= 1;
452
453
 
@@ -456,24 +457,24 @@
456
457
 
457
458
  while ( p >= 1 ) {
458
459
 
459
- var py = 0;
460
- var ey = py + oy * ( ny - p2 );
461
- var oy1 = oy * p;
462
- var oy2 = oy * p2;
463
- var ox1 = ox * p;
464
- var ox2 = ox * p2;
465
- var i00, i01, i10, i11;
460
+ py = 0;
461
+ const ey = py + oy * ( ny - p2 );
462
+ const oy1 = oy * p;
463
+ const oy2 = oy * p2;
464
+ const ox1 = ox * p;
465
+ const ox2 = ox * p2;
466
+ let i00, i01, i10, i11;
466
467
 
467
468
  for ( ; py <= ey; py += oy2 ) {
468
469
 
469
- var px = py;
470
- var ex = py + ox * ( nx - p2 );
470
+ let px = py;
471
+ const ex = py + ox * ( nx - p2 );
471
472
 
472
473
  for ( ; px <= ex; px += ox2 ) {
473
474
 
474
- var p01 = px + ox1;
475
- var p10 = px + oy1;
476
- var p11 = p10 + ox1;
475
+ const p01 = px + ox1;
476
+ const p10 = px + oy1;
477
+ const p11 = p10 + ox1;
477
478
 
478
479
  if ( w14 ) {
479
480
 
@@ -511,7 +512,7 @@
511
512
 
512
513
  if ( nx & p ) {
513
514
 
514
- var p10 = px + oy1;
515
+ const p10 = px + oy1;
515
516
  if ( w14 ) wdec14( buffer[ px + j ], buffer[ p10 + j ] ); else wdec16( buffer[ px + j ], buffer[ p10 + j ] );
516
517
  i00 = wdec14Return.a;
517
518
  buffer[ p10 + j ] = wdec14Return.b;
@@ -523,12 +524,12 @@
523
524
 
524
525
  if ( ny & p ) {
525
526
 
526
- var px = py;
527
- var ex = py + ox * ( nx - p2 );
527
+ let px = py;
528
+ const ex = py + ox * ( nx - p2 );
528
529
 
529
530
  for ( ; px <= ex; px += ox2 ) {
530
531
 
531
- var p01 = px + ox1;
532
+ const p01 = px + ox1;
532
533
  if ( w14 ) wdec14( buffer[ px + j ], buffer[ p01 + j ] ); else wdec16( buffer[ px + j ], buffer[ p01 + j ] );
533
534
  i00 = wdec14Return.a;
534
535
  buffer[ p01 + j ] = wdec14Return.b;
@@ -547,12 +548,12 @@
547
548
 
548
549
  }
549
550
 
550
- function hufDecode( encodingTable, decodingTable, uInt8Array, inDataView, inOffset, ni, rlc, no, outBuffer, outOffset ) {
551
+ function hufDecode( encodingTable, decodingTable, uInt8Array, inOffset, ni, rlc, no, outBuffer, outOffset ) {
551
552
 
552
- var c = 0;
553
- var lc = 0;
554
- var outBufferEndOffset = no;
555
- var inOffsetEnd = Math.trunc( inOffset.value + ( ni + 7 ) / 8 );
553
+ let c = 0;
554
+ let lc = 0;
555
+ const outBufferEndOffset = no;
556
+ const inOffsetEnd = Math.trunc( inOffset.value + ( ni + 7 ) / 8 );
556
557
 
557
558
  while ( inOffset.value < inOffsetEnd ) {
558
559
 
@@ -562,13 +563,13 @@
562
563
 
563
564
  while ( lc >= HUF_DECBITS ) {
564
565
 
565
- var index = c >> lc - HUF_DECBITS & HUF_DECMASK;
566
- var pl = decodingTable[ index ];
566
+ const index = c >> lc - HUF_DECBITS & HUF_DECMASK;
567
+ const pl = decodingTable[ index ];
567
568
 
568
569
  if ( pl.len ) {
569
570
 
570
571
  lc -= pl.len;
571
- getCode( pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
572
+ getCode( pl.lit, rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset );
572
573
  c = getCodeReturn.c;
573
574
  lc = getCodeReturn.lc;
574
575
 
@@ -576,15 +577,15 @@
576
577
 
577
578
  if ( ! pl.p ) {
578
579
 
579
- throw 'hufDecode issues';
580
+ throw new Error( 'hufDecode issues' );
580
581
 
581
582
  }
582
583
 
583
- var j;
584
+ let j;
584
585
 
585
586
  for ( j = 0; j < pl.lit; j ++ ) {
586
587
 
587
- var l = hufLength( encodingTable[ pl.p[ j ] ] );
588
+ const l = hufLength( encodingTable[ pl.p[ j ] ] );
588
589
 
589
590
  while ( lc < l && inOffset.value < inOffsetEnd ) {
590
591
 
@@ -599,7 +600,7 @@
599
600
  if ( hufCode( encodingTable[ pl.p[ j ] ] ) == ( c >> lc - l & ( 1 << l ) - 1 ) ) {
600
601
 
601
602
  lc -= l;
602
- getCode( pl.p[ j ], rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
603
+ getCode( pl.p[ j ], rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset );
603
604
  c = getCodeReturn.c;
604
605
  lc = getCodeReturn.lc;
605
606
  break;
@@ -612,7 +613,7 @@
612
613
 
613
614
  if ( j == pl.lit ) {
614
615
 
615
- throw 'hufDecode issues';
616
+ throw new Error( 'hufDecode issues' );
616
617
 
617
618
  }
618
619
 
@@ -622,24 +623,24 @@
622
623
 
623
624
  }
624
625
 
625
- var i = 8 - ni & 7;
626
+ const i = 8 - ni & 7;
626
627
  c >>= i;
627
628
  lc -= i;
628
629
 
629
630
  while ( lc > 0 ) {
630
631
 
631
- var pl = decodingTable[ c << HUF_DECBITS - lc & HUF_DECMASK ];
632
+ const pl = decodingTable[ c << HUF_DECBITS - lc & HUF_DECMASK ];
632
633
 
633
634
  if ( pl.len ) {
634
635
 
635
636
  lc -= pl.len;
636
- getCode( pl.lit, rlc, c, lc, uInt8Array, inDataView, inOffset, outBuffer, outOffset, outBufferEndOffset );
637
+ getCode( pl.lit, rlc, c, lc, uInt8Array, inOffset, outBuffer, outOffset, outBufferEndOffset );
637
638
  c = getCodeReturn.c;
638
639
  lc = getCodeReturn.lc;
639
640
 
640
641
  } else {
641
642
 
642
- throw 'hufDecode issues';
643
+ throw new Error( 'hufDecode issues' );
643
644
 
644
645
  }
645
646
 
@@ -651,42 +652,42 @@
651
652
 
652
653
  function hufUncompress( uInt8Array, inDataView, inOffset, nCompressed, outBuffer, nRaw ) {
653
654
 
654
- var outOffset = {
655
+ const outOffset = {
655
656
  value: 0
656
657
  };
657
- var initialInOffset = inOffset.value;
658
- var im = parseUint32( inDataView, inOffset );
659
- var iM = parseUint32( inDataView, inOffset );
658
+ const initialInOffset = inOffset.value;
659
+ const im = parseUint32( inDataView, inOffset );
660
+ const iM = parseUint32( inDataView, inOffset );
660
661
  inOffset.value += 4;
661
- var nBits = parseUint32( inDataView, inOffset );
662
+ const nBits = parseUint32( inDataView, inOffset );
662
663
  inOffset.value += 4;
663
664
 
664
665
  if ( im < 0 || im >= HUF_ENCSIZE || iM < 0 || iM >= HUF_ENCSIZE ) {
665
666
 
666
- throw 'Something wrong with HUF_ENCSIZE';
667
+ throw new Error( 'Something wrong with HUF_ENCSIZE' );
667
668
 
668
669
  }
669
670
 
670
- var freq = new Array( HUF_ENCSIZE );
671
- var hdec = new Array( HUF_DECSIZE );
671
+ const freq = new Array( HUF_ENCSIZE );
672
+ const hdec = new Array( HUF_DECSIZE );
672
673
  hufClearDecTable( hdec );
673
- var ni = nCompressed - ( inOffset.value - initialInOffset );
674
- hufUnpackEncTable( uInt8Array, inDataView, inOffset, ni, im, iM, freq );
674
+ const ni = nCompressed - ( inOffset.value - initialInOffset );
675
+ hufUnpackEncTable( uInt8Array, inOffset, ni, im, iM, freq );
675
676
 
676
677
  if ( nBits > 8 * ( nCompressed - ( inOffset.value - initialInOffset ) ) ) {
677
678
 
678
- throw 'Something wrong with hufUncompress';
679
+ throw new Error( 'Something wrong with hufUncompress' );
679
680
 
680
681
  }
681
682
 
682
683
  hufBuildDecTable( freq, im, iM, hdec );
683
- hufDecode( freq, hdec, uInt8Array, inDataView, inOffset, nBits, iM, nRaw, outBuffer, outOffset );
684
+ hufDecode( freq, hdec, uInt8Array, inOffset, nBits, iM, nRaw, outBuffer, outOffset );
684
685
 
685
686
  }
686
687
 
687
688
  function applyLut( lut, data, nData ) {
688
689
 
689
- for ( var i = 0; i < nData; ++ i ) {
690
+ for ( let i = 0; i < nData; ++ i ) {
690
691
 
691
692
  data[ i ] = lut[ data[ i ] ];
692
693
 
@@ -696,9 +697,9 @@
696
697
 
697
698
  function predictor( source ) {
698
699
 
699
- for ( var t = 1; t < source.length; t ++ ) {
700
+ for ( let t = 1; t < source.length; t ++ ) {
700
701
 
701
- var d = source[ t - 1 ] + source[ t ] - 128;
702
+ const d = source[ t - 1 ] + source[ t ] - 128;
702
703
  source[ t ] = d;
703
704
 
704
705
  }
@@ -707,10 +708,10 @@
707
708
 
708
709
  function interleaveScalar( source, out ) {
709
710
 
710
- var t1 = 0;
711
- var t2 = Math.floor( ( source.length + 1 ) / 2 );
712
- var s = 0;
713
- var stop = source.length - 1;
711
+ let t1 = 0;
712
+ let t2 = Math.floor( ( source.length + 1 ) / 2 );
713
+ let s = 0;
714
+ const stop = source.length - 1;
714
715
 
715
716
  while ( true ) {
716
717
 
@@ -725,21 +726,21 @@
725
726
 
726
727
  function decodeRunLength( source ) {
727
728
 
728
- var size = source.byteLength;
729
- var out = new Array();
730
- var p = 0;
731
- var reader = new DataView( source );
729
+ let size = source.byteLength;
730
+ const out = new Array();
731
+ let p = 0;
732
+ const reader = new DataView( source );
732
733
 
733
734
  while ( size > 0 ) {
734
735
 
735
- var l = reader.getInt8( p ++ );
736
+ const l = reader.getInt8( p ++ );
736
737
 
737
738
  if ( l < 0 ) {
738
739
 
739
- var count = - l;
740
+ const count = - l;
740
741
  size -= count + 1;
741
742
 
742
- for ( var i = 0; i < count; i ++ ) {
743
+ for ( let i = 0; i < count; i ++ ) {
743
744
 
744
745
  out.push( reader.getUint8( p ++ ) );
745
746
 
@@ -747,11 +748,11 @@
747
748
 
748
749
  } else {
749
750
 
750
- var count = l;
751
+ const count = l;
751
752
  size -= 2;
752
- var value = reader.getUint8( p ++ );
753
+ const value = reader.getUint8( p ++ );
753
754
 
754
- for ( var i = 0; i < count + 1; i ++ ) {
755
+ for ( let i = 0; i < count + 1; i ++ ) {
755
756
 
756
757
  out.push( value );
757
758
 
@@ -767,23 +768,23 @@
767
768
 
768
769
  function lossyDctDecode( cscSet, rowPtrs, channelData, acBuffer, dcBuffer, outBuffer ) {
769
770
 
770
- var dataView = new DataView( outBuffer.buffer );
771
- var width = channelData[ cscSet.idx[ 0 ] ].width;
772
- var height = channelData[ cscSet.idx[ 0 ] ].height;
773
- var numComp = 3;
774
- var numFullBlocksX = Math.floor( width / 8.0 );
775
- var numBlocksX = Math.ceil( width / 8.0 );
776
- var numBlocksY = Math.ceil( height / 8.0 );
777
- var leftoverX = width - ( numBlocksX - 1 ) * 8;
778
- var leftoverY = height - ( numBlocksY - 1 ) * 8;
779
- var currAcComp = {
771
+ let dataView = new DataView( outBuffer.buffer );
772
+ const width = channelData[ cscSet.idx[ 0 ] ].width;
773
+ const height = channelData[ cscSet.idx[ 0 ] ].height;
774
+ const numComp = 3;
775
+ const numFullBlocksX = Math.floor( width / 8.0 );
776
+ const numBlocksX = Math.ceil( width / 8.0 );
777
+ const numBlocksY = Math.ceil( height / 8.0 );
778
+ const leftoverX = width - ( numBlocksX - 1 ) * 8;
779
+ const leftoverY = height - ( numBlocksY - 1 ) * 8;
780
+ const currAcComp = {
780
781
  value: 0
781
782
  };
782
- var currDcComp = new Array( numComp );
783
- var dctData = new Array( numComp );
784
- var halfZigBlock = new Array( numComp );
785
- var rowBlock = new Array( numComp );
786
- var rowOffsets = new Array( numComp );
783
+ const currDcComp = new Array( numComp );
784
+ const dctData = new Array( numComp );
785
+ const halfZigBlock = new Array( numComp );
786
+ const rowBlock = new Array( numComp );
787
+ const rowOffsets = new Array( numComp );
787
788
 
788
789
  for ( let comp = 0; comp < numComp; ++ comp ) {
789
790
 
@@ -797,9 +798,9 @@
797
798
 
798
799
  for ( let blocky = 0; blocky < numBlocksY; ++ blocky ) {
799
800
 
800
- var maxY = 8;
801
+ let maxY = 8;
801
802
  if ( blocky == numBlocksY - 1 ) maxY = leftoverY;
802
- var maxX = 8;
803
+ let maxX = 8;
803
804
 
804
805
  for ( let blockx = 0; blockx < numBlocksX; ++ blockx ) {
805
806
 
@@ -884,26 +885,26 @@
884
885
  } // blocky
885
886
 
886
887
 
887
- var halfRow = new Uint16Array( width );
888
- var dataView = new DataView( outBuffer.buffer ); // convert channels back to float, if needed
888
+ const halfRow = new Uint16Array( width );
889
+ dataView = new DataView( outBuffer.buffer ); // convert channels back to float, if needed
889
890
 
890
- for ( var comp = 0; comp < numComp; ++ comp ) {
891
+ for ( let comp = 0; comp < numComp; ++ comp ) {
891
892
 
892
893
  channelData[ cscSet.idx[ comp ] ].decoded = true;
893
- var type = channelData[ cscSet.idx[ comp ] ].type;
894
+ const type = channelData[ cscSet.idx[ comp ] ].type;
894
895
  if ( channelData[ comp ].type != 2 ) continue;
895
896
 
896
- for ( var y = 0; y < height; ++ y ) {
897
+ for ( let y = 0; y < height; ++ y ) {
897
898
 
898
899
  const offset = rowOffsets[ comp ][ y ];
899
900
 
900
- for ( var x = 0; x < width; ++ x ) {
901
+ for ( let x = 0; x < width; ++ x ) {
901
902
 
902
903
  halfRow[ x ] = dataView.getUint16( offset + x * INT16_SIZE * type, true );
903
904
 
904
905
  }
905
906
 
906
- for ( var x = 0; x < width; ++ x ) {
907
+ for ( let x = 0; x < width; ++ x ) {
907
908
 
908
909
  dataView.setFloat32( offset + x * INT16_SIZE * type, decodeFloat16( halfRow[ x ] ), true );
909
910
 
@@ -917,8 +918,8 @@
917
918
 
918
919
  function unRleAC( currAcComp, acBuffer, halfZigBlock ) {
919
920
 
920
- var acValue;
921
- var dctComp = 1;
921
+ let acValue;
922
+ let dctComp = 1;
922
923
 
923
924
  while ( dctComp < 64 ) {
924
925
 
@@ -1023,14 +1024,14 @@
1023
1024
  const e = 0.5 * Math.cos( 5.0 * 3.14159 / 16.0 );
1024
1025
  const f = 0.5 * Math.cos( 3.0 * 3.14159 / 8.0 );
1025
1026
  const g = 0.5 * Math.cos( 7.0 * 3.14159 / 16.0 );
1026
- var alpha = new Array( 4 );
1027
- var beta = new Array( 4 );
1028
- var theta = new Array( 4 );
1029
- var gamma = new Array( 4 );
1027
+ const alpha = new Array( 4 );
1028
+ const beta = new Array( 4 );
1029
+ const theta = new Array( 4 );
1030
+ const gamma = new Array( 4 );
1030
1031
 
1031
- for ( var row = 0; row < 8; ++ row ) {
1032
+ for ( let row = 0; row < 8; ++ row ) {
1032
1033
 
1033
- var rowPtr = row * 8;
1034
+ const rowPtr = row * 8;
1034
1035
  alpha[ 0 ] = c * data[ rowPtr + 2 ];
1035
1036
  alpha[ 1 ] = f * data[ rowPtr + 2 ];
1036
1037
  alpha[ 2 ] = c * data[ rowPtr + 6 ];
@@ -1058,7 +1059,7 @@
1058
1059
 
1059
1060
  }
1060
1061
 
1061
- for ( var column = 0; column < 8; ++ column ) {
1062
+ for ( let column = 0; column < 8; ++ column ) {
1062
1063
 
1063
1064
  alpha[ 0 ] = c * data[ 16 + column ];
1064
1065
  alpha[ 1 ] = f * data[ 16 + column ];
@@ -1091,11 +1092,11 @@
1091
1092
 
1092
1093
  function csc709Inverse( data ) {
1093
1094
 
1094
- for ( var i = 0; i < 64; ++ i ) {
1095
+ for ( let i = 0; i < 64; ++ i ) {
1095
1096
 
1096
- var y = data[ 0 ][ i ];
1097
- var cb = data[ 1 ][ i ];
1098
- var cr = data[ 2 ][ i ];
1097
+ const y = data[ 0 ][ i ];
1098
+ const cb = data[ 1 ][ i ];
1099
+ const cr = data[ 2 ][ i ];
1099
1100
  data[ 0 ][ i ] = y + 1.5747 * cr;
1100
1101
  data[ 1 ][ i ] = y - 0.1873 * cb - 0.4682 * cr;
1101
1102
  data[ 2 ][ i ] = y + 1.8556 * cb;
@@ -1106,7 +1107,7 @@
1106
1107
 
1107
1108
  function convertToHalf( src, dst, idx ) {
1108
1109
 
1109
- for ( var i = 0; i < 64; ++ i ) {
1110
+ for ( let i = 0; i < 64; ++ i ) {
1110
1111
 
1111
1112
  dst[ idx + i ] = THREE.DataUtils.toHalfFloat( toLinear( src[ i ] ) );
1112
1113
 
@@ -1136,9 +1137,9 @@
1136
1137
 
1137
1138
  function uncompressRLE( info ) {
1138
1139
 
1139
- var compressed = info.viewer.buffer.slice( info.offset.value, info.offset.value + info.size );
1140
- var rawBuffer = new Uint8Array( decodeRunLength( compressed ) );
1141
- var tmpBuffer = new Uint8Array( rawBuffer.length );
1140
+ const compressed = info.viewer.buffer.slice( info.offset.value, info.offset.value + info.size );
1141
+ const rawBuffer = new Uint8Array( decodeRunLength( compressed ) );
1142
+ const tmpBuffer = new Uint8Array( rawBuffer.length );
1142
1143
  predictor( rawBuffer ); // revert predictor
1143
1144
 
1144
1145
  interleaveScalar( rawBuffer, tmpBuffer ); // interleave pixels
@@ -1149,7 +1150,7 @@
1149
1150
 
1150
1151
  function uncompressZIP( info ) {
1151
1152
 
1152
- var compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1153
+ const compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1153
1154
 
1154
1155
  if ( typeof fflate === 'undefined' ) {
1155
1156
 
@@ -1157,9 +1158,9 @@
1157
1158
 
1158
1159
  }
1159
1160
 
1160
- var rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1161
+ const rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1161
1162
 
1162
- var tmpBuffer = new Uint8Array( rawBuffer.length );
1163
+ const tmpBuffer = new Uint8Array( rawBuffer.length );
1163
1164
  predictor( rawBuffer ); // revert predictor
1164
1165
 
1165
1166
  interleaveScalar( rawBuffer, tmpBuffer ); // interleave pixels
@@ -1170,17 +1171,17 @@
1170
1171
 
1171
1172
  function uncompressPIZ( info ) {
1172
1173
 
1173
- var inDataView = info.viewer;
1174
- var inOffset = {
1174
+ const inDataView = info.viewer;
1175
+ const inOffset = {
1175
1176
  value: info.offset.value
1176
1177
  };
1177
- var outBuffer = new Uint16Array( info.width * info.scanlineBlockSize * ( info.channels * info.type ) );
1178
- var bitmap = new Uint8Array( BITMAP_SIZE ); // Setup channel info
1178
+ const outBuffer = new Uint16Array( info.width * info.scanlineBlockSize * ( info.channels * info.type ) );
1179
+ const bitmap = new Uint8Array( BITMAP_SIZE ); // Setup channel info
1179
1180
 
1180
- var outBufferEnd = 0;
1181
- var pizChannelData = new Array( info.channels );
1181
+ let outBufferEnd = 0;
1182
+ const pizChannelData = new Array( info.channels );
1182
1183
 
1183
- for ( var i = 0; i < info.channels; i ++ ) {
1184
+ for ( let i = 0; i < info.channels; i ++ ) {
1184
1185
 
1185
1186
  pizChannelData[ i ] = {};
1186
1187
  pizChannelData[ i ][ 'start' ] = outBufferEnd;
@@ -1193,18 +1194,18 @@
1193
1194
  } // Read range compression data
1194
1195
 
1195
1196
 
1196
- var minNonZero = parseUint16( inDataView, inOffset );
1197
- var maxNonZero = parseUint16( inDataView, inOffset );
1197
+ const minNonZero = parseUint16( inDataView, inOffset );
1198
+ const maxNonZero = parseUint16( inDataView, inOffset );
1198
1199
 
1199
1200
  if ( maxNonZero >= BITMAP_SIZE ) {
1200
1201
 
1201
- throw 'Something is wrong with PIZ_COMPRESSION BITMAP_SIZE';
1202
+ throw new Error( 'Something is wrong with PIZ_COMPRESSION BITMAP_SIZE' );
1202
1203
 
1203
1204
  }
1204
1205
 
1205
1206
  if ( minNonZero <= maxNonZero ) {
1206
1207
 
1207
- for ( var i = 0; i < maxNonZero - minNonZero + 1; i ++ ) {
1208
+ for ( let i = 0; i < maxNonZero - minNonZero + 1; i ++ ) {
1208
1209
 
1209
1210
  bitmap[ i + minNonZero ] = parseUint8( inDataView, inOffset );
1210
1211
 
@@ -1213,17 +1214,17 @@
1213
1214
  } // Reverse LUT
1214
1215
 
1215
1216
 
1216
- var lut = new Uint16Array( USHORT_RANGE );
1217
- var maxValue = reverseLutFromBitmap( bitmap, lut );
1218
- var length = parseUint32( inDataView, inOffset ); // Huffman decoding
1217
+ const lut = new Uint16Array( USHORT_RANGE );
1218
+ const maxValue = reverseLutFromBitmap( bitmap, lut );
1219
+ const length = parseUint32( inDataView, inOffset ); // Huffman decoding
1219
1220
 
1220
1221
  hufUncompress( info.array, inDataView, inOffset, length, outBuffer, outBufferEnd ); // Wavelet decoding
1221
1222
 
1222
- for ( var i = 0; i < info.channels; ++ i ) {
1223
+ for ( let i = 0; i < info.channels; ++ i ) {
1223
1224
 
1224
- var cd = pizChannelData[ i ];
1225
+ const cd = pizChannelData[ i ];
1225
1226
 
1226
- for ( var j = 0; j < pizChannelData[ i ].size; ++ j ) {
1227
+ for ( let j = 0; j < pizChannelData[ i ].size; ++ j ) {
1227
1228
 
1228
1229
  wav2Decode( outBuffer, cd.start + j, cd.nx, cd.size, cd.ny, cd.nx * cd.size, maxValue );
1229
1230
 
@@ -1234,16 +1235,16 @@
1234
1235
 
1235
1236
  applyLut( lut, outBuffer, outBufferEnd ); // Rearrange the pixel data into the format expected by the caller.
1236
1237
 
1237
- var tmpOffset = 0;
1238
- var tmpBuffer = new Uint8Array( outBuffer.buffer.byteLength );
1238
+ let tmpOffset = 0;
1239
+ const tmpBuffer = new Uint8Array( outBuffer.buffer.byteLength );
1239
1240
 
1240
- for ( var y = 0; y < info.lines; y ++ ) {
1241
+ for ( let y = 0; y < info.lines; y ++ ) {
1241
1242
 
1242
- for ( var c = 0; c < info.channels; c ++ ) {
1243
+ for ( let c = 0; c < info.channels; c ++ ) {
1243
1244
 
1244
- var cd = pizChannelData[ c ];
1245
- var n = cd.nx * cd.size;
1246
- var cp = new Uint8Array( outBuffer.buffer, cd.end * INT16_SIZE, n * INT16_SIZE );
1245
+ const cd = pizChannelData[ c ];
1246
+ const n = cd.nx * cd.size;
1247
+ const cp = new Uint8Array( outBuffer.buffer, cd.end * INT16_SIZE, n * INT16_SIZE );
1247
1248
  tmpBuffer.set( cp, tmpOffset );
1248
1249
  tmpOffset += n * INT16_SIZE;
1249
1250
  cd.end += n;
@@ -1258,7 +1259,7 @@
1258
1259
 
1259
1260
  function uncompressPXR( info ) {
1260
1261
 
1261
- var compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1262
+ const compressed = info.array.slice( info.offset.value, info.offset.value + info.size );
1262
1263
 
1263
1264
  if ( typeof fflate === 'undefined' ) {
1264
1265
 
@@ -1266,7 +1267,7 @@
1266
1267
 
1267
1268
  }
1268
1269
 
1269
- var rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1270
+ const rawBuffer = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1270
1271
 
1271
1272
  const sz = info.lines * info.channels * info.width;
1272
1273
  const tmpBuffer = info.type == 1 ? new Uint16Array( sz ) : new Uint32Array( sz );
@@ -1327,13 +1328,13 @@
1327
1328
 
1328
1329
  function uncompressDWA( info ) {
1329
1330
 
1330
- var inDataView = info.viewer;
1331
- var inOffset = {
1331
+ const inDataView = info.viewer;
1332
+ const inOffset = {
1332
1333
  value: info.offset.value
1333
1334
  };
1334
- var outBuffer = new Uint8Array( info.width * info.lines * ( info.channels * info.type * INT16_SIZE ) ); // Read compression header information
1335
+ const outBuffer = new Uint8Array( info.width * info.lines * ( info.channels * info.type * INT16_SIZE ) ); // Read compression header information
1335
1336
 
1336
- var dwaHeader = {
1337
+ const dwaHeader = {
1337
1338
  version: parseInt64( inDataView, inOffset ),
1338
1339
  unknownUncompressedSize: parseInt64( inDataView, inOffset ),
1339
1340
  unknownCompressedSize: parseInt64( inDataView, inOffset ),
@@ -1346,19 +1347,19 @@
1346
1347
  totalDcUncompressedCount: parseInt64( inDataView, inOffset ),
1347
1348
  acCompression: parseInt64( inDataView, inOffset )
1348
1349
  };
1349
- if ( dwaHeader.version < 2 ) throw 'EXRLoader.parse: ' + EXRHeader.compression + ' version ' + dwaHeader.version + ' is unsupported'; // Read channel ruleset information
1350
+ if ( dwaHeader.version < 2 ) throw new Error( 'EXRLoader.parse: ' + EXRHeader.compression + ' version ' + dwaHeader.version + ' is unsupported' ); // Read channel ruleset information
1350
1351
 
1351
- var channelRules = new Array();
1352
- var ruleSize = parseUint16( inDataView, inOffset ) - INT16_SIZE;
1352
+ const channelRules = new Array();
1353
+ let ruleSize = parseUint16( inDataView, inOffset ) - INT16_SIZE;
1353
1354
 
1354
1355
  while ( ruleSize > 0 ) {
1355
1356
 
1356
- var name = parseNullTerminatedString( inDataView.buffer, inOffset );
1357
- var value = parseUint8( inDataView, inOffset );
1358
- var compression = value >> 2 & 3;
1359
- var csc = ( value >> 4 ) - 1;
1360
- var index = new Int8Array( [ csc ] )[ 0 ];
1361
- var type = parseUint8( inDataView, inOffset );
1357
+ const name = parseNullTerminatedString( inDataView.buffer, inOffset );
1358
+ const value = parseUint8( inDataView, inOffset );
1359
+ const compression = value >> 2 & 3;
1360
+ const csc = ( value >> 4 ) - 1;
1361
+ const index = new Int8Array( [ csc ] )[ 0 ];
1362
+ const type = parseUint8( inDataView, inOffset );
1362
1363
  channelRules.push( {
1363
1364
  name: name,
1364
1365
  index: index,
@@ -1370,13 +1371,13 @@
1370
1371
  } // Classify channels
1371
1372
 
1372
1373
 
1373
- var channels = EXRHeader.channels;
1374
- var channelData = new Array( info.channels );
1374
+ const channels = EXRHeader.channels;
1375
+ const channelData = new Array( info.channels );
1375
1376
 
1376
- for ( var i = 0; i < info.channels; ++ i ) {
1377
+ for ( let i = 0; i < info.channels; ++ i ) {
1377
1378
 
1378
- var cd = channelData[ i ] = {};
1379
- var channel = channels[ i ];
1379
+ const cd = channelData[ i ] = {};
1380
+ const channel = channels[ i ];
1380
1381
  cd.name = channel.name;
1381
1382
  cd.compression = UNKNOWN;
1382
1383
  cd.decoded = false;
@@ -1387,17 +1388,17 @@
1387
1388
 
1388
1389
  }
1389
1390
 
1390
- var cscSet = {
1391
+ const cscSet = {
1391
1392
  idx: new Array( 3 )
1392
1393
  };
1393
1394
 
1394
- for ( var offset = 0; offset < info.channels; ++ offset ) {
1395
+ for ( let offset = 0; offset < info.channels; ++ offset ) {
1395
1396
 
1396
- var cd = channelData[ offset ];
1397
+ const cd = channelData[ offset ];
1397
1398
 
1398
- for ( var i = 0; i < channelRules.length; ++ i ) {
1399
+ for ( let i = 0; i < channelRules.length; ++ i ) {
1399
1400
 
1400
- var rule = channelRules[ i ];
1401
+ const rule = channelRules[ i ];
1401
1402
 
1402
1403
  if ( cd.name == rule.name ) {
1403
1404
 
@@ -1415,23 +1416,24 @@
1415
1416
 
1416
1417
  }
1417
1418
 
1418
- } // Read DCT - AC component data
1419
+ }
1419
1420
 
1421
+ let acBuffer, dcBuffer, rleBuffer; // Read DCT - AC component data
1420
1422
 
1421
1423
  if ( dwaHeader.acCompressedSize > 0 ) {
1422
1424
 
1423
1425
  switch ( dwaHeader.acCompression ) {
1424
1426
 
1425
1427
  case STATIC_HUFFMAN:
1426
- var acBuffer = new Uint16Array( dwaHeader.totalAcUncompressedCount );
1428
+ acBuffer = new Uint16Array( dwaHeader.totalAcUncompressedCount );
1427
1429
  hufUncompress( info.array, inDataView, inOffset, dwaHeader.acCompressedSize, acBuffer, dwaHeader.totalAcUncompressedCount );
1428
1430
  break;
1429
1431
 
1430
1432
  case DEFLATE:
1431
- var compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.totalAcUncompressedCount );
1432
- var data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1433
+ const compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.totalAcUncompressedCount );
1434
+ const data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1433
1435
 
1434
- var acBuffer = new Uint16Array( data.buffer );
1436
+ acBuffer = new Uint16Array( data.buffer );
1435
1437
  inOffset.value += dwaHeader.totalAcUncompressedCount;
1436
1438
  break;
1437
1439
 
@@ -1442,12 +1444,12 @@
1442
1444
 
1443
1445
  if ( dwaHeader.dcCompressedSize > 0 ) {
1444
1446
 
1445
- var zlibInfo = {
1447
+ const zlibInfo = {
1446
1448
  array: info.array,
1447
1449
  offset: inOffset,
1448
1450
  size: dwaHeader.dcCompressedSize
1449
1451
  };
1450
- var dcBuffer = new Uint16Array( uncompressZIP( zlibInfo ).buffer );
1452
+ dcBuffer = new Uint16Array( uncompressZIP( zlibInfo ).buffer );
1451
1453
  inOffset.value += dwaHeader.dcCompressedSize;
1452
1454
 
1453
1455
  } // Read RLE compressed data
@@ -1455,27 +1457,27 @@
1455
1457
 
1456
1458
  if ( dwaHeader.rleRawSize > 0 ) {
1457
1459
 
1458
- var compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.rleCompressedSize );
1459
- var data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1460
+ const compressed = info.array.slice( inOffset.value, inOffset.value + dwaHeader.rleCompressedSize );
1461
+ const data = fflate.unzlibSync( compressed ); // eslint-disable-line no-undef
1460
1462
 
1461
- var rleBuffer = decodeRunLength( data.buffer );
1463
+ rleBuffer = decodeRunLength( data.buffer );
1462
1464
  inOffset.value += dwaHeader.rleCompressedSize;
1463
1465
 
1464
1466
  } // Prepare outbuffer data offset
1465
1467
 
1466
1468
 
1467
- var outBufferEnd = 0;
1468
- var rowOffsets = new Array( channelData.length );
1469
+ let outBufferEnd = 0;
1470
+ const rowOffsets = new Array( channelData.length );
1469
1471
 
1470
- for ( var i = 0; i < rowOffsets.length; ++ i ) {
1472
+ for ( let i = 0; i < rowOffsets.length; ++ i ) {
1471
1473
 
1472
1474
  rowOffsets[ i ] = new Array();
1473
1475
 
1474
1476
  }
1475
1477
 
1476
- for ( var y = 0; y < info.lines; ++ y ) {
1478
+ for ( let y = 0; y < info.lines; ++ y ) {
1477
1479
 
1478
- for ( var chan = 0; chan < channelData.length; ++ chan ) {
1480
+ for ( let chan = 0; chan < channelData.length; ++ chan ) {
1479
1481
 
1480
1482
  rowOffsets[ chan ].push( outBufferEnd );
1481
1483
  outBufferEnd += channelData[ chan ].width * info.type * INT16_SIZE;
@@ -1487,24 +1489,24 @@
1487
1489
 
1488
1490
  lossyDctDecode( cscSet, rowOffsets, channelData, acBuffer, dcBuffer, outBuffer ); // Decode other channels
1489
1491
 
1490
- for ( var i = 0; i < channelData.length; ++ i ) {
1492
+ for ( let i = 0; i < channelData.length; ++ i ) {
1491
1493
 
1492
- var cd = channelData[ i ];
1494
+ const cd = channelData[ i ];
1493
1495
  if ( cd.decoded ) continue;
1494
1496
 
1495
1497
  switch ( cd.compression ) {
1496
1498
 
1497
1499
  case RLE:
1498
- var row = 0;
1499
- var rleOffset = 0;
1500
+ let row = 0;
1501
+ let rleOffset = 0;
1500
1502
 
1501
- for ( var y = 0; y < info.lines; ++ y ) {
1503
+ for ( let y = 0; y < info.lines; ++ y ) {
1502
1504
 
1503
- var rowOffsetBytes = rowOffsets[ i ][ row ];
1505
+ let rowOffsetBytes = rowOffsets[ i ][ row ];
1504
1506
 
1505
- for ( var x = 0; x < cd.width; ++ x ) {
1507
+ for ( let x = 0; x < cd.width; ++ x ) {
1506
1508
 
1507
- for ( var byte = 0; byte < INT16_SIZE * cd.type; ++ byte ) {
1509
+ for ( let byte = 0; byte < INT16_SIZE * cd.type; ++ byte ) {
1508
1510
 
1509
1511
  outBuffer[ rowOffsetBytes ++ ] = rleBuffer[ rleOffset + byte * cd.width * cd.height ];
1510
1512
 
@@ -1523,7 +1525,7 @@
1523
1525
  case LOSSY_DCT: // skip
1524
1526
 
1525
1527
  default:
1526
- throw 'EXRLoader.parse: unsupported channel compression';
1528
+ throw new Error( 'EXRLoader.parse: unsupported channel compression' );
1527
1529
 
1528
1530
  }
1529
1531
 
@@ -1535,8 +1537,8 @@
1535
1537
 
1536
1538
  function parseNullTerminatedString( buffer, offset ) {
1537
1539
 
1538
- var uintBuffer = new Uint8Array( buffer );
1539
- var endOffset = 0;
1540
+ const uintBuffer = new Uint8Array( buffer );
1541
+ let endOffset = 0;
1540
1542
 
1541
1543
  while ( uintBuffer[ offset.value + endOffset ] != 0 ) {
1542
1544
 
@@ -1544,7 +1546,7 @@
1544
1546
 
1545
1547
  }
1546
1548
 
1547
- var stringValue = new TextDecoder().decode( uintBuffer.slice( offset.value, offset.value + endOffset ) );
1549
+ const stringValue = new TextDecoder().decode( uintBuffer.slice( offset.value, offset.value + endOffset ) );
1548
1550
  offset.value = offset.value + endOffset + 1;
1549
1551
  return stringValue;
1550
1552
 
@@ -1552,7 +1554,7 @@
1552
1554
 
1553
1555
  function parseFixedLengthString( buffer, offset, size ) {
1554
1556
 
1555
- var stringValue = new TextDecoder().decode( new Uint8Array( buffer ).slice( offset.value, offset.value + size ) );
1557
+ const stringValue = new TextDecoder().decode( new Uint8Array( buffer ).slice( offset.value, offset.value + size ) );
1556
1558
  offset.value = offset.value + size;
1557
1559
  return stringValue;
1558
1560
 
@@ -1560,23 +1562,23 @@
1560
1562
 
1561
1563
  function parseRational( dataView, offset ) {
1562
1564
 
1563
- var x = parseInt32( dataView, offset );
1564
- var y = parseUint32( dataView, offset );
1565
+ const x = parseInt32( dataView, offset );
1566
+ const y = parseUint32( dataView, offset );
1565
1567
  return [ x, y ];
1566
1568
 
1567
1569
  }
1568
1570
 
1569
1571
  function parseTimecode( dataView, offset ) {
1570
1572
 
1571
- var x = parseUint32( dataView, offset );
1572
- var y = parseUint32( dataView, offset );
1573
+ const x = parseUint32( dataView, offset );
1574
+ const y = parseUint32( dataView, offset );
1573
1575
  return [ x, y ];
1574
1576
 
1575
1577
  }
1576
1578
 
1577
1579
  function parseInt32( dataView, offset ) {
1578
1580
 
1579
- var Int32 = dataView.getInt32( offset.value, true );
1581
+ const Int32 = dataView.getInt32( offset.value, true );
1580
1582
  offset.value = offset.value + INT32_SIZE;
1581
1583
  return Int32;
1582
1584
 
@@ -1584,7 +1586,7 @@
1584
1586
 
1585
1587
  function parseUint32( dataView, offset ) {
1586
1588
 
1587
- var Uint32 = dataView.getUint32( offset.value, true );
1589
+ const Uint32 = dataView.getUint32( offset.value, true );
1588
1590
  offset.value = offset.value + INT32_SIZE;
1589
1591
  return Uint32;
1590
1592
 
@@ -1592,7 +1594,7 @@
1592
1594
 
1593
1595
  function parseUint8Array( uInt8Array, offset ) {
1594
1596
 
1595
- var Uint8 = uInt8Array[ offset.value ];
1597
+ const Uint8 = uInt8Array[ offset.value ];
1596
1598
  offset.value = offset.value + INT8_SIZE;
1597
1599
  return Uint8;
1598
1600
 
@@ -1600,23 +1602,34 @@
1600
1602
 
1601
1603
  function parseUint8( dataView, offset ) {
1602
1604
 
1603
- var Uint8 = dataView.getUint8( offset.value );
1605
+ const Uint8 = dataView.getUint8( offset.value );
1604
1606
  offset.value = offset.value + INT8_SIZE;
1605
1607
  return Uint8;
1606
1608
 
1607
1609
  }
1608
1610
 
1609
- function parseInt64( dataView, offset ) {
1611
+ const parseInt64 = function ( dataView, offset ) {
1612
+
1613
+ let int;
1614
+
1615
+ if ( 'getBigInt64' in DataView.prototype ) {
1616
+
1617
+ int = Number( dataView.getBigInt64( offset.value, true ) );
1618
+
1619
+ } else {
1620
+
1621
+ int = dataView.getUint32( offset.value + 4, true ) + Number( dataView.getUint32( offset.value, true ) << 32 );
1622
+
1623
+ }
1610
1624
 
1611
- var int = Number( dataView.getBigInt64( offset.value, true ) );
1612
1625
  offset.value += ULONG_SIZE;
1613
1626
  return int;
1614
1627
 
1615
- }
1628
+ };
1616
1629
 
1617
1630
  function parseFloat32( dataView, offset ) {
1618
1631
 
1619
- var float = dataView.getFloat32( offset.value, true );
1632
+ const float = dataView.getFloat32( offset.value, true );
1620
1633
  offset.value += FLOAT32_SIZE;
1621
1634
  return float;
1622
1635
 
@@ -1631,7 +1644,7 @@
1631
1644
 
1632
1645
  function decodeFloat16( binary ) {
1633
1646
 
1634
- var exponent = ( binary & 0x7C00 ) >> 10,
1647
+ const exponent = ( binary & 0x7C00 ) >> 10,
1635
1648
  fraction = binary & 0x03FF;
1636
1649
  return ( binary >> 15 ? - 1 : 1 ) * ( exponent ? exponent === 0x1F ? fraction ? NaN : Infinity : Math.pow( 2, exponent - 15 ) * ( 1 + fraction / 0x400 ) : 6.103515625e-5 * ( fraction / 0x400 ) );
1637
1650
 
@@ -1639,7 +1652,7 @@
1639
1652
 
1640
1653
  function parseUint16( dataView, offset ) {
1641
1654
 
1642
- var Uint16 = dataView.getUint16( offset.value, true );
1655
+ const Uint16 = dataView.getUint16( offset.value, true );
1643
1656
  offset.value += INT16_SIZE;
1644
1657
  return Uint16;
1645
1658
 
@@ -1653,18 +1666,18 @@
1653
1666
 
1654
1667
  function parseChlist( dataView, buffer, offset, size ) {
1655
1668
 
1656
- var startOffset = offset.value;
1657
- var channels = [];
1669
+ const startOffset = offset.value;
1670
+ const channels = [];
1658
1671
 
1659
1672
  while ( offset.value < startOffset + size - 1 ) {
1660
1673
 
1661
- var name = parseNullTerminatedString( buffer, offset );
1662
- var pixelType = parseInt32( dataView, offset );
1663
- var pLinear = parseUint8( dataView, offset );
1674
+ const name = parseNullTerminatedString( buffer, offset );
1675
+ const pixelType = parseInt32( dataView, offset );
1676
+ const pLinear = parseUint8( dataView, offset );
1664
1677
  offset.value += 3; // reserved, three chars
1665
1678
 
1666
- var xSampling = parseInt32( dataView, offset );
1667
- var ySampling = parseInt32( dataView, offset );
1679
+ const xSampling = parseInt32( dataView, offset );
1680
+ const ySampling = parseInt32( dataView, offset );
1668
1681
  channels.push( {
1669
1682
  name: name,
1670
1683
  pixelType: pixelType,
@@ -1682,14 +1695,14 @@
1682
1695
 
1683
1696
  function parseChromaticities( dataView, offset ) {
1684
1697
 
1685
- var redX = parseFloat32( dataView, offset );
1686
- var redY = parseFloat32( dataView, offset );
1687
- var greenX = parseFloat32( dataView, offset );
1688
- var greenY = parseFloat32( dataView, offset );
1689
- var blueX = parseFloat32( dataView, offset );
1690
- var blueY = parseFloat32( dataView, offset );
1691
- var whiteX = parseFloat32( dataView, offset );
1692
- var whiteY = parseFloat32( dataView, offset );
1698
+ const redX = parseFloat32( dataView, offset );
1699
+ const redY = parseFloat32( dataView, offset );
1700
+ const greenX = parseFloat32( dataView, offset );
1701
+ const greenY = parseFloat32( dataView, offset );
1702
+ const blueX = parseFloat32( dataView, offset );
1703
+ const blueY = parseFloat32( dataView, offset );
1704
+ const whiteX = parseFloat32( dataView, offset );
1705
+ const whiteY = parseFloat32( dataView, offset );
1693
1706
  return {
1694
1707
  redX: redX,
1695
1708
  redY: redY,
@@ -1705,18 +1718,18 @@
1705
1718
 
1706
1719
  function parseCompression( dataView, offset ) {
1707
1720
 
1708
- var compressionCodes = [ 'NO_COMPRESSION', 'RLE_COMPRESSION', 'ZIPS_COMPRESSION', 'ZIP_COMPRESSION', 'PIZ_COMPRESSION', 'PXR24_COMPRESSION', 'B44_COMPRESSION', 'B44A_COMPRESSION', 'DWAA_COMPRESSION', 'DWAB_COMPRESSION' ];
1709
- var compression = parseUint8( dataView, offset );
1721
+ const compressionCodes = [ 'NO_COMPRESSION', 'RLE_COMPRESSION', 'ZIPS_COMPRESSION', 'ZIP_COMPRESSION', 'PIZ_COMPRESSION', 'PXR24_COMPRESSION', 'B44_COMPRESSION', 'B44A_COMPRESSION', 'DWAA_COMPRESSION', 'DWAB_COMPRESSION' ];
1722
+ const compression = parseUint8( dataView, offset );
1710
1723
  return compressionCodes[ compression ];
1711
1724
 
1712
1725
  }
1713
1726
 
1714
1727
  function parseBox2i( dataView, offset ) {
1715
1728
 
1716
- var xMin = parseUint32( dataView, offset );
1717
- var yMin = parseUint32( dataView, offset );
1718
- var xMax = parseUint32( dataView, offset );
1719
- var yMax = parseUint32( dataView, offset );
1729
+ const xMin = parseUint32( dataView, offset );
1730
+ const yMin = parseUint32( dataView, offset );
1731
+ const xMax = parseUint32( dataView, offset );
1732
+ const yMax = parseUint32( dataView, offset );
1720
1733
  return {
1721
1734
  xMin: xMin,
1722
1735
  yMin: yMin,
@@ -1728,25 +1741,25 @@
1728
1741
 
1729
1742
  function parseLineOrder( dataView, offset ) {
1730
1743
 
1731
- var lineOrders = [ 'INCREASING_Y' ];
1732
- var lineOrder = parseUint8( dataView, offset );
1744
+ const lineOrders = [ 'INCREASING_Y' ];
1745
+ const lineOrder = parseUint8( dataView, offset );
1733
1746
  return lineOrders[ lineOrder ];
1734
1747
 
1735
1748
  }
1736
1749
 
1737
1750
  function parseV2f( dataView, offset ) {
1738
1751
 
1739
- var x = parseFloat32( dataView, offset );
1740
- var y = parseFloat32( dataView, offset );
1752
+ const x = parseFloat32( dataView, offset );
1753
+ const y = parseFloat32( dataView, offset );
1741
1754
  return [ x, y ];
1742
1755
 
1743
1756
  }
1744
1757
 
1745
1758
  function parseV3f( dataView, offset ) {
1746
1759
 
1747
- var x = parseFloat32( dataView, offset );
1748
- var y = parseFloat32( dataView, offset );
1749
- var z = parseFloat32( dataView, offset );
1760
+ const x = parseFloat32( dataView, offset );
1761
+ const y = parseFloat32( dataView, offset );
1762
+ const z = parseFloat32( dataView, offset );
1750
1763
  return [ x, y, z ];
1751
1764
 
1752
1765
  }
@@ -1818,25 +1831,31 @@
1818
1831
  function parseHeader( dataView, buffer, offset ) {
1819
1832
 
1820
1833
  const EXRHeader = {};
1821
- if ( dataView.getUint32( 0, true ) != 20000630 ) // magic
1822
- throw 'THREE.EXRLoader: provided file doesn\'t appear to be in OpenEXR format.';
1823
- EXRHeader.version = dataView.getUint8( 4, true );
1824
- const spec = dataView.getUint8( 5, true ); // fullMask
1834
+
1835
+ if ( dataView.getUint32( 0, true ) != 20000630 ) {
1836
+
1837
+ // magic
1838
+ throw new Error( 'THREE.EXRLoader: provided file doesn\'t appear to be in OpenEXR format.' );
1839
+
1840
+ }
1841
+
1842
+ EXRHeader.version = dataView.getUint8( 4 );
1843
+ const spec = dataView.getUint8( 5 ); // fullMask
1825
1844
 
1826
1845
  EXRHeader.spec = {
1827
- singleTile: !! ( spec & 1 ),
1828
- longName: !! ( spec & 2 ),
1829
- deepFormat: !! ( spec & 4 ),
1830
- multiPart: !! ( spec & 8 )
1846
+ singleTile: !! ( spec & 2 ),
1847
+ longName: !! ( spec & 4 ),
1848
+ deepFormat: !! ( spec & 8 ),
1849
+ multiPart: !! ( spec & 16 )
1831
1850
  }; // start of header
1832
1851
 
1833
1852
  offset.value = 8; // start at 8 - after pre-amble
1834
1853
 
1835
- var keepReading = true;
1854
+ let keepReading = true;
1836
1855
 
1837
1856
  while ( keepReading ) {
1838
1857
 
1839
- var attributeName = parseNullTerminatedString( buffer, offset );
1858
+ const attributeName = parseNullTerminatedString( buffer, offset );
1840
1859
 
1841
1860
  if ( attributeName == 0 ) {
1842
1861
 
@@ -1844,9 +1863,9 @@
1844
1863
 
1845
1864
  } else {
1846
1865
 
1847
- var attributeType = parseNullTerminatedString( buffer, offset );
1848
- var attributeSize = parseUint32( dataView, offset );
1849
- var attributeValue = parseValue( dataView, buffer, offset, attributeType, attributeSize );
1866
+ const attributeType = parseNullTerminatedString( buffer, offset );
1867
+ const attributeSize = parseUint32( dataView, offset );
1868
+ const attributeValue = parseValue( dataView, buffer, offset, attributeType, attributeSize );
1850
1869
 
1851
1870
  if ( attributeValue === undefined ) {
1852
1871
 
@@ -1862,10 +1881,11 @@
1862
1881
 
1863
1882
  }
1864
1883
 
1865
- if ( spec != 0 ) {
1884
+ if ( ( spec & ~ 0x04 ) != 0 ) {
1866
1885
 
1886
+ // unsupported tiled, deep-image, multi-part
1867
1887
  console.error( 'EXRHeader:', EXRHeader );
1868
- throw 'THREE.EXRLoader: provided file is currently unsupported.';
1888
+ throw new Error( 'THREE.EXRLoader: provided file is currently unsupported.' );
1869
1889
 
1870
1890
  }
1871
1891
 
@@ -1936,7 +1956,7 @@
1936
1956
  break;
1937
1957
 
1938
1958
  default:
1939
- throw 'EXRLoader.parse: ' + EXRHeader.compression + ' is unsupported';
1959
+ throw new Error( 'EXRLoader.parse: ' + EXRHeader.compression + ' is unsupported' );
1940
1960
 
1941
1961
  }
1942
1962
 
@@ -1977,13 +1997,13 @@
1977
1997
 
1978
1998
  } else {
1979
1999
 
1980
- throw 'EXRLoader.parse: unsupported pixelType ' + EXRDecoder.type + ' for ' + EXRHeader.compression + '.';
2000
+ throw new Error( 'EXRLoader.parse: unsupported pixelType ' + EXRDecoder.type + ' for ' + EXRHeader.compression + '.' );
1981
2001
 
1982
2002
  }
1983
2003
 
1984
2004
  EXRDecoder.blockCount = ( EXRHeader.dataWindow.yMax + 1 ) / EXRDecoder.scanlineBlockSize;
1985
2005
 
1986
- for ( var i = 0; i < EXRDecoder.blockCount; i ++ ) parseInt64( dataView, offset ); // scanlineOffset
2006
+ for ( let i = 0; i < EXRDecoder.blockCount; i ++ ) parseInt64( dataView, offset ); // scanlineOffset
1987
2007
  // we should be passed the scanline offset table, ready to start reading pixel data.
1988
2008
  // RGB images will be converted to RGBA format, preventing software emulation in select devices.
1989
2009