private INoise GetNoise(NOISE_TYPE noiseType = NOISE_TYPE.PERLIN, int seed = 0, float frequency = 20f, float amplitude = 1f)
    {
        switch (noiseType)
        {
        case NOISE_TYPE.PERLIN:
            return(new PerlinNoise(seed, frequency, amplitude));

        case NOISE_TYPE.VALUE:
            return(new ValueNoise(seed, frequency, amplitude));

        case NOISE_TYPE.SIMPLEX:
            return(new SimplexNoise(seed, frequency, amplitude));

        case NOISE_TYPE.VORONOI:
            return(new VoronoiNoise(seed, frequency, amplitude));

        case NOISE_TYPE.WORLEY:
            return(new WorleyNoise(seed, frequency, amplitude));

        default:
            return(new PerlinNoise(seed, frequency, amplitude));
        }
    }
 //    *
 //	Set the type of noise generation.
 //	\param type Type of noise generator (default NOISE_WHITE)
 //	
 public Noise setType(NOISE_TYPE @type) {
     mType = @type;
     return this;
 }
 //    *
 //	Default constructor.
 //	\param pBuffer Image buffer where to store the generated image.
 //	
 public Noise(TextureBuffer pBuffer)
     : base(pBuffer, "Noise") {
     mColour = ColourValue.White;
     mSeed = 5120;
     mType = (int)NOISE_TYPE.NOISE_WHITE;
 }