Package net.minecraft.client.util.math
Class MatrixStack
java.lang.Object
net.minecraft.client.util.math.MatrixStack
A stack of transformation matrices used to specify how 3D objects are
translated, scaled or
rotated in 3D space. Each entry consists of a
position matrix and its
corresponding normal matrix.
By putting matrices in a stack, a transformation can be expressed relative to another. You can push, transform, render and pop, which allows you to restore the original matrix after rendering.
An entry of identity matrix is pushed when a stack is created. This means that a stack is empty if and only if the stack contains exactly one entry.
- Mappings:
Namespace Name named net/minecraft/client/util/math/MatrixStack
intermediary net/minecraft/class_4587
official fgr
-
Nested Class Summary
-
Field Summary
-
Constructor Summary
-
Method Summary
Modifier and TypeMethodDescriptionboolean
isEmpty()
Returns whether this stack contains exactly one entry.void
Sets the top entry to be the identity matrix.void
multiply
(Quaternionf quaternion) Applies the rotation transformation to the top entry.void
multiply
(Quaternionf quaternion, float originX, float originY, float originZ) void
multiplyPositionMatrix
(Matrix4f matrix) Multiplies the top position matrix with the given matrix.peek()
Returns the entry at the top of this stack.void
pop()
Removes the entry at the top of this stack.void
push()
Pushes a copy of the top entry onto this stack.void
scale
(float x, float y, float z) Applies the scale transformation to the top entry.void
translate
(double x, double y, double z) Applies the translation transformation to the top entry.void
translate
(float x, float y, float z) void
-
Field Details
-
stack
- Mappings:
Namespace Name Mixin selector named stack
Lnet/minecraft/client/util/math/MatrixStack;stack:Ljava/util/Deque;
intermediary field_20898
Lnet/minecraft/class_4587;field_20898:Ljava/util/Deque;
official a
Lfgr;a:Ljava/util/Deque;
-
-
Constructor Details
-
MatrixStack
public MatrixStack()
-
-
Method Details
-
translate
public void translate(double x, double y, double z) Applies the translation transformation to the top entry.- Mappings:
Namespace Name Mixin selector named translate
Lnet/minecraft/client/util/math/MatrixStack;translate(DDD)V
intermediary method_22904
Lnet/minecraft/class_4587;method_22904(DDD)V
official a
Lfgr;a(DDD)V
-
translate
public void translate(float x, float y, float z) - Mappings:
Namespace Name Mixin selector named translate
Lnet/minecraft/client/util/math/MatrixStack;translate(FFF)V
intermediary method_46416
Lnet/minecraft/class_4587;method_46416(FFF)V
official a
Lfgr;a(FFF)V
-
translate
- Mappings:
Namespace Name Mixin selector named translate
Lnet/minecraft/client/util/math/MatrixStack;translate(Lnet/minecraft/util/math/Vec3d;)V
intermediary method_61958
Lnet/minecraft/class_4587;method_61958(Lnet/minecraft/class_243;)V
official a
Lfgr;a(Lfbx;)V
-
scale
public void scale(float x, float y, float z) Applies the scale transformation to the top entry.- Implementation Note:
- This does not scale the normal matrix correctly when the scaling is uniform and the scaling factor is negative.
- Mappings:
Namespace Name Mixin selector named scale
Lnet/minecraft/client/util/math/MatrixStack;scale(FFF)V
intermediary method_22905
Lnet/minecraft/class_4587;method_22905(FFF)V
official b
Lfgr;b(FFF)V
-
multiply
Applies the rotation transformation to the top entry.- Mappings:
Namespace Name Mixin selector named multiply
Lnet/minecraft/client/util/math/MatrixStack;multiply(Lorg/joml/Quaternionf;)V
intermediary method_22907
Lnet/minecraft/class_4587;method_22907(Lorg/joml/Quaternionf;)V
official a
Lfgr;a(Lorg/joml/Quaternionf;)V
-
multiply
- Mappings:
Namespace Name Mixin selector named multiply
Lnet/minecraft/client/util/math/MatrixStack;multiply(Lorg/joml/Quaternionf;FFF)V
intermediary method_49278
Lnet/minecraft/class_4587;method_49278(Lorg/joml/Quaternionf;FFF)V
official a
Lfgr;a(Lorg/joml/Quaternionf;FFF)V
-
push
public void push()Pushes a copy of the top entry onto this stack.- Mappings:
Namespace Name Mixin selector named push
Lnet/minecraft/client/util/math/MatrixStack;push()V
intermediary method_22903
Lnet/minecraft/class_4587;method_22903()V
official a
Lfgr;a()V
-
pop
public void pop()Removes the entry at the top of this stack.- Mappings:
Namespace Name Mixin selector named pop
Lnet/minecraft/client/util/math/MatrixStack;pop()V
intermediary method_22909
Lnet/minecraft/class_4587;method_22909()V
official b
Lfgr;b()V
-
peek
Returns the entry at the top of this stack.- Returns:
- the entry at the top of this stack
- Mappings:
Namespace Name Mixin selector named peek
Lnet/minecraft/client/util/math/MatrixStack;peek()Lnet/minecraft/client/util/math/MatrixStack$Entry;
intermediary method_23760
Lnet/minecraft/class_4587;method_23760()Lnet/minecraft/class_4587$class_4665;
official c
Lfgr;c()Lfgr$a;
-
isEmpty
public boolean isEmpty()Returns whether this stack contains exactly one entry.- Returns:
- whether this stack contains exactly one entry
- Mappings:
Namespace Name Mixin selector named isEmpty
Lnet/minecraft/client/util/math/MatrixStack;isEmpty()Z
intermediary method_22911
Lnet/minecraft/class_4587;method_22911()Z
official d
Lfgr;d()Z
-
loadIdentity
public void loadIdentity()Sets the top entry to be the identity matrix.- Mappings:
Namespace Name Mixin selector named loadIdentity
Lnet/minecraft/client/util/math/MatrixStack;loadIdentity()V
intermediary method_34426
Lnet/minecraft/class_4587;method_34426()V
official e
Lfgr;e()V
-
multiplyPositionMatrix
Multiplies the top position matrix with the given matrix.This does not update the normal matrix unlike other transformation methods.
- Mappings:
Namespace Name Mixin selector named multiplyPositionMatrix
Lnet/minecraft/client/util/math/MatrixStack;multiplyPositionMatrix(Lorg/joml/Matrix4f;)V
intermediary method_34425
Lnet/minecraft/class_4587;method_34425(Lorg/joml/Matrix4f;)V
official a
Lfgr;a(Lorg/joml/Matrix4f;)V
-