BoxBlockIterator class
Пакет: com.hypixel.hytale.math.iterator
Файл: com/hypixel/hytale/math/iterator/BoxBlockIterator.java
Поля (16)
| Модификаторы | Тип | Имя |
|---|---|---|
|
BoxBlockIterator.BoxIterationConsumer |
consumer |
|
double |
mx |
|
double |
my |
|
double |
mz |
|
long |
posX |
|
long |
posY |
|
long |
posZ |
|
int |
signX |
|
int |
signY |
|
int |
signZ |
|
int |
var16 |
|
int |
var17 |
|
int |
var18 |
|
double |
var28 |
|
double |
var30 |
|
double |
var32 |
Методы (33)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
|
public |
BoxIterationBufferpublic BoxIterationBuffer() |
abstract |
throw new |
NullPointerExceptionthrow new NullPointerException("consumer is null!") |
abstract |
throw new |
NullPointerExceptionthrow new NullPointerException("buffer is null!") |
abstract |
throw new |
UnsupportedOperationExceptionthrow new UnsupportedOperationException("This is a utility class. Do not instantiate.") |
abstract |
boolean |
acceptboolean accept(long var1, long var3, long var5) |
|
|
for for(int var19 = 0; var19 < var17; var19++) |
|
|
for for(int var20 = 0; var20 < var18; var20++) |
|
|
for for(int var21 = 0; var21 < var18; var21++) |
|
|
for for(int var23 = 0; var23 < var16; var23++) |
|
|
for for(int var22 = 0; var22 < var16; var22++) |
|
|
for for(int var24 = 0; var24 < var17; var24++) |
static |
BoxBlockIterator.BoxIterationBuffer |
getBufferBoxBlockIterator.BoxIterationBuffer getBuffer() |
|
|
if if(var0 > var6 || var2 > var8 || var4 > var10) |
|
|
if if(var0x != var15.posX) |
|
|
if if(var1 != var15.posY) |
|
|
if if(var2x != var15.posZ) |
static |
boolean |
iterateboolean iterate(@Nonnull Box var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2, double var3, @Nonnull BoxBlockIterator.BoxIterationConsumer var5) |
static |
boolean |
iterateboolean iterate(@Nonnull Box var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
double var3,
@Nonnull BoxBlockIterator.BoxIterationConsumer var5,
@Nonnull BoxBlockIterator.BoxIterationBuffer var6) |
static |
boolean |
iterateboolean iterate(@Nonnull Box var0,
double var1,
double var3,
double var5,
double var7,
double var9,
double var11,
double var13,
@Nonnull BoxBlockIterator.BoxIterationConsumer var15) |
static |
boolean |
iterateboolean iterate(@Nonnull Box var0,
double var1,
double var3,
double var5,
double var7,
double var9,
double var11,
double var13,
@Nonnull BoxBlockIterator.BoxIterationConsumer var15,
@Nonnull BoxBlockIterator.BoxIterationBuffer var16) |
static |
boolean |
iterateboolean iterate(@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
@Nonnull BoxBlockIterator.BoxIterationConsumer var16) |
static |
boolean |
iterateboolean iterate(@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
@Nonnull BoxBlockIterator.BoxIterationConsumer var16,
@Nonnull BoxBlockIterator.BoxIterationBuffer var17) |
static |
boolean |
iterateboolean iterate(@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
double var4,
@Nonnull BoxBlockIterator.BoxIterationConsumer var6) |
static |
boolean |
iterateboolean iterate(@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
double var4,
@Nonnull BoxBlockIterator.BoxIterationConsumer var6,
@Nonnull BoxBlockIterator.BoxIterationBuffer var7) |
static |
boolean |
iterateboolean iterate(double var0,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
double var16,
double var18,
double var20,
double var22,
double var24,
@Nonnull BoxBlockIterator.BoxIterationConsumer var26) |
static |
boolean |
iterateboolean iterate(double var0,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
double var16,
double var18,
double var20,
double var22,
double var24,
@Nonnull BoxBlockIterator.BoxIterationConsumer var26,
@Nonnull BoxBlockIterator.BoxIterationBuffer var27) |
abstract |
return |
iteratereturn iterate(var0.min, var0.max, var1, var2, var3, var5, var6) |
abstract |
return |
iteratereturn iterate(var0.min, var0.max, var1, var3, var5, var7, var9, var11, var13, var15, var16) |
abstract |
return |
iteratereturn iterate(var0.x, var0.y, var0.z, var1.x, var1.y, var1.z, var2, var4, var6, var8, var10, var12, var14, var16, var17) |
abstract |
return |
iteratereturn iterate(var0.x, var0.y, var0.z, var1.x, var1.y, var1.z, var2.x, var2.y, var2.z, var3.x, var3.y, var3.z, var4, var6, var7) |
static |
boolean |
iterate0boolean iterate0(double var0,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
double var16,
double var18,
double var20,
double var22,
double var24,
BoxBlockIterator.BoxIterationConsumer var26,
@Nonnull BoxBlockIterator.BoxIterationBuffer var27) |
abstract |
return |
iterate0return iterate0(var0, var2, var4, var6, var8, var10, var12, var14, var16, var18, var20, var22, var24, var26, var27) |
abstract |
boolean |
nextboolean next() |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.math.iterator;
class="kw">import com.hypixel.hytale.math.shape.Box;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector3d;
class="kw">public class="kw">final class BoxBlockIterator {
@Nonnull
class="kw">private class="kw">static ThreadLocal<BoxBlockIterator.BoxIterationBuffer> THREAD_LOCAL_BUFFER = ThreadLocal.withInitial(BoxBlockIterator.BoxIterationBuffer::new);
class="kw">private BoxBlockIterator() {
throw new UnsupportedOperationException("This is a utility class. Do not instantiate.");
}
class="kw">public class="kw">static BoxBlockIterator.BoxIterationBuffer getBuffer() {
class="kw">return THREAD_LOCAL_BUFFER.get();
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Box var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2, double var3, @Nonnull BoxBlockIterator.BoxIterationConsumer var5
) {
class="kw">return iterate(var0, var1, var2, var3, var5, getBuffer());
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Box var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
double var3,
@Nonnull BoxBlockIterator.BoxIterationConsumer var5,
@Nonnull BoxBlockIterator.BoxIterationBuffer var6
) {
class="kw">return iterate(var0.min, var0.max, var1, var2, var3, var5, var6);
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Box var0,
double var1,
double var3,
double var5,
double var7,
double var9,
double var11,
double var13,
@Nonnull BoxBlockIterator.BoxIterationConsumer var15
) {
class="kw">return iterate(var0, var1, var3, var5, var7, var9, var11, var13, var15, getBuffer());
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Box var0,
double var1,
double var3,
double var5,
double var7,
double var9,
double var11,
double var13,
@Nonnull BoxBlockIterator.BoxIterationConsumer var15,
@Nonnull BoxBlockIterator.BoxIterationBuffer var16
) {
class="kw">return iterate(var0.min, var0.max, var1, var3, var5, var7, var9, var11, var13, var15, var16);
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
@Nonnull BoxBlockIterator.BoxIterationConsumer var16
) {
class="kw">return iterate(var0, var1, var2, var4, var6, var8, var10, var12, var14, var16, getBuffer());
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
@Nonnull BoxBlockIterator.BoxIterationConsumer var16,
@Nonnull BoxBlockIterator.BoxIterationBuffer var17
) {
class="kw">return iterate(var0.x, var0.y, var0.z, var1.x, var1.y, var1.z, var2, var4, var6, var8, var10, var12, var14, var16, var17);
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
double var4,
@Nonnull BoxBlockIterator.BoxIterationConsumer var6
) {
class="kw">return iterate(var0, var1, var2, var3, var4, var6, getBuffer());
}
class="kw">public class="kw">static boolean iterate(
@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
double var4,
@Nonnull BoxBlockIterator.BoxIterationConsumer var6,
@Nonnull BoxBlockIterator.BoxIterationBuffer var7
) {
class="kw">return iterate(var0.x, var0.y, var0.z, var1.x, var1.y, var1.z, var2.x, var2.y, var2.z, var3.x, var3.y, var3.z, var4, var6, var7);
}
class="kw">public class="kw">static boolean iterate(
double var0,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
double var16,
double var18,
double var20,
double var22,
double var24,
@Nonnull BoxBlockIterator.BoxIterationConsumer var26
) {
class="kw">return iterate(var0, var2, var4, var6, var8, var10, var12, var14, var16, var18, var20, var22, var24, var26, getBuffer());
}
class="kw">public class="kw">static boolean iterate(
double var0,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
double var16,
double var18,
double var20,
double var22,
double var24,
@Nonnull BoxBlockIterator.BoxIterationConsumer var26,
@Nonnull BoxBlockIterator.BoxIterationBuffer var27
) {
if (var0 > var6 || var2 > var8 || var4 > var10) {
class="kw">return true;
} else if (var26 == null) {
throw new NullPointerException("consumer is null!");
} else if (var27 == null) {
throw new NullPointerException("buffer is null!");
} else {
class="kw">return iterate0(var0, var2, var4, var6, var8, var10, var12, var14, var16, var18, var20, var22, var24, var26, var27);
}
}
class="kw">private class="kw">static boolean iterate0(
double var0,
double var2,
double var4,
double var6,
double var8,
double var10,
double var12,
double var14,
double var16,
double var18,
double var20,
double var22,
double var24,
BoxBlockIterator.BoxIterationConsumer var26,
@Nonnull BoxBlockIterator.BoxIterationBuffer var27
) {
var27.consumer = var26;
var27.mx = var6 - var0;
var27.my = var8 - var2;
var27.mz = var10 - var4;
var27.signX = var18 > 0.0 ? -1 : 1;
var27.signY = var20 > 0.0 ? -1 : 1;
var27.signZ = var22 > 0.0 ? -1 : 1;
double var28 = var12 + (var18 > 0.0 ? var6 : var0);
double var30 = var14 + (var20 > 0.0 ? var8 : var2);
double var32 = var16 + (var22 > 0.0 ? var10 : var4);
var27.posX = (long)var28;
var27.posY = (long)var30;
var27.posZ = (long)var32;
class="kw">return BlockIterator.iterate(var28, var30, var32, var18, var20, var22, var24, (var0x, var1, var2x, var3, var5, var7, var9, var11, var13, var15) -> {
int var16 = (int)MathUtil.fastCeil((var15.signX < 0 ? 1.0 - var3 : var3) + var15.mx);
int var17 = (int)MathUtil.fastCeil((var15.signY < 0 ? 1.0 - var5 : var5) + var15.my);
int var18 = (int)MathUtil.fastCeil((var15.signZ < 0 ? 1.0 - var7 : var7) + var15.mz);
if (var0x != var15.posX) {
for (int var19 = 0; var19 < var17; var19++) {
for (int var20 = 0; var20 < var18; var20++) {
if (!var15.consumer.accept(var0x, var1 + (long)var19 * var15.signY, var2x + (long)var20 * var15.signZ)) {
class="kw">return false;
}
}
}
var15.posX = var0x;
}
if (var1 != var15.posY) {
for (int var21 = 0; var21 < var18; var21++) {
for (int var23 = 0; var23 < var16; var23++) {
if (!var15.consumer.accept(var0x + (long)var23 * var15.signX, var1, var2x + (long)var21 * var15.signZ)) {
class="kw">return false;
}
}
}
var15.posY = var1;
}
if (var2x != var15.posZ) {
for (int var22 = 0; var22 < var16; var22++) {
for (int var24 = 0; var24 < var17; var24++) {
if (!var15.consumer.accept(var0x + (long)var22 * var15.signX, var1 + (long)var24 * var15.signY, var2x)) {
class="kw">return false;
}
}
}
var15.posZ = var2x;
}
class="kw">return var15.consumer.next();
}, var27);
}
class="kw">public class="kw">static class BoxIterationBuffer {
BoxBlockIterator.BoxIterationConsumer consumer;
double mx;
double my;
double mz;
int signX;
int signY;
int signZ;
long posX;
long posY;
long posZ;
class="kw">public BoxIterationBuffer() {
}
}
class="kw">public class="kw">interface BoxIterationConsumer {
boolean next();
boolean accept(long var1, long var3, long var5);
}
}