SphereOffsets class

Пакет: com.hypixel.hytale.math.iterator

Файл: com/hypixel/hytale/math/iterator/SphereOffsets.java

Поля (14)

МодификаторыТипИмя
int var1
int var11
int[] var12
int var14
short[] var15
short[] var16
short[] var17
long[] var18
int var2
short[] var20
short[] var21
short[] var22
int[] var6
int var7

Методы (12)

МодификаторыВозвратСигнатура
abstract throw new IllegalArgumentExceptionthrow new IllegalArgumentException("radius must be non-negative: maxR=" + var0)
for for(int var3 = -var0; var3 <= var0; var3++)
for for(int var4 = -var0; var4 <= var0; var4++)
for for(int var5 = -var0; var5 <= var0; var5++)
for for(int var8 = -var0; var8 <= var0; var8++)
for for(int var9 = -var0; var9 <= var0; var9++)
for for(int var10 = -var0; var10 <= var0; var10++)
for for(int var19 = 0; var19 < var2; var19++)
for for(int var13 = 0; var13 < var2; var13++)
if if(var0 < 0)
if if(var4 * var4 + var3 * var3 + var5 * var5 <= var1)
if if(var11 <= var1)

Исходный код

Показать/скрыть
class="kw">package com.hypixel.hytale.math.iterator;

class="kw">import java.util.Arrays;
class="kw">import javax.annotation.Nonnull;

class="kw">public class="kw">final class SphereOffsets {
   @Nonnull
   class="kw">public class="kw">final short[] dx;
   @Nonnull
   class="kw">public class="kw">final short[] dy;
   @Nonnull
   class="kw">public class="kw">final short[] dz;
   @Nonnull
   class="kw">public class="kw">final int[] distSq;
   class="kw">public class="kw">final int count;
   class="kw">public class="kw">final int maxR;

   class="kw">private SphereOffsets(@Nonnull short[] var1, @Nonnull short[] var2, @Nonnull short[] var3, @Nonnull int[] var4, int var5) {
      this.dx = var1;
      this.dy = var2;
      this.dz = var3;
      this.distSq = var4;
      this.count = var1.length;
      this.maxR = var5;
   }

   @Nonnull
   class="kw">public class="kw">static SphereOffsets build(int var0) {
      if (var0 < 0) {
         throw new IllegalArgumentException("radius must be non-negative: maxR=" + var0);
      }

      int var1 = var0 * var0;
      int var2 = 0;

      for (int var3 = -var0; var3 <= var0; var3++) {
         for (int var4 = -var0; var4 <= var0; var4++) {
            for (int var5 = -var0; var5 <= var0; var5++) {
               if (var4 * var4 + var3 * var3 + var5 * var5 <= var1) {
                  var2++;
               }
            }
         }
      }

      short[] var15 = new short[var2];
      short[] var16 = new short[var2];
      short[] var17 = new short[var2];
      int[] var6 = new int[var2];
      int var7 = 0;

      for (int var8 = -var0; var8 <= var0; var8++) {
         for (int var9 = -var0; var9 <= var0; var9++) {
            for (int var10 = -var0; var10 <= var0; var10++) {
               int var11 = var9 * var9 + var8 * var8 + var10 * var10;
               if (var11 <= var1) {
                  var15[var7] = (short)var9;
                  var16[var7] = (short)var8;
                  var17[var7] = (short)var10;
                  var6[var7] = var11;
                  var7++;
               }
            }
         }
      }

      long[] var18 = new long[var2];

      for (int var19 = 0; var19 < var2; var19++) {
         var18[var19] = (long)var6[var19] << 32 | var19 & 4294967295L;
      }

      Arrays.sort(var18);
      short[] var20 = new short[var2];
      short[] var21 = new short[var2];
      short[] var22 = new short[var2];
      int[] var12 = new int[var2];

      for (int var13 = 0; var13 < var2; var13++) {
         int var14 = (int)var18[var13];
         var20[var13] = var15[var14];
         var21[var13] = var16[var14];
         var22[var13] = var17[var14];
         var12[var13] = var6[var14];
      }

      class="kw">return new SphereOffsets(var20, var21, var22, var12, var0);
   }
}