X-Git-Url: http://git.mutantstargoat.com/user/nuclear/?a=blobdiff_plain;f=src%2Fmesh.h;h=eb0256dd11ea79978976e12c926b3aa9b4816482;hb=32ff3cf2d7d7a5ae82f5ca400b320c67e6984ad6;hp=92cc240d57aa63becedf075b9ab9205622236ad3;hpb=8cee0ffb00cce3d81487f1161286ac299db7d044;p=dosdemo diff --git a/src/mesh.h b/src/mesh.h index 92cc240..eb0256d 100644 --- a/src/mesh.h +++ b/src/mesh.h @@ -1,19 +1,29 @@ #ifndef MESH_H_ #define MESH_H_ +#include "inttypes.h" + struct g3d_mesh { int prim; struct g3d_vertex *varr; - int16_t *iarr; + uint16_t *iarr; int vcount, icount; }; int load_mesh(struct g3d_mesh *mesh, const char *fname); +int save_mesh(struct g3d_mesh *mesh, const char *fname); void zsort_mesh(struct g3d_mesh *mesh); void draw_mesh(struct g3d_mesh *mesh); -int gen_cube(struct g3d_mesh *mesh, float sz, int sub); -int gen_torus(struct g3d_mesh *mesh, float rad, float ringrad, int usub, int vsub); +void apply_mesh_xform(struct g3d_mesh *mesh, const float *xform); +int append_mesh(struct g3d_mesh *ma, struct g3d_mesh *mb); +int indexify_mesh(struct g3d_mesh *mesh); + +void normalize_mesh_normals(struct g3d_mesh *mesh); + +int gen_plane_mesh(struct g3d_mesh *mesh, float width, float height, int usub, int vsub); +int gen_cube_mesh(struct g3d_mesh *mesh, float sz, int sub); +int gen_torus_mesh(struct g3d_mesh *mesh, float rad, float ringrad, int usub, int vsub); #endif /* MESH_H_ */