--- ray/src/hd/holo.h 1998/01/01 10:12:24 3.11 +++ ray/src/hd/holo.h 1998/01/07 21:27:29 3.14 @@ -73,9 +73,8 @@ typedef struct holo { int fd; /* file descriptor */ short dirty; /* beam index needs update to file */ double tlin; /* linear range for depth encoding */ - FVECT wn[3]; /* wall normals (derived) */ - double wg[3]; /* wall grid multipliers (derived) */ - double wo[6]; /* wall offsets (derived) */ + FVECT wg[3]; /* wall grid vectors (derived) */ + double wo[6]; /* wall grid offsets (derived) */ int wi[6]; /* wall super-indices (derived) */ char *priv; /* pointer to private client data */ BEAM **bl; /* beam pointers (memory cache) */ @@ -87,7 +86,7 @@ typedef struct { int b; /* beam index */ } HDBEAMI; /* holodeck beam index */ -#define nbeams(hp) (2*((hp)->wi[5]-1)) +#define nbeams(hp) (((hp)->wi[5]-1)<<1) #define biglob(hp) ((hp)->bi) #define blglob(hp) (*(hp)->bl) @@ -100,15 +99,19 @@ extern HOLO *hdinit(), *hdalloc(); extern BEAM *hdgetbeam(); extern RAYVAL *hdnewrays(); extern unsigned hdmemuse(); -extern long hdfiluse(), hdfilen(); +extern long hdfiluse(), hdfilen(), hdallocfrag(); extern double hdray(), hdinter(); extern unsigned hdcode(); +extern int hdfilord(); extern unsigned hdcachesize; /* target cache size (bytes) */ extern unsigned long hdclock; /* holodeck system clock */ extern HOLO *hdlist[HDMAX+1]; /* holodeck pointers (NULL term.) */ extern float hd_depthmap[]; /* depth conversion map */ + +extern int hdwg0[6]; /* wall grid 0 index */ +extern int hdwg1[6]; /* wall grid 1 index */ #define hddepth(hp,dc) ( (dc) >= DCINF ? FHUGE : \ (hp)->tlin * ( (dc) >= DCLIN ? \