FastLED 3.10.8
Loading...
Searching...
No Matches
fl::FlowFieldFloat Class Reference

Detailed Description

Float-precision flow field implementation.

Examples
FlowField.ino.

Definition at line 295 of file flowfield.h.

#include <flowfield.h>

+ Inheritance diagram for fl::FlowFieldFloat:
+ Collaboration diagram for fl::FlowFieldFloat:

Classes

class  Perlin2D
 

Public Member Functions

 FlowFieldFloat (const XYMap &xyMap, const Params &params=Params()) FL_NO_EXCEPT
 
fl::string fxName () const FL_NO_EXCEPT override
 
- Public Member Functions inherited from fl::FlowField
 ~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
 
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

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

Private Member Functions

void drawAALine (float x0, float y0, float x1, float y1, float t, float colorShift) FL_NO_EXCEPT
 
void drawDot (float cx, float cy, float diam, u8 cr, u8 cg, u8 cb) FL_NO_EXCEPT
 
void drawFlowVectors (fl::span< CRGB > leds) FL_NO_EXCEPT
 
void emitLissajousLine (float t) FL_NO_EXCEPT
 
void emitOrbitalDots (float t) FL_NO_EXCEPT
 
void flowAdvect (float dt) FL_NO_EXCEPT
 
void flowPrepare (float t) FL_NO_EXCEPT
 
int idx (int y, int x) const FL_NO_EXCEPT
 

Static Private Member Functions

static float clampf (float v, float lo, float hi) FL_NO_EXCEPT
 
static u8 f2u8 (float v) FL_NO_EXCEPT
 
static float fmodPos (float x, float m) FL_NO_EXCEPT
 
static CRGB rainbow (float t, float speed, float phase) FL_NO_EXCEPT
 

Private Attributes

fl::vector< float > mB
 
fl::vector< float > mG
 
Perlin2D mNoiseGenX
 
Perlin2D mNoiseGenY
 
fl::vector< float > mR
 
fl::vector< float > mTB
 
fl::vector< float > mTG
 
fl::vector< float > mTR
 
fl::vector< float > mXProf
 Per-column values; drives vertical shift.
 
fl::vector< float > mYProf
 Per-row values; drives horizontal shift.
 

Additional Inherited Members

- Public Types inherited from fl::FlowField
using Params = FlowFieldParams
 
- Public Types inherited from fl::Fx
using DrawContext = ::fl::DrawContext
 
- Protected Attributes inherited from fl::FlowField
NoiseBias2D mNoiseBias
 
Params mParams
 
- Protected Attributes inherited from fl::Fx2d
XYMap mXyMap
 
- Protected Attributes inherited from fl::Fx
u16 mNumLeds
 

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