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

◆ circleNoiseGen()

s16x16 fl::PerlinParticlePunch::circleNoiseGen ( u32 now,
s16x16 theta ) const
private

Definition at line 231 of file perlin_particle_punch.cpp.hpp.

231 {
232 s16x16 sin_val, cos_val;
233 s16x16::sincos(theta, sin_val, cos_val);
234 u32 x =
235 u32((i64(cos_val.raw() + s16x16::SCALE) * 0xafff) >> s16x16::FRAC_BITS);
236 u32 y =
237 u32((i64(sin_val.raw() + s16x16::SCALE) * 0xafff) >> s16x16::FRAC_BITS);
238 // Time dimension with time-warp multiplier
239 u32 z = u32(float(now * 0x000fu) * mTimeMultiplier);
240 u16 val = inoise16(x, y, z);
241 s16x16 tmp = s16x16::from_raw(
242 i32((u32(val) << s16x16::FRAC_BITS) / 0xcfffu));
243 constexpr s16x16 one(1.0f);
244 if (tmp > one)
245 tmp = one;
246 tmp = tmp * tmp;
247 tmp = tmp * tmp;
248 tmp = tmp * s16x16(255);
249 return tmp;
250}
uint32_t z[NUM_LAYERS]
Definition Fire2023.h:93
static constexpr i32 SCALE
Definition s16x16.h:23
static FASTLED_FORCE_INLINE void sincos(s16x16 angle, s16x16 &out_sin, s16x16 &out_cos) FL_NOEXCEPT
Definition s16x16.h:311
static constexpr int FRAC_BITS
Definition s16x16.h:22
static constexpr FASTLED_FORCE_INLINE s16x16 from_raw(i32 raw) FL_NOEXCEPT
Definition s16x16.h:54
fl::u16 inoise16(fl::u32 x, fl::u32 y, fl::u32 z, fl::u32 t)
fl::i64 i64
Definition s16x16x4.h:222

References fl::s16x16::FRAC_BITS, fl::s16x16::from_raw(), inoise16(), mTimeMultiplier, fl::s16x16::raw(), fl::s16x16::SCALE, fl::s16x16::sincos(), fl::x, fl::y, and z.

Referenced by noiseCircleDraw().

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