59 |
|
|
60 |
|
static int |
61 |
|
volume_sign(r, v1, v2) /* get signed volume for ray and edge */ |
62 |
< |
register RAY *r; |
62 |
> |
RAY *r; |
63 |
|
int32 v1, v2; |
64 |
|
{ |
65 |
< |
int reversed = 0; |
66 |
< |
register struct EdgeSide *ecp; |
65 |
> |
int reversed = 0; |
66 |
> |
struct EdgeSide *ecp; |
67 |
|
|
68 |
|
if (v1 > v2) { |
69 |
|
int32 t = v2; v2 = v1; v1 = t; |
113 |
|
"missing triangle vertices in mesh_hit"); |
114 |
|
sv1 = volume_sign(r, tvi[0], tvi[1]); |
115 |
|
sv2 = volume_sign(r, tvi[1], tvi[2]); |
116 |
+ |
if (sv1 != sv2) /* compare volume signs */ |
117 |
+ |
continue; |
118 |
|
sv3 = volume_sign(r, tvi[2], tvi[0]); |
119 |
< |
/* compare volume signs */ |
118 |
< |
if ((sv1 != sv2) | (sv2 != sv3)) |
119 |
> |
if (sv2 != sv3) |
120 |
|
continue; |
121 |
|
/* compute intersection */ |
122 |
|
getmeshvert(&tv[0], curmsh, tvi[0], MT_V); |
142 |
|
} |
143 |
|
|
144 |
|
|
145 |
< |
extern int |
145 |
> |
int |
146 |
|
o_mesh( /* compute ray intersection with a mesh */ |
147 |
|
OBJREC *o, |
148 |
< |
register RAY *r |
148 |
> |
RAY *r |
149 |
|
) |
150 |
|
{ |
151 |
|
RAY rcont; |