--- ray/src/util/wrapBSDF.c 2015/02/20 17:05:40 2.10
+++ ray/src/util/wrapBSDF.c 2015/04/02 16:40:32 2.14
@@ -1,5 +1,5 @@
#ifndef lint
-static const char RCSid[] = "$Id: wrapBSDF.c,v 2.10 2015/02/20 17:05:40 greg Exp $";
+static const char RCSid[] = "$Id: wrapBSDF.c,v 2.14 2015/04/02 16:40:32 greg Exp $";
#endif
/*
* Wrap BSDF data in valid WINDOW XML file
@@ -66,7 +66,8 @@ int nfield_assign = 0;
/* data file(s) & spectra */
enum { DTtransForward, DTtransBackward, DTreflForward, DTreflBackward };
-enum { DSsolar=-1, DSnir=-2, DSxbar31=-3, DSvisible=-4, DSzbar31=-5 };
+enum { DSsolar=-1, DSnir=-2, DSxbar31=-3, DSvisible=-4, DSzbar31=-5,
+ DSuprime=-6, DSvprime=-7 };
#define MAXFILES 20
@@ -159,6 +160,7 @@ input2str(const char *inpspec)
fprintf(stderr, "%s: cannot open\n", inpspec);
return "";
}
+#ifndef _WIN32 /* XXX somehow broken on Windows */
len = lseek(fd, 0L, SEEK_END);
if (len > 0) {
lseek(fd, 0L, SEEK_SET);
@@ -177,6 +179,7 @@ input2str(const char *inpspec)
close(fd);
return str;
}
+#endif
fp = fdopen(fd, "r"); /* not a regular file */
}
/* reading from stream */
@@ -442,22 +445,30 @@ writeBSDFblock(const char *caller, struct s_dfile *df)
break;
case DSxbar31:
puts("\t\tCIE-X");
- puts("\t\tSourceSpectrum>CIE Illuminant D65 1nm.ssp");
+ puts("\t\tCIE Illuminant D65 1nm.ssp");
puts("\t\tASTM E308 1931 X.dsp");
break;
case DSzbar31:
puts("\t\tCIE-Z");
- puts("\t\tSourceSpectrum>CIE Illuminant D65 1nm.ssp");
+ puts("\t\tCIE Illuminant D65 1nm.ssp");
puts("\t\tASTM E308 1931 Z.dsp");
break;
+ case DSuprime:
+ puts("\t\tCIE-u");
+ puts("\t\tCIE Illuminant D65 1nm.ssp");
+ break;
+ case DSvprime:
+ puts("\t\tCIE-v");
+ puts("\t\tCIE Illuminant D65 1nm.ssp");
+ break;
case DSsolar:
puts("\t\tSolar");
- puts("\t\tSourceSpectrum>CIE Illuminant D65 1nm.ssp");
+ puts("\t\tCIE Illuminant D65 1nm.ssp");
puts("\t\tNone");
break;
case DSnir:
puts("\t\tNIR");
- puts("\t\tSourceSpectrum>PLACE_HOLDER");
+ puts("\t\tPLACE_HOLDER");
puts("\t\tPLACE_HOLDER");
break;
default:
@@ -468,7 +479,7 @@ writeBSDFblock(const char *caller, struct s_dfile *df)
spectr_file[df->spectrum]);
if (cp != NULL)
*cp = '.';
- puts("\t\tSourceSpectrum>CIE Illuminant D65 1nm.ssp");
+ puts("\t\tCIE Illuminant D65 1nm.ssp");
printf("\t\t%s\n",
spectr_file[df->spectrum]);
break;
@@ -705,7 +716,7 @@ UsageExit(const char *pname)
{
fputs("Usage: ", stderr);
fputs(pname, stderr);
- fputs(" [-W][-a {kf|kh|kq|t3|t4}][-u unit][-g geom][-f 'x=string;y=string']", stderr);
+ fputs(" [-W][-c][-a {kf|kh|kq|t3|t4}][-u unit][-g geom][-f 'x=string;y=string']", stderr);
fputs(" [-s spectr][-tb inp][-tf inp][-rb inp][-rf inp]", stderr);
fputs(" [input.xml]\n", stderr);
exit(1);
@@ -831,6 +842,10 @@ main(int argc, char *argv[])
cur_spectrum = DSxbar31;
else if (!strcasecmp(argv[i], "CIE-Z"))
cur_spectrum = DSzbar31;
+ else if (!strcasecmp(argv[i], "CIE-u"))
+ cur_spectrum = DSuprime;
+ else if (!strcasecmp(argv[i], "CIE-v"))
+ cur_spectrum = DSvprime;
else if (!strcasecmp(argv[i], "NIR"))
cur_spectrum = DSnir;
else {