ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/Development/ray/src/rt/p_data.c
(Generate patch)

Comparing ray/src/rt/p_data.c (file contents):
Revision 2.15 by greg, Tue Mar 12 16:54:51 2024 UTC vs.
Revision 2.16 by greg, Wed Dec 17 00:45:55 2025 UTC

# Line 251 | Line 251 | p_specfile(                    /* constant spectrum from 1-D data file
251          if ((scval = (COLORV *)m->os) == NULL) {
252                  DATARRAY        *dp;
253                  COLORV          *sinp;
254 +                int             n;
255                  double          step;
255                int             i;
256                  if (m->oargs.nsargs != 1)
257                          objerror(m, USER, "bad # arguments");
258                  dp = getdata(m->oargs.sarg[0]);
259                  if (dp->nd != 1)
260                          objerror(m, USER, "data file must be 1-dimensional");
261  
262 <                sinp = (COLORV *)malloc(sizeof(COLORV)*dp->dim[0].ne);
262 >                n = (dp->dim[0].p == NULL) ? dp->dim[0].ne : 2*dp->dim[0].ne;
263 >                sinp = (COLORV *)malloc(sizeof(COLORV)*n);
264                  scval = (COLORV *)malloc(sizeof(COLORV)*NCSAMP);
265                  if ((sinp == NULL) | (scval == NULL))
266                          objerror(m, SYSTEM, "out of memory");
267 <                step = dp->dim[0].siz / (dp->dim[0].ne - 1.0);
268 <                for (i = dp->dim[0].ne; i-- > 0; ) {
269 <                        double  wl = dp->dim[0].org + i*step;
270 <                        sinp[i] = (COLORV)datavalue(dp, &wl);
267 >                step = dp->dim[0].siz / (n - 1.0);
268 >                while (n--) {
269 >                        double  wl = dp->dim[0].org + n*step;
270 >                        sinp[n] = (COLORV)datavalue(dp, &wl);
271                  }
272                  convertscolorcol(scval, sinp, dp->dim[0].ne,
273                                  dp->dim[0].org-.5*step,

Diff Legend

Removed lines
+ Added lines
< Changed lines (old)
> Changed lines (new)