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

Comparing ray/src/hd/sm_qtree.h (file contents):
Revision 3.10 by gwlarson, Tue Jan 5 16:52:39 1999 UTC vs.
Revision 3.16 by schorsch, Mon Jul 14 22:24:00 2003 UTC

# Line 1 | Line 1
1 < /* Copyright (c) 1998 Silicon Graphics, Inc. */
2 <
3 < /* SCCSid "$SunId$ SGI" */
4 <
1 > /* RCSid: $Id$ */
2   /*
3   *  sm_qtree.h - header file for routines using spherical quadtrees.
4   *
5   *    adapted from octree.h
6   */
7 + #ifndef _RAD_CONE_H_
8 + #define _RAD_CONE_H_
9  
10 + #ifdef __cplusplus
11 + extern "C" {
12 + #endif
13 +
14   /*
15   *      An quadtree is expressed as an integer which is either
16   *      an index to 4 other nodes, the empty tree, or an index
# Line 19 | Line 22
22   *
23   *              < -1:   it is an index to a set of objects
24   */
25 < #include "object.h"
25 >
26   typedef struct _FUNC {
27      int (*func)();
28 +    int (*func_after)();
29      int *argptr;
30   }FUNC;
31  
32   #define F_FUNC(f) (f.func)
33 + #define F_FUNC2(f) (f.func_after)
34   #define F_ARGS(f) (f.argptr)
35   #define  QUADTREE               int
36  
# Line 43 | Line 48 | typedef struct _FUNC {
48  
49  
50   #ifndef  QT_MAX_BLK
51 < #ifdef  BIGMEM
47 < #define  QT_MAX_BLK     16383           /* maximum quadtree block */
48 < #else
51 > #ifdef  SMLMEM
52   #define  QT_MAX_BLK     2047            /* maximum quadtree block */
53 + #else
54 + #define  QT_MAX_BLK     16383           /* maximum quadtree block */
55   #endif
56   #endif
57  
# Line 70 | Line 75 | typedef struct _FUNC {
75   #define QT_SET_NTH_ELEM(s,n)   ((s)[(n)])  
76  
77   #define QT_CLEAR_SET(s)        ((s)[0] = 0)
78 < #define QT_SET_NEXT_ELEM(p)    (*(p)++)
78 > #define QT_SET_NEXT_ELEM(p)    (*(++p))
79   #define QT_SET_PTR(s)          (&((s)[1]))
80  
81  
# Line 78 | Line 83 | typedef struct _FUNC {
83   #define MAXCSET          2*QT_MAXSET
84   #define QT_MAXCSET       MAXCSET
85   #ifndef QT_SET_THRESHOLD
86 < #define QT_SET_THRESHOLD 64  
86 > #define QT_SET_THRESHOLD 32  
87   #endif
88  
89   #ifndef QT_MAX_LEVELS
# Line 106 | Line 111 | typedef struct _FUNC {
111   extern QUADTREE  qtnewleaf(), qtaddelem(), qtdelelem();
112  
113   extern QUADTREE  *quad_block[QT_MAX_BLK];       /* quadtree blocks */
114 < extern int4  *quad_flag;                        /* zeroeth quadtree flag */
114 > extern int32  *quad_flag;                       /* zeroeth quadtree flag */
115  
116   extern OBJECT   **qtsettab;             /* quadtree leaf node table */
117   extern QUADTREE  qtnumsets;             /* number of used set indices */
118 < extern int4   *qtsetflag;
118 > extern int32   *qtsetflag;
119   #ifdef DEBUG
120   extern OBJECT   *qtqueryset();
121   #else
122   #define qtqueryset(qt)  (qtsettab[QT_SET_INDEX(qt)])
123   #endif
124 <
124 > #if 0
125 > #define qtremovelast(qt) ((*(qtqueryset(qt)))--)
126 > #endif
127   #define qtinset(qt,id)  inset(qtqueryset(qt),id)
128   #define qtgetset(os,qt) setcopy(os,qtqueryset(qt))
129  
# Line 150 | Line 157 | extern QUADTREE qtRoot_remove_tri();
157   extern QUADTREE qtAdd_tri();
158   extern QUADTREE qtRoot_visit_tri_edges();
159   extern QUADTREE qtRoot_trace_ray();
160 +
161 +
162 + #ifdef __cplusplus
163 + }
164 + #endif
165 + #endif /* _RAD_CONE_H_ */
166 +

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines