removed clang-format and clang_complete files from the repo
[dosdemo] / src / 3dgfx / 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 init_mesh(struct g3d_mesh *mesh, int prim, int num_verts, int num_idx);
14
15 void free_mesh(struct g3d_mesh *mesh);
16 void destroy_mesh(struct g3d_mesh *mesh);
17
18 int copy_mesh(struct g3d_mesh *dest, struct g3d_mesh *src);
19
20 int load_mesh(struct g3d_mesh *mesh, const char *fname);
21 int save_mesh(struct g3d_mesh *mesh, const char *fname);
22
23 void zsort_mesh(struct g3d_mesh *mesh);
24 void draw_mesh(struct g3d_mesh *mesh);
25
26 void apply_mesh_xform(struct g3d_mesh *mesh, const float *xform);
27 int append_mesh(struct g3d_mesh *ma, struct g3d_mesh *mb);
28 int indexify_mesh(struct g3d_mesh *mesh);
29
30 void normalize_mesh_normals(struct g3d_mesh *mesh);
31
32 void calc_mesh_centroid(struct g3d_mesh *mesh, float *cent);
33
34 int gen_sphere_mesh(struct g3d_mesh *mesh, float rad, int usub, int vsub);
35 int gen_plane_mesh(struct g3d_mesh *mesh, float width, float height, int usub, int vsub);
36 int gen_cube_mesh(struct g3d_mesh *mesh, float sz, int sub);
37 int gen_torus_mesh(struct g3d_mesh *mesh, float rad, float ringrad, int usub, int vsub);
38
39 #endif  /* MESH_H_ */