8 |
|
*/ |
9 |
|
|
10 |
|
#include <stdlib.h> |
11 |
+ |
#include <ctype.h> |
12 |
|
#include "platform.h" |
13 |
|
#include "rtio.h" |
14 |
|
#include "rtmath.h" |
23 |
|
|
24 |
|
#define SURF_EPS 0.0005 /* surface testing epsilon */ |
25 |
|
|
25 |
– |
char *progname; /* global argv[0] */ |
26 |
– |
|
26 |
|
int nsamps = NSAMPLES; /* number of samples to use */ |
27 |
|
|
28 |
|
char temp_octree[128]; /* temporary octree */ |
39 |
|
#define NAME_FLD 1 /* name field always first? */ |
40 |
|
|
41 |
|
#define SS_BASE_FLD 4 /* subsurface base surface */ |
42 |
< |
#define SS_VERT_FLD 10 /* subsurface vertex count */ |
42 |
> |
#define SS_VERT_FLD 9 /* subsurface vertex count */ |
43 |
|
|
44 |
|
typedef struct { |
45 |
|
const char *pname; /* object type name */ |
203 |
|
} |
204 |
|
res = idf_getfield(param, surf_type[i].vert_fld); |
205 |
|
} |
206 |
< |
if (!res->val[0]) { /* hack for missing #vert */ |
206 |
> |
if (!res->val[0] || tolower(res->val[0]) == 'a') { /* autocalculate */ |
207 |
|
IDF_FIELD *fptr; |
208 |
|
if (next_fbp >= fld_buf+sizeof(fld_buf)) |
209 |
|
next_fbp = fld_buf; |
532 |
|
dv[2]*ps->sdir[2][j] ; |
533 |
|
} |
534 |
|
/* send to our process */ |
535 |
< |
writebuf(ps->wd, (char *)samp, sizeof(float)*6*ns); |
535 |
> |
writebuf(ps->wd, samp, sizeof(float)*6*ns); |
536 |
|
free(samp); /* that's it! */ |
537 |
|
return(1); |
538 |
|
} |
603 |
|
else /* comp. for subsurface area */ |
604 |
|
adj_factor /= adj_factor - zp->area_redu[n]; |
605 |
|
/* read results */ |
606 |
< |
if (readbuf(pd->r, (char *)uvfa, sizeof(float)*3*zp->ntotal) != |
606 |
> |
if (readbuf(pd->r, uvfa, sizeof(float)*3*zp->ntotal) != |
607 |
|
sizeof(float)*3*zp->ntotal) { |
608 |
|
fputs(progname, stderr); |
609 |
|
fputs(": read error from rcontrib process\n", stderr); |
653 |
|
for (zptr = zone_list; zptr != NULL; zptr = zptr->next) { |
654 |
|
SUBPROC rcproc; |
655 |
|
/* start rcontrib process */ |
656 |
+ |
rcproc = sp_inactive; |
657 |
|
if (!start_rcontrib(&rcproc, zptr)) |
658 |
|
return(0); |
659 |
|
/* compute+add view factors */ |
678 |
|
IDF_OBJECT *pptr; |
679 |
|
int i; |
680 |
|
|
681 |
< |
progname = *argv++; argc--; /* get options if any */ |
681 |
> |
fixargv0(*argv++); argc--; /* get options if any */ |
682 |
|
while (argc > 1 && argv[0][0] == '-') |
683 |
|
switch (argv[0][1]) { |
684 |
|
case 'c': /* elide comments */ |
711 |
|
} |
712 |
|
/* check version (warning) */ |
713 |
|
if ((pptr = idf_getobject(our_idf, "Version")) != NULL && |
714 |
< |
pptr->flist != NULL && atoi(pptr->flist->val) != 7) { |
714 |
> |
pptr->flist != NULL && pptr->flist->val[0] != '9') { |
715 |
|
fputs(progname, stderr); |
716 |
< |
fputs(": warning - written for IDF version 7.x, not ", |
716 |
> |
fputs(": warning - written for IDF version 9.x, not ", |
717 |
|
stderr); |
718 |
|
fputs(pptr->flist->val, stderr); |
719 |
|
fputc('\n', stderr); |