OrthogonalProjectionProvider class
Пакет: com.hypixel.hytale.math.hitdetection.projection
Файл: com/hypixel/hytale/math/hitdetection/projection/OrthogonalProjectionProvider.java
implements: MatrixProvider
Поля (1)
| Модификаторы | Тип | Имя |
|---|---|---|
final |
BuilderCodec<OrthogonalProjectionProvider> |
CODEC |
Методы (2)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
public |
double |
getRangedouble getRange() |
|
|
if if(this.invalid) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.math.hitdetection.projection;
class="kw">import com.hypixel.hytale.codec.Codec;
class="kw">import com.hypixel.hytale.codec.KeyedCodec;
class="kw">import com.hypixel.hytale.codec.builder.BuilderCodec;
class="kw">import com.hypixel.hytale.math.hitdetection.MatrixProvider;
class="kw">import javax.annotation.Nonnull;
class="kw">import org.joml.Matrix4d;
class="kw">public class OrthogonalProjectionProvider class="kw">implements MatrixProvider {
class="kw">public class="kw">static class="kw">final BuilderCodec<OrthogonalProjectionProvider> CODEC = BuilderCodec.builder(
OrthogonalProjectionProvider.class, OrthogonalProjectionProvider::new
)
.append(new KeyedCodec<>("Left", Codec.DOUBLE), (var0, var1) -> var0.left = var1, var0 -> var0.left)
.add()
.append(new KeyedCodec<>("Right", Codec.DOUBLE), (var0, var1) -> var0.right = var1, var0 -> var0.right)
.add()
.append(new KeyedCodec<>("Top", Codec.DOUBLE), (var0, var1) -> var0.top = var1, var0 -> var0.top)
.add()
.append(new KeyedCodec<>("Bottom", Codec.DOUBLE), (var0, var1) -> var0.bottom = var1, var0 -> var0.bottom)
.add()
.append(new KeyedCodec<>("Near", Codec.DOUBLE), (var0, var1) -> var0.near = var1, var0 -> var0.near)
.add()
.append(new KeyedCodec<>("Far", Codec.DOUBLE), (var0, var1) -> var0.far = var1, var0 -> var0.far)
.add()
.build();
class="kw">protected class="kw">final Matrix4d matrix;
class="kw">protected class="kw">final Matrix4d rotMatrix = new Matrix4d();
class="kw">protected boolean invalid;
class="kw">protected double left;
class="kw">protected double right;
class="kw">protected double bottom;
class="kw">protected double top;
class="kw">protected double near;
class="kw">protected double far;
class="kw">protected double yaw;
class="kw">protected double pitch;
class="kw">protected double roll;
class="kw">public OrthogonalProjectionProvider() {
this(new Matrix4d(), 1.0, 1.0, 1.0, 1.0, 1.0, 1.0, 0.0, 0.0, 0.0);
}
class="kw">public OrthogonalProjectionProvider(
Matrix4d var1, double var2, double var4, double var6, double var8, double var10, double var12, double var14, double var16, double var18
) {
this.matrix = var1;
this.left = var2;
this.right = var4;
this.bottom = var6;
this.top = var8;
this.near = var10;
this.far = var12;
this.yaw = var14;
this.pitch = var16;
this.roll = var18;
this.invalid = true;
}
@Nonnull
class="kw">public OrthogonalProjectionProvider setLeft(double var1) {
this.left = var1;
this.invalid = true;
class="kw">return this;
}
@Nonnull
class="kw">public OrthogonalProjectionProvider setRight(double var1) {
this.right = var1;
this.invalid = true;
class="kw">return this;
}
@Nonnull
class="kw">public OrthogonalProjectionProvider setBottom(double var1) {
this.bottom = var1;
this.invalid = true;
class="kw">return this;
}
@Nonnull
class="kw">public OrthogonalProjectionProvider setTop(double var1) {
this.top = var1;
this.invalid = true;
class="kw">return this;
}
@Nonnull
class="kw">public OrthogonalProjectionProvider setNear(double var1) {
this.near = var1;
this.invalid = true;
class="kw">return this;
}
@Nonnull
class="kw">public OrthogonalProjectionProvider setFar(double var1) {
this.far = var1;
this.invalid = true;
class="kw">return this;
}
class="kw">public double getRange() {
class="kw">return this.far;
}
@Nonnull
class="kw">public OrthogonalProjectionProvider setRotation(double var1, double var3, double var5) {
this.yaw = var1;
this.pitch = var3;
this.roll = var5;
class="kw">return this;
}
@Override
class="kw">public Matrix4d getMatrix() {
if (this.invalid) {
this.matrix.setOrtho(-this.left, this.right, -this.bottom, this.top, this.near, this.far);
this.matrix.rotate(-this.roll, 0.0, 0.0, 1.0);
this.matrix.rotate(-this.pitch, 1.0, 0.0, 0.0);
this.matrix.rotate(-this.yaw, 0.0, 1.0, 0.0);
this.invalid = false;
}
class="kw">return this.matrix;
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "OrthogonalProjectionProvider{left="
+ this.left
+ ", right="
+ this.right
+ ", bottom="
+ this.bottom
+ ", top="
+ this.top
+ ", near="
+ this.near
+ ", far="
+ this.far
+ "}";
}
}