public SimplexNoise(int largestFeature, double persistence, int seed)
        {
            this.largestFeature = largestFeature;
            this.persistence = persistence;
            this.seed = seed;

            // Recieves a number (eg 128) and calculates what power of 2 it is (eg 2^7)
            int numberOfOctaves = (int)Math.Ceiling(Math.Log10(largestFeature) / Math.Log10(2));

            octaves = new SimplexNoiseOctave[numberOfOctaves];
            frequencys = new double[numberOfOctaves];
            amplitudes = new double[numberOfOctaves];

            Random rand = new Random(seed);

            for (int i = 0; i < numberOfOctaves; i++)
            {
                octaves[i] = new SimplexNoiseOctave(rand.Next());

                frequencys[i] = Math.Pow(2, i);
                amplitudes[i] = Math.Pow(persistence, octaves.Length - i);
            }
        }
        public SimplexNoise(int largestFeature, double persistence, int seed)
        {
            this.largestFeature = largestFeature;
            this.persistence    = persistence;
            this.seed           = seed;

            // Recieves a number (eg 128) and calculates what power of 2 it is (eg 2^7)
            int numberOfOctaves = (int)Math.Ceiling(Math.Log10(largestFeature) / Math.Log10(2));

            octaves    = new SimplexNoiseOctave[numberOfOctaves];
            frequencys = new double[numberOfOctaves];
            amplitudes = new double[numberOfOctaves];

            Random rand = new Random(seed);

            for (int i = 0; i < numberOfOctaves; i++)
            {
                octaves[i] = new SimplexNoiseOctave(rand.Next());

                frequencys[i] = Math.Pow(2, i);
                amplitudes[i] = Math.Pow(persistence, octaves.Length - i);
            }
        }