@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,189 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { useThree, useFrame, createPortal, applyProps, extend } from '@react-three/fiber';
4
+ import { Scene, WebGLCubeRenderTarget, HalfFloatType } from 'three';
5
+ import { GroundProjectedEnv } from 'three-stdlib';
6
+ import { useEnvironment } from './useEnvironment.js';
7
+
8
+ const isRef = obj => obj.current && obj.current.isScene;
9
+ const resolveScene = scene => isRef(scene) ? scene.current : scene;
10
+ function setEnvProps(background, scene, defaultScene, texture, sceneProps = {}) {
11
+ var _target$backgroundRot, _target$backgroundRot2, _target$environmentRo, _target$environmentRo2;
12
+ // defaults
13
+ sceneProps = {
14
+ backgroundBlurriness: 0,
15
+ backgroundIntensity: 1,
16
+ backgroundRotation: [0, 0, 0],
17
+ environmentIntensity: 1,
18
+ environmentRotation: [0, 0, 0],
19
+ ...sceneProps
20
+ };
21
+ const target = resolveScene(scene || defaultScene);
22
+ const oldbg = target.background;
23
+ const oldenv = target.environment;
24
+ const oldSceneProps = {
25
+ // @ts-ignore
26
+ backgroundBlurriness: target.backgroundBlurriness,
27
+ // @ts-ignore
28
+ backgroundIntensity: target.backgroundIntensity,
29
+ // @ts-ignore
30
+ backgroundRotation: (_target$backgroundRot = (_target$backgroundRot2 = target.backgroundRotation) == null || _target$backgroundRot2.clone == null ? void 0 : _target$backgroundRot2.clone()) !== null && _target$backgroundRot !== void 0 ? _target$backgroundRot : [0, 0, 0],
31
+ // @ts-ignore
32
+ environmentIntensity: target.environmentIntensity,
33
+ // @ts-ignore
34
+ environmentRotation: (_target$environmentRo = (_target$environmentRo2 = target.environmentRotation) == null || _target$environmentRo2.clone == null ? void 0 : _target$environmentRo2.clone()) !== null && _target$environmentRo !== void 0 ? _target$environmentRo : [0, 0, 0]
35
+ };
36
+ if (background !== 'only') target.environment = texture;
37
+ if (background) target.background = texture;
38
+ applyProps(target, sceneProps);
39
+ return () => {
40
+ if (background !== 'only') target.environment = oldenv;
41
+ if (background) target.background = oldbg;
42
+ applyProps(target, oldSceneProps);
43
+ };
44
+ }
45
+ function EnvironmentMap({
46
+ scene,
47
+ background = false,
48
+ map,
49
+ ...config
50
+ }) {
51
+ const defaultScene = useThree(state => state.scene);
52
+ React.useLayoutEffect(() => {
53
+ if (map) return setEnvProps(background, scene, defaultScene, map, config);
54
+ });
55
+ return null;
56
+ }
57
+ function EnvironmentCube({
58
+ background = false,
59
+ scene,
60
+ blur,
61
+ backgroundBlurriness,
62
+ backgroundIntensity,
63
+ backgroundRotation,
64
+ environmentIntensity,
65
+ environmentRotation,
66
+ ...rest
67
+ }) {
68
+ const texture = useEnvironment(rest);
69
+ const defaultScene = useThree(state => state.scene);
70
+ React.useLayoutEffect(() => {
71
+ return setEnvProps(background, scene, defaultScene, texture, {
72
+ backgroundBlurriness: blur !== null && blur !== void 0 ? blur : backgroundBlurriness,
73
+ backgroundIntensity,
74
+ backgroundRotation,
75
+ environmentIntensity,
76
+ environmentRotation
77
+ });
78
+ });
79
+ React.useEffect(() => {
80
+ return () => {
81
+ texture.dispose();
82
+ };
83
+ }, [texture]);
84
+ return null;
85
+ }
86
+ function EnvironmentPortal({
87
+ children,
88
+ near = 0.1,
89
+ far = 1000,
90
+ resolution = 256,
91
+ frames = 1,
92
+ map,
93
+ background = false,
94
+ blur,
95
+ backgroundBlurriness,
96
+ backgroundIntensity,
97
+ backgroundRotation,
98
+ environmentIntensity,
99
+ environmentRotation,
100
+ scene,
101
+ files,
102
+ path,
103
+ preset = undefined,
104
+ extensions
105
+ }) {
106
+ const gl = useThree(state => state.gl);
107
+ const defaultScene = useThree(state => state.scene);
108
+ const camera = React.useRef(null);
109
+ const [virtualScene] = React.useState(() => new Scene());
110
+ const fbo = React.useMemo(() => {
111
+ const fbo = new WebGLCubeRenderTarget(resolution);
112
+ fbo.texture.type = HalfFloatType;
113
+ return fbo;
114
+ }, [resolution]);
115
+ React.useEffect(() => {
116
+ return () => {
117
+ fbo.dispose();
118
+ };
119
+ }, [fbo]);
120
+ React.useLayoutEffect(() => {
121
+ if (frames === 1) {
122
+ const autoClear = gl.autoClear;
123
+ gl.autoClear = true;
124
+ camera.current.update(gl, virtualScene);
125
+ gl.autoClear = autoClear;
126
+ }
127
+ return setEnvProps(background, scene, defaultScene, fbo.texture, {
128
+ backgroundBlurriness: blur !== null && blur !== void 0 ? blur : backgroundBlurriness,
129
+ backgroundIntensity,
130
+ backgroundRotation,
131
+ environmentIntensity,
132
+ environmentRotation
133
+ });
134
+ }, [children, virtualScene, fbo.texture, scene, defaultScene, background, frames, gl]);
135
+ let count = 1;
136
+ useFrame(() => {
137
+ if (frames === Infinity || count < frames) {
138
+ const autoClear = gl.autoClear;
139
+ gl.autoClear = true;
140
+ camera.current.update(gl, virtualScene);
141
+ gl.autoClear = autoClear;
142
+ count++;
143
+ }
144
+ });
145
+ return /*#__PURE__*/React.createElement(React.Fragment, null, createPortal(/*#__PURE__*/React.createElement(React.Fragment, null, children, /*#__PURE__*/React.createElement("cubeCamera", {
146
+ ref: camera,
147
+ args: [near, far, fbo]
148
+ }), files || preset ? /*#__PURE__*/React.createElement(EnvironmentCube, {
149
+ background: true,
150
+ files: files,
151
+ preset: preset,
152
+ path: path,
153
+ extensions: extensions
154
+ }) : map ? /*#__PURE__*/React.createElement(EnvironmentMap, {
155
+ background: true,
156
+ map: map,
157
+ extensions: extensions
158
+ }) : null), virtualScene));
159
+ }
160
+ function EnvironmentGround(props) {
161
+ var _props$ground, _props$ground2, _scale, _props$ground3;
162
+ const textureDefault = useEnvironment(props);
163
+ const texture = props.map || textureDefault;
164
+ React.useMemo(() => extend({
165
+ GroundProjectedEnvImpl: GroundProjectedEnv
166
+ }), []);
167
+ React.useEffect(() => {
168
+ return () => {
169
+ textureDefault.dispose();
170
+ };
171
+ }, [textureDefault]);
172
+ const args = React.useMemo(() => [texture], [texture]);
173
+ const height = (_props$ground = props.ground) == null ? void 0 : _props$ground.height;
174
+ const radius = (_props$ground2 = props.ground) == null ? void 0 : _props$ground2.radius;
175
+ const scale = (_scale = (_props$ground3 = props.ground) == null ? void 0 : _props$ground3.scale) !== null && _scale !== void 0 ? _scale : 1000;
176
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(EnvironmentMap, _extends({}, props, {
177
+ map: texture
178
+ })), /*#__PURE__*/React.createElement("groundProjectedEnvImpl", {
179
+ args: args,
180
+ scale: scale,
181
+ height: height,
182
+ radius: radius
183
+ }));
184
+ }
185
+ function Environment(props) {
186
+ return props.ground ? /*#__PURE__*/React.createElement(EnvironmentGround, props) : props.map ? /*#__PURE__*/React.createElement(EnvironmentMap, props) : props.children ? /*#__PURE__*/React.createElement(EnvironmentPortal, props) : /*#__PURE__*/React.createElement(EnvironmentCube, props);
187
+ }
188
+
189
+ export { Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./Text3D.cjs.js"),t=require("./Center.cjs.js");function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@babel/runtime/helpers/extends"),require("@react-three/fiber"),require("three-stdlib"),require("./useFont.cjs.js"),require("suspend-react"),require("three");var c=a(e);const n=c.forwardRef((({font:e,color:a="#cbcbcb",bevelSize:n=.04,debug:l=!1,children:u,...s},i)=>{const[o,b]=c.useState(0),f=c.useCallback(((e=1)=>b(o+e)),[o]),d=c.useCallback(((e=1)=>b(o-e)),[o]),m=c.useMemo((()=>({incr:f,decr:d})),[f,d]);return c.useImperativeHandle(i,(()=>m),[m]),c.createElement("group",s,c.createElement(c.Suspense,{fallback:null},c.createElement(t.Center,{top:!0,cacheKey:JSON.stringify({counter:o,font:e})},c.createElement(r.Text3D,{bevelEnabled:!0,bevelSize:n,font:e},l?c.createElement("meshNormalMaterial",{wireframe:!0}):c.createElement("meshStandardMaterial",{color:a}),o))),u)}));exports.Example=n;
@@ -0,0 +1,13 @@
1
+ import * as React from 'react';
2
+ import type { Color } from '@react-three/fiber';
3
+ export type ExampleProps = {
4
+ font: string;
5
+ color?: Color;
6
+ debug?: boolean;
7
+ bevelSize?: number;
8
+ } & React.ComponentProps<'group'>;
9
+ export type ExampleApi = {
10
+ incr: (x?: number) => void;
11
+ decr: (x?: number) => void;
12
+ };
13
+ export declare const Example: React.ForwardRefExoticComponent<Omit<ExampleProps, "ref"> & React.RefAttributes<ExampleApi>>;
@@ -0,0 +1,46 @@
1
+ import * as React from 'react';
2
+ import { Text3D } from './Text3D.js';
3
+ import { Center } from './Center.js';
4
+
5
+ /* eslint react-hooks/exhaustive-deps: 1 */
6
+ /**
7
+ * A simple counter example component. Click to increment, meta-click to decrement.
8
+ */
9
+ const Example = /* @__PURE__ */React.forwardRef(({
10
+ font,
11
+ color = '#cbcbcb',
12
+ bevelSize = 0.04,
13
+ debug = false,
14
+ children,
15
+ ...props
16
+ }, fref) => {
17
+ const [counter, setCounter] = React.useState(0);
18
+ const incr = React.useCallback((x = 1) => setCounter(counter + x), [counter]);
19
+ const decr = React.useCallback((x = 1) => setCounter(counter - x), [counter]);
20
+
21
+ // ref-API
22
+ const api = React.useMemo(() => ({
23
+ incr,
24
+ decr
25
+ }), [incr, decr]);
26
+ React.useImperativeHandle(fref, () => api, [api]);
27
+ return /*#__PURE__*/React.createElement("group", props, /*#__PURE__*/React.createElement(React.Suspense, {
28
+ fallback: null
29
+ }, /*#__PURE__*/React.createElement(Center, {
30
+ top: true,
31
+ cacheKey: JSON.stringify({
32
+ counter,
33
+ font
34
+ })
35
+ }, /*#__PURE__*/React.createElement(Text3D, {
36
+ bevelEnabled: true,
37
+ bevelSize: bevelSize,
38
+ font: font
39
+ }, debug ? /*#__PURE__*/React.createElement("meshNormalMaterial", {
40
+ wireframe: true
41
+ }) : /*#__PURE__*/React.createElement("meshStandardMaterial", {
42
+ color: color
43
+ }), counter))), children);
44
+ });
45
+
46
+ export { Example };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("three"),r=require("@react-three/fiber");function n(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 u=n(e),i=n(t);function o(e,t,n){const o=r.useThree((e=>e.size)),s=r.useThree((e=>e.viewport)),a="number"==typeof e?e:o.width*s.dpr,l="number"==typeof t?t:o.height*s.dpr,f=("number"==typeof e?n:e)||{},{samples:p=0,depth:c,...d}=f,h=null!=c?c:f.depthBuffer,b=u.useMemo((()=>{const e=new i.WebGLRenderTarget(a,l,{minFilter:i.LinearFilter,magFilter:i.LinearFilter,type:i.HalfFloatType,...d});return h&&(e.depthTexture=new i.DepthTexture(a,l,i.FloatType)),e.samples=p,e}),[]);return u.useLayoutEffect((()=>{b.setSize(a,l),p&&(b.samples=p)}),[p,b,a,l]),u.useEffect((()=>()=>b.dispose()),[]),b}const s=e.forwardRef((({children:t,width:r,height:n,...i},s)=>{const a=o(r,n,i);return e.useImperativeHandle(s,(()=>a),[a]),u.createElement(u.Fragment,null,null==t?void 0:t(a))}));exports.Fbo=s,exports.useFBO=o;
package/core/Fbo.d.ts ADDED
@@ -0,0 +1,22 @@
1
+ import * as React from 'react';
2
+ import * as THREE from 'three';
3
+ import { type RenderTargetOptions } from 'three';
4
+ type FBOSettings = {
5
+ depth?: boolean;
6
+ } & RenderTargetOptions;
7
+ export declare function useFBO(width?: number | FBOSettings, height?: number, settings?: FBOSettings): THREE.WebGLRenderTarget<THREE.Texture>;
8
+ type UseFBOParams = Parameters<typeof useFBO>;
9
+ type Fbo = ReturnType<typeof useFBO>;
10
+ export type FboProps = {
11
+ children?: (target: Fbo) => React.ReactNode;
12
+ width?: UseFBOParams[0];
13
+ height?: UseFBOParams[1];
14
+ } & FBOSettings;
15
+ export declare const Fbo: React.ForwardRefExoticComponent<{
16
+ children?: (target: Fbo) => React.ReactNode;
17
+ width?: UseFBOParams[0];
18
+ height?: UseFBOParams[1];
19
+ } & {
20
+ depth?: boolean;
21
+ } & THREE.RenderTargetOptions & React.RefAttributes<THREE.WebGLRenderTarget<THREE.Texture>>>;
22
+ export {};
package/core/Fbo.js ADDED
@@ -0,0 +1,63 @@
1
+ import * as React from 'react';
2
+ import { forwardRef, useImperativeHandle } from 'react';
3
+ import * as THREE from 'three';
4
+ import { useThree } from '@react-three/fiber';
5
+
6
+ // 👇 uncomment when TS version supports function overloads
7
+ // export function useFBO(settings?: FBOSettings)
8
+ function useFBO(/** Width in pixels, or settings (will render fullscreen by default) */
9
+ width, /** Height in pixels */
10
+ height, /**Settings */
11
+ settings) {
12
+ const size = useThree(state => state.size);
13
+ const viewport = useThree(state => state.viewport);
14
+ const _width = typeof width === 'number' ? width : size.width * viewport.dpr;
15
+ const _height = typeof height === 'number' ? height : size.height * viewport.dpr;
16
+ const _settings = (typeof width === 'number' ? settings : width) || {};
17
+ const {
18
+ samples = 0,
19
+ depth,
20
+ ...targetSettings
21
+ } = _settings;
22
+ const depthBuffer = depth !== null && depth !== void 0 ? depth : _settings.depthBuffer; // backwards compatibility for deprecated `depth` prop
23
+
24
+ const target = React.useMemo(() => {
25
+ const target = new THREE.WebGLRenderTarget(_width, _height, {
26
+ minFilter: THREE.LinearFilter,
27
+ magFilter: THREE.LinearFilter,
28
+ type: THREE.HalfFloatType,
29
+ ...targetSettings
30
+ });
31
+ if (depthBuffer) {
32
+ target.depthTexture = new THREE.DepthTexture(_width, _height, THREE.FloatType);
33
+ }
34
+ target.samples = samples;
35
+ return target;
36
+ }, []);
37
+ React.useLayoutEffect(() => {
38
+ target.setSize(_width, _height);
39
+ if (samples) target.samples = samples;
40
+ }, [samples, target, _width, _height]);
41
+ React.useEffect(() => {
42
+ return () => target.dispose();
43
+ }, []);
44
+ return target;
45
+ }
46
+
47
+ //
48
+ // Fbo component
49
+ //
50
+
51
+ const Fbo = /* @__PURE__ */forwardRef(({
52
+ children,
53
+ width,
54
+ height,
55
+ ...settings
56
+ }, fref) => {
57
+ const target = useFBO(width, height, settings);
58
+ useImperativeHandle(fref, () => target, [target]); // expose target through ref
59
+
60
+ return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(target));
61
+ });
62
+
63
+ export { Fbo, useFBO };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three-stdlib"),u=require("@react-three/fiber"),n=require("./Clone.cjs.js");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var c=o(e),i=a(r);function l(e){return u.useLoader(t.FBXLoader,e)}l.preload=e=>u.useLoader.preload(t.FBXLoader,e),l.clear=e=>u.useLoader.clear(t.FBXLoader,e),exports.Fbx=function({path:e,...r}){const t=l(e).children[0];return i.createElement(n.Clone,c.default({},r,{object:t}))},exports.useFBX=l;
package/core/Fbx.d.ts ADDED
@@ -0,0 +1,11 @@
1
+ import * as React from 'react';
2
+ import { Group } from 'three';
3
+ import { Clone } from './Clone';
4
+ export declare function useFBX(path: string): Group;
5
+ export declare namespace useFBX {
6
+ var preload: (path: string) => void;
7
+ var clear: (input: string | string[]) => void;
8
+ }
9
+ export declare function Fbx({ path, ...props }: {
10
+ path: Parameters<typeof useFBX>[0];
11
+ } & Omit<React.ComponentProps<typeof Clone>, 'object'>): React.JSX.Element;
package/core/Fbx.js ADDED
@@ -0,0 +1,23 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { FBXLoader } from 'three-stdlib';
4
+ import { useLoader } from '@react-three/fiber';
5
+ import { Clone } from './Clone.js';
6
+
7
+ function useFBX(path) {
8
+ return useLoader(FBXLoader, path);
9
+ }
10
+ useFBX.preload = path => useLoader.preload(FBXLoader, path);
11
+ useFBX.clear = input => useLoader.clear(FBXLoader, input);
12
+ function Fbx({
13
+ path,
14
+ ...props
15
+ }) {
16
+ const fbx = useFBX(path);
17
+ const object = fbx.children[0];
18
+ return /*#__PURE__*/React.createElement(Clone, _extends({}, props, {
19
+ object: object
20
+ }));
21
+ }
22
+
23
+ export { Fbx, useFBX };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),n=require("three-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(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),c=o(r);const l=c.forwardRef((({domElement:e,makeDefault:r,...u},o)=>{const l=t.useThree((e=>e.camera)),a=t.useThree((e=>e.gl)),f=t.useThree((e=>e.events)),i=t.useThree((e=>e.get)),d=t.useThree((e=>e.set)),b=e||f.connected||a.domElement,[m]=c.useState((()=>new n.FirstPersonControls(l,b)));return c.useEffect((()=>{if(r){const e=i().controls;return d({controls:m}),()=>d({controls:e})}}),[r,m]),t.useFrame(((e,r)=>{m.update(r)}),-1),m?c.createElement("primitive",s.default({ref:o,object:m},u)):null}));exports.FirstPersonControls=l;
@@ -0,0 +1,8 @@
1
+ import { ThreeElement } from '@react-three/fiber';
2
+ import { FirstPersonControls as FirstPersonControlImpl } from 'three-stdlib';
3
+ import { ForwardRefComponent } from '../helpers/ts-utils';
4
+ export type FirstPersonControlsProps = Omit<ThreeElement<typeof FirstPersonControlImpl>, 'ref' | 'args'> & {
5
+ domElement?: HTMLElement;
6
+ makeDefault?: boolean;
7
+ };
8
+ export declare const FirstPersonControls: ForwardRefComponent<FirstPersonControlsProps, FirstPersonControlImpl>;
@@ -0,0 +1,38 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { useThree, useFrame } from '@react-three/fiber';
4
+ import { FirstPersonControls as FirstPersonControls$1 } from 'three-stdlib';
5
+
6
+ const FirstPersonControls = /* @__PURE__ */React.forwardRef(({
7
+ domElement,
8
+ makeDefault,
9
+ ...props
10
+ }, ref) => {
11
+ const camera = useThree(state => state.camera);
12
+ const gl = useThree(state => state.gl);
13
+ const events = useThree(state => state.events);
14
+ const get = useThree(state => state.get);
15
+ const set = useThree(state => state.set);
16
+ const explDomElement = domElement || events.connected || gl.domElement;
17
+ const [controls] = React.useState(() => new FirstPersonControls$1(camera, explDomElement));
18
+ React.useEffect(() => {
19
+ if (makeDefault) {
20
+ const old = get().controls;
21
+ set({
22
+ controls
23
+ });
24
+ return () => set({
25
+ controls: old
26
+ });
27
+ }
28
+ }, [makeDefault, controls]);
29
+ useFrame((_, delta) => {
30
+ controls.update(delta);
31
+ }, -1);
32
+ return controls ? /*#__PURE__*/React.createElement("primitive", _extends({
33
+ ref: ref,
34
+ object: controls
35
+ }, props)) : null;
36
+ });
37
+
38
+ export { FirstPersonControls };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("three"),t=require("react"),a=require("@react-three/fiber"),n=require("./RenderCubeTexture.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var a=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,a.get?a:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var c=i(e),u=o(r),s=o(t);function l({api:e}){const r=new u.Vector3,t=new u.Quaternion,n=new u.Vector3,i=new u.Euler(0,Math.PI,0);return a.useFrame((a=>{a.camera.matrixWorld.decompose(r,t,n),e.current.camera.position.copy(r),e.current.camera.quaternion.setFromEuler(i).premultiply(t)})),null}exports.Fisheye=function({renderPriority:e=1,zoom:r=0,segments:t=64,children:i,resolution:o=896,...m}){const f=s.useRef(null),p=s.useRef(null),{width:d,height:h}=a.useThree((e=>e.size)),[y]=s.useState((()=>new u.OrthographicCamera));s.useLayoutEffect((()=>{y.position.set(0,0,100),y.zoom=100,y.left=d/-2,y.right=d/2,y.top=h/2,y.bottom=h/-2,y.updateProjectionMatrix()}),[d,h]);const b=Math.sqrt(d*d+h*h)/100*(.5+r/2),g=new u.Vector3,w=new u.Sphere(new u.Vector3,b),x=new u.Matrix3,j=s.useCallback(((e,r,t)=>{r.pointer.set(e.offsetX/r.size.width*2-1,-e.offsetY/r.size.height*2+1),r.raycaster.setFromCamera(r.pointer,y),r.raycaster.ray.intersectSphere(w,g)&&(g.normalize(),x.getNormalMatrix(p.current.camera.matrixWorld),p.current.camera.getWorldPosition(r.raycaster.ray.origin),r.raycaster.ray.direction.set(0,0,1).reflect(g),r.raycaster.ray.direction.x*=-1,r.raycaster.ray.direction.applyNormalMatrix(x).multiplyScalar(-1))}),[]);return a.useFrame((r=>{e&&r.gl.render(f.current,y)}),e),s.createElement(s.Fragment,null,s.createElement("mesh",c.default({ref:f},m,{scale:b}),s.createElement("sphereGeometry",{args:[1,t,t]}),s.createElement("meshBasicMaterial",null,s.createElement(n.RenderCubeTexture,{compute:j,attach:"envMap",flip:!0,resolution:o,ref:p},i,s.createElement(l,{api:p})))))};
@@ -0,0 +1,10 @@
1
+ import * as React from 'react';
2
+ import { ThreeElements } from '@react-three/fiber';
3
+ export type FisheyeProps = ThreeElements['mesh'] & {
4
+ zoom?: number;
5
+ segments?: number;
6
+ resolution?: number;
7
+ children: React.ReactNode;
8
+ renderPriority?: number;
9
+ };
10
+ export declare function Fisheye({ renderPriority, zoom, segments, children, resolution, ...props }: FisheyeProps): React.JSX.Element;
@@ -0,0 +1,95 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as THREE from 'three';
3
+ import * as React from 'react';
4
+ import { useThree, useFrame } from '@react-three/fiber';
5
+ import { RenderCubeTexture } from './RenderCubeTexture.js';
6
+
7
+ function Fisheye({
8
+ renderPriority = 1,
9
+ zoom = 0,
10
+ segments = 64,
11
+ children,
12
+ resolution = 896,
13
+ ...props
14
+ }) {
15
+ const sphere = React.useRef(null);
16
+ const cubeApi = React.useRef(null);
17
+
18
+ // This isn't more than a simple sphere and a fixed orthographc camera
19
+ // pointing at it. A virtual scene is portalled into the environment map
20
+ // of its material. The cube-camera filming that scene is being synced to
21
+ // the portals default camera with the <UpdateCubeCamera> component.
22
+
23
+ const {
24
+ width,
25
+ height
26
+ } = useThree(state => state.size);
27
+ const [orthoC] = React.useState(() => new THREE.OrthographicCamera());
28
+ React.useLayoutEffect(() => {
29
+ orthoC.position.set(0, 0, 100);
30
+ orthoC.zoom = 100;
31
+ orthoC.left = width / -2;
32
+ orthoC.right = width / 2;
33
+ orthoC.top = height / 2;
34
+ orthoC.bottom = height / -2;
35
+ orthoC.updateProjectionMatrix();
36
+ }, [width, height]);
37
+ const radius = Math.sqrt(width * width + height * height) / 100 * (0.5 + zoom / 2);
38
+ const normal = new THREE.Vector3();
39
+ const sph = new THREE.Sphere(new THREE.Vector3(), radius);
40
+ const normalMatrix = new THREE.Matrix3();
41
+ const compute = React.useCallback((event, state, prev) => {
42
+ // Raycast from the render camera to the sphere and get the surface normal
43
+ // of the point hit in world space of the sphere scene
44
+ // We have to set the raycaster using the orthocam and pointer
45
+ // to perform sphere interscetions.
46
+ state.pointer.set(event.offsetX / state.size.width * 2 - 1, -(event.offsetY / state.size.height) * 2 + 1);
47
+ state.raycaster.setFromCamera(state.pointer, orthoC);
48
+ if (!state.raycaster.ray.intersectSphere(sph, normal)) return;else normal.normalize();
49
+ // Get the matrix for transforming normals into world space
50
+ normalMatrix.getNormalMatrix(cubeApi.current.camera.matrixWorld);
51
+ // Get the ray
52
+ cubeApi.current.camera.getWorldPosition(state.raycaster.ray.origin);
53
+ state.raycaster.ray.direction.set(0, 0, 1).reflect(normal);
54
+ state.raycaster.ray.direction.x *= -1; // flip across X to accommodate the "flip" of the env map
55
+ state.raycaster.ray.direction.applyNormalMatrix(normalMatrix).multiplyScalar(-1);
56
+ return undefined;
57
+ }, []);
58
+ useFrame(state => {
59
+ // Take over rendering
60
+ if (renderPriority) state.gl.render(sphere.current, orthoC);
61
+ }, renderPriority);
62
+ return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("mesh", _extends({
63
+ ref: sphere
64
+ }, props, {
65
+ scale: radius
66
+ }), /*#__PURE__*/React.createElement("sphereGeometry", {
67
+ args: [1, segments, segments]
68
+ }), /*#__PURE__*/React.createElement("meshBasicMaterial", null, /*#__PURE__*/React.createElement(RenderCubeTexture, {
69
+ compute: compute,
70
+ attach: "envMap",
71
+ flip: true,
72
+ resolution: resolution,
73
+ ref: cubeApi
74
+ }, children, /*#__PURE__*/React.createElement(UpdateCubeCamera, {
75
+ api: cubeApi
76
+ })))));
77
+ }
78
+ function UpdateCubeCamera({
79
+ api
80
+ }) {
81
+ const t = new THREE.Vector3();
82
+ const r = new THREE.Quaternion();
83
+ const s = new THREE.Vector3();
84
+ const e = new THREE.Euler(0, Math.PI, 0);
85
+ useFrame(state => {
86
+ // Read out the cameras whereabouts, state.camera is the one *within* the portal
87
+ state.camera.matrixWorld.decompose(t, r, s);
88
+ // Apply its position and rotation, flip the Y axis
89
+ api.current.camera.position.copy(t);
90
+ api.current.camera.quaternion.setFromEuler(e).premultiply(r);
91
+ });
92
+ return null;
93
+ }
94
+
95
+ export { Fisheye };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber"),r=require("three");function n(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=n(e),o=n(r);const i=a.forwardRef((({children:e,enabled:r=!0,speed:n=1,rotationIntensity:i=1,floatIntensity:u=1,floatingRange:c=[-.1,.1],autoInvalidate:l=!1,...s},d)=>{const f=a.useRef(null);a.useImperativeHandle(d,(()=>f.current),[]);const p=a.useRef(1e4*Math.random());return t.useFrame((e=>{var t,a;if(!r||0===n)return;l&&e.invalidate();const s=p.current+e.clock.elapsedTime;f.current.rotation.x=Math.cos(s/4*n)/8*i,f.current.rotation.y=Math.sin(s/4*n)/8*i,f.current.rotation.z=Math.sin(s/4*n)/20*i;let d=Math.sin(s/4*n)/10;d=o.MathUtils.mapLinear(d,-.1,.1,null!==(t=null==c?void 0:c[0])&&void 0!==t?t:-.1,null!==(a=null==c?void 0:c[1])&&void 0!==a?a:.1),f.current.position.y=d*u,f.current.updateMatrix()})),a.createElement("group",s,a.createElement("group",{ref:f,matrixAutoUpdate:!1},e))}));exports.Float=i;
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { ThreeElements } from '@react-three/fiber';
3
+ import * as THREE from 'three';
4
+ import { ForwardRefComponent } from '../helpers/ts-utils';
5
+ export type FloatProps = Omit<ThreeElements['group'], 'ref'> & {
6
+ enabled?: boolean;
7
+ speed?: number;
8
+ rotationIntensity?: number;
9
+ floatIntensity?: number;
10
+ children?: React.ReactNode;
11
+ floatingRange?: [number?, number?];
12
+ autoInvalidate?: boolean;
13
+ };
14
+ export declare const Float: ForwardRefComponent<FloatProps, THREE.Group>;
package/core/Float.js ADDED
@@ -0,0 +1,37 @@
1
+ import * as React from 'react';
2
+ import { useFrame } from '@react-three/fiber';
3
+ import * as THREE from 'three';
4
+
5
+ const Float = /* @__PURE__ */React.forwardRef(({
6
+ children,
7
+ enabled = true,
8
+ speed = 1,
9
+ rotationIntensity = 1,
10
+ floatIntensity = 1,
11
+ floatingRange = [-0.1, 0.1],
12
+ autoInvalidate = false,
13
+ ...props
14
+ }, forwardRef) => {
15
+ const ref = React.useRef(null);
16
+ React.useImperativeHandle(forwardRef, () => ref.current, []);
17
+ const offset = React.useRef(Math.random() * 10000);
18
+ useFrame(state => {
19
+ var _floatingRange$, _floatingRange$2;
20
+ if (!enabled || speed === 0) return;
21
+ if (autoInvalidate) state.invalidate();
22
+ const t = offset.current + state.clock.elapsedTime;
23
+ ref.current.rotation.x = Math.cos(t / 4 * speed) / 8 * rotationIntensity;
24
+ ref.current.rotation.y = Math.sin(t / 4 * speed) / 8 * rotationIntensity;
25
+ ref.current.rotation.z = Math.sin(t / 4 * speed) / 20 * rotationIntensity;
26
+ let yPosition = Math.sin(t / 4 * speed) / 10;
27
+ yPosition = THREE.MathUtils.mapLinear(yPosition, -0.1, 0.1, (_floatingRange$ = floatingRange == null ? void 0 : floatingRange[0]) !== null && _floatingRange$ !== void 0 ? _floatingRange$ : -0.1, (_floatingRange$2 = floatingRange == null ? void 0 : floatingRange[1]) !== null && _floatingRange$2 !== void 0 ? _floatingRange$2 : 0.1);
28
+ ref.current.position.y = yPosition * floatIntensity;
29
+ ref.current.updateMatrix();
30
+ });
31
+ return /*#__PURE__*/React.createElement("group", props, /*#__PURE__*/React.createElement("group", {
32
+ ref: ref,
33
+ matrixAutoUpdate: false
34
+ }, children));
35
+ });
36
+
37
+ export { Float };
@@ -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-stdlib");function u(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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 s=u(e),c=o(r);const a=c.forwardRef((({domElement:e,...r},u)=>{const{onChange:o,makeDefault:a,...l}=r,i=t.useThree((e=>e.invalidate)),f=t.useThree((e=>e.camera)),d=t.useThree((e=>e.gl)),v=t.useThree((e=>e.events)),m=t.useThree((e=>e.get)),b=t.useThree((e=>e.set)),h=e||v.connected||d.domElement,p=c.useMemo((()=>new n.FlyControls(f)),[f]);return c.useEffect((()=>(p.connect(h),()=>{p.dispose()})),[h,p,i]),c.useEffect((()=>{const e=e=>{i(),o&&o(e)};return null==p.addEventListener||p.addEventListener("change",e),()=>null==p.removeEventListener?void 0:p.removeEventListener("change",e)}),[o,i]),c.useEffect((()=>{if(a){const e=m().controls;return b({controls:p}),()=>b({controls:e})}}),[a,p]),t.useFrame(((e,t)=>p.update(t))),c.createElement("primitive",s.default({ref:u,object:p,args:[f,h]},l))}));exports.FlyControls=a;
@@ -0,0 +1,10 @@
1
+ import { ThreeElement } from '@react-three/fiber';
2
+ import * as THREE from 'three';
3
+ import { FlyControls as FlyControlsImpl } from 'three-stdlib';
4
+ import { ForwardRefComponent } from '../helpers/ts-utils';
5
+ export type FlyControlsProps = Omit<ThreeElement<typeof FlyControlsImpl>, 'ref' | 'args'> & {
6
+ onChange?: (e?: THREE.Event) => void;
7
+ domElement?: HTMLElement;
8
+ makeDefault?: boolean;
9
+ };
10
+ export declare const FlyControls: ForwardRefComponent<FlyControlsProps, FlyControlsImpl>;