/// <inheritdoc />
        public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
        {
            INoiseDistorter4DContracts.Noise(sourceNoise);

            return(this.distorter.Noise(
                       sourceNoise, x * this.xFrequency, y * this.yFrequency, z * this.zFrequency, w * this.wFrequency));
        }
示例#2
0
        /// <inheritdoc />
        public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
        {
            INoiseDistorter4DContracts.Noise(sourceNoise);

            return(this.distorter.Noise(
                       sourceNoise, x + this.xShift, y + this.yShift, z + this.zShift, w + this.wShift));
        }
示例#3
0
        /// <inheritdoc />
        public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
        {
            INoiseDistorter4DContracts.Noise(sourceNoise);

            return(this.distorter.Noise(sourceNoise, x, y, z, w).ConvertRange(
                       this.sourceNoiseStart, this.sourceNoiseEnd, this.resultNoiseStart, this.resultNoiseEnd));
        }
示例#4
0
        public DistortedNoise4D(INoise4D noise, INoiseDistorter4D distorter)
        {
            Contracts.Requires.That(noise != null);
            Contracts.Requires.That(distorter != null);

            this.noise     = noise;
            this.distorter = distorter;
        }
        /// <inheritdoc />
        public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
        {
            INoiseDistorter4DContracts.Noise(sourceNoise);

            double result = 0;

            foreach (var distorter in this.distorters)
            {
                result += distorter.Noise(sourceNoise, x, y, z, w);
            }

            return(result);
        }
        /// <inheritdoc />
        public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
        {
            INoiseDistorter4DContracts.Noise(sourceNoise);

            double result = this.distorter.Noise(sourceNoise, x, y, z, w);

            int weight = 2;

            for (int octave = 2; octave <= this.numberOfOctaves; octave++)
            {
                result += this.distorter.Noise(sourceNoise, x * weight, y * weight, z * weight, w * weight) / weight;
                weight *= 2;
            }

            return(result);
        }
示例#7
0
        /// <inheritdoc />
        public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
        {
            INoiseDistorter4DContracts.Noise(sourceNoise);

            return(this.distorter.Noise(sourceNoise, x, y, z, w) * this.amplitude);
        }
示例#8
0
 /// <inheritdoc />
 public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
 {
     INoiseDistorter4DContracts.Noise(sourceNoise);
     return(sourceNoise.Noise(x, y, z, w));
 }
示例#9
0
        /// <inheritdoc />
        public double Noise(INoise4D sourceNoise, double x, double y, double z, double w)
        {
            INoiseDistorter4DContracts.Noise(sourceNoise);

            return(this.distorter.Noise(sourceNoise, x, y, z, w).Clamp(this.min, this.max));
        }
 public static void Noise(INoise4D sourceNoise)
 {
     Contracts.Requires.That(sourceNoise != null);
 }