FastLED 3.9.15
Loading...
Searching...
No Matches

◆ loop()

void loop ( )

Definition at line 80 of file FlowField.ino.

80 {
82
83 // Use base class reference for uniform parameter setting + draw
84 fl::FlowField &fx = (computeMode.as_int() == 0)
85 ? static_cast<fl::FlowField &>(flowFieldFloat)
86 : static_cast<fl::FlowField &>(flowFieldFP);
87
98 fx.setDotCount(numDots.as<int>());
99 fx.setEmitterMode(emitterMode.as_int());
101
102 if (noisePunch.clicked()) {
103 // 50% X axis, 50% Y axis; random position; random sign
104 bool pickX = random8() < 128;
105 float sign = (random8() < 128) ? 1.0f : -1.0f;
106 if (pickX) {
107 float cx = random8(0, fx.getWidth());
108 float w = fx.getWidth() * 0.4f;
109 fx.noisePunchX(cx, w, sign);
110 } else {
111 float cy = random8(0, fx.getHeight());
112 float h = fx.getHeight() * 0.4f;
113 fx.noisePunchY(cy, h, sign);
114 }
115 }
116
117 fx.draw(ctx);
118 FastLED.show();
119}
fl::CRGB leds[NUM_LEDS]
FL_DISABLE_WARNING_PUSH FL_DISABLE_WARNING_GLOBAL_CONSTRUCTORS CFastLED FastLED
Global LED strip management instance.
fl::UISlider flowSpeedY("Y Speed", 0.10f, -2.0f, 2.0f, 0.01f)
fl::UICheckbox showFlowVectors("Show Flow Vectors", false)
fl::UISlider flowAmpY("Y Amplitude", 1.0f, 0.0f, 2.0f, 0.01f)
fl::UISlider flowFreqX("X Frequency", 0.33f, 0.05f, 4.0f, 0.01f)
fl::UISlider flowAmpX("X Amplitude", 1.0f, 0.0f, 2.0f, 0.01f)
fl::UIButton noisePunch("NoisePunch")
fl::UIDropdown emitterMode("Emitter Mode", {"Lissajous", "Dots", "Both"})
fl::FlowFieldFloat flowFieldFloat(xyMap)
fl::UISlider numDots("Dots", 3, 1, 5, 1)
fl::UISlider flowFreqY("Y Frequency", 0.32f, 0.05f, 4.0f, 0.01f)
fl::UISlider endpointSpeed("Endpoint Speed", 0.80f, 0.05f, 2.0f, 0.01f)
fl::UISlider colorShift("Color Shift", 0.04f, 0.0f, 0.5f, 0.01f)
fl::UISlider flowShift("Pixel Shift", 1.8f, 0.5f, 4.0f, 0.1f)
fl::UISlider persistence("Trail Half-Life (s)", 0.86f, 0.05f, 5.0f, 0.01f)
fl::UIDropdown computeMode("Compute Mode", {"Float", "Fixed-Point (Fast)"})
fl::UISlider flowSpeedX("X Speed", 0.10f, -2.0f, 2.0f, 0.01f)
fl::FlowFieldFP flowFieldFP(xyMap)
void setColorShift(float speed)
Definition flowfield.h:238
void setFlowSpeedX(float speed)
Definition flowfield.h:242
void setFlowSpeedY(float speed)
Definition flowfield.h:243
void setNoiseFrequencyX(float freq)
Definition flowfield.h:244
void setEndpointSpeed(float speed)
Definition flowfield.h:252
void setDotCount(int count)
Definition flowfield.h:250
void setPersistence(float halfLife)
Definition flowfield.h:237
void setFlowAmplitudeX(float amp)
Definition flowfield.h:239
void draw(DrawContext context) override
Handles timing, then delegates to drawImpl().
void setFlowShift(float shift)
Definition flowfield.h:241
void setNoiseFrequencyY(float freq)
Definition flowfield.h:245
void setEmitterMode(int mode)
Definition flowfield.h:251
void setShowFlowVectors(bool show)
Definition flowfield.h:254
void setFlowAmplitudeY(float amp)
Definition flowfield.h:240
Abstract base class for 2D flow field effects.
Definition flowfield.h:226
::fl::DrawContext DrawContext
Definition fx.h:21
fl::u32 millis()
Universal millisecond timer - returns milliseconds since system startup.
Base definition for an LED controller.
Definition crgb.hpp:179

References colorShift, computeMode, fl::FlowField::draw(), emitterMode, endpointSpeed, FastLED, flowAmpX, flowAmpY, flowFieldFloat, flowFieldFP, flowFreqX, flowFreqY, flowShift, flowSpeedX, flowSpeedY, fl::Fx2d::getHeight(), fl::Fx2d::getWidth(), leds, noisePunch, fl::FlowField::noisePunchX(), fl::FlowField::noisePunchY(), numDots, persistence, random8(), fl::FlowField::setColorShift(), fl::FlowField::setDotCount(), fl::FlowField::setEmitterMode(), fl::FlowField::setEndpointSpeed(), fl::FlowField::setFlowAmplitudeX(), fl::FlowField::setFlowAmplitudeY(), fl::FlowField::setFlowShift(), fl::FlowField::setFlowSpeedX(), fl::FlowField::setFlowSpeedY(), fl::FlowField::setNoiseFrequencyX(), fl::FlowField::setNoiseFrequencyY(), fl::FlowField::setPersistence(), fl::FlowField::setShowFlowVectors(), and showFlowVectors.

+ Here is the call graph for this function: