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