super-three 0.141.0 → 0.147.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. package/README.md +9 -9
  2. package/build/three.cjs +2441 -1569
  3. package/build/three.js +2441 -1569
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +2847 -1576
  6. package/examples/js/animation/AnimationClipCreator.js +0 -8
  7. package/examples/js/animation/CCDIKSolver.js +50 -67
  8. package/examples/js/animation/MMDAnimationHelper.js +66 -137
  9. package/examples/js/animation/MMDPhysics.js +71 -150
  10. package/examples/js/cameras/CinematicCamera.js +33 -22
  11. package/examples/js/controls/ArcballControls.js +149 -403
  12. package/examples/js/controls/DragControls.js +8 -33
  13. package/examples/js/controls/FirstPersonControls.js +32 -61
  14. package/examples/js/controls/FlyControls.js +29 -63
  15. package/examples/js/controls/OrbitControls.js +125 -103
  16. package/examples/js/controls/PointerLockControls.js +5 -22
  17. package/examples/js/controls/TrackballControls.js +33 -88
  18. package/examples/js/controls/TransformControls.js +101 -182
  19. package/examples/js/csm/CSM.js +4 -39
  20. package/examples/js/csm/CSMFrustum.js +3 -9
  21. package/examples/js/csm/CSMHelper.js +24 -4
  22. package/examples/js/csm/CSMShader.js +2 -6
  23. package/examples/js/curves/CurveExtras.js +27 -27
  24. package/examples/js/curves/NURBSCurve.js +4 -16
  25. package/examples/js/curves/NURBSSurface.js +3 -9
  26. package/examples/js/curves/NURBSUtils.js +8 -45
  27. package/examples/js/effects/AnaglyphEffect.js +6 -20
  28. package/examples/js/effects/AsciiEffect.js +32 -31
  29. package/examples/js/effects/OutlineEffect.js +30 -54
  30. package/examples/js/effects/ParallaxBarrierEffect.js +2 -15
  31. package/examples/js/effects/PeppersGhostEffect.js +14 -41
  32. package/examples/js/effects/StereoEffect.js +2 -6
  33. package/examples/js/environments/RoomEnvironment.js +32 -8
  34. package/examples/js/exporters/ColladaExporter.js +52 -78
  35. package/examples/js/exporters/DRACOExporter.js +22 -34
  36. package/examples/js/exporters/EXRExporter.js +15 -18
  37. package/examples/js/exporters/GLTFExporter.js +168 -345
  38. package/examples/js/exporters/MMDExporter.js +5 -12
  39. package/examples/js/exporters/OBJExporter.js +40 -52
  40. package/examples/js/exporters/PLYExporter.js +50 -57
  41. package/examples/js/exporters/STLExporter.js +5 -14
  42. package/examples/js/exporters/USDZExporter.js +119 -27
  43. package/examples/js/geometries/BoxLineGeometry.js +0 -1
  44. package/examples/js/geometries/ConvexGeometry.js +12 -7
  45. package/examples/js/geometries/DecalGeometry.js +53 -20
  46. package/examples/js/geometries/LightningStrike.js +54 -67
  47. package/examples/js/geometries/ParametricGeometries.js +8 -7
  48. package/examples/js/geometries/ParametricGeometry.js +23 -17
  49. package/examples/js/geometries/RoundedBoxGeometry.js +21 -19
  50. package/examples/js/geometries/TeapotGeometry.js +54 -50
  51. package/examples/js/geometries/TextGeometry.js +6 -4
  52. package/examples/js/helpers/LightProbeHelper.js +1 -2
  53. package/examples/js/helpers/OctreeHelper.js +22 -20
  54. package/examples/js/helpers/PositionalAudioHelper.js +8 -6
  55. package/examples/js/helpers/RectAreaLightHelper.js +6 -7
  56. package/examples/js/helpers/VertexNormalsHelper.js +15 -13
  57. package/examples/js/helpers/VertexTangentsHelper.js +15 -9
  58. package/examples/js/helpers/ViewHelper.js +31 -16
  59. package/examples/js/interactive/HTMLMesh.js +25 -39
  60. package/examples/js/interactive/InteractiveGroup.js +9 -14
  61. package/examples/js/interactive/SelectionBox.js +3 -70
  62. package/examples/js/interactive/SelectionHelper.js +2 -8
  63. package/examples/js/libs/ktx-parse.umd.js +1 -0
  64. package/examples/js/libs/meshopt_decoder.js +98 -32
  65. package/examples/js/lights/LightProbeGenerator.js +32 -39
  66. package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
  67. package/examples/js/lines/LineGeometry.js +3 -5
  68. package/examples/js/lines/LineMaterial.js +4 -11
  69. package/examples/js/lines/LineSegments2.js +40 -89
  70. package/examples/js/lines/LineSegmentsGeometry.js +7 -28
  71. package/examples/js/lines/Wireframe.js +2 -7
  72. package/examples/js/lines/WireframeGeometry2.js +3 -1
  73. package/examples/js/loaders/3DMLoader.js +58 -155
  74. package/examples/js/loaders/3MFLoader.js +72 -106
  75. package/examples/js/loaders/AMFLoader.js +0 -25
  76. package/examples/js/loaders/BVHLoader.js +44 -43
  77. package/examples/js/loaders/BasisTextureLoader.js +16 -46
  78. package/examples/js/loaders/ColladaLoader.js +229 -359
  79. package/examples/js/loaders/DDSLoader.js +24 -25
  80. package/examples/js/loaders/DRACOLoader.js +30 -90
  81. package/examples/js/loaders/EXRLoader.js +69 -177
  82. package/examples/js/loaders/FBXLoader.js +294 -441
  83. package/examples/js/loaders/FontLoader.js +9 -31
  84. package/examples/js/loaders/GCodeLoader.js +15 -16
  85. package/examples/js/loaders/GLTFLoader.js +458 -739
  86. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -17
  87. package/examples/js/loaders/KMZLoader.js +3 -7
  88. package/examples/js/loaders/KTXLoader.js +12 -30
  89. package/examples/js/loaders/LDrawLoader.js +309 -355
  90. package/examples/js/loaders/LUT3dlLoader.js +7 -11
  91. package/examples/js/loaders/LUTCubeLoader.js +0 -8
  92. package/examples/js/loaders/LWOLoader.js +59 -124
  93. package/examples/js/loaders/LogLuvLoader.js +27 -77
  94. package/examples/js/loaders/LottieLoader.js +4 -4
  95. package/examples/js/loaders/MD2Loader.js +26 -27
  96. package/examples/js/loaders/MDDLoader.js +6 -10
  97. package/examples/js/loaders/MMDLoader.js +180 -189
  98. package/examples/js/loaders/MTLLoader.js +18 -47
  99. package/examples/js/loaders/NRRDLoader.js +44 -84
  100. package/examples/js/loaders/OBJLoader.js +56 -77
  101. package/examples/js/loaders/PCDLoader.js +92 -42
  102. package/examples/js/loaders/PDBLoader.js +17 -13
  103. package/examples/js/loaders/PLYLoader.js +65 -51
  104. package/examples/js/loaders/PRWMLoader.js +11 -22
  105. package/examples/js/loaders/PVRLoader.js +7 -16
  106. package/examples/js/loaders/RGBELoader.js +36 -61
  107. package/examples/js/loaders/RGBMLoader.js +26 -87
  108. package/examples/js/loaders/STLLoader.js +20 -27
  109. package/examples/js/loaders/SVGLoader.js +365 -236
  110. package/examples/js/loaders/TDSLoader.js +81 -118
  111. package/examples/js/loaders/TGALoader.js +39 -41
  112. package/examples/js/loaders/TIFFLoader.js +30 -0
  113. package/examples/js/loaders/TTFLoader.js +0 -8
  114. package/examples/js/loaders/TiltLoader.js +14 -15
  115. package/examples/js/loaders/VOXLoader.js +8 -16
  116. package/examples/js/loaders/VRMLLoader.js +266 -354
  117. package/examples/js/loaders/VTKLoader.js +102 -119
  118. package/examples/js/loaders/XYZLoader.js +2 -4
  119. package/examples/js/loaders/lwo/IFFParser.js +55 -136
  120. package/examples/js/loaders/lwo/LWO2Parser.js +39 -89
  121. package/examples/js/loaders/lwo/LWO3Parser.js +38 -79
  122. package/examples/js/materials/MeshGouraudMaterial.js +387 -0
  123. package/examples/js/math/Capsule.js +0 -17
  124. package/examples/js/math/ColorConverter.js +3 -53
  125. package/examples/js/math/ConvexHull.js +185 -141
  126. package/examples/js/math/ImprovedNoise.js +1 -1
  127. package/examples/js/math/Lut.js +8 -15
  128. package/examples/js/math/MeshSurfaceSampler.js +6 -28
  129. package/examples/js/math/OBB.js +90 -49
  130. package/examples/js/math/Octree.js +2 -57
  131. package/examples/js/math/SimplexNoise.js +74 -88
  132. package/examples/js/misc/ConvexObjectBreaker.js +37 -48
  133. package/examples/js/misc/GPUComputationRenderer.js +47 -14
  134. package/examples/js/misc/Gyroscope.js +5 -9
  135. package/examples/js/misc/MD2Character.js +14 -23
  136. package/examples/js/misc/MD2CharacterComplex.js +73 -54
  137. package/examples/js/misc/MorphAnimMesh.js +0 -6
  138. package/examples/js/misc/MorphBlendMesh.js +3 -30
  139. package/examples/js/misc/ProgressiveLightMap.js +47 -43
  140. package/examples/js/misc/RollerCoaster.js +17 -24
  141. package/examples/js/misc/TubePainter.js +18 -12
  142. package/examples/js/misc/Volume.js +173 -194
  143. package/examples/js/misc/VolumeSlice.js +91 -99
  144. package/examples/js/modifiers/CurveModifier.js +19 -21
  145. package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
  146. package/examples/js/modifiers/SimplifyModifier.js +57 -60
  147. package/examples/js/modifiers/TessellateModifier.js +2 -9
  148. package/examples/js/objects/GroundProjectedEnv.js +181 -0
  149. package/examples/js/objects/Lensflare.js +47 -38
  150. package/examples/js/objects/LightningStorm.js +10 -13
  151. package/examples/js/objects/MarchingCubes.js +80 -59
  152. package/examples/js/objects/Reflector.js +31 -22
  153. package/examples/js/objects/ReflectorForSSRPass.js +20 -25
  154. package/examples/js/objects/Refractor.js +61 -33
  155. package/examples/js/objects/ShadowMesh.js +6 -3
  156. package/examples/js/objects/Sky.js +2 -7
  157. package/examples/js/objects/Water.js +23 -18
  158. package/examples/js/objects/Water2.js +20 -19
  159. package/examples/js/physics/AmmoPhysics.js +23 -20
  160. package/examples/js/physics/OimoPhysics.js +19 -17
  161. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
  162. package/examples/js/postprocessing/AfterimagePass.js +19 -12
  163. package/examples/js/postprocessing/BloomPass.js +38 -17
  164. package/examples/js/postprocessing/BokehPass.js +29 -12
  165. package/examples/js/postprocessing/ClearPass.js +1 -6
  166. package/examples/js/postprocessing/CubeTexturePass.js +12 -9
  167. package/examples/js/postprocessing/DotScreenPass.js +7 -5
  168. package/examples/js/postprocessing/EffectComposer.js +25 -32
  169. package/examples/js/postprocessing/FilmPass.js +7 -5
  170. package/examples/js/postprocessing/GlitchPass.js +10 -11
  171. package/examples/js/postprocessing/HalftonePass.js +9 -9
  172. package/examples/js/postprocessing/LUTPass.js +2 -15
  173. package/examples/js/postprocessing/MaskPass.js +20 -17
  174. package/examples/js/postprocessing/OutlinePass.js +49 -38
  175. package/examples/js/postprocessing/Pass.js +11 -14
  176. package/examples/js/postprocessing/RenderPass.js +3 -7
  177. package/examples/js/postprocessing/RenderPixelatedPass.js +215 -0
  178. package/examples/js/postprocessing/SAOPass.js +40 -32
  179. package/examples/js/postprocessing/SMAAPass.js +34 -17
  180. package/examples/js/postprocessing/SSAARenderPass.js +14 -14
  181. package/examples/js/postprocessing/SSAOPass.js +56 -42
  182. package/examples/js/postprocessing/SSRPass.js +78 -61
  183. package/examples/js/postprocessing/SavePass.js +14 -6
  184. package/examples/js/postprocessing/ShaderPass.js +9 -8
  185. package/examples/js/postprocessing/TAARenderPass.js +11 -9
  186. package/examples/js/postprocessing/TexturePass.js +7 -4
  187. package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
  188. package/examples/js/renderers/CSS2DRenderer.js +4 -23
  189. package/examples/js/renderers/CSS3DRenderer.js +5 -26
  190. package/examples/js/renderers/Projector.js +31 -108
  191. package/examples/js/renderers/SVGRenderer.js +4 -50
  192. package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
  193. package/examples/js/shaders/AfterimageShader.js +3 -6
  194. package/examples/js/shaders/BasicShader.js +3 -6
  195. package/examples/js/shaders/BleachBypassShader.js +3 -6
  196. package/examples/js/shaders/BlendShader.js +3 -6
  197. package/examples/js/shaders/BokehShader.js +3 -6
  198. package/examples/js/shaders/BokehShader2.js +4 -13
  199. package/examples/js/shaders/BrightnessContrastShader.js +3 -6
  200. package/examples/js/shaders/ColorCorrectionShader.js +2 -6
  201. package/examples/js/shaders/ColorifyShader.js +2 -6
  202. package/examples/js/shaders/ConvolutionShader.js +5 -10
  203. package/examples/js/shaders/CopyShader.js +3 -6
  204. package/examples/js/shaders/DOFMipMapShader.js +3 -6
  205. package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
  206. package/examples/js/shaders/DigitalGlitch.js +3 -6
  207. package/examples/js/shaders/DotScreenShader.js +2 -6
  208. package/examples/js/shaders/FXAAShader.js +1 -3
  209. package/examples/js/shaders/FilmShader.js +3 -6
  210. package/examples/js/shaders/FocusShader.js +3 -6
  211. package/examples/js/shaders/FreiChenShader.js +2 -6
  212. package/examples/js/shaders/GammaCorrectionShader.js +3 -6
  213. package/examples/js/shaders/GodRaysShader.js +11 -24
  214. package/examples/js/shaders/HalftoneShader.js +3 -6
  215. package/examples/js/shaders/HorizontalBlurShader.js +3 -6
  216. package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
  217. package/examples/js/shaders/HueSaturationShader.js +3 -6
  218. package/examples/js/shaders/KaleidoShader.js +3 -6
  219. package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
  220. package/examples/js/shaders/LuminosityShader.js +4 -7
  221. package/examples/js/shaders/MMDToonShader.js +2 -4
  222. package/examples/js/shaders/MirrorShader.js +3 -6
  223. package/examples/js/shaders/NormalMapShader.js +2 -6
  224. package/examples/js/shaders/RGBShiftShader.js +3 -6
  225. package/examples/js/shaders/SAOShader.js +2 -6
  226. package/examples/js/shaders/SMAAShader.js +6 -18
  227. package/examples/js/shaders/SSAOShader.js +2 -6
  228. package/examples/js/shaders/SSRShader.js +6 -18
  229. package/examples/js/shaders/SepiaShader.js +3 -6
  230. package/examples/js/shaders/SobelOperatorShader.js +2 -6
  231. package/examples/js/shaders/TechnicolorShader.js +3 -6
  232. package/examples/js/shaders/ToneMapShader.js +4 -7
  233. package/examples/js/shaders/ToonShader.js +8 -24
  234. package/examples/js/shaders/TriangleBlurShader.js +2 -6
  235. package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
  236. package/examples/js/shaders/VelocityShader.js +126 -0
  237. package/examples/js/shaders/VerticalBlurShader.js +3 -6
  238. package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
  239. package/examples/js/shaders/VignetteShader.js +3 -6
  240. package/examples/js/shaders/VolumeShader.js +2 -6
  241. package/examples/js/shaders/WaterRefractionShader.js +2 -6
  242. package/examples/js/textures/FlakesTexture.js +0 -1
  243. package/examples/js/utils/BufferGeometryUtils.js +237 -171
  244. package/examples/js/utils/CameraUtils.js +5 -20
  245. package/examples/js/utils/GPUStatsPanel.js +3 -12
  246. package/examples/js/utils/GeometryCompressionUtils.js +19 -44
  247. package/examples/js/utils/GeometryUtils.js +15 -36
  248. package/examples/js/utils/LDrawUtils.js +8 -11
  249. package/examples/js/utils/PackedPhongMaterial.js +6 -4
  250. package/examples/js/utils/SceneUtils.js +109 -14
  251. package/examples/js/utils/ShadowMapViewer.js +17 -14
  252. package/examples/js/utils/SkeletonUtils.js +13 -27
  253. package/examples/js/utils/UVsDebug.js +20 -12
  254. package/examples/js/utils/WorkerPool.js +1 -11
  255. package/examples/jsm/animation/CCDIKSolver.js +27 -3
  256. package/examples/jsm/animation/MMDPhysics.js +28 -22
  257. package/examples/jsm/capabilities/WebGPU.js +3 -1
  258. package/examples/jsm/controls/ArcballControls.js +17 -2
  259. package/examples/jsm/controls/FirstPersonControls.js +20 -27
  260. package/examples/jsm/controls/FlyControls.js +16 -24
  261. package/examples/jsm/controls/OrbitControls.js +44 -9
  262. package/examples/jsm/controls/PointerLockControls.js +0 -7
  263. package/examples/jsm/controls/TrackballControls.js +14 -5
  264. package/examples/jsm/controls/TransformControls.js +18 -16
  265. package/examples/jsm/csm/CSM.js +1 -0
  266. package/examples/jsm/csm/CSMHelper.js +30 -0
  267. package/examples/jsm/effects/AnaglyphEffect.js +2 -2
  268. package/examples/jsm/effects/OutlineEffect.js +4 -25
  269. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
  270. package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
  271. package/examples/jsm/effects/StereoEffect.js +2 -2
  272. package/examples/jsm/environments/RoomEnvironment.js +23 -0
  273. package/examples/jsm/exporters/ColladaExporter.js +4 -13
  274. package/examples/jsm/exporters/DRACOExporter.js +0 -13
  275. package/examples/jsm/exporters/GLTFExporter.js +29 -110
  276. package/examples/jsm/exporters/KTX2Exporter.js +29 -29
  277. package/examples/jsm/exporters/OBJExporter.js +0 -18
  278. package/examples/jsm/exporters/PLYExporter.js +14 -22
  279. package/examples/jsm/exporters/STLExporter.js +1 -9
  280. package/examples/jsm/exporters/USDZExporter.js +107 -4
  281. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  282. package/examples/jsm/geometries/ParametricGeometry.js +0 -6
  283. package/examples/jsm/helpers/OctreeHelper.js +22 -8
  284. package/examples/jsm/helpers/VertexNormalsHelper.js +7 -1
  285. package/examples/jsm/helpers/VertexTangentsHelper.js +7 -0
  286. package/examples/jsm/helpers/ViewHelper.js +24 -0
  287. package/examples/jsm/interactive/HTMLMesh.js +14 -15
  288. package/examples/jsm/interactive/InteractiveGroup.js +4 -2
  289. package/examples/jsm/interactive/SelectionHelper.js +5 -3
  290. package/examples/jsm/libs/flow.module.js +610 -160
  291. package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
  292. package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
  293. package/examples/jsm/libs/utif.module.js +1579 -0
  294. package/examples/jsm/libs/zstddec.module.js +1 -0
  295. package/examples/jsm/lines/LineSegments2.js +4 -0
  296. package/examples/jsm/loaders/3DMLoader.js +1 -2
  297. package/examples/jsm/loaders/ColladaLoader.js +29 -0
  298. package/examples/jsm/loaders/DRACOLoader.js +2 -28
  299. package/examples/jsm/loaders/EXRLoader.js +3 -13
  300. package/examples/jsm/loaders/FBXLoader.js +26 -3
  301. package/examples/jsm/loaders/FontLoader.js +3 -16
  302. package/examples/jsm/loaders/GLTFLoader.js +321 -464
  303. package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
  304. package/examples/jsm/loaders/KTX2Loader.js +254 -53
  305. package/examples/jsm/loaders/LDrawLoader.js +149 -87
  306. package/examples/jsm/loaders/LottieLoader.js +4 -2
  307. package/examples/jsm/loaders/MaterialXLoader.js +728 -0
  308. package/examples/jsm/loaders/OBJLoader.js +6 -14
  309. package/examples/jsm/loaders/PCDLoader.js +60 -14
  310. package/examples/jsm/loaders/PLYLoader.js +71 -19
  311. package/examples/jsm/loaders/RGBELoader.js +1 -1
  312. package/examples/jsm/loaders/SVGLoader.js +231 -17
  313. package/examples/jsm/loaders/TIFFLoader.js +36 -0
  314. package/examples/jsm/loaders/USDZLoader.js +633 -0
  315. package/examples/jsm/loaders/VRMLLoader.js +36 -26
  316. package/examples/jsm/loaders/VTKLoader.js +1 -1
  317. package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
  318. package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
  319. package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
  320. package/examples/jsm/math/ColorConverter.js +1 -49
  321. package/examples/jsm/math/ConvexHull.js +4 -4
  322. package/examples/jsm/math/Octree.js +1 -1
  323. package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
  324. package/examples/jsm/misc/Volume.js +169 -171
  325. package/examples/jsm/misc/VolumeSlice.js +78 -80
  326. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  327. package/examples/jsm/node-editor/NodeEditor.js +91 -12
  328. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
  329. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  330. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  331. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  332. package/examples/jsm/node-editor/core/BaseNode.js +10 -3
  333. package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
  334. package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
  335. package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
  336. package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
  337. package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
  338. package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
  339. package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
  340. package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
  341. package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
  342. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +7 -10
  343. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
  344. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +7 -10
  345. package/examples/jsm/node-editor/math/AngleEditor.js +4 -4
  346. package/examples/jsm/node-editor/math/DotEditor.js +1 -1
  347. package/examples/jsm/node-editor/math/InvertEditor.js +3 -3
  348. package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
  349. package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
  350. package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
  351. package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
  352. package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
  353. package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
  354. package/examples/jsm/node-editor/scene/MeshEditor.js +11 -8
  355. package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
  356. package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
  357. package/examples/jsm/node-editor/utils/PreviewEditor.js +7 -3
  358. package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
  359. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  360. package/examples/jsm/nodes/Nodes.js +70 -13
  361. package/examples/jsm/nodes/accessors/BitangentNode.js +62 -0
  362. package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
  363. package/examples/jsm/nodes/accessors/NormalNode.js +8 -8
  364. package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
  365. package/examples/jsm/nodes/accessors/PositionNode.js +11 -5
  366. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  367. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
  368. package/examples/jsm/nodes/accessors/SkinningNode.js +8 -1
  369. package/examples/jsm/nodes/accessors/TangentNode.js +95 -0
  370. package/examples/jsm/nodes/core/AttributeNode.js +32 -9
  371. package/examples/jsm/nodes/core/CodeNode.js +3 -3
  372. package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
  373. package/examples/jsm/nodes/core/FunctionNode.js +2 -2
  374. package/examples/jsm/nodes/core/Node.js +15 -13
  375. package/examples/jsm/nodes/core/NodeBuilder.js +67 -18
  376. package/examples/jsm/nodes/core/NodeFrame.js +2 -2
  377. package/examples/jsm/nodes/core/NodeUtils.js +23 -1
  378. package/examples/jsm/nodes/core/NodeVarying.js +17 -0
  379. package/examples/jsm/nodes/core/VaryingNode.js +56 -0
  380. package/examples/jsm/nodes/core/constants.js +13 -13
  381. package/examples/jsm/nodes/display/BlendModeNode.js +85 -0
  382. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +84 -0
  383. package/examples/jsm/nodes/display/NormalMapNode.js +19 -12
  384. package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
  385. package/examples/jsm/nodes/display/ViewportNode.js +106 -0
  386. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +5 -5
  387. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +3 -3
  388. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +2 -2
  389. package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
  390. package/examples/jsm/nodes/gpgpu/ComputeNode.js +3 -1
  391. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
  392. package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
  393. package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
  394. package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
  395. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +33 -0
  396. package/examples/jsm/nodes/materials/Materials.js +21 -31
  397. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
  398. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
  399. package/examples/jsm/nodes/materials/NodeMaterial.js +11 -3
  400. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
  401. package/examples/jsm/nodes/materialx/DISCLAIMER.md +199 -0
  402. package/examples/jsm/nodes/materialx/MaterialXNodes.js +59 -0
  403. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +56 -0
  404. package/examples/jsm/nodes/materialx/lib/mx_noise.js +617 -0
  405. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
  406. package/examples/jsm/nodes/math/MathNode.js +7 -17
  407. package/examples/jsm/nodes/math/OperatorNode.js +16 -3
  408. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
  409. package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
  410. package/examples/jsm/nodes/shadernode/ShaderNode.js +40 -25
  411. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +95 -68
  412. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +49 -6
  413. package/examples/jsm/nodes/utils/ConvertNode.js +18 -12
  414. package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
  415. package/examples/jsm/nodes/utils/JoinNode.js +15 -9
  416. package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
  417. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +3 -2
  418. package/examples/jsm/nodes/utils/OscNode.js +2 -2
  419. package/examples/jsm/nodes/utils/RemapNode.js +34 -0
  420. package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
  421. package/examples/jsm/nodes/utils/SplitNode.js +21 -5
  422. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
  423. package/examples/jsm/nodes/utils/TimerNode.js +23 -3
  424. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
  425. package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
  426. package/examples/jsm/objects/Reflector.js +12 -5
  427. package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
  428. package/examples/jsm/objects/Refractor.js +12 -6
  429. package/examples/jsm/objects/ShadowMesh.js +8 -2
  430. package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
  431. package/examples/jsm/postprocessing/BloomPass.js +22 -3
  432. package/examples/jsm/postprocessing/BokehPass.js +18 -4
  433. package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
  434. package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
  435. package/examples/jsm/postprocessing/EffectComposer.js +9 -0
  436. package/examples/jsm/postprocessing/FilmPass.js +8 -0
  437. package/examples/jsm/postprocessing/GlitchPass.js +13 -1
  438. package/examples/jsm/postprocessing/HalftonePass.js +8 -0
  439. package/examples/jsm/postprocessing/OutlinePass.js +25 -3
  440. package/examples/jsm/postprocessing/Pass.js +2 -0
  441. package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
  442. package/examples/jsm/postprocessing/SAOPass.js +20 -0
  443. package/examples/jsm/postprocessing/SMAAPass.js +16 -0
  444. package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
  445. package/examples/jsm/postprocessing/SavePass.js +17 -1
  446. package/examples/jsm/postprocessing/ShaderPass.js +8 -0
  447. package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
  448. package/examples/jsm/postprocessing/TexturePass.js +8 -0
  449. package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
  450. package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
  451. package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
  452. package/examples/jsm/renderers/Projector.js +2 -24
  453. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
  454. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +363 -231
  455. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
  456. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
  457. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
  458. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +68 -3
  459. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
  460. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
  461. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  462. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
  463. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
  464. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
  465. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +113 -93
  466. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
  467. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
  468. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
  469. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +63 -36
  470. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  471. package/examples/jsm/shaders/LuminosityShader.js +1 -1
  472. package/examples/jsm/shaders/MMDToonShader.js +2 -4
  473. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  474. package/examples/jsm/shaders/VelocityShader.js +128 -0
  475. package/examples/jsm/utils/BufferGeometryUtils.js +176 -43
  476. package/examples/jsm/utils/GeometryUtils.js +17 -25
  477. package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
  478. package/examples/jsm/utils/SceneUtils.js +117 -12
  479. package/examples/jsm/webxr/OculusHandModel.js +3 -2
  480. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
  481. package/examples/jsm/webxr/VRButton.js +1 -7
  482. package/examples/jsm/webxr/XRHandMeshModel.js +8 -3
  483. package/package.json +22 -18
  484. package/src/Three.Legacy.js +262 -36
  485. package/src/Three.js +4 -2
  486. package/src/animation/AnimationAction.js +6 -5
  487. package/src/animation/AnimationClip.js +1 -1
  488. package/src/animation/AnimationMixer.js +1 -1
  489. package/src/animation/AnimationUtils.js +204 -199
  490. package/src/animation/KeyframeTrack.js +1 -1
  491. package/src/animation/PropertyBinding.js +31 -5
  492. package/src/audio/AudioContext.js +5 -5
  493. package/src/cameras/CubeCamera.js +14 -21
  494. package/src/constants.js +2 -4
  495. package/src/core/BufferAttribute.js +81 -111
  496. package/src/core/BufferGeometry.js +3 -41
  497. package/src/core/InstancedBufferAttribute.js +0 -10
  498. package/src/core/InstancedBufferGeometry.js +1 -7
  499. package/src/core/InterleavedBuffer.js +1 -1
  500. package/src/core/InterleavedBufferAttribute.js +57 -8
  501. package/src/core/Object3D.js +22 -5
  502. package/src/core/Uniform.js +0 -7
  503. package/src/core/UniformsGroup.js +92 -0
  504. package/src/extras/DataUtils.js +104 -88
  505. package/src/extras/Earcut.js +67 -67
  506. package/src/extras/core/Path.js +1 -0
  507. package/src/extras/core/ShapePath.js +1 -4
  508. package/src/extras/curves/CatmullRomCurve3.js +4 -2
  509. package/src/geometries/BoxGeometry.js +1 -1
  510. package/src/geometries/CapsuleGeometry.js +1 -1
  511. package/src/geometries/CircleGeometry.js +1 -1
  512. package/src/geometries/ConeGeometry.js +1 -1
  513. package/src/geometries/CylinderGeometry.js +2 -1
  514. package/src/geometries/DodecahedronGeometry.js +1 -1
  515. package/src/geometries/EdgesGeometry.js +5 -4
  516. package/src/geometries/ExtrudeGeometry.js +2 -11
  517. package/src/geometries/IcosahedronGeometry.js +1 -1
  518. package/src/geometries/LatheGeometry.js +2 -2
  519. package/src/geometries/OctahedronGeometry.js +1 -1
  520. package/src/geometries/PlaneGeometry.js +2 -1
  521. package/src/geometries/PolyhedronGeometry.js +2 -2
  522. package/src/geometries/RingGeometry.js +1 -1
  523. package/src/geometries/ShapeGeometry.js +3 -2
  524. package/src/geometries/SphereGeometry.js +2 -1
  525. package/src/geometries/TetrahedronGeometry.js +1 -1
  526. package/src/geometries/TorusGeometry.js +2 -1
  527. package/src/geometries/TorusKnotGeometry.js +2 -1
  528. package/src/geometries/TubeGeometry.js +2 -1
  529. package/src/geometries/WireframeGeometry.js +1 -0
  530. package/src/helpers/ArrowHelper.js +9 -0
  531. package/src/helpers/Box3Helper.js +7 -0
  532. package/src/helpers/BoxHelper.js +7 -1
  533. package/src/helpers/CameraHelper.js +97 -38
  534. package/src/helpers/DirectionalLightHelper.js +6 -1
  535. package/src/helpers/GridHelper.js +7 -0
  536. package/src/helpers/HemisphereLightHelper.js +5 -1
  537. package/src/helpers/PlaneHelper.js +15 -9
  538. package/src/helpers/PointLightHelper.js +2 -1
  539. package/src/helpers/PolarGridHelper.js +25 -14
  540. package/src/helpers/SkeletonHelper.js +7 -0
  541. package/src/helpers/SpotLightHelper.js +5 -2
  542. package/src/lights/LightShadow.js +1 -2
  543. package/src/lights/PointLight.js +2 -2
  544. package/src/lights/SpotLight.js +4 -2
  545. package/src/loaders/FileLoader.js +16 -2
  546. package/src/loaders/LoadingManager.js +1 -1
  547. package/src/loaders/MaterialLoader.js +49 -7
  548. package/src/loaders/ObjectLoader.js +9 -42
  549. package/src/materials/Material.js +2 -34
  550. package/src/materials/Materials.js +0 -27
  551. package/src/materials/MeshLambertMaterial.js +28 -1
  552. package/src/materials/MeshPhysicalMaterial.js +1 -1
  553. package/src/materials/ShaderMaterial.js +3 -7
  554. package/src/math/Color.js +8 -18
  555. package/src/math/MathUtils.js +1 -7
  556. package/src/math/Matrix3.js +54 -25
  557. package/src/math/Matrix4.js +3 -27
  558. package/src/math/Quaternion.js +1 -21
  559. package/src/math/Ray.js +2 -5
  560. package/src/math/Sphere.js +36 -21
  561. package/src/math/Vector2.js +4 -24
  562. package/src/math/Vector3.js +7 -46
  563. package/src/math/Vector4.js +4 -24
  564. package/src/objects/InstancedMesh.js +7 -0
  565. package/src/objects/LOD.js +25 -6
  566. package/src/renderers/WebGL3DRenderTarget.js +1 -1
  567. package/src/renderers/WebGLArrayRenderTarget.js +1 -1
  568. package/src/renderers/WebGLCubeRenderTarget.js +1 -1
  569. package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
  570. package/src/renderers/WebGLRenderTarget.js +1 -1
  571. package/src/renderers/WebGLRenderer.js +119 -69
  572. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
  573. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
  574. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
  575. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
  576. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
  577. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
  578. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
  579. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
  580. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
  581. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -13
  582. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
  583. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +28 -0
  584. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
  585. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
  586. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
  587. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
  588. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -4
  589. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
  590. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
  591. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
  592. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
  593. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
  594. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
  595. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  596. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
  597. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +2 -2
  598. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
  599. package/src/renderers/shaders/ShaderChunk.js +7 -2
  600. package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
  601. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
  602. package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
  603. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
  604. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
  605. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  606. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +0 -3
  607. package/src/renderers/shaders/ShaderLib.js +50 -36
  608. package/src/renderers/shaders/UniformsLib.js +13 -12
  609. package/src/renderers/shaders/UniformsUtils.js +29 -0
  610. package/src/renderers/webgl/WebGLAttributes.js +2 -0
  611. package/src/renderers/webgl/WebGLBackground.js +17 -9
  612. package/src/renderers/webgl/WebGLLights.js +37 -17
  613. package/src/renderers/webgl/WebGLMaterials.js +2 -1
  614. package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
  615. package/src/renderers/webgl/WebGLProgram.js +6 -11
  616. package/src/renderers/webgl/WebGLPrograms.js +30 -26
  617. package/src/renderers/webgl/WebGLRenderLists.js +5 -4
  618. package/src/renderers/webgl/WebGLRenderStates.js +5 -4
  619. package/src/renderers/webgl/WebGLShaderCache.js +9 -6
  620. package/src/renderers/webgl/WebGLShadowMap.js +13 -16
  621. package/src/renderers/webgl/WebGLState.js +125 -41
  622. package/src/renderers/webgl/WebGLTextures.js +94 -39
  623. package/src/renderers/webgl/WebGLUniforms.js +156 -28
  624. package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
  625. package/src/renderers/webgl/WebGLUtils.js +3 -1
  626. package/src/renderers/webvr/WebVRManager.js +42 -9
  627. package/src/renderers/webvr/WebVRUtils.js +1 -1
  628. package/src/renderers/webxr/WebXRController.js +91 -50
  629. package/src/renderers/webxr/WebXRManager.js +127 -34
  630. package/src/scenes/Scene.js +24 -3
  631. package/src/textures/CompressedArrayTexture.js +18 -0
  632. package/src/textures/Source.js +1 -1
  633. package/src/textures/Texture.js +2 -1
  634. package/src/utils.js +1 -1
  635. package/examples/js/controls/experimental/CameraControls.js +0 -1048
  636. package/examples/js/libs/lottie_canvas.js +0 -12751
  637. package/examples/js/loaders/KTX2Loader.js +0 -558
  638. package/examples/js/shaders/PixelShader.js +0 -51
  639. package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
  640. package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
  641. package/examples/jsm/nodes/core/NodeVary.js +0 -14
  642. package/examples/jsm/nodes/core/VaryNode.js +0 -54
  643. package/examples/jsm/package.json +0 -3
  644. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
  645. package/examples/jsm/shaders/PixelShader.js +0 -44
  646. package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
@@ -24,7 +24,6 @@
24
24
  unitName: null,
25
25
  unitMeter: null
26
26
  }, options );
27
-
28
27
  if ( options.upAxis.match( /^[XYZ]_UP$/ ) === null ) {
29
28
 
30
29
  console.error( 'ColladaExporter: Invalid upAxis: valid values are X_UP, Y_UP or Z_UP.' );
@@ -53,23 +52,20 @@
53
52
  }
54
53
 
55
54
  const version = options.version;
56
-
57
55
  if ( version !== '1.4.1' && version !== '1.5.0' ) {
58
56
 
59
57
  console.warn( `ColladaExporter : Version ${version} not supported for export. Only 1.4.1 and 1.5.0.` );
60
58
  return null;
61
59
 
62
- } // Convert the urdf xml into a well-formatted, indented format
63
-
60
+ }
64
61
 
62
+ // Convert the urdf xml into a well-formatted, indented format
65
63
  function format( urdf ) {
66
64
 
67
65
  const IS_END_TAG = /^<\//;
68
66
  const IS_SELF_CLOSING = /(\?>$)|(\/>$)/;
69
67
  const HAS_TEXT = /<[^>]+>[^<]*<\/[^<]+>/;
70
-
71
68
  const pad = ( ch, num ) => num > 0 ? ch + pad( ch, num - 1 ) : '';
72
-
73
69
  let tagnum = 0;
74
70
  return urdf.match( /(<[^>]+>[^<]+<\/[^<]+>)|(<[^>]+>)/g ).map( tag => {
75
71
 
@@ -80,7 +76,6 @@
80
76
  }
81
77
 
82
78
  const res = `${pad( ' ', tagnum )}${tag}`;
83
-
84
79
  if ( ! HAS_TEXT.test( tag ) && ! IS_SELF_CLOSING.test( tag ) && ! IS_END_TAG.test( tag ) ) {
85
80
 
86
81
  tagnum ++;
@@ -91,14 +86,13 @@
91
86
 
92
87
  } ).join( '\n' );
93
88
 
94
- } // Convert an image into a png format for saving
95
-
89
+ }
96
90
 
91
+ // Convert an image into a png format for saving
97
92
  function base64ToBuffer( str ) {
98
93
 
99
94
  const b = atob( str );
100
95
  const buf = new Uint8Array( b.length );
101
-
102
96
  for ( let i = 0, l = buf.length; i < l; i ++ ) {
103
97
 
104
98
  buf[ i ] = b.charCodeAt( i );
@@ -110,25 +104,25 @@
110
104
  }
111
105
 
112
106
  let canvas, ctx;
113
-
114
107
  function imageToData( image, ext ) {
115
108
 
116
109
  canvas = canvas || document.createElement( 'canvas' );
117
110
  ctx = ctx || canvas.getContext( '2d' );
118
111
  canvas.width = image.width;
119
112
  canvas.height = image.height;
120
- ctx.drawImage( image, 0, 0 ); // Get the base64 encoded data
113
+ ctx.drawImage( image, 0, 0 );
121
114
 
122
- const base64data = canvas.toDataURL( `image/${ext}`, 1 ).replace( /^data:image\/(png|jpg);base64,/, '' ); // Convert to a uint8 array
115
+ // Get the base64 encoded data
116
+ const base64data = canvas.toDataURL( `image/${ext}`, 1 ).replace( /^data:image\/(png|jpg);base64,/, '' );
123
117
 
118
+ // Convert to a uint8 array
124
119
  return base64ToBuffer( base64data );
125
120
 
126
- } // gets the attribute array. Generate a new array if the attribute is interleaved
127
-
121
+ }
128
122
 
123
+ // gets the attribute array. Generate a new array if the attribute is interleaved
129
124
  const getFuncs = [ 'getX', 'getY', 'getZ', 'getW' ];
130
125
  const tempColor = new THREE.Color();
131
-
132
126
  function attrBufferToArray( attr, isColor = false ) {
133
127
 
134
128
  if ( isColor ) {
@@ -136,7 +130,6 @@
136
130
  // convert the colors to srgb before export
137
131
  // colors are always written as floats
138
132
  const arr = new Float32Array( attr.count * 3 );
139
-
140
133
  for ( let i = 0, l = attr.count; i < l; i ++ ) {
141
134
 
142
135
  tempColor.fromBufferAttribute( attr, i ).convertLinearToSRGB();
@@ -153,7 +146,6 @@
153
146
  // use the typed array constructor to save on memory
154
147
  const arr = new attr.array.constructor( attr.count * attr.itemSize );
155
148
  const size = attr.itemSize;
156
-
157
149
  for ( let i = 0, l = attr.count; i < l; i ++ ) {
158
150
 
159
151
  for ( let j = 0; j < size; j ++ ) {
@@ -172,28 +164,27 @@
172
164
 
173
165
  }
174
166
 
175
- } // Returns an array of the same type starting at the `st` index,
176
- // and `ct` length
177
-
167
+ }
178
168
 
169
+ // Returns an array of the same type starting at the `st` index,
170
+ // and `ct` length
179
171
  function subArray( arr, st, ct ) {
180
172
 
181
173
  if ( Array.isArray( arr ) ) return arr.slice( st, st + ct ); else return new arr.constructor( arr.buffer, st * arr.BYTES_PER_ELEMENT, ct );
182
174
 
183
- } // Returns the string for a geometry's attribute
184
-
175
+ }
185
176
 
177
+ // Returns the string for a geometry's attribute
186
178
  function getAttribute( attr, name, params, type, isColor = false ) {
187
179
 
188
180
  const array = attrBufferToArray( attr, isColor );
189
181
  const res = `<source id="${name}">` + `<float_array id="${name}-array" count="${array.length}">` + array.join( ' ' ) + '</float_array>' + '<technique_common>' + `<accessor source="#${name}-array" count="${Math.floor( array.length / attr.itemSize )}" stride="${attr.itemSize}">` + params.map( n => `<param name="${n}" type="${type}" />` ).join( '' ) + '</accessor>' + '</technique_common>' + '</source>';
190
182
  return res;
191
183
 
192
- } // Returns the string for a node's transform information
193
-
184
+ }
194
185
 
186
+ // Returns the string for a node's transform information
195
187
  let transMat;
196
-
197
188
  function getTransform( o ) {
198
189
 
199
190
  // ensure the object's matrix is up to date
@@ -204,25 +195,15 @@
204
195
  transMat.transpose();
205
196
  return `<matrix>${transMat.toArray().join( ' ' )}</matrix>`;
206
197
 
207
- } // Process the given piece of geometry into the geometry library
208
- // Returns the mesh id
209
-
210
-
211
- function processGeometry( g ) {
198
+ }
212
199
 
213
- let info = geometryInfo.get( g );
200
+ // Process the given piece of geometry into the geometry library
201
+ // Returns the mesh id
202
+ function processGeometry( bufferGeometry ) {
214
203
 
204
+ let info = geometryInfo.get( bufferGeometry );
215
205
  if ( ! info ) {
216
206
 
217
- // convert the geometry to bufferGeometry if it isn't already
218
- const bufferGeometry = g;
219
-
220
- if ( bufferGeometry.isBufferGeometry !== true ) {
221
-
222
- throw new Error( 'THREE.ColladaExporter: Geometry is not of type THREE.BufferGeometry.' );
223
-
224
- }
225
-
226
207
  const meshid = `Mesh${libraryGeometries.length + 1}`;
227
208
  const indexCount = bufferGeometry.index ? bufferGeometry.index.count * bufferGeometry.index.itemSize : bufferGeometry.attributes.position.count;
228
209
  const groups = bufferGeometry.groups != null && bufferGeometry.groups.length !== 0 ? bufferGeometry.groups : [ {
@@ -230,47 +211,49 @@
230
211
  count: indexCount,
231
212
  materialIndex: 0
232
213
  } ];
233
- const gname = g.name ? ` name="${g.name}"` : '';
234
- let gnode = `<geometry id="${meshid}"${gname}><mesh>`; // define the geometry node and the vertices for the geometry
214
+ const gname = bufferGeometry.name ? ` name="${bufferGeometry.name}"` : '';
215
+ let gnode = `<geometry id="${meshid}"${gname}><mesh>`;
235
216
 
217
+ // define the geometry node and the vertices for the geometry
236
218
  const posName = `${meshid}-position`;
237
219
  const vertName = `${meshid}-vertices`;
238
220
  gnode += getAttribute( bufferGeometry.attributes.position, posName, [ 'X', 'Y', 'Z' ], 'float' );
239
- gnode += `<vertices id="${vertName}"><input semantic="POSITION" source="#${posName}" /></vertices>`; // NOTE: We're not optimizing the attribute arrays here, so they're all the same length and
221
+ gnode += `<vertices id="${vertName}"><input semantic="POSITION" source="#${posName}" /></vertices>`;
222
+
223
+ // NOTE: We're not optimizing the attribute arrays here, so they're all the same length and
240
224
  // can therefore share the same triangle indices. However, MeshLab seems to have trouble opening
241
225
  // models with attributes that share an offset.
242
226
  // MeshLab Bug#424: https://sourceforge.net/p/meshlab/bugs/424/
243
- // serialize normals
244
227
 
228
+ // serialize normals
245
229
  let triangleInputs = `<input semantic="VERTEX" source="#${vertName}" offset="0" />`;
246
-
247
230
  if ( 'normal' in bufferGeometry.attributes ) {
248
231
 
249
232
  const normName = `${meshid}-normal`;
250
233
  gnode += getAttribute( bufferGeometry.attributes.normal, normName, [ 'X', 'Y', 'Z' ], 'float' );
251
234
  triangleInputs += `<input semantic="NORMAL" source="#${normName}" offset="0" />`;
252
235
 
253
- } // serialize uvs
254
-
236
+ }
255
237
 
238
+ // serialize uvs
256
239
  if ( 'uv' in bufferGeometry.attributes ) {
257
240
 
258
241
  const uvName = `${meshid}-texcoord`;
259
242
  gnode += getAttribute( bufferGeometry.attributes.uv, uvName, [ 'S', 'T' ], 'float' );
260
243
  triangleInputs += `<input semantic="TEXCOORD" source="#${uvName}" offset="0" set="0" />`;
261
244
 
262
- } // serialize lightmap uvs
263
-
245
+ }
264
246
 
247
+ // serialize lightmap uvs
265
248
  if ( 'uv2' in bufferGeometry.attributes ) {
266
249
 
267
250
  const uvName = `${meshid}-texcoord2`;
268
251
  gnode += getAttribute( bufferGeometry.attributes.uv2, uvName, [ 'S', 'T' ], 'float' );
269
252
  triangleInputs += `<input semantic="TEXCOORD" source="#${uvName}" offset="0" set="1" />`;
270
253
 
271
- } // serialize colors
272
-
254
+ }
273
255
 
256
+ // serialize colors
274
257
  if ( 'color' in bufferGeometry.attributes ) {
275
258
 
276
259
  // colors are always written as floats
@@ -281,7 +264,6 @@
281
264
  }
282
265
 
283
266
  let indexArray = null;
284
-
285
267
  if ( bufferGeometry.index ) {
286
268
 
287
269
  indexArray = attrBufferToArray( bufferGeometry.index );
@@ -289,7 +271,6 @@
289
271
  } else {
290
272
 
291
273
  indexArray = new Array( indexCount );
292
-
293
274
  for ( let i = 0, l = indexArray.length; i < l; i ++ ) indexArray[ i ] = i;
294
275
 
295
276
  }
@@ -312,27 +293,25 @@
312
293
  meshid: meshid,
313
294
  bufferGeometry: bufferGeometry
314
295
  };
315
- geometryInfo.set( g, info );
296
+ geometryInfo.set( bufferGeometry, info );
316
297
 
317
298
  }
318
299
 
319
300
  return info;
320
301
 
321
- } // Process the given texture into the image library
322
- // Returns the image library
323
-
302
+ }
324
303
 
304
+ // Process the given texture into the image library
305
+ // Returns the image library
325
306
  function processTexture( tex ) {
326
307
 
327
308
  let texid = imageMap.get( tex );
328
-
329
309
  if ( texid == null ) {
330
310
 
331
311
  texid = `image-${libraryImages.length + 1}`;
332
312
  const ext = 'png';
333
313
  const name = tex.name || texid;
334
314
  let imageNode = `<image id="${texid}" name="${name}">`;
335
-
336
315
  if ( version === '1.5.0' ) {
337
316
 
338
317
  imageNode += `<init_from><ref>${options.textureDirectory}${name}.${ext}</ref></init_from>`;
@@ -359,19 +338,17 @@
359
338
 
360
339
  return texid;
361
340
 
362
- } // Process the given material into the material and effect libraries
363
- // Returns the material id
364
-
341
+ }
365
342
 
343
+ // Process the given material into the material and effect libraries
344
+ // Returns the material id
366
345
  function processMaterial( m ) {
367
346
 
368
347
  let matid = materialMap.get( m );
369
-
370
348
  if ( matid == null ) {
371
349
 
372
350
  matid = `Mat${libraryEffects.length + 1}`;
373
351
  let type = 'phong';
374
-
375
352
  if ( m.isMeshLambertMaterial === true ) {
376
353
 
377
354
  type = 'lambert';
@@ -379,7 +356,6 @@
379
356
  } else if ( m.isMeshBasicMaterial === true ) {
380
357
 
381
358
  type = 'constant';
382
-
383
359
  if ( m.map !== null ) {
384
360
 
385
361
  // The Collada spec does not support diffuse texture maps with the
@@ -398,16 +374,15 @@
398
374
  const reflectivity = m.reflectivity || 0;
399
375
  emissive.convertLinearToSRGB();
400
376
  specular.convertLinearToSRGB();
401
- diffuse.convertLinearToSRGB(); // Do not export and alpha map for the reasons mentioned in issue (#13792)
377
+ diffuse.convertLinearToSRGB();
378
+
379
+ // Do not export and alpha map for the reasons mentioned in issue (#13792)
402
380
  // in three.js alpha maps are black and white, but collada expects the alpha
403
381
  // channel to specify the transparency
404
-
405
382
  let transparencyNode = '';
406
-
407
383
  if ( m.transparent === true ) {
408
384
 
409
385
  transparencyNode += '<transparent>' + ( m.map ? '<texture texture="diffuse-sampler"></texture>' : '<float>1</float>' ) + '</transparent>';
410
-
411
386
  if ( m.opacity < 1 ) {
412
387
 
413
388
  transparencyNode += `<transparency><float>${m.opacity}</float></transparency>`;
@@ -428,30 +403,30 @@
428
403
 
429
404
  return matid;
430
405
 
431
- } // Recursively process the object into a scene
432
-
406
+ }
433
407
 
408
+ // Recursively process the object into a scene
434
409
  function processObject( o ) {
435
410
 
436
411
  let node = `<node name="${o.name}">`;
437
412
  node += getTransform( o );
438
-
439
413
  if ( o.isMesh === true && o.geometry !== null ) {
440
414
 
441
415
  // function returns the id associated with the mesh and a "BufferGeometry" version
442
416
  // of the geometry in case it's not a geometry.
443
417
  const geomInfo = processGeometry( o.geometry );
444
418
  const meshid = geomInfo.meshid;
445
- const geometry = geomInfo.bufferGeometry; // ids of the materials to bind to the geometry
419
+ const geometry = geomInfo.bufferGeometry;
446
420
 
421
+ // ids of the materials to bind to the geometry
447
422
  let matids = null;
448
- let matidsArray; // get a list of materials to bind to the sub groups of the geometry.
423
+ let matidsArray;
424
+
425
+ // get a list of materials to bind to the sub groups of the geometry.
449
426
  // If the amount of subgroups is greater than the materials, than reuse
450
427
  // the materials.
451
-
452
428
  const mat = o.material || new THREE.MeshBasicMaterial();
453
429
  const materials = Array.isArray( mat ) ? mat : [ mat ];
454
-
455
430
  if ( geometry.groups.length > materials.length ) {
456
431
 
457
432
  matidsArray = new Array( geometry.groups.length );
@@ -495,7 +470,6 @@
495
470
  data: format( dae ),
496
471
  textures
497
472
  };
498
-
499
473
  if ( typeof onDone === 'function' ) {
500
474
 
501
475
  requestAnimationFrame( () => onDone( res ) );
@@ -15,6 +15,7 @@
15
15
  */
16
16
 
17
17
  /* global DracoEncoderModule */
18
+
18
19
  class DRACOExporter {
19
20
 
20
21
  parse( object, options = {
@@ -27,12 +28,6 @@
27
28
  exportColor: false
28
29
  } ) {
29
30
 
30
- if ( object.isBufferGeometry === true ) {
31
-
32
- throw new Error( 'DRACOExporter: The first parameter of parse() is now an instance of Mesh or Points.' );
33
-
34
- }
35
-
36
31
  if ( DracoEncoderModule === undefined ) {
37
32
 
38
33
  throw new Error( 'THREE.DRACOExporter: required the draco_encoder to work.' );
@@ -44,13 +39,6 @@
44
39
  const encoder = new dracoEncoder.Encoder();
45
40
  let builder;
46
41
  let dracoObject;
47
-
48
- if ( geometry.isBufferGeometry !== true ) {
49
-
50
- throw new Error( 'THREE.DRACOExporter.parse(geometry, options): geometry is not a THREE.BufferGeometry instance.' );
51
-
52
- }
53
-
54
42
  if ( object.isMesh === true ) {
55
43
 
56
44
  builder = new dracoEncoder.MeshBuilder();
@@ -58,7 +46,6 @@
58
46
  const vertices = geometry.getAttribute( 'position' );
59
47
  builder.AddFloatAttributeToMesh( dracoObject, dracoEncoder.POSITION, vertices.count, vertices.itemSize, vertices.array );
60
48
  const faces = geometry.getIndex();
61
-
62
49
  if ( faces !== null ) {
63
50
 
64
51
  builder.AddFacesToMesh( dracoObject, faces.count / 3, faces.array );
@@ -66,7 +53,6 @@
66
53
  } else {
67
54
 
68
55
  const faces = new ( vertices.count > 65535 ? Uint32Array : Uint16Array )( vertices.count );
69
-
70
56
  for ( let i = 0; i < faces.length; i ++ ) {
71
57
 
72
58
  faces[ i ] = i;
@@ -80,7 +66,6 @@
80
66
  if ( options.exportNormals === true ) {
81
67
 
82
68
  const normals = geometry.getAttribute( 'normal' );
83
-
84
69
  if ( normals !== undefined ) {
85
70
 
86
71
  builder.AddFloatAttributeToMesh( dracoObject, dracoEncoder.NORMAL, normals.count, normals.itemSize, normals.array );
@@ -92,7 +77,6 @@
92
77
  if ( options.exportUvs === true ) {
93
78
 
94
79
  const uvs = geometry.getAttribute( 'uv' );
95
-
96
80
  if ( uvs !== undefined ) {
97
81
 
98
82
  builder.AddFloatAttributeToMesh( dracoObject, dracoEncoder.TEX_COORD, uvs.count, uvs.itemSize, uvs.array );
@@ -104,7 +88,6 @@
104
88
  if ( options.exportColor === true ) {
105
89
 
106
90
  const colors = geometry.getAttribute( 'color' );
107
-
108
91
  if ( colors !== undefined ) {
109
92
 
110
93
  builder.AddFloatAttributeToMesh( dracoObject, dracoEncoder.COLOR, colors.count, colors.itemSize, colors.array );
@@ -119,11 +102,9 @@
119
102
  dracoObject = new dracoEncoder.PointCloud();
120
103
  const vertices = geometry.getAttribute( 'position' );
121
104
  builder.AddFloatAttribute( dracoObject, dracoEncoder.POSITION, vertices.count, vertices.itemSize, vertices.array );
122
-
123
105
  if ( options.exportColor === true ) {
124
106
 
125
107
  const colors = geometry.getAttribute( 'color' );
126
-
127
108
  if ( colors !== undefined ) {
128
109
 
129
110
  builder.AddFloatAttribute( dracoObject, dracoEncoder.COLOR, colors.count, colors.itemSize, colors.array );
@@ -136,23 +117,28 @@
136
117
 
137
118
  throw new Error( 'DRACOExporter: Unsupported object type.' );
138
119
 
139
- } //Compress using draco encoder
120
+ }
121
+
122
+ //Compress using draco encoder
140
123
 
124
+ const encodedData = new dracoEncoder.DracoInt8Array();
141
125
 
142
- const encodedData = new dracoEncoder.DracoInt8Array(); //Sets the desired encoding and decoding speed for the given options from 0 (slowest speed, but the best compression) to 10 (fastest, but the worst compression).
126
+ //Sets the desired encoding and decoding speed for the given options from 0 (slowest speed, but the best compression) to 10 (fastest, but the worst compression).
143
127
 
144
128
  const encodeSpeed = options.encodeSpeed !== undefined ? options.encodeSpeed : 5;
145
129
  const decodeSpeed = options.decodeSpeed !== undefined ? options.decodeSpeed : 5;
146
- encoder.SetSpeedOptions( encodeSpeed, decodeSpeed ); // Sets the desired encoding method for a given geometry.
130
+ encoder.SetSpeedOptions( encodeSpeed, decodeSpeed );
131
+
132
+ // Sets the desired encoding method for a given geometry.
147
133
 
148
134
  if ( options.encoderMethod !== undefined ) {
149
135
 
150
136
  encoder.SetEncodingMethod( options.encoderMethod );
151
137
 
152
- } // Sets the quantization (number of bits used to represent) compression options for a named attribute.
153
- // The attribute values will be quantized in a box defined by the maximum extent of the attribute values.
154
-
138
+ }
155
139
 
140
+ // Sets the quantization (number of bits used to represent) compression options for a named attribute.
141
+ // The attribute values will be quantized in a box defined by the maximum extent of the attribute values.
156
142
  if ( options.quantization !== undefined ) {
157
143
 
158
144
  for ( let i = 0; i < 5; i ++ ) {
@@ -168,7 +154,6 @@
168
154
  }
169
155
 
170
156
  let length;
171
-
172
157
  if ( object.isMesh === true ) {
173
158
 
174
159
  length = encoder.EncodeMeshToDracoBuffer( dracoObject, encodedData );
@@ -180,16 +165,14 @@
180
165
  }
181
166
 
182
167
  dracoEncoder.destroy( dracoObject );
183
-
184
168
  if ( length === 0 ) {
185
169
 
186
170
  throw new Error( 'THREE.DRACOExporter: Draco encoding failed.' );
187
171
 
188
- } //Copy encoded data to buffer.
189
-
172
+ }
190
173
 
174
+ //Copy encoded data to buffer.
191
175
  const outputData = new Int8Array( new ArrayBuffer( length ) );
192
-
193
176
  for ( let i = 0; i < length; i ++ ) {
194
177
 
195
178
  outputData[ i ] = encodedData.GetValue( i );
@@ -203,14 +186,19 @@
203
186
 
204
187
  }
205
188
 
206
- } // Encoder methods
189
+ }
207
190
 
191
+ // Encoder methods
208
192
 
209
193
  DRACOExporter.MESH_EDGEBREAKER_ENCODING = 1;
210
- DRACOExporter.MESH_SEQUENTIAL_ENCODING = 0; // Geometry type
194
+ DRACOExporter.MESH_SEQUENTIAL_ENCODING = 0;
195
+
196
+ // Geometry type
211
197
 
212
198
  DRACOExporter.POINT_CLOUD = 0;
213
- DRACOExporter.TRIANGULAR_MESH = 1; // Attribute type
199
+ DRACOExporter.TRIANGULAR_MESH = 1;
200
+
201
+ // Attribute type
214
202
 
215
203
  DRACOExporter.INVALID = - 1;
216
204
  DRACOExporter.POSITION = 0;
@@ -10,7 +10,6 @@
10
10
  const NO_COMPRESSION = 0;
11
11
  const ZIPS_COMPRESSION = 2;
12
12
  const ZIP_COMPRESSION = 3;
13
-
14
13
  class EXRExporter {
15
14
 
16
15
  parse( renderer, renderTarget, options ) {
@@ -25,7 +24,6 @@
25
24
  }
26
25
 
27
26
  }
28
-
29
27
  function supported( renderer, renderTarget ) {
30
28
 
31
29
  if ( ! renderer || ! renderer.isWebGLRenderer ) {
@@ -97,7 +95,6 @@
97
95
  function getPixelData( renderer, rtt, info ) {
98
96
 
99
97
  let dataBuffer;
100
-
101
98
  if ( info.type === THREE.FloatType ) {
102
99
 
103
100
  dataBuffer = new Float32Array( info.width * info.height * info.numInputChannels );
@@ -131,7 +128,6 @@
131
128
  setValue = info.dataType == 1 ? setFloat16 : setFloat32,
132
129
  outBuffer = new Uint8Array( info.width * info.height * info.numOutputChannels * info.dataSize ),
133
130
  dv = new DataView( outBuffer.buffer );
134
-
135
131
  for ( let y = 0; y < h; ++ y ) {
136
132
 
137
133
  for ( let x = 0; x < w; ++ x ) {
@@ -170,13 +166,11 @@
170
166
  totalSize: 0
171
167
  },
172
168
  size = info.width * info.numOutputChannels * info.blockLines * info.dataSize;
173
-
174
169
  switch ( info.compression ) {
175
170
 
176
171
  case 0:
177
172
  compress = compressNONE;
178
173
  break;
179
-
180
174
  case 2:
181
175
  case 3:
182
176
  compress = compressZIP;
@@ -218,11 +212,11 @@
218
212
  //
219
213
  // Reorder the pixel data.
220
214
  //
215
+
221
216
  let t1 = 0,
222
217
  t2 = Math.floor( ( data.length + 1 ) / 2 ),
223
218
  s = 0;
224
219
  const stop = data.length - 1;
225
-
226
220
  while ( true ) {
227
221
 
228
222
  if ( s > stop ) break;
@@ -230,13 +224,13 @@
230
224
  if ( s > stop ) break;
231
225
  tmpBuffer[ t2 ++ ] = data[ s ++ ];
232
226
 
233
- } //
227
+ }
228
+
229
+ //
234
230
  // Predictor.
235
231
  //
236
232
 
237
-
238
233
  let p = tmpBuffer[ 0 ];
239
-
240
234
  for ( let t = 1; t < tmpBuffer.length; t ++ ) {
241
235
 
242
236
  const d = tmpBuffer[ t ] - p + ( 128 + 256 );
@@ -264,8 +258,8 @@
264
258
  };
265
259
  const dv = new DataView( outBuffer.buffer );
266
260
  setUint32( dv, 20000630, offset ); // magic
267
-
268
261
  setUint32( dv, 2, offset ); // mask
262
+
269
263
  // = HEADER =
270
264
 
271
265
  setString( dv, 'compression', offset );
@@ -326,12 +320,14 @@
326
320
  offset.value += 4;
327
321
  setUint32( dv, 1, offset );
328
322
  setUint32( dv, 1, offset );
329
- setUint8( dv, 0, offset ); // null-byte
323
+ setUint8( dv, 0, offset );
330
324
 
331
- setUint8( dv, 0, offset ); // = OFFSET TABLE =
325
+ // null-byte
326
+ setUint8( dv, 0, offset );
332
327
 
333
- let sum = offset.value + info.numBlocks * 8;
328
+ // = OFFSET TABLE =
334
329
 
330
+ let sum = offset.value + info.numBlocks * 8;
335
331
  for ( let i = 0; i < chunks.data.length; ++ i ) {
336
332
 
337
333
  setUint64( dv, sum, offset );
@@ -352,7 +348,6 @@
352
348
  outBuffer = new Uint8Array( HeaderSize + TableSize + chunks.totalSize + info.numBlocks * 8 ),
353
349
  dv = new DataView( outBuffer.buffer );
354
350
  fillHeader( outBuffer, chunks, info );
355
-
356
351
  for ( let i = 0; i < chunks.data.length; ++ i ) {
357
352
 
358
353
  const data = chunks.data[ i ].dataChunk;
@@ -375,13 +370,16 @@
375
370
  dec.b = b;
376
371
  dec.a = a;
377
372
 
378
- } // function decodeSRGB( dec, r, g, b, a ) {
373
+ }
374
+
375
+ // function decodeSRGB( dec, r, g, b, a ) {
376
+
379
377
  // dec.r = r > 0.04045 ? Math.pow( r * 0.9478672986 + 0.0521327014, 2.4 ) : r * 0.0773993808;
380
378
  // dec.g = g > 0.04045 ? Math.pow( g * 0.9478672986 + 0.0521327014, 2.4 ) : g * 0.0773993808;
381
379
  // dec.b = b > 0.04045 ? Math.pow( b * 0.9478672986 + 0.0521327014, 2.4 ) : b * 0.0773993808;
382
380
  // dec.a = a;
383
- // }
384
381
 
382
+ // }
385
383
 
386
384
  function setUint8( dv, value, offset ) {
387
385
 
@@ -421,7 +419,6 @@
421
419
  function setString( dv, string, offset ) {
422
420
 
423
421
  const tmp = textEncoder.encode( string + '\0' );
424
-
425
422
  for ( let i = 0; i < tmp.length; ++ i ) {
426
423
 
427
424
  setUint8( dv, tmp[ i ], offset );