| 39 |
|
* Stuff for tracking and reusing vertices: |
| 40 |
|
*/ |
| 41 |
|
|
| 42 |
< |
char VKFMT[] = "%+1.9e %+1.9e %+1.9e"; |
| 42 |
> |
char VKFMT[] = "%+16.9e %+16.9e %+16.9e"; |
| 43 |
|
#define VKLEN 64 |
| 44 |
|
|
| 45 |
|
#define mkvkey(k,v) sprintf(k, VKFMT, (v)[0], (v)[1], (v)[2]) |
| 46 |
|
|
| 47 |
|
#define NVERTS 256 |
| 48 |
|
|
| 49 |
< |
long clock; /* incremented at each vertex request */ |
| 49 |
> |
long vclock; /* incremented at each vertex request */ |
| 50 |
|
|
| 51 |
|
struct vert { |
| 52 |
|
long lused; /* when last used (0 if unassigned) */ |
| 343 |
|
char *vname; |
| 344 |
|
FVECT vp; |
| 345 |
|
{ |
| 346 |
< |
char vkey[VKLEN]; |
| 346 |
> |
static char vkey[VKLEN]; |
| 347 |
|
register LUENT *lp; |
| 348 |
|
register int i, vndx; |
| 349 |
|
|
| 350 |
< |
clock++; /* increment counter */ |
| 350 |
> |
vclock++; /* increment counter */ |
| 351 |
|
mkvkey(vkey, vp); |
| 352 |
|
if ((lp = lu_find(&vertab, vkey)) == NULL) |
| 353 |
|
goto memerr; |
| 373 |
|
lp->data = (char *)&vert[vndx]; /* set it */ |
| 374 |
|
} else |
| 375 |
|
vndx = (struct vert *)lp->data - vert; |
| 376 |
< |
vert[vndx].lused = clock; /* record this use */ |
| 376 |
> |
vert[vndx].lused = vclock; /* record this use */ |
| 377 |
|
sprintf(vname, "v%d", vndx); |
| 378 |
|
return(vname); |
| 379 |
|
memerr: |