ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/cv/bsdfrep.h
(Generate patch)

Comparing ray/src/cv/bsdfrep.h (file contents):
Revision 2.22 by greg, Fri Aug 22 05:38:44 2014 UTC vs.
Revision 2.23 by greg, Fri Jan 29 16:21:56 2016 UTC

# Line 34 | Line 34 | typedef union {
34  
35   typedef struct {
36          float           peak;           /* lobe value at peak */
37 +        C_CHROMA        chroma;         /* encoded chromaticity */
38          unsigned short  crad;           /* radius (coded angle) */
39 <        unsigned char   gx, gy;         /* grid position */
39 >        unsigned short  gx, gy;         /* grid position */
40   } RBFVAL;                       /* radial basis function value */
41  
42   struct s_rbfnode;               /* forward declaration of RBF struct */
# Line 82 | Line 83 | extern int             single_plane_incident;
83   extern int              input_orient;
84   extern int              output_orient;
85  
86 +                                /* represented colorimetry */
87 + typedef enum {RBCphotopic, RBCtristimulus, RBCspectral, RBCunknown} RBColor;
88 +
89 + extern RBColor          rbf_colorimetry;
90 +
91 + extern const char       *RBCident[];
92 +
93                                  /* log BSDF histogram */
94   #define HISTLEN         256
95   #define BSDF2BIG        (1./M_PI)
# Line 114 | Line 122 | extern MIGRATION       *mig_list;
122  
123   #define BSDFREP_FMT     "BSDF_RBFmesh"
124  
125 + #define BSDFREP_MAGIC   0x5a3c
126 +
127                                  /* global argv[0] */
128   extern char             *progname;
129  
# Line 125 | Line 135 | extern char            *progname;
135                                  /* our loaded grid for this incident angle */
136   extern double           theta_in_deg, phi_in_deg;
137   extern GRIDVAL          dsf_grid[GRIDRES][GRIDRES];
138 + extern float            (*spec_grid)[GRIDRES][GRIDRES];
139 + extern int              nspec_grid;
140  
141   /* Register new input direction */
142   extern int              new_input_direction(double new_theta, double new_phi);
# Line 156 | Line 168 | extern void            pos_from_vec(int pos[2], const FVECT vec)
168   /* Evaluate BSDF at the given normalized outgoing direction */
169   extern double           eval_rbfrep(const RBFNODE *rp, const FVECT outvec);
170  
171 + extern SDError          eval_rbfcol(SDValue *sv,
172 +                                        const RBFNODE *rp, const FVECT outvec);
173 +
174   /* Insert a new directional scattering function in our global list */
175   extern int              insert_dsf(RBFNODE *newrbf);
176  
# Line 182 | Line 197 | extern void            save_bsdf_rep(FILE *ofp);
197   /* Read a BSDF mesh interpolant from the given binary stream */
198   extern int              load_bsdf_rep(FILE *ifp);
199  
200 + /* Set up visible spectrum sampling */
201 + extern void             set_spectral_samples(int nspec);
202 +
203   /* Start new DSF input grid */
204   extern void             new_bsdf_data(double new_theta, double new_phi);
205  
206   /* Add BSDF data point */
207   extern void             add_bsdf_data(double theta_out, double phi_out,
208 <                                        double val, int isDSF);
208 >                                        const double val[], int isDSF);
209  
210   /* Count up filled nodes and build RBF representation from current grid */
211   extern RBFNODE *        make_rbfrep(void);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines