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

Comparing ray/src/cv/lampcolor.c (file contents):
Revision 1.2 by greg, Thu Sep 5 15:09:08 1991 UTC vs.
Revision 1.6 by greg, Thu Sep 12 13:36:43 1991 UTC

# Line 49 | Line 49 | or \"ring\".  These may be abbreviated as a single let
49          { "total lamp lumens", "0", outpcheck,
50   "This is the overall light output of the lamp and its fixture.  If you do\n\
51   not know this value explicitly, you can compute the approximate lumens\n\
52 < by multiplying the input wattage by 15 for incandescent fixtures or 40\n\
52 > by multiplying the input wattage by 14 for incandescent fixtures or 70\n\
53   for fluorescent fixtures." },
54   };
55  
# Line 182 | Line 182 | compute()                      /* compute lamp radiance */
182   }
183  
184  
185 < getd(dp)                        /* get a positive double from stdin */
185 > getd(name, dp, help)            /* get a positive double from stdin */
186 > char    *name;
187   double  *dp;
188 + char    *help;
189   {
190          char    buf[32];
191 <
191 > again:
192 >        printf("%s [%g]: ", name, *dp);
193          if (gets(buf) == NULL)
194                  return(0);
195 +        if (buf[0] == '?') {
196 +                puts(help);
197 +                goto again;
198 +        }
199          if ((buf[0] < '0' || buf[0] > '9') && buf[0] != '.')
200                  return(0);
201          *dp = atof(buf);
# Line 198 | Line 205 | double *dp;
205  
206   getpolygon()                    /* get projected area for a polygon */
207   {
208 <        printf("Enter area of polygon: ");
209 <        if (!getd(&projarea))
210 <                return(0);
211 <        projarea *= unit2meter*unit2meter;
212 <        projarea *= PI;
208 >        static double   area = 1.0;
209 >
210 >        getd("Polygon area", &area,
211 >                "Enter the total radiating area of the polygon.");
212 >        projarea = PI*unit2meter*unit2meter * area;
213          return(1);
214   }
215  
216  
217   getsphere()                     /* get projected area for a sphere */
218   {
219 <        double  radius;
219 >        static double   radius = 1.0;
220  
221 <        printf("Enter sphere radius: ");
222 <        if (!getd(&radius))
223 <                return(0);
217 <        radius *= unit2meter;
218 <        projarea = 4.*PI*PI*radius*radius;
221 >        getd("Sphere radius", &radius,
222 >                "Enter the distance from the sphere's center to its surface.");
223 >        projarea = 4.*PI*PI*unit2meter*unit2meter * radius*radius;
224          return(1);
225   }
226  
227  
228   getcylinder()                   /* get projected area for a cylinder */
229   {
230 <        double  length, radius;
230 >        static double   length = 1.0, radius = 0.1;
231  
232 <        printf("Enter cylinder length: ");
233 <        if (!getd(&length))
234 <                return(0);
235 <        length *= unit2meter;
236 <        printf("Enter cylinder radius: ");
232 <        if (!getd(&radius))
233 <                return(0);
234 <        radius *= unit2meter;
235 <        projarea = PI*PI*2.*PI*radius*length;
232 >        getd("Cylinder length", &length,
233 >                "Enter the length of the cylinder.");
234 >        getd("Cylinder radius", &radius,
235 >                "Enter the distance from the cylinder's axis to its surface.");
236 >        projarea = PI*PI*2.*PI*unit2meter*unit2meter * radius*length;
237          return(1);
238   }
239  
240  
241   getring()                       /* get projected area for a ring */
242   {
243 <        double  radius;
243 >        static double   radius = 1.0;
244  
245 <        printf("Enter disk radius: ");
246 <        if (!getd(&radius))
247 <                return(0);
248 <        radius *= unit2meter;
248 <        projarea = PI*PI*radius*radius;
245 >        getd("Disk radius", &radius,
246 > "Enter the distance from the ring's center to its outer edge.\n\
247 > The inner radius must be zero.");
248 >        projarea = PI*PI*unit2meter*unit2meter * radius*radius;
249          return(1);
250   }

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines