Skip to content

Commit 877c9fb

Browse files
committed
refactor(LFO): extract delay line logic from gsw
1 parent 206ea18 commit 877c9fb

1 file changed

Lines changed: 14 additions & 13 deletions

File tree

  • packages/components/visualization/LFO

packages/components/visualization/LFO/LFO.tsx

Lines changed: 14 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -72,22 +72,10 @@ export const LFO = forwardRef<LFORef, LFOProps>((props, ref) => {
7272
}
7373

7474
const generateWave = () => {
75-
generateSineWave()
76-
}
77-
78-
const generateSineWave = () => {
79-
if (type !== 'sine') return
80-
8175
const { width, height } = dimensions.current
8276
const svg = d3.select(LFORef.current).select('svg').attr('width', width).attr('height', height)
83-
svg.selectAll('*').remove()
8477

85-
const data = d3.range(0, 4 * Math.PI * (speed * 10), 0.01).map((x) => {
86-
return {
87-
x,
88-
y: Math.sin(x) * frequency * (max - min) * 0.5 + (max + min) / 2,
89-
}
90-
})
78+
svg.selectAll('*').remove()
9179

9280
if (delay > 0) {
9381
svg
@@ -107,6 +95,19 @@ export const LFO = forwardRef<LFORef, LFOProps>((props, ref) => {
10795
.attr('stroke-width', lineWidth)
10896
}
10997

98+
generateSineWave(svg)
99+
}
100+
101+
const generateSineWave = (svg: d3.Selection<d3.BaseType, unknown, null, undefined>) => {
102+
if (type !== 'sine' || !svg) return
103+
104+
const data = d3.range(0, 4 * Math.PI * (speed * 10), 0.01).map((x) => {
105+
return {
106+
x,
107+
y: Math.sin(x) * frequency * (max - min) * 0.5 + (max + min) / 2,
108+
}
109+
})
110+
110111
const line = d3
111112
.line<{ x: number; y: number }>()
112113
.x((d) => xScale.current!(d.x))

0 commit comments

Comments
 (0)