| 15 |
|
* 4/16/02 Added conditional vertex output |
| 16 |
|
*/ |
| 17 |
|
|
| 18 |
< |
#include "rtmath.h" |
| 18 |
> |
#include "standard.h" |
| 19 |
> |
|
| 20 |
> |
#include "paths.h" |
| 21 |
> |
#include "resolu.h" |
| 22 |
|
#include "rterror.h" |
| 20 |
– |
#include "rtio.h" |
| 23 |
|
#include "calcomp.h" |
| 24 |
|
|
| 25 |
|
char XNAME[] = "X`SYS"; /* x function name */ |
| 34 |
|
|
| 35 |
|
#define pvect(p) printf(vformat, (p)[0], (p)[1], (p)[2]) |
| 36 |
|
|
| 37 |
< |
char vformat[] = "%15.9g %15.9g %15.9g\n"; |
| 38 |
< |
char tsargs[] = "4 surf_dx surf_dy surf_dz surf.cal\n"; |
| 37 |
> |
char vformat[] = "%18.12g %18.12g %18.12g\n"; |
| 38 |
> |
char tsargs[] = "4 surf_dx surf_dy surf_dz surf.cal"; |
| 39 |
|
char texname[] = "Phong"; |
| 40 |
|
|
| 41 |
|
int smooth = 0; /* apply smoothing? */ |
| 71 |
|
void comprow(double s, POINT *row, int siz); |
| 72 |
|
void compnorms(POINT *r0, POINT *r1, POINT *r2, int siz); |
| 73 |
|
int norminterp(FVECT resmat[4], POINT *p0, POINT *p1, POINT *p2, POINT *p3); |
| 72 |
– |
void printhead(int ac, char **av); |
| 74 |
|
|
| 75 |
|
|
| 76 |
|
int |
| 138 |
|
} |
| 139 |
|
row0++; row1++; row2++; |
| 140 |
|
/* print header */ |
| 141 |
< |
printhead(argc, argv); |
| 141 |
> |
fputs("# ", stdout); |
| 142 |
> |
printargs(argc, argv, stdout); |
| 143 |
|
eclock = 0; |
| 144 |
|
/* initialize */ |
| 145 |
|
comprow(-1.0/m, row0, n); |
| 182 |
|
|
| 183 |
|
userror: |
| 184 |
|
fprintf(stderr, "Usage: %s material name ", argv[0]); |
| 185 |
< |
fprintf(stderr, "x(s,t) y(s,t) z(s,t) m n [-s][-e expr][-f file]\n"); |
| 185 |
> |
fprintf(stderr, "x(s,t) y(s,t) z(s,t) m n [-s][-o][-e expr][-f file]\n"); |
| 186 |
|
return 1; |
| 187 |
|
} |
| 188 |
|
|
| 229 |
|
size--; |
| 230 |
|
} |
| 231 |
|
if (size == (m+n+1)*pointsize) { /* no border after all */ |
| 232 |
< |
dp = (RREAL *)realloc((void *)datarec.data, |
| 232 |
> |
dp = (RREAL *)realloc(datarec.data, |
| 233 |
|
m*n*pointsize*sizeof(RREAL)); |
| 234 |
|
if (dp != NULL) |
| 235 |
|
datarec.data = dp; |
| 382 |
|
if (ok1 & ok2 && fdot(vc1,vc2) >= 1.0-FTINY*FTINY) { |
| 383 |
|
printf("\n%s ", modname); |
| 384 |
|
if (axis != -1) { |
| 385 |
< |
printf("texfunc %s\n", texname); |
| 384 |
< |
printf(tsargs); |
| 385 |
> |
printf("texfunc %s\n%s\n", texname, tsargs); |
| 386 |
|
printf("0\n13\t%d\n", axis); |
| 387 |
|
pvect(norm[0]); |
| 388 |
|
pvect(norm[1]); |
| 404 |
|
if (ok1) { |
| 405 |
|
printf("\n%s ", modname); |
| 406 |
|
if (axis != -1) { |
| 407 |
< |
printf("texfunc %s\n", texname); |
| 407 |
< |
printf(tsargs); |
| 407 |
> |
printf("texfunc %s\n%s\n", texname, tsargs); |
| 408 |
|
printf("0\n13\t%d\n", axis); |
| 409 |
|
pvect(norm[0]); |
| 410 |
|
pvect(norm[1]); |
| 422 |
|
if (ok2) { |
| 423 |
|
printf("\n%s ", modname); |
| 424 |
|
if (axis != -1) { |
| 425 |
< |
printf("texfunc %s\n", texname); |
| 426 |
< |
printf(tsargs); |
| 425 |
> |
printf("texfunc %s\n%s\n", texname, tsargs); |
| 426 |
|
printf("0\n13\t%d\n", axis); |
| 427 |
|
pvect(norm[0]); |
| 428 |
|
pvect(norm[1]); |
| 582 |
|
|
| 583 |
|
#undef u |
| 584 |
|
#undef v |
| 586 |
– |
} |
| 587 |
– |
|
| 588 |
– |
|
| 589 |
– |
void |
| 590 |
– |
eputs(msg) |
| 591 |
– |
char *msg; |
| 592 |
– |
{ |
| 593 |
– |
fputs(msg, stderr); |
| 594 |
– |
} |
| 595 |
– |
|
| 596 |
– |
|
| 597 |
– |
void |
| 598 |
– |
wputs(msg) |
| 599 |
– |
char *msg; |
| 600 |
– |
{ |
| 601 |
– |
eputs(msg); |
| 602 |
– |
} |
| 603 |
– |
|
| 604 |
– |
|
| 605 |
– |
void |
| 606 |
– |
quit(code) |
| 607 |
– |
int code; |
| 608 |
– |
{ |
| 609 |
– |
exit(code); |
| 610 |
– |
} |
| 611 |
– |
|
| 612 |
– |
|
| 613 |
– |
void |
| 614 |
– |
printhead( /* print command header */ |
| 615 |
– |
register int ac, |
| 616 |
– |
register char **av |
| 617 |
– |
) |
| 618 |
– |
{ |
| 619 |
– |
putchar('#'); |
| 620 |
– |
while (ac--) { |
| 621 |
– |
putchar(' '); |
| 622 |
– |
fputs(*av++, stdout); |
| 623 |
– |
} |
| 624 |
– |
putchar('\n'); |
| 585 |
|
} |
| 586 |
|
|
| 587 |
|
|