--- ray/src/common/octree.h 1989/02/02 10:34:18 1.1 +++ ray/src/common/octree.h 1993/09/03 16:32:29 2.2 @@ -20,7 +20,9 @@ * < -1: it is an index to a set of objects */ -typedef int OCTREE; +#ifndef OCTREE +#define OCTREE int +#endif #define EMPTY (-1) @@ -32,7 +34,13 @@ typedef int OCTREE; #define octbi(ot) ((ot)>>8) /* octree block index */ #define octti(ot) (((ot)&0377)<<3)/* octree index in block */ +#ifndef MAXOBLK +#ifdef BIGMEM +#define MAXOBLK 16383 /* maximum octree block */ +#else #define MAXOBLK 4095 /* maximum octree block */ +#endif +#endif extern OCTREE *octblock[MAXOBLK]; /* octree blocks */ @@ -61,9 +69,16 @@ extern CUBE thescene; /* the main scene */ #define IO_FILES 010 /* object file names */ #define IO_BOUNDS 020 /* octree boundary */ #define IO_ALL (~0) /* everything */ + /* octree format identifier */ +#define OCTFMT "Radiance_octree" /* magic number for octree files */ -#define OCTMAGIC (275+sizeof(OBJECT)) +#define MAXOBJSIZ 8 /* maximum sizeof(OBJECT) */ +#define OCTMAGIC ( 4 *MAXOBJSIZ+251) /* increment first value */ /* octree node types */ #define OT_EMPTY 0 #define OT_FULL 1 #define OT_TREE 2 + /* return values for surface functions */ +#define O_MISS 0 /* no intersection */ +#define O_HIT 1 /* intersection */ +#define O_IN 2 /* cube contained entirely */