ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/hd/rhd_qtree.h
Revision: 3.4
Committed: Mon Nov 24 15:15:21 1997 UTC (26 years, 4 months ago) by gregl
Content type: text/plain
Branch: MAIN
Changes since 3.3: +0 -4 lines
Log Message:
moved LFREEPCT to rhd_qtree.c and changed from 15% to 25%

File Contents

# Content
1 /* Copyright (c) 1997 Silicon Graphics, Inc. */
2
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 /* child ordering */
12 #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 #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
26 typedef struct rtree {
27 short flgs; /* content flags (defined above) */
28 union {
29 struct rtree *b; /* if branch */
30 int li; /* if leaf */
31 } k[4]; /* children */
32 } RTREE;
33
34 extern struct rleaves {
35 float (*wp)[3]; /* world intersection point array */
36 TMbright *brt; /* encoded brightness array */
37 BYTE (*chr)[3]; /* encoded chrominance array */
38 BYTE (*rgb)[3]; /* tone-mapped color array */
39 int nl; /* count of leaves in our pile */
40 int bl, tl; /* bottom and top (next) leaf index */
41 int tml; /* next leaf needing tone-mapping */
42 char *base; /* base of allocated memory */
43 } qtL; /* our pile of leaves */
44
45 extern RTREE qtrunk; /* trunk of quadtree */
46 extern double qtDepthEps; /* epsilon to compare depths (z fraction) */
47 extern int qtMinNodesiz; /* minimum node dimension (pixels) */
48
49
50 /************************************************************************
51 * These driver support routines implement the dev_value() call, but
52 * require the following callbacks:
53
54 dev_paintr(rgb, x0, y0, x1, y1) : paint a rectangle
55 BYTE rgb[3]; : rectangle color
56 int x0, y0, x1, y1; : rectangle boundaries
57
58 Draws an open rectangle between [x0,x1) and [y0,y1) with the color rgb.
59 This function is called many times by qtUpdate(), qtRedraw() and qtReplant().
60
61 ************************************************************************/