| 171 |
|
} |
| 172 |
|
/* load geometry if present */ |
| 173 |
|
lastErr = SDloadGeometry(sd, ezxml_child(wtl, "Material")); |
| 174 |
< |
if (lastErr) |
| 174 |
> |
if (lastErr) { |
| 175 |
> |
ezxml_free(fl); |
| 176 |
|
return lastErr; |
| 177 |
+ |
} |
| 178 |
|
/* try loading variable resolution data */ |
| 179 |
|
lastErr = SDloadTre(sd, wtl); |
| 180 |
|
/* check our result */ |
| 252 |
|
return; |
| 253 |
|
SDfreeCumulativeCache(df); |
| 254 |
|
for (n = df->ncomp; n-- > 0; ) |
| 255 |
< |
(*df->comp[n].func->freeSC)(df->comp[n].dist); |
| 255 |
> |
if (df->comp[n].dist != NULL) |
| 256 |
> |
(*df->comp[n].func->freeSC)(df->comp[n].dist); |
| 257 |
|
free(df); |
| 258 |
|
} |
| 259 |
|
|
| 425 |
|
cd = (*sdc->func->getCDist)(inVec, sdc); |
| 426 |
|
if (cd == NULL) |
| 427 |
|
return SDEmemory; |
| 428 |
< |
if (cd->cTotal <= 1e-7) { /* anything to sample? */ |
| 428 |
> |
if (cd->cTotal <= 1e-6) { /* anything to sample? */ |
| 429 |
|
sv->spec = c_dfcolor; |
| 430 |
|
sv->cieY = .0; |
| 431 |
|
memset(ioVec, 0, 3*sizeof(double)); |
| 687 |
|
} |
| 688 |
|
sv->cieY += cdarr[i]->cTotal; |
| 689 |
|
} |
| 690 |
< |
if (sv->cieY <= 1e-7) { /* anything to sample? */ |
| 690 |
> |
if (sv->cieY <= 1e-6) { /* anything to sample? */ |
| 691 |
|
sv->cieY = .0; |
| 692 |
|
memset(ioVec, 0, 3*sizeof(double)); |
| 693 |
|
return SDEnone; |
| 1326 |
|
error(WARNING, errmsg); |
| 1327 |
|
ezxml_free(fl); |
| 1328 |
|
return(NULL); |
| 1329 |
< |
} |
| 1330 |
< |
load_angle_basis(ezxml_child(ezxml_child(wtl, |
| 1331 |
< |
"DataDefinition"), "AngleBasis")); |
| 1329 |
> |
} |
| 1330 |
> |
for (wld = ezxml_child(ezxml_child(wtl, |
| 1331 |
> |
"DataDefinition"), "AngleBasis"); |
| 1332 |
> |
wld != NULL; wld = wld->next) |
| 1333 |
> |
load_angle_basis(wld); |
| 1334 |
|
dp = (struct BSDF_data *)calloc(1, sizeof(struct BSDF_data)); |
| 1335 |
|
load_geometry(dp, ezxml_child(wtl, "Material")); |
| 1336 |
|
for (wld = ezxml_child(wtl, "WavelengthData"); |