mirror of
https://github.com/smartcmd/MinecraftConsoles.git
synced 2026-08-20 09:57:09 +00:00
29 lines
981 B
C++
29 lines
981 B
C++
#pragma once
|
||
#include "Synth.h"
|
||
|
||
class ImprovedNoise : public Synth
|
||
{
|
||
friend class PerlinNoise_SPU;
|
||
private:
|
||
int p[512]; // permutation table (size 512 for easy indexing)
|
||
double xo, yo, zo; // random offsets for each instance
|
||
|
||
public:
|
||
ImprovedNoise();
|
||
explicit ImprovedNoise(Random* random);
|
||
void init(Random* random);
|
||
|
||
double noise(double x, double y, double z) const;
|
||
static double lerp(double t, double a, double b);
|
||
static double grad(int hash, double x, double y, double z);
|
||
static double grad2(int hash, double x, double z); // 2‑D gradient (used in add() for ySize==1)
|
||
|
||
// Synth interface
|
||
double getValue(double x, double y) override; // 2D noise (z = 0)
|
||
double getValue(double x, double y, double z); // 3D noise
|
||
|
||
void add(doubleArray buffer, double _x, double _y, double _z,
|
||
int xSize, int ySize, int zSize,
|
||
double xs, double ys, double zs, double pow) const;
|
||
};
|