@needle-tools/three 0.145.4 → 0.146.2

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 (393) hide show
  1. package/README.md +1 -1
  2. package/build/three.cjs +32586 -35951
  3. package/build/three.js +32600 -35965
  4. package/build/three.min.js +6 -7
  5. package/build/three.module.js +1547 -1154
  6. package/examples/js/animation/AnimationClipCreator.js +0 -8
  7. package/examples/js/animation/CCDIKSolver.js +49 -66
  8. package/examples/js/animation/MMDAnimationHelper.js +66 -137
  9. package/examples/js/animation/MMDPhysics.js +70 -134
  10. package/examples/js/cameras/CinematicCamera.js +33 -22
  11. package/examples/js/controls/ArcballControls.js +138 -405
  12. package/examples/js/controls/DragControls.js +8 -33
  13. package/examples/js/controls/FirstPersonControls.js +32 -54
  14. package/examples/js/controls/FlyControls.js +29 -55
  15. package/examples/js/controls/OrbitControls.js +85 -95
  16. package/examples/js/controls/PointerLockControls.js +5 -14
  17. package/examples/js/controls/TrackballControls.js +33 -86
  18. package/examples/js/controls/TransformControls.js +84 -169
  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 +4 -18
  28. package/examples/js/effects/AsciiEffect.js +32 -31
  29. package/examples/js/effects/OutlineEffect.js +26 -30
  30. package/examples/js/effects/ParallaxBarrierEffect.js +0 -13
  31. package/examples/js/effects/PeppersGhostEffect.js +12 -39
  32. package/examples/js/effects/StereoEffect.js +0 -4
  33. package/examples/js/environments/RoomEnvironment.js +12 -10
  34. package/examples/js/exporters/ColladaExporter.js +48 -65
  35. package/examples/js/exporters/DRACOExporter.js +22 -22
  36. package/examples/js/exporters/EXRExporter.js +15 -18
  37. package/examples/js/exporters/GLTFExporter.js +143 -261
  38. package/examples/js/exporters/MMDExporter.js +5 -12
  39. package/examples/js/exporters/OBJExporter.js +42 -33
  40. package/examples/js/exporters/PLYExporter.js +38 -33
  41. package/examples/js/exporters/STLExporter.js +5 -7
  42. package/examples/js/exporters/USDZExporter.js +110 -25
  43. package/examples/js/geometries/BoxLineGeometry.js +0 -1
  44. package/examples/js/geometries/ConvexGeometry.js +11 -6
  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 +25 -12
  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 +22 -33
  60. package/examples/js/interactive/InteractiveGroup.js +6 -12
  61. package/examples/js/interactive/SelectionBox.js +3 -70
  62. package/examples/js/interactive/SelectionHelper.js +0 -8
  63. package/examples/js/lights/LightProbeGenerator.js +32 -39
  64. package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
  65. package/examples/js/lines/LineGeometry.js +3 -5
  66. package/examples/js/lines/LineMaterial.js +4 -11
  67. package/examples/js/lines/LineSegments2.js +38 -89
  68. package/examples/js/lines/LineSegmentsGeometry.js +7 -28
  69. package/examples/js/lines/Wireframe.js +2 -7
  70. package/examples/js/lines/WireframeGeometry2.js +3 -1
  71. package/examples/js/loaders/3DMLoader.js +58 -155
  72. package/examples/js/loaders/3MFLoader.js +72 -106
  73. package/examples/js/loaders/AMFLoader.js +0 -25
  74. package/examples/js/loaders/BVHLoader.js +44 -43
  75. package/examples/js/loaders/BasisTextureLoader.js +16 -46
  76. package/examples/js/loaders/ColladaLoader.js +201 -359
  77. package/examples/js/loaders/DDSLoader.js +24 -25
  78. package/examples/js/loaders/DRACOLoader.js +29 -66
  79. package/examples/js/loaders/EXRLoader.js +67 -164
  80. package/examples/js/loaders/FBXLoader.js +286 -441
  81. package/examples/js/loaders/FontLoader.js +6 -15
  82. package/examples/js/loaders/GCodeLoader.js +15 -16
  83. package/examples/js/loaders/GLTFLoader.js +354 -405
  84. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -6
  85. package/examples/js/loaders/KMZLoader.js +3 -7
  86. package/examples/js/loaders/KTXLoader.js +12 -30
  87. package/examples/js/loaders/LDrawLoader.js +178 -289
  88. package/examples/js/loaders/LUT3dlLoader.js +7 -11
  89. package/examples/js/loaders/LUTCubeLoader.js +0 -8
  90. package/examples/js/loaders/LWOLoader.js +59 -124
  91. package/examples/js/loaders/LogLuvLoader.js +27 -77
  92. package/examples/js/loaders/LottieLoader.js +4 -4
  93. package/examples/js/loaders/MD2Loader.js +26 -27
  94. package/examples/js/loaders/MDDLoader.js +6 -10
  95. package/examples/js/loaders/MMDLoader.js +180 -189
  96. package/examples/js/loaders/MTLLoader.js +18 -47
  97. package/examples/js/loaders/MaterialXLoader.js +392 -0
  98. package/examples/js/loaders/NRRDLoader.js +44 -84
  99. package/examples/js/loaders/OBJLoader.js +50 -65
  100. package/examples/js/loaders/PCDLoader.js +34 -29
  101. package/examples/js/loaders/PDBLoader.js +17 -13
  102. package/examples/js/loaders/PLYLoader.js +9 -39
  103. package/examples/js/loaders/PRWMLoader.js +11 -22
  104. package/examples/js/loaders/PVRLoader.js +7 -16
  105. package/examples/js/loaders/RGBELoader.js +36 -61
  106. package/examples/js/loaders/RGBMLoader.js +26 -87
  107. package/examples/js/loaders/STLLoader.js +20 -27
  108. package/examples/js/loaders/SVGLoader.js +361 -233
  109. package/examples/js/loaders/TDSLoader.js +81 -118
  110. package/examples/js/loaders/TGALoader.js +39 -41
  111. package/examples/js/loaders/TIFFLoader.js +0 -1
  112. package/examples/js/loaders/TTFLoader.js +0 -8
  113. package/examples/js/loaders/TiltLoader.js +14 -15
  114. package/examples/js/loaders/VOXLoader.js +8 -16
  115. package/examples/js/loaders/VRMLLoader.js +243 -340
  116. package/examples/js/loaders/VTKLoader.js +101 -118
  117. package/examples/js/loaders/XYZLoader.js +2 -4
  118. package/examples/js/loaders/lwo/IFFParser.js +55 -136
  119. package/examples/js/loaders/lwo/LWO2Parser.js +32 -83
  120. package/examples/js/loaders/lwo/LWO3Parser.js +31 -73
  121. package/examples/js/materials/MeshGouraudMaterial.js +15 -13
  122. package/examples/js/math/Capsule.js +0 -17
  123. package/examples/js/math/ColorConverter.js +3 -3
  124. package/examples/js/math/ConvexHull.js +183 -139
  125. package/examples/js/math/ImprovedNoise.js +1 -1
  126. package/examples/js/math/Lut.js +8 -15
  127. package/examples/js/math/MeshSurfaceSampler.js +6 -28
  128. package/examples/js/math/OBB.js +90 -49
  129. package/examples/js/math/Octree.js +2 -57
  130. package/examples/js/math/SimplexNoise.js +74 -88
  131. package/examples/js/misc/ConvexObjectBreaker.js +37 -48
  132. package/examples/js/misc/GPUComputationRenderer.js +14 -18
  133. package/examples/js/misc/Gyroscope.js +5 -9
  134. package/examples/js/misc/MD2Character.js +14 -23
  135. package/examples/js/misc/MD2CharacterComplex.js +73 -54
  136. package/examples/js/misc/MorphAnimMesh.js +0 -6
  137. package/examples/js/misc/MorphBlendMesh.js +3 -30
  138. package/examples/js/misc/ProgressiveLightMap.js +47 -43
  139. package/examples/js/misc/RollerCoaster.js +17 -24
  140. package/examples/js/misc/TubePainter.js +18 -12
  141. package/examples/js/misc/Volume.js +16 -45
  142. package/examples/js/misc/VolumeSlice.js +14 -24
  143. package/examples/js/modifiers/CurveModifier.js +19 -21
  144. package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
  145. package/examples/js/modifiers/SimplifyModifier.js +56 -59
  146. package/examples/js/modifiers/TessellateModifier.js +2 -9
  147. package/examples/js/objects/GroundProjectedEnv.js +2 -14
  148. package/examples/js/objects/Lensflare.js +47 -38
  149. package/examples/js/objects/LightningStorm.js +10 -13
  150. package/examples/js/objects/MarchingCubes.js +80 -59
  151. package/examples/js/objects/Reflector.js +22 -20
  152. package/examples/js/objects/ReflectorForSSRPass.js +19 -23
  153. package/examples/js/objects/Refractor.js +52 -30
  154. package/examples/js/objects/ShadowMesh.js +1 -2
  155. package/examples/js/objects/Sky.js +2 -7
  156. package/examples/js/objects/Water.js +23 -18
  157. package/examples/js/objects/Water2.js +20 -19
  158. package/examples/js/physics/AmmoPhysics.js +23 -20
  159. package/examples/js/physics/OimoPhysics.js +19 -17
  160. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
  161. package/examples/js/postprocessing/AfterimagePass.js +19 -12
  162. package/examples/js/postprocessing/BloomPass.js +38 -17
  163. package/examples/js/postprocessing/BokehPass.js +29 -12
  164. package/examples/js/postprocessing/ClearPass.js +1 -6
  165. package/examples/js/postprocessing/CubeTexturePass.js +12 -9
  166. package/examples/js/postprocessing/DotScreenPass.js +7 -5
  167. package/examples/js/postprocessing/EffectComposer.js +25 -32
  168. package/examples/js/postprocessing/FilmPass.js +7 -5
  169. package/examples/js/postprocessing/GlitchPass.js +10 -11
  170. package/examples/js/postprocessing/HalftonePass.js +9 -9
  171. package/examples/js/postprocessing/LUTPass.js +2 -15
  172. package/examples/js/postprocessing/MaskPass.js +20 -17
  173. package/examples/js/postprocessing/OutlinePass.js +45 -36
  174. package/examples/js/postprocessing/Pass.js +11 -14
  175. package/examples/js/postprocessing/RenderPass.js +3 -7
  176. package/examples/js/postprocessing/SAOPass.js +40 -32
  177. package/examples/js/postprocessing/SMAAPass.js +34 -17
  178. package/examples/js/postprocessing/SSAARenderPass.js +14 -14
  179. package/examples/js/postprocessing/SSAOPass.js +56 -42
  180. package/examples/js/postprocessing/SSRPass.js +78 -61
  181. package/examples/js/postprocessing/SavePass.js +14 -6
  182. package/examples/js/postprocessing/ShaderPass.js +9 -8
  183. package/examples/js/postprocessing/TAARenderPass.js +11 -9
  184. package/examples/js/postprocessing/TexturePass.js +7 -4
  185. package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
  186. package/examples/js/renderers/CSS2DRenderer.js +2 -21
  187. package/examples/js/renderers/CSS3DRenderer.js +3 -24
  188. package/examples/js/renderers/Projector.js +29 -85
  189. package/examples/js/renderers/SVGRenderer.js +4 -50
  190. package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
  191. package/examples/js/shaders/AfterimageShader.js +3 -6
  192. package/examples/js/shaders/BasicShader.js +3 -6
  193. package/examples/js/shaders/BleachBypassShader.js +3 -6
  194. package/examples/js/shaders/BlendShader.js +3 -6
  195. package/examples/js/shaders/BokehShader.js +3 -6
  196. package/examples/js/shaders/BokehShader2.js +4 -13
  197. package/examples/js/shaders/BrightnessContrastShader.js +3 -6
  198. package/examples/js/shaders/ColorCorrectionShader.js +2 -6
  199. package/examples/js/shaders/ColorifyShader.js +2 -6
  200. package/examples/js/shaders/ConvolutionShader.js +5 -10
  201. package/examples/js/shaders/CopyShader.js +3 -6
  202. package/examples/js/shaders/DOFMipMapShader.js +3 -6
  203. package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
  204. package/examples/js/shaders/DigitalGlitch.js +3 -6
  205. package/examples/js/shaders/DotScreenShader.js +2 -6
  206. package/examples/js/shaders/FXAAShader.js +1 -3
  207. package/examples/js/shaders/FilmShader.js +3 -6
  208. package/examples/js/shaders/FocusShader.js +3 -6
  209. package/examples/js/shaders/FreiChenShader.js +2 -6
  210. package/examples/js/shaders/GammaCorrectionShader.js +3 -6
  211. package/examples/js/shaders/GodRaysShader.js +11 -24
  212. package/examples/js/shaders/HalftoneShader.js +3 -6
  213. package/examples/js/shaders/HorizontalBlurShader.js +3 -6
  214. package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
  215. package/examples/js/shaders/HueSaturationShader.js +3 -6
  216. package/examples/js/shaders/KaleidoShader.js +3 -6
  217. package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
  218. package/examples/js/shaders/LuminosityShader.js +3 -6
  219. package/examples/js/shaders/MMDToonShader.js +2 -6
  220. package/examples/js/shaders/MirrorShader.js +3 -6
  221. package/examples/js/shaders/NormalMapShader.js +2 -6
  222. package/examples/js/shaders/RGBShiftShader.js +3 -6
  223. package/examples/js/shaders/SAOShader.js +2 -6
  224. package/examples/js/shaders/SMAAShader.js +6 -18
  225. package/examples/js/shaders/SSAOShader.js +2 -6
  226. package/examples/js/shaders/SSRShader.js +6 -18
  227. package/examples/js/shaders/SepiaShader.js +3 -6
  228. package/examples/js/shaders/SobelOperatorShader.js +2 -6
  229. package/examples/js/shaders/TechnicolorShader.js +3 -6
  230. package/examples/js/shaders/ToneMapShader.js +3 -6
  231. package/examples/js/shaders/ToonShader.js +8 -24
  232. package/examples/js/shaders/TriangleBlurShader.js +2 -6
  233. package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
  234. package/examples/js/shaders/VelocityShader.js +126 -0
  235. package/examples/js/shaders/VerticalBlurShader.js +3 -6
  236. package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
  237. package/examples/js/shaders/VignetteShader.js +3 -6
  238. package/examples/js/shaders/VolumeShader.js +2 -6
  239. package/examples/js/shaders/WaterRefractionShader.js +2 -6
  240. package/examples/js/textures/FlakesTexture.js +0 -1
  241. package/examples/js/utils/BufferGeometryUtils.js +234 -168
  242. package/examples/js/utils/CameraUtils.js +5 -20
  243. package/examples/js/utils/GPUStatsPanel.js +3 -12
  244. package/examples/js/utils/GeometryCompressionUtils.js +19 -44
  245. package/examples/js/utils/GeometryUtils.js +13 -18
  246. package/examples/js/utils/LDrawUtils.js +8 -11
  247. package/examples/js/utils/PackedPhongMaterial.js +6 -4
  248. package/examples/js/utils/SceneUtils.js +117 -6
  249. package/examples/js/utils/ShadowMapViewer.js +17 -14
  250. package/examples/js/utils/SkeletonUtils.js +13 -27
  251. package/examples/js/utils/UVsDebug.js +20 -12
  252. package/examples/js/utils/WorkerPool.js +1 -11
  253. package/examples/jsm/animation/CCDIKSolver.js +1 -1
  254. package/examples/jsm/capabilities/WebGPU.js +3 -1
  255. package/examples/jsm/controls/OrbitControls.js +44 -4
  256. package/examples/jsm/exporters/GLTFExporter.js +17 -131
  257. package/examples/jsm/exporters/USDZExporter.js +75 -19
  258. package/examples/jsm/interactive/HTMLMesh.js +2 -0
  259. package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
  260. package/examples/jsm/loaders/3DMLoader.js +1 -2
  261. package/examples/jsm/loaders/ColladaLoader.js +28 -0
  262. package/examples/jsm/loaders/FBXLoader.js +16 -2
  263. package/examples/jsm/loaders/GLTFLoader.js +204 -377
  264. package/examples/jsm/loaders/KTX2Loader.js +68 -29
  265. package/examples/jsm/loaders/LDrawLoader.js +14 -13
  266. package/examples/jsm/loaders/LottieLoader.js +4 -2
  267. package/examples/jsm/loaders/MaterialXLoader.js +728 -0
  268. package/examples/jsm/loaders/PCDLoader.js +1 -1
  269. package/examples/jsm/loaders/PLYLoader.js +68 -16
  270. package/examples/jsm/loaders/SVGLoader.js +227 -14
  271. package/examples/jsm/loaders/USDZLoader.js +31 -16
  272. package/examples/jsm/nodes/Nodes.js +14 -2
  273. package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
  274. package/examples/jsm/nodes/accessors/PositionNode.js +6 -0
  275. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  276. package/examples/jsm/nodes/accessors/SkinningNode.js +1 -1
  277. package/examples/jsm/nodes/core/Node.js +1 -1
  278. package/examples/jsm/nodes/core/NodeBuilder.js +36 -4
  279. package/examples/jsm/nodes/core/NodeFrame.js +2 -2
  280. package/examples/jsm/nodes/core/NodeVarying.js +7 -4
  281. package/examples/jsm/nodes/core/VaryingNode.js +6 -4
  282. package/examples/jsm/nodes/core/constants.js +13 -13
  283. package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
  284. package/examples/jsm/nodes/display/ViewportNode.js +106 -0
  285. package/examples/jsm/nodes/gpgpu/ComputeNode.js +1 -1
  286. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
  287. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +3 -1
  288. package/examples/jsm/nodes/materials/Materials.js +9 -7
  289. package/examples/jsm/nodes/materials/NodeMaterial.js +9 -1
  290. package/examples/jsm/nodes/materialx/MaterialXNodes.js +6 -2
  291. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
  292. package/examples/jsm/nodes/math/MathNode.js +5 -0
  293. package/examples/jsm/nodes/math/OperatorNode.js +6 -1
  294. package/examples/jsm/nodes/shadernode/ShaderNode.js +26 -13
  295. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +2 -0
  296. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +18 -0
  297. package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
  298. package/examples/jsm/nodes/utils/JoinNode.js +8 -2
  299. package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
  300. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +1 -1
  301. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
  302. package/examples/jsm/nodes/utils/TimerNode.js +1 -1
  303. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
  304. package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
  305. package/examples/jsm/postprocessing/BloomPass.js +22 -3
  306. package/examples/jsm/postprocessing/BokehPass.js +18 -4
  307. package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
  308. package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
  309. package/examples/jsm/postprocessing/EffectComposer.js +9 -0
  310. package/examples/jsm/postprocessing/FilmPass.js +8 -0
  311. package/examples/jsm/postprocessing/GlitchPass.js +13 -1
  312. package/examples/jsm/postprocessing/HalftonePass.js +8 -0
  313. package/examples/jsm/postprocessing/OutlinePass.js +10 -0
  314. package/examples/jsm/postprocessing/Pass.js +2 -0
  315. package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
  316. package/examples/jsm/postprocessing/SAOPass.js +20 -0
  317. package/examples/jsm/postprocessing/SMAAPass.js +16 -0
  318. package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
  319. package/examples/jsm/postprocessing/SavePass.js +17 -1
  320. package/examples/jsm/postprocessing/ShaderPass.js +8 -0
  321. package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
  322. package/examples/jsm/postprocessing/TexturePass.js +8 -0
  323. package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
  324. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +39 -16
  325. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
  326. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
  327. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +36 -7
  328. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +47 -12
  329. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +35 -5
  330. package/examples/jsm/shaders/MMDToonShader.js +0 -2
  331. package/examples/jsm/shaders/VelocityShader.js +128 -0
  332. package/examples/jsm/utils/BufferGeometryUtils.js +130 -6
  333. package/examples/jsm/utils/SceneUtils.js +129 -4
  334. package/examples/jsm/utils/TextureUtils.js +85 -0
  335. package/examples/jsm/webxr/OculusHandModel.js +1 -1
  336. package/examples/jsm/webxr/XRHandMeshModel.js +6 -3
  337. package/package.json +11 -12
  338. package/src/Three.js +1 -0
  339. package/src/audio/AudioContext.js +5 -5
  340. package/src/cameras/CubeCamera.js +14 -14
  341. package/src/constants.js +1 -1
  342. package/src/core/InstancedBufferGeometry.js +1 -7
  343. package/src/extras/Earcut.js +67 -67
  344. package/src/helpers/DirectionalLightHelper.js +5 -1
  345. package/src/helpers/HemisphereLightHelper.js +4 -1
  346. package/src/helpers/PointLightHelper.js +2 -1
  347. package/src/helpers/SpotLightHelper.js +4 -2
  348. package/src/lights/PointLight.js +2 -2
  349. package/src/lights/SpotLight.js +2 -2
  350. package/src/loaders/FileLoader.js +4 -1
  351. package/src/loaders/ObjectLoader.js +5 -1
  352. package/src/materials/Material.js +1 -1
  353. package/src/math/Color.js +5 -5
  354. package/src/math/Matrix3.js +53 -18
  355. package/src/math/Ray.js +2 -5
  356. package/src/math/Sphere.js +19 -26
  357. package/src/objects/InstancedMesh.js +7 -0
  358. package/src/objects/LOD.js +25 -6
  359. package/src/renderers/WebGL3DRenderTarget.js +1 -1
  360. package/src/renderers/WebGLArrayRenderTarget.js +1 -1
  361. package/src/renderers/WebGLCubeRenderTarget.js +1 -1
  362. package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
  363. package/src/renderers/WebGLRenderTarget.js +1 -1
  364. package/src/renderers/WebGLRenderer.js +36 -62
  365. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
  366. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +0 -1
  367. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +0 -2
  368. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
  369. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
  370. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
  371. package/src/renderers/shaders/ShaderChunk.js +3 -0
  372. package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
  373. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
  374. package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
  375. package/src/renderers/shaders/ShaderLib.js +20 -6
  376. package/src/renderers/shaders/UniformsLib.js +1 -1
  377. package/src/renderers/shaders/UniformsUtils.js +15 -0
  378. package/src/renderers/webgl/WebGLAttributes.js +2 -0
  379. package/src/renderers/webgl/WebGLBackground.js +15 -7
  380. package/src/renderers/webgl/WebGLLights.js +0 -4
  381. package/src/renderers/webgl/WebGLMaterials.js +2 -1
  382. package/src/renderers/webgl/WebGLShadowMap.js +3 -1
  383. package/src/renderers/webgl/WebGLState.js +31 -1
  384. package/src/renderers/webgl/WebGLTextures.js +71 -18
  385. package/src/renderers/webgl/WebGLUniforms.js +116 -20
  386. package/src/renderers/webgl/WebGLUtils.js +1 -1
  387. package/src/renderers/webxr/WebXRController.js +46 -13
  388. package/src/renderers/webxr/WebXRManager.js +85 -3
  389. package/src/scenes/Scene.js +8 -0
  390. package/src/textures/CompressedArrayTexture.js +18 -0
  391. package/examples/js/libs/lottie_canvas.js +0 -12751
  392. package/examples/js/shaders/PixelShader.js +0 -51
  393. package/examples/jsm/shaders/PixelShader.js +0 -44
@@ -16,27 +16,23 @@
16
16
  return this;
17
17
 
18
18
  }
19
-
20
19
  setMaxRange( value ) {
21
20
 
22
21
  this.maxRange = value;
23
22
  return this;
24
23
 
25
24
  }
26
-
27
25
  loadCubemap( urls, onLoad, onProgress, onError ) {
28
26
 
29
27
  const texture = new THREE.CubeTexture();
30
28
  let loaded = 0;
31
29
  const scope = this;
32
-
33
30
  function loadTexture( i ) {
34
31
 
35
32
  scope.load( urls[ i ], function ( image ) {
36
33
 
37
34
  texture.images[ i ] = image;
38
35
  loaded ++;
39
-
40
36
  if ( loaded === 6 ) {
41
37
 
42
38
  texture.needsUpdate = true;
@@ -61,14 +57,15 @@
61
57
  return texture;
62
58
 
63
59
  }
64
-
65
60
  parse( buffer ) {
66
61
 
67
62
  const img = UPNG.decode( buffer );
68
63
  const rgba = UPNG.toRGBA8( img )[ 0 ];
69
64
  const data = new Uint8Array( rgba );
70
65
  const size = img.width * img.height * 4;
71
- const output = this.type === THREE.HalfFloatType ? new Uint16Array( size ) : new Float32Array( size ); // decode RGBM
66
+ const output = this.type === THREE.HalfFloatType ? new Uint16Array( size ) : new Float32Array( size );
67
+
68
+ // decode RGBM
72
69
 
73
70
  for ( let i = 0; i < data.length; i += 4 ) {
74
71
 
@@ -76,7 +73,6 @@
76
73
  const g = data[ i + 1 ] / 255;
77
74
  const b = data[ i + 2 ] / 255;
78
75
  const a = data[ i + 3 ] / 255;
79
-
80
76
  if ( this.type === THREE.HalfFloatType ) {
81
77
 
82
78
  output[ i + 0 ] = THREE.DataUtils.toHalfFloat( Math.min( r * a * this.maxRange, 65504 ) );
@@ -106,11 +102,11 @@
106
102
 
107
103
  }
108
104
 
109
- } // from https://github.com/photopea/UPNG.js (MIT License)
105
+ }
110
106
 
107
+ // from https://github.com/photopea/UPNG.js (MIT License)
111
108
 
112
109
  var UPNG = {};
113
-
114
110
  UPNG.toRGBA8 = function ( out ) {
115
111
 
116
112
  var w = out.width,
@@ -122,7 +118,6 @@
122
118
  img = new Uint8Array( len ),
123
119
  empty = new Uint8Array( len ),
124
120
  prev = new Uint8Array( len );
125
-
126
121
  for ( var i = 0; i < out.frames.length; i ++ ) {
127
122
 
128
123
  var frm = out.frames[ i ];
@@ -146,7 +141,6 @@
146
141
 
147
142
  var area = w * h,
148
143
  bpp = UPNG.decode._getBPP( out );
149
-
150
144
  var bpl = Math.ceil( w * bpp / 8 ); // bytes per line
151
145
 
152
146
  var bf = new Uint8Array( area * 4 ),
@@ -154,10 +148,10 @@
154
148
  var ctype = out.ctype,
155
149
  depth = out.depth;
156
150
  var rs = UPNG._bin.readUshort;
157
-
158
151
  if ( ctype == 6 ) {
159
152
 
160
153
  // RGB + alpha
154
+
161
155
  var qarea = area << 2;
162
156
  if ( depth == 8 ) for ( var i = 0; i < qarea; i += 4 ) {
163
157
 
@@ -177,8 +171,8 @@
177
171
  } else if ( ctype == 2 ) {
178
172
 
179
173
  // RGB
180
- var ts = out.tabs[ 'tRNS' ];
181
174
 
175
+ var ts = out.tabs[ 'tRNS' ];
182
176
  if ( ts == null ) {
183
177
 
184
178
  if ( depth == 8 ) for ( var i = 0; i < area; i ++ ) {
@@ -223,15 +217,15 @@
223
217
  } else if ( ctype == 3 ) {
224
218
 
225
219
  // palette
220
+
226
221
  var p = out.tabs[ 'PLTE' ],
227
222
  ap = out.tabs[ 'tRNS' ],
228
- tl = ap ? ap.length : 0; //console.log(p, ap);
229
-
223
+ tl = ap ? ap.length : 0;
224
+ //console.log(p, ap);
230
225
  if ( depth == 1 ) for ( var y = 0; y < h; y ++ ) {
231
226
 
232
227
  var s0 = y * bpl,
233
228
  t0 = y * w;
234
-
235
229
  for ( var i = 0; i < w; i ++ ) {
236
230
 
237
231
  var qi = t0 + i << 2,
@@ -250,7 +244,6 @@
250
244
 
251
245
  var s0 = y * bpl,
252
246
  t0 = y * w;
253
-
254
247
  for ( var i = 0; i < w; i ++ ) {
255
248
 
256
249
  var qi = t0 + i << 2,
@@ -269,7 +262,6 @@
269
262
 
270
263
  var s0 = y * bpl,
271
264
  t0 = y * w;
272
-
273
265
  for ( var i = 0; i < w; i ++ ) {
274
266
 
275
267
  var qi = t0 + i << 2,
@@ -299,6 +291,7 @@
299
291
  } else if ( ctype == 4 ) {
300
292
 
301
293
  // gray + alpha
294
+
302
295
  if ( depth == 8 ) for ( var i = 0; i < area; i ++ ) {
303
296
 
304
297
  var qi = i << 2,
@@ -326,8 +319,8 @@
326
319
  } else if ( ctype == 0 ) {
327
320
 
328
321
  // gray
329
- var tr = out.tabs[ 'tRNS' ] ? out.tabs[ 'tRNS' ] : - 1;
330
322
 
323
+ var tr = out.tabs[ 'tRNS' ] ? out.tabs[ 'tRNS' ] : - 1;
331
324
  for ( var y = 0; y < h; y ++ ) {
332
325
 
333
326
  var off = y * bpl,
@@ -366,9 +359,9 @@
366
359
 
367
360
  }
368
361
 
369
- } //console.log(Date.now()-time);
370
-
362
+ }
371
363
 
364
+ //console.log(Date.now()-time);
372
365
  return bf;
373
366
 
374
367
  };
@@ -386,21 +379,18 @@
386
379
  };
387
380
  var dd = new Uint8Array( data.length ),
388
381
  doff = 0; // put all IDAT data into it
389
-
390
382
  var fd,
391
383
  foff = 0; // frames
392
-
393
384
  var text, keyw, bfr;
394
385
  var mgck = [ 0x89, 0x50, 0x4e, 0x47, 0x0d, 0x0a, 0x1a, 0x0a ];
395
-
396
386
  for ( var i = 0; i < 8; i ++ ) if ( data[ i ] != mgck[ i ] ) throw new Error( 'The input is not a PNG file!' );
397
-
398
387
  while ( offset < data.length ) {
399
388
 
400
389
  var len = bin.readUint( data, offset );
401
390
  offset += 4;
402
391
  var type = bin.readASCII( data, offset, 4 );
403
- offset += 4; //console.log(type,len);
392
+ offset += 4;
393
+ //console.log(type,len);
404
394
 
405
395
  if ( type == 'IHDR' ) {
406
396
 
@@ -413,7 +403,6 @@
413
403
  } else if ( type == 'IDAT' ) {
414
404
 
415
405
  for ( var i = 0; i < len; i ++ ) dd[ doff + i ] = data[ offset + i ];
416
-
417
406
  doff += len;
418
407
 
419
408
  } else if ( type == 'acTL' ) {
@@ -447,14 +436,13 @@
447
436
  delay: Math.round( del * 1000 ),
448
437
  dispose: data[ offset + 24 ],
449
438
  blend: data[ offset + 25 ]
450
- }; //console.log(frm);
451
-
439
+ };
440
+ //console.log(frm);
452
441
  out.frames.push( frm );
453
442
 
454
443
  } else if ( type == 'fdAT' ) {
455
444
 
456
445
  for ( var i = 0; i < len - 4; i ++ ) fd[ foff + i ] = data[ offset + i + 4 ];
457
-
458
446
  foff += len - 4;
459
447
 
460
448
  } else if ( type == 'pHYs' ) {
@@ -464,7 +452,6 @@
464
452
  } else if ( type == 'cHRM' ) {
465
453
 
466
454
  out.tabs[ type ] = [];
467
-
468
455
  for ( var i = 0; i < 8; i ++ ) out.tabs[ type ].push( bin.readUint( data, offset + i * 4 ) );
469
456
 
470
457
  } else if ( type == 'tEXt' || type == 'zTXt' ) {
@@ -516,12 +503,12 @@
516
503
 
517
504
  var pl = out.tabs[ 'PLTE' ].length / 3;
518
505
  out.tabs[ type ] = [];
519
-
520
506
  for ( var i = 0; i < pl; i ++ ) out.tabs[ type ].push( rUs( data, offset + i * 2 ) );
521
507
 
522
508
  } else if ( type == 'tRNS' ) {
523
509
 
524
- if ( out.ctype == 3 ) out.tabs[ type ] = bin.readBytes( data, offset, len ); else if ( out.ctype == 0 ) out.tabs[ type ] = rUs( data, offset ); else if ( out.ctype == 2 ) out.tabs[ type ] = [ rUs( data, offset ), rUs( data, offset + 2 ), rUs( data, offset + 4 ) ]; //else console.log("tRNS for unsupported color type",out.ctype, len);
510
+ if ( out.ctype == 3 ) out.tabs[ type ] = bin.readBytes( data, offset, len ); else if ( out.ctype == 0 ) out.tabs[ type ] = rUs( data, offset ); else if ( out.ctype == 2 ) out.tabs[ type ] = [ rUs( data, offset ), rUs( data, offset + 2 ), rUs( data, offset + 4 ) ];
511
+ //else console.log("tRNS for unsupported color type",out.ctype, len);
525
512
 
526
513
  } else if ( type == 'gAMA' ) out.tabs[ type ] = bin.readUint( data, offset ) / 100000; else if ( type == 'sRGB' ) out.tabs[ type ] = data[ offset ]; else if ( type == 'bKGD' ) {
527
514
 
@@ -531,9 +518,9 @@
531
518
 
532
519
  break;
533
520
 
534
- } //else { console.log("unknown chunk type", type, len); out.tabs[type]=data.slice(offset,offset+len); }
535
-
521
+ }
536
522
 
523
+ //else { console.log("unknown chunk type", type, len); out.tabs[type]=data.slice(offset,offset+len); }
537
524
  offset += len;
538
525
  bin.readUint( data, offset );
539
526
  offset += 4;
@@ -560,7 +547,6 @@
560
547
  var bpp = UPNG.decode._getBPP( out ),
561
548
  bpl = Math.ceil( w * bpp / 8 ),
562
549
  buff = new Uint8Array( ( bpl + 1 + out.interlace ) * h );
563
-
564
550
  if ( out.tabs[ 'CgBI' ] ) dd = UPNG.inflateRaw( dd, buff ); else dd = UPNG.decode._inflate( dd, buff );
565
551
  if ( out.interlace == 0 ) dd = UPNG.decode._filterZero( dd, out, 0, w, h ); else if ( out.interlace == 1 ) dd = UPNG.decode._readInterlace( dd, out );
566
552
  return dd;
@@ -578,7 +564,6 @@
578
564
 
579
565
  var H = {};
580
566
  H.H = {};
581
-
582
567
  H.H.N = function ( N, W ) {
583
568
 
584
569
  var R = Uint8Array,
@@ -604,13 +589,11 @@
604
589
  b = V.m,
605
590
  Z = W == null;
606
591
  if ( Z ) W = new R( N.length >>> 2 << 5 );
607
-
608
592
  while ( i == 0 ) {
609
593
 
610
594
  i = n( N, d, 1 );
611
595
  m = n( N, d + 1, 2 );
612
596
  d += 3;
613
-
614
597
  if ( m == 0 ) {
615
598
 
616
599
  if ( ( d & 7 ) != 0 ) d += 8 - ( d & 7 );
@@ -625,7 +608,6 @@
625
608
  }
626
609
 
627
610
  if ( Z ) W = H.H.W( W, w + ( 1 << 17 ) );
628
-
629
611
  if ( m == 1 ) {
630
612
 
631
613
  v = b.J;
@@ -642,7 +624,6 @@
642
624
  Q = A( N, d + 10, 4 ) + 4;
643
625
  d += 14;
644
626
  var j = 1;
645
-
646
627
  for ( var c = 0; c < 38; c += 2 ) {
647
628
 
648
629
  b.Q[ c ] = 0;
@@ -680,7 +661,6 @@
680
661
  var T = v[ e( N, d ) & X ];
681
662
  d += T & 15;
682
663
  var p = T >>> 4;
683
-
684
664
  if ( p >>> 8 == 0 ) {
685
665
 
686
666
  W[ w ++ ] = p;
@@ -692,7 +672,6 @@
692
672
  } else {
693
673
 
694
674
  var z = w + p - 254;
695
-
696
675
  if ( p > 264 ) {
697
676
 
698
677
  var _ = b.q[ p - 257 ];
@@ -707,7 +686,6 @@
707
686
  Y = b.c[ s ],
708
687
  a = ( Y >>> 4 ) + n( N, d, Y & 15 );
709
688
  d += Y & 15;
710
-
711
689
  while ( w < z ) {
712
690
 
713
691
  W[ w ] = W[ w ++ - a ];
@@ -744,13 +722,11 @@
744
722
  var l = H.H.e,
745
723
  M = H.H.Z,
746
724
  I = 0;
747
-
748
725
  while ( I < R ) {
749
726
 
750
727
  var e = N[ M( V, n ) & W ];
751
728
  n += e & 15;
752
729
  var b = e >>> 4;
753
-
754
730
  if ( b <= 15 ) {
755
731
 
756
732
  A[ I ] = b;
@@ -760,7 +736,6 @@
760
736
 
761
737
  var Z = 0,
762
738
  m = 0;
763
-
764
739
  if ( b == 16 ) {
765
740
 
766
741
  m = 3 + l( V, n, 2 );
@@ -780,7 +755,6 @@
780
755
  }
781
756
 
782
757
  var J = I + m;
783
-
784
758
  while ( I < J ) {
785
759
 
786
760
  A[ I ] = Z;
@@ -801,7 +775,6 @@
801
775
  var n = 0,
802
776
  A = 0,
803
777
  l = V.length >>> 1;
804
-
805
778
  while ( A < R ) {
806
779
 
807
780
  var M = N[ A + W ];
@@ -834,15 +807,11 @@
834
807
  M,
835
808
  I,
836
809
  e = R.j;
837
-
838
810
  for ( var M = 0; M <= W; M ++ ) e[ M ] = 0;
839
-
840
811
  for ( M = 1; M < V; M += 2 ) e[ N[ M ] ] ++;
841
-
842
812
  var b = R.K;
843
813
  n = 0;
844
814
  e[ 0 ] = 0;
845
-
846
815
  for ( A = 1; A <= W; A ++ ) {
847
816
 
848
817
  n = n + e[ A - 1 ] << 1;
@@ -853,7 +822,6 @@
853
822
  for ( l = 0; l < V; l += 2 ) {
854
823
 
855
824
  I = N[ l + 1 ];
856
-
857
825
  if ( I != 0 ) {
858
826
 
859
827
  N[ l ] = b[ I ];
@@ -870,7 +838,6 @@
870
838
  var V = N.length,
871
839
  n = H.H.m,
872
840
  A = n.r;
873
-
874
841
  for ( var l = 0; l < V; l += 2 ) if ( N[ l + 1 ] != 0 ) {
875
842
 
876
843
  var M = l >> 1,
@@ -879,7 +846,6 @@
879
846
  b = W - I,
880
847
  Z = N[ l ] << b,
881
848
  m = Z + ( 1 << b );
882
-
883
849
  while ( Z != m ) {
884
850
 
885
851
  var J = A[ Z ] >>> 15 - W;
@@ -896,7 +862,6 @@
896
862
 
897
863
  var R = H.H.m.r,
898
864
  V = 15 - W;
899
-
900
865
  for ( var n = 0; n < N.length; n += 2 ) {
901
866
 
902
867
  var A = N[ n ] << W - N[ n + 1 ];
@@ -984,12 +949,10 @@
984
949
  };
985
950
 
986
951
  }();
987
-
988
952
  ( function () {
989
953
 
990
954
  var N = H.H.m,
991
955
  W = 1 << 15;
992
-
993
956
  for ( var R = 0; R < W; R ++ ) {
994
957
 
995
958
  var V = R;
@@ -1035,16 +998,13 @@
1035
998
  return H.H.N;
1036
999
 
1037
1000
  }();
1038
-
1039
1001
  UPNG.decode._readInterlace = function ( data, out ) {
1040
1002
 
1041
1003
  var w = out.width,
1042
1004
  h = out.height;
1043
-
1044
1005
  var bpp = UPNG.decode._getBPP( out ),
1045
1006
  cbpp = bpp >> 3,
1046
1007
  bpl = Math.ceil( w * bpp / 8 );
1047
-
1048
1008
  var img = new Uint8Array( h * bpl );
1049
1009
  var di = 0;
1050
1010
  var starting_row = [ 0, 0, 4, 0, 2, 0, 1 ];
@@ -1052,7 +1012,6 @@
1052
1012
  var row_increment = [ 8, 8, 8, 4, 4, 2, 2 ];
1053
1013
  var col_increment = [ 8, 8, 4, 4, 2, 2, 1 ];
1054
1014
  var pass = 0;
1055
-
1056
1015
  while ( pass < 7 ) {
1057
1016
 
1058
1017
  var ri = row_increment[ pass ],
@@ -1060,7 +1019,6 @@
1060
1019
  var sw = 0,
1061
1020
  sh = 0;
1062
1021
  var cr = starting_row[ pass ];
1063
-
1064
1022
  while ( cr < h ) {
1065
1023
 
1066
1024
  cr += ri;
@@ -1069,7 +1027,6 @@
1069
1027
  }
1070
1028
 
1071
1029
  var cc = starting_col[ pass ];
1072
-
1073
1030
  while ( cc < w ) {
1074
1031
 
1075
1032
  cc += ci;
@@ -1078,18 +1035,14 @@
1078
1035
  }
1079
1036
 
1080
1037
  var bpll = Math.ceil( sw * bpp / 8 );
1081
-
1082
1038
  UPNG.decode._filterZero( data, out, di, sw, sh );
1083
-
1084
1039
  var y = 0,
1085
1040
  row = starting_row[ pass ];
1086
1041
  var val;
1087
-
1088
1042
  while ( row < h ) {
1089
1043
 
1090
1044
  var col = starting_col[ pass ];
1091
1045
  var cdi = di + y * bpll << 3;
1092
-
1093
1046
  while ( col < w ) {
1094
1047
 
1095
1048
  if ( bpp == 1 ) {
@@ -1119,7 +1072,6 @@
1119
1072
  if ( bpp >= 8 ) {
1120
1073
 
1121
1074
  var ii = row * bpl + col * cbpp;
1122
-
1123
1075
  for ( var j = 0; j < cbpp; j ++ ) img[ ii + j ] = data[ ( cdi >> 3 ) + j ];
1124
1076
 
1125
1077
  }
@@ -1155,7 +1107,6 @@
1155
1107
  var bpp = UPNG.decode._getBPP( out ),
1156
1108
  bpl = Math.ceil( w * bpp / 8 ),
1157
1109
  paeth = UPNG.decode._paeth;
1158
-
1159
1110
  bpp = Math.ceil( bpp / 8 );
1160
1111
  var i,
1161
1112
  di,
@@ -1163,7 +1114,6 @@
1163
1114
  x = 0;
1164
1115
  if ( type > 1 ) data[ off ] = [ 0, 0, 1 ][ type - 2 ];
1165
1116
  if ( type == 3 ) for ( x = bpp; x < bpl; x ++ ) data[ x + 1 ] = data[ x + 1 ] + ( data[ x + 1 - bpp ] >>> 1 ) & 255;
1166
-
1167
1117
  for ( var y = 0; y < h; y ++ ) {
1168
1118
 
1169
1119
  i = off + y * bpl;
@@ -1173,7 +1123,6 @@
1173
1123
  if ( type == 0 ) for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ]; else if ( type == 1 ) {
1174
1124
 
1175
1125
  for ( ; x < bpp; x ++ ) data[ i + x ] = data[ di + x ];
1176
-
1177
1126
  for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ] + data[ i + x - bpp ];
1178
1127
 
1179
1128
  } else if ( type == 2 ) {
@@ -1183,13 +1132,11 @@
1183
1132
  } else if ( type == 3 ) {
1184
1133
 
1185
1134
  for ( ; x < bpp; x ++ ) data[ i + x ] = data[ di + x ] + ( data[ i + x - bpl ] >>> 1 );
1186
-
1187
1135
  for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ] + ( data[ i + x - bpl ] + data[ i + x - bpp ] >>> 1 );
1188
1136
 
1189
1137
  } else {
1190
1138
 
1191
1139
  for ( ; x < bpp; x ++ ) data[ i + x ] = data[ di + x ] + paeth( 0, data[ i + x - bpl ], 0 );
1192
-
1193
1140
  for ( ; x < bpl; x ++ ) data[ i + x ] = data[ di + x ] + paeth( data[ i + x - bpp ], data[ i + x - bpl ], data[ i + x - bpp - bpl ] );
1194
1141
 
1195
1142
  }
@@ -1235,7 +1182,6 @@
1235
1182
  nextZero: function ( data, p ) {
1236
1183
 
1237
1184
  while ( data[ p ] != 0 ) p ++;
1238
-
1239
1185
  return p;
1240
1186
 
1241
1187
  },
@@ -1266,9 +1212,7 @@
1266
1212
  readASCII: function ( buff, p, l ) {
1267
1213
 
1268
1214
  var s = '';
1269
-
1270
1215
  for ( var i = 0; i < l; i ++ ) s += String.fromCharCode( buff[ p + i ] );
1271
-
1272
1216
  return s;
1273
1217
 
1274
1218
  },
@@ -1280,9 +1224,7 @@
1280
1224
  readBytes: function ( buff, p, l ) {
1281
1225
 
1282
1226
  var arr = [];
1283
-
1284
1227
  for ( var i = 0; i < l; i ++ ) arr.push( buff[ p + i ] );
1285
-
1286
1228
  return arr;
1287
1229
 
1288
1230
  },
@@ -1295,9 +1237,7 @@
1295
1237
 
1296
1238
  var s = '',
1297
1239
  ns;
1298
-
1299
1240
  for ( var i = 0; i < l; i ++ ) s += '%' + UPNG._bin.pad( buff[ p + i ].toString( 16 ) );
1300
-
1301
1241
  try {
1302
1242
 
1303
1243
  ns = decodeURIComponent( s );
@@ -1312,14 +1252,12 @@
1312
1252
 
1313
1253
  }
1314
1254
  };
1315
-
1316
1255
  UPNG._copyTile = function ( sb, sw, sh, tb, tw, th, xoff, yoff, mode ) {
1317
1256
 
1318
1257
  var w = Math.min( sw, tw ),
1319
1258
  h = Math.min( sh, th );
1320
1259
  var si = 0,
1321
1260
  ti = 0;
1322
-
1323
1261
  for ( var y = 0; y < h; y ++ ) for ( var x = 0; x < w; x ++ ) {
1324
1262
 
1325
1263
  if ( xoff >= 0 && yoff >= 0 ) {
@@ -1362,6 +1300,7 @@
1362
1300
  } else if ( mode == 2 ) {
1363
1301
 
1364
1302
  // copy only differences, otherwise zero
1303
+
1365
1304
  var fa = sb[ si + 3 ],
1366
1305
  fr = sb[ si ],
1367
1306
  fg = sb[ si + 1 ],
@@ -1370,7 +1309,6 @@
1370
1309
  br = tb[ ti ],
1371
1310
  bg = tb[ ti + 1 ],
1372
1311
  bb = tb[ ti + 2 ];
1373
-
1374
1312
  if ( fa == ba && fr == br && fg == bg && fb == bb ) {
1375
1313
 
1376
1314
  tb[ ti ] = 0;
@@ -1390,6 +1328,7 @@
1390
1328
  } else if ( mode == 3 ) {
1391
1329
 
1392
1330
  // check if can be blended
1331
+
1393
1332
  var fa = sb[ si + 3 ],
1394
1333
  fr = sb[ si ],
1395
1334
  fg = sb[ si + 1 ],
@@ -1398,8 +1337,8 @@
1398
1337
  br = tb[ ti ],
1399
1338
  bg = tb[ ti + 1 ],
1400
1339
  bb = tb[ ti + 2 ];
1401
- if ( fa == ba && fr == br && fg == bg && fb == bb ) continue; //if(fa!=255 && ba!=0) return false;
1402
-
1340
+ if ( fa == ba && fr == br && fg == bg && fb == bb ) continue;
1341
+ //if(fa!=255 && ba!=0) return false;
1403
1342
  if ( fa < 220 && ba > 20 ) return false;
1404
1343
 
1405
1344
  }