three-stdlib 2.35.6 → 2.35.8

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 (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)