public double GetValue(double x, double y, double z)
{
double value = 0.0;
double signal = 0.0;
double curPersistence = 1.0;
//double nx, ny, nz;
long seed;
x*=Frequency;
y*=Frequency;
z*=Frequency;
for(int currentOctave = 0; currentOctave < OctaveCount; currentOctave++)
{
seed = (Seed + currentOctave) & 0xffffffff;
/*nx = Math.MakeInt32Range(x);
ny = Math.MakeInt32Range(y);
nz = Math.MakeInt32Range(z);*/
signal = NMath.GradientCoherentNoise(x, y, z, (int)seed, NoiseQuality);
//signal = cachedNoise3(x, y, z);
value += signal * curPersistence;
x *= Lacunarity;
y *= Lacunarity;
z *= Lacunarity;
curPersistence *= Persistence;
}
return value;
}