180 lines
2.4 KiB
C
180 lines
2.4 KiB
C
#include "sweet_types.h"
|
|
#include "sweet_matrix_short.h"
|
|
|
|
|
|
mat2 mat2_new_m3 (mat3 m)
|
|
{
|
|
mat2 n;
|
|
n.v[0] = m.v[0];
|
|
n.v[1] = m.v[1];
|
|
n.v[2] = m.v[3];
|
|
n.v[3] = m.v[4];
|
|
return n;
|
|
}
|
|
|
|
mat2 mat2_new_2v (vec2 e1, vec2 e2)
|
|
{
|
|
mat2 m;
|
|
m.v[0] = e1.x;
|
|
m.v[1] = e1.y;
|
|
m.v[2] = e2.x;
|
|
m.v[3] = e2.y;
|
|
return m;
|
|
}
|
|
|
|
mat2 mat2_new_3f (float a, float b, float c)
|
|
{
|
|
return mat2_new_4f (a, b, c, 0);
|
|
}
|
|
|
|
mat2 mat2_new_4f (float f0, float f1, float f2, float f3)
|
|
{
|
|
mat2 n;
|
|
n.v[0] = f0;
|
|
n.v[1] = f1;
|
|
n.v[2] = f2;
|
|
n.v[3] = f3;
|
|
return n;
|
|
}
|
|
|
|
mat3 mat3_new_m4 (mat4 m)
|
|
{
|
|
mat3 n;
|
|
n.v[0] = m.v[0];
|
|
n.v[1] = m.v[1];
|
|
n.v[2] = m.v[2];
|
|
|
|
n.v[3] = m.v[4];
|
|
n.v[4] = m.v[5];
|
|
n.v[5] = m.v[6];
|
|
|
|
n.v[6] = m.v[8];
|
|
n.v[7] = m.v[9];
|
|
n.v[8] = m.v[10];
|
|
return n;
|
|
}
|
|
|
|
mat3 mat3_new_2v (vec2 e1, vec2 e2)
|
|
{
|
|
mat3 m;
|
|
m.v[0] = e1.x;
|
|
m.v[1] = e1.y;
|
|
m.v[2] = 0;
|
|
|
|
m.v[3] = e2.x;
|
|
m.v[4] = e2.y;
|
|
m.v[5] = 0;
|
|
|
|
m.v[6] = 0;
|
|
m.v[7] = 0;
|
|
m.v[8] = 1;
|
|
return m;
|
|
}
|
|
|
|
mat3 mat3_new_3v (vec3 e1, vec3 e2, vec3 e3)
|
|
{
|
|
mat3 m;
|
|
m.v[0] = e1.x;
|
|
m.v[1] = e1.y;
|
|
m.v[2] = e1.z;
|
|
|
|
m.v[3] = e2.x;
|
|
m.v[4] = e2.y;
|
|
m.v[5] = e2.z;
|
|
|
|
m.v[6] = e3.x;
|
|
m.v[7] = e3.y;
|
|
m.v[8] = e3.z;
|
|
return m;
|
|
}
|
|
|
|
mat4 mat4_new_m4 (mat4 m)
|
|
{
|
|
return m;
|
|
}
|
|
|
|
mat4 mat4_new_2v (vec2 e1, vec2 e2)
|
|
{
|
|
mat4 m;
|
|
m.v[0] = e1.x;
|
|
m.v[1] = e1.y;
|
|
m.v[2] = 0;
|
|
m.v[3] = 0;
|
|
|
|
m.v[4] = e2.x;
|
|
m.v[5] = e2.y;
|
|
m.v[6] = 0;
|
|
m.v[7] = 0;
|
|
|
|
m.v[8] = 0;
|
|
m.v[9] = 0;
|
|
m.v[10] = 1;
|
|
m.v[11] = 0;
|
|
|
|
m.v[12] = 0;
|
|
m.v[13] = 0;
|
|
m.v[14] = 0;
|
|
m.v[15] = 1;
|
|
|
|
return m;
|
|
}
|
|
|
|
mat4 mat4_new_3v (vec3 e1, vec3 e2, vec3 e3)
|
|
{
|
|
mat4 m;
|
|
|
|
m.v[0] = e1.x;
|
|
m.v[1] = e1.y;
|
|
m.v[2] = e1.z;
|
|
m.v[3] = 0;
|
|
|
|
m.v[4] = e2.x;
|
|
m.v[5] = e2.y;
|
|
m.v[6] = e2.z;
|
|
m.v[7] = 0;
|
|
|
|
m.v[8] = e3.x;
|
|
m.v[9] = e3.y;
|
|
m.v[10] = e3.z;
|
|
m.v[11] = 0;
|
|
|
|
m.v[12] = 0;
|
|
m.v[13] = 0;
|
|
m.v[14] = 0;
|
|
m.v[15] = 1;
|
|
return m;
|
|
}
|
|
|
|
mat4 mat4_new_4v (vec4 e1, vec4 e2, vec4 e3, vec4 e4)
|
|
{
|
|
mat4 m;
|
|
|
|
m.v[0] = e1.x;
|
|
m.v[1] = e1.y;
|
|
m.v[2] = e1.z;
|
|
m.v[3] = e1.w;
|
|
|
|
m.v[4] = e2.x;
|
|
m.v[5] = e2.y;
|
|
m.v[6] = e2.z;
|
|
m.v[7] = e2.w;
|
|
|
|
m.v[8] = e3.x;
|
|
m.v[9] = e3.y;
|
|
m.v[10] = e3.z;
|
|
m.v[11] = e3.w;
|
|
|
|
m.v[12] = e4.x;
|
|
m.v[13] = e4.y;
|
|
m.v[14] = e4.z;
|
|
m.v[15] = e4.w;
|
|
|
|
return m;
|
|
}
|
|
|
|
|
|
|
|
|
|
|
|
|