Grad class

Пакет: com.hypixel.hytale.builtin.hytalegenerator.noise

Файл: com/hypixel/hytale/builtin/hytalegenerator/noise/Simplex.java

Поля (4)

МодификаторыТипИмя
double w
double x
double y
double z

Исходный код

Показать/скрыть
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;
      }
   }
}