@plastic-software/three 0.180.0 → 0.181.1

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 (357) hide show
  1. package/build/three.cjs +943 -486
  2. package/build/three.core.js +506 -327
  3. package/build/three.core.min.js +1 -1
  4. package/build/three.module.js +435 -163
  5. package/build/three.module.min.js +1 -1
  6. package/build/three.tsl.js +8 -2
  7. package/build/three.tsl.min.js +1 -1
  8. package/build/three.webgpu.js +3753 -1177
  9. package/build/three.webgpu.min.js +1 -1
  10. package/build/three.webgpu.nodes.js +3752 -1176
  11. package/build/three.webgpu.nodes.min.js +1 -1
  12. package/examples/fonts/MPLUSRounded1c/MPLUSRounded1c-Regular.typeface.json.zip +0 -0
  13. package/examples/fonts/MPLUSRounded1c/OFL.txt +91 -0
  14. package/examples/jsm/animation/CCDIKSolver.js +1 -1
  15. package/examples/jsm/controls/ArcballControls.js +1 -1
  16. package/examples/jsm/controls/DragControls.js +1 -1
  17. package/examples/jsm/controls/FirstPersonControls.js +1 -1
  18. package/examples/jsm/controls/FlyControls.js +1 -1
  19. package/examples/jsm/controls/OrbitControls.js +2 -2
  20. package/examples/jsm/controls/PointerLockControls.js +2 -2
  21. package/examples/jsm/controls/TrackballControls.js +1 -1
  22. package/examples/jsm/controls/TransformControls.js +1 -1
  23. package/examples/jsm/effects/AsciiEffect.js +8 -8
  24. package/examples/jsm/exporters/DRACOExporter.js +2 -2
  25. package/examples/jsm/exporters/EXRExporter.js +1 -1
  26. package/examples/jsm/exporters/GLTFExporter.js +3 -3
  27. package/examples/jsm/exporters/USDZExporter.js +9 -2
  28. package/examples/jsm/geometries/DecalGeometry.js +2 -2
  29. package/examples/jsm/geometries/ParametricGeometry.js +1 -1
  30. package/examples/jsm/geometries/TeapotGeometry.js +2 -2
  31. package/examples/jsm/geometries/TextGeometry.js +3 -2
  32. package/examples/jsm/gpgpu/BitonicSort.js +715 -0
  33. package/examples/jsm/helpers/ViewHelper.js +43 -5
  34. package/examples/jsm/inspector/Inspector.js +427 -0
  35. package/examples/jsm/inspector/RendererInspector.js +415 -0
  36. package/examples/jsm/inspector/tabs/Console.js +204 -0
  37. package/examples/jsm/inspector/tabs/Parameters.js +332 -0
  38. package/examples/jsm/inspector/tabs/Performance.js +268 -0
  39. package/examples/jsm/inspector/tabs/Viewer.js +166 -0
  40. package/examples/jsm/inspector/ui/Graph.js +95 -0
  41. package/examples/jsm/inspector/ui/Item.js +170 -0
  42. package/examples/jsm/inspector/ui/List.js +75 -0
  43. package/examples/jsm/inspector/ui/Profiler.js +170 -0
  44. package/examples/jsm/inspector/ui/Style.js +654 -0
  45. package/examples/jsm/inspector/ui/Tab.js +46 -0
  46. package/examples/jsm/inspector/ui/Values.js +423 -0
  47. package/examples/jsm/inspector/ui/utils.js +56 -0
  48. package/examples/jsm/interactive/HTMLMesh.js +6 -10
  49. package/examples/jsm/interactive/InteractiveGroup.js +1 -1
  50. package/examples/jsm/interactive/SelectionBox.js +30 -0
  51. package/examples/jsm/lights/RectAreaLightTexturesLib.js +1 -1
  52. package/examples/jsm/loaders/3MFLoader.js +1 -1
  53. package/examples/jsm/loaders/ColladaLoader.js +2 -2
  54. package/examples/jsm/loaders/DDSLoader.js +1 -1
  55. package/examples/jsm/loaders/DRACOLoader.js +73 -22
  56. package/examples/jsm/loaders/FBXLoader.js +2 -2
  57. package/examples/jsm/loaders/FontLoader.js +23 -5
  58. package/examples/jsm/loaders/GLTFLoader.js +5 -3
  59. package/examples/jsm/loaders/KTX2Loader.js +28 -21
  60. package/examples/jsm/loaders/KTXLoader.js +2 -2
  61. package/examples/jsm/loaders/LDrawLoader.js +1 -1
  62. package/examples/jsm/loaders/LUT3dlLoader.js +2 -2
  63. package/examples/jsm/loaders/LUTCubeLoader.js +1 -1
  64. package/examples/jsm/loaders/LWOLoader.js +2 -2
  65. package/examples/jsm/loaders/MaterialXLoader.js +22 -5
  66. package/examples/jsm/loaders/OBJLoader.js +1 -1
  67. package/examples/jsm/loaders/PDBLoader.js +1 -1
  68. package/examples/jsm/loaders/SVGLoader.js +2 -2
  69. package/examples/jsm/loaders/UltraHDRLoader.js +1 -1
  70. package/examples/jsm/math/ConvexHull.js +1 -1
  71. package/examples/jsm/math/ImprovedNoise.js +1 -1
  72. package/examples/jsm/math/SimplexNoise.js +1 -1
  73. package/examples/jsm/misc/ProgressiveLightMap.js +9 -3
  74. package/examples/jsm/misc/ProgressiveLightMapGPU.js +7 -1
  75. package/examples/jsm/misc/TubePainter.js +383 -40
  76. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  77. package/examples/jsm/objects/ReflectorForSSRPass.js +1 -0
  78. package/examples/jsm/objects/Sky.js +1 -1
  79. package/examples/jsm/objects/SkyMesh.js +1 -1
  80. package/examples/jsm/objects/Water.js +3 -3
  81. package/examples/jsm/objects/WaterMesh.js +6 -6
  82. package/examples/jsm/postprocessing/GlitchPass.js +2 -2
  83. package/examples/jsm/postprocessing/UnrealBloomPass.js +8 -6
  84. package/examples/jsm/renderers/CSS2DRenderer.js +16 -5
  85. package/examples/jsm/renderers/CSS3DRenderer.js +7 -6
  86. package/examples/jsm/renderers/SVGRenderer.js +1 -1
  87. package/examples/jsm/shaders/ACESFilmicToneMappingShader.js +1 -1
  88. package/examples/jsm/shaders/AfterimageShader.js +1 -1
  89. package/examples/jsm/shaders/BleachBypassShader.js +1 -1
  90. package/examples/jsm/shaders/BokehShader.js +1 -1
  91. package/examples/jsm/shaders/BokehShader2.js +1 -1
  92. package/examples/jsm/shaders/DotScreenShader.js +1 -1
  93. package/examples/jsm/shaders/FocusShader.js +1 -1
  94. package/examples/jsm/shaders/GTAOShader.js +2 -2
  95. package/examples/jsm/shaders/GodRaysShader.js +1 -1
  96. package/examples/jsm/shaders/KaleidoShader.js +1 -1
  97. package/examples/jsm/shaders/PoissonDenoiseShader.js +2 -2
  98. package/examples/jsm/shaders/SSRShader.js +1 -1
  99. package/examples/jsm/shaders/SepiaShader.js +1 -1
  100. package/examples/jsm/shaders/SubsurfaceScatteringShader.js +1 -1
  101. package/examples/jsm/shaders/TriangleBlurShader.js +1 -1
  102. package/examples/jsm/shaders/VignetteShader.js +1 -1
  103. package/examples/jsm/transpiler/TSLEncoder.js +7 -0
  104. package/examples/jsm/tsl/display/AfterImageNode.js +26 -24
  105. package/examples/jsm/tsl/display/AnamorphicNode.js +2 -1
  106. package/examples/jsm/tsl/display/BloomNode.js +4 -0
  107. package/examples/jsm/tsl/display/DenoiseNode.js +2 -0
  108. package/examples/jsm/tsl/display/DepthOfFieldNode.js +7 -0
  109. package/examples/jsm/tsl/display/GTAONode.js +45 -5
  110. package/examples/jsm/tsl/display/GaussianBlurNode.js +5 -3
  111. package/examples/jsm/tsl/display/OutlineNode.js +11 -0
  112. package/examples/jsm/tsl/display/SSGINode.js +654 -0
  113. package/examples/jsm/tsl/display/SSRNode.js +2 -0
  114. package/examples/jsm/tsl/display/SSSNode.js +488 -0
  115. package/examples/jsm/tsl/display/TRAANode.js +123 -6
  116. package/examples/jsm/tsl/display/boxBlur.js +1 -0
  117. package/examples/jsm/tsl/display/hashBlur.js +1 -0
  118. package/examples/jsm/tsl/lighting/TiledLightsNode.js +21 -1
  119. package/examples/jsm/webxr/XRControllerModelFactory.js +1 -1
  120. package/examples/jsm/webxr/XRHandModelFactory.js +2 -6
  121. package/package.json +5 -10
  122. package/src/Three.Core.js +3 -2
  123. package/src/Three.TSL.js +7 -1
  124. package/src/Three.WebGPU.Nodes.js +2 -0
  125. package/src/Three.WebGPU.js +2 -0
  126. package/src/animation/AnimationClip.js +3 -2
  127. package/src/animation/AnimationMixer.js +3 -3
  128. package/src/animation/AnimationObjectGroup.js +2 -1
  129. package/src/animation/KeyframeTrack.js +7 -6
  130. package/src/animation/PropertyBinding.js +12 -11
  131. package/src/audio/Audio.js +10 -9
  132. package/src/audio/PositionalAudio.js +1 -1
  133. package/src/cameras/OrthographicCamera.js +1 -1
  134. package/src/cameras/PerspectiveCamera.js +1 -1
  135. package/src/cameras/StereoCamera.js +2 -2
  136. package/src/constants.js +1 -1
  137. package/src/core/BufferGeometry.js +8 -8
  138. package/src/core/EventDispatcher.js +1 -1
  139. package/src/core/InterleavedBuffer.js +1 -1
  140. package/src/core/InterleavedBufferAttribute.js +3 -2
  141. package/src/core/Object3D.js +3 -2
  142. package/src/core/Raycaster.js +2 -1
  143. package/src/core/RenderTarget.js +10 -1
  144. package/src/extras/Controls.js +5 -4
  145. package/src/extras/DataUtils.js +2 -1
  146. package/src/extras/Earcut.js +6 -0
  147. package/src/extras/ImageUtils.js +2 -2
  148. package/src/extras/PMREMGenerator.js +268 -55
  149. package/src/extras/core/Curve.js +2 -1
  150. package/src/extras/core/Interpolations.js +7 -1
  151. package/src/extras/core/ShapePath.js +4 -4
  152. package/src/extras/lib/earcut.js +7 -7
  153. package/src/geometries/BoxGeometry.js +1 -0
  154. package/src/geometries/CapsuleGeometry.js +1 -0
  155. package/src/geometries/CircleGeometry.js +1 -0
  156. package/src/geometries/ConeGeometry.js +1 -0
  157. package/src/geometries/CylinderGeometry.js +1 -0
  158. package/src/geometries/DodecahedronGeometry.js +1 -0
  159. package/src/geometries/ExtrudeGeometry.js +8 -6
  160. package/src/geometries/IcosahedronGeometry.js +1 -0
  161. package/src/geometries/LatheGeometry.js +1 -0
  162. package/src/geometries/OctahedronGeometry.js +1 -0
  163. package/src/geometries/PlaneGeometry.js +1 -0
  164. package/src/geometries/RingGeometry.js +1 -0
  165. package/src/geometries/ShapeGeometry.js +1 -0
  166. package/src/geometries/SphereGeometry.js +1 -0
  167. package/src/geometries/TetrahedronGeometry.js +1 -0
  168. package/src/geometries/TorusGeometry.js +1 -0
  169. package/src/geometries/TorusKnotGeometry.js +1 -0
  170. package/src/geometries/TubeGeometry.js +1 -0
  171. package/src/helpers/CameraHelper.js +1 -1
  172. package/src/loaders/AnimationLoader.js +2 -1
  173. package/src/loaders/AudioLoader.js +2 -1
  174. package/src/loaders/BufferGeometryLoader.js +2 -2
  175. package/src/loaders/Cache.js +2 -2
  176. package/src/loaders/DataTextureLoader.js +1 -1
  177. package/src/loaders/FileLoader.js +3 -2
  178. package/src/loaders/ImageBitmapLoader.js +5 -4
  179. package/src/loaders/ImageLoader.js +1 -1
  180. package/src/loaders/Loader.js +3 -3
  181. package/src/loaders/LoadingManager.js +25 -3
  182. package/src/loaders/MaterialLoader.js +3 -2
  183. package/src/loaders/ObjectLoader.js +13 -13
  184. package/src/loaders/TextureLoader.js +1 -1
  185. package/src/loaders/nodes/NodeLoader.js +3 -2
  186. package/src/materials/Material.js +4 -3
  187. package/src/materials/MeshBasicMaterial.js +1 -0
  188. package/src/materials/MeshDepthMaterial.js +1 -0
  189. package/src/materials/MeshLambertMaterial.js +2 -1
  190. package/src/materials/MeshMatcapMaterial.js +22 -0
  191. package/src/materials/MeshNormalMaterial.js +1 -0
  192. package/src/materials/MeshPhongMaterial.js +2 -1
  193. package/src/materials/MeshPhysicalMaterial.js +2 -1
  194. package/src/materials/MeshStandardMaterial.js +8 -7
  195. package/src/materials/MeshToonMaterial.js +1 -0
  196. package/src/materials/PointsMaterial.js +1 -1
  197. package/src/materials/ShaderMaterial.js +2 -2
  198. package/src/materials/nodes/Line2NodeMaterial.js +2 -2
  199. package/src/materials/nodes/MeshSSSNodeMaterial.js +1 -1
  200. package/src/materials/nodes/NodeMaterial.js +62 -22
  201. package/src/materials/nodes/manager/NodeMaterialObserver.js +2 -1
  202. package/src/math/Color.js +6 -5
  203. package/src/math/ColorManagement.js +2 -2
  204. package/src/math/Cylindrical.js +1 -1
  205. package/src/math/Euler.js +2 -1
  206. package/src/math/MathUtils.js +13 -11
  207. package/src/math/Matrix2.js +1 -1
  208. package/src/math/Matrix3.js +2 -2
  209. package/src/math/Matrix4.js +7 -7
  210. package/src/math/Plane.js +1 -1
  211. package/src/math/Quaternion.js +68 -66
  212. package/src/math/Spherical.js +1 -1
  213. package/src/nodes/Nodes.js +1 -1
  214. package/src/nodes/TSL.js +1 -1
  215. package/src/nodes/accessors/CubeTextureNode.js +3 -2
  216. package/src/nodes/accessors/InstanceNode.js +22 -4
  217. package/src/nodes/accessors/Lights.js +10 -0
  218. package/src/nodes/accessors/Normal.js +5 -4
  219. package/src/nodes/accessors/Position.js +18 -2
  220. package/src/nodes/accessors/ReferenceNode.js +2 -1
  221. package/src/nodes/accessors/SceneNode.js +2 -1
  222. package/src/nodes/accessors/StorageBufferNode.js +2 -1
  223. package/src/nodes/accessors/StorageTextureNode.js +22 -0
  224. package/src/nodes/accessors/Texture3DNode.js +1 -1
  225. package/src/nodes/accessors/TextureNode.js +61 -27
  226. package/src/nodes/code/FunctionCallNode.js +5 -4
  227. package/src/nodes/core/ArrayNode.js +1 -0
  228. package/src/nodes/core/AttributeNode.js +2 -1
  229. package/src/nodes/core/ContextNode.js +5 -10
  230. package/src/nodes/core/IndexNode.js +2 -2
  231. package/src/nodes/core/InputNode.js +2 -1
  232. package/src/nodes/core/InspectorNode.js +128 -0
  233. package/src/nodes/core/{CacheNode.js → IsolateNode.js} +40 -7
  234. package/src/nodes/core/Node.js +137 -12
  235. package/src/nodes/core/NodeBuilder.js +135 -21
  236. package/src/nodes/core/NodeFrame.js +20 -20
  237. package/src/nodes/core/NodeFunction.js +2 -1
  238. package/src/nodes/core/NodeParser.js +2 -1
  239. package/src/nodes/core/NodeUtils.js +17 -90
  240. package/src/nodes/core/ParameterNode.js +31 -0
  241. package/src/nodes/core/PropertyNode.js +7 -0
  242. package/src/nodes/core/StackNode.js +16 -14
  243. package/src/nodes/core/UniformNode.js +2 -1
  244. package/src/nodes/core/VarNode.js +70 -12
  245. package/src/nodes/core/VaryingNode.js +3 -2
  246. package/src/nodes/display/BlendModes.js +5 -4
  247. package/src/nodes/display/BumpMapNode.js +1 -1
  248. package/src/nodes/display/ColorAdjustment.js +1 -1
  249. package/src/nodes/display/NormalMapNode.js +2 -1
  250. package/src/nodes/display/PassNode.js +51 -10
  251. package/src/nodes/display/RenderOutputNode.js +28 -2
  252. package/src/nodes/display/ScreenNode.js +2 -1
  253. package/src/nodes/display/ToneMappingNode.js +31 -4
  254. package/src/nodes/display/ToonOutlinePassNode.js +8 -0
  255. package/src/nodes/fog/Fog.js +3 -2
  256. package/src/nodes/functions/BSDF/BRDF_GGX_Multiscatter.js +52 -0
  257. package/src/nodes/functions/BSDF/DFGApprox.js +60 -19
  258. package/src/nodes/functions/BasicLightingModel.js +2 -1
  259. package/src/nodes/functions/PhysicalLightingModel.js +3 -2
  260. package/src/nodes/functions/VolumetricLightingModel.js +5 -5
  261. package/src/nodes/geometry/RangeNode.js +40 -4
  262. package/src/nodes/gpgpu/ComputeBuiltinNode.js +2 -1
  263. package/src/nodes/gpgpu/ComputeNode.js +17 -5
  264. package/src/nodes/gpgpu/SubgroupFunctionNode.js +25 -0
  265. package/src/nodes/gpgpu/WorkgroupInfoNode.js +2 -1
  266. package/src/nodes/lighting/EnvironmentNode.js +6 -6
  267. package/src/nodes/lighting/LightsNode.js +2 -3
  268. package/src/nodes/lighting/PointShadowNode.js +6 -0
  269. package/src/nodes/lighting/ShadowFilterNode.js +2 -0
  270. package/src/nodes/lighting/ShadowNode.js +75 -8
  271. package/src/nodes/math/ConditionalNode.js +6 -5
  272. package/src/nodes/math/MathNode.js +22 -4
  273. package/src/nodes/math/OperatorNode.js +3 -2
  274. package/src/nodes/pmrem/PMREMUtils.js +117 -2
  275. package/src/nodes/shapes/Shapes.js +1 -1
  276. package/src/nodes/tsl/TSLBase.js +5 -2
  277. package/src/nodes/tsl/TSLCore.js +36 -15
  278. package/src/nodes/utils/DebugNode.js +2 -1
  279. package/src/nodes/utils/EventNode.js +36 -0
  280. package/src/nodes/utils/FunctionOverloadingNode.js +37 -19
  281. package/src/nodes/utils/JoinNode.js +3 -2
  282. package/src/nodes/utils/LoopNode.js +20 -24
  283. package/src/nodes/utils/MemberNode.js +2 -1
  284. package/src/nodes/utils/PostProcessingUtils.js +28 -1
  285. package/src/nodes/utils/RTTNode.js +12 -2
  286. package/src/nodes/utils/ReflectorNode.js +10 -3
  287. package/src/objects/Line.js +2 -1
  288. package/src/objects/LineSegments.js +2 -1
  289. package/src/objects/Skeleton.js +3 -2
  290. package/src/objects/SkinnedMesh.js +3 -1
  291. package/src/objects/Sprite.js +2 -1
  292. package/src/renderers/WebGLRenderer.js +48 -32
  293. package/src/renderers/common/Animation.js +13 -1
  294. package/src/renderers/common/Backend.js +93 -30
  295. package/src/renderers/common/Background.js +2 -1
  296. package/src/renderers/common/Bindings.js +56 -2
  297. package/src/renderers/common/CanvasTarget.js +341 -0
  298. package/src/renderers/common/Geometries.js +26 -0
  299. package/src/renderers/common/Info.js +4 -2
  300. package/src/renderers/common/InspectorBase.js +146 -0
  301. package/src/renderers/common/PostProcessing.js +6 -25
  302. package/src/renderers/common/QuadMesh.js +7 -1
  303. package/src/renderers/common/RenderList.js +7 -3
  304. package/src/renderers/common/RenderObject.js +3 -1
  305. package/src/renderers/common/RenderObjects.js +1 -1
  306. package/src/renderers/common/Renderer.js +436 -228
  307. package/src/renderers/common/RendererUtils.js +9 -0
  308. package/src/renderers/common/SampledTexture.js +8 -0
  309. package/src/renderers/common/Sampler.js +37 -11
  310. package/src/renderers/common/StorageTexture.js +9 -1
  311. package/src/renderers/common/Textures.js +89 -35
  312. package/src/renderers/common/TimestampQueryPool.js +63 -1
  313. package/src/renderers/common/UniformsGroup.js +2 -1
  314. package/src/renderers/common/XRManager.js +7 -3
  315. package/src/renderers/common/extras/PMREMGenerator.js +160 -65
  316. package/src/renderers/common/nodes/NodeLibrary.js +4 -2
  317. package/src/renderers/common/nodes/NodeSampler.js +13 -1
  318. package/src/renderers/common/nodes/Nodes.js +38 -16
  319. package/src/renderers/shaders/DFGLUTData.js +64 -0
  320. package/src/renderers/shaders/ShaderChunk/common.glsl.js +0 -12
  321. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +1 -1
  322. package/src/renderers/shaders/ShaderChunk/envmap_physical_pars_fragment.glsl.js +1 -1
  323. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +52 -18
  324. package/src/renderers/shaders/UniformsLib.js +1 -0
  325. package/src/renderers/shaders/UniformsUtils.js +25 -4
  326. package/src/renderers/webgl/WebGLCapabilities.js +2 -1
  327. package/src/renderers/webgl/WebGLExtensions.js +2 -25
  328. package/src/renderers/webgl/WebGLInfo.js +3 -1
  329. package/src/renderers/webgl/WebGLProgram.js +11 -10
  330. package/src/renderers/webgl/WebGLPrograms.js +2 -1
  331. package/src/renderers/webgl/WebGLShadowMap.js +2 -1
  332. package/src/renderers/webgl/WebGLState.js +15 -14
  333. package/src/renderers/webgl/WebGLTextures.js +18 -14
  334. package/src/renderers/webgl/WebGLUniformsGroups.js +5 -3
  335. package/src/renderers/webgl-fallback/WebGLBackend.js +22 -41
  336. package/src/renderers/webgl-fallback/nodes/GLSLNodeBuilder.js +74 -11
  337. package/src/renderers/webgl-fallback/utils/WebGLConstants.js +2 -3
  338. package/src/renderers/webgl-fallback/utils/WebGLState.js +6 -5
  339. package/src/renderers/webgl-fallback/utils/WebGLTextureUtils.js +117 -16
  340. package/src/renderers/webgl-fallback/utils/WebGLTimestampQueryPool.js +42 -12
  341. package/src/renderers/webgpu/WebGPUBackend.js +134 -108
  342. package/src/renderers/webgpu/WebGPURenderer.Nodes.js +2 -1
  343. package/src/renderers/webgpu/WebGPURenderer.js +3 -2
  344. package/src/renderers/webgpu/nodes/WGSLNodeBuilder.js +21 -19
  345. package/src/renderers/webgpu/utils/WebGPUAttributeUtils.js +2 -1
  346. package/src/renderers/webgpu/utils/WebGPUBindingUtils.js +5 -3
  347. package/src/renderers/webgpu/utils/WebGPUConstants.js +5 -0
  348. package/src/renderers/webgpu/utils/WebGPUPipelineUtils.js +44 -16
  349. package/src/renderers/webgpu/utils/WebGPUTexturePassUtils.js +6 -8
  350. package/src/renderers/webgpu/utils/WebGPUTextureUtils.js +146 -74
  351. package/src/renderers/webgpu/utils/WebGPUTimestampQueryPool.js +29 -6
  352. package/src/renderers/webgpu/utils/WebGPUUtils.js +22 -2
  353. package/src/renderers/webxr/WebXRManager.js +3 -2
  354. package/src/textures/Source.js +2 -1
  355. package/src/textures/Texture.js +3 -2
  356. package/src/textures/VideoTexture.js +2 -0
  357. package/src/utils.js +67 -3
@@ -236,7 +236,7 @@ class ShapePath {
236
236
  let holesFirst = ! isClockWise( subPaths[ 0 ].getPoints() );
237
237
  holesFirst = isCCW ? ! holesFirst : holesFirst;
238
238
 
239
- // console.log("Holes first", holesFirst);
239
+ // log("Holes first", holesFirst);
240
240
 
241
241
  const betterShapeHoles = [];
242
242
  const newShapes = [];
@@ -264,13 +264,13 @@ class ShapePath {
264
264
  if ( holesFirst ) mainIdx ++;
265
265
  newShapeHoles[ mainIdx ] = [];
266
266
 
267
- //console.log('cw', i);
267
+ //log('cw', i);
268
268
 
269
269
  } else {
270
270
 
271
271
  newShapeHoles[ mainIdx ].push( { h: tmpPath, p: tmpPoints[ 0 ] } );
272
272
 
273
- //console.log('ccw', i);
273
+ //log('ccw', i);
274
274
 
275
275
  }
276
276
 
@@ -355,7 +355,7 @@ class ShapePath {
355
355
 
356
356
  }
357
357
 
358
- //console.log("shape", shapes);
358
+ //log("shape", shapes);
359
359
 
360
360
  return shapes;
361
361
 
@@ -1,6 +1,6 @@
1
1
  /* eslint-disable */
2
- // copy of mapbox/earcut version 3.0.1
3
- // https://github.com/mapbox/earcut/tree/v3.0.1
2
+ // copy of mapbox/earcut version 3.0.2
3
+ // https://github.com/mapbox/earcut/tree/v3.0.2
4
4
 
5
5
  export default function earcut(data, holeIndices, dim = 2) {
6
6
 
@@ -17,10 +17,10 @@ export default function earcut(data, holeIndices, dim = 2) {
17
17
 
18
18
  // if the shape is not too simple, we'll use z-order curve hash later; calculate polygon bbox
19
19
  if (data.length > 80 * dim) {
20
- minX = Infinity;
21
- minY = Infinity;
22
- let maxX = -Infinity;
23
- let maxY = -Infinity;
20
+ minX = data[0];
21
+ minY = data[1];
22
+ let maxX = minX;
23
+ let maxY = minY;
24
24
 
25
25
  for (let i = dim; i < outerLen; i += dim) {
26
26
  const x = data[i];
@@ -296,7 +296,7 @@ function compareXYSlope(a, b) {
296
296
  return result;
297
297
  }
298
298
 
299
- // find a bridge between vertices that connects hole with an outer ring and and link it
299
+ // find a bridge between vertices that connects hole with an outer ring and link it
300
300
  function eliminateHole(hole, outerNode) {
301
301
  const bridge = findHoleBridge(hole, outerNode);
302
302
  if (!bridge) {
@@ -15,6 +15,7 @@ import { Vector3 } from '../math/Vector3.js';
15
15
  * ```
16
16
  *
17
17
  * @augments BufferGeometry
18
+ * @demo scenes/geometry-browser.html#BoxGeometry
18
19
  */
19
20
  class BoxGeometry extends BufferGeometry {
20
21
 
@@ -13,6 +13,7 @@ import { Vector3 } from '../math/Vector3.js';
13
13
  * ```
14
14
  *
15
15
  * @augments BufferGeometry
16
+ * @demo scenes/geometry-browser.html#CapsuleGeometry
16
17
  */
17
18
  class CapsuleGeometry extends BufferGeometry {
18
19
 
@@ -19,6 +19,7 @@ import { Vector2 } from '../math/Vector2.js';
19
19
  * ```
20
20
  *
21
21
  * @augments BufferGeometry
22
+ * @demo scenes/geometry-browser.html#CircleGeometry
22
23
  */
23
24
  class CircleGeometry extends BufferGeometry {
24
25
 
@@ -11,6 +11,7 @@ import { CylinderGeometry } from './CylinderGeometry.js';
11
11
  * ```
12
12
  *
13
13
  * @augments CylinderGeometry
14
+ * @demo scenes/geometry-browser.html#ConeGeometry
14
15
  */
15
16
  class ConeGeometry extends CylinderGeometry {
16
17
 
@@ -14,6 +14,7 @@ import { Vector2 } from '../math/Vector2.js';
14
14
  * ```
15
15
  *
16
16
  * @augments BufferGeometry
17
+ * @demo scenes/geometry-browser.html#CylinderGeometry
17
18
  */
18
19
  class CylinderGeometry extends BufferGeometry {
19
20
 
@@ -11,6 +11,7 @@ import { PolyhedronGeometry } from './PolyhedronGeometry.js';
11
11
  * ```
12
12
  *
13
13
  * @augments PolyhedronGeometry
14
+ * @demo scenes/geometry-browser.html#DodecahedronGeometry
14
15
  */
15
16
  class DodecahedronGeometry extends PolyhedronGeometry {
16
17
 
@@ -5,6 +5,7 @@ import { Vector2 } from '../math/Vector2.js';
5
5
  import { Vector3 } from '../math/Vector3.js';
6
6
  import { Shape } from '../extras/core/Shape.js';
7
7
  import { ShapeUtils } from '../extras/ShapeUtils.js';
8
+ import { error } from '../utils.js';
8
9
 
9
10
  /**
10
11
  * Creates extruded geometry from a path shape.
@@ -26,6 +27,7 @@ import { ShapeUtils } from '../extras/ShapeUtils.js';
26
27
  * ```
27
28
  *
28
29
  * @augments BufferGeometry
30
+ * @demo scenes/geometry-browser.html#ExtrudeGeometry
29
31
  */
30
32
  class ExtrudeGeometry extends BufferGeometry {
31
33
 
@@ -114,7 +116,7 @@ class ExtrudeGeometry extends BufferGeometry {
114
116
 
115
117
  splineTube = extrudePath.computeFrenetFrames( steps, false );
116
118
 
117
- // console.log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);
119
+ // log(splineTube, 'splineTube', splineTube.normals.length, 'steps', steps, 'extrudePts', extrudePts.length);
118
120
 
119
121
  binormal = new Vector3();
120
122
  normal = new Vector3();
@@ -219,7 +221,7 @@ class ExtrudeGeometry extends BufferGeometry {
219
221
 
220
222
  function scalePt2( pt, vec, size ) {
221
223
 
222
- if ( ! vec ) console.error( 'THREE.ExtrudeGeometry: vec does not exist' );
224
+ if ( ! vec ) error( 'ExtrudeGeometry: vec does not exist' );
223
225
 
224
226
  return pt.clone().addScaledVector( vec, size );
225
227
 
@@ -334,14 +336,14 @@ class ExtrudeGeometry extends BufferGeometry {
334
336
 
335
337
  if ( direction_eq ) {
336
338
 
337
- // console.log("Warning: lines are a straight sequence");
339
+ // log("Warning: lines are a straight sequence");
338
340
  v_trans_x = - v_prev_y;
339
341
  v_trans_y = v_prev_x;
340
342
  shrink_by = Math.sqrt( v_prev_lensq );
341
343
 
342
344
  } else {
343
345
 
344
- // console.log("Warning: lines are a straight spike");
346
+ // log("Warning: lines are a straight spike");
345
347
  v_trans_x = v_prev_x;
346
348
  v_trans_y = v_prev_y;
347
349
  shrink_by = Math.sqrt( v_prev_lensq / 2 );
@@ -363,7 +365,7 @@ class ExtrudeGeometry extends BufferGeometry {
363
365
  if ( k === il ) k = 0;
364
366
 
365
367
  // (j)---(i)---(k)
366
- // console.log('i,j,k', i, j , k)
368
+ // log('i,j,k', i, j , k)
367
369
 
368
370
  contourMovements[ i ] = getBevelVec( contour[ i ], contour[ j ], contour[ k ] );
369
371
 
@@ -660,7 +662,7 @@ class ExtrudeGeometry extends BufferGeometry {
660
662
  let k = i - 1;
661
663
  if ( k < 0 ) k = contour.length - 1;
662
664
 
663
- //console.log('b', i,j, i-1, k,vertices.length);
665
+ //log('b', i,j, i-1, k,vertices.length);
664
666
 
665
667
  for ( let s = 0, sl = ( steps + bevelSegments * 2 ); s < sl; s ++ ) {
666
668
 
@@ -11,6 +11,7 @@ import { PolyhedronGeometry } from './PolyhedronGeometry.js';
11
11
  * ```
12
12
  *
13
13
  * @augments PolyhedronGeometry
14
+ * @demo scenes/geometry-browser.html#IcosahedronGeometry
14
15
  */
15
16
  class IcosahedronGeometry extends PolyhedronGeometry {
16
17
 
@@ -19,6 +19,7 @@ import { clamp } from '../math/MathUtils.js';
19
19
  * ```
20
20
  *
21
21
  * @augments BufferGeometry
22
+ * @demo scenes/geometry-browser.html#LatheGeometry
22
23
  */
23
24
  class LatheGeometry extends BufferGeometry {
24
25
 
@@ -11,6 +11,7 @@ import { PolyhedronGeometry } from './PolyhedronGeometry.js';
11
11
  * ```
12
12
  *
13
13
  * @augments PolyhedronGeometry
14
+ * @demo scenes/geometry-browser.html#OctahedronGeometry
14
15
  */
15
16
  class OctahedronGeometry extends PolyhedronGeometry {
16
17
 
@@ -12,6 +12,7 @@ import { Float32BufferAttribute } from '../core/BufferAttribute.js';
12
12
  * ```
13
13
  *
14
14
  * @augments BufferGeometry
15
+ * @demo scenes/geometry-browser.html#PlaneGeometry
15
16
  */
16
17
  class PlaneGeometry extends BufferGeometry {
17
18
 
@@ -14,6 +14,7 @@ import { Vector3 } from '../math/Vector3.js';
14
14
  * ```
15
15
  *
16
16
  * @augments BufferGeometry
17
+ * @demo scenes/geometry-browser.html#RingGeometry
17
18
  */
18
19
  class RingGeometry extends BufferGeometry {
19
20
 
@@ -19,6 +19,7 @@ import { Vector2 } from '../math/Vector2.js';
19
19
  * ```
20
20
  *
21
21
  * @augments BufferGeometry
22
+ * @demo scenes/geometry-browser.html#ShapeGeometry
22
23
  */
23
24
  class ShapeGeometry extends BufferGeometry {
24
25
 
@@ -13,6 +13,7 @@ import { Vector3 } from '../math/Vector3.js';
13
13
  * ```
14
14
  *
15
15
  * @augments BufferGeometry
16
+ * @demo scenes/geometry-browser.html#SphereGeometry
16
17
  */
17
18
  class SphereGeometry extends BufferGeometry {
18
19
 
@@ -11,6 +11,7 @@ import { PolyhedronGeometry } from './PolyhedronGeometry.js';
11
11
  * ```
12
12
  *
13
13
  * @augments PolyhedronGeometry
14
+ * @demo scenes/geometry-browser.html#TetrahedronGeometry
14
15
  */
15
16
  class TetrahedronGeometry extends PolyhedronGeometry {
16
17
 
@@ -13,6 +13,7 @@ import { Vector3 } from '../math/Vector3.js';
13
13
  * ```
14
14
  *
15
15
  * @augments BufferGeometry
16
+ * @demo scenes/geometry-browser.html#TorusGeometry
16
17
  */
17
18
  class TorusGeometry extends BufferGeometry {
18
19
 
@@ -15,6 +15,7 @@ import { Vector3 } from '../math/Vector3.js';
15
15
  * ```
16
16
  *
17
17
  * @augments BufferGeometry
18
+ * @demo scenes/geometry-browser.html#TorusKnotGeometry
18
19
  */
19
20
  class TorusKnotGeometry extends BufferGeometry {
20
21
 
@@ -29,6 +29,7 @@ import { Vector3 } from '../math/Vector3.js';
29
29
  * ```
30
30
  *
31
31
  * @augments BufferGeometry
32
+ * @demo scenes/geometry-browser.html#TubeGeometry
32
33
  */
33
34
  class TubeGeometry extends BufferGeometry {
34
35
 
@@ -14,7 +14,7 @@ const _camera = /*@__PURE__*/ new Camera();
14
14
  * This helps with visualizing what a camera contains in its frustum. It
15
15
  * visualizes the frustum of a camera using a line segments.
16
16
  *
17
- * Based on frustum visualization in [lightgl.js shadowmap example]{@link https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html}.
17
+ * Based on frustum visualization in [lightgl.js shadowmap example](https://github.com/evanw/lightgl.js/blob/master/tests/shadowmap.html).
18
18
  *
19
19
  * `CameraHelper` must be a child of the scene.
20
20
  *
@@ -1,6 +1,7 @@
1
1
  import { AnimationClip } from '../animation/AnimationClip.js';
2
2
  import { FileLoader } from './FileLoader.js';
3
3
  import { Loader } from './Loader.js';
4
+ import { error } from '../utils.js';
4
5
 
5
6
  /**
6
7
  * Class for loading animation clips in the JSON format. The files are internally
@@ -57,7 +58,7 @@ class AnimationLoader extends Loader {
57
58
 
58
59
  } else {
59
60
 
60
- console.error( e );
61
+ error( e );
61
62
 
62
63
  }
63
64
 
@@ -1,6 +1,7 @@
1
1
  import { AudioContext } from '../audio/AudioContext.js';
2
2
  import { FileLoader } from './FileLoader.js';
3
3
  import { Loader } from './Loader.js';
4
+ import { error } from '../utils.js';
4
5
 
5
6
  /**
6
7
  * Class for loading audio buffers. Audios are internally
@@ -81,7 +82,7 @@ class AudioLoader extends Loader {
81
82
 
82
83
  } else {
83
84
 
84
- console.error( e );
85
+ error( e );
85
86
 
86
87
  }
87
88
 
@@ -7,7 +7,7 @@ import { InstancedBufferGeometry } from '../core/InstancedBufferGeometry.js';
7
7
  import { InstancedBufferAttribute } from '../core/InstancedBufferAttribute.js';
8
8
  import { InterleavedBufferAttribute } from '../core/InterleavedBufferAttribute.js';
9
9
  import { InterleavedBuffer } from '../core/InterleavedBuffer.js';
10
- import { getTypedArray } from '../utils.js';
10
+ import { getTypedArray, error } from '../utils.js';
11
11
 
12
12
  /**
13
13
  * Class for loading geometries. The files are internally
@@ -67,7 +67,7 @@ class BufferGeometryLoader extends Loader {
67
67
 
68
68
  } else {
69
69
 
70
- console.error( e );
70
+ error( e );
71
71
 
72
72
  }
73
73
 
@@ -35,7 +35,7 @@ const Cache = {
35
35
 
36
36
  if ( this.enabled === false ) return;
37
37
 
38
- // console.log( 'THREE.Cache', 'Adding key:', key );
38
+ // log( 'Cache', 'Adding key:', key );
39
39
 
40
40
  this.files[ key ] = file;
41
41
 
@@ -52,7 +52,7 @@ const Cache = {
52
52
 
53
53
  if ( this.enabled === false ) return;
54
54
 
55
- // console.log( 'THREE.Cache', 'Checking key:', key );
55
+ // log( 'Cache', 'Checking key:', key );
56
56
 
57
57
  return this.files[ key ];
58
58
 
@@ -65,7 +65,7 @@ class DataTextureLoader extends Loader {
65
65
 
66
66
  } else {
67
67
 
68
- console.error( error );
68
+ error( error );
69
69
  return;
70
70
 
71
71
  }
@@ -1,5 +1,6 @@
1
1
  import { Cache } from './Cache.js';
2
2
  import { Loader } from './Loader.js';
3
+ import { warn } from '../utils.js';
3
4
 
4
5
  const loading = {};
5
6
 
@@ -42,7 +43,7 @@ class FileLoader extends Loader {
42
43
 
43
44
  /**
44
45
  * The expected mime type. Valid values can be found
45
- * [here]{@link hhttps://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#mimetype}
46
+ * [here](hhttps://developer.mozilla.org/en-US/docs/Web/API/DOMParser/parseFromString#mimetype)
46
47
  *
47
48
  * @type {string}
48
49
  */
@@ -148,7 +149,7 @@ class FileLoader extends Loader {
148
149
 
149
150
  if ( response.status === 0 ) {
150
151
 
151
- console.warn( 'THREE.FileLoader: HTTP Status 0 received.' );
152
+ warn( 'FileLoader: HTTP Status 0 received.' );
152
153
 
153
154
  }
154
155
 
@@ -1,10 +1,11 @@
1
1
  import { Cache } from './Cache.js';
2
2
  import { Loader } from './Loader.js';
3
+ import { warn } from '../utils.js';
3
4
 
4
5
  const _errorMap = new WeakMap();
5
6
 
6
7
  /**
7
- * A loader for loading images as an [ImageBitmap]{@link https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap}.
8
+ * A loader for loading images as an [ImageBitmap](https://developer.mozilla.org/en-US/docs/Web/API/ImageBitmap).
8
9
  * An `ImageBitmap` provides an asynchronous and resource efficient pathway to prepare
9
10
  * textures for rendering.
10
11
  *
@@ -48,13 +49,13 @@ class ImageBitmapLoader extends Loader {
48
49
 
49
50
  if ( typeof createImageBitmap === 'undefined' ) {
50
51
 
51
- console.warn( 'THREE.ImageBitmapLoader: createImageBitmap() not supported.' );
52
+ warn( 'ImageBitmapLoader: createImageBitmap() not supported.' );
52
53
 
53
54
  }
54
55
 
55
56
  if ( typeof fetch === 'undefined' ) {
56
57
 
57
- console.warn( 'THREE.ImageBitmapLoader: fetch() not supported.' );
58
+ warn( 'ImageBitmapLoader: fetch() not supported.' );
58
59
 
59
60
  }
60
61
 
@@ -78,7 +79,7 @@ class ImageBitmapLoader extends Loader {
78
79
 
79
80
  /**
80
81
  * Sets the given loader options. The structure of the object must match the `options` parameter of
81
- * [createImageBitmap]{@link https://developer.mozilla.org/en-US/docs/Web/API/Window/createImageBitmap}.
82
+ * [createImageBitmap](https://developer.mozilla.org/en-US/docs/Web/API/Window/createImageBitmap).
82
83
  *
83
84
  * @param {Object} options - The loader options to set.
84
85
  * @return {ImageBitmapLoader} A reference to this image bitmap loader.
@@ -13,7 +13,7 @@ const _loading = new WeakMap();
13
13
  * ```
14
14
  * Please note that `ImageLoader` has dropped support for progress
15
15
  * events in `r84`. For an `ImageLoader` that supports progress events, see
16
- * [this thread]{@link https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639}.
16
+ * [this thread](https://github.com/mrdoob/three.js/issues/10439#issuecomment-275785639).
17
17
  *
18
18
  * @augments Loader
19
19
  */
@@ -54,7 +54,7 @@ class Loader {
54
54
  this.resourcePath = '';
55
55
 
56
56
  /**
57
- * The [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}
57
+ * The [request header](https://developer.mozilla.org/en-US/docs/Glossary/Request_header)
58
58
  * used in HTTP request.
59
59
  *
60
60
  * @type {Object<string, any>}
@@ -119,7 +119,7 @@ class Loader {
119
119
 
120
120
  /**
121
121
  * Whether the XMLHttpRequest uses credentials such as cookies, authorization
122
- * headers or TLS client certificates, see [XMLHttpRequest.withCredentials]{@link https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials}.
122
+ * headers or TLS client certificates, see [XMLHttpRequest.withCredentials](https://developer.mozilla.org/en-US/docs/Web/API/XMLHttpRequest/withCredentials).
123
123
  *
124
124
  * Note: This setting has no effect if you are loading files locally or from the same domain.
125
125
  *
@@ -162,7 +162,7 @@ class Loader {
162
162
  /**
163
163
  * Sets the given request header.
164
164
  *
165
- * @param {Object} requestHeader - A [request header]{@link https://developer.mozilla.org/en-US/docs/Glossary/Request_header}
165
+ * @param {Object} requestHeader - A [request header](https://developer.mozilla.org/en-US/docs/Glossary/Request_header)
166
166
  * for configuring the HTTP request.
167
167
  * @return {Loader} A reference to this instance.
168
168
  */
@@ -72,9 +72,10 @@ class LoadingManager {
72
72
  /**
73
73
  * Used for aborting ongoing requests in loaders using this manager.
74
74
  *
75
- * @type {AbortController}
75
+ * @private
76
+ * @type {AbortController | null}
76
77
  */
77
- this.abortController = new AbortController();
78
+ this._abortController = null;
78
79
 
79
80
  /**
80
81
  * This should be called by any loader using the manager when the loader
@@ -285,8 +286,9 @@ class LoadingManager {
285
286
  */
286
287
  this.abort = function () {
287
288
 
289
+
288
290
  this.abortController.abort();
289
- this.abortController = new AbortController();
291
+ this._abortController = null;
290
292
 
291
293
  return this;
292
294
 
@@ -294,6 +296,26 @@ class LoadingManager {
294
296
 
295
297
  }
296
298
 
299
+ // TODO: Revert this back to a single member variable once this issue has been fixed
300
+ // https://github.com/cloudflare/workerd/issues/3657
301
+
302
+ /**
303
+ * Used for aborting ongoing requests in loaders using this manager.
304
+ *
305
+ * @type {AbortController}
306
+ */
307
+ get abortController() {
308
+
309
+ if ( ! this._abortController ) {
310
+
311
+ this._abortController = new AbortController();
312
+
313
+ }
314
+
315
+ return this._abortController;
316
+
317
+ }
318
+
297
319
  }
298
320
 
299
321
  /**
@@ -26,6 +26,7 @@ import {
26
26
  LineBasicMaterial,
27
27
  Material,
28
28
  } from '../materials/Materials.js';
29
+ import { error, warn } from '../utils.js';
29
30
 
30
31
  /**
31
32
  * Class for loading geometries. The files are internally
@@ -89,7 +90,7 @@ class MaterialLoader extends Loader {
89
90
 
90
91
  } else {
91
92
 
92
- console.error( e );
93
+ error( e );
93
94
 
94
95
  }
95
96
 
@@ -115,7 +116,7 @@ class MaterialLoader extends Loader {
115
116
 
116
117
  if ( textures[ name ] === undefined ) {
117
118
 
118
- console.warn( 'THREE.MaterialLoader: Undefined texture', name );
119
+ warn( 'MaterialLoader: Undefined texture', name );
119
120
 
120
121
  }
121
122