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

Comparing ray/src/ot/obj2mesh.c (file contents):
Revision 2.1 by greg, Tue Mar 11 17:08:55 2003 UTC vs.
Revision 2.2 by greg, Wed Mar 12 04:59:04 2003 UTC

# Line 138 | Line 138 | addface(cu, obj)                       /* add a face to a cube */
138   register CUBE  *cu;
139   OBJECT  obj;
140   {
141        CUBE  cukid;
142        OCTREE  ot;
143        OBJECT  oset[MAXSET+1];
144        register int  i, j;
141  
142          if (o_face(objptr(obj), cu) == O_MISS)
143                  return;
144  
145          if (istree(cu->cutree)) {
146 <                                                /* do children */
146 >                CUBE  cukid;                    /* do children */
147 >                int  i, j;
148                  cukid.cusize = cu->cusize * 0.5;
149                  for (i = 0; i < 8; i++) {
150                          cukid.cutree = octkid(cu->cutree, i);
# Line 162 | Line 159 | OBJECT obj;
159                  return;
160          }
161          if (isempty(cu->cutree)) {
162 <                                                /* singular set */
162 >                OBJECT  oset[2];                /* singular set */
163                  oset[0] = 1; oset[1] = obj;
164                  cu->cutree = fullnode(oset);
165                  return;
166          }
167                                          /* add to full node */
168 +        add2full(cu, obj);
169 + }
170 +
171 +
172 + add2full(cu, obj)                       /* add object to full node */
173 + register CUBE  *cu;
174 + OBJECT  obj;
175 + {
176 +        OCTREE  ot;
177 +        OBJECT  oset[MAXSET+1];
178 +        CUBE  cukid;
179 +        register int  i, j;
180 +
181          objset(oset, cu->cutree);
182          cukid.cusize = cu->cusize * 0.5;
183  
184          if (oset[0] < objlim || cukid.cusize < mincusize) {
185                                                  /* add to set */
186                  if (oset[0] >= MAXSET) {
187 <                        sprintf(errmsg, "set overflow in addface (%s)",
187 >                        sprintf(errmsg, "set overflow in addobject (%s)",
188                                          objptr(obj)->oname);
189                          error(INTERNAL, errmsg);
190                  }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines