@ohos-ports/react-three-drei 10.7.7-beta.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (483) hide show
  1. package/LICENSE +21 -0
  2. package/README.md +852 -0
  3. package/core/AccumulativeShadows.cjs.js +1 -0
  4. package/core/AccumulativeShadows.d.ts +59 -0
  5. package/core/AccumulativeShadows.js +310 -0
  6. package/core/AdaptiveDpr.cjs.js +1 -0
  7. package/core/AdaptiveDpr.d.ts +3 -0
  8. package/core/AdaptiveDpr.js +28 -0
  9. package/core/AdaptiveEvents.cjs.js +1 -0
  10. package/core/AdaptiveEvents.d.ts +1 -0
  11. package/core/AdaptiveEvents.js +20 -0
  12. package/core/ArcballControls.cjs.js +1 -0
  13. package/core/ArcballControls.d.ts +15 -0
  14. package/core/ArcballControls.js +67 -0
  15. package/core/AsciiRenderer.cjs.js +1 -0
  16. package/core/AsciiRenderer.d.ts +11 -0
  17. package/core/AsciiRenderer.js +66 -0
  18. package/core/BBAnchor.cjs.js +1 -0
  19. package/core/BBAnchor.d.ts +7 -0
  20. package/core/BBAnchor.js +37 -0
  21. package/core/Backdrop.cjs.js +1 -0
  22. package/core/Backdrop.d.ts +15 -0
  23. package/core/Backdrop.js +33 -0
  24. package/core/BakeShadows.cjs.js +1 -0
  25. package/core/BakeShadows.d.ts +1 -0
  26. package/core/BakeShadows.js +16 -0
  27. package/core/Billboard.cjs.js +1 -0
  28. package/core/Billboard.d.ts +10 -0
  29. package/core/Billboard.js +53 -0
  30. package/core/Bounds.cjs.js +1 -0
  31. package/core/Bounds.d.ts +36 -0
  32. package/core/Bounds.js +254 -0
  33. package/core/Bvh.cjs.js +1 -0
  34. package/core/Bvh.d.ts +19 -0
  35. package/core/Bvh.js +92 -0
  36. package/core/CameraControls.cjs.js +1 -0
  37. package/core/CameraControls.d.ts +48 -0
  38. package/core/CameraControls.js +151 -0
  39. package/core/CameraShake.cjs.js +1 -0
  40. package/core/CameraShake.d.ts +17 -0
  41. package/core/CameraShake.js +57 -0
  42. package/core/CatmullRomLine.cjs.js +1 -0
  43. package/core/CatmullRomLine.d.ts +10 -0
  44. package/core/CatmullRomLine.js +42 -0
  45. package/core/Caustics.cjs.js +1 -0
  46. package/core/Caustics.d.ts +32 -0
  47. package/core/Caustics.js +388 -0
  48. package/core/Center.cjs.js +1 -0
  49. package/core/Center.d.ts +33 -0
  50. package/core/Center.js +67 -0
  51. package/core/Clone.cjs.js +1 -0
  52. package/core/Clone.d.ts +15 -0
  53. package/core/Clone.js +100 -0
  54. package/core/Cloud.cjs.js +1 -0
  55. package/core/Cloud.d.ts +97 -0
  56. package/core/Cloud.js +231 -0
  57. package/core/ComputedAttribute.cjs.js +1 -0
  58. package/core/ComputedAttribute.d.ts +8 -0
  59. package/core/ComputedAttribute.js +33 -0
  60. package/core/ContactShadows.cjs.js +1 -0
  61. package/core/ContactShadows.d.ts +18 -0
  62. package/core/ContactShadows.js +114 -0
  63. package/core/CubeCamera.cjs.js +1 -0
  64. package/core/CubeCamera.d.ts +21 -0
  65. package/core/CubeCamera.js +86 -0
  66. package/core/CubeTexture.cjs.js +1 -0
  67. package/core/CubeTexture.d.ts +14 -0
  68. package/core/CubeTexture.js +25 -0
  69. package/core/CubicBezierLine.cjs.js +1 -0
  70. package/core/CubicBezierLine.d.ts +12 -0
  71. package/core/CubicBezierLine.js +28 -0
  72. package/core/CurveModifier.cjs.js +1 -0
  73. package/core/CurveModifier.d.ts +11 -0
  74. package/core/CurveModifier.js +27 -0
  75. package/core/Decal.cjs.js +1 -0
  76. package/core/Decal.d.ts +16 -0
  77. package/core/Decal.js +128 -0
  78. package/core/Detailed.cjs.js +1 -0
  79. package/core/Detailed.d.ts +10 -0
  80. package/core/Detailed.js +33 -0
  81. package/core/DetectGPU.cjs.js +1 -0
  82. package/core/DetectGPU.d.ts +7 -0
  83. package/core/DetectGPU.js +14 -0
  84. package/core/DeviceOrientationControls.cjs.js +1 -0
  85. package/core/DeviceOrientationControls.d.ts +10 -0
  86. package/core/DeviceOrientationControls.js +51 -0
  87. package/core/Edges.cjs.js +1 -0
  88. package/core/Edges.d.ts +13 -0
  89. package/core/Edges.js +38 -0
  90. package/core/Effects.cjs.js +1 -0
  91. package/core/Effects.d.ts +25 -0
  92. package/core/Effects.js +91 -0
  93. package/core/Environment.cjs.js +1 -0
  94. package/core/Environment.d.ts +37 -0
  95. package/core/Environment.js +189 -0
  96. package/core/Example.cjs.js +1 -0
  97. package/core/Example.d.ts +13 -0
  98. package/core/Example.js +46 -0
  99. package/core/Fbo.cjs.js +1 -0
  100. package/core/Fbo.d.ts +22 -0
  101. package/core/Fbo.js +63 -0
  102. package/core/Fbx.cjs.js +1 -0
  103. package/core/Fbx.d.ts +11 -0
  104. package/core/Fbx.js +23 -0
  105. package/core/FirstPersonControls.cjs.js +1 -0
  106. package/core/FirstPersonControls.d.ts +8 -0
  107. package/core/FirstPersonControls.js +38 -0
  108. package/core/Fisheye.cjs.js +1 -0
  109. package/core/Fisheye.d.ts +10 -0
  110. package/core/Fisheye.js +95 -0
  111. package/core/Float.cjs.js +1 -0
  112. package/core/Float.d.ts +14 -0
  113. package/core/Float.js +37 -0
  114. package/core/FlyControls.cjs.js +1 -0
  115. package/core/FlyControls.d.ts +10 -0
  116. package/core/FlyControls.js +55 -0
  117. package/core/GizmoHelper.cjs.js +1 -0
  118. package/core/GizmoHelper.d.ts +16 -0
  119. package/core/GizmoHelper.js +116 -0
  120. package/core/GizmoViewcube.cjs.js +1 -0
  121. package/core/GizmoViewcube.d.ts +14 -0
  122. package/core/GizmoViewcube.js +133 -0
  123. package/core/GizmoViewport.cjs.js +1 -0
  124. package/core/GizmoViewport.d.ts +16 -0
  125. package/core/GizmoViewport.js +140 -0
  126. package/core/Gltf.cjs.js +1 -0
  127. package/core/Gltf.d.ts +27 -0
  128. package/core/Gltf.js +52 -0
  129. package/core/GradientTexture.cjs.js +1 -0
  130. package/core/GradientTexture.d.ts +18 -0
  131. package/core/GradientTexture.js +54 -0
  132. package/core/Grid.cjs.js +1 -0
  133. package/core/Grid.d.ts +26 -0
  134. package/core/Grid.js +142 -0
  135. package/core/Helper.cjs.js +1 -0
  136. package/core/Helper.d.ts +16 -0
  137. package/core/Helper.js +47 -0
  138. package/core/Hud.cjs.js +1 -0
  139. package/core/Hud.d.ts +6 -0
  140. package/core/Hud.js +55 -0
  141. package/core/Image.cjs.js +1 -0
  142. package/core/Image.d.ts +38 -0
  143. package/core/Image.js +160 -0
  144. package/core/Instances.cjs.js +1 -0
  145. package/core/Instances.d.ts +64 -0
  146. package/core/Instances.js +313 -0
  147. package/core/Ktx2.cjs.js +1 -0
  148. package/core/Ktx2.d.ts +14 -0
  149. package/core/Ktx2.js +48 -0
  150. package/core/Lightformer.cjs.js +1 -0
  151. package/core/Lightformer.d.ts +15 -0
  152. package/core/Lightformer.js +63 -0
  153. package/core/Line.cjs.js +1 -0
  154. package/core/Line.d.ts +13 -0
  155. package/core/Line.js +73 -0
  156. package/core/MapControls.cjs.js +1 -0
  157. package/core/MapControls.d.ts +14 -0
  158. package/core/MapControls.js +63 -0
  159. package/core/MarchingCubes.cjs.js +1 -0
  160. package/core/MarchingCubes.d.ts +24 -0
  161. package/core/MarchingCubes.js +78 -0
  162. package/core/Mask.cjs.js +1 -0
  163. package/core/Mask.d.ts +17 -0
  164. package/core/Mask.js +42 -0
  165. package/core/MatcapTexture.cjs.js +1 -0
  166. package/core/MatcapTexture.d.ts +9 -0
  167. package/core/MatcapTexture.js +51 -0
  168. package/core/MeshDiscardMaterial.cjs.js +1 -0
  169. package/core/MeshDiscardMaterial.d.ts +10 -0
  170. package/core/MeshDiscardMaterial.js +15 -0
  171. package/core/MeshDistortMaterial.cjs.js +1 -0
  172. package/core/MeshDistortMaterial.d.ts +39 -0
  173. package/core/MeshDistortMaterial.js +72 -0
  174. package/core/MeshPortalMaterial.cjs.js +1 -0
  175. package/core/MeshPortalMaterial.d.ts +25 -0
  176. package/core/MeshPortalMaterial.js +467 -0
  177. package/core/MeshReflectorMaterial.cjs.js +1 -0
  178. package/core/MeshReflectorMaterial.d.ts +14 -0
  179. package/core/MeshReflectorMaterial.js +180 -0
  180. package/core/MeshRefractionMaterial.cjs.js +1 -0
  181. package/core/MeshRefractionMaterial.d.ts +19 -0
  182. package/core/MeshRefractionMaterial.js +73 -0
  183. package/core/MeshTransmissionMaterial.cjs.js +1 -0
  184. package/core/MeshTransmissionMaterial.d.ts +34 -0
  185. package/core/MeshTransmissionMaterial.js +402 -0
  186. package/core/MeshWobbleMaterial.cjs.js +1 -0
  187. package/core/MeshWobbleMaterial.d.ts +36 -0
  188. package/core/MeshWobbleMaterial.js +60 -0
  189. package/core/MotionPathControls.cjs.js +1 -0
  190. package/core/MotionPathControls.d.ts +33 -0
  191. package/core/MotionPathControls.js +121 -0
  192. package/core/MultiMaterial.cjs.js +1 -0
  193. package/core/MultiMaterial.d.ts +4 -0
  194. package/core/MultiMaterial.js +29 -0
  195. package/core/NormalTexture.cjs.js +1 -0
  196. package/core/NormalTexture.d.ts +14 -0
  197. package/core/NormalTexture.js +42 -0
  198. package/core/OrbitControls.cjs.js +1 -0
  199. package/core/OrbitControls.d.ts +22 -0
  200. package/core/OrbitControls.js +79 -0
  201. package/core/OrthographicCamera.cjs.js +1 -0
  202. package/core/OrthographicCamera.d.ts +14 -0
  203. package/core/OrthographicCamera.js +76 -0
  204. package/core/Outlines.cjs.js +1 -0
  205. package/core/Outlines.d.ts +17 -0
  206. package/core/Outlines.js +166 -0
  207. package/core/PerformanceMonitor.cjs.js +1 -0
  208. package/core/PerformanceMonitor.d.ts +36 -0
  209. package/core/PerformanceMonitor.js +116 -0
  210. package/core/PerspectiveCamera.cjs.js +1 -0
  211. package/core/PerspectiveCamera.d.ts +14 -0
  212. package/core/PerspectiveCamera.js +72 -0
  213. package/core/PointMaterial.cjs.js +1 -0
  214. package/core/PointMaterial.d.ts +8 -0
  215. package/core/PointMaterial.js +36 -0
  216. package/core/PointerLockControls.cjs.js +1 -0
  217. package/core/PointerLockControls.d.ts +15 -0
  218. package/core/PointerLockControls.js +89 -0
  219. package/core/Points.cjs.js +1 -0
  220. package/core/Points.d.ts +31 -0
  221. package/core/Points.js +202 -0
  222. package/core/PositionalAudio.cjs.js +1 -0
  223. package/core/PositionalAudio.d.ts +9 -0
  224. package/core/PositionalAudio.js +46 -0
  225. package/core/Preload.cjs.js +1 -0
  226. package/core/Preload.d.ts +7 -0
  227. package/core/Preload.js +44 -0
  228. package/core/Progress.cjs.js +1 -0
  229. package/core/Progress.d.ts +14 -0
  230. package/core/Progress.js +55 -0
  231. package/core/QuadraticBezierLine.cjs.js +1 -0
  232. package/core/QuadraticBezierLine.d.ts +14 -0
  233. package/core/QuadraticBezierLine.js +42 -0
  234. package/core/RenderCubeTexture.cjs.js +1 -0
  235. package/core/RenderCubeTexture.d.ts +30 -0
  236. package/core/RenderCubeTexture.js +96 -0
  237. package/core/RenderTexture.cjs.js +1 -0
  238. package/core/RenderTexture.d.ts +18 -0
  239. package/core/RenderTexture.js +105 -0
  240. package/core/Resize.cjs.js +1 -0
  241. package/core/Resize.d.ts +17 -0
  242. package/core/Resize.js +39 -0
  243. package/core/RoundedBox.cjs.js +1 -0
  244. package/core/RoundedBox.d.ts +14 -0
  245. package/core/RoundedBox.js +70 -0
  246. package/core/Sampler.cjs.js +1 -0
  247. package/core/Sampler.d.ts +28 -0
  248. package/core/Sampler.js +75 -0
  249. package/core/ScreenQuad.cjs.js +1 -0
  250. package/core/ScreenQuad.d.ts +5 -0
  251. package/core/ScreenQuad.js +25 -0
  252. package/core/ScreenSizer.cjs.js +1 -0
  253. package/core/ScreenSizer.d.ts +7 -0
  254. package/core/ScreenSizer.js +39 -0
  255. package/core/ScreenSpace.cjs.js +1 -0
  256. package/core/ScreenSpace.d.ts +7 -0
  257. package/core/ScreenSpace.js +25 -0
  258. package/core/Segments.cjs.js +1 -0
  259. package/core/Segments.d.ts +29 -0
  260. package/core/Segments.js +96 -0
  261. package/core/Shadow.cjs.js +1 -0
  262. package/core/Shadow.d.ts +12 -0
  263. package/core/Shadow.js +42 -0
  264. package/core/ShadowAlpha.cjs.js +1 -0
  265. package/core/ShadowAlpha.d.ts +7 -0
  266. package/core/ShadowAlpha.js +108 -0
  267. package/core/Sky.cjs.js +1 -0
  268. package/core/Sky.d.ts +16 -0
  269. package/core/Sky.js +39 -0
  270. package/core/Sparkles.cjs.js +1 -0
  271. package/core/Sparkles.d.ts +26 -0
  272. package/core/Sparkles.js +161 -0
  273. package/core/Splat.cjs.js +1 -0
  274. package/core/Splat.d.ts +56 -0
  275. package/core/Splat.js +506 -0
  276. package/core/SpotLight.cjs.js +1 -0
  277. package/core/SpotLight.d.ts +27 -0
  278. package/core/SpotLight.js +223 -0
  279. package/core/SpriteAnimator.cjs.js +1 -0
  280. package/core/SpriteAnimator.d.ts +88 -0
  281. package/core/SpriteAnimator.js +413 -0
  282. package/core/Stage.cjs.js +1 -0
  283. package/core/Stage.d.ts +27 -0
  284. package/core/Stage.js +133 -0
  285. package/core/Stars.cjs.js +1 -0
  286. package/core/Stars.d.ts +22 -0
  287. package/core/Stars.js +100 -0
  288. package/core/Stats.cjs.js +1 -0
  289. package/core/Stats.d.ts +7 -0
  290. package/core/Stats.js +32 -0
  291. package/core/StatsGl.cjs.js +1 -0
  292. package/core/StatsGl.d.ts +14 -0
  293. package/core/StatsGl.js +44 -0
  294. package/core/Svg.cjs.js +1 -0
  295. package/core/Svg.d.ts +13 -0
  296. package/core/Svg.js +62 -0
  297. package/core/Text.cjs.js +1 -0
  298. package/core/Text.d.ts +38 -0
  299. package/core/Text.js +57 -0
  300. package/core/Text3D.cjs.js +1 -0
  301. package/core/Text3D.d.ts +20 -0
  302. package/core/Text3D.js +74 -0
  303. package/core/Texture.cjs.js +1 -0
  304. package/core/Texture.d.ts +20 -0
  305. package/core/Texture.js +60 -0
  306. package/core/TrackballControls.cjs.js +1 -0
  307. package/core/TrackballControls.d.ts +15 -0
  308. package/core/TrackballControls.js +72 -0
  309. package/core/Trail.cjs.js +1 -0
  310. package/core/Trail.d.ts +21 -0
  311. package/core/Trail.js +150 -0
  312. package/core/TrailTexture.cjs.js +1 -0
  313. package/core/TrailTexture.d.ts +19 -0
  314. package/core/TrailTexture.js +159 -0
  315. package/core/TransformControls.cjs.js +1 -0
  316. package/core/TransformControls.d.ts +28 -0
  317. package/core/TransformControls.js +114 -0
  318. package/core/VideoTexture.cjs.js +1 -0
  319. package/core/VideoTexture.d.ts +26 -0
  320. package/core/VideoTexture.js +111 -0
  321. package/core/Wireframe.cjs.js +1 -0
  322. package/core/Wireframe.d.ts +15 -0
  323. package/core/Wireframe.js +157 -0
  324. package/core/calculateScaleFactor.cjs.js +1 -0
  325. package/core/calculateScaleFactor.d.ts +3 -0
  326. package/core/calculateScaleFactor.js +31 -0
  327. package/core/index.cjs.js +1 -0
  328. package/core/index.d.ts +122 -0
  329. package/core/index.js +150 -0
  330. package/core/meshBounds.cjs.js +1 -0
  331. package/core/meshBounds.d.ts +2 -0
  332. package/core/meshBounds.js +28 -0
  333. package/core/shaderMaterial.cjs.js +1 -0
  334. package/core/shaderMaterial.d.ts +9 -0
  335. package/core/shaderMaterial.js +29 -0
  336. package/core/shapes.cjs.js +1 -0
  337. package/core/shapes.d.ts +26 -0
  338. package/core/shapes.js +65 -0
  339. package/core/softShadows.cjs.js +1 -0
  340. package/core/softShadows.d.ts +6 -0
  341. package/core/softShadows.js +158 -0
  342. package/core/useAnimations.cjs.js +1 -0
  343. package/core/useAnimations.d.ts +13 -0
  344. package/core/useAnimations.js +52 -0
  345. package/core/useAspect.cjs.js +1 -0
  346. package/core/useAspect.d.ts +1 -0
  347. package/core/useAspect.js +10 -0
  348. package/core/useBoxProjectedEnv.cjs.js +1 -0
  349. package/core/useBoxProjectedEnv.d.ts +19 -0
  350. package/core/useBoxProjectedEnv.js +95 -0
  351. package/core/useCamera.cjs.js +1 -0
  352. package/core/useCamera.d.ts +3 -0
  353. package/core/useCamera.js +19 -0
  354. package/core/useContextBridge.cjs.js +1 -0
  355. package/core/useContextBridge.d.ts +4 -0
  356. package/core/useContextBridge.js +20 -0
  357. package/core/useDepthBuffer.cjs.js +1 -0
  358. package/core/useDepthBuffer.d.ts +6 -0
  359. package/core/useDepthBuffer.js +38 -0
  360. package/core/useEnvironment.cjs.js +1 -0
  361. package/core/useEnvironment.d.ts +17 -0
  362. package/core/useEnvironment.js +150 -0
  363. package/core/useFont.cjs.js +1 -0
  364. package/core/useFont.d.ts +24 -0
  365. package/core/useFont.js +24 -0
  366. package/core/useIntersect.cjs.js +1 -0
  367. package/core/useIntersect.d.ts +3 -0
  368. package/core/useIntersect.js +36 -0
  369. package/core/useSpriteLoader.cjs.js +1 -0
  370. package/core/useSpriteLoader.d.ts +57 -0
  371. package/core/useSpriteLoader.js +402 -0
  372. package/helpers/constants.cjs.js +1 -0
  373. package/helpers/constants.d.ts +1 -0
  374. package/helpers/constants.js +6 -0
  375. package/helpers/deprecated.cjs.js +1 -0
  376. package/helpers/deprecated.d.ts +5 -0
  377. package/helpers/deprecated.js +8 -0
  378. package/helpers/environment-assets.cjs.js +1 -0
  379. package/helpers/environment-assets.d.ts +13 -0
  380. package/helpers/environment-assets.js +14 -0
  381. package/helpers/glsl/DefaultSpotlightShadowShadows.glsl.js +3 -0
  382. package/helpers/glsl/distort.vert.glsl.js +3 -0
  383. package/helpers/ts-utils.cjs.js +1 -0
  384. package/helpers/ts-utils.d.ts +7 -0
  385. package/helpers/ts-utils.js +1 -0
  386. package/helpers/useEffectfulState.cjs.js +1 -0
  387. package/helpers/useEffectfulState.d.ts +4 -0
  388. package/helpers/useEffectfulState.js +17 -0
  389. package/index.cjs.js +1 -0
  390. package/index.d.ts +1 -0
  391. package/index.js +139 -0
  392. package/materials/BlurPass.cjs.js +1 -0
  393. package/materials/BlurPass.d.ts +23 -0
  394. package/materials/BlurPass.js +72 -0
  395. package/materials/ConvolutionMaterial.cjs.js +1 -0
  396. package/materials/ConvolutionMaterial.d.ts +7 -0
  397. package/materials/ConvolutionMaterial.js +97 -0
  398. package/materials/DiscardMaterial.cjs.js +1 -0
  399. package/materials/DiscardMaterial.d.ts +3 -0
  400. package/materials/DiscardMaterial.js +5 -0
  401. package/materials/MeshReflectorMaterial.cjs.js +1 -0
  402. package/materials/MeshReflectorMaterial.d.ts +50 -0
  403. package/materials/MeshReflectorMaterial.js +256 -0
  404. package/materials/MeshRefractionMaterial.cjs.js +1 -0
  405. package/materials/MeshRefractionMaterial.d.ts +18 -0
  406. package/materials/MeshRefractionMaterial.js +163 -0
  407. package/materials/SpotLightMaterial.cjs.js +1 -0
  408. package/materials/SpotLightMaterial.d.ts +4 -0
  409. package/materials/SpotLightMaterial.js +115 -0
  410. package/materials/WireframeMaterial.cjs.js +1 -0
  411. package/materials/WireframeMaterial.d.ts +64 -0
  412. package/materials/WireframeMaterial.js +217 -0
  413. package/native/index.cjs.js +1 -0
  414. package/native/index.d.ts +1 -0
  415. package/native/index.js +150 -0
  416. package/native/package.json +5 -0
  417. package/package.json +83 -0
  418. package/web/CycleRaycast.cjs.js +1 -0
  419. package/web/CycleRaycast.d.ts +10 -0
  420. package/web/CycleRaycast.js +93 -0
  421. package/web/DragControls.cjs.js +1 -0
  422. package/web/DragControls.d.ts +17 -0
  423. package/web/DragControls.js +127 -0
  424. package/web/FaceControls.cjs.js +1 -0
  425. package/web/FaceControls.d.ts +29 -0
  426. package/web/FaceControls.js +236 -0
  427. package/web/FaceLandmarker.cjs.js +1 -0
  428. package/web/FaceLandmarker.d.ts +14 -0
  429. package/web/FaceLandmarker.js +49 -0
  430. package/web/Facemesh.cjs.js +1 -0
  431. package/web/Facemesh.d.ts +118 -0
  432. package/web/Facemesh.js +4538 -0
  433. package/web/Html.cjs.js +1 -0
  434. package/web/Html.d.ts +34 -0
  435. package/web/Html.js +375 -0
  436. package/web/KeyboardControls.cjs.js +1 -0
  437. package/web/KeyboardControls.d.ts +37 -0
  438. package/web/KeyboardControls.js +104 -0
  439. package/web/Loader.cjs.js +1 -0
  440. package/web/Loader.d.ts +12 -0
  441. package/web/Loader.js +101 -0
  442. package/web/PresentationControls.cjs.js +1 -0
  443. package/web/PresentationControls.d.ts +16 -0
  444. package/web/PresentationControls.js +79 -0
  445. package/web/ScreenVideoTexture.cjs.js +1 -0
  446. package/web/ScreenVideoTexture.d.ts +17 -0
  447. package/web/ScreenVideoTexture.js +30 -0
  448. package/web/ScrollControls.cjs.js +1 -0
  449. package/web/ScrollControls.d.ts +45 -0
  450. package/web/ScrollControls.js +237 -0
  451. package/web/Select.cjs.js +1 -0
  452. package/web/Select.d.ts +14 -0
  453. package/web/Select.js +171 -0
  454. package/web/View.cjs.js +1 -0
  455. package/web/View.d.ts +34 -0
  456. package/web/View.js +259 -0
  457. package/web/WebcamVideoTexture.cjs.js +1 -0
  458. package/web/WebcamVideoTexture.d.ts +17 -0
  459. package/web/WebcamVideoTexture.js +33 -0
  460. package/web/index.cjs.js +1 -0
  461. package/web/index.d.ts +17 -0
  462. package/web/index.js +176 -0
  463. package/web/pivotControls/AxisArrow.cjs.js +1 -0
  464. package/web/pivotControls/AxisArrow.d.ts +7 -0
  465. package/web/pivotControls/AxisArrow.js +193 -0
  466. package/web/pivotControls/AxisRotator.cjs.js +1 -0
  467. package/web/pivotControls/AxisRotator.d.ts +7 -0
  468. package/web/pivotControls/AxisRotator.js +220 -0
  469. package/web/pivotControls/PlaneSlider.cjs.js +1 -0
  470. package/web/pivotControls/PlaneSlider.d.ts +7 -0
  471. package/web/pivotControls/PlaneSlider.js +202 -0
  472. package/web/pivotControls/ScalingSphere.cjs.js +1 -0
  473. package/web/pivotControls/ScalingSphere.d.ts +7 -0
  474. package/web/pivotControls/ScalingSphere.js +192 -0
  475. package/web/pivotControls/context.cjs.js +1 -0
  476. package/web/pivotControls/context.d.ts +33 -0
  477. package/web/pivotControls/context.js +5 -0
  478. package/web/pivotControls/index.cjs.js +1 -0
  479. package/web/pivotControls/index.d.ts +39 -0
  480. package/web/pivotControls/index.js +213 -0
  481. package/web/useCursor.cjs.js +1 -0
  482. package/web/useCursor.d.ts +1 -0
  483. package/web/useCursor.js +12 -0
@@ -0,0 +1,72 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import { useThree, useFrame } from '@react-three/fiber';
3
+ import * as React from 'react';
4
+ import { TrackballControls as TrackballControls$1 } from 'three-stdlib';
5
+
6
+ const TrackballControls = /* @__PURE__ */React.forwardRef(({
7
+ makeDefault,
8
+ camera,
9
+ domElement,
10
+ regress,
11
+ onChange,
12
+ onStart,
13
+ onEnd,
14
+ ...restProps
15
+ }, ref) => {
16
+ const {
17
+ invalidate,
18
+ camera: defaultCamera,
19
+ gl,
20
+ events,
21
+ set,
22
+ get,
23
+ performance,
24
+ viewport
25
+ } = useThree();
26
+ const explCamera = camera || defaultCamera;
27
+ const explDomElement = domElement || events.connected || gl.domElement;
28
+ const controls = React.useMemo(() => new TrackballControls$1(explCamera), [explCamera]);
29
+ useFrame(() => {
30
+ if (controls.enabled) controls.update();
31
+ }, -1);
32
+ React.useEffect(() => {
33
+ controls.connect(explDomElement);
34
+ return () => void controls.dispose();
35
+ }, [explDomElement, regress, controls, invalidate]);
36
+ React.useEffect(() => {
37
+ const callback = e => {
38
+ invalidate();
39
+ if (regress) performance.regress();
40
+ if (onChange) onChange(e);
41
+ };
42
+ controls.addEventListener('change', callback);
43
+ if (onStart) controls.addEventListener('start', onStart);
44
+ if (onEnd) controls.addEventListener('end', onEnd);
45
+ return () => {
46
+ if (onStart) controls.removeEventListener('start', onStart);
47
+ if (onEnd) controls.removeEventListener('end', onEnd);
48
+ controls.removeEventListener('change', callback);
49
+ };
50
+ }, [onChange, onStart, onEnd, controls, invalidate]);
51
+ React.useEffect(() => {
52
+ controls.handleResize();
53
+ }, [viewport]);
54
+ React.useEffect(() => {
55
+ if (makeDefault) {
56
+ const old = get().controls;
57
+ // @ts-ignore https://github.com/three-types/three-ts-types/pull/1398
58
+ set({
59
+ controls
60
+ });
61
+ return () => set({
62
+ controls: old
63
+ });
64
+ }
65
+ }, [makeDefault, controls]);
66
+ return /*#__PURE__*/React.createElement("primitive", _extends({
67
+ ref: ref,
68
+ object: controls
69
+ }, restProps));
70
+ });
71
+
72
+ export { TrackballControls };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@react-three/fiber"),t=require("react"),r=require("three"),n=require("meshline");function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var i=o(t);const u={width:.2,length:1,decay:1,local:!1,stride:0,interval:1},s=(e,t=1)=>(e.set(e.subarray(t)),e.fill(-1/0,-t),e);function c(t,n){const{length:o,local:c,decay:l,interval:a,stride:f}={...u,...n},d=i.useRef(null),[h]=i.useState((()=>new r.Vector3));i.useLayoutEffect((()=>{t&&(d.current=Float32Array.from({length:10*o*3},((e,r)=>t.position.getComponent(r%3))))}),[o,t]);const p=i.useRef(new r.Vector3),y=i.useRef(0);return e.useFrame((()=>{if(t&&d.current){if(0===y.current){let e;c?e=t.position:(t.getWorldPosition(h),e=h);const r=1*l;for(let t=0;t<r;t++)e.distanceTo(p.current)<f||(s(d.current,3),d.current.set(e.toArray(),d.current.length-3));p.current.copy(e)}y.current++,y.current=y.current%a}})),d}const l=i.forwardRef(((t,o)=>{const{children:s}=t,{width:l,length:a,decay:f,local:d,stride:h,interval:p}={...u,...t},{color:y="hotpink",attenuation:g,target:m}=t,v=e.useThree((e=>e.size)),b=e.useThree((e=>e.scene)),w=i.useRef(null),[M,j]=i.useState(null),O=c(M,{length:a,decay:f,local:d,stride:h,interval:p});i.useEffect((()=>{const e=(null==m?void 0:m.current)||w.current.children.find((e=>e instanceof r.Object3D));e&&j(e)}),[O,m]);const E=i.useMemo((()=>new n.MeshLineGeometry),[]),P=i.useMemo((()=>{var e,t;const o=new n.MeshLineMaterial({lineWidth:.1*l,color:y,sizeAttenuation:1,resolution:new r.Vector2(v.width,v.height)});let i;if(s)if(Array.isArray(s))i=s.find((e=>{const t=e;return"string"==typeof t.type&&"meshLineMaterial"===t.type}));else{const e=s;"string"==typeof e.type&&"meshLineMaterial"===e.type&&(i=e)}return"object"==typeof(null==(e=i)?void 0:e.props)&&null!==(null==(t=i)?void 0:t.props)&&o.setValues(i.props),o}),[l,y,v,s]);return i.useEffect((()=>{P.uniforms.resolution.value.set(v.width,v.height)}),[v]),e.useFrame((()=>{O.current&&E.setPoints(O.current,g)})),i.createElement("group",null,e.createPortal(i.createElement("mesh",{ref:o,geometry:E,material:P}),b),i.createElement("group",{ref:w},s))}));exports.Trail=l,exports.useTrail=c;
@@ -0,0 +1,21 @@
1
+ import * as React from 'react';
2
+ import { ColorRepresentation, Mesh, Object3D } from 'three';
3
+ import { MeshLineGeometry as MeshLineGeometryImpl } from 'meshline';
4
+ import { ForwardRefComponent } from '../helpers/ts-utils';
5
+ type Settings = {
6
+ width: number;
7
+ length: number;
8
+ decay: number;
9
+ local: boolean;
10
+ stride: number;
11
+ interval: number;
12
+ };
13
+ export type TrailProps = {
14
+ color?: ColorRepresentation;
15
+ attenuation?: (width: number) => number;
16
+ target?: React.RefObject<Object3D>;
17
+ } & Partial<Settings>;
18
+ export declare function useTrail(target: Object3D, settings: Partial<Settings>): React.RefObject<Float32Array | null>;
19
+ export type MeshLineGeometry = Mesh & MeshLineGeometryImpl;
20
+ export declare const Trail: ForwardRefComponent<React.PropsWithChildren<TrailProps>, MeshLineGeometry>;
21
+ export {};
package/core/Trail.js ADDED
@@ -0,0 +1,150 @@
1
+ import { useFrame, useThree, createPortal } from '@react-three/fiber';
2
+ import * as React from 'react';
3
+ import { Vector3, Object3D, Vector2 } from 'three';
4
+ import { MeshLineGeometry, MeshLineMaterial } from 'meshline';
5
+
6
+ const defaults = {
7
+ width: 0.2,
8
+ length: 1,
9
+ decay: 1,
10
+ local: false,
11
+ stride: 0,
12
+ interval: 1
13
+ };
14
+ const shiftLeft = (collection, steps = 1) => {
15
+ collection.set(collection.subarray(steps));
16
+ collection.fill(-Infinity, -steps);
17
+ return collection;
18
+ };
19
+ function useTrail(target, settings) {
20
+ const {
21
+ length,
22
+ local,
23
+ decay,
24
+ interval,
25
+ stride
26
+ } = {
27
+ ...defaults,
28
+ ...settings
29
+ };
30
+ const points = React.useRef(null);
31
+ const [worldPosition] = React.useState(() => new Vector3());
32
+ React.useLayoutEffect(() => {
33
+ if (target) {
34
+ points.current = Float32Array.from({
35
+ length: length * 10 * 3
36
+ }, (_, i) => target.position.getComponent(i % 3));
37
+ }
38
+ }, [length, target]);
39
+ const prevPosition = React.useRef(new Vector3());
40
+ const frameCount = React.useRef(0);
41
+ useFrame(() => {
42
+ if (!target) return;
43
+ if (!points.current) return;
44
+ if (frameCount.current === 0) {
45
+ let newPosition;
46
+ if (local) {
47
+ newPosition = target.position;
48
+ } else {
49
+ target.getWorldPosition(worldPosition);
50
+ newPosition = worldPosition;
51
+ }
52
+ const steps = 1 * decay;
53
+ for (let i = 0; i < steps; i++) {
54
+ if (newPosition.distanceTo(prevPosition.current) < stride) continue;
55
+ shiftLeft(points.current, 3);
56
+ points.current.set(newPosition.toArray(), points.current.length - 3);
57
+ }
58
+ prevPosition.current.copy(newPosition);
59
+ }
60
+ frameCount.current++;
61
+ frameCount.current = frameCount.current % interval;
62
+ });
63
+ return points;
64
+ }
65
+ const Trail = /* @__PURE__ */React.forwardRef((props, forwardRef) => {
66
+ const {
67
+ children
68
+ } = props;
69
+ const {
70
+ width,
71
+ length,
72
+ decay,
73
+ local,
74
+ stride,
75
+ interval
76
+ } = {
77
+ ...defaults,
78
+ ...props
79
+ };
80
+ const {
81
+ color = 'hotpink',
82
+ attenuation,
83
+ target
84
+ } = props;
85
+ const size = useThree(s => s.size);
86
+ const scene = useThree(s => s.scene);
87
+ const ref = React.useRef(null);
88
+ const [anchor, setAnchor] = React.useState(null);
89
+ const points = useTrail(anchor, {
90
+ length,
91
+ decay,
92
+ local,
93
+ stride,
94
+ interval
95
+ });
96
+ React.useEffect(() => {
97
+ const t = (target == null ? void 0 : target.current) || ref.current.children.find(o => {
98
+ return o instanceof Object3D;
99
+ });
100
+ if (t) {
101
+ setAnchor(t);
102
+ }
103
+ }, [points, target]);
104
+ const geo = React.useMemo(() => new MeshLineGeometry(), []);
105
+ const mat = React.useMemo(() => {
106
+ var _matOverride, _matOverride2;
107
+ const m = new MeshLineMaterial({
108
+ lineWidth: 0.1 * width,
109
+ color: color,
110
+ sizeAttenuation: 1,
111
+ resolution: new Vector2(size.width, size.height)
112
+ });
113
+
114
+ // Get and apply first <meshLineMaterial /> from children
115
+ let matOverride;
116
+ if (children) {
117
+ if (Array.isArray(children)) {
118
+ matOverride = children.find(child => {
119
+ const c = child;
120
+ return typeof c.type === 'string' && c.type === 'meshLineMaterial';
121
+ });
122
+ } else {
123
+ const c = children;
124
+ if (typeof c.type === 'string' && c.type === 'meshLineMaterial') {
125
+ matOverride = c;
126
+ }
127
+ }
128
+ }
129
+ if (typeof ((_matOverride = matOverride) == null ? void 0 : _matOverride.props) === 'object' && ((_matOverride2 = matOverride) == null ? void 0 : _matOverride2.props) !== null) {
130
+ m.setValues(matOverride.props);
131
+ }
132
+ return m;
133
+ }, [width, color, size, children]);
134
+ React.useEffect(() => {
135
+ mat.uniforms.resolution.value.set(size.width, size.height);
136
+ }, [size]);
137
+ useFrame(() => {
138
+ if (!points.current) return;
139
+ geo.setPoints(points.current, attenuation);
140
+ });
141
+ return /*#__PURE__*/React.createElement("group", null, createPortal(/*#__PURE__*/React.createElement("mesh", {
142
+ ref: forwardRef,
143
+ geometry: geo,
144
+ material: mat
145
+ }), scene), /*#__PURE__*/React.createElement("group", {
146
+ ref: ref
147
+ }, children));
148
+ });
149
+
150
+ export { Trail, useTrail };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var t=require("react"),e=require("@react-three/fiber"),i=require("three");function s(t){if(t&&t.__esModule)return t;var e=Object.create(null);return t&&Object.keys(t).forEach((function(i){if("default"!==i){var s=Object.getOwnPropertyDescriptor(t,i);Object.defineProperty(e,i,s.get?s:{enumerable:!0,get:function(){return t[i]}})}})),e.default=t,Object.freeze(e)}var a=s(t);const h=t=>Math.sqrt(1-Math.pow(t-1,2));class r{constructor({size:t=256,maxAge:e=750,radius:i=.3,intensity:s=.2,interpolate:a=0,smoothing:r=0,minForce:n=.3,blend:c="screen",ease:o=h}={}){this.size=t,this.maxAge=e,this.radius=i,this.intensity=s,this.ease=o,this.interpolate=a,this.smoothing=r,this.minForce=n,this.blend=c,this.trail=[],this.force=0,this.initTexture()}initTexture(){this.canvas=document.createElement("canvas"),this.canvas.width=this.canvas.height=this.size;const t=this.canvas.getContext("2d");if(null===t)throw new Error("2D not available");this.ctx=t,this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height),this.texture=new i.Texture(this.canvas),this.canvas.id="touchTexture",this.canvas.style.width=this.canvas.style.height=`${this.canvas.width}px`}update(t){this.clear(),this.trail.forEach(((e,i)=>{e.age+=1e3*t,e.age>this.maxAge&&this.trail.splice(i,1)})),this.trail.length||(this.force=0),this.trail.forEach((t=>{this.drawTouch(t)})),this.texture.needsUpdate=!0}clear(){this.ctx.globalCompositeOperation="source-over",this.ctx.fillStyle="black",this.ctx.fillRect(0,0,this.canvas.width,this.canvas.height)}addTouch(t){const e=this.trail[this.trail.length-1];if(e){const i=e.x-t.x,s=e.y-t.y,a=i*i+s*s,h=Math.max(this.minForce,Math.min(1e4*a,1));if(this.force=function(t,e,i=.9){return e*i+t*(1-i)}(h,this.force,this.smoothing),this.interpolate){const t=Math.ceil(a/Math.pow(.5*this.radius/this.interpolate,2));if(t>1)for(let a=1;a<t;a++)this.trail.push({x:e.x-i/t*a,y:e.y-s/t*a,age:0,force:h})}}this.trail.push({x:t.x,y:t.y,age:0,force:this.force})}drawTouch(t){const e={x:t.x*this.size,y:(1-t.y)*this.size};let i=1;i=t.age<.3*this.maxAge?this.ease(t.age/(.3*this.maxAge)):this.ease(1-(t.age-.3*this.maxAge)/(.7*this.maxAge)),i*=t.force,this.ctx.globalCompositeOperation=this.blend;const s=this.size*this.radius*i,a=this.ctx.createRadialGradient(e.x,e.y,Math.max(0,.25*s),e.x,e.y,Math.max(0,s));a.addColorStop(0,`rgba(255, 255, 255, ${this.intensity})`),a.addColorStop(1,"rgba(0, 0, 0, 0.0)"),this.ctx.beginPath(),this.ctx.fillStyle=a,this.ctx.arc(e.x,e.y,Math.max(0,s),0,2*Math.PI),this.ctx.fill()}}function n(i={}){const{size:s,maxAge:a,radius:h,intensity:n,interpolate:c,smoothing:o,minForce:l,blend:u,ease:x}=i,d=t.useMemo((()=>new r(i)),[s,a,h,n,c,o,l,u,x]);e.useFrame(((t,e)=>{d.update(e)}));const f=t.useCallback((t=>d.addTouch(t.uv)),[d]);return[d.texture,f]}exports.TrailTexture=({children:t,...e})=>{const i=n(e);return a.createElement(a.Fragment,null,null==t?void 0:t(i))},exports.useTrailTexture=n;
@@ -0,0 +1,19 @@
1
+ import * as React from 'react';
2
+ import { Texture } from 'three';
3
+ type TrailConfig = {
4
+ size?: number;
5
+ maxAge?: number;
6
+ radius?: number;
7
+ intensity?: number;
8
+ interpolate?: number;
9
+ smoothing?: number;
10
+ minForce?: number;
11
+ blend?: CanvasRenderingContext2D['globalCompositeOperation'];
12
+ ease?: (t: number) => number;
13
+ };
14
+ export declare function useTrailTexture(config?: Partial<TrailConfig>): [Texture, (ThreeEvent: any) => void];
15
+ export type TrailTextureProps = {
16
+ children?: (texture: ReturnType<typeof useTrailTexture>) => React.ReactNode;
17
+ } & TrailConfig;
18
+ export declare const TrailTexture: ({ children, ...config }: TrailTextureProps) => React.JSX.Element;
19
+ export {};
@@ -0,0 +1,159 @@
1
+ import * as React from 'react';
2
+ import { useMemo, useCallback } from 'react';
3
+ import { useFrame } from '@react-three/fiber';
4
+ import { Texture } from 'three';
5
+
6
+ // smooth new sample (measurement) based on previous sample (current)
7
+ function smoothAverage(current, measurement, smoothing = 0.9) {
8
+ return measurement * smoothing + current * (1.0 - smoothing);
9
+ }
10
+
11
+ // default ease
12
+ const easeCircleOut = x => Math.sqrt(1 - Math.pow(x - 1, 2));
13
+ class TrailTextureImpl {
14
+ constructor({
15
+ size = 256,
16
+ maxAge = 750,
17
+ radius = 0.3,
18
+ intensity = 0.2,
19
+ interpolate = 0,
20
+ smoothing = 0,
21
+ minForce = 0.3,
22
+ blend = 'screen',
23
+ // source-over is canvas default. Others are slower
24
+ ease = easeCircleOut
25
+ } = {}) {
26
+ this.size = size;
27
+ this.maxAge = maxAge;
28
+ this.radius = radius;
29
+ this.intensity = intensity;
30
+ this.ease = ease;
31
+ this.interpolate = interpolate;
32
+ this.smoothing = smoothing;
33
+ this.minForce = minForce;
34
+ this.blend = blend;
35
+ this.trail = [];
36
+ this.force = 0;
37
+ this.initTexture();
38
+ }
39
+ initTexture() {
40
+ this.canvas = document.createElement('canvas');
41
+ this.canvas.width = this.canvas.height = this.size;
42
+ const ctx = this.canvas.getContext('2d');
43
+ if (ctx === null) {
44
+ throw new Error('2D not available');
45
+ }
46
+ this.ctx = ctx;
47
+ this.ctx.fillStyle = 'black';
48
+ this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);
49
+ this.texture = new Texture(this.canvas);
50
+ this.canvas.id = 'touchTexture';
51
+ this.canvas.style.width = this.canvas.style.height = `${this.canvas.width}px`;
52
+ }
53
+ update(delta) {
54
+ this.clear();
55
+
56
+ // age points
57
+ this.trail.forEach((point, i) => {
58
+ point.age += delta * 1000;
59
+ // remove old
60
+ if (point.age > this.maxAge) {
61
+ this.trail.splice(i, 1);
62
+ }
63
+ });
64
+
65
+ // reset force when empty (when smoothing)
66
+ if (!this.trail.length) this.force = 0;
67
+ this.trail.forEach(point => {
68
+ this.drawTouch(point);
69
+ });
70
+ this.texture.needsUpdate = true;
71
+ }
72
+ clear() {
73
+ this.ctx.globalCompositeOperation = 'source-over';
74
+ this.ctx.fillStyle = 'black';
75
+ this.ctx.fillRect(0, 0, this.canvas.width, this.canvas.height);
76
+ }
77
+ addTouch(point) {
78
+ const last = this.trail[this.trail.length - 1];
79
+ if (last) {
80
+ const dx = last.x - point.x;
81
+ const dy = last.y - point.y;
82
+ const dd = dx * dx + dy * dy;
83
+ const force = Math.max(this.minForce, Math.min(dd * 10000, 1));
84
+ this.force = smoothAverage(force, this.force, this.smoothing);
85
+ if (!!this.interpolate) {
86
+ const lines = Math.ceil(dd / Math.pow(this.radius * 0.5 / this.interpolate, 2));
87
+ if (lines > 1) {
88
+ for (let i = 1; i < lines; i++) {
89
+ this.trail.push({
90
+ x: last.x - dx / lines * i,
91
+ y: last.y - dy / lines * i,
92
+ age: 0,
93
+ force
94
+ });
95
+ }
96
+ }
97
+ }
98
+ }
99
+ this.trail.push({
100
+ x: point.x,
101
+ y: point.y,
102
+ age: 0,
103
+ force: this.force
104
+ });
105
+ }
106
+ drawTouch(point) {
107
+ const pos = {
108
+ x: point.x * this.size,
109
+ y: (1 - point.y) * this.size
110
+ };
111
+ let intensity = 1;
112
+ if (point.age < this.maxAge * 0.3) {
113
+ intensity = this.ease(point.age / (this.maxAge * 0.3));
114
+ } else {
115
+ intensity = this.ease(1 - (point.age - this.maxAge * 0.3) / (this.maxAge * 0.7));
116
+ }
117
+ intensity *= point.force;
118
+
119
+ // apply blending
120
+ this.ctx.globalCompositeOperation = this.blend;
121
+ const radius = this.size * this.radius * intensity;
122
+ const grd = this.ctx.createRadialGradient(pos.x, pos.y, Math.max(0, radius * 0.25), pos.x, pos.y, Math.max(0, radius));
123
+ grd.addColorStop(0, `rgba(255, 255, 255, ${this.intensity})`);
124
+ grd.addColorStop(1, `rgba(0, 0, 0, 0.0)`);
125
+ this.ctx.beginPath();
126
+ this.ctx.fillStyle = grd;
127
+ this.ctx.arc(pos.x, pos.y, Math.max(0, radius), 0, Math.PI * 2);
128
+ this.ctx.fill();
129
+ }
130
+ }
131
+ function useTrailTexture(config = {}) {
132
+ const {
133
+ size,
134
+ maxAge,
135
+ radius,
136
+ intensity,
137
+ interpolate,
138
+ smoothing,
139
+ minForce,
140
+ blend,
141
+ ease
142
+ } = config;
143
+ const trail = useMemo(() => new TrailTextureImpl(config), [size, maxAge, radius, intensity, interpolate, smoothing, minForce, blend, ease]);
144
+ useFrame((_, delta) => void trail.update(delta));
145
+ const onMove = useCallback(e => trail.addTouch(e.uv), [trail]);
146
+ return [trail.texture, onMove];
147
+ }
148
+
149
+ //
150
+
151
+ const TrailTexture = ({
152
+ children,
153
+ ...config
154
+ }) => {
155
+ const ret = useTrailTexture(config);
156
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(ret));
157
+ };
158
+
159
+ export { TrailTexture, useTrailTexture };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three"),o=require("three-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=u(e),c=s(r),i=s(n);const f=c.forwardRef((({children:e,domElement:r,onChange:n,onMouseDown:u,onMouseUp:s,onObjectChange:f,object:l,makeDefault:d,camera:v,enabled:h,axis:m,mode:E,translationSnap:b,rotationSnap:g,scaleSnap:p,space:L,size:j,showX:w,showY:y,showZ:O,...T},D)=>{const C=t.useThree((e=>e.controls)),R=t.useThree((e=>e.gl)),S=t.useThree((e=>e.events)),q=t.useThree((e=>e.camera)),x=t.useThree((e=>e.invalidate)),M=t.useThree((e=>e.get)),_=t.useThree((e=>e.set)),z=v||q,P=r||S.connected||R.domElement,U=c.useMemo((()=>new o.TransformControls(z,P)),[z,P]),k=c.useRef(null);c.useLayoutEffect((()=>(l?U.attach(l instanceof i.Object3D?l:l.current):k.current instanceof i.Object3D&&U.attach(k.current),()=>{U.detach()})),[l,e,U]),c.useEffect((()=>{if(C){const e=e=>C.enabled=!e.value;return U.addEventListener("dragging-changed",e),()=>U.removeEventListener("dragging-changed",e)}}),[U,C]);const X=c.useRef(void 0),Y=c.useRef(void 0),Z=c.useRef(void 0),F=c.useRef(void 0);return c.useLayoutEffect((()=>{X.current=n}),[n]),c.useLayoutEffect((()=>{Y.current=u}),[u]),c.useLayoutEffect((()=>{Z.current=s}),[s]),c.useLayoutEffect((()=>{F.current=f}),[f]),c.useEffect((()=>{const e=e=>{x(),null==X.current||X.current(e)},t=e=>null==Y.current?void 0:Y.current(e),r=e=>null==Z.current?void 0:Z.current(e),n=e=>null==F.current?void 0:F.current(e);return U.addEventListener("change",e),U.addEventListener("mouseDown",t),U.addEventListener("mouseUp",r),U.addEventListener("objectChange",n),()=>{U.removeEventListener("change",e),U.removeEventListener("mouseDown",t),U.removeEventListener("mouseUp",r),U.removeEventListener("objectChange",n)}}),[x,U]),c.useEffect((()=>{if(d){const e=M().controls;return _({controls:U}),()=>_({controls:e})}}),[d,U]),c.createElement(c.Fragment,null,c.createElement("primitive",{ref:D,object:U,enabled:h,axis:m,mode:E,translationSnap:b,rotationSnap:g,scaleSnap:p,space:L,size:j,showX:w,showY:y,showZ:O}),c.createElement("group",a.default({ref:k},T),e))}));exports.TransformControls=f;
@@ -0,0 +1,28 @@
1
+ import { ThreeElement, ThreeElements } from '@react-three/fiber';
2
+ import * as React from 'react';
3
+ import * as THREE from 'three';
4
+ import { TransformControls as TransformControlsImpl } from 'three-stdlib';
5
+ import { ForwardRefComponent } from '../helpers/ts-utils';
6
+ export type TransformControlsProps = Omit<ThreeElement<typeof TransformControlsImpl>, 'ref' | 'args'> & Omit<ThreeElements['group'], 'ref'> & {
7
+ object?: THREE.Object3D | React.RefObject<THREE.Object3D>;
8
+ enabled?: boolean;
9
+ axis?: string | null;
10
+ domElement?: HTMLElement;
11
+ mode?: 'translate' | 'rotate' | 'scale';
12
+ translationSnap?: number | null;
13
+ rotationSnap?: number | null;
14
+ scaleSnap?: number | null;
15
+ space?: 'world' | 'local';
16
+ size?: number;
17
+ showX?: boolean;
18
+ showY?: boolean;
19
+ showZ?: boolean;
20
+ children?: React.ReactElement<THREE.Object3D>;
21
+ camera?: THREE.Camera;
22
+ onChange?: (e?: THREE.Event) => void;
23
+ onMouseDown?: (e?: THREE.Event) => void;
24
+ onMouseUp?: (e?: THREE.Event) => void;
25
+ onObjectChange?: (e?: THREE.Event) => void;
26
+ makeDefault?: boolean;
27
+ };
28
+ export declare const TransformControls: ForwardRefComponent<TransformControlsProps, TransformControlsImpl>;
@@ -0,0 +1,114 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import { useThree } from '@react-three/fiber';
3
+ import * as React from 'react';
4
+ import * as THREE from 'three';
5
+ import { TransformControls as TransformControls$1 } from 'three-stdlib';
6
+
7
+ const TransformControls = /* @__PURE__ */React.forwardRef(({
8
+ children,
9
+ domElement,
10
+ onChange,
11
+ onMouseDown,
12
+ onMouseUp,
13
+ onObjectChange,
14
+ object,
15
+ makeDefault,
16
+ camera,
17
+ // Transform
18
+ enabled,
19
+ axis,
20
+ mode,
21
+ translationSnap,
22
+ rotationSnap,
23
+ scaleSnap,
24
+ space,
25
+ size,
26
+ showX,
27
+ showY,
28
+ showZ,
29
+ ...props
30
+ }, ref) => {
31
+ const defaultControls = useThree(state => state.controls);
32
+ const gl = useThree(state => state.gl);
33
+ const events = useThree(state => state.events);
34
+ const defaultCamera = useThree(state => state.camera);
35
+ const invalidate = useThree(state => state.invalidate);
36
+ const get = useThree(state => state.get);
37
+ const set = useThree(state => state.set);
38
+ const explCamera = camera || defaultCamera;
39
+ const explDomElement = domElement || events.connected || gl.domElement;
40
+ const controls = React.useMemo(() => new TransformControls$1(explCamera, explDomElement), [explCamera, explDomElement]);
41
+ const group = React.useRef(null);
42
+ React.useLayoutEffect(() => {
43
+ if (object) {
44
+ controls.attach(object instanceof THREE.Object3D ? object : object.current);
45
+ } else if (group.current instanceof THREE.Object3D) {
46
+ controls.attach(group.current);
47
+ }
48
+ return () => void controls.detach();
49
+ }, [object, children, controls]);
50
+ React.useEffect(() => {
51
+ if (defaultControls) {
52
+ const callback = event => defaultControls.enabled = !event.value;
53
+ controls.addEventListener('dragging-changed', callback);
54
+ return () => controls.removeEventListener('dragging-changed', callback);
55
+ }
56
+ }, [controls, defaultControls]);
57
+ const onChangeRef = React.useRef(undefined);
58
+ const onMouseDownRef = React.useRef(undefined);
59
+ const onMouseUpRef = React.useRef(undefined);
60
+ const onObjectChangeRef = React.useRef(undefined);
61
+ React.useLayoutEffect(() => void (onChangeRef.current = onChange), [onChange]);
62
+ React.useLayoutEffect(() => void (onMouseDownRef.current = onMouseDown), [onMouseDown]);
63
+ React.useLayoutEffect(() => void (onMouseUpRef.current = onMouseUp), [onMouseUp]);
64
+ React.useLayoutEffect(() => void (onObjectChangeRef.current = onObjectChange), [onObjectChange]);
65
+ React.useEffect(() => {
66
+ const onChange = e => {
67
+ invalidate();
68
+ onChangeRef.current == null || onChangeRef.current(e);
69
+ };
70
+ const onMouseDown = e => onMouseDownRef.current == null ? void 0 : onMouseDownRef.current(e);
71
+ const onMouseUp = e => onMouseUpRef.current == null ? void 0 : onMouseUpRef.current(e);
72
+ const onObjectChange = e => onObjectChangeRef.current == null ? void 0 : onObjectChangeRef.current(e);
73
+ controls.addEventListener('change', onChange);
74
+ controls.addEventListener('mouseDown', onMouseDown);
75
+ controls.addEventListener('mouseUp', onMouseUp);
76
+ controls.addEventListener('objectChange', onObjectChange);
77
+ return () => {
78
+ controls.removeEventListener('change', onChange);
79
+ controls.removeEventListener('mouseDown', onMouseDown);
80
+ controls.removeEventListener('mouseUp', onMouseUp);
81
+ controls.removeEventListener('objectChange', onObjectChange);
82
+ };
83
+ }, [invalidate, controls]);
84
+ React.useEffect(() => {
85
+ if (makeDefault) {
86
+ const old = get().controls;
87
+ set({
88
+ controls
89
+ });
90
+ return () => set({
91
+ controls: old
92
+ });
93
+ }
94
+ }, [makeDefault, controls]);
95
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("primitive", {
96
+ ref: ref,
97
+ object: controls,
98
+ enabled: enabled,
99
+ axis: axis,
100
+ mode: mode,
101
+ translationSnap: translationSnap,
102
+ rotationSnap: rotationSnap,
103
+ scaleSnap: scaleSnap,
104
+ space: space,
105
+ size: size,
106
+ showX: showX,
107
+ showY: showY,
108
+ showZ: showZ
109
+ }), /*#__PURE__*/React.createElement("group", _extends({
110
+ ref: group
111
+ }, props), children));
112
+ });
113
+
114
+ export { TransformControls };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("three"),t=require("@react-three/fiber"),n=require("suspend-react"),o=require("hls.js");function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var s=u(e),a=u(r);const c=((e,r)=>"undefined"!=typeof window&&"function"==typeof(null==(e=window.document)?void 0:e.createElement)&&"string"==typeof(null==(r=window.navigator)?void 0:r.userAgent))();let i=null;function l(r,{unsuspend:s="loadedmetadata",start:l=!0,hls:d={},crossOrigin:p="anonymous",muted:m=!0,loop:v=!0,playsInline:y=!0,onVideoFrame:b,...g}={}){const w=t.useThree((e=>e.gl)),h=e.useRef(null),E=n.suspend((()=>new Promise((async e=>{let t,n;"string"==typeof r?t=r:n=r;const l=Object.assign(document.createElement("video"),{src:t,srcObject:n,crossOrigin:p,loop:v,muted:m,playsInline:y,...g});if(t&&c&&t.endsWith(".m3u8")){const e=h.current=await async function(...e){var r;null!==(r=i)&&void 0!==r||(i=await Promise.resolve().then((function(){return u(require("hls.js"))})));const t=i.default;return t.isSupported()?new t(...e):null}(d);e&&(e.on(o.Events.MEDIA_ATTACHED,(()=>{e.loadSource(t)})),e.attachMedia(l))}const f=new a.VideoTexture(l);f.colorSpace=w.outputColorSpace,l.addEventListener(s,(()=>e(f)))}))),[r]),O=E.source.data;return f(O,b),e.useEffect((()=>(l&&E.image.play(),()=>{h.current&&(h.current.destroy(),h.current=null)})),[E,l]),E}const d=e.forwardRef((({children:r,src:t,...n},o)=>{const u=l(t,n);return e.useEffect((()=>()=>{u.dispose()}),[u]),e.useImperativeHandle(o,(()=>u),[u]),s.createElement(s.Fragment,null,null==r?void 0:r(u))})),f=(r,t)=>{e.useEffect((()=>{if(!t)return;if(!r.requestVideoFrameCallback)return;let e;const n=(...o)=>{t(...o),e=r.requestVideoFrameCallback(n)};return r.requestVideoFrameCallback(n),()=>r.cancelVideoFrameCallback(e)}),[r,t])};exports.VideoTexture=d,exports.useVideoTexture=l;
@@ -0,0 +1,26 @@
1
+ import * as React from 'react';
2
+ import * as THREE from 'three';
3
+ import { type default as Hls } from 'hls.js';
4
+ declare function getHls(...args: ConstructorParameters<typeof Hls>): Promise<Hls | null>;
5
+ export declare function useVideoTexture(srcOrSrcObject: HTMLVideoElement['src' | 'srcObject'], { unsuspend, start, hls: hlsConfig, crossOrigin, muted, loop, playsInline, onVideoFrame, ...videoProps }?: {
6
+ unsuspend?: keyof HTMLVideoElementEventMap;
7
+ start?: boolean;
8
+ hls?: Parameters<typeof getHls>[0];
9
+ onVideoFrame?: VideoFrameRequestCallback;
10
+ } & Partial<Omit<HTMLVideoElement, 'children' | 'src' | 'srcObject'>>): THREE.VideoTexture;
11
+ type UseVideoTextureParams = Parameters<typeof useVideoTexture>;
12
+ type VideoTexture = ReturnType<typeof useVideoTexture>;
13
+ export type VideoTextureProps = {
14
+ children?: (texture: VideoTexture) => React.ReactNode;
15
+ src: UseVideoTextureParams[0];
16
+ } & UseVideoTextureParams[1];
17
+ export declare const VideoTexture: React.ForwardRefExoticComponent<{
18
+ children?: (texture: VideoTexture) => React.ReactNode;
19
+ src: UseVideoTextureParams[0];
20
+ } & {
21
+ unsuspend?: keyof HTMLVideoElementEventMap;
22
+ start?: boolean;
23
+ hls?: Parameters<typeof getHls>[0];
24
+ onVideoFrame?: VideoFrameRequestCallback;
25
+ } & Partial<Omit<HTMLVideoElement, "children" | "src" | "srcObject">> & React.RefAttributes<THREE.VideoTexture>>;
26
+ export {};