This is intersect.c in view mode; [Download] [Up]
#include "ray.h" struct intersect intersect(r) struct ray r; {struct intersect i,imin; register struct objlist *ol; register int o; imin.obj=0; if(fflag) { if(objects[r.obj].flags&SELF) { i=(*objects[r.obj].shape)(r,r.obj); if(i.obj) imin=i; } for(ol=candidates[r.obj][dindex(r.l)];ol;ol=ol->next) { if(oflag&&imin.obj&&imin.t<ol->t) break; i=(*objects[ol->obj].shape)(r,ol->obj); if(i.obj&&(!imin.obj||i.t<imin.t)) imin=i; } } else for(o=lights+1;o<maxobj;o++) { i=(*objects[o].shape)(r,o); if(i.obj&&(!imin.obj||i.t<imin.t)) imin=i; } return imin; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.