super-three 0.137.0 → 0.141.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (703) hide show
  1. package/README.md +23 -25
  2. package/build/three.cjs +3721 -4964
  3. package/build/three.js +3723 -4966
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +5705 -7216
  6. package/examples/js/animation/CCDIKSolver.js +3 -2
  7. package/examples/js/animation/MMDPhysics.js +2 -2
  8. package/examples/js/controls/ArcballControls.js +3 -1
  9. package/examples/js/controls/PointerLockControls.js +3 -2
  10. package/examples/js/controls/TrackballControls.js +1 -4
  11. package/examples/js/controls/TransformControls.js +5 -6
  12. package/examples/js/controls/experimental/CameraControls.js +2 -2
  13. package/examples/js/csm/CSMFrustum.js +1 -1
  14. package/examples/js/csm/CSMShader.js +51 -35
  15. package/examples/js/curves/CurveExtras.js +14 -18
  16. package/examples/js/effects/AnaglyphEffect.js +7 -4
  17. package/examples/js/effects/AsciiEffect.js +10 -29
  18. package/examples/js/exporters/ColladaExporter.js +29 -7
  19. package/examples/js/exporters/EXRExporter.js +458 -0
  20. package/examples/js/exporters/GLTFExporter.js +213 -128
  21. package/examples/js/exporters/OBJExporter.js +12 -18
  22. package/examples/js/exporters/PLYExporter.js +15 -20
  23. package/examples/js/exporters/USDZExporter.js +13 -0
  24. package/examples/js/geometries/DecalGeometry.js +0 -7
  25. package/examples/js/geometries/LightningStrike.js +2 -2
  26. package/examples/js/geometries/ParametricGeometries.js +3 -3
  27. package/examples/js/helpers/OctreeHelper.js +74 -0
  28. package/examples/js/helpers/VertexNormalsHelper.js +4 -23
  29. package/examples/js/helpers/VertexTangentsHelper.js +3 -13
  30. package/examples/js/helpers/ViewHelper.js +266 -0
  31. package/examples/js/interactive/HTMLMesh.js +235 -40
  32. package/examples/js/interactive/SelectionHelper.js +1 -1
  33. package/examples/js/libs/opentype.min.js +1 -118
  34. package/examples/js/lines/Line2.js +1 -2
  35. package/examples/js/lines/LineGeometry.js +10 -21
  36. package/examples/js/lines/LineMaterial.js +2 -3
  37. package/examples/js/lines/LineSegments2.js +214 -140
  38. package/examples/js/lines/LineSegmentsGeometry.js +3 -14
  39. package/examples/js/lines/Wireframe.js +2 -3
  40. package/examples/js/lines/WireframeGeometry2.js +1 -2
  41. package/examples/js/loaders/3MFLoader.js +21 -17
  42. package/examples/js/loaders/AMFLoader.js +1 -1
  43. package/examples/js/loaders/ColladaLoader.js +33 -12
  44. package/examples/js/loaders/DDSLoader.js +23 -30
  45. package/examples/js/loaders/EXRLoader.js +269 -266
  46. package/examples/js/loaders/FBXLoader.js +11 -0
  47. package/examples/js/loaders/FontLoader.js +1 -2
  48. package/examples/js/loaders/GCodeLoader.js +0 -1
  49. package/examples/js/loaders/GLTFLoader.js +249 -60
  50. package/examples/js/loaders/KMZLoader.js +1 -1
  51. package/examples/js/loaders/KTX2Loader.js +1 -9
  52. package/examples/js/loaders/LDrawLoader.js +3 -11
  53. package/examples/js/loaders/LUT3dlLoader.js +1 -1
  54. package/examples/js/loaders/LUTCubeLoader.js +1 -1
  55. package/examples/js/loaders/LWOLoader.js +4 -2
  56. package/examples/js/loaders/LogLuvLoader.js +1 -2
  57. package/examples/js/loaders/MMDLoader.js +18 -4
  58. package/examples/js/loaders/NRRDLoader.js +1 -1
  59. package/examples/js/loaders/OBJLoader.js +9 -5
  60. package/examples/js/loaders/PCDLoader.js +22 -13
  61. package/examples/js/loaders/PDBLoader.js +11 -11
  62. package/examples/js/loaders/PLYLoader.js +5 -1
  63. package/examples/js/loaders/RGBELoader.js +3 -11
  64. package/examples/js/loaders/RGBMLoader.js +12 -15
  65. package/examples/js/loaders/SVGLoader.js +16 -9
  66. package/examples/js/loaders/VOXLoader.js +3 -4
  67. package/examples/js/loaders/VTKLoader.js +260 -295
  68. package/examples/js/loaders/lwo/LWO2Parser.js +4 -4
  69. package/examples/js/loaders/lwo/LWO3Parser.js +4 -4
  70. package/examples/js/math/ConvexHull.js +6 -15
  71. package/examples/js/math/Lut.js +27 -26
  72. package/examples/js/misc/MorphAnimMesh.js +2 -2
  73. package/examples/js/misc/ProgressiveLightMap.js +1 -1
  74. package/examples/js/misc/Volume.js +37 -46
  75. package/examples/js/misc/VolumeSlice.js +21 -21
  76. package/examples/js/modifiers/EdgeSplitModifier.js +0 -7
  77. package/examples/js/modifiers/SimplifyModifier.js +1 -8
  78. package/examples/js/modifiers/TessellateModifier.js +0 -7
  79. package/examples/js/objects/Lensflare.js +2 -2
  80. package/examples/js/objects/LightningStorm.js +4 -5
  81. package/examples/js/objects/MarchingCubes.js +6 -11
  82. package/examples/js/objects/Reflector.js +10 -4
  83. package/examples/js/objects/ReflectorForSSRPass.js +1 -1
  84. package/examples/js/objects/Refractor.js +10 -4
  85. package/examples/js/objects/ShadowMesh.js +1 -2
  86. package/examples/js/objects/Sky.js +1 -1
  87. package/examples/js/objects/Water.js +1 -2
  88. package/examples/js/objects/Water2.js +1 -1
  89. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +6 -10
  90. package/examples/js/postprocessing/AfterimagePass.js +2 -6
  91. package/examples/js/postprocessing/BloomPass.js +50 -19
  92. package/examples/js/postprocessing/DotScreenPass.js +1 -1
  93. package/examples/js/postprocessing/EffectComposer.js +1 -6
  94. package/examples/js/postprocessing/LUTPass.js +2 -2
  95. package/examples/js/postprocessing/OutlinePass.js +7 -12
  96. package/examples/js/postprocessing/SAOPass.js +2 -7
  97. package/examples/js/postprocessing/SSAARenderPass.js +1 -6
  98. package/examples/js/postprocessing/SSRPass.js +3 -8
  99. package/examples/js/postprocessing/TAARenderPass.js +4 -4
  100. package/examples/js/postprocessing/UnrealBloomPass.js +3 -12
  101. package/examples/js/renderers/CSS2DRenderer.js +20 -25
  102. package/examples/js/renderers/CSS3DRenderer.js +6 -7
  103. package/examples/js/renderers/Projector.js +97 -124
  104. package/examples/js/renderers/SVGRenderer.js +3 -4
  105. package/examples/js/shaders/BlendShader.js +2 -1
  106. package/examples/js/shaders/CopyShader.js +4 -3
  107. package/examples/js/shaders/FXAAShader.js +239 -1069
  108. package/examples/js/shaders/FreiChenShader.js +1 -1
  109. package/examples/js/shaders/HorizontalBlurShader.js +1 -1
  110. package/examples/js/shaders/HorizontalTiltShiftShader.js +1 -1
  111. package/examples/js/shaders/SSRShader.js +3 -3
  112. package/examples/js/shaders/ToneMapShader.js +1 -1
  113. package/examples/js/utils/BufferGeometryUtils.js +282 -22
  114. package/examples/js/utils/GPUStatsPanel.js +1 -1
  115. package/examples/js/utils/LDrawUtils.js +6 -6
  116. package/examples/js/utils/SceneUtils.js +59 -0
  117. package/examples/js/utils/SkeletonUtils.js +1 -1
  118. package/examples/js/utils/UVsDebug.js +23 -33
  119. package/examples/jsm/animation/CCDIKSolver.js +3 -9
  120. package/examples/jsm/animation/MMDPhysics.js +1 -1
  121. package/examples/jsm/capabilities/WebGPU.js +6 -0
  122. package/examples/jsm/controls/ArcballControls.js +3 -1
  123. package/examples/jsm/controls/PointerLockControls.js +4 -2
  124. package/examples/jsm/controls/TrackballControls.js +1 -4
  125. package/examples/jsm/controls/TransformControls.js +6 -6
  126. package/examples/jsm/controls/experimental/CameraControls.js +2 -2
  127. package/examples/jsm/csm/CSMFrustum.js +1 -1
  128. package/examples/jsm/csm/CSMShader.js +51 -35
  129. package/examples/jsm/curves/CurveExtras.js +15 -17
  130. package/examples/jsm/effects/AnaglyphEffect.js +4 -4
  131. package/examples/jsm/effects/AsciiEffect.js +9 -22
  132. package/examples/jsm/exporters/ColladaExporter.js +31 -6
  133. package/examples/jsm/exporters/EXRExporter.js +507 -0
  134. package/examples/jsm/exporters/GLTFExporter.js +231 -125
  135. package/examples/jsm/exporters/KTX2Exporter.js +281 -0
  136. package/examples/jsm/exporters/OBJExporter.js +11 -18
  137. package/examples/jsm/exporters/PLYExporter.js +23 -21
  138. package/examples/jsm/exporters/USDZExporter.js +12 -0
  139. package/examples/jsm/geometries/DecalGeometry.js +0 -7
  140. package/examples/jsm/geometries/LightningStrike.js +2 -2
  141. package/examples/jsm/geometries/ParametricGeometries.js +3 -3
  142. package/examples/jsm/helpers/OctreeHelper.js +58 -0
  143. package/examples/jsm/helpers/VertexNormalsHelper.js +4 -25
  144. package/examples/jsm/helpers/VertexTangentsHelper.js +3 -15
  145. package/examples/jsm/helpers/ViewHelper.js +295 -0
  146. package/examples/jsm/interactive/HTMLMesh.js +252 -34
  147. package/examples/jsm/interactive/SelectionHelper.js +1 -1
  148. package/examples/jsm/libs/flow.module.js +30 -27
  149. package/examples/jsm/libs/ktx-parse.module.js +1 -1
  150. package/examples/jsm/libs/mikktspace.module.js +128 -0
  151. package/examples/jsm/libs/opentype.module.js +14568 -0
  152. package/examples/jsm/lines/Line2.js +2 -2
  153. package/examples/jsm/lines/LineGeometry.js +11 -19
  154. package/examples/jsm/lines/LineMaterial.js +3 -3
  155. package/examples/jsm/lines/LineSegments2.js +210 -145
  156. package/examples/jsm/lines/LineSegmentsGeometry.js +3 -12
  157. package/examples/jsm/lines/Wireframe.js +3 -3
  158. package/examples/jsm/lines/WireframeGeometry2.js +2 -2
  159. package/examples/jsm/loaders/3DMLoader.js +3 -2
  160. package/examples/jsm/loaders/3MFLoader.js +21 -17
  161. package/examples/jsm/loaders/AMFLoader.js +1 -1
  162. package/examples/jsm/loaders/ColladaLoader.js +40 -12
  163. package/examples/jsm/loaders/DDSLoader.js +21 -28
  164. package/examples/jsm/loaders/EXRLoader.js +268 -265
  165. package/examples/jsm/loaders/FBXLoader.js +11 -0
  166. package/examples/jsm/loaders/FontLoader.js +2 -2
  167. package/examples/jsm/loaders/GCodeLoader.js +0 -1
  168. package/examples/jsm/loaders/GLTFLoader.js +263 -66
  169. package/examples/jsm/loaders/KMZLoader.js +1 -1
  170. package/examples/jsm/loaders/KTX2Loader.js +1 -10
  171. package/examples/jsm/loaders/LDrawLoader.js +4 -11
  172. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  173. package/examples/jsm/loaders/LUTCubeLoader.js +2 -2
  174. package/examples/jsm/loaders/LWOLoader.js +5 -3
  175. package/examples/jsm/loaders/LogLuvLoader.js +2 -2
  176. package/examples/jsm/loaders/MMDLoader.js +21 -3
  177. package/examples/jsm/loaders/NRRDLoader.js +1 -2
  178. package/examples/jsm/loaders/OBJLoader.js +11 -7
  179. package/examples/jsm/loaders/PCDLoader.js +23 -15
  180. package/examples/jsm/loaders/PDBLoader.js +11 -11
  181. package/examples/jsm/loaders/PLYLoader.js +10 -2
  182. package/examples/jsm/loaders/RGBELoader.js +4 -12
  183. package/examples/jsm/loaders/RGBMLoader.js +14 -11
  184. package/examples/jsm/loaders/SVGLoader.js +17 -9
  185. package/examples/jsm/loaders/TTFLoader.js +1 -1
  186. package/examples/jsm/loaders/VOXLoader.js +5 -5
  187. package/examples/jsm/loaders/VTKLoader.js +256 -284
  188. package/examples/jsm/loaders/ifc/web-ifc-api.js +9 -8
  189. package/examples/jsm/loaders/lwo/LWO2Parser.js +4 -4
  190. package/examples/jsm/loaders/lwo/LWO3Parser.js +4 -4
  191. package/examples/jsm/math/ConvexHull.js +6 -15
  192. package/examples/jsm/math/Lut.js +35 -25
  193. package/examples/jsm/misc/MorphAnimMesh.js +2 -2
  194. package/examples/jsm/misc/ProgressiveLightMap.js +1 -1
  195. package/examples/jsm/misc/Volume.js +37 -44
  196. package/examples/jsm/misc/VolumeSlice.js +21 -21
  197. package/examples/jsm/modifiers/EdgeSplitModifier.js +0 -7
  198. package/examples/jsm/modifiers/SimplifyModifier.js +1 -8
  199. package/examples/jsm/modifiers/TessellateModifier.js +0 -7
  200. package/examples/jsm/node-editor/NodeEditor.js +78 -9
  201. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +14 -0
  202. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  203. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  204. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  205. package/examples/jsm/node-editor/core/BaseNode.js +17 -11
  206. package/examples/jsm/node-editor/core/DataFile.js +59 -0
  207. package/examples/jsm/node-editor/core/FileEditor.js +20 -0
  208. package/examples/jsm/node-editor/core/FileURLEditor.js +29 -0
  209. package/examples/jsm/node-editor/display/BlendEditor.js +3 -3
  210. package/examples/jsm/node-editor/display/NormalMapEditor.js +49 -0
  211. package/examples/jsm/node-editor/examples/matcap.json +1 -0
  212. package/examples/jsm/node-editor/inputs/ColorEditor.js +7 -6
  213. package/examples/jsm/node-editor/inputs/FloatEditor.js +2 -2
  214. package/examples/jsm/node-editor/inputs/SliderEditor.js +2 -2
  215. package/examples/jsm/node-editor/inputs/TextureEditor.js +155 -0
  216. package/examples/jsm/node-editor/inputs/Vector2Editor.js +3 -2
  217. package/examples/jsm/node-editor/inputs/Vector3Editor.js +3 -2
  218. package/examples/jsm/node-editor/inputs/Vector4Editor.js +4 -3
  219. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +3 -3
  220. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +16 -11
  221. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +15 -5
  222. package/examples/jsm/node-editor/math/AngleEditor.js +3 -2
  223. package/examples/jsm/node-editor/math/DotEditor.js +2 -2
  224. package/examples/jsm/node-editor/math/InvertEditor.js +4 -4
  225. package/examples/jsm/node-editor/math/LimiterEditor.js +22 -9
  226. package/examples/jsm/node-editor/math/NormalizeEditor.js +3 -2
  227. package/examples/jsm/node-editor/math/OperatorEditor.js +20 -8
  228. package/examples/jsm/node-editor/math/PowerEditor.js +17 -8
  229. package/examples/jsm/node-editor/math/TrigonometryEditor.js +3 -2
  230. package/examples/jsm/node-editor/procedural/CheckerEditor.js +4 -4
  231. package/examples/jsm/node-editor/utils/JoinEditor.js +2 -2
  232. package/examples/jsm/node-editor/utils/OscillatorEditor.js +2 -2
  233. package/examples/jsm/node-editor/utils/PreviewEditor.js +166 -0
  234. package/examples/jsm/node-editor/utils/SplitEditor.js +2 -2
  235. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  236. package/examples/jsm/nodes/Nodes.js +283 -94
  237. package/examples/jsm/nodes/accessors/BufferNode.js +24 -0
  238. package/examples/jsm/nodes/accessors/CameraNode.js +27 -196
  239. package/examples/jsm/nodes/accessors/CubeTextureNode.js +103 -0
  240. package/examples/jsm/nodes/accessors/InstanceNode.js +58 -0
  241. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialNode.js +49 -11
  242. package/examples/jsm/{renderers/nodes → nodes}/accessors/MaterialReferenceNode.js +0 -0
  243. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelNode.js +8 -0
  244. package/examples/jsm/{renderers/nodes → nodes}/accessors/ModelViewProjectionNode.js +0 -0
  245. package/examples/jsm/nodes/accessors/NormalNode.js +39 -99
  246. package/examples/jsm/{renderers/nodes → nodes}/accessors/Object3DNode.js +34 -17
  247. package/examples/jsm/{renderers/nodes → nodes}/accessors/PointUVNode.js +2 -2
  248. package/examples/jsm/nodes/accessors/PositionNode.js +41 -110
  249. package/examples/jsm/nodes/accessors/ReferenceNode.js +65 -0
  250. package/examples/jsm/nodes/accessors/ReflectNode.js +34 -121
  251. package/examples/jsm/nodes/accessors/SkinningNode.js +102 -0
  252. package/examples/jsm/nodes/accessors/StorageBufferNode.js +21 -0
  253. package/examples/jsm/nodes/accessors/TextureNode.js +100 -0
  254. package/examples/jsm/nodes/accessors/UVNode.js +17 -43
  255. package/examples/jsm/nodes/accessors/UserDataNode.js +23 -0
  256. package/examples/jsm/nodes/core/ArrayUniformNode.js +23 -0
  257. package/examples/jsm/nodes/core/AttributeNode.js +33 -30
  258. package/examples/jsm/{renderers/nodes → nodes}/core/BypassNode.js +2 -2
  259. package/examples/jsm/{renderers/nodes → nodes}/core/CodeNode.js +2 -30
  260. package/examples/jsm/nodes/core/ConstNode.js +10 -106
  261. package/examples/jsm/{renderers/nodes → nodes}/core/ContextNode.js +17 -3
  262. package/examples/jsm/nodes/core/ExpressionNode.js +24 -7
  263. package/examples/jsm/nodes/core/FunctionCallNode.js +26 -67
  264. package/examples/jsm/nodes/core/FunctionNode.js +43 -216
  265. package/examples/jsm/nodes/core/InputNode.js +28 -60
  266. package/examples/jsm/nodes/core/InstanceIndexNode.js +21 -0
  267. package/examples/jsm/nodes/core/Node.js +228 -94
  268. package/examples/jsm/{renderers/nodes → nodes}/core/NodeAttribute.js +2 -2
  269. package/examples/jsm/nodes/core/NodeBuilder.js +388 -560
  270. package/examples/jsm/{renderers/nodes → nodes}/core/NodeCode.js +0 -0
  271. package/examples/jsm/nodes/core/NodeFrame.js +30 -23
  272. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunction.js +0 -0
  273. package/examples/jsm/{renderers/nodes → nodes}/core/NodeFunctionInput.js +0 -0
  274. package/examples/jsm/{renderers/nodes → nodes}/core/NodeKeywords.js +0 -0
  275. package/examples/jsm/{renderers/nodes → nodes}/core/NodeParser.js +0 -0
  276. package/examples/jsm/nodes/core/NodeUniform.js +8 -6
  277. package/examples/jsm/nodes/core/NodeUtils.js +69 -37
  278. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVar.js +2 -2
  279. package/examples/jsm/{renderers/nodes → nodes}/core/NodeVary.js +2 -2
  280. package/examples/jsm/{renderers/nodes → nodes}/core/PropertyNode.js +0 -0
  281. package/examples/jsm/nodes/core/TempNode.js +20 -112
  282. package/examples/jsm/nodes/core/UniformNode.js +46 -0
  283. package/examples/jsm/nodes/core/VarNode.js +58 -27
  284. package/examples/jsm/{renderers/nodes → nodes}/core/VaryNode.js +0 -0
  285. package/examples/jsm/{renderers/nodes → nodes}/core/constants.js +0 -0
  286. package/examples/jsm/{renderers/nodes → nodes}/display/ColorSpaceNode.js +10 -11
  287. package/examples/jsm/nodes/display/FrontFacingNode.js +21 -0
  288. package/examples/jsm/nodes/display/NormalMapNode.js +86 -0
  289. package/examples/jsm/nodes/display/ToneMappingNode.js +51 -0
  290. package/examples/jsm/nodes/fog/FogNode.js +31 -0
  291. package/examples/jsm/nodes/fog/FogRangeNode.js +27 -0
  292. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +33 -0
  293. package/examples/jsm/nodes/functions/BSDF/BRDF_Lambert.js +9 -0
  294. package/examples/jsm/nodes/functions/BSDF/DFGApprox.js +27 -0
  295. package/examples/jsm/nodes/functions/BSDF/D_GGX.js +18 -0
  296. package/examples/jsm/nodes/functions/BSDF/F_Schlick.js +18 -0
  297. package/examples/jsm/nodes/functions/BSDF/V_GGX_SmithCorrelated.js +18 -0
  298. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +94 -0
  299. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +22 -0
  300. package/examples/jsm/nodes/functions/material/getGeometryRoughness.js +12 -0
  301. package/examples/jsm/nodes/functions/material/getRoughness.js +18 -0
  302. package/examples/jsm/nodes/gpgpu/ComputeNode.js +63 -0
  303. package/examples/jsm/nodes/lighting/AONode.js +25 -0
  304. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +37 -0
  305. package/examples/jsm/nodes/lighting/EnvironmentNode.js +65 -0
  306. package/examples/jsm/nodes/lighting/HemisphereLightNode.js +50 -0
  307. package/examples/jsm/nodes/lighting/LightingContextNode.js +75 -0
  308. package/examples/jsm/nodes/lighting/LightingNode.js +19 -0
  309. package/examples/jsm/nodes/lighting/LightsNode.js +120 -0
  310. package/examples/jsm/nodes/lighting/PunctualLightNode.js +68 -0
  311. package/examples/jsm/nodes/loaders/NodeLoader.js +107 -0
  312. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +42 -0
  313. package/examples/jsm/nodes/loaders/NodeObjectLoader.js +70 -0
  314. package/examples/jsm/{renderers/nodes → nodes}/materials/LineBasicNodeMaterial.js +11 -4
  315. package/examples/jsm/nodes/materials/Materials.js +65 -0
  316. package/examples/jsm/{renderers/nodes → nodes}/materials/MeshBasicNodeMaterial.js +13 -4
  317. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +162 -22
  318. package/examples/jsm/nodes/materials/NodeMaterial.js +128 -113
  319. package/examples/jsm/{renderers/nodes → nodes}/materials/PointsNodeMaterial.js +13 -4
  320. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +84 -16
  321. package/examples/jsm/nodes/math/CondNode.js +26 -95
  322. package/examples/jsm/nodes/math/MathNode.js +164 -187
  323. package/examples/jsm/nodes/math/OperatorNode.js +161 -41
  324. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeFunction.js +2 -2
  325. package/examples/jsm/{renderers/nodes → nodes}/parsers/GLSLNodeParser.js +0 -0
  326. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeFunction.js +20 -5
  327. package/examples/jsm/{renderers/nodes → nodes}/parsers/WGSLNodeParser.js +0 -0
  328. package/examples/jsm/nodes/procedural/CheckerNode.js +16 -57
  329. package/examples/jsm/nodes/shadernode/ShaderNode.js +262 -0
  330. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +274 -0
  331. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +106 -0
  332. package/examples/jsm/{renderers/nodes → nodes}/utils/ArrayElementNode.js +3 -3
  333. package/examples/jsm/{renderers/nodes → nodes}/utils/ConvertNode.js +11 -3
  334. package/examples/jsm/nodes/utils/JoinNode.js +17 -89
  335. package/examples/jsm/nodes/utils/MatcapUVNode.js +25 -0
  336. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +32 -0
  337. package/examples/jsm/{renderers/nodes → nodes}/utils/OscNode.js +18 -2
  338. package/examples/jsm/{renderers/nodes → nodes}/utils/SplitNode.js +16 -0
  339. package/examples/jsm/{renderers/nodes → nodes}/utils/SpriteSheetUVNode.js +3 -3
  340. package/examples/jsm/nodes/utils/TimerNode.js +30 -65
  341. package/examples/jsm/objects/Lensflare.js +2 -2
  342. package/examples/jsm/objects/LightningStorm.js +4 -4
  343. package/examples/jsm/objects/MarchingCubes.js +5 -9
  344. package/examples/jsm/objects/Reflector.js +8 -4
  345. package/examples/jsm/objects/ReflectorForSSRPass.js +2 -2
  346. package/examples/jsm/objects/Refractor.js +8 -4
  347. package/examples/jsm/objects/ShadowMesh.js +2 -2
  348. package/examples/jsm/objects/Sky.js +2 -2
  349. package/examples/jsm/objects/Water.js +2 -2
  350. package/examples/jsm/objects/Water2.js +2 -2
  351. package/examples/jsm/offscreen/jank.js +5 -5
  352. package/examples/jsm/offscreen/offscreen.js +1 -1
  353. package/examples/jsm/offscreen/scene.js +11 -11
  354. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +5 -7
  355. package/examples/jsm/postprocessing/AfterimagePass.js +0 -10
  356. package/examples/jsm/postprocessing/BloomPass.js +48 -20
  357. package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
  358. package/examples/jsm/postprocessing/EffectComposer.js +1 -9
  359. package/examples/jsm/postprocessing/LUTPass.js +2 -2
  360. package/examples/jsm/postprocessing/OutlinePass.js +7 -11
  361. package/examples/jsm/postprocessing/SAOPass.js +2 -9
  362. package/examples/jsm/postprocessing/SSAARenderPass.js +1 -4
  363. package/examples/jsm/postprocessing/SSRPass.js +3 -9
  364. package/examples/jsm/postprocessing/TAARenderPass.js +4 -4
  365. package/examples/jsm/postprocessing/UnrealBloomPass.js +3 -8
  366. package/examples/jsm/renderers/CSS2DRenderer.js +21 -24
  367. package/examples/jsm/renderers/CSS3DRenderer.js +7 -8
  368. package/examples/jsm/renderers/Projector.js +101 -128
  369. package/examples/jsm/renderers/SVGRenderer.js +4 -4
  370. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +1 -1
  371. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +127 -23
  372. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +14 -3
  373. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +5 -5
  374. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +4 -4
  375. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +16 -10
  376. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +8 -7
  377. package/examples/jsm/renderers/webgpu/WebGPUBuffer.js +43 -0
  378. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +14 -7
  379. package/examples/jsm/renderers/webgpu/WebGPUInfo.js +1 -1
  380. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +0 -6
  381. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +20 -20
  382. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +2 -1
  383. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +66 -0
  384. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +47 -24
  385. package/examples/jsm/renderers/webgpu/WebGPUSampledTexture.js +14 -14
  386. package/examples/jsm/renderers/webgpu/WebGPUSampler.js +2 -2
  387. package/examples/jsm/renderers/webgpu/WebGPUStorageBuffer.js +5 -8
  388. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +23 -20
  389. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +37 -18
  390. package/examples/jsm/renderers/webgpu/WebGPUUniform.js +14 -14
  391. package/examples/jsm/renderers/webgpu/WebGPUUniformBuffer.js +5 -32
  392. package/examples/jsm/renderers/webgpu/WebGPUUniformsGroup.js +2 -2
  393. package/examples/jsm/renderers/webgpu/constants.js +3 -2
  394. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +276 -284
  395. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeSampledTexture.js +20 -2
  396. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +24 -14
  397. package/examples/jsm/shaders/BlendShader.js +2 -1
  398. package/examples/jsm/shaders/CopyShader.js +4 -3
  399. package/examples/jsm/shaders/FXAAShader.js +219 -1051
  400. package/examples/jsm/shaders/FreiChenShader.js +1 -1
  401. package/examples/jsm/shaders/HorizontalBlurShader.js +1 -1
  402. package/examples/jsm/shaders/HorizontalTiltShiftShader.js +1 -1
  403. package/examples/jsm/shaders/SSRShader.js +3 -3
  404. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  405. package/examples/jsm/utils/BufferGeometryUtils.js +292 -22
  406. package/examples/jsm/utils/GPUStatsPanel.js +1 -1
  407. package/examples/jsm/utils/LDrawUtils.js +6 -6
  408. package/examples/jsm/utils/SceneUtils.js +76 -2
  409. package/examples/jsm/utils/SkeletonUtils.js +1 -1
  410. package/examples/jsm/utils/UVsDebug.js +23 -32
  411. package/examples/jsm/webxr/ARButton.js +14 -4
  412. package/examples/jsm/webxr/OculusHandPointerModel.js +3 -3
  413. package/examples/jsm/webxr/Text2D.js +1 -1
  414. package/examples/jsm/webxr/VRButton.js +15 -1
  415. package/examples/jsm/webxr/XRHandMeshModel.js +3 -7
  416. package/examples/jsm/webxr/XRHandModelFactory.js +3 -0
  417. package/package.json +37 -19
  418. package/src/Three.Legacy.js +41 -1912
  419. package/src/Three.js +6 -3
  420. package/src/animation/AnimationClip.js +1 -1
  421. package/src/animation/AnimationMixer.js +5 -3
  422. package/src/animation/AnimationObjectGroup.js +2 -2
  423. package/src/animation/PropertyBinding.js +8 -18
  424. package/src/audio/PositionalAudio.js +8 -0
  425. package/src/cameras/ArrayCamera.js +2 -3
  426. package/src/cameras/Camera.js +2 -2
  427. package/src/cameras/CubeCamera.js +6 -1
  428. package/src/cameras/OrthographicCamera.js +2 -2
  429. package/src/cameras/PerspectiveCamera.js +2 -2
  430. package/src/constants.js +7 -2
  431. package/src/core/BufferAttribute.js +7 -12
  432. package/src/core/BufferGeometry.js +4 -4
  433. package/src/core/GLBufferAttribute.js +2 -2
  434. package/src/core/InstancedBufferAttribute.js +2 -2
  435. package/src/core/InstancedBufferGeometry.js +2 -2
  436. package/src/core/InstancedInterleavedBuffer.js +2 -2
  437. package/src/core/InterleavedBuffer.js +2 -2
  438. package/src/core/InterleavedBufferAttribute.js +5 -11
  439. package/src/core/Object3D.js +6 -3
  440. package/src/core/Raycaster.js +2 -2
  441. package/src/extras/DataUtils.js +127 -40
  442. package/src/extras/Earcut.js +2 -2
  443. package/src/extras/PMREMGenerator.js +132 -104
  444. package/src/extras/core/CurvePath.js +3 -3
  445. package/src/extras/core/ShapePath.js +5 -6
  446. package/src/extras/curves/ArcCurve.js +2 -2
  447. package/src/extras/curves/CatmullRomCurve3.js +2 -2
  448. package/src/extras/curves/CubicBezierCurve.js +2 -2
  449. package/src/extras/curves/CubicBezierCurve3.js +2 -2
  450. package/src/extras/curves/EllipseCurve.js +2 -2
  451. package/src/extras/curves/LineCurve.js +2 -2
  452. package/src/extras/curves/LineCurve3.js +2 -1
  453. package/src/extras/curves/QuadraticBezierCurve.js +2 -2
  454. package/src/extras/curves/QuadraticBezierCurve3.js +2 -2
  455. package/src/extras/curves/SplineCurve.js +2 -2
  456. package/src/geometries/CapsuleGeometry.js +33 -0
  457. package/src/geometries/ExtrudeGeometry.js +2 -0
  458. package/src/geometries/Geometries.js +1 -0
  459. package/src/geometries/TorusKnotGeometry.js +2 -2
  460. package/src/geometries/WireframeGeometry.js +3 -2
  461. package/src/helpers/BoxHelper.js +2 -2
  462. package/src/helpers/PointLightHelper.js +1 -1
  463. package/src/helpers/SkeletonHelper.js +3 -2
  464. package/src/lights/AmbientLight.js +2 -2
  465. package/src/lights/AmbientLightProbe.js +2 -2
  466. package/src/lights/DirectionalLight.js +2 -2
  467. package/src/lights/DirectionalLightShadow.js +2 -2
  468. package/src/lights/HemisphereLight.js +4 -4
  469. package/src/lights/HemisphereLightProbe.js +2 -2
  470. package/src/lights/Light.js +4 -4
  471. package/src/lights/LightProbe.js +2 -2
  472. package/src/lights/PointLight.js +4 -4
  473. package/src/lights/PointLightShadow.js +2 -2
  474. package/src/lights/RectAreaLight.js +2 -2
  475. package/src/lights/SpotLight.js +4 -4
  476. package/src/lights/SpotLightShadow.js +2 -2
  477. package/src/loaders/FileLoader.js +3 -1
  478. package/src/loaders/ImageBitmapLoader.js +2 -2
  479. package/src/loaders/ImageLoader.js +1 -1
  480. package/src/loaders/LoaderUtils.js +1 -1
  481. package/src/loaders/MaterialLoader.js +8 -3
  482. package/src/loaders/ObjectLoader.js +23 -25
  483. package/src/materials/LineBasicMaterial.js +6 -13
  484. package/src/materials/LineDashedMaterial.js +2 -15
  485. package/src/materials/Material.js +48 -14
  486. package/src/materials/Materials.js +66 -18
  487. package/src/materials/MeshBasicMaterial.js +6 -31
  488. package/src/materials/MeshDepthMaterial.js +2 -22
  489. package/src/materials/MeshDistanceMaterial.js +2 -22
  490. package/src/materials/MeshLambertMaterial.js +6 -34
  491. package/src/materials/MeshMatcapMaterial.js +6 -28
  492. package/src/materials/MeshNormalMaterial.js +2 -26
  493. package/src/materials/MeshPhongMaterial.js +6 -48
  494. package/src/materials/MeshPhysicalMaterial.js +32 -35
  495. package/src/materials/MeshStandardMaterial.js +6 -54
  496. package/src/materials/MeshToonMaterial.js +6 -38
  497. package/src/materials/PointsMaterial.js +6 -15
  498. package/src/materials/RawShaderMaterial.js +2 -2
  499. package/src/materials/ShaderMaterial.js +3 -17
  500. package/src/materials/ShadowMaterial.js +6 -8
  501. package/src/materials/SpriteMaterial.js +6 -12
  502. package/src/math/Box2.js +2 -2
  503. package/src/math/Box3.js +5 -5
  504. package/src/math/Color.js +84 -35
  505. package/src/math/ColorManagement.js +74 -0
  506. package/src/math/Euler.js +16 -14
  507. package/src/math/Interpolant.js +4 -9
  508. package/src/math/MathUtils.js +76 -7
  509. package/src/math/Matrix3.js +2 -2
  510. package/src/math/Matrix4.js +2 -3
  511. package/src/math/Plane.js +2 -2
  512. package/src/math/Quaternion.js +11 -2
  513. package/src/math/Spherical.js +1 -1
  514. package/src/math/SphericalHarmonics3.js +2 -2
  515. package/src/math/Vector2.js +2 -2
  516. package/src/math/Vector3.js +12 -3
  517. package/src/math/Vector4.js +2 -2
  518. package/src/math/interpolants/DiscreteInterpolant.js +1 -1
  519. package/src/objects/Bone.js +2 -2
  520. package/src/objects/Group.js +2 -2
  521. package/src/objects/InstancedMesh.js +4 -4
  522. package/src/objects/Line.js +76 -107
  523. package/src/objects/LineLoop.js +2 -2
  524. package/src/objects/LineSegments.js +15 -23
  525. package/src/objects/Mesh.js +82 -104
  526. package/src/objects/Points.js +32 -54
  527. package/src/objects/SkinnedMesh.js +5 -8
  528. package/src/objects/Sprite.js +4 -4
  529. package/src/renderers/WebGL3DRenderTarget.js +22 -0
  530. package/src/renderers/WebGLArrayRenderTarget.js +22 -0
  531. package/src/renderers/WebGLCubeRenderTarget.js +7 -14
  532. package/src/renderers/WebGLMultipleRenderTargets.js +8 -5
  533. package/src/renderers/WebGLRenderTarget.js +16 -18
  534. package/src/renderers/WebGLRenderer.js +108 -63
  535. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +46 -0
  536. package/src/renderers/shaders/ShaderChunk/common.glsl.js +1 -0
  537. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +12 -13
  538. package/src/renderers/shaders/ShaderChunk/dithering_pars_fragment.glsl.js +1 -1
  539. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +3 -19
  540. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +107 -0
  541. package/src/renderers/shaders/ShaderChunk/iridescence_pars_fragment.glsl.js +14 -0
  542. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +0 -6
  543. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +25 -0
  544. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +0 -6
  545. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +23 -0
  546. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +43 -5
  547. package/src/renderers/shaders/ShaderChunk/morphcolor_vertex.glsl.js +24 -0
  548. package/src/renderers/shaders/ShaderChunk/morphnormal_vertex.glsl.js +1 -1
  549. package/src/renderers/shaders/ShaderChunk/morphtarget_pars_vertex.glsl.js +7 -7
  550. package/src/renderers/shaders/ShaderChunk/morphtarget_vertex.glsl.js +1 -9
  551. package/src/renderers/shaders/ShaderChunk/skinning_pars_vertex.glsl.js +16 -31
  552. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +1 -1
  553. package/src/renderers/shaders/ShaderChunk.js +6 -0
  554. package/src/renderers/shaders/ShaderLib/background.glsl.js +8 -0
  555. package/src/renderers/shaders/ShaderLib/linedashed.glsl.js +1 -0
  556. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +3 -2
  557. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +1 -0
  558. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +1 -0
  559. package/src/renderers/shaders/ShaderLib/meshnormal.glsl.js +6 -0
  560. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +1 -0
  561. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +10 -0
  562. package/src/renderers/shaders/ShaderLib/meshtoon.glsl.js +1 -0
  563. package/src/renderers/shaders/ShaderLib/points.glsl.js +1 -0
  564. package/src/renderers/shaders/ShaderLib.js +6 -0
  565. package/src/renderers/shaders/UniformsLib.js +2 -2
  566. package/src/renderers/webgl/WebGLAttributes.js +6 -6
  567. package/src/renderers/webgl/WebGLBackground.js +3 -0
  568. package/src/renderers/webgl/WebGLBindingStates.js +57 -29
  569. package/src/renderers/webgl/WebGLLights.js +0 -1
  570. package/src/renderers/webgl/WebGLMaterials.js +72 -187
  571. package/src/renderers/webgl/WebGLMorphtargets.js +47 -23
  572. package/src/renderers/webgl/WebGLProgram.js +57 -19
  573. package/src/renderers/webgl/WebGLPrograms.js +75 -86
  574. package/src/renderers/webgl/WebGLShaderCache.js +4 -3
  575. package/src/renderers/webgl/WebGLShadowMap.js +6 -8
  576. package/src/renderers/webgl/WebGLTextures.js +567 -380
  577. package/src/renderers/webgl/WebGLUniforms.js +79 -80
  578. package/src/renderers/webgl/WebGLUtils.js +12 -1
  579. package/src/renderers/webxr/WebXRManager.js +60 -45
  580. package/src/scenes/Fog.js +2 -2
  581. package/src/scenes/FogExp2.js +2 -2
  582. package/src/scenes/Scene.js +2 -2
  583. package/src/textures/CanvasTexture.js +2 -2
  584. package/src/textures/CompressedTexture.js +2 -2
  585. package/src/textures/CubeTexture.js +2 -2
  586. package/src/textures/{DataTexture3D.js → Data3DTexture.js} +4 -4
  587. package/src/textures/{DataTexture2DArray.js → DataArrayTexture.js} +4 -4
  588. package/src/textures/DataTexture.js +2 -5
  589. package/src/textures/DepthTexture.js +5 -5
  590. package/src/textures/FramebufferTexture.js +2 -2
  591. package/src/textures/Source.js +123 -0
  592. package/src/textures/Texture.js +27 -97
  593. package/src/textures/VideoTexture.js +2 -2
  594. package/examples/js/csm/Frustum.js +0 -133
  595. package/examples/js/deprecated/Geometry.js +0 -1656
  596. package/examples/js/loaders/VRMLoader.js +0 -72
  597. package/examples/js/objects/ReflectorRTT.js +0 -16
  598. package/examples/js/postprocessing/SSRrPass.js +0 -494
  599. package/examples/js/shaders/SSRrShader.js +0 -336
  600. package/examples/jsm/deprecated/Geometry.js +0 -1869
  601. package/examples/jsm/libs/opentype.module.min.js +0 -119
  602. package/examples/jsm/loaders/NodeMaterialLoader.js +0 -263
  603. package/examples/jsm/loaders/VRMLoader.js +0 -78
  604. package/examples/jsm/nodes/accessors/ColorsNode.js +0 -56
  605. package/examples/jsm/nodes/accessors/LightNode.js +0 -60
  606. package/examples/jsm/nodes/accessors/ResolutionNode.js +0 -64
  607. package/examples/jsm/nodes/accessors/ScreenUVNode.js +0 -64
  608. package/examples/jsm/nodes/core/NodeLib.js +0 -64
  609. package/examples/jsm/nodes/core/StructNode.js +0 -106
  610. package/examples/jsm/nodes/effects/BlurNode.js +0 -171
  611. package/examples/jsm/nodes/effects/ColorAdjustmentNode.js +0 -140
  612. package/examples/jsm/nodes/effects/LuminanceNode.js +0 -75
  613. package/examples/jsm/nodes/inputs/BoolNode.js +0 -51
  614. package/examples/jsm/nodes/inputs/ColorNode.js +0 -58
  615. package/examples/jsm/nodes/inputs/CubeTextureNode.js +0 -108
  616. package/examples/jsm/nodes/inputs/FloatNode.js +0 -51
  617. package/examples/jsm/nodes/inputs/IntNode.js +0 -51
  618. package/examples/jsm/nodes/inputs/Matrix3Node.js +0 -63
  619. package/examples/jsm/nodes/inputs/Matrix4Node.js +0 -63
  620. package/examples/jsm/nodes/inputs/PropertyNode.js +0 -47
  621. package/examples/jsm/nodes/inputs/RTTNode.js +0 -157
  622. package/examples/jsm/nodes/inputs/ReflectorNode.js +0 -90
  623. package/examples/jsm/nodes/inputs/ScreenNode.js +0 -28
  624. package/examples/jsm/nodes/inputs/TextureNode.js +0 -116
  625. package/examples/jsm/nodes/inputs/Vector2Node.js +0 -57
  626. package/examples/jsm/nodes/inputs/Vector3Node.js +0 -58
  627. package/examples/jsm/nodes/inputs/Vector4Node.js +0 -59
  628. package/examples/jsm/nodes/materials/BasicNodeMaterial.js +0 -26
  629. package/examples/jsm/nodes/materials/PhongNodeMaterial.js +0 -36
  630. package/examples/jsm/nodes/materials/StandardNodeMaterial.js +0 -40
  631. package/examples/jsm/nodes/materials/nodes/BasicNode.js +0 -154
  632. package/examples/jsm/nodes/materials/nodes/MeshStandardNode.js +0 -116
  633. package/examples/jsm/nodes/materials/nodes/PhongNode.js +0 -409
  634. package/examples/jsm/nodes/materials/nodes/RawNode.js +0 -62
  635. package/examples/jsm/nodes/materials/nodes/SpriteNode.js +0 -236
  636. package/examples/jsm/nodes/materials/nodes/StandardNode.js +0 -609
  637. package/examples/jsm/nodes/misc/BumpMapNode.js +0 -163
  638. package/examples/jsm/nodes/misc/NormalMapNode.js +0 -138
  639. package/examples/jsm/nodes/misc/TextureCubeNode.js +0 -86
  640. package/examples/jsm/nodes/misc/TextureCubeUVNode.js +0 -280
  641. package/examples/jsm/nodes/postprocessing/NodePass.js +0 -93
  642. package/examples/jsm/nodes/postprocessing/NodePostProcessing.js +0 -148
  643. package/examples/jsm/nodes/procedural/Fractal3DNode.js +0 -104
  644. package/examples/jsm/nodes/procedural/Noise2DNode.js +0 -149
  645. package/examples/jsm/nodes/procedural/Noise3DNode.js +0 -141
  646. package/examples/jsm/nodes/utils/BypassNode.js +0 -85
  647. package/examples/jsm/nodes/utils/ColorSpaceNode.js +0 -145
  648. package/examples/jsm/nodes/utils/MaxMIPLevelNode.js +0 -56
  649. package/examples/jsm/nodes/utils/RemapNode.js +0 -155
  650. package/examples/jsm/nodes/utils/SpecularMIPLevelNode.js +0 -101
  651. package/examples/jsm/nodes/utils/SubSlotNode.js +0 -77
  652. package/examples/jsm/nodes/utils/SwitchNode.js +0 -103
  653. package/examples/jsm/nodes/utils/UVTransformNode.js +0 -66
  654. package/examples/jsm/nodes/utils/VelocityNode.js +0 -170
  655. package/examples/jsm/objects/ReflectorRTT.js +0 -15
  656. package/examples/jsm/postprocessing/SSRrPass.js +0 -579
  657. package/examples/jsm/renderers/nodes/Nodes.js +0 -166
  658. package/examples/jsm/renderers/nodes/ShaderNode.js +0 -373
  659. package/examples/jsm/renderers/nodes/accessors/CameraNode.js +0 -68
  660. package/examples/jsm/renderers/nodes/accessors/NormalNode.js +0 -63
  661. package/examples/jsm/renderers/nodes/accessors/PositionNode.js +0 -67
  662. package/examples/jsm/renderers/nodes/accessors/ReferenceNode.js +0 -91
  663. package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +0 -107
  664. package/examples/jsm/renderers/nodes/accessors/UVNode.js +0 -25
  665. package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +0 -23
  666. package/examples/jsm/renderers/nodes/core/AttributeNode.js +0 -54
  667. package/examples/jsm/renderers/nodes/core/ExpressionNode.js +0 -32
  668. package/examples/jsm/renderers/nodes/core/FunctionCallNode.js +0 -67
  669. package/examples/jsm/renderers/nodes/core/FunctionNode.js +0 -87
  670. package/examples/jsm/renderers/nodes/core/InputNode.js +0 -66
  671. package/examples/jsm/renderers/nodes/core/Node.js +0 -104
  672. package/examples/jsm/renderers/nodes/core/NodeBuilder.js +0 -634
  673. package/examples/jsm/renderers/nodes/core/NodeFrame.js +0 -59
  674. package/examples/jsm/renderers/nodes/core/NodeUniform.js +0 -28
  675. package/examples/jsm/renderers/nodes/core/TempNode.js +0 -43
  676. package/examples/jsm/renderers/nodes/core/VarNode.js +0 -51
  677. package/examples/jsm/renderers/nodes/display/NormalMapNode.js +0 -87
  678. package/examples/jsm/renderers/nodes/functions/BSDFs.js +0 -122
  679. package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +0 -27
  680. package/examples/jsm/renderers/nodes/inputs/BufferNode.js +0 -25
  681. package/examples/jsm/renderers/nodes/inputs/ColorNode.js +0 -18
  682. package/examples/jsm/renderers/nodes/inputs/FloatNode.js +0 -17
  683. package/examples/jsm/renderers/nodes/inputs/IntNode.js +0 -17
  684. package/examples/jsm/renderers/nodes/inputs/Matrix3Node.js +0 -18
  685. package/examples/jsm/renderers/nodes/inputs/Matrix4Node.js +0 -18
  686. package/examples/jsm/renderers/nodes/inputs/TextureNode.js +0 -74
  687. package/examples/jsm/renderers/nodes/inputs/Vector2Node.js +0 -18
  688. package/examples/jsm/renderers/nodes/inputs/Vector3Node.js +0 -18
  689. package/examples/jsm/renderers/nodes/inputs/Vector4Node.js +0 -18
  690. package/examples/jsm/renderers/nodes/lights/LightContextNode.js +0 -59
  691. package/examples/jsm/renderers/nodes/lights/LightNode.js +0 -79
  692. package/examples/jsm/renderers/nodes/lights/LightsNode.js +0 -44
  693. package/examples/jsm/renderers/nodes/materials/Materials.js +0 -11
  694. package/examples/jsm/renderers/nodes/materials/MeshStandardNodeMaterial.js +0 -63
  695. package/examples/jsm/renderers/nodes/math/CondNode.js +0 -60
  696. package/examples/jsm/renderers/nodes/math/MathNode.js +0 -242
  697. package/examples/jsm/renderers/nodes/math/OperatorNode.js +0 -174
  698. package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +0 -36
  699. package/examples/jsm/renderers/nodes/utils/JoinNode.js +0 -42
  700. package/examples/jsm/renderers/nodes/utils/TimerNode.js +0 -47
  701. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeUniformsGroup.js +0 -20
  702. package/examples/jsm/shaders/SSRrShader.js +0 -307
  703. package/src/renderers/WebGLMultisampleRenderTarget.js +0 -33
@@ -56,67 +56,67 @@ class VTKLoader extends Loader {
56
56
  function parseASCII( data ) {
57
57
 
58
58
  // connectivity of the triangles
59
- var indices = [];
59
+ const indices = [];
60
60
 
61
61
  // triangles vertices
62
- var positions = [];
62
+ const positions = [];
63
63
 
64
64
  // red, green, blue colors in the range 0 to 1
65
- var colors = [];
65
+ const colors = [];
66
66
 
67
67
  // normal vector, one per vertex
68
- var normals = [];
68
+ const normals = [];
69
69
 
70
- var result;
70
+ let result;
71
71
 
72
72
  // pattern for detecting the end of a number sequence
73
- var patWord = /^[^\d.\s-]+/;
73
+ const patWord = /^[^\d.\s-]+/;
74
74
 
75
75
  // pattern for reading vertices, 3 floats or integers
76
- var pat3Floats = /(\-?\d+\.?[\d\-\+e]*)\s+(\-?\d+\.?[\d\-\+e]*)\s+(\-?\d+\.?[\d\-\+e]*)/g;
76
+ const pat3Floats = /(\-?\d+\.?[\d\-\+e]*)\s+(\-?\d+\.?[\d\-\+e]*)\s+(\-?\d+\.?[\d\-\+e]*)/g;
77
77
 
78
78
  // pattern for connectivity, an integer followed by any number of ints
79
79
  // the first integer is the number of polygon nodes
80
- var patConnectivity = /^(\d+)\s+([\s\d]*)/;
80
+ const patConnectivity = /^(\d+)\s+([\s\d]*)/;
81
81
 
82
82
  // indicates start of vertex data section
83
- var patPOINTS = /^POINTS /;
83
+ const patPOINTS = /^POINTS /;
84
84
 
85
85
  // indicates start of polygon connectivity section
86
- var patPOLYGONS = /^POLYGONS /;
86
+ const patPOLYGONS = /^POLYGONS /;
87
87
 
88
88
  // indicates start of triangle strips section
89
- var patTRIANGLE_STRIPS = /^TRIANGLE_STRIPS /;
89
+ const patTRIANGLE_STRIPS = /^TRIANGLE_STRIPS /;
90
90
 
91
91
  // POINT_DATA number_of_values
92
- var patPOINT_DATA = /^POINT_DATA[ ]+(\d+)/;
92
+ const patPOINT_DATA = /^POINT_DATA[ ]+(\d+)/;
93
93
 
94
94
  // CELL_DATA number_of_polys
95
- var patCELL_DATA = /^CELL_DATA[ ]+(\d+)/;
95
+ const patCELL_DATA = /^CELL_DATA[ ]+(\d+)/;
96
96
 
97
97
  // Start of color section
98
- var patCOLOR_SCALARS = /^COLOR_SCALARS[ ]+(\w+)[ ]+3/;
98
+ const patCOLOR_SCALARS = /^COLOR_SCALARS[ ]+(\w+)[ ]+3/;
99
99
 
100
100
  // NORMALS Normals float
101
- var patNORMALS = /^NORMALS[ ]+(\w+)[ ]+(\w+)/;
101
+ const patNORMALS = /^NORMALS[ ]+(\w+)[ ]+(\w+)/;
102
102
 
103
- var inPointsSection = false;
104
- var inPolygonsSection = false;
105
- var inTriangleStripSection = false;
106
- var inPointDataSection = false;
107
- var inCellDataSection = false;
108
- var inColorSection = false;
109
- var inNormalsSection = false;
103
+ let inPointsSection = false;
104
+ let inPolygonsSection = false;
105
+ let inTriangleStripSection = false;
106
+ let inPointDataSection = false;
107
+ let inCellDataSection = false;
108
+ let inColorSection = false;
109
+ let inNormalsSection = false;
110
110
 
111
- var lines = data.split( '\n' );
111
+ const lines = data.split( '\n' );
112
112
 
113
- for ( var i in lines ) {
113
+ for ( const i in lines ) {
114
114
 
115
- var line = lines[ i ].trim();
115
+ const line = lines[ i ].trim();
116
116
 
117
117
  if ( line.indexOf( 'DATASET' ) === 0 ) {
118
118
 
119
- var dataset = line.split( ' ' )[ 1 ];
119
+ const dataset = line.split( ' ' )[ 1 ];
120
120
 
121
121
  if ( dataset !== 'POLYDATA' ) throw new Error( 'Unsupported DATASET type: ' + dataset );
122
122
 
@@ -127,9 +127,9 @@ class VTKLoader extends Loader {
127
127
 
128
128
  if ( patWord.exec( line ) !== null ) break;
129
129
 
130
- var x = parseFloat( result[ 1 ] );
131
- var y = parseFloat( result[ 2 ] );
132
- var z = parseFloat( result[ 3 ] );
130
+ const x = parseFloat( result[ 1 ] );
131
+ const y = parseFloat( result[ 2 ] );
132
+ const z = parseFloat( result[ 3 ] );
133
133
  positions.push( x, y, z );
134
134
 
135
135
  }
@@ -139,19 +139,18 @@ class VTKLoader extends Loader {
139
139
  if ( ( result = patConnectivity.exec( line ) ) !== null ) {
140
140
 
141
141
  // numVertices i0 i1 i2 ...
142
- var numVertices = parseInt( result[ 1 ] );
143
- var inds = result[ 2 ].split( /\s+/ );
142
+ const numVertices = parseInt( result[ 1 ] );
143
+ const inds = result[ 2 ].split( /\s+/ );
144
144
 
145
145
  if ( numVertices >= 3 ) {
146
146
 
147
- var i0 = parseInt( inds[ 0 ] );
148
- var i1, i2;
149
- var k = 1;
147
+ const i0 = parseInt( inds[ 0 ] );
148
+ let k = 1;
150
149
  // split the polygon in numVertices - 2 triangles
151
- for ( var j = 0; j < numVertices - 2; ++ j ) {
150
+ for ( let j = 0; j < numVertices - 2; ++ j ) {
152
151
 
153
- i1 = parseInt( inds[ k ] );
154
- i2 = parseInt( inds[ k + 1 ] );
152
+ const i1 = parseInt( inds[ k ] );
153
+ const i2 = parseInt( inds[ k + 1 ] );
155
154
  indices.push( i0, i1, i2 );
156
155
  k ++;
157
156
 
@@ -166,27 +165,26 @@ class VTKLoader extends Loader {
166
165
  if ( ( result = patConnectivity.exec( line ) ) !== null ) {
167
166
 
168
167
  // numVertices i0 i1 i2 ...
169
- var numVertices = parseInt( result[ 1 ] );
170
- var inds = result[ 2 ].split( /\s+/ );
168
+ const numVertices = parseInt( result[ 1 ] );
169
+ const inds = result[ 2 ].split( /\s+/ );
171
170
 
172
171
  if ( numVertices >= 3 ) {
173
172
 
174
- var i0, i1, i2;
175
173
  // split the polygon in numVertices - 2 triangles
176
- for ( var j = 0; j < numVertices - 2; j ++ ) {
174
+ for ( let j = 0; j < numVertices - 2; j ++ ) {
177
175
 
178
176
  if ( j % 2 === 1 ) {
179
177
 
180
- i0 = parseInt( inds[ j ] );
181
- i1 = parseInt( inds[ j + 2 ] );
182
- i2 = parseInt( inds[ j + 1 ] );
178
+ const i0 = parseInt( inds[ j ] );
179
+ const i1 = parseInt( inds[ j + 2 ] );
180
+ const i2 = parseInt( inds[ j + 1 ] );
183
181
  indices.push( i0, i1, i2 );
184
182
 
185
183
  } else {
186
184
 
187
- i0 = parseInt( inds[ j ] );
188
- i1 = parseInt( inds[ j + 1 ] );
189
- i2 = parseInt( inds[ j + 2 ] );
185
+ const i0 = parseInt( inds[ j ] );
186
+ const i1 = parseInt( inds[ j + 1 ] );
187
+ const i2 = parseInt( inds[ j + 2 ] );
190
188
  indices.push( i0, i1, i2 );
191
189
 
192
190
  }
@@ -207,9 +205,9 @@ class VTKLoader extends Loader {
207
205
 
208
206
  if ( patWord.exec( line ) !== null ) break;
209
207
 
210
- var r = parseFloat( result[ 1 ] );
211
- var g = parseFloat( result[ 2 ] );
212
- var b = parseFloat( result[ 3 ] );
208
+ const r = parseFloat( result[ 1 ] );
209
+ const g = parseFloat( result[ 2 ] );
210
+ const b = parseFloat( result[ 3 ] );
213
211
  colors.push( r, g, b );
214
212
 
215
213
  }
@@ -222,9 +220,9 @@ class VTKLoader extends Loader {
222
220
 
223
221
  if ( patWord.exec( line ) !== null ) break;
224
222
 
225
- var nx = parseFloat( result[ 1 ] );
226
- var ny = parseFloat( result[ 2 ] );
227
- var nz = parseFloat( result[ 3 ] );
223
+ const nx = parseFloat( result[ 1 ] );
224
+ const ny = parseFloat( result[ 2 ] );
225
+ const nz = parseFloat( result[ 3 ] );
228
226
  normals.push( nx, ny, nz );
229
227
 
230
228
  }
@@ -285,7 +283,7 @@ class VTKLoader extends Loader {
285
283
 
286
284
  }
287
285
 
288
- var geometry = new BufferGeometry();
286
+ let geometry = new BufferGeometry();
289
287
  geometry.setIndex( indices );
290
288
  geometry.setAttribute( 'position', new Float32BufferAttribute( positions, 3 ) );
291
289
 
@@ -310,17 +308,17 @@ class VTKLoader extends Loader {
310
308
  // cell
311
309
 
312
310
  geometry = geometry.toNonIndexed();
313
- var numTriangles = geometry.attributes.position.count / 3;
311
+ const numTriangles = geometry.attributes.position.count / 3;
314
312
 
315
313
  if ( colors.length === ( numTriangles * 3 ) ) {
316
314
 
317
- var newColors = [];
315
+ const newColors = [];
318
316
 
319
- for ( var i = 0; i < numTriangles; i ++ ) {
317
+ for ( let i = 0; i < numTriangles; i ++ ) {
320
318
 
321
- var r = colors[ 3 * i + 0 ];
322
- var g = colors[ 3 * i + 1 ];
323
- var b = colors[ 3 * i + 2 ];
319
+ const r = colors[ 3 * i + 0 ];
320
+ const g = colors[ 3 * i + 1 ];
321
+ const b = colors[ 3 * i + 2 ];
324
322
 
325
323
  newColors.push( r, g, b );
326
324
  newColors.push( r, g, b );
@@ -340,24 +338,21 @@ class VTKLoader extends Loader {
340
338
 
341
339
  function parseBinary( data ) {
342
340
 
343
- var count, pointIndex, i, numberOfPoints, s;
344
- var buffer = new Uint8Array( data );
345
- var dataView = new DataView( data );
341
+ const buffer = new Uint8Array( data );
342
+ const dataView = new DataView( data );
346
343
 
347
344
  // Points and normals, by default, are empty
348
- var points = [];
349
- var normals = [];
350
- var indices = [];
345
+ let points = [];
346
+ let normals = [];
347
+ let indices = [];
351
348
 
352
- // Going to make a big array of strings
353
- var vtk = [];
354
- var index = 0;
349
+ let index = 0;
355
350
 
356
351
  function findString( buffer, start ) {
357
352
 
358
- var index = start;
359
- var c = buffer[ index ];
360
- var s = [];
353
+ let index = start;
354
+ let c = buffer[ index ];
355
+ const s = [];
361
356
  while ( c !== 10 ) {
362
357
 
363
358
  s.push( String.fromCharCode( c ) );
@@ -373,7 +368,7 @@ class VTKLoader extends Loader {
373
368
 
374
369
  }
375
370
 
376
- var state, line;
371
+ let state, line;
377
372
 
378
373
  while ( true ) {
379
374
 
@@ -383,23 +378,22 @@ class VTKLoader extends Loader {
383
378
 
384
379
  if ( line.indexOf( 'DATASET' ) === 0 ) {
385
380
 
386
- var dataset = line.split( ' ' )[ 1 ];
381
+ const dataset = line.split( ' ' )[ 1 ];
387
382
 
388
383
  if ( dataset !== 'POLYDATA' ) throw new Error( 'Unsupported DATASET type: ' + dataset );
389
384
 
390
385
  } else if ( line.indexOf( 'POINTS' ) === 0 ) {
391
386
 
392
- vtk.push( line );
393
387
  // Add the points
394
- numberOfPoints = parseInt( line.split( ' ' )[ 1 ], 10 );
388
+ const numberOfPoints = parseInt( line.split( ' ' )[ 1 ], 10 );
395
389
 
396
390
  // Each point is 3 4-byte floats
397
- count = numberOfPoints * 4 * 3;
391
+ const count = numberOfPoints * 4 * 3;
398
392
 
399
393
  points = new Float32Array( numberOfPoints * 3 );
400
394
 
401
- pointIndex = state.next;
402
- for ( i = 0; i < numberOfPoints; i ++ ) {
395
+ let pointIndex = state.next;
396
+ for ( let i = 0; i < numberOfPoints; i ++ ) {
403
397
 
404
398
  points[ 3 * i ] = dataView.getFloat32( pointIndex, false );
405
399
  points[ 3 * i + 1 ] = dataView.getFloat32( pointIndex + 4, false );
@@ -413,22 +407,22 @@ class VTKLoader extends Loader {
413
407
 
414
408
  } else if ( line.indexOf( 'TRIANGLE_STRIPS' ) === 0 ) {
415
409
 
416
- var numberOfStrips = parseInt( line.split( ' ' )[ 1 ], 10 );
417
- var size = parseInt( line.split( ' ' )[ 2 ], 10 );
410
+ const numberOfStrips = parseInt( line.split( ' ' )[ 1 ], 10 );
411
+ const size = parseInt( line.split( ' ' )[ 2 ], 10 );
418
412
  // 4 byte integers
419
- count = size * 4;
413
+ const count = size * 4;
420
414
 
421
415
  indices = new Uint32Array( 3 * size - 9 * numberOfStrips );
422
- var indicesIndex = 0;
416
+ let indicesIndex = 0;
423
417
 
424
- pointIndex = state.next;
425
- for ( i = 0; i < numberOfStrips; i ++ ) {
418
+ let pointIndex = state.next;
419
+ for ( let i = 0; i < numberOfStrips; i ++ ) {
426
420
 
427
421
  // For each strip, read the first value, then record that many more points
428
- var indexCount = dataView.getInt32( pointIndex, false );
429
- var strip = [];
422
+ const indexCount = dataView.getInt32( pointIndex, false );
423
+ const strip = [];
430
424
  pointIndex += 4;
431
- for ( s = 0; s < indexCount; s ++ ) {
425
+ for ( let s = 0; s < indexCount; s ++ ) {
432
426
 
433
427
  strip.push( dataView.getInt32( pointIndex, false ) );
434
428
  pointIndex += 4;
@@ -436,7 +430,7 @@ class VTKLoader extends Loader {
436
430
  }
437
431
 
438
432
  // retrieves the n-2 triangles from the triangle strip
439
- for ( var j = 0; j < indexCount - 2; j ++ ) {
433
+ for ( let j = 0; j < indexCount - 2; j ++ ) {
440
434
 
441
435
  if ( j % 2 ) {
442
436
 
@@ -462,22 +456,22 @@ class VTKLoader extends Loader {
462
456
 
463
457
  } else if ( line.indexOf( 'POLYGONS' ) === 0 ) {
464
458
 
465
- var numberOfStrips = parseInt( line.split( ' ' )[ 1 ], 10 );
466
- var size = parseInt( line.split( ' ' )[ 2 ], 10 );
459
+ const numberOfStrips = parseInt( line.split( ' ' )[ 1 ], 10 );
460
+ const size = parseInt( line.split( ' ' )[ 2 ], 10 );
467
461
  // 4 byte integers
468
- count = size * 4;
462
+ const count = size * 4;
469
463
 
470
464
  indices = new Uint32Array( 3 * size - 9 * numberOfStrips );
471
- var indicesIndex = 0;
465
+ let indicesIndex = 0;
472
466
 
473
- pointIndex = state.next;
474
- for ( i = 0; i < numberOfStrips; i ++ ) {
467
+ let pointIndex = state.next;
468
+ for ( let i = 0; i < numberOfStrips; i ++ ) {
475
469
 
476
470
  // For each strip, read the first value, then record that many more points
477
- var indexCount = dataView.getInt32( pointIndex, false );
478
- var strip = [];
471
+ const indexCount = dataView.getInt32( pointIndex, false );
472
+ const strip = [];
479
473
  pointIndex += 4;
480
- for ( s = 0; s < indexCount; s ++ ) {
474
+ for ( let s = 0; s < indexCount; s ++ ) {
481
475
 
482
476
  strip.push( dataView.getInt32( pointIndex, false ) );
483
477
  pointIndex += 4;
@@ -485,7 +479,7 @@ class VTKLoader extends Loader {
485
479
  }
486
480
 
487
481
  // divide the polygon in n-2 triangle
488
- for ( var j = 1; j < indexCount - 1; j ++ ) {
482
+ for ( let j = 1; j < indexCount - 1; j ++ ) {
489
483
 
490
484
  indices[ indicesIndex ++ ] = strip[ 0 ];
491
485
  indices[ indicesIndex ++ ] = strip[ j ];
@@ -500,17 +494,17 @@ class VTKLoader extends Loader {
500
494
 
501
495
  } else if ( line.indexOf( 'POINT_DATA' ) === 0 ) {
502
496
 
503
- numberOfPoints = parseInt( line.split( ' ' )[ 1 ], 10 );
497
+ const numberOfPoints = parseInt( line.split( ' ' )[ 1 ], 10 );
504
498
 
505
499
  // Grab the next line
506
500
  state = findString( buffer, state.next );
507
501
 
508
502
  // Now grab the binary data
509
- count = numberOfPoints * 4 * 3;
503
+ const count = numberOfPoints * 4 * 3;
510
504
 
511
505
  normals = new Float32Array( numberOfPoints * 3 );
512
- pointIndex = state.next;
513
- for ( i = 0; i < numberOfPoints; i ++ ) {
506
+ let pointIndex = state.next;
507
+ for ( let i = 0; i < numberOfPoints; i ++ ) {
514
508
 
515
509
  normals[ 3 * i ] = dataView.getFloat32( pointIndex, false );
516
510
  normals[ 3 * i + 1 ] = dataView.getFloat32( pointIndex + 4, false );
@@ -535,7 +529,7 @@ class VTKLoader extends Loader {
535
529
 
536
530
  }
537
531
 
538
- var geometry = new BufferGeometry();
532
+ const geometry = new BufferGeometry();
539
533
  geometry.setIndex( new BufferAttribute( indices, 1 ) );
540
534
  geometry.setAttribute( 'position', new BufferAttribute( points, 3 ) );
541
535
 
@@ -562,7 +556,7 @@ class VTKLoader extends Loader {
562
556
 
563
557
  function Int32Concat( first, second ) {
564
558
 
565
- var firstLength = first.length, result = new Int32Array( firstLength + second.length );
559
+ const firstLength = first.length, result = new Int32Array( firstLength + second.length );
566
560
 
567
561
  result.set( first );
568
562
  result.set( second, firstLength );
@@ -578,7 +572,7 @@ class VTKLoader extends Loader {
578
572
  function xmlToJson( xml ) {
579
573
 
580
574
  // Create the return object
581
- var obj = {};
575
+ let obj = {};
582
576
 
583
577
  if ( xml.nodeType === 1 ) { // element
584
578
 
@@ -590,9 +584,9 @@ class VTKLoader extends Loader {
590
584
 
591
585
  obj[ 'attributes' ] = {};
592
586
 
593
- for ( var j = 0; j < xml.attributes.length; j ++ ) {
587
+ for ( let j = 0; j < xml.attributes.length; j ++ ) {
594
588
 
595
- var attribute = xml.attributes.item( j );
589
+ const attribute = xml.attributes.item( j );
596
590
  obj[ 'attributes' ][ attribute.nodeName ] = attribute.nodeValue.trim();
597
591
 
598
592
  }
@@ -610,14 +604,14 @@ class VTKLoader extends Loader {
610
604
  // do children
611
605
  if ( xml.hasChildNodes() ) {
612
606
 
613
- for ( var i = 0; i < xml.childNodes.length; i ++ ) {
607
+ for ( let i = 0; i < xml.childNodes.length; i ++ ) {
614
608
 
615
- var item = xml.childNodes.item( i );
616
- var nodeName = item.nodeName;
609
+ const item = xml.childNodes.item( i );
610
+ const nodeName = item.nodeName;
617
611
 
618
612
  if ( typeof obj[ nodeName ] === 'undefined' ) {
619
613
 
620
- var tmp = xmlToJson( item );
614
+ const tmp = xmlToJson( item );
621
615
 
622
616
  if ( tmp !== '' ) obj[ nodeName ] = tmp;
623
617
 
@@ -625,12 +619,12 @@ class VTKLoader extends Loader {
625
619
 
626
620
  if ( typeof obj[ nodeName ].push === 'undefined' ) {
627
621
 
628
- var old = obj[ nodeName ];
622
+ const old = obj[ nodeName ];
629
623
  obj[ nodeName ] = [ old ];
630
624
 
631
625
  }
632
626
 
633
- var tmp = xmlToJson( item );
627
+ const tmp = xmlToJson( item );
634
628
 
635
629
  if ( tmp !== '' ) obj[ nodeName ].push( tmp );
636
630
 
@@ -647,20 +641,11 @@ class VTKLoader extends Loader {
647
641
  // Taken from Base64-js
648
642
  function Base64toByteArray( b64 ) {
649
643
 
650
- var Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;
651
- var i;
652
- var lookup = [];
653
- var revLookup = [];
654
- var code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
655
- var len = code.length;
644
+ const Arr = typeof Uint8Array !== 'undefined' ? Uint8Array : Array;
645
+ const revLookup = [];
646
+ const code = 'ABCDEFGHIJKLMNOPQRSTUVWXYZabcdefghijklmnopqrstuvwxyz0123456789+/';
656
647
 
657
- for ( i = 0; i < len; i ++ ) {
658
-
659
- lookup[ i ] = code[ i ];
660
-
661
- }
662
-
663
- for ( i = 0; i < len; ++ i ) {
648
+ for ( let i = 0, l = code.length; i < l; ++ i ) {
664
649
 
665
650
  revLookup[ code.charCodeAt( i ) ] = i;
666
651
 
@@ -669,8 +654,7 @@ class VTKLoader extends Loader {
669
654
  revLookup[ '-'.charCodeAt( 0 ) ] = 62;
670
655
  revLookup[ '_'.charCodeAt( 0 ) ] = 63;
671
656
 
672
- var j, l, tmp, placeHolders, arr;
673
- var len = b64.length;
657
+ const len = b64.length;
674
658
 
675
659
  if ( len % 4 > 0 ) {
676
660
 
@@ -678,15 +662,16 @@ class VTKLoader extends Loader {
678
662
 
679
663
  }
680
664
 
681
- placeHolders = b64[ len - 2 ] === '=' ? 2 : b64[ len - 1 ] === '=' ? 1 : 0;
682
- arr = new Arr( len * 3 / 4 - placeHolders );
683
- l = placeHolders > 0 ? len - 4 : len;
665
+ const placeHolders = b64[ len - 2 ] === '=' ? 2 : b64[ len - 1 ] === '=' ? 1 : 0;
666
+ const arr = new Arr( len * 3 / 4 - placeHolders );
667
+ const l = placeHolders > 0 ? len - 4 : len;
684
668
 
685
- var L = 0;
669
+ let L = 0;
670
+ let i, j;
686
671
 
687
672
  for ( i = 0, j = 0; i < l; i += 4, j += 3 ) {
688
673
 
689
- tmp = ( revLookup[ b64.charCodeAt( i ) ] << 18 ) | ( revLookup[ b64.charCodeAt( i + 1 ) ] << 12 ) | ( revLookup[ b64.charCodeAt( i + 2 ) ] << 6 ) | revLookup[ b64.charCodeAt( i + 3 ) ];
674
+ const tmp = ( revLookup[ b64.charCodeAt( i ) ] << 18 ) | ( revLookup[ b64.charCodeAt( i + 1 ) ] << 12 ) | ( revLookup[ b64.charCodeAt( i + 2 ) ] << 6 ) | revLookup[ b64.charCodeAt( i + 3 ) ];
690
675
  arr[ L ++ ] = ( tmp & 0xFF0000 ) >> 16;
691
676
  arr[ L ++ ] = ( tmp & 0xFF00 ) >> 8;
692
677
  arr[ L ++ ] = tmp & 0xFF;
@@ -695,12 +680,12 @@ class VTKLoader extends Loader {
695
680
 
696
681
  if ( placeHolders === 2 ) {
697
682
 
698
- tmp = ( revLookup[ b64.charCodeAt( i ) ] << 2 ) | ( revLookup[ b64.charCodeAt( i + 1 ) ] >> 4 );
683
+ const tmp = ( revLookup[ b64.charCodeAt( i ) ] << 2 ) | ( revLookup[ b64.charCodeAt( i + 1 ) ] >> 4 );
699
684
  arr[ L ++ ] = tmp & 0xFF;
700
685
 
701
686
  } else if ( placeHolders === 1 ) {
702
687
 
703
- tmp = ( revLookup[ b64.charCodeAt( i ) ] << 10 ) | ( revLookup[ b64.charCodeAt( i + 1 ) ] << 4 ) | ( revLookup[ b64.charCodeAt( i + 2 ) ] >> 2 );
688
+ const tmp = ( revLookup[ b64.charCodeAt( i ) ] << 10 ) | ( revLookup[ b64.charCodeAt( i + 1 ) ] << 4 ) | ( revLookup[ b64.charCodeAt( i + 2 ) ] >> 2 );
704
689
  arr[ L ++ ] = ( tmp >> 8 ) & 0xFF;
705
690
  arr[ L ++ ] = tmp & 0xFF;
706
691
 
@@ -712,7 +697,7 @@ class VTKLoader extends Loader {
712
697
 
713
698
  function parseDataArray( ele, compressed ) {
714
699
 
715
- var numBytes = 0;
700
+ let numBytes = 0;
716
701
 
717
702
  if ( json.attributes.header_type === 'UInt64' ) {
718
703
 
@@ -724,19 +709,18 @@ class VTKLoader extends Loader {
724
709
 
725
710
  }
726
711
 
712
+ let txt, content;
727
713
 
728
714
  // Check the format
729
715
  if ( ele.attributes.format === 'binary' && compressed ) {
730
716
 
731
- var rawData, content, byteData, blocks, cSizeStart, headerSize, padding, dataOffsets, currentOffset;
732
-
733
717
  if ( ele.attributes.type === 'Float32' ) {
734
718
 
735
- var txt = new Float32Array( );
719
+ txt = new Float32Array( );
736
720
 
737
- } else if ( ele.attributes.type === 'Int64' ) {
721
+ } else if ( ele.attributes.type === 'Int32' || ele.attributes.type === 'Int64' ) {
738
722
 
739
- var txt = new Int32Array( );
723
+ txt = new Int32Array( );
740
724
 
741
725
  }
742
726
 
@@ -752,37 +736,40 @@ class VTKLoader extends Loader {
752
736
  // The [DATA] portion stores contiguously every block appended together. The offset from the beginning of the data section to the beginning of a block is
753
737
  // computed by summing the compressed block sizes from preceding blocks according to the header.
754
738
 
755
- rawData = ele[ '#text' ];
739
+ const textNode = ele[ '#text' ];
740
+ const rawData = Array.isArray( textNode ) ? textNode[ 0 ] : textNode;
741
+
742
+ const byteData = Base64toByteArray( rawData );
756
743
 
757
- byteData = Base64toByteArray( rawData );
744
+ // Each data point consists of 8 bits regardless of the header type
745
+ const dataPointSize = 8;
758
746
 
759
- blocks = byteData[ 0 ];
760
- for ( var i = 1; i < numBytes - 1; i ++ ) {
747
+ let blocks = byteData[ 0 ];
748
+ for ( let i = 1; i < numBytes - 1; i ++ ) {
761
749
 
762
- blocks = blocks | ( byteData[ i ] << ( i * numBytes ) );
750
+ blocks = blocks | ( byteData[ i ] << ( i * dataPointSize ) );
763
751
 
764
752
  }
765
753
 
766
- headerSize = ( blocks + 3 ) * numBytes;
767
- padding = ( ( headerSize % 3 ) > 0 ) ? 3 - ( headerSize % 3 ) : 0;
754
+ let headerSize = ( blocks + 3 ) * numBytes;
755
+ const padding = ( ( headerSize % 3 ) > 0 ) ? 3 - ( headerSize % 3 ) : 0;
768
756
  headerSize = headerSize + padding;
769
757
 
770
- dataOffsets = [];
771
- currentOffset = headerSize;
758
+ const dataOffsets = [];
759
+ let currentOffset = headerSize;
772
760
  dataOffsets.push( currentOffset );
773
761
 
774
762
  // Get the blocks sizes after the compression.
775
763
  // There are three blocks before c-size-i, so we skip 3*numBytes
776
- cSizeStart = 3 * numBytes;
764
+ const cSizeStart = 3 * numBytes;
777
765
 
778
- for ( var i = 0; i < blocks; i ++ ) {
766
+ for ( let i = 0; i < blocks; i ++ ) {
779
767
 
780
- var currentBlockSize = byteData[ i * numBytes + cSizeStart ];
768
+ let currentBlockSize = byteData[ i * numBytes + cSizeStart ];
781
769
 
782
- for ( var j = 1; j < numBytes - 1; j ++ ) {
770
+ for ( let j = 1; j < numBytes - 1; j ++ ) {
783
771
 
784
- // Each data point consists of 8 bytes regardless of the header type
785
- currentBlockSize = currentBlockSize | ( byteData[ i * numBytes + cSizeStart + j ] << ( j * 8 ) );
772
+ currentBlockSize = currentBlockSize | ( byteData[ i * numBytes + cSizeStart + j ] << ( j * dataPointSize ) );
786
773
 
787
774
  }
788
775
 
@@ -791,9 +778,9 @@ class VTKLoader extends Loader {
791
778
 
792
779
  }
793
780
 
794
- for ( var i = 0; i < dataOffsets.length - 1; i ++ ) {
781
+ for ( let i = 0; i < dataOffsets.length - 1; i ++ ) {
795
782
 
796
- var data = fflate.unzlibSync( byteData.slice( dataOffsets[ i ], dataOffsets[ i + 1 ] ) ); // eslint-disable-line no-undef
783
+ const data = fflate.unzlibSync( byteData.slice( dataOffsets[ i ], dataOffsets[ i + 1 ] ) ); // eslint-disable-line no-undef
797
784
  content = data.buffer;
798
785
 
799
786
  if ( ele.attributes.type === 'Float32' ) {
@@ -801,7 +788,7 @@ class VTKLoader extends Loader {
801
788
  content = new Float32Array( content );
802
789
  txt = Float32Concat( txt, content );
803
790
 
804
- } else if ( ele.attributes.type === 'Int64' ) {
791
+ } else if ( ele.attributes.type === 'Int32' || ele.attributes.type === 'Int64' ) {
805
792
 
806
793
  content = new Int32Array( content );
807
794
  txt = Int32Concat( txt, content );
@@ -830,7 +817,7 @@ class VTKLoader extends Loader {
830
817
 
831
818
  if ( ele.attributes.format === 'binary' && ! compressed ) {
832
819
 
833
- var content = Base64toByteArray( ele[ '#text' ] );
820
+ content = Base64toByteArray( ele[ '#text' ] );
834
821
 
835
822
  // VTP data for the uncompressed case has the following structure:
836
823
  // [#bytes][DATA]
@@ -841,7 +828,7 @@ class VTKLoader extends Loader {
841
828
 
842
829
  if ( ele[ '#text' ] ) {
843
830
 
844
- var content = ele[ '#text' ].split( /\s+/ ).filter( function ( el ) {
831
+ content = ele[ '#text' ].split( /\s+/ ).filter( function ( el ) {
845
832
 
846
833
  if ( el !== '' ) return el;
847
834
 
@@ -849,7 +836,7 @@ class VTKLoader extends Loader {
849
836
 
850
837
  } else {
851
838
 
852
- var content = new Int32Array( 0 ).buffer;
839
+ content = new Int32Array( 0 ).buffer;
853
840
 
854
841
  }
855
842
 
@@ -860,15 +847,15 @@ class VTKLoader extends Loader {
860
847
  // Get the content and optimize it
861
848
  if ( ele.attributes.type === 'Float32' ) {
862
849
 
863
- var txt = new Float32Array( content );
850
+ txt = new Float32Array( content );
864
851
 
865
852
  } else if ( ele.attributes.type === 'Int32' ) {
866
853
 
867
- var txt = new Int32Array( content );
854
+ txt = new Int32Array( content );
868
855
 
869
856
  } else if ( ele.attributes.type === 'Int64' ) {
870
857
 
871
- var txt = new Int32Array( content );
858
+ txt = new Int32Array( content );
872
859
 
873
860
  if ( ele.attributes.format === 'binary' ) {
874
861
 
@@ -890,66 +877,30 @@ class VTKLoader extends Loader {
890
877
 
891
878
  // Main part
892
879
  // Get Dom
893
- var dom = null;
894
-
895
- if ( window.DOMParser ) {
896
-
897
- try {
898
-
899
- dom = ( new DOMParser() ).parseFromString( stringFile, 'text/xml' );
900
-
901
- } catch ( e ) {
902
-
903
- dom = null;
904
-
905
- }
906
-
907
- } else if ( window.ActiveXObject ) {
908
-
909
- try {
910
-
911
- dom = new ActiveXObject( 'Microsoft.XMLDOM' ); // eslint-disable-line no-undef
912
- dom.async = false;
913
-
914
- if ( ! dom.loadXML( /* xml */ ) ) {
915
-
916
- throw new Error( dom.parseError.reason + dom.parseError.srcText );
917
-
918
- }
919
-
920
- } catch ( e ) {
921
-
922
- dom = null;
923
-
924
- }
925
-
926
- } else {
927
-
928
- throw new Error( 'Cannot parse xml string!' );
929
-
930
- }
880
+ const dom = new DOMParser().parseFromString( stringFile, 'application/xml' );
931
881
 
932
882
  // Get the doc
933
- var doc = dom.documentElement;
883
+ const doc = dom.documentElement;
934
884
  // Convert to json
935
- var json = xmlToJson( doc );
936
- var points = [];
937
- var normals = [];
938
- var indices = [];
885
+ const json = xmlToJson( doc );
886
+ let points = [];
887
+ let normals = [];
888
+ let indices = [];
939
889
 
940
890
  if ( json.PolyData ) {
941
891
 
942
- var piece = json.PolyData.Piece;
943
- var compressed = json.attributes.hasOwnProperty( 'compressor' );
892
+ const piece = json.PolyData.Piece;
893
+ const compressed = json.attributes.hasOwnProperty( 'compressor' );
944
894
 
945
895
  // Can be optimized
946
896
  // Loop through the sections
947
- var sections = [ 'PointData', 'Points', 'Strips', 'Polys' ];// +['CellData', 'Verts', 'Lines'];
948
- var sectionIndex = 0, numberOfSections = sections.length;
897
+ const sections = [ 'PointData', 'Points', 'Strips', 'Polys' ];// +['CellData', 'Verts', 'Lines'];
898
+ let sectionIndex = 0;
899
+ const numberOfSections = sections.length;
949
900
 
950
901
  while ( sectionIndex < numberOfSections ) {
951
902
 
952
- var section = piece[ sections[ sectionIndex ] ];
903
+ const section = piece[ sections[ sectionIndex ] ];
953
904
 
954
905
  // If it has a DataArray in it
955
906
 
@@ -957,17 +908,20 @@ class VTKLoader extends Loader {
957
908
 
958
909
  // Depending on the number of DataArrays
959
910
 
911
+ let arr;
912
+
960
913
  if ( Object.prototype.toString.call( section.DataArray ) === '[object Array]' ) {
961
914
 
962
- var arr = section.DataArray;
915
+ arr = section.DataArray;
963
916
 
964
917
  } else {
965
918
 
966
- var arr = [ section.DataArray ];
919
+ arr = [ section.DataArray ];
967
920
 
968
921
  }
969
922
 
970
- var dataArrayIndex = 0, numberOfDataArrays = arr.length;
923
+ let dataArrayIndex = 0;
924
+ const numberOfDataArrays = arr.length;
971
925
 
972
926
  while ( dataArrayIndex < numberOfDataArrays ) {
973
927
 
@@ -987,18 +941,22 @@ class VTKLoader extends Loader {
987
941
  // if iti is point data
988
942
  case 'PointData':
989
943
 
990
- var numberOfPoints = parseInt( piece.attributes.NumberOfPoints );
991
- var normalsName = section.attributes.Normals;
944
+ {
945
+
946
+ const numberOfPoints = parseInt( piece.attributes.NumberOfPoints );
947
+ const normalsName = section.attributes.Normals;
992
948
 
993
- if ( numberOfPoints > 0 ) {
949
+ if ( numberOfPoints > 0 ) {
994
950
 
995
- for ( var i = 0, len = arr.length; i < len; i ++ ) {
951
+ for ( let i = 0, len = arr.length; i < len; i ++ ) {
996
952
 
997
- if ( normalsName === arr[ i ].attributes.Name ) {
953
+ if ( normalsName === arr[ i ].attributes.Name ) {
998
954
 
999
- var components = arr[ i ].attributes.NumberOfComponents;
1000
- normals = new Float32Array( numberOfPoints * components );
1001
- normals.set( arr[ i ].text, 0 );
955
+ const components = arr[ i ].attributes.NumberOfComponents;
956
+ normals = new Float32Array( numberOfPoints * components );
957
+ normals.set( arr[ i ].text, 0 );
958
+
959
+ }
1002
960
 
1003
961
  }
1004
962
 
@@ -1011,13 +969,17 @@ class VTKLoader extends Loader {
1011
969
  // if it is points
1012
970
  case 'Points':
1013
971
 
1014
- var numberOfPoints = parseInt( piece.attributes.NumberOfPoints );
972
+ {
973
+
974
+ const numberOfPoints = parseInt( piece.attributes.NumberOfPoints );
1015
975
 
1016
- if ( numberOfPoints > 0 ) {
976
+ if ( numberOfPoints > 0 ) {
1017
977
 
1018
- var components = section.DataArray.attributes.NumberOfComponents;
1019
- points = new Float32Array( numberOfPoints * components );
1020
- points.set( section.DataArray.text, 0 );
978
+ const components = section.DataArray.attributes.NumberOfComponents;
979
+ points = new Float32Array( numberOfPoints * components );
980
+ points.set( section.DataArray.text, 0 );
981
+
982
+ }
1021
983
 
1022
984
  }
1023
985
 
@@ -1026,49 +988,53 @@ class VTKLoader extends Loader {
1026
988
  // if it is strips
1027
989
  case 'Strips':
1028
990
 
1029
- var numberOfStrips = parseInt( piece.attributes.NumberOfStrips );
991
+ {
1030
992
 
1031
- if ( numberOfStrips > 0 ) {
993
+ const numberOfStrips = parseInt( piece.attributes.NumberOfStrips );
1032
994
 
1033
- var connectivity = new Int32Array( section.DataArray[ 0 ].text.length );
1034
- var offset = new Int32Array( section.DataArray[ 1 ].text.length );
1035
- connectivity.set( section.DataArray[ 0 ].text, 0 );
1036
- offset.set( section.DataArray[ 1 ].text, 0 );
995
+ if ( numberOfStrips > 0 ) {
1037
996
 
1038
- var size = numberOfStrips + connectivity.length;
1039
- indices = new Uint32Array( 3 * size - 9 * numberOfStrips );
997
+ const connectivity = new Int32Array( section.DataArray[ 0 ].text.length );
998
+ const offset = new Int32Array( section.DataArray[ 1 ].text.length );
999
+ connectivity.set( section.DataArray[ 0 ].text, 0 );
1000
+ offset.set( section.DataArray[ 1 ].text, 0 );
1040
1001
 
1041
- var indicesIndex = 0;
1002
+ const size = numberOfStrips + connectivity.length;
1003
+ indices = new Uint32Array( 3 * size - 9 * numberOfStrips );
1042
1004
 
1043
- for ( var i = 0, len = numberOfStrips; i < len; i ++ ) {
1005
+ let indicesIndex = 0;
1044
1006
 
1045
- var strip = [];
1007
+ for ( let i = 0, len = numberOfStrips; i < len; i ++ ) {
1046
1008
 
1047
- for ( var s = 0, len1 = offset[ i ], len0 = 0; s < len1 - len0; s ++ ) {
1009
+ const strip = [];
1048
1010
 
1049
- strip.push( connectivity[ s ] );
1011
+ for ( let s = 0, len1 = offset[ i ], len0 = 0; s < len1 - len0; s ++ ) {
1050
1012
 
1051
- if ( i > 0 ) len0 = offset[ i - 1 ];
1013
+ strip.push( connectivity[ s ] );
1052
1014
 
1053
- }
1015
+ if ( i > 0 ) len0 = offset[ i - 1 ];
1054
1016
 
1055
- for ( var j = 0, len1 = offset[ i ], len0 = 0; j < len1 - len0 - 2; j ++ ) {
1017
+ }
1056
1018
 
1057
- if ( j % 2 ) {
1019
+ for ( let j = 0, len1 = offset[ i ], len0 = 0; j < len1 - len0 - 2; j ++ ) {
1058
1020
 
1059
- indices[ indicesIndex ++ ] = strip[ j ];
1060
- indices[ indicesIndex ++ ] = strip[ j + 2 ];
1061
- indices[ indicesIndex ++ ] = strip[ j + 1 ];
1021
+ if ( j % 2 ) {
1062
1022
 
1063
- } else {
1023
+ indices[ indicesIndex ++ ] = strip[ j ];
1024
+ indices[ indicesIndex ++ ] = strip[ j + 2 ];
1025
+ indices[ indicesIndex ++ ] = strip[ j + 1 ];
1064
1026
 
1065
- indices[ indicesIndex ++ ] = strip[ j ];
1066
- indices[ indicesIndex ++ ] = strip[ j + 1 ];
1067
- indices[ indicesIndex ++ ] = strip[ j + 2 ];
1027
+ } else {
1068
1028
 
1069
- }
1029
+ indices[ indicesIndex ++ ] = strip[ j ];
1030
+ indices[ indicesIndex ++ ] = strip[ j + 1 ];
1031
+ indices[ indicesIndex ++ ] = strip[ j + 2 ];
1032
+
1033
+ }
1070
1034
 
1071
- if ( i > 0 ) len0 = offset[ i - 1 ];
1035
+ if ( i > 0 ) len0 = offset[ i - 1 ];
1036
+
1037
+ }
1072
1038
 
1073
1039
  }
1074
1040
 
@@ -1081,45 +1047,51 @@ class VTKLoader extends Loader {
1081
1047
  // if it is polys
1082
1048
  case 'Polys':
1083
1049
 
1084
- var numberOfPolys = parseInt( piece.attributes.NumberOfPolys );
1050
+ {
1085
1051
 
1086
- if ( numberOfPolys > 0 ) {
1052
+ const numberOfPolys = parseInt( piece.attributes.NumberOfPolys );
1087
1053
 
1088
- var connectivity = new Int32Array( section.DataArray[ 0 ].text.length );
1089
- var offset = new Int32Array( section.DataArray[ 1 ].text.length );
1090
- connectivity.set( section.DataArray[ 0 ].text, 0 );
1091
- offset.set( section.DataArray[ 1 ].text, 0 );
1054
+ if ( numberOfPolys > 0 ) {
1092
1055
 
1093
- var size = numberOfPolys + connectivity.length;
1094
- indices = new Uint32Array( 3 * size - 9 * numberOfPolys );
1095
- var indicesIndex = 0, connectivityIndex = 0;
1096
- var i = 0, len = numberOfPolys, len0 = 0;
1056
+ const connectivity = new Int32Array( section.DataArray[ 0 ].text.length );
1057
+ const offset = new Int32Array( section.DataArray[ 1 ].text.length );
1058
+ connectivity.set( section.DataArray[ 0 ].text, 0 );
1059
+ offset.set( section.DataArray[ 1 ].text, 0 );
1097
1060
 
1098
- while ( i < len ) {
1061
+ const size = numberOfPolys + connectivity.length;
1062
+ indices = new Uint32Array( 3 * size - 9 * numberOfPolys );
1063
+ let indicesIndex = 0, connectivityIndex = 0;
1064
+ let i = 0, len0 = 0;
1065
+ const len = numberOfPolys;
1099
1066
 
1100
- var poly = [];
1101
- var s = 0, len1 = offset[ i ];
1067
+ while ( i < len ) {
1102
1068
 
1103
- while ( s < len1 - len0 ) {
1069
+ const poly = [];
1070
+ let s = 0;
1071
+ const len1 = offset[ i ];
1104
1072
 
1105
- poly.push( connectivity[ connectivityIndex ++ ] );
1106
- s ++;
1073
+ while ( s < len1 - len0 ) {
1107
1074
 
1108
- }
1075
+ poly.push( connectivity[ connectivityIndex ++ ] );
1076
+ s ++;
1109
1077
 
1110
- var j = 1;
1078
+ }
1111
1079
 
1112
- while ( j < len1 - len0 - 1 ) {
1080
+ let j = 1;
1113
1081
 
1114
- indices[ indicesIndex ++ ] = poly[ 0 ];
1115
- indices[ indicesIndex ++ ] = poly[ j ];
1116
- indices[ indicesIndex ++ ] = poly[ j + 1 ];
1117
- j ++;
1082
+ while ( j < len1 - len0 - 1 ) {
1118
1083
 
1119
- }
1084
+ indices[ indicesIndex ++ ] = poly[ 0 ];
1085
+ indices[ indicesIndex ++ ] = poly[ j ];
1086
+ indices[ indicesIndex ++ ] = poly[ j + 1 ];
1087
+ j ++;
1088
+
1089
+ }
1090
+
1091
+ i ++;
1092
+ len0 = offset[ i - 1 ];
1120
1093
 
1121
- i ++;
1122
- len0 = offset[ i - 1 ];
1094
+ }
1123
1095
 
1124
1096
  }
1125
1097
 
@@ -1138,7 +1110,7 @@ class VTKLoader extends Loader {
1138
1110
 
1139
1111
  }
1140
1112
 
1141
- var geometry = new BufferGeometry();
1113
+ const geometry = new BufferGeometry();
1142
1114
  geometry.setIndex( new BufferAttribute( indices, 1 ) );
1143
1115
  geometry.setAttribute( 'position', new BufferAttribute( points, 3 ) );
1144
1116
 
@@ -1159,7 +1131,7 @@ class VTKLoader extends Loader {
1159
1131
  }
1160
1132
 
1161
1133
  // get the 5 first lines of the files to check if there is the key word binary
1162
- var meta = LoaderUtils.decodeText( new Uint8Array( data, 0, 250 ) ).split( '\n' );
1134
+ const meta = LoaderUtils.decodeText( new Uint8Array( data, 0, 250 ) ).split( '\n' );
1163
1135
 
1164
1136
  if ( meta[ 0 ].indexOf( 'xml' ) !== - 1 ) {
1165
1137