minecraft

minecraft
git clone git://git.evenfri.pw/minecraft.git
Log | Files | Refs | README

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