26 |
|
#include "ray.h" |
27 |
|
#include "mesh.h" |
28 |
|
#include "tmesh.h" |
29 |
+ |
#include "rtotypes.h" |
30 |
|
|
31 |
|
|
32 |
|
#define EDGE_CACHE_SIZ 251 /* length of mesh edge cache */ |
145 |
|
} |
146 |
|
|
147 |
|
|
148 |
< |
int |
149 |
< |
o_mesh(o, r) /* compute ray intersection with a mesh */ |
150 |
< |
OBJREC *o; |
151 |
< |
register RAY *r; |
148 |
> |
extern int |
149 |
> |
o_mesh( /* compute ray intersection with a mesh */ |
150 |
> |
OBJREC *o, |
151 |
> |
register RAY *r |
152 |
> |
) |
153 |
|
{ |
154 |
|
RAY rcont; |
155 |
|
int flags; |
160 |
|
/* get the mesh instance */ |
161 |
|
prep_edge_cache(o); |
162 |
|
/* copy and transform ray */ |
163 |
< |
copystruct(&rcont, r); |
163 |
> |
rcont = *r; |
164 |
|
multp3(rcont.rorg, r->rorg, curmi->x.b.xfm); |
165 |
|
multv3(rcont.rdir, r->rdir, curmi->x.b.xfm); |
166 |
|
for (i = 0; i < 3; i++) |