This is dindex.c in view mode; [Download] [Up]
#include "ray.h" dindex(v) struct vector v; {double x,y,z,ax,ay,az; x=v.x; y=v.y; z=v.z; ax=(x>0)?x:-x; ay=(y>0)?y:-y; az=(z>0)?z:-z; if(ax>=ay&&ax>=az) if(x>0) return index2(y,z,ax); else return index2(y,z,ax)+(NRECTS*NRECTS); else if(ay>=ax&&ay>=az) if(y>0) return index2(z,x,ay)+(2*NRECTS*NRECTS); else return index2(z,x,ay)+(3*NRECTS*NRECTS); else if(z>0) return index2(x,y,az)+(4*NRECTS*NRECTS); else return index2(x,y,az)+(5*NRECTS*NRECTS); } index2(x,y,r) double r,x,y; {register int m,n; m=(r+x)/(r*2)*NRECTS; if(m==NRECTS) m=NRECTS-1; n=(r+y)/(r*2)*NRECTS; if(n==NRECTS) n=NRECTS-1; return n*NRECTS+m; }
These are the contents of the former NiCE NeXT User Group NeXTSTEP/OpenStep software archive, currently hosted by Netfuture.ch.