/* ** hcubeslice. */ #include #include "peek.h" /* ** hcubeslice() ** ** assumes that hcube.pk is in the current directory, and creates ** the flipbook file hcube.ps in the same directory. ** NOTE: ** lots of imbedded constants in the below */ int hcubeslice() { Piece *object = NULL, *cross_object = NULL; FILE *obj_file, *enum_file, *file; Enviro *env; char c, output[10], err2[80]; Matx *init, *delta; int i, j; obj_file = fopen("hcube.pk","r"); if (!(obj_file)) { sprintf(err2, "hcubeslice: can't find hcube.pk\n"); strcat(err, err2); return(-1); } if (read_object(obj_file, &object)) { sprintf(err2, "hcubeslice: troubles reading hypercube file\n"); strcat(err, err2); return(-1); } fclose(obj_file); init = (Matx *) malloc(sizeof(Matx)); init->m[0][0] = 0.7071; init->m[0][1] = 0.40828; init->m[0][2] = 0.288674; init->m[0][3] = -0.499983; init->m[0][4] = 0; init->m[1][0] = -0.7071; init->m[1][1] = 0.40828; init->m[1][2] = 0.288674; init->m[1][3] = -0.499983; init->m[1][4] = 0; init->m[2][0] = 0; init->m[2][1] = -0.8165; init->m[2][2] = 0.2887; init->m[2][3] = -0.500028; init->m[2][4] = 0; init->m[3][0] = 0; init->m[3][1] = 0; init->m[3][2] = 0.866; init->m[3][3] = 0.5; init->m[3][4] = 0; init->m[4][0] = 0; init->m[4][1] = 0; init->m[4][2] = 0; init->m[4][3] = -2; init->m[4][4] = 1; delta = (Matx *) malloc(sizeof(Matx)); for (i=0; i<=4; i++) for (j=0; j<=4; j++) delta->m[i][j] = (i == j ? 1 : 0); delta->m[4][3] = 0.1; env = (Enviro *) malloc(sizeof(Enviro)); env->light[0] = 0.70711; env->light[1] = 0; env->light[2] = 0.70711; env->amb = 0.15; env->eye[0] = 14; env->eye[1] = 0.58; env->eye[2] = 1; env->distance = 8.4; env->scale = 1.8; env->frontwidth = 1.5; env->backwidth = 0.5; if (psslice_4d("hcube.ps", object, init, delta, env, 41)) { sprintf(err2, "hcubeslice:\n"); strcat(err, err2); return(-1); } }