X-Git-Url: https://git.lizzy.rs/?a=blobdiff_plain;f=src%2Fnoise.h;h=ba26519f24bc027d71a570f1bba7fd4fd5d59f05;hb=dc5319b6c9f2e39d93f2fa881403f36fc47ffaac;hp=c069046c3464894fa536d7381a5130c25f902597;hpb=25a7fabed83caccb2c321bb4d080c5907f37b60a;p=minetest.git diff --git a/src/noise.h b/src/noise.h index c069046c3..ba26519f2 100644 --- a/src/noise.h +++ b/src/noise.h @@ -24,11 +24,46 @@ double easeCurve(double t); // Return value: -1 ... 1 double noise2d(int x, int y, int seed); +double noise3d(int x, int y, int z, int seed); double noise2d_gradient(double x, double y, int seed); +double noise3d_gradient(double x, double y, double z, int seed); double noise2d_perlin(double x, double y, int seed, int octaves, double persistence); +double noise2d_perlin_abs(double x, double y, int seed, + int octaves, double persistence); + +double noise3d_perlin(double x, double y, double z, int seed, + int octaves, double persistence); + +double noise3d_perlin_abs(double x, double y, double z, int seed, + int octaves, double persistence); + +class NoiseBuffer +{ +public: + NoiseBuffer(); + ~NoiseBuffer(); + + void clear(); + void create(int seed, int octaves, double persistence, + double pos_scale, + double first_x, double first_y, double first_z, + double last_x, double last_y, double last_z, + double samplelength_x, double samplelength_y, double samplelength_z); + + void intSet(int x, int y, int z, double d); + double intGet(int x, int y, int z); + double get(double x, double y, double z); + +private: + double *m_data; + double m_start_x, m_start_y, m_start_z; + double m_samplelength_x, m_samplelength_y, m_samplelength_z; + int m_size_x, m_size_y, m_size_z; +}; + #endif