super-three 0.141.0 → 0.144.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 (353) hide show
  1. package/README.md +8 -8
  2. package/build/three.cjs +1558 -1034
  3. package/build/three.js +1558 -1034
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +2012 -1243
  6. package/examples/js/animation/MMDPhysics.js +1 -16
  7. package/examples/js/controls/ArcballControls.js +16 -3
  8. package/examples/js/controls/FirstPersonControls.js +0 -7
  9. package/examples/js/controls/FlyControls.js +0 -8
  10. package/examples/js/controls/OrbitControls.js +0 -4
  11. package/examples/js/controls/PointerLockControls.js +0 -8
  12. package/examples/js/controls/TrackballControls.js +0 -2
  13. package/examples/js/controls/TransformControls.js +20 -16
  14. package/examples/js/effects/AnaglyphEffect.js +2 -2
  15. package/examples/js/effects/OutlineEffect.js +4 -24
  16. package/examples/js/effects/ParallaxBarrierEffect.js +2 -2
  17. package/examples/js/effects/PeppersGhostEffect.js +2 -2
  18. package/examples/js/effects/StereoEffect.js +2 -2
  19. package/examples/js/environments/RoomEnvironment.js +22 -0
  20. package/examples/js/exporters/ColladaExporter.js +4 -13
  21. package/examples/js/exporters/DRACOExporter.js +0 -12
  22. package/examples/js/exporters/GLTFExporter.js +28 -29
  23. package/examples/js/exporters/OBJExporter.js +2 -23
  24. package/examples/js/exporters/PLYExporter.js +12 -24
  25. package/examples/js/exporters/STLExporter.js +0 -7
  26. package/examples/js/exporters/USDZExporter.js +6 -0
  27. package/examples/js/geometries/ConvexGeometry.js +1 -1
  28. package/examples/js/geometries/ParametricGeometry.js +1 -8
  29. package/examples/js/interactive/SelectionHelper.js +2 -0
  30. package/examples/js/libs/ktx-parse.umd.js +1 -0
  31. package/examples/js/libs/meshopt_decoder.js +98 -32
  32. package/examples/js/loaders/ColladaLoader.js +1 -0
  33. package/examples/js/loaders/DRACOLoader.js +2 -25
  34. package/examples/js/loaders/EXRLoader.js +2 -13
  35. package/examples/js/loaders/FBXLoader.js +10 -3
  36. package/examples/js/loaders/FontLoader.js +3 -16
  37. package/examples/js/loaders/GLTFLoader.js +52 -36
  38. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -11
  39. package/examples/js/loaders/LDrawLoader.js +139 -74
  40. package/examples/js/loaders/OBJLoader.js +7 -13
  41. package/examples/js/loaders/PCDLoader.js +59 -14
  42. package/examples/js/loaders/PLYLoader.js +3 -3
  43. package/examples/js/loaders/SVGLoader.js +4 -3
  44. package/examples/js/loaders/TIFFLoader.js +31 -0
  45. package/examples/js/loaders/VRMLLoader.js +33 -24
  46. package/examples/js/loaders/VTKLoader.js +1 -1
  47. package/examples/js/loaders/lwo/LWO2Parser.js +8 -7
  48. package/examples/js/loaders/lwo/LWO3Parser.js +8 -7
  49. package/examples/js/materials/MeshGouraudMaterial.js +385 -0
  50. package/examples/js/math/ColorConverter.js +0 -50
  51. package/examples/js/misc/GPUComputationRenderer.js +23 -0
  52. package/examples/js/misc/Volume.js +198 -190
  53. package/examples/js/misc/VolumeSlice.js +90 -88
  54. package/examples/js/modifiers/SimplifyModifier.js +1 -1
  55. package/examples/js/objects/GroundProjectedEnv.js +193 -0
  56. package/examples/js/objects/Reflector.js +9 -2
  57. package/examples/js/objects/ReflectorForSSRPass.js +3 -4
  58. package/examples/js/objects/Refractor.js +10 -4
  59. package/examples/js/objects/ShadowMesh.js +5 -1
  60. package/examples/js/postprocessing/OutlinePass.js +5 -3
  61. package/examples/js/renderers/CSS2DRenderer.js +2 -2
  62. package/examples/js/renderers/CSS3DRenderer.js +2 -2
  63. package/examples/js/renderers/Projector.js +2 -23
  64. package/examples/js/shaders/LuminosityShader.js +1 -1
  65. package/examples/js/shaders/MMDToonShader.js +6 -2
  66. package/examples/js/shaders/ToneMapShader.js +1 -1
  67. package/examples/js/utils/BufferGeometryUtils.js +1 -1
  68. package/examples/js/utils/GeometryUtils.js +2 -18
  69. package/examples/js/utils/PackedPhongMaterial.js +1 -1
  70. package/examples/js/utils/SceneUtils.js +0 -16
  71. package/examples/jsm/animation/MMDPhysics.js +3 -22
  72. package/examples/jsm/controls/ArcballControls.js +17 -2
  73. package/examples/jsm/controls/FirstPersonControls.js +0 -7
  74. package/examples/jsm/controls/FlyControls.js +0 -7
  75. package/examples/jsm/controls/OrbitControls.js +0 -5
  76. package/examples/jsm/controls/PointerLockControls.js +0 -7
  77. package/examples/jsm/controls/TrackballControls.js +0 -3
  78. package/examples/jsm/controls/TransformControls.js +18 -16
  79. package/examples/jsm/effects/AnaglyphEffect.js +2 -2
  80. package/examples/jsm/effects/OutlineEffect.js +4 -25
  81. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
  82. package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
  83. package/examples/jsm/effects/StereoEffect.js +2 -2
  84. package/examples/jsm/environments/RoomEnvironment.js +23 -0
  85. package/examples/jsm/exporters/ColladaExporter.js +4 -13
  86. package/examples/jsm/exporters/DRACOExporter.js +0 -13
  87. package/examples/jsm/exporters/GLTFExporter.js +29 -31
  88. package/examples/jsm/exporters/KTX2Exporter.js +29 -29
  89. package/examples/jsm/exporters/OBJExporter.js +0 -18
  90. package/examples/jsm/exporters/PLYExporter.js +14 -22
  91. package/examples/jsm/exporters/STLExporter.js +1 -9
  92. package/examples/jsm/exporters/USDZExporter.js +14 -3
  93. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  94. package/examples/jsm/geometries/ParametricGeometry.js +0 -6
  95. package/examples/jsm/interactive/HTMLMesh.js +9 -9
  96. package/examples/jsm/interactive/SelectionHelper.js +5 -3
  97. package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
  98. package/examples/jsm/libs/utif.module.js +1579 -0
  99. package/examples/jsm/libs/zstddec.module.js +1 -0
  100. package/examples/jsm/loaders/ColladaLoader.js +1 -0
  101. package/examples/jsm/loaders/DRACOLoader.js +2 -28
  102. package/examples/jsm/loaders/EXRLoader.js +3 -13
  103. package/examples/jsm/loaders/FBXLoader.js +10 -3
  104. package/examples/jsm/loaders/FontLoader.js +3 -16
  105. package/examples/jsm/loaders/GLTFLoader.js +52 -36
  106. package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
  107. package/examples/jsm/loaders/KTX2Loader.js +192 -30
  108. package/examples/jsm/loaders/LDrawLoader.js +135 -74
  109. package/examples/jsm/loaders/OBJLoader.js +6 -14
  110. package/examples/jsm/loaders/PCDLoader.js +59 -13
  111. package/examples/jsm/loaders/PLYLoader.js +3 -3
  112. package/examples/jsm/loaders/RGBELoader.js +1 -1
  113. package/examples/jsm/loaders/SVGLoader.js +4 -3
  114. package/examples/jsm/loaders/TIFFLoader.js +36 -0
  115. package/examples/jsm/loaders/USDZLoader.js +393 -0
  116. package/examples/jsm/loaders/VRMLLoader.js +23 -25
  117. package/examples/jsm/loaders/VTKLoader.js +1 -1
  118. package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
  119. package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
  120. package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
  121. package/examples/jsm/math/ColorConverter.js +1 -49
  122. package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
  123. package/examples/jsm/misc/Volume.js +169 -171
  124. package/examples/jsm/misc/VolumeSlice.js +78 -80
  125. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  126. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
  127. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  128. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  129. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  130. package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
  131. package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
  132. package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
  133. package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
  134. package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
  135. package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
  136. package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
  137. package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
  138. package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
  139. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +1 -1
  140. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
  141. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +1 -1
  142. package/examples/jsm/node-editor/math/AngleEditor.js +1 -1
  143. package/examples/jsm/node-editor/math/DotEditor.js +1 -1
  144. package/examples/jsm/node-editor/math/InvertEditor.js +1 -1
  145. package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
  146. package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
  147. package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
  148. package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
  149. package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
  150. package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
  151. package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
  152. package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
  153. package/examples/jsm/node-editor/utils/PreviewEditor.js +3 -3
  154. package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
  155. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  156. package/examples/jsm/nodes/Nodes.js +43 -13
  157. package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
  158. package/examples/jsm/nodes/accessors/NormalNode.js +4 -4
  159. package/examples/jsm/nodes/accessors/PositionNode.js +5 -5
  160. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
  161. package/examples/jsm/nodes/core/AttributeNode.js +3 -3
  162. package/examples/jsm/nodes/core/CodeNode.js +3 -3
  163. package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
  164. package/examples/jsm/nodes/core/FunctionNode.js +2 -2
  165. package/examples/jsm/nodes/core/Node.js +14 -12
  166. package/examples/jsm/nodes/core/NodeBuilder.js +12 -12
  167. package/examples/jsm/nodes/core/NodeUtils.js +23 -1
  168. package/examples/jsm/nodes/core/{NodeVary.js → NodeVarying.js} +3 -3
  169. package/examples/jsm/nodes/core/{VaryNode.js → VaryingNode.js} +7 -7
  170. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +94 -0
  171. package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
  172. package/examples/jsm/nodes/gpgpu/ComputeNode.js +2 -0
  173. package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
  174. package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
  175. package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
  176. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +31 -0
  177. package/examples/jsm/nodes/materials/Materials.js +13 -25
  178. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
  179. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
  180. package/examples/jsm/nodes/materials/NodeMaterial.js +2 -2
  181. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
  182. package/examples/jsm/nodes/materialx/Disclaimer.md +199 -0
  183. package/examples/jsm/nodes/materialx/functions/lib/mx_hsv.js +56 -0
  184. package/examples/jsm/nodes/materialx/functions/lib/mx_noise.js +607 -0
  185. package/examples/jsm/nodes/math/MathNode.js +2 -12
  186. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
  187. package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
  188. package/examples/jsm/nodes/shadernode/ShaderNode.js +5 -5
  189. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +8 -5
  190. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +20 -6
  191. package/examples/jsm/nodes/utils/ConvertNode.js +8 -3
  192. package/examples/jsm/nodes/utils/JoinNode.js +7 -7
  193. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +2 -1
  194. package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
  195. package/examples/jsm/nodes/utils/SplitNode.js +21 -5
  196. package/examples/jsm/nodes/utils/TimerNode.js +2 -2
  197. package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
  198. package/examples/jsm/objects/Reflector.js +12 -5
  199. package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
  200. package/examples/jsm/objects/Refractor.js +12 -6
  201. package/examples/jsm/objects/ShadowMesh.js +8 -2
  202. package/examples/jsm/postprocessing/OutlinePass.js +5 -3
  203. package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
  204. package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
  205. package/examples/jsm/renderers/Projector.js +2 -24
  206. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
  207. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +329 -218
  208. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
  209. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +39 -3
  210. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
  211. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
  212. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  213. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
  214. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
  215. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
  216. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +66 -81
  217. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
  218. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
  219. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
  220. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +25 -30
  221. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  222. package/examples/jsm/shaders/LuminosityShader.js +1 -1
  223. package/examples/jsm/shaders/MMDToonShader.js +2 -2
  224. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  225. package/examples/jsm/utils/BufferGeometryUtils.js +2 -1
  226. package/examples/jsm/utils/GeometryUtils.js +17 -25
  227. package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
  228. package/examples/jsm/utils/SceneUtils.js +1 -21
  229. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
  230. package/examples/jsm/webxr/VRButton.js +1 -7
  231. package/package.json +18 -14
  232. package/src/Three.Legacy.js +262 -36
  233. package/src/Three.js +3 -2
  234. package/src/animation/AnimationAction.js +6 -5
  235. package/src/animation/AnimationClip.js +1 -1
  236. package/src/animation/AnimationMixer.js +1 -1
  237. package/src/animation/AnimationUtils.js +204 -199
  238. package/src/animation/KeyframeTrack.js +1 -1
  239. package/src/animation/PropertyBinding.js +24 -5
  240. package/src/cameras/CubeCamera.js +0 -7
  241. package/src/constants.js +2 -4
  242. package/src/core/BufferAttribute.js +81 -111
  243. package/src/core/BufferGeometry.js +3 -41
  244. package/src/core/InstancedBufferAttribute.js +0 -10
  245. package/src/core/InterleavedBuffer.js +1 -1
  246. package/src/core/InterleavedBufferAttribute.js +56 -7
  247. package/src/core/Object3D.js +22 -5
  248. package/src/core/Uniform.js +0 -7
  249. package/src/core/UniformsGroup.js +92 -0
  250. package/src/extras/DataUtils.js +104 -88
  251. package/src/extras/core/Path.js +1 -0
  252. package/src/extras/core/ShapePath.js +1 -4
  253. package/src/extras/curves/CatmullRomCurve3.js +4 -2
  254. package/src/geometries/BoxGeometry.js +1 -1
  255. package/src/geometries/CapsuleGeometry.js +1 -1
  256. package/src/geometries/CircleGeometry.js +1 -1
  257. package/src/geometries/ConeGeometry.js +1 -1
  258. package/src/geometries/CylinderGeometry.js +2 -1
  259. package/src/geometries/DodecahedronGeometry.js +1 -1
  260. package/src/geometries/EdgesGeometry.js +5 -4
  261. package/src/geometries/ExtrudeGeometry.js +2 -11
  262. package/src/geometries/IcosahedronGeometry.js +1 -1
  263. package/src/geometries/LatheGeometry.js +2 -2
  264. package/src/geometries/OctahedronGeometry.js +1 -1
  265. package/src/geometries/PlaneGeometry.js +2 -1
  266. package/src/geometries/PolyhedronGeometry.js +1 -1
  267. package/src/geometries/RingGeometry.js +1 -1
  268. package/src/geometries/ShapeGeometry.js +2 -1
  269. package/src/geometries/SphereGeometry.js +2 -1
  270. package/src/geometries/TetrahedronGeometry.js +1 -1
  271. package/src/geometries/TorusGeometry.js +2 -1
  272. package/src/geometries/TorusKnotGeometry.js +2 -1
  273. package/src/geometries/TubeGeometry.js +2 -1
  274. package/src/geometries/WireframeGeometry.js +1 -0
  275. package/src/helpers/CameraHelper.js +97 -38
  276. package/src/helpers/DirectionalLightHelper.js +1 -0
  277. package/src/helpers/HemisphereLightHelper.js +1 -0
  278. package/src/helpers/PlaneHelper.js +6 -9
  279. package/src/helpers/PolarGridHelper.js +18 -14
  280. package/src/helpers/SpotLightHelper.js +1 -0
  281. package/src/lights/SpotLight.js +2 -0
  282. package/src/loaders/FileLoader.js +12 -1
  283. package/src/loaders/LoadingManager.js +1 -1
  284. package/src/loaders/MaterialLoader.js +49 -7
  285. package/src/loaders/ObjectLoader.js +4 -41
  286. package/src/materials/Material.js +1 -33
  287. package/src/materials/Materials.js +0 -27
  288. package/src/materials/MeshLambertMaterial.js +28 -1
  289. package/src/materials/ShaderMaterial.js +3 -7
  290. package/src/math/Color.js +3 -13
  291. package/src/math/MathUtils.js +1 -7
  292. package/src/math/Matrix3.js +1 -7
  293. package/src/math/Matrix4.js +3 -27
  294. package/src/math/Quaternion.js +1 -21
  295. package/src/math/Vector2.js +4 -24
  296. package/src/math/Vector3.js +7 -46
  297. package/src/math/Vector4.js +4 -24
  298. package/src/renderers/WebGLRenderer.js +84 -8
  299. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
  300. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
  301. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
  302. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
  303. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
  304. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
  305. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
  306. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
  307. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -12
  308. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
  309. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +30 -0
  310. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
  311. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
  312. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
  313. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
  314. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
  315. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
  316. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
  317. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  318. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
  319. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
  320. package/src/renderers/shaders/ShaderChunk.js +4 -2
  321. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
  322. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
  323. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  324. package/src/renderers/shaders/ShaderLib.js +31 -31
  325. package/src/renderers/shaders/UniformsLib.js +12 -11
  326. package/src/renderers/shaders/UniformsUtils.js +14 -0
  327. package/src/renderers/webgl/WebGLBackground.js +2 -2
  328. package/src/renderers/webgl/WebGLLights.js +37 -13
  329. package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
  330. package/src/renderers/webgl/WebGLProgram.js +6 -11
  331. package/src/renderers/webgl/WebGLPrograms.js +30 -26
  332. package/src/renderers/webgl/WebGLRenderLists.js +5 -4
  333. package/src/renderers/webgl/WebGLRenderStates.js +5 -4
  334. package/src/renderers/webgl/WebGLShaderCache.js +9 -6
  335. package/src/renderers/webgl/WebGLShadowMap.js +10 -15
  336. package/src/renderers/webgl/WebGLState.js +47 -0
  337. package/src/renderers/webgl/WebGLUniforms.js +4 -4
  338. package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
  339. package/src/renderers/webgl/WebGLUtils.js +2 -0
  340. package/src/renderers/webvr/WebVRManager.js +42 -9
  341. package/src/renderers/webvr/WebVRUtils.js +1 -1
  342. package/src/renderers/webxr/WebXRController.js +45 -37
  343. package/src/renderers/webxr/WebXRManager.js +58 -33
  344. package/src/scenes/Scene.js +16 -3
  345. package/src/textures/Source.js +1 -1
  346. package/src/utils.js +1 -1
  347. package/examples/js/controls/experimental/CameraControls.js +0 -1048
  348. package/examples/js/loaders/KTX2Loader.js +0 -558
  349. package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
  350. package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
  351. package/examples/jsm/package.json +0 -3
  352. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
  353. package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
@@ -194,7 +194,9 @@
194
194
 
195
195
  const position = [];
196
196
  const normal = [];
197
- const color = []; // ascii
197
+ const color = [];
198
+ const intensity = [];
199
+ const label = []; // ascii
198
200
 
199
201
  if ( PCDheader.data === 'ascii' ) {
200
202
 
@@ -247,6 +249,18 @@
247
249
 
248
250
  }
249
251
 
252
+ if ( offset.intensity !== undefined ) {
253
+
254
+ intensity.push( parseFloat( line[ offset.intensity ] ) );
255
+
256
+ }
257
+
258
+ if ( offset.label !== undefined ) {
259
+
260
+ label.push( parseInt( line[ offset.label ] ) );
261
+
262
+ }
263
+
250
264
  }
251
265
 
252
266
  } // binary-compressed
@@ -268,25 +282,46 @@
268
282
 
269
283
  if ( offset.x !== undefined ) {
270
284
 
271
- position.push( dataview.getFloat32( PCDheader.points * offset.x + PCDheader.size[ 0 ] * i, this.littleEndian ) );
272
- position.push( dataview.getFloat32( PCDheader.points * offset.y + PCDheader.size[ 1 ] * i, this.littleEndian ) );
273
- position.push( dataview.getFloat32( PCDheader.points * offset.z + PCDheader.size[ 2 ] * i, this.littleEndian ) );
285
+ const xIndex = PCDheader.fields.indexOf( 'x' );
286
+ const yIndex = PCDheader.fields.indexOf( 'y' );
287
+ const zIndex = PCDheader.fields.indexOf( 'z' );
288
+ position.push( dataview.getFloat32( PCDheader.points * offset.x + PCDheader.size[ xIndex ] * i, this.littleEndian ) );
289
+ position.push( dataview.getFloat32( PCDheader.points * offset.y + PCDheader.size[ yIndex ] * i, this.littleEndian ) );
290
+ position.push( dataview.getFloat32( PCDheader.points * offset.z + PCDheader.size[ zIndex ] * i, this.littleEndian ) );
274
291
 
275
292
  }
276
293
 
277
294
  if ( offset.rgb !== undefined ) {
278
295
 
279
- color.push( dataview.getUint8( PCDheader.points * offset.rgb + PCDheader.size[ 3 ] * i + 2 ) / 255.0 );
280
- color.push( dataview.getUint8( PCDheader.points * offset.rgb + PCDheader.size[ 3 ] * i + 1 ) / 255.0 );
281
- color.push( dataview.getUint8( PCDheader.points * offset.rgb + PCDheader.size[ 3 ] * i + 0 ) / 255.0 );
296
+ const rgbIndex = PCDheader.fields.indexOf( 'rgb' );
297
+ color.push( dataview.getUint8( PCDheader.points * offset.rgb + PCDheader.size[ rgbIndex ] * i + 2 ) / 255.0 );
298
+ color.push( dataview.getUint8( PCDheader.points * offset.rgb + PCDheader.size[ rgbIndex ] * i + 1 ) / 255.0 );
299
+ color.push( dataview.getUint8( PCDheader.points * offset.rgb + PCDheader.size[ rgbIndex ] * i + 0 ) / 255.0 );
282
300
 
283
301
  }
284
302
 
285
303
  if ( offset.normal_x !== undefined ) {
286
304
 
287
- normal.push( dataview.getFloat32( PCDheader.points * offset.normal_x + PCDheader.size[ 4 ] * i, this.littleEndian ) );
288
- normal.push( dataview.getFloat32( PCDheader.points * offset.normal_y + PCDheader.size[ 5 ] * i, this.littleEndian ) );
289
- normal.push( dataview.getFloat32( PCDheader.points * offset.normal_z + PCDheader.size[ 6 ] * i, this.littleEndian ) );
305
+ const xIndex = PCDheader.fields.indexOf( 'normal_x' );
306
+ const yIndex = PCDheader.fields.indexOf( 'normal_y' );
307
+ const zIndex = PCDheader.fields.indexOf( 'normal_z' );
308
+ normal.push( dataview.getFloat32( PCDheader.points * offset.normal_x + PCDheader.size[ xIndex ] * i, this.littleEndian ) );
309
+ normal.push( dataview.getFloat32( PCDheader.points * offset.normal_y + PCDheader.size[ yIndex ] * i, this.littleEndian ) );
310
+ normal.push( dataview.getFloat32( PCDheader.points * offset.normal_z + PCDheader.size[ zIndex ] * i, this.littleEndian ) );
311
+
312
+ }
313
+
314
+ if ( offset.intensity !== undefined ) {
315
+
316
+ const intensityIndex = PCDheader.fields.indexOf( 'intensity' );
317
+ intensity.push( dataview.getFloat32( PCDheader.points * offset.intensity + PCDheader.size[ intensityIndex ] * i, this.littleEndian ) );
318
+
319
+ }
320
+
321
+ if ( offset.label !== undefined ) {
322
+
323
+ const labelIndex = PCDheader.fields.indexOf( 'label' );
324
+ label.push( dataview.getInt32( PCDheader.points * offset.label + PCDheader.size[ labelIndex ] * i, this.littleEndian ) );
290
325
 
291
326
  }
292
327
 
@@ -326,6 +361,18 @@
326
361
 
327
362
  }
328
363
 
364
+ if ( offset.intensity !== undefined ) {
365
+
366
+ intensity.push( dataview.getFloat32( row + offset.intensity, this.littleEndian ) );
367
+
368
+ }
369
+
370
+ if ( offset.label !== undefined ) {
371
+
372
+ label.push( dataview.getInt32( row + offset.label, this.littleEndian ) );
373
+
374
+ }
375
+
329
376
  }
330
377
 
331
378
  } // build geometry
@@ -335,6 +382,8 @@
335
382
  if ( position.length > 0 ) geometry.setAttribute( 'position', new THREE.Float32BufferAttribute( position, 3 ) );
336
383
  if ( normal.length > 0 ) geometry.setAttribute( 'normal', new THREE.Float32BufferAttribute( normal, 3 ) );
337
384
  if ( color.length > 0 ) geometry.setAttribute( 'color', new THREE.Float32BufferAttribute( color, 3 ) );
385
+ if ( intensity.length > 0 ) geometry.setAttribute( 'intensity', new THREE.Float32BufferAttribute( intensity, 1 ) );
386
+ if ( label.length > 0 ) geometry.setAttribute( 'label', new THREE.Int32BufferAttribute( label, 1 ) );
338
387
  geometry.computeBoundingSphere(); // build material
339
388
 
340
389
  const material = new THREE.PointsMaterial( {
@@ -345,10 +394,6 @@
345
394
 
346
395
  material.vertexColors = true;
347
396
 
348
- } else {
349
-
350
- material.color.setHex( Math.random() * 0xffffff );
351
-
352
397
  } // build point cloud
353
398
 
354
399
 
@@ -81,7 +81,7 @@
81
81
 
82
82
  function parseHeader( data ) {
83
83
 
84
- const patternHeader = /^ply([\s\S]*)end_header\r?\n/;
84
+ const patternHeader = /^ply([\s\S]*)end_header(\r\n|\r|\n)/;
85
85
  let headerText = '';
86
86
  let headerLength = 0;
87
87
  const result = patternHeader.exec( data );
@@ -99,7 +99,7 @@
99
99
  headerLength: headerLength,
100
100
  objInfo: ''
101
101
  };
102
- const lines = headerText.split( '\n' );
102
+ const lines = headerText.split( /\r\n|\r|\n/ );
103
103
  let currentElement;
104
104
 
105
105
  function make_ply_element_property( propertValues, propertyNameMapping ) {
@@ -269,7 +269,7 @@
269
269
 
270
270
  }
271
271
 
272
- const lines = body.split( '\n' );
272
+ const lines = body.split( /\r\n|\r|\n/ );
273
273
  let currentElement = 0;
274
274
  let currentElementCount = 0;
275
275
 
@@ -59,6 +59,7 @@
59
59
  switch ( node.nodeName ) {
60
60
 
61
61
  case 'svg':
62
+ style = parseStyle( node, style );
62
63
  break;
63
64
 
64
65
  case 'style':
@@ -1278,7 +1279,7 @@
1278
1279
  if ( array.length >= 1 ) {
1279
1280
 
1280
1281
  const tx = array[ 0 ];
1281
- let ty = tx;
1282
+ let ty = 0;
1282
1283
 
1283
1284
  if ( array.length >= 2 ) {
1284
1285
 
@@ -1907,7 +1908,7 @@
1907
1908
  } );
1908
1909
  simplePaths = simplePaths.filter( sp => sp.points.length > 1 ); // check if path is solid or a hole
1909
1910
 
1910
- const isAHole = simplePaths.map( p => isHoleTo( p, simplePaths, scanlineMinX, scanlineMaxX, shapePath.userData.style.fillRule ) );
1911
+ const isAHole = simplePaths.map( p => isHoleTo( p, simplePaths, scanlineMinX, scanlineMaxX, shapePath.userData?.style.fillRule ) );
1911
1912
  const shapesToReturn = [];
1912
1913
  simplePaths.forEach( p => {
1913
1914
 
@@ -2088,7 +2089,7 @@
2088
2089
  tempV2_3.normalize();
2089
2090
  const dot = Math.abs( normal1.dot( tempV2_3 ) ); // If path is straight, don't create join
2090
2091
 
2091
- if ( dot !== 0 ) {
2092
+ if ( dot > Number.EPSILON ) {
2092
2093
 
2093
2094
  // Compute inner and outer segment intersections
2094
2095
  const miterSide = strokeWidth2 / dot;
@@ -0,0 +1,31 @@
1
+ ( function () {
2
+
3
+ class TIFFLoader extends THREE.DataTextureLoader {
4
+
5
+ constructor( manager ) {
6
+
7
+ super( manager );
8
+
9
+ }
10
+
11
+ parse( buffer ) {
12
+
13
+ const ifds = UTIF.decode( buffer );
14
+ UTIF.decodeImage( buffer, ifds[ 0 ] );
15
+ const rgba = UTIF.toRGBA8( ifds[ 0 ] );
16
+ return {
17
+ width: ifds[ 0 ].width,
18
+ height: ifds[ 0 ].height,
19
+ data: rgba,
20
+ flipY: true,
21
+ magFilter: THREE.LinearFilter,
22
+ minFilter: THREE.LinearMipmapLinearFilter
23
+ };
24
+
25
+ }
26
+
27
+ }
28
+
29
+ THREE.TIFFLoader = TIFFLoader;
30
+
31
+ } )();
@@ -212,16 +212,16 @@
212
212
  function createVisitor( BaseVRMLVisitor ) {
213
213
 
214
214
  // the visitor is created dynmaically based on the given base class
215
- function VRMLToASTVisitor() {
215
+ class VRMLToASTVisitor extends BaseVRMLVisitor {
216
216
 
217
- BaseVRMLVisitor.call( this );
218
- this.validateVisitor();
217
+ constructor() {
219
218
 
220
- }
219
+ super();
220
+ this.validateVisitor();
221
+
222
+ }
221
223
 
222
- VRMLToASTVisitor.prototype = Object.assign( Object.create( BaseVRMLVisitor.prototype ), {
223
- constructor: VRMLToASTVisitor,
224
- vrml: function ( ctx ) {
224
+ vrml( ctx ) {
225
225
 
226
226
  const data = {
227
227
  version: this.visit( ctx.version ),
@@ -249,13 +249,15 @@
249
249
 
250
250
  return data;
251
251
 
252
- },
253
- version: function ( ctx ) {
252
+ }
253
+
254
+ version( ctx ) {
254
255
 
255
256
  return ctx.Version[ 0 ].image;
256
257
 
257
- },
258
- node: function ( ctx ) {
258
+ }
259
+
260
+ node( ctx ) {
259
261
 
260
262
  const data = {
261
263
  name: ctx.NodeName[ 0 ].image,
@@ -282,8 +284,9 @@
282
284
 
283
285
  return data;
284
286
 
285
- },
286
- field: function ( ctx ) {
287
+ }
288
+
289
+ field( ctx ) {
287
290
 
288
291
  const data = {
289
292
  name: ctx.Identifier[ 0 ].image,
@@ -309,30 +312,35 @@
309
312
  data.values = result.values;
310
313
  return data;
311
314
 
312
- },
313
- def: function ( ctx ) {
315
+ }
316
+
317
+ def( ctx ) {
314
318
 
315
319
  return ( ctx.Identifier || ctx.NodeName )[ 0 ].image;
316
320
 
317
- },
318
- use: function ( ctx ) {
321
+ }
322
+
323
+ use( ctx ) {
319
324
 
320
325
  return {
321
326
  USE: ( ctx.Identifier || ctx.NodeName )[ 0 ].image
322
327
  };
323
328
 
324
- },
325
- singleFieldValue: function ( ctx ) {
329
+ }
330
+
331
+ singleFieldValue( ctx ) {
326
332
 
327
333
  return processField( this, ctx );
328
334
 
329
- },
330
- multiFieldValue: function ( ctx ) {
335
+ }
336
+
337
+ multiFieldValue( ctx ) {
331
338
 
332
339
  return processField( this, ctx );
333
340
 
334
- },
335
- route: function ( ctx ) {
341
+ }
342
+
343
+ route( ctx ) {
336
344
 
337
345
  const data = {
338
346
  FROM: ctx.RouteIdentifier[ 0 ].image,
@@ -341,7 +349,8 @@
341
349
  return data;
342
350
 
343
351
  }
344
- } );
352
+
353
+ }
345
354
 
346
355
  function processField( scope, ctx ) {
347
356
 
@@ -855,7 +855,7 @@
855
855
  // Depending on the number of DataArrays
856
856
  let arr;
857
857
 
858
- if ( Object.prototype.toString.call( section.DataArray ) === '[object Array]' ) {
858
+ if ( Array.isArray( section.DataArray ) ) {
859
859
 
860
860
  arr = section.DataArray;
861
861
 
@@ -1,14 +1,14 @@
1
1
  ( function () {
2
2
 
3
- function LWO2Parser( IFFParser ) {
3
+ class LWO2Parser {
4
4
 
5
- this.IFF = IFFParser;
5
+ constructor( IFFParser ) {
6
6
 
7
- }
7
+ this.IFF = IFFParser;
8
+
9
+ }
8
10
 
9
- LWO2Parser.prototype = {
10
- constructor: LWO2Parser,
11
- parseBlock: function () {
11
+ parseBlock() {
12
12
 
13
13
  this.IFF.debugger.offset = this.IFF.reader.offset;
14
14
  this.IFF.debugger.closeForms();
@@ -440,7 +440,8 @@
440
440
  }
441
441
 
442
442
  }
443
- };
443
+
444
+ }
444
445
 
445
446
  THREE.LWO2Parser = LWO2Parser;
446
447
 
@@ -1,14 +1,14 @@
1
1
  ( function () {
2
2
 
3
- function LWO3Parser( IFFParser ) {
3
+ class LWO3Parser {
4
4
 
5
- this.IFF = IFFParser;
5
+ constructor( IFFParser ) {
6
6
 
7
- }
7
+ this.IFF = IFFParser;
8
+
9
+ }
8
10
 
9
- LWO3Parser.prototype = {
10
- constructor: LWO3Parser,
11
- parseBlock: function () {
11
+ parseBlock() {
12
12
 
13
13
  this.IFF.debugger.offset = this.IFF.reader.offset;
14
14
  this.IFF.debugger.closeForms();
@@ -394,7 +394,8 @@
394
394
  }
395
395
 
396
396
  }
397
- };
397
+
398
+ }
398
399
 
399
400
  THREE.LWO3Parser = LWO3Parser;
400
401