--- ray/src/cv/mgflib/context.c 1995/04/12 17:16:33 1.20 +++ ray/src/cv/mgflib/context.c 1995/05/10 17:46:09 1.22 @@ -105,6 +105,8 @@ register char **av; c_ccname = NULL; return(MG_OK); } + if (!isname(av[1])) + return(MG_EILL); lp = lu_find(&clr_tab, av[1]); /* lookup context */ if (lp == NULL) return(MG_EMEM); @@ -221,6 +223,8 @@ register char **av; c_cmname = NULL; return(MG_OK); } + if (!isname(av[1])) + return(MG_EILL); lp = lu_find(&mat_tab, av[1]); /* lookup context */ if (lp == NULL) return(MG_EMEM); @@ -259,6 +263,17 @@ register char **av; *c_cmaterial = *(C_MATERIAL *)lp->data; c_cmaterial->clock = i + 1; return(MG_OK); + case MG_E_IR: /* set index of refraction */ + if (ac != 3) + return(MG_EARGC); + if (!isflt(av[1]) | !isflt(av[2])) + return(MG_ETYPE); + c_cmaterial->nr = atof(av[1]); + c_cmaterial->ni = atof(av[2]); + if (c_cmaterial->nr <= FTINY) + return(MG_EILL); + c_cmaterial->clock++; + return(MG_OK); case MG_E_RD: /* set diffuse reflectance */ if (ac != 2) return(MG_EARGC); @@ -355,6 +370,8 @@ register char **av; c_cvname = NULL; return(MG_OK); } + if (!isname(av[1])) + return(MG_EILL); lp = lu_find(&vtx_tab, av[1]); /* lookup context */ if (lp == NULL) return(MG_EMEM);