fCraft.MapGeneration.ImprovedNoise.Noise C# (CSharp) Method

Noise() public method

public Noise ( double x, double y, double z ) : double
x double
y double
z double
return double
        public double Noise( double x, double y, double z ) {
            int X = (int)Math.Floor( x ) & 255, // FIND UNIT CUBE THAT
                Y = (int)Math.Floor( y ) & 255, // CONTAINS POINT.
                Z = (int)Math.Floor( z ) & 255;
            x -= Math.Floor( x ); // FIND RELATIVE X,Y,Z
            y -= Math.Floor( y ); // OF POINT IN CUBE.
            z -= Math.Floor( z );
            double u = Fade( x ), // COMPUTE FADE CURVES
                   v = Fade( y ), // FOR EACH OF X,Y,Z.
                   w = Fade( z );
            int A = p[X] + Y,
                AA = p[A] + Z,
                AB = p[A + 1] + Z, // HASH COORDINATES OF
                B = p[X + 1] + Y,
                BA = p[B] + Z,
                BB = p[B + 1] + Z; // THE 8 CUBE CORNERS,

            return Lerp( w,
                         Lerp( v,
                               Lerp( u,
                                     Grad( p[AA], x, y, z ), // AND ADD
                                     Grad( p[BA], x - 1, y, z ) ), // BLENDED
                               Lerp( u,
                                     Grad( p[AB], x, y - 1, z ), // RESULTS
                                     Grad( p[BB], x - 1, y - 1, z ) ) ), // FROM  8
                         Lerp( v,
                               Lerp( u,
                                     Grad( p[AA + 1], x, y, z - 1 ), // CORNERS
                                     Grad( p[BA + 1], x - 1, y, z - 1 ) ), // OF CUBE
                               Lerp( u,
                                     Grad( p[AB + 1], x, y - 1, z - 1 ),
                                     Grad( p[BB + 1], x - 1, y - 1, z - 1 ) ) ) );
        }