diff options
author | kwolekr <kwolekr@minetest.net> | 2014-12-11 02:53:10 -0500 |
---|---|---|
committer | kwolekr <kwolekr@minetest.net> | 2014-12-11 02:53:10 -0500 |
commit | fb80a7c111c138d335f4c7e68fc098f8aa8483d3 (patch) | |
tree | 16006b2845b33e84293209047f375de927cac90f /src/noise.h | |
parent | c07f15e910ccce52b62b45af1b1a9210c2130817 (diff) | |
download | minetest-fb80a7c111c138d335f4c7e68fc098f8aa8483d3.tar.gz minetest-fb80a7c111c138d335f4c7e68fc098f8aa8483d3.tar.bz2 minetest-fb80a7c111c138d335f4c7e68fc098f8aa8483d3.zip |
Clean up Noise macros
Diffstat (limited to 'src/noise.h')
-rw-r--r-- | src/noise.h | 74 |
1 files changed, 41 insertions, 33 deletions
diff --git a/src/noise.h b/src/noise.h index 2cdf4203d..f2df0ed5a 100644 --- a/src/noise.h +++ b/src/noise.h @@ -151,6 +151,25 @@ public: float *perlinMap2D(float x, float y, float *persistence_map=NULL); float *perlinMap3D(float x, float y, float z, float *persistence_map=NULL); + inline float *perlinMap2D_PO(float x, float xoff, float y, float yoff, + float *persistence_map=NULL) + { + return perlinMap2D( + x + xoff * np.spread.X, + y + yoff * np.spread.Y, + persistence_map); + } + + inline float *perlinMap3D_PO(float x, float xoff, float y, float yoff, + float z, float zoff, float *persistence_map=NULL) + { + return perlinMap3D( + x + xoff * np.spread.X, + y + yoff * np.spread.Y, + z + zoff * np.spread.Z, + persistence_map); + } + private: void allocBuffers(); void resizeNoiseBuf(bool is3d); @@ -158,6 +177,28 @@ private: }; +float NoisePerlin2D(NoiseParams *np, float x, float y, int seed); +float NoisePerlin3D(NoiseParams *np, float x, float y, float z, int seed); + +inline float NoisePerlin2D_PO(NoiseParams *np, float x, float xoff, + float y, float yoff, int seed) +{ + return NoisePerlin2D(np, + x + xoff * np->spread.X, + y + yoff * np->spread.Y, + seed); +} + +inline float NoisePerlin3D_PO(NoiseParams *np, float x, float xoff, + float y, float yoff, float z, float zoff, int seed) +{ + return NoisePerlin3D(np, + x + xoff * np->spread.X, + y + yoff * np->spread.Y, + z + zoff * np->spread.Z, + seed); +} + // Return value: -1 ... 1 float noise2d(int x, int y, int seed); float noise3d(int x, int y, int z, int seed); @@ -184,38 +225,5 @@ inline float easeCurve(float t) float contour(float v); -#define NoisePerlin2D(np, x, y, s) \ - ((np)->offset + (np)->scale * noise2d_perlin( \ - (float)(x) / (np)->spread.X, \ - (float)(y) / (np)->spread.Y, \ - (s) + (np)->seed, (np)->octaves, (np)->persist)) - -#define NoisePerlin2DNoTxfm(np, x, y, s) \ - (noise2d_perlin( \ - (float)(x) / (np)->spread.X, \ - (float)(y) / (np)->spread.Y, \ - (s) + (np)->seed, (np)->octaves, (np)->persist)) - -#define NoisePerlin2DPosOffset(np, x, xoff, y, yoff, s) \ - ((np)->offset + (np)->scale * noise2d_perlin( \ - (float)(xoff) + (float)(x) / (np)->spread.X, \ - (float)(yoff) + (float)(y) / (np)->spread.Y, \ - (s) + (np)->seed, (np)->octaves, (np)->persist)) - -#define NoisePerlin2DNoTxfmPosOffset(np, x, xoff, y, yoff, s) \ - (noise2d_perlin( \ - (float)(xoff) + (float)(x) / (np)->spread.X, \ - (float)(yoff) + (float)(y) / (np)->spread.Y, \ - (s) + (np)->seed, (np)->octaves, (np)->persist)) - -#define NoisePerlin3D(np, x, y, z, s) ((np)->offset + (np)->scale * \ - noise3d_perlin((float)(x) / (np)->spread.X, (float)(y) / (np)->spread.Y, \ - (float)(z) / (np)->spread.Z, (s) + (np)->seed, (np)->octaves, (np)->persist)) - -#define NoisePerlin3DEased(np, x, y, z, s) ((np)->offset + (np)->scale * \ - noise3d_perlin((float)(x) / (np)->spread.X, (float)(y) / (np)->spread.Y, \ - (float)(z) / (np)->spread.Z, (s) + (np)->seed, (np)->octaves, \ - (np)->persist, true)) - #endif |