Quad4d class
Пакет: com.hypixel.hytale.math.shape
Файл: com/hypixel/hytale/math/shape/Quad4d.java
Поля (12)
| Модификаторы | Тип | Имя |
|---|---|---|
private |
Vector4d |
a |
|
double |
var2 |
|
|
var2 |
|
|
var2 |
|
|
var2 |
|
double |
var2 |
|
|
var2 |
|
|
var2 |
|
|
var2 |
|
double |
var3 |
|
double |
var5 |
|
double |
var7 |
Методы (12)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
Vector4d |
getVector4d get(int var1) |
public |
Vector4d |
getAVector4d getA() |
public |
Vector4d |
getBVector4d getB() |
public |
Vector4d |
getCVector4d getC() |
public |
Vector4d |
getDVector4d getD() |
public |
double |
getMaxdouble getMax(int var1) |
public |
double |
getMindouble getMin(int var1) |
public |
boolean |
isFullyInsideFrustumboolean isFullyInsideFrustum() |
public |
void |
perspectiveTransformvoid perspectiveTransform() |
|
return |
switchreturn switch(var1) |
abstract |
|
this this(var1, 0, 1, 2, 3) |
abstract |
|
this this(var1[var2], var1[var3], var1[var4], var1[var5]) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.math.shape;
class="kw">import com.hypixel.hytale.math.vector.Vector4dUtil;
class="kw">import java.util.Random;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Matrix4d;
class="kw">import org.joml.Vector4d;
class="kw">public class Quad4d {
class="kw">private Vector4d a;
class="kw">private Vector4d b;
class="kw">private Vector4d c;
class="kw">private Vector4d d;
class="kw">public Quad4d(Vector4d var1, Vector4d var2, Vector4d var3, Vector4d var4) {
this.a = var1;
this.b = var2;
this.c = var3;
this.d = var4;
}
class="kw">public Quad4d() {
this(new Vector4d().zero(), new Vector4d().zero(), new Vector4d().zero(), new Vector4d().zero());
}
class="kw">public Quad4d(@Nonnull Vector4d[] var1) {
this(var1, 0, 1, 2, 3);
}
class="kw">public Quad4d(@Nonnull Vector4d[] var1, int var2, int var3, int var4, int var5) {
this(var1[var2], var1[var3], var1[var4], var1[var5]);
}
class="kw">public boolean isFullyInsideFrustum() {
class="kw">return Vector4dUtil.isInsideFrustum(this.a)
&& Vector4dUtil.isInsideFrustum(this.b)
&& Vector4dUtil.isInsideFrustum(this.c)
&& Vector4dUtil.isInsideFrustum(this.d);
}
class="kw">public Vector4d getA() {
class="kw">return this.a;
}
class="kw">public Vector4d getB() {
class="kw">return this.b;
}
class="kw">public Vector4d getC() {
class="kw">return this.c;
}
class="kw">public Vector4d getD() {
class="kw">return this.d;
}
class="kw">public Vector4d get(int var1) {
class="kw">return class="kw">switch (var1) {
case 0 -> this.a;
case 1 -> this.b;
case 2 -> this.c;
case 3 -> this.d;
class="kw">default -> throw new IllegalArgumentException("Index must be in range of 0 to 3. Given: " + var1);
};
}
class="kw">public double getMin(int var1) {
double var2 = this.a.get(var1);
if (var2 > this.b.get(var1)) {
var2 = this.b.get(var1);
}
if (var2 > this.c.get(var1)) {
var2 = this.c.get(var1);
}
if (var2 > this.d.get(var1)) {
var2 = this.d.get(var1);
}
class="kw">return var2;
}
class="kw">public double getMax(int var1) {
double var2 = this.a.get(var1);
if (var2 < this.b.get(var1)) {
var2 = this.b.get(var1);
}
if (var2 < this.c.get(var1)) {
var2 = this.c.get(var1);
}
if (var2 < this.d.get(var1)) {
var2 = this.d.get(var1);
}
class="kw">return var2;
}
@Nonnull
class="kw">public Quad4d multiply(@Nonnull Matrix4d var1) {
class="kw">return this.multiply(var1, this);
}
@Nonnull
class="kw">public Quad4d multiply(@Nonnull Matrix4d var1, @Nonnull Quad4d var2) {
var1.transform(this.a, var2.a);
var1.transform(this.b, var2.b);
var1.transform(this.c, var2.c);
var1.transform(this.d, var2.d);
class="kw">return var2;
}
@Nonnull
class="kw">public Quad2d to2d(@Nonnull Quad2d var1) {
var1.getA().set(this.a.x, this.a.y);
var1.getB().set(this.b.x, this.b.y);
var1.getC().set(this.c.x, this.c.y);
var1.getD().set(this.d.x, this.d.y);
class="kw">return var1;
}
@Nonnull
class="kw">public Vector4d getCenter() {
class="kw">return this.getCenter(new Vector4d());
}
@Nonnull
class="kw">public Vector4d getCenter(@Nonnull Vector4d var1) {
class="kw">return var1.set(
(this.a.x + this.b.x + this.c.x + this.d.x) * 0.25,
(this.a.y + this.b.y + this.c.y + this.d.y) * 0.25,
(this.a.z + this.b.z + this.c.z + this.d.z) * 0.25,
(this.a.w + this.b.w + this.c.w + this.d.w) * 0.25
);
}
class="kw">public void perspectiveTransform() {
Vector4dUtil.perspectiveTransform(this.a);
Vector4dUtil.perspectiveTransform(this.b);
Vector4dUtil.perspectiveTransform(this.c);
Vector4dUtil.perspectiveTransform(this.d);
}
@Nonnull
class="kw">public Vector4d getRandom(@Nonnull Random var1) {
class="kw">return this.getRandom(var1, new Vector4d());
}
@Nonnull
class="kw">public Vector4d getRandom(@Nonnull Random var1, @Nonnull Vector4d var2) {
double var3 = var1.nextDouble();
double var5 = var1.nextDouble() * (1.0 - var3);
double var7 = 1.0 - var3 - var5;
if (var1.nextBoolean()) {
var2.set(
this.a.x * var7 + this.b.x * var3 + this.c.x * var5,
this.a.y * var7 + this.b.y * var3 + this.c.y * var5,
this.a.z * var7 + this.b.z * var3 + this.c.z * var5,
this.a.w * var7 + this.b.w * var3 + this.c.w * var5
);
} else {
var2.set(
this.a.x * var7 + this.c.x * var3 + this.d.x * var5,
this.a.y * var7 + this.c.y * var3 + this.d.y * var5,
this.a.z * var7 + this.c.z * var3 + this.d.z * var5,
this.a.w * var7 + this.c.w * var3 + this.d.w * var5
);
}
class="kw">return var2;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Quad4d{\na=" + this.a + ",\nb=" + this.b + ",\nc=" + this.c + ",\nd=" + this.d + "\n}";
}
}