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

Comparing ray/src/gen/gensurf.c (file contents):
Revision 2.2 by greg, Thu Jan 30 14:11:39 1992 UTC vs.
Revision 2.3 by greg, Wed Feb 5 21:05:00 1992 UTC

# Line 165 | Line 165 | int  pointsize;
165          register FLOAT  *dp;
166  
167          datarec.flags = HASBORDER;              /* assume border values */
168 <        size = (m+1)*(n+1)*pointsize;
168 >        datarec.m = m+1;
169 >        datarec.n = n+1;
170 >        size = datarec.m*datarec.n*pointsize;
171          if (pointsize == 3)
172                  datarec.flags |= TRIPLETS;
173          dp = (FLOAT *)malloc(size*sizeof(FLOAT));
# Line 196 | Line 198 | int  pointsize;
198                  if (dp != NULL)
199                          datarec.data = dp;
200                  datarec.flags &= ~HASBORDER;
201 +                datarec.m = m;
202 +                datarec.n = n;
203                  size = 0;
204          }
205 <        if (size || fgetword(word, sizeof(word), fp) != NULL) {
205 >        if (datarec.m < 2 || datarec.n < 2 || size != 0 ||
206 >                        fgetword(word, sizeof(word), fp) != NULL) {
207                  fputs(file, stderr);
208                  fputs(": bad number of data points\n", stderr);
209                  exit(1);
# Line 218 | Line 223 | char  *nam;
223                                                  /* compute coordinates */
224          u = argument(1); v = argument(2);
225          if (datarec.flags & HASBORDER) {
226 <                i = u *= datarec.m;
227 <                j = v *= datarec.n;
226 >                i = u *= datarec.m-1;
227 >                j = v *= datarec.n-1;
228          } else {
229 <                i = u = u*(datarec.m+1) - .5;
230 <                j = v = v*(datarec.n+1) - .5;
229 >                i = u = u*datarec.m - .5;
230 >                j = v = v*datarec.n - .5;
231          }
232          if (i < 0) i = 0;
233          else if (i > datarec.m-2) i = datarec.m-2;
# Line 230 | Line 235 | char  *nam;
235          else if (j > datarec.n-2) j = datarec.n-2;
236                                                  /* compute value */
237          if (datarec.flags & TRIPLETS) {
238 <                dp = datarec.data + 3*(j*datarec.n + i);
239 <                if (nam == YNAME)
235 <                        dp++;
236 <                else if (nam == ZNAME)
238 >                dp = datarec.data + 3*(j*datarec.m + i);
239 >                if (nam == ZNAME)
240                          dp += 2;
241 +                else if (nam == YNAME)
242 +                        dp++;
243                  d00 = dp[0]; d01 = dp[3];
244 <                dp += 3*datarec.n;
244 >                dp += 3*datarec.m;
245                  d10 = dp[0]; d11 = dp[3];
246          } else {
247 <                dp = datarec.data + j*datarec.n + i;
247 >                dp = datarec.data + j*datarec.m + i;
248                  d00 = dp[0]; d01 = dp[1];
249 <                dp += datarec.n;
249 >                dp += datarec.m;
250                  d10 = dp[0]; d11 = dp[1];
251          }
252                                                  /* bilinear interpolation */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines