diff options
| author | Mathias Mohn Mørch <mathias.mohn.moerch@proton.me> | 2025-10-30 20:35:35 +0100 |
|---|---|---|
| committer | Mathias Mohn Mørch <mathias.mohn.moerch@proton.me> | 2025-10-30 20:35:35 +0100 |
| commit | 9a321befd4fe8dbf6335b09c3277f4ae4d1d5ed3 (patch) | |
| tree | 7fdca6d09587a8b3cbd501ea8c4ecfde08f267c3 /core/math | |
| parent | 338733d9ef86d00215640b8cf749e426b9c27fb6 (diff) | |
Fixed issue where the linalg.quaternion_from_forward_and_up could return incorrect values in certain scenarioes
Diffstat (limited to 'core/math')
| -rw-r--r-- | core/math/linalg/specific.odin | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/core/math/linalg/specific.odin b/core/math/linalg/specific.odin index 3c37d4d25..cfb1c2b0d 100644 --- a/core/math/linalg/specific.odin +++ b/core/math/linalg/specific.odin @@ -635,7 +635,7 @@ quaternion_from_forward_and_up_f16 :: proc "contextless" (forward, up: Vector3f1 case: S := 2 * math.sqrt(1 + m[2, 2] - m[0, 0] - m[1, 1]) q.w = (m[0, 1] - m[1, 0]) / S - q.x = (m[2, 0] - m[0, 2]) / S + q.x = (m[2, 0] + m[0, 2]) / S q.y = (m[2, 1] + m[1, 2]) / S q.z = 0.25 * S } @@ -679,7 +679,7 @@ quaternion_from_forward_and_up_f32 :: proc "contextless" (forward, up: Vector3f3 case: S := 2 * math.sqrt(1 + m[2, 2] - m[0, 0] - m[1, 1]) q.w = (m[0, 1] - m[1, 0]) / S - q.x = (m[2, 0] - m[0, 2]) / S + q.x = (m[2, 0] + m[0, 2]) / S q.y = (m[2, 1] + m[1, 2]) / S q.z = 0.25 * S } @@ -723,7 +723,7 @@ quaternion_from_forward_and_up_f64 :: proc "contextless" (forward, up: Vector3f6 case: S := 2 * math.sqrt(1 + m[2, 2] - m[0, 0] - m[1, 1]) q.w = (m[0, 1] - m[1, 0]) / S - q.x = (m[2, 0] - m[0, 2]) / S + q.x = (m[2, 0] + m[0, 2]) / S q.y = (m[2, 1] + m[1, 2]) / S q.z = 0.25 * S } |