--- ray/src/cv/lampcolor.c 1991/10/24 12:17:38 1.8 +++ ray/src/cv/lampcolor.c 2003/06/21 15:05:01 2.8 @@ -1,23 +1,17 @@ -/* Copyright (c) 1991 Regents of the University of California */ - #ifndef lint -static char SCCSid[] = "$SunId$ LBL"; +static const char RCSid[] = "$Id: lampcolor.c,v 2.8 2003/06/21 15:05:01 greg Exp $"; #endif - /* * Program to convert lamp color from table and compute radiance. */ #include +#include +#include +#include "standard.h" #include "color.h" -#define PI 3.14159265358979323846 - -extern char *gets(), *strcpy(); -extern double atof(); -extern float *matchlamp(); - /* lamp parameters */ #define LTYPE 0 #define LUNIT 1 @@ -25,8 +19,14 @@ extern float *matchlamp(); #define LOUTP 3 #define NPARAMS 4 -int typecheck(), unitcheck(), geomcheck(), outpcheck(); +static int typecheck(char *s); +static int unitcheck(char *s); +static int geomcheck(char *s); +static int outpcheck(char *s); +static void compute(void); +static int getpolygon(void), getsphere(void), getcylinder(void), getring(void); + float *lampcolor; /* the lamp color (RGB) */ double unit2meter; /* conversion from units to meters */ double area; /* radiating area for this geometry */ @@ -38,9 +38,9 @@ struct { int (*check)(); char *help; } param[NPARAMS] = { - { "lamp type", "white", typecheck, + { "lamp type", "WHITE", typecheck, "The lamp type is a string which corresponds to one of the types registered\n\ -in the lamp table file. A value of \"white\" means an uncolored source,\n\ +in the lamp table file. A value of \"WHITE\" means an uncolored source,\n\ which may be preferable because it results in a color balanced image." }, { "length unit", "meter", unitcheck, "Unit must be one of: \"meter\", \"centimeter\", \"foot\", or \"inch\".\n\ @@ -95,16 +95,20 @@ char *argv[]; } -typecheck(s) /* check lamp type */ -char *s; +static int +typecheck( /* check lamp type */ +char *s +) { lampcolor = matchlamp(s); return(lampcolor != NULL); } -unitcheck(s) /* compute conversion to meters */ -char *s; +static int +unitcheck( /* compute conversion to meters */ +char *s +) { int len = strlen(s); @@ -134,8 +138,10 @@ char *s; } -geomcheck(s) /* check/set lamp geometry */ -char *s; +static int +geomcheck( /* check/set lamp geometry */ +char *s +) { int len = strlen(s); @@ -161,8 +167,10 @@ char *s; } -outpcheck(s) /* check lumen output value */ -register char *s; +static int +outpcheck( /* check lumen output value */ +register char *s +) { if ((*s < '0' || *s > '9') && *s != '.') return(0); @@ -171,7 +179,8 @@ register char *s; } -compute() /* compute lamp radiance */ +static void +compute(void) /* compute lamp radiance */ { double whiteval; @@ -205,18 +214,20 @@ again: } -getpolygon() /* get projected area for a polygon */ +static int +getpolygon(void) /* get projected area for a polygon */ { - static double area = 1.0; + static double parea = 1.0; - getd("Polygon area", &area, + getd("Polygon area", &parea, "Enter the total radiating area of the polygon."); - area = unit2meter*unit2meter * area; + area = unit2meter*unit2meter * parea; return(1); } -getsphere() /* get projected area for a sphere */ +static int +getsphere(void) /* get projected area for a sphere */ { static double radius = 1.0; @@ -227,7 +238,8 @@ getsphere() /* get projected area for a sphere */ } -getcylinder() /* get projected area for a cylinder */ +static int +getcylinder(void) /* get projected area for a cylinder */ { static double length = 1.0, radius = 0.1; @@ -240,7 +252,8 @@ getcylinder() /* get projected area for a cylinder * } -getring() /* get projected area for a ring */ +static int +getring(void) /* get projected area for a ring */ { static double radius = 1.0;