#include #include #define KLEIN_IMPLEMENT #include #include #include #ifndef M_PI #define M_PI 3.14159265358979323846 #endif unsigned char dim = 10; void cube(float *d_surface, int *coord, unsigned char *grid) { int i; for (i = 0; i < dim; i++) d_surface[i] = (2 * (float)coord[i] / grid[i]) - 1; if (dim == 2) d_surface[2] = 0; } int main(void) { unsigned char i; char file_name[0xff]; struct klein klein; struct parm parametrization = { .m = dim, .n = dim, .f = cube, }; parametrization.grid = malloc(dim); for (i = 0; i < dim; ++i) parametrization.grid[i] = 1 + i; snprintf(file_name, 0xff, "cube-%03d.klein", dim); printf("writing %s\n", file_name); klein_parametrize(&klein, parametrization); klein_normalize(&klein); klein_export_file(klein, file_name); return 0; }