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.2 by greg, Sat Oct 20 07:02:00 2012 UTC vs.
Revision 2.6 by greg, Thu Nov 8 00:31:17 2012 UTC

# Line 57 | Line 57 | typedef struct s_rbfnode {
57   #define INP_QUAD3       4               /* 180-270 degree quadrant */
58   #define INP_QUAD4       8               /* 270-360 degree quadrant */
59  
60 +                                /* active grid resolution */
61 + extern int              grid_res;
62 +                                /* coverage/symmetry using INP_QUAD? flags */
63   extern int              inp_coverage;
64  
65                                  /* all incident angles in-plane so far? */
# Line 72 | Line 75 | extern RBFNODE         *dsf_list;
75                                  /* RBF-linking matrices (edges) */
76   extern MIGRATION        *mig_list;
77  
78 <                                /* migration edges drawn in raster fashion */
79 < extern MIGRATION        *mig_grid[GRIDRES][GRIDRES];
77 <
78 < #define mtx_nrows(m)    ((m)->rbfv[0]->nrbf)
79 < #define mtx_ncols(m)    ((m)->rbfv[1]->nrbf)
78 > #define mtx_nrows(m)    (m)->rbfv[0]->nrbf
79 > #define mtx_ncols(m)    (m)->rbfv[1]->nrbf
80   #define mtx_coef(m,i,j) (m)->mtx[(i)*mtx_ncols(m) + (j)]
81   #define is_src(rbf,m)   ((rbf) == (m)->rbfv[0])
82   #define is_dest(rbf,m)  ((rbf) == (m)->rbfv[1])
# Line 91 | Line 91 | extern MIGRATION       *mig_grid[GRIDRES][GRIDRES];
91   extern char             *progname;
92  
93                                  /* get theta value in degrees [0,180) range */
94 < #define get_theta180(v) (180./M_PI)*acos((v)[2])
94 > #define get_theta180(v) ((180./M_PI)*acos((v)[2]))
95                                  /* get phi value in degrees, [0,360) range */
96 < #define get_phi360(v)   ((180./M_PI)*atan2((v)[1],(v)[0]) + 180.)
96 > #define get_phi360(v)   ((180./M_PI)*atan2((v)[1],(v)[0]) + 360.*((v)[1]<0))
97  
98                                  /* our loaded grid for this incident angle */
99   extern double           theta_in_deg, phi_in_deg;
# Line 114 | Line 114 | extern void            rev_symmetry(FVECT vec, int sym);
114   /* Reverse symmetry for an RBF distribution */
115   extern void             rev_rbf_symmetry(RBFNODE *rbf, int sym);
116  
117 + /* Rotate RBF to correspond to given incident vector */
118 + extern void             rotate_rbf(RBFNODE *rbf, const FVECT invec);
119 +
120   /* Compute volume associated with Gaussian lobe */
121   extern double           rbf_volume(const RBFVAL *rbfp);
122  
# Line 143 | Line 146 | extern int             is_rev_tri(const FVECT v1,
146   /* Find vertices completing triangles on either side of the given edge */
147   extern int              get_triangles(RBFNODE *rbfv[2], const MIGRATION *mig);
148  
149 + /* Clear our BSDF representation and free memory */
150 + extern void             clear_bsdf_rep(void);
151 +
152   /* Write our BSDF mesh interpolant out to the given binary stream */
153   extern void             save_bsdf_rep(FILE *ofp);
154  
# Line 161 | Line 167 | extern RBFNODE *       make_rbfrep(void);
167  
168   /* Build our triangle mesh from recorded RBFs */
169   extern void             build_mesh(void);
164
165 /* Draw edge list into mig_grid array */
166 extern void             draw_edges(void);
170  
171   /* Find edge(s) for interpolating the given vector, applying symmetry */
172   extern int              get_interp(MIGRATION *miga[3], FVECT invec);

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines