@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.
- package/LICENSE +21 -0
- package/README.md +852 -0
- package/core/AccumulativeShadows.cjs.js +1 -0
- package/core/AccumulativeShadows.d.ts +59 -0
- package/core/AccumulativeShadows.js +310 -0
- package/core/AdaptiveDpr.cjs.js +1 -0
- package/core/AdaptiveDpr.d.ts +3 -0
- package/core/AdaptiveDpr.js +28 -0
- package/core/AdaptiveEvents.cjs.js +1 -0
- package/core/AdaptiveEvents.d.ts +1 -0
- package/core/AdaptiveEvents.js +20 -0
- package/core/ArcballControls.cjs.js +1 -0
- package/core/ArcballControls.d.ts +15 -0
- package/core/ArcballControls.js +67 -0
- package/core/AsciiRenderer.cjs.js +1 -0
- package/core/AsciiRenderer.d.ts +11 -0
- package/core/AsciiRenderer.js +66 -0
- package/core/BBAnchor.cjs.js +1 -0
- package/core/BBAnchor.d.ts +7 -0
- package/core/BBAnchor.js +37 -0
- package/core/Backdrop.cjs.js +1 -0
- package/core/Backdrop.d.ts +15 -0
- package/core/Backdrop.js +33 -0
- package/core/BakeShadows.cjs.js +1 -0
- package/core/BakeShadows.d.ts +1 -0
- package/core/BakeShadows.js +16 -0
- package/core/Billboard.cjs.js +1 -0
- package/core/Billboard.d.ts +10 -0
- package/core/Billboard.js +53 -0
- package/core/Bounds.cjs.js +1 -0
- package/core/Bounds.d.ts +36 -0
- package/core/Bounds.js +254 -0
- package/core/Bvh.cjs.js +1 -0
- package/core/Bvh.d.ts +19 -0
- package/core/Bvh.js +92 -0
- package/core/CameraControls.cjs.js +1 -0
- package/core/CameraControls.d.ts +48 -0
- package/core/CameraControls.js +151 -0
- package/core/CameraShake.cjs.js +1 -0
- package/core/CameraShake.d.ts +17 -0
- package/core/CameraShake.js +57 -0
- package/core/CatmullRomLine.cjs.js +1 -0
- package/core/CatmullRomLine.d.ts +10 -0
- package/core/CatmullRomLine.js +42 -0
- package/core/Caustics.cjs.js +1 -0
- package/core/Caustics.d.ts +32 -0
- package/core/Caustics.js +388 -0
- package/core/Center.cjs.js +1 -0
- package/core/Center.d.ts +33 -0
- package/core/Center.js +67 -0
- package/core/Clone.cjs.js +1 -0
- package/core/Clone.d.ts +15 -0
- package/core/Clone.js +100 -0
- package/core/Cloud.cjs.js +1 -0
- package/core/Cloud.d.ts +97 -0
- package/core/Cloud.js +231 -0
- package/core/ComputedAttribute.cjs.js +1 -0
- package/core/ComputedAttribute.d.ts +8 -0
- package/core/ComputedAttribute.js +33 -0
- package/core/ContactShadows.cjs.js +1 -0
- package/core/ContactShadows.d.ts +18 -0
- package/core/ContactShadows.js +114 -0
- package/core/CubeCamera.cjs.js +1 -0
- package/core/CubeCamera.d.ts +21 -0
- package/core/CubeCamera.js +86 -0
- package/core/CubeTexture.cjs.js +1 -0
- package/core/CubeTexture.d.ts +14 -0
- package/core/CubeTexture.js +25 -0
- package/core/CubicBezierLine.cjs.js +1 -0
- package/core/CubicBezierLine.d.ts +12 -0
- package/core/CubicBezierLine.js +28 -0
- package/core/CurveModifier.cjs.js +1 -0
- package/core/CurveModifier.d.ts +11 -0
- package/core/CurveModifier.js +27 -0
- package/core/Decal.cjs.js +1 -0
- package/core/Decal.d.ts +16 -0
- package/core/Decal.js +128 -0
- package/core/Detailed.cjs.js +1 -0
- package/core/Detailed.d.ts +10 -0
- package/core/Detailed.js +33 -0
- package/core/DetectGPU.cjs.js +1 -0
- package/core/DetectGPU.d.ts +7 -0
- package/core/DetectGPU.js +14 -0
- package/core/DeviceOrientationControls.cjs.js +1 -0
- package/core/DeviceOrientationControls.d.ts +10 -0
- package/core/DeviceOrientationControls.js +51 -0
- package/core/Edges.cjs.js +1 -0
- package/core/Edges.d.ts +13 -0
- package/core/Edges.js +38 -0
- package/core/Effects.cjs.js +1 -0
- package/core/Effects.d.ts +25 -0
- package/core/Effects.js +91 -0
- package/core/Environment.cjs.js +1 -0
- package/core/Environment.d.ts +37 -0
- package/core/Environment.js +189 -0
- package/core/Example.cjs.js +1 -0
- package/core/Example.d.ts +13 -0
- package/core/Example.js +46 -0
- package/core/Fbo.cjs.js +1 -0
- package/core/Fbo.d.ts +22 -0
- package/core/Fbo.js +63 -0
- package/core/Fbx.cjs.js +1 -0
- package/core/Fbx.d.ts +11 -0
- package/core/Fbx.js +23 -0
- package/core/FirstPersonControls.cjs.js +1 -0
- package/core/FirstPersonControls.d.ts +8 -0
- package/core/FirstPersonControls.js +38 -0
- package/core/Fisheye.cjs.js +1 -0
- package/core/Fisheye.d.ts +10 -0
- package/core/Fisheye.js +95 -0
- package/core/Float.cjs.js +1 -0
- package/core/Float.d.ts +14 -0
- package/core/Float.js +37 -0
- package/core/FlyControls.cjs.js +1 -0
- package/core/FlyControls.d.ts +10 -0
- package/core/FlyControls.js +55 -0
- package/core/GizmoHelper.cjs.js +1 -0
- package/core/GizmoHelper.d.ts +16 -0
- package/core/GizmoHelper.js +116 -0
- package/core/GizmoViewcube.cjs.js +1 -0
- package/core/GizmoViewcube.d.ts +14 -0
- package/core/GizmoViewcube.js +133 -0
- package/core/GizmoViewport.cjs.js +1 -0
- package/core/GizmoViewport.d.ts +16 -0
- package/core/GizmoViewport.js +140 -0
- package/core/Gltf.cjs.js +1 -0
- package/core/Gltf.d.ts +27 -0
- package/core/Gltf.js +52 -0
- package/core/GradientTexture.cjs.js +1 -0
- package/core/GradientTexture.d.ts +18 -0
- package/core/GradientTexture.js +54 -0
- package/core/Grid.cjs.js +1 -0
- package/core/Grid.d.ts +26 -0
- package/core/Grid.js +142 -0
- package/core/Helper.cjs.js +1 -0
- package/core/Helper.d.ts +16 -0
- package/core/Helper.js +47 -0
- package/core/Hud.cjs.js +1 -0
- package/core/Hud.d.ts +6 -0
- package/core/Hud.js +55 -0
- package/core/Image.cjs.js +1 -0
- package/core/Image.d.ts +38 -0
- package/core/Image.js +160 -0
- package/core/Instances.cjs.js +1 -0
- package/core/Instances.d.ts +64 -0
- package/core/Instances.js +313 -0
- package/core/Ktx2.cjs.js +1 -0
- package/core/Ktx2.d.ts +14 -0
- package/core/Ktx2.js +48 -0
- package/core/Lightformer.cjs.js +1 -0
- package/core/Lightformer.d.ts +15 -0
- package/core/Lightformer.js +63 -0
- package/core/Line.cjs.js +1 -0
- package/core/Line.d.ts +13 -0
- package/core/Line.js +73 -0
- package/core/MapControls.cjs.js +1 -0
- package/core/MapControls.d.ts +14 -0
- package/core/MapControls.js +63 -0
- package/core/MarchingCubes.cjs.js +1 -0
- package/core/MarchingCubes.d.ts +24 -0
- package/core/MarchingCubes.js +78 -0
- package/core/Mask.cjs.js +1 -0
- package/core/Mask.d.ts +17 -0
- package/core/Mask.js +42 -0
- package/core/MatcapTexture.cjs.js +1 -0
- package/core/MatcapTexture.d.ts +9 -0
- package/core/MatcapTexture.js +51 -0
- package/core/MeshDiscardMaterial.cjs.js +1 -0
- package/core/MeshDiscardMaterial.d.ts +10 -0
- package/core/MeshDiscardMaterial.js +15 -0
- package/core/MeshDistortMaterial.cjs.js +1 -0
- package/core/MeshDistortMaterial.d.ts +39 -0
- package/core/MeshDistortMaterial.js +72 -0
- package/core/MeshPortalMaterial.cjs.js +1 -0
- package/core/MeshPortalMaterial.d.ts +25 -0
- package/core/MeshPortalMaterial.js +467 -0
- package/core/MeshReflectorMaterial.cjs.js +1 -0
- package/core/MeshReflectorMaterial.d.ts +14 -0
- package/core/MeshReflectorMaterial.js +180 -0
- package/core/MeshRefractionMaterial.cjs.js +1 -0
- package/core/MeshRefractionMaterial.d.ts +19 -0
- package/core/MeshRefractionMaterial.js +73 -0
- package/core/MeshTransmissionMaterial.cjs.js +1 -0
- package/core/MeshTransmissionMaterial.d.ts +34 -0
- package/core/MeshTransmissionMaterial.js +402 -0
- package/core/MeshWobbleMaterial.cjs.js +1 -0
- package/core/MeshWobbleMaterial.d.ts +36 -0
- package/core/MeshWobbleMaterial.js +60 -0
- package/core/MotionPathControls.cjs.js +1 -0
- package/core/MotionPathControls.d.ts +33 -0
- package/core/MotionPathControls.js +121 -0
- package/core/MultiMaterial.cjs.js +1 -0
- package/core/MultiMaterial.d.ts +4 -0
- package/core/MultiMaterial.js +29 -0
- package/core/NormalTexture.cjs.js +1 -0
- package/core/NormalTexture.d.ts +14 -0
- package/core/NormalTexture.js +42 -0
- package/core/OrbitControls.cjs.js +1 -0
- package/core/OrbitControls.d.ts +22 -0
- package/core/OrbitControls.js +79 -0
- package/core/OrthographicCamera.cjs.js +1 -0
- package/core/OrthographicCamera.d.ts +14 -0
- package/core/OrthographicCamera.js +76 -0
- package/core/Outlines.cjs.js +1 -0
- package/core/Outlines.d.ts +17 -0
- package/core/Outlines.js +166 -0
- package/core/PerformanceMonitor.cjs.js +1 -0
- package/core/PerformanceMonitor.d.ts +36 -0
- package/core/PerformanceMonitor.js +116 -0
- package/core/PerspectiveCamera.cjs.js +1 -0
- package/core/PerspectiveCamera.d.ts +14 -0
- package/core/PerspectiveCamera.js +72 -0
- package/core/PointMaterial.cjs.js +1 -0
- package/core/PointMaterial.d.ts +8 -0
- package/core/PointMaterial.js +36 -0
- package/core/PointerLockControls.cjs.js +1 -0
- package/core/PointerLockControls.d.ts +15 -0
- package/core/PointerLockControls.js +89 -0
- package/core/Points.cjs.js +1 -0
- package/core/Points.d.ts +31 -0
- package/core/Points.js +202 -0
- package/core/PositionalAudio.cjs.js +1 -0
- package/core/PositionalAudio.d.ts +9 -0
- package/core/PositionalAudio.js +46 -0
- package/core/Preload.cjs.js +1 -0
- package/core/Preload.d.ts +7 -0
- package/core/Preload.js +44 -0
- package/core/Progress.cjs.js +1 -0
- package/core/Progress.d.ts +14 -0
- package/core/Progress.js +55 -0
- package/core/QuadraticBezierLine.cjs.js +1 -0
- package/core/QuadraticBezierLine.d.ts +14 -0
- package/core/QuadraticBezierLine.js +42 -0
- package/core/RenderCubeTexture.cjs.js +1 -0
- package/core/RenderCubeTexture.d.ts +30 -0
- package/core/RenderCubeTexture.js +96 -0
- package/core/RenderTexture.cjs.js +1 -0
- package/core/RenderTexture.d.ts +18 -0
- package/core/RenderTexture.js +105 -0
- package/core/Resize.cjs.js +1 -0
- package/core/Resize.d.ts +17 -0
- package/core/Resize.js +39 -0
- package/core/RoundedBox.cjs.js +1 -0
- package/core/RoundedBox.d.ts +14 -0
- package/core/RoundedBox.js +70 -0
- package/core/Sampler.cjs.js +1 -0
- package/core/Sampler.d.ts +28 -0
- package/core/Sampler.js +75 -0
- package/core/ScreenQuad.cjs.js +1 -0
- package/core/ScreenQuad.d.ts +5 -0
- package/core/ScreenQuad.js +25 -0
- package/core/ScreenSizer.cjs.js +1 -0
- package/core/ScreenSizer.d.ts +7 -0
- package/core/ScreenSizer.js +39 -0
- package/core/ScreenSpace.cjs.js +1 -0
- package/core/ScreenSpace.d.ts +7 -0
- package/core/ScreenSpace.js +25 -0
- package/core/Segments.cjs.js +1 -0
- package/core/Segments.d.ts +29 -0
- package/core/Segments.js +96 -0
- package/core/Shadow.cjs.js +1 -0
- package/core/Shadow.d.ts +12 -0
- package/core/Shadow.js +42 -0
- package/core/ShadowAlpha.cjs.js +1 -0
- package/core/ShadowAlpha.d.ts +7 -0
- package/core/ShadowAlpha.js +108 -0
- package/core/Sky.cjs.js +1 -0
- package/core/Sky.d.ts +16 -0
- package/core/Sky.js +39 -0
- package/core/Sparkles.cjs.js +1 -0
- package/core/Sparkles.d.ts +26 -0
- package/core/Sparkles.js +161 -0
- package/core/Splat.cjs.js +1 -0
- package/core/Splat.d.ts +56 -0
- package/core/Splat.js +506 -0
- package/core/SpotLight.cjs.js +1 -0
- package/core/SpotLight.d.ts +27 -0
- package/core/SpotLight.js +223 -0
- package/core/SpriteAnimator.cjs.js +1 -0
- package/core/SpriteAnimator.d.ts +88 -0
- package/core/SpriteAnimator.js +413 -0
- package/core/Stage.cjs.js +1 -0
- package/core/Stage.d.ts +27 -0
- package/core/Stage.js +133 -0
- package/core/Stars.cjs.js +1 -0
- package/core/Stars.d.ts +22 -0
- package/core/Stars.js +100 -0
- package/core/Stats.cjs.js +1 -0
- package/core/Stats.d.ts +7 -0
- package/core/Stats.js +32 -0
- package/core/StatsGl.cjs.js +1 -0
- package/core/StatsGl.d.ts +14 -0
- package/core/StatsGl.js +44 -0
- package/core/Svg.cjs.js +1 -0
- package/core/Svg.d.ts +13 -0
- package/core/Svg.js +62 -0
- package/core/Text.cjs.js +1 -0
- package/core/Text.d.ts +38 -0
- package/core/Text.js +57 -0
- package/core/Text3D.cjs.js +1 -0
- package/core/Text3D.d.ts +20 -0
- package/core/Text3D.js +74 -0
- package/core/Texture.cjs.js +1 -0
- package/core/Texture.d.ts +20 -0
- package/core/Texture.js +60 -0
- package/core/TrackballControls.cjs.js +1 -0
- package/core/TrackballControls.d.ts +15 -0
- package/core/TrackballControls.js +72 -0
- package/core/Trail.cjs.js +1 -0
- package/core/Trail.d.ts +21 -0
- package/core/Trail.js +150 -0
- package/core/TrailTexture.cjs.js +1 -0
- package/core/TrailTexture.d.ts +19 -0
- package/core/TrailTexture.js +159 -0
- package/core/TransformControls.cjs.js +1 -0
- package/core/TransformControls.d.ts +28 -0
- package/core/TransformControls.js +114 -0
- package/core/VideoTexture.cjs.js +1 -0
- package/core/VideoTexture.d.ts +26 -0
- package/core/VideoTexture.js +111 -0
- package/core/Wireframe.cjs.js +1 -0
- package/core/Wireframe.d.ts +15 -0
- package/core/Wireframe.js +157 -0
- package/core/calculateScaleFactor.cjs.js +1 -0
- package/core/calculateScaleFactor.d.ts +3 -0
- package/core/calculateScaleFactor.js +31 -0
- package/core/index.cjs.js +1 -0
- package/core/index.d.ts +122 -0
- package/core/index.js +150 -0
- package/core/meshBounds.cjs.js +1 -0
- package/core/meshBounds.d.ts +2 -0
- package/core/meshBounds.js +28 -0
- package/core/shaderMaterial.cjs.js +1 -0
- package/core/shaderMaterial.d.ts +9 -0
- package/core/shaderMaterial.js +29 -0
- package/core/shapes.cjs.js +1 -0
- package/core/shapes.d.ts +26 -0
- package/core/shapes.js +65 -0
- package/core/softShadows.cjs.js +1 -0
- package/core/softShadows.d.ts +6 -0
- package/core/softShadows.js +158 -0
- package/core/useAnimations.cjs.js +1 -0
- package/core/useAnimations.d.ts +13 -0
- package/core/useAnimations.js +52 -0
- package/core/useAspect.cjs.js +1 -0
- package/core/useAspect.d.ts +1 -0
- package/core/useAspect.js +10 -0
- package/core/useBoxProjectedEnv.cjs.js +1 -0
- package/core/useBoxProjectedEnv.d.ts +19 -0
- package/core/useBoxProjectedEnv.js +95 -0
- package/core/useCamera.cjs.js +1 -0
- package/core/useCamera.d.ts +3 -0
- package/core/useCamera.js +19 -0
- package/core/useContextBridge.cjs.js +1 -0
- package/core/useContextBridge.d.ts +4 -0
- package/core/useContextBridge.js +20 -0
- package/core/useDepthBuffer.cjs.js +1 -0
- package/core/useDepthBuffer.d.ts +6 -0
- package/core/useDepthBuffer.js +38 -0
- package/core/useEnvironment.cjs.js +1 -0
- package/core/useEnvironment.d.ts +17 -0
- package/core/useEnvironment.js +150 -0
- package/core/useFont.cjs.js +1 -0
- package/core/useFont.d.ts +24 -0
- package/core/useFont.js +24 -0
- package/core/useIntersect.cjs.js +1 -0
- package/core/useIntersect.d.ts +3 -0
- package/core/useIntersect.js +36 -0
- package/core/useSpriteLoader.cjs.js +1 -0
- package/core/useSpriteLoader.d.ts +57 -0
- package/core/useSpriteLoader.js +402 -0
- package/helpers/constants.cjs.js +1 -0
- package/helpers/constants.d.ts +1 -0
- package/helpers/constants.js +6 -0
- package/helpers/deprecated.cjs.js +1 -0
- package/helpers/deprecated.d.ts +5 -0
- package/helpers/deprecated.js +8 -0
- package/helpers/environment-assets.cjs.js +1 -0
- package/helpers/environment-assets.d.ts +13 -0
- package/helpers/environment-assets.js +14 -0
- package/helpers/glsl/DefaultSpotlightShadowShadows.glsl.js +3 -0
- package/helpers/glsl/distort.vert.glsl.js +3 -0
- package/helpers/ts-utils.cjs.js +1 -0
- package/helpers/ts-utils.d.ts +7 -0
- package/helpers/ts-utils.js +1 -0
- package/helpers/useEffectfulState.cjs.js +1 -0
- package/helpers/useEffectfulState.d.ts +4 -0
- package/helpers/useEffectfulState.js +17 -0
- package/index.cjs.js +1 -0
- package/index.d.ts +1 -0
- package/index.js +139 -0
- package/materials/BlurPass.cjs.js +1 -0
- package/materials/BlurPass.d.ts +23 -0
- package/materials/BlurPass.js +72 -0
- package/materials/ConvolutionMaterial.cjs.js +1 -0
- package/materials/ConvolutionMaterial.d.ts +7 -0
- package/materials/ConvolutionMaterial.js +97 -0
- package/materials/DiscardMaterial.cjs.js +1 -0
- package/materials/DiscardMaterial.d.ts +3 -0
- package/materials/DiscardMaterial.js +5 -0
- package/materials/MeshReflectorMaterial.cjs.js +1 -0
- package/materials/MeshReflectorMaterial.d.ts +50 -0
- package/materials/MeshReflectorMaterial.js +256 -0
- package/materials/MeshRefractionMaterial.cjs.js +1 -0
- package/materials/MeshRefractionMaterial.d.ts +18 -0
- package/materials/MeshRefractionMaterial.js +163 -0
- package/materials/SpotLightMaterial.cjs.js +1 -0
- package/materials/SpotLightMaterial.d.ts +4 -0
- package/materials/SpotLightMaterial.js +115 -0
- package/materials/WireframeMaterial.cjs.js +1 -0
- package/materials/WireframeMaterial.d.ts +64 -0
- package/materials/WireframeMaterial.js +217 -0
- package/native/index.cjs.js +1 -0
- package/native/index.d.ts +1 -0
- package/native/index.js +150 -0
- package/native/package.json +5 -0
- package/package.json +83 -0
- package/web/CycleRaycast.cjs.js +1 -0
- package/web/CycleRaycast.d.ts +10 -0
- package/web/CycleRaycast.js +93 -0
- package/web/DragControls.cjs.js +1 -0
- package/web/DragControls.d.ts +17 -0
- package/web/DragControls.js +127 -0
- package/web/FaceControls.cjs.js +1 -0
- package/web/FaceControls.d.ts +29 -0
- package/web/FaceControls.js +236 -0
- package/web/FaceLandmarker.cjs.js +1 -0
- package/web/FaceLandmarker.d.ts +14 -0
- package/web/FaceLandmarker.js +49 -0
- package/web/Facemesh.cjs.js +1 -0
- package/web/Facemesh.d.ts +118 -0
- package/web/Facemesh.js +4538 -0
- package/web/Html.cjs.js +1 -0
- package/web/Html.d.ts +34 -0
- package/web/Html.js +375 -0
- package/web/KeyboardControls.cjs.js +1 -0
- package/web/KeyboardControls.d.ts +37 -0
- package/web/KeyboardControls.js +104 -0
- package/web/Loader.cjs.js +1 -0
- package/web/Loader.d.ts +12 -0
- package/web/Loader.js +101 -0
- package/web/PresentationControls.cjs.js +1 -0
- package/web/PresentationControls.d.ts +16 -0
- package/web/PresentationControls.js +79 -0
- package/web/ScreenVideoTexture.cjs.js +1 -0
- package/web/ScreenVideoTexture.d.ts +17 -0
- package/web/ScreenVideoTexture.js +30 -0
- package/web/ScrollControls.cjs.js +1 -0
- package/web/ScrollControls.d.ts +45 -0
- package/web/ScrollControls.js +237 -0
- package/web/Select.cjs.js +1 -0
- package/web/Select.d.ts +14 -0
- package/web/Select.js +171 -0
- package/web/View.cjs.js +1 -0
- package/web/View.d.ts +34 -0
- package/web/View.js +259 -0
- package/web/WebcamVideoTexture.cjs.js +1 -0
- package/web/WebcamVideoTexture.d.ts +17 -0
- package/web/WebcamVideoTexture.js +33 -0
- package/web/index.cjs.js +1 -0
- package/web/index.d.ts +17 -0
- package/web/index.js +176 -0
- package/web/pivotControls/AxisArrow.cjs.js +1 -0
- package/web/pivotControls/AxisArrow.d.ts +7 -0
- package/web/pivotControls/AxisArrow.js +193 -0
- package/web/pivotControls/AxisRotator.cjs.js +1 -0
- package/web/pivotControls/AxisRotator.d.ts +7 -0
- package/web/pivotControls/AxisRotator.js +220 -0
- package/web/pivotControls/PlaneSlider.cjs.js +1 -0
- package/web/pivotControls/PlaneSlider.d.ts +7 -0
- package/web/pivotControls/PlaneSlider.js +202 -0
- package/web/pivotControls/ScalingSphere.cjs.js +1 -0
- package/web/pivotControls/ScalingSphere.d.ts +7 -0
- package/web/pivotControls/ScalingSphere.js +192 -0
- package/web/pivotControls/context.cjs.js +1 -0
- package/web/pivotControls/context.d.ts +33 -0
- package/web/pivotControls/context.js +5 -0
- package/web/pivotControls/index.cjs.js +1 -0
- package/web/pivotControls/index.d.ts +39 -0
- package/web/pivotControls/index.js +213 -0
- package/web/useCursor.cjs.js +1 -0
- package/web/useCursor.d.ts +1 -0
- 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 };
|
package/core/Gltf.cjs.js
ADDED
|
@@ -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;
|