19 |
|
int |
20 |
|
findName(const char *nm, const char **nmlist, int n) |
21 |
|
{ |
22 |
< |
register int i; |
22 |
> |
int i; |
23 |
|
|
24 |
|
for (i = n; i-- > 0; ) |
25 |
|
if (!strcmp(nmlist[i], nm)) |
322 |
|
goto linkerr; |
323 |
|
/* XXX doesn't allow for multiple references to prev in face */ |
324 |
|
f->v[j].vid = repl; /* replace vertex itself */ |
325 |
< |
if (faceArea(sc, f, NULL) <= FTINY) |
325 |
> |
if (faceArea(sc, f, NULL) <= FTINY*FTINY) |
326 |
|
f->flags |= FACE_DEGENERATE; |
327 |
|
if (f->v[j].tid >= 0) /* replace texture if appropriate */ |
328 |
|
for (i = 0; repl_tex[i] >= 0; i++) { |
690 |
|
sc->flist = f; |
691 |
|
sc->nfaces++; |
692 |
|
/* check face area */ |
693 |
< |
if (!(f->flags & FACE_DEGENERATE) && faceArea(sc, f, NULL) <= FTINY) |
693 |
> |
if (!(f->flags & FACE_DEGENERATE) && faceArea(sc, f, NULL) <= FTINY*FTINY) |
694 |
|
f->flags |= FACE_DEGENERATE; |
695 |
|
return(f); |
696 |
|
} |
760 |
|
return(sc); |
761 |
|
} |
762 |
|
|
763 |
+ |
#define MAXAC 100 |
764 |
+ |
|
765 |
|
/* Transform entire scene */ |
766 |
|
int |
767 |
|
xfScene(Scene *sc, int xac, char *xav[]) |
768 |
|
{ |
769 |
+ |
char comm[24+MAXAC*8]; |
770 |
+ |
char *cp; |
771 |
|
XF myxf; |
772 |
|
FVECT vec; |
773 |
|
int i; |
790 |
|
vec[0] /= myxf.sca; vec[1] /= myxf.sca; vec[2] /= myxf.sca; |
791 |
|
VCOPY(sc->norm[i], vec); |
792 |
|
} |
793 |
+ |
/* add comment */ |
794 |
+ |
cp = strcpy(comm, "Transformed by:"); |
795 |
+ |
for (i = 0; i < xac; i++) { |
796 |
+ |
while (*cp) cp++; |
797 |
+ |
*cp++ = ' '; |
798 |
+ |
strcpy(cp, xav[i]); |
799 |
+ |
} |
800 |
+ |
addComment(sc, comm); |
801 |
|
return(xac); /* all done */ |
802 |
|
} |
803 |
|
|
804 |
|
/* Ditto, using transform string rather than pre-parsed words */ |
793 |
– |
#define MAXAC 100 |
805 |
|
int |
806 |
|
xfmScene(Scene *sc, const char *xfm) |
807 |
|
{ |