CLASS net/minecraft/class_4587 net/minecraft/client/util/math/MatrixStack COMMENT A stack of transformation matrices used to specify how 3D objects are COMMENT {@linkplain #translate translated}, {@linkplain #scale scaled} or COMMENT {@linkplain #multiply rotated} in 3D space. Each entry consists of a COMMENT {@linkplain Entry#getPositionMatrix position matrix} and its COMMENT corresponding {@linkplain Entry#getNormalMatrix normal matrix}. COMMENT COMMENT

By putting matrices in a stack, a transformation can be expressed COMMENT relative to another. You can {@linkplain #push push}, transform, COMMENT render and {@linkplain #pop pop}, which allows you to restore the COMMENT original matrix after rendering. COMMENT COMMENT

An entry of identity matrix is pushed when a stack is created. This COMMENT means that a stack is {@linkplain #isEmpty empty} if and only if the COMMENT stack contains exactly one entry. FIELD field_20898 stack Ljava/util/Deque; METHOD method_22903 push ()V COMMENT Pushes a copy of the top entry onto this stack. METHOD method_22904 translate (DDD)V COMMENT Applies the translation transformation to the top entry. ARG 1 x ARG 3 y ARG 5 z METHOD method_22905 scale (FFF)V COMMENT Applies the scale transformation to the top entry. COMMENT COMMENT @implNote This does not scale the normal matrix correctly when the COMMENT scaling is uniform and the scaling factor is negative. ARG 1 x ARG 2 y ARG 3 z METHOD method_22907 multiply (Lorg/joml/Quaternionf;)V COMMENT Applies the rotation transformation to the top entry. ARG 1 quaternion METHOD method_22908 (Ljava/util/ArrayDeque;)V ARG 0 stack METHOD method_22909 pop ()V COMMENT Removes the entry at the top of this stack. METHOD method_22911 isEmpty ()Z COMMENT {@return whether this stack contains exactly one entry} METHOD method_23760 peek ()Lnet/minecraft/class_4587$class_4665; COMMENT {@return the entry at the top of this stack} METHOD method_34425 multiplyPositionMatrix (Lorg/joml/Matrix4f;)V COMMENT Multiplies the top position matrix with the given matrix. COMMENT COMMENT

This does not update the normal matrix unlike other transformation COMMENT methods. ARG 1 matrix METHOD method_34426 loadIdentity ()V COMMENT Sets the top entry to be the identity matrix. METHOD method_46416 translate (FFF)V ARG 1 x ARG 2 y ARG 3 z METHOD method_49278 multiply (Lorg/joml/Quaternionf;FFF)V ARG 1 quaternion ARG 2 originX ARG 3 originY ARG 4 originZ CLASS class_4665 Entry FIELD field_21327 positionMatrix Lorg/joml/Matrix4f; FIELD field_21328 normalMatrix Lorg/joml/Matrix3f; METHOD (Lnet/minecraft/class_4587$class_4665;)V ARG 1 matrix METHOD (Lorg/joml/Matrix4f;Lorg/joml/Matrix3f;)V ARG 1 positionMatrix ARG 2 normalMatrix METHOD method_23761 getPositionMatrix ()Lorg/joml/Matrix4f; COMMENT {@return the matrix used to transform positions} METHOD method_23762 getNormalMatrix ()Lorg/joml/Matrix3f; COMMENT {@return the matrix used to transform normal vectors} METHOD method_56822 copy ()Lnet/minecraft/class_4587$class_4665;