32 #if defined(RANDOM_MIN)
35 #if defined(RANDOM_MAX)
63 inline int range(
int min,
int max)
76 return (
next() % (max - min + 1)) + min;
89 PcgRandom(u64 state=0x853c49e6748fea9bULL, u64 seq=0xda3e39cb94b95bdbULL);
90 void seed(u64 state, u64 seq=0xda3e39cb94b95bdbULL);
93 s32
range(s32 min, s32 max);
94 void bytes(
void *out,
size_t len);
102 #define NOISE_FLAG_DEFAULTS 0x01
103 #define NOISE_FLAG_EASED 0x02
104 #define NOISE_FLAG_ABSVALUE 0x04
107 #define NOISE_FLAG_POINTBUFFER 0x08
108 #define NOISE_FLAG_SIMPLEX 0x10
123 u16 octaves_,
float persist_,
float lacunarity_,
158 float step_x,
float step_y,
161 float x,
float y,
float z,
162 float step_x,
float step_y,
float step_z,
165 float *
perlinMap2D(
float x,
float y,
float *persistence_map=NULL);
166 float *
perlinMap3D(
float x,
float y,
float z,
float *persistence_map=NULL);
169 float *persistence_map=NULL)
178 float z,
float zoff,
float *persistence_map=NULL)
190 void updateResults(
float g,
float *gmap,
const float *persistence_map,
199 float y,
float yoff, s32
seed)
208 float y,
float yoff,
float z,
float zoff, s32
seed)
225 int octaves,
float persistence,
bool eased=
true);
228 int octaves,
float persistence,
bool eased=
true);
231 int octaves,
float persistence,
bool eased=
false);
234 int octaves,
float persistence,
bool eased=
false);
238 return t * t * t * (t * (6.f * t - 15.f) + 10.f);
u32 sz
Definition: noise.h:143
float * perlinMap3D(float x, float y, float z, float *persistence_map=NULL)
Definition: noise.cpp:746
void setSize(u32 sx, u32 sy, u32 sz=1)
Definition: noise.cpp:473
s32 seed
Definition: noise.h:140
float * perlinMap2D(float x, float y, float *persistence_map=NULL)
Definition: noise.cpp:709
float * result
Definition: noise.h:147
float * persist_buf
Definition: noise.h:146
void gradientMap3D(float x, float y, float z, float step_x, float step_y, float step_z, s32 seed)
Definition: noise.cpp:618
float * perlinMap2D_PO(float x, float xoff, float y, float yoff, float *persistence_map=NULL)
Definition: noise.h:168
Noise(NoiseParams *np, s32 seed, u32 sx, u32 sy, u32 sz=1)
Definition: noise.cpp:425
float * gradient_buf
Definition: noise.h:145
void setSpreadFactor(v3f spread)
Definition: noise.cpp:483
u32 sx
Definition: noise.h:141
~Noise()
Definition: noise.cpp:437
void setOctaves(int octaves)
Definition: noise.cpp:491
NoiseParams np
Definition: noise.h:139
float * perlinMap3D_PO(float x, float xoff, float y, float yoff, float z, float zoff, float *persistence_map=NULL)
Definition: noise.h:177
void gradientMap2D(float x, float y, float step_x, float step_y, s32 seed)
Definition: noise.cpp:554
float * noise_buf
Definition: noise.h:144
u32 sy
Definition: noise.h:142
void allocBuffers()
Definition: noise.cpp:446
void updateResults(float g, float *gmap, const float *persistence_map, size_t bufsize)
Definition: noise.cpp:784
void resizeNoiseBuf(bool is3d)
Definition: noise.cpp:499
u64 m_state
Definition: noise.h:98
s32 randNormalDist(s32 min, s32 max, int num_trials=6)
Definition: noise.cpp:155
void seed(u64 state, u64 seq=0xda3e39cb94b95bdbULL)
Definition: noise.cpp:65
static const u32 RANDOM_RANGE
Definition: noise.h:87
u32 range(u32 bound)
Definition: noise.cpp:86
static const s32 RANDOM_MIN
Definition: noise.h:85
u32 next()
Definition: noise.cpp:75
PcgRandom(u64 state=0x853c49e6748fea9bULL, u64 seq=0xda3e39cb94b95bdbULL)
Definition: noise.cpp:60
void bytes(void *out, size_t len)
Definition: noise.cpp:135
u64 m_inc
Definition: noise.h:99
static const s32 RANDOM_MAX
Definition: noise.h:86
Definition: exceptions.h:90
int range(int min, int max)
Definition: noise.h:63
int next()
Definition: noise.h:57
PseudoRandom(int seed=0)
Definition: noise.h:47
int m_next
Definition: noise.h:80
void seed(int seed)
Definition: noise.h:52
static const u32 RANDOM_RANGE
Definition: noise.h:45
core::vector3df v3f
Definition: irr_v3d.h:26
float NoisePerlin2D_PO(NoiseParams *np, float x, float xoff, float y, float yoff, s32 seed)
Definition: noise.h:198
float contour(float v)
Definition: noise.cpp:360
float noise3d_perlin(float x, float y, float z, s32 seed, int octaves, float persistence, bool eased=false)
Definition: noise.cpp:330
FlagDesc flagdesc_noiseparams[]
Definition: noise.cpp:49
float noise2d(int x, int y, s32 seed)
Definition: noise.cpp:165
float noise3d(int x, int y, int z, s32 seed)
Definition: noise.cpp:175
float NoisePerlin3D_PO(NoiseParams *np, float x, float xoff, float y, float yoff, float z, float zoff, s32 seed)
Definition: noise.h:207
float noise2d_perlin_abs(float x, float y, s32 seed, int octaves, float persistence, bool eased=true)
Definition: noise.cpp:315
#define NOISE_FLAG_DEFAULTS
Definition: noise.h:102
float noise3d_gradient(float x, float y, float z, s32 seed, bool eased=false)
Definition: noise.cpp:265
float NoisePerlin2D(NoiseParams *np, float x, float y, s32 seed)
Definition: noise.cpp:372
float noise2d_gradient(float x, float y, s32 seed, bool eased=true)
Definition: noise.cpp:244
float NoisePerlin3D(NoiseParams *np, float x, float y, float z, s32 seed)
Definition: noise.cpp:398
float noise2d_perlin(float x, float y, s32 seed, int octaves, float persistence, bool eased=true)
Definition: noise.cpp:299
float easeCurve(float t)
Definition: noise.h:236
float noise3d_perlin_abs(float x, float y, float z, s32 seed, int octaves, float persistence, bool eased=false)
Definition: noise.cpp:345
static std::random_device seed
Definition: serverenvironment.cpp:392
v3f spread
Definition: noise.h:113
float persist
Definition: noise.h:116
float offset
Definition: noise.h:111
u16 octaves
Definition: noise.h:115
u32 flags
Definition: noise.h:118
float scale
Definition: noise.h:112
NoiseParams(float offset_, float scale_, const v3f &spread_, s32 seed_, u16 octaves_, float persist_, float lacunarity_, u32 flags_=NOISE_FLAG_DEFAULTS)
Definition: noise.h:122
float lacunarity
Definition: noise.h:117
s32 seed
Definition: noise.h:114