8 #include <linmath.h/linmath.h>
9 #include <dragonstd/array.h>
10 #include "client/mesh.h"
11 #include "client/texture.h"
12 #include "client/vertex.h"
17 } __attribute__((packed)) Vertex3DPosition;
21 } __attribute__((packed)) Vertex3DNormal;
23 typedef GLfloat Vertex3DTextureIndex;
27 } __attribute__((packed)) Vertex3DTextureCoordinates;
31 } __attribute__((packed)) Vertex3DColor;
35 Vertex3DPosition position;
36 Vertex3DNormal normal;
37 Vertex3DTextureIndex textureIndex;
38 Vertex3DTextureCoordinates textureCoordinates;
40 } __attribute__((packed)) Vertex3D;
50 v3f32 pos, rot, scale;
61 ObjectFace *current_face;
63 void (*on_render)(struct Object *obj, f64 dtime);
67 Object *object_create();
68 void object_delete(Object *obj);
69 void object_set_texture(Object *obj, Texture *texture);
70 void object_add_vertex(Object *obj, Vertex3D *vertex);
71 bool object_add_to_scene(Object *obj);
72 void object_transform(Object *obj);
73 bool object_before_render(Object *obj, f64 dtime);
74 void object_render(Object *obj);