54 |
|
switch (argv[0][1]) { |
55 |
|
case '\0': /* point */ |
56 |
|
if (badarg(argc-1,argv+1,"fff")) |
57 |
< |
syntax("Bad vertex"); |
57 |
> |
syntax("bad vertex"); |
58 |
|
newv(atof(argv[1]), atof(argv[2]), |
59 |
|
atof(argv[3])); |
60 |
|
break; |
62 |
|
if (argv[0][2]) |
63 |
|
goto unknown; |
64 |
|
if (badarg(argc-1,argv+1,"fff")) |
65 |
< |
syntax("Bad normal"); |
65 |
> |
syntax("bad normal"); |
66 |
|
if (!newvn(atof(argv[1]), atof(argv[2]), |
67 |
|
atof(argv[3]))) |
68 |
< |
syntax("Zero normal"); |
68 |
> |
syntax("zero normal"); |
69 |
|
break; |
70 |
< |
case 't': /* texture map */ |
70 |
> |
case 't': /* coordinate */ |
71 |
|
if (argv[0][2]) |
72 |
|
goto unknown; |
73 |
|
if (badarg(argc-1,argv+1,"ff")) |
84 |
|
faceno++; |
85 |
|
switch (argc-1) { |
86 |
|
case 0: case 1: case 2: |
87 |
< |
syntax("Too few vertices"); |
87 |
> |
syntax("too few vertices"); |
88 |
|
break; |
89 |
|
case 3: |
90 |
|
if (!puttri(argv[1], argv[2], argv[3])) |
91 |
< |
syntax("Bad triangle"); |
91 |
> |
syntax("bad triangle"); |
92 |
|
break; |
93 |
|
default: |
94 |
|
if (!putface(argc-1, argv+1)) |
95 |
< |
syntax("Bad face"); |
95 |
> |
syntax("bad face"); |
96 |
|
break; |
97 |
|
} |
98 |
|
break; |
213 |
|
int ac; |
214 |
|
register char **av; |
215 |
|
{ |
216 |
– |
VNDX vi; |
216 |
|
char *cp; |
217 |
|
register int i; |
218 |
|
|
219 |
|
while (ac > 3) { /* break into triangles */ |
220 |
|
if (!puttri(av[0], av[1], av[2])) |
222 |
– |
{ |
223 |
– |
fprintf(stderr, "f %s %s %s\n", av[0], av[1], av[2]); |
221 |
|
return(0); |
225 |
– |
} |
222 |
|
ac--; /* remove vertex & rotate */ |
223 |
|
cp = av[0]; |
224 |
|
for (i = 0; i < ac-1; i++) |
235 |
|
VNDX v1i, v2i, v3i; |
236 |
|
FLOAT *v1c, *v2c, *v3c; |
237 |
|
FLOAT *v1n, *v2n, *v3n; |
238 |
< |
|
238 |
> |
|
239 |
|
if (!cvtndx(v1i, v1) || !cvtndx(v2i, v2) || !cvtndx(v3i, v3)) |
240 |
|
return(0); |
241 |
|
|
285 |
|
else |
286 |
|
vlist = (FVECT *)realloc((char *)vlist, |
287 |
|
(nvs+CHUNKSIZ)*sizeof(FVECT)); |
288 |
< |
if (vlist == NULL) { |
289 |
< |
fprintf(stderr, |
294 |
< |
"Out of memory while allocating vertex %d\n", nvs); |
295 |
< |
exit(1); |
296 |
< |
} |
288 |
> |
if (vlist == NULL) |
289 |
> |
error(SYSTEM, "out of memory in newv"); |
290 |
|
} |
291 |
|
/* assign new vertex */ |
292 |
|
vlist[nvs][0] = x; |
306 |
|
else |
307 |
|
vnlist = (FVECT *)realloc((char *)vnlist, |
308 |
|
(nvns+CHUNKSIZ)*sizeof(FVECT)); |
309 |
< |
if (vnlist == NULL) { |
310 |
< |
fprintf(stderr, |
318 |
< |
"Out of memory while allocating normal %d\n", nvns); |
319 |
< |
exit(1); |
320 |
< |
} |
309 |
> |
if (vnlist == NULL) |
310 |
> |
error(SYSTEM, "out of memory in newvn"); |
311 |
|
} |
312 |
|
/* assign new normal */ |
313 |
|
vnlist[nvns][0] = x; |
329 |
|
else |
330 |
|
vtlist = (FLOAT (*)[2])realloc((char *)vtlist, |
331 |
|
(nvts+CHUNKSIZ)*2*sizeof(FLOAT)); |
332 |
< |
if (vtlist == NULL) { |
333 |
< |
fprintf(stderr, |
344 |
< |
"Out of memory while allocating texture vertex %d\n", |
345 |
< |
nvts); |
346 |
< |
exit(1); |
347 |
< |
} |
332 |
> |
if (vtlist == NULL) |
333 |
> |
error(SYSTEM, "out of memory in newvt"); |
334 |
|
} |
335 |
|
/* assign new vertex */ |
336 |
|
vtlist[nvts][0] = x; |
342 |
|
syntax(er) /* report syntax error and exit */ |
343 |
|
char *er; |
344 |
|
{ |
345 |
< |
fprintf(stderr, "%s: Wavefront syntax error near line %d: %s\n", |
345 |
> |
sprintf(errmsg, "%s: Wavefront syntax error near line %d: %s\n", |
346 |
|
inpfile, lineno, er); |
347 |
< |
exit(1); |
347 |
> |
error(USER, errmsg); |
348 |
|
} |