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;
      }
   }
}