@react-three/drei 10.7.7 → 10.8.0-alpha.1

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 (580) hide show
  1. package/README.md +49 -758
  2. package/_chunks/hls.mjs +3 -0
  3. package/_chunks/libs/@mediapipe/tasks-vision.mjs +4781 -0
  4. package/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
  5. package/_chunks/libs/@use-gesture/core.mjs +1650 -0
  6. package/_chunks/libs/@use-gesture/react.mjs +207 -0
  7. package/_chunks/libs/camera-controls.mjs +2207 -0
  8. package/_chunks/libs/detect-gpu.mjs +515 -0
  9. package/_chunks/libs/hls.js.mjs +21925 -0
  10. package/_chunks/libs/maath.mjs +5200 -0
  11. package/_chunks/libs/stats-gl.mjs +301 -0
  12. package/_chunks/libs/stats.js.mjs +90 -0
  13. package/_chunks/libs/suspend-react.mjs +60 -0
  14. package/_chunks/libs/three.mjs +23169 -0
  15. package/_chunks/libs/tunnel-rat.mjs +458 -0
  16. package/_chunks/libs/zustand.mjs +104 -0
  17. package/_chunks/rolldown-runtime.mjs +47 -0
  18. package/_chunks/vision_bundle.mjs +3 -0
  19. package/core/_chunks/hls.mjs +3 -0
  20. package/core/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
  21. package/core/_chunks/libs/@use-gesture/core.mjs +1650 -0
  22. package/core/_chunks/libs/@use-gesture/react.mjs +207 -0
  23. package/core/_chunks/libs/detect-gpu.mjs +515 -0
  24. package/core/_chunks/libs/hls.js.mjs +21925 -0
  25. package/core/_chunks/libs/maath.mjs +5200 -0
  26. package/core/_chunks/libs/stats-gl.mjs +301 -0
  27. package/core/_chunks/libs/stats.js.mjs +90 -0
  28. package/core/_chunks/libs/suspend-react.mjs +60 -0
  29. package/core/_chunks/libs/three.mjs +22457 -0
  30. package/core/_chunks/libs/tunnel-rat.mjs +458 -0
  31. package/core/_chunks/libs/zustand.mjs +104 -0
  32. package/core/_chunks/rolldown-runtime.mjs +47 -0
  33. package/core/core/index.d.mts +2232 -0
  34. package/core/core/index.mjs +11082 -0
  35. package/experimental/_chunks/libs/three.mjs +15386 -0
  36. package/experimental/experimental/index.d.mts +253 -0
  37. package/experimental/experimental/index.mjs +434 -0
  38. package/external/_chunks/hls.mjs +3 -0
  39. package/external/_chunks/libs/@mediapipe/tasks-vision.mjs +4781 -0
  40. package/external/_chunks/libs/camera-controls.mjs +2207 -0
  41. package/external/_chunks/libs/hls.js.mjs +21925 -0
  42. package/external/_chunks/libs/maath.mjs +5200 -0
  43. package/external/_chunks/libs/suspend-react.mjs +58 -0
  44. package/external/_chunks/libs/three.mjs +15387 -0
  45. package/external/_chunks/rolldown-runtime.mjs +32 -0
  46. package/external/_chunks/vision_bundle.mjs +3 -0
  47. package/external/external/index.d.mts +499 -0
  48. package/external/external/index.mjs +9422 -0
  49. package/index.d.mts +2567 -0
  50. package/index.mjs +20571 -0
  51. package/legacy/_chunks/hls.mjs +3 -0
  52. package/legacy/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
  53. package/legacy/_chunks/libs/@use-gesture/core.mjs +1650 -0
  54. package/legacy/_chunks/libs/@use-gesture/react.mjs +207 -0
  55. package/legacy/_chunks/libs/bidi-js.mjs +675 -0
  56. package/legacy/_chunks/libs/detect-gpu.mjs +515 -0
  57. package/legacy/_chunks/libs/hls.js.mjs +21925 -0
  58. package/legacy/_chunks/libs/maath.mjs +5200 -0
  59. package/legacy/_chunks/libs/stats-gl.mjs +301 -0
  60. package/legacy/_chunks/libs/stats.js.mjs +90 -0
  61. package/legacy/_chunks/libs/suspend-react.mjs +60 -0
  62. package/legacy/_chunks/libs/three.mjs +26062 -0
  63. package/legacy/_chunks/libs/troika-three-text.mjs +6494 -0
  64. package/legacy/_chunks/libs/tunnel-rat.mjs +458 -0
  65. package/legacy/_chunks/libs/zustand.mjs +104 -0
  66. package/legacy/_chunks/rolldown-runtime.mjs +47 -0
  67. package/legacy/legacy/index.d.mts +2788 -0
  68. package/legacy/legacy/index.mjs +14984 -0
  69. package/native/_chunks/hls.mjs +3 -0
  70. package/native/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
  71. package/native/_chunks/libs/@use-gesture/core.mjs +1650 -0
  72. package/native/_chunks/libs/@use-gesture/react.mjs +207 -0
  73. package/native/_chunks/libs/detect-gpu.mjs +515 -0
  74. package/native/_chunks/libs/hls.js.mjs +21925 -0
  75. package/native/_chunks/libs/maath.mjs +5200 -0
  76. package/native/_chunks/libs/stats-gl.mjs +301 -0
  77. package/native/_chunks/libs/stats.js.mjs +90 -0
  78. package/native/_chunks/libs/suspend-react.mjs +60 -0
  79. package/native/_chunks/libs/three.mjs +22592 -0
  80. package/native/_chunks/libs/tunnel-rat.mjs +458 -0
  81. package/native/_chunks/libs/zustand.mjs +104 -0
  82. package/native/_chunks/rolldown-runtime.mjs +47 -0
  83. package/native/native/index.d.mts +3168 -0
  84. package/native/native/index.mjs +14863 -0
  85. package/package.json +41 -10
  86. package/webgpu/_chunks/hls.mjs +3 -0
  87. package/webgpu/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
  88. package/webgpu/_chunks/libs/@use-gesture/core.mjs +1650 -0
  89. package/webgpu/_chunks/libs/@use-gesture/react.mjs +207 -0
  90. package/webgpu/_chunks/libs/detect-gpu.mjs +515 -0
  91. package/webgpu/_chunks/libs/hls.js.mjs +21925 -0
  92. package/webgpu/_chunks/libs/maath.mjs +5200 -0
  93. package/webgpu/_chunks/libs/stats-gl.mjs +301 -0
  94. package/webgpu/_chunks/libs/stats.js.mjs +90 -0
  95. package/webgpu/_chunks/libs/suspend-react.mjs +60 -0
  96. package/webgpu/_chunks/libs/three.mjs +22592 -0
  97. package/webgpu/_chunks/libs/tunnel-rat.mjs +458 -0
  98. package/webgpu/_chunks/libs/zustand.mjs +104 -0
  99. package/webgpu/_chunks/rolldown-runtime.mjs +47 -0
  100. package/webgpu/webgpu/index.d.mts +3166 -0
  101. package/webgpu/webgpu/index.mjs +15015 -0
  102. package/core/AccumulativeShadows.cjs.js +0 -1
  103. package/core/AccumulativeShadows.d.ts +0 -59
  104. package/core/AccumulativeShadows.js +0 -310
  105. package/core/AdaptiveDpr.cjs.js +0 -1
  106. package/core/AdaptiveDpr.d.ts +0 -3
  107. package/core/AdaptiveDpr.js +0 -28
  108. package/core/AdaptiveEvents.cjs.js +0 -1
  109. package/core/AdaptiveEvents.d.ts +0 -1
  110. package/core/AdaptiveEvents.js +0 -20
  111. package/core/ArcballControls.cjs.js +0 -1
  112. package/core/ArcballControls.d.ts +0 -15
  113. package/core/ArcballControls.js +0 -67
  114. package/core/AsciiRenderer.cjs.js +0 -1
  115. package/core/AsciiRenderer.d.ts +0 -11
  116. package/core/AsciiRenderer.js +0 -66
  117. package/core/BBAnchor.cjs.js +0 -1
  118. package/core/BBAnchor.d.ts +0 -7
  119. package/core/BBAnchor.js +0 -37
  120. package/core/Backdrop.cjs.js +0 -1
  121. package/core/Backdrop.d.ts +0 -15
  122. package/core/Backdrop.js +0 -33
  123. package/core/BakeShadows.cjs.js +0 -1
  124. package/core/BakeShadows.d.ts +0 -1
  125. package/core/BakeShadows.js +0 -16
  126. package/core/Billboard.cjs.js +0 -1
  127. package/core/Billboard.d.ts +0 -10
  128. package/core/Billboard.js +0 -53
  129. package/core/Bounds.cjs.js +0 -1
  130. package/core/Bounds.d.ts +0 -36
  131. package/core/Bounds.js +0 -254
  132. package/core/Bvh.cjs.js +0 -1
  133. package/core/Bvh.d.ts +0 -19
  134. package/core/Bvh.js +0 -92
  135. package/core/CameraControls.cjs.js +0 -1
  136. package/core/CameraControls.d.ts +0 -48
  137. package/core/CameraControls.js +0 -151
  138. package/core/CameraShake.cjs.js +0 -1
  139. package/core/CameraShake.d.ts +0 -17
  140. package/core/CameraShake.js +0 -57
  141. package/core/CatmullRomLine.cjs.js +0 -1
  142. package/core/CatmullRomLine.d.ts +0 -10
  143. package/core/CatmullRomLine.js +0 -42
  144. package/core/Caustics.cjs.js +0 -1
  145. package/core/Caustics.d.ts +0 -32
  146. package/core/Caustics.js +0 -388
  147. package/core/Center.cjs.js +0 -1
  148. package/core/Center.d.ts +0 -33
  149. package/core/Center.js +0 -67
  150. package/core/Clone.cjs.js +0 -1
  151. package/core/Clone.d.ts +0 -15
  152. package/core/Clone.js +0 -100
  153. package/core/Cloud.cjs.js +0 -1
  154. package/core/Cloud.d.ts +0 -97
  155. package/core/Cloud.js +0 -231
  156. package/core/ComputedAttribute.cjs.js +0 -1
  157. package/core/ComputedAttribute.d.ts +0 -8
  158. package/core/ComputedAttribute.js +0 -33
  159. package/core/ContactShadows.cjs.js +0 -1
  160. package/core/ContactShadows.d.ts +0 -18
  161. package/core/ContactShadows.js +0 -114
  162. package/core/CubeCamera.cjs.js +0 -1
  163. package/core/CubeCamera.d.ts +0 -21
  164. package/core/CubeCamera.js +0 -86
  165. package/core/CubeTexture.cjs.js +0 -1
  166. package/core/CubeTexture.d.ts +0 -14
  167. package/core/CubeTexture.js +0 -25
  168. package/core/CubicBezierLine.cjs.js +0 -1
  169. package/core/CubicBezierLine.d.ts +0 -12
  170. package/core/CubicBezierLine.js +0 -28
  171. package/core/CurveModifier.cjs.js +0 -1
  172. package/core/CurveModifier.d.ts +0 -11
  173. package/core/CurveModifier.js +0 -27
  174. package/core/Decal.cjs.js +0 -1
  175. package/core/Decal.d.ts +0 -16
  176. package/core/Decal.js +0 -128
  177. package/core/Detailed.cjs.js +0 -1
  178. package/core/Detailed.d.ts +0 -10
  179. package/core/Detailed.js +0 -33
  180. package/core/DetectGPU.cjs.js +0 -1
  181. package/core/DetectGPU.d.ts +0 -7
  182. package/core/DetectGPU.js +0 -14
  183. package/core/DeviceOrientationControls.cjs.js +0 -1
  184. package/core/DeviceOrientationControls.d.ts +0 -10
  185. package/core/DeviceOrientationControls.js +0 -51
  186. package/core/Edges.cjs.js +0 -1
  187. package/core/Edges.d.ts +0 -13
  188. package/core/Edges.js +0 -38
  189. package/core/Effects.cjs.js +0 -1
  190. package/core/Effects.d.ts +0 -25
  191. package/core/Effects.js +0 -91
  192. package/core/Environment.cjs.js +0 -1
  193. package/core/Environment.d.ts +0 -37
  194. package/core/Environment.js +0 -189
  195. package/core/Example.cjs.js +0 -1
  196. package/core/Example.d.ts +0 -13
  197. package/core/Example.js +0 -46
  198. package/core/Fbo.cjs.js +0 -1
  199. package/core/Fbo.d.ts +0 -22
  200. package/core/Fbo.js +0 -63
  201. package/core/Fbx.cjs.js +0 -1
  202. package/core/Fbx.d.ts +0 -11
  203. package/core/Fbx.js +0 -23
  204. package/core/FirstPersonControls.cjs.js +0 -1
  205. package/core/FirstPersonControls.d.ts +0 -8
  206. package/core/FirstPersonControls.js +0 -38
  207. package/core/Fisheye.cjs.js +0 -1
  208. package/core/Fisheye.d.ts +0 -10
  209. package/core/Fisheye.js +0 -95
  210. package/core/Float.cjs.js +0 -1
  211. package/core/Float.d.ts +0 -14
  212. package/core/Float.js +0 -37
  213. package/core/FlyControls.cjs.js +0 -1
  214. package/core/FlyControls.d.ts +0 -10
  215. package/core/FlyControls.js +0 -55
  216. package/core/GizmoHelper.cjs.js +0 -1
  217. package/core/GizmoHelper.d.ts +0 -16
  218. package/core/GizmoHelper.js +0 -116
  219. package/core/GizmoViewcube.cjs.js +0 -1
  220. package/core/GizmoViewcube.d.ts +0 -14
  221. package/core/GizmoViewcube.js +0 -133
  222. package/core/GizmoViewport.cjs.js +0 -1
  223. package/core/GizmoViewport.d.ts +0 -16
  224. package/core/GizmoViewport.js +0 -140
  225. package/core/Gltf.cjs.js +0 -1
  226. package/core/Gltf.d.ts +0 -27
  227. package/core/Gltf.js +0 -52
  228. package/core/GradientTexture.cjs.js +0 -1
  229. package/core/GradientTexture.d.ts +0 -18
  230. package/core/GradientTexture.js +0 -54
  231. package/core/Grid.cjs.js +0 -1
  232. package/core/Grid.d.ts +0 -26
  233. package/core/Grid.js +0 -142
  234. package/core/Helper.cjs.js +0 -1
  235. package/core/Helper.d.ts +0 -16
  236. package/core/Helper.js +0 -47
  237. package/core/Hud.cjs.js +0 -1
  238. package/core/Hud.d.ts +0 -6
  239. package/core/Hud.js +0 -55
  240. package/core/Image.cjs.js +0 -1
  241. package/core/Image.d.ts +0 -38
  242. package/core/Image.js +0 -160
  243. package/core/Instances.cjs.js +0 -1
  244. package/core/Instances.d.ts +0 -64
  245. package/core/Instances.js +0 -313
  246. package/core/Ktx2.cjs.js +0 -1
  247. package/core/Ktx2.d.ts +0 -14
  248. package/core/Ktx2.js +0 -48
  249. package/core/Lightformer.cjs.js +0 -1
  250. package/core/Lightformer.d.ts +0 -15
  251. package/core/Lightformer.js +0 -63
  252. package/core/Line.cjs.js +0 -1
  253. package/core/Line.d.ts +0 -13
  254. package/core/Line.js +0 -73
  255. package/core/MapControls.cjs.js +0 -1
  256. package/core/MapControls.d.ts +0 -14
  257. package/core/MapControls.js +0 -63
  258. package/core/MarchingCubes.cjs.js +0 -1
  259. package/core/MarchingCubes.d.ts +0 -24
  260. package/core/MarchingCubes.js +0 -78
  261. package/core/Mask.cjs.js +0 -1
  262. package/core/Mask.d.ts +0 -17
  263. package/core/Mask.js +0 -42
  264. package/core/MatcapTexture.cjs.js +0 -1
  265. package/core/MatcapTexture.d.ts +0 -9
  266. package/core/MatcapTexture.js +0 -51
  267. package/core/MeshDiscardMaterial.cjs.js +0 -1
  268. package/core/MeshDiscardMaterial.d.ts +0 -10
  269. package/core/MeshDiscardMaterial.js +0 -15
  270. package/core/MeshDistortMaterial.cjs.js +0 -1
  271. package/core/MeshDistortMaterial.d.ts +0 -39
  272. package/core/MeshDistortMaterial.js +0 -72
  273. package/core/MeshPortalMaterial.cjs.js +0 -1
  274. package/core/MeshPortalMaterial.d.ts +0 -25
  275. package/core/MeshPortalMaterial.js +0 -467
  276. package/core/MeshReflectorMaterial.cjs.js +0 -1
  277. package/core/MeshReflectorMaterial.d.ts +0 -14
  278. package/core/MeshReflectorMaterial.js +0 -180
  279. package/core/MeshRefractionMaterial.cjs.js +0 -1
  280. package/core/MeshRefractionMaterial.d.ts +0 -19
  281. package/core/MeshRefractionMaterial.js +0 -73
  282. package/core/MeshTransmissionMaterial.cjs.js +0 -1
  283. package/core/MeshTransmissionMaterial.d.ts +0 -34
  284. package/core/MeshTransmissionMaterial.js +0 -402
  285. package/core/MeshWobbleMaterial.cjs.js +0 -1
  286. package/core/MeshWobbleMaterial.d.ts +0 -36
  287. package/core/MeshWobbleMaterial.js +0 -60
  288. package/core/MotionPathControls.cjs.js +0 -1
  289. package/core/MotionPathControls.d.ts +0 -33
  290. package/core/MotionPathControls.js +0 -121
  291. package/core/MultiMaterial.cjs.js +0 -1
  292. package/core/MultiMaterial.d.ts +0 -4
  293. package/core/MultiMaterial.js +0 -29
  294. package/core/NormalTexture.cjs.js +0 -1
  295. package/core/NormalTexture.d.ts +0 -14
  296. package/core/NormalTexture.js +0 -42
  297. package/core/OrbitControls.cjs.js +0 -1
  298. package/core/OrbitControls.d.ts +0 -22
  299. package/core/OrbitControls.js +0 -79
  300. package/core/OrthographicCamera.cjs.js +0 -1
  301. package/core/OrthographicCamera.d.ts +0 -14
  302. package/core/OrthographicCamera.js +0 -76
  303. package/core/Outlines.cjs.js +0 -1
  304. package/core/Outlines.d.ts +0 -17
  305. package/core/Outlines.js +0 -166
  306. package/core/PerformanceMonitor.cjs.js +0 -1
  307. package/core/PerformanceMonitor.d.ts +0 -36
  308. package/core/PerformanceMonitor.js +0 -116
  309. package/core/PerspectiveCamera.cjs.js +0 -1
  310. package/core/PerspectiveCamera.d.ts +0 -14
  311. package/core/PerspectiveCamera.js +0 -72
  312. package/core/PointMaterial.cjs.js +0 -1
  313. package/core/PointMaterial.d.ts +0 -8
  314. package/core/PointMaterial.js +0 -36
  315. package/core/PointerLockControls.cjs.js +0 -1
  316. package/core/PointerLockControls.d.ts +0 -15
  317. package/core/PointerLockControls.js +0 -89
  318. package/core/Points.cjs.js +0 -1
  319. package/core/Points.d.ts +0 -31
  320. package/core/Points.js +0 -202
  321. package/core/PositionalAudio.cjs.js +0 -1
  322. package/core/PositionalAudio.d.ts +0 -9
  323. package/core/PositionalAudio.js +0 -46
  324. package/core/Preload.cjs.js +0 -1
  325. package/core/Preload.d.ts +0 -7
  326. package/core/Preload.js +0 -44
  327. package/core/Progress.cjs.js +0 -1
  328. package/core/Progress.d.ts +0 -14
  329. package/core/Progress.js +0 -55
  330. package/core/QuadraticBezierLine.cjs.js +0 -1
  331. package/core/QuadraticBezierLine.d.ts +0 -14
  332. package/core/QuadraticBezierLine.js +0 -42
  333. package/core/RenderCubeTexture.cjs.js +0 -1
  334. package/core/RenderCubeTexture.d.ts +0 -30
  335. package/core/RenderCubeTexture.js +0 -96
  336. package/core/RenderTexture.cjs.js +0 -1
  337. package/core/RenderTexture.d.ts +0 -18
  338. package/core/RenderTexture.js +0 -105
  339. package/core/Resize.cjs.js +0 -1
  340. package/core/Resize.d.ts +0 -17
  341. package/core/Resize.js +0 -39
  342. package/core/RoundedBox.cjs.js +0 -1
  343. package/core/RoundedBox.d.ts +0 -14
  344. package/core/RoundedBox.js +0 -70
  345. package/core/Sampler.cjs.js +0 -1
  346. package/core/Sampler.d.ts +0 -28
  347. package/core/Sampler.js +0 -75
  348. package/core/ScreenQuad.cjs.js +0 -1
  349. package/core/ScreenQuad.d.ts +0 -5
  350. package/core/ScreenQuad.js +0 -25
  351. package/core/ScreenSizer.cjs.js +0 -1
  352. package/core/ScreenSizer.d.ts +0 -7
  353. package/core/ScreenSizer.js +0 -39
  354. package/core/ScreenSpace.cjs.js +0 -1
  355. package/core/ScreenSpace.d.ts +0 -7
  356. package/core/ScreenSpace.js +0 -25
  357. package/core/Segments.cjs.js +0 -1
  358. package/core/Segments.d.ts +0 -29
  359. package/core/Segments.js +0 -96
  360. package/core/Shadow.cjs.js +0 -1
  361. package/core/Shadow.d.ts +0 -12
  362. package/core/Shadow.js +0 -42
  363. package/core/ShadowAlpha.cjs.js +0 -1
  364. package/core/ShadowAlpha.d.ts +0 -7
  365. package/core/ShadowAlpha.js +0 -108
  366. package/core/Sky.cjs.js +0 -1
  367. package/core/Sky.d.ts +0 -16
  368. package/core/Sky.js +0 -39
  369. package/core/Sparkles.cjs.js +0 -1
  370. package/core/Sparkles.d.ts +0 -26
  371. package/core/Sparkles.js +0 -161
  372. package/core/Splat.cjs.js +0 -1
  373. package/core/Splat.d.ts +0 -56
  374. package/core/Splat.js +0 -506
  375. package/core/SpotLight.cjs.js +0 -1
  376. package/core/SpotLight.d.ts +0 -27
  377. package/core/SpotLight.js +0 -223
  378. package/core/SpriteAnimator.cjs.js +0 -1
  379. package/core/SpriteAnimator.d.ts +0 -88
  380. package/core/SpriteAnimator.js +0 -413
  381. package/core/Stage.cjs.js +0 -1
  382. package/core/Stage.d.ts +0 -27
  383. package/core/Stage.js +0 -133
  384. package/core/Stars.cjs.js +0 -1
  385. package/core/Stars.d.ts +0 -22
  386. package/core/Stars.js +0 -100
  387. package/core/Stats.cjs.js +0 -1
  388. package/core/Stats.d.ts +0 -7
  389. package/core/Stats.js +0 -32
  390. package/core/StatsGl.cjs.js +0 -1
  391. package/core/StatsGl.d.ts +0 -14
  392. package/core/StatsGl.js +0 -44
  393. package/core/Svg.cjs.js +0 -1
  394. package/core/Svg.d.ts +0 -13
  395. package/core/Svg.js +0 -62
  396. package/core/Text.cjs.js +0 -1
  397. package/core/Text.d.ts +0 -38
  398. package/core/Text.js +0 -57
  399. package/core/Text3D.cjs.js +0 -1
  400. package/core/Text3D.d.ts +0 -20
  401. package/core/Text3D.js +0 -74
  402. package/core/Texture.cjs.js +0 -1
  403. package/core/Texture.d.ts +0 -20
  404. package/core/Texture.js +0 -60
  405. package/core/TrackballControls.cjs.js +0 -1
  406. package/core/TrackballControls.d.ts +0 -15
  407. package/core/TrackballControls.js +0 -72
  408. package/core/Trail.cjs.js +0 -1
  409. package/core/Trail.d.ts +0 -21
  410. package/core/Trail.js +0 -150
  411. package/core/TrailTexture.cjs.js +0 -1
  412. package/core/TrailTexture.d.ts +0 -19
  413. package/core/TrailTexture.js +0 -159
  414. package/core/TransformControls.cjs.js +0 -1
  415. package/core/TransformControls.d.ts +0 -28
  416. package/core/TransformControls.js +0 -114
  417. package/core/VideoTexture.cjs.js +0 -1
  418. package/core/VideoTexture.d.ts +0 -26
  419. package/core/VideoTexture.js +0 -111
  420. package/core/Wireframe.cjs.js +0 -1
  421. package/core/Wireframe.d.ts +0 -15
  422. package/core/Wireframe.js +0 -157
  423. package/core/calculateScaleFactor.cjs.js +0 -1
  424. package/core/calculateScaleFactor.d.ts +0 -3
  425. package/core/calculateScaleFactor.js +0 -31
  426. package/core/index.cjs.js +0 -1
  427. package/core/index.d.ts +0 -122
  428. package/core/index.js +0 -150
  429. package/core/meshBounds.cjs.js +0 -1
  430. package/core/meshBounds.d.ts +0 -2
  431. package/core/meshBounds.js +0 -28
  432. package/core/shaderMaterial.cjs.js +0 -1
  433. package/core/shaderMaterial.d.ts +0 -9
  434. package/core/shaderMaterial.js +0 -29
  435. package/core/shapes.cjs.js +0 -1
  436. package/core/shapes.d.ts +0 -26
  437. package/core/shapes.js +0 -65
  438. package/core/softShadows.cjs.js +0 -1
  439. package/core/softShadows.d.ts +0 -6
  440. package/core/softShadows.js +0 -158
  441. package/core/useAnimations.cjs.js +0 -1
  442. package/core/useAnimations.d.ts +0 -13
  443. package/core/useAnimations.js +0 -52
  444. package/core/useAspect.cjs.js +0 -1
  445. package/core/useAspect.d.ts +0 -1
  446. package/core/useAspect.js +0 -10
  447. package/core/useBoxProjectedEnv.cjs.js +0 -1
  448. package/core/useBoxProjectedEnv.d.ts +0 -19
  449. package/core/useBoxProjectedEnv.js +0 -95
  450. package/core/useCamera.cjs.js +0 -1
  451. package/core/useCamera.d.ts +0 -3
  452. package/core/useCamera.js +0 -19
  453. package/core/useContextBridge.cjs.js +0 -1
  454. package/core/useContextBridge.d.ts +0 -4
  455. package/core/useContextBridge.js +0 -20
  456. package/core/useDepthBuffer.cjs.js +0 -1
  457. package/core/useDepthBuffer.d.ts +0 -6
  458. package/core/useDepthBuffer.js +0 -38
  459. package/core/useEnvironment.cjs.js +0 -1
  460. package/core/useEnvironment.d.ts +0 -17
  461. package/core/useEnvironment.js +0 -150
  462. package/core/useFont.cjs.js +0 -1
  463. package/core/useFont.d.ts +0 -24
  464. package/core/useFont.js +0 -24
  465. package/core/useIntersect.cjs.js +0 -1
  466. package/core/useIntersect.d.ts +0 -3
  467. package/core/useIntersect.js +0 -36
  468. package/core/useSpriteLoader.cjs.js +0 -1
  469. package/core/useSpriteLoader.d.ts +0 -57
  470. package/core/useSpriteLoader.js +0 -402
  471. package/helpers/constants.cjs.js +0 -1
  472. package/helpers/constants.d.ts +0 -1
  473. package/helpers/constants.js +0 -6
  474. package/helpers/deprecated.cjs.js +0 -1
  475. package/helpers/deprecated.d.ts +0 -5
  476. package/helpers/deprecated.js +0 -8
  477. package/helpers/environment-assets.cjs.js +0 -1
  478. package/helpers/environment-assets.d.ts +0 -13
  479. package/helpers/environment-assets.js +0 -14
  480. package/helpers/glsl/DefaultSpotlightShadowShadows.glsl.js +0 -3
  481. package/helpers/glsl/distort.vert.glsl.js +0 -3
  482. package/helpers/ts-utils.cjs.js +0 -1
  483. package/helpers/ts-utils.d.ts +0 -7
  484. package/helpers/ts-utils.js +0 -1
  485. package/helpers/useEffectfulState.cjs.js +0 -1
  486. package/helpers/useEffectfulState.d.ts +0 -4
  487. package/helpers/useEffectfulState.js +0 -17
  488. package/index.cjs.js +0 -1
  489. package/index.d.ts +0 -1
  490. package/index.js +0 -139
  491. package/materials/BlurPass.cjs.js +0 -1
  492. package/materials/BlurPass.d.ts +0 -23
  493. package/materials/BlurPass.js +0 -72
  494. package/materials/ConvolutionMaterial.cjs.js +0 -1
  495. package/materials/ConvolutionMaterial.d.ts +0 -7
  496. package/materials/ConvolutionMaterial.js +0 -97
  497. package/materials/DiscardMaterial.cjs.js +0 -1
  498. package/materials/DiscardMaterial.d.ts +0 -3
  499. package/materials/DiscardMaterial.js +0 -5
  500. package/materials/MeshReflectorMaterial.cjs.js +0 -1
  501. package/materials/MeshReflectorMaterial.d.ts +0 -50
  502. package/materials/MeshReflectorMaterial.js +0 -256
  503. package/materials/MeshRefractionMaterial.cjs.js +0 -1
  504. package/materials/MeshRefractionMaterial.d.ts +0 -18
  505. package/materials/MeshRefractionMaterial.js +0 -163
  506. package/materials/SpotLightMaterial.cjs.js +0 -1
  507. package/materials/SpotLightMaterial.d.ts +0 -4
  508. package/materials/SpotLightMaterial.js +0 -115
  509. package/materials/WireframeMaterial.cjs.js +0 -1
  510. package/materials/WireframeMaterial.d.ts +0 -64
  511. package/materials/WireframeMaterial.js +0 -217
  512. package/native/index.cjs.js +0 -1
  513. package/native/index.d.ts +0 -1
  514. package/native/index.js +0 -150
  515. package/web/CycleRaycast.cjs.js +0 -1
  516. package/web/CycleRaycast.d.ts +0 -10
  517. package/web/CycleRaycast.js +0 -93
  518. package/web/DragControls.cjs.js +0 -1
  519. package/web/DragControls.d.ts +0 -17
  520. package/web/DragControls.js +0 -127
  521. package/web/FaceControls.cjs.js +0 -1
  522. package/web/FaceControls.d.ts +0 -29
  523. package/web/FaceControls.js +0 -236
  524. package/web/FaceLandmarker.cjs.js +0 -1
  525. package/web/FaceLandmarker.d.ts +0 -14
  526. package/web/FaceLandmarker.js +0 -49
  527. package/web/Facemesh.cjs.js +0 -1
  528. package/web/Facemesh.d.ts +0 -118
  529. package/web/Facemesh.js +0 -4538
  530. package/web/Html.cjs.js +0 -1
  531. package/web/Html.d.ts +0 -34
  532. package/web/Html.js +0 -375
  533. package/web/KeyboardControls.cjs.js +0 -1
  534. package/web/KeyboardControls.d.ts +0 -37
  535. package/web/KeyboardControls.js +0 -104
  536. package/web/Loader.cjs.js +0 -1
  537. package/web/Loader.d.ts +0 -12
  538. package/web/Loader.js +0 -101
  539. package/web/PresentationControls.cjs.js +0 -1
  540. package/web/PresentationControls.d.ts +0 -16
  541. package/web/PresentationControls.js +0 -79
  542. package/web/ScreenVideoTexture.cjs.js +0 -1
  543. package/web/ScreenVideoTexture.d.ts +0 -17
  544. package/web/ScreenVideoTexture.js +0 -30
  545. package/web/ScrollControls.cjs.js +0 -1
  546. package/web/ScrollControls.d.ts +0 -45
  547. package/web/ScrollControls.js +0 -237
  548. package/web/Select.cjs.js +0 -1
  549. package/web/Select.d.ts +0 -14
  550. package/web/Select.js +0 -171
  551. package/web/View.cjs.js +0 -1
  552. package/web/View.d.ts +0 -34
  553. package/web/View.js +0 -259
  554. package/web/WebcamVideoTexture.cjs.js +0 -1
  555. package/web/WebcamVideoTexture.d.ts +0 -17
  556. package/web/WebcamVideoTexture.js +0 -33
  557. package/web/index.cjs.js +0 -1
  558. package/web/index.d.ts +0 -17
  559. package/web/index.js +0 -176
  560. package/web/pivotControls/AxisArrow.cjs.js +0 -1
  561. package/web/pivotControls/AxisArrow.d.ts +0 -7
  562. package/web/pivotControls/AxisArrow.js +0 -193
  563. package/web/pivotControls/AxisRotator.cjs.js +0 -1
  564. package/web/pivotControls/AxisRotator.d.ts +0 -7
  565. package/web/pivotControls/AxisRotator.js +0 -220
  566. package/web/pivotControls/PlaneSlider.cjs.js +0 -1
  567. package/web/pivotControls/PlaneSlider.d.ts +0 -7
  568. package/web/pivotControls/PlaneSlider.js +0 -202
  569. package/web/pivotControls/ScalingSphere.cjs.js +0 -1
  570. package/web/pivotControls/ScalingSphere.d.ts +0 -7
  571. package/web/pivotControls/ScalingSphere.js +0 -192
  572. package/web/pivotControls/context.cjs.js +0 -1
  573. package/web/pivotControls/context.d.ts +0 -33
  574. package/web/pivotControls/context.js +0 -5
  575. package/web/pivotControls/index.cjs.js +0 -1
  576. package/web/pivotControls/index.d.ts +0 -39
  577. package/web/pivotControls/index.js +0 -213
  578. package/web/useCursor.cjs.js +0 -1
  579. package/web/useCursor.d.ts +0 -1
  580. package/web/useCursor.js +0 -12
@@ -1 +0,0 @@
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"),o=require("maath");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(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=c(e),a=u(t),i=u(r);const f=i.createContext(null);function l(){const e=i.useContext(f);if(!e)throw new Error("useMotion hook must be used in a MotionPathControls component.");return e}function m({points:e=50,color:t="black"}){const{path:r}=l(),[n,o]=i.useState([]),c=i.useMemo((()=>new a.MeshBasicMaterial({color:t})),[t]),u=i.useMemo((()=>new a.SphereGeometry(.025,16,16)),[]),s=i.useRef([]);return i.useEffect((()=>{r.curves!==s.current&&(o(r.getPoints(e)),s.current=r.curves)})),n.map(((e,t)=>i.createElement("mesh",{key:t,material:c,geometry:u,position:[e.x,e.y,e.z]})))}const p=i.forwardRef((({children:e,curves:t=[],debug:r=!1,debugColor:c="black",object:u,focus:l,loop:p=!0,offset:d,smooth:g=!1,eps:b=1e-5,damping:h=.1,focusDamping:v=.1,maxSpeed:j=1/0,...y},M)=>{const{camera:w}=n.useThree(),P=i.useRef(null),O=i.useRef(null!=d?d:0),x=i.useMemo((()=>new a.CurvePath),[]),C=i.useMemo((()=>({focus:l,object:(null==u?void 0:u.current)instanceof a.Object3D?u:{current:w},path:x,current:O.current,offset:O.current,point:new a.Vector3,tangent:new a.Vector3,next:new a.Vector3})),[l,u]),E=n.useInstanceHandle(P);i.useLayoutEffect((()=>{const e=E.current;x.curves=[];const r=t.length>0?t:e.children.map((e=>e.object));for(let e=0;e<r.length;e++)x.add(r[e]);if(g){const e=x.getPoints("number"==typeof g?g:1),t=new a.CatmullRomCurve3(e);x.curves=[t]}x.updateArcLengths()})),i.useImperativeHandle(M,(()=>Object.assign(P.current,{motion:C})),[C]),i.useLayoutEffect((()=>{O.current=o.misc.repeat(O.current,1)}),[d]);const k=i.useMemo((()=>new a.Vector3),[]);return n.useFrame(((e,t)=>{const r=C.offset;if(o.easing.damp(O,"current",void 0!==d?d:C.current,h,t,j,void 0,b),C.offset=p?o.misc.repeat(O.current,1):o.misc.clamp(O.current,0,1),x.getCurveLengths().length>0){x.getPointAt(C.offset,C.point),x.getTangentAt(C.offset,C.tangent).normalize(),x.getPointAt(o.misc.repeat(O.current-(r-C.offset),1),C.next);const e=(null==u?void 0:u.current)instanceof a.Object3D?u.current:w;e.position.copy(C.point),l&&o.easing.dampLookAt(e,(e=>(null==e?void 0:e.current)instanceof a.Object3D)(l)?l.current.getWorldPosition(k):l,v,t,j,void 0,b)}})),i.createElement("group",s.default({ref:P},y),i.createElement(f.Provider,{value:C},e,r&&i.createElement(m,{color:c})))}));exports.MotionPathControls=p,exports.useMotion=l;
@@ -1,33 +0,0 @@
1
- import * as THREE from 'three';
2
- import * as React from 'react';
3
- import { ThreeElements } from '@react-three/fiber';
4
- export type MotionPathProps = ThreeElements['group'] & {
5
- curves?: THREE.Curve<THREE.Vector3>[];
6
- debug?: boolean;
7
- debugColor?: THREE.ColorRepresentation;
8
- object?: React.RefObject<THREE.Object3D>;
9
- focus?: [x: number, y: number, z: number] | React.RefObject<THREE.Object3D>;
10
- loop?: boolean;
11
- offset?: number;
12
- smooth?: boolean | number;
13
- eps?: number;
14
- damping?: number;
15
- focusDamping?: number;
16
- maxSpeed?: number;
17
- };
18
- type MotionState = {
19
- current: number;
20
- path: THREE.CurvePath<THREE.Vector3>;
21
- focus: React.RefObject<THREE.Object3D> | [x: number, y: number, z: number] | undefined;
22
- object: React.RefObject<THREE.Object3D>;
23
- offset: number;
24
- point: THREE.Vector3;
25
- tangent: THREE.Vector3;
26
- next: THREE.Vector3;
27
- };
28
- export type MotionPathRef = THREE.Group & {
29
- motion: MotionState;
30
- };
31
- export declare function useMotion(): MotionState;
32
- export declare const MotionPathControls: React.ForwardRefExoticComponent<Omit<MotionPathProps, "ref"> & React.RefAttributes<MotionPathRef>>;
33
- export {};
@@ -1,121 +0,0 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
2
- import * as THREE from 'three';
3
- import * as React from 'react';
4
- import { useThree, useInstanceHandle, useFrame } from '@react-three/fiber';
5
- import { misc, easing } from 'maath';
6
-
7
- const isObject3DRef = ref => (ref == null ? void 0 : ref.current) instanceof THREE.Object3D;
8
- const MotionContext = /* @__PURE__ */React.createContext(null);
9
- function useMotion() {
10
- const context = React.useContext(MotionContext);
11
- if (!context) throw new Error('useMotion hook must be used in a MotionPathControls component.');
12
- return context;
13
- }
14
- function Debug({
15
- points = 50,
16
- color = 'black'
17
- }) {
18
- const {
19
- path
20
- } = useMotion();
21
- const [dots, setDots] = React.useState([]);
22
- const material = React.useMemo(() => new THREE.MeshBasicMaterial({
23
- color: color
24
- }), [color]);
25
- const geometry = React.useMemo(() => new THREE.SphereGeometry(0.025, 16, 16), []);
26
- const last = React.useRef([]);
27
- React.useEffect(() => {
28
- if (path.curves !== last.current) {
29
- setDots(path.getPoints(points));
30
- last.current = path.curves;
31
- }
32
- });
33
- return dots.map((item, index) => /*#__PURE__*/React.createElement("mesh", {
34
- key: index,
35
- material: material,
36
- geometry: geometry,
37
- position: [item.x, item.y, item.z]
38
- }));
39
- }
40
- const MotionPathControls = /* @__PURE__ */React.forwardRef(({
41
- children,
42
- curves = [],
43
- debug = false,
44
- debugColor = 'black',
45
- object,
46
- focus,
47
- loop = true,
48
- offset = undefined,
49
- smooth = false,
50
- eps = 0.00001,
51
- damping = 0.1,
52
- focusDamping = 0.1,
53
- maxSpeed = Infinity,
54
- ...props
55
- }, fref) => {
56
- const {
57
- camera
58
- } = useThree();
59
- const ref = React.useRef(null);
60
- const pos = React.useRef(offset !== null && offset !== void 0 ? offset : 0);
61
- const path = React.useMemo(() => new THREE.CurvePath(), []);
62
- const state = React.useMemo(() => ({
63
- focus,
64
- object: (object == null ? void 0 : object.current) instanceof THREE.Object3D ? object : {
65
- current: camera
66
- },
67
- path,
68
- current: pos.current,
69
- offset: pos.current,
70
- point: new THREE.Vector3(),
71
- tangent: new THREE.Vector3(),
72
- next: new THREE.Vector3()
73
- }), [focus, object]);
74
- const instanceRef = useInstanceHandle(ref);
75
- React.useLayoutEffect(() => {
76
- const instance = instanceRef.current;
77
- path.curves = [];
78
- const _curves = curves.length > 0 ? curves : instance.children.map(instance => instance.object);
79
- for (let i = 0; i < _curves.length; i++) path.add(_curves[i]);
80
-
81
- // Smoothen curve
82
- if (smooth) {
83
- const points = path.getPoints(typeof smooth === 'number' ? smooth : 1);
84
- const catmull = new THREE.CatmullRomCurve3(points);
85
- path.curves = [catmull];
86
- }
87
- path.updateArcLengths();
88
- });
89
- React.useImperativeHandle(fref, () => Object.assign(ref.current, {
90
- motion: state
91
- }), [state]);
92
- React.useLayoutEffect(() => {
93
- // When offset changes, normalise pos to avoid overshoot spinning
94
- pos.current = misc.repeat(pos.current, 1);
95
- }, [offset]);
96
- const vec = React.useMemo(() => new THREE.Vector3(), []);
97
- useFrame((_state, delta) => {
98
- const lastOffset = state.offset;
99
- easing.damp(pos, 'current', offset !== undefined ? offset : state.current, damping, delta, maxSpeed, undefined, eps);
100
- state.offset = loop ? misc.repeat(pos.current, 1) : misc.clamp(pos.current, 0, 1);
101
- if (path.getCurveLengths().length > 0) {
102
- path.getPointAt(state.offset, state.point);
103
- path.getTangentAt(state.offset, state.tangent).normalize();
104
- path.getPointAt(misc.repeat(pos.current - (lastOffset - state.offset), 1), state.next);
105
- const target = (object == null ? void 0 : object.current) instanceof THREE.Object3D ? object.current : camera;
106
- target.position.copy(state.point);
107
- if (focus) {
108
- easing.dampLookAt(target, isObject3DRef(focus) ? focus.current.getWorldPosition(vec) : focus, focusDamping, delta, maxSpeed, undefined, eps);
109
- }
110
- }
111
- });
112
- return /*#__PURE__*/React.createElement("group", _extends({
113
- ref: ref
114
- }, props), /*#__PURE__*/React.createElement(MotionContext.Provider, {
115
- value: state
116
- }, children, debug && /*#__PURE__*/React.createElement(Debug, {
117
- color: debugColor
118
- })));
119
- });
120
-
121
- export { MotionPathControls, useMotion };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var 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 n=t(e),a=u(r);exports.MultiMaterial=function(e){const r=a.useRef(null);return a.useLayoutEffect((()=>{const e=r.current.parent,t=null==e?void 0:e.geometry;if(t){const u=e.material;e.material=r.current.__r3f.children.map((e=>e.object));const n=[...t.groups];return t.clearGroups(),e.material.forEach(((r,u)=>{u<e.material.length-1&&(r.depthWrite=!1),t.addGroup(0,1/0,u)})),()=>{e.material=u,t.groups=n}}})),a.createElement("group",n.default({ref:r},e))};
@@ -1,4 +0,0 @@
1
- import { ThreeElements } from '@react-three/fiber';
2
- import * as React from 'react';
3
- export type MultiMaterialProps = Omit<ThreeElements['group'], 'ref'>;
4
- export declare function MultiMaterial(props: MultiMaterialProps): React.JSX.Element;
@@ -1,29 +0,0 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
2
- import * as React from 'react';
3
-
4
- function MultiMaterial(props) {
5
- const group = React.useRef(null);
6
- React.useLayoutEffect(() => {
7
- const parent = group.current.parent;
8
- const geometry = parent == null ? void 0 : parent.geometry;
9
- if (geometry) {
10
- const oldMaterial = parent.material;
11
- parent.material = group.current.__r3f.children.map(instance => instance.object);
12
- const oldGroups = [...geometry.groups];
13
- geometry.clearGroups();
14
- parent.material.forEach((material, index) => {
15
- if (index < parent.material.length - 1) material.depthWrite = false;
16
- geometry.addGroup(0, Infinity, index);
17
- });
18
- return () => {
19
- parent.material = oldMaterial;
20
- geometry.groups = oldGroups;
21
- };
22
- }
23
- });
24
- return /*#__PURE__*/React.createElement("group", _extends({
25
- ref: group
26
- }, props));
27
- }
28
-
29
- export { MultiMaterial };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./Texture.cjs.js"),t=require("three"),n=require("suspend-react");function s(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)}require("@react-three/fiber");var o=s(e);function a(e=0,s={},a){const{repeat:u=[1,1],anisotropy:c=1,offset:i=[0,0]}=s,f=n.suspend((()=>fetch("https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json").then((e=>e.json()))),["normalsList"]),l=o.useMemo((()=>Object.keys(f).length),[]),p=f[0],d=`https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb/normals/${f[e]||p}`,m=r.useTexture(d,a);return o.useLayoutEffect((()=>{m&&(m.wrapS=m.wrapT=t.RepeatWrapping,m.repeat=new t.Vector2(u[0],u[1]),m.offset=new t.Vector2(i[0],i[1]),m.anisotropy=c)}),[m,c,u,i]),[m,d,l]}exports.NormalTexture=({children:e,id:r,onLoad:t,...n})=>{const s=a(r,n,t);return o.createElement(o.Fragment,null,null==e?void 0:e(s))},exports.useNormalTexture=a;
@@ -1,14 +0,0 @@
1
- import * as React from 'react';
2
- import { Texture } from 'three';
3
- type Settings = {
4
- repeat?: number[];
5
- anisotropy?: number;
6
- offset?: number[];
7
- };
8
- export declare function useNormalTexture(id?: number, settings?: Settings, onLoad?: (texture: Texture | Texture[]) => void): [Texture, string, number];
9
- export declare const NormalTexture: ({ children, id, onLoad, ...settings }: {
10
- children?: (texture: ReturnType<typeof useNormalTexture>) => React.ReactNode;
11
- id?: Parameters<typeof useNormalTexture>[0];
12
- onLoad?: Parameters<typeof useNormalTexture>[2];
13
- } & Settings) => React.JSX.Element;
14
- export {};
@@ -1,42 +0,0 @@
1
- import * as React from 'react';
2
- import { useTexture } from './Texture.js';
3
- import { RepeatWrapping, Vector2 } from 'three';
4
- import { suspend } from 'suspend-react';
5
-
6
- const NORMAL_ROOT = 'https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb';
7
- const LIST_URL = 'https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json';
8
- function useNormalTexture(id = 0, settings = {}, onLoad) {
9
- const {
10
- repeat = [1, 1],
11
- anisotropy = 1,
12
- offset = [0, 0]
13
- } = settings;
14
- const normalsList = suspend(() => fetch(LIST_URL).then(res => res.json()), ['normalsList']);
15
- const numTot = React.useMemo(() => Object.keys(normalsList).length, []);
16
- const DEFAULT_NORMAL = normalsList[0];
17
- const imageName = normalsList[id] || DEFAULT_NORMAL;
18
- const url = `${NORMAL_ROOT}/normals/${imageName}`;
19
- const normalTexture = useTexture(url, onLoad);
20
- React.useLayoutEffect(() => {
21
- if (!normalTexture) return;
22
- normalTexture.wrapS = normalTexture.wrapT = RepeatWrapping;
23
- normalTexture.repeat = new Vector2(repeat[0], repeat[1]);
24
- normalTexture.offset = new Vector2(offset[0], offset[1]);
25
- normalTexture.anisotropy = anisotropy;
26
- }, [normalTexture, anisotropy, repeat, offset]);
27
- return [normalTexture, url, numTot];
28
- }
29
-
30
- //
31
-
32
- const NormalTexture = ({
33
- children,
34
- id,
35
- onLoad,
36
- ...settings
37
- }) => {
38
- const ret = useNormalTexture(id, settings, onLoad);
39
- return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(ret));
40
- };
41
-
42
- export { NormalTexture, useNormalTexture };
@@ -1 +0,0 @@
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 s(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 a=s(e),u=o(r);const c=u.forwardRef((({makeDefault:e,camera:r,regress:s,domElement:o,enableDamping:c=!0,keyEvents:i=!1,onChange:f,onStart:d,onEnd:l,...m},v)=>{const b=t.useThree((e=>e.invalidate)),E=t.useThree((e=>e.camera)),h=t.useThree((e=>e.gl)),p=t.useThree((e=>e.events)),g=t.useThree((e=>e.setEvents)),O=t.useThree((e=>e.set)),j=t.useThree((e=>e.get)),T=t.useThree((e=>e.performance)),y=r||E,L=o||p.connected||h.domElement,q=u.useMemo((()=>new n.OrbitControls(y)),[y]);return t.useFrame((()=>{q.enabled&&q.update()}),-1),u.useEffect((()=>(i&&q.connect(!0===i?L:i),q.connect(L),()=>{q.dispose()})),[i,L,s,q,b]),u.useEffect((()=>{const e=e=>{b(),s&&T.regress(),f&&f(e)},t=e=>{d&&d(e)},r=e=>{l&&l(e)};return q.addEventListener("change",e),q.addEventListener("start",t),q.addEventListener("end",r),()=>{q.removeEventListener("start",t),q.removeEventListener("end",r),q.removeEventListener("change",e)}}),[f,d,l,q,b,g]),u.useEffect((()=>{if(e){const e=j().controls;return O({controls:q}),()=>O({controls:e})}}),[e,q]),u.createElement("primitive",a.default({ref:v,object:q,enableDamping:c},m))}));exports.OrbitControls=c;
@@ -1,22 +0,0 @@
1
- import { ReactThreeFiber, ThreeElement } from '@react-three/fiber';
2
- import { Camera, Event } from 'three';
3
- import { OrbitControls as OrbitControlsImpl } from 'three-stdlib';
4
- import { ForwardRefComponent, Overwrite } from '../helpers/ts-utils';
5
- type ExtractCallback<T, E extends string> = T extends {
6
- addEventListener(event: E, callback: infer C): void;
7
- } ? C : never;
8
- export type OrbitControlsChangeEvent = Parameters<ExtractCallback<OrbitControlsImpl, 'change'>>[0];
9
- export type OrbitControlsProps = Omit<Overwrite<ThreeElement<typeof OrbitControlsImpl>, {
10
- camera?: Camera;
11
- domElement?: HTMLElement;
12
- enableDamping?: boolean;
13
- makeDefault?: boolean;
14
- onChange?: (e?: OrbitControlsChangeEvent) => void;
15
- onEnd?: (e?: Event) => void;
16
- onStart?: (e?: Event) => void;
17
- regress?: boolean;
18
- target?: ReactThreeFiber.Vector3;
19
- keyEvents?: boolean | HTMLElement;
20
- }>, 'ref' | 'args'>;
21
- export declare const OrbitControls: ForwardRefComponent<OrbitControlsProps, OrbitControlsImpl>;
22
- export {};
@@ -1,79 +0,0 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
2
- import { useThree, useFrame } from '@react-three/fiber';
3
- import * as React from 'react';
4
- import { OrbitControls as OrbitControls$1 } from 'three-stdlib';
5
-
6
- const OrbitControls = /* @__PURE__ */React.forwardRef(({
7
- makeDefault,
8
- camera,
9
- regress,
10
- domElement,
11
- enableDamping = true,
12
- keyEvents = false,
13
- onChange,
14
- onStart,
15
- onEnd,
16
- ...restProps
17
- }, ref) => {
18
- const invalidate = useThree(state => state.invalidate);
19
- const defaultCamera = useThree(state => state.camera);
20
- const gl = useThree(state => state.gl);
21
- const events = useThree(state => state.events);
22
- const setEvents = useThree(state => state.setEvents);
23
- const set = useThree(state => state.set);
24
- const get = useThree(state => state.get);
25
- const performance = useThree(state => state.performance);
26
- const explCamera = camera || defaultCamera;
27
- const explDomElement = domElement || events.connected || gl.domElement;
28
- const controls = React.useMemo(() => new OrbitControls$1(explCamera), [explCamera]);
29
- useFrame(() => {
30
- if (controls.enabled) controls.update();
31
- }, -1);
32
- React.useEffect(() => {
33
- if (keyEvents) {
34
- controls.connect(keyEvents === true ? explDomElement : keyEvents);
35
- }
36
- controls.connect(explDomElement);
37
- return () => void controls.dispose();
38
- }, [keyEvents, explDomElement, regress, controls, invalidate]);
39
- React.useEffect(() => {
40
- const callback = e => {
41
- invalidate();
42
- if (regress) performance.regress();
43
- if (onChange) onChange(e);
44
- };
45
- const onStartCb = e => {
46
- if (onStart) onStart(e);
47
- };
48
- const onEndCb = e => {
49
- if (onEnd) onEnd(e);
50
- };
51
- controls.addEventListener('change', callback);
52
- controls.addEventListener('start', onStartCb);
53
- controls.addEventListener('end', onEndCb);
54
- return () => {
55
- controls.removeEventListener('start', onStartCb);
56
- controls.removeEventListener('end', onEndCb);
57
- controls.removeEventListener('change', callback);
58
- };
59
- }, [onChange, onStart, onEnd, controls, invalidate, setEvents]);
60
- React.useEffect(() => {
61
- if (makeDefault) {
62
- const old = get().controls;
63
- // @ts-ignore https://github.com/three-types/three-ts-types/pull/1398
64
- set({
65
- controls
66
- });
67
- return () => set({
68
- controls: old
69
- });
70
- }
71
- }, [makeDefault, controls]);
72
- return /*#__PURE__*/React.createElement("primitive", _extends({
73
- ref: ref,
74
- object: controls,
75
- enableDamping: enableDamping
76
- }, restProps));
77
- });
78
-
79
- export { OrbitControls };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("./Fbo.cjs.js");function n(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=n(e),o=a(r);const s=o.forwardRef((({envMap:e,resolution:r=256,frames:n=1/0,children:a,makeDefault:s,...i},l)=>{const f=t.useThree((({set:e})=>e)),d=t.useThree((({camera:e})=>e)),h=t.useThree((({size:e})=>e)),b=o.useRef(null);o.useImperativeHandle(l,(()=>b.current),[]);const g=o.useRef(null),m=u.useFBO(r);o.useLayoutEffect((()=>{i.manual||b.current.updateProjectionMatrix()}),[h,i]),o.useLayoutEffect((()=>{b.current.updateProjectionMatrix()})),o.useLayoutEffect((()=>{if(s){const e=d;return f((()=>({camera:b.current}))),()=>f((()=>({camera:e})))}}),[b,s,f]);let p=0,j=null;const v="function"==typeof a;return t.useFrame((r=>{v&&(n===1/0||p<n)&&(g.current.visible=!1,r.gl.setRenderTarget(m),j=r.scene.background,e&&(r.scene.background=e),r.gl.render(r.scene,b.current),r.scene.background=j,r.gl.setRenderTarget(null),g.current.visible=!0,p++)})),o.createElement(o.Fragment,null,o.createElement("orthographicCamera",c.default({left:h.width/-2,right:h.width/2,top:h.height/2,bottom:h.height/-2,ref:b},i),!v&&a),o.createElement("group",{ref:g},v&&a(m.texture)))}));exports.OrthographicCamera=s;
@@ -1,14 +0,0 @@
1
- import * as THREE from 'three';
2
- import * as React from 'react';
3
- import { OrthographicCamera as OrthographicCameraImpl } from 'three';
4
- import { ThreeElements } from '@react-three/fiber';
5
- import { ForwardRefComponent } from '../helpers/ts-utils';
6
- export type OrthographicCameraProps = Omit<ThreeElements['orthographicCamera'], 'ref' | 'children'> & {
7
- makeDefault?: boolean;
8
- manual?: boolean;
9
- children?: React.ReactNode | ((texture: THREE.Texture) => React.ReactNode);
10
- frames?: number;
11
- resolution?: number;
12
- envMap?: THREE.Texture;
13
- };
14
- export declare const OrthographicCamera: ForwardRefComponent<OrthographicCameraProps, OrthographicCameraImpl>;
@@ -1,76 +0,0 @@
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 { useFBO } from './Fbo.js';
5
-
6
- const isFunction = node => typeof node === 'function';
7
- const OrthographicCamera = /* @__PURE__ */React.forwardRef(({
8
- envMap,
9
- resolution = 256,
10
- frames = Infinity,
11
- children,
12
- makeDefault,
13
- ...props
14
- }, ref) => {
15
- const set = useThree(({
16
- set
17
- }) => set);
18
- const camera = useThree(({
19
- camera
20
- }) => camera);
21
- const size = useThree(({
22
- size
23
- }) => size);
24
- const cameraRef = React.useRef(null);
25
- React.useImperativeHandle(ref, () => cameraRef.current, []);
26
- const groupRef = React.useRef(null);
27
- const fbo = useFBO(resolution);
28
- React.useLayoutEffect(() => {
29
- if (!props.manual) {
30
- cameraRef.current.updateProjectionMatrix();
31
- }
32
- }, [size, props]);
33
- React.useLayoutEffect(() => {
34
- cameraRef.current.updateProjectionMatrix();
35
- });
36
- React.useLayoutEffect(() => {
37
- if (makeDefault) {
38
- const oldCam = camera;
39
- set(() => ({
40
- camera: cameraRef.current
41
- }));
42
- return () => set(() => ({
43
- camera: oldCam
44
- }));
45
- }
46
- // The camera should not be part of the dependency list because this components camera is a stable reference
47
- // that must exchange the default, and clean up after itself on unmount.
48
- }, [cameraRef, makeDefault, set]);
49
- let count = 0;
50
- let oldEnvMap = null;
51
- const functional = isFunction(children);
52
- useFrame(state => {
53
- if (functional && (frames === Infinity || count < frames)) {
54
- groupRef.current.visible = false;
55
- state.gl.setRenderTarget(fbo);
56
- oldEnvMap = state.scene.background;
57
- if (envMap) state.scene.background = envMap;
58
- state.gl.render(state.scene, cameraRef.current);
59
- state.scene.background = oldEnvMap;
60
- state.gl.setRenderTarget(null);
61
- groupRef.current.visible = true;
62
- count++;
63
- }
64
- });
65
- return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("orthographicCamera", _extends({
66
- left: size.width / -2,
67
- right: size.width / 2,
68
- top: size.height / 2,
69
- bottom: size.height / -2,
70
- ref: cameraRef
71
- }, props), !functional && children), /*#__PURE__*/React.createElement("group", {
72
- ref: groupRef
73
- }, functional && children(fbo.texture)));
74
- });
75
-
76
- export { OrthographicCamera };
@@ -1 +0,0 @@
1
- "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),n=require("three"),r=require("react"),t=require("./shaderMaterial.cjs.js"),i=require("@react-three/fiber"),o=require("three-stdlib"),c=require("../helpers/constants.cjs.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var l=a(e),p=s(n),u=s(r);const f=t.shaderMaterial({screenspace:!1,color:new p.Color("black"),opacity:1,thickness:.05,size:new p.Vector2},"#include <common>\n #include <morphtarget_pars_vertex>\n #include <skinning_pars_vertex>\n #include <clipping_planes_pars_vertex>\n uniform float thickness;\n uniform bool screenspace;\n uniform vec2 size;\n void main() {\n #if defined (USE_SKINNING)\n\t #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #endif\n #include <begin_vertex>\n\t #include <morphtarget_vertex>\n\t #include <skinning_vertex>\n #include <project_vertex>\n #include <clipping_planes_vertex>\n vec4 tNormal = vec4(normal, 0.0);\n vec4 tPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n tNormal = instanceMatrix * tNormal;\n tPosition = instanceMatrix * tPosition;\n #endif\n if (screenspace) {\n vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); \n } else {\n vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;\n vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;\n vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;\n clipPosition.xy += offset;\n gl_Position = clipPosition;\n }\n }",`uniform vec3 color;\n uniform float opacity;\n #include <clipping_planes_pars_fragment>\n void main(){\n #include <clipping_planes_fragment>\n gl_FragColor = vec4(color, opacity);\n #include <tonemapping_fragment>\n #include <${c.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.Outlines=function({color:e="black",opacity:n=1,transparent:r=!1,screenspace:t=!1,toneMapped:c=!0,polygonOffset:a=!1,polygonOffsetFactor:s=0,renderOrder:d=0,thickness:m=.05,angle:g=Math.PI,clippingPlanes:v,...h}){const y=u.useRef(null),[_]=u.useState((()=>new f({side:p.BackSide}))),{gl:x}=i.useThree(),M=x.getDrawingBufferSize(new p.Vector2);u.useMemo((()=>i.extend({OutlinesMaterial:f})),[]);const P=u.useRef(0),b=u.useRef(null);return u.useLayoutEffect((()=>{const e=y.current;if(!e)return;const n=e.parent;if(n&&n.geometry&&(P.current!==g||b.current!==n.geometry)){var r;P.current=g,b.current=n.geometry;let t=null==(r=e.children)?void 0:r[0];t&&(g&&t.geometry.dispose(),e.remove(t)),n.skeleton?(t=new p.SkinnedMesh,t.material=_,t.bind(n.skeleton,n.bindMatrix),e.add(t)):n.isInstancedMesh?(t=new p.InstancedMesh(n.geometry,_,n.count),t.instanceMatrix=n.instanceMatrix,e.add(t)):(t=new p.Mesh,t.material=_,e.add(t)),t.geometry=g?o.toCreasedNormals(n.geometry,g):n.geometry,t.morphTargetInfluences=n.morphTargetInfluences,t.morphTargetDictionary=n.morphTargetDictionary}})),u.useLayoutEffect((()=>{const o=y.current;if(!o)return;const l=o.children[0];if(l){l.renderOrder=d;const p=o.parent;i.applyProps(l,{morphTargetInfluences:p.morphTargetInfluences,morphTargetDictionary:p.morphTargetDictionary}),i.applyProps(l.material,{transparent:r,thickness:m,color:e,opacity:n,size:M,screenspace:t,toneMapped:c,polygonOffset:a,polygonOffsetFactor:s,clippingPlanes:v,clipping:v&&v.length>0})}})),u.useEffect((()=>()=>{const e=y.current;if(!e)return;const n=e.children[0];n&&(g&&n.geometry.dispose(),e.remove(n))}),[]),u.createElement("group",l.default({ref:y},h))};
@@ -1,17 +0,0 @@
1
- import * as THREE from 'three';
2
- import * as React from 'react';
3
- import { ReactThreeFiber, ThreeElements } from '@react-three/fiber';
4
- export type OutlinesProps = Omit<ThreeElements['group'], 'ref'> & {
5
- color?: ReactThreeFiber.Color;
6
- screenspace?: boolean;
7
- opacity?: number;
8
- transparent?: boolean;
9
- thickness?: number;
10
- angle?: number;
11
- clippingPlanes?: THREE.Plane[];
12
- toneMapped?: boolean;
13
- polygonOffset?: boolean;
14
- polygonOffsetFactor?: number;
15
- renderOrder?: number;
16
- };
17
- export declare function Outlines({ color, opacity, transparent, screenspace, toneMapped, polygonOffset, polygonOffsetFactor, renderOrder, thickness, angle, clippingPlanes, ...props }: OutlinesProps): React.JSX.Element;
package/core/Outlines.js DELETED
@@ -1,166 +0,0 @@
1
- import _extends from '@babel/runtime/helpers/esm/extends';
2
- import * as THREE from 'three';
3
- import * as React from 'react';
4
- import { shaderMaterial } from './shaderMaterial.js';
5
- import { useThree, extend, applyProps } from '@react-three/fiber';
6
- import { toCreasedNormals } from 'three-stdlib';
7
- import { version } from '../helpers/constants.js';
8
-
9
- const OutlinesMaterial = /* @__PURE__ */shaderMaterial({
10
- screenspace: false,
11
- color: /* @__PURE__ */new THREE.Color('black'),
12
- opacity: 1,
13
- thickness: 0.05,
14
- size: /* @__PURE__ */new THREE.Vector2()
15
- }, `#include <common>
16
- #include <morphtarget_pars_vertex>
17
- #include <skinning_pars_vertex>
18
- #include <clipping_planes_pars_vertex>
19
- uniform float thickness;
20
- uniform bool screenspace;
21
- uniform vec2 size;
22
- void main() {
23
- #if defined (USE_SKINNING)
24
- #include <beginnormal_vertex>
25
- #include <morphnormal_vertex>
26
- #include <skinbase_vertex>
27
- #include <skinnormal_vertex>
28
- #include <defaultnormal_vertex>
29
- #endif
30
- #include <begin_vertex>
31
- #include <morphtarget_vertex>
32
- #include <skinning_vertex>
33
- #include <project_vertex>
34
- #include <clipping_planes_vertex>
35
- vec4 tNormal = vec4(normal, 0.0);
36
- vec4 tPosition = vec4(transformed, 1.0);
37
- #ifdef USE_INSTANCING
38
- tNormal = instanceMatrix * tNormal;
39
- tPosition = instanceMatrix * tPosition;
40
- #endif
41
- if (screenspace) {
42
- vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;
43
- gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0);
44
- } else {
45
- vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;
46
- vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;
47
- vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;
48
- clipPosition.xy += offset;
49
- gl_Position = clipPosition;
50
- }
51
- }`, `uniform vec3 color;
52
- uniform float opacity;
53
- #include <clipping_planes_pars_fragment>
54
- void main(){
55
- #include <clipping_planes_fragment>
56
- gl_FragColor = vec4(color, opacity);
57
- #include <tonemapping_fragment>
58
- #include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
59
- }`);
60
- function Outlines({
61
- color = 'black',
62
- opacity = 1,
63
- transparent = false,
64
- screenspace = false,
65
- toneMapped = true,
66
- polygonOffset = false,
67
- polygonOffsetFactor = 0,
68
- renderOrder = 0,
69
- thickness = 0.05,
70
- angle = Math.PI,
71
- clippingPlanes,
72
- ...props
73
- }) {
74
- const ref = React.useRef(null);
75
- const [material] = React.useState(() => new OutlinesMaterial({
76
- side: THREE.BackSide
77
- }));
78
- const {
79
- gl
80
- } = useThree();
81
- const contextSize = gl.getDrawingBufferSize(new THREE.Vector2());
82
- React.useMemo(() => extend({
83
- OutlinesMaterial
84
- }), []);
85
- const oldAngle = React.useRef(0);
86
- const oldGeometry = React.useRef(null);
87
- React.useLayoutEffect(() => {
88
- const group = ref.current;
89
- if (!group) return;
90
- const parent = group.parent;
91
- if (parent && parent.geometry) {
92
- if (oldAngle.current !== angle || oldGeometry.current !== parent.geometry) {
93
- var _group$children;
94
- oldAngle.current = angle;
95
- oldGeometry.current = parent.geometry;
96
-
97
- // Remove old mesh
98
- let mesh = (_group$children = group.children) == null ? void 0 : _group$children[0];
99
- if (mesh) {
100
- if (angle) mesh.geometry.dispose();
101
- group.remove(mesh);
102
- }
103
- if (parent.skeleton) {
104
- mesh = new THREE.SkinnedMesh();
105
- mesh.material = material;
106
- mesh.bind(parent.skeleton, parent.bindMatrix);
107
- group.add(mesh);
108
- } else if (parent.isInstancedMesh) {
109
- mesh = new THREE.InstancedMesh(parent.geometry, material, parent.count);
110
- mesh.instanceMatrix = parent.instanceMatrix;
111
- group.add(mesh);
112
- } else {
113
- mesh = new THREE.Mesh();
114
- mesh.material = material;
115
- group.add(mesh);
116
- }
117
- mesh.geometry = angle ? toCreasedNormals(parent.geometry, angle) : parent.geometry;
118
- mesh.morphTargetInfluences = parent.morphTargetInfluences;
119
- mesh.morphTargetDictionary = parent.morphTargetDictionary;
120
- }
121
- }
122
- });
123
- React.useLayoutEffect(() => {
124
- const group = ref.current;
125
- if (!group) return;
126
- const mesh = group.children[0];
127
- if (mesh) {
128
- mesh.renderOrder = renderOrder;
129
- const parent = group.parent;
130
- applyProps(mesh, {
131
- morphTargetInfluences: parent.morphTargetInfluences,
132
- morphTargetDictionary: parent.morphTargetDictionary
133
- });
134
- applyProps(mesh.material, {
135
- transparent,
136
- thickness,
137
- color,
138
- opacity,
139
- size: contextSize,
140
- screenspace,
141
- toneMapped,
142
- polygonOffset,
143
- polygonOffsetFactor,
144
- clippingPlanes,
145
- clipping: clippingPlanes && clippingPlanes.length > 0
146
- });
147
- }
148
- });
149
- React.useEffect(() => {
150
- return () => {
151
- // Dispose everything on unmount
152
- const group = ref.current;
153
- if (!group) return;
154
- const mesh = group.children[0];
155
- if (mesh) {
156
- if (angle) mesh.geometry.dispose();
157
- group.remove(mesh);
158
- }
159
- };
160
- }, []);
161
- return /*#__PURE__*/React.createElement("group", _extends({
162
- ref: ref
163
- }, props));
164
- }
165
-
166
- export { Outlines };