FastLED 3.10.8
Loading...
Searching...
No Matches
fl::FlowField Class Referenceabstract

Detailed Description

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:

XYMap xymap(22, 22, true);
FlowFieldFloat floatFx(xymap); // float-precision
FlowFieldFP fpFx(xymap); // fixed-point (fast)
FlowField &fx = floatFx; // use via base pointer/reference
fx.draw(ctx);
XYMap xymap
FlowField(const XYMap &xyMap, const Params &params=Params()) FL_NO_EXCEPT
void draw(DrawContext context) FL_NO_EXCEPT override
Handles timing, then delegates to drawImpl().
Pure fixed-point (s16x16) flow field implementation for maximum speed.
Definition flowfield.h:360
Float-precision flow field implementation.
Definition flowfield.h:295
Examples
FlowField.ino.

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_NO_EXCEPT override=default
 
void draw (DrawContext context) FL_NO_EXCEPT override
 Handles timing, then delegates to drawImpl().
 
const Params & getParams () const FL_NO_EXCEPT
 
Params & getParams () FL_NO_EXCEPT
 
const NoiseBias2D & noiseBias () const FL_NO_EXCEPT
 
NoiseBias2D & noiseBias () FL_NO_EXCEPT
 
void noisePunch (float amplitude=1.0f, BumpShape shape=BumpShape::HalfSine) FL_NO_EXCEPT
 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) FL_NO_EXCEPT
 Trigger a noise punch on the X axis (columns).
 
void noisePunchY (float center, float width, float amplitude=1.0f, BumpShape shape=BumpShape::HalfSine) FL_NO_EXCEPT
 Trigger a noise punch on the Y axis (rows).
 
void setColorShift (float speed) FL_NO_EXCEPT
 
void setDotCount (int count) FL_NO_EXCEPT
 
void setEmitterMode (int mode) FL_NO_EXCEPT
 
void setEndpointSpeed (float speed) FL_NO_EXCEPT
 
void setFlowAmplitudeX (float amp) FL_NO_EXCEPT
 
void setFlowAmplitudeY (float amp) FL_NO_EXCEPT
 
void setFlowShift (float shift) FL_NO_EXCEPT
 
void setFlowSpeedX (float speed) FL_NO_EXCEPT
 
void setFlowSpeedY (float speed) FL_NO_EXCEPT
 
void setNoiseFrequency (float freq) FL_NO_EXCEPT
 
void setNoiseFrequencyX (float freq) FL_NO_EXCEPT
 
void setNoiseFrequencyY (float freq) FL_NO_EXCEPT
 
void setPersistence (float halfLife) FL_NO_EXCEPT
 
void setReverseXProfile (bool rev) FL_NO_EXCEPT
 
void setShowFlowVectors (bool show) FL_NO_EXCEPT
 
void setSpeed (float speed) FL_NO_EXCEPT
 Set time speed/scale (1.0 = normal, 0.5 = half speed, etc.)
 
float speed () const FL_NO_EXCEPT
 
- Public Member Functions inherited from fl::Fx2d
 Fx2d (const XYMap &xyMap) FL_NO_EXCEPT
 
u16 getHeight () const FL_NO_EXCEPT
 
u16 getWidth () const FL_NO_EXCEPT
 
const XYMap & getXYMap () const FL_NO_EXCEPT
 
XYMap & getXYMap () FL_NO_EXCEPT
 
void setXYMap (const XYMap &xyMap) FL_NO_EXCEPT
 
u16 xyMap (u16 x, u16 y) const FL_NO_EXCEPT
 
- Public Member Functions inherited from fl::Fx
 Fx (u16 numLeds) FL_NO_EXCEPT
 
virtual fl::string fxName () const FL_NO_EXCEPT=0
 
u16 getNumLeds () const FL_NO_EXCEPT
 
virtual bool hasFixedFrameRate (float *fps) const FL_NO_EXCEPT
 
virtual void pause (fl::u32 now) FL_NO_EXCEPT
 
virtual void resume (fl::u32 now) FL_NO_EXCEPT
 

Protected Member Functions

 FlowField (const XYMap &xyMap, const Params &params=Params()) FL_NO_EXCEPT
 
virtual void drawImpl (DrawContext context, u32 dt_ms, u32 t_ms) FL_NO_EXCEPT=0
 Subclasses implement rendering given the time delta and total time.
 
- Protected Member Functions inherited from fl::Fx
virtual ~Fx () FL_NO_EXCEPT
 

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
 

The documentation for this class was generated from the following files: