--- ray/src/rt/data.c 1990/04/06 14:12:21 1.6 +++ ray/src/rt/data.c 1991/05/23 08:14:57 1.9 @@ -1,4 +1,4 @@ -/* Copyright (c) 1986 Regents of the University of California */ +/* Copyright (c) 1991 Regents of the University of California */ #ifndef lint static char SCCSid[] = "$SunId$ LBL"; @@ -74,7 +74,7 @@ char *dname; /* get dimensions */ if (fscanf(fp, "%d", &dp->nd) != 1) goto scanerr; - if (dp->nd <= 0 || dp->nd > MAXDIM) { + if (dp->nd <= 0 || dp->nd > MAXDDIM) { sprintf(errmsg, "bad number of dimensions for \"%s\"", dname); error(USER, errmsg); } @@ -174,17 +174,18 @@ char *pname; goto readerr; for (i = 0; i < 3; i++) { pp[i].nd = 2; - pp[i].dim[0].ne = width; - pp[i].dim[1].ne = height; + pp[i].dim[0].ne = height; + pp[i].dim[1].ne = width; pp[i].dim[0].org = pp[i].dim[1].org = 0.0; if (width <= height*inpaspect) { - pp[i].dim[0].siz = 1.0; - pp[i].dim[1].siz = inpaspect*(double)height/width; - } else { - pp[i].dim[0].siz = (double)width/height/inpaspect; + pp[i].dim[0].siz = inpaspect*(double)height/width; pp[i].dim[1].siz = 1.0; + } else { + pp[i].dim[0].siz = 1.0; + pp[i].dim[1].siz = (double)width/height/inpaspect; } + pp[i].dim[0].p = pp[i].dim[1].p = NULL; pp[i].arr = (DATATYPE *)malloc(width*height*sizeof(DATATYPE)); if (pp[i].arr == NULL) goto memerr; @@ -197,7 +198,7 @@ char *pname; goto readerr; for (x = 0; x < width; x++) for (i = 0; i < 3; i++) - pp[i].arr[x*height+y] = colval(scanin[x],i); + pp[i].arr[y*width+x] = colval(scanin[x],i); } free((char *)scanin); fclose(fp); @@ -298,12 +299,10 @@ double *pt; i = (lower + upper) >> 1; if (pt[0] >= dp->dim[0].p[i]) lower = i; - else if (pt[0] < dp->dim[0].p[i]) + else upper = i; } while (i != (lower + upper) >> 1); - if (i < 0) - i = 0; - else if (i > dp->dim[0].ne - 2) + if (i > dp->dim[0].ne - 2) i = dp->dim[0].ne - 2; x = i + (pt[0] - dp->dim[0].p[i]) / (dp->dim[0].p[i+1] - dp->dim[0].p[i]);