FastLED 3.9.15
Loading...
Searching...
No Matches
wave.h
Go to the documentation of this file.
1
2
3#pragma once
4
5#include "fx/2d/blend.h"
6#include "fx/2d/wave.h"
7#include "fx/fx2d.h"
8#include "fl/raster.h"
9
10using namespace fl;
11
12struct WaveEffect {
13 WaveFxPtr wave_fx_low;
14 WaveFxPtr wave_fx_high;
15 Blend2dPtr blend_stack;
16 void draw(Fx::DrawContext context) { blend_stack->draw(context); }
17 void addf(size_t x, size_t y, float value) {
18 wave_fx_low->addf(x, y, value);
19 wave_fx_high->addf(x, y, value);
20 }
21};
22
25 void draw(const vec2<int> &pt, uint32_t index, uint8_t value) {
26 float valuef = value / 255.0f;
27 int xx = pt.x;
28 int yy = pt.y;
29 mWaveFx->addf(xx, yy, valuef);
30 }
32};
33
WaveEffect wave_fx
XYMap xymap(WIDTH, HEIGHT, SERPENTINE)
uint32_t x[NUM_LAYERS]
Definition Fire2023.ino:82
uint32_t y[NUM_LAYERS]
Definition Fire2023.ino:83
_DrawContext DrawContext
Definition fx.h:21
WaveEffect NewWaveSimulation2D(const XYMap xymap)
Definition wave.cpp:42
Implements a simple red square effect for 2D LED grids.
Definition crgb.h:16
DrawRasterToWaveSimulator(WaveEffect *wave_fx)
Definition wave.h:24
WaveEffect * mWaveFx
Definition wave.h:31
void draw(const vec2< int > &pt, uint32_t index, uint8_t value)
Definition wave.h:25
void draw(Fx::DrawContext context)
Definition wave.h:16
void addf(size_t x, size_t y, float value)
Definition wave.h:17
WaveFxPtr wave_fx_low
Definition wave.h:13
Blend2dPtr blend_stack
Definition wave.h:15
WaveFxPtr wave_fx_high
Definition wave.h:14