initial import
[dosrtxon] / src / mesh.h
1 #ifndef MESH_H_
2 #define MESH_H_
3
4 #include "inttypes.h"
5
6 struct g3d_mesh {
7         int prim;
8         struct g3d_vertex *varr;
9         uint16_t *iarr;
10         int vcount, icount;
11 };
12
13 int load_mesh(struct g3d_mesh *mesh, const char *fname);
14 int save_mesh(struct g3d_mesh *mesh, const char *fname);
15
16 void zsort_mesh(struct g3d_mesh *mesh);
17 void draw_mesh(struct g3d_mesh *mesh);
18
19 void apply_mesh_xform(struct g3d_mesh *mesh, const float *xform);
20 int append_mesh(struct g3d_mesh *ma, struct g3d_mesh *mb);
21 int indexify_mesh(struct g3d_mesh *mesh);
22
23 void normalize_mesh_normals(struct g3d_mesh *mesh);
24
25 int gen_plane_mesh(struct g3d_mesh *mesh, float width, float height, int usub, int vsub);
26 int gen_cube_mesh(struct g3d_mesh *mesh, float sz, int sub);
27 int gen_torus_mesh(struct g3d_mesh *mesh, float rad, float ringrad, int usub, int vsub);
28
29 #endif  /* MESH_H_ */