@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,55 @@
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 { FlyControls as FlyControls$1 } from 'three-stdlib';
5
+
6
+ const FlyControls = /* @__PURE__ */React.forwardRef(({
7
+ domElement,
8
+ ...props
9
+ }, fref) => {
10
+ const {
11
+ onChange,
12
+ makeDefault,
13
+ ...rest
14
+ } = props;
15
+ const invalidate = useThree(state => state.invalidate);
16
+ const camera = useThree(state => state.camera);
17
+ const gl = useThree(state => state.gl);
18
+ const events = useThree(state => state.events);
19
+ const get = useThree(state => state.get);
20
+ const set = useThree(state => state.set);
21
+ const explDomElement = domElement || events.connected || gl.domElement;
22
+ const controls = React.useMemo(() => new FlyControls$1(camera), [camera]);
23
+ React.useEffect(() => {
24
+ controls.connect(explDomElement);
25
+ return () => void controls.dispose();
26
+ }, [explDomElement, controls, invalidate]);
27
+ React.useEffect(() => {
28
+ const callback = e => {
29
+ invalidate();
30
+ if (onChange) onChange(e);
31
+ };
32
+ controls.addEventListener == null || controls.addEventListener('change', callback);
33
+ return () => controls.removeEventListener == null ? void 0 : controls.removeEventListener('change', callback);
34
+ }, [onChange, invalidate]);
35
+ React.useEffect(() => {
36
+ if (makeDefault) {
37
+ const old = get().controls;
38
+ // @ts-ignore https://github.com/three-types/three-ts-types/pull/1398
39
+ set({
40
+ controls
41
+ });
42
+ return () => set({
43
+ controls: old
44
+ });
45
+ }
46
+ }, [makeDefault, controls]);
47
+ useFrame((_, delta) => controls.update(delta));
48
+ return /*#__PURE__*/React.createElement("primitive", _extends({
49
+ ref: fref,
50
+ object: controls,
51
+ args: [camera, explDomElement]
52
+ }, rest));
53
+ });
54
+
55
+ export { FlyControls };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("@react-three/fiber"),t=require("three"),n=require("./OrthographicCamera.cjs.js"),o=require("./Hud.cjs.js");function i(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("@babel/runtime/helpers/extends"),require("./Fbo.cjs.js");var u=i(e);const a=u.createContext({}),c=2*Math.PI,s=new t.Object3D,l=new t.Matrix4,[p,d]=[new t.Quaternion,new t.Quaternion],f=new t.Vector3,h=new t.Vector3,m=e=>"getTarget"in e;exports.GizmoHelper=({alignment:e="bottom-right",margin:i=[80,80],renderPriority:g=1,onUpdate:y,onTarget:b,children:j})=>{const w=r.useThree((e=>e.size)),v=r.useThree((e=>e.camera)),q=r.useThree((e=>e.controls)),x=r.useThree((e=>e.invalidate)),O=u.useRef(null),T=u.useRef(null),P=u.useRef(!1),C=u.useRef(0),R=u.useRef(new t.Vector3(0,0,0)),z=u.useRef(new t.Vector3(0,0,0));u.useEffect((()=>{z.current.copy(v.up),s.up.copy(v.up)}),[v]);const E=u.useCallback((e=>{P.current=!0,(q||b)&&(R.current=(null==b?void 0:b())||(m(q)?q.getTarget(R.current):null==q?void 0:q.target)),C.current=v.position.distanceTo(f),p.copy(v.quaternion),h.copy(e).multiplyScalar(C.current).add(f),s.lookAt(h),d.copy(s.quaternion),x()}),[q,v,b,x]);r.useFrame(((e,r)=>{if(T.current&&O.current){var t;if(P.current)if(p.angleTo(d)<.01)P.current=!1,"minPolarAngle"in q&&v.up.copy(z.current);else{const e=r*c;p.rotateTowards(d,e),v.position.set(0,0,1).applyQuaternion(p).multiplyScalar(C.current).add(R.current),v.up.set(0,1,0).applyQuaternion(p).normalize(),v.quaternion.copy(p),m(q)&&q.setPosition(v.position.x,v.position.y,v.position.z),y?y():q&&q.update(r),x()}l.copy(v.matrix).invert(),null==(t=O.current)||t.quaternion.setFromRotationMatrix(l)}}));const M=u.useMemo((()=>({tweenCamera:E})),[E]),[k,Q]=i,V=e.endsWith("-center")?0:e.endsWith("-left")?-w.width/2+k:w.width/2-k,W=e.startsWith("center-")?0:e.startsWith("top-")?w.height/2-Q:-w.height/2+Q;return u.createElement(o.Hud,{renderPriority:g},u.createElement(a.Provider,{value:M},u.createElement(n.OrthographicCamera,{makeDefault:!0,ref:T,position:[0,0,200]}),u.createElement("group",{ref:O,position:[V,W,0]},j)))},exports.useGizmoContext=()=>u.useContext(a);
@@ -0,0 +1,16 @@
1
+ import { ThreeElements } from '@react-three/fiber';
2
+ import { Vector3 } from 'three';
3
+ type GizmoHelperContext = {
4
+ tweenCamera: (direction: Vector3) => void;
5
+ };
6
+ export declare const useGizmoContext: () => GizmoHelperContext;
7
+ export type GizmoHelperProps = ThreeElements['group'] & {
8
+ alignment?: 'top-left' | 'top-right' | 'bottom-right' | 'bottom-left' | 'bottom-center' | 'center-right' | 'center-left' | 'center-center' | 'top-center';
9
+ margin?: [number, number];
10
+ renderPriority?: number;
11
+ autoClear?: boolean;
12
+ onUpdate?: () => void;
13
+ onTarget?: () => Vector3;
14
+ };
15
+ export declare const GizmoHelper: ({ alignment, margin, renderPriority, onUpdate, onTarget, children, }: GizmoHelperProps) => any;
16
+ export {};
@@ -0,0 +1,116 @@
1
+ import * as React from 'react';
2
+ import { useThree, useFrame } from '@react-three/fiber';
3
+ import { Vector3, Object3D, Matrix4, Quaternion } from 'three';
4
+ import { OrthographicCamera } from './OrthographicCamera.js';
5
+ import { Hud } from './Hud.js';
6
+
7
+ const Context = /* @__PURE__ */React.createContext({});
8
+ const useGizmoContext = () => {
9
+ return React.useContext(Context);
10
+ };
11
+ const turnRate = 2 * Math.PI; // turn rate in angles per second
12
+ const dummy = /* @__PURE__ */new Object3D();
13
+ const matrix = /* @__PURE__ */new Matrix4();
14
+ const [q1, q2] = [/* @__PURE__ */new Quaternion(), /* @__PURE__ */new Quaternion()];
15
+ const target = /* @__PURE__ */new Vector3();
16
+ const targetPosition = /* @__PURE__ */new Vector3();
17
+ const isOrbitControls = controls => {
18
+ return 'minPolarAngle' in controls;
19
+ };
20
+ const isCameraControls = controls => {
21
+ return 'getTarget' in controls;
22
+ };
23
+ const GizmoHelper = ({
24
+ alignment = 'bottom-right',
25
+ margin = [80, 80],
26
+ renderPriority = 1,
27
+ onUpdate,
28
+ onTarget,
29
+ children
30
+ }) => {
31
+ const size = useThree(state => state.size);
32
+ const mainCamera = useThree(state => state.camera);
33
+ // @ts-ignore
34
+ const defaultControls = useThree(state => state.controls);
35
+ const invalidate = useThree(state => state.invalidate);
36
+ const gizmoRef = React.useRef(null);
37
+ const virtualCam = React.useRef(null);
38
+ const animating = React.useRef(false);
39
+ const radius = React.useRef(0);
40
+ const focusPoint = React.useRef(new Vector3(0, 0, 0));
41
+ const defaultUp = React.useRef(new Vector3(0, 0, 0));
42
+ React.useEffect(() => {
43
+ defaultUp.current.copy(mainCamera.up);
44
+ dummy.up.copy(mainCamera.up);
45
+ }, [mainCamera]);
46
+ const tweenCamera = React.useCallback(direction => {
47
+ animating.current = true;
48
+ if (defaultControls || onTarget) {
49
+ focusPoint.current = (onTarget == null ? void 0 : onTarget()) || (isCameraControls(defaultControls) ? defaultControls.getTarget(focusPoint.current) : defaultControls == null ? void 0 : defaultControls.target);
50
+ }
51
+ radius.current = mainCamera.position.distanceTo(target);
52
+
53
+ // Rotate from current camera orientation
54
+ q1.copy(mainCamera.quaternion);
55
+
56
+ // To new current camera orientation
57
+ targetPosition.copy(direction).multiplyScalar(radius.current).add(target);
58
+ dummy.lookAt(targetPosition);
59
+ q2.copy(dummy.quaternion);
60
+ invalidate();
61
+ }, [defaultControls, mainCamera, onTarget, invalidate]);
62
+ useFrame((_, delta) => {
63
+ if (virtualCam.current && gizmoRef.current) {
64
+ var _gizmoRef$current;
65
+ // Animate step
66
+ if (animating.current) {
67
+ if (q1.angleTo(q2) < 0.01) {
68
+ animating.current = false;
69
+ // Orbit controls uses UP vector as the orbit axes,
70
+ // so we need to reset it after the animation is done
71
+ // moving it around for the controls to work correctly
72
+ if (isOrbitControls(defaultControls)) {
73
+ mainCamera.up.copy(defaultUp.current);
74
+ }
75
+ } else {
76
+ const step = delta * turnRate;
77
+ // animate position by doing a slerp and then scaling the position on the unit sphere
78
+ q1.rotateTowards(q2, step);
79
+ // animate orientation
80
+ mainCamera.position.set(0, 0, 1).applyQuaternion(q1).multiplyScalar(radius.current).add(focusPoint.current);
81
+ mainCamera.up.set(0, 1, 0).applyQuaternion(q1).normalize();
82
+ mainCamera.quaternion.copy(q1);
83
+ if (isCameraControls(defaultControls)) defaultControls.setPosition(mainCamera.position.x, mainCamera.position.y, mainCamera.position.z);
84
+ if (onUpdate) onUpdate();else if (defaultControls) defaultControls.update(delta);
85
+ invalidate();
86
+ }
87
+ }
88
+
89
+ // Sync Gizmo with main camera orientation
90
+ matrix.copy(mainCamera.matrix).invert();
91
+ (_gizmoRef$current = gizmoRef.current) == null || _gizmoRef$current.quaternion.setFromRotationMatrix(matrix);
92
+ }
93
+ });
94
+ const gizmoHelperContext = React.useMemo(() => ({
95
+ tweenCamera
96
+ }), [tweenCamera]);
97
+
98
+ // Position gizmo component within scene
99
+ const [marginX, marginY] = margin;
100
+ const x = alignment.endsWith('-center') ? 0 : alignment.endsWith('-left') ? -size.width / 2 + marginX : size.width / 2 - marginX;
101
+ const y = alignment.startsWith('center-') ? 0 : alignment.startsWith('top-') ? size.height / 2 - marginY : -size.height / 2 + marginY;
102
+ return /*#__PURE__*/React.createElement(Hud, {
103
+ renderPriority: renderPriority
104
+ }, /*#__PURE__*/React.createElement(Context.Provider, {
105
+ value: gizmoHelperContext
106
+ }, /*#__PURE__*/React.createElement(OrthographicCamera, {
107
+ makeDefault: true,
108
+ ref: virtualCam,
109
+ position: [0, 0, 200]
110
+ }), /*#__PURE__*/React.createElement("group", {
111
+ ref: gizmoRef,
112
+ position: [x, y, 0]
113
+ }, children)));
114
+ };
115
+
116
+ export { GizmoHelper, useGizmoContext };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),o=require("./GizmoHelper.cjs.js"),a=require("three");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var o=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,o.get?o:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("./OrthographicCamera.cjs.js"),require("./Fbo.cjs.js"),require("./Hud.cjs.js");var l=n(e),s=i(t);const c="#f0f0f0",u="#999",p="black",m="black",f=["Right","Left","Top","Bottom","Front","Back"],h=e=>new a.Vector3(...e).multiplyScalar(.38),d=[[1,1,1],[1,1,-1],[1,-1,1],[1,-1,-1],[-1,1,1],[-1,1,-1],[-1,-1,1],[-1,-1,-1]].map(h),y=[.25,.25,.25],g=[[1,1,0],[1,0,1],[1,0,-1],[1,-1,0],[0,1,1],[0,1,-1],[0,-1,1],[0,-1,-1],[-1,1,0],[-1,0,1],[-1,0,-1],[-1,-1,0]].map(h),b=g.map((e=>e.toArray().map((e=>0==e?.5:.25)))),x=({hover:e,index:t,font:o="20px Inter var, Arial, sans-serif",faces:n=f,color:i=c,hoverColor:l=u,textColor:h=p,strokeColor:d=m,opacity:y=1})=>{const g=r.useThree((e=>e.gl)),b=s.useMemo((()=>{const e=document.createElement("canvas");e.width=128,e.height=128;const r=e.getContext("2d");return r.fillStyle=i,r.fillRect(0,0,e.width,e.height),r.strokeStyle=d,r.strokeRect(0,0,e.width,e.height),r.font=o,r.textAlign="center",r.fillStyle=h,r.fillText(n[t].toUpperCase(),64,76),new a.CanvasTexture(e)}),[t,n,o,i,h,d]);return s.createElement("meshBasicMaterial",{map:b,"map-anisotropy":g.capabilities.getMaxAnisotropy()||1,attach:`material-${t}`,color:e?l:"white",transparent:!0,opacity:y})},C=e=>{const{tweenCamera:t}=o.useGizmoContext(),[r,a]=s.useState(null);return s.createElement("mesh",{onPointerOut:e=>{e.stopPropagation(),a(null)},onPointerMove:e=>{e.stopPropagation(),a(Math.floor(e.faceIndex/2))},onClick:e.onClick||(e=>{e.stopPropagation(),t(e.face.normal)})},[...Array(6)].map(((t,o)=>s.createElement(x,l.default({key:o,index:o,hover:r===o},e)))),s.createElement("boxGeometry",null))},j=({onClick:e,dimensions:t,position:r,hoverColor:a=u})=>{const{tweenCamera:n}=o.useGizmoContext(),[i,l]=s.useState(!1);return s.createElement("mesh",{scale:1.01,position:r,onPointerOver:e=>{e.stopPropagation(),l(!0)},onPointerOut:e=>{e.stopPropagation(),l(!1)},onClick:e||(e=>{e.stopPropagation(),n(r)})},s.createElement("meshBasicMaterial",{color:i?a:"white",transparent:!0,opacity:.6,visible:i}),s.createElement("boxGeometry",{args:t}))};exports.GizmoViewcube=e=>s.createElement("group",{scale:[60,60,60]},s.createElement(C,e),g.map(((t,r)=>s.createElement(j,l.default({key:r,position:t,dimensions:b[r]},e)))),d.map(((t,r)=>s.createElement(j,l.default({key:r,position:t,dimensions:y},e)))));
@@ -0,0 +1,14 @@
1
+ import * as React from 'react';
2
+ import { ThreeEvent } from '@react-three/fiber';
3
+ type GenericProps = {
4
+ font?: string;
5
+ opacity?: number;
6
+ color?: string;
7
+ hoverColor?: string;
8
+ textColor?: string;
9
+ strokeColor?: string;
10
+ onClick?: (e: ThreeEvent<MouseEvent>) => null;
11
+ faces?: string[];
12
+ };
13
+ export declare const GizmoViewcube: (props: GenericProps) => React.JSX.Element;
14
+ export {};
@@ -0,0 +1,133 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { useThree } from '@react-three/fiber';
4
+ import { useGizmoContext } from './GizmoHelper.js';
5
+ import { Vector3, CanvasTexture } from 'three';
6
+
7
+ const colors = {
8
+ bg: '#f0f0f0',
9
+ hover: '#999',
10
+ text: 'black',
11
+ stroke: 'black'
12
+ };
13
+ const defaultFaces = ['Right', 'Left', 'Top', 'Bottom', 'Front', 'Back'];
14
+ const makePositionVector = xyz => new Vector3(...xyz).multiplyScalar(0.38);
15
+ const corners = /* @__PURE__ */[[1, 1, 1], [1, 1, -1], [1, -1, 1], [1, -1, -1], [-1, 1, 1], [-1, 1, -1], [-1, -1, 1], [-1, -1, -1]].map(makePositionVector);
16
+ const cornerDimensions = [0.25, 0.25, 0.25];
17
+ const edges = /* @__PURE__ */[[1, 1, 0], [1, 0, 1], [1, 0, -1], [1, -1, 0], [0, 1, 1], [0, 1, -1], [0, -1, 1], [0, -1, -1], [-1, 1, 0], [-1, 0, 1], [-1, 0, -1], [-1, -1, 0]].map(makePositionVector);
18
+ const edgeDimensions = /* @__PURE__ */edges.map(edge => edge.toArray().map(axis => axis == 0 ? 0.5 : 0.25));
19
+ const FaceMaterial = ({
20
+ hover,
21
+ index,
22
+ font = '20px Inter var, Arial, sans-serif',
23
+ faces = defaultFaces,
24
+ color = colors.bg,
25
+ hoverColor = colors.hover,
26
+ textColor = colors.text,
27
+ strokeColor = colors.stroke,
28
+ opacity = 1
29
+ }) => {
30
+ const gl = useThree(state => state.gl);
31
+ const texture = React.useMemo(() => {
32
+ const canvas = document.createElement('canvas');
33
+ canvas.width = 128;
34
+ canvas.height = 128;
35
+ const context = canvas.getContext('2d');
36
+ context.fillStyle = color;
37
+ context.fillRect(0, 0, canvas.width, canvas.height);
38
+ context.strokeStyle = strokeColor;
39
+ context.strokeRect(0, 0, canvas.width, canvas.height);
40
+ context.font = font;
41
+ context.textAlign = 'center';
42
+ context.fillStyle = textColor;
43
+ context.fillText(faces[index].toUpperCase(), 64, 76);
44
+ return new CanvasTexture(canvas);
45
+ }, [index, faces, font, color, textColor, strokeColor]);
46
+ return /*#__PURE__*/React.createElement("meshBasicMaterial", {
47
+ map: texture,
48
+ "map-anisotropy": gl.capabilities.getMaxAnisotropy() || 1,
49
+ attach: `material-${index}`,
50
+ color: hover ? hoverColor : 'white',
51
+ transparent: true,
52
+ opacity: opacity
53
+ });
54
+ };
55
+ const FaceCube = props => {
56
+ const {
57
+ tweenCamera
58
+ } = useGizmoContext();
59
+ const [hover, setHover] = React.useState(null);
60
+ const handlePointerOut = e => {
61
+ e.stopPropagation();
62
+ setHover(null);
63
+ };
64
+ const handleClick = e => {
65
+ e.stopPropagation();
66
+ tweenCamera(e.face.normal);
67
+ };
68
+ const handlePointerMove = e => {
69
+ e.stopPropagation();
70
+ setHover(Math.floor(e.faceIndex / 2));
71
+ };
72
+ return /*#__PURE__*/React.createElement("mesh", {
73
+ onPointerOut: handlePointerOut,
74
+ onPointerMove: handlePointerMove,
75
+ onClick: props.onClick || handleClick
76
+ }, [...Array(6)].map((_, index) => /*#__PURE__*/React.createElement(FaceMaterial, _extends({
77
+ key: index,
78
+ index: index,
79
+ hover: hover === index
80
+ }, props))), /*#__PURE__*/React.createElement("boxGeometry", null));
81
+ };
82
+ const EdgeCube = ({
83
+ onClick,
84
+ dimensions,
85
+ position,
86
+ hoverColor = colors.hover
87
+ }) => {
88
+ const {
89
+ tweenCamera
90
+ } = useGizmoContext();
91
+ const [hover, setHover] = React.useState(false);
92
+ const handlePointerOut = e => {
93
+ e.stopPropagation();
94
+ setHover(false);
95
+ };
96
+ const handlePointerOver = e => {
97
+ e.stopPropagation();
98
+ setHover(true);
99
+ };
100
+ const handleClick = e => {
101
+ e.stopPropagation();
102
+ tweenCamera(position);
103
+ };
104
+ return /*#__PURE__*/React.createElement("mesh", {
105
+ scale: 1.01,
106
+ position: position,
107
+ onPointerOver: handlePointerOver,
108
+ onPointerOut: handlePointerOut,
109
+ onClick: onClick || handleClick
110
+ }, /*#__PURE__*/React.createElement("meshBasicMaterial", {
111
+ color: hover ? hoverColor : 'white',
112
+ transparent: true,
113
+ opacity: 0.6,
114
+ visible: hover
115
+ }), /*#__PURE__*/React.createElement("boxGeometry", {
116
+ args: dimensions
117
+ }));
118
+ };
119
+ const GizmoViewcube = props => {
120
+ return /*#__PURE__*/React.createElement("group", {
121
+ scale: [60, 60, 60]
122
+ }, /*#__PURE__*/React.createElement(FaceCube, props), edges.map((edge, index) => /*#__PURE__*/React.createElement(EdgeCube, _extends({
123
+ key: index,
124
+ position: edge,
125
+ dimensions: edgeDimensions[index]
126
+ }, props))), corners.map((corner, index) => /*#__PURE__*/React.createElement(EdgeCube, _extends({
127
+ key: index,
128
+ position: corner,
129
+ dimensions: cornerDimensions
130
+ }, props))));
131
+ };
132
+
133
+ export { GizmoViewcube };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),a=require("three"),o=require("./GizmoHelper.cjs.js");function l(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}require("./OrthographicCamera.cjs.js"),require("./Fbo.cjs.js"),require("./Hud.cjs.js");var i=l(e),c=n(t);function s({scale:e=[.8,.05,.05],color:t,rotation:r}){return c.createElement("group",{rotation:r},c.createElement("mesh",{position:[.4,0,0]},c.createElement("boxGeometry",{args:e}),c.createElement("meshBasicMaterial",{color:t,toneMapped:!1})))}function u({onClick:e,font:t,disabled:o,arcStyle:l,label:n,labelColor:s,axisHeadScale:u=1,...p}){const f=r.useThree((e=>e.gl)),d=c.useMemo((()=>{const e=document.createElement("canvas");e.width=64,e.height=64;const r=e.getContext("2d");return r.beginPath(),r.arc(32,32,16,0,2*Math.PI),r.closePath(),r.fillStyle=l,r.fill(),n&&(r.font=t,r.textAlign="center",r.fillStyle=s,r.fillText(n,32,41)),new a.CanvasTexture(e)}),[l,n,s,t]),[m,b]=c.useState(!1),h=(n?1:.75)*(m?1.2:1)*u;return c.createElement("sprite",i.default({scale:h,onPointerOver:o?void 0:e=>{e.stopPropagation(),b(!0)},onPointerOut:o?void 0:e||(e=>{e.stopPropagation(),b(!1)})},p),c.createElement("spriteMaterial",{map:d,"map-anisotropy":f.capabilities.getMaxAnisotropy()||1,alphaTest:.3,opacity:n?1:.75,toneMapped:!1}))}exports.GizmoViewport=({hideNegativeAxes:e,hideAxisHeads:t,disabled:r,font:a="18px Inter var, Arial, sans-serif",axisColors:l=["#ff2060","#20df80","#2080ff"],axisHeadScale:n=1,axisScale:p,labels:f=["X","Y","Z"],labelColor:d="#000",onClick:m,...b})=>{const[h,E,g]=l,{tweenCamera:x}=o.useGizmoContext(),y={font:a,disabled:r,labelColor:d,onClick:m,axisHeadScale:n,onPointerDown:r?void 0:e=>{x(e.object.position),e.stopPropagation()}};return c.createElement("group",i.default({scale:40},b),c.createElement(s,{color:h,rotation:[0,0,0],scale:p}),c.createElement(s,{color:E,rotation:[0,0,Math.PI/2],scale:p}),c.createElement(s,{color:g,rotation:[0,-Math.PI/2,0],scale:p}),!t&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:h,position:[1,0,0],label:f[0]},y)),c.createElement(u,i.default({arcStyle:E,position:[0,1,0],label:f[1]},y)),c.createElement(u,i.default({arcStyle:g,position:[0,0,1],label:f[2]},y)),!e&&c.createElement(c.Fragment,null,c.createElement(u,i.default({arcStyle:h,position:[-1,0,0]},y)),c.createElement(u,i.default({arcStyle:E,position:[0,-1,0]},y)),c.createElement(u,i.default({arcStyle:g,position:[0,0,-1]},y)))))};
@@ -0,0 +1,16 @@
1
+ import * as React from 'react';
2
+ import { ThreeEvent, ThreeElements } from '@react-three/fiber';
3
+ type GizmoViewportProps = ThreeElements['group'] & {
4
+ axisColors?: [string, string, string];
5
+ axisScale?: [number, number, number];
6
+ labels?: [string, string, string];
7
+ axisHeadScale?: number;
8
+ labelColor?: string;
9
+ hideNegativeAxes?: boolean;
10
+ hideAxisHeads?: boolean;
11
+ disabled?: boolean;
12
+ font?: string;
13
+ onClick?: (e: ThreeEvent<MouseEvent>) => null;
14
+ };
15
+ export declare const GizmoViewport: ({ hideNegativeAxes, hideAxisHeads, disabled, font, axisColors, axisHeadScale, axisScale, labels, labelColor, onClick, ...props }: GizmoViewportProps) => React.JSX.Element;
16
+ export {};
@@ -0,0 +1,140 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { useThree } from '@react-three/fiber';
4
+ import { CanvasTexture } from 'three';
5
+ import { useGizmoContext } from './GizmoHelper.js';
6
+
7
+ function Axis({
8
+ scale = [0.8, 0.05, 0.05],
9
+ color,
10
+ rotation
11
+ }) {
12
+ return /*#__PURE__*/React.createElement("group", {
13
+ rotation: rotation
14
+ }, /*#__PURE__*/React.createElement("mesh", {
15
+ position: [0.4, 0, 0]
16
+ }, /*#__PURE__*/React.createElement("boxGeometry", {
17
+ args: scale
18
+ }), /*#__PURE__*/React.createElement("meshBasicMaterial", {
19
+ color: color,
20
+ toneMapped: false
21
+ })));
22
+ }
23
+ function AxisHead({
24
+ onClick,
25
+ font,
26
+ disabled,
27
+ arcStyle,
28
+ label,
29
+ labelColor,
30
+ axisHeadScale = 1,
31
+ ...props
32
+ }) {
33
+ const gl = useThree(state => state.gl);
34
+ const texture = React.useMemo(() => {
35
+ const canvas = document.createElement('canvas');
36
+ canvas.width = 64;
37
+ canvas.height = 64;
38
+ const context = canvas.getContext('2d');
39
+ context.beginPath();
40
+ context.arc(32, 32, 16, 0, 2 * Math.PI);
41
+ context.closePath();
42
+ context.fillStyle = arcStyle;
43
+ context.fill();
44
+ if (label) {
45
+ context.font = font;
46
+ context.textAlign = 'center';
47
+ context.fillStyle = labelColor;
48
+ context.fillText(label, 32, 41);
49
+ }
50
+ return new CanvasTexture(canvas);
51
+ }, [arcStyle, label, labelColor, font]);
52
+ const [active, setActive] = React.useState(false);
53
+ const scale = (label ? 1 : 0.75) * (active ? 1.2 : 1) * axisHeadScale;
54
+ const handlePointerOver = e => {
55
+ e.stopPropagation();
56
+ setActive(true);
57
+ };
58
+ const handlePointerOut = e => {
59
+ e.stopPropagation();
60
+ setActive(false);
61
+ };
62
+ return /*#__PURE__*/React.createElement("sprite", _extends({
63
+ scale: scale,
64
+ onPointerOver: !disabled ? handlePointerOver : undefined,
65
+ onPointerOut: !disabled ? onClick || handlePointerOut : undefined
66
+ }, props), /*#__PURE__*/React.createElement("spriteMaterial", {
67
+ map: texture,
68
+ "map-anisotropy": gl.capabilities.getMaxAnisotropy() || 1,
69
+ alphaTest: 0.3,
70
+ opacity: label ? 1 : 0.75,
71
+ toneMapped: false
72
+ }));
73
+ }
74
+ const GizmoViewport = ({
75
+ hideNegativeAxes,
76
+ hideAxisHeads,
77
+ disabled,
78
+ font = '18px Inter var, Arial, sans-serif',
79
+ axisColors = ['#ff2060', '#20df80', '#2080ff'],
80
+ axisHeadScale = 1,
81
+ axisScale,
82
+ labels = ['X', 'Y', 'Z'],
83
+ labelColor = '#000',
84
+ onClick,
85
+ ...props
86
+ }) => {
87
+ const [colorX, colorY, colorZ] = axisColors;
88
+ const {
89
+ tweenCamera
90
+ } = useGizmoContext();
91
+ const axisHeadProps = {
92
+ font,
93
+ disabled,
94
+ labelColor,
95
+ onClick,
96
+ axisHeadScale,
97
+ onPointerDown: !disabled ? e => {
98
+ tweenCamera(e.object.position);
99
+ e.stopPropagation();
100
+ } : undefined
101
+ };
102
+ return /*#__PURE__*/React.createElement("group", _extends({
103
+ scale: 40
104
+ }, props), /*#__PURE__*/React.createElement(Axis, {
105
+ color: colorX,
106
+ rotation: [0, 0, 0],
107
+ scale: axisScale
108
+ }), /*#__PURE__*/React.createElement(Axis, {
109
+ color: colorY,
110
+ rotation: [0, 0, Math.PI / 2],
111
+ scale: axisScale
112
+ }), /*#__PURE__*/React.createElement(Axis, {
113
+ color: colorZ,
114
+ rotation: [0, -Math.PI / 2, 0],
115
+ scale: axisScale
116
+ }), !hideAxisHeads && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AxisHead, _extends({
117
+ arcStyle: colorX,
118
+ position: [1, 0, 0],
119
+ label: labels[0]
120
+ }, axisHeadProps)), /*#__PURE__*/React.createElement(AxisHead, _extends({
121
+ arcStyle: colorY,
122
+ position: [0, 1, 0],
123
+ label: labels[1]
124
+ }, axisHeadProps)), /*#__PURE__*/React.createElement(AxisHead, _extends({
125
+ arcStyle: colorZ,
126
+ position: [0, 0, 1],
127
+ label: labels[2]
128
+ }, axisHeadProps)), !hideNegativeAxes && /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement(AxisHead, _extends({
129
+ arcStyle: colorX,
130
+ position: [-1, 0, 0]
131
+ }, axisHeadProps)), /*#__PURE__*/React.createElement(AxisHead, _extends({
132
+ arcStyle: colorY,
133
+ position: [0, -1, 0]
134
+ }, axisHeadProps)), /*#__PURE__*/React.createElement(AxisHead, _extends({
135
+ arcStyle: colorZ,
136
+ position: [0, 0, -1]
137
+ }, axisHeadProps)))));
138
+ };
139
+
140
+ export { GizmoViewport };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three-stdlib"),o=require("@react-three/fiber"),c=require("./Clone.cjs.js");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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 o=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,o.get?o:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var u=s(e),a=n(r);let d=null,f="https://www.gstatic.com/draco/versioned/decoders/1.5.5/";function i(e=!0,r=!0,o){return c=>{o&&o(c),e&&(d||(d=new t.DRACOLoader),d.setDecoderPath("string"==typeof e?e:f),c.setDRACOLoader(d)),r&&c.setMeshoptDecoder("function"==typeof t.MeshoptDecoder?t.MeshoptDecoder():t.MeshoptDecoder)}}const l=(e,r,c,s)=>o.useLoader(t.GLTFLoader,e,i(r,c,s));l.preload=(e,r,c,s)=>o.useLoader.preload(t.GLTFLoader,e,i(r,c,s)),l.clear=e=>o.useLoader.clear(t.GLTFLoader,e),l.setDecoderPath=e=>{f=e};const p=a.forwardRef((({src:e,useDraco:r,useMeshOpt:t,extendLoader:o,...s},n)=>{const{scene:d}=l(e,r,t,o);return a.createElement(c.Clone,u.default({ref:n},s,{object:d}))}));exports.Gltf=p,exports.useGLTF=l;
package/core/Gltf.d.ts ADDED
@@ -0,0 +1,27 @@
1
+ import * as React from 'react';
2
+ import { GLTFLoader, GLTF } from 'three-stdlib';
3
+ import { ObjectMap } from '@react-three/fiber';
4
+ import { CloneProps } from './Clone';
5
+ type Path = string | string[];
6
+ type UseDraco = boolean | string;
7
+ type UseMeshopt = boolean;
8
+ type ExtendLoader = (loader: GLTFLoader) => void;
9
+ export declare const useGLTF: {
10
+ <T extends Path>(path: T, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader): T extends any[] ? (GLTF & ObjectMap)[] : GLTF & ObjectMap;
11
+ preload(path: Path, useDraco?: UseDraco, useMeshopt?: UseMeshopt, extendLoader?: ExtendLoader): void;
12
+ clear(path: Path): void;
13
+ setDecoderPath(path: string): void;
14
+ };
15
+ export type GltfProps = Omit<CloneProps, 'object'> & {
16
+ src: string;
17
+ useDraco?: UseDraco;
18
+ useMeshOpt?: UseMeshopt;
19
+ extendLoader?: ExtendLoader;
20
+ };
21
+ export declare const Gltf: React.ForwardRefExoticComponent<Omit<CloneProps, "object"> & {
22
+ src: string;
23
+ useDraco?: UseDraco;
24
+ useMeshOpt?: UseMeshopt;
25
+ extendLoader?: ExtendLoader;
26
+ } & React.RefAttributes<import("three").Group<import("three").Object3DEventMap>>>;
27
+ export {};
package/core/Gltf.js ADDED
@@ -0,0 +1,52 @@
1
+ import _extends from '@babel/runtime/helpers/esm/extends';
2
+ import * as React from 'react';
3
+ import { GLTFLoader, DRACOLoader, MeshoptDecoder } from 'three-stdlib';
4
+ import { useLoader } from '@react-three/fiber';
5
+ import { Clone } from './Clone.js';
6
+
7
+ let dracoLoader = null;
8
+ let decoderPath = 'https://www.gstatic.com/draco/versioned/decoders/1.5.5/';
9
+ function extensions(useDraco = true, useMeshopt = true, extendLoader) {
10
+ return loader => {
11
+ if (extendLoader) {
12
+ extendLoader(loader);
13
+ }
14
+ if (useDraco) {
15
+ if (!dracoLoader) {
16
+ dracoLoader = new DRACOLoader();
17
+ }
18
+ dracoLoader.setDecoderPath(typeof useDraco === 'string' ? useDraco : decoderPath);
19
+ loader.setDRACOLoader(dracoLoader);
20
+ }
21
+ if (useMeshopt) {
22
+ loader.setMeshoptDecoder(typeof MeshoptDecoder === 'function' ? MeshoptDecoder() : MeshoptDecoder);
23
+ }
24
+ };
25
+ }
26
+ const useGLTF = (path, useDraco, useMeshopt, extendLoader) => useLoader(GLTFLoader, path, extensions(useDraco, useMeshopt, extendLoader));
27
+ useGLTF.preload = (path, useDraco, useMeshopt, extendLoader) => useLoader.preload(GLTFLoader, path, extensions(useDraco, useMeshopt, extendLoader));
28
+ useGLTF.clear = path => useLoader.clear(GLTFLoader, path);
29
+ useGLTF.setDecoderPath = path => {
30
+ decoderPath = path;
31
+ };
32
+
33
+ //
34
+
35
+ const Gltf = /* @__PURE__ */React.forwardRef(({
36
+ src,
37
+ useDraco,
38
+ useMeshOpt,
39
+ extendLoader,
40
+ ...props
41
+ }, ref) => {
42
+ const {
43
+ scene
44
+ } = useGLTF(src, useDraco, useMeshOpt, extendLoader);
45
+ return /*#__PURE__*/React.createElement(Clone, _extends({
46
+ ref: ref
47
+ }, props, {
48
+ object: scene
49
+ }));
50
+ });
51
+
52
+ export { Gltf, useGLTF };
@@ -0,0 +1 @@
1
+ "use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("react"),r=require("@react-three/fiber"),a=require("three");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function i(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var a=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,a.get?a:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var o=n(e),u=i(t),c=i(a);let l=function(e){return e.Linear="linear",e.Radial="radial",e}({});exports.GradientTexture=function({stops:e,colors:t,size:a=1024,width:n=16,type:i=l.Linear,innerCircleRadius:s=0,outerCircleRadius:d="auto",...f}){const h=r.useThree((e=>e.gl)),p=u.useMemo((()=>{const r=document.createElement("canvas"),o=r.getContext("2d");let u;if(r.width=n,r.height=a,i===l.Linear)u=o.createLinearGradient(0,0,0,a);else{const e=r.width/2,t=r.height/2,a="auto"!==d?Math.abs(Number(d)):Math.sqrt(e**2+t**2);u=o.createRadialGradient(e,t,Math.abs(s),e,t,a)}const f=new c.Color;let h=e.length;for(;h--;)u.addColorStop(e[h],f.set(t[h]).getStyle());return o.save(),o.fillStyle=u,o.fillRect(0,0,n,a),o.restore(),r}),[e]);return u.createElement("canvasTexture",o.default({colorSpace:h.outputColorSpace,args:[p],attach:"map"},f))},exports.GradientType=l;
@@ -0,0 +1,18 @@
1
+ import * as React from 'react';
2
+ import { ThreeElements } from '@react-three/fiber';
3
+ import * as THREE from 'three';
4
+ export declare enum GradientType {
5
+ Linear = "linear",
6
+ Radial = "radial"
7
+ }
8
+ export type GradientTextureProps = {
9
+ stops: Array<number>;
10
+ colors: Array<THREE.ColorRepresentation>;
11
+ attach?: string;
12
+ size?: number;
13
+ width?: number;
14
+ type?: GradientType;
15
+ innerCircleRadius?: number;
16
+ outerCircleRadius?: string | number;
17
+ } & Omit<ThreeElements['texture'], 'args' | 'type'>;
18
+ export declare function GradientTexture({ stops, colors, size, width, type, innerCircleRadius, outerCircleRadius, ...props }: GradientTextureProps): React.JSX.Element;