#ifndef MESH_H #define MESH_H #include "vector.h" #include "triangle.h" #define N_CUBE_VERTICES 8 #define N_CUBE_FACES (6 * 2) // 6 cube faces, 2 triangles per face #define MAX_LEN 256 extern vec3_t cube_vertices[N_CUBE_VERTICES]; extern face_t cube_faces[N_CUBE_FACES]; typedef enum { COLOR_PURPLE = 0xFF6A2EFF, COLOR_SAND_YELLOW = 0xFFE9C46A, COLOR_TEAL_GREEN = 0xFF2A9D8F, COLOR_ORANGE = 0xFFF4A261, COLOR_DARK_BLUE_GREY = 0xFF264653, COLOR_MAUVE = 0xFFB5838D, COLOR_RED = 0xFFD7263D, COLOR_TURQUOISE = 0xFF38A3A5, COLOR_GREY = 0xFF757575, COLOR_LIGHT_GREEN_BLUE = 0xFF70C1B3, COLOR_YELLOW = 0xFFFFC300, COLOR_DEEP_PURPLE = 0xFF5D2E8C } color_enum_t; typedef struct mesh_t mesh_t; struct mesh_t { vec3_t* vertices; face_t* faces; vec3_t rotation; vec3_t scale; vec3_t translation; }; extern mesh_t mesh; void parse_face(const char* buffer, face_t* face); void load_cube_mesh_data(void); void load_file(const char* filename); #endif