1 package org.bukkit.util.noise;
7 protected final int perm[] =
new int[512];
18 public static int floor(
double x) {
19 return x >= 0 ? (int) x : (
int) x - 1;
22 protected static double fade(
double x) {
23 return x * x * x * (x * (x * 6 - 15) + 10);
26 protected static double lerp(
double x,
double y,
double z) {
27 return y + x * (z - y);
30 protected static double grad(
int hash,
double x,
double y,
double z) {
32 double u = hash < 8 ? x : y;
33 double v = hash < 4 ? y : hash == 12 || hash == 14 ? x : z;
34 return ((hash & 1) == 0 ? u : -u) + ((hash & 2) == 0 ? v : -v);
44 return noise(x, 0, 0);
54 public double noise(
double x,
double y) {
55 return noise(x, y, 0);
66 public abstract double noise(
double x,
double y,
double z);
77 public double noise(
double x,
int octaves,
double frequency,
double amplitude) {
78 return noise(x, 0, 0, octaves, frequency, amplitude);
91 public double noise(
double x,
int octaves,
double frequency,
double amplitude,
boolean normalized) {
92 return noise(x, 0, 0, octaves, frequency, amplitude, normalized);
105 public double noise(
double x,
double y,
int octaves,
double frequency,
double amplitude) {
106 return noise(x, y, 0, octaves, frequency, amplitude);
120 public double noise(
double x,
double y,
int octaves,
double frequency,
double amplitude,
boolean normalized) {
121 return noise(x, y, 0, octaves, frequency, amplitude, normalized);
135 public double noise(
double x,
double y,
double z,
int octaves,
double frequency,
double amplitude) {
136 return noise(x, y, z, octaves, frequency, amplitude,
false);
151 public double noise(
double x,
double y,
double z,
int octaves,
double frequency,
double amplitude,
boolean normalized) {
157 for (
int i = 0; i < octaves; i++) {
158 result +=
noise(x * freq, y * freq, z * freq) * amp;