--- ray/src/hd/rhdisp.c 2004/03/28 20:33:13 3.51 +++ ray/src/hd/rhdisp.c 2008/03/11 02:21:47 3.52 @@ -1,5 +1,5 @@ #ifndef lint -static const char RCSid[] = "$Id: rhdisp.c,v 3.51 2004/03/28 20:33:13 schorsch Exp $"; +static const char RCSid[] = "$Id: rhdisp.c,v 3.52 2008/03/11 02:21:47 greg Exp $"; #endif /* * Holodeck display process. @@ -381,6 +381,18 @@ set_focus( /* set focus frame */ case VT_ANG: vwfocus.horiz = hsiz * odev.v.horiz; vwfocus.vert = vsiz * odev.v.vert; + break; + case VT_PLS: + vwfocus.horiz = hsiz * sin((PI/180./2.)*odev.v.horiz) / + (1.0 + cos((PI/180./2.)*odev.v.horiz)); + vwfocus.horiz *= vwfocus.horiz; + vwfocus.horiz = (2.*180./PI)*acos((1. - vwfocus.horiz) / + (1. + vwfocus.horiz)); + vwfocus.vert = vsiz * sin((PI/180./2.)*odev.v.vert) / + (1.0 + cos((PI/180./2.)*odev.v.vert)); + vwfocus.vert *= vwfocus.vert; + vwfocus.vert = (2.*180./PI)*acos((1. - vwfocus.vert) / + (1. + vwfocus.vert)); break; case VT_HEM: vwfocus.horiz = 2.*180./PI*asin(