--- a/com/mojang/math/Transformation.java +++ b/com/mojang/math/Transformation.java @@ -14,7 +_,7 @@ import org.joml.Vector3f; import org.joml.Vector3fc; -public final class Transformation { +public final class Transformation implements net.minecraftforge.common.extensions.IForgeTransformation { private final Matrix4f f_121078_; public static final Codec f_268453_ = RecordCodecBuilder.create((p_269604_) -> { return p_269604_.group(ExtraCodecs.f_252432_.fieldOf("translation").forGetter((p_269599_) -> { @@ -163,6 +_,19 @@ public int hashCode() { return Objects.hash(this.f_121078_); } + + private Matrix3f normalTransform = null; + public Matrix3f getNormalMatrix() { + checkNormalTransform(); + return normalTransform; + } + private void checkNormalTransform() { + if (normalTransform == null) { + normalTransform = new Matrix3f(f_121078_); + normalTransform.invert(); + normalTransform.transpose(); + } + } public Transformation m_175937_(Transformation p_175938_, float p_175939_) { Vector3f vector3f = this.m_252829_();