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

Comparing ray/src/util/rcode_depth.c (file contents):
Revision 2.3 by greg, Fri Jul 19 01:24:33 2019 UTC vs.
Revision 2.9 by greg, Tue Feb 11 18:15:23 2020 UTC

# Line 27 | Line 27 | usage_exit(int code)
27          fputs("Usage: ", stderr);
28          fputs(progname, stderr);
29          fputs(
30 <        " [-d ref_depth/unit][-h[io]][-H[io]][-f[afd]] [input [output]]\n",
30 >        " [-d ref_depth/unit][-h[io]][-H[io]][-f[afd]][-x xr -y yr] [input [output.dpt]]\n",
31                          stderr);
32          fputs("   Or: ", stderr);
33          fputs(progname, stderr);
34          fputs(
35 <        " {-r|-p} [-i][-u][-h[io]][-H[io]][-f[afd]] [input [output]]\n",
35 >        " {-r|-p} [-i][-u][-h[io]][-H[io]][-f[afd]] [input.dpt [output]]\n",
36                          stderr);
37          exit(code);
38   }
# Line 45 | Line 45 | encode_depths(DEPTHCODEC *dcp)
45          long    nexpected = (long)dcp->res.xr * dcp->res.yr;
46  
47          if (dcp->inpfmt[0]) {
48 <                if (strcasestr(dcp->inpfmt, "ascii") != NULL)
48 >                if (strstr(dcp->inpfmt, "ascii") != NULL)
49                          dcp->format = 'a';
50 <                else if (strcasestr(dcp->inpfmt, "float") != NULL)
50 >                else if (strstr(dcp->inpfmt, "float") != NULL)
51                          dcp->format = 'f';
52 <                else if (strcasestr(dcp->inpfmt, "double") != NULL)
52 >                else if (strstr(dcp->inpfmt, "double") != NULL)
53                          dcp->format = 'd';
54                  else {
55                          fputs(dcp->inpname, stderr);
# Line 71 | Line 71 | encode_depths(DEPTHCODEC *dcp)
71                          break;
72                  case 'f':
73                          ok = (getbinary(&f, sizeof(f), 1, dcp->finp) == 1);
74 +                        if (dcp->swapped)
75 +                                swap32((char *)&f, 1);
76                          d = f;
77                          break;
78                  case 'd':
79                          ok = (getbinary(&d, sizeof(d), 1, dcp->finp) == 1);
80 +                        if (dcp->swapped)
81 +                                swap64((char *)&d, 1);
82                          break;
83                  }
84                  if (!ok)
# Line 277 | Line 281 | pixel_points(DEPTHCODEC *dcp, int unbuf)
281   int
282   main(int argc, char *argv[])
283   {
284 +        int             xres=0, yres=0;
285          int             conversion = CV_FWD;
286          int             bypixel = 0;
287          int             unbuffered = 0;
# Line 350 | Line 355 | main(int argc, char *argv[])
355                                  usage_exit(1);
356                          }
357                          break;
358 +                case 'x':
359 +                        xres = atoi(argv[++a]);
360 +                        break;
361 +                case 'y':
362 +                        yres = atoi(argv[++a]);
363 +                        break;
364                  case 'i':
365                          bypixel++;
366                          break;
# Line 361 | Line 372 | main(int argc, char *argv[])
372                  }
373          dc.hdrflags |= (conversion == CV_FWD) * HF_ENCODE;
374  
375 <        if ((dc.hdrflags & (HF_RESIN|HF_RESOUT)) == HF_RESOUT) {
375 >        if ((xres > 0) & (yres > 0)) {
376 >                dc.hdrflags &= ~HF_RESIN;
377 >                dc.res.rt = PIXSTANDARD;
378 >                dc.res.xr = xres;
379 >                dc.res.yr = yres;
380 >        } else if ((dc.hdrflags & (HF_RESIN|HF_RESOUT)) == HF_RESOUT) {
381                  fputs(progname, stderr);
382                  fputs(": unknown resolution for output\n", stderr);
383                  return 1;
# Line 383 | Line 399 | main(int argc, char *argv[])
399                          fputs(": -i option requires input resolution\n", stderr);
400                          usage_exit(1);
401                  }
402 <                dc.hdrflags &= ~(HF_HEADOUT|HF_RESOUT);
402 >                dc.hdrflags &= ~HF_RESOUT;
403          }
404          if (a < argc-2) {
405                  fputs(progname, stderr);
# Line 413 | Line 429 | main(int argc, char *argv[])
429                                          /* process data */
430          switch (conversion) {
431          case CV_FWD:                    /* distance -> depth code */
432 +                if (!strcmp(dc.depth_unit, "1")) {
433 +                        fputs(progname, stderr);
434 +                        fputs(": warning - using reference depth of 1.0\n",
435 +                                        stderr);
436 +                }
437                  if (!encode_depths(&dc))
438                          return 1;
439                  break;

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines