super-three 0.133.4 → 0.136.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 (409) hide show
  1. package/LICENSE +1 -1
  2. package/build/three.js +2285 -1983
  3. package/build/three.min.js +1 -1
  4. package/build/three.module.js +5983 -5358
  5. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff +0 -0
  6. package/examples/fonts/open-sans/open-sans-v15-cyrillic-ext_greek_greek-ext_cyrillic_latin_latin-ext_vietnamese-regular.woff2 +0 -0
  7. package/examples/fonts/open-sans/open-sans.css +9 -0
  8. package/examples/fonts/tabler-icons/fonts/tabler-icons.eot +0 -0
  9. package/examples/fonts/tabler-icons/fonts/tabler-icons.svg +3966 -0
  10. package/examples/fonts/tabler-icons/fonts/tabler-icons.ttf +0 -0
  11. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff +0 -0
  12. package/examples/fonts/tabler-icons/fonts/tabler-icons.woff2 +0 -0
  13. package/examples/fonts/tabler-icons/tabler-icons.min.css +4 -0
  14. package/examples/js/animation/CCDIKSolver.js +0 -1
  15. package/examples/js/animation/MMDPhysics.js +2 -4
  16. package/examples/js/cameras/CinematicCamera.js +2 -7
  17. package/examples/js/controls/ArcballControls.js +99 -72
  18. package/examples/js/controls/DragControls.js +7 -0
  19. package/examples/js/controls/OrbitControls.js +5 -36
  20. package/examples/js/controls/TrackballControls.js +3 -2
  21. package/examples/js/controls/TransformControls.js +24 -1
  22. package/examples/js/csm/CSM.js +2 -2
  23. package/examples/js/csm/CSMFrustum.js +133 -0
  24. package/examples/js/curves/CurveExtras.js +0 -2
  25. package/examples/js/effects/AsciiEffect.js +2 -9
  26. package/examples/js/exporters/GLTFExporter.js +148 -64
  27. package/examples/js/exporters/MMDExporter.js +1 -1
  28. package/examples/js/exporters/USDZExporter.js +45 -26
  29. package/examples/js/geometries/ConvexGeometry.js +1 -1
  30. package/examples/js/geometries/TeapotGeometry.js +0 -1
  31. package/examples/js/interactive/SelectionBox.js +2 -0
  32. package/examples/js/interactive/SelectionHelper.js +22 -7
  33. package/examples/js/lights/RectAreaLightUniformsLib.js +4 -0
  34. package/examples/js/lines/LineMaterial.js +58 -20
  35. package/examples/js/lines/LineSegments2.js +29 -24
  36. package/examples/js/loaders/3DMLoader.js +24 -11
  37. package/examples/js/loaders/3MFLoader.js +2 -2
  38. package/examples/js/loaders/AMFLoader.js +0 -2
  39. package/examples/js/loaders/BasisTextureLoader.js +1 -0
  40. package/examples/js/loaders/ColladaLoader.js +61 -4
  41. package/examples/js/loaders/EXRLoader.js +201 -272
  42. package/examples/js/loaders/FBXLoader.js +4 -5
  43. package/examples/js/loaders/GLTFLoader.js +98 -35
  44. package/examples/js/loaders/HDRCubeTextureLoader.js +0 -10
  45. package/examples/js/loaders/KTX2Loader.js +23 -2
  46. package/examples/js/loaders/KTXLoader.js +1 -1
  47. package/examples/js/loaders/LDrawLoader.js +1169 -901
  48. package/examples/js/loaders/LUT3dlLoader.js +19 -10
  49. package/examples/js/loaders/LUTCubeLoader.js +5 -4
  50. package/examples/js/loaders/LWOLoader.js +8 -6
  51. package/examples/js/loaders/LogLuvLoader.js +766 -0
  52. package/examples/js/loaders/MMDLoader.js +0 -1
  53. package/examples/js/loaders/NRRDLoader.js +9 -2
  54. package/examples/js/loaders/OBJLoader.js +0 -2
  55. package/examples/js/loaders/PLYLoader.js +33 -8
  56. package/examples/js/loaders/RGBELoader.js +8 -22
  57. package/examples/js/loaders/RGBMLoader.js +56 -6
  58. package/examples/js/loaders/SVGLoader.js +12 -6
  59. package/examples/js/loaders/TDSLoader.js +237 -271
  60. package/examples/js/loaders/VOXLoader.js +1 -0
  61. package/examples/js/loaders/VRMLLoader.js +11 -22
  62. package/examples/js/loaders/lwo/LWO2Parser.js +1 -0
  63. package/examples/js/loaders/lwo/LWO3Parser.js +4 -2
  64. package/examples/js/math/ConvexHull.js +7 -13
  65. package/examples/js/math/ImprovedNoise.js +1 -1
  66. package/examples/js/misc/GPUComputationRenderer.js +3 -1
  67. package/examples/js/misc/Volume.js +2 -2
  68. package/examples/js/modifiers/CurveModifier.js +8 -7
  69. package/examples/js/modifiers/EdgeSplitModifier.js +1 -1
  70. package/examples/js/modifiers/SimplifyModifier.js +1 -1
  71. package/examples/js/objects/Lensflare.js +2 -10
  72. package/examples/js/objects/MarchingCubes.js +42 -128
  73. package/examples/js/objects/Reflector.js +8 -13
  74. package/examples/js/objects/ReflectorForSSRPass.js +0 -10
  75. package/examples/js/objects/Refractor.js +8 -13
  76. package/examples/js/objects/Sky.js +1 -1
  77. package/examples/js/objects/Water.js +3 -15
  78. package/examples/js/objects/Water2.js +4 -7
  79. package/examples/js/postprocessing/GlitchPass.js +6 -5
  80. package/examples/js/postprocessing/SMAAPass.js +2 -9
  81. package/examples/js/postprocessing/SSAOPass.js +10 -21
  82. package/examples/js/postprocessing/SavePass.js +1 -5
  83. package/examples/js/renderers/CSS2DRenderer.js +4 -4
  84. package/examples/js/renderers/CSS3DRenderer.js +4 -4
  85. package/examples/js/shaders/ConvolutionShader.js +0 -1
  86. package/examples/js/shaders/DigitalGlitch.js +3 -3
  87. package/examples/js/shaders/FXAAShader.js +1 -1
  88. package/examples/js/shaders/FilmShader.js +1 -1
  89. package/examples/js/shaders/GammaCorrectionShader.js +1 -1
  90. package/examples/js/shaders/HorizontalBlurShader.js +1 -2
  91. package/examples/js/shaders/MMDToonShader.js +0 -1
  92. package/examples/js/shaders/SSAOShader.js +1 -1
  93. package/examples/js/shaders/SSRShader.js +1 -1
  94. package/examples/js/shaders/SSRrShader.js +1 -1
  95. package/examples/js/shaders/VerticalBlurShader.js +1 -2
  96. package/examples/js/utils/GeometryUtils.js +1 -1
  97. package/examples/jsm/animation/CCDIKSolver.js +0 -1
  98. package/examples/jsm/animation/MMDPhysics.js +1 -3
  99. package/examples/jsm/cameras/CinematicCamera.js +2 -5
  100. package/examples/jsm/{WebGL.js → capabilities/WebGL.js} +2 -2
  101. package/examples/jsm/{renderers/webgpu → capabilities}/WebGPU.js +1 -1
  102. package/examples/jsm/controls/ArcballControls.js +80 -77
  103. package/examples/jsm/controls/DragControls.js +7 -0
  104. package/examples/jsm/controls/OrbitControls.js +9 -51
  105. package/examples/jsm/controls/TrackballControls.js +1 -1
  106. package/examples/jsm/controls/TransformControls.js +24 -1
  107. package/examples/jsm/csm/CSM.js +3 -3
  108. package/examples/jsm/csm/{Frustum.js → CSMFrustum.js} +3 -3
  109. package/examples/jsm/curves/CurveExtras.js +0 -2
  110. package/examples/jsm/effects/AsciiEffect.js +2 -9
  111. package/examples/jsm/exporters/GLTFExporter.js +169 -99
  112. package/examples/jsm/exporters/MMDExporter.js +1 -1
  113. package/examples/jsm/exporters/USDZExporter.js +47 -26
  114. package/examples/jsm/geometries/ConvexGeometry.js +1 -1
  115. package/examples/jsm/geometries/TeapotGeometry.js +0 -1
  116. package/examples/jsm/interactive/SelectionBox.js +1 -0
  117. package/examples/jsm/interactive/SelectionHelper.js +19 -7
  118. package/examples/jsm/libs/flow.module.js +3338 -0
  119. package/examples/jsm/libs/lil-gui.module.min.js +8 -0
  120. package/examples/jsm/libs/rhino3dm/rhino3dm.wasm +0 -0
  121. package/examples/jsm/lights/RectAreaLightUniformsLib.js +7 -0
  122. package/examples/jsm/lines/LineMaterial.js +59 -23
  123. package/examples/jsm/lines/LineSegments2.js +22 -18
  124. package/examples/jsm/loaders/3DMLoader.js +18 -12
  125. package/examples/jsm/loaders/3MFLoader.js +2 -2
  126. package/examples/jsm/loaders/AMFLoader.js +0 -2
  127. package/examples/jsm/loaders/BasisTextureLoader.js +7 -0
  128. package/examples/jsm/loaders/ColladaLoader.js +61 -4
  129. package/examples/jsm/loaders/EXRLoader.js +200 -306
  130. package/examples/jsm/loaders/FBXLoader.js +4 -5
  131. package/examples/jsm/loaders/GLTFLoader.js +102 -40
  132. package/examples/jsm/loaders/HDRCubeTextureLoader.js +1 -17
  133. package/examples/jsm/loaders/KTX2Loader.js +30 -2
  134. package/examples/jsm/loaders/KTXLoader.js +1 -1
  135. package/examples/jsm/loaders/LDrawLoader.js +1159 -898
  136. package/examples/jsm/loaders/LUT3dlLoader.js +19 -12
  137. package/examples/jsm/loaders/LUTCubeLoader.js +5 -5
  138. package/examples/jsm/loaders/LWOLoader.js +8 -6
  139. package/examples/jsm/loaders/LogLuvLoader.js +606 -0
  140. package/examples/jsm/loaders/MMDLoader.js +0 -1
  141. package/examples/jsm/loaders/NRRDLoader.js +10 -2
  142. package/examples/jsm/loaders/OBJLoader.js +0 -2
  143. package/examples/jsm/loaders/PLYLoader.js +34 -8
  144. package/examples/jsm/loaders/RGBELoader.js +7 -28
  145. package/examples/jsm/loaders/RGBMLoader.js +62 -8
  146. package/examples/jsm/loaders/SVGLoader.js +15 -7
  147. package/examples/jsm/loaders/TDSLoader.js +236 -275
  148. package/examples/jsm/loaders/VOXLoader.js +1 -0
  149. package/examples/jsm/loaders/VRMLLoader.js +11 -23
  150. package/examples/jsm/loaders/lwo/LWO2Parser.js +1 -0
  151. package/examples/jsm/loaders/lwo/LWO3Parser.js +2 -2
  152. package/examples/jsm/math/ConvexHull.js +7 -13
  153. package/examples/jsm/math/ImprovedNoise.js +1 -1
  154. package/examples/jsm/misc/GPUComputationRenderer.js +3 -1
  155. package/examples/jsm/misc/Volume.js +2 -2
  156. package/examples/jsm/modifiers/CurveModifier.js +9 -8
  157. package/examples/jsm/modifiers/EdgeSplitModifier.js +1 -1
  158. package/examples/jsm/modifiers/SimplifyModifier.js +1 -1
  159. package/examples/jsm/node-editor/NodeEditor.js +455 -0
  160. package/examples/jsm/node-editor/accessors/NormalEditor.js +30 -0
  161. package/examples/jsm/node-editor/accessors/PositionEditor.js +30 -0
  162. package/examples/jsm/node-editor/accessors/UVEditor.js +26 -0
  163. package/examples/jsm/node-editor/display/BlendEditor.js +43 -0
  164. package/examples/jsm/node-editor/examples/animate-uv.json +1 -0
  165. package/examples/jsm/node-editor/examples/fake-top-light.json +1 -0
  166. package/examples/jsm/node-editor/examples/oscillator-color.json +1 -0
  167. package/examples/jsm/node-editor/examples/rim.json +1 -0
  168. package/examples/jsm/node-editor/inputs/ColorEditor.js +91 -0
  169. package/examples/jsm/node-editor/inputs/FloatEditor.js +24 -0
  170. package/examples/jsm/node-editor/inputs/SliderEditor.js +68 -0
  171. package/examples/jsm/node-editor/inputs/Vector2Editor.js +28 -0
  172. package/examples/jsm/node-editor/inputs/Vector3Editor.js +30 -0
  173. package/examples/jsm/node-editor/inputs/Vector4Editor.js +37 -0
  174. package/examples/jsm/node-editor/materials/StandardMaterialEditor.js +108 -0
  175. package/examples/jsm/node-editor/math/DotEditor.js +36 -0
  176. package/examples/jsm/node-editor/math/InvertEditor.js +38 -0
  177. package/examples/jsm/node-editor/math/LimiterEditor.js +48 -0
  178. package/examples/jsm/node-editor/math/NormalizeEditor.js +26 -0
  179. package/examples/jsm/node-editor/math/OperatorEditor.js +50 -0
  180. package/examples/jsm/node-editor/math/PowerEditor.js +34 -0
  181. package/examples/jsm/node-editor/math/TrigonometryEditor.js +39 -0
  182. package/examples/jsm/node-editor/procedural/CheckerEditor.js +26 -0
  183. package/examples/jsm/node-editor/utils/OscillatorEditor.js +42 -0
  184. package/examples/jsm/node-editor/utils/TimerEditor.js +57 -0
  185. package/examples/jsm/nodes/core/NodeBuilder.js +2 -2
  186. package/examples/jsm/nodes/materials/StandardNodeMaterial.js +1 -1
  187. package/examples/jsm/nodes/materials/nodes/StandardNode.js +7 -6
  188. package/examples/jsm/nodes/math/MathNode.js +12 -0
  189. package/examples/jsm/nodes/misc/BumpMapNode.js +1 -1
  190. package/examples/jsm/nodes/misc/TextureCubeUVNode.js +1 -4
  191. package/examples/jsm/nodes/utils/ColorSpaceNode.js +5 -177
  192. package/examples/jsm/objects/Lensflare.js +5 -16
  193. package/examples/jsm/objects/MarchingCubes.js +46 -152
  194. package/examples/jsm/objects/Reflector.js +8 -16
  195. package/examples/jsm/objects/ReflectorForSSRPass.js +0 -12
  196. package/examples/jsm/objects/Refractor.js +8 -16
  197. package/examples/jsm/objects/Sky.js +1 -1
  198. package/examples/jsm/objects/Water.js +3 -18
  199. package/examples/jsm/objects/Water2.js +4 -8
  200. package/examples/jsm/postprocessing/AdaptiveToneMappingPass.js +1 -1
  201. package/examples/jsm/postprocessing/AfterimagePass.js +1 -1
  202. package/examples/jsm/postprocessing/BloomPass.js +1 -1
  203. package/examples/jsm/postprocessing/BokehPass.js +1 -1
  204. package/examples/jsm/postprocessing/ClearPass.js +1 -1
  205. package/examples/jsm/postprocessing/CubeTexturePass.js +1 -1
  206. package/examples/jsm/postprocessing/DotScreenPass.js +1 -1
  207. package/examples/jsm/postprocessing/EffectComposer.js +3 -3
  208. package/examples/jsm/postprocessing/FilmPass.js +1 -1
  209. package/examples/jsm/postprocessing/GlitchPass.js +10 -7
  210. package/examples/jsm/postprocessing/HalftonePass.js +1 -1
  211. package/examples/jsm/postprocessing/MaskPass.js +1 -1
  212. package/examples/jsm/postprocessing/OutlinePass.js +1 -1
  213. package/examples/jsm/postprocessing/RenderPass.js +1 -1
  214. package/examples/jsm/postprocessing/SAOPass.js +2 -2
  215. package/examples/jsm/postprocessing/SMAAPass.js +3 -12
  216. package/examples/jsm/postprocessing/SSAARenderPass.js +1 -1
  217. package/examples/jsm/postprocessing/SSAOPass.js +15 -26
  218. package/examples/jsm/postprocessing/SSRPass.js +1 -1
  219. package/examples/jsm/postprocessing/SSRrPass.js +1 -1
  220. package/examples/jsm/postprocessing/SavePass.js +2 -4
  221. package/examples/jsm/postprocessing/ShaderPass.js +1 -1
  222. package/examples/jsm/postprocessing/TAARenderPass.js +1 -1
  223. package/examples/jsm/postprocessing/TexturePass.js +1 -1
  224. package/examples/jsm/postprocessing/UnrealBloomPass.js +1 -1
  225. package/examples/jsm/renderers/CSS2DRenderer.js +5 -4
  226. package/examples/jsm/renderers/CSS3DRenderer.js +5 -4
  227. package/examples/jsm/renderers/nodes/Nodes.js +17 -13
  228. package/examples/jsm/renderers/nodes/ShaderNode.js +229 -49
  229. package/examples/jsm/renderers/nodes/accessors/MaterialNode.js +6 -6
  230. package/examples/jsm/renderers/nodes/accessors/ModelViewProjectionNode.js +5 -5
  231. package/examples/jsm/renderers/nodes/accessors/NormalNode.js +14 -3
  232. package/examples/jsm/renderers/nodes/accessors/PointUVNode.js +3 -3
  233. package/examples/jsm/renderers/nodes/accessors/PositionNode.js +15 -5
  234. package/examples/jsm/renderers/nodes/accessors/SkinningNode.js +107 -0
  235. package/examples/jsm/renderers/nodes/accessors/UVNode.js +7 -5
  236. package/examples/jsm/renderers/nodes/core/ArrayInputNode.js +3 -3
  237. package/examples/jsm/renderers/nodes/core/AttributeNode.js +6 -0
  238. package/examples/jsm/renderers/nodes/core/BypassNode.js +38 -0
  239. package/examples/jsm/renderers/nodes/core/CodeNode.js +3 -3
  240. package/examples/jsm/renderers/nodes/core/ContextNode.js +4 -19
  241. package/examples/jsm/renderers/nodes/core/ExpressionNode.js +13 -2
  242. package/examples/jsm/renderers/nodes/core/FunctionNode.js +19 -132
  243. package/examples/jsm/renderers/nodes/core/InputNode.js +13 -3
  244. package/examples/jsm/renderers/nodes/core/Node.js +32 -10
  245. package/examples/jsm/renderers/nodes/core/NodeBuilder.js +146 -128
  246. package/examples/jsm/renderers/nodes/core/NodeFunction.js +22 -0
  247. package/examples/jsm/renderers/nodes/core/NodeFunctionInput.js +4 -4
  248. package/examples/jsm/renderers/nodes/core/NodeKeywords.js +18 -179
  249. package/examples/jsm/renderers/nodes/core/NodeParser.js +11 -0
  250. package/examples/jsm/renderers/nodes/core/NodeVar.js +2 -2
  251. package/examples/jsm/renderers/nodes/core/PropertyNode.js +14 -2
  252. package/examples/jsm/renderers/nodes/core/TempNode.js +10 -13
  253. package/examples/jsm/renderers/nodes/core/VarNode.js +12 -7
  254. package/examples/jsm/renderers/nodes/core/VaryNode.js +23 -8
  255. package/examples/jsm/renderers/nodes/core/constants.js +2 -0
  256. package/examples/jsm/renderers/nodes/display/ColorSpaceNode.js +43 -63
  257. package/examples/jsm/renderers/nodes/display/NormalMapNode.js +21 -22
  258. package/examples/jsm/renderers/nodes/functions/BSDFs.js +64 -101
  259. package/examples/jsm/renderers/nodes/functions/PhysicalMaterialFunctions.js +27 -0
  260. package/examples/jsm/renderers/nodes/inputs/BufferNode.js +25 -0
  261. package/examples/jsm/renderers/nodes/inputs/IntNode.js +17 -0
  262. package/examples/jsm/renderers/nodes/inputs/TextureNode.js +13 -10
  263. package/examples/jsm/renderers/nodes/lights/LightContextNode.js +20 -14
  264. package/examples/jsm/renderers/nodes/lights/LightNode.js +32 -36
  265. package/examples/jsm/renderers/nodes/math/CondNode.js +60 -0
  266. package/examples/jsm/renderers/nodes/math/MathNode.js +91 -37
  267. package/examples/jsm/renderers/nodes/math/OperatorNode.js +124 -31
  268. package/examples/jsm/renderers/nodes/parsers/GLSLNodeFunction.js +137 -0
  269. package/examples/jsm/renderers/nodes/parsers/GLSLNodeParser.js +14 -0
  270. package/examples/jsm/renderers/nodes/parsers/WGSLNodeFunction.js +89 -0
  271. package/examples/jsm/renderers/nodes/parsers/WGSLNodeParser.js +14 -0
  272. package/examples/jsm/renderers/nodes/procedural/CheckerNode.js +7 -9
  273. package/examples/jsm/renderers/nodes/utils/ArrayElementNode.js +31 -0
  274. package/examples/jsm/renderers/nodes/utils/ConvertNode.js +33 -0
  275. package/examples/jsm/renderers/nodes/utils/JoinNode.js +7 -7
  276. package/examples/jsm/renderers/nodes/utils/OscNode.js +58 -0
  277. package/examples/jsm/renderers/nodes/utils/SplitNode.js +18 -8
  278. package/examples/jsm/renderers/nodes/utils/SpriteSheetUVNode.js +7 -7
  279. package/examples/jsm/renderers/nodes/utils/TimerNode.js +1 -1
  280. package/examples/jsm/renderers/webgl/nodes/SlotNode.js +22 -0
  281. package/examples/jsm/renderers/webgl/nodes/WebGLNodeBuilder.js +192 -95
  282. package/examples/jsm/renderers/webgl/nodes/WebGLNodes.js +2 -2
  283. package/examples/jsm/renderers/webgl/nodes/WebGLPhysicalContextNode.js +2 -2
  284. package/examples/jsm/renderers/webgpu/WebGPUBackground.js +1 -1
  285. package/examples/jsm/renderers/webgpu/WebGPUBindings.js +10 -9
  286. package/examples/jsm/renderers/webgpu/WebGPUComputePipelines.js +2 -4
  287. package/examples/jsm/renderers/webgpu/WebGPUObjects.js +1 -1
  288. package/examples/jsm/renderers/webgpu/WebGPUProgrammableStage.js +2 -4
  289. package/examples/jsm/renderers/webgpu/WebGPURenderPipeline.js +15 -23
  290. package/examples/jsm/renderers/webgpu/WebGPURenderPipelines.js +44 -65
  291. package/examples/jsm/renderers/webgpu/WebGPURenderer.js +13 -31
  292. package/examples/jsm/renderers/webgpu/WebGPUTextureUtils.js +61 -28
  293. package/examples/jsm/renderers/webgpu/WebGPUTextures.js +35 -29
  294. package/examples/jsm/renderers/webgpu/constants.js +2 -2
  295. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodeBuilder.js +459 -95
  296. package/examples/jsm/renderers/webgpu/nodes/WebGPUNodes.js +1 -1
  297. package/examples/jsm/shaders/ConvolutionShader.js +0 -1
  298. package/examples/jsm/shaders/DigitalGlitch.js +3 -3
  299. package/examples/jsm/shaders/FXAAShader.js +1 -1
  300. package/examples/jsm/shaders/FilmShader.js +1 -1
  301. package/examples/jsm/shaders/GammaCorrectionShader.js +1 -1
  302. package/examples/jsm/shaders/HorizontalBlurShader.js +1 -2
  303. package/examples/jsm/shaders/MMDToonShader.js +0 -1
  304. package/examples/jsm/shaders/SSAOShader.js +1 -1
  305. package/examples/jsm/shaders/SSRShader.js +1 -1
  306. package/examples/jsm/shaders/SSRrShader.js +1 -1
  307. package/examples/jsm/shaders/VerticalBlurShader.js +1 -2
  308. package/examples/jsm/utils/GeometryUtils.js +1 -1
  309. package/examples/jsm/utils/LDrawUtils.js +195 -0
  310. package/examples/jsm/utils/WorkerPool.js +11 -11
  311. package/examples/jsm/webxr/OculusHandPointerModel.js +6 -6
  312. package/examples/jsm/webxr/VRButton.js +24 -0
  313. package/examples/jsm/webxr/XREstimatedLight.js +2 -0
  314. package/package.json +27 -18
  315. package/src/Three.Legacy.js +18 -0
  316. package/src/Three.js +1 -3
  317. package/src/animation/AnimationMixer.js +1 -0
  318. package/src/cameras/CubeCamera.js +2 -0
  319. package/src/cameras/StereoCamera.js +8 -7
  320. package/src/constants.js +3 -23
  321. package/src/core/Layers.js +7 -1
  322. package/src/core/Object3D.js +3 -1
  323. package/src/extras/ImageUtils.js +63 -0
  324. package/src/extras/PMREMGenerator.js +49 -185
  325. package/src/extras/core/Interpolations.js +1 -1
  326. package/src/geometries/LatheGeometry.js +70 -47
  327. package/src/helpers/CameraHelper.js +1 -1
  328. package/src/loaders/FileLoader.js +98 -144
  329. package/src/loaders/ImageLoader.js +9 -4
  330. package/src/loaders/LoaderUtils.js +26 -0
  331. package/src/loaders/MaterialLoader.js +8 -5
  332. package/src/loaders/ObjectLoader.js +2 -0
  333. package/src/materials/Material.js +8 -8
  334. package/src/materials/MeshPhysicalMaterial.js +20 -14
  335. package/src/math/Color.js +1 -39
  336. package/src/math/MathUtils.js +5 -16
  337. package/src/math/Quaternion.js +1 -1
  338. package/src/math/Ray.js +2 -2
  339. package/src/math/Sphere.js +10 -1
  340. package/src/objects/Skeleton.js +1 -0
  341. package/src/renderers/WebGLCubeRenderTarget.js +0 -2
  342. package/src/renderers/WebGLMultisampleRenderTarget.js +7 -1
  343. package/src/renderers/WebGLRenderer.js +106 -199
  344. package/src/renderers/shaders/ShaderChunk/bsdfs.glsl.js +2 -2
  345. package/src/renderers/shaders/ShaderChunk/bumpmap_pars_fragment.glsl.js +1 -1
  346. package/src/renderers/shaders/ShaderChunk/cube_uv_reflection_fragment.glsl.js +2 -24
  347. package/src/renderers/shaders/ShaderChunk/emissivemap_fragment.glsl.js +0 -2
  348. package/src/renderers/shaders/ShaderChunk/encodings_pars_fragment.glsl.js +0 -78
  349. package/src/renderers/shaders/ShaderChunk/envmap_common_pars_fragment.glsl.js +0 -1
  350. package/src/renderers/shaders/ShaderChunk/envmap_fragment.glsl.js +0 -2
  351. package/src/renderers/shaders/ShaderChunk/gradientmap_pars_fragment.glsl.js +1 -1
  352. package/src/renderers/shaders/ShaderChunk/lightmap_fragment.glsl.js +1 -1
  353. package/src/renderers/shaders/ShaderChunk/lights_fragment_maps.glsl.js +1 -1
  354. package/src/renderers/shaders/ShaderChunk/lights_physical_fragment.glsl.js +19 -6
  355. package/src/renderers/shaders/ShaderChunk/lights_physical_pars_fragment.glsl.js +28 -2
  356. package/src/renderers/shaders/ShaderChunk/map_fragment.glsl.js +10 -3
  357. package/src/renderers/shaders/ShaderChunk/map_particle_fragment.glsl.js +1 -2
  358. package/src/renderers/shaders/ShaderChunk/tonemapping_pars_fragment.glsl.js +1 -1
  359. package/src/renderers/shaders/ShaderChunk/transmission_fragment.glsl.js +1 -1
  360. package/src/renderers/shaders/ShaderChunk/transmission_pars_fragment.glsl.js +9 -8
  361. package/src/renderers/shaders/ShaderLib/background.glsl.js +1 -3
  362. package/src/renderers/shaders/ShaderLib/equirect.glsl.js +1 -3
  363. package/src/renderers/shaders/ShaderLib/meshbasic.glsl.js +1 -1
  364. package/src/renderers/shaders/ShaderLib/meshmatcap.glsl.js +1 -2
  365. package/src/renderers/shaders/ShaderLib/meshphysical.glsl.js +23 -5
  366. package/src/renderers/shaders/ShaderLib/vsm.glsl.js +2 -1
  367. package/src/renderers/shaders/ShaderLib.js +8 -6
  368. package/src/renderers/shaders/UniformsLib.js +1 -2
  369. package/src/renderers/webgl/WebGLCapabilities.js +0 -2
  370. package/src/renderers/webgl/WebGLCubeMaps.js +0 -4
  371. package/src/renderers/webgl/WebGLCubeUVMaps.js +29 -16
  372. package/src/renderers/webgl/WebGLExtensions.js +1 -0
  373. package/src/renderers/webgl/WebGLMaterials.js +27 -15
  374. package/src/renderers/webgl/WebGLMorphtargets.js +13 -0
  375. package/src/renderers/webgl/WebGLProgram.js +12 -37
  376. package/src/renderers/webgl/WebGLPrograms.js +192 -70
  377. package/src/renderers/webgl/WebGLRenderLists.js +4 -14
  378. package/src/renderers/webgl/WebGLShaderCache.js +120 -0
  379. package/src/renderers/webgl/WebGLShadowMap.js +14 -5
  380. package/src/renderers/webgl/WebGLState.js +157 -17
  381. package/src/renderers/webgl/WebGLTextures.js +442 -83
  382. package/src/renderers/webgl/WebGLUniforms.js +45 -1
  383. package/src/renderers/webgl/WebGLUtils.js +86 -28
  384. package/src/renderers/webxr/WebXRManager.js +77 -109
  385. package/src/scenes/Scene.js +1 -1
  386. package/src/textures/DataTexture.js +0 -2
  387. package/src/textures/DataTexture2DArray.js +0 -2
  388. package/src/textures/DataTexture3D.js +0 -2
  389. package/src/textures/FramebufferTexture.js +25 -0
  390. package/src/textures/Texture.js +8 -1
  391. package/src/textures/VideoTexture.js +1 -3
  392. package/examples/js/WebGL.js +0 -90
  393. package/examples/js/controls/DeviceOrientationControls.js +0 -147
  394. package/examples/js/libs/dat.gui.min.js +0 -14
  395. package/examples/js/utils/RoughnessMipmapper.js +0 -278
  396. package/examples/jsm/controls/DeviceOrientationControls.js +0 -153
  397. package/examples/jsm/libs/dat.gui.module.js +0 -3575
  398. package/examples/jsm/libs/glslang.js +0 -78
  399. package/examples/jsm/libs/glslang.wasm +0 -0
  400. package/examples/jsm/renderers/nodes/consts/MathConsts.js +0 -7
  401. package/examples/jsm/renderers/nodes/core/ConstNode.js +0 -39
  402. package/examples/jsm/renderers/nodes/core/NodeSlot.js +0 -13
  403. package/examples/jsm/renderers/nodes/core/StructNode.js +0 -80
  404. package/examples/jsm/renderers/nodes/core/StructVarNode.js +0 -75
  405. package/examples/jsm/renderers/nodes/functions/EncodingFunctions.js +0 -99
  406. package/examples/jsm/renderers/nodes/functions/MathFunctions.js +0 -47
  407. package/examples/jsm/renderers/webgpu/nodes/ShaderLib.js +0 -152
  408. package/examples/jsm/utils/RoughnessMipmapper.js +0 -300
  409. package/src/extras/objects/ImmediateRenderObject.js +0 -31
@@ -6,14 +6,14 @@ import {
6
6
  LineBasicMaterial,
7
7
  Raycaster,
8
8
  Group,
9
- Object3D,
10
9
  Box3,
11
10
  Sphere,
12
11
  Quaternion,
13
12
  Vector2,
14
13
  Vector3,
15
14
  Matrix4,
16
- MathUtils
15
+ MathUtils,
16
+ EventDispatcher
17
17
  } from 'three';
18
18
 
19
19
  //trackball state
@@ -64,14 +64,19 @@ const _changeEvent = { type: 'change' };
64
64
  const _startEvent = { type: 'start' };
65
65
  const _endEvent = { type: 'end' };
66
66
 
67
+ const _raycaster = new Raycaster();
68
+ const _offset = new Vector3();
67
69
 
70
+ const _gizmoMatrixStateTemp = new Matrix4();
71
+ const _cameraMatrixStateTemp = new Matrix4();
72
+ const _scalePointTemp = new Vector3();
68
73
  /**
69
74
  *
70
75
  * @param {Camera} camera Virtual camera used in the scene
71
76
  * @param {HTMLElement} domElement Renderer's dom element
72
77
  * @param {Scene} scene The scene to be rendered
73
78
  */
74
- class ArcballControls extends Object3D {
79
+ class ArcballControls extends EventDispatcher {
75
80
 
76
81
  constructor( camera, domElement, scene = null ) {
77
82
 
@@ -79,6 +84,9 @@ class ArcballControls extends Object3D {
79
84
  this.camera = null;
80
85
  this.domElement = domElement;
81
86
  this.scene = scene;
87
+ this.target = new Vector3();
88
+ this._currentTarget = new Vector3();
89
+ this.radiusFactor = 0.67;
82
90
 
83
91
  this.mouseActions = [];
84
92
  this._mouseOp = null;
@@ -204,7 +212,6 @@ class ArcballControls extends Object3D {
204
212
  this.maxZoom = Infinity;
205
213
 
206
214
  //trackball parameters
207
- this._tbCenter = new Vector3( 0, 0, 0 );
208
215
  this._tbRadius = 1;
209
216
 
210
217
  //FSA
@@ -228,7 +235,6 @@ class ArcballControls extends Object3D {
228
235
  this.domElement.addEventListener( 'pointerdown', this.onPointerDown );
229
236
  this.domElement.addEventListener( 'pointercancel', this.onPointerCancel );
230
237
 
231
- window.addEventListener( 'keydown', this.onKeyDown );
232
238
  window.addEventListener( 'resize', this.onWindowResize );
233
239
 
234
240
  }
@@ -770,28 +776,6 @@ class ArcballControls extends Object3D {
770
776
 
771
777
  };
772
778
 
773
- onKeyDown = ( event ) => {
774
-
775
- if ( event.key == 'c' ) {
776
-
777
- if ( event.ctrlKey || event.metaKey ) {
778
-
779
- this.copyState();
780
-
781
- }
782
-
783
- } else if ( event.key == 'v' ) {
784
-
785
- if ( event.ctrlKey || event.metaKey ) {
786
-
787
- this.pasteState();
788
-
789
- }
790
-
791
- }
792
-
793
- };
794
-
795
779
  onSinglePanStart = ( event, operation ) => {
796
780
 
797
781
  if ( this.enabled ) {
@@ -1130,8 +1114,8 @@ class ArcballControls extends Object3D {
1130
1114
  this.applyTransformMatrix( this.scale( size, this._v3_2, false ) );
1131
1115
 
1132
1116
  //adjusting distance
1133
- const direction = this._gizmos.position.clone().sub( this.camera.position ).normalize().multiplyScalar( newDistance / x );
1134
- this._m4_1.makeTranslation( direction.x, direction.y, direction.z );
1117
+ _offset.copy( this._gizmos.position ).sub( this.camera.position ).normalize().multiplyScalar( newDistance / x );
1118
+ this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z );
1135
1119
 
1136
1120
  }
1137
1121
 
@@ -1540,8 +1524,8 @@ class ArcballControls extends Object3D {
1540
1524
  this.applyTransformMatrix( this.scale( size, this._v3_2, false ) );
1541
1525
 
1542
1526
  //adjusting distance
1543
- const direction = this._gizmos.position.clone().sub( this.camera.position ).normalize().multiplyScalar( newDistance / x );
1544
- this._m4_1.makeTranslation( direction.x, direction.y, direction.z );
1527
+ _offset.copy( this._gizmos.position ).sub( this.camera.position ).normalize().multiplyScalar( newDistance / x );
1528
+ this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z );
1545
1529
 
1546
1530
  this.dispatchEvent( _changeEvent );
1547
1531
 
@@ -1974,18 +1958,17 @@ class ArcballControls extends Object3D {
1974
1958
  */
1975
1959
  calculateTbRadius = ( camera ) => {
1976
1960
 
1977
- const factor = 0.67;
1978
1961
  const distance = camera.position.distanceTo( this._gizmos.position );
1979
1962
 
1980
1963
  if ( camera.type == 'PerspectiveCamera' ) {
1981
1964
 
1982
1965
  const halfFovV = MathUtils.DEG2RAD * camera.fov * 0.5; //vertical fov/2 in radians
1983
1966
  const halfFovH = Math.atan( ( camera.aspect ) * Math.tan( halfFovV ) ); //horizontal fov/2 in radians
1984
- return Math.tan( Math.min( halfFovV, halfFovH ) ) * distance * factor;
1967
+ return Math.tan( Math.min( halfFovV, halfFovH ) ) * distance * this.radiusFactor;
1985
1968
 
1986
1969
  } else if ( camera.type == 'OrthographicCamera' ) {
1987
1970
 
1988
- return Math.min( camera.top, camera.right ) * factor;
1971
+ return Math.min( camera.top, camera.right ) * this.radiusFactor;
1989
1972
 
1990
1973
  }
1991
1974
 
@@ -1999,17 +1982,15 @@ class ArcballControls extends Object3D {
1999
1982
  */
2000
1983
  focus = ( point, size, amount = 1 ) => {
2001
1984
 
2002
- const focusPoint = point.clone();
2003
-
2004
1985
  //move center of camera (along with gizmos) towards point of interest
2005
- focusPoint.sub( this._gizmos.position ).multiplyScalar( amount );
2006
- this._translationMatrix.makeTranslation( focusPoint.x, focusPoint.y, focusPoint.z );
1986
+ _offset.copy( point ).sub( this._gizmos.position ).multiplyScalar( amount );
1987
+ this._translationMatrix.makeTranslation( _offset.x, _offset.y, _offset.z );
2007
1988
 
2008
- const gizmoStateTemp = this._gizmoMatrixState.clone();
1989
+ _gizmoMatrixStateTemp.copy( this._gizmoMatrixState );
2009
1990
  this._gizmoMatrixState.premultiply( this._translationMatrix );
2010
1991
  this._gizmoMatrixState.decompose( this._gizmos.position, this._gizmos.quaternion, this._gizmos.scale );
2011
1992
 
2012
- const cameraStateTemp = this._cameraMatrixState.clone();
1993
+ _cameraMatrixStateTemp.copy( this._cameraMatrixState );
2013
1994
  this._cameraMatrixState.premultiply( this._translationMatrix );
2014
1995
  this._cameraMatrixState.decompose( this.camera.position, this.camera.quaternion, this.camera.scale );
2015
1996
 
@@ -2020,8 +2001,8 @@ class ArcballControls extends Object3D {
2020
2001
 
2021
2002
  }
2022
2003
 
2023
- this._gizmoMatrixState.copy( gizmoStateTemp );
2024
- this._cameraMatrixState.copy( cameraStateTemp );
2004
+ this._gizmoMatrixState.copy( _gizmoMatrixStateTemp );
2005
+ this._cameraMatrixState.copy( _cameraMatrixStateTemp );
2025
2006
 
2026
2007
  };
2027
2008
 
@@ -2097,9 +2078,8 @@ class ArcballControls extends Object3D {
2097
2078
  window.removeEventListener( 'pointerup', this.onPointerUp );
2098
2079
 
2099
2080
  window.removeEventListener( 'resize', this.onWindowResize );
2100
- window.addEventListener( 'keydown', this.onKeyDown );
2101
2081
 
2102
- this.scene.remove( this._gizmos );
2082
+ if ( this.scene !== null ) this.scene.remove( this._gizmos );
2103
2083
  this.disposeGrid();
2104
2084
 
2105
2085
  };
@@ -2193,7 +2173,7 @@ class ArcballControls extends Object3D {
2193
2173
  */
2194
2174
  setCamera = ( camera ) => {
2195
2175
 
2196
- camera.lookAt( this._tbCenter );
2176
+ camera.lookAt( this.target );
2197
2177
  camera.updateMatrix();
2198
2178
 
2199
2179
  //setting state
@@ -2211,11 +2191,11 @@ class ArcballControls extends Object3D {
2211
2191
  this._zoomState = this._zoom0;
2212
2192
 
2213
2193
  this._initialNear = camera.near;
2214
- this._nearPos0 = camera.position.distanceTo( this._tbCenter ) - camera.near;
2194
+ this._nearPos0 = camera.position.distanceTo( this.target ) - camera.near;
2215
2195
  this._nearPos = this._initialNear;
2216
2196
 
2217
2197
  this._initialFar = camera.far;
2218
- this._farPos0 = camera.position.distanceTo( this._tbCenter ) - camera.far;
2198
+ this._farPos0 = camera.position.distanceTo( this.target ) - camera.far;
2219
2199
  this._farPos = this._initialFar;
2220
2200
 
2221
2201
  this._up0.copy( camera.up );
@@ -2226,7 +2206,7 @@ class ArcballControls extends Object3D {
2226
2206
 
2227
2207
  //making gizmos
2228
2208
  this._tbRadius = this.calculateTbRadius( camera );
2229
- this.makeGizmos( this._tbCenter, this._tbRadius );
2209
+ this.makeGizmos( this.target, this._tbRadius );
2230
2210
 
2231
2211
  };
2232
2212
 
@@ -2241,6 +2221,30 @@ class ArcballControls extends Object3D {
2241
2221
 
2242
2222
  }
2243
2223
 
2224
+ /**
2225
+ * Set gizmos radius factor and redraws gizmos
2226
+ * @param {Float} value Value of radius factor
2227
+ */
2228
+ setTbRadius( value ) {
2229
+
2230
+ this.radiusFactor = value;
2231
+ this._tbRadius = this.calculateTbRadius( this.camera );
2232
+
2233
+ const curve = new EllipseCurve( 0, 0, this._tbRadius, this._tbRadius );
2234
+ const points = curve.getPoints( this._curvePts );
2235
+ const curveGeometry = new BufferGeometry().setFromPoints( points );
2236
+
2237
+
2238
+ for ( const gizmo in this._gizmos.children ) {
2239
+
2240
+ this._gizmos.children[ gizmo ].geometry = curveGeometry;
2241
+
2242
+ }
2243
+
2244
+ this.dispatchEvent( _changeEvent );
2245
+
2246
+ }
2247
+
2244
2248
  /**
2245
2249
  * Creates the rotation gizmos matching trackball center and radius
2246
2250
  * @param {Vector3} tbCenter The trackball center
@@ -2598,7 +2602,7 @@ class ArcballControls extends Object3D {
2598
2602
  */
2599
2603
  scale = ( size, point, scaleGizmos = true ) => {
2600
2604
 
2601
- const scalePoint = point.clone();
2605
+ _scalePointTemp.copy( point );
2602
2606
  let sizeInverse = 1 / size;
2603
2607
 
2604
2608
  if ( this.camera.isOrthographicCamera ) {
@@ -2633,12 +2637,12 @@ class ArcballControls extends Object3D {
2633
2637
 
2634
2638
 
2635
2639
  //move camera and gizmos to obtain pinch effect
2636
- scalePoint.sub( this._v3_1 );
2640
+ _scalePointTemp.sub( this._v3_1 );
2637
2641
 
2638
- const amount = scalePoint.clone().multiplyScalar( sizeInverse );
2639
- scalePoint.sub( amount );
2642
+ const amount = _scalePointTemp.clone().multiplyScalar( sizeInverse );
2643
+ _scalePointTemp.sub( amount );
2640
2644
 
2641
- this._m4_1.makeTranslation( scalePoint.x, scalePoint.y, scalePoint.z );
2645
+ this._m4_1.makeTranslation( _scalePointTemp.x, _scalePointTemp.y, _scalePointTemp.z );
2642
2646
  this._m4_2.premultiply( this._m4_1 );
2643
2647
 
2644
2648
  this.setTransformationMatrices( this._m4_1, this._m4_2 );
@@ -2650,7 +2654,7 @@ class ArcballControls extends Object3D {
2650
2654
  this._v3_2.setFromMatrixPosition( this._gizmoMatrixState );
2651
2655
 
2652
2656
  //move camera
2653
- let distance = this._v3_1.distanceTo( scalePoint );
2657
+ let distance = this._v3_1.distanceTo( _scalePointTemp );
2654
2658
  let amount = distance - ( distance * sizeInverse );
2655
2659
 
2656
2660
  //check min and max distance
@@ -2667,9 +2671,9 @@ class ArcballControls extends Object3D {
2667
2671
 
2668
2672
  }
2669
2673
 
2670
- let direction = scalePoint.clone().sub( this._v3_1 ).normalize().multiplyScalar( amount );
2674
+ _offset.copy( _scalePointTemp ).sub( this._v3_1 ).normalize().multiplyScalar( amount );
2671
2675
 
2672
- this._m4_1.makeTranslation( direction.x, direction.y, direction.z );
2676
+ this._m4_1.makeTranslation( _offset.x, _offset.y, _offset.z );
2673
2677
 
2674
2678
 
2675
2679
  if ( scaleGizmos ) {
@@ -2677,14 +2681,14 @@ class ArcballControls extends Object3D {
2677
2681
  //scale gizmos so they appear in the same spot having the same dimension
2678
2682
  const pos = this._v3_2;
2679
2683
 
2680
- distance = pos.distanceTo( scalePoint );
2684
+ distance = pos.distanceTo( _scalePointTemp );
2681
2685
  amount = distance - ( distance * sizeInverse );
2682
- direction = scalePoint.clone().sub( this._v3_2 ).normalize().multiplyScalar( amount );
2686
+ _offset.copy( _scalePointTemp ).sub( this._v3_2 ).normalize().multiplyScalar( amount );
2683
2687
 
2684
2688
  this._translationMatrix.makeTranslation( pos.x, pos.y, pos.z );
2685
2689
  this._scaleMatrix.makeScale( sizeInverse, sizeInverse, sizeInverse );
2686
2690
 
2687
- this._m4_2.makeTranslation( direction.x, direction.y, direction.z ).multiply( this._translationMatrix );
2691
+ this._m4_2.makeTranslation( _offset.x, _offset.y, _offset.z ).multiply( this._translationMatrix );
2688
2692
  this._m4_2.multiply( this._scaleMatrix );
2689
2693
 
2690
2694
  this._translationMatrix.makeTranslation( - pos.x, - pos.y, - pos.z );
@@ -2720,23 +2724,6 @@ class ArcballControls extends Object3D {
2720
2724
 
2721
2725
  };
2722
2726
 
2723
- /**
2724
- * Set the trackball's center point
2725
- * @param {Number} x X coordinate
2726
- * @param {Number} y Y coordinate
2727
- * @param {Number} z Z coordinate
2728
- */
2729
- setTarget = ( x, y, z ) => {
2730
-
2731
- this._tbCenter.set( x, y, z );
2732
- this._gizmos.position.set( x, y, z ); //for correct radius calculation
2733
- this._tbRadius = this.calculateTbRadius( this.camera );
2734
-
2735
- this.makeGizmos( this._tbCenter, this._tbRadius );
2736
- this.camera.lookAt( this._tbCenter );
2737
-
2738
- };
2739
-
2740
2727
  /**
2741
2728
  * Set values in transformation object
2742
2729
  * @param {Matrix4} camera Transformation to be applied to the camera
@@ -2809,6 +2796,13 @@ class ArcballControls extends Object3D {
2809
2796
  };
2810
2797
 
2811
2798
 
2799
+ getRaycaster() {
2800
+
2801
+ return _raycaster;
2802
+
2803
+ }
2804
+
2805
+
2812
2806
  /**
2813
2807
  * Unproject the cursor on the 3D object surface
2814
2808
  * @param {Vector2} cursor Cursor coordinates in NDC
@@ -2817,7 +2811,7 @@ class ArcballControls extends Object3D {
2817
2811
  */
2818
2812
  unprojectOnObj = ( cursor, camera ) => {
2819
2813
 
2820
- const raycaster = new Raycaster();
2814
+ const raycaster = this.getRaycaster();
2821
2815
  raycaster.near = camera.near;
2822
2816
  raycaster.far = camera.far;
2823
2817
  raycaster.setFromCamera( cursor, camera );
@@ -3091,6 +3085,15 @@ class ArcballControls extends Object3D {
3091
3085
 
3092
3086
  const EPS = 0.000001;
3093
3087
 
3088
+ if ( this.target.equals( this._currentTarget ) === false ) {
3089
+
3090
+ this._gizmos.position.copy( this.target ); //for correct radius calculation
3091
+ this._tbRadius = this.calculateTbRadius( this.camera );
3092
+ this.makeGizmos( this.target, this._tbRadius );
3093
+ this._currentTarget.copy( this.target );
3094
+
3095
+ }
3096
+
3094
3097
  //check min/max parameters
3095
3098
  if ( this.camera.isOrthographicCamera ) {
3096
3099
 
@@ -64,6 +64,12 @@ class DragControls extends EventDispatcher {
64
64
 
65
65
  }
66
66
 
67
+ function getRaycaster() {
68
+
69
+ return _raycaster;
70
+
71
+ }
72
+
67
73
  function onPointerMove( event ) {
68
74
 
69
75
  if ( scope.enabled === false ) return;
@@ -205,6 +211,7 @@ class DragControls extends EventDispatcher {
205
211
  this.deactivate = deactivate;
206
212
  this.dispose = dispose;
207
213
  this.getObjects = getObjects;
214
+ this.getRaycaster = getRaycaster;
208
215
 
209
216
  }
210
217
 
@@ -581,12 +581,6 @@ class OrbitControls extends EventDispatcher {
581
581
 
582
582
  }
583
583
 
584
- function handleMouseUp( /*event*/ ) {
585
-
586
- // no-op
587
-
588
- }
589
-
590
584
  function handleMouseWheel( event ) {
591
585
 
592
586
  if ( event.deltaY < 0 ) {
@@ -793,12 +787,6 @@ class OrbitControls extends EventDispatcher {
793
787
 
794
788
  }
795
789
 
796
- function handleTouchEnd( /*event*/ ) {
797
-
798
- // no-op
799
-
800
- }
801
-
802
790
  //
803
791
  // event handlers - FSM: listen for events and reset state
804
792
  //
@@ -850,30 +838,20 @@ class OrbitControls extends EventDispatcher {
850
838
 
851
839
  function onPointerUp( event ) {
852
840
 
853
- if ( scope.enabled === false ) return;
841
+ removePointer( event );
854
842
 
855
- if ( event.pointerType === 'touch' ) {
843
+ if ( pointers.length === 0 ) {
856
844
 
857
- onTouchEnd();
845
+ scope.domElement.releasePointerCapture( event.pointerId );
858
846
 
859
- } else {
860
-
861
- onMouseUp( event );
847
+ scope.domElement.removeEventListener( 'pointermove', onPointerMove );
848
+ scope.domElement.removeEventListener( 'pointerup', onPointerUp );
862
849
 
863
- }
864
-
865
- removePointer( event );
866
-
867
- //
868
-
869
- if ( pointers.length === 0 ) {
850
+ }
870
851
 
871
- scope.domElement.releasePointerCapture( event.pointerId );
852
+ scope.dispatchEvent( _endEvent );
872
853
 
873
- scope.domElement.removeEventListener( 'pointermove', onPointerMove );
874
- scope.domElement.removeEventListener( 'pointerup', onPointerUp );
875
-
876
- }
854
+ state = STATE.NONE;
877
855
 
878
856
  }
879
857
 
@@ -1014,19 +992,9 @@ class OrbitControls extends EventDispatcher {
1014
992
 
1015
993
  }
1016
994
 
1017
- function onMouseUp( event ) {
1018
-
1019
- handleMouseUp( event );
1020
-
1021
- scope.dispatchEvent( _endEvent );
1022
-
1023
- state = STATE.NONE;
1024
-
1025
- }
1026
-
1027
995
  function onMouseWheel( event ) {
1028
996
 
1029
- if ( scope.enabled === false || scope.enableZoom === false || ( state !== STATE.NONE && state !== STATE.ROTATE ) ) return;
997
+ if ( scope.enabled === false || scope.enableZoom === false || state !== STATE.NONE ) return;
1030
998
 
1031
999
  event.preventDefault();
1032
1000
 
@@ -1184,16 +1152,6 @@ class OrbitControls extends EventDispatcher {
1184
1152
 
1185
1153
  }
1186
1154
 
1187
- function onTouchEnd( event ) {
1188
-
1189
- handleTouchEnd( event );
1190
-
1191
- scope.dispatchEvent( _endEvent );
1192
-
1193
- state = STATE.NONE;
1194
-
1195
- }
1196
-
1197
1155
  function onContextMenu( event ) {
1198
1156
 
1199
1157
  if ( scope.enabled === false ) return;
@@ -208,7 +208,7 @@ class TrackballControls extends EventDispatcher {
208
208
 
209
209
  } else if ( scope.object.isOrthographicCamera ) {
210
210
 
211
- scope.object.zoom *= factor;
211
+ scope.object.zoom /= factor;
212
212
  scope.object.updateProjectionMatrix();
213
213
 
214
214
  } else {
@@ -564,6 +564,25 @@ class TransformControls extends Object3D {
564
564
 
565
565
  }
566
566
 
567
+ reset() {
568
+
569
+ if ( ! this.enabled ) return;
570
+
571
+ if ( this.dragging ) {
572
+
573
+ this.object.position.copy( this._positionStart );
574
+ this.object.quaternion.copy( this._quaternionStart );
575
+ this.object.scale.copy( this._scaleStart );
576
+
577
+ this.dispatchEvent( _changeEvent );
578
+ this.dispatchEvent( _objectChangeEvent );
579
+
580
+ this.pointStart.copy( this.pointEnd );
581
+
582
+ }
583
+
584
+ }
585
+
567
586
  getRaycaster() {
568
587
 
569
588
  return _raycaster;
@@ -669,7 +688,11 @@ function onPointerDown( event ) {
669
688
 
670
689
  if ( ! this.enabled ) return;
671
690
 
672
- this.domElement.setPointerCapture( event.pointerId );
691
+ if ( ! document.pointerLockElement ) {
692
+
693
+ this.domElement.setPointerCapture( event.pointerId );
694
+
695
+ }
673
696
 
674
697
  this.domElement.addEventListener( 'pointermove', this._onPointerMove );
675
698
 
@@ -7,11 +7,11 @@ import {
7
7
  Matrix4,
8
8
  Box3
9
9
  } from 'three';
10
- import { Frustum } from './Frustum.js';
10
+ import { CSMFrustum } from './CSMFrustum.js';
11
11
  import { CSMShader } from './CSMShader.js';
12
12
 
13
13
  const _cameraToLightMatrix = new Matrix4();
14
- const _lightSpaceFrustum = new Frustum();
14
+ const _lightSpaceFrustum = new CSMFrustum();
15
15
  const _center = new Vector3();
16
16
  const _bbox = new Box3();
17
17
  const _uniformArray = [];
@@ -37,7 +37,7 @@ export class CSM {
37
37
  this.lightMargin = data.lightMargin || 200;
38
38
  this.customSplitsCallback = data.customSplitsCallback;
39
39
  this.fade = false;
40
- this.mainFrustum = new Frustum();
40
+ this.mainFrustum = new CSMFrustum();
41
41
  this.frustums = [];
42
42
  this.breaks = [];
43
43
 
@@ -2,7 +2,7 @@ import { Vector3, Matrix4 } from 'three';
2
2
 
3
3
  const inverseProjectionMatrix = new Matrix4();
4
4
 
5
- class Frustum {
5
+ class CSMFrustum {
6
6
 
7
7
  constructor( data ) {
8
8
 
@@ -81,7 +81,7 @@ class Frustum {
81
81
 
82
82
  while ( breaks.length > target.length ) {
83
83
 
84
- target.push( new Frustum() );
84
+ target.push( new CSMFrustum() );
85
85
 
86
86
  }
87
87
 
@@ -149,4 +149,4 @@ class Frustum {
149
149
 
150
150
  }
151
151
 
152
- export { Frustum };
152
+ export { CSMFrustum };
@@ -8,9 +8,7 @@ import {
8
8
  *
9
9
  * Formulas collected from various sources
10
10
  * http://mathworld.wolfram.com/HeartCurve.html
11
- * http://mathdl.maa.org/images/upload_library/23/stemkoski/knots/page6.html
12
11
  * http://en.wikipedia.org/wiki/Viviani%27s_curve
13
- * http://mathdl.maa.org/images/upload_library/23/stemkoski/knots/page4.html
14
12
  * http://www.mi.sanu.ac.rs/vismath/taylorapril2011/Taylor.pdf
15
13
  * https://prideout.net/blog/old/blog/index.html@p=44.html
16
14
  */
@@ -1,6 +1,5 @@
1
1
  /**
2
- * Ascii generation is based on http://www.nihilogic.dk/labs/jsascii/
3
- * Maybe more about this later with a blog post at http://lab4games.net/zz85/blog
2
+ * Ascii generation is based on https://github.com/hassadee/jsascii/blob/master/jsascii.js
4
3
  *
5
4
  * 16 April 2012 - @blurspline
6
5
  */
@@ -57,13 +56,7 @@ class AsciiEffect {
57
56
  this.domElement = domElement;
58
57
 
59
58
 
60
- // Throw in ascii library from http://www.nihilogic.dk/labs/jsascii/jsascii.js
61
-
62
- /*
63
- * jsAscii 0.1
64
- * Copyright (c) 2008 Jacob Seidelin, jseidelin@nihilogic.dk, http://blog.nihilogic.dk/
65
- * MIT License [http://www.nihilogic.dk/licenses/mit-license.txt]
66
- */
59
+ // Throw in ascii library from https://github.com/hassadee/jsascii/blob/master/jsascii.js (MIT License)
67
60
 
68
61
  function initAsciiSize() {
69
62