nuclear@0: #ifndef MESHGEN_H_ nuclear@0: #define MESHGEN_H_ nuclear@0: nuclear@0: #include "vmath/vmath.h" nuclear@0: nuclear@0: class Mesh; nuclear@0: nuclear@0: void gen_sphere(Mesh *mesh, float rad, int usub, int vsub, float urange = 1.0, float vrange = 1.0); nuclear@0: void gen_torus(Mesh *mesh, float mainrad, float ringrad, int usub, int vsub, float urange = 1.0, float vrange = 1.0); nuclear@0: void gen_cylinder(Mesh *mesh, float rad, float height, int usub, int vsub, int capsub = 0, float urange = 1.0, float vrange = 1.0); nuclear@0: void gen_cone(Mesh *mesh, float rad, float height, int usub, int vsub, int capsub = 0, float urange = 1.0, float vrange = 1.0); nuclear@0: void gen_plane(Mesh *mesh, float width, float height, int usub = 1, int vsub = 1); nuclear@0: void gen_heightmap(Mesh *mesh, float width, float height, int usub, int vsub, float (*hf)(float, float, void*), void *hfdata = 0); nuclear@0: void gen_box(Mesh *mesh, float xsz, float ysz, float zsz, int usub = 1, int vsub = 1); nuclear@0: nuclear@0: void gen_revol(Mesh *mesh, int usub, int vsub, Vector2 (*rfunc)(float, float, void*), void *cls = 0); nuclear@0: void gen_revol(Mesh *mesh, int usub, int vsub, Vector2 (*rfunc)(float, float, void*), Vector2 (*nfunc)(float, float, void*), void *cls); nuclear@0: nuclear@0: /* callback args: (float u, float v, void *cls) -> Vector2 XZ offset u,v in [0, 1] */ nuclear@0: void gen_sweep(Mesh *mesh, float height, int usub, int vsub, Vector2 (*sfunc)(float, float, void*), void *cls = 0); nuclear@0: nuclear@0: #endif // MESHGEN_H_