@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,217 @@
|
|
|
1
|
+
import * as THREE from 'three';
|
|
2
|
+
import * as React from 'react';
|
|
3
|
+
import { shaderMaterial } from '../core/shaderMaterial.js';
|
|
4
|
+
|
|
5
|
+
const WireframeMaterialShaders = {
|
|
6
|
+
uniforms: {
|
|
7
|
+
strokeOpacity: 1,
|
|
8
|
+
fillOpacity: 0.25,
|
|
9
|
+
fillMix: 0,
|
|
10
|
+
thickness: 0.05,
|
|
11
|
+
colorBackfaces: false,
|
|
12
|
+
dashInvert: true,
|
|
13
|
+
dash: false,
|
|
14
|
+
dashRepeats: 4,
|
|
15
|
+
dashLength: 0.5,
|
|
16
|
+
squeeze: false,
|
|
17
|
+
squeezeMin: 0.2,
|
|
18
|
+
squeezeMax: 1,
|
|
19
|
+
stroke: /* @__PURE__ */new THREE.Color('#ff0000'),
|
|
20
|
+
backfaceStroke: /* @__PURE__ */new THREE.Color('#0000ff'),
|
|
21
|
+
fill: /* @__PURE__ */new THREE.Color('#00ff00')
|
|
22
|
+
},
|
|
23
|
+
vertex: /* glsl */`
|
|
24
|
+
attribute vec3 barycentric;
|
|
25
|
+
|
|
26
|
+
varying vec3 v_edges_Barycentric;
|
|
27
|
+
varying vec3 v_edges_Position;
|
|
28
|
+
|
|
29
|
+
void initWireframe() {
|
|
30
|
+
v_edges_Barycentric = barycentric;
|
|
31
|
+
v_edges_Position = position.xyz;
|
|
32
|
+
}
|
|
33
|
+
`,
|
|
34
|
+
fragment: /* glsl */`
|
|
35
|
+
#ifndef PI
|
|
36
|
+
#define PI 3.1415926535897932384626433832795
|
|
37
|
+
#endif
|
|
38
|
+
|
|
39
|
+
varying vec3 v_edges_Barycentric;
|
|
40
|
+
varying vec3 v_edges_Position;
|
|
41
|
+
|
|
42
|
+
uniform float strokeOpacity;
|
|
43
|
+
uniform float fillOpacity;
|
|
44
|
+
uniform float fillMix;
|
|
45
|
+
uniform float thickness;
|
|
46
|
+
uniform bool colorBackfaces;
|
|
47
|
+
|
|
48
|
+
// Dash
|
|
49
|
+
uniform bool dashInvert;
|
|
50
|
+
uniform bool dash;
|
|
51
|
+
uniform bool dashOnly;
|
|
52
|
+
uniform float dashRepeats;
|
|
53
|
+
uniform float dashLength;
|
|
54
|
+
|
|
55
|
+
// Squeeze
|
|
56
|
+
uniform bool squeeze;
|
|
57
|
+
uniform float squeezeMin;
|
|
58
|
+
uniform float squeezeMax;
|
|
59
|
+
|
|
60
|
+
// Colors
|
|
61
|
+
uniform vec3 stroke;
|
|
62
|
+
uniform vec3 backfaceStroke;
|
|
63
|
+
uniform vec3 fill;
|
|
64
|
+
|
|
65
|
+
// This is like
|
|
66
|
+
float wireframe_aastep(float threshold, float dist) {
|
|
67
|
+
float afwidth = fwidth(dist) * 0.5;
|
|
68
|
+
return smoothstep(threshold - afwidth, threshold + afwidth, dist);
|
|
69
|
+
}
|
|
70
|
+
|
|
71
|
+
float wireframe_map(float value, float min1, float max1, float min2, float max2) {
|
|
72
|
+
return min2 + (value - min1) * (max2 - min2) / (max1 - min1);
|
|
73
|
+
}
|
|
74
|
+
|
|
75
|
+
float getWireframe() {
|
|
76
|
+
vec3 barycentric = v_edges_Barycentric;
|
|
77
|
+
|
|
78
|
+
// Distance from center of each triangle to its edges.
|
|
79
|
+
float d = min(min(barycentric.x, barycentric.y), barycentric.z);
|
|
80
|
+
|
|
81
|
+
// for dashed rendering, we can use this to get the 0 .. 1 value of the line length
|
|
82
|
+
float positionAlong = max(barycentric.x, barycentric.y);
|
|
83
|
+
if (barycentric.y < barycentric.x && barycentric.y < barycentric.z) {
|
|
84
|
+
positionAlong = 1.0 - positionAlong;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
// the thickness of the stroke
|
|
88
|
+
float computedThickness = wireframe_map(thickness, 0.0, 1.0, 0.0, 0.34);
|
|
89
|
+
|
|
90
|
+
// if we want to shrink the thickness toward the center of the line segment
|
|
91
|
+
if (squeeze) {
|
|
92
|
+
computedThickness *= mix(squeezeMin, squeezeMax, (1.0 - sin(positionAlong * PI)));
|
|
93
|
+
}
|
|
94
|
+
|
|
95
|
+
// Create dash pattern
|
|
96
|
+
if (dash) {
|
|
97
|
+
// here we offset the stroke position depending on whether it
|
|
98
|
+
// should overlap or not
|
|
99
|
+
float offset = 1.0 / dashRepeats * dashLength / 2.0;
|
|
100
|
+
if (!dashInvert) {
|
|
101
|
+
offset += 1.0 / dashRepeats / 2.0;
|
|
102
|
+
}
|
|
103
|
+
|
|
104
|
+
// if we should animate the dash or not
|
|
105
|
+
// if (dashAnimate) {
|
|
106
|
+
// offset += time * 0.22;
|
|
107
|
+
// }
|
|
108
|
+
|
|
109
|
+
// create the repeating dash pattern
|
|
110
|
+
float pattern = fract((positionAlong + offset) * dashRepeats);
|
|
111
|
+
computedThickness *= 1.0 - wireframe_aastep(dashLength, pattern);
|
|
112
|
+
}
|
|
113
|
+
|
|
114
|
+
// compute the anti-aliased stroke edge
|
|
115
|
+
float edge = 1.0 - wireframe_aastep(computedThickness, d);
|
|
116
|
+
|
|
117
|
+
return edge;
|
|
118
|
+
}
|
|
119
|
+
`
|
|
120
|
+
};
|
|
121
|
+
const WireframeMaterial = /* @__PURE__ */shaderMaterial(WireframeMaterialShaders.uniforms, WireframeMaterialShaders.vertex + /* glsl */`
|
|
122
|
+
void main() {
|
|
123
|
+
initWireframe();
|
|
124
|
+
gl_Position = projectionMatrix * modelViewMatrix * vec4(position, 1.0);
|
|
125
|
+
}
|
|
126
|
+
`, WireframeMaterialShaders.fragment + /* glsl */`
|
|
127
|
+
void main () {
|
|
128
|
+
// Compute color
|
|
129
|
+
|
|
130
|
+
float edge = getWireframe();
|
|
131
|
+
vec4 colorStroke = vec4(stroke, edge);
|
|
132
|
+
|
|
133
|
+
#ifdef FLIP_SIDED
|
|
134
|
+
colorStroke.rgb = backfaceStroke;
|
|
135
|
+
#endif
|
|
136
|
+
|
|
137
|
+
vec4 colorFill = vec4(fill, fillOpacity);
|
|
138
|
+
vec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);
|
|
139
|
+
|
|
140
|
+
gl_FragColor = outColor;
|
|
141
|
+
}
|
|
142
|
+
`);
|
|
143
|
+
function setWireframeOverride(material, uniforms) {
|
|
144
|
+
material.onBeforeCompile = shader => {
|
|
145
|
+
shader.uniforms = {
|
|
146
|
+
...shader.uniforms,
|
|
147
|
+
...uniforms
|
|
148
|
+
};
|
|
149
|
+
shader.vertexShader = shader.vertexShader.replace('void main() {', `
|
|
150
|
+
${WireframeMaterialShaders.vertex}
|
|
151
|
+
void main() {
|
|
152
|
+
initWireframe();
|
|
153
|
+
`);
|
|
154
|
+
shader.fragmentShader = shader.fragmentShader.replace('void main() {', `
|
|
155
|
+
${WireframeMaterialShaders.fragment}
|
|
156
|
+
void main() {
|
|
157
|
+
`);
|
|
158
|
+
shader.fragmentShader = shader.fragmentShader.replace('#include <color_fragment>', /* glsl */`
|
|
159
|
+
#include <color_fragment>
|
|
160
|
+
float edge = getWireframe();
|
|
161
|
+
vec4 colorStroke = vec4(stroke, edge);
|
|
162
|
+
#ifdef FLIP_SIDED
|
|
163
|
+
colorStroke.rgb = backfaceStroke;
|
|
164
|
+
#endif
|
|
165
|
+
vec4 colorFill = vec4(mix(diffuseColor.rgb, fill, fillMix), mix(diffuseColor.a, fillOpacity, fillMix));
|
|
166
|
+
vec4 outColor = mix(colorFill, colorStroke, edge * strokeOpacity);
|
|
167
|
+
|
|
168
|
+
diffuseColor.rgb = outColor.rgb;
|
|
169
|
+
diffuseColor.a *= outColor.a;
|
|
170
|
+
`);
|
|
171
|
+
};
|
|
172
|
+
material.side = THREE.DoubleSide;
|
|
173
|
+
material.transparent = true;
|
|
174
|
+
}
|
|
175
|
+
function useWireframeUniforms(uniforms, props) {
|
|
176
|
+
React.useEffect(() => {
|
|
177
|
+
var _props$fillOpacity;
|
|
178
|
+
return void (uniforms.fillOpacity.value = (_props$fillOpacity = props.fillOpacity) !== null && _props$fillOpacity !== void 0 ? _props$fillOpacity : uniforms.fillOpacity.value);
|
|
179
|
+
}, [props.fillOpacity]);
|
|
180
|
+
React.useEffect(() => {
|
|
181
|
+
var _props$fillMix;
|
|
182
|
+
return void (uniforms.fillMix.value = (_props$fillMix = props.fillMix) !== null && _props$fillMix !== void 0 ? _props$fillMix : uniforms.fillMix.value);
|
|
183
|
+
}, [props.fillMix]);
|
|
184
|
+
React.useEffect(() => {
|
|
185
|
+
var _props$strokeOpacity;
|
|
186
|
+
return void (uniforms.strokeOpacity.value = (_props$strokeOpacity = props.strokeOpacity) !== null && _props$strokeOpacity !== void 0 ? _props$strokeOpacity : uniforms.strokeOpacity.value);
|
|
187
|
+
}, [props.strokeOpacity]);
|
|
188
|
+
React.useEffect(() => {
|
|
189
|
+
var _props$thickness;
|
|
190
|
+
return void (uniforms.thickness.value = (_props$thickness = props.thickness) !== null && _props$thickness !== void 0 ? _props$thickness : uniforms.thickness.value);
|
|
191
|
+
}, [props.thickness]);
|
|
192
|
+
React.useEffect(() => void (uniforms.colorBackfaces.value = !!props.colorBackfaces), [props.colorBackfaces]);
|
|
193
|
+
React.useEffect(() => void (uniforms.dash.value = !!props.dash), [props.dash]);
|
|
194
|
+
React.useEffect(() => void (uniforms.dashInvert.value = !!props.dashInvert), [props.dashInvert]);
|
|
195
|
+
React.useEffect(() => {
|
|
196
|
+
var _props$dashRepeats;
|
|
197
|
+
return void (uniforms.dashRepeats.value = (_props$dashRepeats = props.dashRepeats) !== null && _props$dashRepeats !== void 0 ? _props$dashRepeats : uniforms.dashRepeats.value);
|
|
198
|
+
}, [props.dashRepeats]);
|
|
199
|
+
React.useEffect(() => {
|
|
200
|
+
var _props$dashLength;
|
|
201
|
+
return void (uniforms.dashLength.value = (_props$dashLength = props.dashLength) !== null && _props$dashLength !== void 0 ? _props$dashLength : uniforms.dashLength.value);
|
|
202
|
+
}, [props.dashLength]);
|
|
203
|
+
React.useEffect(() => void (uniforms.squeeze.value = !!props.squeeze), [props.squeeze]);
|
|
204
|
+
React.useEffect(() => {
|
|
205
|
+
var _props$squeezeMin;
|
|
206
|
+
return void (uniforms.squeezeMin.value = (_props$squeezeMin = props.squeezeMin) !== null && _props$squeezeMin !== void 0 ? _props$squeezeMin : uniforms.squeezeMin.value);
|
|
207
|
+
}, [props.squeezeMin]);
|
|
208
|
+
React.useEffect(() => {
|
|
209
|
+
var _props$squeezeMax;
|
|
210
|
+
return void (uniforms.squeezeMax.value = (_props$squeezeMax = props.squeezeMax) !== null && _props$squeezeMax !== void 0 ? _props$squeezeMax : uniforms.squeezeMax.value);
|
|
211
|
+
}, [props.squeezeMax]);
|
|
212
|
+
React.useEffect(() => void (uniforms.stroke.value = props.stroke ? new THREE.Color(props.stroke) : uniforms.stroke.value), [props.stroke]);
|
|
213
|
+
React.useEffect(() => void (uniforms.fill.value = props.fill ? new THREE.Color(props.fill) : uniforms.fill.value), [props.fill]);
|
|
214
|
+
React.useEffect(() => void (uniforms.backfaceStroke.value = props.backfaceStroke ? new THREE.Color(props.backfaceStroke) : uniforms.backfaceStroke.value), [props.backfaceStroke]);
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
export { WireframeMaterial, WireframeMaterialShaders, setWireframeOverride, useWireframeUniforms };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("../core/Billboard.cjs.js"),r=require("../core/ScreenSpace.cjs.js"),s=require("../core/ScreenSizer.cjs.js"),o=require("../core/QuadraticBezierLine.cjs.js"),t=require("../core/CubicBezierLine.cjs.js"),i=require("../core/CatmullRomLine.cjs.js"),a=require("../core/Line.cjs.js"),c=require("../core/PositionalAudio.cjs.js"),u=require("../core/Text.cjs.js"),n=require("../core/Text3D.cjs.js"),p=require("../core/Effects.cjs.js"),j=require("../core/GradientTexture.cjs.js"),x=require("../core/Image.cjs.js"),l=require("../core/Edges.cjs.js"),d=require("../core/Outlines.cjs.js"),q=require("../core/Trail.cjs.js"),m=require("../core/Sampler.cjs.js"),h=require("../core/ComputedAttribute.cjs.js"),C=require("../core/Clone.cjs.js"),M=require("../core/MarchingCubes.cjs.js"),S=require("../core/Decal.cjs.js"),T=require("../core/Svg.cjs.js"),b=require("../core/Gltf.cjs.js"),P=require("../core/AsciiRenderer.cjs.js"),f=require("../core/Splat.cjs.js"),g=require("../core/OrthographicCamera.cjs.js"),B=require("../core/PerspectiveCamera.cjs.js"),v=require("../core/CubeCamera.cjs.js"),A=require("../core/DeviceOrientationControls.cjs.js"),F=require("../core/FlyControls.cjs.js"),G=require("../core/MapControls.cjs.js"),L=require("../core/OrbitControls.cjs.js"),D=require("../core/TrackballControls.cjs.js"),E=require("../core/ArcballControls.cjs.js"),R=require("../core/TransformControls.cjs.js"),k=require("../core/PointerLockControls.cjs.js"),I=require("../core/FirstPersonControls.cjs.js"),w=require("../core/CameraControls.cjs.js"),z=require("camera-controls"),y=require("../core/MotionPathControls.cjs.js"),O=require("../core/GizmoHelper.cjs.js"),H=require("../core/GizmoViewcube.cjs.js"),V=require("../core/GizmoViewport.cjs.js"),W=require("../core/Grid.cjs.js"),K=require("../core/CubeTexture.cjs.js"),Q=require("../core/Fbx.cjs.js"),N=require("../core/Ktx2.cjs.js"),U=require("../core/Progress.cjs.js"),X=require("../core/Texture.cjs.js"),_=require("../core/VideoTexture.cjs.js"),J=require("../core/useFont.cjs.js"),Y=require("../core/useSpriteLoader.cjs.js"),Z=require("../core/Helper.cjs.js"),$=require("../core/Stats.cjs.js"),ee=require("../core/StatsGl.cjs.js"),re=require("../core/useDepthBuffer.cjs.js"),se=require("../core/useAspect.cjs.js"),oe=require("../core/useCamera.cjs.js"),te=require("../core/DetectGPU.cjs.js"),ie=require("../core/Bvh.cjs.js"),ae=require("../core/useContextBridge.cjs.js"),ce=require("../core/useAnimations.cjs.js"),ue=require("../core/Fbo.cjs.js"),ne=require("../core/useIntersect.cjs.js"),pe=require("../core/useBoxProjectedEnv.cjs.js"),je=require("../core/BBAnchor.cjs.js"),xe=require("../core/TrailTexture.cjs.js"),le=require("../core/Example.cjs.js"),de=require("../core/SpriteAnimator.cjs.js"),qe=require("../core/CurveModifier.cjs.js"),me=require("../core/MeshDistortMaterial.cjs.js"),he=require("../core/MeshWobbleMaterial.cjs.js"),Ce=require("../core/MeshReflectorMaterial.cjs.js"),Me=require("../core/MeshRefractionMaterial.cjs.js"),Se=require("../core/MeshTransmissionMaterial.cjs.js"),Te=require("../core/MeshDiscardMaterial.cjs.js"),be=require("../core/MultiMaterial.cjs.js"),Pe=require("../core/PointMaterial.cjs.js"),fe=require("../core/shaderMaterial.cjs.js"),ge=require("../core/softShadows.cjs.js"),Be=require("../core/shapes.cjs.js"),ve=require("../core/RoundedBox.cjs.js"),Ae=require("../core/ScreenQuad.cjs.js"),Fe=require("../core/Center.cjs.js"),Ge=require("../core/Resize.cjs.js"),Le=require("../core/Bounds.cjs.js"),De=require("../core/CameraShake.cjs.js"),Ee=require("../core/Float.cjs.js"),Re=require("../core/Stage.cjs.js"),ke=require("../core/Backdrop.cjs.js"),Ie=require("../core/Shadow.cjs.js"),we=require("../core/Caustics.cjs.js"),ze=require("../core/ContactShadows.cjs.js"),ye=require("../core/AccumulativeShadows.cjs.js"),Oe=require("../core/SpotLight.cjs.js"),He=require("../core/Environment.cjs.js"),Ve=require("../core/Lightformer.cjs.js"),We=require("../core/Sky.cjs.js"),Ke=require("../core/Stars.cjs.js"),Qe=require("../core/Cloud.cjs.js"),Ne=require("../core/Sparkles.cjs.js"),Ue=require("../core/useEnvironment.cjs.js"),Xe=require("../core/MatcapTexture.cjs.js"),_e=require("../core/NormalTexture.cjs.js"),Je=require("../core/Wireframe.cjs.js"),Ye=require("../core/ShadowAlpha.cjs.js"),Ze=require("../core/Points.cjs.js"),$e=require("../core/Instances.cjs.js"),er=require("../core/Segments.cjs.js"),rr=require("../core/Detailed.cjs.js"),sr=require("../core/Preload.cjs.js"),or=require("../core/BakeShadows.cjs.js"),tr=require("../core/meshBounds.cjs.js"),ir=require("../core/AdaptiveDpr.cjs.js"),ar=require("../core/AdaptiveEvents.cjs.js"),cr=require("../core/PerformanceMonitor.cjs.js"),ur=require("../core/RenderTexture.cjs.js"),nr=require("../core/RenderCubeTexture.cjs.js"),pr=require("../core/Mask.cjs.js"),jr=require("../core/Hud.cjs.js"),xr=require("../core/Fisheye.cjs.js"),lr=require("../core/MeshPortalMaterial.cjs.js"),dr=require("../core/calculateScaleFactor.cjs.js");function qr(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}require("@babel/runtime/helpers/extends"),require("react"),require("three"),require("@react-three/fiber"),require("three-stdlib"),require("troika-three-text"),require("suspend-react"),require("../helpers/constants.cjs.js"),require("meshline"),require("maath"),require("zustand"),require("hls.js"),require("stats.js"),require("../helpers/useEffectfulState.cjs.js"),require("stats-gl"),require("detect-gpu"),require("three-mesh-bvh"),require("../helpers/deprecated.cjs.js"),require("../materials/BlurPass.cjs.js"),require("../materials/ConvolutionMaterial.cjs.js"),require("../materials/MeshReflectorMaterial.cjs.js"),require("../materials/MeshRefractionMaterial.cjs.js"),require("../materials/DiscardMaterial.cjs.js"),require("@monogrid/gainmap-js"),require("../helpers/environment-assets.cjs.js"),require("../materials/SpotLightMaterial.cjs.js"),require("../materials/WireframeMaterial.cjs.js");var mr=qr(z);exports.Billboard=e.Billboard,exports.ScreenSpace=r.ScreenSpace,exports.ScreenSizer=s.ScreenSizer,exports.QuadraticBezierLine=o.QuadraticBezierLine,exports.CubicBezierLine=t.CubicBezierLine,exports.CatmullRomLine=i.CatmullRomLine,exports.Line=a.Line,exports.PositionalAudio=c.PositionalAudio,exports.Text=u.Text,exports.Text3D=n.Text3D,exports.Effects=p.Effects,exports.isWebGL2Available=p.isWebGL2Available,exports.GradientTexture=j.GradientTexture,exports.GradientType=j.GradientType,exports.Image=x.Image,exports.Edges=l.Edges,exports.Outlines=d.Outlines,exports.Trail=q.Trail,exports.useTrail=q.useTrail,exports.Sampler=m.Sampler,exports.useSurfaceSampler=m.useSurfaceSampler,exports.ComputedAttribute=h.ComputedAttribute,exports.Clone=C.Clone,exports.MarchingCube=M.MarchingCube,exports.MarchingCubes=M.MarchingCubes,exports.MarchingPlane=M.MarchingPlane,exports.Decal=S.Decal,exports.Svg=T.Svg,exports.Gltf=b.Gltf,exports.useGLTF=b.useGLTF,exports.AsciiRenderer=P.AsciiRenderer,exports.Splat=f.Splat,exports.OrthographicCamera=g.OrthographicCamera,exports.PerspectiveCamera=B.PerspectiveCamera,exports.CubeCamera=v.CubeCamera,exports.useCubeCamera=v.useCubeCamera,exports.DeviceOrientationControls=A.DeviceOrientationControls,exports.FlyControls=F.FlyControls,exports.MapControls=G.MapControls,exports.OrbitControls=L.OrbitControls,exports.TrackballControls=D.TrackballControls,exports.ArcballControls=E.ArcballControls,exports.TransformControls=R.TransformControls,exports.PointerLockControls=k.PointerLockControls,exports.FirstPersonControls=I.FirstPersonControls,exports.CameraControls=w.CameraControls,Object.defineProperty(exports,"CameraControlsImpl",{enumerable:!0,get:function(){return mr.default}}),exports.MotionPathControls=y.MotionPathControls,exports.useMotion=y.useMotion,exports.GizmoHelper=O.GizmoHelper,exports.useGizmoContext=O.useGizmoContext,exports.GizmoViewcube=H.GizmoViewcube,exports.GizmoViewport=V.GizmoViewport,exports.Grid=W.Grid,exports.CubeTexture=K.CubeTexture,exports.useCubeTexture=K.useCubeTexture,exports.Fbx=Q.Fbx,exports.useFBX=Q.useFBX,exports.Ktx2=N.Ktx2,exports.useKTX2=N.useKTX2,exports.Progress=U.Progress,exports.useProgress=U.useProgress,exports.IsObject=X.IsObject,exports.Texture=X.Texture,exports.useTexture=X.useTexture,exports.VideoTexture=_.VideoTexture,exports.useVideoTexture=_.useVideoTexture,exports.useFont=J.useFont,exports.checkIfFrameIsEmpty=Y.checkIfFrameIsEmpty,exports.getFirstFrame=Y.getFirstFrame,exports.useSpriteLoader=Y.useSpriteLoader,exports.Helper=Z.Helper,exports.useHelper=Z.useHelper,exports.Stats=$.Stats,exports.StatsGl=ee.StatsGl,exports.useDepthBuffer=re.useDepthBuffer,exports.useAspect=se.useAspect,exports.useCamera=oe.useCamera,exports.DetectGPU=te.DetectGPU,exports.useDetectGPU=te.useDetectGPU,exports.Bvh=ie.Bvh,exports.useBVH=ie.useBVH,exports.useContextBridge=ae.useContextBridge,exports.useAnimations=ce.useAnimations,exports.Fbo=ue.Fbo,exports.useFBO=ue.useFBO,exports.useIntersect=ne.useIntersect,exports.useBoxProjectedEnv=pe.useBoxProjectedEnv,exports.BBAnchor=je.BBAnchor,exports.TrailTexture=xe.TrailTexture,exports.useTrailTexture=xe.useTrailTexture,exports.Example=le.Example,exports.SpriteAnimator=de.SpriteAnimator,exports.useSpriteAnimator=de.useSpriteAnimator,exports.CurveModifier=qe.CurveModifier,exports.MeshDistortMaterial=me.MeshDistortMaterial,exports.MeshWobbleMaterial=he.MeshWobbleMaterial,exports.MeshReflectorMaterial=Ce.MeshReflectorMaterial,exports.MeshRefractionMaterial=Me.MeshRefractionMaterial,exports.MeshTransmissionMaterial=Se.MeshTransmissionMaterial,exports.MeshDiscardMaterial=Te.MeshDiscardMaterial,exports.MultiMaterial=be.MultiMaterial,exports.PointMaterial=Pe.PointMaterial,exports.PointMaterialImpl=Pe.PointMaterialImpl,exports.shaderMaterial=fe.shaderMaterial,exports.SoftShadows=ge.SoftShadows,exports.Box=Be.Box,exports.Capsule=Be.Capsule,exports.Circle=Be.Circle,exports.Cone=Be.Cone,exports.Cylinder=Be.Cylinder,exports.Dodecahedron=Be.Dodecahedron,exports.Extrude=Be.Extrude,exports.Icosahedron=Be.Icosahedron,exports.Lathe=Be.Lathe,exports.Octahedron=Be.Octahedron,exports.Plane=Be.Plane,exports.Polyhedron=Be.Polyhedron,exports.Ring=Be.Ring,exports.Shape=Be.Shape,exports.Sphere=Be.Sphere,exports.Tetrahedron=Be.Tetrahedron,exports.Torus=Be.Torus,exports.TorusKnot=Be.TorusKnot,exports.Tube=Be.Tube,exports.RoundedBox=ve.RoundedBox,exports.RoundedBoxGeometry=ve.RoundedBoxGeometry,exports.ScreenQuad=Ae.ScreenQuad,exports.Center=Fe.Center,exports.Resize=Ge.Resize,exports.Bounds=Le.Bounds,exports.useBounds=Le.useBounds,exports.CameraShake=De.CameraShake,exports.Float=Ee.Float,exports.Stage=Re.Stage,exports.Backdrop=ke.Backdrop,exports.Shadow=Ie.Shadow,exports.Caustics=we.Caustics,exports.ContactShadows=ze.ContactShadows,exports.AccumulativeShadows=ye.AccumulativeShadows,exports.RandomizedLight=ye.RandomizedLight,exports.accumulativeContext=ye.accumulativeContext,exports.SpotLight=Oe.SpotLight,exports.SpotLightShadow=Oe.SpotLightShadow,exports.Environment=He.Environment,exports.EnvironmentCube=He.EnvironmentCube,exports.EnvironmentMap=He.EnvironmentMap,exports.EnvironmentPortal=He.EnvironmentPortal,exports.Lightformer=Ve.Lightformer,exports.Sky=We.Sky,exports.calcPosFromAngles=We.calcPosFromAngles,exports.Stars=Ke.Stars,exports.Cloud=Qe.Cloud,exports.CloudInstance=Qe.CloudInstance,exports.Clouds=Qe.Clouds,exports.Sparkles=Ne.Sparkles,exports.useEnvironment=Ue.useEnvironment,exports.MatcapTexture=Xe.MatcapTexture,exports.useMatcapTexture=Xe.useMatcapTexture,exports.NormalTexture=_e.NormalTexture,exports.useNormalTexture=_e.useNormalTexture,exports.Wireframe=Je.Wireframe,exports.ShadowAlpha=Ye.ShadowAlpha,exports.Point=Ze.Point,exports.Points=Ze.Points,exports.PointsBuffer=Ze.PointsBuffer,exports.PositionPoint=Ze.PositionPoint,exports.Instance=$e.Instance,exports.InstancedAttribute=$e.InstancedAttribute,exports.Instances=$e.Instances,exports.Merged=$e.Merged,exports.PositionMesh=$e.PositionMesh,exports.createInstances=$e.createInstances,exports.Segment=er.Segment,exports.SegmentObject=er.SegmentObject,exports.Segments=er.Segments,exports.Detailed=rr.Detailed,exports.Preload=sr.Preload,exports.BakeShadows=or.BakeShadows,exports.meshBounds=tr.meshBounds,exports.AdaptiveDpr=ir.AdaptiveDpr,exports.AdaptiveEvents=ar.AdaptiveEvents,exports.PerformanceMonitor=cr.PerformanceMonitor,exports.usePerformanceMonitor=cr.usePerformanceMonitor,exports.RenderTexture=ur.RenderTexture,exports.RenderCubeTexture=nr.RenderCubeTexture,exports.Mask=pr.Mask,exports.useMask=pr.useMask,exports.Hud=jr.Hud,exports.Fisheye=xr.Fisheye,exports.MeshPortalMaterial=lr.MeshPortalMaterial,exports.calculateScaleFactor=dr.calculateScaleFactor;
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
export * from '../core';
|
package/native/index.js
ADDED
|
@@ -0,0 +1,150 @@
|
|
|
1
|
+
export { Billboard } from '../core/Billboard.js';
|
|
2
|
+
export { ScreenSpace } from '../core/ScreenSpace.js';
|
|
3
|
+
export { ScreenSizer } from '../core/ScreenSizer.js';
|
|
4
|
+
export { QuadraticBezierLine } from '../core/QuadraticBezierLine.js';
|
|
5
|
+
export { CubicBezierLine } from '../core/CubicBezierLine.js';
|
|
6
|
+
export { CatmullRomLine } from '../core/CatmullRomLine.js';
|
|
7
|
+
export { Line } from '../core/Line.js';
|
|
8
|
+
export { PositionalAudio } from '../core/PositionalAudio.js';
|
|
9
|
+
export { Text } from '../core/Text.js';
|
|
10
|
+
export { Text3D } from '../core/Text3D.js';
|
|
11
|
+
export { Effects, isWebGL2Available } from '../core/Effects.js';
|
|
12
|
+
export { GradientTexture, GradientType } from '../core/GradientTexture.js';
|
|
13
|
+
export { Image } from '../core/Image.js';
|
|
14
|
+
export { Edges } from '../core/Edges.js';
|
|
15
|
+
export { Outlines } from '../core/Outlines.js';
|
|
16
|
+
export { Trail, useTrail } from '../core/Trail.js';
|
|
17
|
+
export { Sampler, useSurfaceSampler } from '../core/Sampler.js';
|
|
18
|
+
export { ComputedAttribute } from '../core/ComputedAttribute.js';
|
|
19
|
+
export { Clone } from '../core/Clone.js';
|
|
20
|
+
export { MarchingCube, MarchingCubes, MarchingPlane } from '../core/MarchingCubes.js';
|
|
21
|
+
export { Decal } from '../core/Decal.js';
|
|
22
|
+
export { Svg } from '../core/Svg.js';
|
|
23
|
+
export { Gltf, useGLTF } from '../core/Gltf.js';
|
|
24
|
+
export { AsciiRenderer } from '../core/AsciiRenderer.js';
|
|
25
|
+
export { Splat } from '../core/Splat.js';
|
|
26
|
+
export { OrthographicCamera } from '../core/OrthographicCamera.js';
|
|
27
|
+
export { PerspectiveCamera } from '../core/PerspectiveCamera.js';
|
|
28
|
+
export { CubeCamera, useCubeCamera } from '../core/CubeCamera.js';
|
|
29
|
+
export { DeviceOrientationControls } from '../core/DeviceOrientationControls.js';
|
|
30
|
+
export { FlyControls } from '../core/FlyControls.js';
|
|
31
|
+
export { MapControls } from '../core/MapControls.js';
|
|
32
|
+
export { OrbitControls } from '../core/OrbitControls.js';
|
|
33
|
+
export { TrackballControls } from '../core/TrackballControls.js';
|
|
34
|
+
export { ArcballControls } from '../core/ArcballControls.js';
|
|
35
|
+
export { TransformControls } from '../core/TransformControls.js';
|
|
36
|
+
export { PointerLockControls } from '../core/PointerLockControls.js';
|
|
37
|
+
export { FirstPersonControls } from '../core/FirstPersonControls.js';
|
|
38
|
+
export { CameraControls } from '../core/CameraControls.js';
|
|
39
|
+
export { default as CameraControlsImpl } from 'camera-controls';
|
|
40
|
+
export { MotionPathControls, useMotion } from '../core/MotionPathControls.js';
|
|
41
|
+
export { GizmoHelper, useGizmoContext } from '../core/GizmoHelper.js';
|
|
42
|
+
export { GizmoViewcube } from '../core/GizmoViewcube.js';
|
|
43
|
+
export { GizmoViewport } from '../core/GizmoViewport.js';
|
|
44
|
+
export { Grid } from '../core/Grid.js';
|
|
45
|
+
export { CubeTexture, useCubeTexture } from '../core/CubeTexture.js';
|
|
46
|
+
export { Fbx, useFBX } from '../core/Fbx.js';
|
|
47
|
+
export { Ktx2, useKTX2 } from '../core/Ktx2.js';
|
|
48
|
+
export { Progress, useProgress } from '../core/Progress.js';
|
|
49
|
+
export { IsObject, Texture, useTexture } from '../core/Texture.js';
|
|
50
|
+
export { VideoTexture, useVideoTexture } from '../core/VideoTexture.js';
|
|
51
|
+
export { useFont } from '../core/useFont.js';
|
|
52
|
+
export { checkIfFrameIsEmpty, getFirstFrame, useSpriteLoader } from '../core/useSpriteLoader.js';
|
|
53
|
+
export { Helper, useHelper } from '../core/Helper.js';
|
|
54
|
+
export { Stats } from '../core/Stats.js';
|
|
55
|
+
export { StatsGl } from '../core/StatsGl.js';
|
|
56
|
+
export { useDepthBuffer } from '../core/useDepthBuffer.js';
|
|
57
|
+
export { useAspect } from '../core/useAspect.js';
|
|
58
|
+
export { useCamera } from '../core/useCamera.js';
|
|
59
|
+
export { DetectGPU, useDetectGPU } from '../core/DetectGPU.js';
|
|
60
|
+
export { Bvh, useBVH } from '../core/Bvh.js';
|
|
61
|
+
export { useContextBridge } from '../core/useContextBridge.js';
|
|
62
|
+
export { useAnimations } from '../core/useAnimations.js';
|
|
63
|
+
export { Fbo, useFBO } from '../core/Fbo.js';
|
|
64
|
+
export { useIntersect } from '../core/useIntersect.js';
|
|
65
|
+
export { useBoxProjectedEnv } from '../core/useBoxProjectedEnv.js';
|
|
66
|
+
export { BBAnchor } from '../core/BBAnchor.js';
|
|
67
|
+
export { TrailTexture, useTrailTexture } from '../core/TrailTexture.js';
|
|
68
|
+
export { Example } from '../core/Example.js';
|
|
69
|
+
export { SpriteAnimator, useSpriteAnimator } from '../core/SpriteAnimator.js';
|
|
70
|
+
export { CurveModifier } from '../core/CurveModifier.js';
|
|
71
|
+
export { MeshDistortMaterial } from '../core/MeshDistortMaterial.js';
|
|
72
|
+
export { MeshWobbleMaterial } from '../core/MeshWobbleMaterial.js';
|
|
73
|
+
export { MeshReflectorMaterial } from '../core/MeshReflectorMaterial.js';
|
|
74
|
+
export { MeshRefractionMaterial } from '../core/MeshRefractionMaterial.js';
|
|
75
|
+
export { MeshTransmissionMaterial } from '../core/MeshTransmissionMaterial.js';
|
|
76
|
+
export { MeshDiscardMaterial } from '../core/MeshDiscardMaterial.js';
|
|
77
|
+
export { MultiMaterial } from '../core/MultiMaterial.js';
|
|
78
|
+
export { PointMaterial, PointMaterialImpl } from '../core/PointMaterial.js';
|
|
79
|
+
export { shaderMaterial } from '../core/shaderMaterial.js';
|
|
80
|
+
export { SoftShadows } from '../core/softShadows.js';
|
|
81
|
+
export { Box, Capsule, Circle, Cone, Cylinder, Dodecahedron, Extrude, Icosahedron, Lathe, Octahedron, Plane, Polyhedron, Ring, Shape, Sphere, Tetrahedron, Torus, TorusKnot, Tube } from '../core/shapes.js';
|
|
82
|
+
export { RoundedBox, RoundedBoxGeometry } from '../core/RoundedBox.js';
|
|
83
|
+
export { ScreenQuad } from '../core/ScreenQuad.js';
|
|
84
|
+
export { Center } from '../core/Center.js';
|
|
85
|
+
export { Resize } from '../core/Resize.js';
|
|
86
|
+
export { Bounds, useBounds } from '../core/Bounds.js';
|
|
87
|
+
export { CameraShake } from '../core/CameraShake.js';
|
|
88
|
+
export { Float } from '../core/Float.js';
|
|
89
|
+
export { Stage } from '../core/Stage.js';
|
|
90
|
+
export { Backdrop } from '../core/Backdrop.js';
|
|
91
|
+
export { Shadow } from '../core/Shadow.js';
|
|
92
|
+
export { Caustics } from '../core/Caustics.js';
|
|
93
|
+
export { ContactShadows } from '../core/ContactShadows.js';
|
|
94
|
+
export { AccumulativeShadows, RandomizedLight, accumulativeContext } from '../core/AccumulativeShadows.js';
|
|
95
|
+
export { SpotLight, SpotLightShadow } from '../core/SpotLight.js';
|
|
96
|
+
export { Environment, EnvironmentCube, EnvironmentMap, EnvironmentPortal } from '../core/Environment.js';
|
|
97
|
+
export { Lightformer } from '../core/Lightformer.js';
|
|
98
|
+
export { Sky, calcPosFromAngles } from '../core/Sky.js';
|
|
99
|
+
export { Stars } from '../core/Stars.js';
|
|
100
|
+
export { Cloud, CloudInstance, Clouds } from '../core/Cloud.js';
|
|
101
|
+
export { Sparkles } from '../core/Sparkles.js';
|
|
102
|
+
export { useEnvironment } from '../core/useEnvironment.js';
|
|
103
|
+
export { MatcapTexture, useMatcapTexture } from '../core/MatcapTexture.js';
|
|
104
|
+
export { NormalTexture, useNormalTexture } from '../core/NormalTexture.js';
|
|
105
|
+
export { Wireframe } from '../core/Wireframe.js';
|
|
106
|
+
export { ShadowAlpha } from '../core/ShadowAlpha.js';
|
|
107
|
+
export { Point, Points, PointsBuffer, PositionPoint } from '../core/Points.js';
|
|
108
|
+
export { Instance, InstancedAttribute, Instances, Merged, PositionMesh, createInstances } from '../core/Instances.js';
|
|
109
|
+
export { Segment, SegmentObject, Segments } from '../core/Segments.js';
|
|
110
|
+
export { Detailed } from '../core/Detailed.js';
|
|
111
|
+
export { Preload } from '../core/Preload.js';
|
|
112
|
+
export { BakeShadows } from '../core/BakeShadows.js';
|
|
113
|
+
export { meshBounds } from '../core/meshBounds.js';
|
|
114
|
+
export { AdaptiveDpr } from '../core/AdaptiveDpr.js';
|
|
115
|
+
export { AdaptiveEvents } from '../core/AdaptiveEvents.js';
|
|
116
|
+
export { PerformanceMonitor, usePerformanceMonitor } from '../core/PerformanceMonitor.js';
|
|
117
|
+
export { RenderTexture } from '../core/RenderTexture.js';
|
|
118
|
+
export { RenderCubeTexture } from '../core/RenderCubeTexture.js';
|
|
119
|
+
export { Mask, useMask } from '../core/Mask.js';
|
|
120
|
+
export { Hud } from '../core/Hud.js';
|
|
121
|
+
export { Fisheye } from '../core/Fisheye.js';
|
|
122
|
+
export { MeshPortalMaterial } from '../core/MeshPortalMaterial.js';
|
|
123
|
+
export { calculateScaleFactor } from '../core/calculateScaleFactor.js';
|
|
124
|
+
import '@babel/runtime/helpers/esm/extends';
|
|
125
|
+
import 'react';
|
|
126
|
+
import 'three';
|
|
127
|
+
import '@react-three/fiber';
|
|
128
|
+
import 'three-stdlib';
|
|
129
|
+
import 'troika-three-text';
|
|
130
|
+
import 'suspend-react';
|
|
131
|
+
import '../helpers/constants.js';
|
|
132
|
+
import 'meshline';
|
|
133
|
+
import 'maath';
|
|
134
|
+
import 'zustand';
|
|
135
|
+
import 'hls.js';
|
|
136
|
+
import 'stats.js';
|
|
137
|
+
import '../helpers/useEffectfulState.js';
|
|
138
|
+
import 'stats-gl';
|
|
139
|
+
import 'detect-gpu';
|
|
140
|
+
import 'three-mesh-bvh';
|
|
141
|
+
import '../helpers/deprecated.js';
|
|
142
|
+
import '../materials/BlurPass.js';
|
|
143
|
+
import '../materials/ConvolutionMaterial.js';
|
|
144
|
+
import '../materials/MeshReflectorMaterial.js';
|
|
145
|
+
import '../materials/MeshRefractionMaterial.js';
|
|
146
|
+
import '../materials/DiscardMaterial.js';
|
|
147
|
+
import '@monogrid/gainmap-js';
|
|
148
|
+
import '../helpers/environment-assets.js';
|
|
149
|
+
import '../materials/SpotLightMaterial.js';
|
|
150
|
+
import '../materials/WireframeMaterial.js';
|
package/package.json
ADDED
|
@@ -0,0 +1,83 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@ohos-ports/react-three-drei",
|
|
3
|
+
"version": "10.7.7-beta.0",
|
|
4
|
+
"private": false,
|
|
5
|
+
"description": "useful add-ons for react-three-fiber",
|
|
6
|
+
"keywords": [
|
|
7
|
+
"react",
|
|
8
|
+
"three",
|
|
9
|
+
"threejs",
|
|
10
|
+
"react-three-fiber"
|
|
11
|
+
],
|
|
12
|
+
"repository": {
|
|
13
|
+
"type": "git",
|
|
14
|
+
"url": "git+https://github.com/ohos-ports/ohos-ports.git",
|
|
15
|
+
"directory": "ports/react-three-drei/10.7.7"
|
|
16
|
+
},
|
|
17
|
+
"license": "MIT",
|
|
18
|
+
"bugs": {
|
|
19
|
+
"url": "https://github.com/ohos-ports/ohos-ports/issues"
|
|
20
|
+
},
|
|
21
|
+
"homepage": "https://github.com/ohos-ports/ohos-ports/tree/main/ports/react-three-drei/10.7.7",
|
|
22
|
+
"maintainers": [
|
|
23
|
+
"Paul Henschel (https://github.com/drcmda)",
|
|
24
|
+
"Gianmarco Simone (https://github.com/gsimone)",
|
|
25
|
+
"Marco Perego (https://github.com/emmelleppi)",
|
|
26
|
+
"Josh Ellis (https://github.com/joshuaellis)"
|
|
27
|
+
],
|
|
28
|
+
"main": "index.cjs.js",
|
|
29
|
+
"module": "index.js",
|
|
30
|
+
"types": "index.d.ts",
|
|
31
|
+
"react-native": "native/index.cjs.js",
|
|
32
|
+
"sideEffects": false,
|
|
33
|
+
"dependencies": {
|
|
34
|
+
"@babel/runtime": "^7.26.0",
|
|
35
|
+
"@mediapipe/tasks-vision": "0.10.17",
|
|
36
|
+
"@monogrid/gainmap-js": "^3.0.6",
|
|
37
|
+
"@use-gesture/react": "^10.3.1",
|
|
38
|
+
"camera-controls": "^3.1.0",
|
|
39
|
+
"cross-env": "^7.0.3",
|
|
40
|
+
"detect-gpu": "^5.0.56",
|
|
41
|
+
"glsl-noise": "^0.0.0",
|
|
42
|
+
"hls.js": "^1.5.17",
|
|
43
|
+
"maath": "^0.10.8",
|
|
44
|
+
"meshline": "^3.3.1",
|
|
45
|
+
"stats-gl": "^2.2.8",
|
|
46
|
+
"stats.js": "^0.17.0",
|
|
47
|
+
"suspend-react": "^0.1.3",
|
|
48
|
+
"three-mesh-bvh": "^0.8.3",
|
|
49
|
+
"three-stdlib": "^2.35.6",
|
|
50
|
+
"troika-three-text": "^0.52.4",
|
|
51
|
+
"tunnel-rat": "^0.1.2",
|
|
52
|
+
"use-sync-external-store": "^1.4.0",
|
|
53
|
+
"utility-types": "^3.11.0",
|
|
54
|
+
"zustand": "^5.0.1"
|
|
55
|
+
},
|
|
56
|
+
"peerDependencies": {
|
|
57
|
+
"@react-three/fiber": "^9.0.0",
|
|
58
|
+
"react": "^19",
|
|
59
|
+
"react-dom": "^19",
|
|
60
|
+
"@ohos-ports/three": "^0.185.1-beta.0"
|
|
61
|
+
},
|
|
62
|
+
"peerDependenciesMeta": {
|
|
63
|
+
"react-dom": {
|
|
64
|
+
"optional": true
|
|
65
|
+
}
|
|
66
|
+
},
|
|
67
|
+
"packageManager": "yarn@4.3.1",
|
|
68
|
+
"files": [
|
|
69
|
+
"core",
|
|
70
|
+
"helpers",
|
|
71
|
+
"materials",
|
|
72
|
+
"native",
|
|
73
|
+
"web",
|
|
74
|
+
"index.js",
|
|
75
|
+
"index.cjs.js",
|
|
76
|
+
"index.d.ts",
|
|
77
|
+
"README.md",
|
|
78
|
+
"LICENSE"
|
|
79
|
+
],
|
|
80
|
+
"publishConfig": {
|
|
81
|
+
"access": "public"
|
|
82
|
+
}
|
|
83
|
+
}
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),t=require("@react-three/fiber");function n(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(n){if("default"!==n){var r=Object.getOwnPropertyDescriptor(e,n);Object.defineProperty(t,n,r.get?r:{enumerable:!0,get:function(){return e[n]}})}})),t.default=e,Object.freeze(t)}var r=n(e);exports.CycleRaycast=function({onChanged:e,portal:n,preventDefault:o=!0,scroll:l=!0,keyCode:u=9}){const c=r.useRef(0),d=t.useThree((e=>e.setEvents)),i=t.useThree((e=>e.get)),a=t.useThree((e=>e.gl));return r.useEffect((()=>{var t;let r,s=[];const v=i().events.filter,f=null!==(t=null==n?void 0:n.current)&&void 0!==t?t:a.domElement.parentNode,h=()=>f&&e&&e(s,Math.round(c.current)%s.length);d({filter:(e,t)=>{let n=[...e];n.length===s.length&&s.every((e=>n.map((e=>e.object.uuid)).includes(e.object.uuid)))||(c.current=0,s=n,h()),v&&(n=v(n,t));for(let e=0;e<Math.round(c.current)%n.length;e++){const e=n.shift();n=[...n,e]}return n}});const m=e=>{var t,n;c.current=e(c.current),null==(t=i().events.handlers)||t.onPointerCancel(void 0),null==(n=i().events.handlers)||n.onPointerMove(r),h()},p=e=>{(e.keyCode||e.which)===u&&(o&&e.preventDefault(),s.length>1&&m((e=>e+1)))},g=e=>{o&&e.preventDefault();let t=0;e||(e=window.event),e.wheelDelta?t=e.wheelDelta/120:e.detail&&(t=-e.detail/3),s.length>1&&m((e=>Math.abs(e-t)))},b=e=>r=e;return document.addEventListener("pointermove",b,{passive:!0}),l&&document.addEventListener("wheel",g),void 0!==u&&document.addEventListener("keydown",p),()=>{d({filter:v}),void 0!==u&&document.removeEventListener("keydown",p),l&&document.removeEventListener("wheel",g),document.removeEventListener("pointermove",b)}}),[a,i,d,o,l,u]),null};
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
export type CycleRaycastProps = {
|
|
4
|
+
onChanged?: (hits: THREE.Intersection[], cycle: number) => null;
|
|
5
|
+
preventDefault?: boolean;
|
|
6
|
+
scroll?: boolean;
|
|
7
|
+
keyCode?: number;
|
|
8
|
+
portal?: React.RefObject<HTMLElement>;
|
|
9
|
+
};
|
|
10
|
+
export declare function CycleRaycast({ onChanged, portal, preventDefault, scroll, keyCode, }: CycleRaycastProps): null;
|
|
@@ -0,0 +1,93 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import { useThree } from '@react-three/fiber';
|
|
3
|
+
|
|
4
|
+
function CycleRaycast({
|
|
5
|
+
onChanged,
|
|
6
|
+
portal,
|
|
7
|
+
preventDefault = true,
|
|
8
|
+
scroll = true,
|
|
9
|
+
keyCode = 9
|
|
10
|
+
}) {
|
|
11
|
+
const cycle = React.useRef(0);
|
|
12
|
+
const setEvents = useThree(state => state.setEvents);
|
|
13
|
+
const get = useThree(state => state.get);
|
|
14
|
+
const gl = useThree(state => state.gl);
|
|
15
|
+
React.useEffect(() => {
|
|
16
|
+
var _portal$current;
|
|
17
|
+
let hits = [];
|
|
18
|
+
let lastEvent = undefined;
|
|
19
|
+
const prev = get().events.filter;
|
|
20
|
+
const target = (_portal$current = portal == null ? void 0 : portal.current) !== null && _portal$current !== void 0 ? _portal$current : gl.domElement.parentNode;
|
|
21
|
+
|
|
22
|
+
// Render custom status
|
|
23
|
+
const renderStatus = () => target && onChanged && onChanged(hits, Math.round(cycle.current) % hits.length);
|
|
24
|
+
|
|
25
|
+
// Overwrite the raycasters custom filter (this only exists in r3f)
|
|
26
|
+
setEvents({
|
|
27
|
+
filter: (intersections, state) => {
|
|
28
|
+
// Reset cycle when the intersections change
|
|
29
|
+
let clone = [...intersections];
|
|
30
|
+
if (clone.length !== hits.length || !hits.every(hit => clone.map(e => e.object.uuid).includes(hit.object.uuid))) {
|
|
31
|
+
cycle.current = 0;
|
|
32
|
+
hits = clone;
|
|
33
|
+
renderStatus();
|
|
34
|
+
}
|
|
35
|
+
// Run custom filter if there is one
|
|
36
|
+
if (prev) clone = prev(clone, state);
|
|
37
|
+
// Cycle through the actual raycast intersects
|
|
38
|
+
for (let i = 0; i < Math.round(cycle.current) % clone.length; i++) {
|
|
39
|
+
const first = clone.shift();
|
|
40
|
+
clone = [...clone, first];
|
|
41
|
+
}
|
|
42
|
+
return clone;
|
|
43
|
+
}
|
|
44
|
+
});
|
|
45
|
+
|
|
46
|
+
// Cycle, refresh events and render status
|
|
47
|
+
const refresh = fn => {
|
|
48
|
+
var _get$events$handlers, _get$events$handlers2;
|
|
49
|
+
cycle.current = fn(cycle.current);
|
|
50
|
+
// Cancel hovered elements and fake a pointer-move
|
|
51
|
+
(_get$events$handlers = get().events.handlers) == null || _get$events$handlers.onPointerCancel(undefined);
|
|
52
|
+
(_get$events$handlers2 = get().events.handlers) == null || _get$events$handlers2.onPointerMove(lastEvent);
|
|
53
|
+
renderStatus();
|
|
54
|
+
};
|
|
55
|
+
|
|
56
|
+
// Key events
|
|
57
|
+
const tabEvent = event => {
|
|
58
|
+
if ((event.keyCode || event.which) === keyCode) {
|
|
59
|
+
if (preventDefault) event.preventDefault();
|
|
60
|
+
if (hits.length > 1) refresh(current => current + 1);
|
|
61
|
+
}
|
|
62
|
+
};
|
|
63
|
+
|
|
64
|
+
// Wheel events
|
|
65
|
+
const wheelEvent = event => {
|
|
66
|
+
if (preventDefault) event.preventDefault();
|
|
67
|
+
let delta = 0;
|
|
68
|
+
if (!event) event = window.event;
|
|
69
|
+
if (event.wheelDelta) delta = event.wheelDelta / 120;else if (event.detail) delta = -event.detail / 3;
|
|
70
|
+
if (hits.length > 1) refresh(current => Math.abs(current - delta));
|
|
71
|
+
};
|
|
72
|
+
|
|
73
|
+
// Catch last move event and position custom status
|
|
74
|
+
const moveEvent = event => lastEvent = event;
|
|
75
|
+
document.addEventListener('pointermove', moveEvent, {
|
|
76
|
+
passive: true
|
|
77
|
+
});
|
|
78
|
+
if (scroll) document.addEventListener('wheel', wheelEvent);
|
|
79
|
+
if (keyCode !== undefined) document.addEventListener('keydown', tabEvent);
|
|
80
|
+
return () => {
|
|
81
|
+
// Clean up
|
|
82
|
+
setEvents({
|
|
83
|
+
filter: prev
|
|
84
|
+
});
|
|
85
|
+
if (keyCode !== undefined) document.removeEventListener('keydown', tabEvent);
|
|
86
|
+
if (scroll) document.removeEventListener('wheel', wheelEvent);
|
|
87
|
+
document.removeEventListener('pointermove', moveEvent);
|
|
88
|
+
};
|
|
89
|
+
}, [gl, get, setEvents, preventDefault, scroll, keyCode]);
|
|
90
|
+
return null;
|
|
91
|
+
}
|
|
92
|
+
|
|
93
|
+
export { CycleRaycast };
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("three"),n=require("@react-three/fiber"),a=require("@use-gesture/react");function o(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}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)}var c=o(e),u=i(r),s=i(t);const l=new s.Vector3,m=new s.Vector2,f=new s.Vector3,d=new s.Vector3,x=new s.Vector3,p=new s.Plane,y=u.forwardRef((({autoTransform:e=!0,matrix:r,axisLock:t,dragLimits:o,onHover:i,onDragStart:y,onDrag:g,onDragEnd:h,children:b,dragConfig:v,...w},D)=>{const M=n.useThree((e=>e.controls)),{camera:j,size:z,raycaster:P,invalidate:O}=n.useThree(),V=u.useRef(null),q=a.useGesture({onHover:({hovering:e})=>i&&i(null!=e&&e),onDragStart:({event:e})=>{M&&(M.enabled=!1);const{point:r}=e;V.current.matrix.decompose(l,new s.Quaternion,new s.Vector3),f.copy(r),d.copy(f).sub(l),y&&y(l),O()},onDrag:({xy:[r,n],intentional:a})=>{if(!a)return;const i=(r-z.left)/z.width*2-1,c=-(n-z.top)/z.height*2+1;if(m.set(i,c),P.setFromCamera(m,j),t)switch(t){case"x":x.set(1,0,0);break;case"y":x.set(0,1,0);break;case"z":x.set(0,0,1)}else j.getWorldDirection(x).negate();p.setFromNormalAndCoplanarPoint(x,f),P.ray.intersectPlane(p,f);const u=V.current.matrix.clone(),l=V.current.matrixWorld.clone(),y=new s.Vector3(f.x-d.x,f.y-d.y,f.z-d.z);if(o&&(y.x=o[0]?Math.max(Math.min(y.x,o[0][1]),o[0][0]):y.x,y.y=o[1]?Math.max(Math.min(y.y,o[1][1]),o[1][0]):y.y,y.z=o[2]?Math.max(Math.min(y.z,o[2][1]),o[2][0]):y.z),e){V.current.matrix.setPosition(y);const e=V.current.matrix.clone().multiply(u.invert()),r=V.current.matrix.clone().multiply(l.invert());g&&g(V.current.matrix,e,V.current.matrixWorld,r)}else{const e=(new s.Matrix4).copy(V.current.matrix);e.setPosition(y);const r=e.clone().multiply(u.invert()),t=e.clone().multiply(l.invert());g&&g(e,r,V.current.matrixWorld,t)}O()},onDragEnd:()=>{M&&(M.enabled=!0),h&&h(),O()}},{drag:{filterTaps:!0,threshold:1,..."object"==typeof v?v:{}}});return u.useImperativeHandle(D,(()=>V.current),[]),u.useLayoutEffect((()=>{r&&(V.current.matrix=r)}),[r]),u.createElement("group",c.default({ref:V},q(),{matrix:r,matrixAutoUpdate:!1},w),b)}));exports.DragControls=y;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
import * as React from 'react';
|
|
2
|
+
import * as THREE from 'three';
|
|
3
|
+
import { DragConfig } from '@use-gesture/react';
|
|
4
|
+
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
5
|
+
export type DragControlsProps = {
|
|
6
|
+
autoTransform?: boolean;
|
|
7
|
+
matrix?: THREE.Matrix4;
|
|
8
|
+
axisLock?: 'x' | 'y' | 'z';
|
|
9
|
+
dragLimits?: [[number, number] | undefined, [number, number] | undefined, [number, number] | undefined];
|
|
10
|
+
onHover?: (hovering: boolean) => void;
|
|
11
|
+
onDragStart?: (origin: THREE.Vector3) => void;
|
|
12
|
+
onDrag?: (localMatrix: THREE.Matrix4, deltaLocalMatrix: THREE.Matrix4, worldMatrix: THREE.Matrix4, deltaWorldMatrix: THREE.Matrix4) => void;
|
|
13
|
+
onDragEnd?: () => void;
|
|
14
|
+
children: React.ReactNode;
|
|
15
|
+
dragConfig?: DragConfig;
|
|
16
|
+
};
|
|
17
|
+
export declare const DragControls: ForwardRefComponent<DragControlsProps, THREE.Group>;
|