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

◆ pnoise()

FASTLED_FORCE_INLINE float fl::pnoise ( float x,
float y,
float z )

Definition at line 65 of file perlin_float.h.

65 {
66 int X = (int)fl::floorf(x) & 255, /* FIND UNIT CUBE THAT */
67 Y = (int)fl::floorf(y) & 255, /* CONTAINS POINT. */
68 Z = (int)fl::floorf(z) & 255;
69 x -= fl::floorf(x); /* FIND RELATIVE X,Y,Z */
70 y -= fl::floorf(y); /* OF POINT IN CUBE. */
71 z -= fl::floorf(z);
72 float u = fade(x), /* COMPUTE FADE CURVES */
73 v = fade(y), /* FOR EACH OF X,Y,Z. */
74 w = fade(z);
75 int A = P(X) + Y, AA = P(A) + Z,
76 AB = P(A + 1) + Z, /* HASH COORDINATES OF */
77 B = P(X + 1) + Y, BA = P(B) + Z,
78 BB = P(B + 1) + Z; /* THE 8 CUBE CORNERS, */
79
80 return lerp(w,
81 lerp(v,
82 lerp(u, grad(P(AA), x, y, z), /* AND ADD */
83 grad(P(BA), x - 1, y, z)), /* BLENDED */
84 lerp(u, grad(P(AB), x, y - 1, z), /* RESULTS */
85 grad(P(BB), x - 1, y - 1, z))), /* FROM 8 */
86 lerp(v,
87 lerp(u, grad(P(AA + 1), x, y, z - 1), /* CORNERS */
88 grad(P(BA + 1), x - 1, y, z - 1)), /* OF CUBE */
89 lerp(u, grad(P(AB + 1), x, y - 1, z - 1),
90 grad(P(BB + 1), x - 1, y - 1, z - 1))));
91}
uint32_t z[NUM_LAYERS]
Definition Fire2023.h:93
FL_DISABLE_WARNING_PUSH unsigned char * B
float floorf(float value) FL_NOEXCEPT
Definition math.h:304
FASTLED_FORCE_INLINE float fade(float t)
FASTLED_FORCE_INLINE fl::u8 P(fl::u8 x)
FASTLED_FORCE_INLINE float grad(int hash, float x, float y, float z)
FASTLED_FORCE_INLINE float lerp(float t, float a, float b)

References B, fade(), FASTLED_FORCE_INLINE, floorf(), grad(), lerp(), P(), x, y, and z.

Referenced by calculate_oscillators(), render_value(), and autoresearch::animartrix_check::runPerlinBenchmark().

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