564 |
|
char *mod; |
565 |
|
VNDX v1i, v2i, v3i; |
566 |
|
BARYCCM bvecs; |
567 |
+ |
FVECT bcoor[3]; |
568 |
|
int texOK, patOK; |
569 |
+ |
register int i; |
570 |
|
|
571 |
|
if ((mod = getmtl()) == NULL) |
572 |
|
return(-1); |
589 |
|
printf("\n%s texfunc %s\n", mod, TEXNAME); |
590 |
|
mod = TEXNAME; |
591 |
|
printf("4 dx dy dz %s\n", TCALNAME); |
592 |
< |
printf("0\n16 "); |
593 |
< |
put_baryc(&bvecs); |
594 |
< |
printf("\t%14.12g %14.12g %14.12g\n", |
595 |
< |
vnlist[v1i[2]][0], vnlist[v2i[2]][0], |
596 |
< |
vnlist[v3i[2]][0]); |
597 |
< |
printf("\t%14.12g %14.12g %14.12g\n", |
598 |
< |
vnlist[v1i[2]][1], vnlist[v2i[2]][1], |
597 |
< |
vnlist[v3i[2]][1]); |
598 |
< |
printf("\t%14.12g %14.12g %14.12g\n", |
599 |
< |
vnlist[v1i[2]][2], vnlist[v2i[2]][2], |
600 |
< |
vnlist[v3i[2]][2]); |
592 |
> |
printf("0\n"); |
593 |
> |
for (i = 0; i < 3; i++) { |
594 |
> |
bcoor[i][0] = vnlist[v1i[2]][i]; |
595 |
> |
bcoor[i][1] = vnlist[v2i[2]][i]; |
596 |
> |
bcoor[i][2] = vnlist[v3i[2]][i]; |
597 |
> |
} |
598 |
> |
put_baryc(&bvecs, bcoor, 3); |
599 |
|
} |
600 |
|
#ifdef TEXMAPS |
601 |
|
/* put out pattern (if any) */ |
603 |
|
printf("\n%s colorpict %s\n", mod, PATNAME); |
604 |
|
mod = PATNAME; |
605 |
|
printf("7 noneg noneg noneg %s %s u v\n", mapname, TCALNAME); |
606 |
< |
printf("0\n13 "); |
607 |
< |
put_baryc(&bvecs); |
608 |
< |
printf("\t%f %f %f\n", vtlist[v1i[1]][0], |
609 |
< |
vtlist[v2i[1]][0], vtlist[v3i[1]][0]); |
610 |
< |
printf("\t%f %f %f\n", vtlist[v1i[1]][1], |
611 |
< |
vtlist[v2i[1]][1], vtlist[v3i[1]][1]); |
606 |
> |
printf("0\n"); |
607 |
> |
for (i = 0; i < 2; i++) { |
608 |
> |
bcoor[i][0] = vtlist[v1i[1]][i]; |
609 |
> |
bcoor[i][1] = vtlist[v2i[1]][i]; |
610 |
> |
bcoor[i][2] = vtlist[v3i[1]][i]; |
611 |
> |
} |
612 |
> |
put_baryc(&bvecs, bcoor, 2); |
613 |
|
} |
614 |
|
#endif |
615 |
|
/* put out triangle */ |
670 |
|
} |
671 |
|
|
672 |
|
|
673 |
< |
put_baryc(bcm) /* put barycentric coord. vectors */ |
673 |
> |
put_baryc(bcm, com, n) /* put barycentric coord. vectors */ |
674 |
|
register BARYCCM *bcm; |
675 |
+ |
register FVECT com[]; |
676 |
+ |
int n; |
677 |
|
{ |
678 |
< |
printf("\t%d\n", bcm->ax); |
679 |
< |
printf("%14.8f %14.8f %14.8f\n", |
680 |
< |
bcm->tm[0][0], bcm->tm[0][1], bcm->tm[0][2]); |
681 |
< |
printf("%14.8f %14.8f %14.8f\n", |
682 |
< |
bcm->tm[1][0], bcm->tm[1][1], bcm->tm[1][2]); |
678 |
> |
double a, b; |
679 |
> |
register int i, j; |
680 |
> |
|
681 |
> |
printf("%d\t%d\n", 1+3*n, bcm->ax); |
682 |
> |
for (i = 0; i < n; i++) { |
683 |
> |
a = com[i][0] - com[i][2]; |
684 |
> |
b = com[i][1] - com[i][2]; |
685 |
> |
printf("%14.8f %14.8f %14.8f\n", |
686 |
> |
bcm->tm[0][0]*a + bcm->tm[1][0]*b, |
687 |
> |
bcm->tm[0][1]*a + bcm->tm[1][1]*b, |
688 |
> |
bcm->tm[0][2]*a + bcm->tm[1][2]*b + com[i][2]); |
689 |
> |
} |
690 |
|
} |
691 |
|
|
692 |
|
|