three-stdlib 2.35.6 → 2.35.8

Sign up to get free protection for your applications and to get access to all the features.
Files changed (511) hide show
  1. package/_polyfill/constants.d.cts +1 -0
  2. package/_polyfill/uv1.d.cts +5 -0
  3. package/animation/AnimationClipCreator.d.cts +12 -0
  4. package/animation/AnimationClipCreator.d.ts +1 -1
  5. package/animation/CCDIKSolver.d.cts +30 -0
  6. package/animation/CCDIKSolver.d.ts +1 -1
  7. package/animation/MMDAnimationHelper.d.cts +93 -0
  8. package/animation/MMDAnimationHelper.d.ts +3 -3
  9. package/animation/MMDPhysics.d.cts +119 -0
  10. package/animation/MMDPhysics.d.ts +1 -1
  11. package/cameras/CinematicCamera.d.cts +34 -0
  12. package/cameras/CinematicCamera.d.ts +2 -2
  13. package/controls/ArcballControls.d.cts +376 -0
  14. package/controls/ArcballControls.d.ts +4 -4
  15. package/controls/DeviceOrientationControls.d.cts +29 -0
  16. package/controls/DeviceOrientationControls.d.ts +4 -4
  17. package/controls/DragControls.d.cts +67 -0
  18. package/controls/DragControls.d.ts +3 -3
  19. package/controls/EventDispatcher.d.cts +41 -0
  20. package/controls/FirstPersonControls.d.cts +49 -0
  21. package/controls/FirstPersonControls.d.ts +2 -2
  22. package/controls/FlyControls.d.cts +39 -0
  23. package/controls/FlyControls.d.ts +3 -3
  24. package/controls/OrbitControls.d.cts +74 -0
  25. package/controls/OrbitControls.d.ts +4 -4
  26. package/controls/PointerLockControls.d.cts +39 -0
  27. package/controls/PointerLockControls.d.ts +3 -3
  28. package/controls/StandardControlsEventMap.d.cts +14 -0
  29. package/controls/TrackballControls.d.cts +97 -0
  30. package/controls/TrackballControls.d.ts +4 -4
  31. package/controls/TransformControls.d.cts +151 -0
  32. package/controls/TransformControls.d.ts +2 -2
  33. package/controls/experimental/CameraControls.d.cts +213 -0
  34. package/controls/experimental/CameraControls.d.ts +3 -3
  35. package/csm/CSM.d.cts +61 -0
  36. package/csm/CSM.d.ts +2 -2
  37. package/csm/CSMFrustum.d.cts +19 -0
  38. package/csm/CSMFrustum.d.ts +1 -1
  39. package/csm/CSMHelper.d.cts +26 -0
  40. package/csm/CSMHelper.d.ts +2 -2
  41. package/csm/CSMShader.d.cts +4 -0
  42. package/curves/CurveExtras.d.cts +68 -0
  43. package/curves/CurveExtras.d.ts +1 -1
  44. package/curves/NURBSCurve.d.cts +11 -0
  45. package/curves/NURBSCurve.d.ts +1 -1
  46. package/curves/NURBSSurface.d.cts +13 -0
  47. package/curves/NURBSSurface.d.ts +1 -1
  48. package/curves/NURBSUtils.d.cts +20 -0
  49. package/curves/NURBSUtils.d.ts +1 -1
  50. package/deprecated/Geometry.d.cts +341 -0
  51. package/deprecated/Geometry.d.ts +1 -1
  52. package/effects/AnaglyphEffect.d.cts +11 -0
  53. package/effects/AnaglyphEffect.d.ts +1 -1
  54. package/effects/AsciiEffect.d.cts +18 -0
  55. package/effects/AsciiEffect.d.ts +1 -1
  56. package/effects/OutlineEffect.d.cts +28 -0
  57. package/effects/OutlineEffect.d.ts +1 -1
  58. package/effects/ParallaxBarrierEffect.d.cts +8 -0
  59. package/effects/ParallaxBarrierEffect.d.ts +1 -1
  60. package/effects/PeppersGhostEffect.d.cts +10 -0
  61. package/effects/PeppersGhostEffect.d.ts +1 -1
  62. package/effects/StereoEffect.d.cts +9 -0
  63. package/effects/StereoEffect.d.ts +1 -1
  64. package/environments/RoomEnvironment.d.cts +6 -0
  65. package/environments/RoomEnvironment.d.ts +2 -2
  66. package/exporters/ColladaExporter.d.cts +50 -0
  67. package/exporters/ColladaExporter.d.ts +2 -2
  68. package/exporters/DRACOExporter.d.cts +36 -0
  69. package/exporters/DRACOExporter.d.ts +2 -2
  70. package/exporters/GLTFExporter.d.cts +114 -0
  71. package/exporters/GLTFExporter.d.ts +1 -1
  72. package/exporters/MMDExporter.d.cts +12 -0
  73. package/exporters/MMDExporter.d.ts +2 -2
  74. package/exporters/OBJExporter.d.cts +18 -0
  75. package/exporters/OBJExporter.d.ts +2 -2
  76. package/exporters/PLYExporter.d.cts +23 -0
  77. package/exporters/PLYExporter.d.ts +2 -2
  78. package/exporters/STLExporter.d.cts +28 -0
  79. package/exporters/STLExporter.d.ts +1 -1
  80. package/exporters/USDZExporter.d.cts +27 -0
  81. package/exporters/USDZExporter.d.ts +2 -2
  82. package/geometries/BoxLineGeometry.d.cts +12 -0
  83. package/geometries/BoxLineGeometry.d.ts +1 -1
  84. package/geometries/ConvexGeometry.d.cts +5 -0
  85. package/geometries/ConvexGeometry.d.ts +1 -1
  86. package/geometries/DecalGeometry.d.cts +10 -0
  87. package/geometries/DecalGeometry.d.ts +1 -1
  88. package/geometries/LightningStrike.d.cts +108 -0
  89. package/geometries/LightningStrike.d.ts +1 -1
  90. package/geometries/ParametricGeometries.d.cts +26 -0
  91. package/geometries/ParametricGeometries.d.ts +2 -2
  92. package/geometries/ParametricGeometry.d.cts +18 -0
  93. package/geometries/ParametricGeometry.d.ts +2 -2
  94. package/geometries/RoundedBoxGeometry.d.cts +5 -0
  95. package/geometries/RoundedBoxGeometry.d.ts +1 -1
  96. package/geometries/TeapotGeometry.d.cts +13 -0
  97. package/geometries/TeapotGeometry.d.ts +1 -1
  98. package/geometries/TextGeometry.d.cts +18 -0
  99. package/geometries/TextGeometry.d.ts +3 -3
  100. package/helpers/LightProbeHelper.d.cts +10 -0
  101. package/helpers/LightProbeHelper.d.ts +1 -1
  102. package/helpers/PositionalAudioHelper.d.cts +13 -0
  103. package/helpers/PositionalAudioHelper.d.ts +1 -1
  104. package/helpers/RaycasterHelper.d.cts +33 -0
  105. package/helpers/RaycasterHelper.d.ts +2 -2
  106. package/helpers/RectAreaLightHelper.d.cts +11 -0
  107. package/helpers/RectAreaLightHelper.d.ts +1 -1
  108. package/helpers/VertexNormalsHelper.d.cts +13 -0
  109. package/helpers/VertexNormalsHelper.d.ts +1 -1
  110. package/helpers/VertexTangentsHelper.d.cts +13 -0
  111. package/helpers/VertexTangentsHelper.d.ts +1 -1
  112. package/index.d.cts +262 -0
  113. package/index.d.ts +262 -262
  114. package/interactive/HTMLMesh.d.cts +6 -0
  115. package/interactive/HTMLMesh.d.ts +1 -1
  116. package/interactive/InteractiveGroup.d.cts +5 -0
  117. package/interactive/InteractiveGroup.d.ts +1 -1
  118. package/interactive/SelectionBox.d.cts +15 -0
  119. package/interactive/SelectionBox.d.ts +1 -1
  120. package/interactive/SelectionHelper.d.cts +17 -0
  121. package/interactive/SelectionHelper.d.ts +2 -2
  122. package/libs/MeshoptDecoder.d.cts +12 -0
  123. package/libs/MeshoptDecoder.d.ts +1 -1
  124. package/libs/MotionControllers.d.cts +176 -0
  125. package/libs/MotionControllers.d.ts +1 -1
  126. package/libs/zstddec.d.cts +8 -0
  127. package/lights/LightProbeGenerator.d.cts +6 -0
  128. package/lights/LightProbeGenerator.d.ts +1 -1
  129. package/lights/RectAreaLightUniformsLib.d.cts +3 -0
  130. package/lines/Line2.d.cts +11 -0
  131. package/lines/Line2.d.ts +3 -3
  132. package/lines/LineGeometry.d.cts +10 -0
  133. package/lines/LineGeometry.d.ts +2 -2
  134. package/lines/LineMaterial.d.cts +31 -0
  135. package/lines/LineMaterial.d.ts +1 -1
  136. package/lines/LineSegments2.d.cts +14 -0
  137. package/lines/LineSegments2.d.ts +3 -3
  138. package/lines/LineSegmentsGeometry.d.cts +16 -0
  139. package/lines/LineSegmentsGeometry.d.ts +1 -1
  140. package/lines/Wireframe.d.cts +11 -0
  141. package/lines/Wireframe.d.ts +3 -3
  142. package/lines/WireframeGeometry2.d.cts +8 -0
  143. package/lines/WireframeGeometry2.d.ts +2 -2
  144. package/loaders/3DMLoader.d.cts +17 -0
  145. package/loaders/3DMLoader.d.ts +1 -1
  146. package/loaders/3MFLoader.d.cts +16 -0
  147. package/loaders/3MFLoader.d.ts +1 -1
  148. package/loaders/AMFLoader.d.cts +14 -0
  149. package/loaders/AMFLoader.d.ts +1 -1
  150. package/loaders/AssimpLoader.d.cts +19 -0
  151. package/loaders/AssimpLoader.d.ts +1 -1
  152. package/loaders/BVHLoader.d.cts +21 -0
  153. package/loaders/BVHLoader.d.ts +1 -1
  154. package/loaders/BasisTextureLoader.d.cts +32 -0
  155. package/loaders/BasisTextureLoader.d.ts +1 -1
  156. package/loaders/ColladaLoader.d.cts +20 -0
  157. package/loaders/ColladaLoader.d.ts +1 -1
  158. package/loaders/DDSLoader.d.cts +16 -0
  159. package/loaders/DDSLoader.d.ts +1 -1
  160. package/loaders/DRACOLoader.d.cts +18 -0
  161. package/loaders/DRACOLoader.d.ts +1 -1
  162. package/loaders/EXRLoader.d.cts +18 -0
  163. package/loaders/EXRLoader.d.ts +1 -1
  164. package/loaders/FBXLoader.d.cts +14 -0
  165. package/loaders/FBXLoader.d.ts +1 -1
  166. package/loaders/FontLoader.d.cts +37 -0
  167. package/loaders/FontLoader.d.ts +1 -1
  168. package/loaders/GCodeLoader.d.cts +15 -0
  169. package/loaders/GCodeLoader.d.ts +1 -1
  170. package/loaders/GLTFLoader.d.cts +155 -0
  171. package/loaders/GLTFLoader.d.ts +3 -3
  172. package/loaders/HDRCubeTextureLoader.d.cts +18 -0
  173. package/loaders/HDRCubeTextureLoader.d.ts +2 -2
  174. package/loaders/KMZLoader.d.cts +16 -0
  175. package/loaders/KMZLoader.d.ts +2 -2
  176. package/loaders/KTX2Loader.d.cts +10 -0
  177. package/loaders/KTX2Loader.d.ts +1 -1
  178. package/loaders/KTXLoader.d.cts +16 -0
  179. package/loaders/KTXLoader.d.ts +1 -1
  180. package/loaders/LDrawLoader.d.cts +26 -0
  181. package/loaders/LDrawLoader.d.ts +1 -1
  182. package/loaders/LUT3dlLoader.d.cts +20 -0
  183. package/loaders/LUT3dlLoader.d.ts +1 -1
  184. package/loaders/LUTCubeLoader.d.cts +23 -0
  185. package/loaders/LUTCubeLoader.d.ts +1 -1
  186. package/loaders/LWOLoader.d.cts +26 -0
  187. package/loaders/LWOLoader.d.ts +1 -1
  188. package/loaders/LottieLoader.d.cts +15 -0
  189. package/loaders/LottieLoader.d.ts +1 -1
  190. package/loaders/MD2Loader.d.cts +14 -0
  191. package/loaders/MD2Loader.d.ts +1 -1
  192. package/loaders/MDDLoader.d.cts +19 -0
  193. package/loaders/MDDLoader.d.ts +1 -1
  194. package/loaders/MMDLoader.d.cts +63 -0
  195. package/loaders/MMDLoader.d.ts +1 -1
  196. package/loaders/MTLLoader.d.cts +100 -0
  197. package/loaders/MTLLoader.d.ts +1 -1
  198. package/loaders/NRRDLoader.d.cts +22 -0
  199. package/loaders/NRRDLoader.d.ts +2 -2
  200. package/loaders/OBJLoader.d.cts +17 -0
  201. package/loaders/OBJLoader.d.ts +2 -2
  202. package/loaders/PCDLoader.d.cts +15 -0
  203. package/loaders/PCDLoader.d.ts +1 -1
  204. package/loaders/PDBLoader.d.cts +22 -0
  205. package/loaders/PDBLoader.d.ts +1 -1
  206. package/loaders/PLYLoader.d.cts +16 -0
  207. package/loaders/PLYLoader.d.ts +1 -1
  208. package/loaders/PRWMLoader.d.cts +16 -0
  209. package/loaders/PRWMLoader.d.ts +1 -1
  210. package/loaders/PVRLoader.d.cts +16 -0
  211. package/loaders/PVRLoader.d.ts +1 -1
  212. package/loaders/RGBELoader.d.cts +20 -0
  213. package/loaders/RGBELoader.d.ts +1 -1
  214. package/loaders/RGBMLoader.d.cts +32 -0
  215. package/loaders/RGBMLoader.d.ts +1 -1
  216. package/loaders/STLLoader.d.cts +14 -0
  217. package/loaders/STLLoader.d.ts +1 -1
  218. package/loaders/SVGLoader.d.cts +63 -0
  219. package/loaders/SVGLoader.d.ts +1 -1
  220. package/loaders/TDSLoader.d.cts +42 -0
  221. package/loaders/TDSLoader.d.ts +1 -1
  222. package/loaders/TGALoader.d.cts +14 -0
  223. package/loaders/TGALoader.d.ts +1 -1
  224. package/loaders/TTFLoader.d.cts +15 -0
  225. package/loaders/TTFLoader.d.ts +1 -1
  226. package/loaders/TiltLoader.d.cts +14 -0
  227. package/loaders/TiltLoader.d.ts +1 -1
  228. package/loaders/VOXLoader.d.cts +29 -0
  229. package/loaders/VOXLoader.d.ts +1 -1
  230. package/loaders/VRMLLoader.d.cts +14 -0
  231. package/loaders/VRMLLoader.d.ts +1 -1
  232. package/loaders/VRMLoader.d.cts +19 -0
  233. package/loaders/VRMLoader.d.ts +3 -3
  234. package/loaders/VTKLoader.d.cts +14 -0
  235. package/loaders/VTKLoader.d.ts +1 -1
  236. package/loaders/XLoader.d.cts +19 -0
  237. package/loaders/XLoader.d.ts +1 -1
  238. package/loaders/XYZLoader.d.cts +14 -0
  239. package/loaders/XYZLoader.d.ts +1 -1
  240. package/math/Capsule.d.cts +27 -0
  241. package/math/Capsule.d.ts +1 -1
  242. package/math/ColorConverter.d.cts +21 -0
  243. package/math/ColorConverter.d.ts +1 -1
  244. package/math/ConvexHull.d.cts +89 -0
  245. package/math/ConvexHull.d.ts +1 -1
  246. package/math/ImprovedNoise.d.cts +4 -0
  247. package/math/Lut.d.cts +27 -0
  248. package/math/Lut.d.ts +1 -1
  249. package/math/MeshSurfaceSampler.d.cts +18 -0
  250. package/math/MeshSurfaceSampler.d.ts +1 -1
  251. package/math/OBB.d.cts +24 -0
  252. package/math/OBB.d.ts +1 -1
  253. package/math/Octree.d.cts +24 -0
  254. package/math/Octree.d.ts +2 -2
  255. package/math/SimplexNoise.d.cts +21 -0
  256. package/misc/ConvexObjectBreaker.d.cts +25 -0
  257. package/misc/ConvexObjectBreaker.d.ts +1 -1
  258. package/misc/GPUComputationRenderer.d.cts +53 -0
  259. package/misc/GPUComputationRenderer.d.ts +1 -1
  260. package/misc/Gyroscope.d.cts +5 -0
  261. package/misc/Gyroscope.d.ts +1 -1
  262. package/misc/MD2Character.d.cts +33 -0
  263. package/misc/MD2Character.d.ts +1 -1
  264. package/misc/MD2CharacterComplex.d.cts +47 -0
  265. package/misc/MD2CharacterComplex.d.ts +1 -1
  266. package/misc/MorphAnimMesh.d.cts +13 -0
  267. package/misc/MorphAnimMesh.d.ts +1 -1
  268. package/misc/MorphBlendMesh.d.cts +21 -0
  269. package/misc/MorphBlendMesh.d.ts +1 -1
  270. package/misc/ProgressiveLightmap.d.cts +60 -0
  271. package/misc/ProgressiveLightmap.d.ts +1 -1
  272. package/misc/RollerCoaster.d.cts +21 -0
  273. package/misc/RollerCoaster.d.ts +1 -1
  274. package/misc/Timer.d.cts +27 -0
  275. package/misc/Timer.d.ts +1 -1
  276. package/misc/TubePainter.d.cts +10 -0
  277. package/misc/TubePainter.d.ts +1 -1
  278. package/misc/Volume.d.cts +37 -0
  279. package/misc/Volume.d.ts +2 -2
  280. package/misc/VolumeSlice.d.cts +28 -0
  281. package/misc/VolumeSlice.d.ts +2 -2
  282. package/misc/WebGL.d.cts +5 -0
  283. package/modifiers/CurveModifier.d.cts +91 -0
  284. package/modifiers/CurveModifier.d.ts +1 -1
  285. package/modifiers/EdgeSplitModifier.d.cts +19 -0
  286. package/modifiers/EdgeSplitModifier.d.ts +2 -2
  287. package/modifiers/SimplifyModifier.d.cts +19 -0
  288. package/modifiers/SimplifyModifier.d.ts +2 -2
  289. package/modifiers/TessellateModifier.d.cts +11 -0
  290. package/modifiers/TessellateModifier.d.ts +2 -2
  291. package/objects/BatchedMesh.d.cts +48 -0
  292. package/objects/BatchedMesh.d.ts +2 -2
  293. package/objects/GroundProjectedEnv.d.cts +12 -0
  294. package/objects/GroundProjectedEnv.d.ts +1 -1
  295. package/objects/Lensflare.cjs +10 -8
  296. package/objects/Lensflare.cjs.map +1 -1
  297. package/objects/Lensflare.d.cts +17 -0
  298. package/objects/Lensflare.d.ts +1 -1
  299. package/objects/Lensflare.js +11 -9
  300. package/objects/Lensflare.js.map +1 -1
  301. package/objects/LightningStorm.d.cts +32 -0
  302. package/objects/LightningStorm.d.ts +2 -2
  303. package/objects/MarchingCubes.d.cts +76 -0
  304. package/objects/MarchingCubes.d.ts +1 -1
  305. package/objects/Reflector.d.cts +23 -0
  306. package/objects/Reflector.d.ts +2 -2
  307. package/objects/ReflectorForSSRPass.d.cts +48 -0
  308. package/objects/ReflectorForSSRPass.d.ts +1 -1
  309. package/objects/ReflectorRTT.d.cts +6 -0
  310. package/objects/ReflectorRTT.d.ts +3 -3
  311. package/objects/Refractor.d.cts +23 -0
  312. package/objects/Refractor.d.ts +2 -2
  313. package/objects/ShadowMesh.d.cts +10 -0
  314. package/objects/ShadowMesh.d.ts +1 -1
  315. package/objects/Sky.d.cts +18 -0
  316. package/objects/Sky.d.ts +2 -2
  317. package/objects/Water.d.cts +22 -0
  318. package/objects/Water.d.ts +1 -1
  319. package/objects/Water2.d.cts +23 -0
  320. package/objects/Water2.d.ts +2 -2
  321. package/package.json +11 -5
  322. package/physics/AmmoPhysics.d.cts +7 -0
  323. package/physics/AmmoPhysics.d.ts +1 -1
  324. package/postprocessing/AdaptiveToneMappingPass.d.cts +29 -0
  325. package/postprocessing/AdaptiveToneMappingPass.d.ts +2 -2
  326. package/postprocessing/AfterimagePass.d.cts +15 -0
  327. package/postprocessing/AfterimagePass.d.ts +3 -3
  328. package/postprocessing/BloomPass.d.cts +29 -0
  329. package/postprocessing/BloomPass.d.ts +4 -4
  330. package/postprocessing/BokehPass.d.cts +26 -0
  331. package/postprocessing/BokehPass.d.ts +3 -3
  332. package/postprocessing/ClearPass.d.cts +10 -0
  333. package/postprocessing/ClearPass.d.ts +3 -3
  334. package/postprocessing/CubeTexturePass.d.cts +14 -0
  335. package/postprocessing/CubeTexturePass.d.ts +2 -2
  336. package/postprocessing/DotScreenPass.d.cts +11 -0
  337. package/postprocessing/DotScreenPass.d.ts +4 -4
  338. package/postprocessing/EffectComposer.d.cts +28 -0
  339. package/postprocessing/EffectComposer.d.ts +3 -3
  340. package/postprocessing/FilmPass.d.cts +11 -0
  341. package/postprocessing/FilmPass.d.ts +4 -4
  342. package/postprocessing/GlitchPass.d.cts +16 -0
  343. package/postprocessing/GlitchPass.d.ts +4 -4
  344. package/postprocessing/HalftonePass.d.cts +26 -0
  345. package/postprocessing/HalftonePass.d.ts +3 -3
  346. package/postprocessing/LUTPass.d.cts +13 -0
  347. package/postprocessing/LUTPass.d.ts +2 -2
  348. package/postprocessing/MaskPass.d.cts +14 -0
  349. package/postprocessing/MaskPass.d.ts +3 -3
  350. package/postprocessing/OutlinePass.d.cts +53 -0
  351. package/postprocessing/OutlinePass.d.ts +3 -3
  352. package/postprocessing/Pass.d.cts +21 -0
  353. package/postprocessing/Pass.d.ts +2 -2
  354. package/postprocessing/RenderPass.d.cts +14 -0
  355. package/postprocessing/RenderPass.d.ts +3 -3
  356. package/postprocessing/RenderPixelatedPass.d.cts +34 -0
  357. package/postprocessing/RenderPixelatedPass.d.ts +2 -2
  358. package/postprocessing/SAOPass.d.cts +78 -0
  359. package/postprocessing/SAOPass.d.ts +2 -2
  360. package/postprocessing/SMAAPass.d.cts +21 -0
  361. package/postprocessing/SMAAPass.d.ts +2 -2
  362. package/postprocessing/SSAARenderPass.d.cts +17 -0
  363. package/postprocessing/SSAARenderPass.d.ts +2 -2
  364. package/postprocessing/SSAOPass.d.cts +70 -0
  365. package/postprocessing/SSAOPass.d.ts +2 -2
  366. package/postprocessing/SSRPass.d.cts +123 -0
  367. package/postprocessing/SSRPass.d.ts +3 -3
  368. package/postprocessing/SavePass.d.cts +12 -0
  369. package/postprocessing/SavePass.d.ts +2 -2
  370. package/postprocessing/ShaderPass.d.cts +13 -0
  371. package/postprocessing/ShaderPass.d.ts +4 -4
  372. package/postprocessing/TAARenderPass.d.cts +8 -0
  373. package/postprocessing/TAARenderPass.d.ts +2 -2
  374. package/postprocessing/TexturePass.d.cts +12 -0
  375. package/postprocessing/TexturePass.d.ts +2 -2
  376. package/postprocessing/UnrealBloomPass.d.cts +31 -0
  377. package/postprocessing/UnrealBloomPass.d.ts +2 -2
  378. package/postprocessing/WaterPass.d.cts +35 -0
  379. package/postprocessing/WaterPass.d.ts +3 -3
  380. package/renderers/CSS2DRenderer.d.cts +23 -0
  381. package/renderers/CSS2DRenderer.d.ts +1 -1
  382. package/renderers/CSS3DRenderer.d.cts +26 -0
  383. package/renderers/CSS3DRenderer.d.ts +1 -1
  384. package/renderers/Projector.d.cts +60 -0
  385. package/renderers/Projector.d.ts +1 -1
  386. package/renderers/SVGRenderer.d.cts +25 -0
  387. package/renderers/SVGRenderer.d.ts +1 -1
  388. package/shaders/ACESFilmicToneMappingShader.d.cts +16 -0
  389. package/shaders/ACESFilmicToneMappingShader.d.ts +1 -1
  390. package/shaders/AfterimageShader.d.cts +15 -0
  391. package/shaders/AfterimageShader.d.ts +1 -1
  392. package/shaders/BasicShader.d.cts +8 -0
  393. package/shaders/BasicShader.d.ts +1 -1
  394. package/shaders/BleachBypassShader.d.cts +14 -0
  395. package/shaders/BleachBypassShader.d.ts +1 -1
  396. package/shaders/BlendShader.d.cts +21 -0
  397. package/shaders/BokehShader.d.cts +24 -0
  398. package/shaders/BokehShader.d.ts +1 -1
  399. package/shaders/BokehShader2.d.cts +50 -0
  400. package/shaders/BokehShader2.d.ts +1 -1
  401. package/shaders/BrightnessContrastShader.d.cts +21 -0
  402. package/shaders/ColorCorrectionShader.d.cts +22 -0
  403. package/shaders/ColorCorrectionShader.d.ts +1 -1
  404. package/shaders/ColorifyShader.d.cts +16 -0
  405. package/shaders/ColorifyShader.d.ts +1 -1
  406. package/shaders/ConvolutionShader.d.cts +21 -0
  407. package/shaders/ConvolutionShader.d.ts +2 -2
  408. package/shaders/CopyShader.d.cts +12 -0
  409. package/shaders/CopyShader.d.ts +1 -1
  410. package/shaders/DOFMipMapShader.d.cts +23 -0
  411. package/shaders/DepthLimitedBlurShader.d.cts +28 -0
  412. package/shaders/DepthLimitedBlurShader.d.ts +2 -2
  413. package/shaders/DigitalGlitch.d.cts +39 -0
  414. package/shaders/DotScreenShader.d.cts +27 -0
  415. package/shaders/DotScreenShader.d.ts +1 -1
  416. package/shaders/FXAAShader.d.cts +19 -0
  417. package/shaders/FXAAShader.d.ts +1 -1
  418. package/shaders/FilmShader.d.cts +43 -0
  419. package/shaders/FocusShader.d.cts +26 -0
  420. package/shaders/FreiChenShader.d.cts +19 -0
  421. package/shaders/FreiChenShader.d.ts +1 -1
  422. package/shaders/FresnelShader.d.cts +24 -0
  423. package/shaders/GammaCorrectionShader.d.cts +12 -0
  424. package/shaders/GammaCorrectionShader.d.ts +1 -1
  425. package/shaders/GodRaysShader.d.cts +97 -0
  426. package/shaders/GodRaysShader.d.ts +1 -1
  427. package/shaders/HalftoneShader.d.cts +51 -0
  428. package/shaders/HorizontalBlurShader.d.cts +18 -0
  429. package/shaders/HorizontalBlurShader.d.ts +1 -1
  430. package/shaders/HorizontalTiltShiftShader.d.cts +23 -0
  431. package/shaders/HueSaturationShader.d.cts +21 -0
  432. package/shaders/KaleidoShader.d.cts +24 -0
  433. package/shaders/LuminosityHighPassShader.d.cts +27 -0
  434. package/shaders/LuminosityHighPassShader.d.ts +1 -1
  435. package/shaders/LuminosityShader.d.cts +13 -0
  436. package/shaders/MirrorShader.d.cts +18 -0
  437. package/shaders/NormalMapShader.d.cts +23 -0
  438. package/shaders/NormalMapShader.d.ts +1 -1
  439. package/shaders/ParallaxShader.d.cts +28 -0
  440. package/shaders/PixelShader.d.cts +18 -0
  441. package/shaders/RGBShiftShader.d.cts +24 -0
  442. package/shaders/SAOShader.d.cts +25 -0
  443. package/shaders/SAOShader.d.ts +2 -2
  444. package/shaders/SMAAShader.d.cts +60 -0
  445. package/shaders/SMAAShader.d.ts +1 -1
  446. package/shaders/SSAOShader.d.cts +86 -0
  447. package/shaders/SSAOShader.d.ts +1 -1
  448. package/shaders/SSRShader.d.cts +94 -0
  449. package/shaders/SSRShader.d.ts +1 -1
  450. package/shaders/SepiaShader.d.cts +17 -0
  451. package/shaders/SobelOperatorShader.d.cts +19 -0
  452. package/shaders/SobelOperatorShader.d.ts +1 -1
  453. package/shaders/SubsurfaceScatteringShader.d.cts +5 -0
  454. package/shaders/TechnicolorShader.d.cts +15 -0
  455. package/shaders/ToneMapShader.d.cts +27 -0
  456. package/shaders/ToonShader.d.cts +108 -0
  457. package/shaders/ToonShader.d.ts +1 -1
  458. package/shaders/TriangleBlurShader.d.cts +22 -0
  459. package/shaders/TriangleBlurShader.d.ts +1 -1
  460. package/shaders/UnpackDepthRGBAShader.d.cts +16 -0
  461. package/shaders/VerticalBlurShader.d.cts +18 -0
  462. package/shaders/VerticalBlurShader.d.ts +1 -1
  463. package/shaders/VerticalTiltShiftShader.d.cts +23 -0
  464. package/shaders/VignetteShader.d.cts +20 -0
  465. package/shaders/VolumeShader.d.cts +30 -0
  466. package/shaders/VolumeShader.d.ts +1 -1
  467. package/shaders/WaterRefractionShader.d.cts +21 -0
  468. package/shaders/types.d.cts +13 -0
  469. package/textures/FlakesTexture.d.cts +4 -0
  470. package/textures/FlakesTexture.d.ts +1 -1
  471. package/types/helpers.d.cts +1 -0
  472. package/types/shared.d.cts +9 -0
  473. package/types/utils.d.cts +3 -0
  474. package/utils/BufferGeometryUtils.d.cts +63 -0
  475. package/utils/BufferGeometryUtils.d.ts +1 -1
  476. package/utils/GeometryCompressionUtils.d.cts +7 -0
  477. package/utils/GeometryCompressionUtils.d.ts +1 -1
  478. package/utils/GeometryUtils.d.cts +6 -0
  479. package/utils/GeometryUtils.d.ts +1 -1
  480. package/utils/LDrawUtils.d.cts +5 -0
  481. package/utils/LDrawUtils.d.ts +1 -1
  482. package/utils/RoughnessMipmapper.d.cts +8 -0
  483. package/utils/RoughnessMipmapper.d.ts +1 -1
  484. package/utils/SceneUtils.d.cts +9 -0
  485. package/utils/SceneUtils.d.ts +2 -2
  486. package/utils/ShadowMapViewer.d.cts +24 -0
  487. package/utils/ShadowMapViewer.d.ts +1 -1
  488. package/utils/SkeletonUtils.d.cts +14 -0
  489. package/utils/SkeletonUtils.d.ts +1 -1
  490. package/utils/UVsDebug.d.cts +3 -0
  491. package/utils/UVsDebug.d.ts +1 -1
  492. package/webxr/ARButton.d.cts +6 -0
  493. package/webxr/ARButton.d.ts +2 -2
  494. package/webxr/OculusHandModel.d.cts +23 -0
  495. package/webxr/OculusHandModel.d.ts +3 -3
  496. package/webxr/OculusHandPointerModel.d.cts +65 -0
  497. package/webxr/OculusHandPointerModel.d.ts +1 -1
  498. package/webxr/Text2D.d.cts +3 -0
  499. package/webxr/Text2D.d.ts +1 -1
  500. package/webxr/VRButton.d.cts +11 -0
  501. package/webxr/VRButton.d.ts +2 -2
  502. package/webxr/XRControllerModelFactory.d.cts +23 -0
  503. package/webxr/XRControllerModelFactory.d.ts +4 -4
  504. package/webxr/XREstimatedLight.d.cts +33 -0
  505. package/webxr/XREstimatedLight.d.ts +1 -1
  506. package/webxr/XRHandMeshModel.d.cts +9 -0
  507. package/webxr/XRHandMeshModel.d.ts +2 -2
  508. package/webxr/XRHandModelFactory.d.cts +25 -0
  509. package/webxr/XRHandModelFactory.d.ts +3 -3
  510. package/webxr/XRHandPrimitiveModel.d.cts +24 -0
  511. package/webxr/XRHandPrimitiveModel.d.ts +2 -2
@@ -0,0 +1,60 @@
1
+ import type {
2
+ Camera,
3
+ Material,
4
+ Mesh,
5
+ MeshBasicMaterial,
6
+ MeshPhongMaterial,
7
+ Object3D,
8
+ PlaneGeometry,
9
+ Texture,
10
+ Vector3,
11
+ WebGLRenderer,
12
+ Scene,
13
+ WebGLRenderTarget,
14
+ } from 'three'
15
+
16
+ export interface UVBoxes {
17
+ w: number
18
+ h: number
19
+ index: number
20
+ }
21
+
22
+ export interface LightMapContainers {
23
+ basicMat: Material | Material[]
24
+ object: Object3D
25
+ }
26
+
27
+ export class ProgressiveLightMap {
28
+ renderer: WebGLRenderer
29
+ res: number
30
+ lightMapContainers: LightMapContainers[]
31
+ compiled: boolean
32
+ scene: Scene
33
+ tinyTarget: WebGLRenderTarget
34
+ buffer1Active: boolean
35
+ firstUpdate: boolean
36
+ warned: boolean
37
+
38
+ progressiveLightMap1: WebGLRenderTarget
39
+ progressiveLightMap2: WebGLRenderTarget
40
+
41
+ uvMat: MeshPhongMaterial
42
+
43
+ uv_boxes: UVBoxes[]
44
+
45
+ blurringPlane: Mesh<PlaneGeometry, MeshBasicMaterial>
46
+
47
+ labelMaterial: MeshBasicMaterial
48
+ labelPlane: PlaneGeometry
49
+ labelMesh: Mesh<PlaneGeometry, MeshBasicMaterial>
50
+
51
+ constructor(renderer: WebGLRenderer, res?: number)
52
+
53
+ addObjectsToLightMap(objects: Object3D[]): void
54
+
55
+ update(camera: Camera, blendWindow?: number, blurEdges?: boolean): void
56
+
57
+ showDebugLightmap(visible: boolean, position?: Vector3): void
58
+
59
+ private _initializeBlurPlane(res: number, lightMap?: Texture | null): void
60
+ }
@@ -1,4 +1,4 @@
1
- import {
1
+ import type {
2
2
  Camera,
3
3
  Material,
4
4
  Mesh,
@@ -0,0 +1,21 @@
1
+ import type { BufferGeometry, Curve, Mesh, Vector3 } from 'three'
2
+
3
+ export class RollerCoasterGeometry extends BufferGeometry {
4
+ constructor(curve: Curve<Vector3>, divisions: number)
5
+ }
6
+
7
+ export class RollerCoasterLiftersGeometry extends BufferGeometry {
8
+ constructor(curve: Curve<Vector3>, divisions: number)
9
+ }
10
+
11
+ export class RollerCoasterShadowGeometry extends BufferGeometry {
12
+ constructor(curve: Curve<Vector3>, divisions: number)
13
+ }
14
+
15
+ export class SkyGeometry extends BufferGeometry {
16
+ constructor(curve: Curve<Vector3>, divisions: number)
17
+ }
18
+
19
+ export class TreesGeometry extends BufferGeometry {
20
+ constructor(landscape: Mesh)
21
+ }
@@ -1,4 +1,4 @@
1
- import { BufferGeometry, Curve, Mesh, Vector3 } from 'three'
1
+ import type { BufferGeometry, Curve, Mesh, Vector3 } from 'three'
2
2
 
3
3
  export class RollerCoasterGeometry extends BufferGeometry {
4
4
  constructor(curve: Curve<Vector3>, divisions: number)
@@ -0,0 +1,27 @@
1
+ declare class Timer {
2
+ private _previousTime;
3
+ private _currentTime;
4
+ private _delta;
5
+ private _elapsed;
6
+ private _timescale;
7
+ private _useFixedDelta;
8
+ private _fixedDelta;
9
+ private _usePageVisibilityAPI;
10
+ private _pageVisibilityHandler;
11
+ constructor();
12
+ connect(): this;
13
+ dispose(): this;
14
+ disableFixedDelta(): this;
15
+ enableFixedDelta(): this;
16
+ getDelta(): number;
17
+ getElapsedTime(): number;
18
+ getFixedDelta(): number;
19
+ getTimescale(): number;
20
+ reset(): this;
21
+ setFixedDelta(fixedDelta: number): this;
22
+ setTimescale(timescale: number): this;
23
+ update(): this;
24
+ get elapsedTime(): number;
25
+ private _now;
26
+ }
27
+ export { type Timer };
package/misc/Timer.d.ts CHANGED
@@ -24,4 +24,4 @@ declare class Timer {
24
24
  get elapsedTime(): number;
25
25
  private _now;
26
26
  }
27
- export { Timer };
27
+ export { type Timer };
@@ -0,0 +1,10 @@
1
+ import type { Matrix4, Mesh, Vector3 } from 'three'
2
+
3
+ export class TubePainter {
4
+ constructor()
5
+
6
+ mesh: Mesh
7
+
8
+ stroke(position1: Vector3, position2: Vector3, matrix1: Matrix4, matrix2: Matrix4): void
9
+ updateGeometry(start: number, end: number): void
10
+ }
@@ -1,4 +1,4 @@
1
- import { Matrix4, Mesh, Vector3 } from 'three'
1
+ import type { Matrix4, Mesh, Vector3 } from 'three'
2
2
 
3
3
  export class TubePainter {
4
4
  constructor()
@@ -0,0 +1,37 @@
1
+ import type { Matrix3 } from 'three'
2
+
3
+ import type { VolumeSlice } from './VolumeSlice.d.cts'
4
+
5
+ export class Volume {
6
+ constructor(xLength?: number, yLength?: number, zLength?: number, type?: string, arrayBuffer?: ArrayLike<number>)
7
+
8
+ xLength: number
9
+ yLength: number
10
+ zLength: number
11
+
12
+ axisOrder: Array<'x' | 'y' | 'z'>
13
+
14
+ data: ArrayLike<number>
15
+
16
+ spacing: number[]
17
+ offset: number[]
18
+
19
+ matrix: Matrix3
20
+
21
+ lowerThreshold: number
22
+ upperThreshold: number
23
+
24
+ sliceList: VolumeSlice[]
25
+
26
+ getData(i: number, j: number, k: number): number
27
+ access(i: number, j: number, k: number): number
28
+ reverseAccess(index: number): number[]
29
+
30
+ map(functionToMap: () => void, context: this): this
31
+
32
+ extractPerpendicularPlane(axis: string, RASIndex: number): object
33
+ extractSlice(axis: string, index: number): VolumeSlice
34
+
35
+ repaintAllSlices(): this
36
+ computeMinMax(): number[]
37
+ }
package/misc/Volume.d.ts CHANGED
@@ -1,6 +1,6 @@
1
- import { Matrix3 } from 'three'
1
+ import type { Matrix3 } from 'three'
2
2
 
3
- import { VolumeSlice } from './VolumeSlice'
3
+ import type { VolumeSlice } from './VolumeSlice.d.ts'
4
4
 
5
5
  export class Volume {
6
6
  constructor(xLength?: number, yLength?: number, zLength?: number, type?: string, arrayBuffer?: ArrayLike<number>)
@@ -0,0 +1,28 @@
1
+ import type { Matrix3, Mesh } from 'three'
2
+
3
+ import type { Volume } from './Volume.d.cts'
4
+
5
+ export class VolumeSlice {
6
+ constructor(volume: Volume, index?: number, axis?: string)
7
+
8
+ index: number
9
+ axis: string
10
+
11
+ canvas: HTMLCanvasElement
12
+ canvasBuffer: HTMLCanvasElement
13
+
14
+ ctx: CanvasRenderingContext2D
15
+ ctxBuffer: CanvasRenderingContext2D
16
+
17
+ mesh: Mesh
18
+
19
+ geometryNeedsUpdate: boolean
20
+
21
+ sliceAccess: number
22
+ jLength: number
23
+ iLength: number
24
+ matrix: Matrix3
25
+
26
+ repaint(): void
27
+ updateGeometry(): void
28
+ }
@@ -1,6 +1,6 @@
1
- import { Matrix3, Mesh } from 'three'
1
+ import type { Matrix3, Mesh } from 'three'
2
2
 
3
- import { Volume } from './Volume'
3
+ import type { Volume } from './Volume.d.ts'
4
4
 
5
5
  export class VolumeSlice {
6
6
  constructor(volume: Volume, index?: number, axis?: string)
@@ -0,0 +1,5 @@
1
+ export declare function isWebGLAvailable(): boolean;
2
+ export declare function isWebGL2Available(): boolean;
3
+ export declare function getWebGLErrorMessage(): HTMLDivElement;
4
+ export declare function getWebGL2ErrorMessage(): HTMLDivElement;
5
+ export declare function getErrorMessage(version: 1 | 2): HTMLDivElement;
@@ -0,0 +1,91 @@
1
+ import type { DataTexture, Mesh, InstancedMesh, Material, Curve, BufferGeometry } from 'three';
2
+ import type { IUniform } from 'three';
3
+ /**
4
+ * Make a new DataTexture to store the descriptions of the curves.
5
+ *
6
+ * @param { number } numberOfCurves the number of curves needed to be described by this texture.
7
+ */
8
+ export declare const initSplineTexture: (numberOfCurves?: number) => DataTexture;
9
+ /**
10
+ * Write the curve description to the data texture
11
+ *
12
+ * @param { DataTexture } texture The DataTexture to write to
13
+ * @param { Curve } splineCurve The curve to describe
14
+ * @param { number } offset Which curve slot to write to
15
+ */
16
+ export declare const updateSplineTexture: <TCurve extends Curve<any>>(texture: DataTexture, splineCurve: TCurve, offset?: number) => void;
17
+ export interface INumericUniform extends IUniform {
18
+ type: 'f' | 'i';
19
+ value: number;
20
+ }
21
+ export type CurveModifierUniforms = {
22
+ spineTexture: IUniform<DataTexture>;
23
+ pathOffset: INumericUniform;
24
+ pathSegment: INumericUniform;
25
+ spineOffset: INumericUniform;
26
+ spineLength: INumericUniform;
27
+ flow: INumericUniform;
28
+ };
29
+ /**
30
+ * Create a new set of uniforms for describing the curve modifier
31
+ *
32
+ * @param { DataTexture } Texture which holds the curve description
33
+ */
34
+ export declare const getUniforms: (splineTexture: DataTexture) => CurveModifierUniforms;
35
+ export type ModifiedMaterial<TMaterial extends Material> = TMaterial & {
36
+ __ok: boolean;
37
+ };
38
+ export declare function modifyShader<TMaterial extends Material = Material>(material: ModifiedMaterial<TMaterial>, uniforms: CurveModifierUniforms, numberOfCurves?: number): void;
39
+ /**
40
+ * A helper class for making meshes bend aroudn curves
41
+ */
42
+ export declare class Flow<TMesh extends Mesh = Mesh> {
43
+ curveArray: Curve<any>[];
44
+ curveLengthArray: number[];
45
+ object3D: TMesh;
46
+ splineTexure: DataTexture;
47
+ uniforms: CurveModifierUniforms;
48
+ /**
49
+ * @param {Mesh} mesh The mesh to clone and modify to bend around the curve
50
+ * @param {number} numberOfCurves The amount of space that should preallocated for additional curves
51
+ */
52
+ constructor(mesh: TMesh, numberOfCurves?: number);
53
+ updateCurve<TCurve extends Curve<any>>(index: number, curve: TCurve): void;
54
+ moveAlongCurve(amount: number): void;
55
+ }
56
+ /**
57
+ * A helper class for creating instanced versions of flow, where the instances are placed on the curve.
58
+ */
59
+ export declare class InstancedFlow<TGeometry extends BufferGeometry = BufferGeometry, TMaterial extends Material = Material> extends Flow<InstancedMesh<TGeometry, TMaterial>> {
60
+ offsets: number[];
61
+ whichCurve: number[];
62
+ /**
63
+ *
64
+ * @param {number} count The number of instanced elements
65
+ * @param {number} curveCount The number of curves to preallocate for
66
+ * @param {Geometry} geometry The geometry to use for the instanced mesh
67
+ * @param {Material} material The material to use for the instanced mesh
68
+ */
69
+ constructor(count: number, curveCount: number, geometry: TGeometry, material: TMaterial);
70
+ /**
71
+ * The extra information about which curve and curve position is stored in the translation components of the matrix for the instanced objects
72
+ * This writes that information to the matrix and marks it as needing update.
73
+ *
74
+ * @param {number} index of the instanced element to update
75
+ */
76
+ private writeChanges;
77
+ /**
78
+ * Move an individual element along the curve by a specific amount
79
+ *
80
+ * @param {number} index Which element to update
81
+ * @param {number} offset Move by how much
82
+ */
83
+ moveIndividualAlongCurve(index: number, offset: number): void;
84
+ /**
85
+ * Select which curve to use for an element
86
+ *
87
+ * @param {number} index the index of the instanced element to update
88
+ * @param {number} curveNo the index of the curve it should use
89
+ */
90
+ setCurve(index: number, curveNo: number): void;
91
+ }
@@ -1,4 +1,4 @@
1
- import { DataTexture, Mesh, InstancedMesh, Material, Curve, BufferGeometry } from 'three';
1
+ import type { DataTexture, Mesh, InstancedMesh, Material, Curve, BufferGeometry } from 'three';
2
2
  import type { IUniform } from 'three';
3
3
  /**
4
4
  * Make a new DataTexture to store the descriptions of the curves.
@@ -0,0 +1,19 @@
1
+ import type { BufferGeometry } from 'three';
2
+ declare class EdgeSplitModifier {
3
+ private A;
4
+ private B;
5
+ private C;
6
+ private positions;
7
+ private normals;
8
+ private indexes;
9
+ private pointToIndexMap;
10
+ private splitIndexes;
11
+ private oldNormals;
12
+ constructor();
13
+ private computeNormals;
14
+ private mapPositionsToIndexes;
15
+ private edgeSplitToGroups;
16
+ private edgeSplit;
17
+ modify: (geometry: BufferGeometry, cutOffAngle: number, tryKeepNormals?: boolean) => BufferGeometry;
18
+ }
19
+ export { type EdgeSplitModifier };
@@ -1,4 +1,4 @@
1
- import { BufferGeometry } from 'three';
1
+ import type { BufferGeometry } from 'three';
2
2
  declare class EdgeSplitModifier {
3
3
  private A;
4
4
  private B;
@@ -16,4 +16,4 @@ declare class EdgeSplitModifier {
16
16
  private edgeSplit;
17
17
  modify: (geometry: BufferGeometry, cutOffAngle: number, tryKeepNormals?: boolean) => BufferGeometry;
18
18
  }
19
- export { EdgeSplitModifier };
19
+ export { type EdgeSplitModifier };
@@ -0,0 +1,19 @@
1
+ import type { BufferGeometry } from 'three';
2
+ /**
3
+ * Simplification Geometry Modifier
4
+ * - based on code and technique
5
+ * - by Stan Melax in 1998
6
+ * - Progressive Mesh type Polygon Reduction Algorithm
7
+ * - http://www.melax.com/polychop/
8
+ */
9
+ declare class SimplifyModifier {
10
+ constructor();
11
+ private computeEdgeCollapseCost;
12
+ private removeVertex;
13
+ private computeEdgeCostAtVertex;
14
+ private removeFace;
15
+ private collapse;
16
+ private minimumCostEdge;
17
+ modify: (geometry: BufferGeometry, count: number) => BufferGeometry;
18
+ }
19
+ export { type SimplifyModifier };
@@ -1,4 +1,4 @@
1
- import { BufferGeometry } from 'three';
1
+ import type { BufferGeometry } from 'three';
2
2
  /**
3
3
  * Simplification Geometry Modifier
4
4
  * - based on code and technique
@@ -16,4 +16,4 @@ declare class SimplifyModifier {
16
16
  private minimumCostEdge;
17
17
  modify: (geometry: BufferGeometry, count: number) => BufferGeometry;
18
18
  }
19
- export { SimplifyModifier };
19
+ export { type SimplifyModifier };
@@ -0,0 +1,11 @@
1
+ import type { BufferGeometry } from 'three';
2
+ /**
3
+ * Break faces with edges longer than maxEdgeLength
4
+ */
5
+ declare class TessellateModifier {
6
+ maxEdgeLength: number;
7
+ maxIterations: number;
8
+ constructor(maxEdgeLength?: number, maxIterations?: number);
9
+ modify: (geometry: BufferGeometry) => BufferGeometry;
10
+ }
11
+ export { type TessellateModifier };
@@ -1,4 +1,4 @@
1
- import { BufferGeometry } from 'three';
1
+ import type { BufferGeometry } from 'three';
2
2
  /**
3
3
  * Break faces with edges longer than maxEdgeLength
4
4
  */
@@ -8,4 +8,4 @@ declare class TessellateModifier {
8
8
  constructor(maxEdgeLength?: number, maxIterations?: number);
9
9
  modify: (geometry: BufferGeometry) => BufferGeometry;
10
10
  }
11
- export { TessellateModifier };
11
+ export { type TessellateModifier };
@@ -0,0 +1,48 @@
1
+ import type { Matrix4, Mesh, BufferGeometry, Material, DataTexture, IUniform } from 'three';
2
+ declare class BatchedMesh extends Mesh<BufferGeometry, Material> {
3
+ _vertexStarts: number[];
4
+ _vertexCounts: number[];
5
+ _indexStarts: number[];
6
+ _indexCounts: number[];
7
+ _reservedRanges: {
8
+ vertexStart: number;
9
+ vertexCount: number;
10
+ indexStart: number;
11
+ indexCount: number;
12
+ }[];
13
+ _visible: boolean[];
14
+ _active: boolean[];
15
+ _maxGeometryCount: number;
16
+ _maxVertexCount: number;
17
+ _maxIndexCount: number;
18
+ _geometryInitialized: boolean;
19
+ _geometryCount: number;
20
+ _matrices: Matrix4[];
21
+ _matricesTexture: DataTexture | null;
22
+ _customUniforms: Record<string, IUniform>;
23
+ constructor(maxGeometryCount: number, maxVertexCount: number, maxIndexCount?: number, material?: Material);
24
+ _initMatricesTexture(): void;
25
+ _initShader(): void;
26
+ _initializeGeometry(reference: BufferGeometry): void;
27
+ _validateGeometry(geometry: BufferGeometry): void;
28
+ getGeometryCount(): number;
29
+ getVertexCount(): number;
30
+ getIndexCount(): number;
31
+ addGeometry(geometry: BufferGeometry, vertexCount?: number, indexCount?: number): number;
32
+ /**
33
+ * @deprecated use `addGeometry` instead.
34
+ */
35
+ applyGeometry(geometry: BufferGeometry): number;
36
+ setGeometryAt(id: number, geometry: BufferGeometry): number;
37
+ deleteGeometry(geometryId: number): this;
38
+ optimize(): never;
39
+ setMatrixAt(geometryId: number, matrix: Matrix4): this;
40
+ getMatrixAt(geometryId: number, matrix: Matrix4): Matrix4;
41
+ setVisibleAt(geometryId: number, value: boolean): this;
42
+ getVisibleAt(geometryId: number): boolean;
43
+ raycast(): void;
44
+ copy(): never;
45
+ toJSON(): never;
46
+ dispose(): this;
47
+ }
48
+ export { type BatchedMesh };
@@ -1,4 +1,4 @@
1
- import { Matrix4, Mesh, BufferGeometry, Material, DataTexture, IUniform } from 'three';
1
+ import type { Matrix4, Mesh, BufferGeometry, Material, DataTexture, IUniform } from 'three';
2
2
  declare class BatchedMesh extends Mesh<BufferGeometry, Material> {
3
3
  _vertexStarts: number[];
4
4
  _vertexCounts: number[];
@@ -45,4 +45,4 @@ declare class BatchedMesh extends Mesh<BufferGeometry, Material> {
45
45
  toJSON(): never;
46
46
  dispose(): this;
47
47
  }
48
- export { BatchedMesh };
48
+ export { type BatchedMesh };
@@ -0,0 +1,12 @@
1
+ import type { Mesh, ShaderMaterial, Texture, CubeTexture, BufferGeometry } from 'three';
2
+ export interface GroundProjectedEnvParameters {
3
+ height?: number;
4
+ radius?: number;
5
+ }
6
+ export declare class GroundProjectedEnv extends Mesh<BufferGeometry, ShaderMaterial> {
7
+ constructor(texture: CubeTexture | Texture, options?: GroundProjectedEnvParameters);
8
+ set radius(radius: number);
9
+ get radius(): number;
10
+ set height(height: number);
11
+ get height(): number;
12
+ }
@@ -1,4 +1,4 @@
1
- import { Mesh, ShaderMaterial, Texture, CubeTexture, BufferGeometry } from 'three';
1
+ import type { Mesh, ShaderMaterial, Texture, CubeTexture, BufferGeometry } from 'three';
2
2
  export interface GroundProjectedEnvParameters {
3
3
  height?: number;
4
4
  radius?: number;
@@ -11,16 +11,18 @@ const Lensflare = /* @__PURE__ */ (() => {
11
11
  this.renderOrder = Infinity;
12
12
  const positionScreen = new THREE.Vector3();
13
13
  const positionView = new THREE.Vector3();
14
- const tempMap = new THREE.DataTexture(new Uint8Array(16 * 16 * 3), 16, 16, THREE.RGBAFormat);
15
- tempMap.minFilter = THREE.NearestFilter;
14
+ const tempMap = new THREE.Texture({ width: 16, height: 16 });
15
+ tempMap.isFramebufferTexture = true;
16
16
  tempMap.magFilter = THREE.NearestFilter;
17
- tempMap.wrapS = THREE.ClampToEdgeWrapping;
18
- tempMap.wrapT = THREE.ClampToEdgeWrapping;
19
- const occlusionMap = new THREE.DataTexture(new Uint8Array(16 * 16 * 3), 16, 16, THREE.RGBAFormat);
20
- occlusionMap.minFilter = THREE.NearestFilter;
17
+ tempMap.minFilter = THREE.NearestFilter;
18
+ tempMap.generateMipmaps = false;
19
+ tempMap.needsUpdate = true;
20
+ const occlusionMap = new THREE.Texture({ width: 16, height: 16 });
21
+ occlusionMap.isFramebufferTexture = true;
21
22
  occlusionMap.magFilter = THREE.NearestFilter;
22
- occlusionMap.wrapS = THREE.ClampToEdgeWrapping;
23
- occlusionMap.wrapT = THREE.ClampToEdgeWrapping;
23
+ occlusionMap.minFilter = THREE.NearestFilter;
24
+ occlusionMap.generateMipmaps = false;
25
+ occlusionMap.needsUpdate = true;
24
26
  const geometry = Lensflare2.Geometry;
25
27
  const material1a = new THREE.RawShaderMaterial({
26
28
  uniforms: {
@@ -1 +1 @@
1
- {"version":3,"file":"Lensflare.cjs","sources":["../../src/objects/Lensflare.js"],"sourcesContent":["import {\n AdditiveBlending,\n Box2,\n BufferGeometry,\n ClampToEdgeWrapping,\n Color,\n DataTexture,\n InterleavedBuffer,\n InterleavedBufferAttribute,\n Mesh,\n MeshBasicMaterial,\n NearestFilter,\n RGBAFormat,\n RawShaderMaterial,\n Vector2,\n Vector3,\n Vector4,\n} from 'three'\n\nconst Lensflare = /* @__PURE__ */ (() => {\n class Lensflare extends Mesh {\n constructor() {\n super(Lensflare.Geometry, new MeshBasicMaterial({ opacity: 0, transparent: true }))\n\n this.isLensflare = true\n\n this.type = 'Lensflare'\n this.frustumCulled = false\n this.renderOrder = Infinity\n\n //\n\n const positionScreen = new Vector3()\n const positionView = new Vector3()\n\n // textures\n const tempMap = new DataTexture(new Uint8Array(16 * 16 * 3), 16, 16, RGBAFormat)\n tempMap.minFilter = NearestFilter\n tempMap.magFilter = NearestFilter\n tempMap.wrapS = ClampToEdgeWrapping\n tempMap.wrapT = ClampToEdgeWrapping\n\n const occlusionMap = new DataTexture(new Uint8Array(16 * 16 * 3), 16, 16, RGBAFormat)\n occlusionMap.minFilter = NearestFilter\n occlusionMap.magFilter = NearestFilter\n occlusionMap.wrapS = ClampToEdgeWrapping\n occlusionMap.wrapT = ClampToEdgeWrapping\n\n // material\n\n const geometry = Lensflare.Geometry\n\n const material1a = new RawShaderMaterial({\n uniforms: {\n scale: { value: null },\n screenPosition: { value: null },\n },\n vertexShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}`,\n\n fragmentShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 );\n\n\t\t\t\t}`,\n depthTest: true,\n depthWrite: false,\n transparent: false,\n })\n\n const material1b = new RawShaderMaterial({\n uniforms: {\n map: { value: tempMap },\n scale: { value: null },\n screenPosition: { value: null },\n },\n vertexShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\t\t\t\tattribute vec2 uv;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUV = uv;\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}`,\n\n fragmentShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform sampler2D map;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = texture2D( map, vUV );\n\n\t\t\t\t}`,\n depthTest: false,\n depthWrite: false,\n transparent: false,\n })\n\n // the following object is used for occlusionMap generation\n\n const mesh1 = new Mesh(geometry, material1a)\n\n //\n\n const elements = []\n\n const shader = LensflareElement.Shader\n\n const material2 = new RawShaderMaterial({\n uniforms: {\n map: { value: null },\n occlusionMap: { value: occlusionMap },\n color: { value: new Color(0xffffff) },\n scale: { value: new Vector2() },\n screenPosition: { value: new Vector3() },\n },\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n blending: AdditiveBlending,\n transparent: true,\n depthWrite: false,\n })\n\n const mesh2 = new Mesh(geometry, material2)\n\n this.addElement = function (element) {\n elements.push(element)\n }\n\n //\n\n const scale = new Vector2()\n const screenPositionPixels = new Vector2()\n const validArea = new Box2()\n const viewport = new Vector4()\n\n this.onBeforeRender = function (renderer, scene, camera) {\n renderer.getCurrentViewport(viewport)\n\n const invAspect = viewport.w / viewport.z\n const halfViewportWidth = viewport.z / 2.0\n const halfViewportHeight = viewport.w / 2.0\n\n let size = 16 / viewport.w\n scale.set(size * invAspect, size)\n\n validArea.min.set(viewport.x, viewport.y)\n validArea.max.set(viewport.x + (viewport.z - 16), viewport.y + (viewport.w - 16))\n\n // calculate position in screen space\n\n positionView.setFromMatrixPosition(this.matrixWorld)\n positionView.applyMatrix4(camera.matrixWorldInverse)\n\n if (positionView.z > 0) return // lensflare is behind the camera\n\n positionScreen.copy(positionView).applyMatrix4(camera.projectionMatrix)\n\n // horizontal and vertical coordinate of the lower left corner of the pixels to copy\n\n screenPositionPixels.x = viewport.x + positionScreen.x * halfViewportWidth + halfViewportWidth - 8\n screenPositionPixels.y = viewport.y + positionScreen.y * halfViewportHeight + halfViewportHeight - 8\n\n // screen cull\n\n if (validArea.containsPoint(screenPositionPixels)) {\n // save current RGB to temp texture\n\n renderer.copyFramebufferToTexture(screenPositionPixels, tempMap)\n\n // render pink quad\n\n let uniforms = material1a.uniforms\n uniforms['scale'].value = scale\n uniforms['screenPosition'].value = positionScreen\n\n renderer.renderBufferDirect(camera, null, geometry, material1a, mesh1, null)\n\n // copy result to occlusionMap\n\n renderer.copyFramebufferToTexture(screenPositionPixels, occlusionMap)\n\n // restore graphics\n\n uniforms = material1b.uniforms\n uniforms['scale'].value = scale\n uniforms['screenPosition'].value = positionScreen\n\n renderer.renderBufferDirect(camera, null, geometry, material1b, mesh1, null)\n\n // render elements\n\n const vecX = -positionScreen.x * 2\n const vecY = -positionScreen.y * 2\n\n for (let i = 0, l = elements.length; i < l; i++) {\n const element = elements[i]\n\n const uniforms = material2.uniforms\n\n uniforms['color'].value.copy(element.color)\n uniforms['map'].value = element.texture\n uniforms['screenPosition'].value.x = positionScreen.x + vecX * element.distance\n uniforms['screenPosition'].value.y = positionScreen.y + vecY * element.distance\n\n size = element.size / viewport.w\n const invAspect = viewport.w / viewport.z\n\n uniforms['scale'].value.set(size * invAspect, size)\n\n material2.uniformsNeedUpdate = true\n\n renderer.renderBufferDirect(camera, null, geometry, material2, mesh2, null)\n }\n }\n }\n\n this.dispose = function () {\n material1a.dispose()\n material1b.dispose()\n material2.dispose()\n\n tempMap.dispose()\n occlusionMap.dispose()\n\n for (let i = 0, l = elements.length; i < l; i++) {\n elements[i].texture.dispose()\n }\n }\n }\n }\n\n const _geometry = new BufferGeometry()\n const interleavedBuffer = new InterleavedBuffer(\n new Float32Array([-1, -1, 0, 0, 0, 1, -1, 0, 1, 0, 1, 1, 0, 1, 1, -1, 1, 0, 0, 1]),\n 5,\n )\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3])\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false))\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false))\n\n Lensflare.Geometry = _geometry\n\n return Lensflare\n})()\n\n//\n\nconst LensflareElement = /* @__PURE__ */ (() => {\n class LensflareElement {\n constructor(texture, size = 1, distance = 0, color = new Color(0xffffff)) {\n this.texture = texture\n this.size = size\n this.distance = distance\n this.color = color\n }\n }\n\n LensflareElement.Shader = {\n uniforms: {\n map: { value: null },\n occlusionMap: { value: null },\n color: { value: null },\n scale: { value: null },\n screenPosition: { value: null },\n },\n\n vertexShader: /* glsl */ `\n\n precision highp float;\n\n uniform vec3 screenPosition;\n uniform vec2 scale;\n\n uniform sampler2D occlusionMap;\n\n attribute vec3 position;\n attribute vec2 uv;\n\n varying vec2 vUV;\n varying float vVisibility;\n\n void main() {\n\n vUV = uv;\n\n vec2 pos = position.xy;\n\n vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\n visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\n visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\n visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\n visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\n visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\n visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\n visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\n visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\n\n vVisibility = visibility.r / 9.0;\n vVisibility *= 1.0 - visibility.g / 9.0;\n vVisibility *= visibility.b / 9.0;\n\n gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n\n precision highp float;\n\n uniform sampler2D map;\n uniform vec3 color;\n\n varying vec2 vUV;\n varying float vVisibility;\n\n void main() {\n\n vec4 texture = texture2D( map, vUV );\n texture.a *= vVisibility;\n gl_FragColor = texture;\n gl_FragColor.rgb *= color;\n\n }\n `,\n }\n\n return LensflareElement\n})()\n\nexport { Lensflare, LensflareElement }\n"],"names":["Lensflare","Mesh","MeshBasicMaterial","Vector3","DataTexture","RGBAFormat","NearestFilter","ClampToEdgeWrapping","RawShaderMaterial","Color","Vector2","AdditiveBlending","Box2","Vector4","uniforms","invAspect","BufferGeometry","InterleavedBuffer","InterleavedBufferAttribute","LensflareElement"],"mappings":"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"}
1
+ {"version":3,"file":"Lensflare.cjs","sources":["../../src/objects/Lensflare.js"],"sourcesContent":["import {\n AdditiveBlending,\n Box2,\n BufferGeometry,\n Color,\n Texture,\n NearestFilter,\n InterleavedBuffer,\n InterleavedBufferAttribute,\n Mesh,\n MeshBasicMaterial,\n RawShaderMaterial,\n Vector2,\n Vector3,\n Vector4,\n} from 'three'\n\nconst Lensflare = /* @__PURE__ */ (() => {\n class Lensflare extends Mesh {\n constructor() {\n super(Lensflare.Geometry, new MeshBasicMaterial({ opacity: 0, transparent: true }))\n\n this.isLensflare = true\n\n this.type = 'Lensflare'\n this.frustumCulled = false\n this.renderOrder = Infinity\n\n //\n\n const positionScreen = new Vector3()\n const positionView = new Vector3()\n\n // textures\n const tempMap = new Texture({ width: 16, height: 16 })\n tempMap.isFramebufferTexture = true\n tempMap.magFilter = NearestFilter\n tempMap.minFilter = NearestFilter\n tempMap.generateMipmaps = false\n tempMap.needsUpdate = true\n\n const occlusionMap = new Texture({ width: 16, height: 16 })\n occlusionMap.isFramebufferTexture = true\n occlusionMap.magFilter = NearestFilter\n occlusionMap.minFilter = NearestFilter\n occlusionMap.generateMipmaps = false\n occlusionMap.needsUpdate = true\n\n // material\n\n const geometry = Lensflare.Geometry\n\n const material1a = new RawShaderMaterial({\n uniforms: {\n scale: { value: null },\n screenPosition: { value: null },\n },\n vertexShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}`,\n\n fragmentShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = vec4( 1.0, 0.0, 1.0, 1.0 );\n\n\t\t\t\t}`,\n depthTest: true,\n depthWrite: false,\n transparent: false,\n })\n\n const material1b = new RawShaderMaterial({\n uniforms: {\n map: { value: tempMap },\n scale: { value: null },\n screenPosition: { value: null },\n },\n vertexShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform vec3 screenPosition;\n\t\t\t\tuniform vec2 scale;\n\n\t\t\t\tattribute vec3 position;\n\t\t\t\tattribute vec2 uv;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tvUV = uv;\n\n\t\t\t\t\tgl_Position = vec4( position.xy * scale + screenPosition.xy, screenPosition.z, 1.0 );\n\n\t\t\t\t}`,\n\n fragmentShader: /* glsl */ `\n\n\t\t\t\tprecision highp float;\n\n\t\t\t\tuniform sampler2D map;\n\n\t\t\t\tvarying vec2 vUV;\n\n\t\t\t\tvoid main() {\n\n\t\t\t\t\tgl_FragColor = texture2D( map, vUV );\n\n\t\t\t\t}`,\n depthTest: false,\n depthWrite: false,\n transparent: false,\n })\n\n // the following object is used for occlusionMap generation\n\n const mesh1 = new Mesh(geometry, material1a)\n\n //\n\n const elements = []\n\n const shader = LensflareElement.Shader\n\n const material2 = new RawShaderMaterial({\n uniforms: {\n map: { value: null },\n occlusionMap: { value: occlusionMap },\n color: { value: new Color(0xffffff) },\n scale: { value: new Vector2() },\n screenPosition: { value: new Vector3() },\n },\n vertexShader: shader.vertexShader,\n fragmentShader: shader.fragmentShader,\n blending: AdditiveBlending,\n transparent: true,\n depthWrite: false,\n })\n\n const mesh2 = new Mesh(geometry, material2)\n\n this.addElement = function (element) {\n elements.push(element)\n }\n\n //\n\n const scale = new Vector2()\n const screenPositionPixels = new Vector2()\n const validArea = new Box2()\n const viewport = new Vector4()\n\n this.onBeforeRender = function (renderer, scene, camera) {\n renderer.getCurrentViewport(viewport)\n\n const invAspect = viewport.w / viewport.z\n const halfViewportWidth = viewport.z / 2.0\n const halfViewportHeight = viewport.w / 2.0\n\n let size = 16 / viewport.w\n scale.set(size * invAspect, size)\n\n validArea.min.set(viewport.x, viewport.y)\n validArea.max.set(viewport.x + (viewport.z - 16), viewport.y + (viewport.w - 16))\n\n // calculate position in screen space\n\n positionView.setFromMatrixPosition(this.matrixWorld)\n positionView.applyMatrix4(camera.matrixWorldInverse)\n\n if (positionView.z > 0) return // lensflare is behind the camera\n\n positionScreen.copy(positionView).applyMatrix4(camera.projectionMatrix)\n\n // horizontal and vertical coordinate of the lower left corner of the pixels to copy\n\n screenPositionPixels.x = viewport.x + positionScreen.x * halfViewportWidth + halfViewportWidth - 8\n screenPositionPixels.y = viewport.y + positionScreen.y * halfViewportHeight + halfViewportHeight - 8\n\n // screen cull\n\n if (validArea.containsPoint(screenPositionPixels)) {\n // save current RGB to temp texture\n\n renderer.copyFramebufferToTexture(screenPositionPixels, tempMap)\n\n // render pink quad\n\n let uniforms = material1a.uniforms\n uniforms['scale'].value = scale\n uniforms['screenPosition'].value = positionScreen\n\n renderer.renderBufferDirect(camera, null, geometry, material1a, mesh1, null)\n\n // copy result to occlusionMap\n\n renderer.copyFramebufferToTexture(screenPositionPixels, occlusionMap)\n\n // restore graphics\n\n uniforms = material1b.uniforms\n uniforms['scale'].value = scale\n uniforms['screenPosition'].value = positionScreen\n\n renderer.renderBufferDirect(camera, null, geometry, material1b, mesh1, null)\n\n // render elements\n\n const vecX = -positionScreen.x * 2\n const vecY = -positionScreen.y * 2\n\n for (let i = 0, l = elements.length; i < l; i++) {\n const element = elements[i]\n\n const uniforms = material2.uniforms\n\n uniforms['color'].value.copy(element.color)\n uniforms['map'].value = element.texture\n uniforms['screenPosition'].value.x = positionScreen.x + vecX * element.distance\n uniforms['screenPosition'].value.y = positionScreen.y + vecY * element.distance\n\n size = element.size / viewport.w\n const invAspect = viewport.w / viewport.z\n\n uniforms['scale'].value.set(size * invAspect, size)\n\n material2.uniformsNeedUpdate = true\n\n renderer.renderBufferDirect(camera, null, geometry, material2, mesh2, null)\n }\n }\n }\n\n this.dispose = function () {\n material1a.dispose()\n material1b.dispose()\n material2.dispose()\n\n tempMap.dispose()\n occlusionMap.dispose()\n\n for (let i = 0, l = elements.length; i < l; i++) {\n elements[i].texture.dispose()\n }\n }\n }\n }\n\n const _geometry = new BufferGeometry()\n const interleavedBuffer = new InterleavedBuffer(\n new Float32Array([-1, -1, 0, 0, 0, 1, -1, 0, 1, 0, 1, 1, 0, 1, 1, -1, 1, 0, 0, 1]),\n 5,\n )\n\n _geometry.setIndex([0, 1, 2, 0, 2, 3])\n _geometry.setAttribute('position', new InterleavedBufferAttribute(interleavedBuffer, 3, 0, false))\n _geometry.setAttribute('uv', new InterleavedBufferAttribute(interleavedBuffer, 2, 3, false))\n\n Lensflare.Geometry = _geometry\n\n return Lensflare\n})()\n\n//\n\nconst LensflareElement = /* @__PURE__ */ (() => {\n class LensflareElement {\n constructor(texture, size = 1, distance = 0, color = new Color(0xffffff)) {\n this.texture = texture\n this.size = size\n this.distance = distance\n this.color = color\n }\n }\n\n LensflareElement.Shader = {\n uniforms: {\n map: { value: null },\n occlusionMap: { value: null },\n color: { value: null },\n scale: { value: null },\n screenPosition: { value: null },\n },\n\n vertexShader: /* glsl */ `\n\n precision highp float;\n\n uniform vec3 screenPosition;\n uniform vec2 scale;\n\n uniform sampler2D occlusionMap;\n\n attribute vec3 position;\n attribute vec2 uv;\n\n varying vec2 vUV;\n varying float vVisibility;\n\n void main() {\n\n vUV = uv;\n\n vec2 pos = position.xy;\n\n vec4 visibility = texture2D( occlusionMap, vec2( 0.1, 0.1 ) );\n visibility += texture2D( occlusionMap, vec2( 0.5, 0.1 ) );\n visibility += texture2D( occlusionMap, vec2( 0.9, 0.1 ) );\n visibility += texture2D( occlusionMap, vec2( 0.9, 0.5 ) );\n visibility += texture2D( occlusionMap, vec2( 0.9, 0.9 ) );\n visibility += texture2D( occlusionMap, vec2( 0.5, 0.9 ) );\n visibility += texture2D( occlusionMap, vec2( 0.1, 0.9 ) );\n visibility += texture2D( occlusionMap, vec2( 0.1, 0.5 ) );\n visibility += texture2D( occlusionMap, vec2( 0.5, 0.5 ) );\n\n vVisibility = visibility.r / 9.0;\n vVisibility *= 1.0 - visibility.g / 9.0;\n vVisibility *= visibility.b / 9.0;\n\n gl_Position = vec4( ( pos * scale + screenPosition.xy ).xy, screenPosition.z, 1.0 );\n\n }\n `,\n\n fragmentShader: /* glsl */ `\n\n precision highp float;\n\n uniform sampler2D map;\n uniform vec3 color;\n\n varying vec2 vUV;\n varying float vVisibility;\n\n void main() {\n\n vec4 texture = texture2D( map, vUV );\n texture.a *= vVisibility;\n gl_FragColor = texture;\n gl_FragColor.rgb *= color;\n\n }\n `,\n }\n\n return LensflareElement\n})()\n\nexport { Lensflare, LensflareElement }\n"],"names":["Lensflare","Mesh","MeshBasicMaterial","Vector3","Texture","NearestFilter","RawShaderMaterial","Color","Vector2","AdditiveBlending","Box2","Vector4","uniforms","invAspect","BufferGeometry","InterleavedBuffer","InterleavedBufferAttribute","LensflareElement"],"mappings":"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"}
@@ -0,0 +1,17 @@
1
+ import type { Mesh, Texture, Color } from 'three'
2
+
3
+ export class LensflareElement {
4
+ constructor(texture: Texture, size?: number, distance?: number, color?: Color)
5
+ texture: Texture
6
+ size: number
7
+ distance: number
8
+ color: Color
9
+ }
10
+
11
+ export class Lensflare extends Mesh {
12
+ constructor()
13
+ readonly isLensflare: true
14
+
15
+ addElement(element: LensflareElement): void
16
+ dispose(): void
17
+ }
@@ -1,4 +1,4 @@
1
- import { Mesh, Texture, Color } from 'three'
1
+ import type { Mesh, Texture, Color } from 'three'
2
2
 
3
3
  export class LensflareElement {
4
4
  constructor(texture: Texture, size?: number, distance?: number, color?: Color)