-
Notifications
You must be signed in to change notification settings - Fork 622
/
useTrailTexture.stories.tsx
41 lines (34 loc) 路 1.04 KB
/
useTrailTexture.stories.tsx
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
import * as React from 'react'
import { withKnobs, number } from '@storybook/addon-knobs'
import { Setup } from '../Setup'
import { useTrailTexture } from '../../src'
export default {
title: 'misc/useTrailTexture',
component: useTrailTexture,
decorators: [withKnobs, (storyFn) => <Setup>{storyFn()}</Setup>],
}
function TrailMesh() {
// a convenience hook that uses useLoader and TextureLoader
const [texture, onMove] = useTrailTexture({
size: number('Size', 256, { min: 64, step: 8 }),
radius: number('Radius', 0.3, { range: true, min: 0.1, max: 1, step: 0.1 }),
maxAge: number('Max age', 750, { range: true, min: 300, max: 1000, step: 100 }),
})
return (
<mesh scale={7} onPointerMove={onMove}>
<planeGeometry />
<meshBasicMaterial map={texture} />
</mesh>
)
}
function UseTrailTextureScene() {
return (
<React.Suspense fallback={null}>
<TrailMesh />
</React.Suspense>
)
}
export const UseTextureSceneSt = () => <UseTrailTextureScene />
UseTextureSceneSt.story = {
name: 'Default',
}