Transform class
Пакет: com.hypixel.hytale.math.vector
Файл: com/hypixel/hytale/math/vector/Transform.java
Поля (13)
| Модификаторы | Тип | Имя |
|---|---|---|
|
Vector3i |
var1 |
|
int |
var1 |
|
double |
var2 |
|
Transform |
var2 |
|
float |
var3 |
|
double |
var4 |
|
float |
var4 |
|
float |
var5 |
|
Vector3d |
var5 |
|
double |
var6 |
|
float |
var6 |
|
Rotation3f |
var6 |
|
double |
var8 |
Методы (10)
| Модификаторы | Возврат | Сигнатура |
|---|---|---|
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("Pitch can't be NaN") |
abstract |
throw new |
IllegalStateExceptionthrow new IllegalStateException("Yaw can't be NaN") |
abstract |
return new |
Vector3dreturn new Vector3d(var4, var6, var8) |
static |
void |
applyMaskedRelativeTransformvoid applyMaskedRelativeTransform(@Nonnull Transform var0, byte var1, @Nonnull Vector3dc var2, @Nonnull Rotation3fc var3, @Nonnull Vector3ic var4) |
|
|
if if(this == var1) |
|
|
if if(var1 != 0) |
static |
BuilderCodec<Transform> |
newBuilderCodecBuilderCodec<Transform> newBuilderCodec(@Nonnull Supplier<Transform> var0) |
public |
void |
setvoid set(@Nonnull Transform var1) |
public |
void |
setPositionvoid setPosition(@Nonnull Vector3dc var1) |
public |
void |
setRotationvoid setRotation(@Nonnull Rotation3fc var1) |
Исходный код
Показать/скрыть
class="kw">package com.hypixel.hytale.math.vector;
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.codec.validation.Validators;
class="kw">import com.hypixel.hytale.math.Axis;
class="kw">import com.hypixel.hytale.math.util.MathUtil;
class="kw">import com.hypixel.hytale.math.util.TrigMathUtil;
class="kw">import java.util.Objects;
class="kw">import java.util.function.Supplier;
class="kw">import javax.annotation.Nonnull;
class="kw">import javax.annotation.Nullable;
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 Transform {
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<Transform> CODEC = newBuilderCodec(Transform::new);
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<Transform> PARTIAL_TELEPORT_CODEC = newBuilderCodec(
() -> new Transform(new Vector3d(), new Rotation3f(Float.NaN, Float.NaN, Float.NaN))
);
@Nonnull
class="kw">public class="kw">static class="kw">final BuilderCodec<Transform> CODEC_DEGREES = BuilderCodec.builder(Transform.class, Transform::new)
.appendInherited(
new KeyedCodec<>("X", Codec.DOUBLE),
(var0, var1) -> var0.getPosition().x = var1,
var0 -> var0.getPosition().x,
(var0, var1) -> var0.getPosition().x = var1.getPosition().x
)
.addValidator(Validators.nonNull())
.add()
.<Double>appendInherited(
new KeyedCodec<>("Y", Codec.DOUBLE),
(var0, var1) -> var0.getPosition().y = var1,
var0 -> var0.getPosition().y,
(var0, var1) -> var0.getPosition().y = var1.getPosition().y
)
.addValidator(Validators.nonNull())
.add()
.<Double>appendInherited(
new KeyedCodec<>("Z", Codec.DOUBLE),
(var0, var1) -> var0.getPosition().z = var1,
var0 -> var0.getPosition().z,
(var0, var1) -> var0.getPosition().z = var1.getPosition().z
)
.addValidator(Validators.nonNull())
.add()
.appendInherited(
new KeyedCodec<>("Pitch", Codec.FLOAT),
(var0, var1) -> var0.getRotation().x = (float)Math.toRadians(var1.floatValue()),
var0 -> Float.isNaN(var0.getRotation().x) ? null : (float)Math.toDegrees(var0.getRotation().x),
(var0, var1) -> var0.getRotation().x = var1.getRotation().x
)
.add()
.appendInherited(
new KeyedCodec<>("Yaw", Codec.FLOAT),
(var0, var1) -> var0.getRotation().y = (float)Math.toRadians(var1.floatValue()),
var0 -> Float.isNaN(var0.getRotation().y) ? null : (float)Math.toDegrees(var0.getRotation().y),
(var0, var1) -> var0.getRotation().y = var1.getRotation().y
)
.add()
.appendInherited(
new KeyedCodec<>("Roll", Codec.FLOAT),
(var0, var1) -> var0.getRotation().z = (float)Math.toRadians(var1.floatValue()),
var0 -> Float.isNaN(var0.getRotation().z) ? null : (float)Math.toDegrees(var0.getRotation().z),
(var0, var1) -> var0.getRotation().z = var1.getRotation().z
)
.add()
.build();
@Nonnull
class="kw">protected Vector3d position;
@Nonnull
class="kw">protected Rotation3f rotation;
class="kw">public class="kw">static class="kw">final int X_IS_RELATIVE = 1;
class="kw">public class="kw">static class="kw">final int Y_IS_RELATIVE = 2;
class="kw">public class="kw">static class="kw">final int Z_IS_RELATIVE = 4;
class="kw">public class="kw">static class="kw">final int YAW_IS_RELATIVE = 8;
class="kw">public class="kw">static class="kw">final int PITCH_IS_RELATIVE = 16;
class="kw">public class="kw">static class="kw">final int ROLL_IS_RELATIVE = 32;
class="kw">public class="kw">static class="kw">final int RELATIVE_TO_BLOCK = 64;
class="kw">private class="kw">static BuilderCodec<Transform> newBuilderCodec(@Nonnull Supplier<Transform> var0) {
class="kw">return BuilderCodec.builder(Transform.class, var0)
.appendInherited(
new KeyedCodec<>("X", Codec.DOUBLE),
(var0x, var1) -> var0x.getPosition().x = var1,
var0x -> var0x.getPosition().x,
(var0x, var1) -> var0x.getPosition().x = var1.getPosition().x
)
.addValidator(Validators.nonNull())
.add()
.<Double>appendInherited(
new KeyedCodec<>("Y", Codec.DOUBLE),
(var0x, var1) -> var0x.getPosition().y = var1,
var0x -> var0x.getPosition().y,
(var0x, var1) -> var0x.getPosition().y = var1.getPosition().y
)
.addValidator(Validators.nonNull())
.add()
.<Double>appendInherited(
new KeyedCodec<>("Z", Codec.DOUBLE),
(var0x, var1) -> var0x.getPosition().z = var1,
var0x -> var0x.getPosition().z,
(var0x, var1) -> var0x.getPosition().z = var1.getPosition().z
)
.addValidator(Validators.nonNull())
.add()
.appendInherited(
new KeyedCodec<>("Pitch", Codec.FLOAT),
(var0x, var1) -> var0x.getRotation().x = var1,
var0x -> Float.isNaN(var0x.getRotation().x) ? null : var0x.getRotation().x,
(var0x, var1) -> var0x.getRotation().x = var1.getRotation().x
)
.add()
.appendInherited(
new KeyedCodec<>("Yaw", Codec.FLOAT),
(var0x, var1) -> var0x.getRotation().y = var1,
var0x -> Float.isNaN(var0x.getRotation().y) ? null : var0x.getRotation().y,
(var0x, var1) -> var0x.getRotation().y = var1.getRotation().y
)
.add()
.appendInherited(
new KeyedCodec<>("Roll", Codec.FLOAT),
(var0x, var1) -> var0x.getRotation().z = var1,
var0x -> Float.isNaN(var0x.getRotation().z) ? null : var0x.getRotation().z,
(var0x, var1) -> var0x.getRotation().z = var1.getRotation().z
)
.add()
.build();
}
class="kw">public Transform() {
this(new Vector3d(), new Rotation3f());
}
class="kw">public Transform(@Nonnull Vector3ic var1) {
this(new Vector3d(var1), new Rotation3f());
}
class="kw">public Transform(@Nonnull Vector3dc var1) {
this(new Vector3d(var1), new Rotation3f());
}
class="kw">public Transform(double var1, double var3, double var5) {
this(new Vector3d(var1, var3, var5), new Rotation3f());
}
class="kw">public Transform(double var1, double var3, double var5, float var7, float var8, float var9) {
this(new Vector3d(var1, var3, var5), new Rotation3f(var7, var8, var9));
}
class="kw">public Transform(@Nonnull Transform var1) {
this(new Vector3d(var1.position), new Rotation3f(var1.rotation));
}
class="kw">public Transform(@Nonnull Vector3dc var1, @Nonnull Rotation3fc var2) {
this(new Vector3d(var1), new Rotation3f(var2));
}
class="kw">public Transform(@Nonnull Vector3d var1, @Nonnull Rotation3f var2) {
this.position = var1;
this.rotation = var2;
}
class="kw">public void set(@Nonnull Transform var1) {
this.position.set(var1.position);
this.rotation.set(var1.rotation);
}
@Nonnull
class="kw">public Vector3d getPosition() {
class="kw">return this.position;
}
class="kw">public void setPosition(@Nonnull Vector3dc var1) {
this.position.set(var1);
}
@Nonnull
class="kw">public Rotation3f getRotation() {
class="kw">return this.rotation;
}
class="kw">public void setRotation(@Nonnull Rotation3fc var1) {
this.rotation.set(var1);
}
@Nonnull
class="kw">public Vector3d getDirection() {
class="kw">return getDirection(this.rotation.pitch(), this.rotation.yaw());
}
@Nonnull
class="kw">public class="kw">static Vector3d getDirection(float var0, float var1) {
if (Float.isNaN(var0)) {
throw new IllegalStateException("Pitch can't be NaN");
}
if (Float.isNaN(var1)) {
throw new IllegalStateException("Yaw can't be NaN");
}
double var2 = TrigMathUtil.cos(var0);
double var4 = var2 * -TrigMathUtil.sin(var1);
double var6 = TrigMathUtil.sin(var0);
double var8 = var2 * -TrigMathUtil.cos(var1);
class="kw">return new Vector3d(var4, var6, var8);
}
@Nonnull
class="kw">public Vector3i getAxisDirection() {
class="kw">return this.getAxisDirection(this.rotation.pitch(), this.rotation.yaw());
}
@Nonnull
class="kw">public Vector3i getAxisDirection(float var1, float var2) {
if (Float.isNaN(var1)) {
throw new IllegalStateException("Pitch can't be NaN");
}
if (Float.isNaN(var2)) {
throw new IllegalStateException("Yaw can't be NaN");
}
float var3 = TrigMathUtil.cos(var1);
float var4 = var3 * -TrigMathUtil.sin(var2);
float var5 = TrigMathUtil.sin(var1);
float var6 = var3 * -TrigMathUtil.cos(var2);
class="kw">return new Vector3i(MathUtil.fastRound(var4), MathUtil.fastRound(var5), MathUtil.fastRound(var6));
}
@Nonnull
class="kw">public Axis getAxis() {
Vector3i var1 = this.getAxisDirection();
if (var1.x() != 0) {
class="kw">return Axis.X;
} else {
class="kw">return var1.y() != 0 ? Axis.Y : Axis.Z;
}
}
@Nonnull
class="kw">public Transform clone() {
class="kw">return new Transform(new Vector3d(this.position), new Rotation3f(this.rotation));
}
@Override
class="kw">public boolean equals(@Nullable Object var1) {
if (this == var1) {
class="kw">return true;
} else if (var1 != null && this.getClass() == var1.getClass()) {
Transform var2 = (Transform)var1;
class="kw">return !Objects.equals(this.position, var2.position) ? false : Objects.equals(this.rotation, var2.rotation);
} else {
class="kw">return false;
}
}
@Override
class="kw">public int hashCode() {
int var1 = this.position.hashCode();
class="kw">return 31 * var1 + this.rotation.hashCode();
}
@Nonnull
@Override
class="kw">public String toString() {
class="kw">return "Transform{position=" + this.position + ", rotation=" + this.rotation + "}";
}
class="kw">public class="kw">static void applyMaskedRelativeTransform(
@Nonnull Transform var0, byte var1, @Nonnull Vector3dc var2, @Nonnull Rotation3fc var3, @Nonnull Vector3ic var4
) {
if (var1 != 0) {
Vector3d var5 = var0.position;
if ((var1 & 64) != 0) {
if ((var1 & 1) != 0) {
var5.x = var5.x() + var4.x();
}
if ((var1 & 2) != 0) {
var5.y = var5.y() + var4.y();
}
if ((var1 & 4) != 0) {
var5.z = var5.z() + var4.z();
}
} else {
if ((var1 & 1) != 0) {
var5.x = var5.x() + var2.x();
}
if ((var1 & 2) != 0) {
var5.y = var5.y() + var2.y();
}
if ((var1 & 4) != 0) {
var5.z = var5.z() + var2.z();
}
}
Rotation3f var6 = var0.rotation;
if ((var1 & 8) != 0) {
var6.setYaw(var6.yaw() + var3.yaw());
}
if ((var1 & 16) != 0) {
var6.setPitch(var6.pitch() + var3.pitch());
}
if ((var1 & 32) != 0) {
var6.setRoll(var6.roll() + var3.roll());
}
}
}
}