@react-three/drei 10.7.7 → 11.0.0-alpha.1
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/README.md +49 -758
- package/_chunks/hls.mjs +3 -0
- package/_chunks/libs/@mediapipe/tasks-vision.mjs +4781 -0
- package/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
- package/_chunks/libs/@use-gesture/core.mjs +1650 -0
- package/_chunks/libs/@use-gesture/react.mjs +207 -0
- package/_chunks/libs/camera-controls.mjs +2207 -0
- package/_chunks/libs/detect-gpu.mjs +515 -0
- package/_chunks/libs/hls.js.mjs +21925 -0
- package/_chunks/libs/maath.mjs +5200 -0
- package/_chunks/libs/stats-gl.mjs +301 -0
- package/_chunks/libs/stats.js.mjs +90 -0
- package/_chunks/libs/suspend-react.mjs +60 -0
- package/_chunks/libs/three.mjs +23169 -0
- package/_chunks/libs/tunnel-rat.mjs +458 -0
- package/_chunks/libs/zustand.mjs +104 -0
- package/_chunks/rolldown-runtime.mjs +47 -0
- package/_chunks/vision_bundle.mjs +3 -0
- package/core/_chunks/hls.mjs +3 -0
- package/core/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
- package/core/_chunks/libs/@use-gesture/core.mjs +1650 -0
- package/core/_chunks/libs/@use-gesture/react.mjs +207 -0
- package/core/_chunks/libs/detect-gpu.mjs +515 -0
- package/core/_chunks/libs/hls.js.mjs +21925 -0
- package/core/_chunks/libs/maath.mjs +5200 -0
- package/core/_chunks/libs/stats-gl.mjs +301 -0
- package/core/_chunks/libs/stats.js.mjs +90 -0
- package/core/_chunks/libs/suspend-react.mjs +60 -0
- package/core/_chunks/libs/three.mjs +22457 -0
- package/core/_chunks/libs/tunnel-rat.mjs +458 -0
- package/core/_chunks/libs/zustand.mjs +104 -0
- package/core/_chunks/rolldown-runtime.mjs +47 -0
- package/core/core/index.d.mts +2232 -0
- package/core/core/index.mjs +11082 -0
- package/experimental/_chunks/libs/three.mjs +15386 -0
- package/experimental/experimental/index.d.mts +253 -0
- package/experimental/experimental/index.mjs +434 -0
- package/external/_chunks/hls.mjs +3 -0
- package/external/_chunks/libs/@mediapipe/tasks-vision.mjs +4781 -0
- package/external/_chunks/libs/camera-controls.mjs +2207 -0
- package/external/_chunks/libs/hls.js.mjs +21925 -0
- package/external/_chunks/libs/maath.mjs +5200 -0
- package/external/_chunks/libs/suspend-react.mjs +58 -0
- package/external/_chunks/libs/three.mjs +15387 -0
- package/external/_chunks/rolldown-runtime.mjs +32 -0
- package/external/_chunks/vision_bundle.mjs +3 -0
- package/external/external/index.d.mts +499 -0
- package/external/external/index.mjs +9422 -0
- package/index.d.mts +2567 -0
- package/index.mjs +20571 -0
- package/legacy/_chunks/hls.mjs +3 -0
- package/legacy/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
- package/legacy/_chunks/libs/@use-gesture/core.mjs +1650 -0
- package/legacy/_chunks/libs/@use-gesture/react.mjs +207 -0
- package/legacy/_chunks/libs/bidi-js.mjs +675 -0
- package/legacy/_chunks/libs/detect-gpu.mjs +515 -0
- package/legacy/_chunks/libs/hls.js.mjs +21925 -0
- package/legacy/_chunks/libs/maath.mjs +5200 -0
- package/legacy/_chunks/libs/stats-gl.mjs +301 -0
- package/legacy/_chunks/libs/stats.js.mjs +90 -0
- package/legacy/_chunks/libs/suspend-react.mjs +60 -0
- package/legacy/_chunks/libs/three.mjs +26062 -0
- package/legacy/_chunks/libs/troika-three-text.mjs +6494 -0
- package/legacy/_chunks/libs/tunnel-rat.mjs +458 -0
- package/legacy/_chunks/libs/zustand.mjs +104 -0
- package/legacy/_chunks/rolldown-runtime.mjs +47 -0
- package/legacy/legacy/index.d.mts +2788 -0
- package/legacy/legacy/index.mjs +14984 -0
- package/native/_chunks/hls.mjs +3 -0
- package/native/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
- package/native/_chunks/libs/@use-gesture/core.mjs +1650 -0
- package/native/_chunks/libs/@use-gesture/react.mjs +207 -0
- package/native/_chunks/libs/detect-gpu.mjs +515 -0
- package/native/_chunks/libs/hls.js.mjs +21925 -0
- package/native/_chunks/libs/maath.mjs +5200 -0
- package/native/_chunks/libs/stats-gl.mjs +301 -0
- package/native/_chunks/libs/stats.js.mjs +90 -0
- package/native/_chunks/libs/suspend-react.mjs +60 -0
- package/native/_chunks/libs/three.mjs +22592 -0
- package/native/_chunks/libs/tunnel-rat.mjs +458 -0
- package/native/_chunks/libs/zustand.mjs +104 -0
- package/native/_chunks/rolldown-runtime.mjs +47 -0
- package/native/native/index.d.mts +3168 -0
- package/native/native/index.mjs +14863 -0
- package/package.json +41 -10
- package/webgpu/_chunks/hls.mjs +3 -0
- package/webgpu/_chunks/libs/@monogrid/gainmap-js.mjs +1137 -0
- package/webgpu/_chunks/libs/@use-gesture/core.mjs +1650 -0
- package/webgpu/_chunks/libs/@use-gesture/react.mjs +207 -0
- package/webgpu/_chunks/libs/detect-gpu.mjs +515 -0
- package/webgpu/_chunks/libs/hls.js.mjs +21925 -0
- package/webgpu/_chunks/libs/maath.mjs +5200 -0
- package/webgpu/_chunks/libs/stats-gl.mjs +301 -0
- package/webgpu/_chunks/libs/stats.js.mjs +90 -0
- package/webgpu/_chunks/libs/suspend-react.mjs +60 -0
- package/webgpu/_chunks/libs/three.mjs +22592 -0
- package/webgpu/_chunks/libs/tunnel-rat.mjs +458 -0
- package/webgpu/_chunks/libs/zustand.mjs +104 -0
- package/webgpu/_chunks/rolldown-runtime.mjs +47 -0
- package/webgpu/webgpu/index.d.mts +3166 -0
- package/webgpu/webgpu/index.mjs +15015 -0
- package/core/AccumulativeShadows.cjs.js +0 -1
- package/core/AccumulativeShadows.d.ts +0 -59
- package/core/AccumulativeShadows.js +0 -310
- package/core/AdaptiveDpr.cjs.js +0 -1
- package/core/AdaptiveDpr.d.ts +0 -3
- package/core/AdaptiveDpr.js +0 -28
- package/core/AdaptiveEvents.cjs.js +0 -1
- package/core/AdaptiveEvents.d.ts +0 -1
- package/core/AdaptiveEvents.js +0 -20
- package/core/ArcballControls.cjs.js +0 -1
- package/core/ArcballControls.d.ts +0 -15
- package/core/ArcballControls.js +0 -67
- package/core/AsciiRenderer.cjs.js +0 -1
- package/core/AsciiRenderer.d.ts +0 -11
- package/core/AsciiRenderer.js +0 -66
- package/core/BBAnchor.cjs.js +0 -1
- package/core/BBAnchor.d.ts +0 -7
- package/core/BBAnchor.js +0 -37
- package/core/Backdrop.cjs.js +0 -1
- package/core/Backdrop.d.ts +0 -15
- package/core/Backdrop.js +0 -33
- package/core/BakeShadows.cjs.js +0 -1
- package/core/BakeShadows.d.ts +0 -1
- package/core/BakeShadows.js +0 -16
- package/core/Billboard.cjs.js +0 -1
- package/core/Billboard.d.ts +0 -10
- package/core/Billboard.js +0 -53
- package/core/Bounds.cjs.js +0 -1
- package/core/Bounds.d.ts +0 -36
- package/core/Bounds.js +0 -254
- package/core/Bvh.cjs.js +0 -1
- package/core/Bvh.d.ts +0 -19
- package/core/Bvh.js +0 -92
- package/core/CameraControls.cjs.js +0 -1
- package/core/CameraControls.d.ts +0 -48
- package/core/CameraControls.js +0 -151
- package/core/CameraShake.cjs.js +0 -1
- package/core/CameraShake.d.ts +0 -17
- package/core/CameraShake.js +0 -57
- package/core/CatmullRomLine.cjs.js +0 -1
- package/core/CatmullRomLine.d.ts +0 -10
- package/core/CatmullRomLine.js +0 -42
- package/core/Caustics.cjs.js +0 -1
- package/core/Caustics.d.ts +0 -32
- package/core/Caustics.js +0 -388
- package/core/Center.cjs.js +0 -1
- package/core/Center.d.ts +0 -33
- package/core/Center.js +0 -67
- package/core/Clone.cjs.js +0 -1
- package/core/Clone.d.ts +0 -15
- package/core/Clone.js +0 -100
- package/core/Cloud.cjs.js +0 -1
- package/core/Cloud.d.ts +0 -97
- package/core/Cloud.js +0 -231
- package/core/ComputedAttribute.cjs.js +0 -1
- package/core/ComputedAttribute.d.ts +0 -8
- package/core/ComputedAttribute.js +0 -33
- package/core/ContactShadows.cjs.js +0 -1
- package/core/ContactShadows.d.ts +0 -18
- package/core/ContactShadows.js +0 -114
- package/core/CubeCamera.cjs.js +0 -1
- package/core/CubeCamera.d.ts +0 -21
- package/core/CubeCamera.js +0 -86
- package/core/CubeTexture.cjs.js +0 -1
- package/core/CubeTexture.d.ts +0 -14
- package/core/CubeTexture.js +0 -25
- package/core/CubicBezierLine.cjs.js +0 -1
- package/core/CubicBezierLine.d.ts +0 -12
- package/core/CubicBezierLine.js +0 -28
- package/core/CurveModifier.cjs.js +0 -1
- package/core/CurveModifier.d.ts +0 -11
- package/core/CurveModifier.js +0 -27
- package/core/Decal.cjs.js +0 -1
- package/core/Decal.d.ts +0 -16
- package/core/Decal.js +0 -128
- package/core/Detailed.cjs.js +0 -1
- package/core/Detailed.d.ts +0 -10
- package/core/Detailed.js +0 -33
- package/core/DetectGPU.cjs.js +0 -1
- package/core/DetectGPU.d.ts +0 -7
- package/core/DetectGPU.js +0 -14
- package/core/DeviceOrientationControls.cjs.js +0 -1
- package/core/DeviceOrientationControls.d.ts +0 -10
- package/core/DeviceOrientationControls.js +0 -51
- package/core/Edges.cjs.js +0 -1
- package/core/Edges.d.ts +0 -13
- package/core/Edges.js +0 -38
- package/core/Effects.cjs.js +0 -1
- package/core/Effects.d.ts +0 -25
- package/core/Effects.js +0 -91
- package/core/Environment.cjs.js +0 -1
- package/core/Environment.d.ts +0 -37
- package/core/Environment.js +0 -189
- package/core/Example.cjs.js +0 -1
- package/core/Example.d.ts +0 -13
- package/core/Example.js +0 -46
- package/core/Fbo.cjs.js +0 -1
- package/core/Fbo.d.ts +0 -22
- package/core/Fbo.js +0 -63
- package/core/Fbx.cjs.js +0 -1
- package/core/Fbx.d.ts +0 -11
- package/core/Fbx.js +0 -23
- package/core/FirstPersonControls.cjs.js +0 -1
- package/core/FirstPersonControls.d.ts +0 -8
- package/core/FirstPersonControls.js +0 -38
- package/core/Fisheye.cjs.js +0 -1
- package/core/Fisheye.d.ts +0 -10
- package/core/Fisheye.js +0 -95
- package/core/Float.cjs.js +0 -1
- package/core/Float.d.ts +0 -14
- package/core/Float.js +0 -37
- package/core/FlyControls.cjs.js +0 -1
- package/core/FlyControls.d.ts +0 -10
- package/core/FlyControls.js +0 -55
- package/core/GizmoHelper.cjs.js +0 -1
- package/core/GizmoHelper.d.ts +0 -16
- package/core/GizmoHelper.js +0 -116
- package/core/GizmoViewcube.cjs.js +0 -1
- package/core/GizmoViewcube.d.ts +0 -14
- package/core/GizmoViewcube.js +0 -133
- package/core/GizmoViewport.cjs.js +0 -1
- package/core/GizmoViewport.d.ts +0 -16
- package/core/GizmoViewport.js +0 -140
- package/core/Gltf.cjs.js +0 -1
- package/core/Gltf.d.ts +0 -27
- package/core/Gltf.js +0 -52
- package/core/GradientTexture.cjs.js +0 -1
- package/core/GradientTexture.d.ts +0 -18
- package/core/GradientTexture.js +0 -54
- package/core/Grid.cjs.js +0 -1
- package/core/Grid.d.ts +0 -26
- package/core/Grid.js +0 -142
- package/core/Helper.cjs.js +0 -1
- package/core/Helper.d.ts +0 -16
- package/core/Helper.js +0 -47
- package/core/Hud.cjs.js +0 -1
- package/core/Hud.d.ts +0 -6
- package/core/Hud.js +0 -55
- package/core/Image.cjs.js +0 -1
- package/core/Image.d.ts +0 -38
- package/core/Image.js +0 -160
- package/core/Instances.cjs.js +0 -1
- package/core/Instances.d.ts +0 -64
- package/core/Instances.js +0 -313
- package/core/Ktx2.cjs.js +0 -1
- package/core/Ktx2.d.ts +0 -14
- package/core/Ktx2.js +0 -48
- package/core/Lightformer.cjs.js +0 -1
- package/core/Lightformer.d.ts +0 -15
- package/core/Lightformer.js +0 -63
- package/core/Line.cjs.js +0 -1
- package/core/Line.d.ts +0 -13
- package/core/Line.js +0 -73
- package/core/MapControls.cjs.js +0 -1
- package/core/MapControls.d.ts +0 -14
- package/core/MapControls.js +0 -63
- package/core/MarchingCubes.cjs.js +0 -1
- package/core/MarchingCubes.d.ts +0 -24
- package/core/MarchingCubes.js +0 -78
- package/core/Mask.cjs.js +0 -1
- package/core/Mask.d.ts +0 -17
- package/core/Mask.js +0 -42
- package/core/MatcapTexture.cjs.js +0 -1
- package/core/MatcapTexture.d.ts +0 -9
- package/core/MatcapTexture.js +0 -51
- package/core/MeshDiscardMaterial.cjs.js +0 -1
- package/core/MeshDiscardMaterial.d.ts +0 -10
- package/core/MeshDiscardMaterial.js +0 -15
- package/core/MeshDistortMaterial.cjs.js +0 -1
- package/core/MeshDistortMaterial.d.ts +0 -39
- package/core/MeshDistortMaterial.js +0 -72
- package/core/MeshPortalMaterial.cjs.js +0 -1
- package/core/MeshPortalMaterial.d.ts +0 -25
- package/core/MeshPortalMaterial.js +0 -467
- package/core/MeshReflectorMaterial.cjs.js +0 -1
- package/core/MeshReflectorMaterial.d.ts +0 -14
- package/core/MeshReflectorMaterial.js +0 -180
- package/core/MeshRefractionMaterial.cjs.js +0 -1
- package/core/MeshRefractionMaterial.d.ts +0 -19
- package/core/MeshRefractionMaterial.js +0 -73
- package/core/MeshTransmissionMaterial.cjs.js +0 -1
- package/core/MeshTransmissionMaterial.d.ts +0 -34
- package/core/MeshTransmissionMaterial.js +0 -402
- package/core/MeshWobbleMaterial.cjs.js +0 -1
- package/core/MeshWobbleMaterial.d.ts +0 -36
- package/core/MeshWobbleMaterial.js +0 -60
- package/core/MotionPathControls.cjs.js +0 -1
- package/core/MotionPathControls.d.ts +0 -33
- package/core/MotionPathControls.js +0 -121
- package/core/MultiMaterial.cjs.js +0 -1
- package/core/MultiMaterial.d.ts +0 -4
- package/core/MultiMaterial.js +0 -29
- package/core/NormalTexture.cjs.js +0 -1
- package/core/NormalTexture.d.ts +0 -14
- package/core/NormalTexture.js +0 -42
- package/core/OrbitControls.cjs.js +0 -1
- package/core/OrbitControls.d.ts +0 -22
- package/core/OrbitControls.js +0 -79
- package/core/OrthographicCamera.cjs.js +0 -1
- package/core/OrthographicCamera.d.ts +0 -14
- package/core/OrthographicCamera.js +0 -76
- package/core/Outlines.cjs.js +0 -1
- package/core/Outlines.d.ts +0 -17
- package/core/Outlines.js +0 -166
- package/core/PerformanceMonitor.cjs.js +0 -1
- package/core/PerformanceMonitor.d.ts +0 -36
- package/core/PerformanceMonitor.js +0 -116
- package/core/PerspectiveCamera.cjs.js +0 -1
- package/core/PerspectiveCamera.d.ts +0 -14
- package/core/PerspectiveCamera.js +0 -72
- package/core/PointMaterial.cjs.js +0 -1
- package/core/PointMaterial.d.ts +0 -8
- package/core/PointMaterial.js +0 -36
- package/core/PointerLockControls.cjs.js +0 -1
- package/core/PointerLockControls.d.ts +0 -15
- package/core/PointerLockControls.js +0 -89
- package/core/Points.cjs.js +0 -1
- package/core/Points.d.ts +0 -31
- package/core/Points.js +0 -202
- package/core/PositionalAudio.cjs.js +0 -1
- package/core/PositionalAudio.d.ts +0 -9
- package/core/PositionalAudio.js +0 -46
- package/core/Preload.cjs.js +0 -1
- package/core/Preload.d.ts +0 -7
- package/core/Preload.js +0 -44
- package/core/Progress.cjs.js +0 -1
- package/core/Progress.d.ts +0 -14
- package/core/Progress.js +0 -55
- package/core/QuadraticBezierLine.cjs.js +0 -1
- package/core/QuadraticBezierLine.d.ts +0 -14
- package/core/QuadraticBezierLine.js +0 -42
- package/core/RenderCubeTexture.cjs.js +0 -1
- package/core/RenderCubeTexture.d.ts +0 -30
- package/core/RenderCubeTexture.js +0 -96
- package/core/RenderTexture.cjs.js +0 -1
- package/core/RenderTexture.d.ts +0 -18
- package/core/RenderTexture.js +0 -105
- package/core/Resize.cjs.js +0 -1
- package/core/Resize.d.ts +0 -17
- package/core/Resize.js +0 -39
- package/core/RoundedBox.cjs.js +0 -1
- package/core/RoundedBox.d.ts +0 -14
- package/core/RoundedBox.js +0 -70
- package/core/Sampler.cjs.js +0 -1
- package/core/Sampler.d.ts +0 -28
- package/core/Sampler.js +0 -75
- package/core/ScreenQuad.cjs.js +0 -1
- package/core/ScreenQuad.d.ts +0 -5
- package/core/ScreenQuad.js +0 -25
- package/core/ScreenSizer.cjs.js +0 -1
- package/core/ScreenSizer.d.ts +0 -7
- package/core/ScreenSizer.js +0 -39
- package/core/ScreenSpace.cjs.js +0 -1
- package/core/ScreenSpace.d.ts +0 -7
- package/core/ScreenSpace.js +0 -25
- package/core/Segments.cjs.js +0 -1
- package/core/Segments.d.ts +0 -29
- package/core/Segments.js +0 -96
- package/core/Shadow.cjs.js +0 -1
- package/core/Shadow.d.ts +0 -12
- package/core/Shadow.js +0 -42
- package/core/ShadowAlpha.cjs.js +0 -1
- package/core/ShadowAlpha.d.ts +0 -7
- package/core/ShadowAlpha.js +0 -108
- package/core/Sky.cjs.js +0 -1
- package/core/Sky.d.ts +0 -16
- package/core/Sky.js +0 -39
- package/core/Sparkles.cjs.js +0 -1
- package/core/Sparkles.d.ts +0 -26
- package/core/Sparkles.js +0 -161
- package/core/Splat.cjs.js +0 -1
- package/core/Splat.d.ts +0 -56
- package/core/Splat.js +0 -506
- package/core/SpotLight.cjs.js +0 -1
- package/core/SpotLight.d.ts +0 -27
- package/core/SpotLight.js +0 -223
- package/core/SpriteAnimator.cjs.js +0 -1
- package/core/SpriteAnimator.d.ts +0 -88
- package/core/SpriteAnimator.js +0 -413
- package/core/Stage.cjs.js +0 -1
- package/core/Stage.d.ts +0 -27
- package/core/Stage.js +0 -133
- package/core/Stars.cjs.js +0 -1
- package/core/Stars.d.ts +0 -22
- package/core/Stars.js +0 -100
- package/core/Stats.cjs.js +0 -1
- package/core/Stats.d.ts +0 -7
- package/core/Stats.js +0 -32
- package/core/StatsGl.cjs.js +0 -1
- package/core/StatsGl.d.ts +0 -14
- package/core/StatsGl.js +0 -44
- package/core/Svg.cjs.js +0 -1
- package/core/Svg.d.ts +0 -13
- package/core/Svg.js +0 -62
- package/core/Text.cjs.js +0 -1
- package/core/Text.d.ts +0 -38
- package/core/Text.js +0 -57
- package/core/Text3D.cjs.js +0 -1
- package/core/Text3D.d.ts +0 -20
- package/core/Text3D.js +0 -74
- package/core/Texture.cjs.js +0 -1
- package/core/Texture.d.ts +0 -20
- package/core/Texture.js +0 -60
- package/core/TrackballControls.cjs.js +0 -1
- package/core/TrackballControls.d.ts +0 -15
- package/core/TrackballControls.js +0 -72
- package/core/Trail.cjs.js +0 -1
- package/core/Trail.d.ts +0 -21
- package/core/Trail.js +0 -150
- package/core/TrailTexture.cjs.js +0 -1
- package/core/TrailTexture.d.ts +0 -19
- package/core/TrailTexture.js +0 -159
- package/core/TransformControls.cjs.js +0 -1
- package/core/TransformControls.d.ts +0 -28
- package/core/TransformControls.js +0 -114
- package/core/VideoTexture.cjs.js +0 -1
- package/core/VideoTexture.d.ts +0 -26
- package/core/VideoTexture.js +0 -111
- package/core/Wireframe.cjs.js +0 -1
- package/core/Wireframe.d.ts +0 -15
- package/core/Wireframe.js +0 -157
- package/core/calculateScaleFactor.cjs.js +0 -1
- package/core/calculateScaleFactor.d.ts +0 -3
- package/core/calculateScaleFactor.js +0 -31
- package/core/index.cjs.js +0 -1
- package/core/index.d.ts +0 -122
- package/core/index.js +0 -150
- package/core/meshBounds.cjs.js +0 -1
- package/core/meshBounds.d.ts +0 -2
- package/core/meshBounds.js +0 -28
- package/core/shaderMaterial.cjs.js +0 -1
- package/core/shaderMaterial.d.ts +0 -9
- package/core/shaderMaterial.js +0 -29
- package/core/shapes.cjs.js +0 -1
- package/core/shapes.d.ts +0 -26
- package/core/shapes.js +0 -65
- package/core/softShadows.cjs.js +0 -1
- package/core/softShadows.d.ts +0 -6
- package/core/softShadows.js +0 -158
- package/core/useAnimations.cjs.js +0 -1
- package/core/useAnimations.d.ts +0 -13
- package/core/useAnimations.js +0 -52
- package/core/useAspect.cjs.js +0 -1
- package/core/useAspect.d.ts +0 -1
- package/core/useAspect.js +0 -10
- package/core/useBoxProjectedEnv.cjs.js +0 -1
- package/core/useBoxProjectedEnv.d.ts +0 -19
- package/core/useBoxProjectedEnv.js +0 -95
- package/core/useCamera.cjs.js +0 -1
- package/core/useCamera.d.ts +0 -3
- package/core/useCamera.js +0 -19
- package/core/useContextBridge.cjs.js +0 -1
- package/core/useContextBridge.d.ts +0 -4
- package/core/useContextBridge.js +0 -20
- package/core/useDepthBuffer.cjs.js +0 -1
- package/core/useDepthBuffer.d.ts +0 -6
- package/core/useDepthBuffer.js +0 -38
- package/core/useEnvironment.cjs.js +0 -1
- package/core/useEnvironment.d.ts +0 -17
- package/core/useEnvironment.js +0 -150
- package/core/useFont.cjs.js +0 -1
- package/core/useFont.d.ts +0 -24
- package/core/useFont.js +0 -24
- package/core/useIntersect.cjs.js +0 -1
- package/core/useIntersect.d.ts +0 -3
- package/core/useIntersect.js +0 -36
- package/core/useSpriteLoader.cjs.js +0 -1
- package/core/useSpriteLoader.d.ts +0 -57
- package/core/useSpriteLoader.js +0 -402
- package/helpers/constants.cjs.js +0 -1
- package/helpers/constants.d.ts +0 -1
- package/helpers/constants.js +0 -6
- package/helpers/deprecated.cjs.js +0 -1
- package/helpers/deprecated.d.ts +0 -5
- package/helpers/deprecated.js +0 -8
- package/helpers/environment-assets.cjs.js +0 -1
- package/helpers/environment-assets.d.ts +0 -13
- package/helpers/environment-assets.js +0 -14
- package/helpers/glsl/DefaultSpotlightShadowShadows.glsl.js +0 -3
- package/helpers/glsl/distort.vert.glsl.js +0 -3
- package/helpers/ts-utils.cjs.js +0 -1
- package/helpers/ts-utils.d.ts +0 -7
- package/helpers/ts-utils.js +0 -1
- package/helpers/useEffectfulState.cjs.js +0 -1
- package/helpers/useEffectfulState.d.ts +0 -4
- package/helpers/useEffectfulState.js +0 -17
- package/index.cjs.js +0 -1
- package/index.d.ts +0 -1
- package/index.js +0 -139
- package/materials/BlurPass.cjs.js +0 -1
- package/materials/BlurPass.d.ts +0 -23
- package/materials/BlurPass.js +0 -72
- package/materials/ConvolutionMaterial.cjs.js +0 -1
- package/materials/ConvolutionMaterial.d.ts +0 -7
- package/materials/ConvolutionMaterial.js +0 -97
- package/materials/DiscardMaterial.cjs.js +0 -1
- package/materials/DiscardMaterial.d.ts +0 -3
- package/materials/DiscardMaterial.js +0 -5
- package/materials/MeshReflectorMaterial.cjs.js +0 -1
- package/materials/MeshReflectorMaterial.d.ts +0 -50
- package/materials/MeshReflectorMaterial.js +0 -256
- package/materials/MeshRefractionMaterial.cjs.js +0 -1
- package/materials/MeshRefractionMaterial.d.ts +0 -18
- package/materials/MeshRefractionMaterial.js +0 -163
- package/materials/SpotLightMaterial.cjs.js +0 -1
- package/materials/SpotLightMaterial.d.ts +0 -4
- package/materials/SpotLightMaterial.js +0 -115
- package/materials/WireframeMaterial.cjs.js +0 -1
- package/materials/WireframeMaterial.d.ts +0 -64
- package/materials/WireframeMaterial.js +0 -217
- package/native/index.cjs.js +0 -1
- package/native/index.d.ts +0 -1
- package/native/index.js +0 -150
- package/web/CycleRaycast.cjs.js +0 -1
- package/web/CycleRaycast.d.ts +0 -10
- package/web/CycleRaycast.js +0 -93
- package/web/DragControls.cjs.js +0 -1
- package/web/DragControls.d.ts +0 -17
- package/web/DragControls.js +0 -127
- package/web/FaceControls.cjs.js +0 -1
- package/web/FaceControls.d.ts +0 -29
- package/web/FaceControls.js +0 -236
- package/web/FaceLandmarker.cjs.js +0 -1
- package/web/FaceLandmarker.d.ts +0 -14
- package/web/FaceLandmarker.js +0 -49
- package/web/Facemesh.cjs.js +0 -1
- package/web/Facemesh.d.ts +0 -118
- package/web/Facemesh.js +0 -4538
- package/web/Html.cjs.js +0 -1
- package/web/Html.d.ts +0 -34
- package/web/Html.js +0 -375
- package/web/KeyboardControls.cjs.js +0 -1
- package/web/KeyboardControls.d.ts +0 -37
- package/web/KeyboardControls.js +0 -104
- package/web/Loader.cjs.js +0 -1
- package/web/Loader.d.ts +0 -12
- package/web/Loader.js +0 -101
- package/web/PresentationControls.cjs.js +0 -1
- package/web/PresentationControls.d.ts +0 -16
- package/web/PresentationControls.js +0 -79
- package/web/ScreenVideoTexture.cjs.js +0 -1
- package/web/ScreenVideoTexture.d.ts +0 -17
- package/web/ScreenVideoTexture.js +0 -30
- package/web/ScrollControls.cjs.js +0 -1
- package/web/ScrollControls.d.ts +0 -45
- package/web/ScrollControls.js +0 -237
- package/web/Select.cjs.js +0 -1
- package/web/Select.d.ts +0 -14
- package/web/Select.js +0 -171
- package/web/View.cjs.js +0 -1
- package/web/View.d.ts +0 -34
- package/web/View.js +0 -259
- package/web/WebcamVideoTexture.cjs.js +0 -1
- package/web/WebcamVideoTexture.d.ts +0 -17
- package/web/WebcamVideoTexture.js +0 -33
- package/web/index.cjs.js +0 -1
- package/web/index.d.ts +0 -17
- package/web/index.js +0 -176
- package/web/pivotControls/AxisArrow.cjs.js +0 -1
- package/web/pivotControls/AxisArrow.d.ts +0 -7
- package/web/pivotControls/AxisArrow.js +0 -193
- package/web/pivotControls/AxisRotator.cjs.js +0 -1
- package/web/pivotControls/AxisRotator.d.ts +0 -7
- package/web/pivotControls/AxisRotator.js +0 -220
- package/web/pivotControls/PlaneSlider.cjs.js +0 -1
- package/web/pivotControls/PlaneSlider.d.ts +0 -7
- package/web/pivotControls/PlaneSlider.js +0 -202
- package/web/pivotControls/ScalingSphere.cjs.js +0 -1
- package/web/pivotControls/ScalingSphere.d.ts +0 -7
- package/web/pivotControls/ScalingSphere.js +0 -192
- package/web/pivotControls/context.cjs.js +0 -1
- package/web/pivotControls/context.d.ts +0 -33
- package/web/pivotControls/context.js +0 -5
- package/web/pivotControls/index.cjs.js +0 -1
- package/web/pivotControls/index.d.ts +0 -39
- package/web/pivotControls/index.js +0 -213
- package/web/useCursor.cjs.js +0 -1
- package/web/useCursor.d.ts +0 -1
- package/web/useCursor.js +0 -12
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("three"),r=require("react"),n=require("@react-three/fiber"),o=require("maath");function c(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var s=c(e),a=u(t),i=u(r);const f=i.createContext(null);function l(){const e=i.useContext(f);if(!e)throw new Error("useMotion hook must be used in a MotionPathControls component.");return e}function m({points:e=50,color:t="black"}){const{path:r}=l(),[n,o]=i.useState([]),c=i.useMemo((()=>new a.MeshBasicMaterial({color:t})),[t]),u=i.useMemo((()=>new a.SphereGeometry(.025,16,16)),[]),s=i.useRef([]);return i.useEffect((()=>{r.curves!==s.current&&(o(r.getPoints(e)),s.current=r.curves)})),n.map(((e,t)=>i.createElement("mesh",{key:t,material:c,geometry:u,position:[e.x,e.y,e.z]})))}const p=i.forwardRef((({children:e,curves:t=[],debug:r=!1,debugColor:c="black",object:u,focus:l,loop:p=!0,offset:d,smooth:g=!1,eps:b=1e-5,damping:h=.1,focusDamping:v=.1,maxSpeed:j=1/0,...y},M)=>{const{camera:w}=n.useThree(),P=i.useRef(null),O=i.useRef(null!=d?d:0),x=i.useMemo((()=>new a.CurvePath),[]),C=i.useMemo((()=>({focus:l,object:(null==u?void 0:u.current)instanceof a.Object3D?u:{current:w},path:x,current:O.current,offset:O.current,point:new a.Vector3,tangent:new a.Vector3,next:new a.Vector3})),[l,u]),E=n.useInstanceHandle(P);i.useLayoutEffect((()=>{const e=E.current;x.curves=[];const r=t.length>0?t:e.children.map((e=>e.object));for(let e=0;e<r.length;e++)x.add(r[e]);if(g){const e=x.getPoints("number"==typeof g?g:1),t=new a.CatmullRomCurve3(e);x.curves=[t]}x.updateArcLengths()})),i.useImperativeHandle(M,(()=>Object.assign(P.current,{motion:C})),[C]),i.useLayoutEffect((()=>{O.current=o.misc.repeat(O.current,1)}),[d]);const k=i.useMemo((()=>new a.Vector3),[]);return n.useFrame(((e,t)=>{const r=C.offset;if(o.easing.damp(O,"current",void 0!==d?d:C.current,h,t,j,void 0,b),C.offset=p?o.misc.repeat(O.current,1):o.misc.clamp(O.current,0,1),x.getCurveLengths().length>0){x.getPointAt(C.offset,C.point),x.getTangentAt(C.offset,C.tangent).normalize(),x.getPointAt(o.misc.repeat(O.current-(r-C.offset),1),C.next);const e=(null==u?void 0:u.current)instanceof a.Object3D?u.current:w;e.position.copy(C.point),l&&o.easing.dampLookAt(e,(e=>(null==e?void 0:e.current)instanceof a.Object3D)(l)?l.current.getWorldPosition(k):l,v,t,j,void 0,b)}})),i.createElement("group",s.default({ref:P},y),i.createElement(f.Provider,{value:C},e,r&&i.createElement(m,{color:c})))}));exports.MotionPathControls=p,exports.useMotion=l;
|
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { ThreeElements } from '@react-three/fiber';
|
|
4
|
-
export type MotionPathProps = ThreeElements['group'] & {
|
|
5
|
-
curves?: THREE.Curve<THREE.Vector3>[];
|
|
6
|
-
debug?: boolean;
|
|
7
|
-
debugColor?: THREE.ColorRepresentation;
|
|
8
|
-
object?: React.RefObject<THREE.Object3D>;
|
|
9
|
-
focus?: [x: number, y: number, z: number] | React.RefObject<THREE.Object3D>;
|
|
10
|
-
loop?: boolean;
|
|
11
|
-
offset?: number;
|
|
12
|
-
smooth?: boolean | number;
|
|
13
|
-
eps?: number;
|
|
14
|
-
damping?: number;
|
|
15
|
-
focusDamping?: number;
|
|
16
|
-
maxSpeed?: number;
|
|
17
|
-
};
|
|
18
|
-
type MotionState = {
|
|
19
|
-
current: number;
|
|
20
|
-
path: THREE.CurvePath<THREE.Vector3>;
|
|
21
|
-
focus: React.RefObject<THREE.Object3D> | [x: number, y: number, z: number] | undefined;
|
|
22
|
-
object: React.RefObject<THREE.Object3D>;
|
|
23
|
-
offset: number;
|
|
24
|
-
point: THREE.Vector3;
|
|
25
|
-
tangent: THREE.Vector3;
|
|
26
|
-
next: THREE.Vector3;
|
|
27
|
-
};
|
|
28
|
-
export type MotionPathRef = THREE.Group & {
|
|
29
|
-
motion: MotionState;
|
|
30
|
-
};
|
|
31
|
-
export declare function useMotion(): MotionState;
|
|
32
|
-
export declare const MotionPathControls: React.ForwardRefExoticComponent<Omit<MotionPathProps, "ref"> & React.RefAttributes<MotionPathRef>>;
|
|
33
|
-
export {};
|
|
@@ -1,121 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import * as THREE from 'three';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { useThree, useInstanceHandle, useFrame } from '@react-three/fiber';
|
|
5
|
-
import { misc, easing } from 'maath';
|
|
6
|
-
|
|
7
|
-
const isObject3DRef = ref => (ref == null ? void 0 : ref.current) instanceof THREE.Object3D;
|
|
8
|
-
const MotionContext = /* @__PURE__ */React.createContext(null);
|
|
9
|
-
function useMotion() {
|
|
10
|
-
const context = React.useContext(MotionContext);
|
|
11
|
-
if (!context) throw new Error('useMotion hook must be used in a MotionPathControls component.');
|
|
12
|
-
return context;
|
|
13
|
-
}
|
|
14
|
-
function Debug({
|
|
15
|
-
points = 50,
|
|
16
|
-
color = 'black'
|
|
17
|
-
}) {
|
|
18
|
-
const {
|
|
19
|
-
path
|
|
20
|
-
} = useMotion();
|
|
21
|
-
const [dots, setDots] = React.useState([]);
|
|
22
|
-
const material = React.useMemo(() => new THREE.MeshBasicMaterial({
|
|
23
|
-
color: color
|
|
24
|
-
}), [color]);
|
|
25
|
-
const geometry = React.useMemo(() => new THREE.SphereGeometry(0.025, 16, 16), []);
|
|
26
|
-
const last = React.useRef([]);
|
|
27
|
-
React.useEffect(() => {
|
|
28
|
-
if (path.curves !== last.current) {
|
|
29
|
-
setDots(path.getPoints(points));
|
|
30
|
-
last.current = path.curves;
|
|
31
|
-
}
|
|
32
|
-
});
|
|
33
|
-
return dots.map((item, index) => /*#__PURE__*/React.createElement("mesh", {
|
|
34
|
-
key: index,
|
|
35
|
-
material: material,
|
|
36
|
-
geometry: geometry,
|
|
37
|
-
position: [item.x, item.y, item.z]
|
|
38
|
-
}));
|
|
39
|
-
}
|
|
40
|
-
const MotionPathControls = /* @__PURE__ */React.forwardRef(({
|
|
41
|
-
children,
|
|
42
|
-
curves = [],
|
|
43
|
-
debug = false,
|
|
44
|
-
debugColor = 'black',
|
|
45
|
-
object,
|
|
46
|
-
focus,
|
|
47
|
-
loop = true,
|
|
48
|
-
offset = undefined,
|
|
49
|
-
smooth = false,
|
|
50
|
-
eps = 0.00001,
|
|
51
|
-
damping = 0.1,
|
|
52
|
-
focusDamping = 0.1,
|
|
53
|
-
maxSpeed = Infinity,
|
|
54
|
-
...props
|
|
55
|
-
}, fref) => {
|
|
56
|
-
const {
|
|
57
|
-
camera
|
|
58
|
-
} = useThree();
|
|
59
|
-
const ref = React.useRef(null);
|
|
60
|
-
const pos = React.useRef(offset !== null && offset !== void 0 ? offset : 0);
|
|
61
|
-
const path = React.useMemo(() => new THREE.CurvePath(), []);
|
|
62
|
-
const state = React.useMemo(() => ({
|
|
63
|
-
focus,
|
|
64
|
-
object: (object == null ? void 0 : object.current) instanceof THREE.Object3D ? object : {
|
|
65
|
-
current: camera
|
|
66
|
-
},
|
|
67
|
-
path,
|
|
68
|
-
current: pos.current,
|
|
69
|
-
offset: pos.current,
|
|
70
|
-
point: new THREE.Vector3(),
|
|
71
|
-
tangent: new THREE.Vector3(),
|
|
72
|
-
next: new THREE.Vector3()
|
|
73
|
-
}), [focus, object]);
|
|
74
|
-
const instanceRef = useInstanceHandle(ref);
|
|
75
|
-
React.useLayoutEffect(() => {
|
|
76
|
-
const instance = instanceRef.current;
|
|
77
|
-
path.curves = [];
|
|
78
|
-
const _curves = curves.length > 0 ? curves : instance.children.map(instance => instance.object);
|
|
79
|
-
for (let i = 0; i < _curves.length; i++) path.add(_curves[i]);
|
|
80
|
-
|
|
81
|
-
// Smoothen curve
|
|
82
|
-
if (smooth) {
|
|
83
|
-
const points = path.getPoints(typeof smooth === 'number' ? smooth : 1);
|
|
84
|
-
const catmull = new THREE.CatmullRomCurve3(points);
|
|
85
|
-
path.curves = [catmull];
|
|
86
|
-
}
|
|
87
|
-
path.updateArcLengths();
|
|
88
|
-
});
|
|
89
|
-
React.useImperativeHandle(fref, () => Object.assign(ref.current, {
|
|
90
|
-
motion: state
|
|
91
|
-
}), [state]);
|
|
92
|
-
React.useLayoutEffect(() => {
|
|
93
|
-
// When offset changes, normalise pos to avoid overshoot spinning
|
|
94
|
-
pos.current = misc.repeat(pos.current, 1);
|
|
95
|
-
}, [offset]);
|
|
96
|
-
const vec = React.useMemo(() => new THREE.Vector3(), []);
|
|
97
|
-
useFrame((_state, delta) => {
|
|
98
|
-
const lastOffset = state.offset;
|
|
99
|
-
easing.damp(pos, 'current', offset !== undefined ? offset : state.current, damping, delta, maxSpeed, undefined, eps);
|
|
100
|
-
state.offset = loop ? misc.repeat(pos.current, 1) : misc.clamp(pos.current, 0, 1);
|
|
101
|
-
if (path.getCurveLengths().length > 0) {
|
|
102
|
-
path.getPointAt(state.offset, state.point);
|
|
103
|
-
path.getTangentAt(state.offset, state.tangent).normalize();
|
|
104
|
-
path.getPointAt(misc.repeat(pos.current - (lastOffset - state.offset), 1), state.next);
|
|
105
|
-
const target = (object == null ? void 0 : object.current) instanceof THREE.Object3D ? object.current : camera;
|
|
106
|
-
target.position.copy(state.point);
|
|
107
|
-
if (focus) {
|
|
108
|
-
easing.dampLookAt(target, isObject3DRef(focus) ? focus.current.getWorldPosition(vec) : focus, focusDamping, delta, maxSpeed, undefined, eps);
|
|
109
|
-
}
|
|
110
|
-
}
|
|
111
|
-
});
|
|
112
|
-
return /*#__PURE__*/React.createElement("group", _extends({
|
|
113
|
-
ref: ref
|
|
114
|
-
}, props), /*#__PURE__*/React.createElement(MotionContext.Provider, {
|
|
115
|
-
value: state
|
|
116
|
-
}, children, debug && /*#__PURE__*/React.createElement(Debug, {
|
|
117
|
-
color: debugColor
|
|
118
|
-
})));
|
|
119
|
-
});
|
|
120
|
-
|
|
121
|
-
export { MotionPathControls, useMotion };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react");function t(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function u(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}var n=t(e),a=u(r);exports.MultiMaterial=function(e){const r=a.useRef(null);return a.useLayoutEffect((()=>{const e=r.current.parent,t=null==e?void 0:e.geometry;if(t){const u=e.material;e.material=r.current.__r3f.children.map((e=>e.object));const n=[...t.groups];return t.clearGroups(),e.material.forEach(((r,u)=>{u<e.material.length-1&&(r.depthWrite=!1),t.addGroup(0,1/0,u)})),()=>{e.material=u,t.groups=n}}})),a.createElement("group",n.default({ref:r},e))};
|
package/core/MultiMaterial.d.ts
DELETED
package/core/MultiMaterial.js
DELETED
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
|
|
4
|
-
function MultiMaterial(props) {
|
|
5
|
-
const group = React.useRef(null);
|
|
6
|
-
React.useLayoutEffect(() => {
|
|
7
|
-
const parent = group.current.parent;
|
|
8
|
-
const geometry = parent == null ? void 0 : parent.geometry;
|
|
9
|
-
if (geometry) {
|
|
10
|
-
const oldMaterial = parent.material;
|
|
11
|
-
parent.material = group.current.__r3f.children.map(instance => instance.object);
|
|
12
|
-
const oldGroups = [...geometry.groups];
|
|
13
|
-
geometry.clearGroups();
|
|
14
|
-
parent.material.forEach((material, index) => {
|
|
15
|
-
if (index < parent.material.length - 1) material.depthWrite = false;
|
|
16
|
-
geometry.addGroup(0, Infinity, index);
|
|
17
|
-
});
|
|
18
|
-
return () => {
|
|
19
|
-
parent.material = oldMaterial;
|
|
20
|
-
geometry.groups = oldGroups;
|
|
21
|
-
};
|
|
22
|
-
}
|
|
23
|
-
});
|
|
24
|
-
return /*#__PURE__*/React.createElement("group", _extends({
|
|
25
|
-
ref: group
|
|
26
|
-
}, props));
|
|
27
|
-
}
|
|
28
|
-
|
|
29
|
-
export { MultiMaterial };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("react"),r=require("./Texture.cjs.js"),t=require("three"),n=require("suspend-react");function s(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var n=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,n.get?n:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("@react-three/fiber");var o=s(e);function a(e=0,s={},a){const{repeat:u=[1,1],anisotropy:c=1,offset:i=[0,0]}=s,f=n.suspend((()=>fetch("https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json").then((e=>e.json()))),["normalsList"]),l=o.useMemo((()=>Object.keys(f).length),[]),p=f[0],d=`https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb/normals/${f[e]||p}`,m=r.useTexture(d,a);return o.useLayoutEffect((()=>{m&&(m.wrapS=m.wrapT=t.RepeatWrapping,m.repeat=new t.Vector2(u[0],u[1]),m.offset=new t.Vector2(i[0],i[1]),m.anisotropy=c)}),[m,c,u,i]),[m,d,l]}exports.NormalTexture=({children:e,id:r,onLoad:t,...n})=>{const s=a(r,n,t);return o.createElement(o.Fragment,null,null==e?void 0:e(s))},exports.useNormalTexture=a;
|
package/core/NormalTexture.d.ts
DELETED
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { Texture } from 'three';
|
|
3
|
-
type Settings = {
|
|
4
|
-
repeat?: number[];
|
|
5
|
-
anisotropy?: number;
|
|
6
|
-
offset?: number[];
|
|
7
|
-
};
|
|
8
|
-
export declare function useNormalTexture(id?: number, settings?: Settings, onLoad?: (texture: Texture | Texture[]) => void): [Texture, string, number];
|
|
9
|
-
export declare const NormalTexture: ({ children, id, onLoad, ...settings }: {
|
|
10
|
-
children?: (texture: ReturnType<typeof useNormalTexture>) => React.ReactNode;
|
|
11
|
-
id?: Parameters<typeof useNormalTexture>[0];
|
|
12
|
-
onLoad?: Parameters<typeof useNormalTexture>[2];
|
|
13
|
-
} & Settings) => React.JSX.Element;
|
|
14
|
-
export {};
|
package/core/NormalTexture.js
DELETED
|
@@ -1,42 +0,0 @@
|
|
|
1
|
-
import * as React from 'react';
|
|
2
|
-
import { useTexture } from './Texture.js';
|
|
3
|
-
import { RepeatWrapping, Vector2 } from 'three';
|
|
4
|
-
import { suspend } from 'suspend-react';
|
|
5
|
-
|
|
6
|
-
const NORMAL_ROOT = 'https://rawcdn.githack.com/pmndrs/drei-assets/7a3104997e1576f83472829815b00880d88b32fb';
|
|
7
|
-
const LIST_URL = 'https://cdn.jsdelivr.net/gh/pmndrs/drei-assets@master/normals/normals.json';
|
|
8
|
-
function useNormalTexture(id = 0, settings = {}, onLoad) {
|
|
9
|
-
const {
|
|
10
|
-
repeat = [1, 1],
|
|
11
|
-
anisotropy = 1,
|
|
12
|
-
offset = [0, 0]
|
|
13
|
-
} = settings;
|
|
14
|
-
const normalsList = suspend(() => fetch(LIST_URL).then(res => res.json()), ['normalsList']);
|
|
15
|
-
const numTot = React.useMemo(() => Object.keys(normalsList).length, []);
|
|
16
|
-
const DEFAULT_NORMAL = normalsList[0];
|
|
17
|
-
const imageName = normalsList[id] || DEFAULT_NORMAL;
|
|
18
|
-
const url = `${NORMAL_ROOT}/normals/${imageName}`;
|
|
19
|
-
const normalTexture = useTexture(url, onLoad);
|
|
20
|
-
React.useLayoutEffect(() => {
|
|
21
|
-
if (!normalTexture) return;
|
|
22
|
-
normalTexture.wrapS = normalTexture.wrapT = RepeatWrapping;
|
|
23
|
-
normalTexture.repeat = new Vector2(repeat[0], repeat[1]);
|
|
24
|
-
normalTexture.offset = new Vector2(offset[0], offset[1]);
|
|
25
|
-
normalTexture.anisotropy = anisotropy;
|
|
26
|
-
}, [normalTexture, anisotropy, repeat, offset]);
|
|
27
|
-
return [normalTexture, url, numTot];
|
|
28
|
-
}
|
|
29
|
-
|
|
30
|
-
//
|
|
31
|
-
|
|
32
|
-
const NormalTexture = ({
|
|
33
|
-
children,
|
|
34
|
-
id,
|
|
35
|
-
onLoad,
|
|
36
|
-
...settings
|
|
37
|
-
}) => {
|
|
38
|
-
const ret = useNormalTexture(id, settings, onLoad);
|
|
39
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, children == null ? void 0 : children(ret));
|
|
40
|
-
};
|
|
41
|
-
|
|
42
|
-
export { NormalTexture, useNormalTexture };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),t=require("@react-three/fiber"),r=require("react"),n=require("three-stdlib");function s(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function o(e){if(e&&e.__esModule)return e;var t=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var n=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(t,r,n.get?n:{enumerable:!0,get:function(){return e[r]}})}})),t.default=e,Object.freeze(t)}var a=s(e),u=o(r);const c=u.forwardRef((({makeDefault:e,camera:r,regress:s,domElement:o,enableDamping:c=!0,keyEvents:i=!1,onChange:f,onStart:d,onEnd:l,...m},v)=>{const b=t.useThree((e=>e.invalidate)),E=t.useThree((e=>e.camera)),h=t.useThree((e=>e.gl)),p=t.useThree((e=>e.events)),g=t.useThree((e=>e.setEvents)),O=t.useThree((e=>e.set)),j=t.useThree((e=>e.get)),T=t.useThree((e=>e.performance)),y=r||E,L=o||p.connected||h.domElement,q=u.useMemo((()=>new n.OrbitControls(y)),[y]);return t.useFrame((()=>{q.enabled&&q.update()}),-1),u.useEffect((()=>(i&&q.connect(!0===i?L:i),q.connect(L),()=>{q.dispose()})),[i,L,s,q,b]),u.useEffect((()=>{const e=e=>{b(),s&&T.regress(),f&&f(e)},t=e=>{d&&d(e)},r=e=>{l&&l(e)};return q.addEventListener("change",e),q.addEventListener("start",t),q.addEventListener("end",r),()=>{q.removeEventListener("start",t),q.removeEventListener("end",r),q.removeEventListener("change",e)}}),[f,d,l,q,b,g]),u.useEffect((()=>{if(e){const e=j().controls;return O({controls:q}),()=>O({controls:e})}}),[e,q]),u.createElement("primitive",a.default({ref:v,object:q,enableDamping:c},m))}));exports.OrbitControls=c;
|
package/core/OrbitControls.d.ts
DELETED
|
@@ -1,22 +0,0 @@
|
|
|
1
|
-
import { ReactThreeFiber, ThreeElement } from '@react-three/fiber';
|
|
2
|
-
import { Camera, Event } from 'three';
|
|
3
|
-
import { OrbitControls as OrbitControlsImpl } from 'three-stdlib';
|
|
4
|
-
import { ForwardRefComponent, Overwrite } from '../helpers/ts-utils';
|
|
5
|
-
type ExtractCallback<T, E extends string> = T extends {
|
|
6
|
-
addEventListener(event: E, callback: infer C): void;
|
|
7
|
-
} ? C : never;
|
|
8
|
-
export type OrbitControlsChangeEvent = Parameters<ExtractCallback<OrbitControlsImpl, 'change'>>[0];
|
|
9
|
-
export type OrbitControlsProps = Omit<Overwrite<ThreeElement<typeof OrbitControlsImpl>, {
|
|
10
|
-
camera?: Camera;
|
|
11
|
-
domElement?: HTMLElement;
|
|
12
|
-
enableDamping?: boolean;
|
|
13
|
-
makeDefault?: boolean;
|
|
14
|
-
onChange?: (e?: OrbitControlsChangeEvent) => void;
|
|
15
|
-
onEnd?: (e?: Event) => void;
|
|
16
|
-
onStart?: (e?: Event) => void;
|
|
17
|
-
regress?: boolean;
|
|
18
|
-
target?: ReactThreeFiber.Vector3;
|
|
19
|
-
keyEvents?: boolean | HTMLElement;
|
|
20
|
-
}>, 'ref' | 'args'>;
|
|
21
|
-
export declare const OrbitControls: ForwardRefComponent<OrbitControlsProps, OrbitControlsImpl>;
|
|
22
|
-
export {};
|
package/core/OrbitControls.js
DELETED
|
@@ -1,79 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import { useThree, useFrame } from '@react-three/fiber';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { OrbitControls as OrbitControls$1 } from 'three-stdlib';
|
|
5
|
-
|
|
6
|
-
const OrbitControls = /* @__PURE__ */React.forwardRef(({
|
|
7
|
-
makeDefault,
|
|
8
|
-
camera,
|
|
9
|
-
regress,
|
|
10
|
-
domElement,
|
|
11
|
-
enableDamping = true,
|
|
12
|
-
keyEvents = false,
|
|
13
|
-
onChange,
|
|
14
|
-
onStart,
|
|
15
|
-
onEnd,
|
|
16
|
-
...restProps
|
|
17
|
-
}, ref) => {
|
|
18
|
-
const invalidate = useThree(state => state.invalidate);
|
|
19
|
-
const defaultCamera = useThree(state => state.camera);
|
|
20
|
-
const gl = useThree(state => state.gl);
|
|
21
|
-
const events = useThree(state => state.events);
|
|
22
|
-
const setEvents = useThree(state => state.setEvents);
|
|
23
|
-
const set = useThree(state => state.set);
|
|
24
|
-
const get = useThree(state => state.get);
|
|
25
|
-
const performance = useThree(state => state.performance);
|
|
26
|
-
const explCamera = camera || defaultCamera;
|
|
27
|
-
const explDomElement = domElement || events.connected || gl.domElement;
|
|
28
|
-
const controls = React.useMemo(() => new OrbitControls$1(explCamera), [explCamera]);
|
|
29
|
-
useFrame(() => {
|
|
30
|
-
if (controls.enabled) controls.update();
|
|
31
|
-
}, -1);
|
|
32
|
-
React.useEffect(() => {
|
|
33
|
-
if (keyEvents) {
|
|
34
|
-
controls.connect(keyEvents === true ? explDomElement : keyEvents);
|
|
35
|
-
}
|
|
36
|
-
controls.connect(explDomElement);
|
|
37
|
-
return () => void controls.dispose();
|
|
38
|
-
}, [keyEvents, explDomElement, regress, controls, invalidate]);
|
|
39
|
-
React.useEffect(() => {
|
|
40
|
-
const callback = e => {
|
|
41
|
-
invalidate();
|
|
42
|
-
if (regress) performance.regress();
|
|
43
|
-
if (onChange) onChange(e);
|
|
44
|
-
};
|
|
45
|
-
const onStartCb = e => {
|
|
46
|
-
if (onStart) onStart(e);
|
|
47
|
-
};
|
|
48
|
-
const onEndCb = e => {
|
|
49
|
-
if (onEnd) onEnd(e);
|
|
50
|
-
};
|
|
51
|
-
controls.addEventListener('change', callback);
|
|
52
|
-
controls.addEventListener('start', onStartCb);
|
|
53
|
-
controls.addEventListener('end', onEndCb);
|
|
54
|
-
return () => {
|
|
55
|
-
controls.removeEventListener('start', onStartCb);
|
|
56
|
-
controls.removeEventListener('end', onEndCb);
|
|
57
|
-
controls.removeEventListener('change', callback);
|
|
58
|
-
};
|
|
59
|
-
}, [onChange, onStart, onEnd, controls, invalidate, setEvents]);
|
|
60
|
-
React.useEffect(() => {
|
|
61
|
-
if (makeDefault) {
|
|
62
|
-
const old = get().controls;
|
|
63
|
-
// @ts-ignore https://github.com/three-types/three-ts-types/pull/1398
|
|
64
|
-
set({
|
|
65
|
-
controls
|
|
66
|
-
});
|
|
67
|
-
return () => set({
|
|
68
|
-
controls: old
|
|
69
|
-
});
|
|
70
|
-
}
|
|
71
|
-
}, [makeDefault, controls]);
|
|
72
|
-
return /*#__PURE__*/React.createElement("primitive", _extends({
|
|
73
|
-
ref: ref,
|
|
74
|
-
object: controls,
|
|
75
|
-
enableDamping: enableDamping
|
|
76
|
-
}, restProps));
|
|
77
|
-
});
|
|
78
|
-
|
|
79
|
-
export { OrbitControls };
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),r=require("react"),t=require("@react-three/fiber"),u=require("./Fbo.cjs.js");function n(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function a(e){if(e&&e.__esModule)return e;var r=Object.create(null);return e&&Object.keys(e).forEach((function(t){if("default"!==t){var u=Object.getOwnPropertyDescriptor(e,t);Object.defineProperty(r,t,u.get?u:{enumerable:!0,get:function(){return e[t]}})}})),r.default=e,Object.freeze(r)}require("three");var c=n(e),o=a(r);const s=o.forwardRef((({envMap:e,resolution:r=256,frames:n=1/0,children:a,makeDefault:s,...i},l)=>{const f=t.useThree((({set:e})=>e)),d=t.useThree((({camera:e})=>e)),h=t.useThree((({size:e})=>e)),b=o.useRef(null);o.useImperativeHandle(l,(()=>b.current),[]);const g=o.useRef(null),m=u.useFBO(r);o.useLayoutEffect((()=>{i.manual||b.current.updateProjectionMatrix()}),[h,i]),o.useLayoutEffect((()=>{b.current.updateProjectionMatrix()})),o.useLayoutEffect((()=>{if(s){const e=d;return f((()=>({camera:b.current}))),()=>f((()=>({camera:e})))}}),[b,s,f]);let p=0,j=null;const v="function"==typeof a;return t.useFrame((r=>{v&&(n===1/0||p<n)&&(g.current.visible=!1,r.gl.setRenderTarget(m),j=r.scene.background,e&&(r.scene.background=e),r.gl.render(r.scene,b.current),r.scene.background=j,r.gl.setRenderTarget(null),g.current.visible=!0,p++)})),o.createElement(o.Fragment,null,o.createElement("orthographicCamera",c.default({left:h.width/-2,right:h.width/2,top:h.height/2,bottom:h.height/-2,ref:b},i),!v&&a),o.createElement("group",{ref:g},v&&a(m.texture)))}));exports.OrthographicCamera=s;
|
|
@@ -1,14 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { OrthographicCamera as OrthographicCameraImpl } from 'three';
|
|
4
|
-
import { ThreeElements } from '@react-three/fiber';
|
|
5
|
-
import { ForwardRefComponent } from '../helpers/ts-utils';
|
|
6
|
-
export type OrthographicCameraProps = Omit<ThreeElements['orthographicCamera'], 'ref' | 'children'> & {
|
|
7
|
-
makeDefault?: boolean;
|
|
8
|
-
manual?: boolean;
|
|
9
|
-
children?: React.ReactNode | ((texture: THREE.Texture) => React.ReactNode);
|
|
10
|
-
frames?: number;
|
|
11
|
-
resolution?: number;
|
|
12
|
-
envMap?: THREE.Texture;
|
|
13
|
-
};
|
|
14
|
-
export declare const OrthographicCamera: ForwardRefComponent<OrthographicCameraProps, OrthographicCameraImpl>;
|
|
@@ -1,76 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { useThree, useFrame } from '@react-three/fiber';
|
|
4
|
-
import { useFBO } from './Fbo.js';
|
|
5
|
-
|
|
6
|
-
const isFunction = node => typeof node === 'function';
|
|
7
|
-
const OrthographicCamera = /* @__PURE__ */React.forwardRef(({
|
|
8
|
-
envMap,
|
|
9
|
-
resolution = 256,
|
|
10
|
-
frames = Infinity,
|
|
11
|
-
children,
|
|
12
|
-
makeDefault,
|
|
13
|
-
...props
|
|
14
|
-
}, ref) => {
|
|
15
|
-
const set = useThree(({
|
|
16
|
-
set
|
|
17
|
-
}) => set);
|
|
18
|
-
const camera = useThree(({
|
|
19
|
-
camera
|
|
20
|
-
}) => camera);
|
|
21
|
-
const size = useThree(({
|
|
22
|
-
size
|
|
23
|
-
}) => size);
|
|
24
|
-
const cameraRef = React.useRef(null);
|
|
25
|
-
React.useImperativeHandle(ref, () => cameraRef.current, []);
|
|
26
|
-
const groupRef = React.useRef(null);
|
|
27
|
-
const fbo = useFBO(resolution);
|
|
28
|
-
React.useLayoutEffect(() => {
|
|
29
|
-
if (!props.manual) {
|
|
30
|
-
cameraRef.current.updateProjectionMatrix();
|
|
31
|
-
}
|
|
32
|
-
}, [size, props]);
|
|
33
|
-
React.useLayoutEffect(() => {
|
|
34
|
-
cameraRef.current.updateProjectionMatrix();
|
|
35
|
-
});
|
|
36
|
-
React.useLayoutEffect(() => {
|
|
37
|
-
if (makeDefault) {
|
|
38
|
-
const oldCam = camera;
|
|
39
|
-
set(() => ({
|
|
40
|
-
camera: cameraRef.current
|
|
41
|
-
}));
|
|
42
|
-
return () => set(() => ({
|
|
43
|
-
camera: oldCam
|
|
44
|
-
}));
|
|
45
|
-
}
|
|
46
|
-
// The camera should not be part of the dependency list because this components camera is a stable reference
|
|
47
|
-
// that must exchange the default, and clean up after itself on unmount.
|
|
48
|
-
}, [cameraRef, makeDefault, set]);
|
|
49
|
-
let count = 0;
|
|
50
|
-
let oldEnvMap = null;
|
|
51
|
-
const functional = isFunction(children);
|
|
52
|
-
useFrame(state => {
|
|
53
|
-
if (functional && (frames === Infinity || count < frames)) {
|
|
54
|
-
groupRef.current.visible = false;
|
|
55
|
-
state.gl.setRenderTarget(fbo);
|
|
56
|
-
oldEnvMap = state.scene.background;
|
|
57
|
-
if (envMap) state.scene.background = envMap;
|
|
58
|
-
state.gl.render(state.scene, cameraRef.current);
|
|
59
|
-
state.scene.background = oldEnvMap;
|
|
60
|
-
state.gl.setRenderTarget(null);
|
|
61
|
-
groupRef.current.visible = true;
|
|
62
|
-
count++;
|
|
63
|
-
}
|
|
64
|
-
});
|
|
65
|
-
return /*#__PURE__*/React.createElement(React.Fragment, null, /*#__PURE__*/React.createElement("orthographicCamera", _extends({
|
|
66
|
-
left: size.width / -2,
|
|
67
|
-
right: size.width / 2,
|
|
68
|
-
top: size.height / 2,
|
|
69
|
-
bottom: size.height / -2,
|
|
70
|
-
ref: cameraRef
|
|
71
|
-
}, props), !functional && children), /*#__PURE__*/React.createElement("group", {
|
|
72
|
-
ref: groupRef
|
|
73
|
-
}, functional && children(fbo.texture)));
|
|
74
|
-
});
|
|
75
|
-
|
|
76
|
-
export { OrthographicCamera };
|
package/core/Outlines.cjs.js
DELETED
|
@@ -1 +0,0 @@
|
|
|
1
|
-
"use strict";Object.defineProperty(exports,"__esModule",{value:!0});var e=require("@babel/runtime/helpers/extends"),n=require("three"),r=require("react"),t=require("./shaderMaterial.cjs.js"),i=require("@react-three/fiber"),o=require("three-stdlib"),c=require("../helpers/constants.cjs.js");function a(e){return e&&"object"==typeof e&&"default"in e?e:{default:e}}function s(e){if(e&&e.__esModule)return e;var n=Object.create(null);return e&&Object.keys(e).forEach((function(r){if("default"!==r){var t=Object.getOwnPropertyDescriptor(e,r);Object.defineProperty(n,r,t.get?t:{enumerable:!0,get:function(){return e[r]}})}})),n.default=e,Object.freeze(n)}var l=a(e),p=s(n),u=s(r);const f=t.shaderMaterial({screenspace:!1,color:new p.Color("black"),opacity:1,thickness:.05,size:new p.Vector2},"#include <common>\n #include <morphtarget_pars_vertex>\n #include <skinning_pars_vertex>\n #include <clipping_planes_pars_vertex>\n uniform float thickness;\n uniform bool screenspace;\n uniform vec2 size;\n void main() {\n #if defined (USE_SKINNING)\n\t #include <beginnormal_vertex>\n #include <morphnormal_vertex>\n #include <skinbase_vertex>\n #include <skinnormal_vertex>\n #include <defaultnormal_vertex>\n #endif\n #include <begin_vertex>\n\t #include <morphtarget_vertex>\n\t #include <skinning_vertex>\n #include <project_vertex>\n #include <clipping_planes_vertex>\n vec4 tNormal = vec4(normal, 0.0);\n vec4 tPosition = vec4(transformed, 1.0);\n #ifdef USE_INSTANCING\n tNormal = instanceMatrix * tNormal;\n tPosition = instanceMatrix * tPosition;\n #endif\n if (screenspace) {\n vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;\n gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0); \n } else {\n vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;\n vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;\n vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;\n clipPosition.xy += offset;\n gl_Position = clipPosition;\n }\n }",`uniform vec3 color;\n uniform float opacity;\n #include <clipping_planes_pars_fragment>\n void main(){\n #include <clipping_planes_fragment>\n gl_FragColor = vec4(color, opacity);\n #include <tonemapping_fragment>\n #include <${c.version>=154?"colorspace_fragment":"encodings_fragment"}>\n }`);exports.Outlines=function({color:e="black",opacity:n=1,transparent:r=!1,screenspace:t=!1,toneMapped:c=!0,polygonOffset:a=!1,polygonOffsetFactor:s=0,renderOrder:d=0,thickness:m=.05,angle:g=Math.PI,clippingPlanes:v,...h}){const y=u.useRef(null),[_]=u.useState((()=>new f({side:p.BackSide}))),{gl:x}=i.useThree(),M=x.getDrawingBufferSize(new p.Vector2);u.useMemo((()=>i.extend({OutlinesMaterial:f})),[]);const P=u.useRef(0),b=u.useRef(null);return u.useLayoutEffect((()=>{const e=y.current;if(!e)return;const n=e.parent;if(n&&n.geometry&&(P.current!==g||b.current!==n.geometry)){var r;P.current=g,b.current=n.geometry;let t=null==(r=e.children)?void 0:r[0];t&&(g&&t.geometry.dispose(),e.remove(t)),n.skeleton?(t=new p.SkinnedMesh,t.material=_,t.bind(n.skeleton,n.bindMatrix),e.add(t)):n.isInstancedMesh?(t=new p.InstancedMesh(n.geometry,_,n.count),t.instanceMatrix=n.instanceMatrix,e.add(t)):(t=new p.Mesh,t.material=_,e.add(t)),t.geometry=g?o.toCreasedNormals(n.geometry,g):n.geometry,t.morphTargetInfluences=n.morphTargetInfluences,t.morphTargetDictionary=n.morphTargetDictionary}})),u.useLayoutEffect((()=>{const o=y.current;if(!o)return;const l=o.children[0];if(l){l.renderOrder=d;const p=o.parent;i.applyProps(l,{morphTargetInfluences:p.morphTargetInfluences,morphTargetDictionary:p.morphTargetDictionary}),i.applyProps(l.material,{transparent:r,thickness:m,color:e,opacity:n,size:M,screenspace:t,toneMapped:c,polygonOffset:a,polygonOffsetFactor:s,clippingPlanes:v,clipping:v&&v.length>0})}})),u.useEffect((()=>()=>{const e=y.current;if(!e)return;const n=e.children[0];n&&(g&&n.geometry.dispose(),e.remove(n))}),[]),u.createElement("group",l.default({ref:y},h))};
|
package/core/Outlines.d.ts
DELETED
|
@@ -1,17 +0,0 @@
|
|
|
1
|
-
import * as THREE from 'three';
|
|
2
|
-
import * as React from 'react';
|
|
3
|
-
import { ReactThreeFiber, ThreeElements } from '@react-three/fiber';
|
|
4
|
-
export type OutlinesProps = Omit<ThreeElements['group'], 'ref'> & {
|
|
5
|
-
color?: ReactThreeFiber.Color;
|
|
6
|
-
screenspace?: boolean;
|
|
7
|
-
opacity?: number;
|
|
8
|
-
transparent?: boolean;
|
|
9
|
-
thickness?: number;
|
|
10
|
-
angle?: number;
|
|
11
|
-
clippingPlanes?: THREE.Plane[];
|
|
12
|
-
toneMapped?: boolean;
|
|
13
|
-
polygonOffset?: boolean;
|
|
14
|
-
polygonOffsetFactor?: number;
|
|
15
|
-
renderOrder?: number;
|
|
16
|
-
};
|
|
17
|
-
export declare function Outlines({ color, opacity, transparent, screenspace, toneMapped, polygonOffset, polygonOffsetFactor, renderOrder, thickness, angle, clippingPlanes, ...props }: OutlinesProps): React.JSX.Element;
|
package/core/Outlines.js
DELETED
|
@@ -1,166 +0,0 @@
|
|
|
1
|
-
import _extends from '@babel/runtime/helpers/esm/extends';
|
|
2
|
-
import * as THREE from 'three';
|
|
3
|
-
import * as React from 'react';
|
|
4
|
-
import { shaderMaterial } from './shaderMaterial.js';
|
|
5
|
-
import { useThree, extend, applyProps } from '@react-three/fiber';
|
|
6
|
-
import { toCreasedNormals } from 'three-stdlib';
|
|
7
|
-
import { version } from '../helpers/constants.js';
|
|
8
|
-
|
|
9
|
-
const OutlinesMaterial = /* @__PURE__ */shaderMaterial({
|
|
10
|
-
screenspace: false,
|
|
11
|
-
color: /* @__PURE__ */new THREE.Color('black'),
|
|
12
|
-
opacity: 1,
|
|
13
|
-
thickness: 0.05,
|
|
14
|
-
size: /* @__PURE__ */new THREE.Vector2()
|
|
15
|
-
}, `#include <common>
|
|
16
|
-
#include <morphtarget_pars_vertex>
|
|
17
|
-
#include <skinning_pars_vertex>
|
|
18
|
-
#include <clipping_planes_pars_vertex>
|
|
19
|
-
uniform float thickness;
|
|
20
|
-
uniform bool screenspace;
|
|
21
|
-
uniform vec2 size;
|
|
22
|
-
void main() {
|
|
23
|
-
#if defined (USE_SKINNING)
|
|
24
|
-
#include <beginnormal_vertex>
|
|
25
|
-
#include <morphnormal_vertex>
|
|
26
|
-
#include <skinbase_vertex>
|
|
27
|
-
#include <skinnormal_vertex>
|
|
28
|
-
#include <defaultnormal_vertex>
|
|
29
|
-
#endif
|
|
30
|
-
#include <begin_vertex>
|
|
31
|
-
#include <morphtarget_vertex>
|
|
32
|
-
#include <skinning_vertex>
|
|
33
|
-
#include <project_vertex>
|
|
34
|
-
#include <clipping_planes_vertex>
|
|
35
|
-
vec4 tNormal = vec4(normal, 0.0);
|
|
36
|
-
vec4 tPosition = vec4(transformed, 1.0);
|
|
37
|
-
#ifdef USE_INSTANCING
|
|
38
|
-
tNormal = instanceMatrix * tNormal;
|
|
39
|
-
tPosition = instanceMatrix * tPosition;
|
|
40
|
-
#endif
|
|
41
|
-
if (screenspace) {
|
|
42
|
-
vec3 newPosition = tPosition.xyz + tNormal.xyz * thickness;
|
|
43
|
-
gl_Position = projectionMatrix * modelViewMatrix * vec4(newPosition, 1.0);
|
|
44
|
-
} else {
|
|
45
|
-
vec4 clipPosition = projectionMatrix * modelViewMatrix * tPosition;
|
|
46
|
-
vec4 clipNormal = projectionMatrix * modelViewMatrix * tNormal;
|
|
47
|
-
vec2 offset = normalize(clipNormal.xy) * thickness / size * clipPosition.w * 2.0;
|
|
48
|
-
clipPosition.xy += offset;
|
|
49
|
-
gl_Position = clipPosition;
|
|
50
|
-
}
|
|
51
|
-
}`, `uniform vec3 color;
|
|
52
|
-
uniform float opacity;
|
|
53
|
-
#include <clipping_planes_pars_fragment>
|
|
54
|
-
void main(){
|
|
55
|
-
#include <clipping_planes_fragment>
|
|
56
|
-
gl_FragColor = vec4(color, opacity);
|
|
57
|
-
#include <tonemapping_fragment>
|
|
58
|
-
#include <${version >= 154 ? 'colorspace_fragment' : 'encodings_fragment'}>
|
|
59
|
-
}`);
|
|
60
|
-
function Outlines({
|
|
61
|
-
color = 'black',
|
|
62
|
-
opacity = 1,
|
|
63
|
-
transparent = false,
|
|
64
|
-
screenspace = false,
|
|
65
|
-
toneMapped = true,
|
|
66
|
-
polygonOffset = false,
|
|
67
|
-
polygonOffsetFactor = 0,
|
|
68
|
-
renderOrder = 0,
|
|
69
|
-
thickness = 0.05,
|
|
70
|
-
angle = Math.PI,
|
|
71
|
-
clippingPlanes,
|
|
72
|
-
...props
|
|
73
|
-
}) {
|
|
74
|
-
const ref = React.useRef(null);
|
|
75
|
-
const [material] = React.useState(() => new OutlinesMaterial({
|
|
76
|
-
side: THREE.BackSide
|
|
77
|
-
}));
|
|
78
|
-
const {
|
|
79
|
-
gl
|
|
80
|
-
} = useThree();
|
|
81
|
-
const contextSize = gl.getDrawingBufferSize(new THREE.Vector2());
|
|
82
|
-
React.useMemo(() => extend({
|
|
83
|
-
OutlinesMaterial
|
|
84
|
-
}), []);
|
|
85
|
-
const oldAngle = React.useRef(0);
|
|
86
|
-
const oldGeometry = React.useRef(null);
|
|
87
|
-
React.useLayoutEffect(() => {
|
|
88
|
-
const group = ref.current;
|
|
89
|
-
if (!group) return;
|
|
90
|
-
const parent = group.parent;
|
|
91
|
-
if (parent && parent.geometry) {
|
|
92
|
-
if (oldAngle.current !== angle || oldGeometry.current !== parent.geometry) {
|
|
93
|
-
var _group$children;
|
|
94
|
-
oldAngle.current = angle;
|
|
95
|
-
oldGeometry.current = parent.geometry;
|
|
96
|
-
|
|
97
|
-
// Remove old mesh
|
|
98
|
-
let mesh = (_group$children = group.children) == null ? void 0 : _group$children[0];
|
|
99
|
-
if (mesh) {
|
|
100
|
-
if (angle) mesh.geometry.dispose();
|
|
101
|
-
group.remove(mesh);
|
|
102
|
-
}
|
|
103
|
-
if (parent.skeleton) {
|
|
104
|
-
mesh = new THREE.SkinnedMesh();
|
|
105
|
-
mesh.material = material;
|
|
106
|
-
mesh.bind(parent.skeleton, parent.bindMatrix);
|
|
107
|
-
group.add(mesh);
|
|
108
|
-
} else if (parent.isInstancedMesh) {
|
|
109
|
-
mesh = new THREE.InstancedMesh(parent.geometry, material, parent.count);
|
|
110
|
-
mesh.instanceMatrix = parent.instanceMatrix;
|
|
111
|
-
group.add(mesh);
|
|
112
|
-
} else {
|
|
113
|
-
mesh = new THREE.Mesh();
|
|
114
|
-
mesh.material = material;
|
|
115
|
-
group.add(mesh);
|
|
116
|
-
}
|
|
117
|
-
mesh.geometry = angle ? toCreasedNormals(parent.geometry, angle) : parent.geometry;
|
|
118
|
-
mesh.morphTargetInfluences = parent.morphTargetInfluences;
|
|
119
|
-
mesh.morphTargetDictionary = parent.morphTargetDictionary;
|
|
120
|
-
}
|
|
121
|
-
}
|
|
122
|
-
});
|
|
123
|
-
React.useLayoutEffect(() => {
|
|
124
|
-
const group = ref.current;
|
|
125
|
-
if (!group) return;
|
|
126
|
-
const mesh = group.children[0];
|
|
127
|
-
if (mesh) {
|
|
128
|
-
mesh.renderOrder = renderOrder;
|
|
129
|
-
const parent = group.parent;
|
|
130
|
-
applyProps(mesh, {
|
|
131
|
-
morphTargetInfluences: parent.morphTargetInfluences,
|
|
132
|
-
morphTargetDictionary: parent.morphTargetDictionary
|
|
133
|
-
});
|
|
134
|
-
applyProps(mesh.material, {
|
|
135
|
-
transparent,
|
|
136
|
-
thickness,
|
|
137
|
-
color,
|
|
138
|
-
opacity,
|
|
139
|
-
size: contextSize,
|
|
140
|
-
screenspace,
|
|
141
|
-
toneMapped,
|
|
142
|
-
polygonOffset,
|
|
143
|
-
polygonOffsetFactor,
|
|
144
|
-
clippingPlanes,
|
|
145
|
-
clipping: clippingPlanes && clippingPlanes.length > 0
|
|
146
|
-
});
|
|
147
|
-
}
|
|
148
|
-
});
|
|
149
|
-
React.useEffect(() => {
|
|
150
|
-
return () => {
|
|
151
|
-
// Dispose everything on unmount
|
|
152
|
-
const group = ref.current;
|
|
153
|
-
if (!group) return;
|
|
154
|
-
const mesh = group.children[0];
|
|
155
|
-
if (mesh) {
|
|
156
|
-
if (angle) mesh.geometry.dispose();
|
|
157
|
-
group.remove(mesh);
|
|
158
|
-
}
|
|
159
|
-
};
|
|
160
|
-
}, []);
|
|
161
|
-
return /*#__PURE__*/React.createElement("group", _extends({
|
|
162
|
-
ref: ref
|
|
163
|
-
}, props));
|
|
164
|
-
}
|
|
165
|
-
|
|
166
|
-
export { Outlines };
|