+ if((hit = ray_intersect(ray, o))) {
+ it = hit;
+ while(it) {
+ if(it->end[0].t > 1e-6) {
+ idx = 0;
+ break;
+ }
+ if(it->end[1].t > 1e-6) {
+ idx = 1;
+ break;
+ }
+ it = it->next;
+ }
+
+ if(it && it->end[idx].t < best->t) {
+ *best = it->end[idx];
+ }