MCPcopy Create free account
hub / github.com/FastLED/FastLED / noise

Method noise

src/fl/fx/2d/flowfield.cpp.hpp:78–93  ·  view source on GitHub ↗

Source from the content-addressed store, hash-verified

76}
77
78float FlowFieldFloat::Perlin2D::noise(float x, float y) const {
79 int xi = ((int)floorf(x)) & 255;
80 int yi = ((int)floorf(y)) & 255;
81 float xf = x - floorf(x);
82 float yf = y - floorf(y);
83 float u = fade(xf);
84 float v = fade(yf);
85 int aa = perm[perm[xi] + yi];
86 int ab = perm[perm[xi] + yi + 1];
87 int ba = perm[perm[xi + 1] + yi];
88 int bb = perm[perm[xi + 1] + yi + 1];
89 float x1 = lerp(grad(aa, xf, yf), grad(ba, xf - 1.0f, yf), u);
90 float x2 = lerp(grad(ab, xf, yf - 1.0f),
91 grad(bb, xf - 1.0f, yf - 1.0f), u);
92 return lerp(x1, x2, v);
93}
94
95float FlowFieldFloat::Perlin2D::grad(int h, float x, float y) {
96 switch (h & 7) {

Callers 1

flowPrepareMethod · 0.80

Calls 4

floorfFunction · 0.85
fadeFunction · 0.85
lerpFunction · 0.50
gradFunction · 0.50

Tested by

no test coverage detected