87 |
|
{ |
88 |
|
int retOK; |
89 |
|
SDData myBSDF; |
90 |
< |
char *pname; |
90 |
> |
char *pname, *fnbeg; |
91 |
|
/* find and load the XML file */ |
92 |
|
retOK = strlen(fname); |
93 |
|
if (retOK < 5 || strcmp(fname+retOK-4, ".xml")) { |
99 |
|
fprintf(stderr, "%s: cannot find BSDF file\n", fname); |
100 |
|
return(0); |
101 |
|
} |
102 |
+ |
fnbeg = strrchr(fname, DIRSEP); |
103 |
+ |
if (fnbeg != NULL) /* eliminate directory */ |
104 |
+ |
fname = fnbeg+1; |
105 |
|
SDclearBSDF(&myBSDF, fname); |
106 |
< |
if (SDreportEnglish(SDloadFile(&myBSDF, pname), stderr)) |
106 |
> |
if (SDreportError(SDloadFile(&myBSDF, pname), stderr)) |
107 |
|
return(0); |
108 |
|
retOK = (myBSDF.dim[0] > FTINY) & (myBSDF.dim[1] > FTINY); |
109 |
|
if (!retOK) { |
116 |
|
retOK = (freopen(rname, "w", stdout) != NULL); |
117 |
|
} |
118 |
|
if (retOK) { |
119 |
+ |
if (myBSDF.matn[0] && myBSDF.makr[0]) |
120 |
+ |
printf("# Material '%s' by '%s'\n\n", |
121 |
+ |
myBSDF.matn, myBSDF.makr); |
122 |
|
if (myBSDF.mgf == NULL) { |
123 |
|
faceBSDF(&myBSDF, .0); |
124 |
|
} else { |