--- ray/src/gen/xform.c 1994/01/01 09:19:36 2.8 +++ ray/src/gen/xform.c 1995/12/08 18:29:06 2.10 @@ -1,4 +1,4 @@ -/* Copyright (c) 1994 Regents of the University of California */ +/* Copyright (c) 1995 Regents of the University of California */ #ifndef lint static char SCCSid[] = "$SunId$ LBL"; @@ -404,6 +404,24 @@ FILE *fin; } +m_mist(fin) /* transform arguments for mist */ +FILE *fin; +{ + FUNARGS fa; + + if (readfargs(&fa, fin) != 1) + return(-1); + if (fa.nsargs != 0 || fa.nfargs != 4) + return(-1); + printf("0\n0\n4"); + printf(" %18.12g %18.12g %18.12g", fa.farg[0]/tot.sca, + fa.farg[1]/tot.sca, fa.farg[2]/tot.sca); + printf(" %18.12g\n", fa.farg[3]); + freefargs(&fa); + return(0); +} + + m_dielectric(fin) /* transform arguments for dielectric */ FILE *fin; { @@ -642,20 +660,6 @@ FILE *fin; initotypes() /* initialize ofun[] array */ { - extern int o_source(); - extern int o_sphere(); - extern int o_face(); - extern int o_cone(); - extern int o_cylinder(); - extern int o_ring(); - extern int m_glow(); - extern int m_spot(); - extern int m_dielectric(); - extern int m_interface(); - extern int text(); - extern int alias(); - extern int passargs(); - extern int addxform(); register int i; if (ofun[OBJ_SOURCE].funp == o_source) @@ -682,11 +686,13 @@ initotypes() /* initialize ofun[] array */ ofun[MAT_SPOT].funp = m_spot; ofun[MAT_DIELECTRIC].funp = m_dielectric; ofun[MAT_INTERFACE].funp = m_interface; + ofun[MAT_MIST].funp = m_mist; ofun[PAT_CTEXT].funp = ofun[PAT_BTEXT].funp = ofun[MIX_TEXT].funp = text; ofun[ALIAS].funp = alias; /* surface inverses */ + tinvers[OBJ_FACE] = OBJ_FACE; tinvers[OBJ_SOURCE] = OBJ_SOURCE; tinvers[OBJ_CONE] = OBJ_CUP; tinvers[OBJ_CUP] = OBJ_CONE;