mat4.c (599B)
1 #include <math.h> 2 #include "minecraft.h" 3 4 mat4 mat4_identity(void) { 5 mat4 r = {{0}}; 6 r.m[0] = r.m[5] = r.m[10] = r.m[15] = 1.0f; 7 return r; 8 } 9 10 mat4 mat4_perspective(float fovy, float aspect, float znear, float zfar) { 11 mat4 r = {{0}}; 12 float f = 1.0f / tanf(0.5f * fovy * PI / 180.0f); 13 r.m[0] = f / aspect; 14 r.m[5] = f; 15 r.m[10] = (zfar + znear) / (znear - zfar); 16 r.m[11] = -1.0f; 17 r.m[14] = (2.0f * zfar * znear) / (znear - zfar); 18 return r; 19 } 20 21 mat4 mat4_translate(float x, float y, float z) { 22 mat4 r = mat4_identity(); 23 r.m[12] = x; 24 r.m[13] = y; 25 r.m[14] = z; 26 return r; 27 } 28