]> git.lizzy.rs Git - minetest.git/blobdiff - src/noise.h
Moved some mapnode content stuff from mapnode.{h,cpp} and digging property stuff...
[minetest.git] / src / noise.h
index c069046c3464894fa536d7381a5130c25f902597..ba26519f24bc027d71a570f1bba7fd4fd5d59f05 100644 (file)
@@ -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