From 6b8af9cf83851c075c6c9514b1deaa931c2b19a4 Mon Sep 17 00:00:00 2001 From: Thomas Guillermo Albers Raviola Date: Fri, 16 Jan 2026 23:02:32 +0100 Subject: Initial commit --- 09-september/tomcat/renderer/entity.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) create mode 100644 09-september/tomcat/renderer/entity.c (limited to '09-september/tomcat/renderer/entity.c') diff --git a/09-september/tomcat/renderer/entity.c b/09-september/tomcat/renderer/entity.c new file mode 100644 index 0000000..d5e7429 --- /dev/null +++ b/09-september/tomcat/renderer/entity.c @@ -0,0 +1,33 @@ +#include "renderer.h" + +Mat4 Entity_GetModelTransform(Entity* entity) +{ + Mat4 temp; + Mat4 rotation = mat4_rotate_x(entity->rotX); + temp = mat4_rotate_y(entity->rotY); + rotation = mat4_mul(&rotation, &temp); + temp = mat4_rotate_z(entity->rotZ); + rotation = mat4_mul(&rotation, &temp); + + temp = mat4_translate(&entity->position); + + Mat4 modelTransform = mat4_mul(&temp, &rotation); + temp = mat4_scale(entity->scale[0], entity->scale[1], entity->scale[2]); + modelTransform = mat4_mul(&modelTransform, &temp); + + return modelTransform; +} + +Vec2 Entity_GetTexOffset(Entity *entity) +{ + /* Offset inside a texture atlas should default to (0, 0)*/ + Vec2 tex_offset; + Texture *t = entity->texture; + + int column = entity->index % t->number_of_rows; + int row = entity->index / t->number_of_rows; + tex_offset.x = (float)column / t->number_of_rows; + tex_offset.y = (float)row / t->number_of_rows; + + return tex_offset; +} -- cgit v1.2.3