FastLED 3.10.8
Loading...
Searching...
No Matches

◆ grad8() [3/3]

static fl::i8 grad8 ( fl::u8 hash,
fl::i8 x,
fl::i8 y,
fl::i8 z )
inlinestatic

Definition at line 203 of file noise.cpp.hpp.

203 {
204 // Industry-standard 3D Perlin noise gradient implementation
205 // Uses proper 12 edge vectors of a cube for maximum range coverage
206
207 switch(hash & 0xF) {
208 case 0: return fl::avg7( x, y); // (1,1,0)
209 case 1: return fl::avg7(-x, y); // (-1,1,0)
210 case 2: return fl::avg7( x, -y); // (1,-1,0)
211 case 3: return fl::avg7(-x, -y); // (-1,-1,0)
212 case 4: return fl::avg7( x, z); // (1,0,1)
213 case 5: return fl::avg7(-x, z); // (-1,0,1)
214 case 6: return fl::avg7( x, -z); // (1,0,-1)
215 case 7: return fl::avg7(-x, -z); // (-1,0,-1)
216 case 8: return fl::avg7( y, z); // (0,1,1)
217 case 9: return fl::avg7(-y, z); // (0,-1,1)
218 case 10: return fl::avg7( y, -z); // (0,1,-1)
219 case 11: return fl::avg7(-y, -z); // (0,-1,-1)
220 // Repeat first 4 for hash values 12-15 (proper wrap-around)
221 case 12: return fl::avg7( x, y); // (1,1,0)
222 case 13: return fl::avg7(-x, y); // (-1,1,0)
223 case 14: return fl::avg7( x, -y); // (1,-1,0)
224 case 15: return fl::avg7(-x, -y); // (-1,-1,0)
225 }
226 return 0; // Should never reach here
227}
int y
Definition simple.h:93
int x
Definition simple.h:92
uint32_t z[NUM_LAYERS]
Definition Fire2023.h:93

References FL_NO_EXCEPT, x, y, and z.

Referenced by inoise8_raw(), inoise8_raw(), and inoise8_raw().

+ Here is the caller graph for this function: