fix maths_inline version of mat4.rotate

This commit is contained in:
MihailRis 2026-07-05 19:00:49 +03:00
parent 45c78609b8
commit 87310dd38f

View file

@ -276,9 +276,7 @@ function mat4.rotate(...)
angle = rad(angle) angle = rad(angle)
local x = axis[1] local x, y, z = axis[1], axis[2], axis[3]
local y = axis[2]
local z = axis[3]
local len = sqrt(x * x + y * y + z * z) local len = sqrt(x * x + y * y + z * z)
if len == 0 then if len == 0 then
@ -307,25 +305,30 @@ function mat4.rotate(...)
local out = dst or {} local out = dst or {}
out[1] = matrix[1]*r00 + matrix[5]*r10 + matrix[9]*r20 local m1, m2, m3, m4 = matrix[1], matrix[2], matrix[3], matrix[4]
out[2] = matrix[2]*r00 + matrix[6]*r10 + matrix[10]*r20 local m5, m6, m7, m8 = matrix[5], matrix[6], matrix[7], matrix[8]
out[3] = matrix[3]*r00 + matrix[7]*r10 + matrix[11]*r20 local m9, m10, m11, m12 = matrix[9], matrix[10], matrix[11], matrix[12]
out[4] = matrix[4]*r00 + matrix[8]*r10 + matrix[12]*r20 local m13, m14, m15, m16 = matrix[13], matrix[14], matrix[15], matrix[16]
out[5] = matrix[1]*r01 + matrix[5]*r11 + matrix[9]*r21 out[1] = m1 * r00 + m5 * r10 + m9 * r20
out[6] = matrix[2]*r01 + matrix[6]*r11 + matrix[10]*r21 out[2] = m2 * r00 + m6 * r10 + m10 * r20
out[7] = matrix[3]*r01 + matrix[7]*r11 + matrix[11]*r21 out[3] = m3 * r00 + m7 * r10 + m11 * r20
out[8] = matrix[4]*r01 + matrix[8]*r11 + matrix[12]*r21 out[4] = m4 * r00 + m8 * r10 + m12 * r20
out[9] = matrix[1]*r02 + matrix[5]*r12 + matrix[9]*r22 out[5] = m1 * r01 + m5 * r11 + m9 * r21
out[10] = matrix[2]*r02 + matrix[6]*r12 + matrix[10]*r22 out[6] = m2 * r01 + m6 * r11 + m10 * r21
out[11] = matrix[3]*r02 + matrix[7]*r12 + matrix[11]*r22 out[7] = m3 * r01 + m7 * r11 + m11 * r21
out[12] = matrix[4]*r02 + matrix[8]*r12 + matrix[12]*r22 out[8] = m4 * r01 + m8 * r11 + m12 * r21
out[13] = matrix[13] out[9] = m1 * r02 + m5 * r12 + m9 * r22
out[14] = matrix[14] out[10] = m2 * r02 + m6 * r12 + m10 * r22
out[15] = matrix[15] out[11] = m3 * r02 + m7 * r12 + m11 * r22
out[16] = matrix[16] out[12] = m4 * r02 + m8 * r12 + m12 * r22
out[13] = m13
out[14] = m14
out[15] = m15
out[16] = m16
return out return out
end end