ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/common/octree.h
(Generate patch)

Comparing ray/src/common/octree.h (file contents):
Revision 1.5 by greg, Wed Oct 23 11:53:36 1991 UTC vs.
Revision 2.6 by greg, Tue Feb 25 02:47:21 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1986 Regents of the University of California */
2 <
3 < /* SCCSid "$SunId$ LBL" */
4 <
1 > /* RCSid $Id$ */
2   /*
3   *  octree.h - header file for routines using octrees.
7 *
8 *     7/28/85
4   */
5  
6 + #include "copyright.h"
7 +
8   /*
9   *      An octree is expressed as an integer which is either
10   *      an index to eight other nodes, the empty tree, or an index
# Line 31 | Line 28
28   #define  istree(ot)     ((ot) > EMPTY)
29  
30   #define  oseti(ot)      (-(ot)-2)       /* object set index */
31 < #define  octbi(ot)      ((ot)>>8)       /* octree block index */
32 < #define  octti(ot)      (((ot)&0377)<<3)/* octree index in block */
31 > #define  OCTBLKSIZ      04000           /* octree block size */
32 > #define  octbi(ot)      ((ot)>>11)      /* octree block index */
33 > #define  octti(ot)      (((ot)&03777)<<3)/* octree index in block */
34  
35   #ifndef  MAXOBLK
36   #ifdef  BIGMEM
37 < #define  MAXOBLK        8191            /* maximum octree block */
37 > #define  MAXOBLK        32767           /* maximum octree block */
38   #else
39   #define  MAXOBLK        4095            /* maximum octree block */
40   #endif
# Line 46 | Line 44 | extern OCTREE  *octblock[MAXOBLK];     /* octree blocks */
44  
45   #define  octkid(ot,br)  (octblock[octbi(ot)][octti(ot)+br])
46  
49 extern OCTREE  octalloc(), combine(), fullnode();
50
47   /*
48   *      The cube structure is used to hold an octree and its cubic
49   *      boundaries.
# Line 82 | Line 78 | extern CUBE  thescene;                 /* the main scene */
78   #define  O_MISS         0               /* no intersection */
79   #define  O_HIT          1               /* intersection */
80   #define  O_IN           2               /* cube contained entirely */
81 +
82 + #ifdef NOPROTO
83 +
84 + extern OCTREE   octalloc();
85 + extern void     octfree();
86 + extern void     octdone();
87 + extern OCTREE   combine();
88 + extern void     culocate();
89 + extern void     cucopy();
90 + extern int      incube();
91 +
92 + extern int      readoct();
93 +
94 + #else
95 +
96 + extern OCTREE   octalloc(void);
97 + extern void     octfree(OCTREE ot);
98 + extern void     octdone(void);
99 + extern OCTREE   combine(OCTREE ot);
100 + extern void     culocate(CUBE *cu, FVECT pt);
101 + extern void     cucopy(CUBE *cu1, CUBE *cu2);
102 + extern int      incube(CUBE *cu, FVECT pt);
103 +
104 + extern int      readoct(char *fname, int load, CUBE *scene, char *ofn[]);
105 +
106 + #endif

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines