@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,54 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { useThree } from '@react-three/fiber';
4
+ import * as THREE from 'three';
5
+
6
+ let GradientType = /*#__PURE__*/function (GradientType) {
7
+ GradientType["Linear"] = "linear";
8
+ GradientType["Radial"] = "radial";
9
+ return GradientType;
10
+ }({});
11
+ function GradientTexture({
12
+ stops,
13
+ colors,
14
+ size = 1024,
15
+ width = 16,
16
+ type = GradientType.Linear,
17
+ innerCircleRadius = 0,
18
+ outerCircleRadius = 'auto',
19
+ ...props
20
+ }) {
21
+ const gl = useThree(state => state.gl);
22
+ const canvas = React.useMemo(() => {
23
+ const canvas = document.createElement('canvas');
24
+ const context = canvas.getContext('2d');
25
+ canvas.width = width;
26
+ canvas.height = size;
27
+ let gradient;
28
+ if (type === GradientType.Linear) {
29
+ gradient = context.createLinearGradient(0, 0, 0, size);
30
+ } else {
31
+ const canvasCenterX = canvas.width / 2;
32
+ const canvasCenterY = canvas.height / 2;
33
+ const radius = outerCircleRadius !== 'auto' ? Math.abs(Number(outerCircleRadius)) : Math.sqrt(canvasCenterX ** 2 + canvasCenterY ** 2);
34
+ gradient = context.createRadialGradient(canvasCenterX, canvasCenterY, Math.abs(innerCircleRadius), canvasCenterX, canvasCenterY, radius);
35
+ }
36
+ const tempColor = new THREE.Color(); // reuse instance for performance
37
+ let i = stops.length;
38
+ while (i--) {
39
+ gradient.addColorStop(stops[i], tempColor.set(colors[i]).getStyle());
40
+ }
41
+ context.save();
42
+ context.fillStyle = gradient;
43
+ context.fillRect(0, 0, width, size);
44
+ context.restore();
45
+ return canvas;
46
+ }, [stops]);
47
+ return /*#__PURE__*/React.createElement("canvasTexture", _extends({
48
+ colorSpace: gl.outputColorSpace,
49
+ args: [canvas],
50
+ attach: "map"
51
+ }, props));
52
+ }
53
+
54
+ export { GradientTexture, GradientType };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),n=require("react"),o=require("three"),i=require("@react-three/fiber"),r=require("./shaderMaterial.cjs.js"),t=require("../helpers/constants.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(o){if("default"!==o){var i=Object.getOwnPropertyDescriptor(e,o);Object.defineProperty(n,o,i.get?i:{enumerable:!0,get:function(){return e[o]}})}})),n.default=e,Object.freeze(n)}var s=l(e),c=a(n),f=a(o);const d=r.shaderMaterial({cellSize:.5,sectionSize:1,fadeDistance:100,fadeStrength:1,fadeFrom:1,cellThickness:.5,sectionThickness:1,cellColor:new f.Color,sectionColor:new f.Color,infiniteGrid:!1,followCamera:!1,worldCamProjPosition:new f.Vector3,worldPlanePosition:new f.Vector3},"\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform vec3 worldPlanePosition;\n uniform float fadeDistance;\n uniform bool infiniteGrid;\n uniform bool followCamera;\n\n void main() {\n localPosition = position.xzy;\n if (infiniteGrid) localPosition *= 1.0 + fadeDistance;\n \n worldPosition = modelMatrix * vec4(localPosition, 1.0);\n if (followCamera) {\n worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);\n localPosition = (inverse(modelMatrix) * worldPosition).xyz;\n }\n\n gl_Position = projectionMatrix * viewMatrix * worldPosition;\n }\n ",`\n varying vec3 localPosition;\n varying vec4 worldPosition;\n\n uniform vec3 worldCamProjPosition;\n uniform float cellSize;\n uniform float sectionSize;\n uniform vec3 cellColor;\n uniform vec3 sectionColor;\n uniform float fadeDistance;\n uniform float fadeStrength;\n uniform float fadeFrom;\n uniform float cellThickness;\n uniform float sectionThickness;\n\n float getGrid(float size, float thickness) {\n vec2 r = localPosition.xz / size;\n vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);\n float line = min(grid.x, grid.y) + 1.0 - thickness;\n return 1.0 - min(line, 1.0);\n }\n\n void main() {\n float g1 = getGrid(cellSize, cellThickness);\n float g2 = getGrid(sectionSize, sectionThickness);\n\n vec3 from = worldCamProjPosition*vec3(fadeFrom);\n float dist = distance(from, worldPosition.xyz);\n float d = 1.0 - min(dist / fadeDistance, 1.0);\n vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));\n\n gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));\n gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);\n if (gl_FragColor.a <= 0.0) discard;\n\n #include <tonemapping_fragment>\n #include <${t.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n `),m=c.forwardRef((({args:e,cellColor:n="#000000",sectionColor:o="#2080ff",cellSize:r=.5,sectionSize:t=1,followCamera:l=!1,infiniteGrid:a=!1,fadeDistance:m=100,fadeStrength:u=1,fadeFrom:g=1,cellThickness:P=.5,sectionThickness:v=1,side:w=f.BackSide,...C},h)=>{i.extend({GridMaterial:d});const p=c.useRef(null);c.useImperativeHandle(h,(()=>p.current),[]);const x=new f.Plane,j=new f.Vector3(0,1,0),z=new f.Vector3(0,0,0);i.useFrame((e=>{x.setFromNormalAndCoplanarPoint(j,z).applyMatrix4(p.current.matrixWorld);const n=p.current.material,o=n.uniforms.worldCamProjPosition,i=n.uniforms.worldPlanePosition;x.projectPoint(e.camera.position,o.value),i.value.set(0,0,0).applyMatrix4(p.current.matrixWorld)}));const y={cellSize:r,sectionSize:t,cellColor:n,sectionColor:o,cellThickness:P,sectionThickness:v},S={fadeDistance:m,fadeStrength:u,fadeFrom:g,infiniteGrid:a,followCamera:l};return c.createElement("mesh",s.default({ref:p,frustumCulled:!1},C),c.createElement("gridMaterial",s.default({transparent:!0,"extensions-derivatives":!0,side:w},y,S)),c.createElement("planeGeometry",{args:e}))}));exports.Grid=m;
package/core/Grid.d.ts ADDED
@@ -0,0 +1,26 @@
1
+ import * as THREE from 'three';
2
+ import { ThreeElements } from '@react-three/fiber';
3
+ import { ForwardRefComponent } from '../helpers/ts-utils';
4
+ export type GridMaterialType = {
5
+ cellSize?: number;
6
+ cellThickness?: number;
7
+ cellColor?: THREE.ColorRepresentation;
8
+ sectionSize?: number;
9
+ sectionThickness?: number;
10
+ sectionColor?: THREE.ColorRepresentation;
11
+ followCamera?: boolean;
12
+ infiniteGrid?: boolean;
13
+ fadeDistance?: number;
14
+ fadeStrength?: number;
15
+ fadeFrom?: number;
16
+ side?: THREE.Side;
17
+ };
18
+ export type GridProps = Omit<ThreeElements['mesh'], 'ref' | 'args'> & GridMaterialType & {
19
+ args?: ConstructorParameters<typeof THREE.PlaneGeometry>;
20
+ };
21
+ declare module '@react-three/fiber' {
22
+ interface ThreeElements {
23
+ gridMaterial: ThreeElements['shaderMaterial'] & GridMaterialType;
24
+ }
25
+ }
26
+ export declare const Grid: ForwardRefComponent<GridProps, THREE.Mesh>;
package/core/Grid.js ADDED
@@ -0,0 +1,142 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import * as THREE from 'three';
4
+ import { extend, useFrame } from '@react-three/fiber';
5
+ import { shaderMaterial } from './shaderMaterial.js';
6
+ import { version } from '../helpers/constants.js';
7
+
8
+ const GridMaterial = /* @__PURE__ */shaderMaterial({
9
+ cellSize: 0.5,
10
+ sectionSize: 1,
11
+ fadeDistance: 100,
12
+ fadeStrength: 1,
13
+ fadeFrom: 1,
14
+ cellThickness: 0.5,
15
+ sectionThickness: 1,
16
+ cellColor: /* @__PURE__ */new THREE.Color(),
17
+ sectionColor: /* @__PURE__ */new THREE.Color(),
18
+ infiniteGrid: false,
19
+ followCamera: false,
20
+ worldCamProjPosition: /* @__PURE__ */new THREE.Vector3(),
21
+ worldPlanePosition: /* @__PURE__ */new THREE.Vector3()
22
+ }, /* glsl */`
23
+ varying vec3 localPosition;
24
+ varying vec4 worldPosition;
25
+
26
+ uniform vec3 worldCamProjPosition;
27
+ uniform vec3 worldPlanePosition;
28
+ uniform float fadeDistance;
29
+ uniform bool infiniteGrid;
30
+ uniform bool followCamera;
31
+
32
+ void main() {
33
+ localPosition = position.xzy;
34
+ if (infiniteGrid) localPosition *= 1.0 + fadeDistance;
35
+
36
+ worldPosition = modelMatrix * vec4(localPosition, 1.0);
37
+ if (followCamera) {
38
+ worldPosition.xyz += (worldCamProjPosition - worldPlanePosition);
39
+ localPosition = (inverse(modelMatrix) * worldPosition).xyz;
40
+ }
41
+
42
+ gl_Position = projectionMatrix * viewMatrix * worldPosition;
43
+ }
44
+ `, /* glsl */`
45
+ varying vec3 localPosition;
46
+ varying vec4 worldPosition;
47
+
48
+ uniform vec3 worldCamProjPosition;
49
+ uniform float cellSize;
50
+ uniform float sectionSize;
51
+ uniform vec3 cellColor;
52
+ uniform vec3 sectionColor;
53
+ uniform float fadeDistance;
54
+ uniform float fadeStrength;
55
+ uniform float fadeFrom;
56
+ uniform float cellThickness;
57
+ uniform float sectionThickness;
58
+
59
+ float getGrid(float size, float thickness) {
60
+ vec2 r = localPosition.xz / size;
61
+ vec2 grid = abs(fract(r - 0.5) - 0.5) / fwidth(r);
62
+ float line = min(grid.x, grid.y) + 1.0 - thickness;
63
+ return 1.0 - min(line, 1.0);
64
+ }
65
+
66
+ void main() {
67
+ float g1 = getGrid(cellSize, cellThickness);
68
+ float g2 = getGrid(sectionSize, sectionThickness);
69
+
70
+ vec3 from = worldCamProjPosition*vec3(fadeFrom);
71
+ float dist = distance(from, worldPosition.xyz);
72
+ float d = 1.0 - min(dist / fadeDistance, 1.0);
73
+ vec3 color = mix(cellColor, sectionColor, min(1.0, sectionThickness * g2));
74
+
75
+ gl_FragColor = vec4(color, (g1 + g2) * pow(d, fadeStrength));
76
+ gl_FragColor.a = mix(0.75 * gl_FragColor.a, gl_FragColor.a, g2);
77
+ if (gl_FragColor.a <= 0.0) discard;
78
+
79
+ #include <tonemapping_fragment>
80
+ #include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
81
+ }
82
+ `);
83
+ const Grid = /* @__PURE__ */React.forwardRef(({
84
+ args,
85
+ cellColor = '#000000',
86
+ sectionColor = '#2080ff',
87
+ cellSize = 0.5,
88
+ sectionSize = 1,
89
+ followCamera = false,
90
+ infiniteGrid = false,
91
+ fadeDistance = 100,
92
+ fadeStrength = 1,
93
+ fadeFrom = 1,
94
+ cellThickness = 0.5,
95
+ sectionThickness = 1,
96
+ side = THREE.BackSide,
97
+ ...props
98
+ }, fRef) => {
99
+ extend({
100
+ GridMaterial
101
+ });
102
+ const ref = React.useRef(null);
103
+ React.useImperativeHandle(fRef, () => ref.current, []);
104
+ const plane = new THREE.Plane();
105
+ const upVector = new THREE.Vector3(0, 1, 0);
106
+ const zeroVector = new THREE.Vector3(0, 0, 0);
107
+ useFrame(state => {
108
+ plane.setFromNormalAndCoplanarPoint(upVector, zeroVector).applyMatrix4(ref.current.matrixWorld);
109
+ const gridMaterial = ref.current.material;
110
+ const worldCamProjPosition = gridMaterial.uniforms.worldCamProjPosition;
111
+ const worldPlanePosition = gridMaterial.uniforms.worldPlanePosition;
112
+ plane.projectPoint(state.camera.position, worldCamProjPosition.value);
113
+ worldPlanePosition.value.set(0, 0, 0).applyMatrix4(ref.current.matrixWorld);
114
+ });
115
+ const uniforms1 = {
116
+ cellSize,
117
+ sectionSize,
118
+ cellColor,
119
+ sectionColor,
120
+ cellThickness,
121
+ sectionThickness
122
+ };
123
+ const uniforms2 = {
124
+ fadeDistance,
125
+ fadeStrength,
126
+ fadeFrom,
127
+ infiniteGrid,
128
+ followCamera
129
+ };
130
+ return /*#__PURE__*/React.createElement("mesh", _extends({
131
+ ref: ref,
132
+ frustumCulled: false
133
+ }, props), /*#__PURE__*/React.createElement("gridMaterial", _extends({
134
+ transparent: true,
135
+ "extensions-derivatives": true,
136
+ side: side
137
+ }, uniforms1, uniforms2)), /*#__PURE__*/React.createElement("planeGeometry", {
138
+ args: args
139
+ }));
140
+ });
141
+
142
+ export { Grid };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber");function t(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)}var u=t(e);function n(e,t,...n){const c=u.useRef(null),l=r.useThree((e=>e.scene));return u.useLayoutEffect((()=>{let r;if(e&&null!=e&&e.current&&t&&(c.current=r=new t(e.current,...n)),r)return r.traverse((e=>e.raycast=()=>null)),l.add(r),()=>{c.current=void 0,l.remove(r),null==r.dispose||r.dispose()}}),[l,t,e,...n]),r.useFrame((()=>{var e;null==(e=c.current)||null==e.update||e.update()})),c}exports.Helper=({type:e,args:r=[]})=>{const t=u.useRef(null),c=u.useRef(null);return u.useLayoutEffect((()=>{c.current=t.current.parent})),n(c,e,...r),u.createElement("object3D",{ref:t})},exports.useHelper=n;
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { Object3D } from 'three';
3
+ import { Falsey } from 'utility-types';
4
+ type HelperType = Object3D & {
5
+ update: () => void;
6
+ dispose: () => void;
7
+ };
8
+ type HelperConstructor = new (...args: any[]) => any;
9
+ type HelperArgs<T> = T extends [infer _, ...infer R] ? R : never;
10
+ export declare function useHelper<T extends HelperConstructor>(object3D: React.RefObject<Object3D> | Falsey, helperConstructor: T, ...args: HelperArgs<ConstructorParameters<T>>): React.RefObject<HelperType | null>;
11
+ export type HelperProps<T extends HelperConstructor> = {
12
+ type: T;
13
+ args?: HelperArgs<ConstructorParameters<T>>;
14
+ };
15
+ export declare const Helper: <T extends HelperConstructor>({ type: helperConstructor, args, }: HelperProps<T>) => React.JSX.Element;
16
+ export {};
package/core/Helper.js ADDED
@@ -0,0 +1,47 @@
1
+ import * as React from 'react';
2
+ import { useThree, useFrame } from '@react-three/fiber';
3
+
4
+ function useHelper(object3D, helperConstructor, ...args) {
5
+ const helper = React.useRef(null);
6
+ const scene = useThree(state => state.scene);
7
+ React.useLayoutEffect(() => {
8
+ let currentHelper = undefined;
9
+ if (object3D && object3D != null && object3D.current && helperConstructor) {
10
+ helper.current = currentHelper = new helperConstructor(object3D.current, ...args);
11
+ }
12
+ if (currentHelper) {
13
+ // Prevent the helpers from blocking rays
14
+ currentHelper.traverse(child => child.raycast = () => null);
15
+ scene.add(currentHelper);
16
+ return () => {
17
+ helper.current = undefined;
18
+ scene.remove(currentHelper);
19
+ currentHelper.dispose == null || currentHelper.dispose();
20
+ };
21
+ }
22
+ }, [scene, helperConstructor, object3D, ...args]);
23
+ useFrame(() => {
24
+ var _helper$current;
25
+ return void ((_helper$current = helper.current) == null || _helper$current.update == null ? void 0 : _helper$current.update());
26
+ });
27
+ return helper;
28
+ }
29
+
30
+ //
31
+
32
+ const Helper = ({
33
+ type: helperConstructor,
34
+ args = []
35
+ }) => {
36
+ const thisRef = React.useRef(null);
37
+ const parentRef = React.useRef(null);
38
+ React.useLayoutEffect(() => {
39
+ parentRef.current = thisRef.current.parent;
40
+ });
41
+ useHelper(parentRef, helperConstructor, ...args);
42
+ return /*#__PURE__*/React.createElement("object3D", {
43
+ ref: thisRef
44
+ });
45
+ };
46
+
47
+ export { Helper, useHelper };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("three"),r=require("react"),t=require("@react-three/fiber");function n(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 a=n(e),u=n(r);function c({defaultScene:e,defaultCamera:r,renderPriority:n=1}){const{gl:a,scene:c,camera:l}=t.useThree();let o;return t.useFrame((()=>{o=a.autoClear,1===n&&(a.autoClear=!0,a.render(e,r)),a.autoClear=!1,a.clearDepth(),a.render(c,l),a.autoClear=o}),n),u.createElement("group",{onPointerOver:()=>null})}exports.Hud=function({children:e,renderPriority:r=1}){const{scene:n,camera:l}=t.useThree(),[o]=u.useState((()=>new a.Scene));return u.createElement(u.Fragment,null,t.createPortal(u.createElement(u.Fragment,null,e,u.createElement(c,{defaultScene:n,defaultCamera:l,renderPriority:r})),o,{events:{priority:r+1}}))};
package/core/Hud.d.ts ADDED
@@ -0,0 +1,6 @@
1
+ import * as React from 'react';
2
+ export type HudProps = {
3
+ children: React.ReactNode;
4
+ renderPriority?: number;
5
+ };
6
+ export declare function Hud({ children, renderPriority }: HudProps): React.JSX.Element;
package/core/Hud.js ADDED
@@ -0,0 +1,55 @@
1
+ import * as THREE from 'three';
2
+ import * as React from 'react';
3
+ import { useThree, createPortal, useFrame } from '@react-three/fiber';
4
+
5
+ function RenderHud({
6
+ defaultScene,
7
+ defaultCamera,
8
+ renderPriority = 1
9
+ }) {
10
+ const {
11
+ gl,
12
+ scene,
13
+ camera
14
+ } = useThree();
15
+ let oldCLear;
16
+ useFrame(() => {
17
+ oldCLear = gl.autoClear;
18
+ if (renderPriority === 1) {
19
+ // Clear scene and render the default scene
20
+ gl.autoClear = true;
21
+ gl.render(defaultScene, defaultCamera);
22
+ }
23
+ // Disable cleaning and render the portal with its own camera
24
+ gl.autoClear = false;
25
+ gl.clearDepth();
26
+ gl.render(scene, camera);
27
+ // Restore default
28
+ gl.autoClear = oldCLear;
29
+ }, renderPriority);
30
+ // Without an element that receives pointer events state.pointer will always be 0/0
31
+ return /*#__PURE__*/React.createElement("group", {
32
+ onPointerOver: () => null
33
+ });
34
+ }
35
+ function Hud({
36
+ children,
37
+ renderPriority = 1
38
+ }) {
39
+ const {
40
+ scene: defaultScene,
41
+ camera: defaultCamera
42
+ } = useThree();
43
+ const [hudScene] = React.useState(() => new THREE.Scene());
44
+ return /*#__PURE__*/React.createElement(React.Fragment, null, createPortal(/*#__PURE__*/React.createElement(React.Fragment, null, children, /*#__PURE__*/React.createElement(RenderHud, {
45
+ defaultScene: defaultScene,
46
+ defaultCamera: defaultCamera,
47
+ renderPriority: renderPriority
48
+ })), hudScene, {
49
+ events: {
50
+ priority: renderPriority + 1
51
+ }
52
+ }));
53
+ }
54
+
55
+ export { Hud };
@@ -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"),n=require("@react-three/fiber"),a=require("./shaderMaterial.cjs.js"),o=require("./Texture.cjs.js"),s=require("../helpers/constants.cjs.js");function i(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function c(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 l=i(e),u=c(r),f=c(t);const v=a.shaderMaterial({color:new f.Color("white"),scale:new f.Vector2(1,1),imageBounds:new f.Vector2(1,1),resolution:1024,map:null,zoom:1,radius:0,grayscale:0,opacity:1},"\n varying vec2 vUv;\n varying vec2 vPos;\n void main() {\n gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);\n vUv = uv;\n vPos = position.xy;\n }\n",`\n // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44\n varying vec2 vUv;\n varying vec2 vPos;\n uniform vec2 scale;\n uniform vec2 imageBounds;\n uniform float resolution;\n uniform vec3 color;\n uniform sampler2D map;\n uniform float radius;\n uniform float zoom;\n uniform float grayscale;\n uniform float opacity;\n const vec3 luma = vec3(.299, 0.587, 0.114);\n vec4 toGrayscale(vec4 color, float intensity) {\n return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);\n }\n vec2 aspect(vec2 size) {\n return size / min(size.x, size.y);\n }\n \n const float PI = 3.14159265;\n \n // from https://iquilezles.org/articles/distfunctions\n float udRoundBox( vec2 p, vec2 b, float r ) {\n return length(max(abs(p)-b+r,0.0))-r;\n }\n\n void main() {\n vec2 s = aspect(scale);\n vec2 i = aspect(imageBounds);\n float rs = s.x / s.y;\n float ri = i.x / i.y;\n vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);\n vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;\n vec2 uv = vUv * s / new + offset;\n vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);\n\n vec2 res = vec2(scale * resolution);\n vec2 halfRes = 0.5 * res;\n float b = udRoundBox(vUv.xy * res - halfRes, halfRes, resolution * radius); \n\t vec3 a = mix(vec3(1.0,0.0,0.0), vec3(0.0,0.0,0.0), smoothstep(0.0, 1.0, b));\n gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, opacity * a), grayscale);\n \n #include <tonemapping_fragment>\n #include <${s.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }\n`),m=u.forwardRef((({children:e,color:r,segments:t=1,scale:a=1,zoom:o=1,grayscale:s=0,opacity:i=1,radius:c=0,texture:f,toneMapped:m,transparent:d,side:y,...g},p)=>{n.extend({ImageMaterial:v});const x=u.useRef(null),h=n.useThree((e=>e.size)),b=Array.isArray(a)?[a[0],a[1]]:[a,a],w=[f.image.width,f.image.height],j=Math.max(h.width,h.height);return u.useImperativeHandle(p,(()=>x.current),[]),u.useLayoutEffect((()=>{x.current.geometry.parameters&&x.current.material.scale.set(b[0]*x.current.geometry.parameters.width,b[1]*x.current.geometry.parameters.height)}),[b[0],b[1]]),u.createElement("mesh",l.default({ref:x,scale:Array.isArray(a)?[...a,1]:a},g),u.createElement("planeGeometry",{args:[1,1,t,t]}),u.createElement("imageMaterial",{color:r,map:f,zoom:o,grayscale:s,opacity:i,scale:b,imageBounds:w,resolution:j,radius:c,toneMapped:m,transparent:d,side:y,key:v.key}),e)})),d=u.forwardRef((({url:e,...r},t)=>{const n=o.useTexture(e);return u.createElement(m,l.default({},r,{texture:n,ref:t}))})),y=u.forwardRef((({url:e,...r},t)=>u.createElement(m,l.default({},r,{ref:t})))),g=u.forwardRef(((e,r)=>{if(e.url)return u.createElement(d,l.default({},e,{ref:r}));if(e.texture)return u.createElement(y,l.default({},e,{ref:r}));throw new Error("<Image /> requires a url or texture")}));exports.Image=g;
@@ -0,0 +1,38 @@
1
+ import * as THREE from 'three';
2
+ import { Color, ThreeElements } from '@react-three/fiber';
3
+ import { ForwardRefComponent } from '../helpers/ts-utils';
4
+ export type ImageProps = Omit<ThreeElements['mesh'], 'scale'> & {
5
+ segments?: number;
6
+ scale?: number | [number, number];
7
+ color?: Color;
8
+ zoom?: number;
9
+ radius?: number;
10
+ grayscale?: number;
11
+ toneMapped?: boolean;
12
+ transparent?: boolean;
13
+ opacity?: number;
14
+ side?: THREE.Side;
15
+ } & ({
16
+ texture: THREE.Texture;
17
+ url?: never;
18
+ } | {
19
+ texture?: never;
20
+ url: string;
21
+ });
22
+ type ImageMaterialType = ThreeElements['shaderMaterial'] & {
23
+ scale?: number[];
24
+ imageBounds?: number[];
25
+ radius?: number;
26
+ resolution?: number;
27
+ color?: Color;
28
+ map: THREE.Texture;
29
+ zoom?: number;
30
+ grayscale?: number;
31
+ };
32
+ declare module '@react-three/fiber' {
33
+ interface ThreeElements {
34
+ imageMaterial: ImageMaterialType;
35
+ }
36
+ }
37
+ export declare const Image: ForwardRefComponent<ImageProps, THREE.Mesh>;
38
+ export {};
package/core/Image.js ADDED
@@ -0,0 +1,160 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import * as THREE from 'three';
4
+ import { extend, useThree } from '@react-three/fiber';
5
+ import { shaderMaterial } from './shaderMaterial.js';
6
+ import { useTexture } from './Texture.js';
7
+ import { version } from '../helpers/constants.js';
8
+
9
+ // {texture: THREE.Texture} XOR {url: string}
10
+
11
+ const ImageMaterialImpl = /* @__PURE__ */shaderMaterial({
12
+ color: /* @__PURE__ */new THREE.Color('white'),
13
+ scale: /* @__PURE__ */new THREE.Vector2(1, 1),
14
+ imageBounds: /* @__PURE__ */new THREE.Vector2(1, 1),
15
+ resolution: 1024,
16
+ map: null,
17
+ zoom: 1,
18
+ radius: 0,
19
+ grayscale: 0,
20
+ opacity: 1
21
+ }, /* glsl */`
22
+ varying vec2 vUv;
23
+ varying vec2 vPos;
24
+ void main() {
25
+ gl_Position = projectionMatrix * viewMatrix * modelMatrix * vec4(position, 1.);
26
+ vUv = uv;
27
+ vPos = position.xy;
28
+ }
29
+ `, /* glsl */`
30
+ // mostly from https://gist.github.com/statico/df64c5d167362ecf7b34fca0b1459a44
31
+ varying vec2 vUv;
32
+ varying vec2 vPos;
33
+ uniform vec2 scale;
34
+ uniform vec2 imageBounds;
35
+ uniform float resolution;
36
+ uniform vec3 color;
37
+ uniform sampler2D map;
38
+ uniform float radius;
39
+ uniform float zoom;
40
+ uniform float grayscale;
41
+ uniform float opacity;
42
+ const vec3 luma = vec3(.299, 0.587, 0.114);
43
+ vec4 toGrayscale(vec4 color, float intensity) {
44
+ return vec4(mix(color.rgb, vec3(dot(color.rgb, luma)), intensity), color.a);
45
+ }
46
+ vec2 aspect(vec2 size) {
47
+ return size / min(size.x, size.y);
48
+ }
49
+
50
+ const float PI = 3.14159265;
51
+
52
+ // from https://iquilezles.org/articles/distfunctions
53
+ float udRoundBox( vec2 p, vec2 b, float r ) {
54
+ return length(max(abs(p)-b+r,0.0))-r;
55
+ }
56
+
57
+ void main() {
58
+ vec2 s = aspect(scale);
59
+ vec2 i = aspect(imageBounds);
60
+ float rs = s.x / s.y;
61
+ float ri = i.x / i.y;
62
+ vec2 new = rs < ri ? vec2(i.x * s.y / i.y, s.y) : vec2(s.x, i.y * s.x / i.x);
63
+ vec2 offset = (rs < ri ? vec2((new.x - s.x) / 2.0, 0.0) : vec2(0.0, (new.y - s.y) / 2.0)) / new;
64
+ vec2 uv = vUv * s / new + offset;
65
+ vec2 zUv = (uv - vec2(0.5, 0.5)) / zoom + vec2(0.5, 0.5);
66
+
67
+ vec2 res = vec2(scale * resolution);
68
+ vec2 halfRes = 0.5 * res;
69
+ float b = udRoundBox(vUv.xy * res - halfRes, halfRes, resolution * radius);
70
+ vec3 a = mix(vec3(1.0,0.0,0.0), vec3(0.0,0.0,0.0), smoothstep(0.0, 1.0, b));
71
+ gl_FragColor = toGrayscale(texture2D(map, zUv) * vec4(color, opacity * a), grayscale);
72
+
73
+ #include <tonemapping_fragment>
74
+ #include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
75
+ }
76
+ `);
77
+ const ImageBase = /* @__PURE__ */React.forwardRef(({
78
+ children,
79
+ color,
80
+ segments = 1,
81
+ scale = 1,
82
+ zoom = 1,
83
+ grayscale = 0,
84
+ opacity = 1,
85
+ radius = 0,
86
+ texture,
87
+ toneMapped,
88
+ transparent,
89
+ side,
90
+ ...props
91
+ }, fref) => {
92
+ extend({
93
+ ImageMaterial: ImageMaterialImpl
94
+ });
95
+ const ref = React.useRef(null);
96
+ const size = useThree(state => state.size);
97
+ const planeBounds = Array.isArray(scale) ? [scale[0], scale[1]] : [scale, scale];
98
+ const imageBounds = [texture.image.width, texture.image.height];
99
+ const resolution = Math.max(size.width, size.height);
100
+ React.useImperativeHandle(fref, () => ref.current, []);
101
+ React.useLayoutEffect(() => {
102
+ // Support arbitrary plane geometries (for instance with rounded corners)
103
+ // @ts-ignore
104
+ if (ref.current.geometry.parameters) {
105
+ // @ts-ignore
106
+ ref.current.material.scale.set(
107
+ // @ts-ignore
108
+ planeBounds[0] * ref.current.geometry.parameters.width,
109
+ // @ts-ignore
110
+ planeBounds[1] * ref.current.geometry.parameters.height);
111
+ }
112
+ }, [planeBounds[0], planeBounds[1]]);
113
+ return /*#__PURE__*/React.createElement("mesh", _extends({
114
+ ref: ref,
115
+ scale: Array.isArray(scale) ? [...scale, 1] : scale
116
+ }, props), /*#__PURE__*/React.createElement("planeGeometry", {
117
+ args: [1, 1, segments, segments]
118
+ }), /*#__PURE__*/React.createElement("imageMaterial", {
119
+ color: color,
120
+ map: texture,
121
+ zoom: zoom,
122
+ grayscale: grayscale,
123
+ opacity: opacity,
124
+ scale: planeBounds,
125
+ imageBounds: imageBounds,
126
+ resolution: resolution,
127
+ radius: radius,
128
+ toneMapped: toneMapped,
129
+ transparent: transparent,
130
+ side: side,
131
+ key: ImageMaterialImpl.key
132
+ }), children);
133
+ });
134
+ const ImageWithUrl = /* @__PURE__ */React.forwardRef(({
135
+ url,
136
+ ...props
137
+ }, ref) => {
138
+ const texture = useTexture(url);
139
+ return /*#__PURE__*/React.createElement(ImageBase, _extends({}, props, {
140
+ texture: texture,
141
+ ref: ref
142
+ }));
143
+ });
144
+ const ImageWithTexture = /* @__PURE__ */React.forwardRef(({
145
+ url: _url,
146
+ ...props
147
+ }, ref) => {
148
+ return /*#__PURE__*/React.createElement(ImageBase, _extends({}, props, {
149
+ ref: ref
150
+ }));
151
+ });
152
+ const Image = /* @__PURE__ */React.forwardRef((props, ref) => {
153
+ if (props.url) return /*#__PURE__*/React.createElement(ImageWithUrl, _extends({}, props, {
154
+ ref: ref
155
+ }));else if (props.texture) return /*#__PURE__*/React.createElement(ImageWithTexture, _extends({}, props, {
156
+ ref: ref
157
+ }));else throw new Error('<Image /> requires a url or texture');
158
+ });
159
+
160
+ export { Image };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),a=require("../helpers/deprecated.cjs.js");function c(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 u=c(e),i=s(t),o=s(r);const l=new i.Matrix4,f=new i.Matrix4,d=[],m=new i.Mesh;class y extends i.Group{constructor(){super(),this.color=new i.Color("white"),this.instance={current:void 0},this.instanceKey={current:void 0}}get geometry(){var e;return null==(e=this.instance.current)?void 0:e.geometry}raycast(e,t){const r=this.instance.current;if(!r)return;if(!r.geometry||!r.material)return;m.geometry=r.geometry;const n=r.matrixWorld,a=r.userData.instances.indexOf(this.instanceKey);if(!(-1===a||a>r.count)){r.getMatrixAt(a,l),f.multiplyMatrices(n,l),m.matrixWorld=f,r.material instanceof i.Material?m.material.side=r.material.side:m.material.side=r.material[0].side,m.raycast(e,d);for(let e=0,r=d.length;e<r;e++){const r=d[e];r.instanceId=a,r.object=this,t.push(r)}d.length=0}}}const p=o.createContext(null),g=new i.Matrix4,x=new i.Matrix4,h=new i.Matrix4,b=new i.Vector3,M=new i.Quaternion,w=new i.Vector3,A=o.forwardRef((({context:e,children:t,...r},a)=>{o.useMemo((()=>n.extend({PositionMesh:y})),[]);const c=o.useRef(null);o.useImperativeHandle(a,(()=>c.current),[]);const{subscribe:s,getParent:i}=o.useContext(e||p);return o.useLayoutEffect((()=>s(c)),[]),o.createElement("positionMesh",u.default({instance:i(),instanceKey:c,ref:c},r),t)})),v=o.forwardRef((({context:e,children:t,range:r,limit:c=1e3,frames:s=1/0,...l},f)=>{const[{localContext:d,instance:m}]=o.useState((()=>{const e=o.createContext(null);return{localContext:e,instance:o.forwardRef(((t,r)=>o.createElement(A,u.default({context:e},t,{ref:r}))))}})),y=o.useRef(null);o.useImperativeHandle(f,(()=>y.current),[]);const[v,E]=o.useState([]),[[j,D]]=o.useState((()=>{const e=new Float32Array(16*c);for(let t=0;t<c;t++)h.identity().toArray(e,16*t);return[e,new Float32Array([...new Array(3*c)].map((()=>1)))]}));o.useEffect((()=>{y.current.instanceMatrix.needsUpdate=!0}));let R=0,O=0;const C=o.useRef([]);o.useLayoutEffect((()=>{C.current=Object.entries(y.current.geometry.attributes).filter((([e,t])=>t.isInstancedBufferAttribute))})),n.useFrame((()=>{if(s===1/0||R<s){y.current.updateMatrix(),y.current.updateMatrixWorld(),g.copy(y.current.matrixWorld).invert(),O=Math.min(c,void 0!==r?r:c,v.length),y.current.count=O,a.setUpdateRange(y.current.instanceMatrix,{start:0,count:16*O}),a.setUpdateRange(y.current.instanceColor,{start:0,count:3*O});for(let e=0;e<v.length;e++){const t=v[e].current;t.matrixWorld.decompose(b,M,w),x.compose(b,M,w).premultiply(g),x.toArray(j,16*e),y.current.instanceMatrix.needsUpdate=!0,t.color.toArray(D,3*e),y.current.instanceColor.needsUpdate=!0}R++}}));const P=o.useMemo((()=>({getParent:()=>y,subscribe:e=>(E((t=>[...t,e])),()=>E((t=>t.filter((t=>t.current!==e.current)))))})),[]);return o.createElement("instancedMesh",u.default({userData:{instances:v,limit:c,frames:s},matrixAutoUpdate:!1,ref:y,args:[null,null,0],raycast:()=>null},l),o.createElement("instancedBufferAttribute",{attach:"instanceMatrix",args:[j,16],usage:i.DynamicDrawUsage}),o.createElement("instancedBufferAttribute",{attach:"instanceColor",args:[D,3],usage:i.DynamicDrawUsage}),"function"==typeof t?o.createElement(d.Provider,{value:P},t(m)):e?o.createElement(e.Provider,{value:P},t):o.createElement(p.Provider,{value:P},t))})),E=o.forwardRef((function({meshes:e,children:t,...r},n){const a=Array.isArray(e);if(!a)for(const t of Object.keys(e))e[t].isMesh||delete e[t];const c=(a?e:Object.values(e)).map((({geometry:e,material:t})=>o.createElement(v,u.default({key:e.uuid,geometry:e,material:t},r))));return o.createElement("group",{ref:n},j((r=>a?t(...r):t(Object.keys(e).filter((t=>e[t].isMesh)).reduce(((e,t,n)=>({...e,[t]:r[n]})),{}))),c))}));function j(e,t,r=[]){if(!t[0])return e(r);function n(n){return j(e,t.slice(1),r.concat([n]))}return"function"==typeof t[0]?t[0]({results:r,render:n}):o.cloneElement(t[0],{children:n})}const D=o.forwardRef((({name:e,defaultValue:t,normalized:r,usage:a=i.DynamicDrawUsage},c)=>{const s=o.useRef(null);o.useImperativeHandle(c,(()=>s.current),[]),o.useLayoutEffect((()=>{const r=s.current.__r3f.parent.object;r.geometry.attributes[e]=s.current;const n=Array.isArray(t)?t:[t],a=Array.from({length:r.userData.limit},(()=>n)).flat();return s.current.array=new Float32Array(a),s.current.itemSize=n.length,s.current.count=a.length/s.current.itemSize,()=>{delete r.geometry.attributes[e]}}),[e]);let u=0;return n.useFrame((()=>{const t=s.current.__r3f.parent.object;if(t.userData.frames===1/0||u<t.userData.frames){for(let r=0;r<t.userData.instances.length;r++){const n=t.userData.instances[r].current[e];void 0!==n&&(s.current.set(Array.isArray(n)?n:"function"==typeof n.toArray?n.toArray():[n],r*s.current.itemSize),s.current.needsUpdate=!0)}u++}})),o.createElement("instancedBufferAttribute",{ref:s,usage:a,normalized:r})}));exports.Instance=A,exports.InstancedAttribute=D,exports.Instances=v,exports.Merged=E,exports.PositionMesh=y,exports.createInstances=function(){const e=o.createContext(null);return[o.forwardRef(((t,r)=>o.createElement(v,u.default({ref:r,context:e},t)))),o.forwardRef(((t,r)=>o.createElement(A,u.default({ref:r,context:e},t))))]};
@@ -0,0 +1,64 @@
1
+ import * as THREE from 'three';
2
+ import * as React from 'react';
3
+ import { ThreeElement, ThreeElements } from '@react-three/fiber';
4
+ import { ForwardRefComponent } from '../helpers/ts-utils';
5
+ declare module '@react-three/fiber' {
6
+ interface ThreeElements {
7
+ positionMesh: ThreeElement<typeof PositionMesh>;
8
+ }
9
+ }
10
+ type Api = {
11
+ getParent: () => React.RefObject<InstancedMesh>;
12
+ subscribe: <T>(ref: React.RefObject<T>) => void;
13
+ };
14
+ export type InstancesProps = Omit<ThreeElements['instancedMesh'], 'ref' | 'args'> & {
15
+ context?: React.Context<Api>;
16
+ range?: number;
17
+ limit?: number;
18
+ frames?: number;
19
+ };
20
+ export type InstanceProps = Omit<ThreeElements['positionMesh'], 'ref'> & {
21
+ context?: React.Context<Api>;
22
+ };
23
+ export type InstancedAttributeProps = Omit<ThreeElements['instancedBufferAttribute'], 'ref' | 'args'> & {
24
+ name: string;
25
+ defaultValue: any;
26
+ normalized?: boolean;
27
+ usage?: number;
28
+ };
29
+ type InstancedMesh = Omit<THREE.InstancedMesh, 'instanceMatrix' | 'instanceColor'> & {
30
+ instanceMatrix: THREE.InstancedBufferAttribute;
31
+ instanceColor: THREE.InstancedBufferAttribute;
32
+ };
33
+ export declare class PositionMesh extends THREE.Group {
34
+ color: THREE.Color;
35
+ instance: React.RefObject<THREE.InstancedMesh | undefined>;
36
+ instanceKey: React.RefObject<PositionMesh | undefined>;
37
+ constructor();
38
+ get geometry(): THREE.BufferGeometry<THREE.NormalBufferAttributes> | undefined;
39
+ raycast(raycaster: THREE.Raycaster, intersects: THREE.Intersection[]): void;
40
+ }
41
+ export declare const Instance: React.ForwardRefExoticComponent<Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<PositionMesh, import("@react-three/fiber").MathProps<PositionMesh> & import("@react-three/fiber").ReactProps<PositionMesh> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
42
+ context?: React.Context<Api>;
43
+ } & React.RefAttributes<unknown>>;
44
+ export declare const Instances: ForwardRefComponent<InstancesProps, THREE.InstancedMesh>;
45
+ export interface MergedProps extends Omit<InstancesProps, 'children'> {
46
+ meshes: THREE.Mesh[] | Record<string, THREE.Object3D>;
47
+ children: (...instances: [React.FC<InstanceProps> & Record<string, React.FC<InstanceProps>>, ...React.FC<InstanceProps>[]]) => React.ReactNode;
48
+ }
49
+ export declare const Merged: ForwardRefComponent<MergedProps, THREE.Group>;
50
+ export declare function createInstances<T = InstanceProps>(): readonly [React.ForwardRefExoticComponent<Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes>, THREE.Material | THREE.Material[]>, import("@react-three/fiber").MathProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes>, THREE.Material | THREE.Material[]>> & import("@react-three/fiber").ReactProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes>, THREE.Material | THREE.Material[]>> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes>, THREE.Material | THREE.Material[]>, typeof THREE.InstancedMesh>, "object">>>, "ref" | "args"> & {
51
+ context?: React.Context<Api>;
52
+ range?: number;
53
+ limit?: number;
54
+ frames?: number;
55
+ } & React.RefAttributes<THREE.InstancedMesh<THREE.BufferGeometry<THREE.NormalBufferAttributes>, THREE.Material | THREE.Material[]>>>, React.ForwardRefExoticComponent<React.PropsWithoutRef<T & Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<PositionMesh, import("@react-three/fiber").MathProps<PositionMesh> & import("@react-three/fiber").ReactProps<PositionMesh> & Partial<import("@react-three/fiber").EventHandlers>>>, Omit<import("@react-three/fiber").InstanceProps<PositionMesh, typeof PositionMesh>, "object">>>, "ref"> & {
56
+ context?: React.Context<Api>;
57
+ }> & React.RefAttributes<PositionMesh & T>>];
58
+ export declare const InstancedAttribute: React.ForwardRefExoticComponent<Omit<import("@react-three/fiber/dist/declarations/src/core/utils").Mutable<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<Partial<import("@react-three/fiber/dist/declarations/src/core/utils").Overwrite<THREE.InstancedBufferAttribute, import("@react-three/fiber").MathProps<THREE.InstancedBufferAttribute> & import("@react-three/fiber").ReactProps<THREE.InstancedBufferAttribute>>>, Omit<import("@react-three/fiber").InstanceProps<THREE.InstancedBufferAttribute, typeof THREE.InstancedBufferAttribute>, "object">>>, "ref" | "args"> & {
59
+ name: string;
60
+ defaultValue: any;
61
+ normalized?: boolean;
62
+ usage?: number;
63
+ } & React.RefAttributes<unknown>>;
64
+ export {};