mirror of
https://github.com/isledecomp/isle.git
synced 2026-01-21 07:11:16 +00:00
Improve Matrix4::FromQuaternion
This commit is contained in:
parent
5f297218fc
commit
0622056f4c
@ -243,38 +243,38 @@ inline void Matrix4::ToQuaternion(Vector4& p_outQuat)
|
|||||||
// FUNCTION: BETA10 0x10010550
|
// FUNCTION: BETA10 0x10010550
|
||||||
inline int Matrix4::FromQuaternion(const Vector4& p_vec)
|
inline int Matrix4::FromQuaternion(const Vector4& p_vec)
|
||||||
{
|
{
|
||||||
float len = p_vec.LenSquared();
|
float local14 = p_vec.LenSquared();
|
||||||
|
|
||||||
if (len > 0.0f) {
|
if (local14 > 0.0f) {
|
||||||
float v7 = 2.0f / len;
|
local14 = 2.0f / local14;
|
||||||
|
|
||||||
float v9 = p_vec[0] * v7;
|
float local24 = p_vec[0] * local14;
|
||||||
float v11 = p_vec[1] * v7;
|
float local34 = p_vec[1] * local14;
|
||||||
float v12 = p_vec[2] * v7;
|
float local10 = p_vec[2] * local14;
|
||||||
|
|
||||||
float v13 = p_vec[3] * v9;
|
float local28 = p_vec[3] * local24;
|
||||||
float v14 = p_vec[3] * v11;
|
float local2c = p_vec[3] * local34;
|
||||||
float v16 = p_vec[3] * v12;
|
float local30 = p_vec[3] * local10;
|
||||||
|
|
||||||
float v17 = p_vec[0] * v9;
|
float local38 = p_vec[0] * local24;
|
||||||
float v22 = p_vec[0] * v11;
|
float local8 = p_vec[0] * local34;
|
||||||
float v23 = p_vec[0] * v12;
|
float localc = p_vec[0] * local10;
|
||||||
|
|
||||||
float v18 = p_vec[1] * v11;
|
float local18 = p_vec[1] * local34;
|
||||||
float v24 = p_vec[1] * v12;
|
float local1c = p_vec[1] * local10;
|
||||||
float v19 = p_vec[2] * v12;
|
float local20 = p_vec[2] * local10;
|
||||||
|
|
||||||
m_data[0][0] = 1.0f - (v18 + v19);
|
m_data[0][0] = 1.0f - (local18 + local20);
|
||||||
m_data[1][0] = v22 + v16;
|
m_data[1][0] = local8 + local30;
|
||||||
m_data[2][0] = v23 - v14;
|
m_data[2][0] = localc - local2c;
|
||||||
|
|
||||||
m_data[0][1] = v22 - v16;
|
m_data[0][1] = local8 - local30;
|
||||||
m_data[1][1] = 1.0f - (v17 + v19);
|
m_data[1][1] = 1.0f - (local38 + local20);
|
||||||
m_data[2][1] = v24 + v13;
|
m_data[2][1] = local1c + local28;
|
||||||
|
|
||||||
m_data[0][2] = v14 + v23;
|
m_data[0][2] = local2c + localc;
|
||||||
m_data[1][2] = v24 - v13;
|
m_data[1][2] = local1c - local28;
|
||||||
m_data[2][2] = 1.0f - (v18 + v17);
|
m_data[2][2] = 1.0f - (local18 + local38);
|
||||||
|
|
||||||
m_data[3][0] = 0;
|
m_data[3][0] = 0;
|
||||||
m_data[3][1] = 0;
|
m_data[3][1] = 0;
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user