ViewVC Help
View File | Revision Log | Show Annotations | Download File | Root Listing
root/radiance/ray/src/rt/ambio.c
(Generate patch)

Comparing ray/src/rt/ambio.c (file contents):
Revision 2.12 by greg, Fri Jan 27 22:00:49 2017 UTC vs.
Revision 2.13 by greg, Tue May 14 17:39:10 2019 UTC

# Line 39 | Line 39 | FILE  *fp;
39   }
40  
41  
42 #ifndef OLDAMB
43
42   #define  putpos(v,fp)   putflt((v)[0],fp);putflt((v)[1],fp);putflt((v)[2],fp)
43  
44   #define  getpos(v,fp)   (v)[0]=getflt(fp);(v)[1]=getflt(fp);(v)[2]=getflt(fp)
# Line 121 | Line 119 | readambval(                    /* read ambient value from stream */
119          av->corral = (uint32)getint(sizeof(av->corral), fp);
120          return(feof(fp) ? 0 : ambvalOK(av));
121   }
124
125
126 #else /* ! NEWAMB */
127
128
129 #define  putvec(v,fp)   putflt((v)[0],fp);putflt((v)[1],fp);putflt((v)[2],fp)
130
131 #define  getvec(v,fp)   (v)[0]=getflt(fp);(v)[1]=getflt(fp);(v)[2]=getflt(fp)
132
133
134 int
135 writambval(av, fp)              /* write ambient value to stream */
136 AMBVAL  *av;
137 FILE  *fp;
138 {
139        COLR  clr;
140
141        putint(av->lvl, 1, fp);
142        putflt(av->weight, fp);
143        putvec(av->pos, fp);
144        putvec(av->dir, fp);
145        setcolr(clr, colval(av->val,RED),
146                        colval(av->val,GRN), colval(av->val,BLU));
147        putbinary((char *)clr, sizeof(clr), 1, fp);
148        putflt(av->rad, fp);
149        putvec(av->gpos, fp);
150        putvec(av->gdir, fp);
151        return(ferror(fp) ? -1 : 0);
152 }
153
154
155 int
156 ambvalOK(av)                    /* check consistency of ambient value */
157 AMBVAL  *av;
158 {
159        double  d;
160
161        if (badvec(av->pos)) return(0);
162        if (badvec(av->dir)) return(0);
163        d = DOT(av->dir,av->dir);
164        if (d < 0.9999 || d > 1.0001) return(0);
165        if (av->lvl < 0 || av->lvl > 100) return(0);
166        if (av->weight <= 0. || av->weight > 1.) return(0);
167        if (av->rad <= 0. || av->rad >= FHUGE) return(0);
168        if (colval(av->val,RED) < 0. ||
169                        colval(av->val,RED) > FHUGE ||
170                        colval(av->val,GRN) < 0. ||
171                        colval(av->val,GRN) > FHUGE ||
172                        colval(av->val,BLU) < 0. ||
173                        colval(av->val,BLU) > FHUGE) return(0);
174        if (badvec(av->gpos)) return(0);
175        if (badvec(av->gdir)) return(0);
176        return(1);
177 }
178
179
180 int
181 readambval(av, fp)              /* read ambient value from stream */
182 AMBVAL  *av;
183 FILE  *fp;
184 {
185        COLR  clr;
186
187        av->lvl = getint(1, fp);
188        if (feof(fp))
189                return(0);
190        av->weight = getflt(fp);
191        getvec(av->pos, fp);
192        getvec(av->dir, fp);
193        if (getbinary((char *)clr, sizeof(clr), 1, fp) != 1)
194                return(0);
195        colr_color(av->val, clr);
196        av->rad = getflt(fp);
197        getvec(av->gpos, fp);
198        getvec(av->gdir, fp);
199        return(feof(fp) ? 0 : ambvalOK(av));
200 }
201
202 #endif  /* ! NEWAMB */

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines