fxengine/include/fxengine/model/object.h

39 lines
1.0 KiB
C

#ifndef FE_MODEL_OBJECT
#define FE_MODEL_OBJECT
#include <fxengine/model/vertex.h>
#include <fxengine/model/triangle.h>
#include <stdbool.h>
#include <stdint.h>
typedef struct
{
fe_vertex centre; // Emplacement de l'objet
fe_vertex * vertex_table; // Coordonnées du modèle
uint32_t vt_size;
bool vt_own;
fe_triangle * face_table;
uint32_t ft_size;
bool ft_own;
// Plage de travail privée
fe_vertex * vertex_t0; // vertex_table[x]+centre
fe_vertex * vertex_t1; // fe_translate(vertex_t0)
fe_vertex old_centre; // Avoid changes during one frame :E
} fe_object;
void fe_object_init(fe_object * object); // Create the object on the zone you allocated
void fe_object_set_points(fe_object * object, fe_vertex * points, uint32_t n, bool copy);
void fe_object_set_faces(fe_object * object, fe_triangle * faces, uint32_t n, bool copy);
void fe_object_delete(fe_object * object);
void fe_object_display(fe_object * object);
fe_vertex* fe_object_get_vertex(const fe_object * object, const int n);
#endif