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

◆ resetParticle()

void fl::Luminova::resetParticle ( Particle & p,
fl::u32 tick )
private

Definition at line 36 of file luminova.cpp.

36 {
37 // Position at center
38 const float cx = static_cast<float>(getWidth() - 1) * 0.5f;
39 const float cy = static_cast<float>(getHeight() - 1) * 0.5f;
40 p.x = cx;
41 p.y = cy;
42
43 // Original used noise(I)*W, we approximate with 1D noise scaled to width
44 int I = static_cast<int>(tt / 50);
45 uint8_t n1 = inoise8(static_cast<uint16_t>(I * 19));
46 float noiseW = (static_cast<float>(n1) / 255.0f) * static_cast<float>(getWidth());
47
48 p.a = static_cast<float>(tt) * 1.25f + noiseW;
49 p.f = (tt & 1u) ? +1 : -1;
50 p.g = I;
51 p.s = 3.0f;
52 p.alive = true;
53}
uint16_t getHeight() const
Definition fx2d.h:24
uint16_t getWidth() const
Definition fx2d.h:25
uint8_t inoise8(uint16_t x, uint16_t y, uint16_t z)
8-Bit, fixed point implementation of Perlin's noise.
Definition noise.cpp:570

References fl::Luminova::Particle::a, fl::Luminova::Particle::alive, fl::Luminova::Particle::f, fl::Luminova::Particle::g, fl::Fx2d::getHeight(), fl::Fx2d::getWidth(), inoise8(), fl::Luminova::Particle::s, fl::Luminova::Particle::x, and fl::Luminova::Particle::y.

Referenced by draw().

+ Here is the call graph for this function:
+ Here is the caller graph for this function: