ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhd_qtree.h
Revision: 3.10
Committed: Wed Aug 12 17:56:26 1998 UTC (25 years, 8 months ago) by gwlarson
Content type: text/plain
Branch: MAIN
Changes since 3.9: +1 -8 lines
Log Message:
moved int2 and int4 definitions to standard.h

File Contents

# User Rev Content
1 gwlarson 3.10 /* Copyright (c) 1998 Silicon Graphics, Inc. */
2 gregl 3.1
3     /* SCCSid "$SunId$ SGI" */
4    
5     /*
6     * Quadtree data structures for holodeck display drivers.
7     */
8    
9     #include "tonemap.h"
10     #include "rhdriver.h"
11 gregl 3.7
12 gregl 3.1 #define DL 0 /* down left */
13     #define DR 1 /* down right */
14     #define UL 2 /* up left */
15     #define UR 3 /* up right */
16    
17 gregl 3.3 #define BRF(i) (0x1<<(i)) /* branch flag bit */
18     #define LFF(i) (0x10<<(i)) /* leaf flag bit */
19     #define CHF(i) (0x100<<(i)) /* change flag bit */
20     #define CHBRF(i) (0x101<<(i)) /* changed branch bit */
21     #define CHLFF(i) (0x110<<(i)) /* changed leaf bit */
22     #define BR_ANY 0xf /* flags for any branches */
23     #define LF_ANY 0xf0 /* flags for any leaves */
24     #define CH_ANY 0xf00 /* flags for any change */
25 gregl 3.1
26     typedef struct rtree {
27 gregl 3.3 short flgs; /* content flags (defined above) */
28 gregl 3.1 union {
29     struct rtree *b; /* if branch */
30 gregl 3.3 int li; /* if leaf */
31 gregl 3.1 } k[4]; /* children */
32     } RTREE;
33    
34 gregl 3.3 extern struct rleaves {
35     float (*wp)[3]; /* world intersection point array */
36 gregl 3.7 int4 *wd; /* world direction array */
37 gregl 3.3 TMbright *brt; /* encoded brightness array */
38     BYTE (*chr)[3]; /* encoded chrominance array */
39     BYTE (*rgb)[3]; /* tone-mapped color array */
40     int nl; /* count of leaves in our pile */
41     int bl, tl; /* bottom and top (next) leaf index */
42     int tml; /* next leaf needing tone-mapping */
43     char *base; /* base of allocated memory */
44     } qtL; /* our pile of leaves */
45    
46 gregl 3.5 #define is_stump(t) (!((t)->flgs & (BR_ANY|LF_ANY)))
47    
48 gregl 3.1 extern RTREE qtrunk; /* trunk of quadtree */
49     extern double qtDepthEps; /* epsilon to compare depths (z fraction) */
50     extern int qtMinNodesiz; /* minimum node dimension (pixels) */
51 gregl 3.8
52 gregl 3.9 extern int rayqleft; /* number of rays to queue before flush */
53    
54 gregl 3.8 extern int4 encodedir();
55     extern double fdir2diff(), dir2diff();