| 25 |
|
|
| 26 |
|
#include "fvect.h" |
| 27 |
|
#include "ccolor.h" |
| 28 |
+ |
#include "platform.h" |
| 29 |
|
|
| 30 |
|
#ifdef __cplusplus |
| 31 |
|
extern "C" { |
| 32 |
|
#endif |
| 33 |
|
|
| 33 |
– |
#ifdef _WIN32 |
| 34 |
– |
#define strcasecmp stricmp |
| 35 |
– |
#endif |
| 36 |
– |
|
| 34 |
|
#define SDnameLn 128 /* maximum BSDF name length */ |
| 35 |
|
#define SDmaxCh 3 /* maximum # spectral channels */ |
| 36 |
|
|
| 84 |
|
typedef struct SDComp_s SDComponent; |
| 85 |
|
|
| 86 |
|
/* Methods needed to handle BSDF components (nothing is optional) */ |
| 87 |
+ |
#ifdef __cplusplus |
| 88 |
+ |
/* in C++, the const puts the type into the local anonymous namespace, |
| 89 |
+ |
making it a private (and different) type for each file using this header. |
| 90 |
+ |
*/ |
| 91 |
+ |
typedef struct { |
| 92 |
+ |
#else |
| 93 |
|
typedef const struct { |
| 94 |
+ |
#endif |
| 95 |
|
/* return non-diffuse BSDF */ |
| 96 |
|
int (*getBSDFs)(float coef[SDmaxCh], const FVECT outVec, |
| 97 |
|
const FVECT inVec, SDComponent *sdc); |
| 130 |
|
char matn[SDnameLn]; /* material name */ |
| 131 |
|
char makr[SDnameLn]; /* manufacturer */ |
| 132 |
|
char *mgf; /* geometric description (if any) */ |
| 133 |
< |
float dim[3]; /* width, height, thickness (meters) */ |
| 133 |
> |
double dim[3]; /* width, height, thickness (meters) */ |
| 134 |
|
SDValue rLambFront; /* diffuse front reflectance */ |
| 135 |
|
SDValue rLambBack; /* diffuse rear reflectance */ |
| 136 |
|
SDValue tLamb; /* diffuse transmission */ |