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.8 by gwlarson, Wed Nov 11 12:05:40 1998 UTC vs.
Revision 3.9 by gwlarson, Mon Dec 28 18:07:36 1998 UTC

# Line 20 | Line 20
20   *              < -1:   it is an index to a set of objects
21   */
22   #include "object.h"
23 + typedef struct _FUNC {
24 +    int (*func)();
25 +    int *argptr;
26 + }FUNC;
27  
28 + #define F_FUNC(f) (f.func)
29 + #define F_ARGS(f) (f.argptr)
30   #define  QUADTREE               int
31  
32   #define  EMPTY          (-1)
# Line 72 | Line 78
78   #define MAXCSET          2*QT_MAXSET
79   #define QT_MAXCSET       MAXCSET
80   #ifndef QT_SET_THRESHOLD
81 < #define QT_SET_THRESHOLD 30  
81 > #define QT_SET_THRESHOLD 64  
82   #endif
83  
84   #ifndef QT_MAX_LEVELS
85 < #define QT_MAX_LEVELS     12
85 > #define QT_MAX_LEVELS     10
86   #endif
87  
88   #define QT_FILL_THRESHOLD 2
# Line 93 | Line 99
99   #define QT_FLAG_SET_MODIFIED(f)   ((f) |= QT_MODIFIED)
100  
101   #define qtSubdivide(qt) (qt = qtAlloc(),QT_CLEAR_CHILDREN(qt))
102 < #define qtSubdivide_tri(v0,v1,v2,a,b,c) (EDGE_MIDPOINT_VEC3(a,v0,v1), \
103 <                                         EDGE_MIDPOINT_VEC3(b,v1,v2), \
104 <                                         EDGE_MIDPOINT_VEC3(c,v2,v0))
102 > #define qtSubdivide_tri(v0,v1,v2,a,b,c) (EDGE_MIDPOINT(a,v0,v1), \
103 >                                         EDGE_MIDPOINT(b,v1,v2), \
104 >                                         EDGE_MIDPOINT(c,v2,v0))
105  
106   extern QUADTREE  qtnewleaf(), qtaddelem(), qtdelelem();
107  
# Line 113 | Line 119 | extern OBJECT  *qtqueryset();
119  
120   #define qtinset(qt,id)  inset(qtqueryset(qt),id)
121   #define qtgetset(os,qt) setcopy(os,qtqueryset(qt))
122 +
123 +
124 + #define SIDES_GTR(b0,b1,b2,s0,s1,s2,a,b,c) \
125 +    (s0 = ((b0[0] > a?4:0) | (b1[0] > a?2:0) | (b2[0] > a?1:0)), \
126 +     s1 = ((b0[1] > b?4:0) | (b1[1] > b?2:0) | (b2[1] > b?1:0)), \
127 +     s2 = ((b0[2] > c?4:0) | (b1[2] > c?2:0) | (b2[2] > c?1:0)))
128 +
129 + #define SIDES_LESS(b0,b1,b2,s0,s1,s2,a,b,c) \
130 +    (s0 = ((b0[0] < a?4:0) | (b1[0] < a?2:0) | (b2[0] < a?1:0)), \
131 +     s1 = ((b0[1] < b?4:0) | (b1[1] < b?2:0) | (b2[1] < b?1:0)), \
132 +     s2 = ((b0[2] < c?4:0) | (b1[2] < c?2:0) | (b2[2] < c?1:0)))
133  
134   /*
135   QUADTREE qtRoot_point_locate(qt,q0,q1,q2,peq,pt,r0,r1,r2)

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines