VectorUtil class
Пакет: com.hypixel.hytale.builtin.hytalegenerator
Файл: com/hypixel/hytale/builtin/hytalegenerator/VectorUtil.java
Поля (81)
| Модификаторы | Тип | Имя |
|---|---|---|
|
private int |
index |
|
double |
var10 |
|
double |
var10 |
|
double |
var10 |
|
Vector3d |
var10 |
|
Vector3d |
var11 |
|
Vector3d |
var11 |
|
Vector3d |
var11 |
|
double |
var11 |
|
double |
var12 |
|
double |
var13 |
|
Vector3d |
var14 |
|
Vector3d |
var15 |
|
Vector3d |
var16 |
|
double |
var17 |
|
Vector3d |
var19 |
|
double |
var2 |
|
Vector3d |
var2 |
|
double |
var2 |
|
ArrayList |
var2 |
|
double |
var20 |
|
double |
var21 |
|
double |
var22 |
|
double |
var24 |
|
double |
var26 |
|
Vector3d |
var28 |
|
|
var28 |
|
|
var28 |
|
|
var28 |
|
Vector3d |
var29 |
|
|
var29 |
|
|
var29 |
|
|
var29 |
|
Vector3d |
var3 |
|
Vector3d |
var3 |
|
double |
var3 |
|
Vector3d |
var3 |
|
double |
var30 |
|
|
var30 |
|
|
var30 |
|
double |
var32 |
|
double |
var33 |
|
|
var33 |
|
|
var33 |
|
double |
var4 |
|
Vector3d |
var4 |
|
Vector3d |
var4 |
|
Vector3d |
var4 |
|
double |
var4 |
|
Vector3d |
var4 |
|
double |
var4 |
|
Vector2i |
var4 |
|
double |
var5 |
|
double |
var5 |
|
double |
var5 |
|
double |
var5 |
|
double |
var5 |
|
double |
var6 |
|
double |
var6 |
|
double |
var6 |
|
Vector3d |
var7 |
|
Vector3d |
var7 |
|
boolean[] |
var7 |
|
Vector3d |
var7 |
|
double |
var7 |
|
ArrayList |
var7 |
|
Vector3d |
var8 |
|
double |
var8 |
|
Vector3d |
var8 |
|
double |
var8 |
|
Vector3d |
var8 |
|
Vector3d |
var8 |
|
double |
var8 |
|
double |
var9 |
|
|
var9 |
|
double |
var9 |
|
|
var9 |
|
Vector3d |
var9 |
|
double |
var9 |
|
|
var9 |
|
double |
var9 |
Методы (62)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalArgumentExceptionthrow new IllegalArgumentException("negative shift") |
|
public |
Retrieverpublic Retriever(int var1) |
static |
double |
angledouble angle(@Nonnull Vector3d var0, @Nonnull Vector3d var1) |
static |
boolean |
areasOverlapboolean areasOverlap(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2, @Nonnull Vector3d var3) |
static |
void |
assignFlooredvoid assignFloored(@Nonnull Vector3i var0, @Nonnull Vector3d var1) |
static |
void |
bitShiftLeftvoid bitShiftLeft(int var0, @Nonnull Vector3i var1) |
static |
void |
bitShiftRightvoid bitShiftRight(int var0, @Nonnull Vector3i var1) |
static |
double |
determinantdouble determinant(@Nonnull Vector3dc var0, @Nonnull Vector3dc var1) |
static |
double |
determinantdouble determinant(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2) |
static |
double |
distanceToLine3ddouble distanceToLine3d(@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
@Nonnull Vector3d var4,
@Nonnull Vector3d var5,
@Nonnull Vector3d var6,
@Nonnull Vector3d var7) |
static |
double |
distanceToSegment3ddouble distanceToSegment3d(@Nonnull Vector3dc var0, @Nonnull Vector3dc var1, @Nonnull Vector3dc var2) |
|
|
for for(Pair var9 : var2) |
abstract |
|
for for(int var3 = 0; var3 < var1.size() |
|
public int |
frompublic int from(@Nonnull Vector3i var1) |
|
public int |
frompublic int from(@Nonnull Vector2i var1) |
|
public double |
frompublic double from(@Nonnull Vector3d var1) |
|
public double |
frompublic double from(@Nonnull Vector2d var1) |
|
public int |
getIndexpublic int getIndex() |
|
|
if if(var2 >= var4 && var2 >= var6) |
|
|
if if(var17 == 0.0) |
|
|
if if(var4) |
|
|
if if(var32 <= 0.0 && var21 <= 0.0) |
|
|
if if(var32 >= var10 && var21 >= var10) |
|
|
if if(var4) |
|
|
if if(var24 < 0.0) |
|
|
if if(var26 < 0.0) |
|
|
if if(var24 < 0.0 || var24 > var10) |
|
|
if if(var30 < 0.0) |
|
|
if if(var26 < 0.0 || var26 > var12) |
|
|
if if(var33 < 0.0) |
|
|
if if(var0 < 0) |
|
|
if if(var0 < 0) |
static |
boolean |
isAnyGreaterboolean isAnyGreater(@Nonnull Vector3d var0, @Nonnull Vector3d var1) |
static |
boolean |
isAnyGreaterboolean isAnyGreater(@Nonnull Vector3i var0, @Nonnull Vector3i var1) |
static |
boolean |
isAnyGreaterboolean isAnyGreater(@Nonnull Vector2d var0, @Nonnull Vector2d var1) |
static |
boolean |
isAnyGreaterboolean isAnyGreater(@Nonnull Vector2i var0, @Nonnull Vector2i var1) |
static |
boolean |
isAnySmallerboolean isAnySmaller(@Nonnull Vector3d var0, @Nonnull Vector3d var1) |
static |
boolean |
isAnySmallerboolean isAnySmaller(@Nonnull Vector3i var0, @Nonnull Vector3i var1) |
static |
boolean |
isAnySmallerboolean isAnySmaller(@Nonnull Vector2d var0, @Nonnull Vector2d var1) |
static |
boolean |
isAnySmallerboolean isAnySmaller(@Nonnull Vector2i var0, @Nonnull Vector2i var1) |
static |
boolean |
isInsideboolean isInside(@Nonnull Vector3i var0, @Nonnull Vector3i var1, @Nonnull Vector3i var2) |
static |
boolean |
isInsideboolean isInside(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2) |
static |
boolean |
isInsideboolean isInside(@Nonnull Vector2d var0, @Nonnull Vector2d var1, @Nonnull Vector2d var2) |
static |
boolean |
isSmallerboolean isSmaller(@Nonnull Vector3d var0, @Nonnull Vector3d var1) |
static |
boolean |
isSmallerboolean isSmaller(@Nonnull Vector2d var0, @Nonnull Vector2d var1) |
static |
boolean |
isSmallerboolean isSmaller(@Nonnull Vector2i var0, @Nonnull Vector2i var1) |
static |
boolean |
isZeroboolean isZero(@Nonnull Vector3dc var0) |
static |
boolean |
isZeroboolean isZero(@Nonnull Vector3ic var0) |
static |
void |
nearestPointOnLine3dvoid nearestPointOnLine3d(@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
@Nonnull Vector3d var4,
@Nonnull Vector3d var5,
@Nonnull Vector3d var6,
@Nonnull Vector3d var7) |
static |
void |
nextDownvoid nextDown(@Nonnull Vector3d var0) |
|
public static VectorUtil.Retriever |
ofIndexpublic static VectorUtil.Retriever ofIndex(int var0) |
static |
void |
orthogonalVectorvoid orthogonalVector(@Nonnull Vector3d var0, @Nonnull Vector3d var1) |
static |
void |
rotateAroundAxisvoid rotateAroundAxis(@Nonnull Vector3d var0, @Nonnull Vector3d var1, double var2) |
static |
void |
rotateVectorByAxisAnglevoid rotateVectorByAxisAngle(@Nonnull Vector3d var0, @Nonnull Vector3d var1, double var2) |
abstract |
int |
runint run(int var1, int var2, @Nonnull VectorUtil.Retriever var3) |
abstract |
int |
runint run(@Nonnull VectorUtil.Retriever var1) |
abstract |
int |
runint run(int var1, @Nonnull VectorUtil.Retriever var2) |
static |
boolean[] |
shortestSegmentBetweenTwoSegmentsboolean[] shortestSegmentBetweenTwoSegments(@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
boolean var4,
@Nonnull Vector3d var5,
@Nonnull Vector3d var6) |
|
return |
switchreturn switch(this.index) |
|
return |
switchreturn switch(this.index) |
|
return |
switchreturn switch(this.index) |
|
return |
switchreturn switch(this.index) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.builtin.hytalegenerator;
class="kw">import com.hypixel.hytale.builtin.hytalegenerator.math.Calculator;
class="kw">import it.unimi.dsi.fastutil.Pair;
class="kw">import it.unimi.dsi.fastutil.doubles.DoubleObjectPair;
class="kw">import java.math.BigDecimal;
class="kw">import java.util.ArrayList;
class="kw">import java.util.Comparator;
class="kw">import java.util.List;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Vector2d;
class="kw">import org.joml.Vector2i;
class="kw">import org.joml.Vector3d;
class="kw">import org.joml.Vector3dc;
class="kw">import org.joml.Vector3i;
class="kw">import org.joml.Vector3ic;
class="kw">public class VectorUtil {
class="kw">public VectorUtil() {
}
@Nonnull
class="kw">public class="kw">static String toString(@Nonnull Vector3dc var0) {
class="kw">return "{x="
+ BigDecimal.valueOf(var0.x()).toPlainString()
+ ", y="
+ BigDecimal.valueOf(var0.y()).toPlainString()
+ ", z="
+ BigDecimal.valueOf(var0.z()).toPlainString()
+ "}";
}
@Nonnull
class="kw">public class="kw">static String toString(@Nonnull Vector3ic var0) {
class="kw">return "{x=" + var0.x() + ", y=" + var0.y() + ", z=" + var0.z() + "}";
}
class="kw">public class="kw">static void nextDown(@Nonnull Vector3d var0) {
var0.x = Math.nextDown(var0.x);
var0.y = Math.nextDown(var0.y);
var0.z = Math.nextDown(var0.z);
}
class="kw">public class="kw">static void orthogonalVector(@Nonnull Vector3d var0, @Nonnull Vector3d var1) {
if (isZero(var0)) {
var1.set(0.0);
} else {
double var2 = Math.abs(var0.x);
double var4 = Math.abs(var0.y);
double var6 = Math.abs(var0.z);
if (var2 >= var4 && var2 >= var6) {
var1.set(var0.y, -var0.x, 0.0);
} else if (var4 >= var2 && var4 >= var6) {
var1.set(0.0, var0.z, -var0.y);
} else {
var1.set(-var0.z, 0.0, var0.x);
}
}
}
class="kw">public class="kw">static boolean isZero(@Nonnull Vector3dc var0) {
class="kw">return var0.x() == 0.0 && var0.y() == 0.0 && var0.z() == 0.0;
}
class="kw">public class="kw">static boolean isZero(@Nonnull Vector3ic var0) {
class="kw">return var0.x() == 0 && var0.y() == 0 && var0.z() == 0;
}
class="kw">public class="kw">static void assignFloored(@Nonnull Vector3i var0, @Nonnull Vector3d var1) {
var0.x = (int)Math.floor(var1.x);
var0.y = (int)Math.floor(var1.y);
var0.z = (int)Math.floor(var1.z);
}
class="kw">public class="kw">static boolean areasOverlap(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2, @Nonnull Vector3d var3) {
class="kw">return isAnyGreater(var1, var2) && isAnySmaller(var0, var3);
}
class="kw">public class="kw">static double distanceToSegment3d(@Nonnull Vector3dc var0, @Nonnull Vector3dc var1, @Nonnull Vector3dc var2) {
Vector3d var3 = new Vector3d(var2).fma(-1.0, var1);
Vector3d var4 = new Vector3d(var0).fma(-1.0, var1);
double var5 = var3.length();
Vector3d var7 = new Vector3d(var3).normalize(1.0);
Vector3d var8 = new Vector3d(var4).mul(1.0 / var5);
double var9 = var7.dot(var8);
var9 = Calculator.clamp(0.0, var9, 1.0);
Vector3d var11 = new Vector3d(var3).mul(var9);
class="kw">return var11.distance(var4);
}
class="kw">public class="kw">static double distanceToLine3d(
@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
@Nonnull Vector3d var4,
@Nonnull Vector3d var5,
@Nonnull Vector3d var6,
@Nonnull Vector3d var7
) {
var3.set(var2).sub(var1);
var4.set(var0).sub(var1);
double var8 = var3.length();
var5.set(var3).normalize(1.0);
var6.set(var4).mul(1.0 / var8);
double var10 = var5.dot(var6);
var7.set(var3).mul(var10);
class="kw">return var7.distance(var4);
}
@Nonnull
class="kw">public class="kw">static Vector3d nearestPointOnSegment3d(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2) {
Vector3d var3 = new Vector3d(var2).fma(-1.0, var1);
Vector3d var4 = new Vector3d(var0).fma(-1.0, var1);
double var5 = var3.length();
Vector3d var7 = new Vector3d(var3).normalize(1.0);
Vector3d var8 = new Vector3d(var4).mul(1.0 / var5);
double var9 = var7.dot(var8);
var9 = Calculator.clamp(0.0, var9, 1.0);
Vector3d var11 = new Vector3d(var3).mul(var9);
class="kw">return var11.add(var1);
}
class="kw">public class="kw">static void nearestPointOnLine3d(
@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
@Nonnull Vector3d var4,
@Nonnull Vector3d var5,
@Nonnull Vector3d var6,
@Nonnull Vector3d var7
) {
var4.set(var2).sub(var1);
var5.set(var0).sub(var1);
double var8 = var4.length();
var6.set(var4).normalize(1.0);
var7.set(var5).mul(1.0 / var8);
double var10 = var6.dot(var7);
var3.set(var4).mul(var10);
var3.add(var1);
}
class="kw">public class="kw">static boolean[] shortestSegmentBetweenTwoSegments(
@Nonnull Vector3d var0,
@Nonnull Vector3d var1,
@Nonnull Vector3d var2,
@Nonnull Vector3d var3,
boolean var4,
@Nonnull Vector3d var5,
@Nonnull Vector3d var6
) {
boolean[] var7 = new boolean[2];
Vector3d var8 = new Vector3d(var1).fma(-1.0, var0);
Vector3d var9 = new Vector3d(var3).fma(-1.0, var2);
double var10 = var8.length();
double var12 = var9.length();
Vector3d var14 = new Vector3d(var8).mul(1.0 / var10);
Vector3d var15 = new Vector3d(var9).mul(1.0 / var12);
Vector3d var16 = var14.cross(var15, new Vector3d());
double var17 = Math.pow(var16.length(), 2.0);
if (var17 == 0.0) {
var7[0] = true;
double var32 = var14.dot(new Vector3d(var2).fma(-1.0, var0));
if (var4) {
double var21 = var14.dot(new Vector3d(var3).fma(-1.0, var0));
if (var32 <= 0.0 && var21 <= 0.0) {
if (Math.abs(var32) < Math.abs(var21)) {
var5.set(var0);
var6.set(var2);
var7[1] = true;
class="kw">return var7;
}
var5.set(var0);
var6.set(var3);
var7[1] = true;
class="kw">return var7;
}
if (var32 >= var10 && var21 >= var10) {
if (Math.abs(var32) < Math.abs(var21)) {
var5.set(var1);
var6.set(var2);
var7[1] = true;
class="kw">return var7;
}
var5.set(var1);
var6.set(var3);
var7[1] = true;
class="kw">return var7;
}
}
class="kw">return var7;
} else {
Vector3d var19 = new Vector3d(var2).fma(-1.0, var0);
double var20 = determinant(var19, var15, var16);
double var22 = determinant(var19, var14, var16);
double var24 = var20 / var17;
double var26 = var22 / var17;
Vector3d var28 = new Vector3d(var14).mul(var24).add(var0);
Vector3d var29 = new Vector3d(var15).mul(var26).add(var2);
if (var4) {
if (var24 < 0.0) {
var28 = new Vector3d(var0);
} else if (var24 > var10) {
var28 = new Vector3d(var1);
}
if (var26 < 0.0) {
var29 = new Vector3d(var2);
} else if (var26 > var12) {
var29 = new Vector3d(var3);
}
if (var24 < 0.0 || var24 > var10) {
double var30 = var15.dot(new Vector3d(var28).fma(-1.0, var2));
if (var30 < 0.0) {
var30 = 0.0;
} else if (var30 > var12) {
var30 = var12;
}
var29 = new Vector3d(var2).add(new Vector3d(var15).mul(var30));
}
if (var26 < 0.0 || var26 > var12) {
double var33 = var14.dot(new Vector3d(var29).fma(-1.0, var0));
if (var33 < 0.0) {
var33 = 0.0;
} else if (var33 > var10) {
var33 = var10;
}
var28 = new Vector3d(var0).add(new Vector3d(var14).mul(var33));
}
}
var5.set(var28);
var6.set(var29);
var7[1] = true;
class="kw">return var7;
}
}
class="kw">public class="kw">static double determinant(@Nonnull Vector3dc var0, @Nonnull Vector3dc var1) {
Vector3d var2 = var0.cross(var1, new Vector3d());
class="kw">return var2.length();
}
class="kw">public class="kw">static double determinant(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2) {
double var3 = var0.x * var1.y * var2.z + var1.x * var2.y * var0.z + var2.x * var0.y * var1.z;
class="kw">return var3 - (var0.z * var1.y * var2.x + var1.z * var2.y * var0.x + var2.z * var0.y * var1.x);
}
@Nonnull
class="kw">public class="kw">static DoubleObjectPair<Vector3d> distanceAndNearestPointOnSegment3d(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2) {
Vector3d var3 = new Vector3d(var2).fma(-1.0, var1);
Vector3d var4 = new Vector3d(var0).fma(-1.0, var1);
double var5 = var3.length();
Vector3d var7 = new Vector3d(var3).normalize(1.0);
Vector3d var8 = new Vector3d(var4).mul(1.0 / var5);
double var9 = var7.dot(var8);
var9 = Calculator.clamp(0.0, var9, 1.0);
Vector3d var11 = new Vector3d(var3).mul(var9);
class="kw">return DoubleObjectPair.of(var11.distance(var4), var11.add(var1));
}
class="kw">public class="kw">static double angle(@Nonnull Vector3d var0, @Nonnull Vector3d var1) {
double var2 = var0.x * var1.x + var0.y * var1.y + var0.z * var1.z;
double var4 = Math.sqrt(var0.x * var0.x + var0.y * var0.y + var0.z * var0.z);
double var6 = Math.sqrt(var1.x * var1.x + var1.y * var1.y + var1.z * var1.z);
class="kw">return Math.acos(var2 / (var4 * var6));
}
class="kw">public class="kw">static void rotateAroundAxis(@Nonnull Vector3d var0, @Nonnull Vector3d var1, double var2) {
Vector3d var4 = new Vector3d(var1);
var4.normalize();
double var5 = var4.x * (var4.x * var0.x + var4.y * var0.y + var4.z * var0.z) * (1.0 - Math.cos(var2))
+ var0.x * Math.cos(var2)
+ (-var4.z * var0.y + var4.y * var0.z) * Math.sin(var2);
double var7 = var4.y * (var4.x * var0.x + var4.y * var0.y + var4.z * var0.z) * (1.0 - Math.cos(var2))
+ var0.y * Math.cos(var2)
+ (var4.z * var0.x - var4.x * var0.z) * Math.sin(var2);
double var9 = var4.z * (var4.x * var0.x + var4.y * var0.y + var4.z * var0.z) * (1.0 - Math.cos(var2))
+ var0.z * Math.cos(var2)
+ (-var4.y * var0.x + var4.x * var0.y) * Math.sin(var2);
var0.x = var5;
var0.y = var7;
var0.z = var9;
}
class="kw">public class="kw">static void rotateVectorByAxisAngle(@Nonnull Vector3d var0, @Nonnull Vector3d var1, double var2) {
Vector3d var10 = var1.cross(var0, new Vector3d());
double var11 = Math.cos(var2);
double var13 = Math.sin(var2);
double var4 = var0.x * var11 + var10.x * var13 + var1.x * var1.dot(var0) * (1.0 - var11);
double var6 = var0.y * var11 + var10.y * var13 + var1.y * var1.dot(var0) * (1.0 - var11);
double var8 = var0.z * var11 + var10.z * var13 + var1.z * var1.dot(var0) * (1.0 - var11);
var0.x = var4;
var0.y = var6;
var0.z = var8;
}
class="kw">public class="kw">static boolean isInside(@Nonnull Vector3i var0, @Nonnull Vector3i var1, @Nonnull Vector3i var2) {
class="kw">return var0.x >= var1.x && var0.x < var2.x && var0.y >= var1.y && var0.y < var2.y && var0.z >= var1.z && var0.z < var2.z;
}
class="kw">public class="kw">static boolean isInside(@Nonnull Vector3d var0, @Nonnull Vector3d var1, @Nonnull Vector3d var2) {
class="kw">return !isAnySmaller(var0, var1) && isSmaller(var0, var2);
}
class="kw">public class="kw">static boolean isAnySmaller(@Nonnull Vector3d var0, @Nonnull Vector3d var1) {
class="kw">return var0.x < var1.x || var0.y < var1.y || var0.z < var1.z;
}
class="kw">public class="kw">static boolean isSmaller(@Nonnull Vector3d var0, @Nonnull Vector3d var1) {
class="kw">return var0.x < var1.x && var0.y < var1.y && var0.z < var1.z;
}
class="kw">public class="kw">static boolean isAnyGreater(@Nonnull Vector3d var0, @Nonnull Vector3d var1) {
class="kw">return var0.x > var1.x || var0.y > var1.y || var0.z > var1.z;
}
class="kw">public class="kw">static boolean isAnySmaller(@Nonnull Vector3i var0, @Nonnull Vector3i var1) {
class="kw">return var0.x < var1.x || var0.y < var1.y || var0.z < var1.z;
}
class="kw">public class="kw">static boolean isAnyGreater(@Nonnull Vector3i var0, @Nonnull Vector3i var1) {
class="kw">return var0.x > var1.x || var0.y > var1.y || var0.z > var1.z;
}
class="kw">public class="kw">static boolean isInside(@Nonnull Vector2d var0, @Nonnull Vector2d var1, @Nonnull Vector2d var2) {
class="kw">return !isAnySmaller(var0, var1) && isSmaller(var0, var2);
}
class="kw">public class="kw">static boolean isAnySmaller(@Nonnull Vector2d var0, @Nonnull Vector2d var1) {
class="kw">return var0.x < var1.x || var0.y < var1.y;
}
class="kw">public class="kw">static boolean isSmaller(@Nonnull Vector2d var0, @Nonnull Vector2d var1) {
class="kw">return var0.x < var1.x && var0.y < var1.y;
}
class="kw">public class="kw">static boolean isAnyGreater(@Nonnull Vector2d var0, @Nonnull Vector2d var1) {
class="kw">return var0.x > var1.x || var0.y > var1.y;
}
class="kw">public class="kw">static boolean isAnySmaller(@Nonnull Vector2i var0, @Nonnull Vector2i var1) {
class="kw">return var0.x < var1.x || var0.y < var1.y;
}
class="kw">public class="kw">static boolean isSmaller(@Nonnull Vector2i var0, @Nonnull Vector2i var1) {
class="kw">return var0.x < var1.x && var0.y < var1.y;
}
class="kw">public class="kw">static boolean isAnyGreater(@Nonnull Vector2i var0, @Nonnull Vector2i var1) {
class="kw">return var0.x > var1.x || var0.y > var1.y;
}
@Nonnull
class="kw">public class="kw">static Vector3i fromOperation(@Nonnull Vector3i var0, @Nonnull Vector3i var1, @Nonnull VectorUtil.BiOperation3i var2) {
class="kw">return new Vector3i(
var2.run(var0.x, var1.x, VectorUtil.Retriever.ofIndex(0)),
var2.run(var0.y, var1.y, VectorUtil.Retriever.ofIndex(1)),
var2.run(var0.z, var1.z, VectorUtil.Retriever.ofIndex(2))
);
}
@Nonnull
class="kw">public class="kw">static Vector3i fromOperation(@Nonnull VectorUtil.NakedOperation3i var0) {
class="kw">return new Vector3i(var0.run(VectorUtil.Retriever.ofIndex(0)), var0.run(VectorUtil.Retriever.ofIndex(1)), var0.run(VectorUtil.Retriever.ofIndex(2)));
}
class="kw">public class="kw">static void bitShiftRight(int var0, @Nonnull Vector3i var1) {
if (var0 < 0) {
throw new IllegalArgumentException("negative shift");
}
var1.x >>= var0;
var1.y >>= var0;
var1.z >>= var0;
}
class="kw">public class="kw">static void bitShiftLeft(int var0, @Nonnull Vector3i var1) {
if (var0 < 0) {
throw new IllegalArgumentException("negative shift");
}
var1.x <<= var0;
var1.y <<= var0;
var1.z <<= var0;
}
@Nonnull
class="kw">public class="kw">static List<Vector2i> orderByDistanceFrom(@Nonnull Vector2i var0, @Nonnull List<Vector2i> var1) {
ArrayList var2 = new ArrayList<>(var1.size());
for (int var3 = 0; var3 < var1.size(); var3++) {
Vector2i var4 = var1.get(var3);
double var5 = Calculator.distance(var4.x, var4.y, var0.x, var0.y);
var2.add(Pair.of(var5, var4));
}
var2.sort(Comparator.comparingDouble(Pair::first));
ArrayList var7 = new ArrayList<>(var2.size());
for (Pair var9 : var2) {
var7.add((Vector2i)var9.second());
}
class="kw">return var7;
}
@FunctionalInterface
class="kw">public class="kw">interface BiOperation3i {
int run(int var1, int var2, @Nonnull VectorUtil.Retriever var3);
}
@FunctionalInterface
class="kw">public class="kw">interface NakedOperation3i {
int run(@Nonnull VectorUtil.Retriever var1);
}
@FunctionalInterface
class="kw">public class="kw">interface Operation3i {
int run(int var1, @Nonnull VectorUtil.Retriever var2);
}
class="kw">public class="kw">static class Retriever {
class="kw">private int index;
class="kw">public Retriever(int var1) {
this.index = var1;
}
@Nonnull
class="kw">public class="kw">static VectorUtil.Retriever ofIndex(int var0) {
class="kw">return new VectorUtil.Retriever(var0);
}
class="kw">public int getIndex() {
class="kw">return this.index;
}
class="kw">public int from(@Nonnull Vector3i var1) {
class="kw">return class="kw">switch (this.index) {
case 0 -> var1.x;
case 1 -> var1.y;
case 2 -> var1.z;
class="kw">default -> throw new IllegalArgumentException();
};
}
class="kw">public int from(@Nonnull Vector2i var1) {
class="kw">return class="kw">switch (this.index) {
case 0 -> var1.x;
case 1 -> var1.y;
class="kw">default -> throw new IllegalArgumentException();
};
}
class="kw">public double from(@Nonnull Vector3d var1) {
class="kw">return class="kw">switch (this.index) {
case 0 -> var1.x;
case 1 -> var1.y;
case 2 -> var1.z;
class="kw">default -> throw new IllegalArgumentException();
};
}
class="kw">public double from(@Nonnull Vector2d var1) {
class="kw">return class="kw">switch (this.index) {
case 0 -> var1.x;
case 1 -> var1.y;
class="kw">default -> throw new IllegalArgumentException();
};
}
}
}