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

Comparing ray/src/common/objset.c (file contents):
Revision 1.1 by greg, Thu Feb 2 10:34:37 1989 UTC vs.
Revision 2.2 by greg, Thu Mar 12 11:41:18 1992 UTC

# Line 16 | Line 16 | static char SCCSid[] = "$SunId$ LBL";
16  
17   #include  "object.h"
18  
19 < #define  OSTSIZ         3037            /* object table size (a prime!) */
19 > #include  "otypes.h"
20  
21 + #ifndef  OSTSIZ
22 + #ifdef  BIGMEM
23 + #define  OSTSIZ         56437           /* object table size (a prime!) */
24 + #else
25 + #define  OSTSIZ         12329           /* object table size (a prime!) */
26 + #endif
27 + #endif
28 +
29   static OBJECT  *ostable[OSTSIZ];        /* the object set table */
30  
31  
# Line 42 | Line 50 | OBJECT  obj;
50   {
51          register int  i;
52  
53 <        for (i = (*os++)--; i > 0 && *os < obj; i--, os++)
54 <                ;
53 >        i = (*os)--;
54 >        os++;
55 >        while (i > 0 && *os < obj) {
56 >                i--;
57 >                os++;
58 >        }
59          while (--i > 0) {
60                  os[0] = os[1];
61                  os++;
# Line 173 | Line 185 | OCTREE  ot;
185          return;
186   noderr:
187          error(CONSISTENCY, "bad node in objset");
188 + }
189 +
190 +
191 + nonsurfinset(orig, nobjs)               /* check sets for non-surfaces */
192 + int  orig, nobjs;
193 + {
194 +        int  n;
195 +        register OBJECT  *os;
196 +        register OBJECT  i, s;
197 +
198 +        for (n = 0; n < OSTSIZ; n++) {
199 +                if ((os = ostable[n]) == NULL)
200 +                        continue;
201 +                while ((i = *os++) > 0)
202 +                        while (i--) {
203 +                                s = *os;
204 +                                if (s >= orig && s < orig+nobjs &&
205 +                                                ismodifier(objptr(s)->otype))
206 +                                        return(1);
207 +                                os++;
208 +                        }
209 +        }
210 +        return(0);
211   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines