Simplex class
Пакет: com.hypixel.hytale.builtin.hytalegenerator.noise
Файл: com/hypixel/hytale/builtin/hytalegenerator/noise/Simplex.java
Поля (201)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
double |
F2 |
|
double |
var10 |
|
double |
var10 |
|
|
var10 |
|
|
var10 |
|
double |
var10 |
|
|
var10 |
|
|
var10 |
|
double |
var101 |
|
double |
var103 |
|
double |
var105 |
|
double |
var107 |
|
int |
var12 |
|
double |
var12 |
|
|
var12 |
|
|
var12 |
|
double |
var12 |
|
|
var12 |
|
|
var12 |
|
int |
var13 |
|
double |
var14 |
|
double |
var14 |
|
double |
var14 |
|
|
var14 |
|
|
var14 |
|
double |
var16 |
|
int |
var16 |
|
double |
var16 |
|
|
var16 |
|
|
var16 |
|
int |
var17 |
|
double |
var18 |
|
int |
var18 |
|
double |
var18 |
|
double |
var19 |
|
int |
var2 |
|
double |
var20 |
|
int |
var20 |
|
double |
var21 |
|
int |
var21 |
|
double |
var22 |
|
int |
var22 |
|
double |
var23 |
|
int |
var23 |
|
int |
var24 |
|
|
var24 |
|
|
var24 |
|
double |
var24 |
|
int |
var25 |
|
|
var25 |
|
|
var25 |
|
double |
var25 |
|
double |
var26 |
|
double |
var26 |
|
double |
var27 |
|
double |
var28 |
|
double |
var28 |
|
double |
var29 |
|
double |
var30 |
|
double |
var30 |
|
double |
var31 |
|
double |
var32 |
|
double |
var32 |
|
int |
var33 |
|
|
var33 |
|
|
var33 |
|
|
var33 |
|
|
var33 |
|
|
var33 |
|
|
var33 |
|
int |
var34 |
|
int |
var34 |
|
|
var34 |
|
|
var34 |
|
|
var34 |
|
|
var34 |
|
|
var34 |
|
|
var34 |
|
double |
var34 |
|
int |
var35 |
|
int |
var35 |
|
|
var35 |
|
|
var35 |
|
|
var35 |
|
|
var35 |
|
|
var35 |
|
|
var35 |
|
int |
var36 |
|
int |
var36 |
|
|
var36 |
|
|
var36 |
|
|
var36 |
|
|
var36 |
|
|
var36 |
|
|
var36 |
|
double |
var36 |
|
int |
var37 |
|
int |
var37 |
|
|
var37 |
|
|
var37 |
|
|
var37 |
|
|
var37 |
|
|
var37 |
|
|
var37 |
|
int |
var38 |
|
int |
var38 |
|
|
var38 |
|
|
var38 |
|
|
var38 |
|
|
var38 |
|
|
var38 |
|
|
var38 |
|
double |
var38 |
|
double |
var39 |
|
double |
var39 |
|
double |
var4 |
|
|
var4 |
|
|
var4 |
|
double |
var40 |
|
double |
var41 |
|
double |
var41 |
|
int |
var42 |
|
double |
var43 |
|
double |
var43 |
|
int |
var43 |
|
int |
var44 |
|
double |
var45 |
|
int |
var45 |
|
int |
var46 |
|
double |
var47 |
|
int |
var47 |
|
int |
var48 |
|
double |
var49 |
|
int |
var49 |
|
int |
var50 |
|
double |
var51 |
|
int |
var51 |
|
int |
var52 |
|
double |
var53 |
|
int |
var53 |
|
int |
var54 |
|
double |
var55 |
|
int |
var55 |
|
int |
var56 |
|
int |
var57 |
|
int |
var57 |
|
int |
var58 |
|
double |
var58 |
|
int |
var59 |
|
double |
var6 |
|
|
var6 |
|
|
var6 |
|
double |
var6 |
|
|
var6 |
|
|
var6 |
|
int |
var60 |
|
double |
var60 |
|
int |
var61 |
|
int |
var62 |
|
double |
var62 |
|
int |
var63 |
|
double |
var64 |
|
double |
var64 |
|
double |
var66 |
|
double |
var66 |
|
double |
var68 |
|
double |
var68 |
|
double |
var70 |
|
double |
var70 |
|
double |
var72 |
|
double |
var74 |
|
double |
var76 |
|
double |
var78 |
|
double |
var8 |
|
|
var8 |
|
|
var8 |
|
double |
var8 |
|
|
var8 |
|
|
var8 |
|
double |
var8 |
|
|
var8 |
|
|
var8 |
|
double |
var80 |
|
double |
var82 |
|
double |
var84 |
|
double |
var86 |
|
double |
var88 |
|
int |
var90 |
|
int |
var91 |
|
int |
var92 |
|
int |
var93 |
|
int |
var94 |
|
int |
var95 |
|
int |
var96 |
|
int |
var97 |
|
int |
var98 |
|
double |
var99 |
|
double |
w |
|
double |
x |
|
double |
y |
|
double |
z |
Методы (31)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
|
Grad Grad(double var1, double var3, double var5) |
|
|
Grad Grad(double var1, double var3, double var5, double var7) |
static |
double |
dotdouble dot(@Nonnull Simplex.Grad var0, double var1, double var3) |
static |
double |
dotdouble dot(@Nonnull Simplex.Grad var0, double var1, double var3, double var5) |
static |
double |
dotdouble dot(@Nonnull Simplex.Grad var0, double var1, double var3, double var5, double var7) |
static |
int |
fastfloorint fastfloor(double var0) |
|
|
for for(int var0 = 0; var0 < 512; var0++) |
|
|
if if(var20 > var22) |
|
|
if if(var39 < 0.0) |
|
|
if if(var41 < 0.0) |
|
|
if if(var43 < 0.0) |
|
|
if if(var27 >= var29) |
|
|
if if(var29 >= var31) |
|
|
if if(var64 < 0.0) |
|
|
if if(var66 < 0.0) |
|
|
if if(var68 < 0.0) |
|
|
if if(var70 < 0.0) |
|
|
if if(var34 > var36) |
|
|
if if(var34 > var38) |
|
|
if if(var34 > var40) |
|
|
if if(var36 > var38) |
|
|
if if(var36 > var40) |
|
|
if if(var38 > var40) |
|
|
if if(var99 < 0.0) |
|
|
if if(var101 < 0.0) |
|
|
if if(var103 < 0.0) |
|
|
if if(var105 < 0.0) |
|
|
if if(var107 < 0.0) |
static |
double |
noisedouble noise(double var0, double var2) |
static |
double |
noisedouble noise(double var0, double var2, double var4) |
static |
double |
noisedouble noise(double var0, double var2, double var4, double var6) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator.noise;
class="kw">import javax.annotation.Nonnull;
class Simplex {
class="kw">private class="kw">static class="kw">final double F2 = 0.5 * (Math.sqrt(3.0) - 1.0);
class="kw">private class="kw">static class="kw">final double G2 = (3.0 - Math.sqrt(3.0)) / 6.0;
class="kw">private class="kw">static class="kw">final double F3 = 0.3333333333333333;
class="kw">private class="kw">static class="kw">final double G3 = 0.16666666666666666;
class="kw">private class="kw">static class="kw">final double F4 = (Math.sqrt(5.0) - 1.0) / 4.0;
class="kw">private class="kw">static class="kw">final double G4 = (5.0 - Math.sqrt(5.0)) / 20.0;
@Nonnull
class="kw">private class="kw">static class="kw">final Simplex.Grad[] grad3 = new Simplex.Grad[]{
new Simplex.Grad(1.0, 1.0, 0.0),
new Simplex.Grad(-1.0, 1.0, 0.0),
new Simplex.Grad(1.0, -1.0, 0.0),
new Simplex.Grad(-1.0, -1.0, 0.0),
new Simplex.Grad(1.0, 0.0, 1.0),
new Simplex.Grad(-1.0, 0.0, 1.0),
new Simplex.Grad(1.0, 0.0, -1.0),
new Simplex.Grad(-1.0, 0.0, -1.0),
new Simplex.Grad(0.0, 1.0, 1.0),
new Simplex.Grad(0.0, -1.0, 1.0),
new Simplex.Grad(0.0, 1.0, -1.0),
new Simplex.Grad(0.0, -1.0, -1.0)
};
@Nonnull
class="kw">private class="kw">static class="kw">final Simplex.Grad[] grad4 = new Simplex.Grad[]{
new Simplex.Grad(0.0, 1.0, 1.0, 1.0),
new Simplex.Grad(0.0, 1.0, 1.0, -1.0),
new Simplex.Grad(0.0, 1.0, -1.0, 1.0),
new Simplex.Grad(0.0, 1.0, -1.0, -1.0),
new Simplex.Grad(0.0, -1.0, 1.0, 1.0),
new Simplex.Grad(0.0, -1.0, 1.0, -1.0),
new Simplex.Grad(0.0, -1.0, -1.0, 1.0),
new Simplex.Grad(0.0, -1.0, -1.0, -1.0),
new Simplex.Grad(1.0, 0.0, 1.0, 1.0),
new Simplex.Grad(1.0, 0.0, 1.0, -1.0),
new Simplex.Grad(1.0, 0.0, -1.0, 1.0),
new Simplex.Grad(1.0, 0.0, -1.0, -1.0),
new Simplex.Grad(-1.0, 0.0, 1.0, 1.0),
new Simplex.Grad(-1.0, 0.0, 1.0, -1.0),
new Simplex.Grad(-1.0, 0.0, -1.0, 1.0),
new Simplex.Grad(-1.0, 0.0, -1.0, -1.0),
new Simplex.Grad(1.0, 1.0, 0.0, 1.0),
new Simplex.Grad(1.0, 1.0, 0.0, -1.0),
new Simplex.Grad(1.0, -1.0, 0.0, 1.0),
new Simplex.Grad(1.0, -1.0, 0.0, -1.0),
new Simplex.Grad(-1.0, 1.0, 0.0, 1.0),
new Simplex.Grad(-1.0, 1.0, 0.0, -1.0),
new Simplex.Grad(-1.0, -1.0, 0.0, 1.0),
new Simplex.Grad(-1.0, -1.0, 0.0, -1.0),
new Simplex.Grad(1.0, 1.0, 1.0, 0.0),
new Simplex.Grad(1.0, 1.0, -1.0, 0.0),
new Simplex.Grad(1.0, -1.0, 1.0, 0.0),
new Simplex.Grad(1.0, -1.0, -1.0, 0.0),
new Simplex.Grad(-1.0, 1.0, 1.0, 0.0),
new Simplex.Grad(-1.0, 1.0, -1.0, 0.0),
new Simplex.Grad(-1.0, -1.0, 1.0, 0.0),
new Simplex.Grad(-1.0, -1.0, -1.0, 0.0)
};
@Nonnull
class="kw">private class="kw">static class="kw">final short[] p = new short[]{
151,
160,
137,
91,
90,
15,
131,
13,
201,
95,
96,
53,
194,
233,
7,
225,
140,
36,
103,
30,
69,
142,
8,
99,
37,
240,
21,
10,
23,
190,
6,
148,
247,
120,
234,
75,
0,
26,
197,
62,
94,
252,
219,
203,
117,
35,
11,
32,
57,
177,
33,
88,
237,
149,
56,
87,
174,
20,
125,
136,
171,
168,
68,
175,
74,
165,
71,
134,
139,
48,
27,
166,
77,
146,
158,
231,
83,
111,
229,
122,
60,
211,
133,
230,
220,
105,
92,
41,
55,
46,
245,
40,
244,
102,
143,
54,
65,
25,
63,
161,
1,
216,
80,
73,
209,
76,
132,
187,
208,
89,
18,
169,
200,
196,
135,
130,
116,
188,
159,
86,
164,
100,
109,
198,
173,
186,
3,
64,
52,
217,
226,
250,
124,
123,
5,
202,
38,
147,
118,
126,
255,
82,
85,
212,
207,
206,
59,
227,
47,
16,
58,
17,
182,
189,
28,
42,
223,
183,
170,
213,
119,
248,
152,
2,
44,
154,
163,
70,
221,
153,
101,
155,
167,
43,
172,
9,
129,
22,
39,
253,
19,
98,
108,
110,
79,
113,
224,
232,
178,
185,
112,
104,
218,
246,
97,
228,
251,
34,
242,
193,
238,
210,
144,
12,
191,
179,
162,
241,
81,
51,
145,
235,
249,
14,
239,
107,
49,
192,
214,
31,
181,
199,
106,
157,
184,
84,
204,
176,
115,
121,
50,
45,
127,
4,
150,
254,
138,
236,
205,
93,
222,
114,
67,
29,
24,
72,
243,
141,
128,
195,
78,
66,
215,
61,
156,
180
};
@Nonnull
class="kw">static class="kw">final short[] perm = new short[512];
@Nonnull
class="kw">static class="kw">final short[] permMod12 = new short[512];
Simplex() {
}
class="kw">private class="kw">static int fastfloor(double var0) {
int var2 = (int)var0;
class="kw">return var0 < var2 ? var2 - 1 : var2;
}
class="kw">private class="kw">static double dot(@Nonnull Simplex.Grad var0, double var1, double var3) {
class="kw">return var0.x * var1 + var0.y * var3;
}
class="kw">private class="kw">static double dot(@Nonnull Simplex.Grad var0, double var1, double var3, double var5) {
class="kw">return var0.x * var1 + var0.y * var3 + var0.z * var5;
}
class="kw">private class="kw">static double dot(@Nonnull Simplex.Grad var0, double var1, double var3, double var5, double var7) {
class="kw">return var0.x * var1 + var0.y * var3 + var0.z * var5 + var0.w * var7;
}
class="kw">public class="kw">static double noise(double var0, double var2) {
double var10 = (var0 + var2) * F2;
int var12 = fastfloor(var0 + var10);
int var13 = fastfloor(var2 + var10);
double var14 = (var12 + var13) * G2;
double var16 = var12 - var14;
double var18 = var13 - var14;
double var20 = var0 - var16;
double var22 = var2 - var18;
int var24;
int var25;
if (var20 > var22) {
var24 = 1;
var25 = 0;
} else {
var24 = 0;
var25 = 1;
}
double var26 = var20 - var24 + G2;
double var28 = var22 - var25 + G2;
double var30 = var20 - 1.0 + 2.0 * G2;
double var32 = var22 - 1.0 + 2.0 * G2;
int var34 = var12 & 0xFF;
int var35 = var13 & 0xFF;
int var36 = permMod12[var34 + perm[var35]];
int var37 = permMod12[var34 + var24 + perm[var35 + var25]];
int var38 = permMod12[var34 + 1 + perm[var35 + 1]];
double var39 = 0.5 - var20 * var20 - var22 * var22;
double var4;
if (var39 < 0.0) {
var4 = 0.0;
} else {
var39 *= var39;
var4 = var39 * var39 * dot(grad3[var36], var20, var22);
}
double var41 = 0.5 - var26 * var26 - var28 * var28;
double var6;
if (var41 < 0.0) {
var6 = 0.0;
} else {
var41 *= var41;
var6 = var41 * var41 * dot(grad3[var37], var26, var28);
}
double var43 = 0.5 - var30 * var30 - var32 * var32;
double var8;
if (var43 < 0.0) {
var8 = 0.0;
} else {
var43 *= var43;
var8 = var43 * var43 * dot(grad3[var38], var30, var32);
}
class="kw">return 70.0 * (var4 + var6 + var8);
}
class="kw">public class="kw">static double noise(double var0, double var2, double var4) {
double var14 = (var0 + var2 + var4) * 0.3333333333333333;
int var16 = fastfloor(var0 + var14);
int var17 = fastfloor(var2 + var14);
int var18 = fastfloor(var4 + var14);
double var19 = (var16 + var17 + var18) * 0.16666666666666666;
double var21 = var16 - var19;
double var23 = var17 - var19;
double var25 = var18 - var19;
double var27 = var0 - var21;
double var29 = var2 - var23;
double var31 = var4 - var25;
int var33;
int var34;
int var35;
int var36;
int var37;
int var38;
if (var27 >= var29) {
if (var29 >= var31) {
var33 = 1;
var34 = 0;
var35 = 0;
var36 = 1;
var37 = 1;
var38 = 0;
} else if (var27 >= var31) {
var33 = 1;
var34 = 0;
var35 = 0;
var36 = 1;
var37 = 0;
var38 = 1;
} else {
var33 = 0;
var34 = 0;
var35 = 1;
var36 = 1;
var37 = 0;
var38 = 1;
}
} else if (var29 < var31) {
var33 = 0;
var34 = 0;
var35 = 1;
var36 = 0;
var37 = 1;
var38 = 1;
} else if (var27 < var31) {
var33 = 0;
var34 = 1;
var35 = 0;
var36 = 0;
var37 = 1;
var38 = 1;
} else {
var33 = 0;
var34 = 1;
var35 = 0;
var36 = 1;
var37 = 1;
var38 = 0;
}
double var39 = var27 - var33 + 0.16666666666666666;
double var41 = var29 - var34 + 0.16666666666666666;
double var43 = var31 - var35 + 0.16666666666666666;
double var45 = var27 - var36 + 0.3333333333333333;
double var47 = var29 - var37 + 0.3333333333333333;
double var49 = var31 - var38 + 0.3333333333333333;
double var51 = var27 - 1.0 + 0.5;
double var53 = var29 - 1.0 + 0.5;
double var55 = var31 - 1.0 + 0.5;
int var57 = var16 & 0xFF;
int var58 = var17 & 0xFF;
int var59 = var18 & 0xFF;
int var60 = permMod12[var57 + perm[var58 + perm[var59]]];
int var61 = permMod12[var57 + var33 + perm[var58 + var34 + perm[var59 + var35]]];
int var62 = permMod12[var57 + var36 + perm[var58 + var37 + perm[var59 + var38]]];
int var63 = permMod12[var57 + 1 + perm[var58 + 1 + perm[var59 + 1]]];
double var64 = 0.6 - var27 * var27 - var29 * var29 - var31 * var31;
double var6;
if (var64 < 0.0) {
var6 = 0.0;
} else {
var64 *= var64;
var6 = var64 * var64 * dot(grad3[var60], var27, var29, var31);
}
double var66 = 0.6 - var39 * var39 - var41 * var41 - var43 * var43;
double var8;
if (var66 < 0.0) {
var8 = 0.0;
} else {
var66 *= var66;
var8 = var66 * var66 * dot(grad3[var61], var39, var41, var43);
}
double var68 = 0.6 - var45 * var45 - var47 * var47 - var49 * var49;
double var10;
if (var68 < 0.0) {
var10 = 0.0;
} else {
var68 *= var68;
var10 = var68 * var68 * dot(grad3[var62], var45, var47, var49);
}
double var70 = 0.6 - var51 * var51 - var53 * var53 - var55 * var55;
double var12;
if (var70 < 0.0) {
var12 = 0.0;
} else {
var70 *= var70;
var12 = var70 * var70 * dot(grad3[var63], var51, var53, var55);
}
class="kw">return 32.0 * (var6 + var8 + var10 + var12);
}
class="kw">public class="kw">static double noise(double var0, double var2, double var4, double var6) {
double var18 = (var0 + var2 + var4 + var6) * F4;
int var20 = fastfloor(var0 + var18);
int var21 = fastfloor(var2 + var18);
int var22 = fastfloor(var4 + var18);
int var23 = fastfloor(var6 + var18);
double var24 = (var20 + var21 + var22 + var23) * G4;
double var26 = var20 - var24;
double var28 = var21 - var24;
double var30 = var22 - var24;
double var32 = var23 - var24;
double var34 = var0 - var26;
double var36 = var2 - var28;
double var38 = var4 - var30;
double var40 = var6 - var32;
int var42 = 0;
int var43 = 0;
int var44 = 0;
int var45 = 0;
if (var34 > var36) {
var42++;
} else {
var43++;
}
if (var34 > var38) {
var42++;
} else {
var44++;
}
if (var34 > var40) {
var42++;
} else {
var45++;
}
if (var36 > var38) {
var43++;
} else {
var44++;
}
if (var36 > var40) {
var43++;
} else {
var45++;
}
if (var38 > var40) {
var44++;
} else {
var45++;
}
int var46 = var42 >= 3 ? 1 : 0;
int var47 = var43 >= 3 ? 1 : 0;
int var48 = var44 >= 3 ? 1 : 0;
int var49 = var45 >= 3 ? 1 : 0;
int var50 = var42 >= 2 ? 1 : 0;
int var51 = var43 >= 2 ? 1 : 0;
int var52 = var44 >= 2 ? 1 : 0;
int var53 = var45 >= 2 ? 1 : 0;
int var54 = var42 >= 1 ? 1 : 0;
int var55 = var43 >= 1 ? 1 : 0;
int var56 = var44 >= 1 ? 1 : 0;
int var57 = var45 >= 1 ? 1 : 0;
double var58 = var34 - var46 + G4;
double var60 = var36 - var47 + G4;
double var62 = var38 - var48 + G4;
double var64 = var40 - var49 + G4;
double var66 = var34 - var50 + 2.0 * G4;
double var68 = var36 - var51 + 2.0 * G4;
double var70 = var38 - var52 + 2.0 * G4;
double var72 = var40 - var53 + 2.0 * G4;
double var74 = var34 - var54 + 3.0 * G4;
double var76 = var36 - var55 + 3.0 * G4;
double var78 = var38 - var56 + 3.0 * G4;
double var80 = var40 - var57 + 3.0 * G4;
double var82 = var34 - 1.0 + 4.0 * G4;
double var84 = var36 - 1.0 + 4.0 * G4;
double var86 = var38 - 1.0 + 4.0 * G4;
double var88 = var40 - 1.0 + 4.0 * G4;
int var90 = var20 & 0xFF;
int var91 = var21 & 0xFF;
int var92 = var22 & 0xFF;
int var93 = var23 & 0xFF;
int var94 = perm[var90 + perm[var91 + perm[var92 + perm[var93]]]] % 32;
int var95 = perm[var90 + var46 + perm[var91 + var47 + perm[var92 + var48 + perm[var93 + var49]]]] % 32;
int var96 = perm[var90 + var50 + perm[var91 + var51 + perm[var92 + var52 + perm[var93 + var53]]]] % 32;
int var97 = perm[var90 + var54 + perm[var91 + var55 + perm[var92 + var56 + perm[var93 + var57]]]] % 32;
int var98 = perm[var90 + 1 + perm[var91 + 1 + perm[var92 + 1 + perm[var93 + 1]]]] % 32;
double var99 = 0.5 - var34 * var34 - var36 * var36 - var38 * var38 - var40 * var40;
double var8;
if (var99 < 0.0) {
var8 = 0.0;
} else {
var99 *= var99;
var8 = var99 * var99 * dot(grad4[var94], var34, var36, var38, var40);
}
double var101 = 0.6 - var58 * var58 - var60 * var60 - var62 * var62 - var64 * var64;
double var10;
if (var101 < 0.0) {
var10 = 0.0;
} else {
var101 *= var101;
var10 = var101 * var101 * dot(grad4[var95], var58, var60, var62, var64);
}
double var103 = 0.6 - var66 * var66 - var68 * var68 - var70 * var70 - var72 * var72;
double var12;
if (var103 < 0.0) {
var12 = 0.0;
} else {
var103 *= var103;
var12 = var103 * var103 * dot(grad4[var96], var66, var68, var70, var72);
}
double var105 = 0.6 - var74 * var74 - var76 * var76 - var78 * var78 - var80 * var80;
double var14;
if (var105 < 0.0) {
var14 = 0.0;
} else {
var105 *= var105;
var14 = var105 * var105 * dot(grad4[var97], var74, var76, var78, var80);
}
double var107 = 0.6 - var82 * var82 - var84 * var84 - var86 * var86 - var88 * var88;
double var16;
if (var107 < 0.0) {
var16 = 0.0;
} else {
var107 *= var107;
var16 = var107 * var107 * dot(grad4[var98], var82, var84, var86, var88);
}
class="kw">return 27.0 * (var8 + var10 + var12 + var14 + var16);
}
class="kw">static {
for (int var0 = 0; var0 < 512; var0++) {
perm[var0] = p[var0 & 0xFF];
permMod12[var0] = (short)(perm[var0] % 12);
}
}
class="kw">private class="kw">static class Grad {
double x;
double y;
double z;
double w;
Grad(double var1, double var3, double var5) {
this.x = var1;
this.y = var3;
this.z = var5;
}
Grad(double var1, double var3, double var5, double var7) {
this.x = var1;
this.y = var3;
this.z = var5;
this.w = var7;
}
}
}