|
@@ -31,32 +31,32 @@ Float4X4 MatrixIdentity()
|
|
{
|
|
{
|
|
Float4X4 m;
|
|
Float4X4 m;
|
|
SDL_zero(m);
|
|
SDL_zero(m);
|
|
- m._11 = 1.0f;
|
|
|
|
- m._22 = 1.0f;
|
|
|
|
- m._33 = 1.0f;
|
|
|
|
- m._44 = 1.0f;
|
|
|
|
|
|
+ m.v._11 = 1.0f;
|
|
|
|
+ m.v._22 = 1.0f;
|
|
|
|
+ m.v._33 = 1.0f;
|
|
|
|
+ m.v._44 = 1.0f;
|
|
return m;
|
|
return m;
|
|
}
|
|
}
|
|
|
|
|
|
Float4X4 MatrixMultiply(Float4X4 M1, Float4X4 M2)
|
|
Float4X4 MatrixMultiply(Float4X4 M1, Float4X4 M2)
|
|
{
|
|
{
|
|
Float4X4 m;
|
|
Float4X4 m;
|
|
- m._11 = M1._11 * M2._11 + M1._12 * M2._21 + M1._13 * M2._31 + M1._14 * M2._41;
|
|
|
|
- m._12 = M1._11 * M2._12 + M1._12 * M2._22 + M1._13 * M2._32 + M1._14 * M2._42;
|
|
|
|
- m._13 = M1._11 * M2._13 + M1._12 * M2._23 + M1._13 * M2._33 + M1._14 * M2._43;
|
|
|
|
- m._14 = M1._11 * M2._14 + M1._12 * M2._24 + M1._13 * M2._34 + M1._14 * M2._44;
|
|
|
|
- m._21 = M1._21 * M2._11 + M1._22 * M2._21 + M1._23 * M2._31 + M1._24 * M2._41;
|
|
|
|
- m._22 = M1._21 * M2._12 + M1._22 * M2._22 + M1._23 * M2._32 + M1._24 * M2._42;
|
|
|
|
- m._23 = M1._21 * M2._13 + M1._22 * M2._23 + M1._23 * M2._33 + M1._24 * M2._43;
|
|
|
|
- m._24 = M1._21 * M2._14 + M1._22 * M2._24 + M1._23 * M2._34 + M1._24 * M2._44;
|
|
|
|
- m._31 = M1._31 * M2._11 + M1._32 * M2._21 + M1._33 * M2._31 + M1._34 * M2._41;
|
|
|
|
- m._32 = M1._31 * M2._12 + M1._32 * M2._22 + M1._33 * M2._32 + M1._34 * M2._42;
|
|
|
|
- m._33 = M1._31 * M2._13 + M1._32 * M2._23 + M1._33 * M2._33 + M1._34 * M2._43;
|
|
|
|
- m._34 = M1._31 * M2._14 + M1._32 * M2._24 + M1._33 * M2._34 + M1._34 * M2._44;
|
|
|
|
- m._41 = M1._41 * M2._11 + M1._42 * M2._21 + M1._43 * M2._31 + M1._44 * M2._41;
|
|
|
|
- m._42 = M1._41 * M2._12 + M1._42 * M2._22 + M1._43 * M2._32 + M1._44 * M2._42;
|
|
|
|
- m._43 = M1._41 * M2._13 + M1._42 * M2._23 + M1._43 * M2._33 + M1._44 * M2._43;
|
|
|
|
- m._44 = M1._41 * M2._14 + M1._42 * M2._24 + M1._43 * M2._34 + M1._44 * M2._44;
|
|
|
|
|
|
+ m.v._11 = M1.v._11 * M2.v._11 + M1.v._12 * M2.v._21 + M1.v._13 * M2.v._31 + M1.v._14 * M2.v._41;
|
|
|
|
+ m.v._12 = M1.v._11 * M2.v._12 + M1.v._12 * M2.v._22 + M1.v._13 * M2.v._32 + M1.v._14 * M2.v._42;
|
|
|
|
+ m.v._13 = M1.v._11 * M2.v._13 + M1.v._12 * M2.v._23 + M1.v._13 * M2.v._33 + M1.v._14 * M2.v._43;
|
|
|
|
+ m.v._14 = M1.v._11 * M2.v._14 + M1.v._12 * M2.v._24 + M1.v._13 * M2.v._34 + M1.v._14 * M2.v._44;
|
|
|
|
+ m.v._21 = M1.v._21 * M2.v._11 + M1.v._22 * M2.v._21 + M1.v._23 * M2.v._31 + M1.v._24 * M2.v._41;
|
|
|
|
+ m.v._22 = M1.v._21 * M2.v._12 + M1.v._22 * M2.v._22 + M1.v._23 * M2.v._32 + M1.v._24 * M2.v._42;
|
|
|
|
+ m.v._23 = M1.v._21 * M2.v._13 + M1.v._22 * M2.v._23 + M1.v._23 * M2.v._33 + M1.v._24 * M2.v._43;
|
|
|
|
+ m.v._24 = M1.v._21 * M2.v._14 + M1.v._22 * M2.v._24 + M1.v._23 * M2.v._34 + M1.v._24 * M2.v._44;
|
|
|
|
+ m.v._31 = M1.v._31 * M2.v._11 + M1.v._32 * M2.v._21 + M1.v._33 * M2.v._31 + M1.v._34 * M2.v._41;
|
|
|
|
+ m.v._32 = M1.v._31 * M2.v._12 + M1.v._32 * M2.v._22 + M1.v._33 * M2.v._32 + M1.v._34 * M2.v._42;
|
|
|
|
+ m.v._33 = M1.v._31 * M2.v._13 + M1.v._32 * M2.v._23 + M1.v._33 * M2.v._33 + M1.v._34 * M2.v._43;
|
|
|
|
+ m.v._34 = M1.v._31 * M2.v._14 + M1.v._32 * M2.v._24 + M1.v._33 * M2.v._34 + M1.v._34 * M2.v._44;
|
|
|
|
+ m.v._41 = M1.v._41 * M2.v._11 + M1.v._42 * M2.v._21 + M1.v._43 * M2.v._31 + M1.v._44 * M2.v._41;
|
|
|
|
+ m.v._42 = M1.v._41 * M2.v._12 + M1.v._42 * M2.v._22 + M1.v._43 * M2.v._32 + M1.v._44 * M2.v._42;
|
|
|
|
+ m.v._43 = M1.v._41 * M2.v._13 + M1.v._42 * M2.v._23 + M1.v._43 * M2.v._33 + M1.v._44 * M2.v._43;
|
|
|
|
+ m.v._44 = M1.v._41 * M2.v._14 + M1.v._42 * M2.v._24 + M1.v._43 * M2.v._34 + M1.v._44 * M2.v._44;
|
|
return m;
|
|
return m;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -64,10 +64,10 @@ Float4X4 MatrixScaling(float x, float y, float z)
|
|
{
|
|
{
|
|
Float4X4 m;
|
|
Float4X4 m;
|
|
SDL_zero(m);
|
|
SDL_zero(m);
|
|
- m._11 = x;
|
|
|
|
- m._22 = y;
|
|
|
|
- m._33 = z;
|
|
|
|
- m._44 = 1.0f;
|
|
|
|
|
|
+ m.v._11 = x;
|
|
|
|
+ m.v._22 = y;
|
|
|
|
+ m.v._33 = z;
|
|
|
|
+ m.v._44 = 1.0f;
|
|
return m;
|
|
return m;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -75,13 +75,13 @@ Float4X4 MatrixTranslation(float x, float y, float z)
|
|
{
|
|
{
|
|
Float4X4 m;
|
|
Float4X4 m;
|
|
SDL_zero(m);
|
|
SDL_zero(m);
|
|
- m._11 = 1.0f;
|
|
|
|
- m._22 = 1.0f;
|
|
|
|
- m._33 = 1.0f;
|
|
|
|
- m._44 = 1.0f;
|
|
|
|
- m._41 = x;
|
|
|
|
- m._42 = y;
|
|
|
|
- m._43 = z;
|
|
|
|
|
|
+ m.v._11 = 1.0f;
|
|
|
|
+ m.v._22 = 1.0f;
|
|
|
|
+ m.v._33 = 1.0f;
|
|
|
|
+ m.v._44 = 1.0f;
|
|
|
|
+ m.v._41 = x;
|
|
|
|
+ m.v._42 = y;
|
|
|
|
+ m.v._43 = z;
|
|
return m;
|
|
return m;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -91,12 +91,12 @@ Float4X4 MatrixRotationX(float r)
|
|
float cosR = SDL_cosf(r);
|
|
float cosR = SDL_cosf(r);
|
|
Float4X4 m;
|
|
Float4X4 m;
|
|
SDL_zero(m);
|
|
SDL_zero(m);
|
|
- m._11 = 1.0f;
|
|
|
|
- m._22 = cosR;
|
|
|
|
- m._23 = sinR;
|
|
|
|
- m._32 = -sinR;
|
|
|
|
- m._33 = cosR;
|
|
|
|
- m._44 = 1.0f;
|
|
|
|
|
|
+ m.v._11 = 1.0f;
|
|
|
|
+ m.v._22 = cosR;
|
|
|
|
+ m.v._23 = sinR;
|
|
|
|
+ m.v._32 = -sinR;
|
|
|
|
+ m.v._33 = cosR;
|
|
|
|
+ m.v._44 = 1.0f;
|
|
return m;
|
|
return m;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -106,12 +106,12 @@ Float4X4 MatrixRotationY(float r)
|
|
float cosR = SDL_cosf(r);
|
|
float cosR = SDL_cosf(r);
|
|
Float4X4 m;
|
|
Float4X4 m;
|
|
SDL_zero(m);
|
|
SDL_zero(m);
|
|
- m._11 = cosR;
|
|
|
|
- m._13 = -sinR;
|
|
|
|
- m._22 = 1.0f;
|
|
|
|
- m._31 = sinR;
|
|
|
|
- m._33 = cosR;
|
|
|
|
- m._44 = 1.0f;
|
|
|
|
|
|
+ m.v._11 = cosR;
|
|
|
|
+ m.v._13 = -sinR;
|
|
|
|
+ m.v._22 = 1.0f;
|
|
|
|
+ m.v._31 = sinR;
|
|
|
|
+ m.v._33 = cosR;
|
|
|
|
+ m.v._44 = 1.0f;
|
|
return m;
|
|
return m;
|
|
}
|
|
}
|
|
|
|
|
|
@@ -121,12 +121,12 @@ Float4X4 MatrixRotationZ(float r)
|
|
float cosR = SDL_cosf(r);
|
|
float cosR = SDL_cosf(r);
|
|
Float4X4 m;
|
|
Float4X4 m;
|
|
SDL_zero(m);
|
|
SDL_zero(m);
|
|
- m._11 = cosR;
|
|
|
|
- m._12 = sinR;
|
|
|
|
- m._21 = -sinR;
|
|
|
|
- m._22 = cosR;
|
|
|
|
- m._33 = 1.0f;
|
|
|
|
- m._44 = 1.0f;
|
|
|
|
|
|
+ m.v._11 = cosR;
|
|
|
|
+ m.v._12 = sinR;
|
|
|
|
+ m.v._21 = -sinR;
|
|
|
|
+ m.v._22 = cosR;
|
|
|
|
+ m.v._33 = 1.0f;
|
|
|
|
+ m.v._44 = 1.0f;
|
|
return m;
|
|
return m;
|
|
|
|
|
|
}
|
|
}
|