summaryrefslogtreecommitdiff
path: root/src/noise.h
diff options
context:
space:
mode:
authorPerttu Ahola <celeron55@gmail.com>2011-06-25 04:25:14 +0300
committerPerttu Ahola <celeron55@gmail.com>2011-06-25 04:25:14 +0300
commit7538b4c6201675c566c98b21c8ecddb798a14943 (patch)
treee61cbdb7c2d9fedd41e2793860aa26553c545f56 /src/noise.h
parent47e4eda4bb87cd9dc20dddf81ca473b523eeb150 (diff)
downloadminetest-7538b4c6201675c566c98b21c8ecddb798a14943.tar.gz
minetest-7538b4c6201675c566c98b21c8ecddb798a14943.tar.bz2
minetest-7538b4c6201675c566c98b21c8ecddb798a14943.zip
New map generator added (and SQLite, messed up the commits at that time...) (import from temporary git repo)
Diffstat (limited to 'src/noise.h')
-rw-r--r--src/noise.h42
1 files changed, 41 insertions, 1 deletions
diff --git a/src/noise.h b/src/noise.h
index ba26519f2..6e4fedbc4 100644
--- a/src/noise.h
+++ b/src/noise.h
@@ -41,6 +41,38 @@ double noise3d_perlin(double x, double y, double z, int seed,
double noise3d_perlin_abs(double x, double y, double z, int seed,
int octaves, double persistence);
+enum NoiseType
+{
+ NOISE_PERLIN,
+ NOISE_PERLIN_ABS,
+ NOISE_PERLIN_CONTOUR,
+ NOISE_PERLIN_CONTOUR_FLIP_YZ
+};
+
+struct NoiseParams
+{
+ NoiseType type;
+ int seed;
+ int octaves;
+ double persistence;
+ double pos_scale;
+ double noise_scale; // Useful for contour noises
+
+ NoiseParams(NoiseType type_=NOISE_PERLIN, int seed_=0,
+ int octaves_=3, double persistence_=0.5,
+ double pos_scale_=100.0, double noise_scale_=1.0):
+ type(type_),
+ seed(seed_),
+ octaves(octaves_),
+ persistence(persistence_),
+ pos_scale(pos_scale_),
+ noise_scale(noise_scale_)
+ {
+ }
+};
+
+double noise3d_param(const NoiseParams &param, double x, double y, double z);
+
class NoiseBuffer
{
public:
@@ -48,15 +80,23 @@ public:
~NoiseBuffer();
void clear();
+ void create(const NoiseParams &param,
+ 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 multiply(const NoiseParams &param);
+ // Deprecated
void create(int seed, int octaves, double persistence,
- double pos_scale,
+ bool abs,
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);
+ void intMultiply(int x, int y, int z, double d);
double intGet(int x, int y, int z);
double get(double x, double y, double z);
+ //bool contains(double x, double y, double z);
private:
double *m_data;