|
FastLED 3.9.15
|
Abstract base class for 2D flow field effects.
Manages common timing and parameters. Concrete subclasses (FlowFieldFloat, FlowFieldFP) implement the actual rendering in drawImpl().
Concept by Stefan Petrick. Original C++ implementation by 4wheeljive (ColorTrails project). Distilled into a self-contained FastLED Fx2d class.
Example usage:
Definition at line 226 of file flowfield.h.
#include <flowfield.h>
Inheritance diagram for fl::FlowField:
Collaboration diagram for fl::FlowField:Public Types | |
| using | Params = FlowFieldParams |
Public Types inherited from fl::Fx | |
| using | DrawContext = ::fl::DrawContext |
Public Member Functions | |
| ~FlowField () FL_NOEXCEPT override=default | |
| void | draw (DrawContext context) override |
| Handles timing, then delegates to drawImpl(). | |
| Params & | getParams () |
| const Params & | getParams () const |
| NoiseBias2D & | noiseBias () |
| const NoiseBias2D & | noiseBias () const |
| void | noisePunch (float amplitude=1.0f, BumpShape shape=BumpShape::HalfSine) |
| Trigger a noise punch on both axes at center with proportional width. | |
| void | noisePunchX (float center, float width, float amplitude=1.0f, BumpShape shape=BumpShape::HalfSine) |
| Trigger a noise punch on the X axis (columns). | |
| void | noisePunchY (float center, float width, float amplitude=1.0f, BumpShape shape=BumpShape::HalfSine) |
| Trigger a noise punch on the Y axis (rows). | |
| void | setColorShift (float speed) |
| void | setDotCount (int count) |
| void | setEmitterMode (int mode) |
| void | setEndpointSpeed (float speed) |
| void | setFlowAmplitudeX (float amp) |
| void | setFlowAmplitudeY (float amp) |
| void | setFlowShift (float shift) |
| void | setFlowSpeedX (float speed) |
| void | setFlowSpeedY (float speed) |
| void | setNoiseFrequency (float freq) |
| void | setNoiseFrequencyX (float freq) |
| void | setNoiseFrequencyY (float freq) |
| void | setPersistence (float halfLife) |
| void | setReverseXProfile (bool rev) |
| void | setShowFlowVectors (bool show) |
| void | setSpeed (float speed) |
| Set time speed/scale (1.0 = normal, 0.5 = half speed, etc.) | |
| float | speed () const |
Public Member Functions inherited from fl::Fx2d | |
| Fx2d (const XYMap &xyMap) | |
| u16 | getHeight () const |
| u16 | getWidth () const |
| XYMap & | getXYMap () |
| const XYMap & | getXYMap () const |
| void | setXYMap (const XYMap &xyMap) |
| u16 | xyMap (u16 x, u16 y) const |
Public Member Functions inherited from fl::Fx | |
| Fx (u16 numLeds) | |
| virtual fl::string | fxName () const =0 |
| u16 | getNumLeds () const |
| virtual bool | hasFixedFrameRate (float *fps) const |
| virtual void | pause (fl::u32 now) |
| virtual void | resume (fl::u32 now) |
Protected Member Functions | |
| FlowField (const XYMap &xyMap, const Params ¶ms=Params()) | |
| virtual void | drawImpl (DrawContext context, u32 dt_ms, u32 t_ms)=0 |
| Subclasses implement rendering given the time delta and total time. | |
Protected Member Functions inherited from fl::Fx | |
| virtual | ~Fx () FL_NOEXCEPT |
Protected Attributes | |
| NoiseBias2D | mNoiseBias |
| Params | mParams |
Protected Attributes inherited from fl::Fx2d | |
| XYMap | mXyMap |
Protected Attributes inherited from fl::Fx | |
| u16 | mNumLeds |
Private Attributes | |
| u32 | mLastWarpedMs = 0 |
| TimeWarp | mTimeWarp |