super-three 0.141.0 → 0.147.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (646) hide show
  1. package/README.md +9 -9
  2. package/build/three.cjs +2441 -1569
  3. package/build/three.js +2441 -1569
  4. package/build/three.min.js +1 -1
  5. package/build/three.module.js +2847 -1576
  6. package/examples/js/animation/AnimationClipCreator.js +0 -8
  7. package/examples/js/animation/CCDIKSolver.js +50 -67
  8. package/examples/js/animation/MMDAnimationHelper.js +66 -137
  9. package/examples/js/animation/MMDPhysics.js +71 -150
  10. package/examples/js/cameras/CinematicCamera.js +33 -22
  11. package/examples/js/controls/ArcballControls.js +149 -403
  12. package/examples/js/controls/DragControls.js +8 -33
  13. package/examples/js/controls/FirstPersonControls.js +32 -61
  14. package/examples/js/controls/FlyControls.js +29 -63
  15. package/examples/js/controls/OrbitControls.js +125 -103
  16. package/examples/js/controls/PointerLockControls.js +5 -22
  17. package/examples/js/controls/TrackballControls.js +33 -88
  18. package/examples/js/controls/TransformControls.js +101 -182
  19. package/examples/js/csm/CSM.js +4 -39
  20. package/examples/js/csm/CSMFrustum.js +3 -9
  21. package/examples/js/csm/CSMHelper.js +24 -4
  22. package/examples/js/csm/CSMShader.js +2 -6
  23. package/examples/js/curves/CurveExtras.js +27 -27
  24. package/examples/js/curves/NURBSCurve.js +4 -16
  25. package/examples/js/curves/NURBSSurface.js +3 -9
  26. package/examples/js/curves/NURBSUtils.js +8 -45
  27. package/examples/js/effects/AnaglyphEffect.js +6 -20
  28. package/examples/js/effects/AsciiEffect.js +32 -31
  29. package/examples/js/effects/OutlineEffect.js +30 -54
  30. package/examples/js/effects/ParallaxBarrierEffect.js +2 -15
  31. package/examples/js/effects/PeppersGhostEffect.js +14 -41
  32. package/examples/js/effects/StereoEffect.js +2 -6
  33. package/examples/js/environments/RoomEnvironment.js +32 -8
  34. package/examples/js/exporters/ColladaExporter.js +52 -78
  35. package/examples/js/exporters/DRACOExporter.js +22 -34
  36. package/examples/js/exporters/EXRExporter.js +15 -18
  37. package/examples/js/exporters/GLTFExporter.js +168 -345
  38. package/examples/js/exporters/MMDExporter.js +5 -12
  39. package/examples/js/exporters/OBJExporter.js +40 -52
  40. package/examples/js/exporters/PLYExporter.js +50 -57
  41. package/examples/js/exporters/STLExporter.js +5 -14
  42. package/examples/js/exporters/USDZExporter.js +119 -27
  43. package/examples/js/geometries/BoxLineGeometry.js +0 -1
  44. package/examples/js/geometries/ConvexGeometry.js +12 -7
  45. package/examples/js/geometries/DecalGeometry.js +53 -20
  46. package/examples/js/geometries/LightningStrike.js +54 -67
  47. package/examples/js/geometries/ParametricGeometries.js +8 -7
  48. package/examples/js/geometries/ParametricGeometry.js +23 -17
  49. package/examples/js/geometries/RoundedBoxGeometry.js +21 -19
  50. package/examples/js/geometries/TeapotGeometry.js +54 -50
  51. package/examples/js/geometries/TextGeometry.js +6 -4
  52. package/examples/js/helpers/LightProbeHelper.js +1 -2
  53. package/examples/js/helpers/OctreeHelper.js +22 -20
  54. package/examples/js/helpers/PositionalAudioHelper.js +8 -6
  55. package/examples/js/helpers/RectAreaLightHelper.js +6 -7
  56. package/examples/js/helpers/VertexNormalsHelper.js +15 -13
  57. package/examples/js/helpers/VertexTangentsHelper.js +15 -9
  58. package/examples/js/helpers/ViewHelper.js +31 -16
  59. package/examples/js/interactive/HTMLMesh.js +25 -39
  60. package/examples/js/interactive/InteractiveGroup.js +9 -14
  61. package/examples/js/interactive/SelectionBox.js +3 -70
  62. package/examples/js/interactive/SelectionHelper.js +2 -8
  63. package/examples/js/libs/ktx-parse.umd.js +1 -0
  64. package/examples/js/libs/meshopt_decoder.js +98 -32
  65. package/examples/js/lights/LightProbeGenerator.js +32 -39
  66. package/examples/js/lights/RectAreaLightUniformsLib.js +5 -1
  67. package/examples/js/lines/LineGeometry.js +3 -5
  68. package/examples/js/lines/LineMaterial.js +4 -11
  69. package/examples/js/lines/LineSegments2.js +40 -89
  70. package/examples/js/lines/LineSegmentsGeometry.js +7 -28
  71. package/examples/js/lines/Wireframe.js +2 -7
  72. package/examples/js/lines/WireframeGeometry2.js +3 -1
  73. package/examples/js/loaders/3DMLoader.js +58 -155
  74. package/examples/js/loaders/3MFLoader.js +72 -106
  75. package/examples/js/loaders/AMFLoader.js +0 -25
  76. package/examples/js/loaders/BVHLoader.js +44 -43
  77. package/examples/js/loaders/BasisTextureLoader.js +16 -46
  78. package/examples/js/loaders/ColladaLoader.js +229 -359
  79. package/examples/js/loaders/DDSLoader.js +24 -25
  80. package/examples/js/loaders/DRACOLoader.js +30 -90
  81. package/examples/js/loaders/EXRLoader.js +69 -177
  82. package/examples/js/loaders/FBXLoader.js +294 -441
  83. package/examples/js/loaders/FontLoader.js +9 -31
  84. package/examples/js/loaders/GCodeLoader.js +15 -16
  85. package/examples/js/loaders/GLTFLoader.js +458 -739
  86. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -17
  87. package/examples/js/loaders/KMZLoader.js +3 -7
  88. package/examples/js/loaders/KTXLoader.js +12 -30
  89. package/examples/js/loaders/LDrawLoader.js +309 -355
  90. package/examples/js/loaders/LUT3dlLoader.js +7 -11
  91. package/examples/js/loaders/LUTCubeLoader.js +0 -8
  92. package/examples/js/loaders/LWOLoader.js +59 -124
  93. package/examples/js/loaders/LogLuvLoader.js +27 -77
  94. package/examples/js/loaders/LottieLoader.js +4 -4
  95. package/examples/js/loaders/MD2Loader.js +26 -27
  96. package/examples/js/loaders/MDDLoader.js +6 -10
  97. package/examples/js/loaders/MMDLoader.js +180 -189
  98. package/examples/js/loaders/MTLLoader.js +18 -47
  99. package/examples/js/loaders/NRRDLoader.js +44 -84
  100. package/examples/js/loaders/OBJLoader.js +56 -77
  101. package/examples/js/loaders/PCDLoader.js +92 -42
  102. package/examples/js/loaders/PDBLoader.js +17 -13
  103. package/examples/js/loaders/PLYLoader.js +65 -51
  104. package/examples/js/loaders/PRWMLoader.js +11 -22
  105. package/examples/js/loaders/PVRLoader.js +7 -16
  106. package/examples/js/loaders/RGBELoader.js +36 -61
  107. package/examples/js/loaders/RGBMLoader.js +26 -87
  108. package/examples/js/loaders/STLLoader.js +20 -27
  109. package/examples/js/loaders/SVGLoader.js +365 -236
  110. package/examples/js/loaders/TDSLoader.js +81 -118
  111. package/examples/js/loaders/TGALoader.js +39 -41
  112. package/examples/js/loaders/TIFFLoader.js +30 -0
  113. package/examples/js/loaders/TTFLoader.js +0 -8
  114. package/examples/js/loaders/TiltLoader.js +14 -15
  115. package/examples/js/loaders/VOXLoader.js +8 -16
  116. package/examples/js/loaders/VRMLLoader.js +266 -354
  117. package/examples/js/loaders/VTKLoader.js +102 -119
  118. package/examples/js/loaders/XYZLoader.js +2 -4
  119. package/examples/js/loaders/lwo/IFFParser.js +55 -136
  120. package/examples/js/loaders/lwo/LWO2Parser.js +39 -89
  121. package/examples/js/loaders/lwo/LWO3Parser.js +38 -79
  122. package/examples/js/materials/MeshGouraudMaterial.js +387 -0
  123. package/examples/js/math/Capsule.js +0 -17
  124. package/examples/js/math/ColorConverter.js +3 -53
  125. package/examples/js/math/ConvexHull.js +185 -141
  126. package/examples/js/math/ImprovedNoise.js +1 -1
  127. package/examples/js/math/Lut.js +8 -15
  128. package/examples/js/math/MeshSurfaceSampler.js +6 -28
  129. package/examples/js/math/OBB.js +90 -49
  130. package/examples/js/math/Octree.js +2 -57
  131. package/examples/js/math/SimplexNoise.js +74 -88
  132. package/examples/js/misc/ConvexObjectBreaker.js +37 -48
  133. package/examples/js/misc/GPUComputationRenderer.js +47 -14
  134. package/examples/js/misc/Gyroscope.js +5 -9
  135. package/examples/js/misc/MD2Character.js +14 -23
  136. package/examples/js/misc/MD2CharacterComplex.js +73 -54
  137. package/examples/js/misc/MorphAnimMesh.js +0 -6
  138. package/examples/js/misc/MorphBlendMesh.js +3 -30
  139. package/examples/js/misc/ProgressiveLightMap.js +47 -43
  140. package/examples/js/misc/RollerCoaster.js +17 -24
  141. package/examples/js/misc/TubePainter.js +18 -12
  142. package/examples/js/misc/Volume.js +173 -194
  143. package/examples/js/misc/VolumeSlice.js +91 -99
  144. package/examples/js/modifiers/CurveModifier.js +19 -21
  145. package/examples/js/modifiers/EdgeSplitModifier.js +0 -30
  146. package/examples/js/modifiers/SimplifyModifier.js +57 -60
  147. package/examples/js/modifiers/TessellateModifier.js +2 -9
  148. package/examples/js/objects/GroundProjectedEnv.js +181 -0
  149. package/examples/js/objects/Lensflare.js +47 -38
  150. package/examples/js/objects/LightningStorm.js +10 -13
  151. package/examples/js/objects/MarchingCubes.js +80 -59
  152. package/examples/js/objects/Reflector.js +31 -22
  153. package/examples/js/objects/ReflectorForSSRPass.js +20 -25
  154. package/examples/js/objects/Refractor.js +61 -33
  155. package/examples/js/objects/ShadowMesh.js +6 -3
  156. package/examples/js/objects/Sky.js +2 -7
  157. package/examples/js/objects/Water.js +23 -18
  158. package/examples/js/objects/Water2.js +20 -19
  159. package/examples/js/physics/AmmoPhysics.js +23 -20
  160. package/examples/js/physics/OimoPhysics.js +19 -17
  161. package/examples/js/postprocessing/AdaptiveToneMappingPass.js +13 -20
  162. package/examples/js/postprocessing/AfterimagePass.js +19 -12
  163. package/examples/js/postprocessing/BloomPass.js +38 -17
  164. package/examples/js/postprocessing/BokehPass.js +29 -12
  165. package/examples/js/postprocessing/ClearPass.js +1 -6
  166. package/examples/js/postprocessing/CubeTexturePass.js +12 -9
  167. package/examples/js/postprocessing/DotScreenPass.js +7 -5
  168. package/examples/js/postprocessing/EffectComposer.js +25 -32
  169. package/examples/js/postprocessing/FilmPass.js +7 -5
  170. package/examples/js/postprocessing/GlitchPass.js +10 -11
  171. package/examples/js/postprocessing/HalftonePass.js +9 -9
  172. package/examples/js/postprocessing/LUTPass.js +2 -15
  173. package/examples/js/postprocessing/MaskPass.js +20 -17
  174. package/examples/js/postprocessing/OutlinePass.js +49 -38
  175. package/examples/js/postprocessing/Pass.js +11 -14
  176. package/examples/js/postprocessing/RenderPass.js +3 -7
  177. package/examples/js/postprocessing/RenderPixelatedPass.js +215 -0
  178. package/examples/js/postprocessing/SAOPass.js +40 -32
  179. package/examples/js/postprocessing/SMAAPass.js +34 -17
  180. package/examples/js/postprocessing/SSAARenderPass.js +14 -14
  181. package/examples/js/postprocessing/SSAOPass.js +56 -42
  182. package/examples/js/postprocessing/SSRPass.js +78 -61
  183. package/examples/js/postprocessing/SavePass.js +14 -6
  184. package/examples/js/postprocessing/ShaderPass.js +9 -8
  185. package/examples/js/postprocessing/TAARenderPass.js +11 -9
  186. package/examples/js/postprocessing/TexturePass.js +7 -4
  187. package/examples/js/postprocessing/UnrealBloomPass.js +43 -25
  188. package/examples/js/renderers/CSS2DRenderer.js +4 -23
  189. package/examples/js/renderers/CSS3DRenderer.js +5 -26
  190. package/examples/js/renderers/Projector.js +31 -108
  191. package/examples/js/renderers/SVGRenderer.js +4 -50
  192. package/examples/js/shaders/ACESFilmicToneMappingShader.js +3 -6
  193. package/examples/js/shaders/AfterimageShader.js +3 -6
  194. package/examples/js/shaders/BasicShader.js +3 -6
  195. package/examples/js/shaders/BleachBypassShader.js +3 -6
  196. package/examples/js/shaders/BlendShader.js +3 -6
  197. package/examples/js/shaders/BokehShader.js +3 -6
  198. package/examples/js/shaders/BokehShader2.js +4 -13
  199. package/examples/js/shaders/BrightnessContrastShader.js +3 -6
  200. package/examples/js/shaders/ColorCorrectionShader.js +2 -6
  201. package/examples/js/shaders/ColorifyShader.js +2 -6
  202. package/examples/js/shaders/ConvolutionShader.js +5 -10
  203. package/examples/js/shaders/CopyShader.js +3 -6
  204. package/examples/js/shaders/DOFMipMapShader.js +3 -6
  205. package/examples/js/shaders/DepthLimitedBlurShader.js +2 -9
  206. package/examples/js/shaders/DigitalGlitch.js +3 -6
  207. package/examples/js/shaders/DotScreenShader.js +2 -6
  208. package/examples/js/shaders/FXAAShader.js +1 -3
  209. package/examples/js/shaders/FilmShader.js +3 -6
  210. package/examples/js/shaders/FocusShader.js +3 -6
  211. package/examples/js/shaders/FreiChenShader.js +2 -6
  212. package/examples/js/shaders/GammaCorrectionShader.js +3 -6
  213. package/examples/js/shaders/GodRaysShader.js +11 -24
  214. package/examples/js/shaders/HalftoneShader.js +3 -6
  215. package/examples/js/shaders/HorizontalBlurShader.js +3 -6
  216. package/examples/js/shaders/HorizontalTiltShiftShader.js +3 -6
  217. package/examples/js/shaders/HueSaturationShader.js +3 -6
  218. package/examples/js/shaders/KaleidoShader.js +3 -6
  219. package/examples/js/shaders/LuminosityHighPassShader.js +2 -6
  220. package/examples/js/shaders/LuminosityShader.js +4 -7
  221. package/examples/js/shaders/MMDToonShader.js +2 -4
  222. package/examples/js/shaders/MirrorShader.js +3 -6
  223. package/examples/js/shaders/NormalMapShader.js +2 -6
  224. package/examples/js/shaders/RGBShiftShader.js +3 -6
  225. package/examples/js/shaders/SAOShader.js +2 -6
  226. package/examples/js/shaders/SMAAShader.js +6 -18
  227. package/examples/js/shaders/SSAOShader.js +2 -6
  228. package/examples/js/shaders/SSRShader.js +6 -18
  229. package/examples/js/shaders/SepiaShader.js +3 -6
  230. package/examples/js/shaders/SobelOperatorShader.js +2 -6
  231. package/examples/js/shaders/TechnicolorShader.js +3 -6
  232. package/examples/js/shaders/ToneMapShader.js +4 -7
  233. package/examples/js/shaders/ToonShader.js +8 -24
  234. package/examples/js/shaders/TriangleBlurShader.js +2 -6
  235. package/examples/js/shaders/UnpackDepthRGBAShader.js +3 -6
  236. package/examples/js/shaders/VelocityShader.js +126 -0
  237. package/examples/js/shaders/VerticalBlurShader.js +3 -6
  238. package/examples/js/shaders/VerticalTiltShiftShader.js +3 -6
  239. package/examples/js/shaders/VignetteShader.js +3 -6
  240. package/examples/js/shaders/VolumeShader.js +2 -6
  241. package/examples/js/shaders/WaterRefractionShader.js +2 -6
  242. package/examples/js/textures/FlakesTexture.js +0 -1
  243. package/examples/js/utils/BufferGeometryUtils.js +237 -171
  244. package/examples/js/utils/CameraUtils.js +5 -20
  245. package/examples/js/utils/GPUStatsPanel.js +3 -12
  246. package/examples/js/utils/GeometryCompressionUtils.js +19 -44
  247. package/examples/js/utils/GeometryUtils.js +15 -36
  248. package/examples/js/utils/LDrawUtils.js +8 -11
  249. package/examples/js/utils/PackedPhongMaterial.js +6 -4
  250. package/examples/js/utils/SceneUtils.js +109 -14
  251. package/examples/js/utils/ShadowMapViewer.js +17 -14
  252. package/examples/js/utils/SkeletonUtils.js +13 -27
  253. package/examples/js/utils/UVsDebug.js +20 -12
  254. package/examples/js/utils/WorkerPool.js +1 -11
  255. package/examples/jsm/animation/CCDIKSolver.js +27 -3
  256. package/examples/jsm/animation/MMDPhysics.js +28 -22
  257. package/examples/jsm/capabilities/WebGPU.js +3 -1
  258. package/examples/jsm/controls/ArcballControls.js +17 -2
  259. package/examples/jsm/controls/FirstPersonControls.js +20 -27
  260. package/examples/jsm/controls/FlyControls.js +16 -24
  261. package/examples/jsm/controls/OrbitControls.js +44 -9
  262. package/examples/jsm/controls/PointerLockControls.js +0 -7
  263. package/examples/jsm/controls/TrackballControls.js +14 -5
  264. package/examples/jsm/controls/TransformControls.js +18 -16
  265. package/examples/jsm/csm/CSM.js +1 -0
  266. package/examples/jsm/csm/CSMHelper.js +30 -0
  267. package/examples/jsm/effects/AnaglyphEffect.js +2 -2
  268. package/examples/jsm/effects/OutlineEffect.js +4 -25
  269. package/examples/jsm/effects/ParallaxBarrierEffect.js +2 -2
  270. package/examples/jsm/effects/PeppersGhostEffect.js +2 -2
  271. package/examples/jsm/effects/StereoEffect.js +2 -2
  272. package/examples/jsm/environments/RoomEnvironment.js +23 -0
  273. package/examples/jsm/exporters/ColladaExporter.js +4 -13
  274. package/examples/jsm/exporters/DRACOExporter.js +0 -13
  275. package/examples/jsm/exporters/GLTFExporter.js +29 -110
  276. package/examples/jsm/exporters/KTX2Exporter.js +29 -29
  277. package/examples/jsm/exporters/OBJExporter.js +0 -18
  278. package/examples/jsm/exporters/PLYExporter.js +14 -22
  279. package/examples/jsm/exporters/STLExporter.js +1 -9
  280. package/examples/jsm/exporters/USDZExporter.js +107 -4
  281. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  282. package/examples/jsm/geometries/ParametricGeometry.js +0 -6
  283. package/examples/jsm/helpers/OctreeHelper.js +22 -8
  284. package/examples/jsm/helpers/VertexNormalsHelper.js +7 -1
  285. package/examples/jsm/helpers/VertexTangentsHelper.js +7 -0
  286. package/examples/jsm/helpers/ViewHelper.js +24 -0
  287. package/examples/jsm/interactive/HTMLMesh.js +14 -15
  288. package/examples/jsm/interactive/InteractiveGroup.js +4 -2
  289. package/examples/jsm/interactive/SelectionHelper.js +5 -3
  290. package/examples/jsm/libs/flow.module.js +610 -160
  291. package/examples/jsm/libs/lottie_canvas.module.js +14844 -0
  292. package/examples/jsm/libs/meshopt_decoder.module.js +97 -32
  293. package/examples/jsm/libs/utif.module.js +1579 -0
  294. package/examples/jsm/libs/zstddec.module.js +1 -0
  295. package/examples/jsm/lines/LineSegments2.js +4 -0
  296. package/examples/jsm/loaders/3DMLoader.js +1 -2
  297. package/examples/jsm/loaders/ColladaLoader.js +29 -0
  298. package/examples/jsm/loaders/DRACOLoader.js +2 -28
  299. package/examples/jsm/loaders/EXRLoader.js +3 -13
  300. package/examples/jsm/loaders/FBXLoader.js +26 -3
  301. package/examples/jsm/loaders/FontLoader.js +3 -16
  302. package/examples/jsm/loaders/GLTFLoader.js +321 -464
  303. package/examples/jsm/loaders/HDRCubeTextureLoader.js +0 -13
  304. package/examples/jsm/loaders/KTX2Loader.js +254 -53
  305. package/examples/jsm/loaders/LDrawLoader.js +149 -87
  306. package/examples/jsm/loaders/LottieLoader.js +4 -2
  307. package/examples/jsm/loaders/MaterialXLoader.js +728 -0
  308. package/examples/jsm/loaders/OBJLoader.js +6 -14
  309. package/examples/jsm/loaders/PCDLoader.js +60 -14
  310. package/examples/jsm/loaders/PLYLoader.js +71 -19
  311. package/examples/jsm/loaders/RGBELoader.js +1 -1
  312. package/examples/jsm/loaders/SVGLoader.js +231 -17
  313. package/examples/jsm/loaders/TIFFLoader.js +36 -0
  314. package/examples/jsm/loaders/USDZLoader.js +633 -0
  315. package/examples/jsm/loaders/VRMLLoader.js +36 -26
  316. package/examples/jsm/loaders/VTKLoader.js +1 -1
  317. package/examples/jsm/loaders/lwo/LWO2Parser.js +6 -8
  318. package/examples/jsm/loaders/lwo/LWO3Parser.js +6 -8
  319. package/examples/jsm/materials/MeshGouraudMaterial.js +423 -0
  320. package/examples/jsm/math/ColorConverter.js +1 -49
  321. package/examples/jsm/math/ConvexHull.js +4 -4
  322. package/examples/jsm/math/Octree.js +1 -1
  323. package/examples/jsm/misc/GPUComputationRenderer.js +43 -0
  324. package/examples/jsm/misc/Volume.js +169 -171
  325. package/examples/jsm/misc/VolumeSlice.js +78 -80
  326. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  327. package/examples/jsm/node-editor/NodeEditor.js +91 -12
  328. package/examples/jsm/node-editor/accessors/MatcapUVEditor.js +1 -1
  329. package/examples/jsm/node-editor/accessors/NormalEditor.js +1 -1
  330. package/examples/jsm/node-editor/accessors/PositionEditor.js +1 -1
  331. package/examples/jsm/node-editor/accessors/UVEditor.js +1 -1
  332. package/examples/jsm/node-editor/core/BaseNode.js +10 -3
  333. package/examples/jsm/node-editor/display/BlendEditor.js +1 -1
  334. package/examples/jsm/node-editor/display/NormalMapEditor.js +1 -1
  335. package/examples/jsm/node-editor/inputs/ColorEditor.js +1 -1
  336. package/examples/jsm/node-editor/inputs/FloatEditor.js +1 -1
  337. package/examples/jsm/node-editor/inputs/SliderEditor.js +1 -1
  338. package/examples/jsm/node-editor/inputs/TextureEditor.js +1 -1
  339. package/examples/jsm/node-editor/inputs/Vector2Editor.js +1 -1
  340. package/examples/jsm/node-editor/inputs/Vector3Editor.js +1 -1
  341. package/examples/jsm/node-editor/inputs/Vector4Editor.js +1 -1
  342. package/examples/jsm/node-editor/materials/BasicMaterialEditor.js +7 -10
  343. package/examples/jsm/node-editor/materials/PointsMaterialEditor.js +1 -1
  344. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +7 -10
  345. package/examples/jsm/node-editor/math/AngleEditor.js +4 -4
  346. package/examples/jsm/node-editor/math/DotEditor.js +1 -1
  347. package/examples/jsm/node-editor/math/InvertEditor.js +3 -3
  348. package/examples/jsm/node-editor/math/LimiterEditor.js +1 -1
  349. package/examples/jsm/node-editor/math/NormalizeEditor.js +1 -1
  350. package/examples/jsm/node-editor/math/OperatorEditor.js +1 -1
  351. package/examples/jsm/node-editor/math/PowerEditor.js +1 -1
  352. package/examples/jsm/node-editor/math/TrigonometryEditor.js +1 -1
  353. package/examples/jsm/node-editor/procedural/CheckerEditor.js +1 -1
  354. package/examples/jsm/node-editor/scene/MeshEditor.js +11 -8
  355. package/examples/jsm/node-editor/utils/JoinEditor.js +1 -1
  356. package/examples/jsm/node-editor/utils/OscillatorEditor.js +1 -1
  357. package/examples/jsm/node-editor/utils/PreviewEditor.js +7 -3
  358. package/examples/jsm/node-editor/utils/SplitEditor.js +1 -1
  359. package/examples/jsm/node-editor/utils/TimerEditor.js +1 -1
  360. package/examples/jsm/nodes/Nodes.js +70 -13
  361. package/examples/jsm/nodes/accessors/BitangentNode.js +62 -0
  362. package/examples/jsm/nodes/accessors/CubeTextureNode.js +9 -5
  363. package/examples/jsm/nodes/accessors/NormalNode.js +8 -8
  364. package/examples/jsm/nodes/accessors/Object3DNode.js +1 -1
  365. package/examples/jsm/nodes/accessors/PositionNode.js +11 -5
  366. package/examples/jsm/nodes/accessors/ReferenceNode.js +1 -1
  367. package/examples/jsm/nodes/accessors/ReflectVectorNode.js +31 -0
  368. package/examples/jsm/nodes/accessors/SkinningNode.js +8 -1
  369. package/examples/jsm/nodes/accessors/TangentNode.js +95 -0
  370. package/examples/jsm/nodes/core/AttributeNode.js +32 -9
  371. package/examples/jsm/nodes/core/CodeNode.js +3 -3
  372. package/examples/jsm/nodes/core/FunctionCallNode.js +20 -5
  373. package/examples/jsm/nodes/core/FunctionNode.js +2 -2
  374. package/examples/jsm/nodes/core/Node.js +15 -13
  375. package/examples/jsm/nodes/core/NodeBuilder.js +67 -18
  376. package/examples/jsm/nodes/core/NodeFrame.js +2 -2
  377. package/examples/jsm/nodes/core/NodeUtils.js +23 -1
  378. package/examples/jsm/nodes/core/NodeVarying.js +17 -0
  379. package/examples/jsm/nodes/core/VaryingNode.js +56 -0
  380. package/examples/jsm/nodes/core/constants.js +13 -13
  381. package/examples/jsm/nodes/display/BlendModeNode.js +85 -0
  382. package/examples/jsm/nodes/display/ColorAdjustmentNode.js +84 -0
  383. package/examples/jsm/nodes/display/NormalMapNode.js +19 -12
  384. package/examples/jsm/nodes/display/PosterizeNode.js +25 -0
  385. package/examples/jsm/nodes/display/ViewportNode.js +106 -0
  386. package/examples/jsm/nodes/functions/BSDF/BRDF_GGX.js +5 -5
  387. package/examples/jsm/nodes/functions/PhysicalLightingModel.js +3 -3
  388. package/examples/jsm/nodes/functions/light/getDistanceAttenuation.js +2 -2
  389. package/examples/jsm/nodes/geometry/RangeNode.js +109 -0
  390. package/examples/jsm/nodes/gpgpu/ComputeNode.js +3 -1
  391. package/examples/jsm/nodes/lighting/AnalyticLightNode.js +1 -1
  392. package/examples/jsm/nodes/lighting/EnvironmentNode.js +8 -7
  393. package/examples/jsm/nodes/lighting/LightingContextNode.js +4 -4
  394. package/examples/jsm/nodes/loaders/NodeLoader.js +2 -2
  395. package/examples/jsm/nodes/loaders/NodeMaterialLoader.js +33 -0
  396. package/examples/jsm/nodes/materials/Materials.js +21 -31
  397. package/examples/jsm/nodes/materials/MeshPhysicalNodeMaterial.js +70 -0
  398. package/examples/jsm/nodes/materials/MeshStandardNodeMaterial.js +4 -7
  399. package/examples/jsm/nodes/materials/NodeMaterial.js +11 -3
  400. package/examples/jsm/nodes/materials/SpriteNodeMaterial.js +28 -17
  401. package/examples/jsm/nodes/materialx/DISCLAIMER.md +199 -0
  402. package/examples/jsm/nodes/materialx/MaterialXNodes.js +59 -0
  403. package/examples/jsm/nodes/materialx/lib/mx_hsv.js +56 -0
  404. package/examples/jsm/nodes/materialx/lib/mx_noise.js +617 -0
  405. package/examples/jsm/nodes/materialx/lib/mx_transform_color.js +18 -0
  406. package/examples/jsm/nodes/math/MathNode.js +7 -17
  407. package/examples/jsm/nodes/math/OperatorNode.js +16 -3
  408. package/examples/jsm/nodes/parsers/GLSLNodeFunction.js +21 -6
  409. package/examples/jsm/nodes/procedural/CheckerNode.js +2 -2
  410. package/examples/jsm/nodes/shadernode/ShaderNode.js +40 -25
  411. package/examples/jsm/nodes/shadernode/ShaderNodeBaseElements.js +95 -68
  412. package/examples/jsm/nodes/shadernode/ShaderNodeElements.js +49 -6
  413. package/examples/jsm/nodes/utils/ConvertNode.js +18 -12
  414. package/examples/jsm/nodes/utils/EquirectUVNode.js +27 -0
  415. package/examples/jsm/nodes/utils/JoinNode.js +15 -9
  416. package/examples/jsm/nodes/utils/MatcapUVNode.js +2 -4
  417. package/examples/jsm/nodes/utils/MaxMipLevelNode.js +3 -2
  418. package/examples/jsm/nodes/utils/OscNode.js +2 -2
  419. package/examples/jsm/nodes/utils/RemapNode.js +34 -0
  420. package/examples/jsm/nodes/utils/RotateUVNode.js +32 -0
  421. package/examples/jsm/nodes/utils/SplitNode.js +21 -5
  422. package/examples/jsm/nodes/utils/SpriteSheetUVNode.js +8 -10
  423. package/examples/jsm/nodes/utils/TimerNode.js +23 -3
  424. package/examples/jsm/nodes/utils/TriplanarTexturesNode.js +51 -0
  425. package/examples/jsm/objects/GroundProjectedEnv.js +186 -0
  426. package/examples/jsm/objects/Reflector.js +12 -5
  427. package/examples/jsm/objects/ReflectorForSSRPass.js +3 -5
  428. package/examples/jsm/objects/Refractor.js +12 -6
  429. package/examples/jsm/objects/ShadowMesh.js +8 -2
  430. package/examples/jsm/postprocessing/AfterimagePass.js +17 -4
  431. package/examples/jsm/postprocessing/BloomPass.js +22 -3
  432. package/examples/jsm/postprocessing/BokehPass.js +18 -4
  433. package/examples/jsm/postprocessing/CubeTexturePass.js +12 -5
  434. package/examples/jsm/postprocessing/DotScreenPass.js +8 -0
  435. package/examples/jsm/postprocessing/EffectComposer.js +9 -0
  436. package/examples/jsm/postprocessing/FilmPass.js +8 -0
  437. package/examples/jsm/postprocessing/GlitchPass.js +13 -1
  438. package/examples/jsm/postprocessing/HalftonePass.js +8 -0
  439. package/examples/jsm/postprocessing/OutlinePass.js +25 -3
  440. package/examples/jsm/postprocessing/Pass.js +2 -0
  441. package/examples/jsm/postprocessing/RenderPixelatedPass.js +234 -0
  442. package/examples/jsm/postprocessing/SAOPass.js +20 -0
  443. package/examples/jsm/postprocessing/SMAAPass.js +16 -0
  444. package/examples/jsm/postprocessing/SSAARenderPass.js +4 -0
  445. package/examples/jsm/postprocessing/SavePass.js +17 -1
  446. package/examples/jsm/postprocessing/ShaderPass.js +8 -0
  447. package/examples/jsm/postprocessing/TAARenderPass.js +9 -0
  448. package/examples/jsm/postprocessing/TexturePass.js +8 -0
  449. package/examples/jsm/postprocessing/UnrealBloomPass.js +16 -0
  450. package/examples/jsm/renderers/CSS2DRenderer.js +2 -2
  451. package/examples/jsm/renderers/CSS3DRenderer.js +2 -2
  452. package/examples/jsm/renderers/Projector.js +2 -24
  453. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +9 -5
  454. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +363 -231
  455. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +7 -3
  456. package/examples/jsm/renderers/webgpu/WebGPUAnimation.js +58 -0
  457. package/examples/jsm/renderers/webgpu/WebGPUAttributes.js +63 -5
  458. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +68 -3
  459. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +6 -0
  460. package/examples/jsm/renderers/webgpu/WebGPUGeometries.js +6 -0
  461. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  462. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +17 -19
  463. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +16 -14
  464. package/examples/jsm/renderers/webgpu/WebGPURenderStates.js +2 -2
  465. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +113 -93
  466. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +5 -3
  467. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +2 -2
  468. package/examples/jsm/renderers/webgpu/WebGPUUtils.js +81 -0
  469. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +63 -36
  470. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  471. package/examples/jsm/shaders/LuminosityShader.js +1 -1
  472. package/examples/jsm/shaders/MMDToonShader.js +2 -4
  473. package/examples/jsm/shaders/ToneMapShader.js +1 -1
  474. package/examples/jsm/shaders/VelocityShader.js +128 -0
  475. package/examples/jsm/utils/BufferGeometryUtils.js +176 -43
  476. package/examples/jsm/utils/GeometryUtils.js +17 -25
  477. package/examples/jsm/utils/PackedPhongMaterial.js +0 -1
  478. package/examples/jsm/utils/SceneUtils.js +117 -12
  479. package/examples/jsm/webxr/OculusHandModel.js +3 -2
  480. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -1
  481. package/examples/jsm/webxr/VRButton.js +1 -7
  482. package/examples/jsm/webxr/XRHandMeshModel.js +8 -3
  483. package/package.json +22 -18
  484. package/src/Three.Legacy.js +262 -36
  485. package/src/Three.js +4 -2
  486. package/src/animation/AnimationAction.js +6 -5
  487. package/src/animation/AnimationClip.js +1 -1
  488. package/src/animation/AnimationMixer.js +1 -1
  489. package/src/animation/AnimationUtils.js +204 -199
  490. package/src/animation/KeyframeTrack.js +1 -1
  491. package/src/animation/PropertyBinding.js +31 -5
  492. package/src/audio/AudioContext.js +5 -5
  493. package/src/cameras/CubeCamera.js +14 -21
  494. package/src/constants.js +2 -4
  495. package/src/core/BufferAttribute.js +81 -111
  496. package/src/core/BufferGeometry.js +3 -41
  497. package/src/core/InstancedBufferAttribute.js +0 -10
  498. package/src/core/InstancedBufferGeometry.js +1 -7
  499. package/src/core/InterleavedBuffer.js +1 -1
  500. package/src/core/InterleavedBufferAttribute.js +57 -8
  501. package/src/core/Object3D.js +22 -5
  502. package/src/core/Uniform.js +0 -7
  503. package/src/core/UniformsGroup.js +92 -0
  504. package/src/extras/DataUtils.js +104 -88
  505. package/src/extras/Earcut.js +67 -67
  506. package/src/extras/core/Path.js +1 -0
  507. package/src/extras/core/ShapePath.js +1 -4
  508. package/src/extras/curves/CatmullRomCurve3.js +4 -2
  509. package/src/geometries/BoxGeometry.js +1 -1
  510. package/src/geometries/CapsuleGeometry.js +1 -1
  511. package/src/geometries/CircleGeometry.js +1 -1
  512. package/src/geometries/ConeGeometry.js +1 -1
  513. package/src/geometries/CylinderGeometry.js +2 -1
  514. package/src/geometries/DodecahedronGeometry.js +1 -1
  515. package/src/geometries/EdgesGeometry.js +5 -4
  516. package/src/geometries/ExtrudeGeometry.js +2 -11
  517. package/src/geometries/IcosahedronGeometry.js +1 -1
  518. package/src/geometries/LatheGeometry.js +2 -2
  519. package/src/geometries/OctahedronGeometry.js +1 -1
  520. package/src/geometries/PlaneGeometry.js +2 -1
  521. package/src/geometries/PolyhedronGeometry.js +2 -2
  522. package/src/geometries/RingGeometry.js +1 -1
  523. package/src/geometries/ShapeGeometry.js +3 -2
  524. package/src/geometries/SphereGeometry.js +2 -1
  525. package/src/geometries/TetrahedronGeometry.js +1 -1
  526. package/src/geometries/TorusGeometry.js +2 -1
  527. package/src/geometries/TorusKnotGeometry.js +2 -1
  528. package/src/geometries/TubeGeometry.js +2 -1
  529. package/src/geometries/WireframeGeometry.js +1 -0
  530. package/src/helpers/ArrowHelper.js +9 -0
  531. package/src/helpers/Box3Helper.js +7 -0
  532. package/src/helpers/BoxHelper.js +7 -1
  533. package/src/helpers/CameraHelper.js +97 -38
  534. package/src/helpers/DirectionalLightHelper.js +6 -1
  535. package/src/helpers/GridHelper.js +7 -0
  536. package/src/helpers/HemisphereLightHelper.js +5 -1
  537. package/src/helpers/PlaneHelper.js +15 -9
  538. package/src/helpers/PointLightHelper.js +2 -1
  539. package/src/helpers/PolarGridHelper.js +25 -14
  540. package/src/helpers/SkeletonHelper.js +7 -0
  541. package/src/helpers/SpotLightHelper.js +5 -2
  542. package/src/lights/LightShadow.js +1 -2
  543. package/src/lights/PointLight.js +2 -2
  544. package/src/lights/SpotLight.js +4 -2
  545. package/src/loaders/FileLoader.js +16 -2
  546. package/src/loaders/LoadingManager.js +1 -1
  547. package/src/loaders/MaterialLoader.js +49 -7
  548. package/src/loaders/ObjectLoader.js +9 -42
  549. package/src/materials/Material.js +2 -34
  550. package/src/materials/Materials.js +0 -27
  551. package/src/materials/MeshLambertMaterial.js +28 -1
  552. package/src/materials/MeshPhysicalMaterial.js +1 -1
  553. package/src/materials/ShaderMaterial.js +3 -7
  554. package/src/math/Color.js +8 -18
  555. package/src/math/MathUtils.js +1 -7
  556. package/src/math/Matrix3.js +54 -25
  557. package/src/math/Matrix4.js +3 -27
  558. package/src/math/Quaternion.js +1 -21
  559. package/src/math/Ray.js +2 -5
  560. package/src/math/Sphere.js +36 -21
  561. package/src/math/Vector2.js +4 -24
  562. package/src/math/Vector3.js +7 -46
  563. package/src/math/Vector4.js +4 -24
  564. package/src/objects/InstancedMesh.js +7 -0
  565. package/src/objects/LOD.js +25 -6
  566. package/src/renderers/WebGL3DRenderTarget.js +1 -1
  567. package/src/renderers/WebGLArrayRenderTarget.js +1 -1
  568. package/src/renderers/WebGLCubeRenderTarget.js +1 -1
  569. package/src/renderers/WebGLMultipleRenderTargets.js +1 -1
  570. package/src/renderers/WebGLRenderTarget.js +1 -1
  571. package/src/renderers/WebGLRenderer.js +119 -69
  572. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +12 -12
  573. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +3 -5
  574. package/src/renderers/shaders/ShaderChunk/common.glsl.js +6 -5
  575. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +24 -24
  576. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -4
  577. package/src/renderers/shaders/ShaderChunk/envmap_pars_fragment.glsl.js +1 -1
  578. package/src/renderers/shaders/ShaderChunk/envmap_pars_vertex.glsl.js +1 -1
  579. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +2 -1
  580. package/src/renderers/shaders/ShaderChunk/iridescence_fragment.glsl.js +113 -99
  581. package/src/renderers/shaders/ShaderChunk/lights_fragment_begin.glsl.js +34 -13
  582. package/src/renderers/shaders/ShaderChunk/lights_lambert_fragment.glsl.js +5 -0
  583. package/src/renderers/shaders/ShaderChunk/lights_lambert_pars_fragment.glsl.js +28 -0
  584. package/src/renderers/shaders/ShaderChunk/lights_phong_pars_fragment.glsl.js +0 -2
  585. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +3 -1
  586. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +13 -1
  587. package/src/renderers/shaders/ShaderChunk/lights_toon_pars_fragment.glsl.js +0 -2
  588. package/src/renderers/shaders/ShaderChunk/normal_fragment_begin.glsl.js +2 -4
  589. package/src/renderers/shaders/ShaderChunk/normalmap_pars_fragment.glsl.js +2 -4
  590. package/src/renderers/shaders/ShaderChunk/output_fragment.glsl.js +1 -1
  591. package/src/renderers/shaders/ShaderChunk/packing.glsl.js +8 -0
  592. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_fragment.glsl.js +18 -7
  593. package/src/renderers/shaders/ShaderChunk/shadowmap_pars_vertex.glsl.js +8 -3
  594. package/src/renderers/shaders/ShaderChunk/shadowmap_vertex.glsl.js +9 -6
  595. package/src/renderers/shaders/ShaderChunk/shadowmask_pars_fragment.glsl.js +1 -1
  596. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +14 -10
  597. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +2 -2
  598. package/src/renderers/shaders/ShaderChunk/worldpos_vertex.glsl.js +1 -1
  599. package/src/renderers/shaders/ShaderChunk.js +7 -2
  600. package/src/renderers/shaders/ShaderLib/background.glsl.js +7 -2
  601. package/src/renderers/shaders/ShaderLib/backgroundCube.glsl.js +62 -0
  602. package/src/renderers/shaders/ShaderLib/cube.glsl.js +4 -6
  603. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +0 -1
  604. package/src/renderers/shaders/ShaderLib/meshlambert.glsl.js +22 -50
  605. package/src/renderers/shaders/ShaderLib/meshphong.glsl.js +0 -1
  606. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +0 -3
  607. package/src/renderers/shaders/ShaderLib.js +50 -36
  608. package/src/renderers/shaders/UniformsLib.js +13 -12
  609. package/src/renderers/shaders/UniformsUtils.js +29 -0
  610. package/src/renderers/webgl/WebGLAttributes.js +2 -0
  611. package/src/renderers/webgl/WebGLBackground.js +17 -9
  612. package/src/renderers/webgl/WebGLLights.js +37 -17
  613. package/src/renderers/webgl/WebGLMaterials.js +2 -1
  614. package/src/renderers/webgl/WebGLMorphtargets.js +0 -20
  615. package/src/renderers/webgl/WebGLProgram.js +6 -11
  616. package/src/renderers/webgl/WebGLPrograms.js +30 -26
  617. package/src/renderers/webgl/WebGLRenderLists.js +5 -4
  618. package/src/renderers/webgl/WebGLRenderStates.js +5 -4
  619. package/src/renderers/webgl/WebGLShaderCache.js +9 -6
  620. package/src/renderers/webgl/WebGLShadowMap.js +13 -16
  621. package/src/renderers/webgl/WebGLState.js +125 -41
  622. package/src/renderers/webgl/WebGLTextures.js +94 -39
  623. package/src/renderers/webgl/WebGLUniforms.js +156 -28
  624. package/src/renderers/webgl/WebGLUniformsGroups.js +372 -0
  625. package/src/renderers/webgl/WebGLUtils.js +3 -1
  626. package/src/renderers/webvr/WebVRManager.js +42 -9
  627. package/src/renderers/webvr/WebVRUtils.js +1 -1
  628. package/src/renderers/webxr/WebXRController.js +91 -50
  629. package/src/renderers/webxr/WebXRManager.js +127 -34
  630. package/src/scenes/Scene.js +24 -3
  631. package/src/textures/CompressedArrayTexture.js +18 -0
  632. package/src/textures/Source.js +1 -1
  633. package/src/textures/Texture.js +2 -1
  634. package/src/utils.js +1 -1
  635. package/examples/js/controls/experimental/CameraControls.js +0 -1048
  636. package/examples/js/libs/lottie_canvas.js +0 -12751
  637. package/examples/js/loaders/KTX2Loader.js +0 -558
  638. package/examples/js/shaders/PixelShader.js +0 -51
  639. package/examples/jsm/controls/experimental/CameraControls.js +0 -1248
  640. package/examples/jsm/nodes/accessors/ReflectNode.js +0 -70
  641. package/examples/jsm/nodes/core/NodeVary.js +0 -14
  642. package/examples/jsm/nodes/core/VaryNode.js +0 -54
  643. package/examples/jsm/package.json +0 -3
  644. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +0 -45
  645. package/examples/jsm/shaders/PixelShader.js +0 -44
  646. package/src/renderers/shaders/ShaderChunk/lights_lambert_vertex.glsl.js +0 -122
@@ -1,19 +1,12 @@
1
1
  ( function () {
2
2
 
3
3
  const _plane = new THREE.Plane();
4
-
5
4
  const _raycaster = new THREE.Raycaster();
6
-
7
5
  const _pointer = new THREE.Vector2();
8
-
9
6
  const _offset = new THREE.Vector3();
10
-
11
7
  const _intersection = new THREE.Vector3();
12
-
13
8
  const _worldPosition = new THREE.Vector3();
14
-
15
9
  const _inverseMatrix = new THREE.Matrix4();
16
-
17
10
  class DragControls extends THREE.EventDispatcher {
18
11
 
19
12
  constructor( _objects, _camera, _domElement ) {
@@ -23,18 +16,16 @@
23
16
 
24
17
  let _selected = null,
25
18
  _hovered = null;
26
- const _intersections = []; //
19
+ const _intersections = [];
27
20
 
28
- const scope = this;
21
+ //
29
22
 
23
+ const scope = this;
30
24
  function activate() {
31
25
 
32
26
  _domElement.addEventListener( 'pointermove', onPointerMove );
33
-
34
27
  _domElement.addEventListener( 'pointerdown', onPointerDown );
35
-
36
28
  _domElement.addEventListener( 'pointerup', onPointerCancel );
37
-
38
29
  _domElement.addEventListener( 'pointerleave', onPointerCancel );
39
30
 
40
31
  }
@@ -42,13 +33,9 @@
42
33
  function deactivate() {
43
34
 
44
35
  _domElement.removeEventListener( 'pointermove', onPointerMove );
45
-
46
36
  _domElement.removeEventListener( 'pointerdown', onPointerDown );
47
-
48
37
  _domElement.removeEventListener( 'pointerup', onPointerCancel );
49
-
50
38
  _domElement.removeEventListener( 'pointerleave', onPointerCancel );
51
-
52
39
  _domElement.style.cursor = '';
53
40
 
54
41
  }
@@ -75,9 +62,7 @@
75
62
 
76
63
  if ( scope.enabled === false ) return;
77
64
  updatePointer( event );
78
-
79
65
  _raycaster.setFromCamera( _pointer, _camera );
80
-
81
66
  if ( _selected ) {
82
67
 
83
68
  if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
@@ -92,23 +77,19 @@
92
77
  } );
93
78
  return;
94
79
 
95
- } // hover support
80
+ }
96
81
 
82
+ // hover support
97
83
 
98
84
  if ( event.pointerType === 'mouse' || event.pointerType === 'pen' ) {
99
85
 
100
86
  _intersections.length = 0;
101
-
102
87
  _raycaster.setFromCamera( _pointer, _camera );
103
-
104
88
  _raycaster.intersectObjects( _objects, true, _intersections );
105
-
106
89
  if ( _intersections.length > 0 ) {
107
90
 
108
91
  const object = _intersections[ 0 ].object;
109
-
110
92
  _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( object.matrixWorld ) );
111
-
112
93
  if ( _hovered !== object && _hovered !== null ) {
113
94
 
114
95
  scope.dispatchEvent( {
@@ -155,21 +136,15 @@
155
136
  if ( scope.enabled === false ) return;
156
137
  updatePointer( event );
157
138
  _intersections.length = 0;
158
-
159
139
  _raycaster.setFromCamera( _pointer, _camera );
160
-
161
140
  _raycaster.intersectObjects( _objects, true, _intersections );
162
-
163
141
  if ( _intersections.length > 0 ) {
164
142
 
165
143
  _selected = scope.transformGroup === true ? _objects[ 0 ] : _intersections[ 0 ].object;
166
-
167
144
  _plane.setFromNormalAndCoplanarPoint( _camera.getWorldDirection( _plane.normal ), _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );
168
-
169
145
  if ( _raycaster.ray.intersectPlane( _plane, _intersection ) ) {
170
146
 
171
147
  _inverseMatrix.copy( _selected.parent.matrixWorld ).invert();
172
-
173
148
  _offset.copy( _intersection ).sub( _worldPosition.setFromMatrixPosition( _selected.matrixWorld ) );
174
149
 
175
150
  }
@@ -187,7 +162,6 @@
187
162
  function onPointerCancel() {
188
163
 
189
164
  if ( scope.enabled === false ) return;
190
-
191
165
  if ( _selected ) {
192
166
 
193
167
  scope.dispatchEvent( {
@@ -205,13 +179,14 @@
205
179
  function updatePointer( event ) {
206
180
 
207
181
  const rect = _domElement.getBoundingClientRect();
208
-
209
182
  _pointer.x = ( event.clientX - rect.left ) / rect.width * 2 - 1;
210
183
  _pointer.y = - ( event.clientY - rect.top ) / rect.height * 2 + 1;
211
184
 
212
185
  }
213
186
 
214
- activate(); // API
187
+ activate();
188
+
189
+ // API
215
190
 
216
191
  this.enabled = true;
217
192
  this.transformGroup = false;
@@ -1,24 +1,16 @@
1
1
  ( function () {
2
2
 
3
3
  const _lookDirection = new THREE.Vector3();
4
-
5
4
  const _spherical = new THREE.Spherical();
6
-
7
5
  const _target = new THREE.Vector3();
8
-
9
6
  class FirstPersonControls {
10
7
 
11
8
  constructor( object, domElement ) {
12
9
 
13
- if ( domElement === undefined ) {
14
-
15
- console.warn( 'THREE.FirstPersonControls: The second parameter "domElement" is now mandatory.' );
16
- domElement = document;
17
-
18
- }
19
-
20
10
  this.object = object;
21
- this.domElement = domElement; // API
11
+ this.domElement = domElement;
12
+
13
+ // API
22
14
 
23
15
  this.enabled = true;
24
16
  this.movementSpeed = 1.0;
@@ -33,20 +25,26 @@
33
25
  this.constrainVertical = false;
34
26
  this.verticalMin = 0;
35
27
  this.verticalMax = Math.PI;
36
- this.mouseDragOn = false; // internals
28
+ this.mouseDragOn = false;
29
+
30
+ // internals
37
31
 
38
32
  this.autoSpeedFactor = 0.0;
39
- this.mouseX = 0;
40
- this.mouseY = 0;
33
+ this.pointerX = 0;
34
+ this.pointerY = 0;
41
35
  this.moveForward = false;
42
36
  this.moveBackward = false;
43
37
  this.moveLeft = false;
44
38
  this.moveRight = false;
45
39
  this.viewHalfX = 0;
46
- this.viewHalfY = 0; // private variables
40
+ this.viewHalfY = 0;
41
+
42
+ // private variables
47
43
 
48
44
  let lat = 0;
49
- let lon = 0; //
45
+ let lon = 0;
46
+
47
+ //
50
48
 
51
49
  this.handleResize = function () {
52
50
 
@@ -64,7 +62,7 @@
64
62
 
65
63
  };
66
64
 
67
- this.onMouseDown = function ( event ) {
65
+ this.onPointerDown = function ( event ) {
68
66
 
69
67
  if ( this.domElement !== document ) {
70
68
 
@@ -79,7 +77,6 @@
79
77
  case 0:
80
78
  this.moveForward = true;
81
79
  break;
82
-
83
80
  case 2:
84
81
  this.moveBackward = true;
85
82
  break;
@@ -92,7 +89,7 @@
92
89
 
93
90
  };
94
91
 
95
- this.onMouseUp = function ( event ) {
92
+ this.onPointerUp = function ( event ) {
96
93
 
97
94
  if ( this.activeLook ) {
98
95
 
@@ -101,7 +98,6 @@
101
98
  case 0:
102
99
  this.moveForward = false;
103
100
  break;
104
-
105
101
  case 2:
106
102
  this.moveBackward = false;
107
103
  break;
@@ -114,17 +110,17 @@
114
110
 
115
111
  };
116
112
 
117
- this.onMouseMove = function ( event ) {
113
+ this.onPointerMove = function ( event ) {
118
114
 
119
115
  if ( this.domElement === document ) {
120
116
 
121
- this.mouseX = event.pageX - this.viewHalfX;
122
- this.mouseY = event.pageY - this.viewHalfY;
117
+ this.pointerX = event.pageX - this.viewHalfX;
118
+ this.pointerY = event.pageY - this.viewHalfY;
123
119
 
124
120
  } else {
125
121
 
126
- this.mouseX = event.pageX - this.domElement.offsetLeft - this.viewHalfX;
127
- this.mouseY = event.pageY - this.domElement.offsetTop - this.viewHalfY;
122
+ this.pointerX = event.pageX - this.domElement.offsetLeft - this.viewHalfX;
123
+ this.pointerY = event.pageY - this.domElement.offsetTop - this.viewHalfY;
128
124
 
129
125
  }
130
126
 
@@ -138,26 +134,21 @@
138
134
  case 'KeyW':
139
135
  this.moveForward = true;
140
136
  break;
141
-
142
137
  case 'ArrowLeft':
143
138
  case 'KeyA':
144
139
  this.moveLeft = true;
145
140
  break;
146
-
147
141
  case 'ArrowDown':
148
142
  case 'KeyS':
149
143
  this.moveBackward = true;
150
144
  break;
151
-
152
145
  case 'ArrowRight':
153
146
  case 'KeyD':
154
147
  this.moveRight = true;
155
148
  break;
156
-
157
149
  case 'KeyR':
158
150
  this.moveUp = true;
159
151
  break;
160
-
161
152
  case 'KeyF':
162
153
  this.moveDown = true;
163
154
  break;
@@ -174,26 +165,21 @@
174
165
  case 'KeyW':
175
166
  this.moveForward = false;
176
167
  break;
177
-
178
168
  case 'ArrowLeft':
179
169
  case 'KeyA':
180
170
  this.moveLeft = false;
181
171
  break;
182
-
183
172
  case 'ArrowDown':
184
173
  case 'KeyS':
185
174
  this.moveBackward = false;
186
175
  break;
187
-
188
176
  case 'ArrowRight':
189
177
  case 'KeyD':
190
178
  this.moveRight = false;
191
179
  break;
192
-
193
180
  case 'KeyR':
194
181
  this.moveUp = false;
195
182
  break;
196
-
197
183
  case 'KeyF':
198
184
  this.moveDown = false;
199
185
  break;
@@ -226,7 +212,6 @@
226
212
  return function update( delta ) {
227
213
 
228
214
  if ( this.enabled === false ) return;
229
-
230
215
  if ( this.heightSpeed ) {
231
216
 
232
217
  const y = THREE.MathUtils.clamp( this.object.position.y, this.heightMin, this.heightMax );
@@ -247,7 +232,6 @@
247
232
  if ( this.moveUp ) this.object.translateY( actualMoveSpeed );
248
233
  if ( this.moveDown ) this.object.translateY( - actualMoveSpeed );
249
234
  let actualLookSpeed = delta * this.lookSpeed;
250
-
251
235
  if ( ! this.activeLook ) {
252
236
 
253
237
  actualLookSpeed = 0;
@@ -255,19 +239,17 @@
255
239
  }
256
240
 
257
241
  let verticalLookRatio = 1;
258
-
259
242
  if ( this.constrainVertical ) {
260
243
 
261
244
  verticalLookRatio = Math.PI / ( this.verticalMax - this.verticalMin );
262
245
 
263
246
  }
264
247
 
265
- lon -= this.mouseX * actualLookSpeed;
266
- if ( this.lookVertical ) lat -= this.mouseY * actualLookSpeed * verticalLookRatio;
248
+ lon -= this.pointerX * actualLookSpeed;
249
+ if ( this.lookVertical ) lat -= this.pointerY * actualLookSpeed * verticalLookRatio;
267
250
  lat = Math.max( - 85, Math.min( 85, lat ) );
268
251
  let phi = THREE.MathUtils.degToRad( 90 - lat );
269
252
  const theta = THREE.MathUtils.degToRad( lon );
270
-
271
253
  if ( this.constrainVertical ) {
272
254
 
273
255
  phi = THREE.MathUtils.mapLinear( phi, 0, Math.PI, this.verticalMin, this.verticalMax );
@@ -281,43 +263,33 @@
281
263
  };
282
264
 
283
265
  }();
284
-
285
266
  this.dispose = function () {
286
267
 
287
268
  this.domElement.removeEventListener( 'contextmenu', contextmenu );
288
- this.domElement.removeEventListener( 'mousedown', _onMouseDown );
289
- this.domElement.removeEventListener( 'mousemove', _onMouseMove );
290
- this.domElement.removeEventListener( 'mouseup', _onMouseUp );
269
+ this.domElement.removeEventListener( 'pointerdown', _onPointerDown );
270
+ this.domElement.removeEventListener( 'pointermove', _onPointerMove );
271
+ this.domElement.removeEventListener( 'pointerup', _onPointerUp );
291
272
  window.removeEventListener( 'keydown', _onKeyDown );
292
273
  window.removeEventListener( 'keyup', _onKeyUp );
293
274
 
294
275
  };
295
276
 
296
- const _onMouseMove = this.onMouseMove.bind( this );
297
-
298
- const _onMouseDown = this.onMouseDown.bind( this );
299
-
300
- const _onMouseUp = this.onMouseUp.bind( this );
301
-
277
+ const _onPointerMove = this.onPointerMove.bind( this );
278
+ const _onPointerDown = this.onPointerDown.bind( this );
279
+ const _onPointerUp = this.onPointerUp.bind( this );
302
280
  const _onKeyDown = this.onKeyDown.bind( this );
303
-
304
281
  const _onKeyUp = this.onKeyUp.bind( this );
305
-
306
282
  this.domElement.addEventListener( 'contextmenu', contextmenu );
307
- this.domElement.addEventListener( 'mousemove', _onMouseMove );
308
- this.domElement.addEventListener( 'mousedown', _onMouseDown );
309
- this.domElement.addEventListener( 'mouseup', _onMouseUp );
283
+ this.domElement.addEventListener( 'pointerdown', _onPointerDown );
284
+ this.domElement.addEventListener( 'pointermove', _onPointerMove );
285
+ this.domElement.addEventListener( 'pointerup', _onPointerUp );
310
286
  window.addEventListener( 'keydown', _onKeyDown );
311
287
  window.addEventListener( 'keyup', _onKeyUp );
312
-
313
288
  function setOrientation( controls ) {
314
289
 
315
290
  const quaternion = controls.object.quaternion;
316
-
317
291
  _lookDirection.set( 0, 0, - 1 ).applyQuaternion( quaternion );
318
-
319
292
  _spherical.setFromVector3( _lookDirection );
320
-
321
293
  lat = 90 - THREE.MathUtils.radToDeg( _spherical.phi );
322
294
  lon = THREE.MathUtils.radToDeg( _spherical.theta );
323
295
 
@@ -329,7 +301,6 @@
329
301
  }
330
302
 
331
303
  }
332
-
333
304
  function contextmenu( event ) {
334
305
 
335
306
  event.preventDefault();
@@ -3,27 +3,23 @@
3
3
  const _changeEvent = {
4
4
  type: 'change'
5
5
  };
6
-
7
6
  class FlyControls extends THREE.EventDispatcher {
8
7
 
9
8
  constructor( object, domElement ) {
10
9
 
11
10
  super();
12
-
13
- if ( domElement === undefined ) {
14
-
15
- console.warn( 'THREE.FlyControls: The second parameter "domElement" is now mandatory.' );
16
- domElement = document;
17
-
18
- }
19
-
20
11
  this.object = object;
21
- this.domElement = domElement; // API
12
+ this.domElement = domElement;
13
+
14
+ // API
22
15
 
23
16
  this.movementSpeed = 1.0;
24
17
  this.rollSpeed = 0.005;
25
18
  this.dragToLook = false;
26
- this.autoForward = false; // disable default target object behavior
19
+ this.autoForward = false;
20
+
21
+ // disable default target object behavior
22
+
27
23
  // internals
28
24
 
29
25
  const scope = this;
@@ -31,7 +27,7 @@
31
27
  const lastQuaternion = new THREE.Quaternion();
32
28
  const lastPosition = new THREE.Vector3();
33
29
  this.tmpQuaternion = new THREE.Quaternion();
34
- this.mouseStatus = 0;
30
+ this.status = 0;
35
31
  this.moveState = {
36
32
  up: 0,
37
33
  down: 0,
@@ -48,7 +44,6 @@
48
44
  };
49
45
  this.moveVector = new THREE.Vector3( 0, 0, 0 );
50
46
  this.rotationVector = new THREE.Vector3( 0, 0, 0 );
51
-
52
47
  this.keydown = function ( event ) {
53
48
 
54
49
  if ( event.altKey ) {
@@ -63,51 +58,39 @@
63
58
  case 'ShiftRight':
64
59
  this.movementSpeedMultiplier = .1;
65
60
  break;
66
-
67
61
  case 'KeyW':
68
62
  this.moveState.forward = 1;
69
63
  break;
70
-
71
64
  case 'KeyS':
72
65
  this.moveState.back = 1;
73
66
  break;
74
-
75
67
  case 'KeyA':
76
68
  this.moveState.left = 1;
77
69
  break;
78
-
79
70
  case 'KeyD':
80
71
  this.moveState.right = 1;
81
72
  break;
82
-
83
73
  case 'KeyR':
84
74
  this.moveState.up = 1;
85
75
  break;
86
-
87
76
  case 'KeyF':
88
77
  this.moveState.down = 1;
89
78
  break;
90
-
91
79
  case 'ArrowUp':
92
80
  this.moveState.pitchUp = 1;
93
81
  break;
94
-
95
82
  case 'ArrowDown':
96
83
  this.moveState.pitchDown = 1;
97
84
  break;
98
-
99
85
  case 'ArrowLeft':
100
86
  this.moveState.yawLeft = 1;
101
87
  break;
102
-
103
88
  case 'ArrowRight':
104
89
  this.moveState.yawRight = 1;
105
90
  break;
106
-
107
91
  case 'KeyQ':
108
92
  this.moveState.rollLeft = 1;
109
93
  break;
110
-
111
94
  case 'KeyE':
112
95
  this.moveState.rollRight = 1;
113
96
  break;
@@ -127,51 +110,39 @@
127
110
  case 'ShiftRight':
128
111
  this.movementSpeedMultiplier = 1;
129
112
  break;
130
-
131
113
  case 'KeyW':
132
114
  this.moveState.forward = 0;
133
115
  break;
134
-
135
116
  case 'KeyS':
136
117
  this.moveState.back = 0;
137
118
  break;
138
-
139
119
  case 'KeyA':
140
120
  this.moveState.left = 0;
141
121
  break;
142
-
143
122
  case 'KeyD':
144
123
  this.moveState.right = 0;
145
124
  break;
146
-
147
125
  case 'KeyR':
148
126
  this.moveState.up = 0;
149
127
  break;
150
-
151
128
  case 'KeyF':
152
129
  this.moveState.down = 0;
153
130
  break;
154
-
155
131
  case 'ArrowUp':
156
132
  this.moveState.pitchUp = 0;
157
133
  break;
158
-
159
134
  case 'ArrowDown':
160
135
  this.moveState.pitchDown = 0;
161
136
  break;
162
-
163
137
  case 'ArrowLeft':
164
138
  this.moveState.yawLeft = 0;
165
139
  break;
166
-
167
140
  case 'ArrowRight':
168
141
  this.moveState.yawRight = 0;
169
142
  break;
170
-
171
143
  case 'KeyQ':
172
144
  this.moveState.rollLeft = 0;
173
145
  break;
174
-
175
146
  case 'KeyE':
176
147
  this.moveState.rollRight = 0;
177
148
  break;
@@ -183,11 +154,11 @@
183
154
 
184
155
  };
185
156
 
186
- this.mousedown = function ( event ) {
157
+ this.pointerdown = function ( event ) {
187
158
 
188
159
  if ( this.dragToLook ) {
189
160
 
190
- this.mouseStatus ++;
161
+ this.status ++;
191
162
 
192
163
  } else {
193
164
 
@@ -196,7 +167,6 @@
196
167
  case 0:
197
168
  this.moveState.forward = 1;
198
169
  break;
199
-
200
170
  case 2:
201
171
  this.moveState.back = 1;
202
172
  break;
@@ -209,9 +179,9 @@
209
179
 
210
180
  };
211
181
 
212
- this.mousemove = function ( event ) {
182
+ this.pointermove = function ( event ) {
213
183
 
214
- if ( ! this.dragToLook || this.mouseStatus > 0 ) {
184
+ if ( ! this.dragToLook || this.status > 0 ) {
215
185
 
216
186
  const container = this.getContainerDimensions();
217
187
  const halfWidth = container.size[ 0 ] / 2;
@@ -224,11 +194,11 @@
224
194
 
225
195
  };
226
196
 
227
- this.mouseup = function ( event ) {
197
+ this.pointerup = function ( event ) {
228
198
 
229
199
  if ( this.dragToLook ) {
230
200
 
231
- this.mouseStatus --;
201
+ this.status --;
232
202
  this.moveState.yawLeft = this.moveState.pitchDown = 0;
233
203
 
234
204
  } else {
@@ -238,7 +208,6 @@
238
208
  case 0:
239
209
  this.moveState.forward = 0;
240
210
  break;
241
-
242
211
  case 2:
243
212
  this.moveState.back = 0;
244
213
  break;
@@ -262,7 +231,6 @@
262
231
  scope.object.translateZ( scope.moveVector.z * moveMult );
263
232
  scope.tmpQuaternion.set( scope.rotationVector.x * rotMult, scope.rotationVector.y * rotMult, scope.rotationVector.z * rotMult, 1 ).normalize();
264
233
  scope.object.quaternion.multiply( scope.tmpQuaternion );
265
-
266
234
  if ( lastPosition.distanceToSquared( scope.object.position ) > EPS || 8 * ( 1 - lastQuaternion.dot( scope.object.quaternion ) ) > EPS ) {
267
235
 
268
236
  scope.dispatchEvent( _changeEvent );
@@ -278,7 +246,9 @@
278
246
  const forward = this.moveState.forward || this.autoForward && ! this.moveState.back ? 1 : 0;
279
247
  this.moveVector.x = - this.moveState.left + this.moveState.right;
280
248
  this.moveVector.y = - this.moveState.down + this.moveState.up;
281
- this.moveVector.z = - forward + this.moveState.back; //console.log( 'move:', [ this.moveVector.x, this.moveVector.y, this.moveVector.z ] );
249
+ this.moveVector.z = - forward + this.moveState.back;
250
+
251
+ //console.log( 'move:', [ this.moveVector.x, this.moveVector.y, this.moveVector.z ] );
282
252
 
283
253
  };
284
254
 
@@ -286,7 +256,9 @@
286
256
 
287
257
  this.rotationVector.x = - this.moveState.pitchDown + this.moveState.pitchUp;
288
258
  this.rotationVector.y = - this.moveState.yawRight + this.moveState.yawLeft;
289
- this.rotationVector.z = - this.moveState.rollRight + this.moveState.rollLeft; //console.log( 'rotate:', [ this.rotationVector.x, this.rotationVector.y, this.rotationVector.z ] );
259
+ this.rotationVector.z = - this.moveState.rollRight + this.moveState.rollLeft;
260
+
261
+ //console.log( 'rotate:', [ this.rotationVector.x, this.rotationVector.y, this.rotationVector.z ] );
290
262
 
291
263
  };
292
264
 
@@ -313,28 +285,23 @@
313
285
  this.dispose = function () {
314
286
 
315
287
  this.domElement.removeEventListener( 'contextmenu', contextmenu );
316
- this.domElement.removeEventListener( 'mousedown', _mousedown );
317
- this.domElement.removeEventListener( 'mousemove', _mousemove );
318
- this.domElement.removeEventListener( 'mouseup', _mouseup );
288
+ this.domElement.removeEventListener( 'pointerdown', _pointerdown );
289
+ this.domElement.removeEventListener( 'pointermove', _pointermove );
290
+ this.domElement.removeEventListener( 'pointerup', _pointerup );
319
291
  window.removeEventListener( 'keydown', _keydown );
320
292
  window.removeEventListener( 'keyup', _keyup );
321
293
 
322
294
  };
323
295
 
324
- const _mousemove = this.mousemove.bind( this );
325
-
326
- const _mousedown = this.mousedown.bind( this );
327
-
328
- const _mouseup = this.mouseup.bind( this );
329
-
296
+ const _pointermove = this.pointermove.bind( this );
297
+ const _pointerdown = this.pointerdown.bind( this );
298
+ const _pointerup = this.pointerup.bind( this );
330
299
  const _keydown = this.keydown.bind( this );
331
-
332
300
  const _keyup = this.keyup.bind( this );
333
-
334
301
  this.domElement.addEventListener( 'contextmenu', contextmenu );
335
- this.domElement.addEventListener( 'mousemove', _mousemove );
336
- this.domElement.addEventListener( 'mousedown', _mousedown );
337
- this.domElement.addEventListener( 'mouseup', _mouseup );
302
+ this.domElement.addEventListener( 'pointerdown', _pointerdown );
303
+ this.domElement.addEventListener( 'pointermove', _pointermove );
304
+ this.domElement.addEventListener( 'pointerup', _pointerup );
338
305
  window.addEventListener( 'keydown', _keydown );
339
306
  window.addEventListener( 'keyup', _keyup );
340
307
  this.updateMovementVector();
@@ -343,7 +310,6 @@
343
310
  }
344
311
 
345
312
  }
346
-
347
313
  function contextmenu( event ) {
348
314
 
349
315
  event.preventDefault();