105 out.
crgbMap = WaveCrgbGradientMapPtr::New(electricBlueFirePal);
117 out.
crgbMap = WaveCrgbGradientMapPtr::New(electricGreenFirePal);
152 uint8_t min_x = perc *
WIDTH;
153 uint8_t max_x = (1 - perc) *
WIDTH;
154 uint8_t min_y = perc *
HEIGHT;
155 uint8_t max_y = (1 - perc) *
HEIGHT;
158 int x = random(min_x, max_x);
159 int y = random(min_y, max_y);
180 pointTransition.
trigger(now, total, 0, 0);
184 if (!pointTransition.
isActive(now)) {
190 int mid_x =
WIDTH / 2;
194 int amount =
WIDTH / 2;
197 int start_x = mid_x - amount;
198 int end_x = mid_x + amount;
199 int start_y = mid_y - amount;
200 int end_y = mid_y + amount;
203 int curr_alpha = pointTransition.
update8(now);
207 int left_x = map(curr_alpha, 0, 255, mid_x, start_x);
208 int down_y = map(curr_alpha, 0, 255, mid_y, start_y);
209 int right_x = map(curr_alpha, 0, 255, mid_x, end_x);
210 int up_y = map(curr_alpha, 0, 255, mid_y, end_y);
213 float curr_alpha_f = curr_alpha / 255.0f;
217 float valuef = (1.0f - curr_alpha_f) *
fancyIntensity.value() / 255.0f;
226 for (
int x = left_x - span;
x < left_x + span;
x++) {
232 for (
int x = right_x - span;
x < right_x + span;
x++) {
238 for (
int y = down_y - span;
y < down_y + span;
y++) {
244 for (
int y = up_y - span;
y < up_y + span;
y++) {
310 static uint32_t nextTrigger = 0;
313 uint32_t trigger_delta = nextTrigger - now;
316 if (trigger_delta > 10000) {
324 if (now >= nextTrigger) {
334 uint32_t min_rand = 400 *
speed;
335 uint32_t max_rand = 2000 *
speed;
338 uint32_t min =
MIN(min_rand, max_rand);
339 uint32_t max =
MAX(min_rand, max_rand);
347 nextTrigger = now + random(min, max);
354 auto screenmap =
xyMap.toScreenMap();
355 screenmap.setDiameter(.2);
374 uint32_t now = millis();
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
central include file for FastLED, defines the CFastLED class/object
LED controller for WS2812 LEDs with GRB color order.
uint8_t update8(uint32_t now) override
Compute current 0–255 output based on how much time has elapsed since trigger().
bool isActive(uint32_t now) const override
void trigger(uint32_t now) override
Call this when you want to (re)start the ramp cycle.
#define DEFINE_GRADIENT_PALETTE(X)
Defines a static RGB palette very compactly using a series of connected color gradients.
Implements a simple red square effect for 2D LED grids.
Representation of an RGB pixel (Red, Green, Blue)
UISlider blurAmount("Global Blur Amount", 0, 0, 172, 1)
XYMap xyMap(WIDTH, HEIGHT, IS_SERPINTINE)
UISlider blurPassesLower("Wave Lower: Blur Passes", 1, 1, 10, 1)
UISlider blurPasses("Global Blur Passes", 1, 1, 10, 1)
UISlider blurAmountLower("Wave Lower: Blur Amount", 0, 0, 172, 1)
UISlider speedLower("Wave Lower: Speed", 0.26f, 0.0f, 1.0f)
UISlider blurPassesUpper("Wave Upper: Blur Passes", 1, 1, 10, 1)
UISlider fancyParticleSpan("Fancy Particle Span", 0.06f, 0.01f, 0.2f, 0.01f)
UICheckbox autoTrigger("Auto Trigger", true)
WaveFx waveFxLower(xyRect, CreateArgsLower())
UICheckbox halfDuplexUpper("Wave Upper: Half Duplex", true)
UISlider speedUpper("Wave Upper: Speed", 0.12f, 0.0f, 1.0f)
UITitle title("FxWave2D Demo")
void processAutoTrigger(uint32_t now)
UIButton button("Trigger")
UISlider fancySpeed("Fancy Speed", 796, 0, 1000, 1)
WaveFx::Args CreateArgsLower()
XYMap xyRect(WIDTH, HEIGHT, false)
UISlider dampeningUpper("Wave Upper: Dampening", 8.9f, 0.0f, 20.0f, 0.1f)
UICheckbox easeModeSqrt("Ease Mode Sqrt", false)
UICheckbox xCyclical("X Is Cyclical", false)
UIButton buttonFancy("Trigger Fancy")
UISlider fancyIntensity("Fancy Intensity", 32, 1, 255, 1)
UISlider triggerSpeed("Trigger Speed",.5f, 0.0f, 1.0f, 0.01f)
UIDescription description("Advanced layered and blended wave effects.")
UISlider blurAmountUpper("Wave Upper: Blur Amount", 95, 0, 172, 1)
SuperSample getSuperSample()
UISlider superSample("SuperSampleExponent", 1.f, 0.f, 3.f, 1.f)
void applyFancyEffect(uint32_t now, bool button_active)
UISlider dampeningLower("Wave Lower: Dampening", 9.0f, 0.0f, 20.0f, 0.1f)
UICheckbox halfDuplexLower("Wave Lower: Half Duplex", true)
WaveFx::Args CreateArgsUpper()
WaveFx waveFxUpper(xyRect, CreateArgsUpper())