mirror of
https://github.com/Ed94/Odin.git
synced 2026-08-06 15:48:51 +00:00
fix(linalg/glsl): incorrect quat by vector3 multiplication
This commit is contained in:
@@ -1724,7 +1724,7 @@ quatFromMat4 :: proc "c" (m: mat4) -> (q: quat) {
|
|||||||
@(require_results)
|
@(require_results)
|
||||||
quatMulVec3 :: proc "c" (q: quat, v: vec3) -> vec3 {
|
quatMulVec3 :: proc "c" (q: quat, v: vec3) -> vec3 {
|
||||||
xyz := vec3{q.x, q.y, q.z}
|
xyz := vec3{q.x, q.y, q.z}
|
||||||
t := cross(xyz, v)
|
t := cross(2.0 * xyz, v)
|
||||||
return v + q.w*t + cross(xyz, t)
|
return v + q.w*t + cross(xyz, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1832,7 +1832,7 @@ dquatFromDmat4 :: proc "c" (m: dmat4) -> (q: dquat) {
|
|||||||
@(require_results)
|
@(require_results)
|
||||||
dquatMulDvec3 :: proc "c" (q: dquat, v: dvec3) -> dvec3 {
|
dquatMulDvec3 :: proc "c" (q: dquat, v: dvec3) -> dvec3 {
|
||||||
xyz := dvec3{q.x, q.y, q.z}
|
xyz := dvec3{q.x, q.y, q.z}
|
||||||
t := cross(xyz, v)
|
t := cross(2.0 * xyz, v)
|
||||||
return v + q.w*t + cross(xyz, t)
|
return v + q.w*t + cross(xyz, t)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
Reference in New Issue
Block a user