From 46ca6bfa10e0d923c69492b59a5e3ba84f28cc87 Mon Sep 17 00:00:00 2001 From: Abdelrahman Date: Sun, 11 Aug 2024 19:31:14 +0100 Subject: [PATCH] Rename NULL_MODEL macro --- src/main.c | 2 +- src/obj.c | 10 ++++++---- src/obj.h | 5 +++-- 3 files changed, 10 insertions(+), 7 deletions(-) diff --git a/src/main.c b/src/main.c index fe3eca3..d72ae92 100644 --- a/src/main.c +++ b/src/main.c @@ -34,7 +34,7 @@ int main(void) { } Model obj = load_obj_file(arena, RESOURCE("head.obj"), RESOURCE("head.pnm")); - if (INVALID_MODEL(obj)) { + if (IS_INVALID_MODEL(obj)) { return TINY_EXIT_MODEL_LOAD_FAILED; } diff --git a/src/obj.c b/src/obj.c index a8153b1..d71dc3f 100644 --- a/src/obj.c +++ b/src/obj.c @@ -86,21 +86,23 @@ M4x4f g_cam_matrix = { Model load_obj_file(Arena *arena, const char *filename, const char *texture) { if (!arena) { - return NULL_MODEL; + return INVALID_MODEL; } FILE *fp = fopen(filename, "r"); if (!fp) { - return NULL_MODEL; + return INVALID_MODEL; } Model model = (Model){ .vertices = list_create(V3f, arena), + .normals = list_create(V3f, arena), .texture_coordinates = list_create(V2f, arena), .triangles = list_create(Triangle, arena), }; - if (!(model.vertices) || !(model.texture_coordinates) || !(model.triangles)) { - return NULL_MODEL; + if (!(model.vertices) || !(model.normals) || !(model.texture_coordinates) || + !(model.triangles)) { + return INVALID_MODEL; } char line[8192]; diff --git a/src/obj.h b/src/obj.h index 91d5926..3ff0981 100644 --- a/src/obj.h +++ b/src/obj.h @@ -6,8 +6,8 @@ #include "mem_arena.h" #include "typed_list.h" -#define NULL_MODEL ((Model){0}) -#define INVALID_MODEL(m) (m.vertices == NULL || m.triangles == NULL) +#define INVALID_MODEL ((Model){0}) +#define IS_INVALID_MODEL(m) (m.vertices == NULL || m.triangles == NULL) typedef struct triangle Triangle; struct triangle { @@ -109,6 +109,7 @@ MAKE_LIST_TYPE(Triangle); typedef struct model Model; struct model { LIST_TYPE(V3f) * vertices; + LIST_TYPE(V3f) * normals; LIST_TYPE(V2f) * texture_coordinates; LIST_TYPE(Triangle) * triangles; Image *texture;