scop/src/mat4_translate.c

40 lines
1.6 KiB
C

/* ************************************************************************** */
/* */
/* ::: :::::::: */
/* mat4_translate.c :+: :+: :+: */
/* +:+ +:+ +:+ */
/* By: gbrochar <gbrochar@student.42.fr> +#+ +:+ +#+ */
/* +#+#+#+#+#+ +#+ */
/* Created: 2020/12/26 09:03:05 by gbrochar #+# #+# */
/* Updated: 2020/12/26 09:17:27 by gbrochar ### ########.fr */
/* */
/* ************************************************************************** */
#include "mat4.h"
t_mat4 mat4_translate(t_mat4 m, t_vec3 t)
{
t_mat4 ret;
ret.data[0] = m.data[0];
ret.data[1] = m.data[1];
ret.data[2] = m.data[2];
ret.data[3] = m.data[3];
ret.data[4] = m.data[4];
ret.data[5] = m.data[5];
ret.data[6] = m.data[6];
ret.data[7] = m.data[7];
ret.data[8] = m.data[8];
ret.data[9] = m.data[9];
ret.data[10] = m.data[10];
ret.data[11] = m.data[11];
ret.data[12] =
m.data[0] * t.x + m.data[4] * t.y + m.data[8] * t.z + m.data[12];
ret.data[13] =
m.data[1] * t.x + m.data[5] * t.y + m.data[9] * t.z + m.data[13];
ret.data[14] =
m.data[2] * t.x + m.data[6] * t.y + m.data[10] * t.z + m.data[14];
ret.data[15] =
m.data[3] * t.x + m.data[7] * t.y + m.data[11] * t.z + m.data[15];
return (ret);
}