39 |
|
getfunc(m, 8, 0xff, 1) ) |
40 |
|
|
41 |
|
|
42 |
< |
extern int |
42 |
> |
int |
43 |
|
m_direct( /* shade redirected ray */ |
44 |
< |
register OBJREC *m, |
45 |
< |
register RAY *r |
44 |
> |
OBJREC *m, |
45 |
> |
RAY *r |
46 |
|
) |
47 |
|
{ |
48 |
|
/* check if source ray */ |
68 |
|
) |
69 |
|
{ |
70 |
|
MFUNC *mf; |
71 |
< |
register EPNODE **va; |
71 |
> |
EPNODE **va; |
72 |
|
FVECT nsdir; |
73 |
|
RAY nr; |
74 |
|
double coef; |
75 |
< |
register int j; |
75 |
> |
int j; |
76 |
|
/* set up function */ |
77 |
|
mf = getdfunc(m); |
78 |
|
setfunc(m, r); |
79 |
|
/* assign direction variable */ |
80 |
|
if (r->rsrc >= 0) { |
81 |
< |
register SRCREC *sp = source + source[r->rsrc].sa.sv.sn; |
81 |
> |
SRCREC *sp = source + source[r->rsrc].sa.sv.sn; |
82 |
|
|
83 |
|
if (sp->sflags & SDISTANT) |
84 |
|
VCOPY(nsdir, sp->sloc); |
102 |
|
coef = evalue(va[0]); |
103 |
|
if ((errno == EDOM) | (errno == ERANGE)) |
104 |
|
goto computerr; |
105 |
< |
setcolor(nr.rcoef, coef, coef, coef); |
105 |
> |
setscolor(nr.rcoef, coef, coef, coef); |
106 |
|
if (rayorigin(&nr, TRANS, r, nr.rcoef) < 0) |
107 |
|
return(0); |
108 |
|
va++; /* compute direction */ |
121 |
|
if (r->rsrc >= 0) |
122 |
|
nr.rsrc = source[r->rsrc].sa.sv.sn; |
123 |
|
rayvalue(&nr); |
124 |
< |
multcolor(nr.rcol, nr.rcoef); |
125 |
< |
addcolor(r->rcol, nr.rcol); |
124 |
> |
smultscolor(nr.rcol, nr.rcoef); |
125 |
> |
saddscolor(r->rcol, nr.rcol); |
126 |
|
if (r->ro != NULL && isflat(r->ro->otype)) |
127 |
< |
r->rt = r->rot + nr.rt; |
127 |
> |
r->rxt = r->rot + raydistance(&nr); |
128 |
|
return(1); |
129 |
|
computerr: |
130 |
|
objerror(m, WARNING, "compute error"); |
146 |
|
EPNODE **va; |
147 |
|
FVECT cent, newdir, nv, h; |
148 |
|
double coef, olddot, newdot, od; |
149 |
< |
register int i, j; |
149 |
> |
int i, j; |
150 |
|
/* initialize test ray */ |
151 |
|
getmaxdisk(cent, o); |
152 |
|
if (s->sflags & SDISTANT) |