12 |
|
#include "ray.h" |
13 |
|
#include "view.h" |
14 |
|
#include "otypes.h" |
15 |
+ |
#include "otspecial.h" |
16 |
|
#include "source.h" |
17 |
|
|
18 |
|
|
325 |
|
ap[i] += ourview.vp[i]; |
326 |
|
} |
327 |
|
} |
328 |
< |
viewloc(ip, &ourview, ap); /* find image point */ |
329 |
< |
if (ip[2] <= 0.) |
328 |
> |
/* find image point */ |
329 |
> |
if (viewloc(ip, &ourview, ap) != VL_GOOD) |
330 |
|
return(0); /* in front of view */ |
331 |
|
sp[j][0] = ip[0]; sp[j][1] = ip[1]; |
332 |
|
} |
349 |
|
if (cubeord[dir][j] & 4) ap[i] += s->ss[SW][i]; |
350 |
|
else ap[i] -= s->ss[SW][i]; |
351 |
|
} |
352 |
< |
viewloc(ip, &ourview, ap); /* find image point */ |
353 |
< |
if (ip[2] <= 0.) |
352 |
> |
/* find image point */ |
353 |
> |
if (viewloc(ip, &ourview, ap) != VL_GOOD) |
354 |
|
return(0); /* in front of view */ |
355 |
|
pt[j][0] = ip[0]; pt[j][1] = ip[1]; |
356 |
|
} |
457 |
|
/* modify pixel */ |
458 |
|
w = poly_area(ppoly, npv) * hres * vres; |
459 |
|
if (zbf[y-y0] != NULL && |
460 |
< |
sr.rt < 0.99*zbf[y-y0][x-x0]) { |
461 |
< |
zbf[y-y0][x-x0] = sr.rt; |
460 |
> |
sr.rxt < 0.99*zbf[y-y0][x-x0]) { |
461 |
> |
zbf[y-y0][x-x0] = sr.rxt; |
462 |
|
} else if (!bigdiff(sr.rcol, pic[y-y0][x-x0], |
463 |
|
0.01)) { /* source sample */ |
464 |
|
scalecolor(pic[y-y0][x-x0], w); |