equal
deleted
inserted
replaced
169 # define tym st_cur->tym |
169 # define tym st_cur->tym |
170 # define tzm st_cur->tzm |
170 # define tzm st_cur->tzm |
171 |
171 |
172 int a = 0; |
172 int a = 0; |
173 Vector3 ro(ray.o); |
173 Vector3 ro(ray.o); |
174 Vector3 rdir(1.0/ray.dir.x, 1.0/ray.dir.y, 1.0/ray.dir.z); |
174 Vector3 rdir(ray.dir); |
175 |
175 |
176 if (rdir.x < 0.0) |
176 if (rdir.x < 0.0) |
177 { |
177 { |
178 ro.x = (bbox.L.x+bbox.H.x) - ro.x; |
178 ro.x = (bbox.L.x+bbox.H.x) - ro.x; |
179 rdir.x = -rdir.x; |
179 rdir.x = -rdir.x; |
189 { |
189 { |
190 ro.z = (bbox.L.z+bbox.H.z) - ro.z; |
190 ro.z = (bbox.L.z+bbox.H.z) - ro.z; |
191 rdir.z = -rdir.z; |
191 rdir.z = -rdir.z; |
192 a |= 1; |
192 a |= 1; |
193 } |
193 } |
|
194 |
|
195 if (rdir.x == 0.0) rdir.x = Eps; |
|
196 if (rdir.y == 0.0) rdir.y = Eps; |
|
197 if (rdir.z == 0.0) rdir.z = Eps; |
|
198 rdir.x = 1.0/rdir.x; |
|
199 rdir.y = 1.0/rdir.y; |
|
200 rdir.z = 1.0/rdir.z; |
194 |
201 |
195 tx0 = (bbox.L.x - ro.x) * rdir.x; |
202 tx0 = (bbox.L.x - ro.x) * rdir.x; |
196 tx1 = (bbox.H.x - ro.x) * rdir.x; |
203 tx1 = (bbox.H.x - ro.x) * rdir.x; |
197 ty0 = (bbox.L.y - ro.y) * rdir.y; |
204 ty0 = (bbox.L.y - ro.y) * rdir.y; |
198 ty1 = (bbox.H.y - ro.y) * rdir.y; |
205 ty1 = (bbox.H.y - ro.y) * rdir.y; |
199 tz0 = (bbox.L.z - ro.z) * rdir.z; |
206 tz0 = (bbox.L.z - ro.z) * rdir.z; |
200 tz1 = (bbox.H.z - ro.z) * rdir.z; |
207 tz1 = (bbox.H.z - ro.z) * rdir.z; |
201 |
208 |
202 if (max3(tx0,ty0,tz0) > min3(tx1,ty1,tz1)) |
209 if (max3(tx0,ty0,tz0) >= min3(tx1,ty1,tz1)) |
203 return NULL; |
210 return NULL; |
204 |
211 |
205 node = root; |
212 node = root; |
206 st_cur->next = -1; |
213 st_cur->next = -1; |
207 |
214 |