438 |
|
{ |
439 |
|
/* check for over-counting */ |
440 |
|
if (badcomponent(m, r)) |
441 |
< |
return; |
441 |
> |
return(1); |
442 |
|
if (wrongsource(m,r)) |
443 |
< |
return; |
443 |
> |
return(1); |
444 |
|
/* check for passed illum */ |
445 |
|
if (passillum(m, r)) { |
446 |
< |
if (m->oargs.nsargs < 1 || !strcmp(m->oargs.sarg[0], VOIDID)) |
447 |
< |
raytrans(r); |
448 |
< |
else |
449 |
< |
rayshade(r, modifier(m->oargs.sarg[0])); |
450 |
< |
return; |
446 |
> |
if (m->oargs.nsargs && strcmp(m->oargs.sarg[0], VOIDID)) |
447 |
> |
return(rayshade(r, modifier(m->oargs.sarg[0]))); |
448 |
> |
raytrans(r); |
449 |
> |
return(1); |
450 |
|
} |
451 |
|
/* otherwise treat as source */ |
452 |
|
/* check for behind */ |
453 |
|
if (r->rod < 0.0) |
454 |
< |
return; |
454 |
> |
return(1); |
455 |
|
/* check for invisibility */ |
456 |
|
if (srcignore(m, r)) |
457 |
< |
return; |
457 |
> |
return(1); |
458 |
|
/* check for outside spot */ |
459 |
|
if (m->otype==MAT_SPOT && spotout(r, makespot(m), r->rot>=FHUGE)) |
460 |
< |
return; |
460 |
> |
return(1); |
461 |
|
/* get distribution pattern */ |
462 |
|
raytexture(r, m->omod); |
463 |
|
/* get source color */ |
466 |
|
m->oargs.farg[2]); |
467 |
|
/* modify value */ |
468 |
|
multcolor(r->rcol, r->pcol); |
469 |
+ |
return(1); |
470 |
|
} |