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

◆ splat()

Tile2x2_u8 fl::splat ( vec2f xy)

"Splat" as in "splat pixel rendering" takes a pixel value in float x,y coordinates and "splats" it into a 2x2 tile of pixel values.

Each of the four pixels in the tile is a uint8_t value in the range [0..255] that represents the intensity of the pixel at that point. Tile2x2_u8 splat(vec2f xy);

Definition at line 14 of file splat.cpp.

14 {
15 // 1) collect values.
16 float x = xy.x;
17 float y = xy.y;
18
19 // 2) integer cell indices
20 int16_t cx = static_cast<int16_t>(floorf(x));
21 int16_t cy = static_cast<int16_t>(floorf(y));
22
23 // 3) fractional offsets in [0..1)
24 float fx = x - cx;
25 float fy = y - cy;
26
27 // 4) bilinear weights
28 float w_ll = (1 - fx) * (1 - fy); // lower‑left
29 float w_lr = fx * (1 - fy); // lower‑right
30 float w_ul = (1 - fx) * fy; // upper‑left
31 float w_ur = fx * fy; // upper‑right
32
33 // 5) build Tile2x2_u8 anchored at (cx,cy)
34 Tile2x2_u8 out(vec2<int16_t>(cx, cy));
35 out.lower_left() = to_uint8(w_ll);
36 out.lower_right() = to_uint8(w_lr);
37 out.upper_left() = to_uint8(w_ul);
38 out.upper_right() = to_uint8(w_ur);
39
40 return out;
41}
int y
Definition Audio.ino:72
int x
Definition Audio.ino:71
unsigned int xy(unsigned int x, unsigned int y)
static uint8_t to_uint8(float f)
Definition splat.cpp:8

References fl::Tile2x2_u8::lower_left(), fl::Tile2x2_u8::lower_right(), to_uint8(), fl::Tile2x2_u8::upper_left(), fl::Tile2x2_u8::upper_right(), x, xy(), and y.

Referenced by fl::Corkscrew::at_splat(), and fl::XYPathRenderer::at_subpixel().

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