39 lines
1.0 KiB
C
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 |