| 11 |
|
|
| 12 |
|
#include "otspecial.h" |
| 13 |
|
|
| 14 |
+ |
#include "rtotypes.h" |
| 15 |
+ |
|
| 16 |
|
#include "source.h" |
| 17 |
|
|
| 18 |
|
#define ABS(x) ((x)>0 ? (x) : -(x)) |
| 58 |
|
void /* initialize occlusion cache */ |
| 59 |
|
initobscache(int sn) |
| 60 |
|
{ |
| 61 |
< |
register SRCREC *srcp = &source[sn]; |
| 62 |
< |
int cachelen; |
| 63 |
< |
FVECT rorg, rdir; |
| 64 |
< |
RREAL d; |
| 65 |
< |
int i, j, k; |
| 66 |
< |
int ax, ax1, ax2; |
| 61 |
> |
SRCREC *srcp = &source[sn]; |
| 62 |
> |
int cachelen; |
| 63 |
> |
FVECT rorg, rdir; |
| 64 |
> |
RREAL d; |
| 65 |
> |
int i, j, k; |
| 66 |
> |
int ax=0, ax1=1, ax2=2; |
| 67 |
|
|
| 68 |
|
if (srcp->sflags & (SSKIP|SPROX|SSPOT|SVIRTUAL)) |
| 69 |
|
return; /* don't cache these */ |
| 178 |
|
|
| 179 |
|
|
| 180 |
|
static OBJECT * /* return occluder cache entry */ |
| 181 |
< |
srcobstructp(register RAY *r) |
| 181 |
> |
srcobstructp(RAY *r) |
| 182 |
|
{ |
| 183 |
< |
static unsigned long lastrno = ~0; |
| 183 |
> |
static RNUMBER lastrno = ~0; |
| 184 |
|
static OBJECT noobs; |
| 185 |
|
static OBJECT *lastobjp; |
| 186 |
|
SRCREC *srcp; |
| 200 |
|
initobscache(r->rsrc); |
| 201 |
|
/* compute cache index */ |
| 202 |
|
if (srcp->sflags & SDISTANT) { |
| 203 |
< |
int ax, ax1, ax2; |
| 203 |
> |
int ax=0, ax1=1, ax2=2; |
| 204 |
|
double t; |
| 205 |
|
ax = srcp->obscache->p.d.ax; |
| 206 |
|
if ((ax1 = ax+1) >= 3) ax1 -= 3; |
| 288 |
|
|
| 289 |
|
|
| 290 |
|
int /* record a source blocker */ |
| 291 |
< |
srcblocker(register RAY *r) |
| 291 |
> |
srcblocker(RAY *r) |
| 292 |
|
{ |
| 293 |
|
OBJREC *m; |
| 294 |
|
|
| 335 |
|
{ |
| 336 |
|
OBJECT *set2add, *oldset; |
| 337 |
|
|
| 338 |
+ |
if (m == NULL) { /* starting over */ |
| 339 |
+ |
if (antimodlist != NULL) |
| 340 |
+ |
free((void *)antimodlist); |
| 341 |
+ |
antimodlist = NULL; |
| 342 |
+ |
return; |
| 343 |
+ |
} |
| 344 |
|
m_clip(m, NULL); /* initialize modifier list */ |
| 345 |
|
if ((set2add = (OBJECT *)m->os) == NULL || !set2add[0]) |
| 346 |
|
return; |