Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/AlexGyver/Arduino_Ambilight.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
Diffstat (limited to 'Библиотеки/FastLED-master/noise.h')
-rw-r--r--Библиотеки/FastLED-master/noise.h97
1 files changed, 97 insertions, 0 deletions
diff --git a/Библиотеки/FastLED-master/noise.h b/Библиотеки/FastLED-master/noise.h
new file mode 100644
index 0000000..7355e23
--- /dev/null
+++ b/Библиотеки/FastLED-master/noise.h
@@ -0,0 +1,97 @@
+#ifndef __INC_NOISE_H
+#define __INC_NOISE_H
+
+#include "FastLED.h"
+
+FASTLED_NAMESPACE_BEGIN
+
+///@file noise.h
+/// Noise functions provided by the library.
+
+///@defgroup Noise Noise functions
+///Simplex noise function definitions
+///@{
+/// @name scaled 16 bit noise functions
+///@{
+/// 16 bit, fixed point implementation of perlin's Simplex Noise. Coordinates are
+/// 16.16 fixed point values, 32 bit integers with integral coordinates in the high 16
+/// bits and fractional in the low 16 bits, and the function takes 1d, 2d, and 3d coordinate
+/// values. These functions are scaled to return 0-65535
+
+extern uint16_t inoise16(uint32_t x, uint32_t y, uint32_t z);
+extern uint16_t inoise16(uint32_t x, uint32_t y);
+extern uint16_t inoise16(uint32_t x);
+///@}
+
+/// @name raw 16 bit noise functions
+//@{
+/// 16 bit raw versions of the noise functions. These values are not scaled/altered and have
+/// output values roughly in the range (-18k,18k)
+extern int16_t inoise16_raw(uint32_t x, uint32_t y, uint32_t z);
+extern int16_t inoise16_raw(uint32_t x, uint32_t y);
+extern int16_t inoise16_raw(uint32_t x);
+///@}
+
+/// @name 8 bit scaled noise functions
+///@{
+/// 8 bit, fixed point implementation of perlin's Simplex Noise. Coordinates are
+/// 8.8 fixed point values, 16 bit integers with integral coordinates in the high 8
+/// bits and fractional in the low 8 bits, and the function takes 1d, 2d, and 3d coordinate
+/// values. These functions are scaled to return 0-255
+extern uint8_t inoise8(uint16_t x, uint16_t y, uint16_t z);
+extern uint8_t inoise8(uint16_t x, uint16_t y);
+extern uint8_t inoise8(uint16_t x);
+///@}
+
+/// @name 8 bit raw noise functions
+///@{
+/// 8 bit raw versions of the noise functions. These values are not scaled/altered and have
+/// output values roughly in the range (-70,70)
+extern int8_t inoise8_raw(uint16_t x, uint16_t y, uint16_t z);
+extern int8_t inoise8_raw(uint16_t x, uint16_t y);
+extern int8_t inoise8_raw(uint16_t x);
+///@}
+
+///@name raw fill functions
+///@{
+/// Raw noise fill functions - fill into a 1d or 2d array of 8-bit values using either 8-bit noise or 16-bit noise
+/// functions.
+///@param pData the array of data to write into
+///@param num_points the number of points of noise to compute
+///@param octaves the number of octaves to use for noise
+///@param x the x position in the noise field
+///@param y the y position in the noise field for 2d functions
+///@param scalex the scale (distance) between x points when filling in noise
+///@param scaley the scale (distance) between y points when filling in noise
+///@param time the time position for the noise field
+void fill_raw_noise8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint16_t x, int scalex, uint16_t time);
+void fill_raw_noise16into8(uint8_t *pData, uint8_t num_points, uint8_t octaves, uint32_t x, int scalex, uint32_t time);
+void fill_raw_2dnoise8(uint8_t *pData, int width, int height, uint8_t octaves, uint16_t x, int scalex, uint16_t y, int scaley, uint16_t time);
+void fill_raw_2dnoise16into8(uint8_t *pData, int width, int height, uint8_t octaves, uint32_t x, int scalex, uint32_t y, int scaley, uint32_t time);
+
+void fill_raw_2dnoise16(uint16_t *pData, int width, int height, uint8_t octaves, q88 freq88, fract16 amplitude, int skip, uint32_t x, int scalex, uint32_t y, int scaley, uint32_t time);
+void fill_raw_2dnoise16into8(uint8_t *pData, int width, int height, uint8_t octaves, q44 freq44, fract8 amplitude, int skip, uint32_t x, int scalex, uint32_t y, int scaley, uint32_t time);
+///@}
+
+///@name fill functions
+///@{
+/// fill functions to fill leds with values based on noise functions. These functions use the fill_raw_* functions as appropriate.
+void fill_noise8(CRGB *leds, int num_leds,
+ uint8_t octaves, uint16_t x, int scale,
+ uint8_t hue_octaves, uint16_t hue_x, int hue_scale,
+ uint16_t time);
+void fill_noise16(CRGB *leds, int num_leds,
+ uint8_t octaves, uint16_t x, int scale,
+ uint8_t hue_octaves, uint16_t hue_x, int hue_scale,
+ uint16_t time, uint8_t hue_shift=0);
+void fill_2dnoise8(CRGB *leds, int width, int height, bool serpentine,
+ uint8_t octaves, uint16_t x, int xscale, uint16_t y, int yscale, uint16_t time,
+ uint8_t hue_octaves, uint16_t hue_x, int hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time,bool blend);
+void fill_2dnoise16(CRGB *leds, int width, int height, bool serpentine,
+ uint8_t octaves, uint32_t x, int xscale, uint32_t y, int yscale, uint32_t time,
+ uint8_t hue_octaves, uint16_t hue_x, int hue_xscale, uint16_t hue_y, uint16_t hue_yscale,uint16_t hue_time, bool blend, uint16_t hue_shift=0);
+
+FASTLED_NAMESPACE_END
+///@}
+
+#endif