initial commit
[meshfrac] / src / meshgen.h
1 #ifndef CMESHGEN_H_
2 #define CMESHGEN_H_
3
4 #include "cmesh.h"
5
6 void gen_sphere(struct cmesh *mesh, float rad, int usub, int vsub, float urange, float vrange);
7 void gen_geosphere(struct cmesh *mesh, float rad, int subdiv, int hemi);
8 void gen_torus(struct cmesh *mesh, float mainrad, float ringrad, int usub, int vsub,
9                 float urange, float vrange);
10 void gen_cylinder(struct cmesh *mesh, float rad, float height, int usub, int vsub,
11                 int capsub, float urange, float vrange);
12 void gen_cone(struct cmesh *mesh, float rad, float height, int usub, int vsub,
13                 int capsub, float urange, float vrange);
14 void gen_plane(struct cmesh *mesh, float width, float height, int usub, int vsub);
15 void gen_heightmap(struct cmesh *mesh, float width, float height, int usub, int vsub,
16                 float (*hf)(float, float, void*), void *hfdata);
17 void gen_box(struct cmesh *mesh, float xsz, float ysz, float zsz, int usub, int vsub);
18
19 void gen_revol(struct cmesh *mesh, int usub, int vsub, cgm_vec2 (*rfunc)(float, float, void*),
20                 cgm_vec2 (*nfunc)(float, float, void*), void *cls);
21
22 /* callback args: (float u, float v, void *cls) -> Vec2 XZ offset u,v in [0, 1] */
23 void gen_sweep(struct cmesh *mesh, float height, int usub, int vsub,
24                 cgm_vec2 (*sfunc)(float, float, void*), void *cls);
25
26 #endif  /* CMESHGEN_H_ */